diff --git a/Cargo.lock b/Cargo.lock index f927eb0d5e..7e3dcf0116 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 4 -[[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 = "acme-lib" version = "0.9.1" @@ -49,64 +39,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[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 = "aead-gcm-stream" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4947a169074c7e038fa43051d1c4e073f4488b0e4b0a30658f1e1a1b06449ce8" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[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.8" @@ -125,7 +57,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.15", "once_cell", "version_check", "zerocopy 0.7.35", @@ -140,21 +71,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - [[package]] name = "allocator-api2" version = "0.2.21" @@ -191,7 +107,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "220044e6a1bb31ddee4e3db724d29767f352de47445a6cd75e1a173142136c83" dependencies = [ - "nom 7.1.3", + "nom", "vte 0.10.1", ] @@ -977,8 +893,8 @@ dependencies = [ "http 0.2.12", "hyper 0.14.31", "lazy_static", - "opentelemetry 0.28.0", - "opentelemetry-semantic-conventions 0.28.0", + "opentelemetry", + "opentelemetry-semantic-conventions", "prost 0.10.4", "regex", "reqwest 0.12.12", @@ -1381,9 +1297,6 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] [[package]] name = "ascii" @@ -1391,54 +1304,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" -[[package]] -name = "ash" -version = "0.37.3+1.3.251" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" -dependencies = [ - "libloading 0.7.4", -] - -[[package]] -name = "asn1-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom 7.1.3", - "num-traits", - "rusticata-macros", - "thiserror 1.0.69", - "time 0.3.37", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "assert_cmd" version = "2.0.16" @@ -1479,20 +1344,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "async-compression" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" -dependencies = [ - "brotli 7.0.0", - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - [[package]] name = "async-lock" version = "3.4.0" @@ -2095,12 +1946,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base32" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076" - [[package]] name = "base64" version = "0.13.1" @@ -2259,15 +2104,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "blake3" version = "1.5.5" @@ -2281,12 +2117,6 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - [[package]] name = "block-buffer" version = "0.9.0" @@ -2305,15 +2135,6 @@ 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 = "block2" version = "0.5.1" @@ -2383,48 +2204,6 @@ dependencies = [ "serde_with 3.12.0", ] -[[package]] -name = "boxed_error" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" -dependencies = [ - "quote", - "syn 2.0.90", -] - -[[package]] -name = "brotli" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "4.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - [[package]] name = "bstr" version = "1.11.0" @@ -2631,12 +2410,6 @@ 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.9" @@ -2746,15 +2519,6 @@ dependencies = [ "thiserror 2.0.12", ] -[[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.2.2" @@ -2999,7 +2763,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom 7.1.3", + "nom", ] [[package]] @@ -3063,12 +2827,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - [[package]] name = "cfg_aliases" version = "0.2.1" @@ -3204,7 +2962,7 @@ dependencies = [ "itertools 0.14.0", "lazy_static", "md5", - "opentelemetry 0.28.0", + "opentelemetry", "prost 0.12.6", "prost-types 0.12.6", "rand 0.8.5", @@ -3293,7 +3051,7 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.6", + "libloading", ] [[package]] @@ -3763,43 +3521,6 @@ dependencies = [ "cc", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width 0.1.14", -] - -[[package]] -name = "color-print" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" -dependencies = [ - "color-print-proc-macro", -] - -[[package]] -name = "color-print-proc-macro" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" -dependencies = [ - "nom 7.1.3", - "proc-macro2", - "quote", - "syn 2.0.90", -] - -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - [[package]] name = "colorchoice" version = "1.0.3" @@ -3853,7 +3574,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" dependencies = [ "async-trait", - "nom 7.1.3", + "nom", "pathdiff", "serde", "serde_json", @@ -3986,17 +3707,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "libc", -] - [[package]] name = "core-guard" version = "0.1.0" @@ -4159,7 +3869,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] @@ -4203,15 +3912,6 @@ dependencies = [ "sct 0.6.1", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "ctrlc" version = "3.4.5" @@ -4232,10 +3932,9 @@ dependencies = [ "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", - "fiat-crypto 0.2.9", + "fiat-crypto", "rustc_version 0.4.1", "subtle", - "zeroize", ] [[package]] @@ -4279,17 +3978,6 @@ dependencies = [ "upload-prepare", ] -[[package]] -name = "d3d12" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" -dependencies = [ - "bitflags 2.6.0", - "libloading 0.8.6", - "winapi", -] - [[package]] name = "darling" version = "0.14.4" @@ -4428,8 +4116,8 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b9d03b1bbeeecdac54367f075d572131736d06c5be3bc49037855bc5ab1bbb" dependencies = [ - "deno_media_type 0.1.4", - "deno_terminal 0.1.1", + "deno_media_type", + "deno_terminal", "dprint-swc-ext", "once_cell", "percent-encoding", @@ -4446,125 +4134,37 @@ dependencies = [ ] [[package]] -name = "deno_ast" -version = "0.44.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebc7aaabfdb3ddcad32aee1b62d250149dc8b35dfbdccbb125df2bdc62da952" +name = "deno_core" +version = "0.323.0" +source = "git+https://github.com/rivet-gg/deno_core?rev=8a313913fa73d58f4f9532565b0084e723bc34ad#8a313913fa73d58f4f9532565b0084e723bc34ad" dependencies = [ - "base64 0.21.7", - "deno_error", - "deno_media_type 0.2.2", - "deno_terminal 0.2.0", - "dprint-swc-ext", - "once_cell", + "anyhow", + "az", + "bincode", + "bit-set", + "bit-vec", + "bytes", + "cooked-waker", + "deno_core_icudata", + "deno_ops", + "deno_unsync", + "futures", + "indexmap 2.7.0", + "libc", + "memoffset", + "parking_lot 0.12.3", "percent-encoding", + "pin-project", "serde", - "sourcemap 9.1.2", - "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", - "thiserror 2.0.12", - "unicode-width 0.1.14", + "serde_json", + "serde_v8", + "smallvec", + "sourcemap", + "static_assertions", + "tokio", "url", -] - -[[package]] -name = "deno_broadcast_channel" -version = "0.174.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "async-trait", - "deno_core", - "thiserror 1.0.69", - "tokio", - "uuid", -] - -[[package]] -name = "deno_cache" -version = "0.112.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "async-trait", - "deno_core", - "rusqlite", - "serde", - "sha2 0.10.8", - "thiserror 1.0.69", - "tokio", -] - -[[package]] -name = "deno_canvas" -version = "0.49.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_webgpu", - "image", - "serde", - "thiserror 1.0.69", -] - -[[package]] -name = "deno_console" -version = "0.180.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", -] - -[[package]] -name = "deno_core" -version = "0.323.0" -source = "git+https://github.com/rivet-gg/deno_core?rev=8a313913fa73d58f4f9532565b0084e723bc34ad#8a313913fa73d58f4f9532565b0084e723bc34ad" -dependencies = [ - "anyhow", - "az", - "bincode", - "bit-set", - "bit-vec", - "bytes", - "cooked-waker", - "deno_core_icudata", - "deno_ops", - "deno_unsync", - "futures", - "indexmap 2.7.0", - "libc", - "memoffset", - "parking_lot 0.12.3", - "percent-encoding", - "pin-project", - "serde", - "serde_json", - "serde_v8", - "smallvec", - "sourcemap 8.0.1", - "static_assertions", - "tokio", - "url", - "v8", - "wasm_dep_analyzer", + "v8", + "wasm_dep_analyzer", ] [[package]] @@ -4573,252 +4173,6 @@ version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe4dccb6147bb3f3ba0c7a48e993bfeb999d2c2e47a81badee80e2b370c8d695" -[[package]] -name = "deno_cron" -version = "0.60.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "anyhow", - "async-trait", - "chrono", - "deno_core", - "saffron", - "thiserror 1.0.69", - "tokio", -] - -[[package]] -name = "deno_crypto" -version = "0.194.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "aes", - "aes-gcm", - "aes-kw", - "base64 0.21.7", - "cbc", - "const-oid", - "ctr", - "curve25519-dalek", - "deno_core", - "deno_web", - "ed448-goldilocks", - "elliptic-curve 0.13.8", - "num-traits", - "once_cell", - "p256 0.13.2", - "p384", - "p521", - "rand 0.8.5", - "ring 0.17.8", - "rsa", - "sec1 0.7.3", - "serde", - "serde_bytes", - "sha1", - "sha2 0.10.8", - "signature 2.2.0", - "spki 0.7.3", - "thiserror 1.0.69", - "tokio", - "uuid", - "x25519-dalek", -] - -[[package]] -name = "deno_error" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199c66ffd17ee1a948904d33f3d3f364573951c1f9fb3f859bfe7770bf33862a" -dependencies = [ - "deno_error_macro", - "libc", - "serde", - "serde_json", -] - -[[package]] -name = "deno_error_macro" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd99df6ae75443907e1f959fc42ec6dcea67a7bd083e76cf23a117102c9a2ce" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - -[[package]] -name = "deno_fetch" -version = "0.204.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "base64 0.21.7", - "bytes", - "data-url", - "deno_core", - "deno_permissions", - "deno_tls", - "dyn-clone", - "error_reporter", - "hickory-resolver", - "http 1.1.0", - "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.3", - "hyper-util", - "ipnet", - "percent-encoding", - "rustls-webpki 0.102.8", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-rustls 0.26.2", - "tokio-socks", - "tokio-util 0.7.12", - "tower 0.4.13", - "tower-http", - "tower-service", -] - -[[package]] -name = "deno_ffi" -version = "0.167.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_permissions", - "dlopen2 0.6.1", - "dynasmrt", - "libffi", - "libffi-sys", - "log", - "num-bigint", - "serde", - "serde-value", - "serde_json", - "thiserror 1.0.69", - "tokio", - "winapi", -] - -[[package]] -name = "deno_fs" -version = "0.90.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "async-trait", - "base32", - "boxed_error", - "deno_core", - "deno_io", - "deno_path_util", - "deno_permissions", - "filetime", - "junction", - "libc", - "nix 0.27.1", - "rand 0.8.5", - "rayon", - "serde", - "thiserror 1.0.69", - "winapi", - "windows-sys 0.52.0", -] - -[[package]] -name = "deno_http" -version = "0.178.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "async-compression", - "async-trait", - "base64 0.21.7", - "brotli 6.0.0", - "bytes", - "cache_control", - "deno_core", - "deno_net", - "deno_websocket", - "flate2", - "http 0.2.12", - "http 1.1.0", - "httparse", - "hyper 0.14.31", - "hyper 1.6.0", - "hyper-util", - "itertools 0.10.5", - "memmem", - "mime", - "once_cell", - "percent-encoding", - "phf", - "pin-project", - "ring 0.17.8", - "scopeguard", - "serde", - "smallvec", - "thiserror 1.0.69", - "tokio", - "tokio-util 0.7.12", -] - -[[package]] -name = "deno_io" -version = "0.90.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "async-trait", - "deno_core", - "filetime", - "fs3", - "libc", - "log", - "once_cell", - "os_pipe", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "tokio", - "uuid", - "winapi", - "windows-sys 0.52.0", -] - -[[package]] -name = "deno_kv" -version = "0.88.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.21.7", - "boxed_error", - "bytes", - "chrono", - "deno_core", - "deno_fetch", - "deno_path_util", - "deno_permissions", - "deno_tls", - "denokv_proto", - "denokv_remote", - "denokv_sqlite", - "faster-hex", - "http 1.1.0", - "http-body-util", - "log", - "num-bigint", - "prost 0.13.4", - "prost-build 0.13.4", - "rand 0.8.5", - "rusqlite", - "serde", - "thiserror 1.0.69", - "url", -] - [[package]] name = "deno_media_type" version = "0.1.4" @@ -4831,319 +4185,18 @@ dependencies = [ ] [[package]] -name = "deno_media_type" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa135b8a9febc9a51c16258e294e268a1276750780d69e46edb31cced2826e4" -dependencies = [ - "data-url", - "serde", - "url", -] - -[[package]] -name = "deno_napi" -version = "0.111.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_permissions", - "libc", - "libloading 0.7.4", - "log", - "napi_sym", - "thiserror 1.0.69", - "windows-sys 0.52.0", -] - -[[package]] -name = "deno_native_certs" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86bc737e098a45aa5742d51ce694ac7236a1e69fb0d9df8c862e9b4c9583c5f9" -dependencies = [ - "dlopen2 0.7.0", - "dlopen2_derive", - "once_cell", - "rustls-native-certs 0.7.3", - "rustls-pemfile 2.2.0", -] - -[[package]] -name = "deno_net" -version = "0.172.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_permissions", - "deno_tls", - "hickory-proto", - "hickory-resolver", - "pin-project", - "rustls-tokio-stream", - "serde", - "socket2 0.5.8", - "thiserror 1.0.69", - "tokio", -] - -[[package]] -name = "deno_node" -version = "0.117.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "aead-gcm-stream", - "aes", - "async-trait", - "base64 0.21.7", - "blake2", - "boxed_error", - "brotli 6.0.0", - "bytes", - "cbc", - "const-oid", - "data-encoding", - "deno_core", - "deno_fetch", - "deno_fs", - "deno_io", - "deno_media_type 0.2.2", - "deno_net", - "deno_package_json", - "deno_path_util", - "deno_permissions", - "deno_whoami", - "der 0.7.9", - "digest 0.10.7", - "dsa", - "ecb", - "ecdsa 0.16.9", - "ed25519-dalek", - "elliptic-curve 0.13.8", - "errno 0.2.8", - "faster-hex", - "h2 0.4.7", - "hkdf", - "home", - "http 1.1.0", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "idna 1.0.3", - "indexmap 2.7.0", - "ipnetwork", - "k256", - "lazy-regex", - "libc", - "libz-sys", - "md-5", - "md4", - "memchr", - "node_resolver", - "num-bigint", - "num-bigint-dig", - "num-integer", - "num-traits", - "once_cell", - "p224", - "p256 0.13.2", - "p384", - "path-clean", - "pbkdf2", - "pin-project-lite", - "pkcs8 0.10.2", - "rand 0.8.5", - "regex", - "ring 0.17.8", - "ripemd", - "rsa", - "scrypt", - "sec1 0.7.3", - "serde", - "sha1", - "sha2 0.10.8", - "sha3", - "signature 2.2.0", - "simd-json", - "sm3", - "spki 0.7.3", - "stable_deref_trait", - "thiserror 1.0.69", - "tokio", - "tokio-eld", - "url", - "webpki-root-certs", - "winapi", - "windows-sys 0.52.0", - "x25519-dalek", - "x509-parser", - "yoke", -] - -[[package]] -name = "deno_ops" -version = "0.199.0" -source = "git+https://github.com/rivet-gg/deno_core?rev=8a313913fa73d58f4f9532565b0084e723bc34ad#8a313913fa73d58f4f9532565b0084e723bc34ad" -dependencies = [ - "proc-macro-rules", - "proc-macro2", - "quote", - "stringcase", - "strum 0.25.0", - "strum_macros 0.25.3", - "syn 2.0.90", - "thiserror 1.0.69", -] - -[[package]] -name = "deno_package_json" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b0a3d81c592624a1ae15332a04b4dc2b7c163ef1dfc7c60171f736d1babdf5" -dependencies = [ - "deno_error", - "deno_path_util", - "deno_semver", - "indexmap 2.7.0", - "serde", - "serde_json", - "thiserror 2.0.12", - "url", -] - -[[package]] -name = "deno_path_util" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff25f6e08e7a0214bbacdd6f7195c7f1ebcd850c87a624e4ff06326b68b42d99" -dependencies = [ - "percent-encoding", - "thiserror 1.0.69", - "url", -] - -[[package]] -name = "deno_permissions" -version = "0.40.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_path_util", - "deno_terminal 0.2.0", - "fqdn", - "libc", - "log", - "once_cell", - "percent-encoding", - "serde", - "thiserror 1.0.69", - "which 4.4.2", - "winapi", -] - -[[package]] -name = "deno_runtime" -version = "0.189.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "color-print", - "deno_ast 0.44.0", - "deno_broadcast_channel", - "deno_cache", - "deno_canvas", - "deno_console", - "deno_core", - "deno_cron", - "deno_crypto", - "deno_fetch", - "deno_ffi", - "deno_fs", - "deno_http", - "deno_io", - "deno_kv", - "deno_napi", - "deno_net", - "deno_node", - "deno_path_util", - "deno_permissions", - "deno_telemetry", - "deno_terminal 0.2.0", - "deno_tls", - "deno_url", - "deno_web", - "deno_webgpu", - "deno_webidl", - "deno_websocket", - "deno_webstorage", - "dlopen2 0.6.1", - "encoding_rs", - "fastwebsockets", - "flate2", - "http 1.1.0", - "http-body-util", - "hyper 0.14.31", - "hyper 1.6.0", - "hyper-util", - "libc", - "log", - "netif", - "nix 0.27.1", - "node_resolver", - "notify", - "ntapi", - "once_cell", - "percent-encoding", - "regex", - "rustyline 13.0.0", - "same-file", - "serde", - "signal-hook", - "signal-hook-registry", - "tempfile", - "thiserror 1.0.69", - "tokio", - "tokio-metrics", - "twox-hash", - "uuid", - "which 4.4.2", - "winapi", - "windows-sys 0.52.0", -] - -[[package]] -name = "deno_semver" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d1259270d66a5e6d29bb75c9289656541874f79ae9ff6c9f1c790846d5c07ba" -dependencies = [ - "deno_error", - "monch", - "once_cell", - "serde", - "thiserror 2.0.12", - "url", -] - -[[package]] -name = "deno_telemetry" -version = "0.2.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" +name = "deno_ops" +version = "0.199.0" +source = "git+https://github.com/rivet-gg/deno_core?rev=8a313913fa73d58f4f9532565b0084e723bc34ad#8a313913fa73d58f4f9532565b0084e723bc34ad" dependencies = [ - "async-trait", - "deno_core", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "log", - "once_cell", - "opentelemetry 0.27.1", - "opentelemetry-http 0.27.0", - "opentelemetry-otlp 0.27.0", - "opentelemetry-semantic-conventions 0.27.0", - "opentelemetry_sdk 0.27.1", - "pin-project", - "serde", - "tokio", + "proc-macro-rules", + "proc-macro2", + "quote", + "stringcase", + "strum 0.25.0", + "strum_macros 0.25.3", + "syn 2.0.90", + "thiserror 1.0.69", ] [[package]] @@ -5156,33 +4209,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "deno_terminal" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daef12499e89ee99e51ad6000a91f600d3937fb028ad4918af76810c5bc9e0d5" -dependencies = [ - "once_cell", - "termcolor", -] - -[[package]] -name = "deno_tls" -version = "0.167.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_native_certs", - "rustls 0.23.25", - "rustls-pemfile 2.2.0", - "rustls-tokio-stream", - "rustls-webpki 0.102.8", - "serde", - "thiserror 1.0.69", - "tokio", - "webpki-roots 0.26.7", -] - [[package]] name = "deno_unsync" version = "0.4.2" @@ -5194,167 +4220,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "deno_url" -version = "0.180.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "thiserror 1.0.69", - "urlpattern", -] - -[[package]] -name = "deno_web" -version = "0.211.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "async-trait", - "base64-simd 0.8.0", - "bytes", - "deno_core", - "deno_permissions", - "encoding_rs", - "flate2", - "futures", - "serde", - "thiserror 1.0.69", - "tokio", - "uuid", -] - -[[package]] -name = "deno_webgpu" -version = "0.147.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "raw-window-handle", - "serde", - "thiserror 1.0.69", - "tokio", - "wgpu-core", - "wgpu-types", -] - -[[package]] -name = "deno_webidl" -version = "0.180.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", -] - -[[package]] -name = "deno_websocket" -version = "0.185.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "bytes", - "deno_core", - "deno_net", - "deno_permissions", - "deno_tls", - "fastwebsockets", - "h2 0.4.7", - "http 1.1.0", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "once_cell", - "rustls-tokio-stream", - "serde", - "thiserror 1.0.69", - "tokio", -] - -[[package]] -name = "deno_webstorage" -version = "0.175.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "deno_core", - "deno_web", - "rusqlite", - "thiserror 1.0.69", -] - -[[package]] -name = "deno_whoami" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75e4caa92b98a27f09c671d1399aee0f5970aa491b9a598523aac000a2192e3" -dependencies = [ - "libc", - "whoami", -] - -[[package]] -name = "denokv_proto" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ba1f99ed11a9c11e868a8521b1f71a7e1aba785d7f42ea9ecbdc01146c89ec" -dependencies = [ - "anyhow", - "async-trait", - "chrono", - "futures", - "num-bigint", - "prost 0.13.4", - "serde", - "uuid", -] - -[[package]] -name = "denokv_remote" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ed833073189e8f6d03155fe3b05a024e75e29d8a28a4c2e9ec3b5c925e727b" -dependencies = [ - "anyhow", - "async-stream", - "async-trait", - "bytes", - "chrono", - "denokv_proto", - "futures", - "http 1.1.0", - "log", - "prost 0.13.4", - "rand 0.8.5", - "serde", - "serde_json", - "tokio", - "tokio-util 0.7.12", - "url", - "uuid", -] - -[[package]] -name = "denokv_sqlite" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b790f01d1302d53a0c3cbd27de88a06b3abd64ec8ab8673924e490541c7c713" -dependencies = [ - "anyhow", - "async-stream", - "async-trait", - "chrono", - "denokv_proto", - "futures", - "hex", - "log", - "num-bigint", - "rand 0.8.5", - "rusqlite", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "uuid", - "v8_valueserializer", -] - [[package]] name = "der" version = "0.6.1" @@ -5372,36 +4237,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", - "der_derive", "pem-rfc7468", "zeroize", ] -[[package]] -name = "der-parser" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom 7.1.3", - "num-bigint", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "der_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "deranged" version = "0.3.11" @@ -5558,41 +4397,6 @@ dependencies = [ "syn 2.0.90", ] -[[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" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" -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.90", -] - [[package]] name = "doc-comment" version = "0.3.3" @@ -5610,15 +4414,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "document-features" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" -dependencies = [ - "litrs", -] - [[package]] name = "dotenvy" version = "0.15.7" @@ -5640,22 +4435,6 @@ dependencies = [ "text_lines", ] -[[package]] -name = "dsa" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689" -dependencies = [ - "digest 0.10.7", - "num-bigint-dig", - "num-traits", - "pkcs8 0.10.2", - "rfc6979 0.4.0", - "sha2 0.10.8", - "signature 2.2.0", - "zeroize", -] - [[package]] name = "dunce" version = "1.0.5" @@ -5672,46 +4451,11 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" name = "dynamic-config" version = "25.5.3" dependencies = [ - "chirp-workflow", - "indoc 2.0.5", - "rivet-config", - "rivet-operation", - "tokio", -] - -[[package]] -name = "dynasm" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "lazy_static", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "dynasmrt" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9" -dependencies = [ - "byteorder", - "dynasm", - "memmap2", -] - -[[package]] -name = "ecb" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7" -dependencies = [ - "cipher", + "chirp-workflow", + "indoc 2.0.5", + "rivet-config", + "rivet-operation", + "tokio", ] [[package]] @@ -5746,7 +4490,6 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "pkcs8 0.10.2", "signature 2.2.0", ] @@ -5758,24 +4501,9 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.6.4", - "serde", "sha2 0.10.8", "signature 2.2.0", "subtle", - "zeroize", -] - -[[package]] -name = "ed448-goldilocks" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06924531e9e90130842b012e447f85bdaf9161bc8a0f8092be8cb70b01ebe092" -dependencies = [ - "fiat-crypto 0.1.20", - "hex", - "subtle", - "zeroize", ] [[package]] @@ -5826,19 +4554,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct 0.2.0", - "base64ct", "crypto-bigint 0.5.5", "digest 0.10.7", "ff 0.13.0", "generic-array", "group 0.13.0", - "hkdf", - "pem-rfc7468", "pkcs8 0.10.2", "rand_core 0.6.4", "sec1 0.7.3", - "serde_json", - "serdect", "subtle", "zeroize", ] @@ -5954,17 +4677,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] - [[package]] name = "errno" version = "0.3.10" @@ -5975,28 +4687,12 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "error-code" version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" -[[package]] -name = "error_reporter" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ae425815400e5ed474178a7a22e275a9687086a12ca63ec793ff292d8fdae8" - [[package]] name = "etcetera" version = "0.8.0" @@ -6250,27 +4946,6 @@ dependencies = [ "user-get", ] -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fallible-streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" - -[[package]] -name = "faster-hex" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" -dependencies = [ - "serde", -] - [[package]] name = "fastrand" version = "1.9.0" @@ -6286,26 +4961,6 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" -[[package]] -name = "fastwebsockets" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26da0c7b5cef45c521a6f9cdfffdfeb6c9f5804fbac332deb5ae254634c7a6be" -dependencies = [ - "base64 0.21.7", - "bytes", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "pin-project", - "rand 0.8.5", - "sha1", - "simdutf8", - "thiserror 1.0.69", - "tokio", - "utf-8", -] - [[package]] name = "fd-lock" version = "4.0.2" @@ -6329,15 +4984,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "fdeflate" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" -dependencies = [ - "simd-adler32", -] - [[package]] name = "ff" version = "0.12.1" @@ -6358,12 +5004,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "fiat-crypto" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" - [[package]] name = "fiat-crypto" version = "0.2.9" @@ -6398,15 +5038,6 @@ dependencies = [ "miniz_oxide 0.8.0", ] -[[package]] -name = "float-cmp" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" -dependencies = [ - "num-traits", -] - [[package]] name = "flume" version = "0.11.1" @@ -6436,28 +5067,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared 0.1.1", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared 0.3.1", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", + "foreign-types-shared", ] [[package]] @@ -6466,12 +5076,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - [[package]] name = "form_urlencoded" version = "1.2.1" @@ -6545,12 +5149,6 @@ dependencies = [ "libc", ] -[[package]] -name = "fqdn" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb540cf7bc4fe6df9d8f7f0c974cfd0dce8ed4e9e8884e73433b503ee78b4e7d" - [[package]] name = "from_variant" version = "0.1.9" @@ -6562,17 +5160,6 @@ dependencies = [ "syn 2.0.90", ] -[[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 = "fs_extra" version = "1.3.0" @@ -7110,33 +5697,12 @@ dependencies = [ "wasi 0.14.2+wasi-0.2.4", ] -[[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.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" -[[package]] -name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - [[package]] name = "glob" version = "0.3.1" @@ -7170,27 +5736,6 @@ dependencies = [ "regex-syntax 0.8.5", ] -[[package]] -name = "glow" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glutin_wgl_sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" -dependencies = [ - "gl_generator", -] - [[package]] name = "governor" version = "0.6.3" @@ -7211,45 +5756,6 @@ dependencies = [ "spinning_top", ] -[[package]] -name = "gpu-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" -dependencies = [ - "bitflags 2.6.0", - "gpu-alloc-types", -] - -[[package]] -name = "gpu-alloc-types" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "gpu-descriptor" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" -dependencies = [ - "bitflags 2.6.0", - "gpu-descriptor-types", - "hashbrown 0.15.2", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" -dependencies = [ - "bitflags 2.6.0", -] - [[package]] name = "gray_matter" version = "0.2.8" @@ -7331,16 +5837,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "halfbrown" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f" -dependencies = [ - "hashbrown 0.14.5", - "serde", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -7397,9 +5893,8 @@ checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" dependencies = [ "base64 0.21.7", "byteorder", - "crossbeam-channel", "flate2", - "nom 7.1.3", + "nom", "num-traits", ] @@ -7448,71 +5943,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "hickory-proto" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447afdcdb8afb9d0a852af6dc65d9b285ce720ed7a59e42a8bf2e931c67bc1b5" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 1.0.3", - "ipnet", - "once_cell", - "rand 0.8.5", - "serde", - "thiserror 1.0.69", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "hickory-resolver" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" -dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot 0.12.3", - "rand 0.8.5", - "resolv-conf", - "serde", - "smallvec", - "thiserror 1.0.69", - "tokio", - "tracing", -] - [[package]] name = "hkdf" version = "0.12.4" @@ -8050,24 +6486,11 @@ dependencies = [ "crossbeam-deque", "globset", "log", - "memchr", - "regex-automata 0.4.9", - "same-file", - "walkdir", - "winapi-util", -] - -[[package]] -name = "image" -version = "0.24.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" -dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-traits", - "png", + "memchr", + "regex-automata 0.4.9", + "same-file", + "walkdir", + "winapi-util", ] [[package]] @@ -8162,7 +6585,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "block-padding", "generic-array", ] @@ -8472,56 +6894,6 @@ dependencies = [ "simple_asn1", ] -[[package]] -name = "junction" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be39922b087cecaba4e2d5592dedfc8bda5d4a5a1231f143337cca207950b61d" -dependencies = [ - "scopeguard", - "winapi", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "once_cell", - "sha2 0.10.8", - "signature 2.2.0", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "khronos-egl" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" -dependencies = [ - "libc", - "libloading 0.8.6", - "pkg-config", -] - -[[package]] -name = "khronos_api" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" - [[package]] name = "kqueue" version = "1.0.8" @@ -8551,29 +6923,6 @@ dependencies = [ "serde", ] -[[package]] -name = "lazy-regex" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60c7310b93682b36b98fa7ea4de998d3463ccbebd94d935d6b48ba5b6ffa7126" -dependencies = [ - "lazy-regex-proc_macros", - "once_cell", - "regex", -] - -[[package]] -name = "lazy-regex-proc_macros" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba01db5ef81e17eb10a5e0f2109d1b3a3e29bac3070fdbd7d156bf7dbd206a1" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "syn 2.0.90", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -8595,35 +6944,6 @@ version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" -[[package]] -name = "libffi" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" -dependencies = [ - "libc", - "libffi-sys", -] - -[[package]] -name = "libffi-sys" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" -dependencies = [ - "cc", -] - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libloading" version = "0.8.6" @@ -8747,12 +7067,6 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" -[[package]] -name = "litrs" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" - [[package]] name = "load-test-api-cloud" version = "25.5.3" @@ -8958,15 +7272,6 @@ dependencies = [ "twox-hash", ] -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - [[package]] name = "maplit" version = "1.0.2" @@ -9014,15 +7319,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "md4" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "md5" version = "0.7.0" @@ -9035,21 +7331,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -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.1" @@ -9070,21 +7351,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "metal" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb" -dependencies = [ - "bitflags 2.6.0", - "block", - "core-graphics-types", - "foreign-types 0.5.0", - "log", - "objc", - "paste", -] - [[package]] name = "mime" version = "0.3.17" @@ -9123,7 +7389,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" dependencies = [ "adler2", - "simd-adler32", ] [[package]] @@ -9637,12 +7902,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "monch" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea" - [[package]] name = "monolith-worker" version = "25.5.3" @@ -9690,28 +7949,6 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" -[[package]] -name = "naga" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231" -dependencies = [ - "arrayvec 0.7.6", - "bit-set", - "bitflags 2.6.0", - "codespan-reporting", - "hexf-parse", - "indexmap 2.7.0", - "log", - "num-traits", - "rustc-hash 1.1.0", - "serde", - "spirv", - "termcolor", - "thiserror 1.0.69", - "unicode-xid", -] - [[package]] name = "nalgebra" version = "0.33.2" @@ -9729,17 +7966,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "napi_sym" -version = "0.110.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "quote", - "serde", - "serde_json", - "syn 2.0.90", -] - [[package]] name = "native-tls" version = "0.2.12" @@ -9763,15 +7989,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-sys" -version = "0.5.0+25.2.9519653" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" -dependencies = [ - "jni-sys", -] - [[package]] name = "netif" version = "0.1.6" @@ -9806,17 +8023,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "nix" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "libc", -] - [[package]] name = "nix" version = "0.29.0" @@ -9825,7 +8031,7 @@ checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ "bitflags 2.6.0", "cfg-if", - "cfg_aliases 0.2.1", + "cfg_aliases", "libc", ] @@ -9837,7 +8043,7 @@ checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags 2.6.0", "cfg-if", - "cfg_aliases 0.2.1", + "cfg_aliases", "libc", ] @@ -9863,38 +8069,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" -[[package]] -name = "node_resolver" -version = "0.19.0" -source = "git+https://github.com/rivet-gg/deno?rev=a6903d67063e07b82836399f63c7a0fa5be8bf56#a6903d67063e07b82836399f63c7a0fa5be8bf56" -dependencies = [ - "anyhow", - "async-trait", - "boxed_error", - "deno_media_type 0.2.2", - "deno_package_json", - "deno_path_util", - "futures", - "lazy-regex", - "once_cell", - "path-clean", - "regex", - "serde_json", - "thiserror 1.0.69", - "tokio", - "url", -] - -[[package]] -name = "nom" -version = "5.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" -dependencies = [ - "memchr", - "version_check", -] - [[package]] name = "nom" version = "7.1.3" @@ -9994,7 +8168,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" dependencies = [ "bitflags 2.6.0", - "crossbeam-channel", "filetime", "fsevent-sys", "inotify", @@ -10069,7 +8242,6 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", - "serde", "smallvec", "zeroize", ] @@ -10141,16 +8313,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_threads" version = "0.1.7" @@ -10166,15 +8328,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - [[package]] name = "objc-sys" version = "0.3.5" @@ -10218,15 +8371,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "oid-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" -dependencies = [ - "asn1-rs", -] - [[package]] name = "once_cell" version = "1.20.2" @@ -10247,7 +8391,7 @@ checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", - "foreign-types 0.3.2", + "foreign-types", "libc", "once_cell", "openssl-macros", @@ -10283,20 +8427,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "opentelemetry" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "pin-project-lite", - "thiserror 1.0.69", - "tracing", -] - [[package]] name = "opentelemetry" version = "0.28.0" @@ -10317,24 +8447,12 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c513c7af3bec30113f3d4620134ff923295f1e9c580fda2b8abe0831f925ddc0" dependencies = [ - "opentelemetry 0.28.0", + "opentelemetry", "tracing", "tracing-core", "tracing-subscriber", ] -[[package]] -name = "opentelemetry-http" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a8a7f5f6ba7c1b286c2fbca0454eaba116f63bbe69ed250b642d36fbb04d80" -dependencies = [ - "async-trait", - "bytes", - "http 1.1.0", - "opentelemetry 0.27.1", -] - [[package]] name = "opentelemetry-http" version = "0.28.0" @@ -10344,65 +8462,30 @@ dependencies = [ "async-trait", "bytes", "http 1.1.0", - "opentelemetry 0.28.0", + "opentelemetry", "reqwest 0.12.12", "tracing", ] -[[package]] -name = "opentelemetry-otlp" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" -dependencies = [ - "async-trait", - "futures-core", - "http 1.1.0", - "opentelemetry 0.27.1", - "opentelemetry-http 0.27.0", - "opentelemetry-proto 0.27.0", - "opentelemetry_sdk 0.27.1", - "prost 0.13.4", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tonic", - "tracing", -] - [[package]] name = "opentelemetry-otlp" version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bef114c6d41bea83d6dc60eb41720eedd0261a67af57b66dd2b84ac46c01d91" dependencies = [ - "async-trait", - "futures-core", - "http 1.1.0", - "opentelemetry 0.28.0", - "opentelemetry-http 0.28.0", - "opentelemetry-proto 0.28.0", - "opentelemetry_sdk 0.28.0", - "prost 0.13.4", - "reqwest 0.12.12", - "thiserror 2.0.12", - "tokio", - "tonic", - "tracing", -] - -[[package]] -name = "opentelemetry-proto" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" -dependencies = [ - "hex", - "opentelemetry 0.27.1", - "opentelemetry_sdk 0.27.1", + "async-trait", + "futures-core", + "http 1.1.0", + "opentelemetry", + "opentelemetry-http", + "opentelemetry-proto", + "opentelemetry_sdk", "prost 0.13.4", - "serde", + "reqwest 0.12.12", + "thiserror 2.0.12", + "tokio", "tonic", + "tracing", ] [[package]] @@ -10411,18 +8494,12 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f8870d3024727e99212eb3bb1762ec16e255e3e6f58eeb3dc8db1aa226746d" dependencies = [ - "opentelemetry 0.28.0", - "opentelemetry_sdk 0.28.0", + "opentelemetry", + "opentelemetry_sdk", "prost 0.13.4", "tonic", ] -[[package]] -name = "opentelemetry-semantic-conventions" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc1b6902ff63b32ef6c489e8048c5e253e2e4a803ea3ea7e783914536eb15c52" - [[package]] name = "opentelemetry-semantic-conventions" version = "0.28.0" @@ -10438,31 +8515,12 @@ dependencies = [ "async-trait", "chrono", "futures-util", - "opentelemetry 0.28.0", - "opentelemetry_sdk 0.28.0", + "opentelemetry", + "opentelemetry_sdk", "serde", "thiserror 2.0.12", ] -[[package]] -name = "opentelemetry_sdk" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" -dependencies = [ - "async-trait", - "futures-channel", - "futures-executor", - "futures-util", - "glob", - "opentelemetry 0.27.1", - "percent-encoding", - "rand 0.8.5", - "serde_json", - "thiserror 1.0.69", - "tracing", -] - [[package]] name = "opentelemetry_sdk" version = "0.28.0" @@ -10474,7 +8532,7 @@ dependencies = [ "futures-executor", "futures-util", "glob", - "opentelemetry 0.28.0", + "opentelemetry", "percent-encoding", "rand 0.8.5", "serde_json", @@ -10488,25 +8546,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "ordered-float" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" -dependencies = [ - "num-traits", -] - -[[package]] -name = "os_pipe" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "outref" version = "0.1.0" @@ -10525,18 +8564,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "p224" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c06436d66652bc2f01ade021592c80a2aad401570a18aa18b82e440d2b9aa1" -dependencies = [ - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", - "primeorder", - "sha2 0.10.8", -] - [[package]] name = "p256" version = "0.11.1" @@ -10688,45 +8715,18 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "path-clean" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd" - [[package]] name = "pathdiff" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", -] - [[package]] name = "pegboard" version = "25.5.3" @@ -10830,9 +8830,8 @@ name = "pegboard-isolate-v8-runner" version = "25.5.3" dependencies = [ "anyhow", - "deno_ast 0.42.2", + "deno_ast", "deno_core", - "deno_runtime", "fdb-util", "foundationdb", "futures-util", @@ -11105,21 +9104,6 @@ dependencies = [ "spki 0.7.3", ] -[[package]] -name = "pkcs5" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e847e2c91a18bfa887dd028ec33f2fe6f25db77db3619024764914affe8b69a6" -dependencies = [ - "aes", - "cbc", - "der 0.7.9", - "pbkdf2", - "scrypt", - "sha2 0.10.8", - "spki 0.7.3", -] - [[package]] name = "pkcs8" version = "0.9.0" @@ -11137,8 +9121,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ "der 0.7.9", - "pkcs5", - "rand_core 0.6.4", "spki 0.7.3", ] @@ -11167,31 +9149,6 @@ dependencies = [ "proc-macro-hack", ] -[[package]] -name = "png" -version = "0.17.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide 0.8.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.10.0" @@ -11373,12 +9330,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "profiling" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" - [[package]] name = "prometheus" version = "0.13.4" @@ -11456,26 +9407,6 @@ dependencies = [ "which 4.4.2", ] -[[package]] -name = "prost-build" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" -dependencies = [ - "heck 0.5.0", - "itertools 0.12.1", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease 0.2.25", - "prost 0.13.4", - "prost-types 0.13.4", - "regex", - "syn 2.0.90", - "tempfile", -] - [[package]] name = "prost-derive" version = "0.10.1" @@ -11683,7 +9614,7 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ - "cfg_aliases 0.2.1", + "cfg_aliases", "libc", "once_cell", "socket2 0.5.8", @@ -11792,12 +9723,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "range-alloc" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" - [[package]] name = "raw-cpuid" version = "11.2.0" @@ -11807,12 +9732,6 @@ dependencies = [ "bitflags 2.6.0", ] -[[package]] -name = "raw-window-handle" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" - [[package]] name = "rawpointer" version = "0.2.1" @@ -11911,26 +9830,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "ref-cast" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "regex" version = "1.11.1" @@ -12230,15 +10129,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "rivet-api" version = "0.0.1" @@ -12916,12 +10806,12 @@ version = "25.5.3" dependencies = [ "console-subscriber", "lazy_static", - "opentelemetry 0.28.0", + "opentelemetry", "opentelemetry-appender-tracing", - "opentelemetry-otlp 0.28.0", - "opentelemetry-semantic-conventions 0.28.0", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", "opentelemetry-stdout", - "opentelemetry_sdk 0.28.0", + "opentelemetry_sdk", "reqwest 0.12.12", "rivet-env", "rivet-metrics", @@ -13014,7 +10904,7 @@ dependencies = [ "rivet-runtime", "rivet-service-manager", "rivet-term", - "rustyline 15.0.0", + "rustyline", "s3-util", "serde", "serde_json", @@ -13255,18 +11145,6 @@ dependencies = [ "rivet-operation", ] -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags 2.6.0", - "serde", - "serde_derive", -] - [[package]] name = "route" version = "25.5.3" @@ -13306,20 +11184,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rusqlite" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" -dependencies = [ - "bitflags 2.6.0", - "fallible-iterator", - "fallible-streaming-iterator", - "hashlink 0.9.1", - "libsqlite3-sys", - "smallvec", -] - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -13356,15 +11220,6 @@ dependencies = [ "semver 1.0.23", ] -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom 7.1.3", -] - [[package]] name = "rustix" version = "0.38.41" @@ -13372,7 +11227,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", - "errno 0.3.10", + "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", @@ -13443,19 +11298,6 @@ dependencies = [ "security-framework 2.11.1", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -13495,18 +11337,6 @@ dependencies = [ "web-time", ] -[[package]] -name = "rustls-tokio-stream" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22557157d7395bc30727745b365d923f1ecc230c4c80b176545f3f4f08c46e33" -dependencies = [ - "futures", - "rustls 0.23.25", - "socket2 0.5.8", - "tokio", -] - [[package]] name = "rustls-webpki" version = "0.101.7" @@ -13517,17 +11347,6 @@ dependencies = [ "untrusted 0.9.0", ] -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", -] - [[package]] name = "rustls-webpki" version = "0.103.1" @@ -13546,28 +11365,6 @@ version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" -[[package]] -name = "rustyline" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "clipboard-win", - "fd-lock", - "home", - "libc", - "log", - "memchr", - "nix 0.27.1", - "radix_trie", - "unicode-segmentation", - "unicode-width 0.1.14", - "utf8parse", - "winapi", -] - [[package]] name = "rustyline" version = "15.0.0" @@ -13596,12 +11393,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "ryu-js" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" - [[package]] name = "s3-util" version = "25.5.3" @@ -13628,25 +11419,6 @@ dependencies = [ "bytemuck", ] -[[package]] -name = "saffron" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03fb9a628596fc7590eb7edbf7b0613287be78df107f5f97b118aad59fb2eea9" -dependencies = [ - "chrono", - "nom 5.1.3", -] - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - [[package]] name = "same-file" version = "1.0.6" @@ -13670,7 +11442,7 @@ name = "schemac" version = "25.5.3" dependencies = [ "lazy_static", - "prost-build 0.11.9", + "prost-build", "regex", "tempfile", ] @@ -13709,21 +11481,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scrypt" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" -dependencies = [ - "password-hash", - "pbkdf2", - "salsa20", - "sha2 0.10.8", -] +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" @@ -13781,7 +11541,6 @@ dependencies = [ "der 0.7.9", "generic-array", "pkcs8 0.10.2", - "serdect", "subtle", "zeroize", ] @@ -13865,16 +11624,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde", -] - [[package]] name = "serde_array_query" version = "0.2.0" @@ -14063,16 +11812,6 @@ dependencies = [ "unsafe-libyaml", ] -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct 0.2.0", - "serde", -] - [[package]] name = "server-spec" version = "25.5.3" @@ -14136,16 +11875,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -14245,33 +11974,6 @@ dependencies = [ "outref 0.1.0", ] -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - -[[package]] -name = "simd-json" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2bcf6c6e164e81bc7a5d49fc6988b3d515d9e8c07457d7b74ffb9324b9cd40" -dependencies = [ - "getrandom 0.2.15", - "halfbrown", - "ref-cast", - "serde", - "serde_json", - "simdutf8", - "value-trait", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - [[package]] name = "simple_asn1" version = "0.6.2" @@ -14299,24 +12001,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "slotmap" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" -dependencies = [ - "version_check", -] - -[[package]] -name = "sm3" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebb9a3b702d0a7e33bc4d85a14456633d2b165c2ad839c5fd9a8417c1ab15860" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "smallvec" version = "1.13.2" @@ -14376,25 +12060,6 @@ dependencies = [ "url", ] -[[package]] -name = "sourcemap" -version = "9.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c4ea7042fd1a155ad95335b5d505ab00d5124ea0332a06c8390d200bb1a76a" -dependencies = [ - "base64-simd 0.7.0", - "bitvec", - "data-encoding", - "debugid", - "if_chain", - "rustc-hash 1.1.0", - "rustc_version 0.2.3", - "serde", - "serde_json", - "unicode-id-start", - "url", -] - [[package]] name = "spin" version = "0.5.2" @@ -14419,15 +12084,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "spirv" -version = "0.3.0+sdk-1.3.268.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" -dependencies = [ - "bitflags 2.6.0", -] - [[package]] name = "spki" version = "0.6.0" @@ -14898,20 +12554,6 @@ dependencies = [ "serde", ] -[[package]] -name = "swc_cached" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83406221c501860fce9c27444f44125eafe9e598b8b81be7563d7036784cd05c" -dependencies = [ - "ahash 0.8.11", - "anyhow", - "dashmap", - "once_cell", - "regex", - "serde", -] - [[package]] name = "swc_common" version = "0.37.5" @@ -14929,7 +12571,6 @@ dependencies = [ "rustc-hash 1.1.0", "serde", "siphasher", - "sourcemap 9.1.2", "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", @@ -14940,259 +12581,43 @@ dependencies = [ ] [[package]] -name = "swc_config" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4740e53eaf68b101203c1df0937d5161a29f3c13bceed0836ddfe245b72dd000" -dependencies = [ - "anyhow", - "indexmap 2.7.0", - "serde", - "serde_json", - "swc_cached", - "swc_config_macro", -] - -[[package]] -name = "swc_config_macro" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5f56139042c1a95b54f5ca48baa0e0172d369bcc9d3d473dad1de36bae8399" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.90", -] - -[[package]] -name = "swc_ecma_ast" -version = "0.118.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f866d12e4d519052b92a0a86d1ac7ff17570da1272ca0c89b3d6f802cd79df" -dependencies = [ - "bitflags 2.6.0", - "is-macro", - "num-bigint", - "phf", - "scoped-tls", - "serde", - "string_enum", - "swc_atoms", - "swc_common", - "unicode-id-start", -] - -[[package]] -name = "swc_ecma_codegen" -version = "0.155.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7641608ef117cfbef9581a99d02059b522fcca75e5244fa0cbbd8606689c6f" -dependencies = [ - "memchr", - "num-bigint", - "once_cell", - "serde", - "sourcemap 9.1.2", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_codegen_macros", - "tracing", -] - -[[package]] -name = "swc_ecma_codegen_macros" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859fabde36db38634f3fad548dd5e3410c1aebba1b67a3c63e67018fa57a0bca" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.90", -] - -[[package]] -name = "swc_ecma_loader" -version = "0.49.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55fa3d55045b97894bfb04d38aff6d6302ac8a6a38e3bb3dfb0d20475c4974a9" -dependencies = [ - "anyhow", - "pathdiff", - "serde", - "swc_atoms", - "swc_common", - "tracing", -] - -[[package]] -name = "swc_ecma_parser" -version = "0.149.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683dada14722714588b56481399c699378b35b2ba4deb5c4db2fb627a97fb54b" -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.145.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65f21494e75d0bd8ef42010b47cabab9caaed8f2207570e809f6f4eb51a710d1" -dependencies = [ - "better_scoped_tls", - "bitflags 2.6.0", - "indexmap 2.7.0", - "once_cell", - "phf", - "rustc-hash 1.1.0", - "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.134.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3d884594385bea9405a2e1721151470d9a14d3ceec5dd773c0ca6894791601" -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.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500a1dadad1e0e41e417d633b3d6d5de677c9e0d3159b94ba3348436cdb15aab" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.90", -] - -[[package]] -name = "swc_ecma_transforms_proposal" -version = "0.179.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79938ff510fc647febd8c6c3ef4143d099fdad87a223680e632623d056dae2dd" -dependencies = [ - "either", - "rustc-hash 1.1.0", - "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 = "swc_ecma_transforms_react" -version = "0.191.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c76d8b9792ce51401d38da0fa62158d61f6d80d16d68fe5b03ce4bf5fba383" -dependencies = [ - "base64 0.21.7", - "dashmap", - "indexmap 2.7.0", - "once_cell", - "serde", - "sha1", - "string_enum", - "swc_allocator", - "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 = "swc_ecma_transforms_typescript" -version = "0.198.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15455da4768f97186c40523e83600495210c11825d3a44db43383fd81eace88d" -dependencies = [ - "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 = "swc_ecma_utils" -version = "0.134.2" +name = "swc_ecma_ast" +version = "0.118.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029eec7dd485923a75b5a45befd04510288870250270292fc2c1b3a9e7547408" +checksum = "a6f866d12e4d519052b92a0a86d1ac7ff17570da1272ca0c89b3d6f802cd79df" dependencies = [ - "indexmap 2.7.0", - "num_cpus", - "once_cell", - "rustc-hash 1.1.0", - "ryu-js", + "bitflags 2.6.0", + "is-macro", + "num-bigint", + "phf", + "scoped-tls", + "serde", + "string_enum", "swc_atoms", "swc_common", - "swc_ecma_ast", - "swc_ecma_visit", - "tracing", - "unicode-id", + "unicode-id-start", ] [[package]] -name = "swc_ecma_visit" -version = "0.104.8" +name = "swc_ecma_parser" +version = "0.149.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1c6802e68e51f336e8bc9644e9ff9da75d7da9c1a6247d532f2e908aa33e81" +checksum = "683dada14722714588b56481399c699378b35b2ba4deb5c4db2fb627a97fb54b" dependencies = [ + "either", "new_debug_unreachable", "num-bigint", + "num-traits", + "phf", + "serde", + "smallvec", + "smartstring", + "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", - "swc_visit", "tracing", + "typed-arena", ] [[package]] @@ -15227,19 +12652,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "swc_visit_macros" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92807d840959f39c60ce8a774a3f83e8193c658068e6d270dbe0a05e40e90b41" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.90", -] - [[package]] name = "syn" version = "1.0.109" @@ -15277,18 +12689,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - [[package]] name = "synstructure" version = "0.13.1" @@ -15990,16 +13390,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "tokio-eld" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9166030f05d6bc5642bdb8f8c2be31eb3c02cd465d662bcdc2df82d4aa41a584" -dependencies = [ - "hdrhistogram", - "tokio", -] - [[package]] name = "tokio-macros" version = "2.5.0" @@ -16011,18 +13401,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "tokio-metrics" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eace09241d62c98b7eeb1107d4c5c64ca3bd7da92e8c218c153ab3a78f9be112" -dependencies = [ - "futures-util", - "pin-project-lite", - "tokio", - "tokio-stream", -] - [[package]] name = "tokio-native-tls" version = "0.3.1" @@ -16075,18 +13453,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-socks" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" -dependencies = [ - "either", - "futures-util", - "thiserror 1.0.69", - "tokio", -] - [[package]] name = "tokio-stream" version = "0.1.16" @@ -16173,12 +13539,8 @@ checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", - "futures-io", "futures-sink", - "futures-util", - "hashbrown 0.14.5", "pin-project-lite", - "slab", "tokio", ] @@ -16290,26 +13652,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "tower-http" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" -dependencies = [ - "async-compression", - "bitflags 2.6.0", - "bytes", - "futures-core", - "http 1.1.0", - "http-body 1.0.1", - "http-body-util", - "pin-project-lite", - "tokio", - "tokio-util 0.7.12", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-layer" version = "0.3.3" @@ -16397,8 +13739,8 @@ checksum = "721f2d2569dce9f3dfbbddee5906941e953bfcdf736a62da3377f5751650cc36" dependencies = [ "js-sys", "once_cell", - "opentelemetry 0.28.0", - "opentelemetry_sdk 0.28.0", + "opentelemetry", + "opentelemetry_sdk", "smallvec", "tracing", "tracing-core", @@ -16614,7 +13956,7 @@ version = "25.5.3" dependencies = [ "heck 0.3.3", "indoc 1.0.9", - "prost-build 0.11.9", + "prost-build", "protobuf-src", "regex", "schemac", @@ -16628,47 +13970,6 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" -[[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.8.0" @@ -16681,12 +13982,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" -[[package]] -name = "unicode-id" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561" - [[package]] name = "unicode-id-start" version = "1.3.1" @@ -16738,16 +14033,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[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.11" @@ -16899,18 +14184,6 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "urlpattern" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d" -dependencies = [ - "regex", - "serde", - "unic-ucd-ident", - "url", -] - [[package]] name = "user" version = "25.5.3" @@ -17158,39 +14431,12 @@ dependencies = [ "which 6.0.3", ] -[[package]] -name = "v8_valueserializer" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97599c400fc79925922b58303e98fcb8fa88f573379a08ddb652e72cbd2e70f6" -dependencies = [ - "bitflags 2.6.0", - "encoding_rs", - "indexmap 2.7.0", - "num-bigint", - "serde", - "thiserror 1.0.69", - "wtf8", -] - [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "value-trait" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9170e001f458781e92711d2ad666110f153e4e50bfd5cbd02db6547625714187" -dependencies = [ - "float-cmp", - "halfbrown", - "itoa 1.0.14", - "ryu", -] - [[package]] name = "vcpkg" version = "0.2.15" @@ -17469,15 +14715,6 @@ dependencies = [ "untrusted 0.9.0", ] -[[package]] -name = "webpki-root-certs" -version = "0.26.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd5da49bdf1f30054cfe0b8ce2958b8fbeb67c4d82c8967a598af481bef255c" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" version = "0.22.6" @@ -17502,89 +14739,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "wgpu-core" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50819ab545b867d8a454d1d756b90cd5f15da1f2943334ca314af10583c9d39" -dependencies = [ - "arrayvec 0.7.6", - "bit-vec", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", - "codespan-reporting", - "document-features", - "indexmap 2.7.0", - "log", - "naga", - "once_cell", - "parking_lot 0.12.3", - "profiling", - "raw-window-handle", - "ron", - "rustc-hash 1.1.0", - "serde", - "smallvec", - "thiserror 1.0.69", - "web-sys", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-hal" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" -dependencies = [ - "android_system_properties", - "arrayvec 0.7.6", - "ash", - "bit-set", - "bitflags 2.6.0", - "block", - "cfg_aliases 0.1.1", - "core-graphics-types", - "d3d12", - "glow", - "glutin_wgl_sys", - "gpu-alloc", - "gpu-descriptor", - "js-sys", - "khronos-egl", - "libc", - "libloading 0.8.6", - "log", - "metal", - "naga", - "ndk-sys", - "objc", - "once_cell", - "parking_lot 0.12.3", - "profiling", - "range-alloc", - "raw-window-handle", - "rustc-hash 1.1.0", - "smallvec", - "thiserror 1.0.69", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "winapi", -] - -[[package]] -name = "wgpu-types" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef" -dependencies = [ - "bitflags 2.6.0", - "js-sys", - "serde", - "web-sys", -] - [[package]] name = "which" version = "4.4.2" @@ -17630,7 +14784,6 @@ checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ "redox_syscall 0.5.7", "wasite", - "web-sys", ] [[package]] @@ -18086,12 +15239,6 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" -[[package]] -name = "wtf8" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01ae8492c38f52376efd3a17d0994b6bcf3df1e39c0226d458b7d81670b2a06" - [[package]] name = "wyz" version = "0.5.1" @@ -18101,35 +15248,6 @@ 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 0.6.4", - "serde", - "zeroize", -] - -[[package]] -name = "x509-parser" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" -dependencies = [ - "asn1-rs", - "data-encoding", - "der-parser", - "lazy_static", - "nom 7.1.3", - "oid-registry", - "rusticata-macros", - "thiserror 1.0.69", - "time 0.3.37", -] - [[package]] name = "xattr" version = "1.3.1" @@ -18191,7 +15309,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", - "synstructure 0.13.1", + "synstructure", ] [[package]] @@ -18253,7 +15371,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.90", - "synstructure 0.13.1", + "synstructure", ] [[package]] @@ -18261,20 +15379,6 @@ name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -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.90", -] [[package]] name = "zerovec" diff --git a/Cargo.toml b/Cargo.toml index 42349bff27..8ddf40ff62 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -80,9 +80,9 @@ rev = "b9f8bfa" git = "https://github.com/rivet-gg/deno_core" rev = "8a313913fa73d58f4f9532565b0084e723bc34ad" -[workspace.dependencies.deno_runtime] -git = "https://github.com/rivet-gg/deno" -rev = "a6903d67063e07b82836399f63c7a0fa5be8bf56" +# [workspace.dependencies.deno_runtime] +# git = "https://github.com/rivet-gg/deno" +# rev = "a6903d67063e07b82836399f63c7a0fa5be8bf56" [workspace.dependencies.api-helper] path = "packages/common/api-helper/build" @@ -665,6 +665,9 @@ path = "packages/core/services/game/ops/version-list" [workspace.dependencies.game-version-validate] path = "packages/core/services/game/ops/version-validate" +[workspace.dependencies.core-guard] +path = "packages/core/services/guard" + [workspace.dependencies.ip-info] path = "packages/core/services/ip/ops/info" diff --git a/packages/common/fdb-util/src/keys.rs b/packages/common/fdb-util/src/keys.rs index 4c62fab615..6241536266 100644 --- a/packages/common/fdb-util/src/keys.rs +++ b/packages/common/fdb-util/src/keys.rs @@ -46,6 +46,7 @@ pub const SQLITE: usize = 44; pub const INTERNAL: usize = 45; pub const METADATA: usize = 46; pub const COMPRESSED_DATA: usize = 47; +pub const ACTIVE: usize = 48; // Directories with fdbrs must use string paths instead of tuples pub mod dir { diff --git a/packages/edge/infra/client/isolate-v8-runner/Cargo.toml b/packages/edge/infra/client/isolate-v8-runner/Cargo.toml index 3821841245..95d3c442a7 100644 --- a/packages/edge/infra/client/isolate-v8-runner/Cargo.toml +++ b/packages/edge/infra/client/isolate-v8-runner/Cargo.toml @@ -13,7 +13,7 @@ path = "src/main.rs" anyhow.workspace = true deno_ast = "0.42.1" deno_core.workspace = true -deno_runtime.workspace = true +# deno_runtime.workspace = true fdb-util.workspace = true foundationdb.workspace = true futures-util = { version = "0.3" } diff --git a/packages/edge/infra/client/isolate-v8-runner/src/main.rs b/packages/edge/infra/client/isolate-v8-runner/src/main.rs index 9dc5e855f8..e3a0011502 100644 --- a/packages/edge/infra/client/isolate-v8-runner/src/main.rs +++ b/packages/edge/infra/client/isolate-v8-runner/src/main.rs @@ -1,336 +1,338 @@ -use std::{ - collections::HashMap, - path::Path, - result::Result::{Err, Ok}, - sync::Arc, - thread::JoinHandle, - time::Duration, -}; - -use anyhow::*; -use deno_core::{v8_set_flags, JsRuntime}; -use deno_runtime::worker::MainWorkerTerminateHandle; -use futures_util::{stream::SplitStream, SinkExt, StreamExt}; -use pegboard_actor_kv::ActorKv; -use pegboard_config::{isolate_runner::Config, runner_protocol}; -use tokio::{ - fs, - net::TcpStream, - sync::{mpsc, watch, RwLock}, -}; -use tokio_tungstenite::{tungstenite::protocol::Message, MaybeTlsStream, WebSocketStream}; -use utils::FdbPool; -use uuid::Uuid; - -mod ext; -mod isolate; -mod log_shipper; -mod metadata; -mod throttle; -mod utils; - -enum Packet { - Msg(runner_protocol::ToRunner), - Pong, - None, -} - -/// Manager port to connect to. -const THREAD_STATUS_POLL_INTERVAL: Duration = Duration::from_millis(500); -const PING_INTERVAL: Duration = Duration::from_secs(1); -// 7 day logs retention -const LOGS_RETENTION: Duration = Duration::from_secs(7 * 24 * 60 * 60); - -fn main() -> Result<()> { - rivet_runtime::run(main_inner()).transpose()?; - Ok(()) -} - -async fn main_inner() -> Result<()> { - // Initialize with a default CryptoProvider for rustls - let provider = rustls::crypto::ring::default_provider(); - provider - .install_default() - .expect("Failed to install crypto provider"); - - let working_path = std::env::args() - .skip(1) - .next() - .context("`working_path` arg required")?; - let working_path = Path::new(&working_path); - - rivet_logs::Logs::new(working_path.join("logs"), LOGS_RETENTION) - .start() - .await?; - - let config_data = fs::read_to_string(working_path.join("config.json")).await?; - let config = serde_json::from_str::(&config_data)?; - - let fdb_pool = utils::setup_fdb_pool(&config).await?; - - tracing::info!(pid=%std::process::id(), "starting"); - - // Write PID to file - fs::write( - working_path.join("pid"), - std::process::id().to_string().as_bytes(), - ) - .await?; - - // Set v8 flags (https://chromium.googlesource.com/v8/v8/+/refs/heads/main/src/flags/flag-definitions.h) - let invalid = v8_set_flags(vec![ - // Binary name - "UNUSED_BUT_NECESSARY_ARG0".into(), - // Disable eval - "--disallow-code-generation-from-strings".into(), - ]); - assert!( - invalid.len() == 1, - "v8 did not understand these flags: {:?}", - invalid.into_iter().skip(1).collect::>(), - ); - - // Explicitly start runtime on current thread - JsRuntime::init_platform(None, false); - - let actors = Arc::new(RwLock::new(HashMap::new())); - let (fatal_tx, mut fatal_rx) = watch::channel(()); - - let res = tokio::select! { - res = retry_connection(&config, &fdb_pool, actors, fatal_tx) => res, - // If any fatal error occurs in the isolate threads, kill the entire program - _ = fatal_rx.changed() => Err(anyhow!("Fatal error")), - }; - - // Write exit code - if let Err(err) = &res { - tracing::error!(?err); - - fs::write(working_path.join("exit-code"), 1.to_string().as_bytes()).await?; - } - - res -} - -async fn retry_connection( - config: &Config, - fdb_pool: &FdbPool, - actors: Arc>>>, - fatal_tx: watch::Sender<()>, -) -> Result<()> { - loop { - use std::result::Result::{Err, Ok}; - match tokio_tungstenite::connect_async(format!("ws://{}", config.manager_ws_addr)).await { - Ok((socket, _)) => { - handle_connection(config, fdb_pool, actors.clone(), fatal_tx.clone(), socket) - .await? - } - Err(err) => tracing::error!("Failed to connect: {err}"), - } - - tracing::info!("Retrying connection"); - std::thread::sleep(Duration::from_secs(1)); - } -} - -async fn handle_connection( - config: &Config, - fdb_pool: &FdbPool, - actors: Arc>>>, - fatal_tx: watch::Sender<()>, - socket: WebSocketStream>, -) -> Result<()> { - tracing::info!("Connected"); - - let (mut tx, mut rx) = socket.split(); - - // NOTE: Currently, the error from the ping thread is not caught but we assume error handling elsewhere - // will catch any connection issues. - // Start ping thread - let _: tokio::task::JoinHandle> = tokio::spawn(async move { - loop { - tokio::time::sleep(PING_INTERVAL).await; - tx.send(Message::Ping(Vec::new())).await?; - } - }); - - loop { - let packet = match read_packet(&mut rx).await? { - Packet::Msg(packet) => packet, - Packet::Pong => continue, - Packet::None => return Ok(()), - }; - - match packet { - runner_protocol::ToRunner::Start { - actor_id, - generation, - } => { - let mut guard = actors.write().await; - - if guard.contains_key(&(actor_id, generation)) { - tracing::error!( - "Actor {actor_id}-{generation} already exists, ignoring new start packet" - ); - } else { - // For receiving the terminate handle from the isolate thread - let (terminate_tx, terminate_rx) = - mpsc::channel::(1); - let (signal_tx, signal_rx) = mpsc::channel(1); - - // Store actor signal sender - guard.insert((actor_id, generation), signal_tx); - drop(guard); - - // Spawn a new thread for the isolate - let config2 = config.clone(); - let fdb_pool2 = fdb_pool.clone(); - let handle = std::thread::Builder::new() - .name(format!("{actor_id}-{generation}")) - .spawn(move || { - isolate::run(config2, fdb_pool2, actor_id, generation, terminate_tx) - })?; - - tokio::task::spawn(watch_thread( - fdb_pool.clone(), - actors.clone(), - fatal_tx.clone(), - actor_id, - generation, - terminate_rx, - signal_rx, - handle, - )); - } - } - runner_protocol::ToRunner::Signal { - actor_id, - generation, - signal, - persist_storage, - } => { - if let Some(signal_tx) = actors.read().await.get(&(actor_id, generation)) { - // Tell actor thread to stop. Removing the actor is handled in the tokio task above. - signal_tx - .try_send((signal, persist_storage)) - .context("failed to send stop signal to actor thread watcher")?; - } else { - tracing::warn!("Actor {actor_id}-{generation} not found for stopping"); - } - } - runner_protocol::ToRunner::Terminate => bail!("Received terminate"), - } - } -} - -async fn read_packet( - socket: &mut SplitStream>>, -) -> Result { - let buf = match socket.next().await { - Some(Ok(Message::Binary(buf))) => buf, - Some(Ok(Message::Close(_))) => { - tracing::error!("Connection closed"); - return Ok(Packet::None); - } - Some(Ok(Message::Pong(_))) => { - tracing::debug!("received pong"); - return Ok(Packet::Pong); - } - Some(Ok(msg)) => bail!("unexpected message: {msg:?}"), - Some(Err(err)) => { - tracing::error!("Connection failed: {err}"); - return Ok(Packet::None); - } - None => { - tracing::error!("Stream closed"); - return Ok(Packet::None); - } - }; - - let packet = serde_json::from_slice(&buf)?; - - Ok(Packet::Msg(packet)) -} - -/// Polls the isolate thread we just spawned to see if it errored. Should handle all errors gracefully. -async fn watch_thread( - fdb_pool: FdbPool, - actors: Arc>>>, - fatal_tx: watch::Sender<()>, - actor_id: Uuid, - generation: u32, - mut terminate_rx: mpsc::Receiver, - mut signal_rx: mpsc::Receiver<(i32, bool)>, - handle: JoinHandle>, -) { - // Await terminate handle. If the transmitting end of the terminate handle was dropped (`recv` returned - // `None`), either the worker failed to create or the thread stopped. The latter is handled later - let terminate_handle = terminate_rx.recv().await; - drop(terminate_rx); - - // Wait for either the thread to stop or a signal to be received - let persist_storage = tokio::select! { - biased; - _ = poll_thread(&handle) => true, - res = signal_rx.recv() => { - let Some((_signal, persist_storage)) = res else { - tracing::error!(?actor_id, ?generation, "failed to receive signal"); - fatal_tx.send(()).expect("receiver cannot be dropped"); - return; - }; - - if let Some(terminate_handle) = terminate_handle { - // Currently, we terminate regardless of what the signal is - terminate_handle.terminate(); - } - - persist_storage - } - }; - - // Remove actor - { - actors.write().await.remove(&(actor_id, generation)); - } - - // Remove state - if !persist_storage { - if let Err(err) = ActorKv::new((&*fdb_pool).clone(), actor_id).destroy().await { - tracing::error!(?err, ?actor_id, "failed to destroy actor kv"); - fatal_tx.send(()).expect("receiver cannot be dropped"); - return; - }; - } - - // Cleanup thread - poll_thread(&handle).await; - cleanup_thread(actor_id, generation, handle, &fatal_tx); -} - -async fn poll_thread(handle: &JoinHandle>) { - loop { - if handle.is_finished() { - return; - } - - tokio::time::sleep(THREAD_STATUS_POLL_INTERVAL).await; - } -} - -fn cleanup_thread( - actor_id: Uuid, - generation: u32, - handle: JoinHandle>, - fatal_tx: &watch::Sender<()>, -) { - let res = handle.join(); - - match res { - Ok(Err(err)) => { - tracing::error!(?actor_id, ?generation, "Isolate thread failed:\n{err:?}"); - fatal_tx.send(()).expect("receiver cannot be dropped") - } - Err(_) => fatal_tx.send(()).expect("receiver cannot be dropped"), - _ => {} - } -} +fn main() {} + +// use std::{ +// collections::HashMap, +// path::Path, +// result::Result::{Err, Ok}, +// sync::Arc, +// thread::JoinHandle, +// time::Duration, +// }; + +// use anyhow::*; +// use deno_core::{v8_set_flags, JsRuntime}; +// use deno_runtime::worker::MainWorkerTerminateHandle; +// use futures_util::{stream::SplitStream, SinkExt, StreamExt}; +// use pegboard_actor_kv::ActorKv; +// use pegboard_config::{isolate_runner::Config, runner_protocol}; +// use tokio::{ +// fs, +// net::TcpStream, +// sync::{mpsc, watch, RwLock}, +// }; +// use tokio_tungstenite::{tungstenite::protocol::Message, MaybeTlsStream, WebSocketStream}; +// use utils::FdbPool; +// use uuid::Uuid; + +// mod ext; +// mod isolate; +// mod log_shipper; +// mod metadata; +// mod throttle; +// mod utils; + +// enum Packet { +// Msg(runner_protocol::ToRunner), +// Pong, +// None, +// } + +// /// Manager port to connect to. +// const THREAD_STATUS_POLL_INTERVAL: Duration = Duration::from_millis(500); +// const PING_INTERVAL: Duration = Duration::from_secs(1); +// // 7 day logs retention +// const LOGS_RETENTION: Duration = Duration::from_secs(7 * 24 * 60 * 60); + +// fn main() -> Result<()> { +// rivet_runtime::run(main_inner()).transpose()?; +// Ok(()) +// } + +// async fn main_inner() -> Result<()> { +// // Initialize with a default CryptoProvider for rustls +// let provider = rustls::crypto::ring::default_provider(); +// provider +// .install_default() +// .expect("Failed to install crypto provider"); + +// let working_path = std::env::args() +// .skip(1) +// .next() +// .context("`working_path` arg required")?; +// let working_path = Path::new(&working_path); + +// rivet_logs::Logs::new(working_path.join("logs"), LOGS_RETENTION) +// .start() +// .await?; + +// let config_data = fs::read_to_string(working_path.join("config.json")).await?; +// let config = serde_json::from_str::(&config_data)?; + +// let fdb_pool = utils::setup_fdb_pool(&config).await?; + +// tracing::info!(pid=%std::process::id(), "starting"); + +// // Write PID to file +// fs::write( +// working_path.join("pid"), +// std::process::id().to_string().as_bytes(), +// ) +// .await?; + +// // Set v8 flags (https://chromium.googlesource.com/v8/v8/+/refs/heads/main/src/flags/flag-definitions.h) +// let invalid = v8_set_flags(vec![ +// // Binary name +// "UNUSED_BUT_NECESSARY_ARG0".into(), +// // Disable eval +// "--disallow-code-generation-from-strings".into(), +// ]); +// assert!( +// invalid.len() == 1, +// "v8 did not understand these flags: {:?}", +// invalid.into_iter().skip(1).collect::>(), +// ); + +// // Explicitly start runtime on current thread +// JsRuntime::init_platform(None, false); + +// let actors = Arc::new(RwLock::new(HashMap::new())); +// let (fatal_tx, mut fatal_rx) = watch::channel(()); + +// let res = tokio::select! { +// res = retry_connection(&config, &fdb_pool, actors, fatal_tx) => res, +// // If any fatal error occurs in the isolate threads, kill the entire program +// _ = fatal_rx.changed() => Err(anyhow!("Fatal error")), +// }; + +// // Write exit code +// if let Err(err) = &res { +// tracing::error!(?err); + +// fs::write(working_path.join("exit-code"), 1.to_string().as_bytes()).await?; +// } + +// res +// } + +// async fn retry_connection( +// config: &Config, +// fdb_pool: &FdbPool, +// actors: Arc>>>, +// fatal_tx: watch::Sender<()>, +// ) -> Result<()> { +// loop { +// use std::result::Result::{Err, Ok}; +// match tokio_tungstenite::connect_async(format!("ws://{}", config.manager_ws_addr)).await { +// Ok((socket, _)) => { +// handle_connection(config, fdb_pool, actors.clone(), fatal_tx.clone(), socket) +// .await? +// } +// Err(err) => tracing::error!("Failed to connect: {err}"), +// } + +// tracing::info!("Retrying connection"); +// std::thread::sleep(Duration::from_secs(1)); +// } +// } + +// async fn handle_connection( +// config: &Config, +// fdb_pool: &FdbPool, +// actors: Arc>>>, +// fatal_tx: watch::Sender<()>, +// socket: WebSocketStream>, +// ) -> Result<()> { +// tracing::info!("Connected"); + +// let (mut tx, mut rx) = socket.split(); + +// // NOTE: Currently, the error from the ping thread is not caught but we assume error handling elsewhere +// // will catch any connection issues. +// // Start ping thread +// let _: tokio::task::JoinHandle> = tokio::spawn(async move { +// loop { +// tokio::time::sleep(PING_INTERVAL).await; +// tx.send(Message::Ping(Vec::new())).await?; +// } +// }); + +// loop { +// let packet = match read_packet(&mut rx).await? { +// Packet::Msg(packet) => packet, +// Packet::Pong => continue, +// Packet::None => return Ok(()), +// }; + +// match packet { +// runner_protocol::ToRunner::Start { +// actor_id, +// generation, +// } => { +// let mut guard = actors.write().await; + +// if guard.contains_key(&(actor_id, generation)) { +// tracing::error!( +// "Actor {actor_id}-{generation} already exists, ignoring new start packet" +// ); +// } else { +// // For receiving the terminate handle from the isolate thread +// let (terminate_tx, terminate_rx) = +// mpsc::channel::(1); +// let (signal_tx, signal_rx) = mpsc::channel(1); + +// // Store actor signal sender +// guard.insert((actor_id, generation), signal_tx); +// drop(guard); + +// // Spawn a new thread for the isolate +// let config2 = config.clone(); +// let fdb_pool2 = fdb_pool.clone(); +// let handle = std::thread::Builder::new() +// .name(format!("{actor_id}-{generation}")) +// .spawn(move || { +// isolate::run(config2, fdb_pool2, actor_id, generation, terminate_tx) +// })?; + +// tokio::task::spawn(watch_thread( +// fdb_pool.clone(), +// actors.clone(), +// fatal_tx.clone(), +// actor_id, +// generation, +// terminate_rx, +// signal_rx, +// handle, +// )); +// } +// } +// runner_protocol::ToRunner::Signal { +// actor_id, +// generation, +// signal, +// persist_storage, +// } => { +// if let Some(signal_tx) = actors.read().await.get(&(actor_id, generation)) { +// // Tell actor thread to stop. Removing the actor is handled in the tokio task above. +// signal_tx +// .try_send((signal, persist_storage)) +// .context("failed to send stop signal to actor thread watcher")?; +// } else { +// tracing::warn!("Actor {actor_id}-{generation} not found for stopping"); +// } +// } +// runner_protocol::ToRunner::Terminate => bail!("Received terminate"), +// } +// } +// } + +// async fn read_packet( +// socket: &mut SplitStream>>, +// ) -> Result { +// let buf = match socket.next().await { +// Some(Ok(Message::Binary(buf))) => buf, +// Some(Ok(Message::Close(_))) => { +// tracing::error!("Connection closed"); +// return Ok(Packet::None); +// } +// Some(Ok(Message::Pong(_))) => { +// tracing::debug!("received pong"); +// return Ok(Packet::Pong); +// } +// Some(Ok(msg)) => bail!("unexpected message: {msg:?}"), +// Some(Err(err)) => { +// tracing::error!("Connection failed: {err}"); +// return Ok(Packet::None); +// } +// None => { +// tracing::error!("Stream closed"); +// return Ok(Packet::None); +// } +// }; + +// let packet = serde_json::from_slice(&buf)?; + +// Ok(Packet::Msg(packet)) +// } + +// /// Polls the isolate thread we just spawned to see if it errored. Should handle all errors gracefully. +// async fn watch_thread( +// fdb_pool: FdbPool, +// actors: Arc>>>, +// fatal_tx: watch::Sender<()>, +// actor_id: Uuid, +// generation: u32, +// mut terminate_rx: mpsc::Receiver, +// mut signal_rx: mpsc::Receiver<(i32, bool)>, +// handle: JoinHandle>, +// ) { +// // Await terminate handle. If the transmitting end of the terminate handle was dropped (`recv` returned +// // `None`), either the worker failed to create or the thread stopped. The latter is handled later +// let terminate_handle = terminate_rx.recv().await; +// drop(terminate_rx); + +// // Wait for either the thread to stop or a signal to be received +// let persist_storage = tokio::select! { +// biased; +// _ = poll_thread(&handle) => true, +// res = signal_rx.recv() => { +// let Some((_signal, persist_storage)) = res else { +// tracing::error!(?actor_id, ?generation, "failed to receive signal"); +// fatal_tx.send(()).expect("receiver cannot be dropped"); +// return; +// }; + +// if let Some(terminate_handle) = terminate_handle { +// // Currently, we terminate regardless of what the signal is +// terminate_handle.terminate(); +// } + +// persist_storage +// } +// }; + +// // Remove actor +// { +// actors.write().await.remove(&(actor_id, generation)); +// } + +// // Remove state +// if !persist_storage { +// if let Err(err) = ActorKv::new((&*fdb_pool).clone(), actor_id).destroy().await { +// tracing::error!(?err, ?actor_id, "failed to destroy actor kv"); +// fatal_tx.send(()).expect("receiver cannot be dropped"); +// return; +// }; +// } + +// // Cleanup thread +// poll_thread(&handle).await; +// cleanup_thread(actor_id, generation, handle, &fatal_tx); +// } + +// async fn poll_thread(handle: &JoinHandle>) { +// loop { +// if handle.is_finished() { +// return; +// } + +// tokio::time::sleep(THREAD_STATUS_POLL_INTERVAL).await; +// } +// } + +// fn cleanup_thread( +// actor_id: Uuid, +// generation: u32, +// handle: JoinHandle>, +// fatal_tx: &watch::Sender<()>, +// ) { +// let res = handle.join(); + +// match res { +// Ok(Err(err)) => { +// tracing::error!(?actor_id, ?generation, "Isolate thread failed:\n{err:?}"); +// fatal_tx.send(()).expect("receiver cannot be dropped") +// } +// Err(_) => fatal_tx.send(()).expect("receiver cannot be dropped"), +// _ => {} +// } +// } diff --git a/packages/edge/services/pegboard/src/keys/env.rs b/packages/edge/services/pegboard/src/keys/env.rs index f4a1b9d42f..fa5aeef324 100644 --- a/packages/edge/services/pegboard/src/keys/env.rs +++ b/packages/edge/services/pegboard/src/keys/env.rs @@ -95,3 +95,94 @@ impl TuplePack for ActorSubspaceKey { t.pack(w, tuple_depth) } } + +#[derive(Debug)] +pub struct ActiveActorKey { + environment_id: Uuid, + pub create_ts: i64, + pub actor_id: Uuid, +} + +impl ActiveActorKey { + pub fn new(environment_id: Uuid, create_ts: i64, actor_id: Uuid) -> Self { + ActiveActorKey { + environment_id, + create_ts, + actor_id, + } + } + + pub fn subspace(environment_id: Uuid) -> ActiveActorSubspaceKey { + ActiveActorSubspaceKey::new(environment_id) + } +} + +impl FormalKey for ActiveActorKey { + type Value = ActiveActorKeyData; + + fn deserialize(&self, raw: &[u8]) -> Result { + serde_json::from_slice(raw).map_err(Into::into) + } + + fn serialize(&self, value: Self::Value) -> Result> { + serde_json::to_vec(&value).map_err(Into::into) + } +} + +impl TuplePack for ActiveActorKey { + fn pack( + &self, + w: &mut W, + tuple_depth: TupleDepth, + ) -> std::io::Result { + let t = ( + ENV, + self.environment_id, + ACTIVE, + ACTOR, + self.create_ts, + self.actor_id, + ); + t.pack(w, tuple_depth) + } +} + +impl<'de> TupleUnpack<'de> for ActiveActorKey { + fn unpack(input: &[u8], tuple_depth: TupleDepth) -> PackResult<(&[u8], Self)> { + let (input, (_, environment_id, _, create_ts, actor_id)) = + <(usize, Uuid, usize, i64, Uuid)>::unpack(input, tuple_depth)?; + let v = ActiveActorKey { + environment_id, + create_ts, + actor_id, + }; + + Ok((input, v)) + } +} + +#[derive(Debug, Serialize, Deserialize)] +pub struct ActiveActorKeyData { + pub tags: Vec<(String, String)>, +} + +pub struct ActiveActorSubspaceKey { + environment_id: Uuid, +} + +impl ActiveActorSubspaceKey { + pub fn new(environment_id: Uuid) -> Self { + ActiveActorSubspaceKey { environment_id } + } +} + +impl TuplePack for ActiveActorSubspaceKey { + fn pack( + &self, + w: &mut W, + tuple_depth: TupleDepth, + ) -> std::io::Result { + let t = (ENV, self.environment_id, ACTIVE, ACTOR); + t.pack(w, tuple_depth) + } +} diff --git a/packages/edge/services/pegboard/src/ops/actor/list_for_env.rs b/packages/edge/services/pegboard/src/ops/actor/list_for_env.rs index 5423516321..d6227445b4 100644 --- a/packages/edge/services/pegboard/src/ops/actor/list_for_env.rs +++ b/packages/edge/services/pegboard/src/ops/actor/list_for_env.rs @@ -36,40 +36,42 @@ pub async fn pegboard_actor_list_for_env( .fdb() .await? .run(|tx, _mc| async move { - let actor_subspace = - keys::subspace().subspace(&keys::env::ActorKey::subspace(input.env_id)); - let (start, end) = actor_subspace.range(); - - let end = if let Some(created_before) = input.created_before { - keys::subspace().pack(&keys::env::ActorKey::new( - input.env_id, - created_before, - Uuid::nil(), - )) - } else { - end - }; - - let mut stream = tx.get_ranges_keyvalues( - fdb::RangeOption { - mode: StreamingMode::Iterator, - reverse: true, - ..(start, end).into() - }, - // NOTE: Does not have to be serializable because we are listing, stale data does not matter - SNAPSHOT, - ); let mut results = Vec::new(); - while let Some(entry) = stream.try_next().await? { - let actor_key = keys::subspace() - .unpack::(entry.key()) - .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?; - let data = actor_key - .deserialize(entry.value()) - .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?; + // Active actor idx + if !input.include_destroyed { + let actor_subspace = + keys::subspace().subspace(&keys::env::ActiveActorKey::subspace(input.env_id)); + let (start, end) = actor_subspace.range(); + + let end = if let Some(created_before) = input.created_before { + keys::subspace().pack(&keys::env::ActiveActorKey::new( + input.env_id, + created_before, + Uuid::nil(), + )) + } else { + end + }; + + let mut stream = tx.get_ranges_keyvalues( + fdb::RangeOption { + mode: StreamingMode::Iterator, + reverse: true, + ..(start, end).into() + }, + // NOTE: Does not have to be serializable because we are listing, stale data does not matter + SNAPSHOT, + ); + + while let Some(entry) = stream.try_next().await? { + let actor_key = keys::subspace() + .unpack::(entry.key()) + .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?; + let data = actor_key + .deserialize(entry.value()) + .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?; - if input.include_destroyed || !data.is_destroyed { // Compute intersection between actor tags and input tags let tags_match = input .tags @@ -82,13 +84,70 @@ pub async fn pegboard_actor_list_for_env( create_ts: actor_key.create_ts, }); - if results.len() == input.limit { + if results.len() >= input.limit { break; } } } } + // Old idx with scanning + if results.len() < input.limit { + let actor_subspace = + keys::subspace().subspace(&keys::env::ActorKey::subspace(input.env_id)); + let (start, end) = actor_subspace.range(); + + let end = if let Some(created_before) = input.created_before { + keys::subspace().pack(&keys::env::ActorKey::new( + input.env_id, + created_before, + Uuid::nil(), + )) + } else { + end + }; + + let mut stream = tx.get_ranges_keyvalues( + fdb::RangeOption { + mode: StreamingMode::Iterator, + reverse: true, + ..(start, end).into() + }, + // NOTE: Does not have to be serializable because we are listing, stale data does not matter + SNAPSHOT, + ); + let mut results = Vec::new(); + + while let Some(entry) = stream.try_next().await? { + let actor_key = keys::subspace() + .unpack::(entry.key()) + .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?; + let data = actor_key + .deserialize(entry.value()) + .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?; + + if input.include_destroyed || !data.is_destroyed { + // Compute intersection between actor tags and input tags + let tags_match = input + .tags + .iter() + .all(|(k, v)| data.tags.iter().any(|(k2, v2)| k == k2 && v == v2)); + + if tags_match { + results.push(ActorEntry { + actor_id: actor_key.actor_id, + create_ts: actor_key.create_ts, + }); + + if results.len() == input.limit { + break; + } + } + } + } + } + + Ok(results) }) .custom_instrument(tracing::info_span!("actor_list_tx")) diff --git a/packages/edge/services/pegboard/src/workflows/actor/destroy.rs b/packages/edge/services/pegboard/src/workflows/actor/destroy.rs index 07b73a1e1f..48b9c2e923 100644 --- a/packages/edge/services/pegboard/src/workflows/actor/destroy.rs +++ b/packages/edge/services/pegboard/src/workflows/actor/destroy.rs @@ -155,6 +155,13 @@ pub async fn update_fdb(ctx: &ActivityCtx, input: &UpdateFdbInput) -> GlobalResu .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?, ); + let active_actor_key = keys::env::ActiveActorKey::new( + input.actor.env_id, + input.actor.create_ts, + input.actor_id, + ); + tx.clear(&keys::subspace().pack(&active_actor_key)); + clear_ports_and_resources( input.actor_id, input.build_kind, diff --git a/packages/edge/services/pegboard/src/workflows/actor/setup.rs b/packages/edge/services/pegboard/src/workflows/actor/setup.rs index 2a8bd5892f..197270605d 100644 --- a/packages/edge/services/pegboard/src/workflows/actor/setup.rs +++ b/packages/edge/services/pegboard/src/workflows/actor/setup.rs @@ -474,6 +474,21 @@ async fn insert_fdb(ctx: &ActivityCtx, input: &InsertFdbInput) -> GlobalResult<( .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?, ); + let active_actor_key = keys::env::ActiveActorKey::new( + input.env_id, + input.create_ts, + input.actor_id, + ); + let data = keys::env::ActiveActorKeyData { + tags: input.tags.clone().into_iter().collect(), + }; + tx.set( + &keys::subspace().pack(&active_actor_key), + &active_actor_key + .serialize(data) + .map_err(|x| fdb::FdbBindingError::CustomError(x.into()))?, + ); + Ok(()) }) .custom_instrument(tracing::info_span!("actor_insert_tx")) diff --git a/site/src/content/docs/self-hosting/client-spec.json b/site/src/content/docs/self-hosting/client-spec.json new file mode 100644 index 0000000000..dbaa2fb394 --- /dev/null +++ b/site/src/content/docs/self-hosting/client-spec.json @@ -0,0 +1,328 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Client", + "type": "object", + "required": [ + "cluster", + "foundationdb", + "network", + "runner" + ], + "properties": { + "cluster": { + "$ref": "#/definitions/Cluster" + }, + "cni": { + "$ref": "#/definitions/Cni" + }, + "data_dir": { + "type": "string" + }, + "foundationdb": { + "$ref": "#/definitions/FoundationDb" + }, + "images": { + "$ref": "#/definitions/Images" + }, + "logs": { + "$ref": "#/definitions/Logs" + }, + "metrics": { + "$ref": "#/definitions/Metrics" + }, + "network": { + "$ref": "#/definitions/Network" + }, + "reserved_resources": { + "$ref": "#/definitions/ReservedResources" + }, + "runner": { + "$ref": "#/definitions/Runner" + }, + "vector": { + "$ref": "#/definitions/Vector" + } + }, + "additionalProperties": false, + "definitions": { + "Addresses": { + "oneOf": [ + { + "type": "object", + "required": [ + "dynamic" + ], + "properties": { + "dynamic": { + "type": "object", + "required": [ + "fetch_endpoint" + ], + "properties": { + "fetch_endpoint": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "static" + ], + "properties": { + "static": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + ] + }, + "ClientFlavor": { + "type": "string", + "enum": [ + "container", + "isolate" + ] + }, + "Cluster": { + "type": "object", + "required": [ + "api_endpoint", + "client_id", + "ws_addresses" + ], + "properties": { + "api_endpoint": { + "type": "string", + "format": "uri" + }, + "client_id": { + "type": "string", + "format": "uuid" + }, + "ws_addresses": { + "$ref": "#/definitions/Addresses" + } + }, + "additionalProperties": false + }, + "Cni": { + "type": "object", + "required": [ + "network_interface" + ], + "properties": { + "bin_path": { + "type": "string" + }, + "config_path": { + "type": "string" + }, + "network_interface": { + "type": "string" + }, + "network_name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FoundationDb": { + "type": "object", + "required": [ + "addresses", + "cluster_description", + "cluster_id" + ], + "properties": { + "addresses": { + "$ref": "#/definitions/Addresses" + }, + "cluster_description": { + "type": "string" + }, + "cluster_id": { + "type": "string" + } + }, + "additionalProperties": false + }, + "HostEntry": { + "type": "object", + "required": [ + "hostname", + "ip" + ], + "properties": { + "hostname": { + "type": "string" + }, + "ip": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Images": { + "type": "object", + "properties": { + "max_cache_size": { + "description": "Bytes. Defaults to 64 GiB.", + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "pull_addresses": { + "$ref": "#/definitions/Addresses" + } + }, + "additionalProperties": false + }, + "Logs": { + "type": "object", + "properties": { + "redirect_logs": { + "type": "boolean" + }, + "retention": { + "description": "Log retention in seconds. Defaults to 10 days. Only applies with log redirection enabled.", + "type": "integer", + "format": "uint64", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Metrics": { + "type": "object", + "properties": { + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Network": { + "type": "object", + "required": [ + "bind_ip", + "lan_hostname", + "wan_hostname" + ], + "properties": { + "bind_ip": { + "description": "Address to serve actor traffic on.\n\nThis will usually be the same as `actor_lan_ip` unless the node is accessed within the LAN by a different IP.", + "type": "string", + "format": "ipv4" + }, + "lan_hostname": { + "description": "Address to access this node in a LAN.\n\nThis IP is used to route traffic from Game Guard.", + "type": "string" + }, + "lan_port_range_max": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "lan_port_range_min": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "wan_hostname": { + "description": "Address to access this node publicly.\n\nThis IP is used when providing the actor's IP & port for host networking.", + "type": "string" + }, + "wan_port_range_max": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "wan_port_range_min": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "ReservedResources": { + "type": "object", + "properties": { + "cpu": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + }, + "memory": { + "type": "integer", + "format": "uint64", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Runner": { + "type": "object", + "required": [ + "flavor" + ], + "properties": { + "container_runner_binary_path": { + "type": "string" + }, + "custom_hosts": { + "description": "Custom host entries to append to /etc/hosts in actor containers.", + "type": "array", + "items": { + "$ref": "#/definitions/HostEntry" + } + }, + "flavor": { + "$ref": "#/definitions/ClientFlavor" + }, + "isolate_runner_binary_path": { + "type": "string" + }, + "port": { + "description": "WebSocket Port for runners on this machine to connect to.", + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "use_mounts": { + "description": "Whether or not to use a mount for actor file systems.", + "type": "boolean" + }, + "use_resource_constraints": { + "description": "Whether or not to use resource constraints on containers.\n\nYou should enable this if you see this error in development:\n\n``` cannot enter cgroupv2 \"/sys/fs/cgroup/test\" with domain controllers -- it is in an invalid state ````", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Vector": { + "type": "object", + "required": [ + "address" + ], + "properties": { + "address": { + "type": "string" + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/site/src/content/docs/self-hosting/server-spec.json b/site/src/content/docs/self-hosting/server-spec.json new file mode 100644 index 0000000000..0ebe82d050 --- /dev/null +++ b/site/src/content/docs/self-hosting/server-spec.json @@ -0,0 +1,1968 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Server", + "type": "object", + "required": [ + "jwt" + ], + "properties": { + "clickhouse": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/ClickHouse" + } + ] + }, + "cloudflare": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Cloudflare" + } + ] + }, + "cockroachdb": { + "default": { + "cluster_identifier": "default", + "max_connections": 4096, + "min_connections": 4, + "password": null, + "provision_users": {}, + "url": "postgresql://localhost:26257/defaultdb?sslmode=disable", + "username": "root" + }, + "allOf": [ + { + "$ref": "#/definitions/CockroachDb" + } + ] + }, + "foundationdb": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/FoundationDb" + } + ] + }, + "hcaptcha": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Hcaptcha" + } + ] + }, + "ip_info": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/IpInfo" + } + ] + }, + "jwt": { + "$ref": "#/definitions/JwtKey" + }, + "linode": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Linode" + } + ] + }, + "loops": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Loops" + } + ] + }, + "nats": { + "default": { + "addresses": { + "static": [ + "127.0.0.1:4222" + ] + }, + "password": null, + "port": null, + "username": null + }, + "allOf": [ + { + "$ref": "#/definitions/Nats" + } + ] + }, + "neon": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Neon" + } + ] + }, + "nomad": { + "description": "Deprecated", + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Nomad" + } + ] + }, + "prometheus": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Prometheus" + } + ] + }, + "redis": { + "default": { + "ephemeral": { + "password": null, + "url": "redis://127.0.0.1:6379", + "username": null + }, + "persistent": { + "password": null, + "url": "redis://127.0.0.1:6379", + "username": null + } + }, + "allOf": [ + { + "$ref": "#/definitions/RedisTypes" + } + ] + }, + "rivet": { + "default": { + "api_edge": { + "host": null, + "port": null, + "traefik_provider_token": null + }, + "api_public": { + "host": null, + "port": null, + "public_origin": null, + "respect_forwarded_for": null, + "verbose_errors": null + }, + "auth": { + "access_kind": "private" + }, + "backend": null, + "billing": null, + "cache": { + "driver": "redis" + }, + "cdn": null, + "clusters": null, + "default_cluster_id": null, + "dns": null, + "edge": null, + "guard": { + "http_port": null, + "https_port": null, + "max_ingress_port_tcp": null, + "max_ingress_port_udp": null, + "min_ingress_port_tcp": null, + "min_ingress_port_udp": null, + "tls_enabled": null + }, + "health": { + "host": null, + "port": null + }, + "instance_id": null, + "job_run": null, + "metrics": { + "host": null, + "port": null + }, + "namespace": "rivet", + "orchestrator": { + "host": null, + "port": null + }, + "provision": null, + "status": null, + "telemetry": { + "enable": true + }, + "test_builds": {}, + "tunnel": { + "public_host": "127.0.0.1:6423" + }, + "ui": { + "enable": null, + "proxy_origin": null, + "public_origin": null, + "public_origin_regex": null + } + }, + "allOf": [ + { + "$ref": "#/definitions/Rivet" + } + ] + }, + "s3": { + "default": { + "access_key_id": "root", + "endpoint_edge_internal": null, + "endpoint_external": "http://127.0.0.1:9000/", + "endpoint_internal": "http://127.0.0.1:9000/", + "region": "us-east-1", + "secret_access_key": "root" + }, + "allOf": [ + { + "$ref": "#/definitions/S3" + } + ] + }, + "sendgrid": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Sendgrid" + } + ] + }, + "ssh": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Ssh" + } + ] + }, + "stripe": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Stripe" + } + ] + }, + "tls": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Tls" + } + ] + }, + "turnstile": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Turnstile" + } + ] + }, + "vector_http": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/VectorHttp" + } + ] + } + }, + "additionalProperties": false, + "definitions": { + "AccessKind": { + "oneOf": [ + { + "description": "Anyone can sign up for an account.", + "type": "string", + "enum": [ + "public" + ] + }, + { + "description": "Only admin users can create teams & projects.", + "type": "string", + "enum": [ + "private" + ] + }, + { + "description": "Anyone can access the cluster without authorization.\n\nIf enabled: - A default project with slug \"default\" & environment with slug \"default\" will be created automatically - This allows using Rivet without manually creating a new project/environment - Project & environment fields will fallback to \"default\" if not provided - This allows using Rivet with simplified requests, like `POST /actors` without a query - If no bearer token is provided, authentication will always succeed - This allows setting up development environments without manually creating tokens", + "type": "string", + "enum": [ + "development" + ] + } + ] + }, + "Addresses": { + "oneOf": [ + { + "type": "object", + "required": [ + "dynamic" + ], + "properties": { + "dynamic": { + "type": "object", + "required": [ + "fetch_endpoint" + ], + "properties": { + "fetch_endpoint": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + { + "type": "object", + "required": [ + "static" + ], + "properties": { + "static": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false + } + ] + }, + "ApiEdge": { + "description": "Configuration for the edge API service.", + "type": "object", + "properties": { + "host": { + "type": "string", + "format": "ip" + }, + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "traefik_provider_token": { + "description": "Token for the API Traefik provider.", + "allOf": [ + { + "$ref": "#/definitions/Secret" + } + ] + } + }, + "additionalProperties": false + }, + "ApiPublic": { + "description": "Configuration for the public API service.", + "type": "object", + "properties": { + "host": { + "description": "The host on which the API service listens.", + "type": "string", + "format": "ip" + }, + "port": { + "description": "The port on which the API service listens.", + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "public_origin": { + "description": "The public origin URL for the API.", + "type": "string", + "format": "uri" + }, + "respect_forwarded_for": { + "description": "Flag to respect the X-Forwarded-For header for client IP addresses.\n\nWill be ignored in favor of CF-Connecting-IP if DNS provider is configured as Cloudflare.", + "type": "boolean" + }, + "verbose_errors": { + "description": "Flag to enable verbose error reporting.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Auth": { + "description": "Configuration for authentication and access control.", + "type": "object", + "required": [ + "access_kind" + ], + "properties": { + "access_kind": { + "$ref": "#/definitions/AccessKind" + } + }, + "additionalProperties": false + }, + "Backend": { + "description": "Configuration for backend features (Enterprise Edition).", + "type": "object", + "required": [ + "base_domain" + ], + "properties": { + "base_domain": { + "description": "Base domain serving the backend endpoints.", + "type": "string" + } + }, + "additionalProperties": false + }, + "Billing": { + "description": "Configuration for billing features (Enterprise Edition).", + "type": "object", + "required": [ + "indie_price_id", + "studio_price_id" + ], + "properties": { + "indie_price_id": { + "description": "Price ID for the indie tier.", + "type": "string" + }, + "studio_price_id": { + "description": "Price ID for the studio tier.", + "type": "string" + } + }, + "additionalProperties": false + }, + "BuildDeliveryMethod": { + "type": "string", + "enum": [ + "traffic_server", + "s3_direct" + ] + }, + "Cache": { + "description": "Configuration for the cache layer.", + "type": "object", + "required": [ + "driver" + ], + "properties": { + "driver": { + "$ref": "#/definitions/CacheDriver" + } + }, + "additionalProperties": false + }, + "CacheDriver": { + "type": "string", + "enum": [ + "redis", + "in_memory" + ] + }, + "Cdn": { + "description": "Deprecated: Configuration for CDN.", + "type": "object", + "additionalProperties": false + }, + "ClickHouse": { + "type": "object", + "required": [ + "http_url", + "native_url", + "username" + ], + "properties": { + "http_url": { + "description": "URL to the HTTP access port for ClickHouse.", + "type": "string", + "format": "uri" + }, + "native_url": { + "description": "URL to the native access port for ClickHouse.", + "type": "string", + "format": "uri" + }, + "password": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Secret" + } + ] + }, + "provision_users": { + "default": {}, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ClickHouseUser" + } + }, + "secure": { + "default": false, + "type": "boolean" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClickHouseUser": { + "type": "object", + "required": [ + "password", + "role", + "username" + ], + "properties": { + "password": { + "$ref": "#/definitions/Secret" + }, + "role": { + "$ref": "#/definitions/ClickHouseUserRole" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClickHouseUserRole": { + "type": "string", + "enum": [ + "admin", + "write", + "read_only" + ] + }, + "Cloudflare": { + "type": "object", + "required": [ + "account_id", + "auth_token", + "zone" + ], + "properties": { + "account_id": { + "type": "string" + }, + "auth_token": { + "$ref": "#/definitions/Secret" + }, + "backend_dispatcher_namespace": { + "type": "string" + }, + "zone": { + "$ref": "#/definitions/CloudflareZone" + } + }, + "additionalProperties": false + }, + "CloudflareZone": { + "type": "object", + "properties": { + "game": { + "type": "string" + }, + "job": { + "type": "string" + }, + "main": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Cluster": { + "description": "Manages the automatic provisioning of servers that Rivet runs on.", + "type": "object", + "required": [ + "bootstrap_datacenters", + "id" + ], + "properties": { + "bootstrap_datacenters": { + "description": "Datacenters to automatically be created on cluster boot.\n\nThis should only be used for manual cluster creation. Do not use for enterprise distributions.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Datacenter" + } + }, + "id": { + "description": "This ID must not change.", + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "ClusterPoolAts": { + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClusterPoolFdb": { + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClusterPoolGg": { + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClusterPoolGuard": { + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClusterPoolJob": { + "type": "object", + "additionalProperties": false + }, + "ClusterPoolNats": { + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClusterPoolPegboard": { + "description": "These port range values will be pass to the Rivet Clients to choose ports & are used to provision firewalls.", + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "max_lan_port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "max_wan_port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "min_lan_port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "min_wan_port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "vlan_addr_range_max": { + "type": "string", + "format": "ipv4" + }, + "vlan_addr_range_min": { + "type": "string", + "format": "ipv4" + } + }, + "additionalProperties": false + }, + "ClusterPoolWorker": { + "type": "object", + "properties": { + "firewall_rules": { + "type": "array", + "items": { + "$ref": "#/definitions/FirewallRule" + } + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ClusterPools": { + "type": "object", + "required": [ + "ats", + "fdb", + "gg", + "guard", + "job", + "nats", + "pegboard", + "worker" + ], + "properties": { + "ats": { + "$ref": "#/definitions/ClusterPoolAts" + }, + "fdb": { + "$ref": "#/definitions/ClusterPoolFdb" + }, + "gg": { + "$ref": "#/definitions/ClusterPoolGg" + }, + "guard": { + "$ref": "#/definitions/ClusterPoolGuard" + }, + "job": { + "$ref": "#/definitions/ClusterPoolJob" + }, + "nats": { + "$ref": "#/definitions/ClusterPoolNats" + }, + "pegboard": { + "$ref": "#/definitions/ClusterPoolPegboard" + }, + "worker": { + "$ref": "#/definitions/ClusterPoolWorker" + } + }, + "additionalProperties": false + }, + "ClusterProvision": { + "type": "object", + "required": [ + "container_runner_binary_url", + "edge_server_binary_url", + "guard_binary_url", + "isolate_runner_binary_url", + "manager_binary_url", + "pools" + ], + "properties": { + "container_runner_binary_url": { + "description": "The URL for the container runner binary.", + "type": "string", + "format": "uri" + }, + "edge_server_binary_url": { + "type": "string", + "format": "uri" + }, + "guard_binary_url": { + "type": "string", + "format": "uri" + }, + "isolate_runner_binary_url": { + "description": "The URL for the isolate runner binary.", + "type": "string", + "format": "uri" + }, + "manager_binary_url": { + "description": "The URL for the manager binary.", + "type": "string", + "format": "uri" + }, + "pools": { + "description": "Configuration for server pools.", + "allOf": [ + { + "$ref": "#/definitions/ClusterPools" + } + ] + }, + "vlan_ip_net": { + "type": "string" + } + }, + "additionalProperties": false + }, + "CockroachDb": { + "type": "object", + "required": [ + "cluster_identifier", + "url", + "username" + ], + "properties": { + "cluster_identifier": { + "type": "string" + }, + "max_connections": { + "default": 4096, + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "min_connections": { + "default": 4, + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "password": { + "$ref": "#/definitions/Secret" + }, + "provision_users": { + "description": "Automatically provisions new users when migrating the database.", + "default": {}, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/CockroachDbUser" + } + }, + "url": { + "type": "string", + "format": "uri" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false + }, + "CockroachDbUser": { + "type": "object", + "required": [ + "password", + "role", + "username" + ], + "properties": { + "password": { + "$ref": "#/definitions/Secret" + }, + "role": { + "$ref": "#/definitions/CockroachDbUserRole" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false + }, + "CockroachDbUserRole": { + "type": "string", + "enum": [ + "read", + "read_write" + ] + }, + "Datacenter": { + "type": "object", + "required": [ + "build_delivery_method", + "id", + "name" + ], + "properties": { + "build_delivery_method": { + "$ref": "#/definitions/BuildDeliveryMethod" + }, + "guard": { + "default": { + "public_hostname": null + }, + "allOf": [ + { + "$ref": "#/definitions/DatacenterGuard" + } + ] + }, + "hardware": { + "description": "Hardware specs used to orchestrate jobs.\n\nThis is only used if `provision` is not provided.\n\nThis will be automatically determined in development mode.", + "default": null, + "allOf": [ + { + "$ref": "#/definitions/DatacenterHardware" + } + ] + }, + "id": { + "description": "This ID must not change.", + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "DatacenterGuard": { + "type": "object", + "properties": { + "public_hostname": { + "description": "If not specified, will attempt to fallback to auto-generated wildcard hosts based on domain_job or error if domain_job is not provided.", + "allOf": [ + { + "$ref": "#/definitions/GuardPublicHostname" + } + ] + } + }, + "additionalProperties": false + }, + "DatacenterHardware": { + "type": "object", + "required": [ + "bandwidth", + "cpu", + "cpu_cores", + "disk", + "memory" + ], + "properties": { + "bandwidth": { + "description": "Kibps.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "cpu": { + "description": "Mhz.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "cpu_cores": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "disk": { + "description": "MiB.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 + }, + "memory": { + "description": "MiB.", + "type": "integer", + "format": "uint32", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Dns": { + "description": "Configuration for DNS management.", + "type": "object", + "required": [ + "provider" + ], + "properties": { + "domain_cdn": { + "description": "The domain used for CDN-related services.", + "type": "string" + }, + "domain_job": { + "description": "The domain used for job-related services.", + "type": "string" + }, + "domain_main": { + "description": "The domain used for backend services.", + "type": "string" + }, + "provider": { + "description": "The DNS provider used for managing domains.", + "allOf": [ + { + "$ref": "#/definitions/DnsProvider" + } + ] + } + }, + "additionalProperties": false + }, + "DnsProvider": { + "type": "string", + "enum": [ + "cloudflare" + ] + }, + "Edge": { + "description": "Configuration for edge clusters.", + "type": "object", + "required": [ + "cluster_id", + "datacenter_id", + "intercom_endpoint", + "server_id" + ], + "properties": { + "api_lan_address": { + "description": "This API address will be used if there are no worker servers listed in the cluster package", + "default": null, + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + ], + "maxItems": 2, + "minItems": 2 + }, + "cluster_id": { + "type": "string", + "format": "uuid" + }, + "datacenter_id": { + "type": "string", + "format": "uuid" + }, + "intercom_endpoint": { + "type": "string", + "format": "uri" + }, + "redirect_logs_dir": { + "default": null, + "type": "string" + }, + "server_id": { + "type": "string", + "format": "uuid" + } + }, + "additionalProperties": false + }, + "FirewallRule": { + "type": "object", + "required": [ + "inbound_ipv4_cidr", + "inbound_ipv6_cidr", + "label", + "ports", + "protocol" + ], + "properties": { + "inbound_ipv4_cidr": { + "type": "array", + "items": { + "type": "string" + } + }, + "inbound_ipv6_cidr": { + "type": "array", + "items": { + "type": "string" + } + }, + "label": { + "type": "string" + }, + "ports": { + "type": "string" + }, + "protocol": { + "type": "string" + } + } + }, + "FoundationDb": { + "type": "object", + "required": [ + "addresses", + "cluster_description", + "cluster_id" + ], + "properties": { + "addresses": { + "$ref": "#/definitions/Addresses" + }, + "cluster_description": { + "type": "string" + }, + "cluster_id": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Guard": { + "description": "The port ranges define what ports Guard will allocate ports on. If using cluster provisioning, these are also used for firewall rules.", + "type": "object", + "properties": { + "http_port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "https_port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "max_ingress_port_tcp": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "max_ingress_port_udp": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "min_ingress_port_tcp": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "min_ingress_port_udp": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "tls_enabled": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "GuardPublicHostname": { + "oneOf": [ + { + "description": "Rivet Guard has the appropriate wildcard DNS addresses set up for host-based routing. This is the preferred option.\n\nThis is the parent address that all subdomains will be build from.\n\nIf SSL certs are provided, this should also be the name of the TLS parent host.\n\nThis will default to hostname endpoint types (see `pegboard::types::EndpointType`).", + "type": "object", + "required": [ + "dns_parent" + ], + "properties": { + "dns_parent": { + "type": "string" + } + }, + "additionalProperties": false + }, + { + "description": "Rivet Guard is only accessible by IP or DNS address without a wildcard.\n\nThis is usually used for routing to a static IP address on simple architectures.\n\nIf the developer cannot set up wildcard DNS addresses for whatever reason, this method can be used.\n\nThis will default to path endpoint types (see `pegboard::types::EndpointType`).", + "type": "object", + "required": [ + "static" + ], + "properties": { + "static": { + "type": "string" + } + }, + "additionalProperties": false + } + ] + }, + "Hcaptcha": { + "type": "object", + "properties": { + "secret_fallback": { + "$ref": "#/definitions/Secret" + }, + "site_key_fallback": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Health": { + "description": "Configuration for the health check service.", + "type": "object", + "properties": { + "host": { + "type": "string", + "format": "ip" + }, + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "IpInfo": { + "type": "object", + "required": [ + "token" + ], + "properties": { + "token": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "JobRun": { + "description": "Deprecated: Configuration for job running.", + "type": "object", + "required": [ + "job_runner_binary_url" + ], + "properties": { + "job_runner_binary_url": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false + }, + "JwtKey": { + "type": "object", + "required": [ + "private", + "public" + ], + "properties": { + "private": { + "description": "The private EdDSA key in a PEM format.", + "allOf": [ + { + "$ref": "#/definitions/Secret" + } + ] + }, + "public": { + "description": "The public EdDSA key in a PEM format.", + "type": "string" + } + }, + "additionalProperties": false + }, + "Linode": { + "type": "object", + "required": [ + "api_token" + ], + "properties": { + "api_token": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Loops": { + "type": "object", + "required": [ + "token" + ], + "properties": { + "token": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Metrics": { + "description": "Configuration for the metrics service.", + "type": "object", + "properties": { + "host": { + "type": "string", + "format": "ip" + }, + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Nats": { + "type": "object", + "required": [ + "addresses" + ], + "properties": { + "addresses": { + "$ref": "#/definitions/Addresses" + }, + "password": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Secret" + } + ] + }, + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "username": { + "default": null, + "type": "string" + } + }, + "additionalProperties": false + }, + "Neon": { + "type": "object", + "required": [ + "api_key" + ], + "properties": { + "api_key": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Nomad": { + "type": "object", + "required": [ + "server_count", + "url" + ], + "properties": { + "server_count": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false + }, + "Pegboard": { + "description": "The service that manages Rivet Actors.", + "type": "object", + "properties": { + "host": { + "description": "The host on which the Pegboard service listens.", + "type": "string", + "format": "ip" + }, + "port": { + "description": "The port on which the Pegboard service listens.", + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + }, + "Prometheus": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "url": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false + }, + "Redis": { + "type": "object", + "required": [ + "url" + ], + "properties": { + "password": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Secret" + } + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "username": { + "default": null, + "type": "string" + } + }, + "additionalProperties": false + }, + "RedisTypes": { + "type": "object", + "required": [ + "ephemeral", + "persistent" + ], + "properties": { + "ephemeral": { + "$ref": "#/definitions/Redis" + }, + "persistent": { + "$ref": "#/definitions/Redis" + } + }, + "additionalProperties": false + }, + "Rivet": { + "type": "object", + "properties": { + "api_edge": { + "default": { + "host": null, + "port": null, + "traefik_provider_token": null + }, + "allOf": [ + { + "$ref": "#/definitions/ApiEdge" + } + ] + }, + "api_public": { + "default": { + "host": null, + "port": null, + "public_origin": null, + "respect_forwarded_for": null, + "verbose_errors": null + }, + "allOf": [ + { + "$ref": "#/definitions/ApiPublic" + } + ] + }, + "auth": { + "default": { + "access_kind": "private" + }, + "allOf": [ + { + "$ref": "#/definitions/Auth" + } + ] + }, + "backend": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Backend" + } + ] + }, + "billing": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Billing" + } + ] + }, + "cache": { + "default": { + "driver": "redis" + }, + "allOf": [ + { + "$ref": "#/definitions/Cache" + } + ] + }, + "cdn": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Cdn" + } + ] + }, + "clusters": { + "default": null, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Cluster" + } + }, + "default_cluster_id": { + "description": "If specified, will use this as the default cluster ID.\n\nThis will have no effect if applied after the cluster has first ran.", + "default": null, + "type": "string", + "format": "uuid" + }, + "dns": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Dns" + } + ] + }, + "edge": { + "description": "Configuration for edge clusters. Should be null on the core cluster.", + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Edge" + } + ] + }, + "guard": { + "default": { + "http_port": null, + "https_port": null, + "max_ingress_port_tcp": null, + "max_ingress_port_udp": null, + "min_ingress_port_tcp": null, + "min_ingress_port_udp": null, + "tls_enabled": null + }, + "allOf": [ + { + "$ref": "#/definitions/Guard" + } + ] + }, + "health": { + "default": { + "host": null, + "port": null + }, + "allOf": [ + { + "$ref": "#/definitions/Health" + } + ] + }, + "instance_id": { + "description": "If specified, will use this as the default cluster ID.\n\nThis will have no effect if applied after the cluster has first ran.", + "type": "string", + "format": "uuid" + }, + "job_run": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/JobRun" + } + ] + }, + "metrics": { + "default": { + "host": null, + "port": null + }, + "allOf": [ + { + "$ref": "#/definitions/Metrics" + } + ] + }, + "namespace": { + "description": "IMPORTANT: Do not change this value after the first time starting a cluster with this namespace.", + "default": "rivet", + "type": "string" + }, + "orchestrator": { + "default": { + "host": null, + "port": null + }, + "allOf": [ + { + "$ref": "#/definitions/Pegboard" + } + ] + }, + "provision": { + "description": "Configures how servers are provisioned.\n\nEnterprise only.", + "default": null, + "allOf": [ + { + "$ref": "#/definitions/ClusterProvision" + } + ] + }, + "status": { + "default": null, + "allOf": [ + { + "$ref": "#/definitions/Status" + } + ] + }, + "telemetry": { + "default": { + "enable": true + }, + "allOf": [ + { + "$ref": "#/definitions/Telemetry" + } + ] + }, + "test_builds": { + "description": "Configuration for test builds.", + "default": {}, + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/TestBuild" + } + }, + "tunnel": { + "default": { + "public_host": "127.0.0.1:6423" + }, + "allOf": [ + { + "$ref": "#/definitions/Tunnel" + } + ] + }, + "ui": { + "default": { + "enable": null, + "proxy_origin": null, + "public_origin": null, + "public_origin_regex": null + }, + "allOf": [ + { + "$ref": "#/definitions/Ui" + } + ] + } + }, + "additionalProperties": false + }, + "S3": { + "type": "object", + "required": [ + "access_key_id", + "endpoint_external", + "endpoint_internal", + "region", + "secret_access_key" + ], + "properties": { + "access_key_id": { + "$ref": "#/definitions/Secret" + }, + "endpoint_edge_internal": { + "description": "If not defined, will default to endpoint_external.", + "type": "string", + "format": "uri" + }, + "endpoint_external": { + "type": "string", + "format": "uri" + }, + "endpoint_internal": { + "type": "string", + "format": "uri" + }, + "region": { + "type": "string" + }, + "secret_access_key": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "SSHEntry": { + "type": "object", + "required": [ + "private_key_openssh" + ], + "properties": { + "private_key_openssh": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Secret": { + "type": "string" + }, + "Sendgrid": { + "type": "object", + "required": [ + "key" + ], + "properties": { + "key": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Ssh": { + "type": "object", + "required": [ + "server" + ], + "properties": { + "server": { + "$ref": "#/definitions/SSHEntry" + } + }, + "additionalProperties": false + }, + "Status": { + "description": "Configure the status check API.\n\nThese are different than the health check API since they check the internals of the Rivet system.", + "type": "object", + "required": [ + "token" + ], + "properties": { + "system_test_environment": { + "type": "string" + }, + "system_test_project": { + "type": "string" + }, + "token": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "Stripe": { + "type": "object", + "required": [ + "secret_key", + "webhook_secret" + ], + "properties": { + "secret_key": { + "$ref": "#/definitions/Secret" + }, + "webhook_secret": { + "description": "The current Stripe webhook secret.\n\nSecrets can be added at: https://dashboard.stripe.com/webhooks\n\nAdd the following events to the WebHook: - invoice.payment_succeeded - checkout.session.completed - payment_intent.succeeded", + "allOf": [ + { + "$ref": "#/definitions/Secret" + } + ] + } + }, + "additionalProperties": false + }, + "Telemetry": { + "description": "Configuration for telemetry collection.", + "type": "object", + "required": [ + "enable" + ], + "properties": { + "enable": { + "description": "Flag to enable or disable telemetry collection.", + "type": "boolean" + } + }, + "additionalProperties": false + }, + "TestBuild": { + "description": "Configuration for a default test build.", + "type": "object", + "required": [ + "key", + "tag" + ], + "properties": { + "key": { + "description": "S3 key.", + "type": "string" + }, + "tag": { + "description": "Image tag.", + "type": "string" + } + }, + "additionalProperties": false + }, + "Tls": { + "type": "object", + "required": [ + "acme", + "root_ca_cert_pem", + "root_ca_key_pem" + ], + "properties": { + "acme": { + "$ref": "#/definitions/TlsAcme" + }, + "root_ca_cert_pem": { + "$ref": "#/definitions/Secret" + }, + "root_ca_key_pem": { + "$ref": "#/definitions/Secret" + } + }, + "additionalProperties": false + }, + "TlsAcme": { + "type": "object", + "required": [ + "account_private_key_pem" + ], + "properties": { + "account_private_key_pem": { + "$ref": "#/definitions/Secret" + }, + "directory": { + "default": "lets_encrypt", + "allOf": [ + { + "$ref": "#/definitions/TlsAcmeDirectory" + } + ] + } + }, + "additionalProperties": false + }, + "TlsAcmeDirectory": { + "type": "string", + "enum": [ + "lets_encrypt", + "lets_encrypt_staging" + ] + }, + "Tunnel": { + "description": "Configuration for the tunnel service.", + "type": "object", + "required": [ + "public_host" + ], + "properties": { + "public_host": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Turnstile": { + "type": "object", + "properties": { + "cdn_secret_key": { + "$ref": "#/definitions/Secret" + }, + "cdn_site_key": { + "type": "string" + }, + "main_secret_key": { + "$ref": "#/definitions/Secret" + }, + "main_site_key": { + "type": "string" + } + }, + "additionalProperties": false + }, + "Ui": { + "description": "Configuration for the UI service.", + "type": "object", + "properties": { + "enable": { + "description": "Enables serving the UI automatically.\n\nIf disabled, the UI can be hosted separately.", + "type": "boolean" + }, + "proxy_origin": { + "description": "Origin to proxy UI requests to. This should be the server serving the actula files fro the frontend.\n\nThis is frequently either Vite for a development setup or Nginx for a simple setup.", + "type": "string", + "format": "uri" + }, + "public_origin": { + "description": "The origin URL for the UI.", + "type": "string", + "format": "uri" + }, + "public_origin_regex": { + "description": "Regular expression to match valid UI origins.", + "type": "string" + } + }, + "additionalProperties": false + }, + "VectorHttp": { + "type": "object", + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + } + }, + "additionalProperties": false + } + } +} \ No newline at end of file diff --git a/site/src/content/docs/toolchain-spec.json b/site/src/content/docs/toolchain-spec.json index 8093e3dabb..f487adb0d3 100644 --- a/site/src/content/docs/toolchain-spec.json +++ b/site/src/content/docs/toolchain-spec.json @@ -102,11 +102,11 @@ }, "unstable": { "default": { - "minify": null, "analyzeResult": null, - "esbuildLogLevel": null, "compression": null, "dumpBuild": null, + "esbuildLogLevel": null, + "minify": null, "noBundler": null }, "allOf": [