@genesislcap/foundation-utils 14.498.0 → 14.500.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.
@@ -250,208 +250,6 @@
250
250
  }
251
251
  ]
252
252
  },
253
- {
254
- "kind": "javascript-module",
255
- "path": "src/design-system/design-system.ts",
256
- "declarations": [
257
- {
258
- "kind": "function",
259
- "name": "assureDesignSystem",
260
- "return": {
261
- "type": {
262
- "text": "DesignSystemModule"
263
- }
264
- },
265
- "parameters": [
266
- {
267
- "name": "module",
268
- "type": {
269
- "text": "DesignSystemModule"
270
- }
271
- }
272
- ],
273
- "description": "assureDesignSystem.",
274
- "privacy": "public"
275
- },
276
- {
277
- "kind": "function",
278
- "name": "getCurrentDesignSystem",
279
- "return": {
280
- "type": {
281
- "text": ""
282
- }
283
- },
284
- "parameters": [
285
- {
286
- "name": "element",
287
- "type": {
288
- "text": "HTMLElement"
289
- },
290
- "description": "The starting HTML element"
291
- },
292
- {
293
- "name": "fallbackPrefix",
294
- "type": {
295
- "text": "string"
296
- },
297
- "description": "The prefix to fallback to if the provider is not available"
298
- }
299
- ],
300
- "description": "Get the current design system provider element and prefix by checking available providers.\nIf no provider is found, falls back to the provided prefix.",
301
- "privacy": "public"
302
- },
303
- {
304
- "kind": "function",
305
- "name": "getCurrentDesignSystemPrefix",
306
- "return": {
307
- "type": {
308
- "text": ""
309
- }
310
- },
311
- "parameters": [
312
- {
313
- "name": "element",
314
- "type": {
315
- "text": "HTMLElement"
316
- },
317
- "description": "The starting HTML element"
318
- },
319
- {
320
- "name": "fallbackPrefix",
321
- "type": {
322
- "text": "string"
323
- },
324
- "description": "The prefix to fallback to if the provider is not available"
325
- }
326
- ],
327
- "description": "Get the current design system prefix by checking available providers.\nIf no provider is found, falls back to the provided prefix.",
328
- "privacy": "public"
329
- }
330
- ],
331
- "exports": [
332
- {
333
- "kind": "js",
334
- "name": "assureDesignSystem",
335
- "declaration": {
336
- "name": "assureDesignSystem",
337
- "module": "src/design-system/design-system.ts"
338
- }
339
- },
340
- {
341
- "kind": "js",
342
- "name": "getCurrentDesignSystem",
343
- "declaration": {
344
- "name": "getCurrentDesignSystem",
345
- "module": "src/design-system/design-system.ts"
346
- }
347
- },
348
- {
349
- "kind": "js",
350
- "name": "getCurrentDesignSystemPrefix",
351
- "declaration": {
352
- "name": "getCurrentDesignSystemPrefix",
353
- "module": "src/design-system/design-system.ts"
354
- }
355
- }
356
- ]
357
- },
358
- {
359
- "kind": "javascript-module",
360
- "path": "src/design-system/editable-elements.ts",
361
- "declarations": [
362
- {
363
- "kind": "variable",
364
- "name": "BASE_EDITABLE_ELEMENT_SELECTORS",
365
- "type": {
366
- "text": "[\n ...NATIVE_EDITABLE_ELEMENT_SELECTORS,\n ...CONTENT_EDITABLE_SELECTORS,\n ...ARIA_EDITABLE_ROLE_SELECTORS,\n]"
367
- },
368
- "default": "[\n ...NATIVE_EDITABLE_ELEMENT_SELECTORS,\n ...CONTENT_EDITABLE_SELECTORS,\n ...ARIA_EDITABLE_ROLE_SELECTORS,\n]",
369
- "description": "Base selectors treated as editable context regardless of design system.\nIncludes native controls, contenteditable, and ARIA-editable roles."
370
- },
371
- {
372
- "kind": "variable",
373
- "name": "DESIGN_SYSTEM_EDITABLE_ELEMENT_SELECTORS",
374
- "type": {
375
- "text": "Record<\n EditableDesignSystemPrefix,\n readonly string[]\n>"
376
- },
377
- "default": "{\n rapid: buildDesignSystemEditableSelectors('rapid'),\n zero: buildDesignSystemEditableSelectors('zero'),\n}",
378
- "description": "Design-system specific editable host selectors."
379
- },
380
- {
381
- "kind": "function",
382
- "name": "buildEditableElementSelector",
383
- "return": {
384
- "type": {
385
- "text": "string"
386
- }
387
- },
388
- "parameters": [
389
- {
390
- "name": "designSystems",
391
- "type": {
392
- "text": "readonly EditableDesignSystemPrefix[]"
393
- }
394
- },
395
- {
396
- "name": "customEditableSelectors",
397
- "default": "[]",
398
- "type": {
399
- "text": "readonly string[]"
400
- }
401
- }
402
- ]
403
- }
404
- ],
405
- "exports": [
406
- {
407
- "kind": "js",
408
- "name": "BASE_EDITABLE_ELEMENT_SELECTORS",
409
- "declaration": {
410
- "name": "BASE_EDITABLE_ELEMENT_SELECTORS",
411
- "module": "src/design-system/editable-elements.ts"
412
- }
413
- },
414
- {
415
- "kind": "js",
416
- "name": "DESIGN_SYSTEM_EDITABLE_ELEMENT_SELECTORS",
417
- "declaration": {
418
- "name": "DESIGN_SYSTEM_EDITABLE_ELEMENT_SELECTORS",
419
- "module": "src/design-system/editable-elements.ts"
420
- }
421
- },
422
- {
423
- "kind": "js",
424
- "name": "buildEditableElementSelector",
425
- "declaration": {
426
- "name": "buildEditableElementSelector",
427
- "module": "src/design-system/editable-elements.ts"
428
- }
429
- }
430
- ]
431
- },
432
- {
433
- "kind": "javascript-module",
434
- "path": "src/design-system/index.ts",
435
- "declarations": [],
436
- "exports": [
437
- {
438
- "kind": "js",
439
- "name": "*",
440
- "declaration": {
441
- "name": "*",
442
- "package": "./design-system"
443
- }
444
- },
445
- {
446
- "kind": "js",
447
- "name": "*",
448
- "declaration": {
449
- "name": "*",
450
- "package": "./editable-elements"
451
- }
452
- }
453
- ]
454
- },
455
253
  {
456
254
  "kind": "javascript-module",
457
255
  "path": "src/data/inMemoryDatabase.ts",
@@ -652,7 +450,186 @@
652
450
  },
