devframe 0.2.2 → 0.3.0

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.
Files changed (62) hide show
  1. package/dist/adapters/build.d.mts +1 -1
  2. package/dist/adapters/build.mjs +5 -5
  3. package/dist/adapters/cli.d.mts +1 -1
  4. package/dist/adapters/cli.mjs +2 -2
  5. package/dist/adapters/dev.d.mts +2 -2
  6. package/dist/adapters/dev.mjs +1 -1
  7. package/dist/adapters/embedded.d.mts +1 -1
  8. package/dist/adapters/mcp.d.mts +1 -1
  9. package/dist/adapters/mcp.mjs +8 -7
  10. package/dist/client/index.d.mts +18 -4
  11. package/dist/client/index.mjs +321 -8
  12. package/dist/{context-BDpuScNZ.d.mts → context-CwjX6sCG.d.mts} +1 -1
  13. package/dist/{dev-CZ9ZQkuO.mjs → dev-BbmanqL7.mjs} +1 -1
  14. package/dist/{devframe-DAfZWnpI.d.mts → devframe-sc4cb5xr.d.mts} +48 -90
  15. package/dist/diagnostics-GitRGKbr.mjs +33 -0
  16. package/dist/diagnostics-reporter-CBBZwoMv.mjs +38 -0
  17. package/dist/{rpc-BlVCyk9W.mjs → dump-zMleojnD.mjs} +147 -134
  18. package/dist/helpers/vite.d.mts +1 -1
  19. package/dist/helpers/vite.mjs +6 -5
  20. package/dist/{host-h3-DEfOpa0j.mjs → host-h3-TTunNr_n.mjs} +284 -44
  21. package/dist/human-id-Dq-qgtES.mjs +803 -0
  22. package/dist/index-C5PmWqBf.d.mts +79 -0
  23. package/dist/{index-BNAsgVNz.d.mts → index-CTK6fuXs.d.mts} +31 -78
  24. package/dist/index-DTeZXHSi.d.mts +639 -0
  25. package/dist/index.d.mts +4 -4
  26. package/dist/node/auth.d.mts +2 -2
  27. package/dist/node/auth.mjs +1 -2
  28. package/dist/node/index.d.mts +10 -14
  29. package/dist/node/index.mjs +2 -2
  30. package/dist/node/internal.d.mts +2 -2
  31. package/dist/node/internal.mjs +2 -3
  32. package/dist/recipes/open-helpers.d.mts +1 -1
  33. package/dist/rpc/dump.d.mts +2 -0
  34. package/dist/rpc/dump.mjs +2 -0
  35. package/dist/rpc/index.d.mts +2 -2
  36. package/dist/rpc/index.mjs +128 -2
  37. package/dist/rpc/transports/ws-client.d.mts +25 -1
  38. package/dist/rpc/transports/ws-client.mjs +2 -2
  39. package/dist/rpc/transports/ws-server.d.mts +1 -1
  40. package/dist/rpc/transports/ws-server.mjs +2 -2
  41. package/dist/{serialization-CwO31axa.mjs → serialization-BlqLh4_J.mjs} +4 -38
  42. package/dist/{server-BGSrxsQb.d.mts → server-ouL4gZbu.d.mts} +1 -1
  43. package/dist/shared-state-CasqoUba.mjs +1019 -0
  44. package/dist/{shared-state-BJXkPxtf.mjs → shared-state-u0y123fi.mjs} +6 -6
  45. package/dist/{storage-D-jLaxDA.mjs → storage-K-OxR1xf.mjs} +5 -3
  46. package/dist/structured-clone-jegjz0hM.mjs +208 -0
  47. package/dist/types/index.d.mts +4 -4
  48. package/dist/utils/events.d.mts +1 -1
  49. package/dist/utils/hash.mjs +1 -1
  50. package/dist/utils/shared-state.d.mts +1 -1
  51. package/dist/utils/shared-state.mjs +1 -1
  52. package/dist/utils/streaming-channel.d.mts +1 -1
  53. package/dist/utils/structured-clone.mjs +1 -1
  54. package/dist/{ws-server-DKlqI8XP.d.mts → ws-server-DOwLJL23.d.mts} +1 -1
  55. package/package.json +3 -2
  56. package/skills/devframe/SKILL.md +1 -1
  57. package/dist/diagnostics-DNxVjo6X.mjs +0 -56
  58. package/dist/revoke-DDa7VSJa.mjs +0 -35
  59. package/dist/ws-client-CrLsflnY.d.mts +0 -26
  60. /package/dist/{hash-CIBte1yS.mjs → hash-bwOD8RgU.mjs} +0 -0
  61. /package/dist/{structured-clone-CD2l4fI3.mjs → structured-clone-PdCZwt7F.mjs} +0 -0
  62. /package/dist/{types-DmcujDa5.d.mts → types-BXL7EIDM.d.mts} +0 -0
