on-zero 0.16.19 → 0.16.20

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 (120) hide show
  1. package/dist/cjs/createUseQuery.cjs +2 -1
  2. package/dist/cjs/createUseQuery.native.js +2 -1
  3. package/dist/cjs/createUseQuery.native.js.map +1 -1
  4. package/dist/cjs/createUseQueryDirect.cjs +2 -1
  5. package/dist/cjs/createUseQueryDirect.native.js +2 -1
  6. package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
  7. package/dist/cjs/createZeroClient.cjs +75 -9
  8. package/dist/cjs/createZeroClient.native.js +151 -81
  9. package/dist/cjs/createZeroClient.native.js.map +1 -1
  10. package/dist/cjs/createZeroClient.recovery.test.cjs +351 -10
  11. package/dist/cjs/createZeroClient.recovery.test.native.js +412 -12
  12. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  13. package/dist/cjs/generate.cjs +16 -11
  14. package/dist/cjs/generate.native.js +16 -11
  15. package/dist/cjs/generate.native.js.map +1 -1
  16. package/dist/cjs/generate.test.cjs +22 -0
  17. package/dist/cjs/generate.test.native.js +22 -0
  18. package/dist/cjs/generate.test.native.js.map +1 -1
  19. package/dist/cjs/helpers/recoverZeroClient.cjs +542 -52
  20. package/dist/cjs/helpers/recoverZeroClient.native.js +721 -59
  21. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  22. package/dist/cjs/helpers/recoverZeroClient.test.cjs +318 -0
  23. package/dist/cjs/helpers/recoverZeroClient.test.native.js +361 -0
  24. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  25. package/dist/cjs/kvStore.cjs +30 -0
  26. package/dist/cjs/kvStore.native.js +34 -0
  27. package/dist/cjs/kvStore.native.js.map +1 -0
  28. package/dist/cjs/queryJson.cjs +58 -0
  29. package/dist/cjs/queryJson.native.js +86 -0
  30. package/dist/cjs/queryJson.native.js.map +1 -0
  31. package/dist/cjs/resolveQuery.cjs +2 -0
  32. package/dist/cjs/resolveQuery.native.js +2 -0
  33. package/dist/cjs/resolveQuery.native.js.map +1 -1
  34. package/dist/cjs/useQuery.empty.test.cjs +11 -1
  35. package/dist/cjs/useQuery.empty.test.native.js +23 -1
  36. package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
  37. package/dist/cjs/useQuery.ssr.test.cjs +22 -1
  38. package/dist/cjs/useQuery.ssr.test.native.js +30 -1
  39. package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
  40. package/dist/esm/createUseQuery.mjs +2 -1
  41. package/dist/esm/createUseQuery.mjs.map +1 -1
  42. package/dist/esm/createUseQuery.native.js +2 -1
  43. package/dist/esm/createUseQuery.native.js.map +1 -1
  44. package/dist/esm/createUseQueryDirect.mjs +2 -1
  45. package/dist/esm/createUseQueryDirect.mjs.map +1 -1
  46. package/dist/esm/createUseQueryDirect.native.js +2 -1
  47. package/dist/esm/createUseQueryDirect.native.js.map +1 -1
  48. package/dist/esm/createZeroClient.mjs +76 -10
  49. package/dist/esm/createZeroClient.mjs.map +1 -1
  50. package/dist/esm/createZeroClient.native.js +152 -82
  51. package/dist/esm/createZeroClient.native.js.map +1 -1
  52. package/dist/esm/createZeroClient.recovery.test.mjs +352 -11
  53. package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
  54. package/dist/esm/createZeroClient.recovery.test.native.js +413 -13
  55. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  56. package/dist/esm/generate.mjs +16 -11
  57. package/dist/esm/generate.mjs.map +1 -1
  58. package/dist/esm/generate.native.js +16 -11
  59. package/dist/esm/generate.native.js.map +1 -1
  60. package/dist/esm/generate.test.mjs +22 -0
  61. package/dist/esm/generate.test.mjs.map +1 -1
  62. package/dist/esm/generate.test.native.js +22 -0
  63. package/dist/esm/generate.test.native.js.map +1 -1
  64. package/dist/esm/helpers/recoverZeroClient.mjs +542 -54
  65. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
  66. package/dist/esm/helpers/recoverZeroClient.native.js +721 -61
  67. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  68. package/dist/esm/helpers/recoverZeroClient.test.mjs +319 -1
  69. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  70. package/dist/esm/helpers/recoverZeroClient.test.native.js +362 -1
  71. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  72. package/dist/esm/kvStore.mjs +5 -0
  73. package/dist/esm/kvStore.mjs.map +1 -0
  74. package/dist/esm/kvStore.native.js +6 -0
  75. package/dist/esm/kvStore.native.js.map +1 -0
  76. package/dist/esm/queryJson.mjs +32 -0
  77. package/dist/esm/queryJson.mjs.map +1 -0
  78. package/dist/esm/queryJson.native.js +57 -0
  79. package/dist/esm/queryJson.native.js.map +1 -0
  80. package/dist/esm/resolveQuery.mjs +2 -0
  81. package/dist/esm/resolveQuery.mjs.map +1 -1
  82. package/dist/esm/resolveQuery.native.js +2 -0
  83. package/dist/esm/resolveQuery.native.js.map +1 -1
  84. package/dist/esm/useQuery.empty.test.mjs +12 -2
  85. package/dist/esm/useQuery.empty.test.mjs.map +1 -1
  86. package/dist/esm/useQuery.empty.test.native.js +24 -2
  87. package/dist/esm/useQuery.empty.test.native.js.map +1 -1
  88. package/dist/esm/useQuery.ssr.test.mjs +23 -2
  89. package/dist/esm/useQuery.ssr.test.mjs.map +1 -1
  90. package/dist/esm/useQuery.ssr.test.native.js +31 -2
  91. package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
  92. package/package.json +11 -3
  93. package/src/createUseQuery.tsx +2 -1
  94. package/src/createUseQueryDirect.tsx +2 -1
  95. package/src/createZeroClient.recovery.test.tsx +370 -7
  96. package/src/createZeroClient.tsx +100 -10
  97. package/src/generate.test.ts +31 -0
  98. package/src/generate.ts +22 -10
  99. package/src/helpers/recoverZeroClient.test.ts +323 -0
  100. package/src/helpers/recoverZeroClient.ts +896 -78
  101. package/src/kvStore.native.ts +7 -0
  102. package/src/kvStore.ts +7 -0
  103. package/src/queryJson.ts +46 -0
  104. package/src/resolveQuery.ts +2 -0
  105. package/src/useQuery.empty.test.tsx +16 -2
  106. package/src/useQuery.ssr.test.ts +23 -2
  107. package/types/createUseQuery.d.ts.map +1 -1
  108. package/types/createUseQueryDirect.d.ts.map +1 -1
  109. package/types/createZeroClient.d.ts.map +1 -1
  110. package/types/createZeroClient.recovery.test.d.ts.map +1 -1
  111. package/types/generate.d.ts.map +1 -1
  112. package/types/helpers/recoverZeroClient.d.ts +6 -0
  113. package/types/helpers/recoverZeroClient.d.ts.map +1 -1
  114. package/types/kvStore.d.ts +2 -0
  115. package/types/kvStore.d.ts.map +1 -0
  116. package/types/kvStore.native.d.ts +3 -0
  117. package/types/kvStore.native.d.ts.map +1 -0
  118. package/types/queryJson.d.ts +3 -0
  119. package/types/queryJson.d.ts.map +1 -0
  120. package/types/resolveQuery.d.ts.map +1 -1