653
451
  {
654
452
  "kind": "javascript-module",
655
- "path": "src/directives/index.ts",
453
+ "path": "src/design-system/design-system.ts",
454
+ "declarations": [
455
+ {
456
+ "kind": "function",
457
+ "name": "assureDesignSystem",
458
+ "return": {
459
+ "type": {
460
+ "text": "DesignSystemModule"
461
+ }
462
+ },
463
+ "parameters": [
464
+ {
465
+ "name": "module",
466
+ "type": {
467
+ "text": "DesignSystemModule"
468
+ }
469
+ }
470
+ ],
471
+ "description": "assureDesignSystem.",
472
+ "privacy": "public"
473
+ },
474
+ {
475
+ "kind": "function",
476
+ "name": "getCurrentDesignSystem",
477
+ "return": {
478
+ "type": {
479
+ "text": ""
480
+ }
481
+ },
482
+ "parameters": [
483
+ {
484
+ "name": "element",
485
+ "type": {
486
+ "text": "HTMLElement"
487
+ },
488
+ "description": "The starting HTML element"
489
+ },
490
+ {
491
+ "name": "fallbackPrefix",
492
+ "type": {
493
+ "text": "string"
494
+ },
495
+ "description": "The prefix to fallback to if the provider is not available"
496
+ }
497
+ ],
498
+ "description": "Get the current design system provider element and prefix by checking available providers.\nIf no provider is found, falls back to the provided prefix.",
499
+ "privacy": "public"
500
+ },
501
+ {
502
+ "kind": "function",
503
+ "name": "getCurrentDesignSystemPrefix",
504
+ "return": {
505
+ "type": {
506
+ "text": ""
507
+ }
508
+ },
509
+ "parameters": [
510
+ {
511
+ "name": "element",
512
+ "type": {
513
+ "text": "HTMLElement"
514
+ },
515
+ "description": "The starting HTML element"
516
+ },
517
+ {
518
+ "name": "fallbackPrefix",
519
+ "type": {
520
+ "text": "string"
521
+ },
522
+ "description": "The prefix to fallback to if the provider is not available"
523
+ }
524
+ ],
525
+ "description": "Get the current design system prefix by checking available providers.\nIf no provider is found, falls back to the provided prefix.",
526
+ "privacy": "public"
527
+ }
528
+ ],
529
+ "exports": [
530
+ {
531
+ "kind": "js",
532
+ "name": "assureDesignSystem",
533
+ "declaration": {
534
+ "name": "assureDesignSystem",
535
+ "module": "src/design-system/design-system.ts"
536
+ }
537
+ },
538
+ {
539
+ "kind": "js",
540
+ "name": "getCurrentDesignSystem",
541
+ "declaration": {
542
+ "name": "getCurrentDesignSystem",
543
+ "module": "src/design-system/design-system.ts"
544
+ }
545
+ },
546
+ {
547
+ "kind": "js",
548
+ "name": "getCurrentDesignSystemPrefix",
549
+ "declaration": {
550
+ "name": "getCurrentDesignSystemPrefix",
551
+ "module": "src/design-system/design-system.ts"
552
+ }
553
+ }
554
+ ]
555
+ },
556
+ {
557
+ "kind": "javascript-module",
558
+ "path": "src/design-system/editable-elements.ts",
559
+ "declarations": [
560
+ {
561
+ "kind": "variable",
562
+ "name": "BASE_EDITABLE_ELEMENT_SELECTORS",
563
+ "type": {
564
+ "text": "[\n ...NATIVE_EDITABLE_ELEMENT_SELECTORS,\n ...CONTENT_EDITABLE_SELECTORS,\n ...ARIA_EDITABLE_ROLE_SELECTORS,\n]"
565
+ },
566
+ "default": "[\n ...NATIVE_EDITABLE_ELEMENT_SELECTORS,\n ...CONTENT_EDITABLE_SELECTORS,\n ...ARIA_EDITABLE_ROLE_SELECTORS,\n]",
567
+ "description": "Base selectors treated as editable context regardless of design system.\nIncludes native controls, contenteditable, and ARIA-editable roles."
568
+ },
569
+ {
570
+ "kind": "variable",
571
+ "name": "DESIGN_SYSTEM_EDITABLE_ELEMENT_SELECTORS",
572
+ "type": {
573
+ "text": "Record<\n EditableDesignSystemPrefix,\n readonly string[]\n>"
574
+ },
575
+ "default": "{\n rapid: buildDesignSystemEditableSelectors('rapid'),\n zero: buildDesignSystemEditableSelectors('zero'),\n}",
576
+ "description": "Design-system specific editable host selectors."
577
+ },
578
+ {
579
+ "kind": "function",
580
+ "name": "buildEditableElementSelector",
581
+ "return": {
582
+ "type": {
583
+ "text": "string"
584
+ }
585
+ },
586
+ "parameters": [
587
+ {
588
+ "name": "designSystems",
589
+ "type": {
590
+ "text": "readonly EditableDesignSystemPrefix[]"
591
+ }
592
+ },
593
+ {
594
+ "name": "customEditableSelectors",
595
+ "default": "[]",
596
+ "type": {
597
+ "text": "readonly string[]"
598
+ }
599
+ }
600
+ ]
601
+ }
602
+ ],
603
+ "exports": [
604
+ {
605
+ "kind": "js",
606
+ "name": "BASE_EDITABLE_ELEMENT_SELECTORS",
607
+ "declaration": {
608
+ "name": "BASE_EDITABLE_ELEMENT_SELECTORS",
609
+ "module": "src/design-system/editable-elements.ts"
610
+ }
611
+ },
612
+ {
613
+ "kind": "js",
614
+ "name": "DESIGN_SYSTEM_EDITABLE_ELEMENT_SELECTORS",
615
+ "declaration": {
616
+ "name": "DESIGN_SYSTEM_EDITABLE_ELEMENT_SELECTORS",
617
+ "module": "src/design-system/editable-elements.ts"
618
+ }
619
+ },
620
+ {
621
+ "kind": "js",
622
+ "name": "buildEditableElementSelector",
623
+ "declaration": {
624
+ "name": "buildEditableElementSelector",
625
+ "module": "src/design-system/editable-elements.ts"
626
+ }
627
+ }
628
+ ]
629
+ },
630
+ {
631
+ "kind": "javascript-module",
632
+ "path": "src/design-system/index.ts",
656
633
  "declarations": [],
657
634
  "exports": [
658
635
  {
@@ -660,7 +637,7 @@
660
637
  "name": "*",
661
638
  "declaration": {
662
639
  "name": "*",
663
- "package": "./sync"
640
+ "package": "./design-system"
664
641
  }
665
642
  },
666
643
  {
@@ -668,7 +645,7 @@
668
645
  "name": "*",
669
646
  "declaration": {
670
647
  "name": "*",
671
- "package": "./when-else"
648
+ "package": "./editable-elements"
672
649
  }
673
650
  }
674
651
  ]
@@ -726,6 +703,29 @@
726
703
  }
