+2
.gitignore
+2
.gitignore
change-admin-password.ts
scripts/change-admin-password.ts
change-admin-password.ts
scripts/change-admin-password.ts
+4731
cli/Cargo.lock
+4731
cli/Cargo.lock
···
1
+
# This file is automatically @generated by Cargo.
2
+
# It is not intended for manual editing.
3
+
version = 4
4
+
5
+
[[package]]
6
+
name = "abnf"
7
+
version = "0.13.0"
8
+
source = "registry+https://github.com/rust-lang/crates.io-index"
9
+
checksum = "087113bd50d9adce24850eed5d0476c7d199d532fce8fab5173650331e09033a"
10
+
dependencies = [
11
+
"abnf-core",
12
+
"nom",
13
+
]
14
+
15
+
[[package]]
16
+
name = "abnf-core"
17
+
version = "0.5.0"
18
+
source = "registry+https://github.com/rust-lang/crates.io-index"
19
+
checksum = "c44e09c43ae1c368fb91a03a566472d0087c26cf7e1b9e8e289c14ede681dd7d"
20
+
dependencies = [
21
+
"nom",
22
+
]
23
+
24
+
[[package]]
25
+
name = "addr2line"
26
+
version = "0.25.1"
27
+
source = "registry+https://github.com/rust-lang/crates.io-index"
28
+
checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
29
+
dependencies = [
30
+
"gimli",
31
+
]
32
+
33
+
[[package]]
34
+
name = "adler2"
35
+
version = "2.0.1"
36
+
source = "registry+https://github.com/rust-lang/crates.io-index"
37
+
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
38
+
39
+
[[package]]
40
+
name = "adler32"
41
+
version = "1.2.0"
42
+
source = "registry+https://github.com/rust-lang/crates.io-index"
43
+
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
44
+
45
+
[[package]]
46
+
name = "aho-corasick"
47
+
version = "1.1.4"
48
+
source = "registry+https://github.com/rust-lang/crates.io-index"
49
+
checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
50
+
dependencies = [
51
+
"memchr",
52
+
]
53
+
54
+
[[package]]
55
+
name = "aliasable"
56
+
version = "0.1.3"
57
+
source = "registry+https://github.com/rust-lang/crates.io-index"
58
+
checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
59
+
60
+
[[package]]
61
+
name = "alloc-no-stdlib"
62
+
version = "2.0.4"
63
+
source = "registry+https://github.com/rust-lang/crates.io-index"
64
+
checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
65
+
66
+
[[package]]
67
+
name = "alloc-stdlib"
68
+
version = "0.2.2"
69
+
source = "registry+https://github.com/rust-lang/crates.io-index"
70
+
checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
71
+
dependencies = [
72
+
"alloc-no-stdlib",
73
+
]
74
+
75
+
[[package]]
76
+
name = "android_system_properties"
77
+
version = "0.1.5"
78
+
source = "registry+https://github.com/rust-lang/crates.io-index"
79
+
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
80
+
dependencies = [
81
+
"libc",
82
+
]
83
+
84
+
[[package]]
85
+
name = "anstream"
86
+
version = "0.6.21"
87
+
source = "registry+https://github.com/rust-lang/crates.io-index"
88
+
checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a"
89
+
dependencies = [
90
+
"anstyle",
91
+
"anstyle-parse",
92
+
"anstyle-query",
93
+
"anstyle-wincon",
94
+
"colorchoice",
95
+
"is_terminal_polyfill",
96
+
"utf8parse",
97
+
]
98
+
99
+
[[package]]
100
+
name = "anstyle"
101
+
version = "1.0.13"
102
+
source = "registry+https://github.com/rust-lang/crates.io-index"
103
+
checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
104
+
105
+
[[package]]
106
+
name = "anstyle-parse"
107
+
version = "0.2.7"
108
+
source = "registry+https://github.com/rust-lang/crates.io-index"
109
+
checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
110
+
dependencies = [
111
+
"utf8parse",
112
+
]
113
+
114
+
[[package]]
115
+
name = "anstyle-query"
116
+
version = "1.1.4"
117
+
source = "registry+https://github.com/rust-lang/crates.io-index"
118
+
checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2"
119
+
dependencies = [
120
+
"windows-sys 0.60.2",
121
+
]
122
+
123
+
[[package]]
124
+
name = "anstyle-wincon"
125
+
version = "3.0.10"
126
+
source = "registry+https://github.com/rust-lang/crates.io-index"
127
+
checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a"
128
+
dependencies = [
129
+
"anstyle",
130
+
"once_cell_polyfill",
131
+
"windows-sys 0.60.2",
132
+
]
133
+
134
+
[[package]]
135
+
name = "ascii"
136
+
version = "1.1.0"
137
+
source = "registry+https://github.com/rust-lang/crates.io-index"
138
+
checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16"
139
+
140
+
[[package]]
141
+
name = "async-compression"
142
+
version = "0.4.32"
143
+
source = "registry+https://github.com/rust-lang/crates.io-index"
144
+
checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0"
145
+
dependencies = [
146
+
"compression-codecs",
147
+
"compression-core",
148
+
"futures-core",
149
+
"pin-project-lite",
150
+
"tokio",
151
+
]
152
+
153
+
[[package]]
154
+
name = "async-lock"
155
+
version = "3.4.1"
156
+
source = "registry+https://github.com/rust-lang/crates.io-index"
157
+
checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc"
158
+
dependencies = [
159
+
"event-listener",
160
+
"event-listener-strategy",
161
+
"pin-project-lite",
162
+
]
163
+
164
+
[[package]]
165
+
name = "async-trait"
166
+
version = "0.1.89"
167
+
source = "registry+https://github.com/rust-lang/crates.io-index"
168
+
checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
169
+
dependencies = [
170
+
"proc-macro2",
171
+
"quote",
172
+
"syn 2.0.108",
173
+
]
174
+
175
+
[[package]]
176
+
name = "atomic-waker"
177
+
version = "1.1.2"
178
+
source = "registry+https://github.com/rust-lang/crates.io-index"
179
+
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
180
+
181
+
[[package]]
182
+
name = "autocfg"
183
+
version = "1.5.0"
184
+
source = "registry+https://github.com/rust-lang/crates.io-index"
185
+
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
186
+
187
+
[[package]]
188
+
name = "backtrace"
189
+
version = "0.3.76"
190
+
source = "registry+https://github.com/rust-lang/crates.io-index"
191
+
checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"
192
+
dependencies = [
193
+
"addr2line",
194
+
"cfg-if",
195
+
"libc",
196
+
"miniz_oxide",
197
+
"object",
198
+
"rustc-demangle",
199
+
"windows-link 0.2.1",
200
+
]
201
+
202
+
[[package]]
203
+
name = "backtrace-ext"
204
+
version = "0.2.1"
205
+
source = "registry+https://github.com/rust-lang/crates.io-index"
206
+
checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50"
207
+
dependencies = [
208
+
"backtrace",
209
+
]
210
+
211
+
[[package]]
212
+
name = "base-x"
213
+
version = "0.2.11"
214
+
source = "registry+https://github.com/rust-lang/crates.io-index"
215
+
checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
216
+
217
+
[[package]]
218
+
name = "base16ct"
219
+
version = "0.2.0"
220
+
source = "registry+https://github.com/rust-lang/crates.io-index"
221
+
checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
222
+
223
+
[[package]]
224
+
name = "base256emoji"
225
+
version = "1.0.2"
226
+
source = "registry+https://github.com/rust-lang/crates.io-index"
227
+
checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c"
228
+
dependencies = [
229
+
"const-str",
230
+
"match-lookup",
231
+
]
232
+
233
+
[[package]]
234
+
name = "base64"
235
+
version = "0.13.1"
236
+
source = "registry+https://github.com/rust-lang/crates.io-index"
237
+
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
238
+
239
+
[[package]]
240
+
name = "base64"
241
+
version = "0.22.1"
242
+
source = "registry+https://github.com/rust-lang/crates.io-index"
243
+
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
244
+
245
+
[[package]]
246
+
name = "base64ct"
247
+
version = "1.8.0"
248
+
source = "registry+https://github.com/rust-lang/crates.io-index"
249
+
checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
250
+
251
+
[[package]]
252
+
name = "bitflags"
253
+
version = "2.10.0"
254
+
source = "registry+https://github.com/rust-lang/crates.io-index"
255
+
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
256
+
257
+
[[package]]
258
+
name = "block-buffer"
259
+
version = "0.10.4"
260
+
source = "registry+https://github.com/rust-lang/crates.io-index"
261
+
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
262
+
dependencies = [
263
+
"generic-array",
264
+
]
265
+
266
+
[[package]]
267
+
name = "bon"
268
+
version = "3.8.1"
269
+
source = "registry+https://github.com/rust-lang/crates.io-index"
270
+
checksum = "ebeb9aaf9329dff6ceb65c689ca3db33dbf15f324909c60e4e5eef5701ce31b1"
271
+
dependencies = [
272
+
"bon-macros",
273
+
"rustversion",
274
+
]
275
+
276
+
[[package]]
277
+
name = "bon-macros"
278
+
version = "3.8.1"
279
+
source = "registry+https://github.com/rust-lang/crates.io-index"
280
+
checksum = "77e9d642a7e3a318e37c2c9427b5a6a48aa1ad55dcd986f3034ab2239045a645"
281
+
dependencies = [
282
+
"darling",
283
+
"ident_case",
284
+
"prettyplease",
285
+
"proc-macro2",
286
+
"quote",
287
+
"rustversion",
288
+
"syn 2.0.108",
289
+
]
290
+
291
+
[[package]]
292
+
name = "borsh"
293
+
version = "1.5.7"
294
+
source = "registry+https://github.com/rust-lang/crates.io-index"
295
+
checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce"
296
+
dependencies = [
297
+
"cfg_aliases",
298
+
]
299
+
300
+
[[package]]
301
+
name = "brotli"
302
+
version = "3.5.0"
303
+
source = "registry+https://github.com/rust-lang/crates.io-index"
304
+
checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391"
305
+
dependencies = [
306
+
"alloc-no-stdlib",
307
+
"alloc-stdlib",
308
+
"brotli-decompressor",
309
+
]
310
+
311
+
[[package]]
312
+
name = "brotli-decompressor"
313
+
version = "2.5.1"
314
+
source = "registry+https://github.com/rust-lang/crates.io-index"
315
+
checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
316
+
dependencies = [
317
+
"alloc-no-stdlib",
318
+
"alloc-stdlib",
319
+
]
320
+
321
+
[[package]]
322
+
name = "btree-range-map"
323
+
version = "0.7.2"
324
+
source = "registry+https://github.com/rust-lang/crates.io-index"
325
+
checksum = "1be5c9672446d3800bcbcaabaeba121fe22f1fb25700c4562b22faf76d377c33"
326
+
dependencies = [
327
+
"btree-slab",
328
+
"cc-traits",
329
+
"range-traits",
330
+
"serde",
331
+
"slab",
332
+
]
333
+
334
+
[[package]]
335
+
name = "btree-slab"
336
+
version = "0.6.1"
337
+
source = "registry+https://github.com/rust-lang/crates.io-index"
338
+
checksum = "7a2b56d3029f075c4fa892428a098425b86cef5c89ae54073137ece416aef13c"
339
+
dependencies = [
340
+
"cc-traits",
341
+
"slab",
342
+
"smallvec",
343
+
]
344
+
345
+
[[package]]
346
+
name = "buf_redux"
347
+
version = "0.8.4"
348
+
source = "registry+https://github.com/rust-lang/crates.io-index"
349
+
checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
350
+
dependencies = [
351
+
"memchr",
352
+
"safemem",
353
+
]
354
+
355
+
[[package]]
356
+
name = "bumpalo"
357
+
version = "3.19.0"
358
+
source = "registry+https://github.com/rust-lang/crates.io-index"
359
+
checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
360
+
361
+
[[package]]
362
+
name = "bytes"
363
+
version = "1.10.1"
364
+
source = "registry+https://github.com/rust-lang/crates.io-index"
365
+
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
366
+
dependencies = [
367
+
"serde",
368
+
]
369
+
370
+
[[package]]
371
+
name = "cbor4ii"
372
+
version = "0.2.14"
373
+
source = "registry+https://github.com/rust-lang/crates.io-index"
374
+
checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4"
375
+
dependencies = [
376
+
"serde",
377
+
]
378
+
379
+
[[package]]
380
+
name = "cc"
381
+
version = "1.2.44"
382
+
source = "registry+https://github.com/rust-lang/crates.io-index"
383
+
checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3"
384
+
dependencies = [
385
+
"find-msvc-tools",
386
+
"shlex",
387
+
]
388
+
389
+
[[package]]
390
+
name = "cc-traits"
391
+
version = "2.0.0"
392
+
source = "registry+https://github.com/rust-lang/crates.io-index"
393
+
checksum = "060303ef31ef4a522737e1b1ab68c67916f2a787bb2f4f54f383279adba962b5"
394
+
dependencies = [
395
+
"slab",
396
+
]
397
+
398
+
[[package]]
399
+
name = "cesu8"
400
+
version = "1.1.0"
401
+
source = "registry+https://github.com/rust-lang/crates.io-index"
402
+
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
403
+
404
+
[[package]]
405
+
name = "cfg-if"
406
+
version = "1.0.4"
407
+
source = "registry+https://github.com/rust-lang/crates.io-index"
408
+
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
409
+
410
+
[[package]]
411
+
name = "cfg_aliases"
412
+
version = "0.2.1"
413
+
source = "registry+https://github.com/rust-lang/crates.io-index"
414
+
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
415
+
416
+
[[package]]
417
+
name = "chrono"
418
+
version = "0.4.42"
419
+
source = "registry+https://github.com/rust-lang/crates.io-index"
420
+
checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
421
+
dependencies = [
422
+
"iana-time-zone",
423
+
"js-sys",
424
+
"num-traits",
425
+
"serde",
426
+
"wasm-bindgen",
427
+
"windows-link 0.2.1",
428
+
]
429
+
430
+
[[package]]
431
+
name = "chunked_transfer"
432
+
version = "1.5.0"
433
+
source = "registry+https://github.com/rust-lang/crates.io-index"
434
+
checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901"
435
+
436
+
[[package]]
437
+
name = "ciborium"
438
+
version = "0.2.2"
439
+
source = "registry+https://github.com/rust-lang/crates.io-index"
440
+
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
441
+
dependencies = [
442
+
"ciborium-io",
443
+
"ciborium-ll",
444
+
"serde",
445
+
]
446
+
447
+
[[package]]
448
+
name = "ciborium-io"
449
+
version = "0.2.2"
450
+
source = "registry+https://github.com/rust-lang/crates.io-index"
451
+
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
452
+
453
+
[[package]]
454
+
name = "ciborium-ll"
455
+
version = "0.2.2"
456
+
source = "registry+https://github.com/rust-lang/crates.io-index"
457
+
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
458
+
dependencies = [
459
+
"ciborium-io",
460
+
"half",
461
+
]
462
+
463
+
[[package]]
464
+
name = "cid"
465
+
version = "0.11.1"
466
+
source = "registry+https://github.com/rust-lang/crates.io-index"
467
+
checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a"
468
+
dependencies = [
469
+
"core2",
470
+
"multibase",
471
+
"multihash",
472
+
"serde",
473
+
"serde_bytes",
474
+
"unsigned-varint",
475
+
]
476
+
477
+
[[package]]
478
+
name = "clap"
479
+
version = "4.5.51"
480
+
source = "registry+https://github.com/rust-lang/crates.io-index"
481
+
checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5"
482
+
dependencies = [
483
+
"clap_builder",
484
+
"clap_derive",
485
+
]
486
+
487
+
[[package]]
488
+
name = "clap_builder"
489
+
version = "4.5.51"
490
+
source = "registry+https://github.com/rust-lang/crates.io-index"
491
+
checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a"
492
+
dependencies = [
493
+
"anstream",
494
+
"anstyle",
495
+
"clap_lex",
496
+
"strsim",
497
+
]
498
+
499
+
[[package]]
500
+
name = "clap_derive"
501
+
version = "4.5.49"
502
+
source = "registry+https://github.com/rust-lang/crates.io-index"
503
+
checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
504
+
dependencies = [
505
+
"heck 0.5.0",
506
+
"proc-macro2",
507
+
"quote",
508
+
"syn 2.0.108",
509
+
]
510
+
511
+
[[package]]
512
+
name = "clap_lex"
513
+
version = "0.7.6"
514
+
source = "registry+https://github.com/rust-lang/crates.io-index"
515
+
checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
516
+
517
+
[[package]]
518
+
name = "colorchoice"
519
+
version = "1.0.4"
520
+
source = "registry+https://github.com/rust-lang/crates.io-index"
521
+
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
522
+
523
+
[[package]]
524
+
name = "combine"
525
+
version = "4.6.7"
526
+
source = "registry+https://github.com/rust-lang/crates.io-index"
527
+
checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
528
+
dependencies = [
529
+
"bytes",
530
+
"memchr",
531
+
]
532
+
533
+
[[package]]
534
+
name = "compression-codecs"
535
+
version = "0.4.31"
536
+
source = "registry+https://github.com/rust-lang/crates.io-index"
537
+
checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23"
538
+
dependencies = [
539
+
"compression-core",
540
+
"flate2",
541
+
"memchr",
542
+
]
543
+
544
+
[[package]]
545
+
name = "compression-core"
546
+
version = "0.4.29"
547
+
source = "registry+https://github.com/rust-lang/crates.io-index"
548
+
checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb"
549
+
550
+
[[package]]
551
+
name = "concurrent-queue"
552
+
version = "2.5.0"
553
+
source = "registry+https://github.com/rust-lang/crates.io-index"
554
+
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
555
+
dependencies = [
556
+
"crossbeam-utils",
557
+
]
558
+
559
+
[[package]]
560
+
name = "const-oid"
561
+
version = "0.9.6"
562
+
source = "registry+https://github.com/rust-lang/crates.io-index"
563
+
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
564
+
565
+
[[package]]
566
+
name = "const-str"
567
+
version = "0.4.3"
568
+
source = "registry+https://github.com/rust-lang/crates.io-index"
569
+
checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3"
570
+
571
+
[[package]]
572
+
name = "core-foundation"
573
+
version = "0.9.4"
574
+
source = "registry+https://github.com/rust-lang/crates.io-index"
575
+
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
576
+
dependencies = [
577
+
"core-foundation-sys",
578
+
"libc",
579
+
]
580
+
581
+
[[package]]
582
+
name = "core-foundation-sys"
583
+
version = "0.8.7"
584
+
source = "registry+https://github.com/rust-lang/crates.io-index"
585
+
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
586
+
587
+
[[package]]
588
+
name = "core2"
589
+
version = "0.4.0"
590
+
source = "registry+https://github.com/rust-lang/crates.io-index"
591
+
checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505"
592
+
dependencies = [
593
+
"memchr",
594
+
]
595
+
596
+
[[package]]
597
+
name = "cpufeatures"
598
+
version = "0.2.17"
599
+
source = "registry+https://github.com/rust-lang/crates.io-index"
600
+
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
601
+
dependencies = [
602
+
"libc",
603
+
]
604
+
605
+
[[package]]
606
+
name = "crc32fast"
607
+
version = "1.5.0"
608
+
source = "registry+https://github.com/rust-lang/crates.io-index"
609
+
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
610
+
dependencies = [
611
+
"cfg-if",
612
+
]
613
+
614
+
[[package]]
615
+
name = "crossbeam-channel"
616
+
version = "0.5.15"
617
+
source = "registry+https://github.com/rust-lang/crates.io-index"
618
+
checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
619
+
dependencies = [
620
+
"crossbeam-utils",
621
+
]
622
+
623
+
[[package]]
624
+
name = "crossbeam-epoch"
625
+
version = "0.9.18"
626
+
source = "registry+https://github.com/rust-lang/crates.io-index"
627
+
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
628
+
dependencies = [
629
+
"crossbeam-utils",
630
+
]
631
+
632
+
[[package]]
633
+
name = "crossbeam-utils"
634
+
version = "0.8.21"
635
+
source = "registry+https://github.com/rust-lang/crates.io-index"
636
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
637
+
638
+
[[package]]
639
+
name = "crunchy"
640
+
version = "0.2.4"
641
+
source = "registry+https://github.com/rust-lang/crates.io-index"
642
+
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
643
+
644
+
[[package]]
645
+
name = "crypto-bigint"
646
+
version = "0.5.5"
647
+
source = "registry+https://github.com/rust-lang/crates.io-index"
648
+
checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
649
+
dependencies = [
650
+
"generic-array",
651
+
"rand_core 0.6.4",
652
+
"subtle",
653
+
"zeroize",
654
+
]
655
+
656
+
[[package]]
657
+
name = "crypto-common"
658
+
version = "0.1.6"
659
+
source = "registry+https://github.com/rust-lang/crates.io-index"
660
+
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
661
+
dependencies = [
662
+
"generic-array",
663
+
"typenum",
664
+
]
665
+
666
+
[[package]]
667
+
name = "darling"
668
+
version = "0.21.3"
669
+
source = "registry+https://github.com/rust-lang/crates.io-index"
670
+
checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
671
+
dependencies = [
672
+
"darling_core",
673
+
"darling_macro",
674
+
]
675
+
676
+
[[package]]
677
+
name = "darling_core"
678
+
version = "0.21.3"
679
+
source = "registry+https://github.com/rust-lang/crates.io-index"
680
+
checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
681
+
dependencies = [
682
+
"fnv",
683
+
"ident_case",
684
+
"proc-macro2",
685
+
"quote",
686
+
"strsim",
687
+
"syn 2.0.108",
688
+
]
689
+
690
+
[[package]]
691
+
name = "darling_macro"
692
+
version = "0.21.3"
693
+
source = "registry+https://github.com/rust-lang/crates.io-index"
694
+
checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
695
+
dependencies = [
696
+
"darling_core",
697
+
"quote",
698
+
"syn 2.0.108",
699
+
]
700
+
701
+
[[package]]
702
+
name = "dashmap"
703
+
version = "6.1.0"
704
+
source = "registry+https://github.com/rust-lang/crates.io-index"
705
+
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
706
+
dependencies = [
707
+
"cfg-if",
708
+
"crossbeam-utils",
709
+
"hashbrown 0.14.5",
710
+
"lock_api",
711
+
"once_cell",
712
+
"parking_lot_core",
713
+
]
714
+
715
+
[[package]]
716
+
name = "data-encoding"
717
+
version = "2.9.0"
718
+
source = "registry+https://github.com/rust-lang/crates.io-index"
719
+
checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476"
720
+
721
+
[[package]]
722
+
name = "data-encoding-macro"
723
+
version = "0.1.18"
724
+
source = "registry+https://github.com/rust-lang/crates.io-index"
725
+
checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d"
726
+
dependencies = [
727
+
"data-encoding",
728
+
"data-encoding-macro-internal",
729
+
]
730
+
731
+
[[package]]
732
+
name = "data-encoding-macro-internal"
733
+
version = "0.1.16"
734
+
source = "registry+https://github.com/rust-lang/crates.io-index"
735
+
checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976"
736
+
dependencies = [
737
+
"data-encoding",
738
+
"syn 2.0.108",
739
+
]
740
+
741
+
[[package]]
742
+
name = "deflate"
743
+
version = "1.0.0"
744
+
source = "registry+https://github.com/rust-lang/crates.io-index"
745
+
checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f"
746
+
dependencies = [
747
+
"adler32",
748
+
"gzip-header",
749
+
]
750
+
751
+
[[package]]
752
+
name = "der"
753
+
version = "0.7.10"
754
+
source = "registry+https://github.com/rust-lang/crates.io-index"
755
+
checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb"
756
+
dependencies = [
757
+
"const-oid",
758
+
"pem-rfc7468",
759
+
"zeroize",
760
+
]
761
+
762
+
[[package]]
763
+
name = "deranged"
764
+
version = "0.5.5"
765
+
source = "registry+https://github.com/rust-lang/crates.io-index"
766
+
checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
767
+
dependencies = [
768
+
"powerfmt",
769
+
"serde_core",
770
+
]
771
+
772
+
[[package]]
773
+
name = "digest"
774
+
version = "0.10.7"
775
+
source = "registry+https://github.com/rust-lang/crates.io-index"
776
+
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
777
+
dependencies = [
778
+
"block-buffer",
779
+
"const-oid",
780
+
"crypto-common",
781
+
"subtle",
782
+
]
783
+
784
+
[[package]]
785
+
name = "dirs"
786
+
version = "6.0.0"
787
+
source = "registry+https://github.com/rust-lang/crates.io-index"
788
+
checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
789
+
dependencies = [
790
+
"dirs-sys",
791
+
]
792
+
793
+
[[package]]
794
+
name = "dirs-sys"
795
+
version = "0.5.0"
796
+
source = "registry+https://github.com/rust-lang/crates.io-index"
797
+
checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
798
+
dependencies = [
799
+
"libc",
800
+
"option-ext",
801
+
"redox_users",
802
+
"windows-sys 0.61.2",
803
+
]
804
+
805
+
[[package]]
806
+
name = "displaydoc"
807
+
version = "0.2.5"
808
+
source = "registry+https://github.com/rust-lang/crates.io-index"
809
+
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
810
+
dependencies = [
811
+
"proc-macro2",
812
+
"quote",
813
+
"syn 2.0.108",
814
+
]
815
+
816
+
[[package]]
817
+
name = "dyn-clone"
818
+
version = "1.0.20"
819
+
source = "registry+https://github.com/rust-lang/crates.io-index"
820
+
checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
821
+
822
+
[[package]]
823
+
name = "ecdsa"
824
+
version = "0.16.9"
825
+
source = "registry+https://github.com/rust-lang/crates.io-index"
826
+
checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
827
+
dependencies = [
828
+
"der",
829
+
"digest",
830
+
"elliptic-curve",
831
+
"rfc6979",
832
+
"signature",
833
+
"spki",
834
+
]
835
+
836
+
[[package]]
837
+
name = "elliptic-curve"
838
+
version = "0.13.8"
839
+
source = "registry+https://github.com/rust-lang/crates.io-index"
840
+
checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
841
+
dependencies = [
842
+
"base16ct",
843
+
"crypto-bigint",
844
+
"digest",
845
+
"ff",
846
+
"generic-array",
847
+
"group",
848
+
"pem-rfc7468",
849
+
"pkcs8",
850
+
"rand_core 0.6.4",
851
+
"sec1",
852
+
"subtle",
853
+
"zeroize",
854
+
]
855
+
856
+
[[package]]
857
+
name = "encoding_rs"
858
+
version = "0.8.35"
859
+
source = "registry+https://github.com/rust-lang/crates.io-index"
860
+
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
861
+
dependencies = [
862
+
"cfg-if",
863
+
]
864
+
865
+
[[package]]
866
+
name = "enum-as-inner"
867
+
version = "0.6.1"
868
+
source = "registry+https://github.com/rust-lang/crates.io-index"
869
+
checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
870
+
dependencies = [
871
+
"heck 0.5.0",
872
+
"proc-macro2",
873
+
"quote",
874
+
"syn 2.0.108",
875
+
]
876
+
877
+
[[package]]
878
+
name = "equivalent"
879
+
version = "1.0.2"
880
+
source = "registry+https://github.com/rust-lang/crates.io-index"
881
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
882
+
883
+
[[package]]
884
+
name = "errno"
885
+
version = "0.3.14"
886
+
source = "registry+https://github.com/rust-lang/crates.io-index"
887
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
888
+
dependencies = [
889
+
"libc",
890
+
"windows-sys 0.61.2",
891
+
]
892
+
893
+
[[package]]
894
+
name = "event-listener"
895
+
version = "5.4.1"
896
+
source = "registry+https://github.com/rust-lang/crates.io-index"
897
+
checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
898
+
dependencies = [
899
+
"concurrent-queue",
900
+
"parking",
901
+
"pin-project-lite",
902
+
]
903
+
904
+
[[package]]
905
+
name = "event-listener-strategy"
906
+
version = "0.5.4"
907
+
source = "registry+https://github.com/rust-lang/crates.io-index"
908
+
checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
909
+
dependencies = [
910
+
"event-listener",
911
+
"pin-project-lite",
912
+
]
913
+
914
+
[[package]]
915
+
name = "fastrand"
916
+
version = "2.3.0"
917
+
source = "registry+https://github.com/rust-lang/crates.io-index"
918
+
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
919
+
920
+
[[package]]
921
+
name = "ff"
922
+
version = "0.13.1"
923
+
source = "registry+https://github.com/rust-lang/crates.io-index"
924
+
checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393"
925
+
dependencies = [
926
+
"rand_core 0.6.4",
927
+
"subtle",
928
+
]
929
+
930
+
[[package]]
931
+
name = "filetime"
932
+
version = "0.2.26"
933
+
source = "registry+https://github.com/rust-lang/crates.io-index"
934
+
checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed"
935
+
dependencies = [
936
+
"cfg-if",
937
+
"libc",
938
+
"libredox",
939
+
"windows-sys 0.60.2",
940
+
]
941
+
942
+
[[package]]
943
+
name = "find-msvc-tools"
944
+
version = "0.1.4"
945
+
source = "registry+https://github.com/rust-lang/crates.io-index"
946
+
checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
947
+
948
+
[[package]]
949
+
name = "flate2"
950
+
version = "1.1.5"
951
+
source = "registry+https://github.com/rust-lang/crates.io-index"
952
+
checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
953
+
dependencies = [
954
+
"crc32fast",
955
+
"miniz_oxide",
956
+
]
957
+
958
+
[[package]]
959
+
name = "fnv"
960
+
version = "1.0.7"
961
+
source = "registry+https://github.com/rust-lang/crates.io-index"
962
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
963
+
964
+
[[package]]
965
+
name = "foreign-types"
966
+
version = "0.3.2"
967
+
source = "registry+https://github.com/rust-lang/crates.io-index"
968
+
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
969
+
dependencies = [
970
+
"foreign-types-shared",
971
+
]
972
+
973
+
[[package]]
974
+
name = "foreign-types-shared"
975
+
version = "0.1.1"
976
+
source = "registry+https://github.com/rust-lang/crates.io-index"
977
+
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
978
+
979
+
[[package]]
980
+
name = "form_urlencoded"
981
+
version = "1.2.2"
982
+
source = "registry+https://github.com/rust-lang/crates.io-index"
983
+
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
984
+
dependencies = [
985
+
"percent-encoding",
986
+
]
987
+
988
+
[[package]]
989
+
name = "futf"
990
+
version = "0.1.5"
991
+
source = "registry+https://github.com/rust-lang/crates.io-index"
992
+
checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
993
+
dependencies = [
994
+
"mac",
995
+
"new_debug_unreachable",
996
+
]
997
+
998
+
[[package]]
999
+
name = "futures-channel"
1000
+
version = "0.3.31"
1001
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1002
+
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
1003
+
dependencies = [
1004
+
"futures-core",
1005
+
]
1006
+
1007
+
[[package]]
1008
+
name = "futures-core"
1009
+
version = "0.3.31"
1010
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1011
+
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
1012
+
1013
+
[[package]]
1014
+
name = "futures-io"
1015
+
version = "0.3.31"
1016
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1017
+
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
1018
+
1019
+
[[package]]
1020
+
name = "futures-macro"
1021
+
version = "0.3.31"
1022
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1023
+
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
1024
+
dependencies = [
1025
+
"proc-macro2",
1026
+
"quote",
1027
+
"syn 2.0.108",
1028
+
]
1029
+
1030
+
[[package]]
1031
+
name = "futures-sink"
1032
+
version = "0.3.31"
1033
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1034
+
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
1035
+
1036
+
[[package]]
1037
+
name = "futures-task"
1038
+
version = "0.3.31"
1039
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1040
+
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
1041
+
1042
+
[[package]]
1043
+
name = "futures-util"
1044
+
version = "0.3.31"
1045
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1046
+
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
1047
+
dependencies = [
1048
+
"futures-core",
1049
+
"futures-io",
1050
+
"futures-macro",
1051
+
"futures-sink",
1052
+
"futures-task",
1053
+
"memchr",
1054
+
"pin-project-lite",
1055
+
"pin-utils",
1056
+
"slab",
1057
+
]
1058
+
1059
+
[[package]]
1060
+
name = "generic-array"
1061
+
version = "0.14.9"
1062
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1063
+
checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
1064
+
dependencies = [
1065
+
"typenum",
1066
+
"version_check",
1067
+
"zeroize",
1068
+
]
1069
+
1070
+
[[package]]
1071
+
name = "getrandom"
1072
+
version = "0.2.16"
1073
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1074
+
checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
1075
+
dependencies = [
1076
+
"cfg-if",
1077
+
"js-sys",
1078
+
"libc",
1079
+
"wasi",
1080
+
"wasm-bindgen",
1081
+
]
1082
+
1083
+
[[package]]
1084
+
name = "getrandom"
1085
+
version = "0.3.4"
1086
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1087
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
1088
+
dependencies = [
1089
+
"cfg-if",
1090
+
"js-sys",
1091
+
"libc",
1092
+
"r-efi",
1093
+
"wasip2",
1094
+
"wasm-bindgen",
1095
+
]
1096
+
1097
+
[[package]]
1098
+
name = "gimli"
1099
+
version = "0.32.3"
1100
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1101
+
checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
1102
+
1103
+
[[package]]
1104
+
name = "group"
1105
+
version = "0.13.0"
1106
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1107
+
checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
1108
+
dependencies = [
1109
+
"ff",
1110
+
"rand_core 0.6.4",
1111
+
"subtle",
1112
+
]
1113
+
1114
+
[[package]]
1115
+
name = "gzip-header"
1116
+
version = "1.0.0"
1117
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1118
+
checksum = "95cc527b92e6029a62960ad99aa8a6660faa4555fe5f731aab13aa6a921795a2"
1119
+
dependencies = [
1120
+
"crc32fast",
1121
+
]
1122
+
1123
+
[[package]]
1124
+
name = "h2"
1125
+
version = "0.4.12"
1126
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1127
+
checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
1128
+
dependencies = [
1129
+
"atomic-waker",
1130
+
"bytes",
1131
+
"fnv",
1132
+
"futures-core",
1133
+
"futures-sink",
1134
+
"http",
1135
+
"indexmap 2.12.0",
1136
+
"slab",
1137
+
"tokio",
1138
+
"tokio-util",
1139
+
"tracing",
1140
+
]
1141
+
1142
+
[[package]]
1143
+
name = "half"
1144
+
version = "2.7.1"
1145
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1146
+
checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
1147
+
dependencies = [
1148
+
"cfg-if",
1149
+
"crunchy",
1150
+
"zerocopy",
1151
+
]
1152
+
1153
+
[[package]]
1154
+
name = "hashbrown"
1155
+
version = "0.12.3"
1156
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1157
+
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
1158
+
1159
+
[[package]]
1160
+
name = "hashbrown"
1161
+
version = "0.14.5"
1162
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1163
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
1164
+
1165
+
[[package]]
1166
+
name = "hashbrown"
1167
+
version = "0.16.0"
1168
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1169
+
checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
1170
+
1171
+
[[package]]
1172
+
name = "heck"
1173
+
version = "0.4.1"
1174
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1175
+
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
1176
+
1177
+
[[package]]
1178
+
name = "heck"
1179
+
version = "0.5.0"
1180
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1181
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
1182
+
1183
+
[[package]]
1184
+
name = "hermit-abi"
1185
+
version = "0.5.2"
1186
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1187
+
checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
1188
+
1189
+
[[package]]
1190
+
name = "hex"
1191
+
version = "0.4.3"
1192
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1193
+
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1194
+
1195
+
[[package]]
1196
+
name = "hex_fmt"
1197
+
version = "0.3.0"
1198
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1199
+
checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f"
1200
+
1201
+
[[package]]
1202
+
name = "hickory-proto"
1203
+
version = "0.24.4"
1204
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1205
+
checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248"
1206
+
dependencies = [
1207
+
"async-trait",
1208
+
"cfg-if",
1209
+
"data-encoding",
1210
+
"enum-as-inner",
1211
+
"futures-channel",
1212
+
"futures-io",
1213
+
"futures-util",
1214
+
"idna",
1215
+
"ipnet",
1216
+
"once_cell",
1217
+
"rand 0.8.5",
1218
+
"thiserror 1.0.69",
1219
+
"tinyvec",
1220
+
"tokio",
1221
+
"tracing",
1222
+
"url",
1223
+
]
1224
+
1225
+
[[package]]
1226
+
name = "hickory-resolver"
1227
+
version = "0.24.4"
1228
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1229
+
checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e"
1230
+
dependencies = [
1231
+
"cfg-if",
1232
+
"futures-util",
1233
+
"hickory-proto",
1234
+
"ipconfig",
1235
+
"lru-cache",
1236
+
"once_cell",
1237
+
"parking_lot",
1238
+
"rand 0.8.5",
1239
+
"resolv-conf",
1240
+
"smallvec",
1241
+
"thiserror 1.0.69",
1242
+
"tokio",
1243
+
"tracing",
1244
+
]
1245
+
1246
+
[[package]]
1247
+
name = "hmac"
1248
+
version = "0.12.1"
1249
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1250
+
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
1251
+
dependencies = [
1252
+
"digest",
1253
+
]
1254
+
1255
+
[[package]]
1256
+
name = "home"
1257
+
version = "0.5.12"
1258
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1259
+
checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d"
1260
+
dependencies = [
1261
+
"windows-sys 0.61.2",
1262
+
]
1263
+
1264
+
[[package]]
1265
+
name = "html5ever"
1266
+
version = "0.27.0"
1267
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1268
+
checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4"
1269
+
dependencies = [
1270
+
"log",
1271
+
"mac",
1272
+
"markup5ever",
1273
+
"proc-macro2",
1274
+
"quote",
1275
+
"syn 2.0.108",
1276
+
]
1277
+
1278
+
[[package]]
1279
+
name = "http"
1280
+
version = "1.3.1"
1281
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1282
+
checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
1283
+
dependencies = [
1284
+
"bytes",
1285
+
"fnv",
1286
+
"itoa",
1287
+
]
1288
+
1289
+
[[package]]
1290
+
name = "http-body"
1291
+
version = "1.0.1"
1292
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1293
+
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
1294
+
dependencies = [
1295
+
"bytes",
1296
+
"http",
1297
+
]
1298
+
1299
+
[[package]]
1300
+
name = "http-body-util"
1301
+
version = "0.1.3"
1302
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1303
+
checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
1304
+
dependencies = [
1305
+
"bytes",
1306
+
"futures-core",
1307
+
"http",
1308
+
"http-body",
1309
+
"pin-project-lite",
1310
+
]
1311
+
1312
+
[[package]]
1313
+
name = "httparse"
1314
+
version = "1.10.1"
1315
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1316
+
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
1317
+
1318
+
[[package]]
1319
+
name = "httpdate"
1320
+
version = "1.0.3"
1321
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1322
+
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
1323
+
1324
+
[[package]]
1325
+
name = "hyper"
1326
+
version = "1.7.0"
1327
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1328
+
checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e"
1329
+
dependencies = [
1330
+
"atomic-waker",
1331
+
"bytes",
1332
+
"futures-channel",
1333
+
"futures-core",
1334
+
"h2",
1335
+
"http",
1336
+
"http-body",
1337
+
"httparse",
1338
+
"itoa",
1339
+
"pin-project-lite",
1340
+
"pin-utils",
1341
+
"smallvec",
1342
+
"tokio",
1343
+
"want",
1344
+
]
1345
+
1346
+
[[package]]
1347
+
name = "hyper-rustls"
1348
+
version = "0.27.7"
1349
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1350
+
checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58"
1351
+
dependencies = [
1352
+
"http",
1353
+
"hyper",
1354
+
"hyper-util",
1355
+
"rustls",
1356
+
"rustls-pki-types",
1357
+
"tokio",
1358
+
"tokio-rustls",
1359
+
"tower-service",
1360
+
"webpki-roots",
1361
+
]
1362
+
1363
+
[[package]]
1364
+
name = "hyper-tls"
1365
+
version = "0.6.0"
1366
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1367
+
checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
1368
+
dependencies = [
1369
+
"bytes",
1370
+
"http-body-util",
1371
+
"hyper",
1372
+
"hyper-util",
1373
+
"native-tls",
1374
+
"tokio",
1375
+
"tokio-native-tls",
1376
+
"tower-service",
1377
+
]
1378
+
1379
+
[[package]]
1380
+
name = "hyper-util"
1381
+
version = "0.1.17"
1382
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1383
+
checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8"
1384
+
dependencies = [
1385
+
"base64 0.22.1",
1386
+
"bytes",
1387
+
"futures-channel",
1388
+
"futures-core",
1389
+
"futures-util",
1390
+
"http",
1391
+
"http-body",
1392
+
"hyper",
1393
+
"ipnet",
1394
+
"libc",
1395
+
"percent-encoding",
1396
+
"pin-project-lite",
1397
+
"socket2 0.6.1",
1398
+
"system-configuration",
1399
+
"tokio",
1400
+
"tower-service",
1401
+
"tracing",
1402
+
"windows-registry",
1403
+
]
1404
+
1405
+
[[package]]
1406
+
name = "iana-time-zone"
1407
+
version = "0.1.64"
1408
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1409
+
checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
1410
+
dependencies = [
1411
+
"android_system_properties",
1412
+
"core-foundation-sys",
1413
+
"iana-time-zone-haiku",
1414
+
"js-sys",
1415
+
"log",
1416
+
"wasm-bindgen",
1417
+
"windows-core",
1418
+
]
1419
+
1420
+
[[package]]
1421
+
name = "iana-time-zone-haiku"
1422
+
version = "0.1.2"
1423
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1424
+
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
1425
+
dependencies = [
1426
+
"cc",
1427
+
]
1428
+
1429
+
[[package]]
1430
+
name = "icu_collections"
1431
+
version = "2.1.1"
1432
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1433
+
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
1434
+
dependencies = [
1435
+
"displaydoc",
1436
+
"potential_utf",
1437
+
"yoke",
1438
+
"zerofrom",
1439
+
"zerovec",
1440
+
]
1441
+
1442
+
[[package]]
1443
+
name = "icu_locale_core"
1444
+
version = "2.1.1"
1445
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1446
+
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
1447
+
dependencies = [
1448
+
"displaydoc",
1449
+
"litemap",
1450
+
"tinystr",
1451
+
"writeable",
1452
+
"zerovec",
1453
+
]
1454
+
1455
+
[[package]]
1456
+
name = "icu_normalizer"
1457
+
version = "2.1.1"
1458
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1459
+
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
1460
+
dependencies = [
1461
+
"icu_collections",
1462
+
"icu_normalizer_data",
1463
+
"icu_properties",
1464
+
"icu_provider",
1465
+
"smallvec",
1466
+
"zerovec",
1467
+
]
1468
+
1469
+
[[package]]
1470
+
name = "icu_normalizer_data"
1471
+
version = "2.1.1"
1472
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1473
+
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
1474
+
1475
+
[[package]]
1476
+
name = "icu_properties"
1477
+
version = "2.1.1"
1478
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1479
+
checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99"
1480
+
dependencies = [
1481
+
"icu_collections",
1482
+
"icu_locale_core",
1483
+
"icu_properties_data",
1484
+
"icu_provider",
1485
+
"zerotrie",
1486
+
"zerovec",
1487
+
]
1488
+
1489
+
[[package]]
1490
+
name = "icu_properties_data"
1491
+
version = "2.1.1"
1492
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1493
+
checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899"
1494
+
1495
+
[[package]]
1496
+
name = "icu_provider"
1497
+
version = "2.1.1"
1498
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1499
+
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
1500
+
dependencies = [
1501
+
"displaydoc",
1502
+
"icu_locale_core",
1503
+
"writeable",
1504
+
"yoke",
1505
+
"zerofrom",
1506
+
"zerotrie",
1507
+
"zerovec",
1508
+
]
1509
+
1510
+
[[package]]
1511
+
name = "ident_case"
1512
+
version = "1.0.1"
1513
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1514
+
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
1515
+
1516
+
[[package]]
1517
+
name = "idna"
1518
+
version = "1.1.0"
1519
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1520
+
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
1521
+
dependencies = [
1522
+
"idna_adapter",
1523
+
"smallvec",
1524
+
"utf8_iter",
1525
+
]
1526
+
1527
+
[[package]]
1528
+
name = "idna_adapter"
1529
+
version = "1.2.1"
1530
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1531
+
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
1532
+
dependencies = [
1533
+
"icu_normalizer",
1534
+
"icu_properties",
1535
+
]
1536
+
1537
+
[[package]]
1538
+
name = "indexmap"
1539
+
version = "1.9.3"
1540
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1541
+
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
1542
+
dependencies = [
1543
+
"autocfg",
1544
+
"hashbrown 0.12.3",
1545
+
"serde",
1546
+
]
1547
+
1548
+
[[package]]
1549
+
name = "indexmap"
1550
+
version = "2.12.0"
1551
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1552
+
checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
1553
+
dependencies = [
1554
+
"equivalent",
1555
+
"hashbrown 0.16.0",
1556
+
"serde",
1557
+
"serde_core",
1558
+
]
1559
+
1560
+
[[package]]
1561
+
name = "indoc"
1562
+
version = "2.0.7"
1563
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1564
+
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
1565
+
dependencies = [
1566
+
"rustversion",
1567
+
]
1568
+
1569
+
[[package]]
1570
+
name = "inventory"
1571
+
version = "0.3.21"
1572
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1573
+
checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e"
1574
+
dependencies = [
1575
+
"rustversion",
1576
+
]
1577
+
1578
+
[[package]]
1579
+
name = "ipconfig"
1580
+
version = "0.3.2"
1581
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1582
+
checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
1583
+
dependencies = [
1584
+
"socket2 0.5.10",
1585
+
"widestring",
1586
+
"windows-sys 0.48.0",
1587
+
"winreg",
1588
+
]
1589
+
1590
+
[[package]]
1591
+
name = "ipld-core"
1592
+
version = "0.4.2"
1593
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1594
+
checksum = "104718b1cc124d92a6d01ca9c9258a7df311405debb3408c445a36452f9bf8db"
1595
+
dependencies = [
1596
+
"cid",
1597
+
"serde",
1598
+
"serde_bytes",
1599
+
]
1600
+
1601
+
[[package]]
1602
+
name = "ipnet"
1603
+
version = "2.11.0"
1604
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1605
+
checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
1606
+
1607
+
[[package]]
1608
+
name = "iri-string"
1609
+
version = "0.7.8"
1610
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1611
+
checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"
1612
+
dependencies = [
1613
+
"memchr",
1614
+
"serde",
1615
+
]
1616
+
1617
+
[[package]]
1618
+
name = "is_ci"
1619
+
version = "1.2.0"
1620
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1621
+
checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
1622
+
1623
+
[[package]]
1624
+
name = "is_terminal_polyfill"
1625
+
version = "1.70.2"
1626
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1627
+
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
1628
+
1629
+
[[package]]
1630
+
name = "itoa"
1631
+
version = "1.0.15"
1632
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1633
+
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1634
+
1635
+
[[package]]
1636
+
name = "jacquard"
1637
+
version = "0.8.0"
1638
+
dependencies = [
1639
+
"bytes",
1640
+
"getrandom 0.2.16",
1641
+
"http",
1642
+
"jacquard-api",
1643
+
"jacquard-common",
1644
+
"jacquard-derive",
1645
+
"jacquard-identity",
1646
+
"jacquard-oauth",
1647
+
"jose-jwk",
1648
+
"miette",
1649
+
"regex",
1650
+
"reqwest",
1651
+
"serde",
1652
+
"serde_html_form",
1653
+
"serde_json",
1654
+
"smol_str",
1655
+
"thiserror 2.0.17",
1656
+
"tokio",
1657
+
"trait-variant",
1658
+
"url",
1659
+
"webpage",
1660
+
]
1661
+
1662
+
[[package]]
1663
+
name = "jacquard-api"
1664
+
version = "0.8.0"
1665
+
dependencies = [
1666
+
"bon",
1667
+
"bytes",
1668
+
"jacquard-common",
1669
+
"jacquard-derive",
1670
+
"jacquard-lexicon",
1671
+
"miette",
1672
+
"rustversion",
1673
+
"serde",
1674
+
"serde_ipld_dagcbor",
1675
+
"thiserror 2.0.17",
1676
+
"unicode-segmentation",
1677
+
]
1678
+
1679
+
[[package]]
1680
+
name = "jacquard-common"
1681
+
version = "0.8.0"
1682
+
dependencies = [
1683
+
"base64 0.22.1",
1684
+
"bon",
1685
+
"bytes",
1686
+
"chrono",
1687
+
"cid",
1688
+
"getrandom 0.2.16",
1689
+
"getrandom 0.3.4",
1690
+
"http",
1691
+
"ipld-core",
1692
+
"k256",
1693
+
"langtag",
1694
+
"miette",
1695
+
"multibase",
1696
+
"multihash",
1697
+
"ouroboros",
1698
+
"p256",
1699
+
"rand 0.9.2",
1700
+
"regex",
1701
+
"reqwest",
1702
+
"serde",
1703
+
"serde_html_form",
1704
+
"serde_ipld_dagcbor",
1705
+
"serde_json",
1706
+
"signature",
1707
+
"smol_str",
1708
+
"thiserror 2.0.17",
1709
+
"tokio",
1710
+
"tokio-util",
1711
+
"trait-variant",
1712
+
"url",
1713
+
]
1714
+
1715
+
[[package]]
1716
+
name = "jacquard-derive"
1717
+
version = "0.8.0"
1718
+
dependencies = [
1719
+
"heck 0.5.0",
1720
+
"jacquard-lexicon",
1721
+
"proc-macro2",
1722
+
"quote",
1723
+
"syn 2.0.108",
1724
+
]
1725
+
1726
+
[[package]]
1727
+
name = "jacquard-identity"
1728
+
version = "0.8.0"
1729
+
dependencies = [
1730
+
"bon",
1731
+
"bytes",
1732
+
"hickory-resolver",
1733
+
"http",
1734
+
"jacquard-api",
1735
+
"jacquard-common",
1736
+
"jacquard-lexicon",
1737
+
"miette",
1738
+
"moka",
1739
+
"percent-encoding",
1740
+
"reqwest",
1741
+
"serde",
1742
+
"serde_html_form",
1743
+
"serde_json",
1744
+
"thiserror 2.0.17",
1745
+
"tokio",
1746
+
"trait-variant",
1747
+
"url",
1748
+
"urlencoding",
1749
+
]
1750
+
1751
+
[[package]]
1752
+
name = "jacquard-lexicon"
1753
+
version = "0.8.0"
1754
+
dependencies = [
1755
+
"cid",
1756
+
"dashmap",
1757
+
"heck 0.5.0",
1758
+
"inventory",
1759
+
"jacquard-common",
1760
+
"miette",
1761
+
"multihash",
1762
+
"prettyplease",
1763
+
"proc-macro2",
1764
+
"quote",
1765
+
"serde",
1766
+
"serde_ipld_dagcbor",
1767
+
"serde_json",
1768
+
"serde_repr",
1769
+
"serde_with",
1770
+
"sha2",
1771
+
"syn 2.0.108",
1772
+
"thiserror 2.0.17",
1773
+
"unicode-segmentation",
1774
+
]
1775
+
1776
+
[[package]]
1777
+
name = "jacquard-oauth"
1778
+
version = "0.8.0"
1779
+
dependencies = [
1780
+
"base64 0.22.1",
1781
+
"bytes",
1782
+
"chrono",
1783
+
"dashmap",
1784
+
"elliptic-curve",
1785
+
"http",
1786
+
"jacquard-common",
1787
+
"jacquard-identity",
1788
+
"jose-jwa",
1789
+
"jose-jwk",
1790
+
"miette",
1791
+
"p256",
1792
+
"rand 0.8.5",
1793
+
"rouille",
1794
+
"serde",
1795
+
"serde_html_form",
1796
+
"serde_json",
1797
+
"sha2",
1798
+
"signature",
1799
+
"smol_str",
1800
+
"thiserror 2.0.17",
1801
+
"tokio",
1802
+
"trait-variant",
1803
+
"url",
1804
+
"webbrowser",
1805
+
]
1806
+
1807
+
[[package]]
1808
+
name = "jni"
1809
+
version = "0.21.1"
1810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1811
+
checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
1812
+
dependencies = [
1813
+
"cesu8",
1814
+
"cfg-if",
1815
+
"combine",
1816
+
"jni-sys",
1817
+
"log",
1818
+
"thiserror 1.0.69",
1819
+
"walkdir",
1820
+
"windows-sys 0.45.0",
1821
+
]
1822
+
1823
+
[[package]]
1824
+
name = "jni-sys"
1825
+
version = "0.3.0"
1826
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1827
+
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
1828
+
1829
+
[[package]]
1830
+
name = "jose-b64"
1831
+
version = "0.1.2"
1832
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1833
+
checksum = "bec69375368709666b21c76965ce67549f2d2db7605f1f8707d17c9656801b56"
1834
+
dependencies = [
1835
+
"base64ct",
1836
+
"serde",
1837
+
"subtle",
1838
+
"zeroize",
1839
+
]
1840
+
1841
+
[[package]]
1842
+
name = "jose-jwa"
1843
+
version = "0.1.2"
1844
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1845
+
checksum = "9ab78e053fe886a351d67cf0d194c000f9d0dcb92906eb34d853d7e758a4b3a7"
1846
+
dependencies = [
1847
+
"serde",
1848
+
]
1849
+
1850
+
[[package]]
1851
+
name = "jose-jwk"
1852
+
version = "0.1.2"
1853
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1854
+
checksum = "280fa263807fe0782ecb6f2baadc28dffc04e00558a58e33bfdb801d11fd58e7"
1855
+
dependencies = [
1856
+
"jose-b64",
1857
+
"jose-jwa",
1858
+
"p256",
1859
+
"p384",
1860
+
"rsa",
1861
+
"serde",
1862
+
"zeroize",
1863
+
]
1864
+
1865
+
[[package]]
1866
+
name = "js-sys"
1867
+
version = "0.3.82"
1868
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1869
+
checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
1870
+
dependencies = [
1871
+
"once_cell",
1872
+
"wasm-bindgen",
1873
+
]
1874
+
1875
+
[[package]]
1876
+
name = "k256"
1877
+
version = "0.13.4"
1878
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1879
+
checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b"
1880
+
dependencies = [
1881
+
"cfg-if",
1882
+
"ecdsa",
1883
+
"elliptic-curve",
1884
+
"sha2",
1885
+
]
1886
+
1887
+
[[package]]
1888
+
name = "langtag"
1889
+
version = "0.4.0"
1890
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1891
+
checksum = "9ecb4c689a30e48ebeaa14237f34037e300dd072e6ad21a9ec72e810ff3c6600"
1892
+
dependencies = [
1893
+
"serde",
1894
+
"static-regular-grammar",
1895
+
"thiserror 1.0.69",
1896
+
]
1897
+
1898
+
[[package]]
1899
+
name = "lazy_static"
1900
+
version = "1.5.0"
1901
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1902
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1903
+
dependencies = [
1904
+
"spin",
1905
+
]
1906
+
1907
+
[[package]]
1908
+
name = "libc"
1909
+
version = "0.2.177"
1910
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1911
+
checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
1912
+
1913
+
[[package]]
1914
+
name = "libm"
1915
+
version = "0.2.15"
1916
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1917
+
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
1918
+
1919
+
[[package]]
1920
+
name = "libredox"
1921
+
version = "0.1.10"
1922
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1923
+
checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb"
1924
+
dependencies = [
1925
+
"bitflags",
1926
+
"libc",
1927
+
"redox_syscall",
1928
+
]
1929
+
1930
+
[[package]]
1931
+
name = "linked-hash-map"
1932
+
version = "0.5.6"
1933
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1934
+
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
1935
+
1936
+
[[package]]
1937
+
name = "linux-raw-sys"
1938
+
version = "0.11.0"
1939
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1940
+
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
1941
+
1942
+
[[package]]
1943
+
name = "litemap"
1944
+
version = "0.8.1"
1945
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1946
+
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
1947
+
1948
+
[[package]]
1949
+
name = "lock_api"
1950
+
version = "0.4.14"
1951
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1952
+
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
1953
+
dependencies = [
1954
+
"scopeguard",
1955
+
]
1956
+
1957
+
[[package]]
1958
+
name = "log"
1959
+
version = "0.4.28"
1960
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1961
+
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
1962
+
1963
+
[[package]]
1964
+
name = "lru-cache"
1965
+
version = "0.1.2"
1966
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1967
+
checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
1968
+
dependencies = [
1969
+
"linked-hash-map",
1970
+
]
1971
+
1972
+
[[package]]
1973
+
name = "lru-slab"
1974
+
version = "0.1.2"
1975
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1976
+
checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
1977
+
1978
+
[[package]]
1979
+
name = "mac"
1980
+
version = "0.1.1"
1981
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1982
+
checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
1983
+
1984
+
[[package]]
1985
+
name = "malloc_buf"
1986
+
version = "0.0.6"
1987
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1988
+
checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
1989
+
dependencies = [
1990
+
"libc",
1991
+
]
1992
+
1993
+
[[package]]
1994
+
name = "markup5ever"
1995
+
version = "0.12.1"
1996
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1997
+
checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45"
1998
+
dependencies = [
1999
+
"log",
2000
+
"phf",
2001
+
"phf_codegen",
2002
+
"string_cache",
2003
+
"string_cache_codegen",
2004
+
"tendril",
2005
+
]
2006
+
2007
+
[[package]]
2008
+
name = "markup5ever_rcdom"
2009
+
version = "0.3.0"
2010
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2011
+
checksum = "edaa21ab3701bfee5099ade5f7e1f84553fd19228cf332f13cd6e964bf59be18"
2012
+
dependencies = [
2013
+
"html5ever",
2014
+
"markup5ever",
2015
+
"tendril",
2016
+
"xml5ever",
2017
+
]
2018
+
2019
+
[[package]]
2020
+
name = "match-lookup"
2021
+
version = "0.1.1"
2022
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2023
+
checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e"
2024
+
dependencies = [
2025
+
"proc-macro2",
2026
+
"quote",
2027
+
"syn 1.0.109",
2028
+
]
2029
+
2030
+
[[package]]
2031
+
name = "memchr"
2032
+
version = "2.7.6"
2033
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2034
+
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
2035
+
2036
+
[[package]]
2037
+
name = "miette"
2038
+
version = "7.6.0"
2039
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2040
+
checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7"
2041
+
dependencies = [
2042
+
"backtrace",
2043
+
"backtrace-ext",
2044
+
"cfg-if",
2045
+
"miette-derive",
2046
+
"owo-colors",
2047
+
"supports-color",
2048
+
"supports-hyperlinks",
2049
+
"supports-unicode",
2050
+
"terminal_size",
2051
+
"textwrap",
2052
+
"unicode-width 0.1.14",
2053
+
]
2054
+
2055
+
[[package]]
2056
+
name = "miette-derive"
2057
+
version = "7.6.0"
2058
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2059
+
checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b"
2060
+
dependencies = [
2061
+
"proc-macro2",
2062
+
"quote",
2063
+
"syn 2.0.108",
2064
+
]
2065
+
2066
+
[[package]]
2067
+
name = "mime"
2068
+
version = "0.3.17"
2069
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2070
+
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
2071
+
2072
+
[[package]]
2073
+
name = "mime_guess"
2074
+
version = "2.0.5"
2075
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2076
+
checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
2077
+
dependencies = [
2078
+
"mime",
2079
+
"unicase",
2080
+
]
2081
+
2082
+
[[package]]
2083
+
name = "minimal-lexical"
2084
+
version = "0.2.1"
2085
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2086
+
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
2087
+
2088
+
[[package]]
2089
+
name = "miniz_oxide"
2090
+
version = "0.8.9"
2091
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2092
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
2093
+
dependencies = [
2094
+
"adler2",
2095
+
"simd-adler32",
2096
+
]
2097
+
2098
+
[[package]]
2099
+
name = "mio"
2100
+
version = "1.1.0"
2101
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2102
+
checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873"
2103
+
dependencies = [
2104
+
"libc",
2105
+
"wasi",
2106
+
"windows-sys 0.61.2",
2107
+
]
2108
+
2109
+
[[package]]
2110
+
name = "moka"
2111
+
version = "0.12.11"
2112
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2113
+
checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077"
2114
+
dependencies = [
2115
+
"async-lock",
2116
+
"crossbeam-channel",
2117
+
"crossbeam-epoch",
2118
+
"crossbeam-utils",
2119
+
"equivalent",
2120
+
"event-listener",
2121
+
"futures-util",
2122
+
"parking_lot",
2123
+
"portable-atomic",
2124
+
"rustc_version",
2125
+
"smallvec",
2126
+
"tagptr",
2127
+
"uuid",
2128
+
]
2129
+
2130
+
[[package]]
2131
+
name = "multibase"
2132
+
version = "0.9.2"
2133
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2134
+
checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77"
2135
+
dependencies = [
2136
+
"base-x",
2137
+
"base256emoji",
2138
+
"data-encoding",
2139
+
"data-encoding-macro",
2140
+
]
2141
+
2142
+
[[package]]
2143
+
name = "multihash"
2144
+
version = "0.19.3"
2145
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2146
+
checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d"
2147
+
dependencies = [
2148
+
"core2",
2149
+
"serde",
2150
+
"unsigned-varint",
2151
+
]
2152
+
2153
+
[[package]]
2154
+
name = "multipart"
2155
+
version = "0.18.0"
2156
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2157
+
checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182"
2158
+
dependencies = [
2159
+
"buf_redux",
2160
+
"httparse",
2161
+
"log",
2162
+
"mime",
2163
+
"mime_guess",
2164
+
"quick-error",
2165
+
"rand 0.8.5",
2166
+
"safemem",
2167
+
"tempfile",
2168
+
"twoway",
2169
+
]
2170
+
2171
+
[[package]]
2172
+
name = "native-tls"
2173
+
version = "0.2.14"
2174
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2175
+
checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e"
2176
+
dependencies = [
2177
+
"libc",
2178
+
"log",
2179
+
"openssl",
2180
+
"openssl-probe",
2181
+
"openssl-sys",
2182
+
"schannel",
2183
+
"security-framework",
2184
+
"security-framework-sys",
2185
+
"tempfile",
2186
+
]
2187
+
2188
+
[[package]]
2189
+
name = "ndk-context"
2190
+
version = "0.1.1"
2191
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2192
+
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
2193
+
2194
+
[[package]]
2195
+
name = "new_debug_unreachable"
2196
+
version = "1.0.6"
2197
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2198
+
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
2199
+
2200
+
[[package]]
2201
+
name = "nom"
2202
+
version = "7.1.3"
2203
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2204
+
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
2205
+
dependencies = [
2206
+
"memchr",
2207
+
"minimal-lexical",
2208
+
]
2209
+
2210
+
[[package]]
2211
+
name = "num-bigint-dig"
2212
+
version = "0.8.5"
2213
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2214
+
checksum = "82c79c15c05d4bf82b6f5ef163104cc81a760d8e874d38ac50ab67c8877b647b"
2215
+
dependencies = [
2216
+
"lazy_static",
2217
+
"libm",
2218
+
"num-integer",
2219
+
"num-iter",
2220
+
"num-traits",
2221
+
"rand 0.8.5",
2222
+
"smallvec",
2223
+
"zeroize",
2224
+
]
2225
+
2226
+
[[package]]
2227
+
name = "num-conv"
2228
+
version = "0.1.0"
2229
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2230
+
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
2231
+
2232
+
[[package]]
2233
+
name = "num-integer"
2234
+
version = "0.1.46"
2235
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2236
+
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
2237
+
dependencies = [
2238
+
"num-traits",
2239
+
]
2240
+
2241
+
[[package]]
2242
+
name = "num-iter"
2243
+
version = "0.1.45"
2244
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2245
+
checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
2246
+
dependencies = [
2247
+
"autocfg",
2248
+
"num-integer",
2249
+
"num-traits",
2250
+
]
2251
+
2252
+
[[package]]
2253
+
name = "num-traits"
2254
+
version = "0.2.19"
2255
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2256
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
2257
+
dependencies = [
2258
+
"autocfg",
2259
+
"libm",
2260
+
]
2261
+
2262
+
[[package]]
2263
+
name = "num_cpus"
2264
+
version = "1.17.0"
2265
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2266
+
checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
2267
+
dependencies = [
2268
+
"hermit-abi",
2269
+
"libc",
2270
+
]
2271
+
2272
+
[[package]]
2273
+
name = "num_threads"
2274
+
version = "0.1.7"
2275
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2276
+
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
2277
+
dependencies = [
2278
+
"libc",
2279
+
]
2280
+
2281
+
[[package]]
2282
+
name = "objc"
2283
+
version = "0.2.7"
2284
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2285
+
checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
2286
+
dependencies = [
2287
+
"malloc_buf",
2288
+
]
2289
+
2290
+
[[package]]
2291
+
name = "object"
2292
+
version = "0.37.3"
2293
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2294
+
checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
2295
+
dependencies = [
2296
+
"memchr",
2297
+
]
2298
+
2299
+
[[package]]
2300
+
name = "once_cell"
2301
+
version = "1.21.3"
2302
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2303
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
2304
+
2305
+
[[package]]
2306
+
name = "once_cell_polyfill"
2307
+
version = "1.70.2"
2308
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2309
+
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
2310
+
2311
+
[[package]]
2312
+
name = "openssl"
2313
+
version = "0.10.74"
2314
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2315
+
checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654"
2316
+
dependencies = [
2317
+
"bitflags",
2318
+
"cfg-if",
2319
+
"foreign-types",
2320
+
"libc",
2321
+
"once_cell",
2322
+
"openssl-macros",
2323
+
"openssl-sys",
2324
+
]
2325
+
2326
+
[[package]]
2327
+
name = "openssl-macros"
2328
+
version = "0.1.1"
2329
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2330
+
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
2331
+
dependencies = [
2332
+
"proc-macro2",
2333
+
"quote",
2334
+
"syn 2.0.108",
2335
+
]
2336
+
2337
+
[[package]]
2338
+
name = "openssl-probe"
2339
+
version = "0.1.6"
2340
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2341
+
checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
2342
+
2343
+
[[package]]
2344
+
name = "openssl-sys"
2345
+
version = "0.9.110"
2346
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2347
+
checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2"
2348
+
dependencies = [
2349
+
"cc",
2350
+
"libc",
2351
+
"pkg-config",
2352
+
"vcpkg",
2353
+
]
2354
+
2355
+
[[package]]
2356
+
name = "option-ext"
2357
+
version = "0.2.0"
2358
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2359
+
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
2360
+
2361
+
[[package]]
2362
+
name = "ouroboros"
2363
+
version = "0.18.5"
2364
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2365
+
checksum = "1e0f050db9c44b97a94723127e6be766ac5c340c48f2c4bb3ffa11713744be59"
2366
+
dependencies = [
2367
+
"aliasable",
2368
+
"ouroboros_macro",
2369
+
"static_assertions",
2370
+
]
2371
+
2372
+
[[package]]
2373
+
name = "ouroboros_macro"
2374
+
version = "0.18.5"
2375
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2376
+
checksum = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0"
2377
+
dependencies = [
2378
+
"heck 0.4.1",
2379
+
"proc-macro2",
2380
+
"proc-macro2-diagnostics",
2381
+
"quote",
2382
+
"syn 2.0.108",
2383
+
]
2384
+
2385
+
[[package]]
2386
+
name = "owo-colors"
2387
+
version = "4.2.3"
2388
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2389
+
checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52"
2390
+
2391
+
[[package]]
2392
+
name = "p256"
2393
+
version = "0.13.2"
2394
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2395
+
checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
2396
+
dependencies = [
2397
+
"ecdsa",
2398
+
"elliptic-curve",
2399
+
"primeorder",
2400
+
"sha2",
2401
+
]
2402
+
2403
+
[[package]]
2404
+
name = "p384"
2405
+
version = "0.13.1"
2406
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2407
+
checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6"
2408
+
dependencies = [
2409
+
"elliptic-curve",
2410
+
"primeorder",
2411
+
]
2412
+
2413
+
[[package]]
2414
+
name = "parking"
2415
+
version = "2.2.1"
2416
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2417
+
checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
2418
+
2419
+
[[package]]
2420
+
name = "parking_lot"
2421
+
version = "0.12.5"
2422
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2423
+
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
2424
+
dependencies = [
2425
+
"lock_api",
2426
+
"parking_lot_core",
2427
+
]
2428
+
2429
+
[[package]]
2430
+
name = "parking_lot_core"
2431
+
version = "0.9.12"
2432
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2433
+
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
2434
+
dependencies = [
2435
+
"cfg-if",
2436
+
"libc",
2437
+
"redox_syscall",
2438
+
"smallvec",
2439
+
"windows-link 0.2.1",
2440
+
]
2441
+
2442
+
[[package]]
2443
+
name = "pem-rfc7468"
2444
+
version = "0.7.0"
2445
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2446
+
checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
2447
+
dependencies = [
2448
+
"base64ct",
2449
+
]
2450
+
2451
+
[[package]]
2452
+
name = "percent-encoding"
2453
+
version = "2.3.2"
2454
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2455
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
2456
+
2457
+
[[package]]
2458
+
name = "phf"
2459
+
version = "0.11.3"
2460
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2461
+
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
2462
+
dependencies = [
2463
+
"phf_shared",
2464
+
]
2465
+
2466
+
[[package]]
2467
+
name = "phf_codegen"
2468
+
version = "0.11.3"
2469
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2470
+
checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
2471
+
dependencies = [
2472
+
"phf_generator",
2473
+
"phf_shared",
2474
+
]
2475
+
2476
+
[[package]]
2477
+
name = "phf_generator"
2478
+
version = "0.11.3"
2479
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2480
+
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
2481
+
dependencies = [
2482
+
"phf_shared",
2483
+
"rand 0.8.5",
2484
+
]
2485
+
2486
+
[[package]]
2487
+
name = "phf_shared"
2488
+
version = "0.11.3"
2489
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2490
+
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
2491
+
dependencies = [
2492
+
"siphasher",
2493
+
]
2494
+
2495
+
[[package]]
2496
+
name = "pin-project-lite"
2497
+
version = "0.2.16"
2498
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2499
+
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
2500
+
2501
+
[[package]]
2502
+
name = "pin-utils"
2503
+
version = "0.1.0"
2504
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2505
+
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
2506
+
2507
+
[[package]]
2508
+
name = "pkcs1"
2509
+
version = "0.7.5"
2510
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2511
+
checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
2512
+
dependencies = [
2513
+
"der",
2514
+
"pkcs8",
2515
+
"spki",
2516
+
]
2517
+
2518
+
[[package]]
2519
+
name = "pkcs8"
2520
+
version = "0.10.2"
2521
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2522
+
checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
2523
+
dependencies = [
2524
+
"der",
2525
+
"spki",
2526
+
]
2527
+
2528
+
[[package]]
2529
+
name = "pkg-config"
2530
+
version = "0.3.32"
2531
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2532
+
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
2533
+
2534
+
[[package]]
2535
+
name = "portable-atomic"
2536
+
version = "1.11.1"
2537
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2538
+
checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
2539
+
2540
+
[[package]]
2541
+
name = "potential_utf"
2542
+
version = "0.1.4"
2543
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2544
+
checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
2545
+
dependencies = [
2546
+
"zerovec",
2547
+
]
2548
+
2549
+
[[package]]
2550
+
name = "powerfmt"
2551
+
version = "0.2.0"
2552
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2553
+
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
2554
+
2555
+
[[package]]
2556
+
name = "ppv-lite86"
2557
+
version = "0.2.21"
2558
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2559
+
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
2560
+
dependencies = [
2561
+
"zerocopy",
2562
+
]
2563
+
2564
+
[[package]]
2565
+
name = "precomputed-hash"
2566
+
version = "0.1.1"
2567
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2568
+
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
2569
+
2570
+
[[package]]
2571
+
name = "prettyplease"
2572
+
version = "0.2.37"
2573
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2574
+
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
2575
+
dependencies = [
2576
+
"proc-macro2",
2577
+
"syn 2.0.108",
2578
+
]
2579
+
2580
+
[[package]]
2581
+
name = "primeorder"
2582
+
version = "0.13.6"
2583
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2584
+
checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
2585
+
dependencies = [
2586
+
"elliptic-curve",
2587
+
]
2588
+
2589
+
[[package]]
2590
+
name = "proc-macro-error"
2591
+
version = "1.0.4"
2592
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2593
+
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
2594
+
dependencies = [
2595
+
"proc-macro-error-attr",
2596
+
"proc-macro2",
2597
+
"quote",
2598
+
"syn 1.0.109",
2599
+
"version_check",
2600
+
]
2601
+
2602
+
[[package]]
2603
+
name = "proc-macro-error-attr"
2604
+
version = "1.0.4"
2605
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2606
+
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
2607
+
dependencies = [
2608
+
"proc-macro2",
2609
+
"quote",
2610
+
"version_check",
2611
+
]
2612
+
2613
+
[[package]]
2614
+
name = "proc-macro2"
2615
+
version = "1.0.103"
2616
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2617
+
checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
2618
+
dependencies = [
2619
+
"unicode-ident",
2620
+
]
2621
+
2622
+
[[package]]
2623
+
name = "proc-macro2-diagnostics"
2624
+
version = "0.10.1"
2625
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2626
+
checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
2627
+
dependencies = [
2628
+
"proc-macro2",
2629
+
"quote",
2630
+
"syn 2.0.108",
2631
+
"version_check",
2632
+
"yansi",
2633
+
]
2634
+
2635
+
[[package]]
2636
+
name = "quick-error"
2637
+
version = "1.2.3"
2638
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2639
+
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
2640
+
2641
+
[[package]]
2642
+
name = "quinn"
2643
+
version = "0.11.9"
2644
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2645
+
checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
2646
+
dependencies = [
2647
+
"bytes",
2648
+
"cfg_aliases",
2649
+
"pin-project-lite",
2650
+
"quinn-proto",
2651
+
"quinn-udp",
2652
+
"rustc-hash",
2653
+
"rustls",
2654
+
"socket2 0.6.1",
2655
+
"thiserror 2.0.17",
2656
+
"tokio",
2657
+
"tracing",
2658
+
"web-time",
2659
+
]
2660
+
2661
+
[[package]]
2662
+
name = "quinn-proto"
2663
+
version = "0.11.13"
2664
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2665
+
checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
2666
+
dependencies = [
2667
+
"bytes",
2668
+
"getrandom 0.3.4",
2669
+
"lru-slab",
2670
+
"rand 0.9.2",
2671
+
"ring",
2672
+
"rustc-hash",
2673
+
"rustls",
2674
+
"rustls-pki-types",
2675
+
"slab",
2676
+
"thiserror 2.0.17",
2677
+
"tinyvec",
2678
+
"tracing",
2679
+
"web-time",
2680
+
]
2681
+
2682
+
[[package]]
2683
+
name = "quinn-udp"
2684
+
version = "0.5.14"
2685
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2686
+
checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
2687
+
dependencies = [
2688
+
"cfg_aliases",
2689
+
"libc",
2690
+
"once_cell",
2691
+
"socket2 0.6.1",
2692
+
"tracing",
2693
+
"windows-sys 0.60.2",
2694
+
]
2695
+
2696
+
[[package]]
2697
+
name = "quote"
2698
+
version = "1.0.41"
2699
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2700
+
checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
2701
+
dependencies = [
2702
+
"proc-macro2",
2703
+
]
2704
+
2705
+
[[package]]
2706
+
name = "r-efi"
2707
+
version = "5.3.0"
2708
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2709
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
2710
+
2711
+
[[package]]
2712
+
name = "rand"
2713
+
version = "0.8.5"
2714
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2715
+
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
2716
+
dependencies = [
2717
+
"libc",
2718
+
"rand_chacha 0.3.1",
2719
+
"rand_core 0.6.4",
2720
+
]
2721
+
2722
+
[[package]]
2723
+
name = "rand"
2724
+
version = "0.9.2"
2725
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2726
+
checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
2727
+
dependencies = [
2728
+
"rand_chacha 0.9.0",
2729
+
"rand_core 0.9.3",
2730
+
]
2731
+
2732
+
[[package]]
2733
+
name = "rand_chacha"
2734
+
version = "0.3.1"
2735
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2736
+
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
2737
+
dependencies = [
2738
+
"ppv-lite86",
2739
+
"rand_core 0.6.4",
2740
+
]
2741
+
2742
+
[[package]]
2743
+
name = "rand_chacha"
2744
+
version = "0.9.0"
2745
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2746
+
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
2747
+
dependencies = [
2748
+
"ppv-lite86",
2749
+
"rand_core 0.9.3",
2750
+
]
2751
+
2752
+
[[package]]
2753
+
name = "rand_core"
2754
+
version = "0.6.4"
2755
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2756
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2757
+
dependencies = [
2758
+
"getrandom 0.2.16",
2759
+
]
2760
+
2761
+
[[package]]
2762
+
name = "rand_core"
2763
+
version = "0.9.3"
2764
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2765
+
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
2766
+
dependencies = [
2767
+
"getrandom 0.3.4",
2768
+
]
2769
+
2770
+
[[package]]
2771
+
name = "range-traits"
2772
+
version = "0.3.2"
2773
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2774
+
checksum = "d20581732dd76fa913c7dff1a2412b714afe3573e94d41c34719de73337cc8ab"
2775
+
2776
+
[[package]]
2777
+
name = "raw-window-handle"
2778
+
version = "0.5.2"
2779
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2780
+
checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
2781
+
2782
+
[[package]]
2783
+
name = "redox_syscall"
2784
+
version = "0.5.18"
2785
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2786
+
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2787
+
dependencies = [
2788
+
"bitflags",
2789
+
]
2790
+
2791
+
[[package]]
2792
+
name = "redox_users"
2793
+
version = "0.5.2"
2794
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2795
+
checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
2796
+
dependencies = [
2797
+
"getrandom 0.2.16",
2798
+
"libredox",
2799
+
"thiserror 2.0.17",
2800
+
]
2801
+
2802
+
[[package]]
2803
+
name = "ref-cast"
2804
+
version = "1.0.25"
2805
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2806
+
checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
2807
+
dependencies = [
2808
+
"ref-cast-impl",
2809
+
]
2810
+
2811
+
[[package]]
2812
+
name = "ref-cast-impl"
2813
+
version = "1.0.25"
2814
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2815
+
checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
2816
+
dependencies = [
2817
+
"proc-macro2",
2818
+
"quote",
2819
+
"syn 2.0.108",
2820
+
]
2821
+
2822
+
[[package]]
2823
+
name = "regex"
2824
+
version = "1.12.2"
2825
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2826
+
checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
2827
+
dependencies = [
2828
+
"aho-corasick",
2829
+
"memchr",
2830
+
"regex-automata",
2831
+
"regex-syntax",
2832
+
]
2833
+
2834
+
[[package]]
2835
+
name = "regex-automata"
2836
+
version = "0.4.13"
2837
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2838
+
checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
2839
+
dependencies = [
2840
+
"aho-corasick",
2841
+
"memchr",
2842
+
"regex-syntax",
2843
+
]
2844
+
2845
+
[[package]]
2846
+
name = "regex-syntax"
2847
+
version = "0.8.8"
2848
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2849
+
checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
2850
+
2851
+
[[package]]
2852
+
name = "reqwest"
2853
+
version = "0.12.24"
2854
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2855
+
checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f"
2856
+
dependencies = [
2857
+
"async-compression",
2858
+
"base64 0.22.1",
2859
+
"bytes",
2860
+
"encoding_rs",
2861
+
"futures-core",
2862
+
"futures-util",
2863
+
"h2",
2864
+
"http",
2865
+
"http-body",
2866
+
"http-body-util",
2867
+
"hyper",
2868
+
"hyper-rustls",
2869
+
"hyper-tls",
2870
+
"hyper-util",
2871
+
"js-sys",
2872
+
"log",
2873
+
"mime",
2874
+
"native-tls",
2875
+
"percent-encoding",
2876
+
"pin-project-lite",
2877
+
"quinn",
2878
+
"rustls",
2879
+
"rustls-pki-types",
2880
+
"serde",
2881
+
"serde_json",
2882
+
"serde_urlencoded",
2883
+
"sync_wrapper",
2884
+
"tokio",
2885
+
"tokio-native-tls",
2886
+
"tokio-rustls",
2887
+
"tokio-util",
2888
+
"tower",
2889
+
"tower-http",
2890
+
"tower-service",
2891
+
"url",
2892
+
"wasm-bindgen",
2893
+
"wasm-bindgen-futures",
2894
+
"wasm-streams",
2895
+
"web-sys",
2896
+
"webpki-roots",
2897
+
]
2898
+
2899
+
[[package]]
2900
+
name = "resolv-conf"
2901
+
version = "0.7.5"
2902
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2903
+
checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799"
2904
+
2905
+
[[package]]
2906
+
name = "rfc6979"
2907
+
version = "0.4.0"
2908
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2909
+
checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
2910
+
dependencies = [
2911
+
"hmac",
2912
+
"subtle",
2913
+
]
2914
+
2915
+
[[package]]
2916
+
name = "ring"
2917
+
version = "0.17.14"
2918
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2919
+
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
2920
+
dependencies = [
2921
+
"cc",
2922
+
"cfg-if",
2923
+
"getrandom 0.2.16",
2924
+
"libc",
2925
+
"untrusted",
2926
+
"windows-sys 0.52.0",
2927
+
]
2928
+
2929
+
[[package]]
2930
+
name = "rouille"
2931
+
version = "3.6.2"
2932
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2933
+
checksum = "3716fbf57fc1084d7a706adf4e445298d123e4a44294c4e8213caf1b85fcc921"
2934
+
dependencies = [
2935
+
"base64 0.13.1",
2936
+
"brotli",
2937
+
"chrono",
2938
+
"deflate",
2939
+
"filetime",
2940
+
"multipart",
2941
+
"percent-encoding",
2942
+
"rand 0.8.5",
2943
+
"serde",
2944
+
"serde_derive",
2945
+
"serde_json",
2946
+
"sha1_smol",
2947
+
"threadpool",
2948
+
"time",
2949
+
"tiny_http",
2950
+
"url",
2951
+
]
2952
+
2953
+
[[package]]
2954
+
name = "rsa"
2955
+
version = "0.9.8"
2956
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2957
+
checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b"
2958
+
dependencies = [
2959
+
"const-oid",
2960
+
"digest",
2961
+
"num-bigint-dig",
2962
+
"num-integer",
2963
+
"num-traits",
2964
+
"pkcs1",
2965
+
"pkcs8",
2966
+
"rand_core 0.6.4",
2967
+
"signature",
2968
+
"spki",
2969
+
"subtle",
2970
+
"zeroize",
2971
+
]
2972
+
2973
+
[[package]]
2974
+
name = "rustc-demangle"
2975
+
version = "0.1.26"
2976
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2977
+
checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace"
2978
+
2979
+
[[package]]
2980
+
name = "rustc-hash"
2981
+
version = "2.1.1"
2982
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2983
+
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
2984
+
2985
+
[[package]]
2986
+
name = "rustc_version"
2987
+
version = "0.4.1"
2988
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2989
+
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
2990
+
dependencies = [
2991
+
"semver",
2992
+
]
2993
+
2994
+
[[package]]
2995
+
name = "rustix"
2996
+
version = "1.1.2"
2997
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2998
+
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
2999
+
dependencies = [
3000
+
"bitflags",
3001
+
"errno",
3002
+
"libc",
3003
+
"linux-raw-sys",
3004
+
"windows-sys 0.61.2",
3005
+
]
3006
+
3007
+
[[package]]
3008
+
name = "rustls"
3009
+
version = "0.23.34"
3010
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3011
+
checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7"
3012
+
dependencies = [
3013
+
"once_cell",
3014
+
"ring",
3015
+
"rustls-pki-types",
3016
+
"rustls-webpki",
3017
+
"subtle",
3018
+
"zeroize",
3019
+
]
3020
+
3021
+
[[package]]
3022
+
name = "rustls-pki-types"
3023
+
version = "1.13.0"
3024
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3025
+
checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a"
3026
+
dependencies = [
3027
+
"web-time",
3028
+
"zeroize",
3029
+
]
3030
+
3031
+
[[package]]
3032
+
name = "rustls-webpki"
3033
+
version = "0.103.8"
3034
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3035
+
checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52"
3036
+
dependencies = [
3037
+
"ring",
3038
+
"rustls-pki-types",
3039
+
"untrusted",
3040
+
]
3041
+
3042
+
[[package]]
3043
+
name = "rustversion"
3044
+
version = "1.0.22"
3045
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3046
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
3047
+
3048
+
[[package]]
3049
+
name = "ryu"
3050
+
version = "1.0.20"
3051
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3052
+
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
3053
+
3054
+
[[package]]
3055
+
name = "safemem"
3056
+
version = "0.3.3"
3057
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3058
+
checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
3059
+
3060
+
[[package]]
3061
+
name = "same-file"
3062
+
version = "1.0.6"
3063
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3064
+
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
3065
+
dependencies = [
3066
+
"winapi-util",
3067
+
]
3068
+
3069
+
[[package]]
3070
+
name = "schannel"
3071
+
version = "0.1.28"
3072
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3073
+
checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
3074
+
dependencies = [
3075
+
"windows-sys 0.61.2",
3076
+
]
3077
+
3078
+
[[package]]
3079
+
name = "schemars"
3080
+
version = "0.9.0"
3081
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3082
+
checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
3083
+
dependencies = [
3084
+
"dyn-clone",
3085
+
"ref-cast",
3086
+
"serde",
3087
+
"serde_json",
3088
+
]
3089
+
3090
+
[[package]]
3091
+
name = "schemars"
3092
+
version = "1.0.4"
3093
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3094
+
checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0"
3095
+
dependencies = [
3096
+
"dyn-clone",
3097
+
"ref-cast",
3098
+
"serde",
3099
+
"serde_json",
3100
+
]
3101
+
3102
+
[[package]]
3103
+
name = "scopeguard"
3104
+
version = "1.2.0"
3105
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3106
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
3107
+
3108
+
[[package]]
3109
+
name = "sec1"
3110
+
version = "0.7.3"
3111
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3112
+
checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
3113
+
dependencies = [
3114
+
"base16ct",
3115
+
"der",
3116
+
"generic-array",
3117
+
"pkcs8",
3118
+
"subtle",
3119
+
"zeroize",
3120
+
]
3121
+
3122
+
[[package]]
3123
+
name = "security-framework"
3124
+
version = "2.11.1"
3125
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3126
+
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
3127
+
dependencies = [
3128
+
"bitflags",
3129
+
"core-foundation",
3130
+
"core-foundation-sys",
3131
+
"libc",
3132
+
"security-framework-sys",
3133
+
]
3134
+
3135
+
[[package]]
3136
+
name = "security-framework-sys"
3137
+
version = "2.15.0"
3138
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3139
+
checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
3140
+
dependencies = [
3141
+
"core-foundation-sys",
3142
+
"libc",
3143
+
]
3144
+
3145
+
[[package]]
3146
+
name = "semver"
3147
+
version = "1.0.27"
3148
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3149
+
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
3150
+
3151
+
[[package]]
3152
+
name = "serde"
3153
+
version = "1.0.228"
3154
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3155
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
3156
+
dependencies = [
3157
+
"serde_core",
3158
+
"serde_derive",
3159
+
]
3160
+
3161
+
[[package]]
3162
+
name = "serde_bytes"
3163
+
version = "0.11.19"
3164
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3165
+
checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8"
3166
+
dependencies = [
3167
+
"serde",
3168
+
"serde_core",
3169
+
]
3170
+
3171
+
[[package]]
3172
+
name = "serde_core"
3173
+
version = "1.0.228"
3174
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3175
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
3176
+
dependencies = [
3177
+
"serde_derive",
3178
+
]
3179
+
3180
+
[[package]]
3181
+
name = "serde_derive"
3182
+
version = "1.0.228"
3183
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3184
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
3185
+
dependencies = [
3186
+
"proc-macro2",
3187
+
"quote",
3188
+
"syn 2.0.108",
3189
+
]
3190
+
3191
+
[[package]]
3192
+
name = "serde_html_form"
3193
+
version = "0.2.8"
3194
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3195
+
checksum = "b2f2d7ff8a2140333718bb329f5c40fc5f0865b84c426183ce14c97d2ab8154f"
3196
+
dependencies = [
3197
+
"form_urlencoded",
3198
+
"indexmap 2.12.0",
3199
+
"itoa",
3200
+
"ryu",
3201
+
"serde_core",
3202
+
]
3203
+
3204
+
[[package]]
3205
+
name = "serde_ipld_dagcbor"
3206
+
version = "0.6.4"
3207
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3208
+
checksum = "46182f4f08349a02b45c998ba3215d3f9de826246ba02bb9dddfe9a2a2100778"
3209
+
dependencies = [
3210
+
"cbor4ii",
3211
+
"ipld-core",
3212
+
"scopeguard",
3213
+
"serde",
3214
+
]
3215
+
3216
+
[[package]]
3217
+
name = "serde_json"
3218
+
version = "1.0.145"
3219
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3220
+
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
3221
+
dependencies = [
3222
+
"itoa",
3223
+
"memchr",
3224
+
"ryu",
3225
+
"serde",
3226
+
"serde_core",
3227
+
]
3228
+
3229
+
[[package]]
3230
+
name = "serde_repr"
3231
+
version = "0.1.20"
3232
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3233
+
checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
3234
+
dependencies = [
3235
+
"proc-macro2",
3236
+
"quote",
3237
+
"syn 2.0.108",
3238
+
]
3239
+
3240
+
[[package]]
3241
+
name = "serde_urlencoded"
3242
+
version = "0.7.1"
3243
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3244
+
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
3245
+
dependencies = [
3246
+
"form_urlencoded",
3247
+
"itoa",
3248
+
"ryu",
3249
+
"serde",
3250
+
]
3251
+
3252
+
[[package]]
3253
+
name = "serde_with"
3254
+
version = "3.15.1"
3255
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3256
+
checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04"
3257
+
dependencies = [
3258
+
"base64 0.22.1",
3259
+
"chrono",
3260
+
"hex",
3261
+
"indexmap 1.9.3",
3262
+
"indexmap 2.12.0",
3263
+
"schemars 0.9.0",
3264
+
"schemars 1.0.4",
3265
+
"serde_core",
3266
+
"serde_json",
3267
+
"serde_with_macros",
3268
+
"time",
3269
+
]
3270
+
3271
+
[[package]]
3272
+
name = "serde_with_macros"
3273
+
version = "3.15.1"
3274
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3275
+
checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955"
3276
+
dependencies = [
3277
+
"darling",
3278
+
"proc-macro2",
3279
+
"quote",
3280
+
"syn 2.0.108",
3281
+
]
3282
+
3283
+
[[package]]
3284
+
name = "sha1_smol"
3285
+
version = "1.0.1"
3286
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3287
+
checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"
3288
+
3289
+
[[package]]
3290
+
name = "sha2"
3291
+
version = "0.10.9"
3292
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3293
+
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
3294
+
dependencies = [
3295
+
"cfg-if",
3296
+
"cpufeatures",
3297
+
"digest",
3298
+
]
3299
+
3300
+
[[package]]
3301
+
name = "shellexpand"
3302
+
version = "3.1.1"
3303
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3304
+
checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb"
3305
+
dependencies = [
3306
+
"dirs",
3307
+
]
3308
+
3309
+
[[package]]
3310
+
name = "shlex"
3311
+
version = "1.3.0"
3312
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3313
+
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
3314
+
3315
+
[[package]]
3316
+
name = "signal-hook-registry"
3317
+
version = "1.4.6"
3318
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3319
+
checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
3320
+
dependencies = [
3321
+
"libc",
3322
+
]
3323
+
3324
+
[[package]]
3325
+
name = "signature"
3326
+
version = "2.2.0"
3327
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3328
+
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
3329
+
dependencies = [
3330
+
"digest",
3331
+
"rand_core 0.6.4",
3332
+
]
3333
+
3334
+
[[package]]
3335
+
name = "simd-adler32"
3336
+
version = "0.3.7"
3337
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3338
+
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
3339
+
3340
+
[[package]]
3341
+
name = "siphasher"
3342
+
version = "1.0.1"
3343
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3344
+
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
3345
+
3346
+
[[package]]
3347
+
name = "slab"
3348
+
version = "0.4.11"
3349
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3350
+
checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
3351
+
3352
+
[[package]]
3353
+
name = "smallvec"
3354
+
version = "1.15.1"
3355
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3356
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
3357
+
3358
+
[[package]]
3359
+
name = "smol_str"
3360
+
version = "0.3.4"
3361
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3362
+
checksum = "3498b0a27f93ef1402f20eefacfaa1691272ac4eca1cdc8c596cb0a245d6cbf5"
3363
+
dependencies = [
3364
+
"borsh",
3365
+
"serde_core",
3366
+
]
3367
+
3368
+
[[package]]
3369
+
name = "socket2"
3370
+
version = "0.5.10"
3371
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3372
+
checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678"
3373
+
dependencies = [
3374
+
"libc",
3375
+
"windows-sys 0.52.0",
3376
+
]
3377
+
3378
+
[[package]]
3379
+
name = "socket2"
3380
+
version = "0.6.1"
3381
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3382
+
checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
3383
+
dependencies = [
3384
+
"libc",
3385
+
"windows-sys 0.60.2",
3386
+
]
3387
+
3388
+
[[package]]
3389
+
name = "spin"
3390
+
version = "0.9.8"
3391
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3392
+
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
3393
+
3394
+
[[package]]
3395
+
name = "spki"
3396
+
version = "0.7.3"
3397
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3398
+
checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
3399
+
dependencies = [
3400
+
"base64ct",
3401
+
"der",
3402
+
]
3403
+
3404
+
[[package]]
3405
+
name = "stable_deref_trait"
3406
+
version = "1.2.1"
3407
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3408
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
3409
+
3410
+
[[package]]
3411
+
name = "static-regular-grammar"
3412
+
version = "2.0.2"
3413
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3414
+
checksum = "4f4a6c40247579acfbb138c3cd7de3dab113ab4ac6227f1b7de7d626ee667957"
3415
+
dependencies = [
3416
+
"abnf",
3417
+
"btree-range-map",
3418
+
"ciborium",
3419
+
"hex_fmt",
3420
+
"indoc",
3421
+
"proc-macro-error",
3422
+
"proc-macro2",
3423
+
"quote",
3424
+
"serde",
3425
+
"sha2",
3426
+
"syn 2.0.108",
3427
+
"thiserror 1.0.69",
3428
+
]
3429
+
3430
+
[[package]]
3431
+
name = "static_assertions"
3432
+
version = "1.1.0"
3433
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3434
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
3435
+
3436
+
[[package]]
3437
+
name = "string_cache"
3438
+
version = "0.8.9"
3439
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3440
+
checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f"
3441
+
dependencies = [
3442
+
"new_debug_unreachable",
3443
+
"parking_lot",
3444
+
"phf_shared",
3445
+
"precomputed-hash",
3446
+
"serde",
3447
+
]
3448
+
3449
+
[[package]]
3450
+
name = "string_cache_codegen"
3451
+
version = "0.5.4"
3452
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3453
+
checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
3454
+
dependencies = [
3455
+
"phf_generator",
3456
+
"phf_shared",
3457
+
"proc-macro2",
3458
+
"quote",
3459
+
]
3460
+
3461
+
[[package]]
3462
+
name = "strsim"
3463
+
version = "0.11.1"
3464
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3465
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
3466
+
3467
+
[[package]]
3468
+
name = "subtle"
3469
+
version = "2.6.1"
3470
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3471
+
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
3472
+
3473
+
[[package]]
3474
+
name = "supports-color"
3475
+
version = "3.0.2"
3476
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3477
+
checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6"
3478
+
dependencies = [
3479
+
"is_ci",
3480
+
]
3481
+
3482
+
[[package]]
3483
+
name = "supports-hyperlinks"
3484
+
version = "3.1.0"
3485
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3486
+
checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b"
3487
+
3488
+
[[package]]
3489
+
name = "supports-unicode"
3490
+
version = "3.0.0"
3491
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3492
+
checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
3493
+
3494
+
[[package]]
3495
+
name = "syn"
3496
+
version = "1.0.109"
3497
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3498
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
3499
+
dependencies = [
3500
+
"proc-macro2",
3501
+
"quote",
3502
+
"unicode-ident",
3503
+
]
3504
+
3505
+
[[package]]
3506
+
name = "syn"
3507
+
version = "2.0.108"
3508
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3509
+
checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917"
3510
+
dependencies = [
3511
+
"proc-macro2",
3512
+
"quote",
3513
+
"unicode-ident",
3514
+
]
3515
+
3516
+
[[package]]
3517
+
name = "sync_wrapper"
3518
+
version = "1.0.2"
3519
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3520
+
checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
3521
+
dependencies = [
3522
+
"futures-core",
3523
+
]
3524
+
3525
+
[[package]]
3526
+
name = "synstructure"
3527
+
version = "0.13.2"
3528
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3529
+
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
3530
+
dependencies = [
3531
+
"proc-macro2",
3532
+
"quote",
3533
+
"syn 2.0.108",
3534
+
]
3535
+
3536
+
[[package]]
3537
+
name = "system-configuration"
3538
+
version = "0.6.1"
3539
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3540
+
checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
3541
+
dependencies = [
3542
+
"bitflags",
3543
+
"core-foundation",
3544
+
"system-configuration-sys",
3545
+
]
3546
+
3547
+
[[package]]
3548
+
name = "system-configuration-sys"
3549
+
version = "0.6.0"
3550
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3551
+
checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
3552
+
dependencies = [
3553
+
"core-foundation-sys",
3554
+
"libc",
3555
+
]
3556
+
3557
+
[[package]]
3558
+
name = "tagptr"
3559
+
version = "0.2.0"
3560
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3561
+
checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
3562
+
3563
+
[[package]]
3564
+
name = "tempfile"
3565
+
version = "3.23.0"
3566
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3567
+
checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16"
3568
+
dependencies = [
3569
+
"fastrand",
3570
+
"getrandom 0.3.4",
3571
+
"once_cell",
3572
+
"rustix",
3573
+
"windows-sys 0.61.2",
3574
+
]
3575
+
3576
+
[[package]]
3577
+
name = "tendril"
3578
+
version = "0.4.3"
3579
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3580
+
checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
3581
+
dependencies = [
3582
+
"futf",
3583
+
"mac",
3584
+
"utf-8",
3585
+
]
3586
+
3587
+
[[package]]
3588
+
name = "terminal_size"
3589
+
version = "0.4.3"
3590
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3591
+
checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
3592
+
dependencies = [
3593
+
"rustix",
3594
+
"windows-sys 0.60.2",
3595
+
]
3596
+
3597
+
[[package]]
3598
+
name = "textwrap"
3599
+
version = "0.16.2"
3600
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3601
+
checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
3602
+
dependencies = [
3603
+
"unicode-linebreak",
3604
+
"unicode-width 0.2.2",
3605
+
]
3606
+
3607
+
[[package]]
3608
+
name = "thiserror"
3609
+
version = "1.0.69"
3610
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3611
+
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
3612
+
dependencies = [
3613
+
"thiserror-impl 1.0.69",
3614
+
]
3615
+
3616
+
[[package]]
3617
+
name = "thiserror"
3618
+
version = "2.0.17"
3619
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3620
+
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
3621
+
dependencies = [
3622
+
"thiserror-impl 2.0.17",
3623
+
]
3624
+
3625
+
[[package]]
3626
+
name = "thiserror-impl"
3627
+
version = "1.0.69"
3628
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3629
+
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3630
+
dependencies = [
3631
+
"proc-macro2",
3632
+
"quote",
3633
+
"syn 2.0.108",
3634
+
]
3635
+
3636
+
[[package]]
3637
+
name = "thiserror-impl"
3638
+
version = "2.0.17"
3639
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3640
+
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
3641
+
dependencies = [
3642
+
"proc-macro2",
3643
+
"quote",
3644
+
"syn 2.0.108",
3645
+
]
3646
+
3647
+
[[package]]
3648
+
name = "threadpool"
3649
+
version = "1.8.1"
3650
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3651
+
checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
3652
+
dependencies = [
3653
+
"num_cpus",
3654
+
]
3655
+
3656
+
[[package]]
3657
+
name = "time"
3658
+
version = "0.3.44"
3659
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3660
+
checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
3661
+
dependencies = [
3662
+
"deranged",
3663
+
"itoa",
3664
+
"libc",
3665
+
"num-conv",
3666
+
"num_threads",
3667
+
"powerfmt",
3668
+
"serde",
3669
+
"time-core",
3670
+
"time-macros",
3671
+
]
3672
+
3673
+
[[package]]
3674
+
name = "time-core"
3675
+
version = "0.1.6"
3676
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3677
+
checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
3678
+
3679
+
[[package]]
3680
+
name = "time-macros"
3681
+
version = "0.2.24"
3682
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3683
+
checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
3684
+
dependencies = [
3685
+
"num-conv",
3686
+
"time-core",
3687
+
]
3688
+
3689
+
[[package]]
3690
+
name = "tiny_http"
3691
+
version = "0.12.0"
3692
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3693
+
checksum = "389915df6413a2e74fb181895f933386023c71110878cd0825588928e64cdc82"
3694
+
dependencies = [
3695
+
"ascii",
3696
+
"chunked_transfer",
3697
+
"httpdate",
3698
+
"log",
3699
+
]
3700
+
3701
+
[[package]]
3702
+
name = "tinystr"
3703
+
version = "0.8.2"
3704
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3705
+
checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
3706
+
dependencies = [
3707
+
"displaydoc",
3708
+
"zerovec",
3709
+
]
3710
+
3711
+
[[package]]
3712
+
name = "tinyvec"
3713
+
version = "1.10.0"
3714
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3715
+
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
3716
+
dependencies = [
3717
+
"tinyvec_macros",
3718
+
]
3719
+
3720
+
[[package]]
3721
+
name = "tinyvec_macros"
3722
+
version = "0.1.1"
3723
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3724
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
3725
+
3726
+
[[package]]
3727
+
name = "tokio"
3728
+
version = "1.48.0"
3729
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3730
+
checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
3731
+
dependencies = [
3732
+
"bytes",
3733
+
"libc",
3734
+
"mio",
3735
+
"parking_lot",
3736
+
"pin-project-lite",
3737
+
"signal-hook-registry",
3738
+
"socket2 0.6.1",
3739
+
"tokio-macros",
3740
+
"windows-sys 0.61.2",
3741
+
]
3742
+
3743
+
[[package]]
3744
+
name = "tokio-macros"
3745
+
version = "2.6.0"
3746
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3747
+
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
3748
+
dependencies = [
3749
+
"proc-macro2",
3750
+
"quote",
3751
+
"syn 2.0.108",
3752
+
]
3753
+
3754
+
[[package]]
3755
+
name = "tokio-native-tls"
3756
+
version = "0.3.1"
3757
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3758
+
checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
3759
+
dependencies = [
3760
+
"native-tls",
3761
+
"tokio",
3762
+
]
3763
+
3764
+
[[package]]
3765
+
name = "tokio-rustls"
3766
+
version = "0.26.4"
3767
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3768
+
checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
3769
+
dependencies = [
3770
+
"rustls",
3771
+
"tokio",
3772
+
]
3773
+
3774
+
[[package]]
3775
+
name = "tokio-util"
3776
+
version = "0.7.16"
3777
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3778
+
checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5"
3779
+
dependencies = [
3780
+
"bytes",
3781
+
"futures-core",
3782
+
"futures-sink",
3783
+
"pin-project-lite",
3784
+
"tokio",
3785
+
]
3786
+
3787
+
[[package]]
3788
+
name = "tower"
3789
+
version = "0.5.2"
3790
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3791
+
checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
3792
+
dependencies = [
3793
+
"futures-core",
3794
+
"futures-util",
3795
+
"pin-project-lite",
3796
+
"sync_wrapper",
3797
+
"tokio",
3798
+
"tower-layer",
3799
+
"tower-service",
3800
+
]
3801
+
3802
+
[[package]]
3803
+
name = "tower-http"
3804
+
version = "0.6.6"
3805
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3806
+
checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
3807
+
dependencies = [
3808
+
"bitflags",
3809
+
"bytes",
3810
+
"futures-util",
3811
+
"http",
3812
+
"http-body",
3813
+
"iri-string",
3814
+
"pin-project-lite",
3815
+
"tower",
3816
+
"tower-layer",
3817
+
"tower-service",
3818
+
]
3819
+
3820
+
[[package]]
3821
+
name = "tower-layer"
3822
+
version = "0.3.3"
3823
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3824
+
checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
3825
+
3826
+
[[package]]
3827
+
name = "tower-service"
3828
+
version = "0.3.3"
3829
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3830
+
checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
3831
+
3832
+
[[package]]
3833
+
name = "tracing"
3834
+
version = "0.1.41"
3835
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3836
+
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
3837
+
dependencies = [
3838
+
"pin-project-lite",
3839
+
"tracing-attributes",
3840
+
"tracing-core",
3841
+
]
3842
+
3843
+
[[package]]
3844
+
name = "tracing-attributes"
3845
+
version = "0.1.30"
3846
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3847
+
checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
3848
+
dependencies = [
3849
+
"proc-macro2",
3850
+
"quote",
3851
+
"syn 2.0.108",
3852
+
]
3853
+
3854
+
[[package]]
3855
+
name = "tracing-core"
3856
+
version = "0.1.34"
3857
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3858
+
checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
3859
+
dependencies = [
3860
+
"once_cell",
3861
+
]
3862
+
3863
+
[[package]]
3864
+
name = "trait-variant"
3865
+
version = "0.1.2"
3866
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3867
+
checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7"
3868
+
dependencies = [
3869
+
"proc-macro2",
3870
+
"quote",
3871
+
"syn 2.0.108",
3872
+
]
3873
+
3874
+
[[package]]
3875
+
name = "try-lock"
3876
+
version = "0.2.5"
3877
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3878
+
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
3879
+
3880
+
[[package]]
3881
+
name = "twoway"
3882
+
version = "0.1.8"
3883
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3884
+
checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
3885
+
dependencies = [
3886
+
"memchr",
3887
+
]
3888
+
3889
+
[[package]]
3890
+
name = "typenum"
3891
+
version = "1.19.0"
3892
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3893
+
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
3894
+
3895
+
[[package]]
3896
+
name = "unicase"
3897
+
version = "2.8.1"
3898
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3899
+
checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
3900
+
3901
+
[[package]]
3902
+
name = "unicode-ident"
3903
+
version = "1.0.22"
3904
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3905
+
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
3906
+
3907
+
[[package]]
3908
+
name = "unicode-linebreak"
3909
+
version = "0.1.5"
3910
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3911
+
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
3912
+
3913
+
[[package]]
3914
+
name = "unicode-segmentation"
3915
+
version = "1.12.0"
3916
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3917
+
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
3918
+
3919
+
[[package]]
3920
+
name = "unicode-width"
3921
+
version = "0.1.14"
3922
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3923
+
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
3924
+
3925
+
[[package]]
3926
+
name = "unicode-width"
3927
+
version = "0.2.2"
3928
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3929
+
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
3930
+
3931
+
[[package]]
3932
+
name = "unsigned-varint"
3933
+
version = "0.8.0"
3934
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3935
+
checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
3936
+
3937
+
[[package]]
3938
+
name = "untrusted"
3939
+
version = "0.9.0"
3940
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3941
+
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
3942
+
3943
+
[[package]]
3944
+
name = "url"
3945
+
version = "2.5.7"
3946
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3947
+
checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
3948
+
dependencies = [
3949
+
"form_urlencoded",
3950
+
"idna",
3951
+
"percent-encoding",
3952
+
"serde",
3953
+
]
3954
+
3955
+
[[package]]
3956
+
name = "urlencoding"
3957
+
version = "2.1.3"
3958
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3959
+
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
3960
+
3961
+
[[package]]
3962
+
name = "utf-8"
3963
+
version = "0.7.6"
3964
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3965
+
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
3966
+
3967
+
[[package]]
3968
+
name = "utf8_iter"
3969
+
version = "1.0.4"
3970
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3971
+
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
3972
+
3973
+
[[package]]
3974
+
name = "utf8parse"
3975
+
version = "0.2.2"
3976
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3977
+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
3978
+
3979
+
[[package]]
3980
+
name = "uuid"
3981
+
version = "1.18.1"
3982
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3983
+
checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
3984
+
dependencies = [
3985
+
"getrandom 0.3.4",
3986
+
"js-sys",
3987
+
"wasm-bindgen",
3988
+
]
3989
+
3990
+
[[package]]
3991
+
name = "vcpkg"
3992
+
version = "0.2.15"
3993
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3994
+
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
3995
+
3996
+
[[package]]
3997
+
name = "version_check"
3998
+
version = "0.9.5"
3999
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4000
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
4001
+
4002
+
[[package]]
4003
+
name = "walkdir"
4004
+
version = "2.5.0"
4005
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4006
+
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
4007
+
dependencies = [
4008
+
"same-file",
4009
+
"winapi-util",
4010
+
]
4011
+
4012
+
[[package]]
4013
+
name = "want"
4014
+
version = "0.3.1"
4015
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4016
+
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
4017
+
dependencies = [
4018
+
"try-lock",
4019
+
]
4020
+
4021
+
[[package]]
4022
+
name = "wasi"
4023
+
version = "0.11.1+wasi-snapshot-preview1"
4024
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4025
+
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
4026
+
4027
+
[[package]]
4028
+
name = "wasip2"
4029
+
version = "1.0.1+wasi-0.2.4"
4030
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4031
+
checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
4032
+
dependencies = [
4033
+
"wit-bindgen",
4034
+
]
4035
+
4036
+
[[package]]
4037
+
name = "wasm-bindgen"
4038
+
version = "0.2.105"
4039
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4040
+
checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
4041
+
dependencies = [
4042
+
"cfg-if",
4043
+
"once_cell",
4044
+
"rustversion",
4045
+
"wasm-bindgen-macro",
4046
+
"wasm-bindgen-shared",
4047
+
]
4048
+
4049
+
[[package]]
4050
+
name = "wasm-bindgen-futures"
4051
+
version = "0.4.55"
4052
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4053
+
checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0"
4054
+
dependencies = [
4055
+
"cfg-if",
4056
+
"js-sys",
4057
+
"once_cell",
4058
+
"wasm-bindgen",
4059
+
"web-sys",
4060
+
]
4061
+
4062
+
[[package]]
4063
+
name = "wasm-bindgen-macro"
4064
+
version = "0.2.105"
4065
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4066
+
checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
4067
+
dependencies = [
4068
+
"quote",
4069
+
"wasm-bindgen-macro-support",
4070
+
]
4071
+
4072
+
[[package]]
4073
+
name = "wasm-bindgen-macro-support"
4074
+
version = "0.2.105"
4075
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4076
+
checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
4077
+
dependencies = [
4078
+
"bumpalo",
4079
+
"proc-macro2",
4080
+
"quote",
4081
+
"syn 2.0.108",
4082
+
"wasm-bindgen-shared",
4083
+
]
4084
+
4085
+
[[package]]
4086
+
name = "wasm-bindgen-shared"
4087
+
version = "0.2.105"
4088
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4089
+
checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
4090
+
dependencies = [
4091
+
"unicode-ident",
4092
+
]
4093
+
4094
+
[[package]]
4095
+
name = "wasm-streams"
4096
+
version = "0.4.2"
4097
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4098
+
checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65"
4099
+
dependencies = [
4100
+
"futures-util",
4101
+
"js-sys",
4102
+
"wasm-bindgen",
4103
+
"wasm-bindgen-futures",
4104
+
"web-sys",
4105
+
]
4106
+
4107
+
[[package]]
4108
+
name = "web-sys"
4109
+
version = "0.3.82"
4110
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4111
+
checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1"
4112
+
dependencies = [
4113
+
"js-sys",
4114
+
"wasm-bindgen",
4115
+
]
4116
+
4117
+
[[package]]
4118
+
name = "web-time"
4119
+
version = "1.1.0"
4120
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4121
+
checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
4122
+
dependencies = [
4123
+
"js-sys",
4124
+
"wasm-bindgen",
4125
+
]
4126
+
4127
+
[[package]]
4128
+
name = "webbrowser"
4129
+
version = "0.8.15"
4130
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4131
+
checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b"
4132
+
dependencies = [
4133
+
"core-foundation",
4134
+
"home",
4135
+
"jni",
4136
+
"log",
4137
+
"ndk-context",
4138
+
"objc",
4139
+
"raw-window-handle",
4140
+
"url",
4141
+
"web-sys",
4142
+
]
4143
+
4144
+
[[package]]
4145
+
name = "webpage"
4146
+
version = "2.0.1"
4147
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4148
+
checksum = "70862efc041d46e6bbaa82bb9c34ae0596d090e86cbd14bd9e93b36ee6802eac"
4149
+
dependencies = [
4150
+
"html5ever",
4151
+
"markup5ever_rcdom",
4152
+
"serde_json",
4153
+
"url",
4154
+
]
4155
+
4156
+
[[package]]
4157
+
name = "webpki-roots"
4158
+
version = "1.0.4"
4159
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4160
+
checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e"
4161
+
dependencies = [
4162
+
"rustls-pki-types",
4163
+
]
4164
+
4165
+
[[package]]
4166
+
name = "widestring"
4167
+
version = "1.2.1"
4168
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4169
+
checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471"
4170
+
4171
+
[[package]]
4172
+
name = "winapi-util"
4173
+
version = "0.1.11"
4174
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4175
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
4176
+
dependencies = [
4177
+
"windows-sys 0.61.2",
4178
+
]
4179
+
4180
+
[[package]]
4181
+
name = "windows-core"
4182
+
version = "0.62.2"
4183
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4184
+
checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
4185
+
dependencies = [
4186
+
"windows-implement",
4187
+
"windows-interface",
4188
+
"windows-link 0.2.1",
4189
+
"windows-result 0.4.1",
4190
+
"windows-strings 0.5.1",
4191
+
]
4192
+
4193
+
[[package]]
4194
+
name = "windows-implement"
4195
+
version = "0.60.2"
4196
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4197
+
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
4198
+
dependencies = [
4199
+
"proc-macro2",
4200
+
"quote",
4201
+
"syn 2.0.108",
4202
+
]
4203
+
4204
+
[[package]]
4205
+
name = "windows-interface"
4206
+
version = "0.59.3"
4207
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4208
+
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
4209
+
dependencies = [
4210
+
"proc-macro2",
4211
+
"quote",
4212
+
"syn 2.0.108",
4213
+
]
4214
+
4215
+
[[package]]
4216
+
name = "windows-link"
4217
+
version = "0.1.3"
4218
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4219
+
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
4220
+
4221
+
[[package]]
4222
+
name = "windows-link"
4223
+
version = "0.2.1"
4224
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4225
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
4226
+
4227
+
[[package]]
4228
+
name = "windows-registry"
4229
+
version = "0.5.3"
4230
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4231
+
checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e"
4232
+
dependencies = [
4233
+
"windows-link 0.1.3",
4234
+
"windows-result 0.3.4",
4235
+
"windows-strings 0.4.2",
4236
+
]
4237
+
4238
+
[[package]]
4239
+
name = "windows-result"
4240
+
version = "0.3.4"
4241
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4242
+
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
4243
+
dependencies = [
4244
+
"windows-link 0.1.3",
4245
+
]
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 0.2.1",
4254
+
]
4255
+
4256
+
[[package]]
4257
+
name = "windows-strings"
4258
+
version = "0.4.2"
4259
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4260
+
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
4261
+
dependencies = [
4262
+
"windows-link 0.1.3",
4263
+
]
4264
+
4265
+
[[package]]
4266
+
name = "windows-strings"
4267
+
version = "0.5.1"
4268
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4269
+
checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
4270
+
dependencies = [
4271
+
"windows-link 0.2.1",
4272
+
]
4273
+
4274
+
[[package]]
4275
+
name = "windows-sys"
4276
+
version = "0.45.0"
4277
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4278
+
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
4279
+
dependencies = [
4280
+
"windows-targets 0.42.2",
4281
+
]
4282
+
4283
+
[[package]]
4284
+
name = "windows-sys"
4285
+
version = "0.48.0"
4286
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4287
+
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
4288
+
dependencies = [
4289
+
"windows-targets 0.48.5",
4290
+
]
4291
+
4292
+
[[package]]
4293
+
name = "windows-sys"
4294
+
version = "0.52.0"
4295
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4296
+
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
4297
+
dependencies = [
4298
+
"windows-targets 0.52.6",
4299
+
]
4300
+
4301
+
[[package]]
4302
+
name = "windows-sys"
4303
+
version = "0.60.2"
4304
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4305
+
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
4306
+
dependencies = [
4307
+
"windows-targets 0.53.5",
4308
+
]
4309
+
4310
+
[[package]]
4311
+
name = "windows-sys"
4312
+
version = "0.61.2"
4313
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4314
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
4315
+
dependencies = [
4316
+
"windows-link 0.2.1",
4317
+
]
4318
+
4319
+
[[package]]
4320
+
name = "windows-targets"
4321
+
version = "0.42.2"
4322
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4323
+
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
4324
+
dependencies = [
4325
+
"windows_aarch64_gnullvm 0.42.2",
4326
+
"windows_aarch64_msvc 0.42.2",
4327
+
"windows_i686_gnu 0.42.2",
4328
+
"windows_i686_msvc 0.42.2",
4329
+
"windows_x86_64_gnu 0.42.2",
4330
+
"windows_x86_64_gnullvm 0.42.2",
4331
+
"windows_x86_64_msvc 0.42.2",
4332
+
]
4333
+
4334
+
[[package]]
4335
+
name = "windows-targets"
4336
+
version = "0.48.5"
4337
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4338
+
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
4339
+
dependencies = [
4340
+
"windows_aarch64_gnullvm 0.48.5",
4341
+
"windows_aarch64_msvc 0.48.5",
4342
+
"windows_i686_gnu 0.48.5",
4343
+
"windows_i686_msvc 0.48.5",
4344
+
"windows_x86_64_gnu 0.48.5",
4345
+
"windows_x86_64_gnullvm 0.48.5",
4346
+
"windows_x86_64_msvc 0.48.5",
4347
+
]
4348
+
4349
+
[[package]]
4350
+
name = "windows-targets"
4351
+
version = "0.52.6"
4352
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4353
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
4354
+
dependencies = [
4355
+
"windows_aarch64_gnullvm 0.52.6",
4356
+
"windows_aarch64_msvc 0.52.6",
4357
+
"windows_i686_gnu 0.52.6",
4358
+
"windows_i686_gnullvm 0.52.6",
4359
+
"windows_i686_msvc 0.52.6",
4360
+
"windows_x86_64_gnu 0.52.6",
4361
+
"windows_x86_64_gnullvm 0.52.6",
4362
+
"windows_x86_64_msvc 0.52.6",
4363
+
]
4364
+
4365
+
[[package]]
4366
+
name = "windows-targets"
4367
+
version = "0.53.5"
4368
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4369
+
checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
4370
+
dependencies = [
4371
+
"windows-link 0.2.1",
4372
+
"windows_aarch64_gnullvm 0.53.1",
4373
+
"windows_aarch64_msvc 0.53.1",
4374
+
"windows_i686_gnu 0.53.1",
4375
+
"windows_i686_gnullvm 0.53.1",
4376
+
"windows_i686_msvc 0.53.1",
4377
+
"windows_x86_64_gnu 0.53.1",
4378
+
"windows_x86_64_gnullvm 0.53.1",
4379
+
"windows_x86_64_msvc 0.53.1",
4380
+
]
4381
+
4382
+
[[package]]
4383
+
name = "windows_aarch64_gnullvm"
4384
+
version = "0.42.2"
4385
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4386
+
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
4387
+
4388
+
[[package]]
4389
+
name = "windows_aarch64_gnullvm"
4390
+
version = "0.48.5"
4391
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4392
+
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
4393
+
4394
+
[[package]]
4395
+
name = "windows_aarch64_gnullvm"
4396
+
version = "0.52.6"
4397
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4398
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
4399
+
4400
+
[[package]]
4401
+
name = "windows_aarch64_gnullvm"
4402
+
version = "0.53.1"
4403
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4404
+
checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
4405
+
4406
+
[[package]]
4407
+
name = "windows_aarch64_msvc"
4408
+
version = "0.42.2"
4409
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4410
+
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
4411
+
4412
+
[[package]]
4413
+
name = "windows_aarch64_msvc"
4414
+
version = "0.48.5"
4415
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4416
+
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
4417
+
4418
+
[[package]]
4419
+
name = "windows_aarch64_msvc"
4420
+
version = "0.52.6"
4421
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4422
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
4423
+
4424
+
[[package]]
4425
+
name = "windows_aarch64_msvc"
4426
+
version = "0.53.1"
4427
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4428
+
checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
4429
+
4430
+
[[package]]
4431
+
name = "windows_i686_gnu"
4432
+
version = "0.42.2"
4433
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4434
+
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
4435
+
4436
+
[[package]]
4437
+
name = "windows_i686_gnu"
4438
+
version = "0.48.5"
4439
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4440
+
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
4441
+
4442
+
[[package]]
4443
+
name = "windows_i686_gnu"
4444
+
version = "0.52.6"
4445
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4446
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
4447
+
4448
+
[[package]]
4449
+
name = "windows_i686_gnu"
4450
+
version = "0.53.1"
4451
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4452
+
checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
4453
+
4454
+
[[package]]
4455
+
name = "windows_i686_gnullvm"
4456
+
version = "0.52.6"
4457
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4458
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
4459
+
4460
+
[[package]]
4461
+
name = "windows_i686_gnullvm"
4462
+
version = "0.53.1"
4463
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4464
+
checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
4465
+
4466
+
[[package]]
4467
+
name = "windows_i686_msvc"
4468
+
version = "0.42.2"
4469
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4470
+
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
4471
+
4472
+
[[package]]
4473
+
name = "windows_i686_msvc"
4474
+
version = "0.48.5"
4475
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4476
+
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
4477
+
4478
+
[[package]]
4479
+
name = "windows_i686_msvc"
4480
+
version = "0.52.6"
4481
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4482
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
4483
+
4484
+
[[package]]
4485
+
name = "windows_i686_msvc"
4486
+
version = "0.53.1"
4487
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4488
+
checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
4489
+
4490
+
[[package]]
4491
+
name = "windows_x86_64_gnu"
4492
+
version = "0.42.2"
4493
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4494
+
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
4495
+
4496
+
[[package]]
4497
+
name = "windows_x86_64_gnu"
4498
+
version = "0.48.5"
4499
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4500
+
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
4501
+
4502
+
[[package]]
4503
+
name = "windows_x86_64_gnu"
4504
+
version = "0.52.6"
4505
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4506
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
4507
+
4508
+
[[package]]
4509
+
name = "windows_x86_64_gnu"
4510
+
version = "0.53.1"
4511
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4512
+
checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
4513
+
4514
+
[[package]]
4515
+
name = "windows_x86_64_gnullvm"
4516
+
version = "0.42.2"
4517
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4518
+
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
4519
+
4520
+
[[package]]
4521
+
name = "windows_x86_64_gnullvm"
4522
+
version = "0.48.5"
4523
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4524
+
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
4525
+
4526
+
[[package]]
4527
+
name = "windows_x86_64_gnullvm"
4528
+
version = "0.52.6"
4529
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4530
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
4531
+
4532
+
[[package]]
4533
+
name = "windows_x86_64_gnullvm"
4534
+
version = "0.53.1"
4535
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4536
+
checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
4537
+
4538
+
[[package]]
4539
+
name = "windows_x86_64_msvc"
4540
+
version = "0.42.2"
4541
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4542
+
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
4543
+
4544
+
[[package]]
4545
+
name = "windows_x86_64_msvc"
4546
+
version = "0.48.5"
4547
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4548
+
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
4549
+
4550
+
[[package]]
4551
+
name = "windows_x86_64_msvc"
4552
+
version = "0.52.6"
4553
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4554
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
4555
+
4556
+
[[package]]
4557
+
name = "windows_x86_64_msvc"
4558
+
version = "0.53.1"
4559
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4560
+
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
4561
+
4562
+
[[package]]
4563
+
name = "winreg"
4564
+
version = "0.50.0"
4565
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4566
+
checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
4567
+
dependencies = [
4568
+
"cfg-if",
4569
+
"windows-sys 0.48.0",
4570
+
]
4571
+
4572
+
[[package]]
4573
+
name = "wisp-cli"
4574
+
version = "0.1.0"
4575
+
dependencies = [
4576
+
"base64 0.22.1",
4577
+
"bytes",
4578
+
"clap",
4579
+
"flate2",
4580
+
"jacquard",
4581
+
"jacquard-api",
4582
+
"jacquard-common",
4583
+
"jacquard-derive",
4584
+
"jacquard-identity",
4585
+
"jacquard-lexicon",
4586
+
"jacquard-oauth",
4587
+
"miette",
4588
+
"mime_guess",
4589
+
"reqwest",
4590
+
"rustversion",
4591
+
"serde",
4592
+
"serde_json",
4593
+
"shellexpand",
4594
+
"tokio",
4595
+
"walkdir",
4596
+
]
4597
+
4598
+
[[package]]
4599
+
name = "wit-bindgen"
4600
+
version = "0.46.0"
4601
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4602
+
checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
4603
+
4604
+
[[package]]
4605
+
name = "writeable"
4606
+
version = "0.6.2"
4607
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4608
+
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
4609
+
4610
+
[[package]]
4611
+
name = "xml5ever"
4612
+
version = "0.18.1"
4613
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4614
+
checksum = "9bbb26405d8e919bc1547a5aa9abc95cbfa438f04844f5fdd9dc7596b748bf69"
4615
+
dependencies = [
4616
+
"log",
4617
+
"mac",
4618
+
"markup5ever",
4619
+
]
4620
+
4621
+
[[package]]
4622
+
name = "yansi"
4623
+
version = "1.0.1"
4624
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4625
+
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
4626
+
4627
+
[[package]]
4628
+
name = "yoke"
4629
+
version = "0.8.1"
4630
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4631
+
checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
4632
+
dependencies = [
4633
+
"stable_deref_trait",
4634
+
"yoke-derive",
4635
+
"zerofrom",
4636
+
]
4637
+
4638
+
[[package]]
4639
+
name = "yoke-derive"
4640
+
version = "0.8.1"
4641
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4642
+
checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
4643
+
dependencies = [
4644
+
"proc-macro2",
4645
+
"quote",
4646
+
"syn 2.0.108",
4647
+
"synstructure",
4648
+
]
4649
+
4650
+
[[package]]
4651
+
name = "zerocopy"
4652
+
version = "0.8.27"
4653
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4654
+
checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
4655
+
dependencies = [
4656
+
"zerocopy-derive",
4657
+
]
4658
+
4659
+
[[package]]
4660
+
name = "zerocopy-derive"
4661
+
version = "0.8.27"
4662
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4663
+
checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
4664
+
dependencies = [
4665
+
"proc-macro2",
4666
+
"quote",
4667
+
"syn 2.0.108",
4668
+
]
4669
+
4670
+
[[package]]
4671
+
name = "zerofrom"
4672
+
version = "0.1.6"
4673
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4674
+
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
4675
+
dependencies = [
4676
+
"zerofrom-derive",
4677
+
]
4678
+
4679
+
[[package]]
4680
+
name = "zerofrom-derive"
4681
+
version = "0.1.6"
4682
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4683
+
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
4684
+
dependencies = [
4685
+
"proc-macro2",
4686
+
"quote",
4687
+
"syn 2.0.108",
4688
+
"synstructure",
4689
+
]
4690
+
4691
+
[[package]]
4692
+
name = "zeroize"
4693
+
version = "1.8.2"
4694
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4695
+
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
4696
+
dependencies = [
4697
+
"serde",
4698
+
]
4699
+
4700
+
[[package]]
4701
+
name = "zerotrie"
4702
+
version = "0.2.3"
4703
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4704
+
checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
4705
+
dependencies = [
4706
+
"displaydoc",
4707
+
"yoke",
4708
+
"zerofrom",
4709
+
]
4710
+
4711
+
[[package]]
4712
+
name = "zerovec"
4713
+
version = "0.11.5"
4714
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4715
+
checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
4716
+
dependencies = [
4717
+
"yoke",
4718
+
"zerofrom",
4719
+
"zerovec-derive",
4720
+
]
4721
+
4722
+
[[package]]
4723
+
name = "zerovec-derive"
4724
+
version = "0.11.2"
4725
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4726
+
checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
4727
+
dependencies = [
4728
+
"proc-macro2",
4729
+
"quote",
4730
+
"syn 2.0.108",
4731
+
]
+30
cli/Cargo.toml
+30
cli/Cargo.toml
···
1
+
[package]
2
+
name = "wisp-cli"
3
+
version = "0.1.0"
4
+
edition = "2024"
5
+
6
+
[features]
7
+
default = ["place_wisp"]
8
+
place_wisp = []
9
+
10
+
[dependencies]
11
+
jacquard = { path = "jacquard/crates/jacquard", features = ["loopback"] }
12
+
jacquard-oauth = { path = "jacquard/crates/jacquard-oauth" }
13
+
jacquard-api = { path = "jacquard/crates/jacquard-api" }
14
+
jacquard-common = { path = "jacquard/crates/jacquard-common" }
15
+
jacquard-identity = { path = "jacquard/crates/jacquard-identity", features = ["dns"] }
16
+
jacquard-derive = { path = "jacquard/crates/jacquard-derive" }
17
+
jacquard-lexicon = { path = "jacquard/crates/jacquard-lexicon" }
18
+
clap = { version = "4.5.51", features = ["derive"] }
19
+
tokio = { version = "1.48", features = ["full"] }
20
+
miette = { version = "7.6.0", features = ["fancy"] }
21
+
serde_json = "1.0.145"
22
+
serde = { version = "1.0", features = ["derive"] }
23
+
shellexpand = "3.1.1"
24
+
reqwest = "0.12"
25
+
rustversion = "1.0"
26
+
flate2 = "1.0"
27
+
base64 = "0.22"
28
+
walkdir = "2.5"
29
+
mime_guess = "2.0"
30
+
bytes = "1.10"
+51
cli/lexicons/place/wisp/fs.json
+51
cli/lexicons/place/wisp/fs.json
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "place.wisp.fs",
4
+
"defs": {
5
+
"main": {
6
+
"type": "record",
7
+
"description": "Virtual filesystem manifest for a Wisp site",
8
+
"record": {
9
+
"type": "object",
10
+
"required": ["site", "root", "createdAt"],
11
+
"properties": {
12
+
"site": { "type": "string" },
13
+
"root": { "type": "ref", "ref": "#directory" },
14
+
"fileCount": { "type": "integer", "minimum": 0, "maximum": 1000 },
15
+
"createdAt": { "type": "string", "format": "datetime" }
16
+
}
17
+
}
18
+
},
19
+
"file": {
20
+
"type": "object",
21
+
"required": ["type", "blob"],
22
+
"properties": {
23
+
"type": { "type": "string", "const": "file" },
24
+
"blob": { "type": "blob", "accept": ["*/*"], "maxSize": 1000000, "description": "Content blob ref" },
25
+
"encoding": { "type": "string", "enum": ["gzip"], "description": "Content encoding (e.g., gzip for compressed files)" },
26
+
"mimeType": { "type": "string", "description": "Original MIME type before compression" },
27
+
"base64": { "type": "boolean", "description": "True if blob content is base64-encoded (used to bypass PDS content sniffing)" }
28
+
}
29
+
},
30
+
"directory": {
31
+
"type": "object",
32
+
"required": ["type", "entries"],
33
+
"properties": {
34
+
"type": { "type": "string", "const": "directory" },
35
+
"entries": {
36
+
"type": "array",
37
+
"maxLength": 500,
38
+
"items": { "type": "ref", "ref": "#entry" }
39
+
}
40
+
}
41
+
},
42
+
"entry": {
43
+
"type": "object",
44
+
"required": ["name", "node"],
45
+
"properties": {
46
+
"name": { "type": "string", "maxLength": 255 },
47
+
"node": { "type": "union", "refs": ["#file", "#directory"] }
48
+
}
49
+
}
50
+
}
51
+
}
+43
cli/src/builder_types.rs
+43
cli/src/builder_types.rs
···
1
+
// @generated by jacquard-lexicon. DO NOT EDIT.
2
+
//
3
+
// This file was automatically generated from Lexicon schemas.
4
+
// Any manual changes will be overwritten on the next regeneration.
5
+
6
+
/// Marker type indicating a builder field has been set
7
+
pub struct Set<T>(pub T);
8
+
impl<T> Set<T> {
9
+
/// Extract the inner value
10
+
#[inline]
11
+
pub fn into_inner(self) -> T {
12
+
self.0
13
+
}
14
+
}
15
+
16
+
/// Marker type indicating a builder field has not been set
17
+
pub struct Unset;
18
+
/// Trait indicating a builder field is set (has a value)
19
+
#[rustversion::attr(
20
+
since(1.78.0),
21
+
diagnostic::on_unimplemented(
22
+
message = "the field `{Self}` was not set, but this method requires it to be set",
23
+
label = "the field `{Self}` was not set"
24
+
)
25
+
)]
26
+
pub trait IsSet: private::Sealed {}
27
+
/// Trait indicating a builder field is unset (no value yet)
28
+
#[rustversion::attr(
29
+
since(1.78.0),
30
+
diagnostic::on_unimplemented(
31
+
message = "the field `{Self}` was already set, but this method requires it to be unset",
32
+
label = "the field `{Self}` was already set"
33
+
)
34
+
)]
35
+
pub trait IsUnset: private::Sealed {}
36
+
impl<T> IsSet for Set<T> {}
37
+
impl IsUnset for Unset {}
38
+
mod private {
39
+
/// Sealed trait to prevent external implementations
40
+
pub trait Sealed {}
41
+
impl<T> Sealed for super::Set<T> {}
42
+
impl Sealed for super::Unset {}
43
+
}
+191
cli/src/main.rs
+191
cli/src/main.rs
···
1
+
mod builder_types;
2
+
mod place_wisp;
3
+
4
+
use clap::Parser;
5
+
use jacquard::CowStr;
6
+
use jacquard::client::{Agent, FileAuthStore, AgentSessionExt};
7
+
use jacquard::oauth::client::OAuthClient;
8
+
use jacquard::oauth::loopback::LoopbackConfig;
9
+
use jacquard::prelude::IdentityResolver;
10
+
use jacquard_common::types::string::{Datetime, Rkey, RecordKey};
11
+
use jacquard_common::types::blob::MimeType;
12
+
use miette::IntoDiagnostic;
13
+
use std::path::{Path, PathBuf};
14
+
use flate2::Compression;
15
+
use flate2::write::GzEncoder;
16
+
use std::io::Write;
17
+
use base64::Engine;
18
+
19
+
use place_wisp::fs::*;
20
+
21
+
#[derive(Parser, Debug)]
22
+
#[command(author, version, about = "Deploy a static site to wisp.place")]
23
+
struct Args {
24
+
/// Handle (e.g., alice.bsky.social), DID, or PDS URL
25
+
input: CowStr<'static>,
26
+
27
+
/// Path to the directory containing your static site
28
+
#[arg(short, long, default_value = ".")]
29
+
path: PathBuf,
30
+
31
+
/// Site name (defaults to directory name)
32
+
#[arg(short, long)]
33
+
site: Option<String>,
34
+
35
+
/// Path to auth store file (will be created if missing)
36
+
#[arg(long, default_value = "/tmp/wisp-oauth-session.json")]
37
+
store: String,
38
+
}
39
+
40
+
#[tokio::main]
41
+
async fn main() -> miette::Result<()> {
42
+
let args = Args::parse();
43
+
44
+
let oauth = OAuthClient::with_default_config(FileAuthStore::new(&args.store));
45
+
let session = oauth
46
+
.login_with_local_server(args.input, Default::default(), LoopbackConfig::default())
47
+
.await?;
48
+
49
+
let agent: Agent<_> = Agent::from(session);
50
+
51
+
// Verify the path exists
52
+
if !args.path.exists() {
53
+
return Err(miette::miette!("Path does not exist: {}", args.path.display()));
54
+
}
55
+
56
+
// Get site name
57
+
let site_name = args.site.unwrap_or_else(|| {
58
+
args.path
59
+
.file_name()
60
+
.and_then(|n| n.to_str())
61
+
.unwrap_or("site")
62
+
.to_string()
63
+
});
64
+
65
+
println!("Deploying site '{}'...", site_name);
66
+
67
+
// Build directory tree
68
+
let root_dir = build_directory(&agent, &args.path).await?;
69
+
70
+
// Count total files
71
+
let file_count = count_files(&root_dir);
72
+
73
+
// Create the Fs record
74
+
let fs_record = Fs::new()
75
+
.site(CowStr::from(site_name.clone()))
76
+
.root(root_dir)
77
+
.file_count(file_count as i64)
78
+
.created_at(Datetime::now())
79
+
.build();
80
+
81
+
// Use site name as the record key
82
+
let rkey = Rkey::new(&site_name).map_err(|e| miette::miette!("Invalid rkey: {}", e))?;
83
+
let output = agent.put_record(RecordKey::from(rkey), fs_record).await?;
84
+
85
+
// Extract DID from the AT URI (format: at://did:plc:xxx/collection/rkey)
86
+
let uri_str = output.uri.to_string();
87
+
let did = uri_str
88
+
.strip_prefix("at://")
89
+
.and_then(|s| s.split('/').next())
90
+
.ok_or_else(|| miette::miette!("Failed to parse DID from URI"))?;
91
+
92
+
println!("Deployed site '{}': {}", site_name, output.uri);
93
+
println!("Available at: https://sites.wisp.place/{}/{}", did, site_name);
94
+
95
+
Ok(())
96
+
}
97
+
98
+
/// Recursively build a Directory from a filesystem path
99
+
fn build_directory<'a>(
100
+
agent: &'a Agent<impl jacquard::client::AgentSession + IdentityResolver + 'a>,
101
+
dir_path: &'a Path,
102
+
) -> std::pin::Pin<Box<dyn std::future::Future<Output = miette::Result<Directory<'static>>> + 'a>>
103
+
{
104
+
Box::pin(async move {
105
+
let mut entries = Vec::new();
106
+
107
+
for entry in std::fs::read_dir(dir_path).into_diagnostic()? {
108
+
let entry = entry.into_diagnostic()?;
109
+
let path = entry.path();
110
+
let name = entry.file_name();
111
+
let name_str = name.to_str()
112
+
.ok_or_else(|| miette::miette!("Invalid filename: {:?}", name))?;
113
+
114
+
// Skip hidden files
115
+
if name_str.starts_with('.') {
116
+
continue;
117
+
}
118
+
119
+
let metadata = entry.metadata().into_diagnostic()?;
120
+
121
+
if metadata.is_file() {
122
+
let file_node = process_file(agent, &path).await?;
123
+
entries.push(Entry::new()
124
+
.name(CowStr::from(name_str.to_string()))
125
+
.node(EntryNode::File(Box::new(file_node)))
126
+
.build());
127
+
} else if metadata.is_dir() {
128
+
let subdir = build_directory(agent, &path).await?;
129
+
entries.push(Entry::new()
130
+
.name(CowStr::from(name_str.to_string()))
131
+
.node(EntryNode::Directory(Box::new(subdir)))
132
+
.build());
133
+
}
134
+
}
135
+
136
+
Ok(Directory::new()
137
+
.r#type(CowStr::from("directory"))
138
+
.entries(entries)
139
+
.build())
140
+
})
141
+
}
142
+
143
+
/// Process a single file: gzip -> base64 -> upload blob
144
+
async fn process_file(
145
+
agent: &Agent<impl jacquard::client::AgentSession + IdentityResolver>,
146
+
file_path: &Path,
147
+
) -> miette::Result<File<'static>>
148
+
{
149
+
// Read file
150
+
let file_data = std::fs::read(file_path).into_diagnostic()?;
151
+
152
+
// Detect original MIME type
153
+
let original_mime = mime_guess::from_path(file_path)
154
+
.first_or_octet_stream()
155
+
.to_string();
156
+
157
+
// Gzip compress
158
+
let mut encoder = GzEncoder::new(Vec::new(), Compression::default());
159
+
encoder.write_all(&file_data).into_diagnostic()?;
160
+
let gzipped = encoder.finish().into_diagnostic()?;
161
+
162
+
// Base64 encode the gzipped data
163
+
let base64_bytes = base64::prelude::BASE64_STANDARD.encode(&gzipped).into_bytes();
164
+
165
+
// Upload blob as octet-stream
166
+
let blob = agent.upload_blob(
167
+
base64_bytes,
168
+
MimeType::new_static("application/octet-stream"),
169
+
).await?;
170
+
171
+
Ok(File::new()
172
+
.r#type(CowStr::from("file"))
173
+
.blob(blob)
174
+
.encoding(CowStr::from("gzip"))
175
+
.mime_type(CowStr::from(original_mime))
176
+
.base64(true)
177
+
.build())
178
+
}
179
+
180
+
/// Count total files in a directory tree
181
+
fn count_files(dir: &Directory) -> usize {
182
+
let mut count = 0;
183
+
for entry in &dir.entries {
184
+
match &entry.node {
185
+
EntryNode::File(_) => count += 1,
186
+
EntryNode::Directory(subdir) => count += count_files(subdir),
187
+
_ => {} // Unknown variants
188
+
}
189
+
}
190
+
count
191
+
}
+9
cli/src/mod.rs
+9
cli/src/mod.rs
+6
cli/src/place_wisp.rs
+6
cli/src/place_wisp.rs
+1230
cli/src/place_wisp/fs.rs
+1230
cli/src/place_wisp/fs.rs
···
1
+
// @generated by jacquard-lexicon. DO NOT EDIT.
2
+
//
3
+
// Lexicon: place.wisp.fs
4
+
//
5
+
// This file was automatically generated from Lexicon schemas.
6
+
// Any manual changes will be overwritten on the next regeneration.
7
+
8
+
#[jacquard_derive::lexicon]
9
+
#[derive(
10
+
serde::Serialize,
11
+
serde::Deserialize,
12
+
Debug,
13
+
Clone,
14
+
PartialEq,
15
+
Eq,
16
+
jacquard_derive::IntoStatic
17
+
)]
18
+
#[serde(rename_all = "camelCase")]
19
+
pub struct Directory<'a> {
20
+
#[serde(borrow)]
21
+
pub entries: Vec<crate::place_wisp::fs::Entry<'a>>,
22
+
#[serde(borrow)]
23
+
pub r#type: jacquard_common::CowStr<'a>,
24
+
}
25
+
26
+
pub mod directory_state {
27
+
28
+
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
29
+
#[allow(unused)]
30
+
use ::core::marker::PhantomData;
31
+
mod sealed {
32
+
pub trait Sealed {}
33
+
}
34
+
/// State trait tracking which required fields have been set
35
+
pub trait State: sealed::Sealed {
36
+
type Type;
37
+
type Entries;
38
+
}
39
+
/// Empty state - all required fields are unset
40
+
pub struct Empty(());
41
+
impl sealed::Sealed for Empty {}
42
+
impl State for Empty {
43
+
type Type = Unset;
44
+
type Entries = Unset;
45
+
}
46
+
///State transition - sets the `type` field to Set
47
+
pub struct SetType<S: State = Empty>(PhantomData<fn() -> S>);
48
+
impl<S: State> sealed::Sealed for SetType<S> {}
49
+
impl<S: State> State for SetType<S> {
50
+
type Type = Set<members::r#type>;
51
+
type Entries = S::Entries;
52
+
}
53
+
///State transition - sets the `entries` field to Set
54
+
pub struct SetEntries<S: State = Empty>(PhantomData<fn() -> S>);
55
+
impl<S: State> sealed::Sealed for SetEntries<S> {}
56
+
impl<S: State> State for SetEntries<S> {
57
+
type Type = S::Type;
58
+
type Entries = Set<members::entries>;
59
+
}
60
+
/// Marker types for field names
61
+
#[allow(non_camel_case_types)]
62
+
pub mod members {
63
+
///Marker type for the `type` field
64
+
pub struct r#type(());
65
+
///Marker type for the `entries` field
66
+
pub struct entries(());
67
+
}
68
+
}
69
+
70
+
/// Builder for constructing an instance of this type
71
+
pub struct DirectoryBuilder<'a, S: directory_state::State> {
72
+
_phantom_state: ::core::marker::PhantomData<fn() -> S>,
73
+
__unsafe_private_named: (
74
+
::core::option::Option<Vec<crate::place_wisp::fs::Entry<'a>>>,
75
+
::core::option::Option<jacquard_common::CowStr<'a>>,
76
+
),
77
+
_phantom: ::core::marker::PhantomData<&'a ()>,
78
+
}
79
+
80
+
impl<'a> Directory<'a> {
81
+
/// Create a new builder for this type
82
+
pub fn new() -> DirectoryBuilder<'a, directory_state::Empty> {
83
+
DirectoryBuilder::new()
84
+
}
85
+
}
86
+
87
+
impl<'a> DirectoryBuilder<'a, directory_state::Empty> {
88
+
/// Create a new builder with all fields unset
89
+
pub fn new() -> Self {
90
+
DirectoryBuilder {
91
+
_phantom_state: ::core::marker::PhantomData,
92
+
__unsafe_private_named: (None, None),
93
+
_phantom: ::core::marker::PhantomData,
94
+
}
95
+
}
96
+
}
97
+
98
+
impl<'a, S> DirectoryBuilder<'a, S>
99
+
where
100
+
S: directory_state::State,
101
+
S::Entries: directory_state::IsUnset,
102
+
{
103
+
/// Set the `entries` field (required)
104
+
pub fn entries(
105
+
mut self,
106
+
value: impl Into<Vec<crate::place_wisp::fs::Entry<'a>>>,
107
+
) -> DirectoryBuilder<'a, directory_state::SetEntries<S>> {
108
+
self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
109
+
DirectoryBuilder {
110
+
_phantom_state: ::core::marker::PhantomData,
111
+
__unsafe_private_named: self.__unsafe_private_named,
112
+
_phantom: ::core::marker::PhantomData,
113
+
}
114
+
}
115
+
}
116
+
117
+
impl<'a, S> DirectoryBuilder<'a, S>
118
+
where
119
+
S: directory_state::State,
120
+
S::Type: directory_state::IsUnset,
121
+
{
122
+
/// Set the `type` field (required)
123
+
pub fn r#type(
124
+
mut self,
125
+
value: impl Into<jacquard_common::CowStr<'a>>,
126
+
) -> DirectoryBuilder<'a, directory_state::SetType<S>> {
127
+
self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
128
+
DirectoryBuilder {
129
+
_phantom_state: ::core::marker::PhantomData,
130
+
__unsafe_private_named: self.__unsafe_private_named,
131
+
_phantom: ::core::marker::PhantomData,
132
+
}
133
+
}
134
+
}
135
+
136
+
impl<'a, S> DirectoryBuilder<'a, S>
137
+
where
138
+
S: directory_state::State,
139
+
S::Type: directory_state::IsSet,
140
+
S::Entries: directory_state::IsSet,
141
+
{
142
+
/// Build the final struct
143
+
pub fn build(self) -> Directory<'a> {
144
+
Directory {
145
+
entries: self.__unsafe_private_named.0.unwrap(),
146
+
r#type: self.__unsafe_private_named.1.unwrap(),
147
+
extra_data: Default::default(),
148
+
}
149
+
}
150
+
/// Build the final struct with custom extra_data
151
+
pub fn build_with_data(
152
+
self,
153
+
extra_data: std::collections::BTreeMap<
154
+
jacquard_common::smol_str::SmolStr,
155
+
jacquard_common::types::value::Data<'a>,
156
+
>,
157
+
) -> Directory<'a> {
158
+
Directory {
159
+
entries: self.__unsafe_private_named.0.unwrap(),
160
+
r#type: self.__unsafe_private_named.1.unwrap(),
161
+
extra_data: Some(extra_data),
162
+
}
163
+
}
164
+
}
165
+
166
+
fn lexicon_doc_place_wisp_fs() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
167
+
::jacquard_lexicon::lexicon::LexiconDoc {
168
+
lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
169
+
id: ::jacquard_common::CowStr::new_static("place.wisp.fs"),
170
+
revision: None,
171
+
description: None,
172
+
defs: {
173
+
let mut map = ::std::collections::BTreeMap::new();
174
+
map.insert(
175
+
::jacquard_common::smol_str::SmolStr::new_static("directory"),
176
+
::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
177
+
description: None,
178
+
required: Some(
179
+
vec![
180
+
::jacquard_common::smol_str::SmolStr::new_static("type"),
181
+
::jacquard_common::smol_str::SmolStr::new_static("entries")
182
+
],
183
+
),
184
+
nullable: None,
185
+
properties: {
186
+
#[allow(unused_mut)]
187
+
let mut map = ::std::collections::BTreeMap::new();
188
+
map.insert(
189
+
::jacquard_common::smol_str::SmolStr::new_static("entries"),
190
+
::jacquard_lexicon::lexicon::LexObjectProperty::Array(::jacquard_lexicon::lexicon::LexArray {
191
+
description: None,
192
+
items: ::jacquard_lexicon::lexicon::LexArrayItem::Ref(::jacquard_lexicon::lexicon::LexRef {
193
+
description: None,
194
+
r#ref: ::jacquard_common::CowStr::new_static("#entry"),
195
+
}),
196
+
min_length: None,
197
+
max_length: Some(500usize),
198
+
}),
199
+
);
200
+
map.insert(
201
+
::jacquard_common::smol_str::SmolStr::new_static("type"),
202
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
203
+
description: None,
204
+
format: None,
205
+
default: None,
206
+
min_length: None,
207
+
max_length: None,
208
+
min_graphemes: None,
209
+
max_graphemes: None,
210
+
r#enum: None,
211
+
r#const: None,
212
+
known_values: None,
213
+
}),
214
+
);
215
+
map
216
+
},
217
+
}),
218
+
);
219
+
map.insert(
220
+
::jacquard_common::smol_str::SmolStr::new_static("entry"),
221
+
::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
222
+
description: None,
223
+
required: Some(
224
+
vec![
225
+
::jacquard_common::smol_str::SmolStr::new_static("name"),
226
+
::jacquard_common::smol_str::SmolStr::new_static("node")
227
+
],
228
+
),
229
+
nullable: None,
230
+
properties: {
231
+
#[allow(unused_mut)]
232
+
let mut map = ::std::collections::BTreeMap::new();
233
+
map.insert(
234
+
::jacquard_common::smol_str::SmolStr::new_static("name"),
235
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
236
+
description: None,
237
+
format: None,
238
+
default: None,
239
+
min_length: None,
240
+
max_length: Some(255usize),
241
+
min_graphemes: None,
242
+
max_graphemes: None,
243
+
r#enum: None,
244
+
r#const: None,
245
+
known_values: None,
246
+
}),
247
+
);
248
+
map.insert(
249
+
::jacquard_common::smol_str::SmolStr::new_static("node"),
250
+
::jacquard_lexicon::lexicon::LexObjectProperty::Union(::jacquard_lexicon::lexicon::LexRefUnion {
251
+
description: None,
252
+
refs: vec![
253
+
::jacquard_common::CowStr::new_static("#file"),
254
+
::jacquard_common::CowStr::new_static("#directory")
255
+
],
256
+
closed: None,
257
+
}),
258
+
);
259
+
map
260
+
},
261
+
}),
262
+
);
263
+
map.insert(
264
+
::jacquard_common::smol_str::SmolStr::new_static("file"),
265
+
::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
266
+
description: None,
267
+
required: Some(
268
+
vec![
269
+
::jacquard_common::smol_str::SmolStr::new_static("type"),
270
+
::jacquard_common::smol_str::SmolStr::new_static("blob")
271
+
],
272
+
),
273
+
nullable: None,
274
+
properties: {
275
+
#[allow(unused_mut)]
276
+
let mut map = ::std::collections::BTreeMap::new();
277
+
map.insert(
278
+
::jacquard_common::smol_str::SmolStr::new_static("base64"),
279
+
::jacquard_lexicon::lexicon::LexObjectProperty::Boolean(::jacquard_lexicon::lexicon::LexBoolean {
280
+
description: None,
281
+
default: None,
282
+
r#const: None,
283
+
}),
284
+
);
285
+
map.insert(
286
+
::jacquard_common::smol_str::SmolStr::new_static("blob"),
287
+
::jacquard_lexicon::lexicon::LexObjectProperty::Blob(::jacquard_lexicon::lexicon::LexBlob {
288
+
description: None,
289
+
accept: None,
290
+
max_size: None,
291
+
}),
292
+
);
293
+
map.insert(
294
+
::jacquard_common::smol_str::SmolStr::new_static("encoding"),
295
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
296
+
description: Some(
297
+
::jacquard_common::CowStr::new_static(
298
+
"Content encoding (e.g., gzip for compressed files)",
299
+
),
300
+
),
301
+
format: None,
302
+
default: None,
303
+
min_length: None,
304
+
max_length: None,
305
+
min_graphemes: None,
306
+
max_graphemes: None,
307
+
r#enum: None,
308
+
r#const: None,
309
+
known_values: None,
310
+
}),
311
+
);
312
+
map.insert(
313
+
::jacquard_common::smol_str::SmolStr::new_static("mimeType"),
314
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
315
+
description: Some(
316
+
::jacquard_common::CowStr::new_static(
317
+
"Original MIME type before compression",
318
+
),
319
+
),
320
+
format: None,
321
+
default: None,
322
+
min_length: None,
323
+
max_length: None,
324
+
min_graphemes: None,
325
+
max_graphemes: None,
326
+
r#enum: None,
327
+
r#const: None,
328
+
known_values: None,
329
+
}),
330
+
);
331
+
map.insert(
332
+
::jacquard_common::smol_str::SmolStr::new_static("type"),
333
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
334
+
description: None,
335
+
format: None,
336
+
default: None,
337
+
min_length: None,
338
+
max_length: None,
339
+
min_graphemes: None,
340
+
max_graphemes: None,
341
+
r#enum: None,
342
+
r#const: None,
343
+
known_values: None,
344
+
}),
345
+
);
346
+
map
347
+
},
348
+
}),
349
+
);
350
+
map.insert(
351
+
::jacquard_common::smol_str::SmolStr::new_static("main"),
352
+
::jacquard_lexicon::lexicon::LexUserType::Record(::jacquard_lexicon::lexicon::LexRecord {
353
+
description: Some(
354
+
::jacquard_common::CowStr::new_static(
355
+
"Virtual filesystem manifest for a Wisp site",
356
+
),
357
+
),
358
+
key: None,
359
+
record: ::jacquard_lexicon::lexicon::LexRecordRecord::Object(::jacquard_lexicon::lexicon::LexObject {
360
+
description: None,
361
+
required: Some(
362
+
vec![
363
+
::jacquard_common::smol_str::SmolStr::new_static("site"),
364
+
::jacquard_common::smol_str::SmolStr::new_static("root"),
365
+
::jacquard_common::smol_str::SmolStr::new_static("createdAt")
366
+
],
367
+
),
368
+
nullable: None,
369
+
properties: {
370
+
#[allow(unused_mut)]
371
+
let mut map = ::std::collections::BTreeMap::new();
372
+
map.insert(
373
+
::jacquard_common::smol_str::SmolStr::new_static(
374
+
"createdAt",
375
+
),
376
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
377
+
description: None,
378
+
format: Some(
379
+
::jacquard_lexicon::lexicon::LexStringFormat::Datetime,
380
+
),
381
+
default: None,
382
+
min_length: None,
383
+
max_length: None,
384
+
min_graphemes: None,
385
+
max_graphemes: None,
386
+
r#enum: None,
387
+
r#const: None,
388
+
known_values: None,
389
+
}),
390
+
);
391
+
map.insert(
392
+
::jacquard_common::smol_str::SmolStr::new_static(
393
+
"fileCount",
394
+
),
395
+
::jacquard_lexicon::lexicon::LexObjectProperty::Integer(::jacquard_lexicon::lexicon::LexInteger {
396
+
description: None,
397
+
default: None,
398
+
minimum: Some(0i64),
399
+
maximum: Some(1000i64),
400
+
r#enum: None,
401
+
r#const: None,
402
+
}),
403
+
);
404
+
map.insert(
405
+
::jacquard_common::smol_str::SmolStr::new_static("root"),
406
+
::jacquard_lexicon::lexicon::LexObjectProperty::Ref(::jacquard_lexicon::lexicon::LexRef {
407
+
description: None,
408
+
r#ref: ::jacquard_common::CowStr::new_static("#directory"),
409
+
}),
410
+
);
411
+
map.insert(
412
+
::jacquard_common::smol_str::SmolStr::new_static("site"),
413
+
::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
414
+
description: None,
415
+
format: None,
416
+
default: None,
417
+
min_length: None,
418
+
max_length: None,
419
+
min_graphemes: None,
420
+
max_graphemes: None,
421
+
r#enum: None,
422
+
r#const: None,
423
+
known_values: None,
424
+
}),
425
+
);
426
+
map
427
+
},
428
+
}),
429
+
}),
430
+
);
431
+
map
432
+
},
433
+
}
434
+
}
435
+
436
+
impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Directory<'a> {
437
+
fn nsid() -> &'static str {
438
+
"place.wisp.fs"
439
+
}
440
+
fn def_name() -> &'static str {
441
+
"directory"
442
+
}
443
+
fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
444
+
lexicon_doc_place_wisp_fs()
445
+
}
446
+
fn validate(
447
+
&self,
448
+
) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
449
+
{
450
+
let value = &self.entries;
451
+
#[allow(unused_comparisons)]
452
+
if value.len() > 500usize {
453
+
return Err(::jacquard_lexicon::validation::ConstraintError::MaxLength {
454
+
path: ::jacquard_lexicon::validation::ValidationPath::from_field(
455
+
"entries",
456
+
),
457
+
max: 500usize,
458
+
actual: value.len(),
459
+
});
460
+
}
461
+
}
462
+
Ok(())
463
+
}
464
+
}
465
+
466
+
#[jacquard_derive::lexicon]
467
+
#[derive(
468
+
serde::Serialize,
469
+
serde::Deserialize,
470
+
Debug,
471
+
Clone,
472
+
PartialEq,
473
+
Eq,
474
+
jacquard_derive::IntoStatic
475
+
)]
476
+
#[serde(rename_all = "camelCase")]
477
+
pub struct Entry<'a> {
478
+
#[serde(borrow)]
479
+
pub name: jacquard_common::CowStr<'a>,
480
+
#[serde(borrow)]
481
+
pub node: EntryNode<'a>,
482
+
}
483
+
484
+
pub mod entry_state {
485
+
486
+
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
487
+
#[allow(unused)]
488
+
use ::core::marker::PhantomData;
489
+
mod sealed {
490
+
pub trait Sealed {}
491
+
}
492
+
/// State trait tracking which required fields have been set
493
+
pub trait State: sealed::Sealed {
494
+
type Name;
495
+
type Node;
496
+
}
497
+
/// Empty state - all required fields are unset
498
+
pub struct Empty(());
499
+
impl sealed::Sealed for Empty {}
500
+
impl State for Empty {
501
+
type Name = Unset;
502
+
type Node = Unset;
503
+
}
504
+
///State transition - sets the `name` field to Set
505
+
pub struct SetName<S: State = Empty>(PhantomData<fn() -> S>);
506
+
impl<S: State> sealed::Sealed for SetName<S> {}
507
+
impl<S: State> State for SetName<S> {
508
+
type Name = Set<members::name>;
509
+
type Node = S::Node;
510
+
}
511
+
///State transition - sets the `node` field to Set
512
+
pub struct SetNode<S: State = Empty>(PhantomData<fn() -> S>);
513
+
impl<S: State> sealed::Sealed for SetNode<S> {}
514
+
impl<S: State> State for SetNode<S> {
515
+
type Name = S::Name;
516
+
type Node = Set<members::node>;
517
+
}
518
+
/// Marker types for field names
519
+
#[allow(non_camel_case_types)]
520
+
pub mod members {
521
+
///Marker type for the `name` field
522
+
pub struct name(());
523
+
///Marker type for the `node` field
524
+
pub struct node(());
525
+
}
526
+
}
527
+
528
+
/// Builder for constructing an instance of this type
529
+
pub struct EntryBuilder<'a, S: entry_state::State> {
530
+
_phantom_state: ::core::marker::PhantomData<fn() -> S>,
531
+
__unsafe_private_named: (
532
+
::core::option::Option<jacquard_common::CowStr<'a>>,
533
+
::core::option::Option<EntryNode<'a>>,
534
+
),
535
+
_phantom: ::core::marker::PhantomData<&'a ()>,
536
+
}
537
+
538
+
impl<'a> Entry<'a> {
539
+
/// Create a new builder for this type
540
+
pub fn new() -> EntryBuilder<'a, entry_state::Empty> {
541
+
EntryBuilder::new()
542
+
}
543
+
}
544
+
545
+
impl<'a> EntryBuilder<'a, entry_state::Empty> {
546
+
/// Create a new builder with all fields unset
547
+
pub fn new() -> Self {
548
+
EntryBuilder {
549
+
_phantom_state: ::core::marker::PhantomData,
550
+
__unsafe_private_named: (None, None),
551
+
_phantom: ::core::marker::PhantomData,
552
+
}
553
+
}
554
+
}
555
+
556
+
impl<'a, S> EntryBuilder<'a, S>
557
+
where
558
+
S: entry_state::State,
559
+
S::Name: entry_state::IsUnset,
560
+
{
561
+
/// Set the `name` field (required)
562
+
pub fn name(
563
+
mut self,
564
+
value: impl Into<jacquard_common::CowStr<'a>>,
565
+
) -> EntryBuilder<'a, entry_state::SetName<S>> {
566
+
self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
567
+
EntryBuilder {
568
+
_phantom_state: ::core::marker::PhantomData,
569
+
__unsafe_private_named: self.__unsafe_private_named,
570
+
_phantom: ::core::marker::PhantomData,
571
+
}
572
+
}
573
+
}
574
+
575
+
impl<'a, S> EntryBuilder<'a, S>
576
+
where
577
+
S: entry_state::State,
578
+
S::Node: entry_state::IsUnset,
579
+
{
580
+
/// Set the `node` field (required)
581
+
pub fn node(
582
+
mut self,
583
+
value: impl Into<EntryNode<'a>>,
584
+
) -> EntryBuilder<'a, entry_state::SetNode<S>> {
585
+
self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
586
+
EntryBuilder {
587
+
_phantom_state: ::core::marker::PhantomData,
588
+
__unsafe_private_named: self.__unsafe_private_named,
589
+
_phantom: ::core::marker::PhantomData,
590
+
}
591
+
}
592
+
}
593
+
594
+
impl<'a, S> EntryBuilder<'a, S>
595
+
where
596
+
S: entry_state::State,
597
+
S::Name: entry_state::IsSet,
598
+
S::Node: entry_state::IsSet,
599
+
{
600
+
/// Build the final struct
601
+
pub fn build(self) -> Entry<'a> {
602
+
Entry {
603
+
name: self.__unsafe_private_named.0.unwrap(),
604
+
node: self.__unsafe_private_named.1.unwrap(),
605
+
extra_data: Default::default(),
606
+
}
607
+
}
608
+
/// Build the final struct with custom extra_data
609
+
pub fn build_with_data(
610
+
self,
611
+
extra_data: std::collections::BTreeMap<
612
+
jacquard_common::smol_str::SmolStr,
613
+
jacquard_common::types::value::Data<'a>,
614
+
>,
615
+
) -> Entry<'a> {
616
+
Entry {
617
+
name: self.__unsafe_private_named.0.unwrap(),
618
+
node: self.__unsafe_private_named.1.unwrap(),
619
+
extra_data: Some(extra_data),
620
+
}
621
+
}
622
+
}
623
+
624
+
#[jacquard_derive::open_union]
625
+
#[derive(
626
+
serde::Serialize,
627
+
serde::Deserialize,
628
+
Debug,
629
+
Clone,
630
+
PartialEq,
631
+
Eq,
632
+
jacquard_derive::IntoStatic
633
+
)]
634
+
#[serde(tag = "$type")]
635
+
#[serde(bound(deserialize = "'de: 'a"))]
636
+
pub enum EntryNode<'a> {
637
+
#[serde(rename = "place.wisp.fs#file")]
638
+
File(Box<crate::place_wisp::fs::File<'a>>),
639
+
#[serde(rename = "place.wisp.fs#directory")]
640
+
Directory(Box<crate::place_wisp::fs::Directory<'a>>),
641
+
}
642
+
643
+
impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Entry<'a> {
644
+
fn nsid() -> &'static str {
645
+
"place.wisp.fs"
646
+
}
647
+
fn def_name() -> &'static str {
648
+
"entry"
649
+
}
650
+
fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
651
+
lexicon_doc_place_wisp_fs()
652
+
}
653
+
fn validate(
654
+
&self,
655
+
) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
656
+
{
657
+
let value = &self.name;
658
+
#[allow(unused_comparisons)]
659
+
if <str>::len(value.as_ref()) > 255usize {
660
+
return Err(::jacquard_lexicon::validation::ConstraintError::MaxLength {
661
+
path: ::jacquard_lexicon::validation::ValidationPath::from_field(
662
+
"name",
663
+
),
664
+
max: 255usize,
665
+
actual: <str>::len(value.as_ref()),
666
+
});
667
+
}
668
+
}
669
+
Ok(())
670
+
}
671
+
}
672
+
673
+
#[jacquard_derive::lexicon]
674
+
#[derive(
675
+
serde::Serialize,
676
+
serde::Deserialize,
677
+
Debug,
678
+
Clone,
679
+
PartialEq,
680
+
Eq,
681
+
jacquard_derive::IntoStatic
682
+
)]
683
+
#[serde(rename_all = "camelCase")]
684
+
pub struct File<'a> {
685
+
/// True if blob content is base64-encoded (used to bypass PDS content sniffing)
686
+
#[serde(skip_serializing_if = "std::option::Option::is_none")]
687
+
pub base64: Option<bool>,
688
+
/// Content blob ref
689
+
#[serde(borrow)]
690
+
pub blob: jacquard_common::types::blob::BlobRef<'a>,
691
+
/// Content encoding (e.g., gzip for compressed files)
692
+
#[serde(skip_serializing_if = "std::option::Option::is_none")]
693
+
#[serde(borrow)]
694
+
pub encoding: Option<jacquard_common::CowStr<'a>>,
695
+
/// Original MIME type before compression
696
+
#[serde(skip_serializing_if = "std::option::Option::is_none")]
697
+
#[serde(borrow)]
698
+
pub mime_type: Option<jacquard_common::CowStr<'a>>,
699
+
#[serde(borrow)]
700
+
pub r#type: jacquard_common::CowStr<'a>,
701
+
}
702
+
703
+
pub mod file_state {
704
+
705
+
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
706
+
#[allow(unused)]
707
+
use ::core::marker::PhantomData;
708
+
mod sealed {
709
+
pub trait Sealed {}
710
+
}
711
+
/// State trait tracking which required fields have been set
712
+
pub trait State: sealed::Sealed {
713
+
type Type;
714
+
type Blob;
715
+
}
716
+
/// Empty state - all required fields are unset
717
+
pub struct Empty(());
718
+
impl sealed::Sealed for Empty {}
719
+
impl State for Empty {
720
+
type Type = Unset;
721
+
type Blob = Unset;
722
+
}
723
+
///State transition - sets the `type` field to Set
724
+
pub struct SetType<S: State = Empty>(PhantomData<fn() -> S>);
725
+
impl<S: State> sealed::Sealed for SetType<S> {}
726
+
impl<S: State> State for SetType<S> {
727
+
type Type = Set<members::r#type>;
728
+
type Blob = S::Blob;
729
+
}
730
+
///State transition - sets the `blob` field to Set
731
+
pub struct SetBlob<S: State = Empty>(PhantomData<fn() -> S>);
732
+
impl<S: State> sealed::Sealed for SetBlob<S> {}
733
+
impl<S: State> State for SetBlob<S> {
734
+
type Type = S::Type;
735
+
type Blob = Set<members::blob>;
736
+
}
737
+
/// Marker types for field names
738
+
#[allow(non_camel_case_types)]
739
+
pub mod members {
740
+
///Marker type for the `type` field
741
+
pub struct r#type(());
742
+
///Marker type for the `blob` field
743
+
pub struct blob(());
744
+
}
745
+
}
746
+
747
+
/// Builder for constructing an instance of this type
748
+
pub struct FileBuilder<'a, S: file_state::State> {
749
+
_phantom_state: ::core::marker::PhantomData<fn() -> S>,
750
+
__unsafe_private_named: (
751
+
::core::option::Option<bool>,
752
+
::core::option::Option<jacquard_common::types::blob::BlobRef<'a>>,
753
+
::core::option::Option<jacquard_common::CowStr<'a>>,
754
+
::core::option::Option<jacquard_common::CowStr<'a>>,
755
+
::core::option::Option<jacquard_common::CowStr<'a>>,
756
+
),
757
+
_phantom: ::core::marker::PhantomData<&'a ()>,
758
+
}
759
+
760
+
impl<'a> File<'a> {
761
+
/// Create a new builder for this type
762
+
pub fn new() -> FileBuilder<'a, file_state::Empty> {
763
+
FileBuilder::new()
764
+
}
765
+
}
766
+
767
+
impl<'a> FileBuilder<'a, file_state::Empty> {
768
+
/// Create a new builder with all fields unset
769
+
pub fn new() -> Self {
770
+
FileBuilder {
771
+
_phantom_state: ::core::marker::PhantomData,
772
+
__unsafe_private_named: (None, None, None, None, None),
773
+
_phantom: ::core::marker::PhantomData,
774
+
}
775
+
}
776
+
}
777
+
778
+
impl<'a, S: file_state::State> FileBuilder<'a, S> {
779
+
/// Set the `base64` field (optional)
780
+
pub fn base64(mut self, value: impl Into<Option<bool>>) -> Self {
781
+
self.__unsafe_private_named.0 = value.into();
782
+
self
783
+
}
784
+
/// Set the `base64` field to an Option value (optional)
785
+
pub fn maybe_base64(mut self, value: Option<bool>) -> Self {
786
+
self.__unsafe_private_named.0 = value;
787
+
self
788
+
}
789
+
}
790
+
791
+
impl<'a, S> FileBuilder<'a, S>
792
+
where
793
+
S: file_state::State,
794
+
S::Blob: file_state::IsUnset,
795
+
{
796
+
/// Set the `blob` field (required)
797
+
pub fn blob(
798
+
mut self,
799
+
value: impl Into<jacquard_common::types::blob::BlobRef<'a>>,
800
+
) -> FileBuilder<'a, file_state::SetBlob<S>> {
801
+
self.__unsafe_private_named.1 = ::core::option::Option::Some(value.into());
802
+
FileBuilder {
803
+
_phantom_state: ::core::marker::PhantomData,
804
+
__unsafe_private_named: self.__unsafe_private_named,
805
+
_phantom: ::core::marker::PhantomData,
806
+
}
807
+
}
808
+
}
809
+
810
+
impl<'a, S: file_state::State> FileBuilder<'a, S> {
811
+
/// Set the `encoding` field (optional)
812
+
pub fn encoding(
813
+
mut self,
814
+
value: impl Into<Option<jacquard_common::CowStr<'a>>>,
815
+
) -> Self {
816
+
self.__unsafe_private_named.2 = value.into();
817
+
self
818
+
}
819
+
/// Set the `encoding` field to an Option value (optional)
820
+
pub fn maybe_encoding(mut self, value: Option<jacquard_common::CowStr<'a>>) -> Self {
821
+
self.__unsafe_private_named.2 = value;
822
+
self
823
+
}
824
+
}
825
+
826
+
impl<'a, S: file_state::State> FileBuilder<'a, S> {
827
+
/// Set the `mimeType` field (optional)
828
+
pub fn mime_type(
829
+
mut self,
830
+
value: impl Into<Option<jacquard_common::CowStr<'a>>>,
831
+
) -> Self {
832
+
self.__unsafe_private_named.3 = value.into();
833
+
self
834
+
}
835
+
/// Set the `mimeType` field to an Option value (optional)
836
+
pub fn maybe_mime_type(
837
+
mut self,
838
+
value: Option<jacquard_common::CowStr<'a>>,
839
+
) -> Self {
840
+
self.__unsafe_private_named.3 = value;
841
+
self
842
+
}
843
+
}
844
+
845
+
impl<'a, S> FileBuilder<'a, S>
846
+
where
847
+
S: file_state::State,
848
+
S::Type: file_state::IsUnset,
849
+
{
850
+
/// Set the `type` field (required)
851
+
pub fn r#type(
852
+
mut self,
853
+
value: impl Into<jacquard_common::CowStr<'a>>,
854
+
) -> FileBuilder<'a, file_state::SetType<S>> {
855
+
self.__unsafe_private_named.4 = ::core::option::Option::Some(value.into());
856
+
FileBuilder {
857
+
_phantom_state: ::core::marker::PhantomData,
858
+
__unsafe_private_named: self.__unsafe_private_named,
859
+
_phantom: ::core::marker::PhantomData,
860
+
}
861
+
}
862
+
}
863
+
864
+
impl<'a, S> FileBuilder<'a, S>
865
+
where
866
+
S: file_state::State,
867
+
S::Type: file_state::IsSet,
868
+
S::Blob: file_state::IsSet,
869
+
{
870
+
/// Build the final struct
871
+
pub fn build(self) -> File<'a> {
872
+
File {
873
+
base64: self.__unsafe_private_named.0,
874
+
blob: self.__unsafe_private_named.1.unwrap(),
875
+
encoding: self.__unsafe_private_named.2,
876
+
mime_type: self.__unsafe_private_named.3,
877
+
r#type: self.__unsafe_private_named.4.unwrap(),
878
+
extra_data: Default::default(),
879
+
}
880
+
}
881
+
/// Build the final struct with custom extra_data
882
+
pub fn build_with_data(
883
+
self,
884
+
extra_data: std::collections::BTreeMap<
885
+
jacquard_common::smol_str::SmolStr,
886
+
jacquard_common::types::value::Data<'a>,
887
+
>,
888
+
) -> File<'a> {
889
+
File {
890
+
base64: self.__unsafe_private_named.0,
891
+
blob: self.__unsafe_private_named.1.unwrap(),
892
+
encoding: self.__unsafe_private_named.2,
893
+
mime_type: self.__unsafe_private_named.3,
894
+
r#type: self.__unsafe_private_named.4.unwrap(),
895
+
extra_data: Some(extra_data),
896
+
}
897
+
}
898
+
}
899
+
900
+
impl<'a> ::jacquard_lexicon::schema::LexiconSchema for File<'a> {
901
+
fn nsid() -> &'static str {
902
+
"place.wisp.fs"
903
+
}
904
+
fn def_name() -> &'static str {
905
+
"file"
906
+
}
907
+
fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
908
+
lexicon_doc_place_wisp_fs()
909
+
}
910
+
fn validate(
911
+
&self,
912
+
) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
913
+
Ok(())
914
+
}
915
+
}
916
+
917
+
/// Virtual filesystem manifest for a Wisp site
918
+
#[jacquard_derive::lexicon]
919
+
#[derive(
920
+
serde::Serialize,
921
+
serde::Deserialize,
922
+
Debug,
923
+
Clone,
924
+
PartialEq,
925
+
Eq,
926
+
jacquard_derive::IntoStatic
927
+
)]
928
+
#[serde(rename_all = "camelCase")]
929
+
pub struct Fs<'a> {
930
+
pub created_at: jacquard_common::types::string::Datetime,
931
+
#[serde(skip_serializing_if = "std::option::Option::is_none")]
932
+
pub file_count: Option<i64>,
933
+
#[serde(borrow)]
934
+
pub root: crate::place_wisp::fs::Directory<'a>,
935
+
#[serde(borrow)]
936
+
pub site: jacquard_common::CowStr<'a>,
937
+
}
938
+
939
+
pub mod fs_state {
940
+
941
+
pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
942
+
#[allow(unused)]
943
+
use ::core::marker::PhantomData;
944
+
mod sealed {
945
+
pub trait Sealed {}
946
+
}
947
+
/// State trait tracking which required fields have been set
948
+
pub trait State: sealed::Sealed {
949
+
type Site;
950
+
type Root;
951
+
type CreatedAt;
952
+
}
953
+
/// Empty state - all required fields are unset
954
+
pub struct Empty(());
955
+
impl sealed::Sealed for Empty {}
956
+
impl State for Empty {
957
+
type Site = Unset;
958
+
type Root = Unset;
959
+
type CreatedAt = Unset;
960
+
}
961
+
///State transition - sets the `site` field to Set
962
+
pub struct SetSite<S: State = Empty>(PhantomData<fn() -> S>);
963
+
impl<S: State> sealed::Sealed for SetSite<S> {}
964
+
impl<S: State> State for SetSite<S> {
965
+
type Site = Set<members::site>;
966
+
type Root = S::Root;
967
+
type CreatedAt = S::CreatedAt;
968
+
}
969
+
///State transition - sets the `root` field to Set
970
+
pub struct SetRoot<S: State = Empty>(PhantomData<fn() -> S>);
971
+
impl<S: State> sealed::Sealed for SetRoot<S> {}
972
+
impl<S: State> State for SetRoot<S> {
973
+
type Site = S::Site;
974
+
type Root = Set<members::root>;
975
+
type CreatedAt = S::CreatedAt;
976
+
}
977
+
///State transition - sets the `created_at` field to Set
978
+
pub struct SetCreatedAt<S: State = Empty>(PhantomData<fn() -> S>);
979
+
impl<S: State> sealed::Sealed for SetCreatedAt<S> {}
980
+
impl<S: State> State for SetCreatedAt<S> {
981
+
type Site = S::Site;
982
+
type Root = S::Root;
983
+
type CreatedAt = Set<members::created_at>;
984
+
}
985
+
/// Marker types for field names
986
+
#[allow(non_camel_case_types)]
987
+
pub mod members {
988
+
///Marker type for the `site` field
989
+
pub struct site(());
990
+
///Marker type for the `root` field
991
+
pub struct root(());
992
+
///Marker type for the `created_at` field
993
+
pub struct created_at(());
994
+
}
995
+
}
996
+
997
+
/// Builder for constructing an instance of this type
998
+
pub struct FsBuilder<'a, S: fs_state::State> {
999
+
_phantom_state: ::core::marker::PhantomData<fn() -> S>,
1000
+
__unsafe_private_named: (
1001
+
::core::option::Option<jacquard_common::types::string::Datetime>,
1002
+
::core::option::Option<i64>,
1003
+
::core::option::Option<crate::place_wisp::fs::Directory<'a>>,
1004
+
::core::option::Option<jacquard_common::CowStr<'a>>,
1005
+
),
1006
+
_phantom: ::core::marker::PhantomData<&'a ()>,
1007
+
}
1008
+
1009
+
impl<'a> Fs<'a> {
1010
+
/// Create a new builder for this type
1011
+
pub fn new() -> FsBuilder<'a, fs_state::Empty> {
1012
+
FsBuilder::new()
1013
+
}
1014
+
}
1015
+
1016
+
impl<'a> FsBuilder<'a, fs_state::Empty> {
1017
+
/// Create a new builder with all fields unset
1018
+
pub fn new() -> Self {
1019
+
FsBuilder {
1020
+
_phantom_state: ::core::marker::PhantomData,
1021
+
__unsafe_private_named: (None, None, None, None),
1022
+
_phantom: ::core::marker::PhantomData,
1023
+
}
1024
+
}
1025
+
}
1026
+
1027
+
impl<'a, S> FsBuilder<'a, S>
1028
+
where
1029
+
S: fs_state::State,
1030
+
S::CreatedAt: fs_state::IsUnset,
1031
+
{
1032
+
/// Set the `createdAt` field (required)
1033
+
pub fn created_at(
1034
+
mut self,
1035
+
value: impl Into<jacquard_common::types::string::Datetime>,
1036
+
) -> FsBuilder<'a, fs_state::SetCreatedAt<S>> {
1037
+
self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
1038
+
FsBuilder {
1039
+
_phantom_state: ::core::marker::PhantomData,
1040
+
__unsafe_private_named: self.__unsafe_private_named,
1041
+
_phantom: ::core::marker::PhantomData,
1042
+
}
1043
+
}
1044
+
}
1045
+
1046
+
impl<'a, S: fs_state::State> FsBuilder<'a, S> {
1047
+
/// Set the `fileCount` field (optional)
1048
+
pub fn file_count(mut self, value: impl Into<Option<i64>>) -> Self {
1049
+
self.__unsafe_private_named.1 = value.into();
1050
+
self
1051
+
}
1052
+
/// Set the `fileCount` field to an Option value (optional)
1053
+
pub fn maybe_file_count(mut self, value: Option<i64>) -> Self {
1054
+
self.__unsafe_private_named.1 = value;
1055
+
self
1056
+
}
1057
+
}
1058
+
1059
+
impl<'a, S> FsBuilder<'a, S>
1060
+
where
1061
+
S: fs_state::State,
1062
+
S::Root: fs_state::IsUnset,
1063
+
{
1064
+
/// Set the `root` field (required)
1065
+
pub fn root(
1066
+
mut self,
1067
+
value: impl Into<crate::place_wisp::fs::Directory<'a>>,
1068
+
) -> FsBuilder<'a, fs_state::SetRoot<S>> {
1069
+
self.__unsafe_private_named.2 = ::core::option::Option::Some(value.into());
1070
+
FsBuilder {
1071
+
_phantom_state: ::core::marker::PhantomData,
1072
+
__unsafe_private_named: self.__unsafe_private_named,
1073
+
_phantom: ::core::marker::PhantomData,
1074
+
}
1075
+
}
1076
+
}
1077
+
1078
+
impl<'a, S> FsBuilder<'a, S>
1079
+
where
1080
+
S: fs_state::State,
1081
+
S::Site: fs_state::IsUnset,
1082
+
{
1083
+
/// Set the `site` field (required)
1084
+
pub fn site(
1085
+
mut self,
1086
+
value: impl Into<jacquard_common::CowStr<'a>>,
1087
+
) -> FsBuilder<'a, fs_state::SetSite<S>> {
1088
+
self.__unsafe_private_named.3 = ::core::option::Option::Some(value.into());
1089
+
FsBuilder {
1090
+
_phantom_state: ::core::marker::PhantomData,
1091
+
__unsafe_private_named: self.__unsafe_private_named,
1092
+
_phantom: ::core::marker::PhantomData,
1093
+
}
1094
+
}
1095
+
}
1096
+
1097
+
impl<'a, S> FsBuilder<'a, S>
1098
+
where
1099
+
S: fs_state::State,
1100
+
S::Site: fs_state::IsSet,
1101
+
S::Root: fs_state::IsSet,
1102
+
S::CreatedAt: fs_state::IsSet,
1103
+
{
1104
+
/// Build the final struct
1105
+
pub fn build(self) -> Fs<'a> {
1106
+
Fs {
1107
+
created_at: self.__unsafe_private_named.0.unwrap(),
1108
+
file_count: self.__unsafe_private_named.1,
1109
+
root: self.__unsafe_private_named.2.unwrap(),
1110
+
site: self.__unsafe_private_named.3.unwrap(),
1111
+
extra_data: Default::default(),
1112
+
}
1113
+
}
1114
+
/// Build the final struct with custom extra_data
1115
+
pub fn build_with_data(
1116
+
self,
1117
+
extra_data: std::collections::BTreeMap<
1118
+
jacquard_common::smol_str::SmolStr,
1119
+
jacquard_common::types::value::Data<'a>,
1120
+
>,
1121
+
) -> Fs<'a> {
1122
+
Fs {
1123
+
created_at: self.__unsafe_private_named.0.unwrap(),
1124
+
file_count: self.__unsafe_private_named.1,
1125
+
root: self.__unsafe_private_named.2.unwrap(),
1126
+
site: self.__unsafe_private_named.3.unwrap(),
1127
+
extra_data: Some(extra_data),
1128
+
}
1129
+
}
1130
+
}
1131
+
1132
+
impl<'a> Fs<'a> {
1133
+
pub fn uri(
1134
+
uri: impl Into<jacquard_common::CowStr<'a>>,
1135
+
) -> Result<
1136
+
jacquard_common::types::uri::RecordUri<'a, FsRecord>,
1137
+
jacquard_common::types::uri::UriError,
1138
+
> {
1139
+
jacquard_common::types::uri::RecordUri::try_from_uri(
1140
+
jacquard_common::types::string::AtUri::new_cow(uri.into())?,
1141
+
)
1142
+
}
1143
+
}
1144
+
1145
+
/// Typed wrapper for GetRecord response with this collection's record type.
1146
+
#[derive(
1147
+
serde::Serialize,
1148
+
serde::Deserialize,
1149
+
Debug,
1150
+
Clone,
1151
+
PartialEq,
1152
+
Eq,
1153
+
jacquard_derive::IntoStatic
1154
+
)]
1155
+
#[serde(rename_all = "camelCase")]
1156
+
pub struct FsGetRecordOutput<'a> {
1157
+
#[serde(skip_serializing_if = "std::option::Option::is_none")]
1158
+
#[serde(borrow)]
1159
+
pub cid: std::option::Option<jacquard_common::types::string::Cid<'a>>,
1160
+
#[serde(borrow)]
1161
+
pub uri: jacquard_common::types::string::AtUri<'a>,
1162
+
#[serde(borrow)]
1163
+
pub value: Fs<'a>,
1164
+
}
1165
+
1166
+
impl From<FsGetRecordOutput<'_>> for Fs<'_> {
1167
+
fn from(output: FsGetRecordOutput<'_>) -> Self {
1168
+
use jacquard_common::IntoStatic;
1169
+
output.value.into_static()
1170
+
}
1171
+
}
1172
+
1173
+
impl jacquard_common::types::collection::Collection for Fs<'_> {
1174
+
const NSID: &'static str = "place.wisp.fs";
1175
+
type Record = FsRecord;
1176
+
}
1177
+
1178
+
/// Marker type for deserializing records from this collection.
1179
+
#[derive(Debug, serde::Serialize, serde::Deserialize)]
1180
+
pub struct FsRecord;
1181
+
impl jacquard_common::xrpc::XrpcResp for FsRecord {
1182
+
const NSID: &'static str = "place.wisp.fs";
1183
+
const ENCODING: &'static str = "application/json";
1184
+
type Output<'de> = FsGetRecordOutput<'de>;
1185
+
type Err<'de> = jacquard_common::types::collection::RecordError<'de>;
1186
+
}
1187
+
1188
+
impl jacquard_common::types::collection::Collection for FsRecord {
1189
+
const NSID: &'static str = "place.wisp.fs";
1190
+
type Record = FsRecord;
1191
+
}
1192
+
1193
+
impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Fs<'a> {
1194
+
fn nsid() -> &'static str {
1195
+
"place.wisp.fs"
1196
+
}
1197
+
fn def_name() -> &'static str {
1198
+
"main"
1199
+
}
1200
+
fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
1201
+
lexicon_doc_place_wisp_fs()
1202
+
}
1203
+
fn validate(
1204
+
&self,
1205
+
) -> ::std::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
1206
+
if let Some(ref value) = self.file_count {
1207
+
if *value > 1000i64 {
1208
+
return Err(::jacquard_lexicon::validation::ConstraintError::Maximum {
1209
+
path: ::jacquard_lexicon::validation::ValidationPath::from_field(
1210
+
"file_count",
1211
+
),
1212
+
max: 1000i64,
1213
+
actual: *value,
1214
+
});
1215
+
}
1216
+
}
1217
+
if let Some(ref value) = self.file_count {
1218
+
if *value < 0i64 {
1219
+
return Err(::jacquard_lexicon::validation::ConstraintError::Minimum {
1220
+
path: ::jacquard_lexicon::validation::ValidationPath::from_field(
1221
+
"file_count",
1222
+
),
1223
+
min: 0i64,
1224
+
actual: *value,
1225
+
});
1226
+
}
1227
+
}
1228
+
Ok(())
1229
+
}
1230
+
}
+14
cli/test_headers.rs
+14
cli/test_headers.rs
···
1
+
use http::Request;
2
+
3
+
fn main() {
4
+
let builder = Request::builder()
5
+
.header(http::header::CONTENT_TYPE, "*/*")
6
+
.header(http::header::CONTENT_TYPE, "application/octet-stream");
7
+
8
+
let req = builder.body(()).unwrap();
9
+
10
+
println!("Content-Type headers:");
11
+
for value in req.headers().get_all(http::header::CONTENT_TYPE) {
12
+
println!(" {:?}", value);
13
+
}
14
+
}
create-admin.ts
scripts/create-admin.ts
create-admin.ts
scripts/create-admin.ts
-44
src/lexicon/index.ts
-44
src/lexicon/index.ts
···
1
-
/**
2
-
* GENERATED CODE - DO NOT MODIFY
3
-
*/
4
-
import {
5
-
type Auth,
6
-
type Options as XrpcOptions,
7
-
Server as XrpcServer,
8
-
type StreamConfigOrHandler,
9
-
type MethodConfigOrHandler,
10
-
createServer as createXrpcServer,
11
-
} from '@atproto/xrpc-server'
12
-
import { schemas } from './lexicons.js'
13
-
14
-
export function createServer(options?: XrpcOptions): Server {
15
-
return new Server(options)
16
-
}
17
-
18
-
export class Server {
19
-
xrpc: XrpcServer
20
-
place: PlaceNS
21
-
22
-
constructor(options?: XrpcOptions) {
23
-
this.xrpc = createXrpcServer(schemas, options)
24
-
this.place = new PlaceNS(this)
25
-
}
26
-
}
27
-
28
-
export class PlaceNS {
29
-
_server: Server
30
-
wisp: PlaceWispNS
31
-
32
-
constructor(server: Server) {
33
-
this._server = server
34
-
this.wisp = new PlaceWispNS(server)
35
-
}
36
-
}
37
-
38
-
export class PlaceWispNS {
39
-
_server: Server
40
-
41
-
constructor(server: Server) {
42
-
this._server = server
43
-
}
44
-
}
-141
src/lexicon/lexicons.ts
-141
src/lexicon/lexicons.ts
···
1
-
/**
2
-
* GENERATED CODE - DO NOT MODIFY
3
-
*/
4
-
import {
5
-
type LexiconDoc,
6
-
Lexicons,
7
-
ValidationError,
8
-
type ValidationResult,
9
-
} from '@atproto/lexicon'
10
-
import { type $Typed, is$typed, maybe$typed } from './util.js'
11
-
12
-
export const schemaDict = {
13
-
PlaceWispFs: {
14
-
lexicon: 1,
15
-
id: 'place.wisp.fs',
16
-
defs: {
17
-
main: {
18
-
type: 'record',
19
-
description: 'Virtual filesystem manifest for a Wisp site',
20
-
record: {
21
-
type: 'object',
22
-
required: ['site', 'root', 'createdAt'],
23
-
properties: {
24
-
site: {
25
-
type: 'string',
26
-
},
27
-
root: {
28
-
type: 'ref',
29
-
ref: 'lex:place.wisp.fs#directory',
30
-
},
31
-
fileCount: {
32
-
type: 'integer',
33
-
minimum: 0,
34
-
maximum: 1000,
35
-
},
36
-
createdAt: {
37
-
type: 'string',
38
-
format: 'datetime',
39
-
},
40
-
},
41
-
},
42
-
},
43
-
file: {
44
-
type: 'object',
45
-
required: ['type', 'blob'],
46
-
properties: {
47
-
type: {
48
-
type: 'string',
49
-
const: 'file',
50
-
},
51
-
blob: {
52
-
type: 'blob',
53
-
accept: ['*/*'],
54
-
maxSize: 1000000,
55
-
description: 'Content blob ref',
56
-
},
57
-
encoding: {
58
-
type: 'string',
59
-
enum: ['gzip'],
60
-
description: 'Content encoding (e.g., gzip for compressed files)',
61
-
},
62
-
mimeType: {
63
-
type: 'string',
64
-
description: 'Original MIME type before compression',
65
-
},
66
-
base64: {
67
-
type: 'boolean',
68
-
description:
69
-
'True if blob content is base64-encoded (used to bypass PDS content sniffing)',
70
-
},
71
-
},
72
-
},
73
-
directory: {
74
-
type: 'object',
75
-
required: ['type', 'entries'],
76
-
properties: {
77
-
type: {
78
-
type: 'string',
79
-
const: 'directory',
80
-
},
81
-
entries: {
82
-
type: 'array',
83
-
maxLength: 500,
84
-
items: {
85
-
type: 'ref',
86
-
ref: 'lex:place.wisp.fs#entry',
87
-
},
88
-
},
89
-
},
90
-
},
91
-
entry: {
92
-
type: 'object',
93
-
required: ['name', 'node'],
94
-
properties: {
95
-
name: {
96
-
type: 'string',
97
-
maxLength: 255,
98
-
},
99
-
node: {
100
-
type: 'union',
101
-
refs: ['lex:place.wisp.fs#file', 'lex:place.wisp.fs#directory'],
102
-
},
103
-
},
104
-
},
105
-
},
106
-
},
107
-
} as const satisfies Record<string, LexiconDoc>
108
-
export const schemas = Object.values(schemaDict) satisfies LexiconDoc[]
109
-
export const lexicons: Lexicons = new Lexicons(schemas)
110
-
111
-
export function validate<T extends { $type: string }>(
112
-
v: unknown,
113
-
id: string,
114
-
hash: string,
115
-
requiredType: true,
116
-
): ValidationResult<T>
117
-
export function validate<T extends { $type?: string }>(
118
-
v: unknown,
119
-
id: string,
120
-
hash: string,
121
-
requiredType?: false,
122
-
): ValidationResult<T>
123
-
export function validate(
124
-
v: unknown,
125
-
id: string,
126
-
hash: string,
127
-
requiredType?: boolean,
128
-
): ValidationResult {
129
-
return (requiredType ? is$typed : maybe$typed)(v, id, hash)
130
-
? lexicons.validate(`${id}#${hash}`, v)
131
-
: {
132
-
success: false,
133
-
error: new ValidationError(
134
-
`Must be an object with "${hash === 'main' ? id : `${id}#${hash}`}" $type property`,
135
-
),
136
-
}
137
-
}
138
-
139
-
export const ids = {
140
-
PlaceWispFs: 'place.wisp.fs',
141
-
} as const
-85
src/lexicon/types/place/wisp/fs.ts
-85
src/lexicon/types/place/wisp/fs.ts
···
1
-
/**
2
-
* GENERATED CODE - DO NOT MODIFY
3
-
*/
4
-
import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
-
import { CID } from 'multiformats/cid'
6
-
import { validate as _validate } from '../../../lexicons'
7
-
import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util'
8
-
9
-
const is$typed = _is$typed,
10
-
validate = _validate
11
-
const id = 'place.wisp.fs'
12
-
13
-
export interface Record {
14
-
$type: 'place.wisp.fs'
15
-
site: string
16
-
root: Directory
17
-
fileCount?: number
18
-
createdAt: string
19
-
[k: string]: unknown
20
-
}
21
-
22
-
const hashRecord = 'main'
23
-
24
-
export function isRecord<V>(v: V) {
25
-
return is$typed(v, id, hashRecord)
26
-
}
27
-
28
-
export function validateRecord<V>(v: V) {
29
-
return validate<Record & V>(v, id, hashRecord, true)
30
-
}
31
-
32
-
export interface File {
33
-
$type?: 'place.wisp.fs#file'
34
-
type: 'file'
35
-
/** Content blob ref */
36
-
blob: BlobRef
37
-
/** Content encoding (e.g., gzip for compressed files) */
38
-
encoding?: 'gzip'
39
-
/** Original MIME type before compression */
40
-
mimeType?: string
41
-
/** True if blob content is base64-encoded (used to bypass PDS content sniffing) */
42
-
base64?: boolean
43
-
}
44
-
45
-
const hashFile = 'file'
46
-
47
-
export function isFile<V>(v: V) {
48
-
return is$typed(v, id, hashFile)
49
-
}
50
-
51
-
export function validateFile<V>(v: V) {
52
-
return validate<File & V>(v, id, hashFile)
53
-
}
54
-
55
-
export interface Directory {
56
-
$type?: 'place.wisp.fs#directory'
57
-
type: 'directory'
58
-
entries: Entry[]
59
-
}
60
-
61
-
const hashDirectory = 'directory'
62
-
63
-
export function isDirectory<V>(v: V) {
64
-
return is$typed(v, id, hashDirectory)
65
-
}
66
-
67
-
export function validateDirectory<V>(v: V) {
68
-
return validate<Directory & V>(v, id, hashDirectory)
69
-
}
70
-
71
-
export interface Entry {
72
-
$type?: 'place.wisp.fs#entry'
73
-
name: string
74
-
node: $Typed<File> | $Typed<Directory> | { $type: string }
75
-
}
76
-
77
-
const hashEntry = 'entry'
78
-
79
-
export function isEntry<V>(v: V) {
80
-
return is$typed(v, id, hashEntry)
81
-
}
82
-
83
-
export function validateEntry<V>(v: V) {
84
-
return validate<Entry & V>(v, id, hashEntry)
85
-
}
-82
src/lexicon/util.ts
-82
src/lexicon/util.ts
···
1
-
/**
2
-
* GENERATED CODE - DO NOT MODIFY
3
-
*/
4
-
5
-
import { type ValidationResult } from '@atproto/lexicon'
6
-
7
-
export type OmitKey<T, K extends keyof T> = {
8
-
[K2 in keyof T as K2 extends K ? never : K2]: T[K2]
9
-
}
10
-
11
-
export type $Typed<V, T extends string = string> = V & { $type: T }
12
-
export type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>
13
-
14
-
export type $Type<Id extends string, Hash extends string> = Hash extends 'main'
15
-
? Id
16
-
: `${Id}#${Hash}`
17
-
18
-
function isObject<V>(v: V): v is V & object {
19
-
return v != null && typeof v === 'object'
20
-
}
21
-
22
-
function is$type<Id extends string, Hash extends string>(
23
-
$type: unknown,
24
-
id: Id,
25
-
hash: Hash,
26
-
): $type is $Type<Id, Hash> {
27
-
return hash === 'main'
28
-
? $type === id
29
-
: // $type === `${id}#${hash}`
30
-
typeof $type === 'string' &&
31
-
$type.length === id.length + 1 + hash.length &&
32
-
$type.charCodeAt(id.length) === 35 /* '#' */ &&
33
-
$type.startsWith(id) &&
34
-
$type.endsWith(hash)
35
-
}
36
-
37
-
export type $TypedObject<
38
-
V,
39
-
Id extends string,
40
-
Hash extends string,
41
-
> = V extends {
42
-
$type: $Type<Id, Hash>
43
-
}
44
-
? V
45
-
: V extends { $type?: string }
46
-
? V extends { $type?: infer T extends $Type<Id, Hash> }
47
-
? V & { $type: T }
48
-
: never
49
-
: V & { $type: $Type<Id, Hash> }
50
-
51
-
export function is$typed<V, Id extends string, Hash extends string>(
52
-
v: V,
53
-
id: Id,
54
-
hash: Hash,
55
-
): v is $TypedObject<V, Id, Hash> {
56
-
return isObject(v) && '$type' in v && is$type(v.$type, id, hash)
57
-
}
58
-
59
-
export function maybe$typed<V, Id extends string, Hash extends string>(
60
-
v: V,
61
-
id: Id,
62
-
hash: Hash,
63
-
): v is V & object & { $type?: $Type<Id, Hash> } {
64
-
return (
65
-
isObject(v) &&
66
-
('$type' in v ? v.$type === undefined || is$type(v.$type, id, hash) : true)
67
-
)
68
-
}
69
-
70
-
export type Validator<R = unknown> = (v: unknown) => ValidationResult<R>
71
-
export type ValidatorParam<V extends Validator> =
72
-
V extends Validator<infer R> ? R : never
73
-
74
-
/**
75
-
* Utility function that allows to convert a "validate*" utility function into a
76
-
* type predicate.
77
-
*/
78
-
export function asPredicate<V extends Validator>(validate: V) {
79
-
return function <T>(v: T): v is T & ValidatorParam<V> {
80
-
return validate(v).success
81
-
}
82
-
}
-2
src/lib/observability.ts
-2
src/lib/observability.ts
-2
src/lib/types.ts
-2
src/lib/types.ts
+2
-2
src/lib/wisp-utils.ts
+2
-2
src/lib/wisp-utils.ts
···
1
1
import type { BlobRef } from "@atproto/api";
2
-
import type { Record, Directory, File, Entry } from "../lexicon/types/place/wisp/fs";
3
-
import { validateRecord } from "../lexicon/types/place/wisp/fs";
2
+
import type { Record, Directory, File, Entry } from "../lexicons/types/place/wisp/fs";
3
+
import { validateRecord } from "../lexicons/types/place/wisp/fs";
4
4
import { gzipSync } from 'zlib';
5
5
6
6
export interface UploadedFile {
+1
-1
src/routes/auth.ts
+1
-1
src/routes/auth.ts
+1
-1
src/routes/wisp.ts
+1
-1
src/routes/wisp.ts
···
13
13
} from '../lib/wisp-utils'
14
14
import { upsertSite } from '../lib/db'
15
15
import { logger } from '../lib/observability'
16
-
import { validateRecord } from '../lexicon/types/place/wisp/fs'
16
+
import { validateRecord } from '../lexicons/types/place/wisp/fs'
17
17
import { MAX_SITE_SIZE, MAX_FILE_SIZE, MAX_FILE_COUNT } from '../lib/constants'
18
18
19
19
function isValidSiteName(siteName: string): boolean {