diff --git a/Cargo.lock b/Cargo.lock index 3f45db51dce7f..ee814e002ddf8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -471,7 +471,7 @@ dependencies = [ "fnv", "futures-util", "http", - "indexmap 2.0.2", + "indexmap 2.1.0", "mime", "multer", "num-traits", @@ -521,7 +521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2270df3a642efce860ed06fbcf61fc6db10f83c2ecb5613127fb453c82e012a4" dependencies = [ "bytes 1.5.0", - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_json", ] @@ -2361,9 +2361,9 @@ dependencies = [ [[package]] name = "crc-catalog" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" +checksum = "4939f9ed1444bd8c896d37f3090012fa6e7834fe84ef8c9daa166109515732f9" [[package]] name = "crc32c" @@ -2593,9 +2593,9 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", @@ -3333,7 +3333,7 @@ dependencies = [ "flate2", "futures 0.3.29", "glob", - "indexmap 2.0.2", + "indexmap 2.1.0", "libc", "quickcheck", "scan_fmt", @@ -4351,9 +4351,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", "hashbrown 0.14.2", @@ -4558,9 +4558,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" dependencies = [ "wasm-bindgen", ] @@ -6220,7 +6220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.0.2", + "indexmap 2.1.0", ] [[package]] @@ -6686,7 +6686,7 @@ dependencies = [ name = "prometheus-parser" version = "0.1.0" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "nom", "num_enum 0.7.1", "prost 0.12.1", @@ -8011,7 +8011,7 @@ version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "itoa", "ryu", "serde", @@ -8108,7 +8108,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_json", "serde_with_macros 3.4.0", @@ -8157,7 +8157,7 @@ version = "0.9.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "itoa", "ryu", "serde", @@ -9106,7 +9106,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "toml_datetime", "winnow", ] @@ -9117,7 +9117,7 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_spanned", "toml_datetime", @@ -9817,7 +9817,7 @@ dependencies = [ "dunce", "glob", "hex", - "indexmap 2.0.2", + "indexmap 2.1.0", "indicatif", "itertools 0.11.0", "log", @@ -9920,7 +9920,7 @@ dependencies = [ "hyper", "hyper-openssl", "hyper-proxy", - "indexmap 2.0.2", + "indexmap 2.1.0", "indoc", "infer 0.15.0", "inventory", @@ -10103,7 +10103,7 @@ dependencies = [ "crossbeam-utils", "derivative", "futures 0.3.29", - "indexmap 2.0.2", + "indexmap 2.1.0", "metrics", "nom", "ordered-float 4.1.1", @@ -10134,7 +10134,7 @@ dependencies = [ "chrono-tz", "encoding_rs", "http", - "indexmap 2.0.2", + "indexmap 2.1.0", "inventory", "no-proxy", "num-traits", @@ -10204,7 +10204,7 @@ dependencies = [ "headers", "http", "hyper-proxy", - "indexmap 2.0.2", + "indexmap 2.1.0", "metrics", "metrics-tracing-context", "metrics-util", @@ -10372,9 +10372,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "vrl" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d3c3ffe5322a8a7f63cf422aebb5000774e4152955fca1cd024c262893db5d" +checksum = "a8a93ee342590c4df0ff63961d7d76a347e0c7b6e6c0be4c001317ca1ff11b53" dependencies = [ "aes", "ansi_term", @@ -10406,7 +10406,7 @@ dependencies = [ "hex", "hmac", "hostname", - "indexmap 2.0.2", + "indexmap 2.1.0", "indoc", "itertools 0.11.0", "lalrpop", @@ -10450,7 +10450,7 @@ dependencies = [ "uuid", "webbrowser", "woothee", - "zstd 0.12.4", + "zstd 0.13.0", ] [[package]] @@ -10576,9 +10576,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" dependencies = [ "cfg-if", "js-sys", @@ -10630,9 +10630,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" dependencies = [ "js-sys", "wasm-bindgen", @@ -10971,18 +10971,18 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zerocopy" -version = "0.7.20" +version = "0.7.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd66a62464e3ffd4e37bd09950c2b9dd6c4f8767380fabba0d523f9a775bc85a" +checksum = "686b7e407015242119c33dab17b8f61ba6843534de936d94368856528eae4dcc" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.20" +version = "0.7.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255c4596d41e6916ced49cfafea18727b24d67878fa180ddfd69b9df34fd1726" +checksum = "020f3dfe25dfc38dfea49ce62d5d45ecdd7f0d8a724fa63eb36b6eba4ec76806" dependencies = [ "proc-macro2 1.0.69", "quote 1.0.33", diff --git a/Cargo.toml b/Cargo.toml index aa0247c4d6af0..968a5f5162170 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -119,7 +119,7 @@ members = [ ] [workspace.dependencies] -vrl = { version = "0.7.0", features = ["cli"] } +vrl = { version = "0.8.1", features = ["cli"] } pin-project = { version = "1.1.3", default-features = false } @@ -269,7 +269,7 @@ http-body = { version = "0.4.5", default-features = false } hyper = { version = "0.14.27", default-features = false, features = ["client", "runtime", "http1", "http2", "server", "stream"] } hyper-openssl = { version = "0.9.2", default-features = false } hyper-proxy = { version = "0.9.1", default-features = false, features = ["openssl-tls"] } -indexmap = { version = "~2.0.2", default-features = false, features = ["serde", "std"] } +indexmap = { version = "2.1.0", default-features = false, features = ["serde", "std"] } infer = { version = "0.15.0", default-features = false, optional = true} indoc = { version = "2.0.4", default-features = false } inventory = { version = "0.3.13", default-features = false } @@ -362,7 +362,7 @@ tokio = { version = "1.33.0", features = ["test-util"] } tokio-test = "0.4.3" tower-test = "0.4.0" vector-lib = { path = "lib/vector-lib", default-features = false, features = ["vrl", "test"] } -vrl = { version = "0.7.0", features = ["cli", "test", "test_framework", "arbitrary"] } +vrl = { version = "0.8.1", features = ["cli", "test", "test_framework", "arbitrary"] } wiremock = "0.5.19" zstd = { version = "0.13.0", default-features = false } diff --git a/lib/codecs/Cargo.toml b/lib/codecs/Cargo.toml index 78e058ca41d71..52e6d501391b9 100644 --- a/lib/codecs/Cargo.toml +++ b/lib/codecs/Cargo.toml @@ -38,7 +38,7 @@ futures = { version = "0.3", default-features = false } indoc = { version = "2", default-features = false } tokio = { version = "1", features = ["test-util"] } similar-asserts = "1.5.0" -vrl = { version = "0.7.0", features = ["cli", "test", "test_framework", "arbitrary"] } +vrl = { version = "0.8.1", features = ["cli", "test", "test_framework", "arbitrary"] } vector-core = { path = "../vector-core", default-features = false, features = ["test"] } [features] diff --git a/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch b/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch index ac046ce0adf7d..c0d12028ec8c1 100644 --- a/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch +++ b/lib/codecs/tests/data/native_encoding/vector_generate_fixtures.patch @@ -6,8 +6,8 @@ index 0f51fc830..aadf99841 100644 rand_distr = "0.4.3" tracing-subscriber = { version = "0.3.17", default-features = false, features = ["env-filter", "fmt", "ansi", "registry"] } vector-common = { path = "../vector-common", default-features = false, features = ["test"] } --vrl = { version = "0.7.0", features = ["cli", "test", "test_framework", "arbitrary"] } -+vrl = { version = "0.7.0", features = ["cli", "test", "test_framework", "arbitrary"], path = "../../../vrl" } +-vrl = { version = "0.8.1", features = ["cli", "test", "test_framework", "arbitrary"] } ++vrl = { version = "0.8.1", features = ["cli", "test", "test_framework", "arbitrary"], path = "../../../vrl" } [features] api = ["dep:async-graphql"] diff --git a/lib/file-source/Cargo.toml b/lib/file-source/Cargo.toml index ce9438c47db16..b447ac82fc784 100644 --- a/lib/file-source/Cargo.toml +++ b/lib/file-source/Cargo.toml @@ -39,7 +39,7 @@ default-features = false features = [] [dependencies.indexmap] -version = "~2.0.2" +version = "2.1.0" default-features = false features = ["serde"] diff --git a/lib/prometheus-parser/Cargo.toml b/lib/prometheus-parser/Cargo.toml index 0a4f018e0a600..3f348925658ab 100644 --- a/lib/prometheus-parser/Cargo.toml +++ b/lib/prometheus-parser/Cargo.toml @@ -9,7 +9,7 @@ license = "MPL-2.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -indexmap = "~2.0.2" +indexmap = "2.1.0" nom = "7.1.3" num_enum = "0.7.1" prost = "0.12" diff --git a/lib/vector-common/Cargo.toml b/lib/vector-common/Cargo.toml index 532ced9704705..eaab23760eb0e 100644 --- a/lib/vector-common/Cargo.toml +++ b/lib/vector-common/Cargo.toml @@ -48,7 +48,7 @@ chrono = { version = "0.4", default-features = false, optional = true, features crossbeam-utils = { version = "0.8.16", default-features = false } derivative = { version = "2.2.0", default-features = false } futures = { version = "0.3.29", default-features = false, features = ["std"] } -indexmap = { version = "~2.0.2", default-features = false, features = ["std"] } +indexmap = { version = "2.1.0", default-features = false, features = ["std"] } metrics = "0.21.1" nom = { version = "7", optional = true } ordered-float = { version = "4.1.1", default-features = false } diff --git a/lib/vector-config/Cargo.toml b/lib/vector-config/Cargo.toml index f1968cc2b8b92..4d6ed4503124d 100644 --- a/lib/vector-config/Cargo.toml +++ b/lib/vector-config/Cargo.toml @@ -14,7 +14,7 @@ path = "tests/integration/lib.rs" chrono = { version = "0.4.31", default-features = false } chrono-tz = { version = "0.8.4", default-features = false } encoding_rs = { version = "0.8", default-features = false, features = ["alloc", "serde"] } -indexmap = { version = "2.0", default-features = false, features = ["std"] } +indexmap = { version = "2.1.0", default-features = false, features = ["std"] } inventory = { version = "0.3" } no-proxy = { version = "0.3.4", default-features = false, features = ["serialize"] } num-traits = { version = "0.2.17", default-features = false } diff --git a/lib/vector-core/Cargo.toml b/lib/vector-core/Cargo.toml index 915b3f237a350..6016559025173 100644 --- a/lib/vector-core/Cargo.toml +++ b/lib/vector-core/Cargo.toml @@ -22,7 +22,7 @@ futures-util = { version = "0.3.29", default-features = false, features = ["std" headers = { version = "0.3.9", default-features = false } http = { version = "0.2.9", default-features = false } hyper-proxy = { version = "0.9.1", default-features = false, features = ["openssl-tls"] } -indexmap = { version = "~2.0.2", default-features = false, features = ["serde", "std"] } +indexmap = { version = "2.1.0", default-features = false, features = ["serde", "std"] } lookup = { package = "vector-lookup", path = "../vector-lookup" } metrics = "0.21.1" metrics-tracing-context = { version = "0.14.0", default-features = false } @@ -91,7 +91,7 @@ rand = "0.8.5" rand_distr = "0.4.3" tracing-subscriber = { version = "0.3.17", default-features = false, features = ["env-filter", "fmt", "ansi", "registry"] } vector-common = { path = "../vector-common", default-features = false, features = ["test"] } -vrl = { version = "0.7.0", features = ["cli", "test", "test_framework", "arbitrary"] } +vrl = { version = "0.8.1", features = ["cli", "test", "test_framework", "arbitrary"] } [features] api = ["dep:async-graphql"] diff --git a/lib/vector-vrl/tests/Cargo.toml b/lib/vector-vrl/tests/Cargo.toml index 067e8cae41fe1..65e8459cdd7fe 100644 --- a/lib/vector-vrl/tests/Cargo.toml +++ b/lib/vector-vrl/tests/Cargo.toml @@ -7,7 +7,7 @@ publish = false [dependencies] enrichment = { path = "../../enrichment" } -vrl = { version = "0.7.0", features = ["test", "test_framework"] } +vrl = { version = "0.8.1", features = ["test", "test_framework"] } vector-vrl-functions = { path = "../../vector-vrl/functions" } ansi_term = "0.12" diff --git a/website/cue/reference/remap.cue b/website/cue/reference/remap.cue index 42d04b02f1e58..af9087b6c6d77 100644 --- a/website/cue/reference/remap.cue +++ b/website/cue/reference/remap.cue @@ -247,10 +247,12 @@ remap: #Remap & { │ │ │ │ │ this expression is fallible │ │ update the expression to be infallible + │ │ note if an argument type is invalid it can render a function fallible │ or change this to an infallible assignment: │ structured, err = parse_key_value(.message) │ = see documentation about error handling at https://errors.vrl.dev/#handling + = see functions characteristics documentation at https://vrl.dev/expressions/#function-call-characteristics = learn more about error code 103 at https://errors.vrl.dev/103 = see language documentation at https://vrl.dev = try your code in the VRL REPL, learn more at https://vrl.dev/examples diff --git a/website/cue/reference/remap/functions/contains_all.cue b/website/cue/reference/remap/functions/contains_all.cue new file mode 100644 index 0000000000000..dfd7cf07eeb78 --- /dev/null +++ b/website/cue/reference/remap/functions/contains_all.cue @@ -0,0 +1,49 @@ +package metadata + +remap: functions: contains_all: { + category: "String" + description: """ + Determines whether the `value` string contains all the specified `substrings`. + """ + + arguments: [ + { + name: "value" + description: "The text to search." + required: true + type: ["string"] + }, + { + name: "substrings" + description: "An array of substrings to search for in `value`." + required: true + type: ["array"] + }, + { + name: "case_sensitive" + description: "Whether the match should be case sensitive." + required: false + type: ["boolean"] + }, + ] + internal_failure_reasons: [] + return: types: ["boolean"] + + examples: [ + { + title: "String contains all" + source: #""" + contains_all("The Needle In The Haystack", ["Needle", "Haystack"]) + """# + return: true + }, + { + title: "String contains all (case sensitive)" + source: #""" + contains_all("the NEEDLE in the haystack", ["needle", "haystack"]) + """# + return: false + }, + ] + +} diff --git a/website/cue/reference/remap/functions/from_unix_timestamp.cue b/website/cue/reference/remap/functions/from_unix_timestamp.cue index 8ad585e73b208..a4eb4a1b08d38 100644 --- a/website/cue/reference/remap/functions/from_unix_timestamp.cue +++ b/website/cue/reference/remap/functions/from_unix_timestamp.cue @@ -24,6 +24,7 @@ remap: functions: from_unix_timestamp: { seconds: "Express Unix time in seconds" milliseconds: "Express Unix time in milliseconds" nanoseconds: "Express Unix time in nanoseconds" + microseconds: "Express Unix time in microseconds" } default: "seconds" }, diff --git a/website/cue/reference/remap/functions/parse_float.cue b/website/cue/reference/remap/functions/parse_float.cue new file mode 100644 index 0000000000000..f06c26153fcef --- /dev/null +++ b/website/cue/reference/remap/functions/parse_float.cue @@ -0,0 +1,38 @@ +package metadata + +remap: functions: parse_float: { + category: "String" + description: """ + Parses the string `value` representing a floating point number in base 10 to a float. + """ + + arguments: [ + { + name: "value" + description: "The string to parse." + required: true + type: ["string"] + }, + ] + internal_failure_reasons: [] + return: types: ["float"] + + examples: [ + { + title: "Parse negative integer" + source: #"parse_float!("-42")"# + return: -42.0 + }, + { + title: "Parse negative integer" + source: #"parse_float!("42.38")"# + return: 42.38 + }, + { + title: "Scientific notation" + source: #"parse_float!("2.5e3")"# + return: 2500.0 + }, + ] + +}