727
704
  ]
728
705
  },
706
+ {
707
+ "kind": "javascript-module",
708
+ "path": "src/directives/index.ts",
709
+ "declarations": [],
710
+ "exports": [
711
+ {
712
+ "kind": "js",
713
+ "name": "*",
714
+ "declaration": {
715
+ "name": "*",
716
+ "package": "./sync"
717
+ }
718
+ },
719
+ {
720
+ "kind": "js",
721
+ "name": "*",
722
+ "declaration": {
723
+ "name": "*",
724
+ "package": "./when-else"
725
+ }
726
+ }
727
+ ]
728
+ },
729
729
  {
730
730
  "kind": "javascript-module",
731
731
  "path": "src/encoding/index.ts",
@@ -857,6 +857,22 @@
857
857
  "description": "The path to a JSON config file for the HTTP mode.",
858
858
  "privacy": "public"
859
859
  },
860
+ {
861
+ "kind": "variable",
862
+ "name": "FORCE_HTTP_REQREP",
863
+ "type": {
864
+ "text": "string"
865
+ }
866
+ },
867
+ {
868
+ "kind": "variable",
869
+ "name": "_FORCE_HTTP_REQREP",
870
+ "type": {
871
+ "text": "string"
872
+ },
873
+ "description": "When `'true'`, request/reply and event traffic (`request`, `commitEvent`, metadata, schema and\nresources lookups) is sent over HTTP even while the primary connection is a WebSocket.\nStreaming (`stream`/`snapshot`) stays on the socket.",
874
+ "privacy": "public"
875
+ },
860
876
  {
861
877
  "kind": "variable",
862
878
  "name": "GENESIS_SOCKET_URL",
@@ -1078,6 +1094,14 @@
1078
1094
  "module": "src/env/variables.ts"
1079
1095
  }
