@vielzeug/codex 26.10.16 → 26.10.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/data/catalog.json +44 -44
- package/data/llms-full.txt +34 -8
- package/data/llms.txt +1 -1
- package/data/manifest.json +1 -1
- package/data/packages/archive.json +2 -2
- package/data/packages/ore.json +1 -1
- package/data/search.json +3 -3
- package/package.json +3 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Helmuth Saatkamp
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/data/catalog.json
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"rune"
|
|
36
36
|
],
|
|
37
37
|
"slug": "archive",
|
|
38
|
-
"version": "26.10.
|
|
38
|
+
"version": "26.10.17"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"availableDocPages": [
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"coins"
|
|
109
109
|
],
|
|
110
110
|
"slug": "arsenal",
|
|
111
|
-
"version": "26.10.
|
|
111
|
+
"version": "26.10.17"
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
"availableDocPages": [
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"refine"
|
|
161
161
|
],
|
|
162
162
|
"slug": "assay",
|
|
163
|
-
"version": "26.10.
|
|
163
|
+
"version": "26.10.17"
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
"availableDocPages": [
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
"vault"
|
|
200
200
|
],
|
|
201
201
|
"slug": "beacon",
|
|
202
|
-
"version": "
|
|
202
|
+
"version": "26.10.17"
|
|
203
203
|
},
|
|
204
204
|
{
|
|
205
205
|
"availableDocPages": [
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
"ward"
|
|
242
242
|
],
|
|
243
243
|
"slug": "clockwork",
|
|
244
|
-
"version": "26.10.
|
|
244
|
+
"version": "26.10.17"
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
"availableDocPages": [
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"refine"
|
|
274
274
|
],
|
|
275
275
|
"slug": "codex",
|
|
276
|
-
"version": "26.10.
|
|
276
|
+
"version": "26.10.17"
|
|
277
277
|
},
|
|
278
278
|
{
|
|
279
279
|
"availableDocPages": [
|
|
@@ -343,7 +343,7 @@
|
|
|
343
343
|
"spell"
|
|
344
344
|
],
|
|
345
345
|
"slug": "coins",
|
|
346
|
-
"version": "26.10.
|
|
346
|
+
"version": "26.10.17"
|
|
347
347
|
},
|
|
348
348
|
{
|
|
349
349
|
"availableDocPages": [
|
|
@@ -384,7 +384,7 @@
|
|
|
384
384
|
"rune"
|
|
385
385
|
],
|
|
386
386
|
"slug": "conduit",
|
|
387
|
-
"version": "26.10.
|
|
387
|
+
"version": "26.10.17"
|
|
388
388
|
},
|
|
389
389
|
{
|
|
390
390
|
"availableDocPages": [
|
|
@@ -426,7 +426,7 @@
|
|
|
426
426
|
"postmaster"
|
|
427
427
|
],
|
|
428
428
|
"slug": "courier",
|
|
429
|
-
"version": "26.10.
|
|
429
|
+
"version": "26.10.17"
|
|
430
430
|
},
|
|
431
431
|
{
|
|
432
432
|
"availableDocPages": [
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
"refine"
|
|
473
473
|
],
|
|
474
474
|
"slug": "dnd",
|
|
475
|
-
"version": "26.10.
|
|
475
|
+
"version": "26.10.17"
|
|
476
476
|
},
|
|
477
477
|
{
|
|
478
478
|
"availableDocPages": [
|
|
@@ -514,7 +514,7 @@
|
|
|
514
514
|
"herald"
|
|
515
515
|
],
|
|
516
516
|
"slug": "familiar",
|
|
517
|
-
"version": "26.10.
|
|
517
|
+
"version": "26.10.17"
|
|
518
518
|
},
|
|
519
519
|
{
|
|
520
520
|
"availableDocPages": [
|
|
@@ -581,7 +581,7 @@
|
|
|
581
581
|
"courier"
|
|
582
582
|
],
|
|
583
583
|
"slug": "flux",
|
|
584
|
-
"version": "26.10.
|
|
584
|
+
"version": "26.10.17"
|
|
585
585
|
},
|
|
586
586
|
{
|
|
587
587
|
"availableDocPages": [
|
|
@@ -621,7 +621,7 @@
|
|
|
621
621
|
"ore"
|
|
622
622
|
],
|
|
623
623
|
"slug": "focus",
|
|
624
|
-
"version": "26.10.
|
|
624
|
+
"version": "26.10.17"
|
|
625
625
|
},
|
|
626
626
|
{
|
|
627
627
|
"availableDocPages": [
|
|
@@ -662,7 +662,7 @@
|
|
|
662
662
|
"assay"
|
|
663
663
|
],
|
|
664
664
|
"slug": "forge",
|
|
665
|
-
"version": "26.10.
|
|
665
|
+
"version": "26.10.17"
|
|
666
666
|
},
|
|
667
667
|
{
|
|
668
668
|
"availableDocPages": [
|
|
@@ -700,7 +700,7 @@
|
|
|
700
700
|
"keymap"
|
|
701
701
|
],
|
|
702
702
|
"slug": "gesture",
|
|
703
|
-
"version": "26.10.
|
|
703
|
+
"version": "26.10.17"
|
|
704
704
|
},
|
|
705
705
|
{
|
|
706
706
|
"availableDocPages": [
|
|
@@ -744,7 +744,7 @@
|
|
|
744
744
|
"familiar"
|
|
745
745
|
],
|
|
746
746
|
"slug": "herald",
|
|
747
|
-
"version": "26.10.
|
|
747
|
+
"version": "26.10.17"
|
|
748
748
|
},
|
|
749
749
|
{
|
|
750
750
|
"availableDocPages": [
|
|
@@ -787,7 +787,7 @@
|
|
|
787
787
|
"tempo"
|
|
788
788
|
],
|
|
789
789
|
"slug": "illusionist",
|
|
790
|
-
"version": "26.10.
|
|
790
|
+
"version": "26.10.17"
|
|
791
791
|
},
|
|
792
792
|
{
|
|
793
793
|
"availableDocPages": [
|
|
@@ -832,7 +832,7 @@
|
|
|
832
832
|
"ore"
|
|
833
833
|
],
|
|
834
834
|
"slug": "keymap",
|
|
835
|
-
"version": "26.10.
|
|
835
|
+
"version": "26.10.17"
|
|
836
836
|
},
|
|
837
837
|
{
|
|
838
838
|
"availableDocPages": [
|
|
@@ -879,7 +879,7 @@
|
|
|
879
879
|
"vault"
|
|
880
880
|
],
|
|
881
881
|
"slug": "ledger",
|
|
882
|
-
"version": "26.10.
|
|
882
|
+
"version": "26.10.17"
|
|
883
883
|
},
|
|
884
884
|
{
|
|
885
885
|
"availableDocPages": [
|
|
@@ -925,7 +925,7 @@
|
|
|
925
925
|
"courier"
|
|
926
926
|
],
|
|
927
927
|
"slug": "lingua",
|
|
928
|
-
"version": "26.10.
|
|
928
|
+
"version": "26.10.17"
|
|
929
929
|
},
|
|
930
930
|
{
|
|
931
931
|
"availableDocPages": [
|
|
@@ -963,7 +963,7 @@
|
|
|
963
963
|
"herald"
|
|
964
964
|
],
|
|
965
965
|
"slug": "mesh",
|
|
966
|
-
"version": "26.10.
|
|
966
|
+
"version": "26.10.17"
|
|
967
967
|
},
|
|
968
968
|
{
|
|
969
969
|
"availableDocPages": [
|
|
@@ -1000,7 +1000,7 @@
|
|
|
1000
1000
|
"ore"
|
|
1001
1001
|
],
|
|
1002
1002
|
"slug": "necromancer",
|
|
1003
|
-
"version": "26.10.
|
|
1003
|
+
"version": "26.10.17"
|
|
1004
1004
|
},
|
|
1005
1005
|
{
|
|
1006
1006
|
"availableDocPages": [
|
|
@@ -1040,7 +1040,7 @@
|
|
|
1040
1040
|
"prism"
|
|
1041
1041
|
],
|
|
1042
1042
|
"slug": "orbit",
|
|
1043
|
-
"version": "26.10.
|
|
1043
|
+
"version": "26.10.17"
|
|
1044
1044
|
},
|
|
1045
1045
|
{
|
|
1046
1046
|
"availableDocPages": [
|
|
@@ -1105,7 +1105,7 @@
|
|
|
1105
1105
|
"orbit"
|
|
1106
1106
|
],
|
|
1107
1107
|
"slug": "ore",
|
|
1108
|
-
"version": "26.10.
|
|
1108
|
+
"version": "26.10.17"
|
|
1109
1109
|
},
|
|
1110
1110
|
{
|
|
1111
1111
|
"availableDocPages": [
|
|
@@ -1149,7 +1149,7 @@
|
|
|
1149
1149
|
"ripple"
|
|
1150
1150
|
],
|
|
1151
1151
|
"slug": "postmaster",
|
|
1152
|
-
"version": "26.10.
|
|
1152
|
+
"version": "26.10.17"
|
|
1153
1153
|
},
|
|
1154
1154
|
{
|
|
1155
1155
|
"availableDocPages": [
|
|
@@ -1189,7 +1189,7 @@
|
|
|
1189
1189
|
"orbit"
|
|
1190
1190
|
],
|
|
1191
1191
|
"slug": "prism",
|
|
1192
|
-
"version": "26.10.
|
|
1192
|
+
"version": "26.10.17"
|
|
1193
1193
|
},
|
|
1194
1194
|
{
|
|
1195
1195
|
"availableDocPages": [
|
|
@@ -1253,7 +1253,7 @@
|
|
|
1253
1253
|
"clockwork"
|
|
1254
1254
|
],
|
|
1255
1255
|
"slug": "pulse",
|
|
1256
|
-
"version": "26.10.
|
|
1256
|
+
"version": "26.10.17"
|
|
1257
1257
|
},
|
|
1258
1258
|
{
|
|
1259
1259
|
"availableDocPages": [
|
|
@@ -1375,7 +1375,7 @@
|
|
|
1375
1375
|
"keymap"
|
|
1376
1376
|
],
|
|
1377
1377
|
"slug": "refine",
|
|
1378
|
-
"version": "26.10.
|
|
1378
|
+
"version": "26.10.17"
|
|
1379
1379
|
},
|
|
1380
1380
|
{
|
|
1381
1381
|
"availableDocPages": [
|
|
@@ -1420,7 +1420,7 @@
|
|
|
1420
1420
|
"ledger"
|
|
1421
1421
|
],
|
|
1422
1422
|
"slug": "ripple",
|
|
1423
|
-
"version": "26.10.
|
|
1423
|
+
"version": "26.10.17"
|
|
1424
1424
|
},
|
|
1425
1425
|
{
|
|
1426
1426
|
"availableDocPages": [
|
|
@@ -1474,7 +1474,7 @@
|
|
|
1474
1474
|
"familiar"
|
|
1475
1475
|
],
|
|
1476
1476
|
"slug": "rune",
|
|
1477
|
-
"version": "26.10.
|
|
1477
|
+
"version": "26.10.17"
|
|
1478
1478
|
},
|
|
1479
1479
|
{
|
|
1480
1480
|
"availableDocPages": [
|
|
@@ -1515,7 +1515,7 @@
|
|
|
1515
1515
|
"refine"
|
|
1516
1516
|
],
|
|
1517
1517
|
"slug": "sandbox",
|
|
1518
|
-
"version": "26.10.
|
|
1518
|
+
"version": "26.10.17"
|
|
1519
1519
|
},
|
|
1520
1520
|
{
|
|
1521
1521
|
"availableDocPages": [
|
|
@@ -1566,7 +1566,7 @@
|
|
|
1566
1566
|
"ripple"
|
|
1567
1567
|
],
|
|
1568
1568
|
"slug": "scout",
|
|
1569
|
-
"version": "26.10.
|
|
1569
|
+
"version": "26.10.17"
|
|
1570
1570
|
},
|
|
1571
1571
|
{
|
|
1572
1572
|
"availableDocPages": [
|
|
@@ -1619,7 +1619,7 @@
|
|
|
1619
1619
|
"refine"
|
|
1620
1620
|
],
|
|
1621
1621
|
"slug": "scroll",
|
|
1622
|
-
"version": "26.10.
|
|
1622
|
+
"version": "26.10.17"
|
|
1623
1623
|
},
|
|
1624
1624
|
{
|
|
1625
1625
|
"availableDocPages": [
|
|
@@ -1666,7 +1666,7 @@
|
|
|
1666
1666
|
"gesture"
|
|
1667
1667
|
],
|
|
1668
1668
|
"slug": "sentinel",
|
|
1669
|
-
"version": "26.10.
|
|
1669
|
+
"version": "26.10.17"
|
|
1670
1670
|
},
|
|
1671
1671
|
{
|
|
1672
1672
|
"availableDocPages": [
|
|
@@ -1706,7 +1706,7 @@
|
|
|
1706
1706
|
"refine"
|
|
1707
1707
|
],
|
|
1708
1708
|
"slug": "sigil",
|
|
1709
|
-
"version": "26.10.
|
|
1709
|
+
"version": "26.10.17"
|
|
1710
1710
|
},
|
|
1711
1711
|
{
|
|
1712
1712
|
"availableDocPages": [
|
|
@@ -1751,7 +1751,7 @@
|
|
|
1751
1751
|
"wayfinder"
|
|
1752
1752
|
],
|
|
1753
1753
|
"slug": "sourcerer",
|
|
1754
|
-
"version": "26.10.
|
|
1754
|
+
"version": "26.10.17"
|
|
1755
1755
|
},
|
|
1756
1756
|
{
|
|
1757
1757
|
"availableDocPages": [
|
|
@@ -1810,7 +1810,7 @@
|
|
|
1810
1810
|
"vault"
|
|
1811
1811
|
],
|
|
1812
1812
|
"slug": "spell",
|
|
1813
|
-
"version": "26.10.
|
|
1813
|
+
"version": "26.10.17"
|
|
1814
1814
|
},
|
|
1815
1815
|
{
|
|
1816
1816
|
"availableDocPages": [
|
|
@@ -1851,7 +1851,7 @@
|
|
|
1851
1851
|
"ripple"
|
|
1852
1852
|
],
|
|
1853
1853
|
"slug": "tandem",
|
|
1854
|
-
"version": "26.10.
|
|
1854
|
+
"version": "26.10.17"
|
|
1855
1855
|
},
|
|
1856
1856
|
{
|
|
1857
1857
|
"availableDocPages": [
|
|
@@ -1895,7 +1895,7 @@
|
|
|
1895
1895
|
"herald"
|
|
1896
1896
|
],
|
|
1897
1897
|
"slug": "tavern",
|
|
1898
|
-
"version": "26.10.
|
|
1898
|
+
"version": "26.10.17"
|
|
1899
1899
|
},
|
|
1900
1900
|
{
|
|
1901
1901
|
"availableDocPages": [
|
|
@@ -1963,7 +1963,7 @@
|
|
|
1963
1963
|
"vault"
|
|
1964
1964
|
],
|
|
1965
1965
|
"slug": "tempo",
|
|
1966
|
-
"version": "26.10.
|
|
1966
|
+
"version": "26.10.17"
|
|
1967
1967
|
},
|
|
1968
1968
|
{
|
|
1969
1969
|
"availableDocPages": [
|
|
@@ -2014,7 +2014,7 @@
|
|
|
2014
2014
|
"ripple"
|
|
2015
2015
|
],
|
|
2016
2016
|
"slug": "vault",
|
|
2017
|
-
"version": "26.10.
|
|
2017
|
+
"version": "26.10.17"
|
|
2018
2018
|
},
|
|
2019
2019
|
{
|
|
2020
2020
|
"availableDocPages": [
|
|
@@ -2060,7 +2060,7 @@
|
|
|
2060
2060
|
"refine"
|
|
2061
2061
|
],
|
|
2062
2062
|
"slug": "ward",
|
|
2063
|
-
"version": "26.10.
|
|
2063
|
+
"version": "26.10.17"
|
|
2064
2064
|
},
|
|
2065
2065
|
{
|
|
2066
2066
|
"availableDocPages": [
|
|
@@ -2114,8 +2114,8 @@
|
|
|
2114
2114
|
"herald"
|
|
2115
2115
|
],
|
|
2116
2116
|
"slug": "wayfinder",
|
|
2117
|
-
"version": "26.10.
|
|
2117
|
+
"version": "26.10.17"
|
|
2118
2118
|
}
|
|
2119
2119
|
],
|
|
2120
|
-
"version": "26.10.
|
|
2120
|
+
"version": "26.10.17"
|
|
2121
2121
|
}
|
package/data/llms-full.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Vielzeug: Full Documentation
|
|
2
2
|
|
|
3
|
-
> Complete documentation for 43 packages. Version: 26.10.
|
|
3
|
+
> Complete documentation for 43 packages. Version: 26.10.17
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -312,7 +312,11 @@ Magic links expire after 15 minutes and work once. The durable per-email budget
|
|
|
312
312
|
The issuer-global admission budget is durable D1 state in `auth_sign_in_budget`:
|
|
313
313
|
20 requests per 60-second window before account creation or email delivery.
|
|
314
314
|
This supplements, rather than replaces, the durable per-email budget. No external
|
|
315
|
-
rate-limiter binding is required
|
|
315
|
+
rate-limiter binding is required for sign-in admission; the budgets do not cover
|
|
316
|
+
`POST /auth/verify` or `GET /auth/session`, which deployments rate-limit at the
|
|
317
|
+
edge. Edge rules should block rather than challenge `GET /auth/session`: clients
|
|
318
|
+
check it with a `fetch`, which cannot solve a challenge interstitial. The verify
|
|
319
|
+
GET is a browser navigation from the email link, so a challenge is solvable there.
|
|
316
320
|
Admission spends are not refunded after later database or email failures.
|
|
317
321
|
Request emails are trimmed and lowercased before validation. `SENDER_ADDRESS`
|
|
318
322
|
must already be canonical; `OPERATOR_EMAILS` entries are trimmed and lowercased
|
|
@@ -477,7 +481,7 @@ Effective hide, unhide, operator removal and publisher erasure append audit rows
|
|
|
477
481
|
| `ARCHIVE_OPERATOR_ROLE` | `'archive-operator'` |
|
|
478
482
|
| `SESSION_COOKIE_NAME`, `SESSION_COOKIE_PATH` | `'archive_session'`, `'/api/v1'` |
|
|
479
483
|
| `SESSION_MAX_AGE_SECONDS` | `2592000` |
|
|
480
|
-
| `OPERATOR_SESSION_MAX_AGE_SECONDS` | `3600` (60 minutes); shared root contract
|
|
484
|
+
| `OPERATOR_SESSION_MAX_AGE_SECONDS` | `3600` (60 minutes); shared root contract |
|
|
481
485
|
| `ACCOUNT_HEADER` | `'X-Archive-Account'`; required issuer-account UUID on coordinated erasure |
|
|
482
486
|
| `PUBLISHER_HEADER`, `REQUEST_MARKER_HEADER` | `'x-archive-publisher'`, `'x-archive-request'` |
|
|
483
487
|
| `ILL_FORMED_TEXT`, `isWellFormedText(value: string): boolean` | Reject control characters and lone UTF-16 surrogates |
|
|
@@ -1033,7 +1037,10 @@ well-formed, or the route answers 503 without naming what is missing:
|
|
|
1033
1037
|
Both limiter bindings must run 60-second windows (`simple` limiters:
|
|
1034
1038
|
`period: 60`): the platform binding does not expose its period at runtime, so the
|
|
1035
1039
|
Worker's 429 `Retry-After` header is fixed at 60 seconds — a longer window would
|
|
1036
|
-
make the header lie.
|
|
1040
|
+
make the header lie. The read limit keys on `cf-connecting-ip`, which Cloudflare
|
|
1041
|
+
sets authoritatively for requests that reach the Worker through its network. Keep
|
|
1042
|
+
that network path: never front the Worker with a proxy that forwards a
|
|
1043
|
+
client-supplied header of the same name.
|
|
1037
1044
|
|
|
1038
1045
|
Generated Env types (wrangler's `worker-configuration.d.ts`) satisfy the package's
|
|
1039
1046
|
structural `ArchiveWorkerEnv` — no `@cloudflare/workers-types` dependency, no casts.
|
|
@@ -1081,6 +1088,19 @@ The issuer first admits sign-in requests through its singleton durable
|
|
|
1081
1088
|
`auth_sign_in_budget` table: 20 requests per 60 seconds before creating accounts
|
|
1082
1089
|
or delivering email. No rate-limiter binding is required. It then
|
|
1083
1090
|
permits three sign-in emails per email in an hourly durable window.
|
|
1091
|
+
Those durable budgets guard `POST /auth/sign-in` only. `POST /auth/verify` and
|
|
1092
|
+
`GET /auth/session` stay public: tokens are 256-bit, single-use and expire in
|
|
1093
|
+
15 minutes, so guessing is not the risk — but every request still costs the
|
|
1094
|
+
issuer: the verify GET renders the confirmation page, the verify POST performs a
|
|
1095
|
+
D1 token write, and the session check performs an RS256 verification plus an
|
|
1096
|
+
account read for a well-formed signed token. Put per-client-IP Cloudflare
|
|
1097
|
+
rate-limit rules (or an equivalent edge control) in front of both routes in
|
|
1098
|
+
production. Prefer a block action: applications check `GET /auth/session` with
|
|
1099
|
+
a `fetch`, and a fetch cannot solve a challenge interstitial, so challenging
|
|
1100
|
+
that route breaks legitimate sign-in. The verify GET is a browser navigation
|
|
1101
|
+
opened from the email link, so a challenge is solvable there if you want one.
|
|
1102
|
+
Set thresholds with CGNAT headroom (shared mobile/office egress IPs) and tune
|
|
1103
|
+
from observed traffic.
|
|
1084
1104
|
Later database or delivery failures do not refund global admission.
|
|
1085
1105
|
Using or expiring a link never refunds sends; failed delivery also spends the
|
|
1086
1106
|
allowance. Links expire after 15 minutes. Operator sessions expire after 60 minutes
|
|
@@ -1296,8 +1316,11 @@ database or schema failures. It never writes, sends email or probes the catalog.
|
|
|
1296
1316
|
Operator authority is the session token's optional `roles` claim carrying
|
|
1297
1317
|
`ARCHIVE_OPERATOR_ROLE` (`'archive-operator'`) — minted by your issuer, verified with
|
|
1298
1318
|
the same signature, audience and issuer checks as any session, and never a separate
|
|
1299
|
-
credential.
|
|
1300
|
-
|
|
1319
|
+
credential. Mint operator sessions with a lifetime of at most
|
|
1320
|
+
`OPERATOR_SESSION_MAX_AGE_SECONDS` (3600 seconds): the catalog rejects any token
|
|
1321
|
+
carrying the operator role whose signed lifetime or age exceeds it, so reusing the
|
|
1322
|
+
ordinary long session expiry 401s operator sessions immediately. Moderation routes
|
|
1323
|
+
additionally require a registered publisher row: one accountable identity per action.
|
|
1301
1324
|
|
|
1302
1325
|
- **Report** — any registered publisher reports a visible entry with a bounded
|
|
1303
1326
|
free-text reason (`reportReasonChars`). Idempotent per (entry, reporter): the same
|
|
@@ -1422,6 +1445,8 @@ export function useRecipes() {
|
|
|
1422
1445
|
- Grant the operator role claim only through your issuer, and only to accounts that
|
|
1423
1446
|
are also registered publishers.
|
|
1424
1447
|
- Wire a sanitized `tap()` sink and register the rate-limit pepper as a production secret.
|
|
1448
|
+
- Rate-limit the issuer's public `verify` and `session` routes at the edge; the
|
|
1449
|
+
durable budgets cover sign-in admission only.
|
|
1425
1450
|
|
|
1426
1451
|
### Examples
|
|
1427
1452
|
|
|
@@ -16911,8 +16936,9 @@ boolean attributes (`?attr=`), explicit property bindings (`.prop=`), events (`@
|
|
|
16911
16936
|
`.stop`/`.prevent`/`.once`/`.capture` modifiers), refs (`ref=`), and nested templates.
|
|
16912
16937
|
|
|
16913
16938
|
`.prop=${value}` always writes the element property (never an attribute): the explicit channel for structured
|
|
16914
|
-
values (arrays, objects, callbacks). Prototype-polluting names (`__proto__`, `constructor`, `prototype`)
|
|
16915
|
-
rejected at compile time
|
|
16939
|
+
values (arrays, objects, callbacks). Prototype-polluting names (`__proto__`, `constructor`, `prototype`) and
|
|
16940
|
+
raw-HTML-parsing names (`innerHTML`, `outerHTML`, `srcdoc`) are rejected at compile time: render sanitized
|
|
16941
|
+
HTML through the `unsafeHtml()` directive instead of a property binding.
|
|
16916
16942
|
|
|
16917
16943
|
`@event.stop`, `.prevent`, `.once`, and `.capture` are shorthand for the matching listener behavior
|
|
16918
16944
|
(`stopPropagation`/`preventDefault` applied before the handler runs; `once`/`capture` passed as listener
|
package/data/llms.txt
CHANGED
package/data/manifest.json
CHANGED