@@ -22,6 +22,9 @@ function _define_property(obj, key, value) {
22
22
  return obj;
23
23
  }
24
24
  var fakeZero = import_vitest.vi.hoisted(function () {
25
+ var group = {
26
+ current: "g1"
27
+ };
25
28
  var FakeZero = function FakeZero2(options) {
26
29
  "use strict";
27
30
 
@@ -32,20 +35,11 @@ var fakeZero = import_vitest.vi.hoisted(function () {
32
35
  _define_property(this, "delete", void 0);
33
36
  _define_property(this, "close", void 0);
34
37
  _define_property(this, "run", void 0);
38
+ _define_property(this, "mutate", void 0);
35
39
  _define_property(this, "preload", void 0);
40
+ _define_property(this, "clientGroupID", void 0);
36
41
  this.options = options;
37
42
  this.context = {};
38
- this.connection = {
39
- state: {
40
- current: {
41
- name: "closed"
42
- },
43
- subscribe: function subscribe() {
44
- return function () {};
45
- }
46
- },
47
- connect: import_vitest.vi.fn()
48
- };
49
43
  this.delete = import_vitest.vi.fn(async function () {
50
44
  return {
51
45
  errors: []
@@ -55,6 +49,16 @@ var fakeZero = import_vitest.vi.hoisted(function () {
55
49
  this.run = import_vitest.vi.fn(async function () {
56
50
  return [];
57
51
  });
52
+ this.mutate = {
53
+ note: {
54
+ insert: import_vitest.vi.fn(function () {
55
+ return {
56
+ client: Promise.resolve({}),
57
+ server: Promise.resolve({})
58
+ };
59
+ })
60
+ }
61
+ };
58
62
  this.preload = import_vitest.vi.fn(function () {
59
63
  return {
60
64
  cleanup: function cleanup() {},
@@ -62,11 +66,38 @@ var fakeZero = import_vitest.vi.hoisted(function () {
62
66
  };
63
67
  });
64
68
  instances.push(this);
69
+ this.clientGroupID = Promise.resolve(group.current);
70
+ var listeners = /* @__PURE__ */new Set();
71
+ this.connection = {
72
+ state: {
73
+ current: {
74
+ name: "closed"
75
+ },
76
+ subscribe: function subscribe(listener) {
77
+ listeners.add(listener);
78
+ return function () {
79
+ listeners.delete(listener);
80
+ };
81
+ }
82
+ },
83
+ connect: import_vitest.vi.fn()
84
+ };
85
+ this.__connectionListeners = listeners;
65
86
  };
66
87
  var instances = [];
88
+ function setConnectionState(instance, name) {
89
+ instance.connection.state.current.name = name;
90
+ var listeners = instance.__connectionListeners;
91
+ for (var _i = 0, _iter = [...listeners]; _i < _iter.length; _i++) {
92
+ var listener = _iter[_i];
93
+ listener();
94
+ }
95
+ }
67
96
  return {
68
97
  FakeZero,
69
- instances
98
+ instances,
99
+ group,
100
+ setConnectionState
70
101
  };
71
102
  });
72
103
  import_vitest.vi.mock("@rocicorp/zero", async function (importOriginal) {
@@ -96,6 +127,7 @@ var root;
96
127
  window.sessionStorage.clear();
97
128
  (0, import_recoverZeroClient.resetRecoveryStateForTests)();
98
129
  fakeZero.instances.length = 0;
130
+ fakeZero.group.current = "g1";
99
131
  container = document.createElement("div");
100
132
  root = null;
101
133
  });
@@ -466,4 +498,372 @@ async function mount() {
466
498
  (0, import_vitest.expect)(first.close).toHaveBeenCalledOnce();
467
499
  await connection.close();
468
500
  });
501
+ function makeTransitionClient(instanceName) {
502
+ return (0, import_createZeroClient.createZeroClient)({
503
+ schema,
504
+ models: {},
505
+ groupedQueries: {},
506
+ instanceName
507
+ });
508
+ }
509
+ function collectClientEvents(client2) {
510
+ var events = [];
511
+ var off = client2.zeroEvents.listen(function (event) {
512
+ if (event) events.push(event);
513
+ });
514
+ return {
515
+ events,
516
+ off
517
+ };
518
+ }
519
+ async function mountTransitionClient(client2, userID) {
520
+ var el = document.createElement("div");
521
+ var mountedRoot = (0, import_client.createRoot)(el);
522
+ await (0, import_react.act)(async function () {
523
+ mountedRoot.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client2.ProvideZero, {
524
+ cacheURL: "http://127.0.0.1:7777/zero",
525
+ userID,
526
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
527
+ children: "ok"
528
+ })
529
+ }));
530
+ await Promise.resolve();
531
+ });
532
+ return {
533
+ el,
534
+ root: mountedRoot,
535
+ instance: fakeZero.instances.at(-1)
536
+ };
537
+ }
538
+ async function unmountTransitionClient(mounted) {
539
+ await (0, import_react.act)(async function () {
540
+ mounted.root.unmount();
541
+ });
542
+ }
543
+ function withoutPageReload() {
544
+ var originalLocation = globalThis.location;
545
+ Object.defineProperty(globalThis, "location", {
546
+ configurable: true,
547
+ value: void 0
548
+ });
549
+ return function () {
550
+ Object.defineProperty(globalThis, "location", {
551
+ configurable: true,
552
+ value: originalLocation
553
+ });
554
+ };
555
+ }
556
+ (0, import_vitest.test)("two providers ride one group transition and keep querying and mutating", async function () {
557
+ var restoreLocation = withoutPageReload();
558
+ var clientA = makeTransitionClient("transition-two-a");
559
+ var clientB = makeTransitionClient("transition-two-b");
560
+ var collectedA = collectClientEvents(clientA);
561
+ var collectedB = collectClientEvents(clientB);
562
+ var mountedA = await mountTransitionClient(clientA, "transition-user");
563
+ var mountedB = await mountTransitionClient(clientB, "transition-user");
564
+ var firstA = mountedA.instance;
565
+ var firstB = mountedB.instance;
566
+ var countBefore = fakeZero.instances.length;
567
+ try {
568
+ firstA.options.onUpdateNeeded({
569
+ type: "NewClientGroup"
570
+ });
571
+ firstB.options.onUpdateNeeded({
572
+ type: "NewClientGroup"
573
+ });
574
+ await (0, import_react.act)(async function () {
575
+ await new Promise(function (resolve) {
576
+ return setTimeout(resolve, 0);
577
+ });
578
+ });
579
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(countBefore + 2);
580
+ var secondA = fakeZero.instances[countBefore];
581
+ var secondB = fakeZero.instances[countBefore + 1];
582
+ (0, import_vitest.expect)(secondA).not.toBe(firstA);
583
+ (0, import_vitest.expect)(secondB).not.toBe(firstB);
584
+ (0, import_vitest.expect)(firstA.close).toHaveBeenCalledTimes(1);
585
+ (0, import_vitest.expect)(firstB.close).toHaveBeenCalledTimes(1);
586
+ (0, import_vitest.expect)((0, import_recoverZeroClient.isGroupTransitionOpen)()).toBe(true);
587
+ await (0, import_react.act)(async function () {
588
+ fakeZero.setConnectionState(secondA, "connected");
589
+ fakeZero.setConnectionState(secondB, "connected");
590
+ await Promise.resolve();
591
+ });
592
+ await import_vitest.vi.waitFor(function () {
593
+ return (0, import_vitest.expect)((0, import_recoverZeroClient.isGroupTransitionOpen)()).toBe(false);
594
+ });
595
+ var allEvents = [...collectedA.events, ...collectedB.events];
596
+ (0, import_vitest.expect)(allEvents.filter(function (event) {
597
+ return event.type === "recovering";
598
+ })).toHaveLength(1);
599
+ (0, import_vitest.expect)(allEvents.filter(function (event) {
600
+ return event.type === "fatal";
601
+ })).toHaveLength(0);
602
+ (0, import_vitest.expect)(firstA.delete).not.toHaveBeenCalled();
603
+ (0, import_vitest.expect)(firstB.delete).not.toHaveBeenCalled();
604
+ await clientA.zero.run({});
605
+ await clientB.zero.run({});
606
+ (0, import_vitest.expect)(secondA.run).toHaveBeenCalled();
607
+ (0, import_vitest.expect)(secondB.run).toHaveBeenCalled();
608
+ clientA.zero.mutate.note.insert({
609
+ id: "a1"
610
+ });
611
+ clientB.zero.mutate.note.insert({
612
+ id: "b1"
613
+ });
614
+ (0, import_vitest.expect)(secondA.mutate.note.insert).toHaveBeenCalledTimes(1);
615
+ (0, import_vitest.expect)(secondB.mutate.note.insert).toHaveBeenCalledTimes(1);
616
+ } finally {
617
+ collectedA.off();
618
+ collectedB.off();
619
+ await unmountTransitionClient(mountedA);
620
+ await unmountTransitionClient(mountedB);
621
+ restoreLocation();
622
+ }
623
+ });
624
+ (0, import_vitest.test)("a second registry change after recovery remints again without fatal", async function () {
625
+ var restoreLocation = withoutPageReload();
626
+ var clientA = makeTransitionClient("transition-second-a");
627
+ var clientB = makeTransitionClient("transition-second-b");
628
+ var collectedA = collectClientEvents(clientA);
629
+ var collectedB = collectClientEvents(clientB);
630
+ var mountedA = await mountTransitionClient(clientA, "transition-second-user");
631
+ var mountedB = await mountTransitionClient(clientB, "transition-second-user");
632
+ try {
633
+ var fireBoth = function fireBoth2(instances) {
634
+ instances[0].options.onUpdateNeeded({
635
+ type: "NewClientGroup"
636
+ });
637
+ instances[1].options.onUpdateNeeded({
638
+ type: "NewClientGroup"
639
+ });
640
+ };
641
+ var settleRemints = async function settleRemints2(countBefore2) {
642
+ await (0, import_react.act)(async function () {
643
+ await new Promise(function (resolve) {
644
+ return setTimeout(resolve, 0);
645
+ });
646
+ });
647
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(countBefore2 + 2);
648
+ var next = fakeZero.instances.slice(countBefore2);
649
+ await (0, import_react.act)(async function () {
650
+ var _iteratorNormalCompletion = true,
651
+ _didIteratorError = false,
652
+ _iteratorError = void 0;
653
+ try {
654
+ for (var _iterator = next[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
655
+ var instance = _step.value;
656
+ fakeZero.setConnectionState(instance, "connected");
657
+ }
658
+ } catch (err) {
659
+ _didIteratorError = true;
660
+ _iteratorError = err;
661
+ } finally {
662
+ try {
663
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
664
+ _iterator.return();
665
+ }
666
+ } finally {
667
+ if (_didIteratorError) {
668
+ throw _iteratorError;
669
+ }
670
+ }
671
+ }
672
+ await Promise.resolve();
673
+ });
674
+ await import_vitest.vi.waitFor(function () {
675
+ return (0, import_vitest.expect)((0, import_recoverZeroClient.isGroupTransitionOpen)()).toBe(false);
676
+ });
677
+ return next;
678
+ };
679
+ var countBeforeFirst = fakeZero.instances.length;
680
+ fireBoth(fakeZero.instances.slice(-2));
681
+ await settleRemints(countBeforeFirst);
682
+ fakeZero.group.current = "g2";
683
+ var countBefore = fakeZero.instances.length;
684
+ fireBoth(fakeZero.instances.slice(-2));
685
+ var third = await settleRemints(countBefore);
686
+ var allEvents = [...collectedA.events, ...collectedB.events];
687
+ (0, import_vitest.expect)(allEvents.filter(function (event) {
688
+ return event.type === "recovering";
689
+ })).toHaveLength(2);
690
+ (0, import_vitest.expect)(allEvents.filter(function (event) {
691
+ return event.type === "fatal";
692
+ })).toHaveLength(0);
693
+ await clientA.zero.run({});
694
+ await clientB.zero.run({});
695
+ (0, import_vitest.expect)(third[0].run).toHaveBeenCalled();
696
+ (0, import_vitest.expect)(third[1].run).toHaveBeenCalled();
697
+ } finally {
698
+ collectedA.off();
699
+ collectedB.off();
700
+ await unmountTransitionClient(mountedA);
701
+ await unmountTransitionClient(mountedB);
702
+ restoreLocation();
703
+ }
704
+ });
705
+ (0, import_vitest.test)("negative control: an incompatible schema emits exactly one terminal error, never a loop", async function () {
706
+ var restoreLocation = withoutPageReload();
707
+ var consoleError = import_vitest.vi.spyOn(console, "error").mockImplementation(function () {});
708
+ var clientA = makeTransitionClient("transition-negative-a");
709
+ var clientB = makeTransitionClient("transition-negative-b");
710
+ var collectedA = collectClientEvents(clientA);
711
+ var collectedB = collectClientEvents(clientB);
712
+ var mountedA = await mountTransitionClient(clientA, "transition-negative-user");
713
+ var mountedB = await mountTransitionClient(clientB, "transition-negative-user");
714
+ var firstA = mountedA.instance;
715
+ var firstB = mountedB.instance;
716
+ var countBefore = fakeZero.instances.length;
717
+ try {
718
+ firstA.options.onUpdateNeeded({
719
+ type: "SchemaVersionNotSupported"
720
+ });
721
+ firstB.options.onUpdateNeeded({
722
+ type: "SchemaVersionNotSupported"
723
+ });
724
+ await (0, import_react.act)(async function () {
725
+ await new Promise(function (resolve) {
726
+ return setTimeout(resolve, 0);
727
+ });
728
+ });
729
+ (0, import_vitest.expect)(firstA.delete).toHaveBeenCalledTimes(1);
730
+ (0, import_vitest.expect)(firstB.delete).toHaveBeenCalledTimes(1);
731
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(countBefore + 2);
732
+ var secondA = fakeZero.instances[countBefore];
733
+ var secondB = fakeZero.instances[countBefore + 1];
734
+ (0, import_vitest.expect)((0, import_recoverZeroClient.isGroupTransitionOpen)()).toBe(true);
735
+ secondA.options.onUpdateNeeded({
736
+ type: "SchemaVersionNotSupported"
737
+ });
738
+ await (0, import_react.act)(async function () {
739
+ await new Promise(function (resolve) {
740
+ return setTimeout(resolve, 0);
741
+ });
742
+ });
743
+ var allEvents = function allEvents2() {
744
+ return [...collectedA.events, ...collectedB.events];
745
+ };
746
+ (0, import_vitest.expect)(allEvents().filter(function (event) {
747
+ return event.type === "fatal";
748
+ })).toHaveLength(1);
749
+ var [fatal] = allEvents().filter(function (event) {
750
+ return event.type === "fatal";
751
+ });
752
+ (0, import_vitest.expect)(fatal).toMatchObject({
753
+ reasonKey: "SchemaVersionNotSupported",
754
+ reason: import_vitest.expect.stringContaining("g1")
755
+ });
756
+ (0, import_vitest.expect)(consoleError).toHaveBeenCalledTimes(1);
757
+ (0, import_vitest.expect)(consoleError.mock.calls[0][0]).toContain("g1");
758
+ secondB.options.onUpdateNeeded({
759
+ type: "SchemaVersionNotSupported"
760
+ });
761
+ secondA.options.onUpdateNeeded({
762
+ type: "SchemaVersionNotSupported"
763
+ });
764
+ await (0, import_react.act)(async function () {
765
+ await new Promise(function (resolve) {
766
+ return setTimeout(resolve, 0);
767
+ });
768
+ });
769
+ (0, import_vitest.expect)(allEvents().filter(function (event) {
770
+ return event.type === "fatal";
771
+ })).toHaveLength(1);
772
+ (0, import_vitest.expect)(consoleError).toHaveBeenCalledTimes(1);
773
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(countBefore + 2);
774
+ } finally {
775
+ collectedA.off();
776
+ collectedB.off();
777
+ await unmountTransitionClient(mountedA);
778
+ await unmountTransitionClient(mountedB);
779
+ restoreLocation();
780
+ consoleError.mockRestore();
781
+ }
782
+ });
783
+ (0, import_vitest.test)("concurrent update signals across providers schedule a single reload", async function () {
784
+ var reloadPage = import_vitest.vi.fn();
785
+ var originalLocation = globalThis.location;
786
+ Object.defineProperty(globalThis, "location", {
787
+ configurable: true,
788
+ value: {
789
+ href: "http://localhost/reload-test",
790
+ reload: reloadPage
791
+ }
792
+ });
793
+ var scheduleA = import_vitest.vi.fn();
794
+ var scheduleB = import_vitest.vi.fn();
795
+ var clientA = makeTransitionClient("transition-reload-a");
796
+ var clientB = makeTransitionClient("transition-reload-b");
797
+ var collectedA = collectClientEvents(clientA);
798
+ var collectedB = collectClientEvents(clientB);
799
+ var elA = document.createElement("div");
800
+ var elB = document.createElement("div");
801
+ var rootA = (0, import_client.createRoot)(elA);
802
+ var rootB = (0, import_client.createRoot)(elB);
803
+ try {
804
+ var _scheduleA_mock_calls_;
805
+ await (0, import_react.act)(async function () {
806
+ rootA.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(clientA.ProvideZero, {
807
+ cacheURL: "http://127.0.0.1:7777/zero",
808
+ userID: "transition-reload-user",
809
+ scheduleReload: scheduleA,
810
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
811
+ children: "ok"
812
+ })
813
+ }));
814
+ await Promise.resolve();
815
+ });
816
+ await (0, import_react.act)(async function () {
817
+ rootB.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(clientB.ProvideZero, {
818
+ cacheURL: "http://127.0.0.1:7777/zero",
819
+ userID: "transition-reload-user",
820
+ scheduleReload: scheduleB,
821
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
822
+ children: "ok"
823
+ })
824
+ }));
825
+ await Promise.resolve();
826
+ });
827
+ var firstA = fakeZero.instances.at(-2);
828
+ var firstB = fakeZero.instances.at(-1);
829
+ firstA.options.onUpdateNeeded({
830
+ type: "NewClientGroup"
831
+ });
832
+ firstB.options.onUpdateNeeded({
833
+ type: "NewClientGroup"
834
+ });
835
+ await (0, import_react.act)(async function () {
836
+ await new Promise(function (resolve) {
837
+ return setTimeout(resolve, 0);
838
+ });
839
+ });
840
+ (0, import_vitest.expect)(scheduleA.mock.calls.length + scheduleB.mock.calls.length).toBe(1);
841
+ (0, import_vitest.expect)(reloadPage).not.toHaveBeenCalled();
842
+ var allEvents = [...collectedA.events, ...collectedB.events];
843
+ (0, import_vitest.expect)(allEvents.filter(function (event) {
844
+ return event.type === "fatal";
845
+ })).toHaveLength(0);
846
+ var ctx = ((_scheduleA_mock_calls_ = scheduleA.mock.calls[0]) !== null && _scheduleA_mock_calls_ !== void 0 ? _scheduleA_mock_calls_ : scheduleB.mock.calls[0])[0];
847
+ await (0, import_react.act)(async function () {
848
+ await ctx.performReload();
849
+ });
850
+ (0, import_vitest.expect)(reloadPage).toHaveBeenCalledTimes(1);
851
+ (0, import_vitest.expect)((0, import_recoverZeroClient.isGroupTransitionOpen)()).toBe(false);
852
+ var marker = window.sessionStorage.getItem("on-zero-recover-http://localhost/reload-test-NewClientGroup");
853
+ (0, import_vitest.expect)(marker).toContain("g1");
854
+ } finally {
855
+ collectedA.off();
856
+ collectedB.off();
857
+ await (0, import_react.act)(async function () {
858
+ rootA.unmount();
859
+ });
860
+ await (0, import_react.act)(async function () {
861
+ rootB.unmount();
862
+ });
863
+ Object.defineProperty(globalThis, "location", {
864
+ configurable: true,
865
+ value: originalLocation
866
+ });
867
+ }
868
+ });
469
869
  //# sourceMappingURL=createZeroClient.recovery.test.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["import_jsx_runtime","require","import_zero","import_react","import_client","import_vitest","import_createZeroClient","import_recoverZeroClient","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","fakeZero","vi","hoisted","FakeZero","FakeZero2","options","context","connection","state","current","name","subscribe","connect","fn","delete","errors","close","run","preload","cleanup","complete","Promise","resolve","instances","push","mock","importOriginal","actual","Zero","globalThis","IS_REACT_ACT_ENVIRONMENT","noteTable","table","columns","id","string","body","primaryKey","schema","createSchema","tables","client","createZeroClient","models","groupedQueries","instanceName","container","root","beforeEach","window","sessionStorage","clear","resetRecoveryStateForTests","length","document","createElement","afterEach","act","unmount","mount","createRoot","render","jsx","ProvideZero","cacheURL","userID","children","test","first","expect","toBeDefined","deleteZero","zero","toHaveBeenCalledTimes","toHaveLength","not","toBe","at","countBefore","result","remint","isolated","connectHeadless","kvStore","storageKey","consoleError","spyOn","console","mockImplementation","onUpdateNeeded","type","UpdateNeededReasonType","NewClientGroup","setTimeout","toHaveBeenCalledWith","mockRestore","_generations_","_generations_1","generationClient","generations","GenerationProbe","generation","useZeroProviderGeneration","useLayoutEffect","firstGeneration","isCurrent","dropLocalState","hidden","hiddenUntil","MaybeHidden","App","Suspense","fallback","settleServer","settleServer2","server","settled","acknowledgement","awaitMutationServer","finally","textContent","toContain","resolves","useFakeTimers","_fakeZero_instances_","scheduleReload","events","off","zeroEvents","listen","event","timeout","timeout2","label","timedOut","rejects","toMatchObject","phase","advanceTimersByTimeAsync","toEqual","toContainEqual","status","reasonKey","reason","toHaveBeenCalled","useRealTimers","install","transport","logClassifications","benign","benignLogPatterns"],"sources":["../../src/createZeroClient.recovery.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_jsx_runtime","require","import_zero","import_react","import_client","import_vitest","import_createZeroClient","import_recoverZeroClient","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","fakeZero","vi","hoisted","group","current","FakeZero","FakeZero2","options","context","delete","fn","errors","close","run","mutate","note","insert","client","Promise","resolve","server","preload","cleanup","complete","instances","push","clientGroupID","listeners","Set","connection","state","name","subscribe","listener","add","connect","__connectionListeners","setConnectionState","_i","_iter","length","mock","importOriginal","actual","Zero","globalThis","IS_REACT_ACT_ENVIRONMENT","noteTable","table","columns","id","string","body","primaryKey","schema","createSchema","tables","createZeroClient","models","groupedQueries","instanceName","container","root","beforeEach","window","sessionStorage","clear","resetRecoveryStateForTests","document","createElement","afterEach","act","unmount","mount","createRoot","render","jsx","ProvideZero","cacheURL","userID","children","test","first","expect","toBeDefined","deleteZero","zero","toHaveBeenCalledTimes","toHaveLength","not","toBe","at","countBefore","result","remint","isolated","connectHeadless","kvStore","storageKey","consoleError","spyOn","console","mockImplementation","onUpdateNeeded","type","UpdateNeededReasonType","NewClientGroup","setTimeout","toHaveBeenCalledWith","mockRestore","_generations_","_generations_1","generationClient","generations","GenerationProbe","generation","useZeroProviderGeneration","useLayoutEffect","firstGeneration","isCurrent","dropLocalState","hidden","hiddenUntil","MaybeHidden","App","Suspense","fallback","settleServer","settleServer2","settled","acknowledgement","awaitMutationServer","finally","textContent","toContain","resolves","useFakeTimers","_fakeZero_instances_","scheduleReload","events","off","zeroEvents","listen","event","timeout","timeout2","label","timedOut","rejects","toMatchObject","phase","advanceTimersByTimeAsync","toEqual","toContainEqual","status","reasonKey","reason","toHaveBeenCalled","useRealTimers","install","transport","logClassifications","benign","benignLogPatterns","logSink","log","toHaveBeenCalledOnce","retire","second","waitFor","waitForZero","makeTransitionClient","collectClientEvents","client2","mountTransitionClient","el","mountedRoot","unmountTransitionClient","mounted","withoutPageReload","originalLocation","location","restoreLocation","clientA","clientB","collectedA","collectedB","mountedA","mountedB","firstA","firstB","secondA","secondB","isGroupTransitionOpen","allEvents","filter","fireBoth","fireBoth2","settleRemints","settleRemints2","countBefore2","next","slice","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","err","return","countBeforeFirst","third"],"sources":["../../src/createZeroClient.recovery.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -49,7 +49,7 @@ var import_generate_helpers = require("./generate-helpers.cjs");
