diff --git a/Cargo.lock b/Cargo.lock index b8d705132c8f0..161cbde064960 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "addr2line" version = "0.21.0" @@ -23,6 +33,50 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "aes-kw" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" +dependencies = [ + "aes", +] + [[package]] name = "ahash" version = "0.7.7" @@ -501,7 +555,7 @@ dependencies = [ "arrow-schema 48.0.1", "chrono", "half 2.3.1", - "indexmap 2.0.0", + "indexmap 2.2.5", "lexical-core", "num", "serde", @@ -627,6 +681,57 @@ dependencies = [ "regex-syntax 0.8.2", ] +[[package]] +name = "arrow-udf-deno" +version = "0.0.1" +source = "git+https://github.com/bakjos/arrow-udf.git?rev=8660631#86606314d68bdf9d96cec88e56d49368560d5658" +dependencies = [ + "anyhow", + "arrow-array 50.0.0", + "arrow-buffer 50.0.0", + "arrow-data 50.0.0", + "arrow-schema 50.0.0", + "arrow-udf-deno-runtime", + "async-trait", + "deno_core", + "futures", + "futures-util", + "libc", + "serde", + "serde_json", + "tokio", + "v8", +] + +[[package]] +name = "arrow-udf-deno-runtime" +version = "0.0.1" +source = "git+https://github.com/bakjos/arrow-udf.git?rev=8660631#86606314d68bdf9d96cec88e56d49368560d5658" +dependencies = [ + "anyhow", + "deno_ast", + "deno_console", + "deno_core", + "deno_crypto", + "deno_fetch", + "deno_http", + "deno_io", + "deno_napi", + "deno_net", + "deno_tls", + "deno_url", + "deno_web", + "deno_webidl", + "deno_websocket", + "hyper 0.14.27", + "libc", + "serde", + "serde_json", + "signal-hook-registry", + "tokio", + "v8", +] + [[package]] name = "arrow-udf-js" version = "0.1.2" @@ -679,6 +784,18 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "ast_node" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e3e06ec6ac7d893a0db7127d91063ad7d9da8988f8a1a256f03729e6eec026" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + [[package]] name = "async-attributes" version = "1.1.2" @@ -706,6 +823,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" dependencies = [ + "brotli", "bzip2", "flate2", "futures-core", @@ -966,9 +1084,9 @@ dependencies = [ [[package]] name = "aws-config" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e245d7c741a8e4b23133f36750c4bcb3938a66ac49510caaf8b83afd52db1ec" +checksum = "80c950a809d39bc9480207cb1cfc879ace88ea7e3a4392a8e9999e45d6e5692e" dependencies = [ "aws-credential-types", "aws-http", @@ -984,7 +1102,7 @@ dependencies = [ "bytes", "fastrand 2.0.1", "http 0.2.9", - "hyper", + "hyper 0.14.27", "time", "tokio", "tracing", @@ -1013,7 +1131,7 @@ dependencies = [ "aws-types", "bytes", "http 0.2.9", - "http-body", + "http-body 0.4.5", "pin-project-lite", "tracing", ] @@ -1084,7 +1202,7 @@ dependencies = [ "aws-types", "bytes", "http 0.2.9", - "http-body", + "http-body 0.4.5", "once_cell", "percent-encoding", "regex", @@ -1094,9 +1212,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "0.39.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1d955bacd8c3637908a40a4af2f7a732461ee7d95ec02599a3610ee55781d7" +checksum = "798c8d82203af9e15a8b406574e0b36da91dd6db533028b74676489a1bc8bc7d" dependencies = [ "aws-credential-types", "aws-http", @@ -1167,7 +1285,7 @@ dependencies = [ "crc32fast", "hex", "http 0.2.9", - "http-body", + "http-body 0.4.5", "md-5", "pin-project-lite", "sha1", @@ -1199,7 +1317,7 @@ dependencies = [ "bytes-utils", "futures-core", "http 0.2.9", - "http-body", + "http-body 0.4.5", "once_cell", "percent-encoding", "pin-project-lite", @@ -1239,8 +1357,8 @@ dependencies = [ "bytes", "fastrand 2.0.1", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "hyper-rustls", "once_cell", "pin-project-lite", @@ -1271,13 +1389,13 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d4bb944488536cd2fef43212d829bc7e9a8bfc4afa079d21170441e7be8d2d0" dependencies = [ - "base64-simd", + "base64-simd 0.8.0", "bytes", "bytes-utils", "futures-core", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "itoa", "num-integer", "pin-project-lite", @@ -1319,7 +1437,7 @@ dependencies = [ "aws-smithy-runtime-api", "aws-smithy-types", "http 0.2.9", - "rustc_version", + "rustc_version 0.4.0", "tracing", ] @@ -1335,8 +1453,8 @@ dependencies = [ "bytes", "futures-util", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "itoa", "matchit", "memchr", @@ -1365,7 +1483,7 @@ dependencies = [ "bytes", "futures-util", "http 0.2.9", - "http-body", + "http-body 0.4.5", "mime", "rustversion", "tower-layer", @@ -1442,13 +1560,22 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +[[package]] +name = "base64-simd" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" +dependencies = [ + "simd-abstraction", +] + [[package]] name = "base64-simd" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "outref", + "outref 0.5.1", "vsimd", ] @@ -1487,6 +1614,15 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f40afb3abbf90895dda3ddbc6d8734d24215130a22d646067690f5e318f81bc" +[[package]] +name = "better_scoped_tls" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de" +dependencies = [ + "scoped-tls", +] + [[package]] name = "bigdecimal" version = "0.3.1" @@ -1647,6 +1783,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + [[package]] name = "blocking" version = "1.3.1" @@ -1727,9 +1872,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytecheck" @@ -1820,6 +1965,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "cache_control" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee" + [[package]] name = "camino" version = "1.1.6" @@ -1915,7 +2066,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver", + "semver 1.0.18", "serde", "serde_json", ] @@ -1926,6 +2077,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cc" version = "1.0.83" @@ -2040,6 +2200,16 @@ dependencies = [ "half 1.8.2", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clang-sys" version = "1.6.1" @@ -2101,7 +2271,7 @@ dependencies = [ "clickhouse-derive", "clickhouse-rs-cityhash-sys", "futures", - "hyper", + "hyper 0.14.27", "hyper-tls", "lz4", "sealed", @@ -2313,6 +2483,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "convert_case" version = "0.6.0" @@ -2322,6 +2498,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cooked-waker" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147be55d677052dabc6b22252d5dd0fd4c29c8c27aa4f2fbef0f94aa003b406f" + [[package]] name = "core-foundation" version = "0.9.3" @@ -2504,7 +2686,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74" dependencies = [ - "rustc_version", + "rustc_version 0.4.0", ] [[package]] @@ -2709,6 +2891,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", + "rand_core", "typenum", ] @@ -2733,11 +2916,20 @@ dependencies = [ "memchr", ] +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + [[package]] name = "curve25519-dalek" -version = "4.1.0" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if", "cpufeatures", @@ -2745,7 +2937,7 @@ dependencies = [ "digest", "fiat-crypto", "platforms", - "rustc_version", + "rustc_version 0.4.0", "subtle", "zeroize", ] @@ -2984,7 +3176,7 @@ dependencies = [ "glob", "half 2.3.1", "hashbrown 0.14.3", - "indexmap 2.0.0", + "indexmap 2.2.5", "itertools 0.11.0", "log", "num_cpus", @@ -3097,7 +3289,7 @@ dependencies = [ "half 2.3.1", "hashbrown 0.14.3", "hex", - "indexmap 2.0.0", + "indexmap 2.2.5", "itertools 0.11.0", "libc", "log", @@ -3131,7 +3323,7 @@ dependencies = [ "futures", "half 2.3.1", "hashbrown 0.14.3", - "indexmap 2.0.0", + "indexmap 2.2.5", "itertools 0.11.0", "log", "once_cell", @@ -3195,6 +3387,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ + "serde", "uuid", ] @@ -3203,7 +3396,7 @@ name = "delta_btree_map" version = "1.7.0-alpha" dependencies = [ "educe 0.5.7", - "enum-as-inner", + "enum-as-inner 0.6.0", ] [[package]] @@ -3268,92 +3461,454 @@ dependencies = [ ] [[package]] -name = "der" -version = "0.6.1" +name = "deno_ast" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +checksum = "1d87c67f73e749f78096f517cbb57967d98a8c713b39cf88b1f0b8750a84aa29" dependencies = [ - "const-oid", - "zeroize", + "anyhow", + "base64 0.21.7", + "deno_media_type", + "dprint-swc-ext", + "serde", + "swc_atoms", + "swc_common", + "swc_config", + "swc_config_macro", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_codegen_macros", + "swc_ecma_loader", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_transforms_proposal", + "swc_ecma_transforms_react", + "swc_ecma_transforms_typescript", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_eq_ignore_macros", + "swc_macros_common", + "swc_visit", + "swc_visit_macros", + "text_lines", + "url", ] [[package]] -name = "der" -version = "0.7.8" +name = "deno_console" +version = "0.142.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "1712de085595861d173f1cdaa05ef59521c63f78db9c9b7cd7b693ccde7e329b" dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", + "deno_core", ] [[package]] -name = "deranged" -version = "0.3.9" +name = "deno_core" +version = "0.270.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "2af854955a06a4bde79c68600a78d2269f5a783417f5adc1d2d1fd410b6cc434" dependencies = [ - "powerfmt", + "anyhow", + "bincode 1.3.3", + "bit-set", + "bit-vec", + "bytes", + "cooked-waker", + "deno_core_icudata", + "deno_ops", + "deno_unsync", + "futures", + "libc", + "log", + "memoffset", + "parking_lot 0.12.1", + "pin-project", "serde", + "serde_json", + "serde_v8", + "smallvec", + "sourcemap 7.1.1", + "static_assertions", + "tokio", + "url", + "v8", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "deno_core_icudata" +version = "0.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1" [[package]] -name = "derive_builder" -version = "0.12.0" +name = "deno_crypto" +version = "0.156.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +checksum = "505ce77750e138dd29e0bd51f944f3f52c27d1fbbdf2cfd388d848d05efe7000" dependencies = [ - "derive_builder_macro", + "aes", + "aes-gcm", + "aes-kw", + "base64 0.21.7", + "cbc", + "const-oid", + "ctr", + "curve25519-dalek", + "deno_core", + "deno_web", + "elliptic-curve 0.13.8", + "num-traits", + "once_cell", + "p256 0.13.2", + "p384", + "p521", + "rand", + "ring 0.17.5", + "rsa", + "serde", + "serde_bytes", + "sha1", + "sha2", + "signature 2.2.0", + "spki 0.7.2", + "tokio", + "uuid", + "x25519-dalek", ] [[package]] -name = "derive_builder_core" -version = "0.12.0" +name = "deno_fetch" +version = "0.166.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +checksum = "aea276018532007aa3c45dc5bdff9c707fb8747e879b16d7a7782138128738e1" dependencies = [ - "darling 0.14.4", - "proc-macro2", - "quote", - "syn 1.0.109", + "bytes", + "data-url", + "deno_core", + "deno_tls", + "dyn-clone", + "http 0.2.9", + "pin-project", + "reqwest", + "serde", + "serde_json", + "tokio", + "tokio-util", ] [[package]] -name = "derive_builder_macro" -version = "0.12.0" +name = "deno_http" +version = "0.139.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +checksum = "fc6bf2e50170c72e7334219033637a6909416889f67f57f380b021f3f82d5aff" dependencies = [ - "derive_builder_core", - "syn 1.0.109", + "async-compression", + "async-trait", + "base64 0.21.7", + "brotli", + "bytes", + "cache_control", + "deno_core", + "deno_net", + "deno_websocket", + "flate2", + "http 0.2.9", + "http 1.0.0", + "httparse", + "hyper 0.14.27", + "hyper 1.1.0", + "hyper-util", + "itertools 0.10.5", + "memmem", + "mime", + "once_cell", + "percent-encoding", + "phf", + "pin-project", + "ring 0.17.5", + "scopeguard", + "serde", + "smallvec", + "thiserror", + "tokio", + "tokio-util", ] [[package]] -name = "derive_utils" -version = "0.13.2" +name = "deno_io" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9abcad25e9720609ccb3dcdb795d845e37d8ce34183330a9f48b03a1a71c8e21" +checksum = "b5fc08a5df8aa7c78c92c79ada0bb9cad906eef1f3f466b5c4c523ff62802ff9" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", + "async-trait", + "deno_core", + "filetime", + "fs3", + "once_cell", + "os_pipe", + "rand", + "tokio", + "winapi", ] [[package]] -name = "dialoguer" -version = "0.11.0" +name = "deno_media_type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a798670c20308e5770cc0775de821424ff9e85665b602928509c8c70430b3ee0" +dependencies = [ + "data-url", + "serde", + "url", +] + +[[package]] +name = "deno_napi" +version = "0.72.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13553afb6cc3292b96c989abd3ee9e9cdb58ba703c2b69941c1b9392839372f9" +dependencies = [ + "deno_core", + "libloading", +] + +[[package]] +name = "deno_native_certs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4785d0bdc13819b665b71e4fb7e119d859568471e4c245ec5610857e70c9345" +dependencies = [ + "dlopen2", + "dlopen2_derive", + "once_cell", + "rustls-native-certs", + "rustls-pemfile", +] + +[[package]] +name = "deno_net" +version = "0.134.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b508e548550610f9555b438ec4acceb829d3d1c921e125c5eb4f8a9831c3fd3" +dependencies = [ + "deno_core", + "deno_tls", + "enum-as-inner 0.5.1", + "log", + "pin-project", + "rustls-tokio-stream", + "serde", + "socket2 0.5.6", + "tokio", + "trust-dns-proto 0.22.0", + "trust-dns-resolver 0.22.0", +] + +[[package]] +name = "deno_ops" +version = "0.146.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13689abbb2af68c19b949a8852d9612f063fdc68a446a9c9d2b7b1e340f8516c" +dependencies = [ + "proc-macro-rules", + "proc-macro2", + "quote", + "strum 0.25.0", + "strum_macros 0.25.3", + "syn 2.0.48", + "thiserror", +] + +[[package]] +name = "deno_tls" +version = "0.129.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "515e99b099065defd3e1039b50b386dec85d0a6621371ce9fc9b67cc4d945912" +dependencies = [ + "deno_core", + "deno_native_certs", + "once_cell", + "rustls", + "rustls-pemfile", + "rustls-tokio-stream", + "rustls-webpki 0.101.7", + "serde", + "webpki-roots", +] + +[[package]] +name = "deno_unsync" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30dff7e03584dbae188dae96a0f1876740054809b2ad0cf7c9fc5d361f20e739" +dependencies = [ + "tokio", +] + +[[package]] +name = "deno_url" +version = "0.142.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bd5afe3567e4dba73bd1bf50153bbff6bcb2781d8c7e0468794ddfc4e8e96a6" +dependencies = [ + "deno_core", + "serde", + "urlpattern", +] + +[[package]] +name = "deno_web" +version = "0.173.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff579a91d7c82a1bb9e71e3dba48c5b5fdb92953ac927a6f37d46bce49d3bdcd" +dependencies = [ + "async-trait", + "base64-simd 0.8.0", + "bytes", + "deno_core", + "encoding_rs", + "flate2", + "futures", + "serde", + "tokio", + "uuid", + "windows-sys 0.48.0", +] + +[[package]] +name = "deno_webidl" +version = "0.142.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4e1377b1548eb05421de51d533878425c200de952dcb45798af963a67fc76be" +dependencies = [ + "deno_core", +] + +[[package]] +name = "deno_websocket" +version = "0.147.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de022c3ed606c0a0df47bfd6d62b4f1fd0c4d57edfeba6c1202f7d6dec037658" +dependencies = [ + "bytes", + "deno_core", + "deno_net", + "deno_tls", + "fastwebsockets", + "h2 0.4.2", + "http 1.0.0", + "http-body-util", + "hyper 1.1.0", + "hyper-util", + "once_cell", + "rustls-tokio-stream", + "serde", + "tokio", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn 1.0.109", +] + +[[package]] +name = "derive_utils" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9abcad25e9720609ccb3dcdb795d845e37d8ce34183330a9f48b03a1a71c8e21" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "dialoguer" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ @@ -3446,6 +4001,29 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" +[[package]] +name = "dlopen2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bc2c7ed06fd72a8513ded8d0d2f6fd2655a85d6885c48cae8625d80faf28c03" +dependencies = [ + "dlopen2_derive", + "libc", + "once_cell", + "winapi", +] + +[[package]] +name = "dlopen2_derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "dlv-list" version = "0.5.2" @@ -3479,6 +4057,22 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "dprint-swc-ext" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2f24ce6b89a06ae3eb08d5d4f88c05d0aef1fa58e2eba8dd92c97b84210c25" +dependencies = [ + "bumpalo", + "num-bigint", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "text_lines", +] + [[package]] name = "duct" version = "0.13.6" @@ -3531,15 +4125,15 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.8" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der 0.7.8", "digest", - "elliptic-curve 0.13.6", + "elliptic-curve 0.13.8", "rfc6979 0.4.0", - "signature 2.0.0", + "signature 2.2.0", "spki 0.7.2", ] @@ -3550,20 +4144,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" dependencies = [ "pkcs8 0.10.2", - "signature 2.0.0", + "signature 2.2.0", ] [[package]] name = "ed25519-dalek" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", "serde", "sha2", - "signature 2.0.0", + "signature 2.2.0", + "subtle", "zeroize", ] @@ -3622,9 +4217,9 @@ dependencies = [ [[package]] name = "elliptic-curve" -version = "0.13.6" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct 0.2.0", "crypto-bigint 0.5.5", @@ -3656,6 +4251,18 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum-as-inner" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "enum-as-inner" version = "0.6.0" @@ -3683,7 +4290,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0ce3a36047ede676eb0d2721d065beed8410cf4f113f489604d2971331cb378" dependencies = [ - "convert_case", + "convert_case 0.6.0", "quote", "syn 1.0.109", ] @@ -3917,6 +4524,25 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +[[package]] +name = "fastwebsockets" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63dd7b57f9b33b1741fa631c9522eb35d43e96dcca4a6a91d5e4ca7c93acdc1" +dependencies = [ + "base64 0.21.7", + "http-body-util", + "hyper 1.1.0", + "hyper-util", + "pin-project", + "rand", + "sha1", + "simdutf8", + "thiserror", + "tokio", + "utf-8", +] + [[package]] name = "fd-lock" version = "4.0.1" @@ -3963,6 +4589,18 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "filetime" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", +] + [[package]] name = "findshlibs" version = "0.10.2" @@ -4026,7 +4664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640" dependencies = [ "bitflags 1.3.2", - "rustc_version", + "rustc_version 0.4.0", ] [[package]] @@ -4234,8 +4872,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] -name = "frunk" -version = "0.4.2" +name = "from_variant" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a0b11eeb173ce52f84ebd943d42e58813a2ebb78a6a3ff0a243b71c5199cd7b" +dependencies = [ + "proc-macro2", + "swc_macros_common", + "syn 2.0.48", +] + +[[package]] +name = "frunk" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11a351b59e12f97b4176ee78497dff72e4276fb1ceb13e19056aca7fa0206287" dependencies = [ @@ -4315,6 +4964,27 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs3" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb17cf6ed704f72485332f6ab65257460c4f9f3083934cf402bf9f5b3b600a90" +dependencies = [ + "libc", + "rustc_version 0.2.3", + "winapi", +] + +[[package]] +name = "fslock" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "function_name" version = "0.3.0" @@ -4521,7 +5191,7 @@ dependencies = [ "async-stream", "async-trait", "dyn-clone", - "hyper", + "hyper 0.14.27", "hyper-rustls", "log", "reqwest", @@ -4601,6 +5271,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug", + "polyval", +] + [[package]] name = "gimli" version = "0.28.0" @@ -4608,7 +5288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" dependencies = [ "fallible-iterator 0.3.0", - "indexmap 2.0.0", + "indexmap 2.2.5", "stable_deref_trait", ] @@ -4626,7 +5306,7 @@ dependencies = [ "tonic 0.10.2", "tower", "tracing", - "trust-dns-resolver", + "trust-dns-resolver 0.23.2", ] [[package]] @@ -4786,7 +5466,26 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.9", - "indexmap 2.0.0", + "indexmap 2.2.5", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 1.0.0", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -4939,6 +5638,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "hstr" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fafeca18cf0927e23ea44d7a5189c10536279dfe9094e0dfa953053fbb5377" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "phf", + "rustc-hash", + "smallvec", +] + [[package]] name = "http" version = "0.2.9" @@ -4972,6 +5684,29 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.0.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +dependencies = [ + "bytes", + "futures-core", + "http 1.0.0", + "http-body 1.0.0", + "pin-project-lite", +] + [[package]] name = "http-range-header" version = "0.3.1" @@ -5006,9 +5741,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.3.24", "http 0.2.9", - "http-body", + "http-body 0.4.5", "httparse", "httpdate", "itoa", @@ -5020,6 +5755,26 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.2", + "http 1.0.0", + "http-body 1.0.0", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "tokio", + "want", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -5028,7 +5783,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.9", - "hyper", + "hyper 0.14.27", "log", "rustls", "rustls-native-certs", @@ -5043,7 +5798,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper", + "hyper 0.14.27", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -5056,12 +5811,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper", + "hyper 0.14.27", "native-tls", "tokio", "tokio-native-tls", ] +[[package]] +name = "hyper-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "hyper 1.1.0", + "pin-project-lite", + "socket2 0.5.6", + "tokio", + "tracing", +] + [[package]] name = "hytra" version = "0.1.2" @@ -5157,6 +5930,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.4.0" @@ -5177,6 +5961,12 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + [[package]] name = "indexmap" version = "1.9.3" @@ -5190,9 +5980,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -5231,7 +6021,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73c0fefcb6d409a6587c07515951495d482006f89a21daa0f2f783aa4fd5e027" dependencies = [ "ahash 0.8.6", - "indexmap 2.0.0", + "indexmap 2.2.5", "is-terminal", "itoa", "log", @@ -5253,6 +6043,16 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding", + "generic-array", +] + [[package]] name = "inquire" version = "0.7.0" @@ -5318,7 +6118,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.3", + "socket2 0.5.6", "widestring", "windows-sys 0.48.0", "winreg", @@ -5330,6 +6130,18 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +[[package]] +name = "is-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "is-terminal" version = "0.4.9" @@ -6151,6 +6963,12 @@ dependencies = [ "libc", ] +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + [[package]] name = "memoffset" version = "0.9.0" @@ -6245,7 +7063,7 @@ dependencies = [ "once_cell", "parking_lot 0.12.1", "quanta", - "rustc_version", + "rustc_version 0.4.0", "skeptic", "smallvec", "tagptr", @@ -6324,7 +7142,7 @@ dependencies = [ "rand", "serde", "serde_json", - "socket2 0.5.3", + "socket2 0.5.6", "thiserror", "tokio", "tokio-native-tls", @@ -6406,6 +7224,12 @@ dependencies = [ "tempfile", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + [[package]] name = "newline-converter" version = "0.3.0" @@ -6553,6 +7377,8 @@ dependencies = [ "autocfg", "num-integer", "num-traits", + "rand", + "serde", ] [[package]] @@ -6708,7 +7534,7 @@ checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "crc32fast", "hashbrown 0.14.3", - "indexmap 2.0.0", + "indexmap 2.2.5", "memchr", ] @@ -6724,7 +7550,7 @@ dependencies = [ "chrono", "futures", "humantime", - "hyper", + "hyper 0.14.27", "itertools 0.11.0", "parking_lot 0.12.1", "percent-encoding", @@ -6743,9 +7569,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "oorandom" @@ -6753,6 +7579,12 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + [[package]] name = "opendal" version = "0.44.2" @@ -6878,7 +7710,7 @@ checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a" dependencies = [ "futures-core", "futures-sink", - "indexmap 2.0.0", + "indexmap 2.2.5", "js-sys", "once_cell", "pin-project-lite", @@ -6987,12 +7819,12 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7039,6 +7871,12 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "outref" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" + [[package]] name = "outref" version = "0.5.1" @@ -7074,8 +7912,8 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "ecdsa 0.16.8", - "elliptic-curve 0.13.6", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", "primeorder", "sha2", ] @@ -7086,9 +7924,23 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" dependencies = [ - "ecdsa 0.16.8", - "elliptic-curve 0.13.6", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder", + "sha2", +] + +[[package]] +name = "p521" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2" +dependencies = [ + "base16ct 0.2.0", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", "primeorder", + "rand_core", "sha2", ] @@ -7281,6 +8133,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + [[package]] name = "pbjson" version = "0.6.0" @@ -7350,7 +8208,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.0.0", + "indexmap 2.2.5", ] [[package]] @@ -7399,6 +8257,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ + "phf_macros", "phf_shared", ] @@ -7422,6 +8281,19 @@ dependencies = [ "rand", ] +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "phf_shared" version = "0.11.2" @@ -7535,6 +8407,17 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "pmutil" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "polling" version = "2.8.0" @@ -7551,6 +8434,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "portable-atomic" version = "1.4.3" @@ -7734,11 +8629,11 @@ dependencies = [ [[package]] name = "primeorder" -version = "0.13.2" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "elliptic-curve 0.13.6", + "elliptic-curve 0.13.8", ] [[package]] @@ -7816,6 +8711,29 @@ version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" +[[package]] +name = "proc-macro-rules" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" +dependencies = [ + "proc-macro-rules-macros", + "proc-macro2", + "syn 2.0.48", +] + +[[package]] +name = "proc-macro-rules-macros" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "proc-macro2" version = "1.0.78" @@ -7884,7 +8802,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7849dd7319357e220886589ea0a0760ff138cde2eedfbbfd2708caee0b15dfc" dependencies = [ - "enum-as-inner", + "enum-as-inner 0.6.0", "mime", "reqwest", "serde", @@ -7931,7 +8849,7 @@ dependencies = [ "regex", "syn 1.0.109", "tempfile", - "which", + "which 4.4.2", ] [[package]] @@ -7953,7 +8871,7 @@ dependencies = [ "regex", "syn 2.0.48", "tempfile", - "which", + "which 4.4.2", ] [[package]] @@ -8369,7 +9287,7 @@ dependencies = [ "pin-project-lite", "ryu", "sha1_smol", - "socket2 0.5.3", + "socket2 0.5.6", "tokio", "tokio-util", "url", @@ -8543,15 +9461,16 @@ version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ + "async-compression", "base64 0.21.7", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2", + "h2 0.3.24", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "hyper-rustls", "hyper-tls", "ipnet", @@ -8571,6 +9490,7 @@ dependencies = [ "tokio", "tokio-native-tls", "tokio-rustls", + "tokio-socks", "tokio-util", "tower-service", "url", @@ -8912,7 +9832,7 @@ dependencies = [ "easy-ext", "educe 0.5.7", "either", - "enum-as-inner", + "enum-as-inner 0.6.0", "enumflags2", "ethnum", "expect-test", @@ -8921,7 +9841,7 @@ dependencies = [ "governor", "hex", "http 0.2.9", - "http-body", + "http-body 0.4.5", "humantime", "hytra", "itertools 0.12.0", @@ -9014,8 +9934,8 @@ dependencies = [ "easy-ext", "futures", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "hytra", "itertools 0.12.0", "libc", @@ -9054,7 +9974,7 @@ version = "1.7.0-alpha" dependencies = [ "async-trait", "futures", - "hyper", + "hyper 0.14.27", "madsim-tokio", "madsim-tonic", "prometheus", @@ -9132,7 +10052,7 @@ dependencies = [ "either", "futures", "futures-async-stream", - "hyper", + "hyper 0.14.27", "itertools 0.12.0", "madsim-tokio", "madsim-tonic", @@ -9198,7 +10118,7 @@ dependencies = [ "deltalake", "duration-str", "easy-ext", - "enum-as-inner", + "enum-as-inner 0.6.0", "expect-test", "futures", "futures-async-stream", @@ -9206,7 +10126,7 @@ dependencies = [ "glob", "google-cloud-pubsub", "http 0.2.9", - "hyper", + "hyper 0.14.27", "hyper-tls", "icelake", "indexmap 1.9.3", @@ -9377,6 +10297,7 @@ dependencies = [ "anyhow", "arrow-array 50.0.0", "arrow-schema 50.0.0", + "arrow-udf-deno", "arrow-udf-js", "arrow-udf-python", "arrow-udf-wasm", @@ -9389,8 +10310,9 @@ dependencies = [ "easy-ext", "educe 0.5.7", "either", - "enum-as-inner", + "enum-as-inner 0.6.0", "expect-test", + "futures", "futures-async-stream", "futures-util", "itertools 0.12.0", @@ -9489,7 +10411,7 @@ dependencies = [ "easy-ext", "educe 0.5.7", "either", - "enum-as-inner", + "enum-as-inner 0.6.0", "fancy-regex", "fixedbitset 0.5.0", "futures", @@ -9707,13 +10629,13 @@ dependencies = [ "crepe", "easy-ext", "either", - "enum-as-inner", + "enum-as-inner 0.6.0", "expect-test", "fail", "function_name", "futures", "hex", - "hyper", + "hyper 0.14.27", "itertools 0.12.0", "madsim-etcd-client", "madsim-tokio", @@ -9772,7 +10694,7 @@ dependencies = [ "bytes", "cargo-emit", "dircpy", - "hyper", + "hyper 0.14.27", "mime_guess", "npm_rs", "reqwest", @@ -9881,7 +10803,7 @@ dependencies = [ "either", "fail", "futures", - "hyper", + "hyper 0.14.27", "hyper-rustls", "hyper-tls", "itertools 0.12.0", @@ -9903,7 +10825,7 @@ dependencies = [ name = "risingwave_pb" version = "1.7.0-alpha" dependencies = [ - "enum-as-inner", + "enum-as-inner 0.6.0", "fs-err", "madsim-tonic", "madsim-tonic-build", @@ -9965,7 +10887,7 @@ dependencies = [ "either", "futures", "http 0.2.9", - "hyper", + "hyper 0.14.27", "itertools 0.12.0", "lru 0.10.1", "madsim-tokio", @@ -10161,7 +11083,7 @@ dependencies = [ "dashmap", "dyn-clone", "either", - "enum-as-inner", + "enum-as-inner 0.6.0", "expect-test", "fail", "fiemap", @@ -10228,7 +11150,7 @@ dependencies = [ "delta_btree_map", "educe 0.5.7", "either", - "enum-as-inner", + "enum-as-inner 0.6.0", "expect-test", "fail", "foyer", @@ -10400,21 +11322,19 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab43bb47d23c1a631b4b680199a45255dce26fa9ab2fa902581f624ff13e6a8" +checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" dependencies = [ - "byteorder", "const-oid", "digest", "num-bigint-dig", "num-integer", - "num-iter", "num-traits", "pkcs1", "pkcs8 0.10.2", "rand_core", - "signature 2.0.0", + "signature 2.2.0", "spki 0.7.2", "subtle", "zeroize", @@ -10514,13 +11434,22 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver", + "semver 1.0.18", ] [[package]] @@ -10599,6 +11528,18 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-tokio-stream" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded7a36e8ac05b8ada77a84c5ceec95361942ee9dedb60a82f93f788a791aae8" +dependencies = [ + "futures", + "rustls", + "socket2 0.5.6", + "tokio", +] + [[package]] name = "rustls-webpki" version = "0.100.3" @@ -10694,6 +11635,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +[[package]] +name = "ryu-js" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" + [[package]] name = "same-file" version = "1.0.6" @@ -11004,6 +11951,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e388332cd64eb80cd595a00941baf513caffae8dce9cfd0467fc9c66397dade6" +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + [[package]] name = "semver" version = "1.0.18" @@ -11014,8 +11970,14 @@ dependencies = [ ] [[package]] -name = "seq-macro" -version = "0.3.5" +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "seq-macro" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" @@ -11096,6 +12058,7 @@ version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ + "indexmap 2.2.5", "itoa", "ryu", "serde", @@ -11161,6 +12124,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_v8" +version = "0.179.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80ed6b8604315921ba50f2a872b89b93327aa53a1219d11304ee29fb625344bc" +dependencies = [ + "bytes", + "num-bigint", + "serde", + "smallvec", + "thiserror", + "v8", +] + [[package]] name = "serde_with" version = "3.7.0" @@ -11171,7 +12148,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.0.0", + "indexmap 2.2.5", "serde", "serde_derive", "serde_json", @@ -11197,7 +12174,7 @@ version = "0.9.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.5", "itoa", "ryu", "serde", @@ -11229,11 +12206,22 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "sha-1" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -11248,9 +12236,9 @@ checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -11344,7 +12332,7 @@ checksum = "c1e303f8205714074f6068773f0e29527e0453937fe837c9717d066635b65f31" dependencies = [ "pkcs8 0.10.2", "rand_core", - "signature 2.0.0", + "signature 2.2.0", "zeroize", ] @@ -11360,14 +12348,23 @@ dependencies = [ [[package]] name = "signature" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", "rand_core", ] +[[package]] +name = "simd-abstraction" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +dependencies = [ + "outref 0.1.0", +] + [[package]] name = "simd-json" version = "0.13.3" @@ -11484,6 +12481,17 @@ dependencies = [ "serde", ] +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg", + "static_assertions", + "version_check", +] + [[package]] name = "snafu" version = "0.7.5" @@ -11524,12 +12532,45 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "sourcemap" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90" +dependencies = [ + "data-encoding", + "debugid", + "if_chain", + "rustc_version 0.2.3", + "serde", + "serde_json", + "unicode-id", + "url", +] + +[[package]] +name = "sourcemap" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7768edd06c02535e0d50653968f46e1e0d3aa54742190d35dd9466f59de9c71" +dependencies = [ + "base64-simd 0.7.0", + "data-encoding", + "debugid", + "if_chain", + "rustc_version 0.2.3", + "serde", + "serde_json", + "unicode-id-start", + "url", ] [[package]] @@ -11689,7 +12730,7 @@ dependencies = [ "futures-util", "hashlink", "hex", - "indexmap 2.0.0", + "indexmap 2.2.5", "log", "memchr", "native-tls", @@ -11873,6 +12914,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -11885,6 +12939,18 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" +[[package]] +name = "string_enum" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b650ea2087d32854a0f20b837fc56ec987a1cb4f758c9757e1171ee9812da63" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + [[package]] name = "stringprep" version = "0.1.4" @@ -11897,107 +12963,441 @@ dependencies = [ ] [[package]] -name = "strsim" -version = "0.10.0" +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + +[[package]] +name = "structmeta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" +dependencies = [ + "proc-macro2", + "quote", + "structmeta-derive", + "syn 2.0.48", +] + +[[package]] +name = "structmeta-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "strum" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +dependencies = [ + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" + +[[package]] +name = "strum_macros" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.48", +] + +[[package]] +name = "strum_macros" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.48", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subst" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca1318e5d6716d6541696727c88d9b8dfc8cfe6afd6908e186546fd4af7f5b98" +dependencies = [ + "memchr", + "unicode-width", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "swc_atoms" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d538eaaa6f085161d088a04cf0a3a5a52c5a7f2b3bd9b83f73f058b0ed357c0" +dependencies = [ + "hstr", + "once_cell", + "rustc-hash", + "serde", +] + +[[package]] +name = "swc_common" +version = "0.33.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3ae36feceded27f0178dc9dabb49399830847ffb7f866af01798844de8f973" +dependencies = [ + "ast_node", + "better_scoped_tls", + "cfg-if", + "either", + "from_variant", + "new_debug_unreachable", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "siphasher", + "sourcemap 6.4.1", + "swc_atoms", + "swc_eq_ignore_macros", + "swc_visit", + "tracing", + "unicode-width", + "url", +] + +[[package]] +name = "swc_config" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112884e66b60e614c0f416138b91b8b82b7fea6ed0ecc5e26bad4726c57a6c99" +dependencies = [ + "indexmap 2.2.5", + "serde", + "serde_json", + "swc_config_macro", +] + +[[package]] +name = "swc_config_macro" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2574f75082322a27d990116cd2a24de52945fc94172b24ca0b3e9e2a6ceb6b" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.110.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79401a45da704f4fb2552c5bf86ee2198e8636b121cb81f8036848a300edd53b" +dependencies = [ + "bitflags 2.4.2", + "is-macro", + "num-bigint", + "phf", + "scoped-tls", + "serde", + "string_enum", + "swc_atoms", + "swc_common", + "unicode-id", +] + +[[package]] +name = "swc_ecma_codegen" +version = "0.146.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b61ca275e3663238b71c4b5da8e6fb745bde9989ef37d94984dfc81fc6d009" +dependencies = [ + "memchr", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "sourcemap 6.4.1", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_codegen_macros", + "tracing", +] + +[[package]] +name = "swc_ecma_codegen_macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "394b8239424b339a12012ceb18726ed0244fce6bf6345053cb9320b2791dcaa5" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + +[[package]] +name = "swc_ecma_loader" +version = "0.45.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5713ab3429530c10bdf167170ebbde75b046c8003558459e4de5aaec62ce0f1" +dependencies = [ + "anyhow", + "pathdiff", + "serde", + "swc_common", + "tracing", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.141.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d17401dd95048a6a62b777d533c0999dabdd531ef9d667e22f8ae2a2a0d294" +dependencies = [ + "either", + "new_debug_unreachable", + "num-bigint", + "num-traits", + "phf", + "serde", + "smallvec", + "smartstring", + "stacker", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "tracing", + "typed-arena", +] + +[[package]] +name = "swc_ecma_transforms_base" +version = "0.135.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d4ab26ec124b03e47f54d4daade8e9a9dcd66d3a4ca3cd47045f138d267a60e" +dependencies = [ + "better_scoped_tls", + "bitflags 2.4.2", + "indexmap 2.2.5", + "once_cell", + "phf", + "rustc-hash", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_classes" +version = "0.124.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fe4376c024fa04394cafb8faecafb4623722b92dbbe46532258cc0a6b569d9c" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_macros" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "17e309b88f337da54ef7fe4c5b99c2c522927071f797ee6c9fb8b6bf2d100481" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] [[package]] -name = "strsim" -version = "0.11.0" +name = "swc_ecma_transforms_proposal" +version = "0.169.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "86de99757fc31d8977f47c02a26e5c9a243cb63b03fe8aa8b36d79924b8fa29c" +dependencies = [ + "either", + "rustc-hash", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] [[package]] -name = "structmeta" -version = "0.3.0" +name = "swc_ecma_transforms_react" +version = "0.181.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" +checksum = "9918e22caf1ea4a71085f5d818d6c0bf5c19d669cfb9d38f9fdc3da0496abdc7" dependencies = [ - "proc-macro2", - "quote", - "structmeta-derive", - "syn 2.0.48", + "base64 0.21.7", + "dashmap", + "indexmap 2.2.5", + "once_cell", + "serde", + "sha-1", + "string_enum", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", ] [[package]] -name = "structmeta-derive" -version = "0.3.0" +name = "swc_ecma_transforms_typescript" +version = "0.186.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" +checksum = "e1d1495c969ffdc224384f1fb73646b9c1b170779f20fdb984518deb054aa522" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", + "ryu-js", + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_react", + "swc_ecma_utils", + "swc_ecma_visit", ] [[package]] -name = "strum" -version = "0.25.0" +name = "swc_ecma_utils" +version = "0.125.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "7cead1083e46b0f072a82938f16d366014468f7510350957765bb4d013496890" dependencies = [ - "strum_macros 0.25.3", + "indexmap 2.2.5", + "num_cpus", + "once_cell", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "unicode-id", ] [[package]] -name = "strum" -version = "0.26.1" +name = "swc_ecma_visit" +version = "0.96.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +checksum = "a1d0100c383fb08b6f34911ab6f925950416a5d14404c1cd520d59fb8dfbb3bf" +dependencies = [ + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", + "tracing", +] [[package]] -name = "strum_macros" -version = "0.25.3" +name = "swc_eq_ignore_macros" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4" dependencies = [ - "heck 0.4.1", "proc-macro2", "quote", - "rustversion", "syn 2.0.48", ] [[package]] -name = "strum_macros" -version = "0.26.1" +name = "swc_macros_common" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +checksum = "50176cfc1cbc8bb22f41c6fe9d1ec53fbe057001219b5954961b8ad0f336fce9" dependencies = [ - "heck 0.4.1", "proc-macro2", "quote", - "rustversion", "syn 2.0.48", ] [[package]] -name = "subprocess" -version = "0.2.9" +name = "swc_visit" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +checksum = "b27078d8571abe23aa52ef608dd1df89096a37d867cf691cbb4f4c392322b7c9" dependencies = [ - "libc", - "winapi", + "either", + "swc_visit_macros", ] [[package]] -name = "subst" -version = "0.3.0" +name = "swc_visit_macros" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca1318e5d6716d6541696727c88d9b8dfc8cfe6afd6908e186546fd4af7f5b98" +checksum = "fa8bb05975506741555ea4d10c3a3bdb0e2357cd58e1a4a4332b8ebb4b44c34d" dependencies = [ - "memchr", - "unicode-width", + "Inflector", + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", ] -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - [[package]] name = "symbolic-common" version = "12.4.0" @@ -12165,6 +13565,15 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +[[package]] +name = "text_lines" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd5828de7deaa782e1dd713006ae96b3bee32d3279b79eb67ecf8072c059bcf" +dependencies = [ + "serde", +] + [[package]] name = "thiserror" version = "1.0.56" @@ -12343,9 +13752,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -12355,7 +13764,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.6", "tokio-macros", "tracing", "windows-sys 0.48.0", @@ -12373,9 +13782,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", @@ -12384,9 +13793,9 @@ dependencies = [ [[package]] name = "tokio-metrics" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b2fc67d5dec41db679b9b052eb572269616926040b7831e32c8a152df77b84" +checksum = "eace09241d62c98b7eeb1107d4c5c64ca3bd7da92e8c218c153ab3a78f9be112" dependencies = [ "futures-util", "pin-project-lite", @@ -12436,7 +13845,7 @@ dependencies = [ "postgres-protocol", "postgres-types", "rand", - "socket2 0.5.3", + "socket2 0.5.6", "tokio-util", "whoami", ] @@ -12461,6 +13870,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-socks" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0" +dependencies = [ + "either", + "futures-util", + "thiserror", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.14" @@ -12533,7 +13954,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", @@ -12546,7 +13967,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", @@ -12565,10 +13986,10 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "h2", + "h2 0.3.24", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "hyper-timeout", "percent-encoding", "pin-project", @@ -12593,10 +14014,10 @@ dependencies = [ "base64 0.21.7", "bytes", "flate2", - "h2", + "h2 0.3.24", "http 0.2.9", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.27", "hyper-timeout", "percent-encoding", "pin-project", @@ -12658,7 +14079,7 @@ dependencies = [ "futures-core", "futures-util", "http 0.2.9", - "http-body", + "http-body 0.4.5", "http-range-header", "httpdate", "mime", @@ -12837,6 +14258,32 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622b09ce2fe2df4618636fb92176d205662f59803f39e70d1c333393082de96c" +[[package]] +name = "trust-dns-proto" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.5.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "rand", + "serde", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "trust-dns-proto" version = "0.23.2" @@ -12846,7 +14293,7 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner", + "enum-as-inner 0.6.0", "futures-channel", "futures-io", "futures-util", @@ -12862,6 +14309,27 @@ dependencies = [ "url", ] +[[package]] +name = "trust-dns-resolver" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lazy_static", + "lru-cache", + "parking_lot 0.12.1", + "resolv-conf", + "serde", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto 0.22.0", +] + [[package]] name = "trust-dns-resolver" version = "0.23.2" @@ -12880,7 +14348,7 @@ dependencies = [ "thiserror", "tokio", "tracing", - "trust-dns-proto", + "trust-dns-proto 0.23.2", ] [[package]] @@ -12900,6 +14368,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + [[package]] name = "typed-builder" version = "0.16.2" @@ -12955,6 +14429,47 @@ dependencies = [ "version_check", ] +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-ucd-ident" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicase" version = "2.7.0" @@ -12970,6 +14485,18 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +[[package]] +name = "unicode-id" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f" + +[[package]] +name = "unicode-id-start" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8f73150333cb58412db36f2aca8f2875b013049705cc77b94ded70a1ab1f5da" + [[package]] name = "unicode-ident" version = "1.0.11" @@ -13015,6 +14542,16 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "unsafe-libyaml" version = "0.2.10" @@ -13051,6 +14588,25 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "urlpattern" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609" +dependencies = [ + "derive_more", + "regex", + "serde", + "unic-ucd-ident", + "url", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" version = "0.2.1" @@ -13068,6 +14624,18 @@ dependencies = [ "serde", ] +[[package]] +name = "v8" +version = "0.85.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec8e09551fa5c3500b47f08912b4a39e07ae20a3874051941408fbd52e3e5190" +dependencies = [ + "bitflags 2.4.2", + "fslock", + "once_cell", + "which 5.0.0", +] + [[package]] name = "valuable" version = "0.1.0" @@ -13304,8 +14872,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ "bitflags 2.4.2", - "indexmap 2.0.0", - "semver", + "indexmap 2.2.5", + "semver 1.0.18", ] [[package]] @@ -13333,7 +14901,7 @@ dependencies = [ "encoding_rs", "fxprof-processed-profile", "gimli", - "indexmap 2.0.0", + "indexmap 2.2.5", "ittapi", "libc", "log", @@ -13464,7 +15032,7 @@ dependencies = [ "cpp_demangle 0.3.5", "cranelift-entity", "gimli", - "indexmap 2.0.0", + "indexmap 2.2.5", "log", "object", "rustc-demangle", @@ -13527,7 +15095,7 @@ dependencies = [ "cc", "cfg-if", "encoding_rs", - "indexmap 2.0.0", + "indexmap 2.2.5", "libc", "log", "mach", @@ -13596,7 +15164,7 @@ checksum = "ca677c36869e45602617b25a9968ec0d895ad9a0aee3756d9dee1ddd89456f91" dependencies = [ "anyhow", "heck 0.4.1", - "indexmap 2.0.0", + "indexmap 2.2.5", "wit-parser", ] @@ -13675,6 +15243,19 @@ dependencies = [ "rustix 0.38.31", ] +[[package]] +name = "which" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.31", + "windows-sys 0.48.0", +] + [[package]] name = "whoami" version = "1.5.0" @@ -14044,9 +15625,9 @@ checksum = "316b36a9f0005f5aa4b03c39bc3728d045df136f8c13a73b7db4510dec725e08" dependencies = [ "anyhow", "id-arena", - "indexmap 2.0.0", + "indexmap 2.2.5", "log", - "semver", + "semver 1.0.18", "serde", "serde_derive", "serde_json", @@ -14104,8 +15685,10 @@ dependencies = [ "axum", "base64 0.21.7", "bigdecimal 0.4.2", + "bit-set", "bit-vec", "bitflags 2.4.2", + "brotli", "byteorder", "bytes", "cc", @@ -14117,9 +15700,13 @@ dependencies = [ "crossbeam-queue", "crossbeam-utils", "crypto-bigint 0.5.5", + "crypto-common", + "curve25519-dalek", + "debugid", "deranged", "digest", "either", + "elliptic-curve 0.13.8", "fail", "flate2", "flume", @@ -14138,9 +15725,9 @@ dependencies = [ "hashbrown 0.13.2", "hashbrown 0.14.3", "hmac", - "hyper", + "hyper 0.14.27", "indexmap 1.9.3", - "indexmap 2.0.0", + "indexmap 2.2.5", "itertools 0.11.0", "jni", "lazy_static", @@ -14161,12 +15748,14 @@ dependencies = [ "moka", "nom", "num-bigint", + "num-bigint-dig", "num-integer", "num-iter", "num-traits", "openssl", "openssl-sys", "ordered-float 3.9.1", + "p256 0.13.2", "parking_lot 0.12.1", "parking_lot_core 0.9.8", "petgraph", @@ -14187,8 +15776,11 @@ dependencies = [ "regex-syntax 0.8.2", "reqwest", "ring 0.16.20", + "ring 0.17.5", + "rsa", "rust_decimal", "rustc-hash", + "rustls", "scopeguard", "sea-orm", "sea-query", @@ -14198,7 +15790,9 @@ dependencies = [ "serde_with", "sha1", "sha2", + "simdutf8", "smallvec", + "socket2 0.5.6", "sqlx", "sqlx-core", "sqlx-mysql", @@ -14243,6 +15837,18 @@ dependencies = [ "tap", ] +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek", + "rand_core", + "serde", + "zeroize", +] + [[package]] name = "xmlparser" version = "0.13.5" @@ -14300,7 +15906,7 @@ dependencies = [ "base64 0.13.1", "futures", "http 0.2.9", - "hyper", + "hyper 0.14.27", "hyper-rustls", "itertools 0.10.5", "log", @@ -14347,6 +15953,20 @@ name = "zeroize" version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] [[package]] name = "zstd" diff --git a/Cargo.toml b/Cargo.toml index ae63068391aa6..ccaf7008212c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -136,6 +136,8 @@ arrow-flight = "50" arrow-select = "50" arrow-ord = "50" arrow-row = "50" +# FIXME: This should be changed to the official crate once it's published. +arrow-udf-deno = { git = "https://github.com/bakjos/arrow-udf.git", rev = "8660631" } arrow-udf-js = "0.1" arrow-udf-wasm = { version = "0.2", features = ["build"] } arrow-udf-python = { git = "https://github.com/risingwavelabs/arrow-udf.git", rev = "6c32f71" } diff --git a/Makefile.toml b/Makefile.toml index f60b624f19c0b..a0e99e0c8a043 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -34,6 +34,7 @@ is_release = get_env ENABLE_RELEASE_PROFILE is_not_release = not ${is_release} is_dynamic_linking = get_env ENABLE_DYNAMIC_LINKING is_hummock_trace = get_env ENABLE_HUMMOCK_TRACE +is_deno_udf_enabled = get_env ENABLE_DENO_UDF is_python_udf_enabled = get_env ENABLE_PYTHON_UDF if ${is_sanitizer_enabled} @@ -60,6 +61,11 @@ else set_env RISINGWAVE_FEATURE_FLAGS "--features rw-static-link" end +if ${is_deno_udf_enabled} + flags = get_env RISINGWAVE_FEATURE_FLAGS + set_env RISINGWAVE_FEATURE_FLAGS "${flags} --features embedded-deno-udf" +end + if ${is_python_udf_enabled} flags = get_env RISINGWAVE_FEATURE_FLAGS set_env RISINGWAVE_FEATURE_FLAGS "${flags} --features embedded-python-udf" diff --git a/ci/scripts/build.sh b/ci/scripts/build.sh index 91b26bee8d383..355c4589a2466 100755 --- a/ci/scripts/build.sh +++ b/ci/scripts/build.sh @@ -53,6 +53,7 @@ cargo build \ -p risingwave_compaction_test \ -p risingwave_e2e_extended_mode_test \ $RISINGWAVE_FEATURE_FLAGS \ + --features embedded-deno-udf \ --features embedded-python-udf \ --profile "$profile" diff --git a/docker/Dockerfile b/docker/Dockerfile index a328239c51665..74da778045147 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -76,7 +76,7 @@ WORKDIR /risingwave ENV ENABLE_BUILD_DASHBOARD=1 RUN cargo fetch && \ - cargo build -p risingwave_cmd_all --release --features "rw-static-link" --features embedded-python-udf && \ + cargo build -p risingwave_cmd_all --release --features "rw-static-link" --features embedded-deno-udf --features embedded-python-udf && \ mkdir -p /risingwave/bin && \ mv /risingwave/target/release/risingwave /risingwave/bin/ && \ mv /risingwave/target/release/risingwave.dwp /risingwave/bin/ && \ diff --git a/docker/Dockerfile.hdfs b/docker/Dockerfile.hdfs index 9138214ba47b1..e839be434cc6b 100644 --- a/docker/Dockerfile.hdfs +++ b/docker/Dockerfile.hdfs @@ -106,7 +106,7 @@ ENV JAVA_HOME ${JAVA_HOME_PATH} ENV LD_LIBRARY_PATH ${JAVA_HOME_PATH}/lib/server:${LD_LIBRARY_PATH} RUN cargo fetch && \ - cargo build -p risingwave_cmd_all --release -p risingwave_object_store --features hdfs-backend --features "rw-static-link" --features embedded-python-udf && \ + cargo build -p risingwave_cmd_all --release -p risingwave_object_store --features hdfs-backend --features "rw-static-link" --features embedded-deno-udf --features embedded-python-udf && \ mkdir -p /risingwave/bin && \ mv /risingwave/target/release/risingwave /risingwave/bin/ && \ mv /risingwave/target/release/risingwave.dwp /risingwave/bin/ && \ diff --git a/proto/catalog.proto b/proto/catalog.proto index 67e71848e3d00..e751089b51cc7 100644 --- a/proto/catalog.proto +++ b/proto/catalog.proto @@ -244,6 +244,8 @@ message Function { // The zstd-compressed binary of the function. optional bytes compressed_binary = 17; bool always_retry_on_network_error = 16; + optional string param_name = 18; + optional string param_value = 19; oneof kind { ScalarFunction scalar = 11; diff --git a/proto/expr.proto b/proto/expr.proto index 802397f0456f9..bb603e2a79a9b 100644 --- a/proto/expr.proto +++ b/proto/expr.proto @@ -537,6 +537,9 @@ message UserDefinedFunction { // - If `language` is `rust` or `wasm`, the zstd-compressed wasm binary. optional bytes compressed_binary = 10; bool always_retry_on_network_error = 9; + + optional string param_name = 11; + optional string param_value = 12; } // Additional information for user defined table functions. @@ -548,4 +551,7 @@ message UserDefinedTableFunction { optional string identifier = 6; optional string body = 7; optional bytes compressed_binary = 10; + optional string param_name = 11; + optional string param_value = 12; + } diff --git a/src/cmd_all/Cargo.toml b/src/cmd_all/Cargo.toml index 813928ce931ea..f12f98d2492b2 100644 --- a/src/cmd_all/Cargo.toml +++ b/src/cmd_all/Cargo.toml @@ -10,8 +10,9 @@ repository = { workspace = true } [features] rw-static-link = ["workspace-config/rw-static-link"] rw-dynamic-link = ["workspace-config/rw-dynamic-link"] +embedded-deno-udf = ["risingwave_expr/embedded-deno-udf"] embedded-python-udf = ["risingwave_expr/embedded-python-udf"] -default = ["rw-static-link"] +default = ["embedded-deno-udf", "rw-static-link"] [package.metadata.cargo-machete] ignored = ["workspace-hack", "workspace-config", "task_stats_alloc"] diff --git a/src/expr/core/Cargo.toml b/src/expr/core/Cargo.toml index 03ed84ac6a216..a18439cb02f57 100644 --- a/src/expr/core/Cargo.toml +++ b/src/expr/core/Cargo.toml @@ -16,12 +16,14 @@ ignored = ["workspace-hack", "ctor"] normal = ["workspace-hack", "ctor"] [features] +embedded-deno-udf = ["arrow-udf-deno"] embedded-python-udf = ["arrow-udf-python"] [dependencies] anyhow = "1" arrow-array = { workspace = true } arrow-schema = { workspace = true } +arrow-udf-deno = { workspace = true, optional = true } arrow-udf-js = { workspace = true } arrow-udf-python = { workspace = true, optional = true } arrow-udf-wasm = { workspace = true } @@ -38,6 +40,7 @@ easy-ext = "1" educe = "0.5" either = "1" enum-as-inner = "0.6" +futures = "0.3" futures-async-stream = { workspace = true } futures-util = "0.3" itertools = "0.12" diff --git a/src/expr/core/src/expr/expr_udf.rs b/src/expr/core/src/expr/expr_udf.rs index 0c67dc3c58df1..0375b2f0a44be 100644 --- a/src/expr/core/src/expr/expr_udf.rs +++ b/src/expr/core/src/expr/expr_udf.rs @@ -20,6 +20,8 @@ use std::time::Duration; use anyhow::{Context, Error}; use arrow_schema::{Field, Fields, Schema}; +#[cfg(feature = "embedded-deno-udf")] +use arrow_udf_deno::{CallMode as DenoCallMode, Runtime as DenoRuntime}; use arrow_udf_js::{CallMode as JsCallMode, Runtime as JsRuntime}; #[cfg(feature = "embedded-python-udf")] use arrow_udf_python::{CallMode as PythonCallMode, Runtime as PythonRuntime}; @@ -73,6 +75,8 @@ pub enum UdfImpl { JavaScript(JsRuntime), #[cfg(feature = "embedded-python-udf")] Python(PythonRuntime), + #[cfg(feature = "embedded-deno-udf")] + Deno(Arc), } #[async_trait::async_trait] @@ -130,6 +134,8 @@ impl UserDefinedFunction { UdfImpl::JavaScript(_) => "javascript", #[cfg(feature = "embedded-python-udf")] UdfImpl::Python(_) => "python", + #[cfg(feature = "embedded-deno-udf")] + UdfImpl::Deno(_) => "deno", UdfImpl::External(_) => "external", }; let labels: &[&str; 4] = &[addr, language, &self.identifier, fragment_id.as_str()]; @@ -152,6 +158,10 @@ impl UserDefinedFunction { UdfImpl::JavaScript(runtime) => runtime.call(&self.identifier, &arrow_input), #[cfg(feature = "embedded-python-udf")] UdfImpl::Python(runtime) => runtime.call(&self.identifier, &arrow_input), + #[cfg(feature = "embedded-deno-udf")] + UdfImpl::Deno(runtime) => { + futures::executor::block_on(runtime.call(&self.identifier, arrow_input)) + } UdfImpl::External(client) => { let disable_retry_count = self.disable_retry_count.load(Ordering::Relaxed); let result = if self.always_retry_on_network_error { @@ -278,6 +288,57 @@ impl Build for UserDefinedFunction { )?; UdfImpl::Python(rt) } + #[cfg(feature = "embedded-deno-udf")] + "deno" if udf.body.is_some() => { + let mut rt = DenoRuntime::new(); + let body = match udf.get_body() { + Ok(body) => body.clone(), + Err(_) => match udf.get_compressed_binary() { + Ok(compressed_binary) => { + let binary = zstd::stream::decode_all(compressed_binary.as_slice()) + .context("failed to decompress binary")?; + String::from_utf8(binary).context("failed to decode binary")? + } + Err(_) => { + bail!("UDF body or compressed binary is required for deno UDF"); + } + }, + }; + + let is_async = if let (Ok(name), Ok(ty)) = ( + udf.get_param_name().map(|s| s.as_str()), + udf.get_param_value().map(|s| s.as_str()), + ) { + "function_type" == name && "async" == ty + } else { + false + }; + + let body = if is_async { + format!( + "export async function {}({}) {{ {} }}", + identifier, + udf.arg_names.join(","), + body + ) + } else { + format!( + "export function {}({}) {{ {} }}", + identifier, + udf.arg_names.join(","), + body + ) + }; + + futures::executor::block_on(rt.add_function( + identifier, + arrow_schema::DataType::try_from(&return_type)?, + DenoCallMode::CalledOnNullInput, + &body, + ))?; + + UdfImpl::Deno(rt) + } #[cfg(not(madsim))] _ => { let link = udf.get_link()?; diff --git a/src/expr/core/src/table_function/user_defined.rs b/src/expr/core/src/table_function/user_defined.rs index 0d1d726c394c7..e8eca9fb811d1 100644 --- a/src/expr/core/src/table_function/user_defined.rs +++ b/src/expr/core/src/table_function/user_defined.rs @@ -17,6 +17,8 @@ use std::sync::Arc; use anyhow::Context; use arrow_array::RecordBatch; use arrow_schema::{Field, Fields, Schema, SchemaRef}; +#[cfg(feature = "embedded-deno-udf")] +use arrow_udf_deno::{CallMode as DenoCallMode, Runtime as DenoRuntime}; use arrow_udf_js::{CallMode as JsCallMode, Runtime as JsRuntime}; #[cfg(feature = "embedded-python-udf")] use arrow_udf_python::{CallMode as PythonCallMode, Runtime as PythonRuntime}; @@ -78,6 +80,13 @@ impl UdfImpl { yield res?; } } + #[cfg(feature = "embedded-deno-udf")] + UdfImpl::Deno(runtime) => { + let mut iter = runtime.call_table_function(identifier, input, 1024).await?; + while let Some(res) = iter.next().await { + yield res?; + } + } UdfImpl::Wasm(runtime) => { for res in runtime.call_table_function(identifier, &input)? { yield res?; @@ -224,6 +233,79 @@ pub fn new_user_defined(prost: &PbTableFunction, chunk_size: usize) -> Result { + let rt = DenoRuntime::new(); + let body = match udtf.get_body() { + Ok(body) => body.clone(), + Err(_) => match udtf.get_compressed_binary() { + Ok(compressed_binary) => { + let binary = zstd::stream::decode_all(compressed_binary.as_slice()) + .context("failed to decompress binary")?; + String::from_utf8(binary).context("failed to decode binary")? + } + Err(_) => { + bail!("UDF body or compressed binary is required for deno UDF"); + } + }, + }; + + let function_type = if let (Ok(f), Ok(function_type)) = ( + udtf.get_param_name().map(|s| s.as_str()), + udtf.get_param_value().map(|s| s.as_str()), + ) { + if f == "function_type" { + function_type + } else { + "generator" + } + } else { + "generator" + }; + + let body = match function_type { + "async" => { + format!( + "export async function {}({}) {{ {} }}", + identifier, + udtf.arg_names.join(","), + body + ) + } + "async_generator" => { + format!( + "export async function* {}({}) {{ {} }}", + identifier, + udtf.arg_names.join(","), + body + ) + } + "generator" => { + format!( + "export function* {}({}) {{ {} }}", + identifier, + udtf.arg_names.join(","), + body + ) + } + _ => { + format!( + "export function {}({}) {{ {} }}", + identifier, + udtf.arg_names.join(","), + body + ) + } + }; + + futures::executor::block_on(rt.add_function( + identifier, + arrow_schema::DataType::try_from(&return_type)?, + DenoCallMode::CalledOnNullInput, + &body, + ))?; + UdfImpl::Deno(rt) + } // connect to UDF service _ => { let link = udtf.get_link()?; diff --git a/src/frontend/src/catalog/function_catalog.rs b/src/frontend/src/catalog/function_catalog.rs index 142bc222a59b8..873bb744079bb 100644 --- a/src/frontend/src/catalog/function_catalog.rs +++ b/src/frontend/src/catalog/function_catalog.rs @@ -35,6 +35,8 @@ pub struct FunctionCatalog { pub link: Option, pub compressed_binary: Option>, pub always_retry_on_network_error: bool, + pub param_name: Option, + pub param_value: Option, } #[derive(Clone, Display, PartialEq, Eq, Hash, Debug)] @@ -72,6 +74,8 @@ impl From<&PbFunction> for FunctionCatalog { link: prost.link.clone(), compressed_binary: prost.compressed_binary.clone(), always_retry_on_network_error: prost.always_retry_on_network_error, + param_name: prost.param_name.clone(), + param_value: prost.param_value.clone(), } } } diff --git a/src/frontend/src/expr/table_function.rs b/src/frontend/src/expr/table_function.rs index c72c207c53783..332be13ce4875 100644 --- a/src/frontend/src/expr/table_function.rs +++ b/src/frontend/src/expr/table_function.rs @@ -80,6 +80,8 @@ impl TableFunction { identifier: c.identifier.clone(), body: c.body.clone(), compressed_binary: c.compressed_binary.clone(), + param_name: c.param_name.clone(), + param_value: c.param_value.clone(), }), } } diff --git a/src/frontend/src/expr/user_defined_function.rs b/src/frontend/src/expr/user_defined_function.rs index a9f7f148e8dfa..1ed1e847832d2 100644 --- a/src/frontend/src/expr/user_defined_function.rs +++ b/src/frontend/src/expr/user_defined_function.rs @@ -60,6 +60,8 @@ impl UserDefinedFunction { link: udf.link.clone(), compressed_binary: udf.compressed_binary.clone(), always_retry_on_network_error: udf.always_retry_on_network_error, + param_name: udf.param_name.clone(), + param_value: udf.param_value.clone(), }; Ok(Self { @@ -96,6 +98,8 @@ impl Expr for UserDefinedFunction { body: self.catalog.body.clone(), compressed_binary: self.catalog.compressed_binary.clone(), always_retry_on_network_error: self.catalog.always_retry_on_network_error, + param_name: self.catalog.param_name.clone(), + param_value: self.catalog.param_value.clone(), })), } } diff --git a/src/frontend/src/handler/create_function.rs b/src/frontend/src/handler/create_function.rs index 95e2900c1db84..57a72d75065da 100644 --- a/src/frontend/src/handler/create_function.rs +++ b/src/frontend/src/handler/create_function.rs @@ -50,7 +50,7 @@ pub async fn handle_create_function( Some(lang) => { let lang = lang.real_value().to_lowercase(); match &*lang { - "python" | "java" | "wasm" | "rust" | "javascript" => lang, + "python" | "java" | "wasm" | "rust" | "javascript" | "deno" => lang, _ => { return Err(ErrorCode::InvalidParameterValue(format!( "language {} is not supported", @@ -122,6 +122,8 @@ pub async fn handle_create_function( let mut link = None; let mut body = None; let mut compressed_binary = None; + let mut param_name = None; + let mut param_value = None; match language.as_str() { "python" if params.using.is_none() => { @@ -186,6 +188,41 @@ pub async fn handle_create_function( .into_string(), ); } + "deno" => { + identifier = function_name.to_string(); + match (params.using, params.as_) { + (None, None) => { + return Err(ErrorCode::InvalidParameterValue( + "Either USING or AS must be specified".into(), + ) + .into()) + } + (None, Some(_as)) => body = Some(_as.into_string()), + (Some(CreateFunctionUsing::Link(link)), None) => { + let bytes = download_code_from_link(&link).await?; + compressed_binary = Some(zstd::stream::encode_all(bytes.as_slice(), 0)?); + } + (Some(CreateFunctionUsing::Base64(encoded)), None) => { + use base64::prelude::{Engine, BASE64_STANDARD}; + let bytes = BASE64_STANDARD + .decode(encoded) + .context("invalid base64 encoding")?; + compressed_binary = Some(zstd::stream::encode_all(bytes.as_slice(), 0)?); + } + (Some(_), Some(_)) => { + return Err(ErrorCode::InvalidParameterValue( + "Both USING and AS cannot be specified".into(), + ) + .into()) + } + }; + + param_name = params.param.as_ref().map(|_| "function_type".to_string()); + param_value = params.param.map(|p| { + let CreateFunctionParamType::FunctionType(f) = p; + return f.to_string(); + }); + } "rust" => { if params.using.is_some() { return Err(ErrorCode::InvalidParameterValue( @@ -282,6 +319,8 @@ pub async fn handle_create_function( always_retry_on_network_error: with_options .always_retry_on_network_error .unwrap_or_default(), + param_name, + param_value, }; let catalog_writer = session.catalog_writer()?; @@ -337,6 +376,19 @@ fn find_wasm_identifier_v2( Ok(identifier.into()) } +/// Download wasm binary from a link. +#[allow(clippy::unused_async)] +async fn download_code_from_link(link: &str) -> Result> { + // currently only local file system is supported + if let Some(path) = link.strip_prefix("fs://") { + let content = + std::fs::read(path).context("failed to read the code from local file system")?; + Ok(content) + } else { + Err(ErrorCode::InvalidParameterValue("only 'fs://' is supported".to_string()).into()) + } +} + /// Generate a function identifier in v0.1 format from the function signature. fn wasm_identifier_v1( name: &str, diff --git a/src/frontend/src/handler/create_sql_function.rs b/src/frontend/src/handler/create_sql_function.rs index f4c683b4d7a0e..068c0afd9c3c8 100644 --- a/src/frontend/src/handler/create_sql_function.rs +++ b/src/frontend/src/handler/create_sql_function.rs @@ -344,6 +344,8 @@ pub async fn handle_create_sql_function( link: None, owner: session.user_id(), always_retry_on_network_error: false, + param_name: None, + param_value: None, }; let catalog_writer = session.catalog_writer()?; diff --git a/src/meta/model_v2/src/function.rs b/src/meta/model_v2/src/function.rs index eaf368aa15d1e..2f101e627cc93 100644 --- a/src/meta/model_v2/src/function.rs +++ b/src/meta/model_v2/src/function.rs @@ -47,6 +47,8 @@ pub struct Model { pub compressed_binary: Option>, pub kind: FunctionKind, pub always_retry_on_network_error: bool, + pub param_name: Option, + pub param_value: Option, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] @@ -104,6 +106,8 @@ impl From for ActiveModel { compressed_binary: Set(function.compressed_binary), kind: Set(function.kind.unwrap().into()), always_retry_on_network_error: Set(function.always_retry_on_network_error), + param_name: Set(function.param_name), + param_value: Set(function.param_value), } } } diff --git a/src/meta/src/controller/mod.rs b/src/meta/src/controller/mod.rs index 7de1582ceb655..3f36a37077cdb 100644 --- a/src/meta/src/controller/mod.rs +++ b/src/meta/src/controller/mod.rs @@ -314,6 +314,8 @@ impl From> for PbFunction { compressed_binary: value.0.compressed_binary, kind: Some(value.0.kind.into()), always_retry_on_network_error: value.0.always_retry_on_network_error, + param_name: value.0.param_name, + param_value: value.0.param_value, } } } diff --git a/src/sqlparser/src/ast/mod.rs b/src/sqlparser/src/ast/mod.rs index c6317d2930c22..a272648c9902d 100644 --- a/src/sqlparser/src/ast/mod.rs +++ b/src/sqlparser/src/ast/mod.rs @@ -2726,6 +2726,8 @@ pub struct CreateFunctionBody { pub return_: Option, /// USING ... pub using: Option, + + pub param: Option, } impl fmt::Display for CreateFunctionBody { @@ -2745,6 +2747,9 @@ impl fmt::Display for CreateFunctionBody { if let Some(using) = &self.using { write!(f, " {using}")?; } + if let Some(param) = &self.param { + write!(f, " {param}")?; + } Ok(()) } } @@ -2819,6 +2824,43 @@ impl fmt::Display for CreateFunctionUsing { } } +#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +pub enum CreateFunctionParamFunctionType { + Normal, + Async, + Generator, + AsyncGenerator, +} + +impl fmt::Display for CreateFunctionParamFunctionType { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + CreateFunctionParamFunctionType::Normal => write!(f, "normal"), + CreateFunctionParamFunctionType::Async => write!(f, "async"), + CreateFunctionParamFunctionType::Generator => write!(f, "generator"), + CreateFunctionParamFunctionType::AsyncGenerator => write!(f, "async_generator"), + } + } +} + +#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +pub enum CreateFunctionParamType { + FunctionType(CreateFunctionParamFunctionType), +} + +impl fmt::Display for CreateFunctionParamType { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "SET ")?; + match self { + CreateFunctionParamType::FunctionType(function_type) => { + write!(f, "function_type = '{function_type}'") + } + } + } +} + #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum SetVariableValue { @@ -3014,6 +3056,7 @@ mod tests { as_: Some(FunctionDefinition::SingleQuotedDef("SELECT 1".to_string())), return_: None, using: None, + param: None, }, with_options: CreateFunctionWithOptions { always_retry_on_network_error: None, @@ -3035,6 +3078,7 @@ mod tests { as_: Some(FunctionDefinition::SingleQuotedDef("SELECT 1".to_string())), return_: None, using: None, + param: None, }, with_options: CreateFunctionWithOptions { always_retry_on_network_error: Some(true), diff --git a/src/sqlparser/src/parser.rs b/src/sqlparser/src/parser.rs index d4f33115d63ce..3a2bc80f25fcf 100644 --- a/src/sqlparser/src/parser.rs +++ b/src/sqlparser/src/parser.rs @@ -2352,6 +2352,9 @@ impl Parser { } else if self.parse_keyword(Keyword::USING) { ensure_not_set(&body.using, "USING")?; body.using = Some(self.parse_create_function_using()?); + } else if self.parse_keyword(Keyword::SET) { + ensure_not_set(&body.param, "SET")?; + body.param = Some(self.parse_create_function_param()?); } else { return Ok(body); } @@ -2374,6 +2377,48 @@ impl Parser { } } + fn parse_create_function_param(&mut self) -> Result { + let variable = self.parse_identifier()?; + if variable.value.to_lowercase() != "function_type" { + return Err(ParserError::ParserError(format!( + "SET {} is not supported", + variable.value + ))); + } + + if self.consume_token(&Token::Eq) || self.parse_keyword(Keyword::TO) { + let value = self.parse_set_variable()?; + match value { + SetVariableValue::Single(s) => { + match s.to_string_unquoted().to_lowercase().as_str() { + "normal" => Ok(CreateFunctionParamType::FunctionType( + CreateFunctionParamFunctionType::Normal, + )), + "async" => Ok(CreateFunctionParamType::FunctionType( + CreateFunctionParamFunctionType::Async, + )), + "generator" => Ok(CreateFunctionParamType::FunctionType( + CreateFunctionParamFunctionType::Generator, + )), + "async_generator" => Ok(CreateFunctionParamType::FunctionType( + CreateFunctionParamFunctionType::AsyncGenerator, + )), + v => Err(ParserError::ParserError(format!( + "SET FUNCTION_TYPE to {} is not supported", + v + ))), + } + } + SetVariableValue::List(_) => self.expected("only one value set", self.peek_token()), + SetVariableValue::Default => Ok(CreateFunctionParamType::FunctionType( + CreateFunctionParamFunctionType::Normal, + )), + } + } else { + self.expected("equals sign or TO", self.peek_token()) + } + } + // CREATE USER name [ [ WITH ] option [ ... ] ] // where option can be: // SUPERUSER | NOSUPERUSER diff --git a/src/sqlparser/tests/sqlparser_postgres.rs b/src/sqlparser/tests/sqlparser_postgres.rs index 9ef7a7f085c4b..bcc77a56d6c65 100644 --- a/src/sqlparser/tests/sqlparser_postgres.rs +++ b/src/sqlparser/tests/sqlparser_postgres.rs @@ -872,6 +872,33 @@ fn parse_create_function() { with_options: Default::default(), } ); + + let sql = "CREATE FUNCTION add(INT, INT) RETURNS INT LANGUAGE SQL IMMUTABLE AS 'select $1 + $2;' SET function_type = 'async'"; + assert_eq!( + verified_stmt(sql), + Statement::CreateFunction { + or_replace: false, + temporary: false, + name: ObjectName(vec![Ident::new_unchecked("add")]), + args: Some(vec![ + OperateFunctionArg::unnamed(DataType::Int), + OperateFunctionArg::unnamed(DataType::Int), + ]), + returns: Some(CreateFunctionReturns::Value(DataType::Int)), + params: CreateFunctionBody { + language: Some("SQL".into()), + behavior: Some(FunctionBehavior::Immutable), + as_: Some(FunctionDefinition::SingleQuotedDef( + "select $1 + $2;".into() + )), + param: Some(CreateFunctionParamType::FunctionType( + CreateFunctionParamFunctionType::Async + )), + ..Default::default() + }, + with_options: Default::default(), + } + ); } #[test] diff --git a/src/workspace-hack/Cargo.toml b/src/workspace-hack/Cargo.toml index 0e7e8c296dfdc..415336f612aaf 100644 --- a/src/workspace-hack/Cargo.toml +++ b/src/workspace-hack/Cargo.toml @@ -32,8 +32,10 @@ aws-smithy-types = { version = "1", default-features = false, features = ["byte- axum = { version = "0.6" } base64 = { version = "0.21" } bigdecimal = { version = "0.4" } +bit-set = { version = "0.5" } bit-vec = { version = "0.6" } bitflags = { version = "2", default-features = false, features = ["serde", "std"] } +brotli = { version = "3" } byteorder = { version = "1" } bytes = { version = "1", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] } @@ -44,9 +46,13 @@ crossbeam-epoch = { version = "0.9" } crossbeam-queue = { version = "0.3" } crossbeam-utils = { version = "0.8" } crypto-bigint = { version = "0.5", features = ["generic-array", "zeroize"] } +crypto-common = { version = "0.1", default-features = false, features = ["getrandom", "std"] } +curve25519-dalek = { version = "4", features = ["digest"] } +debugid = { version = "0.8", default-features = false, features = ["serde"] } deranged = { version = "0.3", default-features = false, features = ["powerfmt", "serde", "std"] } digest = { version = "0.10", features = ["mac", "oid", "std"] } either = { version = "1", features = ["serde"] } +elliptic-curve = { version = "0.13", features = ["ecdh", "hazmat", "pem", "std"] } fail = { version = "0.5", default-features = false, features = ["failpoints"] } flate2 = { version = "1", features = ["zlib"] } flume = { version = "0.10" } @@ -87,17 +93,19 @@ memchr = { version = "2" } mio = { version = "0.8", features = ["net", "os-ext"] } moka = { version = "0.12", features = ["future", "sync"] } nom = { version = "7" } -num-bigint = { version = "0.4" } +num-bigint = { version = "0.4", features = ["rand", "serde"] } +num-bigint-dig = { version = "0.8", default-features = false, features = ["i128", "prime", "u64_digit", "zeroize"] } num-integer = { version = "0.1", features = ["i128"] } num-iter = { version = "0.1", default-features = false, features = ["i128", "std"] } num-traits = { version = "0.2", features = ["i128", "libm"] } openssl = { version = "0.10", features = ["vendored"] } openssl-sys = { version = "0.9", default-features = false, features = ["vendored"] } ordered-float = { version = "3" } +p256 = { version = "0.13", features = ["ecdh"] } parking_lot = { version = "0.12", features = ["arc_lock", "deadlock_detection"] } parking_lot_core = { version = "0.9", default-features = false, features = ["deadlock_detection"] } petgraph = { version = "0.6" } -phf = { version = "0.11", features = ["uncased"] } +phf = { version = "0.11", features = ["macros", "uncased"] } phf_shared = { version = "0.11", features = ["uncased"] } postgres-types = { version = "0.2", default-features = false, features = ["derive", "with-chrono-0_4", "with-serde_json-1", "with-uuid-1"] } proc-macro2 = { version = "1", features = ["span-locations"] } @@ -112,20 +120,25 @@ redis = { version = "0.25", features = ["async-std-comp", "tokio-comp"] } regex = { version = "1" } regex-automata = { version = "0.4", default-features = false, features = ["dfa", "hybrid", "meta", "nfa", "perf", "unicode"] } regex-syntax = { version = "0.8" } -reqwest = { version = "0.11", features = ["blocking", "json", "rustls-tls"] } -ring = { version = "0.16", features = ["std"] } +reqwest = { version = "0.11", features = ["blocking", "brotli", "gzip", "json", "rustls-tls", "socks", "stream"] } +ring-9067fe90e8c1f593 = { package = "ring", version = "0.17", features = ["std"] } +ring-986da7b5efc2b80e = { package = "ring", version = "0.16", features = ["std"] } +rsa = { version = "0.9", features = ["hazmat"] } rust_decimal = { version = "1", features = ["db-postgres", "maths"] } rustc-hash = { version = "1" } +rustls = { version = "0.21", features = ["dangerous_configuration"] } scopeguard = { version = "1" } sea-orm = { version = "0.12", features = ["runtime-tokio-native-tls", "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite"] } sea-query = { version = "0.30", default-features = false, features = ["backend-mysql", "backend-postgres", "backend-sqlite", "derive", "hashable-value", "postgres-array", "thread-safe", "with-bigdecimal", "with-chrono", "with-json", "with-rust_decimal", "with-time", "with-uuid"] } sea-query-binder = { version = "0.5", default-features = false, features = ["postgres-array", "runtime-tokio-native-tls", "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", "with-bigdecimal", "with-chrono", "with-json", "with-rust_decimal", "with-time", "with-uuid"] } serde = { version = "1", features = ["alloc", "derive", "rc"] } -serde_json = { version = "1", features = ["alloc", "raw_value"] } +serde_json = { version = "1", features = ["alloc", "preserve_order", "raw_value"] } serde_with = { version = "3", features = ["json"] } -sha1 = { version = "0.10" } +sha1 = { version = "0.10", features = ["oid"] } sha2 = { version = "0.10", features = ["oid"] } +simdutf8 = { version = "0.1", features = ["aarch64_neon", "public_imp"] } smallvec = { version = "1", default-features = false, features = ["const_new", "serde", "union", "write"] } +socket2 = { version = "0.5", default-features = false, features = ["all"] } sqlx = { version = "0.7", default-features = false, features = ["bigdecimal", "chrono", "json", "mysql", "postgres", "runtime-tokio-native-tls", "rust_decimal", "sqlite", "time", "uuid"] } sqlx-core = { version = "0.7", features = ["_rt-tokio", "_tls-native-tls", "bigdecimal", "chrono", "json", "migrate", "offline", "rust_decimal", "time", "uuid"] } sqlx-mysql = { version = "0.7", default-features = false, features = ["bigdecimal", "chrono", "json", "rust_decimal", "time", "uuid"] } @@ -134,10 +147,11 @@ sqlx-sqlite = { version = "0.7", default-features = false, features = ["chrono", strum = { version = "0.25", features = ["derive"] } subtle = { version = "2" } syn-dff4ba8e3ae991db = { package = "syn", version = "1", features = ["extra-traits", "full", "visit", "visit-mut"] } +syn-f595c2ba2a3f28df = { package = "syn", version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } target-lexicon = { version = "0.12", features = ["std"] } time = { version = "0.3", features = ["local-offset", "macros", "serde-well-known"] } tinyvec = { version = "1", features = ["alloc", "grab_spare_slice", "rustc_1_55"] } -tokio = { version = "1", features = ["full", "stats", "tracing"] } +tokio = { version = "1", features = ["full", "tracing"] } tokio-postgres = { git = "https://github.com/madsim-rs/rust-postgres.git", rev = "ac00d88", features = ["with-chrono-0_4", "with-uuid-1"] } tokio-stream = { git = "https://github.com/madsim-rs/tokio.git", rev = "fe39bb8e", features = ["fs", "net"] } tokio-util = { version = "0.7", features = ["codec", "io"] } @@ -150,10 +164,10 @@ tracing-core = { version = "0.1" } tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "local-time", "parking_lot"] } unicode-bidi = { version = "0.3" } unicode-normalization = { version = "0.1" } -url = { version = "2", features = ["serde"] } +url = { version = "2", features = ["expose_internals", "serde"] } uuid = { version = "1", features = ["fast-rng", "serde", "v4"] } whoami = { version = "1" } -zeroize = { version = "1" } +zeroize = { version = "1", features = ["zeroize_derive"] } zstd = { version = "0.13" } zstd-safe = { version = "7", default-features = false, features = ["arrays", "legacy", "std", "zdict_builder"] } zstd-sys = { version = "2", default-features = false, features = ["legacy", "std", "zdict_builder"] } @@ -164,31 +178,59 @@ aho-corasick = { version = "1" } allocator-api2 = { version = "0.2", default-features = false, features = ["alloc", "nightly"] } anyhow = { version = "1", features = ["backtrace"] } auto_enums = { version = "0.8", features = ["futures03", "tokio1"] } +base64 = { version = "0.21" } +bit-set = { version = "0.5" } +bit-vec = { version = "0.6" } bitflags = { version = "2", default-features = false, features = ["serde", "std"] } +brotli = { version = "3" } +byteorder = { version = "1" } bytes = { version = "1", features = ["serde"] } cc = { version = "1", default-features = false, features = ["parallel"] } crossbeam-epoch = { version = "0.9" } crossbeam-queue = { version = "0.3" } crossbeam-utils = { version = "0.8" } +crypto-bigint = { version = "0.5", features = ["generic-array", "zeroize"] } +crypto-common = { version = "0.1", default-features = false, features = ["getrandom", "std"] } +curve25519-dalek = { version = "4", features = ["digest"] } +debugid = { version = "0.8", default-features = false, features = ["serde"] } deranged = { version = "0.3", default-features = false, features = ["powerfmt", "serde", "std"] } digest = { version = "0.10", features = ["mac", "oid", "std"] } either = { version = "1", features = ["serde"] } +elliptic-curve = { version = "0.13", features = ["ecdh", "hazmat", "pem", "std"] } +flate2 = { version = "1", features = ["zlib"] } frunk_core = { version = "0.4", default-features = false, features = ["std"] } +futures = { version = "0.3" } +futures-channel = { version = "0.3", features = ["sink"] } +futures-core = { version = "0.3" } +futures-executor = { version = "0.3" } +futures-io = { version = "0.3" } +futures-sink = { version = "0.3" } +futures-task = { version = "0.3" } +futures-util = { version = "0.3", features = ["channel", "io", "sink"] } generic-array = { version = "0.14", default-features = false, features = ["more_lengths", "zeroize"] } getrandom = { git = "https://github.com/madsim-rs/getrandom.git", rev = "e79a7ae", default-features = false, features = ["js", "rdrand", "std"] } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14", features = ["nightly", "raw"] } +hmac = { version = "0.12", default-features = false, features = ["reset"] } +hyper = { version = "0.14", features = ["full"] } indexmap-f595c2ba2a3f28df = { package = "indexmap", version = "2", features = ["serde"] } itertools = { version = "0.11" } lazy_static = { version = "1", default-features = false, features = ["spin_no_std"] } libc = { version = "0.2", features = ["extra_traits"] } +lock_api = { version = "0.4", features = ["arc_lock"] } log = { version = "0.4", default-features = false, features = ["kv_unstable", "std"] } memchr = { version = "2" } +mio = { version = "0.8", features = ["net", "os-ext"] } nom = { version = "7" } -num-bigint = { version = "0.4" } +num-bigint = { version = "0.4", features = ["rand", "serde"] } +num-bigint-dig = { version = "0.8", default-features = false, features = ["i128", "prime", "u64_digit", "zeroize"] } num-integer = { version = "0.1", features = ["i128"] } +num-iter = { version = "0.1", default-features = false, features = ["i128", "std"] } num-traits = { version = "0.2", features = ["i128", "libm"] } +p256 = { version = "0.13", features = ["ecdh"] } +parking_lot = { version = "0.12", features = ["arc_lock", "deadlock_detection"] } +parking_lot_core = { version = "0.9", default-features = false, features = ["deadlock_detection"] } petgraph = { version = "0.6" } -phf = { version = "0.11", features = ["uncased"] } +phf = { version = "0.11", features = ["macros", "uncased"] } phf_shared = { version = "0.11", features = ["uncased"] } proc-macro2 = { version = "1", features = ["span-locations"] } prost = { version = "0.12", features = ["no-recursion-limit"] } @@ -200,19 +242,38 @@ rand_core = { version = "0.6", default-features = false, features = ["std"] } regex = { version = "1" } regex-automata = { version = "0.4", default-features = false, features = ["dfa", "hybrid", "meta", "nfa", "perf", "unicode"] } regex-syntax = { version = "0.8" } +reqwest = { version = "0.11", features = ["blocking", "brotli", "gzip", "json", "rustls-tls", "socks", "stream"] } +ring-9067fe90e8c1f593 = { package = "ring", version = "0.17", features = ["std"] } +ring-986da7b5efc2b80e = { package = "ring", version = "0.16", features = ["std"] } +rsa = { version = "0.9", features = ["hazmat"] } rustc-hash = { version = "1" } +rustls = { version = "0.21", features = ["dangerous_configuration"] } scopeguard = { version = "1" } serde = { version = "1", features = ["alloc", "derive", "rc"] } -serde_json = { version = "1", features = ["alloc", "raw_value"] } +serde_json = { version = "1", features = ["alloc", "preserve_order", "raw_value"] } +sha1 = { version = "0.10", features = ["oid"] } sha2 = { version = "0.10", features = ["oid"] } +simdutf8 = { version = "0.1", features = ["aarch64_neon", "public_imp"] } +smallvec = { version = "1", default-features = false, features = ["const_new", "serde", "union", "write"] } +socket2 = { version = "0.5", default-features = false, features = ["all"] } +strum = { version = "0.25", features = ["derive"] } subtle = { version = "2" } syn-dff4ba8e3ae991db = { package = "syn", version = "1", features = ["extra-traits", "full", "visit", "visit-mut"] } syn-f595c2ba2a3f28df = { package = "syn", version = "2", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } target-lexicon = { version = "0.12", features = ["std"] } time = { version = "0.3", features = ["local-offset", "macros", "serde-well-known"] } time-macros = { version = "0.2", default-features = false, features = ["formatting", "parsing", "serde"] } +tinyvec = { version = "1", features = ["alloc", "grab_spare_slice", "rustc_1_55"] } +tokio = { version = "1", features = ["full", "tracing"] } +tokio-util = { version = "0.7", features = ["codec", "io"] } toml_datetime = { version = "0.6", default-features = false, features = ["serde"] } toml_edit = { version = "0.19", features = ["serde"] } -zeroize = { version = "1" } +tracing = { version = "0.1", features = ["log"] } +tracing-core = { version = "0.1" } +unicode-bidi = { version = "0.3" } +unicode-normalization = { version = "0.1" } +url = { version = "2", features = ["expose_internals", "serde"] } +uuid = { version = "1", features = ["fast-rng", "serde", "v4"] } +zeroize = { version = "1", features = ["zeroize_derive"] } ### END HAKARI SECTION