atagen

macltok

public
Star0
Watch0

Commit 55a1b8252814

tarball

atagen <boss@atagen.co>2026-09-27 01:42 UTC

8 files changed+4869-16
harness: run macltok in a headless firefox worker against a live homeserver

The native tests mock the homeserver with wiremock, which cannot run in a browser, so nothing showed the wasm build logging in, opening IndexedDB and reaching a sliding sync. continuwuity serves MSC4186 simplified sliding sync and starts in a couple of seconds, and the web check runs the whole thing inside the nix sandbox. The harness keeps its own Cargo.lock so wasm-bindgen-test stays out of the library lockfile, and wasm-bindgen-cli is built from whatever version that lock pins.
Modified file: flake.lock+39 additions
@@ -1,5 +1,26 @@
11 {
22 "nodes": {
3+ "fenix": {
4+ "inputs": {
5+ "nixpkgs": [
6+ "nixpkgs"
7+ ],
8+ "rust-analyzer-src": "rust-analyzer-src"
9+ },
10+ "locked": {
11+ "lastModified": 1790335941,
12+ "narHash": "sha256-eTMQK7tXCCaEuTr0cHjEQXaqFIngqK78sU4OX9lZCS0=",
13+ "owner": "nix-community",
14+ "repo": "fenix",
15+ "rev": "529de6f9a0c6721ae2a69d5719bbb803390e7b86",
16+ "type": "github"
17+ },
18+ "original": {
19+ "owner": "nix-community",
20+ "repo": "fenix",
21+ "type": "github"
22+ }
23+ },
324 "nixpkgs": {
425 "locked": {
526 "lastModified": 1788746152,
@@ -18,8 +39,26 @@
1839 },
1940 "root": {
2041 "inputs": {
42+ "fenix": "fenix",
2143 "nixpkgs": "nixpkgs"
2244 }
45+ },
46+ "rust-analyzer-src": {
47+ "flake": false,
48+ "locked": {
49+ "lastModified": 1790291720,
50+ "narHash": "sha256-BDG4YK/xih0d7llp/FdkWLXhyhKJN/VfWSEh4pOa8FA=",
51+ "owner": "rust-lang",
52+ "repo": "rust-analyzer",
53+ "rev": "f6f7271e040aef24535f4592352e1b02fb312ce2",
54+ "type": "github"
55+ },
56+ "original": {
57+ "owner": "rust-lang",
58+ "ref": "nightly",
59+ "repo": "rust-analyzer",
60+ "type": "github"
61+ }
2362 }
2463 },
2564 "root": "root",
Modified file: flake.nix+113 additions−16 deletions
@@ -1,10 +1,53 @@
11 {
2- inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
2+ inputs = {
3+ nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
4+ fenix = {
5+ url = "github:nix-community/fenix";
6+ inputs.nixpkgs.follows = "nixpkgs";
7+ };
8+ };
39
410 outputs =
5- { self, nixpkgs }:
11+ {
12+ self,
13+ nixpkgs,
14+ fenix,
15+ }:
616 let
717 forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed;
18+ webManifest = builtins.fromTOML (builtins.readFile ./harness/web/Cargo.toml);
19+ storeFeature = nixpkgs.lib.removePrefix "macltok/" (builtins.head webManifest.features.store);
20+ webLock = builtins.fromTOML (builtins.readFile ./harness/web/Cargo.lock);
21+ lockedVersion =
22+ name: (nixpkgs.lib.findFirst (p: p.name == name) null webLock.package).version;
23+ # wasm-bindgen-test-runner refuses a module built by any other wasm-bindgen version
24+ wasmBindgenCli =
25+ pkgs:
26+ pkgs.buildWasmBindgenCli rec {
27+ src = pkgs.fetchCrate {
28+ pname = "wasm-bindgen-cli";
29+ version = lockedVersion "wasm-bindgen";
30+ hash = "sha256-a7lcXJnnZkYReja+iUO7NqqrWyv3toxnUgQb8s4IS5s=";
31+ };
32+ cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
33+ inherit src;
34+ inherit (src) pname version;
35+ hash = "sha256-R1Tas33Ursy8kqsxguAkG0ZhNed2n5uFTAhw1l2qlLY=";
36+ };
37+ };
38+ wasmToolchain =
39+ system:
40+ let
41+ toolchains = fenix.packages.${system};
42+ in
43+ toolchains.combine [
44+ toolchains.stable.cargo
45+ toolchains.stable.clippy
46+ toolchains.stable.rustc
47+ toolchains.stable.rustfmt
48+ toolchains.stable.rust-src
49+ toolchains.targets.wasm32-unknown-unknown.stable.rust-std
50+ ];
851 in
952 {
1053 packages = forAllSystems (
@@ -24,20 +67,61 @@
2467 }
2568 );
2669
27- checks = forAllSystems (system: {
28- default = self.packages.${system}.default;
29- sqlite = nixpkgs.legacyPackages.${system}.rustPlatform.buildRustPackage {
30- pname = "macltok-sqlite-check";
31- version = "0.1.0";
32- src = self;
33- cargoLock.lockFile = ./Cargo.lock;
34- preBuild = "export NIX_BUILD_CORES=2";
35- buildFeatures = [ "sqlite" ];
36- nativeBuildInputs = [ nixpkgs.legacyPackages.${system}.pkg-config ];
37- buildInputs = [ nixpkgs.legacyPackages.${system}.sqlite ];
38- SSL_CERT_FILE = "${nixpkgs.legacyPackages.${system}.cacert}/etc/ssl/certs/ca-bundle.crt";
39- };
40- });
70+ checks = forAllSystems (
71+ system:
72+ let
73+ pkgs = nixpkgs.legacyPackages.${system};
74+ toolchain = wasmToolchain system;
75+ wasmPlatform = pkgs.makeRustPlatform {
76+ cargo = toolchain;
77+ rustc = toolchain;
78+ };
79+ # continuwuity refuses to start without /etc/resolv.conf, which the build sandbox lacks, or with
80+ # stdenv's deliberately bogus SSL_CERT_FILE
81+ sandboxedHomeserver = pkgs.writeShellScriptBin "conduwuit" ''
82+ export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
83+ exec ${pkgs.lib.getExe pkgs.bubblewrap} --dev-bind / / --tmpfs /etc \
84+ --ro-bind ${pkgs.writeText "resolv.conf" "nameserver 127.0.0.1\n"} /etc/resolv.conf \
85+ ${pkgs.lib.getExe' pkgs.matrix-continuwuity "conduwuit"} "$@"
86+ '';
87+ in
88+ {
89+ default = self.packages.${system}.default;
90+ sqlite = pkgs.rustPlatform.buildRustPackage {
91+ pname = "macltok-sqlite-check";
92+ version = "0.1.0";
93+ src = self;
94+ cargoLock.lockFile = ./Cargo.lock;
95+ preBuild = "export NIX_BUILD_CORES=2";
96+ buildFeatures = [ "sqlite" ];
97+ nativeBuildInputs = [ pkgs.pkg-config ];
98+ buildInputs = [ pkgs.sqlite ];
99+ SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
100+ };
101+ web = wasmPlatform.buildRustPackage {
102+ pname = "macltok-web-check";
103+ version = "0.1.0";
104+ src = self;
105+ cargoRoot = "harness/web";
106+ cargoLock.lockFile = ./harness/web/Cargo.lock;
107+ nativeBuildInputs = with pkgs; [
108+ (wasmBindgenCli pkgs)
109+ firefox
110+ geckodriver
111+ sandboxedHomeserver
112+ nushell
113+ ];
114+ buildPhase = ''
115+ runHook preBuild
116+ export HOME=$TMPDIR
117+ nu --no-config-file harness/web/run.nu
118+ runHook postBuild
119+ '';
120+ doCheck = false;
121+ installPhase = "touch $out";
122+ };
123+ }
124+ );
41125
42126 devShells = forAllSystems (
43127 system:
@@ -56,6 +140,19 @@
56140 sqlite
57141 ];
58142 };
143+ web = pkgs.mkShell {
144+ packages = with pkgs; [
145+ (wasmToolchain system)
146+ (wasmBindgenCli pkgs)
147+ binaryen
148+ brotli
149+ firefox
150+ geckodriver
151+ matrix-continuwuity
152+ nushell
153+ ];
154+ MACLTOK_STORE_FEATURE = storeFeature;
155+ };
59156 }
60157 );
61158 };
Added file: harness/web/.cargo/config.toml+3 additions
@@ -0,0 +1,3 @@
1+[target.wasm32-unknown-unknown]
2+runner = "wasm-bindgen-test-runner"
3+rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""]
Added file: harness/web/Cargo.lock+4513 additions
@@ -0,0 +1,4513 @@
1+# This file is automatically @generated by Cargo.
2+# It is not intended for manual editing.
3+version = 4
4+
5+[[package]]
6+name = "accessory"
7+version = "2.1.1"
8+source = "registry+https://github.com/rust-lang/crates.io-index"
9+checksum = "cc86a613208ca7d144ca24f6ec49c5cdfa5c05a46f2f7ab5880ff99371f165de"
10+dependencies = [
11+ "macroific 3.0.1",
12+ "proc-macro2",
13+ "quote",
14+ "syn 3.0.5",
15+]
16+
17+[[package]]
18+name = "adler2"
19+version = "2.0.1"
20+source = "registry+https://github.com/rust-lang/crates.io-index"
21+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
22+
23+[[package]]
24+name = "aead"
25+version = "0.5.2"
26+source = "registry+https://github.com/rust-lang/crates.io-index"
27+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
28+dependencies = [
29+ "crypto-common",
30+ "generic-array",
31+]
32+
33+[[package]]
34+name = "aes"
35+version = "0.8.4"
36+source = "registry+https://github.com/rust-lang/crates.io-index"
37+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
38+dependencies = [
39+ "cfg-if",
40+ "cipher",
41+ "cpufeatures 0.2.17",
42+]
43+
44+[[package]]
45+name = "aho-corasick"
46+version = "1.1.5"
47+source = "registry+https://github.com/rust-lang/crates.io-index"
48+checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
49+dependencies = [
50+ "memchr",
51+]
52+
53+[[package]]
54+name = "android_system_properties"
55+version = "0.1.6"
56+source = "registry+https://github.com/rust-lang/crates.io-index"
57+checksum = "ae221649c9976a6f6c56ae1facf410f3ddb33cc661c4b7b61020a912d4237fbc"
58+dependencies = [
59+ "libc",
60+]
61+
62+[[package]]
63+name = "anyhow"
64+version = "1.0.104"
65+source = "registry+https://github.com/rust-lang/crates.io-index"
66+checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
67+
68+[[package]]
69+name = "anymap2"
70+version = "0.13.0"
71+source = "registry+https://github.com/rust-lang/crates.io-index"
72+checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"
73+
74+[[package]]
75+name = "aquamarine"
76+version = "0.6.0"
77+source = "registry+https://github.com/rust-lang/crates.io-index"
78+checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2"
79+dependencies = [
80+ "include_dir",
81+ "itertools 0.10.5",
82+ "proc-macro-error2",
83+ "proc-macro2",
84+ "quote",
85+ "syn 2.0.119",
86+]
87+
88+[[package]]
89+name = "archery"
90+version = "1.2.3"
91+source = "registry+https://github.com/rust-lang/crates.io-index"
92+checksum = "33ca55ee147b1926dbea904f50fe4902494e97bc742205abbbf10c709e43815f"
93+
94+[[package]]
95+name = "arrayvec"
96+version = "0.7.8"
97+source = "registry+https://github.com/rust-lang/crates.io-index"
98+checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
99+dependencies = [
100+ "serde",
101+]
102+
103+[[package]]
104+name = "as_variant"
105+version = "1.3.0"
106+source = "registry+https://github.com/rust-lang/crates.io-index"
107+checksum = "9dbc3a507a82b17ba0d98f6ce8fd6954ea0c8152e98009d36a40d8dcc8ce078a"
108+
109+[[package]]
110+name = "assign"
111+version = "1.1.1"
112+source = "registry+https://github.com/rust-lang/crates.io-index"
113+checksum = "5f093eed78becd229346bf859eec0aa4dd7ddde0757287b2b4107a1f09c80002"
114+
115+[[package]]
116+name = "async-channel"
117+version = "2.5.0"
118+source = "registry+https://github.com/rust-lang/crates.io-index"
119+checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
120+dependencies = [
121+ "concurrent-queue",
122+ "event-listener-strategy",
123+ "futures-core",
124+ "pin-project-lite",
125+]
126+
127+[[package]]
128+name = "async-compression"
129+version = "0.4.45"
130+source = "registry+https://github.com/rust-lang/crates.io-index"
131+checksum = "24a8ec73eb862508b7041723c89386365894b4e7d9f6998bf1b8529e5b0ee254"
132+dependencies = [
133+ "compression-codecs",
134+ "compression-core",
135+ "pin-project-lite",
136+ "tokio",
137+]
138+
139+[[package]]
140+name = "async-once-cell"
141+version = "0.5.4"
142+source = "registry+https://github.com/rust-lang/crates.io-index"
143+checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a"
144+
145+[[package]]
146+name = "async-rx"
147+version = "0.2.1"
148+source = "registry+https://github.com/rust-lang/crates.io-index"
149+checksum = "a82c1a761cd7b772912fd2500f2c0a850c0c72f5f66543038393ac6cfaa3659a"
150+dependencies = [
151+ "futures-core",
152+ "pin-project-lite",
153+]
154+
155+[[package]]
156+name = "async-stream"
157+version = "0.3.6"
158+source = "registry+https://github.com/rust-lang/crates.io-index"
159+checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476"
160+dependencies = [
161+ "async-stream-impl",
162+ "futures-core",
163+ "pin-project-lite",
164+]
165+
166+[[package]]
167+name = "async-stream-impl"
168+version = "0.3.6"
169+source = "registry+https://github.com/rust-lang/crates.io-index"
170+checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
171+dependencies = [
172+ "proc-macro2",
173+ "quote",
174+ "syn 2.0.119",
175+]
176+
177+[[package]]
178+name = "async-trait"
179+version = "0.1.92"
180+source = "registry+https://github.com/rust-lang/crates.io-index"
181+checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
182+dependencies = [
183+ "proc-macro2",
184+ "quote",
185+ "syn 3.0.5",
186+]
187+
188+[[package]]
189+name = "async_cell"
190+version = "0.2.3"
191+source = "registry+https://github.com/rust-lang/crates.io-index"
192+checksum = "447ab28afbb345f5408b120702a44e5529ebf90b1796ec76e9528df8e288e6c2"
193+dependencies = [
194+ "loom",
195+]
196+
197+[[package]]
198+name = "atomic-waker"
199+version = "1.1.2"
200+source = "registry+https://github.com/rust-lang/crates.io-index"
201+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
202+
203+[[package]]
204+name = "autocfg"
205+version = "1.5.1"
206+source = "registry+https://github.com/rust-lang/crates.io-index"
207+checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
208+
209+[[package]]
210+name = "aws-lc-rs"
211+version = "1.18.1"
212+source = "registry+https://github.com/rust-lang/crates.io-index"
213+checksum = "b281d307588d634de920874890732659e2e7672f72b5e10e81badc1a8a83621e"
214+dependencies = [
215+ "aws-lc-sys",
216+ "zeroize",
217+]
218+
219+[[package]]
220+name = "aws-lc-sys"
221+version = "0.45.0"
222+source = "registry+https://github.com/rust-lang/crates.io-index"
223+checksum = "9bff6c3b54fad79a2e60b8102caf565819711497c1f5f092f49508e2f5c31b27"
224+dependencies = [
225+ "cc",
226+ "cmake",
227+ "dunce",
228+ "fs_extra",
229+ "pkg-config",
230+]
231+
232+[[package]]
233+name = "backon"
234+version = "1.6.0"
235+source = "registry+https://github.com/rust-lang/crates.io-index"
236+checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef"
237+dependencies = [
238+ "fastrand",
239+ "gloo-timers",
240+ "tokio",
241+]
242+
243+[[package]]
244+name = "base64"
245+version = "0.22.1"
246+source = "registry+https://github.com/rust-lang/crates.io-index"
247+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
248+
249+[[package]]
250+name = "base64ct"
251+version = "1.8.3"
252+source = "registry+https://github.com/rust-lang/crates.io-index"
253+checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
254+
255+[[package]]
256+name = "bitflags"
257+version = "2.13.1"
258+source = "registry+https://github.com/rust-lang/crates.io-index"
259+checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
260+dependencies = [
261+ "serde_core",
262+]
263+
264+[[package]]
265+name = "bitmaps"
266+version = "3.2.1"
267+source = "registry+https://github.com/rust-lang/crates.io-index"
268+checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6"
269+
270+[[package]]
271+name = "blake3"
272+version = "1.8.7"
273+source = "registry+https://github.com/rust-lang/crates.io-index"
274+checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae"
275+dependencies = [
276+ "arrayvec",
277+ "cc",
278+ "cfg-if",
279+ "constant_time_eq",
280+ "cpufeatures 0.3.1",
281+]
282+
283+[[package]]
284+name = "block-buffer"
285+version = "0.10.4"
286+source = "registry+https://github.com/rust-lang/crates.io-index"
287+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
288+dependencies = [
289+ "generic-array",
290+]
291+
292+[[package]]
293+name = "block-padding"
294+version = "0.3.3"
295+source = "registry+https://github.com/rust-lang/crates.io-index"
296+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
297+dependencies = [
298+ "generic-array",
299+]
300+
301+[[package]]
302+name = "bs58"
303+version = "0.5.1"
304+source = "registry+https://github.com/rust-lang/crates.io-index"
305+checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4"
306+dependencies = [
307+ "tinyvec",
308+]
309+
310+[[package]]
311+name = "bumpalo"
312+version = "3.20.3"
313+source = "registry+https://github.com/rust-lang/crates.io-index"
314+checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
315+
316+[[package]]
317+name = "byteorder"
318+version = "1.5.0"
319+source = "registry+https://github.com/rust-lang/crates.io-index"
320+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
321+
322+[[package]]
323+name = "bytes"
324+version = "1.12.1"
325+source = "registry+https://github.com/rust-lang/crates.io-index"
326+checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
327+
328+[[package]]
329+name = "bytesize"
330+version = "2.7.0"
331+source = "registry+https://github.com/rust-lang/crates.io-index"
332+checksum = "7354288c522e7e980fafd2075d63d1285794c3a6a16cdd492f189ea406e5f18b"
333+
334+[[package]]
335+name = "cast"
336+version = "0.3.0"
337+source = "registry+https://github.com/rust-lang/crates.io-index"
338+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
339+
340+[[package]]
341+name = "cbc"
342+version = "0.1.2"
343+source = "registry+https://github.com/rust-lang/crates.io-index"
344+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
345+dependencies = [
346+ "cipher",
347+]
348+
349+[[package]]
350+name = "cc"
351+version = "1.4.5"
352+source = "registry+https://github.com/rust-lang/crates.io-index"
353+checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80"
354+dependencies = [
355+ "find-msvc-tools",
356+ "jobserver",
357+ "libc",
358+ "shlex",
359+]
360+
361+[[package]]
362+name = "cfg-if"
363+version = "1.0.4"
364+source = "registry+https://github.com/rust-lang/crates.io-index"
365+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
366+
367+[[package]]
368+name = "cfg_aliases"
369+version = "0.2.2"
370+source = "registry+https://github.com/rust-lang/crates.io-index"
371+checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"
372+
373+[[package]]
374+name = "chacha20"
375+version = "0.9.1"
376+source = "registry+https://github.com/rust-lang/crates.io-index"
377+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
378+dependencies = [
379+ "cfg-if",
380+ "cipher",
381+ "cpufeatures 0.2.17",
382+]
383+
384+[[package]]
385+name = "chacha20"
386+version = "0.10.2"
387+source = "registry+https://github.com/rust-lang/crates.io-index"
388+checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06"
389+dependencies = [
390+ "cfg-if",
391+ "cpufeatures 0.3.1",
392+ "rand_core 0.10.1",
393+]
394+
395+[[package]]
396+name = "chacha20poly1305"
397+version = "0.10.1"
398+source = "registry+https://github.com/rust-lang/crates.io-index"
399+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
400+dependencies = [
401+ "aead",
402+ "chacha20 0.9.1",
403+ "cipher",
404+ "poly1305",
405+ "zeroize",
406+]
407+
408+[[package]]
409+name = "chrono"
410+version = "0.4.45"
411+source = "registry+https://github.com/rust-lang/crates.io-index"
412+checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
413+dependencies = [
414+ "iana-time-zone",
415+ "js-sys",
416+ "num-traits",
417+ "serde",
418+ "wasm-bindgen",
419+ "windows-link",
420+]
421+
422+[[package]]
423+name = "cipher"
424+version = "0.4.4"
425+source = "registry+https://github.com/rust-lang/crates.io-index"
426+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
427+dependencies = [
428+ "crypto-common",
429+ "inout",
430+ "zeroize",
431+]
432+
433+[[package]]
434+name = "cmake"
435+version = "0.1.58"
436+source = "registry+https://github.com/rust-lang/crates.io-index"
437+checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
438+dependencies = [
439+ "cc",
440+]
441+
442+[[package]]
443+name = "combine"
444+version = "4.6.8"
445+source = "registry+https://github.com/rust-lang/crates.io-index"
446+checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e"
447+dependencies = [
448+ "bytes",
449+ "memchr",
450+]
451+
452+[[package]]
453+name = "compression-codecs"
454+version = "0.4.40"
455+source = "registry+https://github.com/rust-lang/crates.io-index"
456+checksum = "100590da849306918656ffbb22576bbdfc1382b50ad10d1d50ec177d3b205fb2"
457+dependencies = [
458+ "compression-core",
459+ "flate2",
460+ "memchr",
461+]
462+
463+[[package]]
464+name = "compression-core"
465+version = "0.4.33"
466+source = "registry+https://github.com/rust-lang/crates.io-index"
467+checksum = "6e8ccc4ea9f6acc32d102c0f6d471d11d913ad15f20c04de743374861fa1d414"
468+
469+[[package]]
470+name = "concurrent-queue"
471+version = "2.5.0"
472+source = "registry+https://github.com/rust-lang/crates.io-index"
473+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
474+dependencies = [
475+ "crossbeam-utils",
476+]
477+
478+[[package]]
479+name = "const-oid"
480+version = "0.9.6"
481+source = "registry+https://github.com/rust-lang/crates.io-index"
482+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
483+
484+[[package]]
485+name = "const_panic"
486+version = "0.2.17"
487+source = "registry+https://github.com/rust-lang/crates.io-index"
488+checksum = "9603f79528ece8163c496f8932121cb36cfe46259e9c907bb3d8205139d7caa3"
489+dependencies = [
490+ "typewit",
491+]
492+
493+[[package]]
494+name = "constant_time_eq"
495+version = "0.4.2"
496+source = "registry+https://github.com/rust-lang/crates.io-index"
497+checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b"
498+
499+[[package]]
500+name = "core-foundation"
501+version = "0.10.1"
502+source = "registry+https://github.com/rust-lang/crates.io-index"
503+checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
504+dependencies = [
505+ "core-foundation-sys",
506+ "libc",
507+]
508+
509+[[package]]
510+name = "core-foundation-sys"
511+version = "0.8.7"
512+source = "registry+https://github.com/rust-lang/crates.io-index"
513+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
514+
515+[[package]]
516+name = "cpufeatures"
517+version = "0.2.17"
518+source = "registry+https://github.com/rust-lang/crates.io-index"
519+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
520+dependencies = [
521+ "libc",
522+]
523+
524+[[package]]
525+name = "cpufeatures"
526+version = "0.3.1"
527+source = "registry+https://github.com/rust-lang/crates.io-index"
528+checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566"
529+dependencies = [
530+ "libc",
531+]
532+
533+[[package]]
534+name = "crc32fast"
535+version = "1.5.1"
536+source = "registry+https://github.com/rust-lang/crates.io-index"
537+checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550"
538+dependencies = [
539+ "cfg-if",
540+]
541+
542+[[package]]
543+name = "crossbeam-utils"
544+version = "0.8.23"
545+source = "registry+https://github.com/rust-lang/crates.io-index"
546+checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6"
547+
548+[[package]]
549+name = "crypto-common"
550+version = "0.1.7"
551+source = "registry+https://github.com/rust-lang/crates.io-index"
552+checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
553+dependencies = [
554+ "generic-array",
555+ "rand_core 0.6.4",
556+ "typenum",
557+]
558+
559+[[package]]
560+name = "ctr"
561+version = "0.9.2"
562+source = "registry+https://github.com/rust-lang/crates.io-index"
563+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
564+dependencies = [
565+ "cipher",
566+]
567+
568+[[package]]
569+name = "curve25519-dalek"
570+version = "4.1.3"
571+source = "registry+https://github.com/rust-lang/crates.io-index"
572+checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
573+dependencies = [
574+ "cfg-if",
575+ "cpufeatures 0.2.17",
576+ "curve25519-dalek-derive",
577+ "digest",
578+ "fiat-crypto",
579+ "rustc_version",
580+ "serde",
581+ "subtle",
582+ "zeroize",
583+]
584+
585+[[package]]
586+name = "curve25519-dalek-derive"
587+version = "0.1.1"
588+source = "registry+https://github.com/rust-lang/crates.io-index"
589+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
590+dependencies = [
591+ "proc-macro2",
592+ "quote",
593+ "syn 2.0.119",
594+]
595+
596+[[package]]
597+name = "date_header"
598+version = "1.0.5"
599+source = "registry+https://github.com/rust-lang/crates.io-index"
600+checksum = "0c03c416ed1a30fbb027ef484ba6ab6f80e1eada675e1a2b92fd673c045a1f1d"
601+
602+[[package]]
603+name = "deadpool"
604+version = "0.13.1"
605+source = "registry+https://github.com/rust-lang/crates.io-index"
606+checksum = "3e98a7e119cd347f4201e1159b19831029e203e2d8b790547708e8157b4acf1e"
607+dependencies = [
608+ "deadpool-runtime",
609+ "tokio",
610+]
611+
612+[[package]]
613+name = "deadpool-runtime"
614+version = "0.3.1"
615+source = "registry+https://github.com/rust-lang/crates.io-index"
616+checksum = "2657f61fb1dd8bf37a8d51093cc7cee4e77125b22f7753f49b289f831bec2bae"
617+dependencies = [
618+ "tokio",
619+]
620+
621+[[package]]
622+name = "deadpool-sync"
623+version = "0.2.0"
624+source = "registry+https://github.com/rust-lang/crates.io-index"
625+checksum = "e385cc95d3d582c328b36d1ff90feac061102b001894b555e6b465a2e0eaabbf"
626+dependencies = [
627+ "deadpool-runtime",
628+]
629+
630+[[package]]
631+name = "decancer"
632+version = "3.3.3"
633+source = "registry+https://github.com/rust-lang/crates.io-index"
634+checksum = "a9244323129647178bf41ac861a2cdb9d9c81b9b09d3d0d1de9cd302b33b8a1d"
635+
636+[[package]]
637+name = "delegate-display"
638+version = "3.0.1"
639+source = "registry+https://github.com/rust-lang/crates.io-index"
640+checksum = "54e3a499943fd5180aeffcb708164ffb22125ceeccb05491b5297981d37d6249"
641+dependencies = [
642+ "impartial-ord",
643+ "itoa",
644+ "macroific 3.0.1",
645+ "proc-macro2",
646+ "quote",
647+ "syn 3.0.5",
648+]
649+
650+[[package]]
651+name = "der"
652+version = "0.7.10"
653+source = "registry+https://github.com/rust-lang/crates.io-index"
654+checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
655+dependencies = [
656+ "const-oid",
657+ "zeroize",
658+]
659+
660+[[package]]
661+name = "deranged"
662+version = "0.5.8"
663+source = "registry+https://github.com/rust-lang/crates.io-index"
664+checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
665+
666+[[package]]
667+name = "derivative"
668+version = "2.2.0"
669+source = "registry+https://github.com/rust-lang/crates.io-index"
670+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
671+dependencies = [
672+ "proc-macro2",
673+ "quote",
674+ "syn 1.0.109",
675+]
676+
677+[[package]]
678+name = "derive_more"
679+version = "1.0.0"
680+source = "registry+https://github.com/rust-lang/crates.io-index"
681+checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
682+dependencies = [
683+ "derive_more-impl 1.0.0",
684+]
685+
686+[[package]]
687+name = "derive_more"
688+version = "2.1.1"
689+source = "registry+https://github.com/rust-lang/crates.io-index"
690+checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
691+dependencies = [
692+ "derive_more-impl 2.1.1",
693+]
694+
695+[[package]]
696+name = "derive_more-impl"
697+version = "1.0.0"
698+source = "registry+https://github.com/rust-lang/crates.io-index"
699+checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
700+dependencies = [
701+ "proc-macro2",
702+ "quote",
703+ "syn 2.0.119",
704+]
705+
706+[[package]]
707+name = "derive_more-impl"
708+version = "2.1.1"
709+source = "registry+https://github.com/rust-lang/crates.io-index"
710+checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
711+dependencies = [
712+ "proc-macro2",
713+ "quote",
714+ "rustc_version",
715+ "syn 2.0.119",
716+ "unicode-xid",
717+]
718+
719+[[package]]
720+name = "digest"
721+version = "0.10.7"
722+source = "registry+https://github.com/rust-lang/crates.io-index"
723+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
724+dependencies = [
725+ "block-buffer",
726+ "crypto-common",
727+ "subtle",
728+]
729+
730+[[package]]
731+name = "displaydoc"
732+version = "0.2.7"
733+source = "registry+https://github.com/rust-lang/crates.io-index"
734+checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
735+dependencies = [
736+ "proc-macro2",
737+ "quote",
738+ "syn 3.0.5",
739+]
740+
741+[[package]]
742+name = "dunce"
743+version = "1.0.5"
744+source = "registry+https://github.com/rust-lang/crates.io-index"
745+checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
746+
747+[[package]]
748+name = "ed25519"
749+version = "2.2.3"
750+source = "registry+https://github.com/rust-lang/crates.io-index"
751+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
752+dependencies = [
753+ "pkcs8",
754+ "serde",
755+ "signature",
756+]
757+
758+[[package]]
759+name = "ed25519-dalek"
760+version = "2.2.0"
761+source = "registry+https://github.com/rust-lang/crates.io-index"
762+checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9"
763+dependencies = [
764+ "curve25519-dalek",
765+ "ed25519",
766+ "rand_core 0.6.4",
767+ "serde",
768+ "sha2",
769+ "subtle",
770+ "zeroize",
771+]
772+
773+[[package]]
774+name = "either"
775+version = "1.18.0"
776+source = "registry+https://github.com/rust-lang/crates.io-index"
777+checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
778+
779+[[package]]
780+name = "emojis"
781+version = "0.8.2"
782+source = "registry+https://github.com/rust-lang/crates.io-index"
783+checksum = "0a4d5d50b0b58df5173d8ff1192b4d1422ceae5d981b30d4b6f8ed1d673a2bc4"
784+dependencies = [
785+ "phf",
786+]
787+
788+[[package]]
789+name = "equivalent"
790+version = "1.0.2"
791+source = "registry+https://github.com/rust-lang/crates.io-index"
792+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
793+
794+[[package]]
795+name = "errno"
796+version = "0.3.14"
797+source = "registry+https://github.com/rust-lang/crates.io-index"
798+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
799+dependencies = [
800+ "libc",
801+ "windows-sys 0.61.2",
802+]
803+
804+[[package]]
805+name = "event-listener"
806+version = "5.4.2"
807+source = "registry+https://github.com/rust-lang/crates.io-index"
808+checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2"
809+dependencies = [
810+ "parking",
811+ "pin-project-lite",
812+]
813+
814+[[package]]
815+name = "event-listener-strategy"
816+version = "0.5.4"
817+source = "registry+https://github.com/rust-lang/crates.io-index"
818+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
819+dependencies = [
820+ "event-listener",
821+ "pin-project-lite",
822+]
823+
824+[[package]]
825+name = "eyeball"
826+version = "0.8.8"
827+source = "registry+https://github.com/rust-lang/crates.io-index"
828+checksum = "d93bd0ebf93d61d6332d3c09a96e97975968a44e19a64c947bde06e6baff383f"
829+dependencies = [
830+ "futures-core",
831+ "readlock",
832+ "readlock-tokio",
833+ "tokio",
834+ "tokio-util",
835+ "tracing",
836+]
837+
838+[[package]]
839+name = "eyeball-im"
840+version = "0.8.0"
841+source = "registry+https://github.com/rust-lang/crates.io-index"
842+checksum = "4790c03df183c2b46665c1a58118c04fd3e3976ec2fe16a0aa00e00c9eea7754"
843+dependencies = [
844+ "futures-core",
845+ "imbl",
846+ "tokio",
847+ "tracing",
848+]
849+
850+[[package]]
851+name = "eyeball-im-util"
852+version = "0.10.0"
853+source = "registry+https://github.com/rust-lang/crates.io-index"
854+checksum = "809fa2e8e59c25a41f5b2440aa937f1e84df6ae48b707e65f69ce259b1c44bda"
855+dependencies = [
856+ "arrayvec",
857+ "eyeball-im",
858+ "futures-core",
859+ "imbl",
860+ "pin-project-lite",
861+ "smallvec",
862+]
863+
864+[[package]]
865+name = "fallible-iterator"
866+version = "0.3.0"
867+source = "registry+https://github.com/rust-lang/crates.io-index"
868+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
869+
870+[[package]]
871+name = "fallible-streaming-iterator"
872+version = "0.1.9"
873+source = "registry+https://github.com/rust-lang/crates.io-index"
874+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
875+
876+[[package]]
877+name = "fancy_constructor"
878+version = "2.1.1"
879+source = "registry+https://github.com/rust-lang/crates.io-index"
880+checksum = "4a8211ab12c36b63c269e17873331dc1da196a3edb7a5c79015677ef972da34a"
881+dependencies = [
882+ "macroific 3.0.1",
883+ "proc-macro2",
884+ "quote",
885+ "syn 3.0.5",
886+]
887+
888+[[package]]
889+name = "fastrand"
890+version = "2.5.0"
891+source = "registry+https://github.com/rust-lang/crates.io-index"
892+checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
893+
894+[[package]]
895+name = "fiat-crypto"
896+version = "0.2.9"
897+source = "registry+https://github.com/rust-lang/crates.io-index"
898+checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
899+
900+[[package]]
901+name = "find-msvc-tools"
902+version = "0.1.12"
903+source = "registry+https://github.com/rust-lang/crates.io-index"
904+checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d"
905+
906+[[package]]
907+name = "flate2"
908+version = "1.1.10"
909+source = "registry+https://github.com/rust-lang/crates.io-index"
910+checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb"
911+dependencies = [
912+ "crc32fast",
913+ "miniz_oxide",
914+ "zlib-rs",
915+]
916+
917+[[package]]
918+name = "fnv"
919+version = "1.0.7"
920+source = "registry+https://github.com/rust-lang/crates.io-index"
921+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
922+
923+[[package]]
924+name = "foldhash"
925+version = "0.1.5"
926+source = "registry+https://github.com/rust-lang/crates.io-index"
927+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
928+
929+[[package]]
930+name = "form_urlencoded"
931+version = "1.2.2"
932+source = "registry+https://github.com/rust-lang/crates.io-index"
933+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
934+dependencies = [
935+ "percent-encoding",
936+]
937+
938+[[package]]
939+name = "fs_extra"
940+version = "1.3.0"
941+source = "registry+https://github.com/rust-lang/crates.io-index"
942+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
943+
944+[[package]]
945+name = "futures-channel"
946+version = "0.3.34"
947+source = "registry+https://github.com/rust-lang/crates.io-index"
948+checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4"
949+dependencies = [
950+ "futures-core",
951+]
952+
953+[[package]]
954+name = "futures-core"
955+version = "0.3.34"
956+source = "registry+https://github.com/rust-lang/crates.io-index"
957+checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
958+
959+[[package]]
960+name = "futures-executor"
961+version = "0.3.34"
962+source = "registry+https://github.com/rust-lang/crates.io-index"
963+checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432"
964+dependencies = [
965+ "futures-core",
966+ "futures-task",
967+ "futures-util",
968+]
969+
970+[[package]]
971+name = "futures-io"
972+version = "0.3.34"
973+source = "registry+https://github.com/rust-lang/crates.io-index"
974+checksum = "53c0fa8157de1303bfffdaa1cc2a673bfffb60102f76b0ef4441659124373fed"
975+
976+[[package]]
977+name = "futures-macro"
978+version = "0.3.34"
979+source = "registry+https://github.com/rust-lang/crates.io-index"
980+checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
981+dependencies = [
982+ "proc-macro2",
983+ "quote",
984+ "syn 3.0.5",
985+]
986+
987+[[package]]
988+name = "futures-sink"
989+version = "0.3.34"
990+source = "registry+https://github.com/rust-lang/crates.io-index"
991+checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"
992+
993+[[package]]
994+name = "futures-task"
995+version = "0.3.34"
996+source = "registry+https://github.com/rust-lang/crates.io-index"
997+checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
998+
999+[[package]]
1000+name = "futures-util"
1001+version = "0.3.34"
1002+source = "registry+https://github.com/rust-lang/crates.io-index"
1003+checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
1004+dependencies = [
1005+ "futures-channel",
1006+ "futures-core",
1007+ "futures-io",
1008+ "futures-macro",
1009+ "futures-sink",
1010+ "futures-task",
1011+ "memchr",
1012+ "pin-project-lite",
1013+ "slab",
1014+]
1015+
1016+[[package]]
1017+name = "fuzzy-matcher"
1018+version = "0.3.7"
1019+source = "registry+https://github.com/rust-lang/crates.io-index"
1020+checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
1021+dependencies = [
1022+ "thread_local",
1023+]
1024+
1025+[[package]]
1026+name = "generator"
1027+version = "0.8.9"
1028+source = "registry+https://github.com/rust-lang/crates.io-index"
1029+checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae"
1030+dependencies = [
1031+ "cc",
1032+ "cfg-if",
1033+ "libc",
1034+ "log",
1035+ "rustversion",
1036+ "windows-link",
1037+ "windows-result",
1038+]
1039+
1040+[[package]]
1041+name = "generic-array"
1042+version = "0.14.7"
1043+source = "registry+https://github.com/rust-lang/crates.io-index"
1044+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
1045+dependencies = [
1046+ "typenum",
1047+ "version_check",
1048+]
1049+
1050+[[package]]
1051+name = "getrandom"
1052+version = "0.2.17"
1053+source = "registry+https://github.com/rust-lang/crates.io-index"
1054+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
1055+dependencies = [
1056+ "cfg-if",
1057+ "js-sys",
1058+ "libc",
1059+ "wasi",
1060+ "wasm-bindgen",
1061+]
1062+
1063+[[package]]
1064+name = "getrandom"
1065+version = "0.3.4"
1066+source = "registry+https://github.com/rust-lang/crates.io-index"
1067+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
1068+dependencies = [
1069+ "cfg-if",
1070+ "js-sys",
1071+ "libc",
1072+ "r-efi 5.3.0",
1073+ "wasip2",
1074+ "wasm-bindgen",
1075+]
1076+
1077+[[package]]
1078+name = "getrandom"
1079+version = "0.4.3"
1080+source = "registry+https://github.com/rust-lang/crates.io-index"
1081+checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
1082+dependencies = [
1083+ "cfg-if",
1084+ "js-sys",
1085+ "libc",
1086+ "r-efi 6.0.0",
1087+ "rand_core 0.10.1",
1088+ "wasm-bindgen",
1089+]
1090+
1091+[[package]]
1092+name = "gloo-timers"
1093+version = "0.3.0"
1094+source = "registry+https://github.com/rust-lang/crates.io-index"
1095+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
1096+dependencies = [
1097+ "futures-channel",
1098+ "futures-core",
1099+ "js-sys",
1100+ "wasm-bindgen",
1101+]
1102+
1103+[[package]]
1104+name = "gloo-utils"
1105+version = "0.2.0"
1106+source = "registry+https://github.com/rust-lang/crates.io-index"
1107+checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa"
1108+dependencies = [
1109+ "js-sys",
1110+ "serde",
1111+ "serde_json",
1112+ "wasm-bindgen",
1113+ "web-sys",
1114+]
1115+
1116+[[package]]
1117+name = "growable-bloom-filter"
1118+version = "2.1.1"
1119+source = "registry+https://github.com/rust-lang/crates.io-index"
1120+checksum = "d174ccb4ba660d431329e7f0797870d0a4281e36353ec4b4a3c5eab6c2cfb6f1"
1121+dependencies = [
1122+ "serde",
1123+ "serde_bytes",
1124+ "serde_derive",
1125+ "xxhash-rust",
1126+]
1127+
1128+[[package]]
1129+name = "h2"
1130+version = "0.4.19"
1131+source = "registry+https://github.com/rust-lang/crates.io-index"
1132+checksum = "ef8e5e5a340588f4452631496976cf8636d4a7ecf600239fdc27615d2530bc16"
1133+dependencies = [
1134+ "atomic-waker",
1135+ "bytes",
1136+ "fnv",
1137+ "futures-core",
1138+ "futures-sink",
1139+ "http",
1140+ "indexmap",
1141+ "slab",
1142+ "tokio",
1143+ "tokio-util",
1144+ "tracing",
1145+]
1146+
1147+[[package]]
1148+name = "hashbrown"
1149+version = "0.15.5"
1150+source = "registry+https://github.com/rust-lang/crates.io-index"
1151+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
1152+dependencies = [
1153+ "foldhash",
1154+]
1155+
1156+[[package]]
1157+name = "hashbrown"
1158+version = "0.17.1"
1159+source = "registry+https://github.com/rust-lang/crates.io-index"
1160+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
1161+
1162+[[package]]
1163+name = "hashlink"
1164+version = "0.10.0"
1165+source = "registry+https://github.com/rust-lang/crates.io-index"
1166+checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
1167+dependencies = [
1168+ "hashbrown 0.15.5",
1169+]
1170+
1171+[[package]]
1172+name = "hermit-abi"
1173+version = "0.5.3"
1174+source = "registry+https://github.com/rust-lang/crates.io-index"
1175+checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284"
1176+
1177+[[package]]
1178+name = "hkdf"
1179+version = "0.12.4"
1180+source = "registry+https://github.com/rust-lang/crates.io-index"
1181+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
1182+dependencies = [
1183+ "hmac",
1184+]
1185+
1186+[[package]]
1187+name = "hmac"
1188+version = "0.12.1"
1189+source = "registry+https://github.com/rust-lang/crates.io-index"
1190+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
1191+dependencies = [
1192+ "digest",
1193+]
1194+
1195+[[package]]
1196+name = "html5ever"
1197+version = "0.39.0"
1198+source = "registry+https://github.com/rust-lang/crates.io-index"
1199+checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"
1200+dependencies = [
1201+ "log",
1202+ "markup5ever",
1203+]
1204+
1205+[[package]]
1206+name = "http"
1207+version = "1.5.0"
1208+source = "registry+https://github.com/rust-lang/crates.io-index"
1209+checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0"
1210+dependencies = [
1211+ "bytes",
1212+ "itoa",
1213+]
1214+
1215+[[package]]
1216+name = "http-body"
1217+version = "1.1.0"
1218+source = "registry+https://github.com/rust-lang/crates.io-index"
1219+checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"
1220+dependencies = [
1221+ "bytes",
1222+ "http",
1223+]
1224+
1225+[[package]]
1226+name = "http-body-util"
1227+version = "0.1.5"
1228+source = "registry+https://github.com/rust-lang/crates.io-index"
1229+checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c"
1230+dependencies = [
1231+ "bytes",
1232+ "futures-core",
1233+ "http",
1234+ "http-body",
1235+ "pin-project-lite",
1236+]
1237+
1238+[[package]]
1239+name = "httparse"
1240+version = "1.10.1"
1241+source = "registry+https://github.com/rust-lang/crates.io-index"
1242+checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
1243+
1244+[[package]]
1245+name = "hyper"
1246+version = "1.11.1"
1247+source = "registry+https://github.com/rust-lang/crates.io-index"
1248+checksum = "27b501faa50e7a26c3d3560ca625132f4078a17771f4810baf70475ae48cbe43"
1249+dependencies = [
1250+ "atomic-waker",
1251+ "bytes",
1252+ "futures-channel",
1253+ "futures-core",
1254+ "h2",
1255+ "http",
1256+ "http-body",
1257+ "httparse",
1258+ "itoa",
1259+ "pin-project-lite",
1260+ "smallvec",
1261+ "tokio",
1262+ "want",
1263+]
1264+
1265+[[package]]
1266+name = "hyper-rustls"
1267+version = "0.27.9"
1268+source = "registry+https://github.com/rust-lang/crates.io-index"
1269+checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f"
1270+dependencies = [
1271+ "http",
1272+ "hyper",
1273+ "hyper-util",
1274+ "rustls",
1275+ "tokio",
1276+ "tokio-rustls",
1277+ "tower-service",
1278+]
1279+
1280+[[package]]
1281+name = "hyper-util"
1282+version = "0.1.20"
1283+source = "registry+https://github.com/rust-lang/crates.io-index"
1284+checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
1285+dependencies = [
1286+ "base64",
1287+ "bytes",
1288+ "futures-channel",
1289+ "futures-util",
1290+ "http",
1291+ "http-body",
1292+ "hyper",
1293+ "ipnet",
1294+ "libc",
1295+ "percent-encoding",
1296+ "pin-project-lite",
1297+ "socket2",
1298+ "tokio",
1299+ "tower-service",
1300+ "tracing",
1301+]
1302+
1303+[[package]]
1304+name = "iana-time-zone"
1305+version = "0.1.65"
1306+source = "registry+https://github.com/rust-lang/crates.io-index"
1307+checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470"
1308+dependencies = [
1309+ "android_system_properties",
1310+ "core-foundation-sys",
1311+ "iana-time-zone-haiku",
1312+ "js-sys",
1313+ "log",
1314+ "wasm-bindgen",
1315+ "windows-core",
1316+]
1317+
1318+[[package]]
1319+name = "iana-time-zone-haiku"
1320+version = "0.1.2"
1321+source = "registry+https://github.com/rust-lang/crates.io-index"
1322+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
1323+dependencies = [
1324+ "cc",
1325+]
1326+
1327+[[package]]
1328+name = "icu_collections"
1329+version = "2.3.0"
1330+source = "registry+https://github.com/rust-lang/crates.io-index"
1331+checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513"
1332+dependencies = [
1333+ "displaydoc",
1334+ "potential_utf",
1335+ "utf8_iter",
1336+ "yoke",
1337+ "zerofrom",
1338+ "zerovec",
1339+]
1340+
1341+[[package]]
1342+name = "icu_locale_core"
1343+version = "2.3.0"
1344+source = "registry+https://github.com/rust-lang/crates.io-index"
1345+checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb"
1346+dependencies = [
1347+ "displaydoc",
1348+ "litemap",
1349+ "tinystr",
1350+ "writeable",
1351+ "zerovec",
1352+]
1353+
1354+[[package]]
1355+name = "icu_normalizer"
1356+version = "2.3.0"
1357+source = "registry+https://github.com/rust-lang/crates.io-index"
1358+checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f"
1359+dependencies = [
1360+ "icu_collections",
1361+ "icu_normalizer_data",
1362+ "icu_properties",
1363+ "icu_provider",
1364+ "smallvec",
1365+ "zerovec",
1366+]
1367+
1368+[[package]]
1369+name = "icu_normalizer_data"
1370+version = "2.3.0"
1371+source = "registry+https://github.com/rust-lang/crates.io-index"
1372+checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0"
1373+
1374+[[package]]
1375+name = "icu_properties"
1376+version = "2.3.0"
1377+source = "registry+https://github.com/rust-lang/crates.io-index"
1378+checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148"
1379+dependencies = [
1380+ "displaydoc",
1381+ "icu_collections",
1382+ "icu_locale_core",
1383+ "icu_properties_data",
1384+ "icu_provider",
1385+ "zerotrie",
1386+ "zerovec",
1387+]
1388+
1389+[[package]]
1390+name = "icu_properties_data"
1391+version = "2.3.0"
1392+source = "registry+https://github.com/rust-lang/crates.io-index"
1393+checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa"
1394+
1395+[[package]]
1396+name = "icu_provider"
1397+version = "2.3.1"
1398+source = "registry+https://github.com/rust-lang/crates.io-index"
1399+checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73"
1400+dependencies = [
1401+ "displaydoc",
1402+ "icu_locale_core",
1403+ "writeable",
1404+ "yoke",
1405+ "zerofrom",
1406+ "zerotrie",
1407+ "zerovec",
1408+]
1409+
1410+[[package]]
1411+name = "idna"
1412+version = "1.1.0"
1413+source = "registry+https://github.com/rust-lang/crates.io-index"
1414+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
1415+dependencies = [
1416+ "idna_adapter",
1417+ "smallvec",
1418+ "utf8_iter",
1419+]
1420+
1421+[[package]]
1422+name = "idna_adapter"
1423+version = "1.2.2"
1424+source = "registry+https://github.com/rust-lang/crates.io-index"
1425+checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714"
1426+dependencies = [
1427+ "icu_normalizer",
1428+ "icu_properties",
1429+]
1430+
1431+[[package]]
1432+name = "imbl"
1433+version = "6.1.0"
1434+source = "registry+https://github.com/rust-lang/crates.io-index"
1435+checksum = "0fade8ae6828627ad1fa094a891eccfb25150b383047190a3648d66d06186501"
1436+dependencies = [
1437+ "archery",
1438+ "bitmaps",
1439+ "imbl-sized-chunks",
1440+ "rand_core 0.9.5",
1441+ "rand_xoshiro",
1442+ "serde",
1443+ "version_check",
1444+]
1445+
1446+[[package]]
1447+name = "imbl-sized-chunks"
1448+version = "0.1.3"
1449+source = "registry+https://github.com/rust-lang/crates.io-index"
1450+checksum = "8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d"
1451+dependencies = [
1452+ "bitmaps",
1453+]
1454+
1455+[[package]]
1456+name = "impartial-ord"
1457+version = "2.0.0"
1458+source = "registry+https://github.com/rust-lang/crates.io-index"
1459+checksum = "bc680e03d1a08bdc1c01b60e0c39723430ced63d8cabd93cee0449b6ba916a25"
1460+dependencies = [
1461+ "proc-macro2",
1462+ "quote",
1463+ "syn 3.0.5",
1464+]
1465+
1466+[[package]]
1467+name = "include_dir"
1468+version = "0.7.4"
1469+source = "registry+https://github.com/rust-lang/crates.io-index"
1470+checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd"
1471+dependencies = [
1472+ "include_dir_macros",
1473+]
1474+
1475+[[package]]
1476+name = "include_dir_macros"
1477+version = "0.7.4"
1478+source = "registry+https://github.com/rust-lang/crates.io-index"
1479+checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75"
1480+dependencies = [
1481+ "proc-macro2",
1482+ "quote",
1483+]
1484+
1485+[[package]]
1486+name = "indexmap"
1487+version = "2.14.2"
1488+source = "registry+https://github.com/rust-lang/crates.io-index"
1489+checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855"
1490+dependencies = [
1491+ "equivalent",
1492+ "hashbrown 0.17.1",
1493+ "serde",
1494+ "serde_core",
1495+]
1496+
1497+[[package]]
1498+name = "inout"
1499+version = "0.1.4"
1500+source = "registry+https://github.com/rust-lang/crates.io-index"
1501+checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
1502+dependencies = [
1503+ "block-padding",
1504+ "generic-array",
1505+]
1506+
1507+[[package]]
1508+name = "ipnet"
1509+version = "2.12.2"
1510+source = "registry+https://github.com/rust-lang/crates.io-index"
1511+checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0"
1512+
1513+[[package]]
1514+name = "itertools"
1515+version = "0.10.5"
1516+source = "registry+https://github.com/rust-lang/crates.io-index"
1517+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
1518+dependencies = [
1519+ "either",
1520+]
1521+
1522+[[package]]
1523+name = "itertools"
1524+version = "0.14.0"
1525+source = "registry+https://github.com/rust-lang/crates.io-index"
1526+checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
1527+dependencies = [
1528+ "either",
1529+]
1530+
1531+[[package]]
1532+name = "itoa"
1533+version = "1.0.18"
1534+source = "registry+https://github.com/rust-lang/crates.io-index"
1535+checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
1536+
1537+[[package]]
1538+name = "jni"
1539+version = "0.22.4"
1540+source = "registry+https://github.com/rust-lang/crates.io-index"
1541+checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498"
1542+dependencies = [
1543+ "cfg-if",
1544+ "combine",
1545+ "jni-macros",
1546+ "jni-sys",
1547+ "log",
1548+ "simd_cesu8",
1549+ "thiserror 2.0.20",
1550+ "walkdir",
1551+ "windows-link",
1552+]
1553+
1554+[[package]]
1555+name = "jni-macros"
1556+version = "0.22.4"
1557+source = "registry+https://github.com/rust-lang/crates.io-index"
1558+checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3"
1559+dependencies = [
1560+ "proc-macro2",
1561+ "quote",
1562+ "rustc_version",
1563+ "simd_cesu8",
1564+ "syn 2.0.119",
1565+]
1566+
1567+[[package]]
1568+name = "jni-sys"
1569+version = "0.4.1"
1570+source = "registry+https://github.com/rust-lang/crates.io-index"
1571+checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
1572+dependencies = [
1573+ "jni-sys-macros",
1574+]
1575+
1576+[[package]]
1577+name = "jni-sys-macros"
1578+version = "0.4.1"
1579+source = "registry+https://github.com/rust-lang/crates.io-index"
1580+checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
1581+dependencies = [
1582+ "quote",
1583+ "syn 2.0.119",
1584+]
1585+
1586+[[package]]
1587+name = "jobserver"
1588+version = "0.1.35"
1589+source = "registry+https://github.com/rust-lang/crates.io-index"
1590+checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3"
1591+dependencies = [
1592+ "getrandom 0.4.3",
1593+ "libc",
1594+]
1595+
1596+[[package]]
1597+name = "js-sys"
1598+version = "0.3.105"
1599+source = "registry+https://github.com/rust-lang/crates.io-index"
1600+checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e"
1601+dependencies = [
1602+ "cfg-if",
1603+ "futures-util",
1604+ "wasm-bindgen",
1605+]
1606+
1607+[[package]]
1608+name = "js_int"
1609+version = "0.2.2"
1610+source = "registry+https://github.com/rust-lang/crates.io-index"
1611+checksum = "d937f95470b270ce8b8950207715d71aa8e153c0d44c6684d59397ed4949160a"
1612+dependencies = [
1613+ "serde",
1614+]
1615+
1616+[[package]]
1617+name = "js_option"
1618+version = "0.2.0"
1619+source = "registry+https://github.com/rust-lang/crates.io-index"
1620+checksum = "c7dd3e281add16813cf673bf74a32249b0aa0d1c8117519a17b3ada5e8552b3c"
1621+dependencies = [
1622+ "serde_core",
1623+]
1624+
1625+[[package]]
1626+name = "konst"
1627+version = "0.4.3"
1628+source = "registry+https://github.com/rust-lang/crates.io-index"
1629+checksum = "f660d5f887e3562f9ab6f4a14988795b694099d66b4f5dedc02d197ba9becb1d"
1630+dependencies = [
1631+ "const_panic",
1632+ "typewit",
1633+]
1634+
1635+[[package]]
1636+name = "language-tags"
1637+version = "0.3.2"
1638+source = "registry+https://github.com/rust-lang/crates.io-index"
1639+checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
1640+
1641+[[package]]
1642+name = "lazy_static"
1643+version = "1.5.0"
1644+source = "registry+https://github.com/rust-lang/crates.io-index"
1645+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1646+
1647+[[package]]
1648+name = "libc"
1649+version = "0.2.189"
1650+source = "registry+https://github.com/rust-lang/crates.io-index"
1651+checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
1652+
1653+[[package]]
1654+name = "libm"
1655+version = "0.2.16"
1656+source = "registry+https://github.com/rust-lang/crates.io-index"
1657+checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
1658+
1659+[[package]]
1660+name = "libsqlite3-sys"
1661+version = "0.35.0"
1662+source = "registry+https://github.com/rust-lang/crates.io-index"
1663+checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f"
1664+dependencies = [
1665+ "pkg-config",
1666+ "vcpkg",
1667+]
1668+
1669+[[package]]
1670+name = "linux-raw-sys"
1671+version = "0.12.1"
1672+source = "registry+https://github.com/rust-lang/crates.io-index"
1673+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
1674+
1675+[[package]]
1676+name = "litemap"
1677+version = "0.8.3"
1678+source = "registry+https://github.com/rust-lang/crates.io-index"
1679+checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae"
1680+
1681+[[package]]
1682+name = "lock_api"
1683+version = "0.4.14"
1684+source = "registry+https://github.com/rust-lang/crates.io-index"
1685+checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
1686+dependencies = [
1687+ "scopeguard",
1688+]
1689+
1690+[[package]]
1691+name = "log"
1692+version = "0.4.34"
1693+source = "registry+https://github.com/rust-lang/crates.io-index"
1694+checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
1695+
1696+[[package]]
1697+name = "loom"
1698+version = "0.7.2"
1699+source = "registry+https://github.com/rust-lang/crates.io-index"
1700+checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca"
1701+dependencies = [
1702+ "cfg-if",
1703+ "generator",
1704+ "scoped-tls",
1705+ "tracing",
1706+ "tracing-subscriber",
1707+]
1708+
1709+[[package]]
1710+name = "lru-slab"
1711+version = "0.1.2"
1712+source = "registry+https://github.com/rust-lang/crates.io-index"
1713+checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
1714+
1715+[[package]]
1716+name = "macltok"
1717+version = "0.1.0"
1718+dependencies = [
1719+ "futures-util",
1720+ "getrandom 0.2.17",
1721+ "getrandom 0.3.4",
1722+ "getrandom 0.4.3",
1723+ "http",
1724+ "imbl",
1725+ "matrix-sdk",
1726+ "matrix-sdk-crypto",
1727+ "matrix-sdk-store-encryption",
1728+ "matrix-sdk-ui",
1729+ "matrix_indexed_db_futures",
1730+ "mime",
1731+ "reqwest",
1732+ "ruma",
1733+ "serde",
1734+ "sha2",
1735+ "thiserror 2.0.20",
1736+ "tokio",
1737+ "tracing",
1738+ "url",
1739+ "uuid",
1740+]
1741+
1742+[[package]]
1743+name = "macltok-web"
1744+version = "0.1.0"
1745+dependencies = [
1746+ "futures-channel",
1747+ "js-sys",
1748+ "macltok",
1749+ "wasm-bindgen",
1750+ "wasm-bindgen-futures",
1751+ "wasm-bindgen-test",
1752+ "web-sys",
1753+]
1754+
1755+[[package]]
1756+name = "macroific"
1757+version = "2.0.0"
1758+source = "registry+https://github.com/rust-lang/crates.io-index"
1759+checksum = "89f276537b4b8f981bf1c13d79470980f71134b7bdcc5e6e911e910e556b0285"
1760+dependencies = [
1761+ "macroific_attr_parse 2.0.0",
1762+ "macroific_core 2.0.0",
1763+ "macroific_macro 2.0.0",
1764+]
1765+
1766+[[package]]
1767+name = "macroific"
1768+version = "3.0.1"
1769+source = "registry+https://github.com/rust-lang/crates.io-index"
1770+checksum = "c437abb3bf40939b00d1dff858ed2050d948bc230dee39546ed16795fcf10ec2"
1771+dependencies = [
1772+ "macroific_attr_parse 3.0.1",
1773+ "macroific_core 3.0.1",
1774+ "macroific_macro 3.0.1",
1775+]
1776+
1777+[[package]]
1778+name = "macroific_attr_parse"
1779+version = "2.0.0"
1780+source = "registry+https://github.com/rust-lang/crates.io-index"
1781+checksum = "ad4023761b45fcd36abed8fb7ae6a80456b0a38102d55e89a57d9a594a236be9"
1782+dependencies = [
1783+ "proc-macro2",
1784+ "quote",
1785+ "sealed 0.6.0",
1786+ "syn 2.0.119",
1787+]
1788+
1789+[[package]]
1790+name = "macroific_attr_parse"
1791+version = "3.0.1"
1792+source = "registry+https://github.com/rust-lang/crates.io-index"
1793+checksum = "aeb7a82ec1aa16094da719be18615d79cb2574b037358e4e6c6d96eedcff3a93"
1794+dependencies = [
1795+ "proc-macro2",
1796+ "quote",
1797+ "sealed 0.7.0",
1798+ "syn 3.0.5",
1799+]
1800+
1801+[[package]]
1802+name = "macroific_core"
1803+version = "2.0.0"
1804+source = "registry+https://github.com/rust-lang/crates.io-index"
1805+checksum = "d0a7594d3c14916fa55bef7e9d18c5daa9ed410dd37504251e4b75bbdeec33e3"
1806+dependencies = [
1807+ "proc-macro2",
1808+ "quote",
1809+ "sealed 0.6.0",
1810+ "syn 2.0.119",
1811+]
1812+
1813+[[package]]
1814+name = "macroific_core"
1815+version = "3.0.1"
1816+source = "registry+https://github.com/rust-lang/crates.io-index"
1817+checksum = "26c8e789484d2fa216eee9d5e0565ba80ccda389bcf0e111143a7b8f4792336e"
1818+dependencies = [
1819+ "proc-macro2",
1820+ "quote",
1821+ "sealed 0.7.0",
1822+ "syn 3.0.5",
1823+]
1824+
1825+[[package]]
1826+name = "macroific_macro"
1827+version = "2.0.0"
1828+source = "registry+https://github.com/rust-lang/crates.io-index"
1829+checksum = "4da6f2ed796261b0a74e2b52b42c693bb6dee1effba3a482c49592659f824b3b"
1830+dependencies = [
1831+ "macroific_attr_parse 2.0.0",
1832+ "macroific_core 2.0.0",
1833+ "proc-macro2",
1834+ "quote",
1835+ "syn 2.0.119",
1836+]
1837+
1838+[[package]]
1839+name = "macroific_macro"
1840+version = "3.0.1"
1841+source = "registry+https://github.com/rust-lang/crates.io-index"
1842+checksum = "e30d63cb102648965753f0d47a6ab171b1cbb1fb5c363f4784ea986782fc7b77"
1843+dependencies = [
1844+ "macroific_attr_parse 3.0.1",
1845+ "macroific_core 3.0.1",
1846+ "proc-macro2",
1847+ "quote",
1848+ "syn 3.0.5",
1849+]
1850+
1851+[[package]]
1852+name = "maplit"
1853+version = "1.0.2"
1854+source = "registry+https://github.com/rust-lang/crates.io-index"
1855+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
1856+
1857+[[package]]
1858+name = "markup5ever"
1859+version = "0.39.0"
1860+source = "registry+https://github.com/rust-lang/crates.io-index"
1861+checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"
1862+dependencies = [
1863+ "log",
1864+ "tendril",
1865+ "web_atoms",
1866+]
1867+
1868+[[package]]
1869+name = "matchers"
1870+version = "0.2.0"
1871+source = "registry+https://github.com/rust-lang/crates.io-index"
1872+checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
1873+dependencies = [
1874+ "regex-automata",
1875+]
1876+
1877+[[package]]
1878+name = "matrix-pickle"
1879+version = "0.2.3"
1880+source = "registry+https://github.com/rust-lang/crates.io-index"
1881+checksum = "b3d65d46b7379dd0afa4a42f9b2269821d31afdee0111b5e0d74e3bee03553a0"
1882+dependencies = [
1883+ "matrix-pickle-derive",
1884+ "thiserror 2.0.20",
1885+]
1886+
1887+[[package]]
1888+name = "matrix-pickle-derive"
1889+version = "0.2.3"
1890+source = "registry+https://github.com/rust-lang/crates.io-index"
1891+checksum = "414b5e4c34009f2bc3fe35dd018f25755ca38858096574841c7332f99e2c7e77"
1892+dependencies = [
1893+ "proc-macro-crate",
1894+ "proc-macro2",
1895+ "quote",
1896+ "syn 2.0.119",
1897+]
1898+
1899+[[package]]
1900+name = "matrix-sdk"
1901+version = "0.18.0"
1902+source = "registry+https://github.com/rust-lang/crates.io-index"
1903+checksum = "7083d580527511ac5d9369e03b9f2b20902e76949f1b3964051f978e4d3756ae"
1904+dependencies = [
1905+ "anymap2",
1906+ "aquamarine",
1907+ "as_variant",
1908+ "async-channel",
1909+ "async-once-cell",
1910+ "async-stream",
1911+ "async-trait",
1912+ "backon",
1913+ "bytes",
1914+ "bytesize",
1915+ "cfg-if",
1916+ "event-listener",
1917+ "eyeball",
1918+ "eyeball-im",
1919+ "futures-core",
1920+ "futures-util",
1921+ "gloo-timers",
1922+ "http",
1923+ "imbl",
1924+ "indexmap",
1925+ "itertools 0.14.0",
1926+ "js_int",
1927+ "language-tags",
1928+ "matrix-sdk-base",
1929+ "matrix-sdk-common",
1930+ "matrix-sdk-indexeddb",
1931+ "matrix-sdk-sqlite",
1932+ "mime",
1933+ "mime2ext",
1934+ "oauth2",
1935+ "oauth2-reqwest",
1936+ "percent-encoding",
1937+ "pin-project-lite",
1938+ "reqwest",
1939+ "ruma",
1940+ "rustls",
1941+ "rustls-native-certs",
1942+ "rustls-pki-types",
1943+ "serde",
1944+ "serde_html_form",
1945+ "serde_json",
1946+ "sha2",
1947+ "tempfile",
1948+ "thiserror 2.0.20",
1949+ "tokio",
1950+ "tokio-stream",
1951+ "tokio-util",
1952+ "tracing",
1953+ "url",
1954+ "urlencoding",
1955+ "vodozemac",
1956+ "webpki-roots",
1957+ "zeroize",
1958+]
1959+
1960+[[package]]
1961+name = "matrix-sdk-base"
1962+version = "0.18.0"
1963+source = "registry+https://github.com/rust-lang/crates.io-index"
1964+checksum = "e09a917eb1f7643d9d9a06b2f131e2ceb39df6910a7b830dac18bfd6db37a1f5"
1965+dependencies = [
1966+ "as_variant",
1967+ "async-trait",
1968+ "bitflags",
1969+ "decancer",
1970+ "eyeball",
1971+ "eyeball-im",
1972+ "futures-util",
1973+ "growable-bloom-filter",
1974+ "matrix-sdk-common",
1975+ "matrix-sdk-crypto",
1976+ "matrix-sdk-store-encryption",
1977+ "regex",
1978+ "ruma",
1979+ "serde",
1980+ "serde_json",
1981+ "thiserror 2.0.20",
1982+ "tokio",
1983+ "tracing",
1984+ "unicode-normalization",
1985+]
1986+
1987+[[package]]
1988+name = "matrix-sdk-common"
1989+version = "0.18.0"
1990+source = "registry+https://github.com/rust-lang/crates.io-index"
1991+checksum = "2b9d1e0fee0f090180ef9457034adc547e80de9e6e3eb2e63aaac68a8476f836"
1992+dependencies = [
1993+ "eyeball-im",
1994+ "futures-core",
1995+ "futures-executor",
1996+ "futures-util",
1997+ "gloo-timers",
1998+ "imbl",
1999+ "ruma",
2000+ "serde",
2001+ "serde_json",
2002+ "thiserror 2.0.20",
2003+ "tokio",
2004+ "tracing",
2005+ "tracing-subscriber",
2006+ "wasm-bindgen",
2007+ "wasm-bindgen-futures",
2008+ "web-sys",
2009+]
2010+
2011+[[package]]
2012+name = "matrix-sdk-crypto"
2013+version = "0.18.0"
2014+source = "registry+https://github.com/rust-lang/crates.io-index"
2015+checksum = "c54afd2a326f51c13a6ad44ec86315a688fffeb3f1e287fb343e0e1836a3bdaf"
2016+dependencies = [
2017+ "aes",
2018+ "aquamarine",
2019+ "as_variant",
2020+ "async-trait",
2021+ "bs58",
2022+ "byteorder",
2023+ "cfg-if",
2024+ "ctr",
2025+ "eyeball",
2026+ "futures-core",
2027+ "futures-util",
2028+ "hkdf",
2029+ "hmac",
2030+ "itertools 0.14.0",
2031+ "js_option",
2032+ "matrix-sdk-common",
2033+ "pbkdf2",
2034+ "rand 0.10.2",
2035+ "rmp-serde",
2036+ "ruma",
2037+ "serde",
2038+ "serde_json",
2039+ "sha2",
2040+ "subtle",
2041+ "thiserror 2.0.20",
2042+ "time",
2043+ "tokio",
2044+ "tokio-stream",
2045+ "tracing",
2046+ "ulid",
2047+ "url",
2048+ "vodozemac",
2049+ "zeroize",
2050+]
2051+
2052+[[package]]
2053+name = "matrix-sdk-indexeddb"
2054+version = "0.18.0"
2055+source = "registry+https://github.com/rust-lang/crates.io-index"
2056+checksum = "fef37395fffb7c916f7109ab0d16d8ca599403dd8164d08c0d966176b66ede47"
2057+dependencies = [
2058+ "async-trait",
2059+ "base64",
2060+ "futures-util",
2061+ "getrandom 0.4.3",
2062+ "gloo-utils",
2063+ "growable-bloom-filter",
2064+ "hkdf",
2065+ "js-sys",
2066+ "matrix-sdk-base",
2067+ "matrix-sdk-crypto",
2068+ "matrix-sdk-store-encryption",
2069+ "matrix_indexed_db_futures",
2070+ "rmp-serde",
2071+ "ruma",
2072+ "serde",
2073+ "serde-wasm-bindgen",
2074+ "serde_json",
2075+ "sha2",
2076+ "thiserror 2.0.20",
2077+ "tokio",
2078+ "tracing",
2079+ "uuid",
2080+ "wasm-bindgen",
2081+ "web-sys",
2082+ "zeroize",
2083+]
2084+
2085+[[package]]
2086+name = "matrix-sdk-sqlite"
2087+version = "0.18.0"
2088+source = "registry+https://github.com/rust-lang/crates.io-index"
2089+checksum = "a49133429271005745f8d5a05362d2ba6567274777250236799927ca30dc0670"
2090+dependencies = [
2091+ "as_variant",
2092+ "async-trait",
2093+ "deadpool",
2094+ "deadpool-sync",
2095+ "itertools 0.14.0",
2096+ "matrix-sdk-base",
2097+ "matrix-sdk-crypto",
2098+ "matrix-sdk-store-encryption",
2099+ "num_cpus",
2100+ "rmp-serde",
2101+ "ruma",
2102+ "rusqlite",
2103+ "serde",
2104+ "serde_json",
2105+ "serde_path_to_error",
2106+ "thiserror 2.0.20",
2107+ "tokio",
2108+ "tracing",
2109+ "vodozemac",
2110+ "zeroize",
2111+]
2112+
2113+[[package]]
2114+name = "matrix-sdk-store-encryption"
2115+version = "0.18.0"
2116+source = "registry+https://github.com/rust-lang/crates.io-index"
2117+checksum = "2f48f304e553fb6200b1d7d1f77a88fd182076d4b25624e9dbfa42d6a37de35e"
2118+dependencies = [
2119+ "base64",
2120+ "blake3",
2121+ "chacha20poly1305",
2122+ "getrandom 0.2.17",
2123+ "getrandom 0.4.3",
2124+ "hmac",
2125+ "pbkdf2",
2126+ "rand 0.10.2",
2127+ "rmp-serde",
2128+ "serde",
2129+ "serde_json",
2130+ "sha2",
2131+ "thiserror 2.0.20",
2132+ "zeroize",
2133+]
2134+
2135+[[package]]
2136+name = "matrix-sdk-ui"
2137+version = "0.18.0"
2138+source = "registry+https://github.com/rust-lang/crates.io-index"
2139+checksum = "6d1f2b8a8cf57164d7cee4eb61c0b9f074b2e11d766a9391b7db0b9f2cbd83d8"
2140+dependencies = [
2141+ "as_variant",
2142+ "async-rx",
2143+ "async-stream",
2144+ "async_cell",
2145+ "bitflags",
2146+ "chrono",
2147+ "emojis",
2148+ "eyeball",
2149+ "eyeball-im",
2150+ "eyeball-im-util",
2151+ "futures-core",
2152+ "futures-util",
2153+ "fuzzy-matcher",
2154+ "growable-bloom-filter",
2155+ "imbl",
2156+ "indexmap",
2157+ "itertools 0.14.0",
2158+ "matrix-sdk",
2159+ "matrix-sdk-base",
2160+ "matrix-sdk-common",
2161+ "mime",
2162+ "pin-project-lite",
2163+ "ruma",
2164+ "serde",
2165+ "serde_json",
2166+ "thiserror 2.0.20",
2167+ "tokio",
2168+ "tokio-stream",
2169+ "tracing",
2170+ "unicode-normalization",
2171+ "unicode-segmentation",
2172+]
2173+
2174+[[package]]
2175+name = "matrix_indexed_db_futures"
2176+version = "0.7.0"
2177+source = "registry+https://github.com/rust-lang/crates.io-index"
2178+checksum = "245ff6a224b4df7b0c90dda2dd5a6eb46112708d49e8bdd8b007fccb09fea8e4"
2179+dependencies = [
2180+ "accessory",
2181+ "cfg-if",
2182+ "delegate-display",
2183+ "derive_more 2.1.1",
2184+ "fancy_constructor",
2185+ "futures-core",
2186+ "js-sys",
2187+ "matrix_indexed_db_futures_macros_internal",
2188+ "sealed 0.6.0",
2189+ "serde",
2190+ "serde-wasm-bindgen",
2191+ "smallvec",
2192+ "thiserror 2.0.20",
2193+ "tokio",
2194+ "wasm-bindgen",
2195+ "wasm-bindgen-futures",
2196+ "wasm_evt_listener",
2197+ "web-sys",
2198+ "web-time",
2199+]
2200+
2201+[[package]]
2202+name = "matrix_indexed_db_futures_macros_internal"
2203+version = "1.0.0"
2204+source = "registry+https://github.com/rust-lang/crates.io-index"
2205+checksum = "b428aee5c0fe9e5babd29e99d289b7f64718c444989aac0442d1fd6d3e3f66d1"
2206+dependencies = [
2207+ "macroific 2.0.0",
2208+ "proc-macro2",
2209+ "quote",
2210+ "syn 2.0.119",
2211+]
2212+
2213+[[package]]
2214+name = "memchr"
2215+version = "2.8.3"
2216+source = "registry+https://github.com/rust-lang/crates.io-index"
2217+checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
2218+
2219+[[package]]
2220+name = "mime"
2221+version = "0.3.17"
2222+source = "registry+https://github.com/rust-lang/crates.io-index"
2223+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
2224+
2225+[[package]]
2226+name = "mime2ext"
2227+version = "0.1.54"
2228+source = "registry+https://github.com/rust-lang/crates.io-index"
2229+checksum = "cbf6f36070878c42c5233846cd3de24cf9016828fd47bc22957a687298bb21fc"
2230+
2231+[[package]]
2232+name = "minicov"
2233+version = "0.3.8"
2234+source = "registry+https://github.com/rust-lang/crates.io-index"
2235+checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d"
2236+dependencies = [
2237+ "cc",
2238+ "walkdir",
2239+]
2240+
2241+[[package]]
2242+name = "miniz_oxide"
2243+version = "0.9.1"
2244+source = "registry+https://github.com/rust-lang/crates.io-index"
2245+checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
2246+dependencies = [
2247+ "adler2",
2248+ "simd-adler32",
2249+]
2250+
2251+[[package]]
2252+name = "mio"
2253+version = "1.2.3"
2254+source = "registry+https://github.com/rust-lang/crates.io-index"
2255+checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8"
2256+dependencies = [
2257+ "libc",
2258+ "wasi",
2259+ "windows-sys 0.61.2",
2260+]
2261+
2262+[[package]]
2263+name = "new_debug_unreachable"
2264+version = "1.0.6"
2265+source = "registry+https://github.com/rust-lang/crates.io-index"
2266+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
2267+
2268+[[package]]
2269+name = "nu-ansi-term"
2270+version = "0.50.3"
2271+source = "registry+https://github.com/rust-lang/crates.io-index"
2272+checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
2273+dependencies = [
2274+ "windows-sys 0.61.2",
2275+]
2276+
2277+[[package]]
2278+name = "num-conv"
2279+version = "0.2.2"
2280+source = "registry+https://github.com/rust-lang/crates.io-index"
2281+checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
2282+
2283+[[package]]
2284+name = "num-traits"
2285+version = "0.2.19"
2286+source = "registry+https://github.com/rust-lang/crates.io-index"
2287+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
2288+dependencies = [
2289+ "autocfg",
2290+ "libm",
2291+]
2292+
2293+[[package]]
2294+name = "num_cpus"
2295+version = "1.17.0"
2296+source = "registry+https://github.com/rust-lang/crates.io-index"
2297+checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
2298+dependencies = [
2299+ "hermit-abi",
2300+ "libc",
2301+]
2302+
2303+[[package]]
2304+name = "oauth2"
2305+version = "5.0.0"
2306+source = "registry+https://github.com/rust-lang/crates.io-index"
2307+checksum = "51e219e79014df21a225b1860a479e2dcd7cbd9130f4defd4bd0e191ea31d67d"
2308+dependencies = [
2309+ "base64",
2310+ "chrono",
2311+ "getrandom 0.2.17",
2312+ "http",
2313+ "rand 0.8.8",
2314+ "serde",
2315+ "serde_json",
2316+ "serde_path_to_error",
2317+ "sha2",
2318+ "thiserror 1.0.69",
2319+ "url",
2320+]
2321+
2322+[[package]]
2323+name = "oauth2-reqwest"
2324+version = "0.1.0-alpha.3"
2325+source = "registry+https://github.com/rust-lang/crates.io-index"
2326+checksum = "234fb5c965bbce983ee5de636a7a51d6a3223da8067ea02f9ab2d2d78ac08be2"
2327+dependencies = [
2328+ "oauth2",
2329+ "reqwest",
2330+]
2331+
2332+[[package]]
2333+name = "once_cell"
2334+version = "1.21.4"
2335+source = "registry+https://github.com/rust-lang/crates.io-index"
2336+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
2337+
2338+[[package]]
2339+name = "oorandom"
2340+version = "11.1.5"
2341+source = "registry+https://github.com/rust-lang/crates.io-index"
2342+checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
2343+
2344+[[package]]
2345+name = "opaque-debug"
2346+version = "0.3.1"
2347+source = "registry+https://github.com/rust-lang/crates.io-index"
2348+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
2349+
2350+[[package]]
2351+name = "openssl-probe"
2352+version = "0.2.1"
2353+source = "registry+https://github.com/rust-lang/crates.io-index"
2354+checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
2355+
2356+[[package]]
2357+name = "parking"
2358+version = "2.2.1"
2359+source = "registry+https://github.com/rust-lang/crates.io-index"
2360+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
2361+
2362+[[package]]
2363+name = "parking_lot"
2364+version = "0.12.5"
2365+source = "registry+https://github.com/rust-lang/crates.io-index"
2366+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
2367+dependencies = [
2368+ "lock_api",
2369+ "parking_lot_core",
2370+]
2371+
2372+[[package]]
2373+name = "parking_lot_core"
2374+version = "0.9.12"
2375+source = "registry+https://github.com/rust-lang/crates.io-index"
2376+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
2377+dependencies = [
2378+ "cfg-if",
2379+ "libc",
2380+ "redox_syscall",
2381+ "smallvec",
2382+ "windows-link",
2383+]
2384+
2385+[[package]]
2386+name = "pbkdf2"
2387+version = "0.12.2"
2388+source = "registry+https://github.com/rust-lang/crates.io-index"
2389+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
2390+dependencies = [
2391+ "digest",
2392+]
2393+
2394+[[package]]
2395+name = "percent-encoding"
2396+version = "2.3.2"
2397+source = "registry+https://github.com/rust-lang/crates.io-index"
2398+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
2399+
2400+[[package]]
2401+name = "phf"
2402+version = "0.13.1"
2403+source = "registry+https://github.com/rust-lang/crates.io-index"
2404+checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
2405+dependencies = [
2406+ "phf_shared",
2407+ "serde",
2408+]
2409+
2410+[[package]]
2411+name = "phf_codegen"
2412+version = "0.13.1"
2413+source = "registry+https://github.com/rust-lang/crates.io-index"
2414+checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1"
2415+dependencies = [
2416+ "phf_generator",
2417+ "phf_shared",
2418+]
2419+
2420+[[package]]
2421+name = "phf_generator"
2422+version = "0.13.1"
2423+source = "registry+https://github.com/rust-lang/crates.io-index"
2424+checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
2425+dependencies = [
2426+ "fastrand",
2427+ "phf_shared",
2428+]
2429+
2430+[[package]]
2431+name = "phf_shared"
2432+version = "0.13.1"
2433+source = "registry+https://github.com/rust-lang/crates.io-index"
2434+checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
2435+dependencies = [
2436+ "siphasher",
2437+]
2438+
2439+[[package]]
2440+name = "pin-project-lite"
2441+version = "0.2.17"
2442+source = "registry+https://github.com/rust-lang/crates.io-index"
2443+checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
2444+
2445+[[package]]
2446+name = "pkcs8"
2447+version = "0.10.2"
2448+source = "registry+https://github.com/rust-lang/crates.io-index"
2449+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
2450+dependencies = [
2451+ "der",
2452+ "spki",
2453+]
2454+
2455+[[package]]
2456+name = "pkg-config"
2457+version = "0.3.34"
2458+source = "registry+https://github.com/rust-lang/crates.io-index"
2459+checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548"
2460+
2461+[[package]]
2462+name = "poly1305"
2463+version = "0.8.0"
2464+source = "registry+https://github.com/rust-lang/crates.io-index"
2465+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
2466+dependencies = [
2467+ "cpufeatures 0.2.17",
2468+ "opaque-debug",
2469+ "universal-hash",
2470+]
2471+
2472+[[package]]
2473+name = "potential_utf"
2474+version = "0.1.6"
2475+source = "registry+https://github.com/rust-lang/crates.io-index"
2476+checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661"
2477+dependencies = [
2478+ "zerovec",
2479+]
2480+
2481+[[package]]
2482+name = "powerfmt"
2483+version = "0.2.0"
2484+source = "registry+https://github.com/rust-lang/crates.io-index"
2485+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
2486+
2487+[[package]]
2488+name = "ppv-lite86"
2489+version = "0.2.21"
2490+source = "registry+https://github.com/rust-lang/crates.io-index"
2491+checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
2492+dependencies = [
2493+ "zerocopy",
2494+]
2495+
2496+[[package]]
2497+name = "precomputed-hash"
2498+version = "0.1.1"
2499+source = "registry+https://github.com/rust-lang/crates.io-index"
2500+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
2501+
2502+[[package]]
2503+name = "proc-macro-crate"
2504+version = "3.5.0"
2505+source = "registry+https://github.com/rust-lang/crates.io-index"
2506+checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
2507+dependencies = [
2508+ "toml_edit",
2509+]
2510+
2511+[[package]]
2512+name = "proc-macro-error-attr2"
2513+version = "2.0.0"
2514+source = "registry+https://github.com/rust-lang/crates.io-index"
2515+checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
2516+dependencies = [
2517+ "proc-macro2",
2518+ "quote",
2519+]
2520+
2521+[[package]]
2522+name = "proc-macro-error2"
2523+version = "2.0.1"
2524+source = "registry+https://github.com/rust-lang/crates.io-index"
2525+checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
2526+dependencies = [
2527+ "proc-macro-error-attr2",
2528+ "proc-macro2",
2529+ "quote",
2530+]
2531+
2532+[[package]]
2533+name = "proc-macro2"
2534+version = "1.0.107"
2535+source = "registry+https://github.com/rust-lang/crates.io-index"
2536+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
2537+dependencies = [
2538+ "unicode-ident",
2539+]
2540+
2541+[[package]]
2542+name = "prost"
2543+version = "0.14.4"
2544+source = "registry+https://github.com/rust-lang/crates.io-index"
2545+checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1"
2546+dependencies = [
2547+ "bytes",
2548+ "prost-derive",
2549+]
2550+
2551+[[package]]
2552+name = "prost-derive"
2553+version = "0.14.4"
2554+source = "registry+https://github.com/rust-lang/crates.io-index"
2555+checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf"
2556+dependencies = [
2557+ "anyhow",
2558+ "itertools 0.14.0",
2559+ "proc-macro2",
2560+ "quote",
2561+ "syn 2.0.119",
2562+]
2563+
2564+[[package]]
2565+name = "quinn"
2566+version = "0.11.11"
2567+source = "registry+https://github.com/rust-lang/crates.io-index"
2568+checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
2569+dependencies = [
2570+ "bytes",
2571+ "cfg_aliases",
2572+ "pin-project-lite",
2573+ "quinn-proto",
2574+ "quinn-udp",
2575+ "rustc-hash",
2576+ "rustls",
2577+ "socket2",
2578+ "thiserror 2.0.20",
2579+ "tokio",
2580+ "tracing",
2581+ "web-time",
2582+]
2583+
2584+[[package]]
2585+name = "quinn-proto"
2586+version = "0.11.17"
2587+source = "registry+https://github.com/rust-lang/crates.io-index"
2588+checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
2589+dependencies = [
2590+ "aws-lc-rs",
2591+ "bytes",
2592+ "getrandom 0.4.3",
2593+ "lru-slab",
2594+ "rand 0.10.2",
2595+ "rand_pcg",
2596+ "ring",
2597+ "rustc-hash",
2598+ "rustls",
2599+ "rustls-pki-types",
2600+ "slab",
2601+ "thiserror 2.0.20",
2602+ "tinyvec",
2603+ "tracing",
2604+ "web-time",
2605+]
2606+
2607+[[package]]
2608+name = "quinn-udp"
2609+version = "0.5.15"
2610+source = "registry+https://github.com/rust-lang/crates.io-index"
2611+checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694"
2612+dependencies = [
2613+ "cfg_aliases",
2614+ "libc",
2615+ "once_cell",
2616+ "socket2",
2617+ "tracing",
2618+ "windows-sys 0.61.2",
2619+]
2620+
2621+[[package]]
2622+name = "quote"
2623+version = "1.0.47"
2624+source = "registry+https://github.com/rust-lang/crates.io-index"
2625+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
2626+dependencies = [
2627+ "proc-macro2",
2628+]
2629+
2630+[[package]]
2631+name = "r-efi"
2632+version = "5.3.0"
2633+source = "registry+https://github.com/rust-lang/crates.io-index"
2634+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
2635+
2636+[[package]]
2637+name = "r-efi"
2638+version = "6.0.0"
2639+source = "registry+https://github.com/rust-lang/crates.io-index"
2640+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
2641+
2642+[[package]]
2643+name = "rand"
2644+version = "0.8.8"
2645+source = "registry+https://github.com/rust-lang/crates.io-index"
2646+checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c"
2647+dependencies = [
2648+ "libc",
2649+ "rand_chacha 0.3.1",
2650+ "rand_core 0.6.4",
2651+]
2652+
2653+[[package]]
2654+name = "rand"
2655+version = "0.9.5"
2656+source = "registry+https://github.com/rust-lang/crates.io-index"
2657+checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41"
2658+dependencies = [
2659+ "rand_chacha 0.9.0",
2660+ "rand_core 0.9.5",
2661+]
2662+
2663+[[package]]
2664+name = "rand"
2665+version = "0.10.2"
2666+source = "registry+https://github.com/rust-lang/crates.io-index"
2667+checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
2668+dependencies = [
2669+ "chacha20 0.10.2",
2670+ "getrandom 0.4.3",
2671+ "rand_core 0.10.1",
2672+]
2673+
2674+[[package]]
2675+name = "rand_chacha"
2676+version = "0.3.1"
2677+source = "registry+https://github.com/rust-lang/crates.io-index"
2678+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
2679+dependencies = [
2680+ "ppv-lite86",
2681+ "rand_core 0.6.4",
2682+]
2683+
2684+[[package]]
2685+name = "rand_chacha"
2686+version = "0.9.0"
2687+source = "registry+https://github.com/rust-lang/crates.io-index"
2688+checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
2689+dependencies = [
2690+ "ppv-lite86",
2691+ "rand_core 0.9.5",
2692+]
2693+
2694+[[package]]
2695+name = "rand_core"
2696+version = "0.6.4"
2697+source = "registry+https://github.com/rust-lang/crates.io-index"
2698+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2699+dependencies = [
2700+ "getrandom 0.2.17",
2701+]
2702+
2703+[[package]]
2704+name = "rand_core"
2705+version = "0.9.5"
2706+source = "registry+https://github.com/rust-lang/crates.io-index"
2707+checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
2708+dependencies = [
2709+ "getrandom 0.3.4",
2710+]
2711+
2712+[[package]]
2713+name = "rand_core"
2714+version = "0.10.1"
2715+source = "registry+https://github.com/rust-lang/crates.io-index"
2716+checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
2717+
2718+[[package]]
2719+name = "rand_pcg"
2720+version = "0.10.2"
2721+source = "registry+https://github.com/rust-lang/crates.io-index"
2722+checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
2723+dependencies = [
2724+ "rand_core 0.10.1",
2725+]
2726+
2727+[[package]]
2728+name = "rand_xoshiro"
2729+version = "0.7.0"
2730+source = "registry+https://github.com/rust-lang/crates.io-index"
2731+checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41"
2732+dependencies = [
2733+ "rand_core 0.9.5",
2734+]
2735+
2736+[[package]]
2737+name = "readlock"
2738+version = "0.1.11"
2739+source = "registry+https://github.com/rust-lang/crates.io-index"
2740+checksum = "6da6f291b23556edd9edaf655a0be2ad8ef8002ff5f1bca62b264f3f58b53f34"
2741+
2742+[[package]]
2743+name = "readlock-tokio"
2744+version = "0.1.6"
2745+source = "registry+https://github.com/rust-lang/crates.io-index"
2746+checksum = "fc7e264f9ec4f3d112e8e2f214e8e7cb5cf3b83278f3570b7e00bfe13d3bd8ff"
2747+dependencies = [
2748+ "tokio",
2749+]
2750+
2751+[[package]]
2752+name = "redox_syscall"
2753+version = "0.5.18"
2754+source = "registry+https://github.com/rust-lang/crates.io-index"
2755+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2756+dependencies = [
2757+ "bitflags",
2758+]
2759+
2760+[[package]]
2761+name = "regex"
2762+version = "1.13.1"
2763+source = "registry+https://github.com/rust-lang/crates.io-index"
2764+checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
2765+dependencies = [
2766+ "aho-corasick",
2767+ "memchr",
2768+ "regex-automata",
2769+ "regex-syntax",
2770+]
2771+
2772+[[package]]
2773+name = "regex-automata"
2774+version = "0.4.18"
2775+source = "registry+https://github.com/rust-lang/crates.io-index"
2776+checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
2777+dependencies = [
2778+ "aho-corasick",
2779+ "memchr",
2780+ "regex-syntax",
2781+]
2782+
2783+[[package]]
2784+name = "regex-syntax"
2785+version = "0.8.11"
2786+source = "registry+https://github.com/rust-lang/crates.io-index"
2787+checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
2788+
2789+[[package]]
2790+name = "reqwest"
2791+version = "0.13.4"
2792+source = "registry+https://github.com/rust-lang/crates.io-index"
2793+checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3"
2794+dependencies = [
2795+ "base64",
2796+ "bytes",
2797+ "futures-core",
2798+ "futures-util",
2799+ "h2",
2800+ "http",
2801+ "http-body",
2802+ "http-body-util",
2803+ "hyper",
2804+ "hyper-rustls",
2805+ "hyper-util",
2806+ "js-sys",
2807+ "log",
2808+ "percent-encoding",
2809+ "pin-project-lite",
2810+ "quinn",
2811+ "rustls",
2812+ "rustls-pki-types",
2813+ "rustls-platform-verifier",
2814+ "sync_wrapper",
2815+ "tokio",
2816+ "tokio-rustls",
2817+ "tokio-util",
2818+ "tower",
2819+ "tower-http",
2820+ "tower-service",
2821+ "url",
2822+ "wasm-bindgen",
2823+ "wasm-bindgen-futures",
2824+ "wasm-streams",
2825+ "web-sys",
2826+]
2827+
2828+[[package]]
2829+name = "ring"
2830+version = "0.17.14"
2831+source = "registry+https://github.com/rust-lang/crates.io-index"
2832+checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
2833+dependencies = [
2834+ "cc",
2835+ "cfg-if",
2836+ "getrandom 0.2.17",
2837+ "libc",
2838+ "untrusted",
2839+ "windows-sys 0.52.0",
2840+]
2841+
2842+[[package]]
2843+name = "rmp"
2844+version = "0.8.15"
2845+source = "registry+https://github.com/rust-lang/crates.io-index"
2846+checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c"
2847+dependencies = [
2848+ "num-traits",
2849+]
2850+
2851+[[package]]
2852+name = "rmp-serde"
2853+version = "1.3.1"
2854+source = "registry+https://github.com/rust-lang/crates.io-index"
2855+checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155"
2856+dependencies = [
2857+ "rmp",
2858+ "serde",
2859+]
2860+
2861+[[package]]
2862+name = "ruma"
2863+version = "0.16.0"
2864+source = "registry+https://github.com/rust-lang/crates.io-index"
2865+checksum = "ee4fe5bfacdb0e95e733da3b6c37d98edf46447a4a8e8dea824e0da266d8ad59"
2866+dependencies = [
2867+ "assign",
2868+ "js_int",
2869+ "js_option",
2870+ "ruma-client-api",
2871+ "ruma-common",
2872+ "ruma-events",
2873+ "ruma-html",
2874+ "web-time",
2875+]
2876+
2877+[[package]]
2878+name = "ruma-client-api"
2879+version = "0.24.0"
2880+source = "registry+https://github.com/rust-lang/crates.io-index"
2881+checksum = "bf7ca43a888ca569168d7e3901f4dd14a777b860bb19f4c08e35414162eb261c"
2882+dependencies = [
2883+ "as_variant",
2884+ "assign",
2885+ "bytes",
2886+ "http",
2887+ "js_int",
2888+ "js_option",
2889+ "maplit",
2890+ "ruma-common",
2891+ "ruma-events",
2892+ "serde",
2893+ "serde_html_form",
2894+ "serde_json",
2895+ "thiserror 2.0.20",
2896+ "url",
2897+ "web-time",
2898+]
2899+
2900+[[package]]
2901+name = "ruma-common"
2902+version = "0.19.0"
2903+source = "registry+https://github.com/rust-lang/crates.io-index"
2904+checksum = "2c3b4f00112791b490acce57df1ce3eb3f88899b045bebcff8a29f75369640cc"
2905+dependencies = [
2906+ "as_variant",
2907+ "base64",
2908+ "bytes",
2909+ "date_header",
2910+ "form_urlencoded",
2911+ "getrandom 0.4.3",
2912+ "http",
2913+ "indexmap",
2914+ "js_int",
2915+ "konst",
2916+ "percent-encoding",
2917+ "rand 0.10.2",
2918+ "regex",
2919+ "ruma-identifiers-validation",
2920+ "ruma-macros",
2921+ "serde",
2922+ "serde_html_form",
2923+ "serde_json",
2924+ "thiserror 2.0.20",
2925+ "time",
2926+ "tracing",
2927+ "url",
2928+ "uuid",
2929+ "web-time",
2930+ "wildmatch",
2931+ "zeroize",
2932+]
2933+
2934+[[package]]
2935+name = "ruma-events"
2936+version = "0.34.0"
2937+source = "registry+https://github.com/rust-lang/crates.io-index"
2938+checksum = "85d2f90830fc131691349b96a69ff53444eb6c3e8dc7869c77961b43cfaf3344"
2939+dependencies = [
2940+ "as_variant",
2941+ "indexmap",
2942+ "js_int",
2943+ "js_option",
2944+ "ruma-common",
2945+ "ruma-html",
2946+ "ruma-macros",
2947+ "serde",
2948+ "serde_json",
2949+ "thiserror 2.0.20",
2950+ "tracing",
2951+ "web-time",
2952+ "wildmatch",
2953+ "zeroize",
2954+]
2955+
2956+[[package]]
2957+name = "ruma-html"
2958+version = "0.8.0"
2959+source = "registry+https://github.com/rust-lang/crates.io-index"
2960+checksum = "48d33a944650f4bbd2188dd204d39dd87a9a1498f14b3a13252910c90ed7cd43"
2961+dependencies = [
2962+ "as_variant",
2963+ "html5ever",
2964+ "tracing",
2965+ "wildmatch",
2966+]
2967+
2968+[[package]]
2969+name = "ruma-identifiers-validation"
2970+version = "0.12.1"
2971+source = "registry+https://github.com/rust-lang/crates.io-index"
2972+checksum = "9d6cff00317675f487c4e7ccfb18875a14c5a14867b51d13f2a826053f03c432"
2973+dependencies = [
2974+ "js_int",
2975+ "thiserror 2.0.20",
2976+]
2977+
2978+[[package]]
2979+name = "ruma-macros"
2980+version = "0.19.0"
2981+source = "registry+https://github.com/rust-lang/crates.io-index"
2982+checksum = "c8cfb39eaa9b9fd389126ff941e060b496add5cbbfef559d80c46e571dda459c"
2983+dependencies = [
2984+ "as_variant",
2985+ "cfg-if",
2986+ "proc-macro-crate",
2987+ "proc-macro2",
2988+ "quote",
2989+ "ruma-identifiers-validation",
2990+ "serde",
2991+ "syn 2.0.119",
2992+ "toml",
2993+]
2994+
2995+[[package]]
2996+name = "rusqlite"
2997+version = "0.37.0"
2998+source = "registry+https://github.com/rust-lang/crates.io-index"
2999+checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f"
3000+dependencies = [
3001+ "bitflags",
3002+ "fallible-iterator",
3003+ "fallible-streaming-iterator",
3004+ "hashlink",
3005+ "libsqlite3-sys",
3006+ "smallvec",
3007+]
3008+
3009+[[package]]
3010+name = "rustc-hash"
3011+version = "2.1.3"
3012+source = "registry+https://github.com/rust-lang/crates.io-index"
3013+checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d"
3014+
3015+[[package]]
3016+name = "rustc_version"
3017+version = "0.4.1"
3018+source = "registry+https://github.com/rust-lang/crates.io-index"
3019+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
3020+dependencies = [
3021+ "semver",
3022+]
3023+
3024+[[package]]
3025+name = "rustix"
3026+version = "1.1.4"
3027+source = "registry+https://github.com/rust-lang/crates.io-index"
3028+checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
3029+dependencies = [
3030+ "bitflags",
3031+ "errno",
3032+ "libc",
3033+ "linux-raw-sys",
3034+ "windows-sys 0.61.2",
3035+]
3036+
3037+[[package]]
3038+name = "rustls"
3039+version = "0.23.44"
3040+source = "registry+https://github.com/rust-lang/crates.io-index"
3041+checksum = "6725596c3f2c3a0aef021139e145d4eafe314a6623e4680ca83852b2c67ab2ba"
3042+dependencies = [
3043+ "aws-lc-rs",
3044+ "log",
3045+ "once_cell",
3046+ "rustls-pki-types",
3047+ "rustls-webpki",
3048+ "subtle",
3049+ "zeroize",
3050+]
3051+
3052+[[package]]
3053+name = "rustls-native-certs"
3054+version = "0.8.4"
3055+source = "registry+https://github.com/rust-lang/crates.io-index"
3056+checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d"
3057+dependencies = [
3058+ "openssl-probe",
3059+ "rustls-pki-types",
3060+ "schannel",
3061+ "security-framework",
3062+]
3063+
3064+[[package]]
3065+name = "rustls-pki-types"
3066+version = "1.15.1"
3067+source = "registry+https://github.com/rust-lang/crates.io-index"
3068+checksum = "2f4925028c7eb5d1fcdaf196971378ed9d2c1c4efc7dc5d011256f76c99c0a96"
3069+dependencies = [
3070+ "web-time",
3071+ "zeroize",
3072+]
3073+
3074+[[package]]
3075+name = "rustls-platform-verifier"
3076+version = "0.7.0"
3077+source = "registry+https://github.com/rust-lang/crates.io-index"
3078+checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0"
3079+dependencies = [
3080+ "core-foundation",
3081+ "core-foundation-sys",
3082+ "jni",
3083+ "log",
3084+ "once_cell",
3085+ "rustls",
3086+ "rustls-native-certs",
3087+ "rustls-platform-verifier-android",
3088+ "rustls-webpki",
3089+ "security-framework",
3090+ "security-framework-sys",
3091+ "webpki-root-certs",
3092+ "windows-sys 0.61.2",
3093+]
3094+
3095+[[package]]
3096+name = "rustls-platform-verifier-android"
3097+version = "0.1.1"
3098+source = "registry+https://github.com/rust-lang/crates.io-index"
3099+checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
3100+
3101+[[package]]
3102+name = "rustls-webpki"
3103+version = "0.103.15"
3104+source = "registry+https://github.com/rust-lang/crates.io-index"
3105+checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2"
3106+dependencies = [
3107+ "aws-lc-rs",
3108+ "ring",
3109+ "rustls-pki-types",
3110+ "untrusted",
3111+]
3112+
3113+[[package]]
3114+name = "rustversion"
3115+version = "1.0.23"
3116+source = "registry+https://github.com/rust-lang/crates.io-index"
3117+checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
3118+
3119+[[package]]
3120+name = "same-file"
3121+version = "1.0.6"
3122+source = "registry+https://github.com/rust-lang/crates.io-index"
3123+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
3124+dependencies = [
3125+ "winapi-util",
3126+]
3127+
3128+[[package]]
3129+name = "schannel"
3130+version = "0.1.29"
3131+source = "registry+https://github.com/rust-lang/crates.io-index"
3132+checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939"
3133+dependencies = [
3134+ "windows-sys 0.61.2",
3135+]
3136+
3137+[[package]]
3138+name = "scoped-tls"
3139+version = "1.0.1"
3140+source = "registry+https://github.com/rust-lang/crates.io-index"
3141+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
3142+
3143+[[package]]
3144+name = "scopeguard"
3145+version = "1.2.0"
3146+source = "registry+https://github.com/rust-lang/crates.io-index"
3147+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
3148+
3149+[[package]]
3150+name = "sealed"
3151+version = "0.6.0"
3152+source = "registry+https://github.com/rust-lang/crates.io-index"
3153+checksum = "22f968c5ea23d555e670b449c1c5e7b2fc399fdaec1d304a17cd48e288abc107"
3154+dependencies = [
3155+ "proc-macro2",
3156+ "quote",
3157+ "syn 2.0.119",
3158+]
3159+
3160+[[package]]
3161+name = "sealed"
3162+version = "0.7.0"
3163+source = "registry+https://github.com/rust-lang/crates.io-index"
3164+checksum = "9b68e2ea526d9fb32f23ca8894fb5da9e743f34c2f41701f0501dc8a25c4b343"
3165+dependencies = [
3166+ "proc-macro2",
3167+ "quote",
3168+ "syn 3.0.5",
3169+]
3170+
3171+[[package]]
3172+name = "security-framework"
3173+version = "3.7.0"
3174+source = "registry+https://github.com/rust-lang/crates.io-index"
3175+checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d"
3176+dependencies = [
3177+ "bitflags",
3178+ "core-foundation",
3179+ "core-foundation-sys",
3180+ "libc",
3181+ "security-framework-sys",
3182+]
3183+
3184+[[package]]
3185+name = "security-framework-sys"
3186+version = "2.17.0"
3187+source = "registry+https://github.com/rust-lang/crates.io-index"
3188+checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3"
3189+dependencies = [
3190+ "core-foundation-sys",
3191+ "libc",
3192+]
3193+
3194+[[package]]
3195+name = "semver"
3196+version = "1.0.28"
3197+source = "registry+https://github.com/rust-lang/crates.io-index"
3198+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
3199+
3200+[[package]]
3201+name = "serde"
3202+version = "1.0.229"
3203+source = "registry+https://github.com/rust-lang/crates.io-index"
3204+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
3205+dependencies = [
3206+ "serde_core",
3207+ "serde_derive",
3208+]
3209+
3210+[[package]]
3211+name = "serde-wasm-bindgen"
3212+version = "0.6.5"
3213+source = "registry+https://github.com/rust-lang/crates.io-index"
3214+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
3215+dependencies = [
3216+ "js-sys",
3217+ "serde",
3218+ "wasm-bindgen",
3219+]
3220+
3221+[[package]]
3222+name = "serde_bytes"
3223+version = "0.11.19"
3224+source = "registry+https://github.com/rust-lang/crates.io-index"
3225+checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8"
3226+dependencies = [
3227+ "serde",
3228+ "serde_core",
3229+]
3230+
3231+[[package]]
3232+name = "serde_core"
3233+version = "1.0.229"
3234+source = "registry+https://github.com/rust-lang/crates.io-index"
3235+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
3236+dependencies = [
3237+ "serde_derive",
3238+]
3239+
3240+[[package]]
3241+name = "serde_derive"
3242+version = "1.0.229"
3243+source = "registry+https://github.com/rust-lang/crates.io-index"
3244+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
3245+dependencies = [
3246+ "proc-macro2",
3247+ "quote",
3248+ "syn 3.0.5",
3249+]
3250+
3251+[[package]]
3252+name = "serde_html_form"
3253+version = "0.4.1"
3254+source = "registry+https://github.com/rust-lang/crates.io-index"
3255+checksum = "8f0346d7a342ab90f405cfc08f25d15075f944f42fcabbc5eac923829fa6d228"
3256+dependencies = [
3257+ "form_urlencoded",
3258+ "indexmap",
3259+ "itoa",
3260+ "serde_core",
3261+ "zmij",
3262+]
3263+
3264+[[package]]
3265+name = "serde_json"
3266+version = "1.0.151"
3267+source = "registry+https://github.com/rust-lang/crates.io-index"
3268+checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
3269+dependencies = [
3270+ "itoa",
3271+ "memchr",
3272+ "serde",
3273+ "serde_core",
3274+ "zmij",
3275+]
3276+
3277+[[package]]
3278+name = "serde_path_to_error"
3279+version = "0.1.20"
3280+source = "registry+https://github.com/rust-lang/crates.io-index"
3281+checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"
3282+dependencies = [
3283+ "itoa",
3284+ "serde",
3285+ "serde_core",
3286+]
3287+
3288+[[package]]
3289+name = "serde_spanned"
3290+version = "1.1.1"
3291+source = "registry+https://github.com/rust-lang/crates.io-index"
3292+checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
3293+dependencies = [
3294+ "serde_core",
3295+]
3296+
3297+[[package]]
3298+name = "sha2"
3299+version = "0.10.9"
3300+source = "registry+https://github.com/rust-lang/crates.io-index"
3301+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
3302+dependencies = [
3303+ "cfg-if",
3304+ "cpufeatures 0.2.17",
3305+ "digest",
3306+]
3307+
3308+[[package]]
3309+name = "sharded-slab"
3310+version = "0.1.7"
3311+source = "registry+https://github.com/rust-lang/crates.io-index"
3312+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
3313+dependencies = [
3314+ "lazy_static",
3315+]
3316+
3317+[[package]]
3318+name = "shlex"
3319+version = "2.0.1"
3320+source = "registry+https://github.com/rust-lang/crates.io-index"
3321+checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
3322+
3323+[[package]]
3324+name = "signature"
3325+version = "2.2.0"
3326+source = "registry+https://github.com/rust-lang/crates.io-index"
3327+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
3328+dependencies = [
3329+ "rand_core 0.6.4",
3330+]
3331+
3332+[[package]]
3333+name = "simd-adler32"
3334+version = "0.3.10"
3335+source = "registry+https://github.com/rust-lang/crates.io-index"
3336+checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
3337+
3338+[[package]]
3339+name = "simd_cesu8"
3340+version = "1.2.0"
3341+source = "registry+https://github.com/rust-lang/crates.io-index"
3342+checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520"
3343+dependencies = [
3344+ "rustc_version",
3345+ "simdutf8",
3346+]
3347+
3348+[[package]]
3349+name = "simdutf8"
3350+version = "0.1.5"
3351+source = "registry+https://github.com/rust-lang/crates.io-index"
3352+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
3353+
3354+[[package]]
3355+name = "siphasher"
3356+version = "1.0.3"
3357+source = "registry+https://github.com/rust-lang/crates.io-index"
3358+checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"
3359+
3360+[[package]]
3361+name = "slab"
3362+version = "0.4.12"
3363+source = "registry+https://github.com/rust-lang/crates.io-index"
3364+checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
3365+
3366+[[package]]
3367+name = "smallvec"
3368+version = "1.16.0"
3369+source = "registry+https://github.com/rust-lang/crates.io-index"
3370+checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f"
3371+dependencies = [
3372+ "serde",
3373+]
3374+
3375+[[package]]
3376+name = "socket2"
3377+version = "0.6.5"
3378+source = "registry+https://github.com/rust-lang/crates.io-index"
3379+checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
3380+dependencies = [
3381+ "libc",
3382+ "windows-sys 0.61.2",
3383+]
3384+
3385+[[package]]
3386+name = "spki"
3387+version = "0.7.3"
3388+source = "registry+https://github.com/rust-lang/crates.io-index"
3389+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
3390+dependencies = [
3391+ "base64ct",
3392+ "der",
3393+]
3394+
3395+[[package]]
3396+name = "stable_deref_trait"
3397+version = "1.2.1"
3398+source = "registry+https://github.com/rust-lang/crates.io-index"
3399+checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
3400+
3401+[[package]]
3402+name = "string_cache"
3403+version = "0.9.0"
3404+source = "registry+https://github.com/rust-lang/crates.io-index"
3405+checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
3406+dependencies = [
3407+ "new_debug_unreachable",
3408+ "parking_lot",
3409+ "phf_shared",
3410+ "precomputed-hash",
3411+]
3412+
3413+[[package]]
3414+name = "string_cache_codegen"
3415+version = "0.6.1"
3416+source = "registry+https://github.com/rust-lang/crates.io-index"
3417+checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
3418+dependencies = [
3419+ "phf_generator",
3420+ "phf_shared",
3421+ "proc-macro2",
3422+ "quote",
3423+]
3424+
3425+[[package]]
3426+name = "subtle"
3427+version = "2.6.1"
3428+source = "registry+https://github.com/rust-lang/crates.io-index"
3429+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
3430+
3431+[[package]]
3432+name = "syn"
3433+version = "1.0.109"
3434+source = "registry+https://github.com/rust-lang/crates.io-index"
3435+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
3436+dependencies = [
3437+ "proc-macro2",
3438+ "quote",
3439+ "unicode-ident",
3440+]
3441+
3442+[[package]]
3443+name = "syn"
3444+version = "2.0.119"
3445+source = "registry+https://github.com/rust-lang/crates.io-index"
3446+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
3447+dependencies = [
3448+ "proc-macro2",
3449+ "quote",
3450+ "unicode-ident",
3451+]
3452+
3453+[[package]]
3454+name = "syn"
3455+version = "3.0.5"
3456+source = "registry+https://github.com/rust-lang/crates.io-index"
3457+checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"
3458+dependencies = [
3459+ "proc-macro2",
3460+ "quote",
3461+ "unicode-ident",
3462+]
3463+
3464+[[package]]
3465+name = "sync_wrapper"
3466+version = "1.0.2"
3467+source = "registry+https://github.com/rust-lang/crates.io-index"
3468+checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
3469+dependencies = [
3470+ "futures-core",
3471+]
3472+
3473+[[package]]
3474+name = "synstructure"
3475+version = "0.13.2"
3476+source = "registry+https://github.com/rust-lang/crates.io-index"
3477+checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
3478+dependencies = [
3479+ "proc-macro2",
3480+ "quote",
3481+ "syn 2.0.119",
3482+]
3483+
3484+[[package]]
3485+name = "tempfile"
3486+version = "3.27.0"
3487+source = "registry+https://github.com/rust-lang/crates.io-index"
3488+checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
3489+dependencies = [
3490+ "fastrand",
3491+ "once_cell",
3492+ "rustix",
3493+ "windows-sys 0.61.2",
3494+]
3495+
3496+[[package]]
3497+name = "tendril"
3498+version = "0.5.1"
3499+source = "registry+https://github.com/rust-lang/crates.io-index"
3500+checksum = "5fed54709c5b3a53d09bb1c113ea4f5ceafd1e772ddcb0030a82e1d56c087b08"
3501+dependencies = [
3502+ "new_debug_unreachable",
3503+]
3504+
3505+[[package]]
3506+name = "thiserror"
3507+version = "1.0.69"
3508+source = "registry+https://github.com/rust-lang/crates.io-index"
3509+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
3510+dependencies = [
3511+ "thiserror-impl 1.0.69",
3512+]
3513+
3514+[[package]]
3515+name = "thiserror"
3516+version = "2.0.20"
3517+source = "registry+https://github.com/rust-lang/crates.io-index"
3518+checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
3519+dependencies = [
3520+ "thiserror-impl 2.0.20",
3521+]
3522+
3523+[[package]]
3524+name = "thiserror-impl"
3525+version = "1.0.69"
3526+source = "registry+https://github.com/rust-lang/crates.io-index"
3527+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3528+dependencies = [
3529+ "proc-macro2",
3530+ "quote",
3531+ "syn 2.0.119",
3532+]
3533+
3534+[[package]]
3535+name = "thiserror-impl"
3536+version = "2.0.20"
3537+source = "registry+https://github.com/rust-lang/crates.io-index"
3538+checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
3539+dependencies = [
3540+ "proc-macro2",
3541+ "quote",
3542+ "syn 3.0.5",
3543+]
3544+
3545+[[package]]
3546+name = "thread_local"
3547+version = "1.1.10"
3548+source = "registry+https://github.com/rust-lang/crates.io-index"
3549+checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070"
3550+dependencies = [
3551+ "cfg-if",
3552+]
3553+
3554+[[package]]
3555+name = "time"
3556+version = "0.3.55"
3557+source = "registry+https://github.com/rust-lang/crates.io-index"
3558+checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134"
3559+dependencies = [
3560+ "deranged",
3561+ "num-conv",
3562+ "powerfmt",
3563+ "serde_core",
3564+ "time-core",
3565+ "time-macros",
3566+]
3567+
3568+[[package]]
3569+name = "time-core"
3570+version = "0.1.9"
3571+source = "registry+https://github.com/rust-lang/crates.io-index"
3572+checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109"
3573+
3574+[[package]]
3575+name = "time-macros"
3576+version = "0.2.32"
3577+source = "registry+https://github.com/rust-lang/crates.io-index"
3578+checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85"
3579+dependencies = [
3580+ "num-conv",
3581+ "time-core",
3582+]
3583+
3584+[[package]]
3585+name = "tinystr"
3586+version = "0.8.4"
3587+source = "registry+https://github.com/rust-lang/crates.io-index"
3588+checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643"
3589+dependencies = [
3590+ "displaydoc",
3591+ "zerovec",
3592+]
3593+
3594+[[package]]
3595+name = "tinyvec"
3596+version = "1.13.2"
3597+source = "registry+https://github.com/rust-lang/crates.io-index"
3598+checksum = "4cf0ded5c4e56918d8f8a339e1bb67d038d3bc6d144ac407904015ba2e4cde9b"
3599+dependencies = [
3600+ "tinyvec_macros",
3601+]
3602+
3603+[[package]]
3604+name = "tinyvec_macros"
3605+version = "0.1.1"
3606+source = "registry+https://github.com/rust-lang/crates.io-index"
3607+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
3608+
3609+[[package]]
3610+name = "tokio"
3611+version = "1.53.1"
3612+source = "registry+https://github.com/rust-lang/crates.io-index"
3613+checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed"
3614+dependencies = [
3615+ "bytes",
3616+ "libc",
3617+ "mio",
3618+ "pin-project-lite",
3619+ "socket2",
3620+ "tokio-macros",
3621+ "windows-sys 0.61.2",
3622+]
3623+
3624+[[package]]
3625+name = "tokio-macros"
3626+version = "2.7.2"
3627+source = "registry+https://github.com/rust-lang/crates.io-index"
3628+checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
3629+dependencies = [
3630+ "proc-macro2",
3631+ "quote",
3632+ "syn 3.0.5",
3633+]
3634+
3635+[[package]]
3636+name = "tokio-rustls"
3637+version = "0.26.5"
3638+source = "registry+https://github.com/rust-lang/crates.io-index"
3639+checksum = "b0c85f2c3ef0b1cd58b36682f4b17aaa995f0e5db534d85692b4903abce21f67"
3640+dependencies = [
3641+ "rustls",
3642+ "tokio",
3643+]
3644+
3645+[[package]]
3646+name = "tokio-stream"
3647+version = "0.1.19"
3648+source = "registry+https://github.com/rust-lang/crates.io-index"
3649+checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b"
3650+dependencies = [
3651+ "futures-core",
3652+ "pin-project-lite",
3653+ "tokio",
3654+ "tokio-util",
3655+]
3656+
3657+[[package]]
3658+name = "tokio-util"
3659+version = "0.7.19"
3660+source = "registry+https://github.com/rust-lang/crates.io-index"
3661+checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52"
3662+dependencies = [
3663+ "bytes",
3664+ "futures-core",
3665+ "futures-sink",
3666+ "libc",
3667+ "pin-project-lite",
3668+ "tokio",
3669+]
3670+
3671+[[package]]
3672+name = "toml"
3673+version = "1.1.5+spec-1.1.0"
3674+source = "registry+https://github.com/rust-lang/crates.io-index"
3675+checksum = "12c0ba9680044b4ce98d391a62094047eada0d64860b80166c39f4a6b5640785"
3676+dependencies = [
3677+ "serde_core",
3678+ "serde_spanned",
3679+ "toml_datetime",
3680+ "toml_parser",
3681+ "winnow",
3682+]
3683+
3684+[[package]]
3685+name = "toml_datetime"
3686+version = "1.1.1+spec-1.1.0"
3687+source = "registry+https://github.com/rust-lang/crates.io-index"
3688+checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
3689+dependencies = [
3690+ "serde_core",
3691+]
3692+
3693+[[package]]
3694+name = "toml_edit"
3695+version = "0.25.13+spec-1.1.0"
3696+source = "registry+https://github.com/rust-lang/crates.io-index"
3697+checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b"
3698+dependencies = [
3699+ "indexmap",
3700+ "toml_datetime",
3701+ "toml_parser",
3702+ "winnow",
3703+]
3704+
3705+[[package]]
3706+name = "toml_parser"
3707+version = "1.1.3+spec-1.1.0"
3708+source = "registry+https://github.com/rust-lang/crates.io-index"
3709+checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
3710+dependencies = [
3711+ "winnow",
3712+]
3713+
3714+[[package]]
3715+name = "tower"
3716+version = "0.5.3"
3717+source = "registry+https://github.com/rust-lang/crates.io-index"
3718+checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
3719+dependencies = [
3720+ "futures-core",
3721+ "futures-util",
3722+ "pin-project-lite",
3723+ "sync_wrapper",
3724+ "tokio",
3725+ "tower-layer",
3726+ "tower-service",
3727+]
3728+
3729+[[package]]
3730+name = "tower-http"
3731+version = "0.6.11"
3732+source = "registry+https://github.com/rust-lang/crates.io-index"
3733+checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840"
3734+dependencies = [
3735+ "async-compression",
3736+ "bitflags",
3737+ "bytes",
3738+ "futures-core",
3739+ "futures-util",
3740+ "http",
3741+ "http-body",
3742+ "http-body-util",
3743+ "pin-project-lite",
3744+ "tokio",
3745+ "tokio-util",
3746+ "tower",
3747+ "tower-layer",
3748+ "tower-service",
3749+ "url",
3750+]
3751+
3752+[[package]]
3753+name = "tower-layer"
3754+version = "0.3.3"
3755+source = "registry+https://github.com/rust-lang/crates.io-index"
3756+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
3757+
3758+[[package]]
3759+name = "tower-service"
3760+version = "0.3.3"
3761+source = "registry+https://github.com/rust-lang/crates.io-index"
3762+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
3763+
3764+[[package]]
3765+name = "tracing"
3766+version = "0.1.44"
3767+source = "registry+https://github.com/rust-lang/crates.io-index"
3768+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
3769+dependencies = [
3770+ "pin-project-lite",
3771+ "tracing-attributes",
3772+ "tracing-core",
3773+]
3774+
3775+[[package]]
3776+name = "tracing-attributes"
3777+version = "0.1.31"
3778+source = "registry+https://github.com/rust-lang/crates.io-index"
3779+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
3780+dependencies = [
3781+ "proc-macro2",
3782+ "quote",
3783+ "syn 2.0.119",
3784+]
3785+
3786+[[package]]
3787+name = "tracing-core"
3788+version = "0.1.36"
3789+source = "registry+https://github.com/rust-lang/crates.io-index"
3790+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
3791+dependencies = [
3792+ "once_cell",
3793+ "valuable",
3794+]
3795+
3796+[[package]]
3797+name = "tracing-log"
3798+version = "0.2.0"
3799+source = "registry+https://github.com/rust-lang/crates.io-index"
3800+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
3801+dependencies = [
3802+ "log",
3803+ "once_cell",
3804+ "tracing-core",
3805+]
3806+
3807+[[package]]
3808+name = "tracing-subscriber"
3809+version = "0.3.23"
3810+source = "registry+https://github.com/rust-lang/crates.io-index"
3811+checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319"
3812+dependencies = [
3813+ "matchers",
3814+ "nu-ansi-term",
3815+ "once_cell",
3816+ "regex-automata",
3817+ "sharded-slab",
3818+ "smallvec",
3819+ "thread_local",
3820+ "tracing",
3821+ "tracing-core",
3822+ "tracing-log",
3823+]
3824+
3825+[[package]]
3826+name = "try-lock"
3827+version = "0.2.5"
3828+source = "registry+https://github.com/rust-lang/crates.io-index"
3829+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
3830+
3831+[[package]]
3832+name = "typenum"
3833+version = "1.20.1"
3834+source = "registry+https://github.com/rust-lang/crates.io-index"
3835+checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
3836+
3837+[[package]]
3838+name = "typewit"
3839+version = "1.15.2"
3840+source = "registry+https://github.com/rust-lang/crates.io-index"
3841+checksum = "214ca0b2191785cbc06209b9ca1861e048e39b5ba33574b3cedd58363d5bb5f6"
3842+
3843+[[package]]
3844+name = "ulid"
3845+version = "1.2.1"
3846+source = "registry+https://github.com/rust-lang/crates.io-index"
3847+checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe"
3848+dependencies = [
3849+ "rand 0.9.5",
3850+ "web-time",
3851+]
3852+
3853+[[package]]
3854+name = "unicode-ident"
3855+version = "1.0.24"
3856+source = "registry+https://github.com/rust-lang/crates.io-index"
3857+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
3858+
3859+[[package]]
3860+name = "unicode-normalization"
3861+version = "0.1.25"
3862+source = "registry+https://github.com/rust-lang/crates.io-index"
3863+checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
3864+dependencies = [
3865+ "tinyvec",
3866+]
3867+
3868+[[package]]
3869+name = "unicode-segmentation"
3870+version = "1.13.3"
3871+source = "registry+https://github.com/rust-lang/crates.io-index"
3872+checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
3873+
3874+[[package]]
3875+name = "unicode-xid"
3876+version = "0.2.6"
3877+source = "registry+https://github.com/rust-lang/crates.io-index"
3878+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
3879+
3880+[[package]]
3881+name = "universal-hash"
3882+version = "0.5.1"
3883+source = "registry+https://github.com/rust-lang/crates.io-index"
3884+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
3885+dependencies = [
3886+ "crypto-common",
3887+ "subtle",
3888+]
3889+
3890+[[package]]
3891+name = "untrusted"
3892+version = "0.9.0"
3893+source = "registry+https://github.com/rust-lang/crates.io-index"
3894+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
3895+
3896+[[package]]
3897+name = "url"
3898+version = "2.5.8"
3899+source = "registry+https://github.com/rust-lang/crates.io-index"
3900+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
3901+dependencies = [
3902+ "form_urlencoded",
3903+ "idna",
3904+ "percent-encoding",
3905+ "serde",
3906+ "serde_derive",
3907+]
3908+
3909+[[package]]
3910+name = "urlencoding"
3911+version = "2.1.3"
3912+source = "registry+https://github.com/rust-lang/crates.io-index"
3913+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
3914+
3915+[[package]]
3916+name = "utf8_iter"
3917+version = "1.0.4"
3918+source = "registry+https://github.com/rust-lang/crates.io-index"
3919+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
3920+
3921+[[package]]
3922+name = "uuid"
3923+version = "1.26.0"
3924+source = "registry+https://github.com/rust-lang/crates.io-index"
3925+checksum = "b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812"
3926+dependencies = [
3927+ "getrandom 0.4.3",
3928+ "js-sys",
3929+ "serde_core",
3930+ "wasm-bindgen",
3931+]
3932+
3933+[[package]]
3934+name = "valuable"
3935+version = "0.1.1"
3936+source = "registry+https://github.com/rust-lang/crates.io-index"
3937+checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
3938+
3939+[[package]]
3940+name = "vcpkg"
3941+version = "0.2.15"
3942+source = "registry+https://github.com/rust-lang/crates.io-index"
3943+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
3944+
3945+[[package]]
3946+name = "version_check"
3947+version = "0.9.5"
3948+source = "registry+https://github.com/rust-lang/crates.io-index"
3949+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
3950+
3951+[[package]]
3952+name = "vodozemac"
3953+version = "0.10.0"
3954+source = "registry+https://github.com/rust-lang/crates.io-index"
3955+checksum = "b98bf83c0992966775b8012f194b07b44928996163e5a05b741b43891571ae5b"
3956+dependencies = [
3957+ "aes",
3958+ "arrayvec",
3959+ "base64",
3960+ "base64ct",
3961+ "cbc",
3962+ "chacha20poly1305",
3963+ "curve25519-dalek",
3964+ "ed25519-dalek",
3965+ "getrandom 0.2.17",
3966+ "hkdf",
3967+ "hmac",
3968+ "matrix-pickle",
3969+ "prost",
3970+ "rand 0.8.8",
3971+ "serde",
3972+ "serde_bytes",
3973+ "serde_json",
3974+ "sha2",
3975+ "subtle",
3976+ "thiserror 2.0.20",
3977+ "x25519-dalek",
3978+ "zeroize",
3979+]
3980+
3981+[[package]]
3982+name = "walkdir"
3983+version = "2.5.0"
3984+source = "registry+https://github.com/rust-lang/crates.io-index"
3985+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
3986+dependencies = [
3987+ "same-file",
3988+ "winapi-util",
3989+]
3990+
3991+[[package]]
3992+name = "want"
3993+version = "0.3.1"
3994+source = "registry+https://github.com/rust-lang/crates.io-index"
3995+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
3996+dependencies = [
3997+ "try-lock",
3998+]
3999+
4000+[[package]]
4001+name = "wasi"
4002+version = "0.11.1+wasi-snapshot-preview1"
4003+source = "registry+https://github.com/rust-lang/crates.io-index"
4004+checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
4005+
4006+[[package]]
4007+name = "wasip2"
4008+version = "1.0.4+wasi-0.2.12"
4009+source = "registry+https://github.com/rust-lang/crates.io-index"
4010+checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
4011+dependencies = [
4012+ "wit-bindgen",
4013+]
4014+
4015+[[package]]
4016+name = "wasm-bindgen"
4017+version = "0.2.128"
4018+source = "registry+https://github.com/rust-lang/crates.io-index"
4019+checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf"
4020+dependencies = [
4021+ "cfg-if",
4022+ "once_cell",
4023+ "rustversion",
4024+ "wasm-bindgen-macro",
4025+ "wasm-bindgen-shared",
4026+]
4027+
4028+[[package]]
4029+name = "wasm-bindgen-futures"
4030+version = "0.4.78"
4031+source = "registry+https://github.com/rust-lang/crates.io-index"
4032+checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928"
4033+dependencies = [
4034+ "js-sys",
4035+ "wasm-bindgen",
4036+]
4037+
4038+[[package]]
4039+name = "wasm-bindgen-macro"
4040+version = "0.2.128"
4041+source = "registry+https://github.com/rust-lang/crates.io-index"
4042+checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed"
4043+dependencies = [
4044+ "quote",
4045+ "wasm-bindgen-macro-support",
4046+]
4047+
4048+[[package]]
4049+name = "wasm-bindgen-macro-support"
4050+version = "0.2.128"
4051+source = "registry+https://github.com/rust-lang/crates.io-index"
4052+checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a"
4053+dependencies = [
4054+ "bumpalo",
4055+ "proc-macro2",
4056+ "quote",
4057+ "syn 3.0.5",
4058+ "wasm-bindgen-shared",
4059+]
4060+
4061+[[package]]
4062+name = "wasm-bindgen-shared"
4063+version = "0.2.128"
4064+source = "registry+https://github.com/rust-lang/crates.io-index"
4065+checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e"
4066+dependencies = [
4067+ "unicode-ident",
4068+]
4069+
4070+[[package]]
4071+name = "wasm-bindgen-test"
4072+version = "0.3.78"
4073+source = "registry+https://github.com/rust-lang/crates.io-index"
4074+checksum = "45863ef0bef521c12124eb39d9a38513c47db75f22e503c06beacd40afeb35db"
4075+dependencies = [
4076+ "async-trait",
4077+ "cast",
4078+ "js-sys",
4079+ "libm",
4080+ "minicov",
4081+ "nu-ansi-term",
4082+ "num-traits",
4083+ "oorandom",
4084+ "serde",
4085+ "serde_json",
4086+ "wasm-bindgen",
4087+ "wasm-bindgen-futures",
4088+ "wasm-bindgen-test-macro",
4089+ "wasm-bindgen-test-shared",
4090+]
4091+
4092+[[package]]
4093+name = "wasm-bindgen-test-macro"
4094+version = "0.3.78"
4095+source = "registry+https://github.com/rust-lang/crates.io-index"
4096+checksum = "8c89dcab8b516b6b603baca9d550b7282d68fcc7f367e3956cff7ebf406a3f12"
4097+dependencies = [
4098+ "proc-macro2",
4099+ "quote",
4100+ "syn 3.0.5",
4101+]
4102+
4103+[[package]]
4104+name = "wasm-bindgen-test-shared"
4105+version = "0.2.128"
4106+source = "registry+https://github.com/rust-lang/crates.io-index"
4107+checksum = "f37b4f992cebe528ef34964ae69681ac0fe7080071e7298e46008f9d380302af"
4108+
4109+[[package]]
4110+name = "wasm-streams"
4111+version = "0.5.0"
4112+source = "registry+https://github.com/rust-lang/crates.io-index"
4113+checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb"
4114+dependencies = [
4115+ "futures-util",
4116+ "js-sys",
4117+ "wasm-bindgen",
4118+ "wasm-bindgen-futures",
4119+ "web-sys",
4120+]
4121+
4122+[[package]]
4123+name = "wasm_evt_listener"
4124+version = "0.1.0"
4125+source = "registry+https://github.com/rust-lang/crates.io-index"
4126+checksum = "dc92d6378b411ed94839112a36d9dbc77143451d85b05dfb0cce93a78dab1963"
4127+dependencies = [
4128+ "accessory",
4129+ "derivative",
4130+ "derive_more 1.0.0",
4131+ "fancy_constructor",
4132+ "futures-core",
4133+ "js-sys",
4134+ "smallvec",
4135+ "tokio",
4136+ "wasm-bindgen",
4137+ "web-sys",
4138+]
4139+
4140+[[package]]
4141+name = "web-sys"
4142+version = "0.3.105"
4143+source = "registry+https://github.com/rust-lang/crates.io-index"
4144+checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8"
4145+dependencies = [
4146+ "js-sys",
4147+ "wasm-bindgen",
4148+]
4149+
4150+[[package]]
4151+name = "web-time"
4152+version = "1.1.0"
4153+source = "registry+https://github.com/rust-lang/crates.io-index"
4154+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
4155+dependencies = [
4156+ "js-sys",
4157+ "serde",
4158+ "wasm-bindgen",
4159+]
4160+
4161+[[package]]
4162+name = "web_atoms"
4163+version = "0.2.6"
4164+source = "registry+https://github.com/rust-lang/crates.io-index"
4165+checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3"
4166+dependencies = [
4167+ "phf",
4168+ "phf_codegen",
4169+ "string_cache",
4170+ "string_cache_codegen",
4171+]
4172+
4173+[[package]]
4174+name = "webpki-root-certs"
4175+version = "1.0.9"
4176+source = "registry+https://github.com/rust-lang/crates.io-index"
4177+checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
4178+dependencies = [
4179+ "rustls-pki-types",
4180+]
4181+
4182+[[package]]
4183+name = "webpki-roots"
4184+version = "1.0.9"
4185+source = "registry+https://github.com/rust-lang/crates.io-index"
4186+checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a"
4187+dependencies = [
4188+ "rustls-pki-types",
4189+]
4190+
4191+[[package]]
4192+name = "wildmatch"
4193+version = "2.6.1"
4194+source = "registry+https://github.com/rust-lang/crates.io-index"
4195+checksum = "29333c3ea1ba8b17211763463ff24ee84e41c78224c16b001cd907e663a38c68"
4196+
4197+[[package]]
4198+name = "winapi-util"
4199+version = "0.1.11"
4200+source = "registry+https://github.com/rust-lang/crates.io-index"
4201+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
4202+dependencies = [
4203+ "windows-sys 0.61.2",
4204+]
4205+
4206+[[package]]
4207+name = "windows-core"
4208+version = "0.62.2"
4209+source = "registry+https://github.com/rust-lang/crates.io-index"
4210+checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
4211+dependencies = [
4212+ "windows-implement",
4213+ "windows-interface",
4214+ "windows-link",
4215+ "windows-result",
4216+ "windows-strings",
4217+]
4218+
4219+[[package]]
4220+name = "windows-implement"
4221+version = "0.60.2"
4222+source = "registry+https://github.com/rust-lang/crates.io-index"
4223+checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
4224+dependencies = [
4225+ "proc-macro2",
4226+ "quote",
4227+ "syn 2.0.119",
4228+]
4229+
4230+[[package]]
4231+name = "windows-interface"
4232+version = "0.59.3"
4233+source = "registry+https://github.com/rust-lang/crates.io-index"
4234+checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
4235+dependencies = [
4236+ "proc-macro2",
4237+ "quote",
4238+ "syn 2.0.119",
4239+]
4240+
4241+[[package]]
4242+name = "windows-link"
4243+version = "0.2.1"
4244+source = "registry+https://github.com/rust-lang/crates.io-index"
4245+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
4246+
4247+[[package]]
4248+name = "windows-result"
4249+version = "0.4.1"
4250+source = "registry+https://github.com/rust-lang/crates.io-index"
4251+checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
4252+dependencies = [
4253+ "windows-link",
4254+]
4255+
4256+[[package]]
4257+name = "windows-strings"
4258+version = "0.5.1"
4259+source = "registry+https://github.com/rust-lang/crates.io-index"
4260+checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
4261+dependencies = [
4262+ "windows-link",
4263+]
4264+
4265+[[package]]
4266+name = "windows-sys"
4267+version = "0.52.0"
4268+source = "registry+https://github.com/rust-lang/crates.io-index"
4269+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
4270+dependencies = [
4271+ "windows-targets",
4272+]
4273+
4274+[[package]]
4275+name = "windows-sys"
4276+version = "0.61.2"
4277+source = "registry+https://github.com/rust-lang/crates.io-index"
4278+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
4279+dependencies = [
4280+ "windows-link",
4281+]
4282+
4283+[[package]]
4284+name = "windows-targets"
4285+version = "0.52.6"
4286+source = "registry+https://github.com/rust-lang/crates.io-index"
4287+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
4288+dependencies = [
4289+ "windows_aarch64_gnullvm",
4290+ "windows_aarch64_msvc",
4291+ "windows_i686_gnu",
4292+ "windows_i686_gnullvm",
4293+ "windows_i686_msvc",
4294+ "windows_x86_64_gnu",
4295+ "windows_x86_64_gnullvm",
4296+ "windows_x86_64_msvc",
4297+]
4298+
4299+[[package]]
4300+name = "windows_aarch64_gnullvm"
4301+version = "0.52.6"
4302+source = "registry+https://github.com/rust-lang/crates.io-index"
4303+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
4304+
4305+[[package]]
4306+name = "windows_aarch64_msvc"
4307+version = "0.52.6"
4308+source = "registry+https://github.com/rust-lang/crates.io-index"
4309+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
4310+
4311+[[package]]
4312+name = "windows_i686_gnu"
4313+version = "0.52.6"
4314+source = "registry+https://github.com/rust-lang/crates.io-index"
4315+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
4316+
4317+[[package]]
4318+name = "windows_i686_gnullvm"
4319+version = "0.52.6"
4320+source = "registry+https://github.com/rust-lang/crates.io-index"
4321+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
4322+
4323+[[package]]
4324+name = "windows_i686_msvc"
4325+version = "0.52.6"
4326+source = "registry+https://github.com/rust-lang/crates.io-index"
4327+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
4328+
4329+[[package]]
4330+name = "windows_x86_64_gnu"
4331+version = "0.52.6"
4332+source = "registry+https://github.com/rust-lang/crates.io-index"
4333+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
4334+
4335+[[package]]
4336+name = "windows_x86_64_gnullvm"
4337+version = "0.52.6"
4338+source = "registry+https://github.com/rust-lang/crates.io-index"
4339+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
4340+
4341+[[package]]
4342+name = "windows_x86_64_msvc"
4343+version = "0.52.6"
4344+source = "registry+https://github.com/rust-lang/crates.io-index"
4345+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
4346+
4347+[[package]]
4348+name = "winnow"
4349+version = "1.0.4"
4350+source = "registry+https://github.com/rust-lang/crates.io-index"
4351+checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81"
4352+dependencies = [
4353+ "memchr",
4354+]
4355+
4356+[[package]]
4357+name = "wit-bindgen"
4358+version = "0.57.1"
4359+source = "registry+https://github.com/rust-lang/crates.io-index"
4360+checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
4361+
4362+[[package]]
4363+name = "writeable"
4364+version = "0.6.4"
4365+source = "registry+https://github.com/rust-lang/crates.io-index"
4366+checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc"
4367+
4368+[[package]]
4369+name = "x25519-dalek"
4370+version = "2.0.1"
4371+source = "registry+https://github.com/rust-lang/crates.io-index"
4372+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
4373+dependencies = [
4374+ "curve25519-dalek",
4375+ "rand_core 0.6.4",
4376+ "serde",
4377+ "zeroize",
4378+]
4379+
4380+[[package]]
4381+name = "xxhash-rust"
4382+version = "0.8.18"
4383+source = "registry+https://github.com/rust-lang/crates.io-index"
4384+checksum = "aee1b19627c7c60102ab80d3a9cbe18de90bfe03bfa6c3715447681f0e8c8af6"
4385+
4386+[[package]]
4387+name = "yoke"
4388+version = "0.8.3"
4389+source = "registry+https://github.com/rust-lang/crates.io-index"
4390+checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5"
4391+dependencies = [
4392+ "stable_deref_trait",
4393+ "yoke-derive",
4394+ "zerofrom",
4395+]
4396+
4397+[[package]]
4398+name = "yoke-derive"
4399+version = "0.8.2"
4400+source = "registry+https://github.com/rust-lang/crates.io-index"
4401+checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e"
4402+dependencies = [
4403+ "proc-macro2",
4404+ "quote",
4405+ "syn 2.0.119",
4406+ "synstructure",
4407+]
4408+
4409+[[package]]
4410+name = "zerocopy"
4411+version = "0.8.56"
4412+source = "registry+https://github.com/rust-lang/crates.io-index"
4413+checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
4414+dependencies = [
4415+ "zerocopy-derive",
4416+]
4417+
4418+[[package]]
4419+name = "zerocopy-derive"
4420+version = "0.8.56"
4421+source = "registry+https://github.com/rust-lang/crates.io-index"
4422+checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
4423+dependencies = [
4424+ "proc-macro2",
4425+ "quote",
4426+ "syn 2.0.119",
4427+]
4428+
4429+[[package]]
4430+name = "zerofrom"
4431+version = "0.1.8"
4432+source = "registry+https://github.com/rust-lang/crates.io-index"
4433+checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272"
4434+dependencies = [
4435+ "zerofrom-derive",
4436+]
4437+
4438+[[package]]
4439+name = "zerofrom-derive"
4440+version = "0.1.7"
4441+source = "registry+https://github.com/rust-lang/crates.io-index"
4442+checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1"
4443+dependencies = [
4444+ "proc-macro2",
4445+ "quote",
4446+ "syn 2.0.119",
4447+ "synstructure",
4448+]
4449+
4450+[[package]]
4451+name = "zeroize"
4452+version = "1.9.0"
4453+source = "registry+https://github.com/rust-lang/crates.io-index"
4454+checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
4455+dependencies = [
4456+ "zeroize_derive",
4457+]
4458+
4459+[[package]]
4460+name = "zeroize_derive"
4461+version = "1.5.0"
4462+source = "registry+https://github.com/rust-lang/crates.io-index"
4463+checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"
4464+dependencies = [
4465+ "proc-macro2",
4466+ "quote",
4467+ "syn 2.0.119",
4468+]
4469+
4470+[[package]]
4471+name = "zerotrie"
4472+version = "0.2.5"
4473+source = "registry+https://github.com/rust-lang/crates.io-index"
4474+checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f"
4475+dependencies = [
4476+ "displaydoc",
4477+ "yoke",
4478+ "zerofrom",
4479+]
4480+
4481+[[package]]
4482+name = "zerovec"
4483+version = "0.11.8"
4484+source = "registry+https://github.com/rust-lang/crates.io-index"
4485+checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8"
4486+dependencies = [
4487+ "yoke",
4488+ "zerofrom",
4489+ "zerovec-derive",
4490+]
4491+
4492+[[package]]
4493+name = "zerovec-derive"
4494+version = "0.11.6"
4495+source = "registry+https://github.com/rust-lang/crates.io-index"
4496+checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
4497+dependencies = [
4498+ "proc-macro2",
4499+ "quote",
4500+ "syn 3.0.5",
4501+]
4502+
4503+[[package]]
4504+name = "zlib-rs"
4505+version = "0.6.7"
4506+source = "registry+https://github.com/rust-lang/crates.io-index"
4507+checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12"
4508+
4509+[[package]]
4510+name = "zmij"
4511+version = "1.0.23"
4512+source = "registry+https://github.com/rust-lang/crates.io-index"
4513+checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
Added file: harness/web/Cargo.toml+33 additions
@@ -0,0 +1,33 @@
1+[package]
2+name = "macltok-web"
3+version = "0.1.0"
4+edition = "2024"
5+publish = false
6+
7+[workspace]
8+
9+[lib]
10+crate-type = ["cdylib", "rlib"]
11+
12+[features]
13+default = ["store"]
14+# the flake reads the macltok store feature name from here
15+store = ["macltok/indexeddb"]
16+
17+[dependencies]
18+macltok = { path = "../.." }
19+wasm-bindgen = "0.2"
20+wasm-bindgen-futures = "0.4"
21+futures-channel = "0.3"
22+
23+[dev-dependencies]
24+js-sys = "0.3"
25+wasm-bindgen-test = "0.3"
26+web-sys = { version = "0.3", features = ["DedicatedWorkerGlobalScope"] }
27+
28+[profile.release]
29+opt-level = "z"
30+lto = true
31+codegen-units = 1
32+panic = "abort"
33+strip = true
Added file: harness/web/run.nu+102 additions
@@ -0,0 +1,102 @@
1+# drives macltok in a headless firefox worker against a throwaway continuwuity
2+# run from the web devshell, `nix develop .#web -c nu harness/web/run.nu`
3+
4+const crate = path self .
5+const root = path self ../..
6+const username = "harness"
7+const password = "harness-password"
8+
9+# the shared build wrapper sets CARGO_TARGET_DIR, the nix sandbox does not
10+def target [] { $env.CARGO_TARGET_DIR? | default ($root | path join target) }
11+
12+def scratch [] { target | path join harness }
13+
14+def start-homeserver [] {
15+ let dir = scratch
16+ rm -rf $dir
17+ mkdir $dir
18+ let port = 6167
19+ let config = $dir | path join homeserver.toml
20+ let log = $dir | path join homeserver.log
21+ {
22+ global: {
23+ server_name: "localhost"
24+ database_path: ($dir | path join db)
25+ address: ["127.0.0.1"]
26+ port: $port
27+ allow_federation: false
28+ new_user_displayname_suffix: ""
29+ }
30+ } | to toml | save $config
31+ # the first account otherwise needs a one-time token that is only ever printed to the log
32+ let create = $"users create-user ($username) ($password)"
33+ let pid = ^bash -c 'conduwuit -c "$1" --execute "$2" > "$3" 2>&1 & echo $!' _ $config $create $log | str trim
34+ let url = $'http://127.0.0.1:($port)'
35+ for _ in 1..100 {
36+ if (try { login $url | ignore; true } catch { false }) {
37+ return { pid: $pid, url: $url }
38+ }
39+ sleep 100ms
40+ }
41+ try { stop $pid }
42+ print (open --raw $log | lines | last 20 | str join "\n")
43+ error make { msg: "homeserver did not come up" }
44+}
45+
46+def login [url: string] {
47+ let body = { type: "m.login.password", identifier: { type: "m.id.user", user: $username }, password: $password }
48+ http post --content-type application/json $'($url)/_matrix/client/v3/login' $body
49+}
50+
51+def seed [url: string] {
52+ let auth = [Authorization $'Bearer ((login $url).access_token)']
53+ http post --headers $auth --content-type application/json $'($url)/_matrix/client/v3/createRoom' { name: "harness" } | ignore
54+}
55+
56+def stop [pid: string] {
57+ ^kill -9 $pid
58+}
59+
60+def main [] {
61+ let server = start-homeserver
62+ let result = try {
63+ let versions = http get $'($server.url)/_matrix/client/versions'
64+ if not ($versions.unstable_features | get -o 'org.matrix.simplified_msc3575' | default false) {
65+ error make { msg: "homeserver does not advertise simplified sliding sync" }
66+ }
67+ seed $server.url
68+ cd $crate
69+ with-env {
70+ MACLTOK_HOMESERVER: $server.url
71+ MACLTOK_USERNAME: $username
72+ MACLTOK_PASSWORD: $password
73+ GECKODRIVER: (which geckodriver | get 0.path)
74+ WASM_BINDGEN_TEST_TIMEOUT: "180"
75+ } {
76+ ^cargo test --target wasm32-unknown-unknown --test worker
77+ }
78+ null
79+ } catch {|error| $error }
80+ stop $server.pid
81+ if $result != null {
82+ print $'homeserver log at (scratch)/homeserver.log'
83+ error make { msg: $result.msg }
84+ }
85+}
86+
87+# release build of the same slice, sized raw, after wasm-opt, and compressed
88+def "main size" [] {
89+ let target = target
90+ let out = scratch | path join size
91+ rm -rf $out
92+ mkdir $out
93+ cd $crate
94+ ^cargo build --release --lib --target wasm32-unknown-unknown
95+ ^wasm-bindgen --target web --out-dir $out ($target | path join wasm32-unknown-unknown release macltok_web.wasm)
96+ let raw = $out | path join macltok_web_bg.wasm
97+ let opt = $out | path join macltok_web_opt.wasm
98+ ^wasm-opt -Oz --enable-bulk-memory --enable-nontrapping-float-to-int --enable-sign-ext --enable-mutable-globals --enable-reference-types --enable-multivalue -o $opt $raw
99+ ^gzip -9 -k $opt
100+ ^brotli -q 11 -k $opt
101+ [$raw $opt $'($opt).gz' $'($opt).br'] | each {|file| { file: ($file | path basename), size: (ls $file | get 0.size) } }
102+}
Added file: harness/web/src/lib.rs+47 additions
@@ -0,0 +1,47 @@
1+//! a browser-side slice of macltok, login through to a live sync, exported for
2+//! wasm-bindgen so both the worker test and the size measurement reach the same code
3+
4+use futures_channel::oneshot;
5+use macltok::{
6+ ConnectionState, EncryptedSessionStore, EngineConfig, Event, PasswordLogin, Session, StoreConfig,
7+};
8+use wasm_bindgen::prelude::*;
9+
10+#[wasm_bindgen]
11+pub async fn smoke(
12+ homeserver: String,
13+ username: String,
14+ password: String,
15+ store_name: String,
16+) -> Result<(), JsError> {
17+ let sessions = EncryptedSessionStore::indexeddb(
18+ StoreConfig::indexeddb(store_name, "macltok-web").with_lock_holder("macltok-web-worker"),
19+ );
20+ let login = PasswordLogin::new(homeserver, username, password);
21+ let session = Session::login_password(login, &sessions).await?;
22+ let (engine, handle, mut events) = session.build(EngineConfig::default()).await?;
23+ let (done, running) = oneshot::channel();
24+ wasm_bindgen_futures::spawn_local(async move {
25+ let _ = done.send(engine.run().await);
26+ });
27+
28+ let mut online = false;
29+ let mut rooms = false;
30+ while !(online && rooms) {
31+ match events.recv().await {
32+ Some(Event::ConnectionChanged(ConnectionState::Online)) => online = true,
33+ Some(Event::RoomsChanged) => rooms = true,
34+ Some(Event::Stopped) | None => {
35+ return Err(JsError::new("engine stopped before it came online"));
36+ }
37+ Some(_) => {}
38+ }
39+ }
40+
41+ handle.shutdown().await?;
42+ while events.recv().await.is_some() {}
43+ running
44+ .await
45+ .map_err(|_| JsError::new("engine task vanished"))??;
46+ Ok(())
47+}
Added file: harness/web/tests/worker.rs+19 additions
@@ -0,0 +1,19 @@
1+//! needs a live homeserver, run.nu starts one and bakes its credentials in at build time
2+
3+use wasm_bindgen::JsCast;
4+use wasm_bindgen_test::*;
5+
6+wasm_bindgen_test_configure!(run_in_dedicated_worker);
7+
8+#[wasm_bindgen_test]
9+async fn logs_in_and_syncs() {
10+ assert!(js_sys::global().is_instance_of::<web_sys::DedicatedWorkerGlobalScope>());
11+ macltok_web::smoke(
12+ env!("MACLTOK_HOMESERVER").into(),
13+ env!("MACLTOK_USERNAME").into(),
14+ env!("MACLTOK_PASSWORD").into(),
15+ "macltok-web".into(),
16+ )
17+ .await
18+ .unwrap_or_else(|error| panic!("{:?}", wasm_bindgen::JsValue::from(error)));
19+}