@@ -0,0 +1,803 @@
1
+ //#region src/node/auth/revoke.ts
2
+ /**
3
+ * Flip `isTrusted` to false on any live WS clients connected with `token`
4
+ * and broadcast the `auth:revoked` event so they can react.
5
+ *
6
+ * Shared between persisted-auth revocation and remote-dock token revocation.
7
+ */
8
+ async function revokeActiveConnectionsForToken(context, token) {
9
+ const rpcHost = context.rpc;
10
+ if (!rpcHost?._rpcGroup) return;
11
+ const affectedSessionIds = /* @__PURE__ */ new Set();
12
+ for (const client of rpcHost._rpcGroup.clients) if (client.$meta.clientAuthToken === token) {
13
+ affectedSessionIds.add(client.$meta.id);
14
+ client.$meta.isTrusted = false;
15
+ client.$meta.clientAuthToken = void 0;
16
+ }
17
+ if (affectedSessionIds.size === 0) return;
18
+ await rpcHost.broadcast({
19
+ method: "devframe:auth:revoked",
20
+ args: [],
21
+ filter: (client) => affectedSessionIds.has(client.$meta.id)
22
+ });
23
+ }
24
+ /**
25
+ * Revoke an auth token: remove from storage and notify all connected clients
26
+ * using this token that they are no longer trusted.
27
+ */
28
+ async function revokeAuthToken(context, storage, token) {
29
+ storage.mutate((state) => {
30
+ delete state.trusted[token];
31
+ });
32
+ await revokeActiveConnectionsForToken(context, token);
33
+ }
34
+ //#endregion
35
+ //#region src/utils/human-id.ts
36
+ const adjectives = [
37
+ "afraid",
38
+ "all",
39
+ "beige",
40
+ "better",
41
+ "big",
42
+ "blue",
43
+ "bold",
44
+ "brave",
45
+ "breezy",
46
+ "bright",
47
+ "brown",
48
+ "bumpy",
49
+ "busy",
50
+ "calm",
51
+ "chatty",
52
+ "chilly",
53
+ "chubby",
54
+ "clean",
55
+ "clear",
56
+ "clever",
57
+ "cold",
58
+ "common",
59
+ "cool",
60
+ "cozy",
61
+ "crisp",
62
+ "cuddly",
63
+ "curly",
64
+ "curvy",
65
+ "cute",
66
+ "cyan",
67
+ "dark",
68
+ "deep",
69
+ "dirty",
70
+ "dry",
71
+ "dull",
72
+ "eager",
73
+ "early",
74
+ "easy",
75
+ "eight",
76
+ "eighty",
77
+ "eleven",
78
+ "empty",
79
+ "every",
80
+ "fair",
81
+ "famous",
82
+ "fancy",
83
+ "fast",
84
+ "few",
85
+ "fiery",
86
+ "fifty",
87
+ "fine",
88
+ "five",
89
+ "flat",
90
+ "floppy",
91
+ "fluffy",
92
+ "forty",
93
+ "four",
94
+ "frank",
95
+ "free",
96
+ "fresh",
97
+ "fruity",
98
+ "full",
99
+ "funky",
100
+ "funny",
101
+ "fuzzy",
102
+ "gentle",
103
+ "giant",
104
+ "gold",
105
+ "good",
106
+ "goofy",
107
+ "great",
108
+ "green",
109
+ "grumpy",
110
+ "happy",
111
+ "heavy",
112
+ "hip",
113
+ "honest",
114
+ "hot",
115
+ "huge",
116
+ "humble",
117
+ "hungry",
118
+ "icy",
119
+ "itchy",
120
+ "jolly",
121
+ "khaki",
122
+ "kind",
123
+ "large",
124
+ "late",
125
+ "lazy",
126
+ "legal",
127
+ "lemon",
128
+ "light",
129
+ "little",
130
+ "long",
131
+ "loose",
132
+ "loud",
133
+ "lovely",
134
+ "lucky",
135
+ "major",
136
+ "many",
137
+ "metal",
138
+ "mighty",
139
+ "modern",
140
+ "moody",
141
+ "neat",
142
+ "new",
143
+ "nice",
144
+ "nine",
145
+ "ninety",
146
+ "odd",
147
+ "old",
148
+ "olive",
149
+ "open",
150
+ "orange",
151
+ "perky",
152
+ "petite",
153
+ "pink",
154
+ "plain",
155
+ "plenty",
156
+ "polite",
157
+ "pretty",
158
+ "proud",
159
+ "public",
160
+ "puny",
161
+ "purple",
162
+ "quick",
163
+ "quiet",
164
+ "rare",
165
+ "ready",
166
+ "real",
167
+ "red",
168
+ "rich",
169
+ "ripe",
170
+ "salty",
171
+ "seven",
172
+ "shaggy",
173
+ "shaky",
174
+ "sharp",
175
+ "shiny",
176
+ "short",
177
+ "shy",
178
+ "silent",
179
+ "silly",
180
+ "silver",
181
+ "six",
182
+ "sixty",
183
+ "slick",
184
+ "slimy",
185
+ "slow",
186
+ "small",
187
+ "smart",
188
+ "smooth",
189
+ "social",
190
+ "soft",
191
+ "solid",
192
+ "some",
193
+ "sour",
194
+ "sparkly",
195
+ "spicy",
196
+ "spotty",
197
+ "stale",
198
+ "strict",
199
+ "strong",
200
+ "sunny",
201
+ "sweet",
202
+ "swift",
203
+ "tall",
204
+ "tame",
205
+ "tangy",
206
+ "tasty",
207
+ "ten",
208
+ "tender",
209
+ "thick",
210
+ "thin",
211
+ "thirty",
212
+ "three",
213
+ "tidy",
214
+ "tiny",
215
+ "tired",
216
+ "tough",
217
+ "tricky",
218
+ "true",
219
+ "twelve",
220
+ "twenty",
221
+ "two",
222
+ "upset",
223
+ "vast",
224
+ "violet",
225
+ "wacky",
226
+ "warm",
227
+ "wet",
228
+ "whole",
229
+ "wicked",
230
+ "wide",
231
+ "wild",
232
+ "wise",
233
+ "witty",
234
+ "yellow",
235
+ "young",
236
+ "yummy"
237
+ ];
238
+ const nouns = [
239
+ "actors",
240
+ "ads",
241
+ "adults",
242
+ "aliens",
243
+ "animals",
244
+ "ants",
245
+ "apes",
246
+ "apples",
247
+ "areas",
248
+ "baboons",
249
+ "badgers",
250
+ "bags",
251
+ "balloons",
252
+ "bananas",
253
+ "banks",
254
+ "bars",
255
+ "baths",
256
+ "bats",
257
+ "beans",
258
+ "bears",
259
+ "beds",
260
+ "beers",
261
+ "bees",
262
+ "berries",
263
+ "bikes",
264
+ "birds",
265
+ "boats",
266
+ "bobcats",
267
+ "books",
268
+ "bottles",
269
+ "boxes",
270
+ "breads",
271
+ "brooms",
272
+ "buckets",
273
+ "bugs",
274
+ "buses",
275
+ "bushes",
276
+ "buttons",
277
+ "camels",
278
+ "cameras",
279
+ "candies",
280
+ "candles",
281
+ "canyons",
282
+ "carpets",
283
+ "carrots",
284
+ "cars",
285
+ "cases",
286
+ "cats",
287
+ "chairs",
288
+ "chefs",
289
+ "chicken",
290
+ "cities",
291
+ "clocks",
292
+ "cloths",
293
+ "clouds",
294
+ "clowns",
295
+ "clubs",
296
+ "coats",
297
+ "cobras",
298
+ "coins",
299
+ "colts",
300
+ "comics",
301
+ "cooks",
302
+ "corners",
303
+ "cougars",
304
+ "cows",
305
+ "crabs",
306
+ "crews",
307
+ "cups",
308
+ "cycles",
309
+ "dancers",
310
+ "days",
311
+ "deer",
312
+ "deserts",
313
+ "dingos",
314
+ "dodos",
315
+ "dogs",
316
+ "dolls",
317
+ "donkeys",
318
+ "donuts",
319
+ "doodles",
320
+ "doors",
321
+ "dots",
322
+ "dragons",
323
+ "drinks",
324
+ "dryers",
325
+ "ducks",
326
+ "eagles",
327
+ "ears",
328
+ "eels",
329
+ "eggs",
330
+ "emus",
331
+ "ends",
332
+ "experts",
333
+ "eyes",
334
+ "facts",
335
+ "falcons",
336
+ "fans",
337
+ "feet",
338
+ "files",
339
+ "flies",
340
+ "flowers",
341
+ "forks",
342
+ "foxes",
343
+ "friends",
344
+ "frogs",
345
+ "games",
346
+ "garlics",
347
+ "geckos",
348
+ "geese",
349
+ "ghosts",
350
+ "gifts",
351
+ "glasses",
352
+ "goats",
353
+ "grapes",
354
+ "groups",
355
+ "guests",
356
+ "hairs",
357
+ "hands",
358
+ "hats",
359
+ "heads",
360
+ "hoops",
361
+ "hornets",
362
+ "horses",
363
+ "hotels",
364
+ "hounds",
365
+ "houses",
366
+ "humans",
367
+ "icons",
368
+ "ideas",
369
+ "impalas",
370
+ "insects",
371
+ "islands",
372
+ "items",
373
+ "jars",
374
+ "jeans",
375
+ "jobs",
376
+ "jokes",
377
+ "keys",
378
+ "kids",
379
+ "kings",
380
+ "kiwis",
381
+ "knives",
382
+ "lamps",
383
+ "lands",
384
+ "laws",
385
+ "lemons",
386
+ "lies",
387
+ "lights",
388
+ "lilies",
389
+ "lines",
390
+ "lions",
391
+ "lizards",
392
+ "llamas",
393
+ "loops",
394
+ "mails",
395
+ "mammals",
396
+ "mangos",
397
+ "maps",
398
+ "masks",
399
+ "meals",
400
+ "melons",
401
+ "memes",
402
+ "meteors",
403
+ "mice",
404
+ "mirrors",
405
+ "moles",
406
+ "moments",
407
+ "monkeys",
408
+ "months",
409
+ "moons",
410
+ "moose",
411
+ "mugs",
412
+ "nails",
413
+ "needles",
414
+ "news",
415
+ "nights",
416
+ "numbers",
417
+ "olives",
418
+ "onions",
419
+ "oranges",
420
+ "otters",
421
+ "owls",
422
+ "pandas",
423
+ "pans",
424
+ "pants",
425
+ "papayas",
426
+ "papers",
427
+ "parents",
428
+ "parks",
429
+ "parrots",
430
+ "parts",
431
+ "paths",
432
+ "paws",
433
+ "peaches",
434
+ "pears",
435
+ "peas",
436
+ "pens",
437
+ "pets",
438
+ "phones",
439
+ "pianos",
440
+ "pigs",
441
+ "pillows",
442
+ "places",
443
+ "planes",
444
+ "planets",
445
+ "plants",
446
+ "plums",
447
+ "poems",
448
+ "poets",
449
+ "points",
450
+ "pots",
451
+ "pugs",
452
+ "pumas",
453
+ "queens",
454
+ "rabbits",
455
+ "radios",
456
+ "rats",
457
+ "ravens",
458
+ "readers",
459
+ "regions",
460
+ "results",
461
+ "rice",
462
+ "rings",
463
+ "rivers",
464
+ "rockets",
465
+ "rocks",
466
+ "rooms",
467
+ "roses",
468
+ "rules",
469
+ "sails",
470
+ "schools",
471
+ "seals",
472
+ "seas",
473
+ "sheep",
474
+ "shirts",
475
+ "shoes",
476
+ "showers",
477
+ "shrimps",
478
+ "sides",
479
+ "signs",
480
+ "singers",
481
+ "sites",
482
+ "sloths",
483
+ "snails",
484
+ "snakes",
485
+ "socks",
486
+ "spiders",
487
+ "spies",
488
+ "spoons",
489
+ "squids",
490
+ "stamps",
491
+ "stars",
492
+ "states",
493
+ "steaks",
494
+ "streets",
495
+ "suits",
496
+ "suns",
497
+ "swans",
498
+ "symbols",
499
+ "tables",
500
+ "taxes",
501
+ "taxis",
502
+ "teams",
503
+ "teeth",
504
+ "terms",
505
+ "things",
506
+ "ties",
507
+ "tigers",
508
+ "times",
509
+ "tips",
510
+ "tires",
511
+ "toes",
512
+ "tools",
513
+ "towns",
514
+ "toys",
515
+ "trains",
516
+ "trams",
517
+ "trees",
518
+ "turkeys",
519
+ "turtles",
520
+ "vans",
521
+ "views",
522
+ "walls",
523
+ "wasps",
524
+ "waves",
525
+ "ways",
526
+ "webs",
527
+ "weeks",
528
+ "windows",
529
+ "wings",
530
+ "wolves",
531
+ "wombats",
532
+ "words",
533
+ "worlds",
534
+ "worms",
535
+ "yaks",
536
+ "years",
537
+ "zebras",
538
+ "zoos"
539
+ ];
540
+ const verbs = [
541
+ "accept",
542
+ "act",
543
+ "add",
544
+ "admire",
545
+ "agree",
546
+ "allow",
547
+ "appear",
548
+ "argue",
549
+ "arrive",
550
+ "ask",
551
+ "attack",
552
+ "attend",
553
+ "bake",
554
+ "bathe",
555
+ "battle",
556
+ "beam",
557
+ "beg",
558
+ "begin",
559
+ "behave",
560
+ "bet",
561
+ "boil",
562
+ "bow",
563
+ "brake",
564
+ "brush",
565
+ "build",
566
+ "burn",
567
+ "buy",
568
+ "call",
569
+ "camp",
570
+ "care",
571
+ "carry",
572
+ "change",
573
+ "cheat",
574
+ "check",
575
+ "cheer",
576
+ "chew",
577
+ "clap",
578
+ "clean",
579
+ "cough",
580
+ "count",
581
+ "cover",
582
+ "crash",
583
+ "create",
584
+ "cross",
585
+ "cry",
586
+ "cut",
587
+ "dance",
588
+ "decide",
589
+ "deny",
590
+ "design",
591
+ "dig",
592
+ "divide",
593
+ "do",
594
+ "double",
595
+ "doubt",
596
+ "draw",
597
+ "dream",
598
+ "dress",
599
+ "drive",
600
+ "drop",
601
+ "drum",
602
+ "eat",
603
+ "end",
604
+ "enjoy",
605
+ "enter",
606
+ "exist",
607
+ "fail",
608
+ "fall",
609
+ "feel",
610
+ "fetch",
611
+ "film",
612
+ "find",
613
+ "fix",
614
+ "flash",
615
+ "float",
616
+ "flow",
617
+ "fly",
618
+ "fold",
619
+ "follow",
620
+ "fry",
621
+ "give",
622
+ "glow",
623
+ "go",
624
+ "grab",
625
+ "greet",
626
+ "grin",
627
+ "grow",
628
+ "guess",
629
+ "hammer",
630
+ "hang",
631
+ "happen",
632
+ "heal",
633
+ "hear",
634
+ "help",
635
+ "hide",
636
+ "hope",
637
+ "hug",
638
+ "hunt",
639
+ "invent",
640
+ "invite",
641
+ "itch",
642
+ "jam",
643
+ "jog",
644
+ "join",
645
+ "joke",
646
+ "judge",
647
+ "juggle",
648
+ "jump",
649
+ "kick",
650
+ "kiss",
651
+ "kneel",
652
+ "knock",
653
+ "know",
654
+ "laugh",
655
+ "lay",
656
+ "lead",
657
+ "learn",
658
+ "leave",
659
+ "lick",
660
+ "lie",
661
+ "like",
662
+ "listen",
663
+ "live",
664
+ "look",
665
+ "lose",
666
+ "love",
667
+ "make",
668
+ "march",
669
+ "marry",
670
+ "mate",
671
+ "matter",
672
+ "melt",
673
+ "mix",
674
+ "move",
675
+ "nail",
676
+ "notice",
677
+ "obey",
678
+ "occur",
679
+ "open",
680
+ "own",
681
+ "pay",
682
+ "peel",
683
+ "pick",
684
+ "play",
685
+ "poke",
686
+ "post",
687
+ "press",
688
+ "prove",
689
+ "pull",
690
+ "pump",
691
+ "punch",
692
+ "push",
693
+ "raise",
694
+ "read",
695
+ "refuse",
696
+ "relate",
697
+ "relax",
698
+ "remain",
699
+ "repair",
700
+ "repeat",
701
+ "reply",
702
+ "report",
703
+ "rescue",
704
+ "rest",
705
+ "retire",
706
+ "return",
707
+ "rhyme",
708
+ "ring",
709
+ "roll",
710
+ "rule",
711
+ "run",
712
+ "rush",
713
+ "say",
714
+ "scream",
715
+ "search",
716
+ "see",
717
+ "sell",
718
+ "send",
719
+ "serve",
720
+ "shake",
721
+ "share",
722
+ "shave",
723
+ "shine",
724
+ "shop",
725
+ "shout",
726
+ "show",
727
+ "sin",
728
+ "sing",
729
+ "sink",
730
+ "sip",
731
+ "sit",
732
+ "sleep",
733
+ "slide",
734
+ "smash",
735
+ "smell",
736
+ "smile",
737
+ "smoke",
738
+ "sneeze",
739
+ "sniff",
740
+ "sort",
741
+ "speak",
742
+ "spend",
743
+ "stand",
744
+ "stare",
745
+ "start",
746
+ "stay",
747
+ "stick",
748
+ "stop",
749
+ "strive",
750
+ "study",
751
+ "swim",
752
+ "switch",
753
+ "take",
754
+ "talk",
755
+ "tan",
756
+ "tap",
757
+ "taste",
758
+ "teach",
759
+ "tease",
760
+ "tell",
761
+ "thank",
762
+ "think",
763
+ "throw",
764
+ "tickle",
765
+ "tie",
766
+ "trade",
767
+ "train",
768
+ "travel",
769
+ "try",
770
+ "turn",
771
+ "type",
772
+ "unite",
773
+ "vanish",
774
+ "visit",
775
+ "wait",
776
+ "walk",
777
+ "warn",
778
+ "wash",
779
+ "watch",
780
+ "wave",
781
+ "wear",
782
+ "win",
783
+ "wink",
784
+ "wish",
785
+ "wonder",
786
+ "work",
787
+ "worry",
788
+ "write",
789
+ "yawn",
790
+ "yell"
791
+ ];
792
+ function pick(arr) {
793
+ return arr[Math.random() * arr.length | 0];
794
+ }
795
+ /**
796
+ * Generate a human-readable, lowercase, dash-separated random ID
797
+ * (e.g. `bright-orange-tigers-jump`).
798
+ */
799
+ function humanId() {
800
+ return `${pick(adjectives)}-${pick(nouns)}-${pick(verbs)}`;
801
+ }
802
+ //#endregion
803
+ export { revokeActiveConnectionsForToken as n, revokeAuthToken as r, humanId as t };