1080
1096
  },
1097
+ {
1098
+ "kind": "js",
1099
+ "name": "FORCE_HTTP_REQREP",
1100
+ "declaration": {
1101
+ "name": "_FORCE_HTTP_REQREP",
1102
+ "module": "src/env/variables.ts"
1103
+ }
1104
+ },
1081
1105
  {
1082
1106
  "kind": "js",
1083
1107
  "name": "GENESIS_SOCKET_URL",
@@ -36,6 +36,15 @@ export { _SOCKET_EXT as SOCKET_EXT };
36
36
  */
37
37
  declare let _FORCE_HTTP: string;
38
38
  export { _FORCE_HTTP as FORCE_HTTP };
39
+ /**
40
+ * When `'true'`, request/reply and event traffic (`request`, `commitEvent`, metadata, schema and
41
+ * resources lookups) is sent over HTTP even while the primary connection is a WebSocket.
42
+ * Streaming (`stream`/`snapshot`) stays on the socket.
43
+ * @remarks Optional. Can also be toggled per-session via the `?feature.forceHttpReqRep` URL flag.
44
+ * @public
45
+ */
46
+ declare let _FORCE_HTTP_REQREP: string;
47
+ export { _FORCE_HTTP_REQREP as FORCE_HTTP_REQREP };
39
48
  /**
40
49
  * Genesis Socket URL
41
50
  * @remarks
@@ -1 +1 @@
1
- {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/env/variables.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,QAAA,IAAI,QAAQ,EAAE,MAAkB,CAAC;AAQjC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC;AAG/B;;;;;;;GAOG;AACH,QAAA,IAAI,YAAY,EAAE,MAAY,CAAC;AAS/B,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AAGvC;;;;;;;;GAQG;AACH,QAAA,IAAI,WAAW,EAAE,MAAc,CAAC;AAQhC,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAGrC;;;;GAIG;AACH,QAAA,IAAI,WAAW,EAAE,MAAM,CAAC;AAMxB,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAErC;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,QAAgG,CAAC;AAShI;;;;;;GAMG;AACH,QAAA,IAAI,SAAS,EAAE,MAAwD,CAAC;AAQxE,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC;AAGjC;;;;GAIG;AACH,QAAA,IAAI,YAAY,EAAE,MAAM,CAAC;AAMzB,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AAKvC;;;;GAIG;AACH,QAAA,IAAI,qBAAqB,EAAE,MAAM,CAAC;AAMlC,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AAGzD;;;;GAIG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAAM,CAAC;AAM9B,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;AAGjD;;;;GAIG;AACH,QAAA,IAAI,aAAa,EAAE,MAAM,CAAC;AAM1B,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,CAAC;AAGzC;;GAEG;AACH,QAAA,IAAI,SAAS,EAAE,MAA+B,CAAC;AAM/C,OAAO,EAAE,SAAS,EAAE,CAAC;AAGrB;;GAEG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAA+B,CAAC;AAMvD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B;;GAEG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAAkC,CAAC;AAM1D,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B;;GAEG;AACH,QAAA,IAAI,UAAU,EAAE,MAA2B,CAAC;AAM5C,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB;;GAEG;AACH,QAAA,IAAI,mBAAmB,EAAE,MAAyC,CAAC;AAMnE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B;;GAEG;AACH,QAAA,IAAI,mBAAmB,EAAE,MAAgD,CAAC;AAM1E,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B;;GAEG;AACH,QAAA,IAAI,kBAAkB,EAAE,MAA0C,CAAC;AAMnE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B;;GAEG;AACH,QAAA,IAAI,YAAY,EAAE,MAAuB,CAAC;AAM1C,OAAO,EAAE,YAAY,EAAE,CAAC;AAGxB;;GAEG;AACH,QAAA,IAAI,aAAa,EAAE,MAAoC,CAAC;AAMxD,OAAO,EAAE,aAAa,EAAE,CAAC;AAGzB;;GAEG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAAkB,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B;;GAEG;AACH,QAAA,IAAI,gBAAgB,EAAE,MAAgC,CAAC;AAMvD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/env/variables.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,QAAA,IAAI,QAAQ,EAAE,MAAkB,CAAC;AAQjC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC;AAG/B;;;;;;;GAOG;AACH,QAAA,IAAI,YAAY,EAAE,MAAY,CAAC;AAS/B,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AAGvC;;;;;;;;GAQG;AACH,QAAA,IAAI,WAAW,EAAE,MAAc,CAAC;AAQhC,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAGrC;;;;GAIG;AACH,QAAA,IAAI,WAAW,EAAE,MAAM,CAAC;AAMxB,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC;AAGrC;;;;;;GAMG;AACH,QAAA,IAAI,kBAAkB,EAAE,MAAM,CAAC;AAM/B,OAAO,EAAE,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,QAAgG,CAAC;AAShI;;;;;;GAMG;AACH,QAAA,IAAI,SAAS,EAAE,MAAwD,CAAC;AAQxE,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC;AAGjC;;;;GAIG;AACH,QAAA,IAAI,YAAY,EAAE,MAAM,CAAC;AAMzB,OAAO,EAAE,YAAY,IAAI,WAAW,EAAE,CAAC;AAKvC;;;;GAIG;AACH,QAAA,IAAI,qBAAqB,EAAE,MAAM,CAAC;AAMlC,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AAGzD;;;;GAIG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAAM,CAAC;AAM9B,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;AAGjD;;;;GAIG;AACH,QAAA,IAAI,aAAa,EAAE,MAAM,CAAC;AAM1B,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,CAAC;AAGzC;;GAEG;AACH,QAAA,IAAI,SAAS,EAAE,MAA+B,CAAC;AAM/C,OAAO,EAAE,SAAS,EAAE,CAAC;AAGrB;;GAEG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAA+B,CAAC;AAMvD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B;;GAEG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAAkC,CAAC;AAM1D,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B;;GAEG;AACH,QAAA,IAAI,UAAU,EAAE,MAA2B,CAAC;AAM5C,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB;;GAEG;AACH,QAAA,IAAI,mBAAmB,EAAE,MAAyC,CAAC;AAMnE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B;;GAEG;AACH,QAAA,IAAI,mBAAmB,EAAE,MAAgD,CAAC;AAM1E,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B;;GAEG;AACH,QAAA,IAAI,kBAAkB,EAAE,MAA0C,CAAC;AAMnE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAG9B;;GAEG;AACH,QAAA,IAAI,YAAY,EAAE,MAAuB,CAAC;AAM1C,OAAO,EAAE,YAAY,EAAE,CAAC;AAGxB;;GAEG;AACH,QAAA,IAAI,aAAa,EAAE,MAAoC,CAAC;AAMxD,OAAO,EAAE,aAAa,EAAE,CAAC;AAGzB;;GAEG;AACH,QAAA,IAAI,iBAAiB,EAAE,MAAkB,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B;;GAEG;AACH,QAAA,IAAI,gBAAgB,EAAE,MAAgC,CAAC;AAMvD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -70,6 +70,15 @@ export declare const LifecycleMixin: <T extends ConstructableLifecycleHandler>(B
70
70
  * @internal
71
71
  **/
72
72
  #_shouldForceLifecycle: boolean;
73
+ /**
74
+ * Set once a short grace period (`setTimeout`) has elapsed since a blocked ('reflow')
75
+ * disconnect. Some consumers run defensive cleanup after the block via schedulers that can
76
+ * outlast a microtask (e.g. FAST's `DOM.queueUpdate`), so a macrotask-scale grace period is
77
+ * needed - once it has passed, the paired reconnect must not stay blocked, or the consumer
78
+ * never re-initializes.
79
+ * @internal
80
+ **/
81
+ #_blockedDisconnectSurvivedGracePeriod: boolean;
73
82
  /**
74
83
  * @privateRemarks
75
84
  * Rather than using the basic implementation of cloning we run a copy constructor (deepClone)
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/mixins/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;AAErF;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,yBAAyB,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,SAAS,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,YAAY,CAAC;AAEjF,KAAK,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;AAK5D;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,6BAA6B,EAAE,MAAM,CAAC;kBA+BtD,GAAG,EAAE;QA7B1B,iBAAiB;qBACJ,SAAS;QAEtB;;;YAGI;2BACe,MAAM;QACzB;;;YAGI;0BACc,OAAO;QACzB;;;;;;;YAOI;0BACc,MAAM,CAAC,OAAO;QAChC;;;;YAII;gCACoB,OAAO;QAM/B;;;;;WAKG;yBACuB,OAAO,GAAG,IAAI;QAUxC;;;;;;WAMG;qBACU,IAAI;QAMjB;;;WAGG;;QAmBH;;;;;WAKG;;wDAwB6C,aAAa,GAAG,OAAO;QAkCvE;;;;;;WAMG;qCAC0B,OAAO,GAAG,SAAS;6BA4B3B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAkC,CAAC"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/mixins/lifecycle/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;AAErF;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,yBAAyB,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,SAAS,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,YAAY,CAAC;AAEjF,KAAK,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;AAK5D;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,6BAA6B,EAAE,MAAM,CAAC;kBAwCtD,GAAG,EAAE;QAtC1B,iBAAiB;qBACJ,SAAS;QAEtB;;;YAGI;2BACe,MAAM;QACzB;;;YAGI;0BACc,OAAO;QACzB;;;;;;;YAOI;0BACc,MAAM,CAAC,OAAO;QAChC;;;;YAII;gCACoB,OAAO;QAC/B;;;;;;;YAOI;gDACoC,OAAO;QAM/C;;;;;WAKG;yBACuB,OAAO,GAAG,IAAI;QAUxC;;;;;;WAMG;qBACU,IAAI;QAMjB;;;WAGG;;QAmBH;;;;;WAKG;;wDAwB6C,aAAa,GAAG,OAAO;QAyCvE;;;;;;WAMG;qCAC0B,OAAO,GAAG,SAAS;6BA4B3B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,eAAkC,CAAC"}
@@ -60,6 +60,19 @@ try {
60
60
  }
61
61
  catch (_d) { }
62
62
  export { _FORCE_HTTP as FORCE_HTTP };
63
+ /**
64
+ * When `'true'`, request/reply and event traffic (`request`, `commitEvent`, metadata, schema and
65
+ * resources lookups) is sent over HTTP even while the primary connection is a WebSocket.
66
+ * Streaming (`stream`/`snapshot`) stays on the socket.
67
+ * @remarks Optional. Can also be toggled per-session via the `?feature.forceHttpReqRep` URL flag.
68
+ * @public
69
+ */
70
+ let _FORCE_HTTP_REQREP;
71
+ try {
72
+ _FORCE_HTTP_REQREP = FORCE_HTTP_REQREP;
73
+ }
74
+ catch (_e) { }
75
+ export { _FORCE_HTTP_REQREP as FORCE_HTTP_REQREP };
63
76
  /**
64
77
  * Genesis Socket URL
65
78
  * @remarks
@@ -87,7 +100,7 @@ try {
87
100
  _API_HOST = API_HOST;
88
101
  }
89
102
  }
90
- catch (_e) { }
103
+ catch (_f) { }
91
104
  export { _API_HOST as API_HOST };
92
105
  /**
93
106
  * Configuration settings for HTTP, used in http connect flow [`genesislcap-foundation-comms.HttpConnectConfig`](https://link-to-docs).
@@ -98,7 +111,7 @@ let _HTTP_CONFIG;
98
111
  try {
99
112
  _HTTP_CONFIG = HTTP_CONFIG;
100
113
  }
101
- catch (_f) { }
114
+ catch (_g) { }
102
115
  export { _HTTP_CONFIG as HTTP_CONFIG };
103
116
  /**
104
117
  * The default Organisation value, used in auth/login flow [`genesislcap-foundation-auth`](https://link-to-docs).
@@ -109,7 +122,7 @@ let _DEFAULT_ORGANISATION;
109
122
  try {
110
123
  _DEFAULT_ORGANISATION = DEFAULT_ORGANISATION;
111
124
  }
112
- catch (_g) { }
125
+ catch (_h) { }
113
126
  export { _DEFAULT_ORGANISATION as DEFAULT_ORGANISATION };
114
127
  /**
115
128
  * The default Password value, used in auth/login flow [`genesislcap-foundation-auth`](https://link-to-docs).
@@ -120,7 +133,7 @@ let _DEFAULT_PASSWORD;
120
133
  try {
121
134
  _DEFAULT_PASSWORD = DEFAULT_PASSWORD;
122
135
  }
123
- catch (_h) { }
136
+ catch (_j) { }
124
137
  export { _DEFAULT_PASSWORD as DEFAULT_PASSWORD };
125
138
  /**
126
139
  * The default Username value, used in auth/login flow [`genesislcap-foundation-auth`](https://link-to-docs).
@@ -131,7 +144,7 @@ let _DEFAULT_USER;
131
144
  try {
132
145
  _DEFAULT_USER = DEFAULT_USER;
133
146
  }
134
- catch (_j) { }
147
+ catch (_k) { }
135
148
  export { _DEFAULT_USER as DEFAULT_USER };
136
149
  /**
137
150
  * @public
@@ -11,7 +11,7 @@ const CLEANUP_TIMEOUT_MS = 10000;
11
11
  * #_ syntax is used for a javascript private method/variable
12
12
  * we can't use private/protected from typescript in an anonymous class like this
13
13
  */
14
- export const LifecycleMixin = (Base) => { var _instances, __container, __latestTokenCode, __hasFirstLoaded, __cleanupTimeout, __shouldForceLifecycle, __blockLifecycleDueToTokenChange, __tryFindContainingLayout, _a; return _a = class extends Base {
14
+ export const LifecycleMixin = (Base) => { var _instances, __container, __latestTokenCode, __hasFirstLoaded, __cleanupTimeout, __shouldForceLifecycle, __blockedDisconnectSurvivedGracePeriod, __blockLifecycleDueToTokenChange, __tryFindContainingLayout, _a; return _a = class extends Base {
15
15
  constructor(...args) {
16
16
  super(args);
17
17
  _instances.add(this);
@@ -42,6 +42,15 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
42
42
  * @internal
43
43
  **/
44
44
  __shouldForceLifecycle.set(this, false);
45
+ /**
46
+ * Set once a short grace period (`setTimeout`) has elapsed since a blocked ('reflow')
47
+ * disconnect. Some consumers run defensive cleanup after the block via schedulers that can
48
+ * outlast a microtask (e.g. FAST's `DOM.queueUpdate`), so a macrotask-scale grace period is
49
+ * needed - once it has passed, the paired reconnect must not stay blocked, or the consumer
50
+ * never re-initializes.
51
+ * @internal
52
+ **/
53
+ __blockedDisconnectSurvivedGracePeriod.set(this, false);
45
54
  }
46
55
  /**
47
56
  * @privateRemarks
@@ -127,6 +136,7 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
127
136
  __hasFirstLoaded = new WeakMap(),
128
137
  __cleanupTimeout = new WeakMap(),
129
138
  __shouldForceLifecycle = new WeakMap(),
139
+ __blockedDisconnectSurvivedGracePeriod = new WeakMap(),
130
140
  _instances = new WeakSet(),
131
141
  __blockLifecycleDueToTokenChange = function __blockLifecycleDueToTokenChange(lifecycleType) {
132
142
  var _b, _c;
@@ -146,6 +156,14 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
146
156
  // 'reconnect' - otherwise unrelated layout changes while disconnected can block it forever.
147
157
  __classPrivateFieldSet(this, __hasFirstLoaded, false, "f");
148
158
  }
159
+ else {
160
+ // Blocked disconnect: track whether a grace period elapses before the paired reconnect
161
+ // arrives. See `#_blockedDisconnectSurvivedGracePeriod` for why this matters.
162
+ __classPrivateFieldSet(this, __blockedDisconnectSurvivedGracePeriod, false, "f");
163
+ setTimeout(() => {
164
+ __classPrivateFieldSet(this, __blockedDisconnectSurvivedGracePeriod, true, "f");
165
+ }, 0);
166
+ }
149
167
  __classPrivateFieldSet(this, __cleanupTimeout, setTimeout(() => {
150
168
  __classPrivateFieldSet(this, __shouldForceLifecycle, result, "f");
151
169
  if (__classPrivateFieldGet(this, __shouldForceLifecycle, "f")) {
@@ -154,7 +172,7 @@ export const LifecycleMixin = (Base) => { var _instances, __container, __latestT
154
172
  }, CLEANUP_TIMEOUT_MS), "f");
155
173
  }
156
174
  else if (lifecycleType === 'reconnect') {
157
- result = tokensDifferent;
175
+ result = tokensDifferent && !__classPrivateFieldGet(this, __blockedDisconnectSurvivedGracePeriod, "f");
158
176
  __classPrivateFieldSet(this, __latestTokenCode, (_c = __classPrivateFieldGet(this, __container, "f").lifecycleUpdateToken) !== null && _c !== void 0 ? _c : '', "f");
159
177
  clearTimeout(__classPrivateFieldGet(this, __cleanupTimeout, "f"));
160
178
  }
@@ -5288,6 +5288,29 @@
5288
5288
  }
5289
5289
  ]
5290
5290
  },
5291
+ {
5292
+ "kind": "Variable",
5293
+ "canonicalReference": "@genesislcap/foundation-utils!FORCE_HTTP_REQREP:var",
5294
+ "docComment": "/**\n * When `'true'`, request/reply and event traffic (`request`, `commitEvent`, metadata, schema and resources lookups) is sent over HTTP even while the primary connection is a WebSocket. Streaming (`stream`/`snapshot`) stays on the socket.\n *\n * @remarks\n *\n * Optional. Can also be toggled per-session via the `?feature.forceHttpReqRep` URL flag.\n *\n * @public\n */\n",
5295
+ "excerptTokens": [
5296
+ {
5297
+ "kind": "Content",
5298
+ "text": "_FORCE_HTTP_REQREP: "
5299
+ },
5300
+ {
5301
+ "kind": "Content",
5302
+ "text": "string"
5303
+ }
5304
+ ],
5305
+ "fileUrlPath": "src/env/variables.ts",
5306
+ "isReadonly": false,
5307
+ "releaseTag": "Public",
5308
+ "name": "FORCE_HTTP_REQREP",
5309
+ "variableTypeTokenRange": {
5310
+ "startIndex": 1,
5311
+ "endIndex": 2
5312
+ }
5313
+ },
5291
5314
  {
5292
5315
  "kind": "Variable",
5293
5316
  "canonicalReference": "@genesislcap/foundation-utils!FORCE_HTTP:var",
@@ -9118,7 +9141,7 @@
9118
9141
  },
9119
9142
  {
9120
9143
  "kind": "Content",
9121
- "text": ";\n #_shouldForceLifecycle: boolean;\n cloneNode(deep?: boolean): "
9144
+ "text": ";\n #_shouldForceLifecycle: boolean;\n #_blockedDisconnectSurvivedGracePeriod: boolean;\n cloneNode(deep?: boolean): "
9122
9145
  },
9123
9146
  {
9124
9147
  "kind": "Reference",
@@ -598,6 +598,15 @@ export declare enum FontWeight {
598
598
  */
599
599
  export declare let FORCE_HTTP: string;
600
600
 
601
+ /**
602
+ * When `'true'`, request/reply and event traffic (`request`, `commitEvent`, metadata, schema and
603
+ * resources lookups) is sent over HTTP even while the primary connection is a WebSocket.
604
+ * Streaming (`stream`/`snapshot`) stays on the socket.
605
+ * @remarks Optional. Can also be toggled per-session via the `?feature.forceHttpReqRep` URL flag.
606
+ * @public
607
+ */
608
+ export declare let FORCE_HTTP_REQREP: string;
609
+
601
610
  /**
602
611
  * @public
603
612
  */
@@ -1049,6 +1058,15 @@ export declare const LifecycleMixin: <T extends ConstructableLifecycleHandler>(B
1049
1058
  * @internal
1050
1059
  **/
1051
1060
  #_shouldForceLifecycle: boolean;
1061
+ /**
1062
+ * Set once a short grace period (`setTimeout`) has elapsed since a blocked ('reflow')
1063
+ * disconnect. Some consumers run defensive cleanup after the block via schedulers that can
1064
+ * outlast a microtask (e.g. FAST's `DOM.queueUpdate`), so a macrotask-scale grace period is
1065
+ * needed - once it has passed, the paired reconnect must not stay blocked, or the consumer
1066
+ * never re-initializes.
1067
+ * @internal
1068
+ **/
1069
+ #_blockedDisconnectSurvivedGracePeriod: boolean;
1052
1070
  /**
1053
1071
  * @privateRemarks
1054
1072
  * Rather than using the basic implementation of cloning we run a copy constructor (deepClone)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-utils",
3
3
  "description": "Genesis Foundation Utils",
4
- "version": "14.498.0",
4
+ "version": "14.500.0",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -29,18 +29,18 @@
29
29
  }
30
30
  },
31
31
  "devDependencies": {
32
- "@genesislcap/foundation-testing": "14.498.0",
33
- "@genesislcap/genx": "14.498.0",
34
- "@genesislcap/rollup-builder": "14.498.0",
35
- "@genesislcap/ts-builder": "14.498.0",
36
- "@genesislcap/uvu-playwright-builder": "14.498.0",
37
- "@genesislcap/vite-builder": "14.498.0",
38
- "@genesislcap/webpack-builder": "14.498.0",
32
+ "@genesislcap/foundation-testing": "14.500.0",
33
+ "@genesislcap/genx": "14.500.0",
34
+ "@genesislcap/rollup-builder": "14.500.0",
35
+ "@genesislcap/ts-builder": "14.500.0",
36
+ "@genesislcap/uvu-playwright-builder": "14.500.0",
37
+ "@genesislcap/vite-builder": "14.500.0",
38
+ "@genesislcap/webpack-builder": "14.500.0",
39
39
  "@types/json-schema": "^7.0.11"
40
40
  },
41
41
  "dependencies": {
42
- "@genesislcap/expression-builder": "14.498.0",
43
- "@genesislcap/foundation-logger": "14.498.0",
42
+ "@genesislcap/expression-builder": "14.500.0",
43
+ "@genesislcap/foundation-logger": "14.500.0",
44
44
  "@microsoft/fast-components": "2.30.6",
45
45
  "@microsoft/fast-element": "1.14.0",
46
46
  "@microsoft/fast-foundation": "2.50.0",
@@ -58,5 +58,5 @@
58
58
  "access": "public"
59
59
  },
60
60
  "customElements": "dist/custom-elements.json",
61
- "gitHead": "88a07e46851fa94efc9399c50975c9eb2c21168c"
61
+ "gitHead": "71f449cda804427acfa5d246da83d1044f2cb2c4"
62
62
  }