diff --git a/Cargo.lock b/Cargo.lock index 00d0a8c4..47bd17fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,7 +57,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -172,7 +172,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -460,7 +460,7 @@ checksum = "0a184645bcc6f52d69d8e7639720699c6a99efb711f886e251ed1d16db8dd90e" dependencies = [ "quote", "swc_macros_common", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -513,7 +513,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -535,7 +535,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -546,7 +546,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -563,7 +563,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -578,7 +578,7 @@ version = "1.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7b6141e96a8c160799cc2d5adecd5cbbe5054cb8c7c4af53da0f83bb7ad256" dependencies = [ - "aws-lc-sys 0.37.0", + "aws-lc-sys 0.37.1", "untrusted 0.7.1", "zeroize", ] @@ -599,9 +599,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.37.0" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c34dda4df7017c8db52132f0f8a2e0f8161649d15723ed63fc00c82d0f2081a" +checksum = "b092fe214090261288111db7a2b2c2118e5a7f30dc2569f1732c4069a6840549" dependencies = [ "cc", "cmake", @@ -791,7 +791,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.114", + "syn 2.0.115", "which 4.4.2", ] @@ -810,7 +810,7 @@ dependencies = [ "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -830,7 +830,7 @@ dependencies = [ "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -933,7 +933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -990,7 +990,7 @@ dependencies = [ [[package]] name = "builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "cc", "codemap", @@ -1049,7 +1049,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -1222,7 +1222,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b4a6cae9efc04cc6cbb8faf338d2c497c165c83e74509cf4dbedea948bbf6e5" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -1251,9 +1251,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.55" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", "jobserver", @@ -1325,9 +1325,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.57" +version = "4.5.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" +checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" dependencies = [ "clap_builder", "clap_derive", @@ -1335,9 +1335,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.57" +version = "4.5.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" +checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" dependencies = [ "anstream", "anstyle", @@ -1354,18 +1354,18 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "clap_lex" -version = "0.7.7" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "cli" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "async-recursion", @@ -1482,7 +1482,7 @@ dependencies = [ "nom 7.1.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -1518,7 +1518,7 @@ checksum = "55b672471b4e9f9e95499ea597ff64941a309b2cdbffcc46f2cc5e2d971fd335" [[package]] name = "common" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "async-graphql-value", @@ -1713,7 +1713,7 @@ dependencies = [ [[package]] name = "core-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-graphql-value", @@ -1724,7 +1724,7 @@ dependencies = [ [[package]] name = "core-model-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "codemap", "codemap-diagnostic", @@ -1736,7 +1736,7 @@ dependencies = [ [[package]] name = "core-plugin-interface" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "built", @@ -1750,7 +1750,7 @@ dependencies = [ [[package]] name = "core-plugin-shared" -version = "0.30.0" +version = "0.30.1" dependencies = [ "base16ct 0.3.0", "bincode 2.0.1", @@ -1767,7 +1767,7 @@ dependencies = [ [[package]] name = "core-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-graphql-value", @@ -1799,11 +1799,11 @@ dependencies = [ [[package]] name = "core-rest-model" -version = "0.30.0" +version = "0.30.1" [[package]] name = "core-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-plugin-interface", "core-plugin-shared", @@ -2273,7 +2273,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -2346,6 +2346,9 @@ name = "deadpool-runtime" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "092966b41edc516079bdf31ec78a2e0588d1d0c08f78b91d8307215928642b2b" +dependencies = [ + "tokio", +] [[package]] name = "debugid" @@ -2365,7 +2368,7 @@ checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" [[package]] name = "deno-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "core-model-builder", @@ -2376,7 +2379,7 @@ dependencies = [ [[package]] name = "deno-graphql-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "codemap", @@ -2395,7 +2398,7 @@ dependencies = [ [[package]] name = "deno-graphql-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "bincode 2.0.1", @@ -2407,7 +2410,7 @@ dependencies = [ [[package]] name = "deno-graphql-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "async-graphql-parser", @@ -2432,7 +2435,7 @@ dependencies = [ [[package]] name = "deno-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "core-plugin-interface", @@ -2755,7 +2758,7 @@ checksum = "409f265785bd946d3006756955aaf40b0e4deb25752eae6a990afe54a31cfd83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3189,7 +3192,7 @@ dependencies = [ "stringcase", "strum 0.27.2", "strum_macros 0.27.2", - "syn 2.0.114", + "syn 2.0.115", "thiserror 2.0.18", ] @@ -3775,14 +3778,14 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" dependencies = [ "powerfmt", ] @@ -3814,7 +3817,7 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3836,7 +3839,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.114", + "syn 2.0.115", "unicode-xid", ] @@ -3867,7 +3870,7 @@ dependencies = [ "diplomat_core", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3887,7 +3890,7 @@ dependencies = [ "serde", "smallvec 1.15.1", "strck", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3931,7 +3934,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3972,7 +3975,7 @@ checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -4209,14 +4212,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "env_filter" -version = "0.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" dependencies = [ "log", ] @@ -4229,9 +4232,9 @@ checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" dependencies = [ "anstream", "anstyle", @@ -4269,7 +4272,7 @@ checksum = "31ae425815400e5ed474178a7a22e275a9687086a12ca63ec793ff292d8fdae8" [[package]] name = "exo-deno" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "ctor", @@ -4295,7 +4298,7 @@ dependencies = [ [[package]] name = "exo-env" -version = "0.30.0" +version = "0.30.1" dependencies = [ "dotenvy", "thiserror 2.0.18", @@ -4303,7 +4306,7 @@ dependencies = [ [[package]] name = "exo-sql" -version = "0.30.0" +version = "0.30.1" dependencies = [ "bincode 2.0.1", "bytes", @@ -4345,7 +4348,7 @@ dependencies = [ [[package]] name = "exo-wasm" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "serde_json", @@ -4571,7 +4574,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -4608,7 +4611,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "308530a56b099da144ebc5d8e179f343ad928fa2b3558d1eb3db9af18d6eff43" dependencies = [ "swc_macros_common", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -4720,7 +4723,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -4814,6 +4817,19 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +dependencies = [ + "cfg-if 1.0.4", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + [[package]] name = "ghash" version = "0.5.1" @@ -4950,7 +4966,7 @@ dependencies = [ [[package]] name = "graphql-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-stream", @@ -5829,7 +5845,7 @@ dependencies = [ [[package]] name = "introspection-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-graphql-value", @@ -5844,7 +5860,7 @@ dependencies = [ [[package]] name = "introspection-util" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "ctor", @@ -5918,7 +5934,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -6070,9 +6086,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -6166,9 +6182,9 @@ checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" [[package]] name = "lazy-regex" -version = "3.5.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c13b6857ade4c8ee05c3c3dc97d2ab5415d691213825b90d3211c425c1f907" +checksum = "6bae91019476d3ec7147de9aa291cadb6d870abf2f3015d2da73a90325ac1496" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -6177,14 +6193,14 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "3.5.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a95c68db5d41694cea563c86a4ba4dc02141c16ef64814108cb23def4d5438" +checksum = "4de9c1e1439d8b7b3061b2d209809f447ca33241733d9a3c01eabf2dc8d94358" dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -6245,9 +6261,9 @@ checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.180" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libffi" @@ -6302,7 +6318,7 @@ checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags 2.10.0", "libc", - "redox_syscall 0.7.0", + "redox_syscall 0.7.1", ] [[package]] @@ -6381,7 +6397,7 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "lsp" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "builder", @@ -6472,7 +6488,7 @@ checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" [[package]] name = "mcp-bridge" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "clap", @@ -6486,7 +6502,7 @@ dependencies = [ [[package]] name = "mcp-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-stream", @@ -6726,22 +6742,22 @@ dependencies = [ "quote", "serde", "serde_json", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "9d5d26952a508f321b4d3d2e80e78fc2603eaefcdf0c30783867f19586518bdc" dependencies = [ "libc", "log", "openssl", - "openssl-probe 0.1.6", + "openssl-probe 0.2.1", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework 3.6.0", "security-framework-sys", "tempfile", ] @@ -6928,9 +6944,9 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" dependencies = [ "winapi", ] @@ -7190,6 +7206,15 @@ dependencies = [ "objc2-foundation", ] +[[package]] +name = "objc2-system-configuration" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7216bd11cbda54ccabcab84d523dc93b858ec75ecfb3a7d89513fa22464da396" +dependencies = [ + "objc2-core-foundation", +] + [[package]] name = "objc2-ui-kit" version = "0.3.2" @@ -7309,7 +7334,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -7652,7 +7677,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -7728,7 +7753,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -7766,7 +7791,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -7827,7 +7852,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "playground-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "common", @@ -7909,7 +7934,7 @@ dependencies = [ [[package]] name = "postgres-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "builder", @@ -7930,7 +7955,7 @@ dependencies = [ [[package]] name = "postgres-builder-dynamic" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-plugin-interface", "postgres-builder", @@ -7938,7 +7963,7 @@ dependencies = [ [[package]] name = "postgres-core-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "builder", "codemap", @@ -7967,7 +7992,7 @@ dependencies = [ [[package]] name = "postgres-core-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "bincode 2.0.1", "builder", @@ -7987,7 +8012,7 @@ dependencies = [ [[package]] name = "postgres-core-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "base64 0.22.1", @@ -8011,7 +8036,7 @@ dependencies = [ [[package]] name = "postgres-graphql-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-model", "core-model-builder", @@ -8025,7 +8050,7 @@ dependencies = [ [[package]] name = "postgres-graphql-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-graphql-value", @@ -8040,7 +8065,7 @@ dependencies = [ [[package]] name = "postgres-graphql-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-graphql-value", @@ -8090,7 +8115,7 @@ dependencies = [ [[package]] name = "postgres-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "common", @@ -8112,7 +8137,7 @@ dependencies = [ [[package]] name = "postgres-resolver-dynamic" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-plugin-interface", "postgres-resolver", @@ -8120,7 +8145,7 @@ dependencies = [ [[package]] name = "postgres-rest-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-model-builder", "core-plugin-shared", @@ -8131,7 +8156,7 @@ dependencies = [ [[package]] name = "postgres-rest-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "bincode 2.0.1", "common", @@ -8147,7 +8172,7 @@ dependencies = [ [[package]] name = "postgres-rest-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "common", @@ -8160,7 +8185,7 @@ dependencies = [ [[package]] name = "postgres-rpc-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-model-builder", "core-plugin-shared", @@ -8171,7 +8196,7 @@ dependencies = [ [[package]] name = "postgres-rpc-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "bincode 2.0.1", "core-model", @@ -8183,7 +8208,7 @@ dependencies = [ [[package]] name = "postgres-rpc-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "common", @@ -8278,7 +8303,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8298,7 +8323,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" dependencies = [ "proc-macro-rules-macros", "proc-macro2", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8310,7 +8335,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8348,7 +8373,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8381,7 +8406,7 @@ checksum = "752233a382efa1026438aa8409c72489ebaa7ed94148bfabdf5282dc864276ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8598,7 +8623,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8612,9 +8637,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" +checksum = "35985aa610addc02e24fc232012c86fd11f14111180f902b67e2d5331f8ebf2b" dependencies = [ "bitflags 2.10.0", ] @@ -8647,7 +8672,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -8766,7 +8791,7 @@ checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "rest-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "common", @@ -8836,7 +8861,7 @@ dependencies = [ [[package]] name = "rpc-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-stream", "async-trait", @@ -9002,7 +9027,7 @@ dependencies = [ "openssl-probe 0.2.1", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework 3.6.0", ] [[package]] @@ -9216,9 +9241,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.5.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" dependencies = [ "bitflags 2.10.0", "core-foundation 0.10.1", @@ -9229,9 +9254,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "321c8673b092a9a42605034a9879d73cb79101ed5fd117bc9a597b89b4e9e61a" dependencies = [ "core-foundation-sys", "libc", @@ -9463,7 +9488,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -9499,7 +9524,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -9562,7 +9587,7 @@ dependencies = [ [[package]] name = "server-actix" -version = "0.30.0" +version = "0.30.1" dependencies = [ "actix-web", "common", @@ -9580,7 +9605,7 @@ dependencies = [ [[package]] name = "server-aws-lambda" -version = "0.30.0" +version = "0.30.1" dependencies = [ "builder", "common", @@ -9601,7 +9626,7 @@ dependencies = [ [[package]] name = "server-cf-worker" -version = "0.30.0" +version = "0.30.1" dependencies = [ "common", "console_error_panic_hook", @@ -9626,7 +9651,7 @@ dependencies = [ [[package]] name = "server-common" -version = "0.30.0" +version = "0.30.1" dependencies = [ "common", "core-plugin-interface", @@ -9763,9 +9788,9 @@ checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "simple_asn1" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" +checksum = "0d585997b0ac10be3c5ee635f1bab02d512760d14b7c468801ac8a01d9ae5f1d" dependencies = [ "num-bigint", "num-traits", @@ -9978,7 +10003,7 @@ checksum = "ae36a4951ca7bd1cfd991c241584a9824a70f6aff1e7d4f693fb3f2465e4030e" dependencies = [ "quote", "swc_macros_common", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10032,7 +10057,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10044,12 +10069,12 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "subsystem-model-builder-util" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "builder", @@ -10066,7 +10091,7 @@ dependencies = [ [[package]] name = "subsystem-model-util" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "core-model", @@ -10153,7 +10178,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10208,7 +10233,7 @@ checksum = "e276dc62c0a2625a560397827989c82a93fd545fcf6f7faec0935a82cc4ddbb8" dependencies = [ "proc-macro2", "swc_macros_common", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10309,7 +10334,7 @@ dependencies = [ "proc-macro2", "quote", "swc_macros_common", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10414,7 +10439,7 @@ checksum = "c16ce73424a6316e95e09065ba6a207eba7765496fed113702278b7711d4b632" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10425,7 +10450,7 @@ checksum = "aae1efbaa74943dc5ad2a2fb16cbd78b77d7e4d63188f3c5b4df2b4dcd2faaae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10470,9 +10495,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12" dependencies = [ "proc-macro2", "quote", @@ -10508,7 +10533,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10532,7 +10557,7 @@ checksum = "181f22127402abcf8ee5c83ccd5b408933fec36a6095cf82cda545634692657e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10553,7 +10578,7 @@ dependencies = [ [[package]] name = "system-router" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "common", @@ -10591,12 +10616,12 @@ checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" [[package]] name = "tempfile" -version = "3.24.0" +version = "3.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" +checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.1", "once_cell", "rustix 1.1.3", "windows-sys 0.61.2", @@ -10649,12 +10674,12 @@ checksum = "be35209fd0781c5401458ab66e4f98accf63553e8fae7425503e92fdd319783b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "testing" -version = "0.30.0" +version = "0.30.1" dependencies = [ "anyhow", "async-graphql-parser", @@ -10719,7 +10744,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10730,7 +10755,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10828,7 +10853,7 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10866,7 +10891,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -10914,7 +10939,7 @@ dependencies = [ "socket2 0.6.2", "tokio", "tokio-util", - "whoami 2.1.0", + "whoami 2.1.1", ] [[package]] @@ -10997,9 +11022,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.11+spec-1.1.0" +version = "0.9.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" dependencies = [ "indexmap 2.13.0", "serde_core", @@ -11021,9 +11046,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.0.8+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "0742ff5ff03ea7e67c8ae6c93cac239e0d9784833362da3f9a9c1da8dfefcbdc" dependencies = [ "winnow", ] @@ -11162,7 +11187,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -11204,7 +11229,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -11785,6 +11810,15 @@ dependencies = [ "wit-bindgen", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + [[package]] name = "wasite" version = "0.1.0" @@ -11846,7 +11880,7 @@ dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "wasm-bindgen-shared", ] @@ -11889,7 +11923,7 @@ checksum = "f579cdd0123ac74b94e1a4a72bd963cf30ebac343f2df347da0b8df24cdebed2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -11900,7 +11934,7 @@ checksum = "a8145dd1593bf0fb137dbfa85b8be79ec560a447298955877804640e40c2d6ea" [[package]] name = "wasm-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "core-model-builder", @@ -11911,7 +11945,7 @@ dependencies = [ [[package]] name = "wasm-builder-dynamic" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-plugin-interface", "wasm-builder", @@ -11958,9 +11992,19 @@ dependencies = [ "wasmparser 0.244.0", ] +[[package]] +name = "wasm-encoder" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c" +dependencies = [ + "leb128fmt", + "wasmparser 0.245.1", +] + [[package]] name = "wasm-graphql-builder" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "core-model", @@ -11973,7 +12017,7 @@ dependencies = [ [[package]] name = "wasm-graphql-model" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "bincode 2.0.1", @@ -11985,7 +12029,7 @@ dependencies = [ [[package]] name = "wasm-graphql-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-graphql-parser", "async-trait", @@ -11999,9 +12043,21 @@ dependencies = [ "wasmtime", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-resolver" -version = "0.30.0" +version = "0.30.1" dependencies = [ "async-trait", "core-plugin-interface", @@ -12015,7 +12071,7 @@ dependencies = [ [[package]] name = "wasm-resolver-dynamic" -version = "0.30.0" +version = "0.30.1" dependencies = [ "core-plugin-interface", "wasm-resolver", @@ -12062,6 +12118,18 @@ name = "wasmparser" version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.10.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver 1.0.27", +] + +[[package]] +name = "wasmparser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags 2.10.0", "indexmap 2.13.0", @@ -12192,10 +12260,10 @@ dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "wasmtime-internal-component-util", "wasmtime-internal-wit-bindgen", - "wit-parser", + "wit-parser 0.240.0", ] [[package]] @@ -12307,7 +12375,7 @@ checksum = "47f6bf5957ba823cb170996073edf4596b26d5f44c53f9e96b586c64fa04f7e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -12338,7 +12406,7 @@ dependencies = [ "bitflags 2.10.0", "heck 0.5.0", "indexmap 2.13.0", - "wit-parser", + "wit-parser 0.240.0", ] [[package]] @@ -12352,24 +12420,24 @@ dependencies = [ [[package]] name = "wast" -version = "244.0.0" +version = "245.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e7b9f9e23311275920e3d6b56d64137c160cf8af4f84a7283b36cfecbf4acb" +checksum = "28cf1149285569120b8ce39db8b465e8a2b55c34cbb586bd977e43e2bc7300bf" dependencies = [ "bumpalo", "leb128fmt", "memchr", "unicode-width 0.2.2", - "wasm-encoder 0.244.0", + "wasm-encoder 0.245.1", ] [[package]] name = "wat" -version = "1.244.0" +version = "1.245.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf35b87ed352f9ab6cd0732abde5a67dd6153dfd02c493e61459218b19456fa" +checksum = "cd48d1679b6858988cb96b154dda0ec5bbb09275b71db46057be37332d5477be" dependencies = [ - "wast 244.0.0", + "wast 245.0.1", ] [[package]] @@ -12573,11 +12641,13 @@ dependencies = [ [[package]] name = "whoami" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fae98cf96deed1b7572272dfc777713c249ae40aa1cf8862e091e8b745f5361" +checksum = "d6a5b12f9df4f978d2cfdb1bd3bac52433f44393342d7ee9c25f5a1c14c0f45d" dependencies = [ + "libc", "libredox", + "objc2-system-configuration", "wasite 1.0.2", "web-sys", ] @@ -12612,7 +12682,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "witx", ] @@ -12624,7 +12694,7 @@ checksum = "885e44efc8547387700b4bdf9caa66a9d04364f394e31bd3aa240cbce2d47296" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "wiggle-generate", ] @@ -12732,7 +12802,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -12743,7 +12813,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -12754,7 +12824,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -12765,7 +12835,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -13079,6 +13149,70 @@ name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.115", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.115", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.10.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] [[package]] name = "wit-parser" @@ -13098,6 +13232,24 @@ dependencies = [ "wasmparser 0.240.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver 1.0.27", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "witx" version = "0.9.1" @@ -13166,7 +13318,7 @@ dependencies = [ "async-trait", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-macro-support", @@ -13290,7 +13442,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "synstructure 0.13.2", ] @@ -13302,7 +13454,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "synstructure 0.13.2", ] @@ -13323,7 +13475,7 @@ checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -13343,7 +13495,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", "synstructure 0.13.2", ] @@ -13364,7 +13516,7 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -13398,7 +13550,7 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -13436,9 +13588,9 @@ checksum = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c" [[package]] name = "zmij" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zopfli" diff --git a/Cargo.toml b/Cargo.toml index 9bf499f5..3d774573 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.30.0" +version = "0.30.1" edition = "2024" # See https://github.com/mozilla/application-services/blob/main/Cargo.toml for the reasons why we use this structure @@ -115,7 +115,7 @@ thiserror = "2.0.16" tracing = "0.1.41" tokio = "1" tokio-postgres = { version = "0.7.12", default-features = false } -deadpool-postgres = { version = "0.14.1", default-features = false } +deadpool-postgres = { version = "0.14.1", default-features = false, features = ["rt_tokio_1"] } tree-sitter = { git = "https://github.com/exograph/tree-sitter-c2rust.git", branch = "generate-loading-feature-flag" } tree-sitter-c2rust = "0.25.1" tree-sitter-generate = { git = "https://github.com/exograph/tree-sitter-c2rust.git", branch = "generate-loading-feature-flag" } diff --git a/crates/common/src/env_const.rs b/crates/common/src/env_const.rs index ad033fe4..1dc3768d 100644 --- a/crates/common/src/env_const.rs +++ b/crates/common/src/env_const.rs @@ -23,6 +23,12 @@ pub const DATABASE_URL: &str = "DATABASE_URL"; pub const EXO_CONNECTION_POOL_SIZE: &str = "EXO_CONNECTION_POOL_SIZE"; pub const EXO_CHECK_CONNECTION_ON_STARTUP: &str = "EXO_CHECK_CONNECTION_ON_STARTUP"; +// Connection pool timeout settings (in seconds) +pub const EXO_POOL_WAIT_TIMEOUT: &str = "EXO_POOL_WAIT_TIMEOUT"; // Timeout waiting for a connection from pool (default: 30s) +pub const EXO_POOL_CREATE_TIMEOUT: &str = "EXO_POOL_CREATE_TIMEOUT"; // Timeout creating a new connection (default: 10s) +pub const EXO_POOL_RECYCLE_TIMEOUT: &str = "EXO_POOL_RECYCLE_TIMEOUT"; // Timeout recycling/validating a connection (default: 5s) +pub const EXO_POOL_MAX_LIFETIME: &str = "EXO_POOL_MAX_LIFETIME"; // Max lifetime of a connection in seconds (default: 1800 = 30min) + pub const EXO_SERVER_PORT: &str = "EXO_SERVER_PORT"; pub const EXO_ENABLE_OTEL: &str = "EXO_ENABLE_OTEL"; diff --git a/crates/postgres-subsystem/postgres-core-resolver/src/database_helper.rs b/crates/postgres-subsystem/postgres-core-resolver/src/database_helper.rs index 2bff5430..1bc7276d 100644 --- a/crates/postgres-subsystem/postgres-core-resolver/src/database_helper.rs +++ b/crates/postgres-subsystem/postgres-core-resolver/src/database_helper.rs @@ -16,8 +16,10 @@ pub async fn create_database_executor( { use common::env_const::{ DATABASE_URL, EXO_CHECK_CONNECTION_ON_STARTUP, EXO_CONNECTION_POOL_SIZE, - EXO_POSTGRES_READ_WRITE, EXO_POSTGRES_URL, + EXO_POOL_CREATE_TIMEOUT, EXO_POOL_MAX_LIFETIME, EXO_POOL_RECYCLE_TIMEOUT, + EXO_POOL_WAIT_TIMEOUT, EXO_POSTGRES_READ_WRITE, EXO_POSTGRES_URL, }; + use exo_sql::PoolConfig; let url = env .get(EXO_POSTGRES_URL) @@ -25,9 +27,22 @@ pub async fn create_database_executor( .ok_or_else(|| { DatabaseHelperError::Config("Env EXO_POSTGRES_URL not set".to_string()) })?; - let pool_size: Option = env - .get(EXO_CONNECTION_POOL_SIZE) - .and_then(|s| s.parse().ok()); + + // Build pool configuration from environment variables + let pool_config = PoolConfig { + max_size: env + .get(EXO_CONNECTION_POOL_SIZE) + .and_then(|s| s.parse().ok()), + wait_timeout_secs: env.get(EXO_POOL_WAIT_TIMEOUT).and_then(|s| s.parse().ok()), + create_timeout_secs: env + .get(EXO_POOL_CREATE_TIMEOUT) + .and_then(|s| s.parse().ok()), + recycle_timeout_secs: env + .get(EXO_POOL_RECYCLE_TIMEOUT) + .and_then(|s| s.parse().ok()), + max_lifetime_secs: env.get(EXO_POOL_MAX_LIFETIME).and_then(|s| s.parse().ok()), + }; + let check_connection = env .enabled(EXO_CHECK_CONNECTION_ON_STARTUP, true) .map_err(|e| DatabaseHelperError::BoxedError(Box::new(e)))?; @@ -40,9 +55,14 @@ pub async fn create_database_executor( TransactionMode::ReadOnly }; - DatabaseClientManager::from_url(&url, check_connection, pool_size, transaction_mode) - .await - .map_err(|e| DatabaseHelperError::BoxedError(Box::new(e)))? + DatabaseClientManager::from_url_with_pool_config( + &url, + check_connection, + pool_config, + transaction_mode, + ) + .await + .map_err(|e| DatabaseHelperError::BoxedError(Box::new(e)))? } #[cfg(not(feature = "network"))] diff --git a/libs/exo-sql/src/lib.rs b/libs/exo-sql/src/lib.rs index e7d04798..322a29fa 100644 --- a/libs/exo-sql/src/lib.rs +++ b/libs/exo-sql/src/lib.rs @@ -91,5 +91,8 @@ pub use sql::{ vector::{DEFAULT_VECTOR_SIZE, VectorDistanceFunction}, }; +#[cfg(feature = "pool")] +pub use sql::connect::database_pool::{PoolConfig, PoolStatus}; + #[cfg(feature = "bigdecimal")] pub use pg_bigdecimal::BigDecimal; diff --git a/libs/exo-sql/src/sql/connect/database_client_manager.rs b/libs/exo-sql/src/sql/connect/database_client_manager.rs index 7520076b..1ba76b7f 100644 --- a/libs/exo-sql/src/sql/connect/database_client_manager.rs +++ b/libs/exo-sql/src/sql/connect/database_client_manager.rs @@ -15,7 +15,7 @@ use super::{creation::DatabaseCreation, database_client::DatabaseClient}; use super::creation::TransactionMode; #[cfg(feature = "pool")] -use super::database_pool::DatabasePool; +use super::database_pool::{DatabasePool, PoolConfig, PoolStatus}; pub enum DatabaseClientManager { #[cfg(feature = "pool")] @@ -77,10 +77,20 @@ impl DatabaseClientManager { DatabaseClientManager::Direct(creation) => creation.get_client().await, } } + + /// Get the current status of the connection pool (if using pooled connections) + #[cfg(feature = "pool")] + pub fn pool_status(&self) -> Option { + match self { + DatabaseClientManager::Pooled(pool) => Some(pool.status()), + DatabaseClientManager::Direct(_) => None, + } + } } #[cfg(feature = "postgres-url")] impl DatabaseClientManager { + /// Create a database client manager from URL with legacy pool_size parameter pub async fn from_url( url: &str, check_connection: bool, @@ -89,7 +99,12 @@ impl DatabaseClientManager { ) -> Result { #[cfg(feature = "pool")] { - Self::from_url_pooled(url, check_connection, pool_size, transaction_mode).await + let pool_config = PoolConfig { + max_size: pool_size, + ..Default::default() + }; + Self::from_url_with_pool_config(url, check_connection, pool_config, transaction_mode) + .await } #[cfg(not(feature = "pool"))] { @@ -97,16 +112,21 @@ impl DatabaseClientManager { } } - pub async fn from_url_direct( + /// Create a database client manager from URL with full pool configuration + #[cfg(feature = "pool")] + pub async fn from_url_with_pool_config( url: &str, check_connection: bool, + pool_config: PoolConfig, transaction_mode: TransactionMode, ) -> Result { let creation = DatabaseCreation::Url { url: url.to_string(), transaction_mode, }; - let res = Ok(DatabaseClientManager::Direct(creation)); + let res = Ok(Self::Pooled( + DatabasePool::create_with_config(creation, pool_config).await?, + )); if let Ok(ref res) = res && check_connection @@ -117,20 +137,16 @@ impl DatabaseClientManager { res } - #[cfg(feature = "pool")] - pub async fn from_url_pooled( + pub async fn from_url_direct( url: &str, check_connection: bool, - pool_size: Option, transaction_mode: TransactionMode, ) -> Result { let creation = DatabaseCreation::Url { url: url.to_string(), transaction_mode, }; - let res = Ok(Self::Pooled( - DatabasePool::create(creation, pool_size).await?, - )); + let res = Ok(DatabaseClientManager::Direct(creation)); if let Ok(ref res) = res && check_connection @@ -140,4 +156,19 @@ impl DatabaseClientManager { res } + + /// Legacy method - use from_url_with_pool_config for full configuration + #[cfg(feature = "pool")] + pub async fn from_url_pooled( + url: &str, + check_connection: bool, + pool_size: Option, + transaction_mode: TransactionMode, + ) -> Result { + let pool_config = PoolConfig { + max_size: pool_size, + ..Default::default() + }; + Self::from_url_with_pool_config(url, check_connection, pool_config, transaction_mode).await + } } diff --git a/libs/exo-sql/src/sql/connect/database_pool.rs b/libs/exo-sql/src/sql/connect/database_pool.rs index 1eee7a32..c85bb9ae 100644 --- a/libs/exo-sql/src/sql/connect/database_pool.rs +++ b/libs/exo-sql/src/sql/connect/database_pool.rs @@ -9,9 +9,13 @@ #![cfg(feature = "pool")] +use std::time::Duration; + #[cfg(feature = "postgres-url")] use deadpool_postgres::ConfigConnectImpl; -use deadpool_postgres::{Connect, Manager, ManagerConfig, Pool, RecyclingMethod}; +use deadpool_postgres::{ + Connect, Hook, HookError, Manager, ManagerConfig, Pool, RecyclingMethod, Runtime, +}; use tokio_postgres::Config; @@ -20,23 +24,95 @@ use crate::database_error::DatabaseError; use super::{creation::DatabaseCreation, database_client::DatabaseClient}; +/// Configuration for the database connection pool. +#[derive(Debug, Clone, Default)] +pub struct PoolConfig { + /// Maximum number of connections in the pool (default: 10) + pub max_size: Option, + /// Timeout waiting for a connection from the pool (default: 30s) + pub wait_timeout_secs: Option, + /// Timeout creating a new connection (default: 10s) + pub create_timeout_secs: Option, + /// Timeout recycling/validating a connection (default: 5s) + pub recycle_timeout_secs: Option, + /// Maximum lifetime of a connection in seconds before forced recycling (default: 900 = 15min) + pub max_lifetime_secs: Option, +} + +impl PoolConfig { + pub fn new() -> Self { + Self::default() + } + + pub fn with_max_size(mut self, size: usize) -> Self { + self.max_size = Some(size); + self + } + + pub fn with_wait_timeout(mut self, secs: u64) -> Self { + self.wait_timeout_secs = Some(secs); + self + } + + pub fn with_create_timeout(mut self, secs: u64) -> Self { + self.create_timeout_secs = Some(secs); + self + } + + pub fn with_recycle_timeout(mut self, secs: u64) -> Self { + self.recycle_timeout_secs = Some(secs); + self + } + + pub fn with_max_lifetime(mut self, secs: u64) -> Self { + self.max_lifetime_secs = Some(secs); + self + } +} + +/// The current status of the connection pool. +#[derive(Debug, Clone)] +pub struct PoolStatus { + /// Maximum number of connections in the pool + pub max_size: usize, + /// Current number of connections in the pool (both idle and in-use) + pub size: usize, + /// Number of idle connections available for immediate use + pub available: usize, + /// Number of tasks waiting for a connection + pub waiting: usize, +} + pub struct DatabasePool { pool: Pool, } impl DatabasePool { + /// Create a pool with legacy parameters (for backward compatibility) pub async fn create( creation: DatabaseCreation, pool_size: Option, + ) -> Result { + let pool_config = PoolConfig { + max_size: pool_size, + ..Default::default() + }; + Self::create_with_config(creation, pool_config).await + } + + /// Create a pool with full configuration options + pub async fn create_with_config( + creation: DatabaseCreation, + pool_config: PoolConfig, ) -> Result { match creation { #[cfg(feature = "postgres-url")] DatabaseCreation::Url { url, transaction_mode, - } => Self::from_db_url(&url, pool_size, transaction_mode).await, + } => Self::from_db_url_with_config(&url, pool_config, transaction_mode).await, DatabaseCreation::Connect { config, connect } => { - Self::from_connect(pool_size, *config, ConnectBridge(connect)).await + Self::from_connect_with_config(pool_config, *config, ConnectBridge(connect)).await } } } @@ -45,19 +121,21 @@ impl DatabasePool { Ok(DatabaseClient::Pooled(self.pool.get().await?)) } - #[cfg(feature = "postgres-url")] - async fn from_db_url( - url: &str, - pool_size: Option, - transaction_mode: TransactionMode, - ) -> Result { - Self::from_helper(url, pool_size, transaction_mode).await + /// Get the current status of the connection pool + pub fn status(&self) -> PoolStatus { + let status = self.pool.status(); + PoolStatus { + max_size: status.max_size, + size: status.size, + available: status.available, + waiting: status.waiting, + } } #[cfg(feature = "postgres-url")] - async fn from_helper( + async fn from_db_url_with_config( url: &str, - pool_size: Option, + pool_config: PoolConfig, transaction_mode: TransactionMode, ) -> Result { use std::str::FromStr; @@ -84,10 +162,11 @@ impl DatabasePool { .any(|host| matches!(host, tokio_postgres::config::Host::Tcp(_))); if has_tcp_hosts { - Self::from_connect(pool_size, config, ConfigConnectImpl { tls }).await + Self::from_connect_with_config(pool_config, config, ConfigConnectImpl { tls }) + .await } else { - Self::from_connect( - pool_size, + Self::from_connect_with_config( + pool_config, config, ConfigConnectImpl { tls: tokio_postgres::NoTls, @@ -97,8 +176,8 @@ impl DatabasePool { } } None => { - Self::from_connect( - pool_size, + Self::from_connect_with_config( + pool_config, config, ConfigConnectImpl { tls: tokio_postgres::NoTls, @@ -109,10 +188,23 @@ impl DatabasePool { } } + /// Legacy method for backward compatibility pub async fn from_connect( pool_size: Option, config: Config, connect: impl Connect + 'static, + ) -> Result { + let pool_config = PoolConfig { + max_size: pool_size, + ..Default::default() + }; + Self::from_connect_with_config(pool_config, config, connect).await + } + + pub async fn from_connect_with_config( + pool_config: PoolConfig, + config: Config, + connect: impl Connect + 'static, ) -> Result { // Validate connections when checked out so stale connections are not reused. let manager_config = ManagerConfig { @@ -121,14 +213,54 @@ impl DatabasePool { let manager = Manager::from_connect(config, connect, manager_config); - let pool = Pool::builder(manager); + // Build pool with timeouts - requires runtime for timeout support + let mut builder = Pool::builder(manager).runtime(Runtime::Tokio1); - let pool = match pool_size { - Some(pool_size) => pool.max_size(pool_size), - None => pool, + // Apply max_size + if let Some(max_size) = pool_config.max_size { + builder = builder.max_size(max_size); } - .build() - .expect("Failed to create DB pool"); + + // Apply timeouts (with sensible defaults for serverless DB compatibility) + let wait_timeout = pool_config.wait_timeout_secs.unwrap_or(30); + let create_timeout = pool_config.create_timeout_secs.unwrap_or(10); + let recycle_timeout = pool_config.recycle_timeout_secs.unwrap_or(5); + // Default max_lifetime to 15 minutes for Neon/serverless compatibility + let max_lifetime_secs = pool_config.max_lifetime_secs.unwrap_or(900); + + builder = builder + .wait_timeout(Some(Duration::from_secs(wait_timeout))) + .create_timeout(Some(Duration::from_secs(create_timeout))) + .recycle_timeout(Some(Duration::from_secs(recycle_timeout))); + + // Add pre_recycle hook to enforce max_lifetime + // This rejects connections that are too old, causing the pool to create fresh ones + let max_lifetime = Duration::from_secs(max_lifetime_secs); + builder = builder.pre_recycle(Hook::sync_fn(move |_conn, metrics| { + if metrics.age() > max_lifetime { + tracing::debug!( + age_secs = metrics.age().as_secs(), + max_lifetime_secs = max_lifetime.as_secs(), + "Rejecting connection due to max_lifetime exceeded" + ); + return Err(HookError::Message( + "Connection exceeded max_lifetime".into(), + )); + } + Ok(()) + })); + + // Log pool configuration for debugging + tracing::info!( + max_size = pool_config.max_size.unwrap_or(10), + wait_timeout_secs = wait_timeout, + create_timeout_secs = create_timeout, + recycle_timeout_secs = recycle_timeout, + max_lifetime_secs = max_lifetime_secs, + "Creating database connection pool" + ); + + let pool = builder.build().expect("Failed to create DB pool"); let db = Self { pool };