49
49
  var import_generate_layout = require("./generate-layout.cjs");
50
50
  var import_native_typescript = require("./native-typescript.cjs");
51
51
  const hash = s => (0, import_node_crypto.createHash)("sha256").update(s).digest("hex");
52
- const GENERATOR_CACHE_VERSION = "7";
52
+ const GENERATOR_CACHE_VERSION = "8";
53
53
  const isGeneratorSourceFile = name => name.endsWith(".ts") && !name.endsWith(".d.ts") && !name.endsWith(".test.ts") && !name.endsWith(".spec.ts");
54
54
  function hashInputTree(sourceRoots, generatedDir) {
55
55
  const parts = [];
@@ -619,8 +619,11 @@ async function generateWithProject(options, project) {
619
619
  const layout = (0, import_generate_layout.discoverDataLayout)(project, baseDir, config ? (0, import_node_path.resolve)(config) : void 0);
620
620
  const metadataHash = hash(layout.metadataPaths.map(path => `${path}\0${(0, import_node_fs.readFileSync)(path, "utf8")}`).join("\0"));
621
621
  const databaseSchemaPath = (0, import_node_path.resolve)((0, import_node_path.dirname)(baseDir), "database/schema.ts");
622
- const needsSqliteZeroSchema = (0, import_node_fs.existsSync)(databaseSchemaPath);
623
- const inputHash = hash(`${hashInputTree(layout.sourceRoots, generatedDir)}\0${metadataHash}`);
622
+ const needsDrizzleSchema = (0, import_node_fs.existsSync)(databaseSchemaPath);
623
+ const externalZeroConfigPath = (0, import_node_path.resolve)((0, import_node_path.dirname)(databaseSchemaPath), "drizzle-zero.config.ts");
624
+ const externalZeroConfig = (0, import_node_fs.existsSync)(externalZeroConfigPath) ? (0, import_node_fs.readFileSync)(externalZeroConfigPath, "utf8") : null;
625
+ const needsSqliteZeroSchema = needsDrizzleSchema && externalZeroConfig === null;
626
+ const inputHash = hash(`${hashInputTree(layout.sourceRoots, generatedDir)}\0${metadataHash}\0${externalZeroConfig}`);
624
627
  if (!force && generateCache.__generatorVersion === GENERATOR_CACHE_VERSION && generateCache.__inputHash === inputHash &&
625
628
  // the input hash deliberately skips the generated directory, so it cannot
626
629
  // notice that the outputs themselves moved. existence is not correctness
@@ -650,7 +653,7 @@ async function generateWithProject(options, project) {
650
653
  } catch {
651
654
  return false;
652
655
  }
653
- }) && (0, import_node_fs.existsSync)((0, import_node_path.resolve)(generatedDir, "models.ts")) && (!needsSqliteZeroSchema || (0, import_node_fs.existsSync)((0, import_node_path.resolve)(generatedDir, "schema.ts")))) {
656
+ }) && (0, import_node_fs.existsSync)((0, import_node_path.resolve)(generatedDir, "models.ts")) && (!needsDrizzleSchema || (0, import_node_fs.existsSync)((0, import_node_path.resolve)(generatedDir, "drizzleSchema.ts"))) && (!needsSqliteZeroSchema || (0, import_node_fs.existsSync)((0, import_node_path.resolve)(generatedDir, "schema.ts")))) {
654
657
  let counts = {};
655
658
  try {
656
659
  counts = JSON.parse(generateCache.__counts || "{}");
@@ -679,22 +682,24 @@ async function generateWithProject(options, project) {
679
682
  // managed externally and should not be overwritten.
680
683
  ...(filesWithSchema.length > 0 ? [writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "types.ts"), (0, import_generate_helpers.generateTypesFile)(schemaModules.map(module2 => module2.name))), writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "tables.ts"), (0, import_generate_helpers.generateTablesFile)(schemaModules))] : []), writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "README.md"), (0, import_generate_helpers.generateReadmeFile)())];
681
684
  let filesChanged = writeResults.filter(Boolean).length;
682
- if (needsSqliteZeroSchema) {
685
+ if (needsDrizzleSchema) {
683
686
  const membership = dataMembershipFromLayout(layout);
684
687
  const drizzleSchema = await generateDrizzleSchemaInputFileWithProject({
685
688
  dir: baseDir,
686
689
  schemaImportPath: "../../database/schema",
687
690
  config
688
691
  }, project);
689
- const sqliteSchema = (0, import_generate_helpers.renderDrizzleZeroSqliteSchemaModule)({
690
- importPath: "./drizzleSchema",
691
- tableNames: membership.allTables
692
- });
693
692
  if (writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "drizzleSchema.ts"), drizzleSchema)) {
694
693
  filesChanged++;
695
694
  }
696
- if (writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "schema.ts"), sqliteSchema)) {
697
- filesChanged++;
695
+ if (needsSqliteZeroSchema) {
696
+ const sqliteSchema = (0, import_generate_helpers.renderDrizzleZeroSqliteSchemaModule)({
697
+ importPath: "./drizzleSchema",
698
+ tableNames: membership.allTables
699
+ });
700
+ if (writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "schema.ts"), sqliteSchema)) {
701
+ filesChanged++;
702
+ }
698
703
  }
699
704
  }
700
705
  let queryCount = 0;