on-zero 0.16.5 → 0.16.6

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 (34) hide show
  1. package/dist/cjs/createZeroClient.cjs +58 -23
  2. package/dist/cjs/createZeroClient.connection.test.cjs +94 -3
  3. package/dist/cjs/createZeroClient.connection.test.native.js +110 -11
  4. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  5. package/dist/cjs/createZeroClient.native.js +68 -31
  6. package/dist/cjs/createZeroClient.native.js.map +1 -1
  7. package/dist/cjs/createZeroClient.recovery.test.cjs +41 -0
  8. package/dist/cjs/createZeroClient.recovery.test.native.js +44 -0
  9. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  10. package/dist/cjs/index.native.js.map +1 -1
  11. package/dist/esm/createZeroClient.connection.test.mjs +95 -4
  12. package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
  13. package/dist/esm/createZeroClient.connection.test.native.js +111 -12
  14. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  15. package/dist/esm/createZeroClient.mjs +58 -23
  16. package/dist/esm/createZeroClient.mjs.map +1 -1
  17. package/dist/esm/createZeroClient.native.js +68 -31
  18. package/dist/esm/createZeroClient.native.js.map +1 -1
  19. package/dist/esm/createZeroClient.recovery.test.mjs +42 -1
  20. package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
  21. package/dist/esm/createZeroClient.recovery.test.native.js +45 -1
  22. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/index.mjs.map +1 -1
  25. package/dist/esm/index.native.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/createZeroClient.connection.test.tsx +100 -2
  28. package/src/createZeroClient.recovery.test.tsx +52 -1
  29. package/src/createZeroClient.tsx +110 -59
  30. package/src/index.ts +1 -0
  31. package/types/createZeroClient.d.ts +5 -0
  32. package/types/createZeroClient.d.ts.map +1 -1
  33. package/types/index.d.ts +1 -1
  34. package/types/index.d.ts.map +1 -1
@@ -149,6 +149,20 @@ function createZeroClientInternal({
149
149
  const zeroRuntime = instance.runtime;
150
150
  (0, import_run.setCustomQueries)(customQueries);
151
151
  const DisabledContext = (0, import_react2.createContext)(false);
152
+ const ZeroProviderGenerationContext = (0, import_react2.createContext)(null);
153
+ const zeroProviderGenerations = /* @__PURE__ */new WeakMap();
154
+ function useZeroProviderGeneration() {
155
+ return (0, import_react2.useContext)(ZeroProviderGenerationContext);
156
+ }
157
+ function getZeroProviderGeneration(zeroInstance) {
158
+ const existing = zeroProviderGenerations.get(zeroInstance);
159
+ if (existing) return existing;
160
+ const generation = {
161
+ isCurrent: () => zeroRuntime.zero === zeroInstance
162
+ };
163
+ zeroProviderGenerations.set(zeroInstance, generation);
164
+ return generation;
165
+ }
152
166
  let clientMutators = null;
153
167
  function getClientMutators() {
154
168
  clientMutators ??= (0, import_createMutators.createMutators)({
@@ -468,9 +482,12 @@ function createZeroClientInternal({
468
482
  value: authDataIn ?? {},
469
483
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisabledContext.Provider, {
470
484
  value: "empty",
471
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroContext.Provider, {
485
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ZeroContext.Provider, {
472
486
  value: DISABLED_ZERO_STUB,
473
- children: [null, null, children]
487
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ZeroProviderGenerationContext.Provider, {
488
+ value: null,
489
+ children: [null, null, children]
490
+ })
474
491
  })
475
492
  })
476
493
  });
@@ -528,14 +545,20 @@ function createZeroClientInternal({
528
545
  ...scopedProps
529
546
  }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, transport, benignLogPatterns?.map(pattern => typeof pattern === "string" ? pattern : `/${pattern.source}/${pattern.flags}`), remintGeneration]);
530
547
  let liveInstance;
548
+ if (disable && cachedZero && cachedZero.key !== instanceKey) {
549
+ retiredZero.set(cachedZero.key, cachedZero);
550
+ cachedZero = null;
551
+ }
552
+ let activeZero = null;
531
553
  if (!disable) {
532
554
  if (cachedZero?.key !== instanceKey) {
533
- if (cachedZero) retiredZero.set(cachedZero.key, cachedZero.instance);
555
+ if (cachedZero) retiredZero.set(cachedZero.key, cachedZero);
534
556
  const revived = retiredZero.get(instanceKey);
535
557
  retiredZero.delete(instanceKey);
536
- cachedZero = {
558
+ const nextCachedZero = revived ?? {
537
559
  key: instanceKey,
538
- instance: revived ?? constructZeroInstance({
560
+ auth,
561
+ instance: constructZeroInstance({
539
562
  options: scopedProps,
540
563
  transport,
541
564
  beforeReload,
@@ -544,8 +567,10 @@ function createZeroClientInternal({
544
567
  benignLogPatterns
545
568
  })
546
569
  };
570
+ cachedZero = nextCachedZero;
547
571
  }
548
- liveInstance = cachedZero.instance;
572
+ activeZero = cachedZero;
573
+ liveInstance = activeZero.instance;
549
574
  }
550
575
  (0, import_react2.useLayoutEffect)(() => {
551
576
  if (disable && zeroRuntime.zero) {
@@ -557,30 +582,32 @@ function createZeroClientInternal({
557
582
  if (retiredZero.size === 0) return;
558
583
  const outgoing = [...retiredZero.values()];
559
584
  retiredZero.clear();
560
- for (const zeroInstance of outgoing) zeroInstance.close();
585
+ for (const {
586
+ instance: zeroInstance
587
+ } of outgoing) zeroInstance.close();
561
588
  });
562
- const prevAuthRef = (0, import_react2.useRef)(auth);
563
589
  (0, import_react2.useEffect)(() => {
564
- const prevAuth = prevAuthRef.current;
565
- prevAuthRef.current = auth;
566
- if (liveInstance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
567
- liveInstance.connection.connect({
568
- auth
569
- });
570
- }
571
- }, [liveInstance, auth]);
590
+ if (!activeZero || typeof auth !== "string" || activeZero.auth === auth) return;
591
+ activeZero.auth = auth;
592
+ activeZero.instance.connection.connect({
593
+ auth
594
+ });
595
+ }, [activeZero, auth]);
572
596
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
573
597
  value: authData,
574
598
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisabledContext.Provider, {
575
599
  value: liveInstance ? false : "empty",
576
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroContext.Provider, {
600
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ZeroContext.Provider, {
577
601
  value: liveInstance ?? DISABLED_ZERO_STUB,
578
- children: [liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}) : null, liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
579
- zeroEvents,
580
- refreshAuth,
581
- exposeDataset: connectionDataset,
582
- datasetCacheUrl: connectionDataset ? props.cacheURL ?? props.server : void 0
583
- }) : null, children]
602
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ZeroProviderGenerationContext.Provider, {
603
+ value: liveInstance ? getZeroProviderGeneration(liveInstance) : null,
604
+ children: [liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}) : null, liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
605
+ zeroEvents,
606
+ refreshAuth,
607
+ exposeDataset: connectionDataset,
608
+ datasetCacheUrl: connectionDataset ? props.cacheURL ?? props.server : void 0
609
+ }) : null, children]
610
+ })
584
611
  })
585
612
  })
586
613
  });
@@ -589,6 +616,13 @@ function createZeroClientInternal({
589
616
  const SetZeroInstance = () => {
590
617
  const zeroInstance = (0, import_react.useZero)();
591
618
  publishZeroInstance(zeroInstance);
619
+ (0, import_react2.useLayoutEffect)(() => {
620
+ publishZeroInstance(zeroInstance);
621
+ return () => {
622
+ if (!unpublishZeroInstance(zeroInstance)) return;
623
+ mutationLifecycle.fence();
624
+ };
625
+ }, [zeroInstance]);
592
626
  (0, import_react2.useEffect)(() => {
593
627
  zeroInstanceVersion?.emit(zeroInstanceVersion.value + 1);
594
628
  }, [zeroInstance]);
@@ -788,6 +822,7 @@ function createZeroClientInternal({
788
822
  useQueryDirect,
789
823
  usePermission,
790
824
  usePermissionDirect,
825
+ useZeroProviderGeneration,
791
826
  zero,
792
827
  preload,
793
828
  getQuery,
@@ -23,6 +23,10 @@ const fakeZero = import_vitest.vi.hoisted(() => {
23
23
  }
24
24
  }
25
25
  class FakeZero {
26
+ constructor(options) {
27
+ this.options = options;
28
+ instances.push(this);
29
+ }
26
30
  context = {};
27
31
  connection = {
28
32
  state: new FakeConnectionState({
@@ -39,9 +43,6 @@ const fakeZero = import_vitest.vi.hoisted(() => {
39
43
  cleanup: () => {},
40
44
  complete: Promise.resolve()
41
45
  }));
42
- constructor() {
43
- instances.push(this);
44
- }
45
46
  }
46
47
  const instances = [];
47
48
  return {
@@ -160,6 +161,96 @@ async function mount(extraProps = {}, userID = "conn") {
160
161
  });
161
162
  off();
162
163
  });
164
+ (0, import_vitest.test)("a disabled logout cannot revive its closed authenticated instance", async () => {
165
+ const first = await mount({
166
+ auth: "old-token"
167
+ }, "conn-auth-cycle");
168
+ await (0, import_react.act)(async () => {
169
+ root?.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
170
+ cacheURL: "http://127.0.0.1:7788/zero",
171
+ userID: "conn-auth-cycle",
172
+ auth: void 0,
173
+ disable: true,
174
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
175
+ children: "ok"
176
+ })
177
+ }));
178
+ await Promise.resolve();
179
+ });
180
+ await (0, import_react.act)(async () => {
181
+ root?.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
182
+ cacheURL: "http://127.0.0.1:7788/zero",
183
+ userID: "conn-auth-cycle",
184
+ auth: "fresh-token",
185
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
186
+ children: "ok"
187
+ })
188
+ }));
189
+ await Promise.resolve();
190
+ });
191
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(2);
192
+ (0, import_vitest.expect)(fakeZero.instances[1]).not.toBe(first);
193
+ (0, import_vitest.expect)(fakeZero.instances[1]?.options?.auth).toBe("fresh-token");
194
+ });
195
+ (0, import_vitest.test)("a remounted provider reconnects its cached instance when auth changed", async () => {
196
+ const instance = await mount({
197
+ auth: "old-token"
198
+ }, "conn-auth-remount");
199
+ await (0, import_react.act)(async () => {
200
+ root?.unmount();
201
+ root = null;
202
+ await Promise.resolve();
203
+ });
204
+ root = (0, import_client.createRoot)(container);
205
+ await (0, import_react.act)(async () => {
206
+ root?.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
207
+ cacheURL: "http://127.0.0.1:7788/zero",
208
+ userID: "conn-auth-remount",
209
+ auth: "fresh-token",
210
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
211
+ children: "ok"
212
+ })
213
+ }));
214
+ await Promise.resolve();
215
+ });
216
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(1);
217
+ (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({
218
+ auth: "fresh-token"
219
+ });
220
+ });
221
+ (0, import_vitest.test)("a double-invoked render still reconnects on a changed token", async () => {
222
+ root = (0, import_client.createRoot)(container);
223
+ await (0, import_react.act)(async () => {
224
+ root?.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.StrictMode, {
225
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
226
+ cacheURL: "http://127.0.0.1:7788/zero",
227
+ userID: "conn-auth-strict",
228
+ auth: "old-token",
229
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
230
+ children: "ok"
231
+ })
232
+ })
233
+ }));
234
+ await Promise.resolve();
235
+ });
236
+ const instance = fakeZero.instances.at(-1);
237
+ await (0, import_react.act)(async () => {
238
+ root?.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.StrictMode, {
239
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
240
+ cacheURL: "http://127.0.0.1:7788/zero",
241
+ userID: "conn-auth-strict",
242
+ auth: "fresh-token",
243
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
244
+ children: "ok"
245
+ })
246
+ })
247
+ }));
248
+ await Promise.resolve();
249
+ });
250
+ (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({
251
+ auth: "fresh-token"
252
+ });
253
+ });
163
254
  (0, import_vitest.test)("stale-poke error reconnects instead of surfacing a fatal error", async () => {
164
255
  const events = [];
165
256
  const off = client.zeroEvents.listen(event => {
@@ -81,32 +81,40 @@ var fakeZero = import_vitest.vi.hoisted(function () {
81
81
  }]);
82
82
  return FakeConnectionState2;
83
83
  }();
84
- var FakeZero = function FakeZero2() {
84
+ var FakeZero = function FakeZero2(options) {
85
85
  "use strict";
86
86
 
87
87
  _class_call_check(this, FakeZero2);
88
- _define_property(this, "context", {});
89
- _define_property(this, "connection", {
88
+ _define_property(this, "options", void 0);
89
+ _define_property(this, "context", void 0);
90
+ _define_property(this, "connection", void 0);
91
+ _define_property(this, "delete", void 0);
92
+ _define_property(this, "close", void 0);
93
+ _define_property(this, "run", void 0);
94
+ _define_property(this, "preload", void 0);
95
+ this.options = options;
96
+ this.context = {};
97
+ this.connection = {
90
98
  state: new FakeConnectionState({
91
99
  name: "connecting"
92
100
  }),
93
101
  connect: import_vitest.vi.fn(async function () {})
94
- });
95
- _define_property(this, "delete", import_vitest.vi.fn(async function () {
102
+ };
103
+ this.delete = import_vitest.vi.fn(async function () {
96
104
  return {
97
105
  errors: []
98
106
  };
99
- }));
100
- _define_property(this, "close", import_vitest.vi.fn());
101
- _define_property(this, "run", import_vitest.vi.fn(async function () {
107
+ });
108
+ this.close = import_vitest.vi.fn();
109
+ this.run = import_vitest.vi.fn(async function () {
102
110
  return [];
103
- }));
104
- _define_property(this, "preload", import_vitest.vi.fn(function () {
111
+ });
112
+ this.preload = import_vitest.vi.fn(function () {
105
113
  return {
106
114
  cleanup: function cleanup() {},
107
115
  complete: Promise.resolve()
108
116
  };
109
- }));
117
+ });
110
118
  instances.push(this);
111
119
  };
112
120
  var instances = [];
@@ -232,6 +240,97 @@ async function mount() {
232
240
  });
233
241
  off();
234
242
  });
243
+ (0, import_vitest.test)("a disabled logout cannot revive its closed authenticated instance", async function () {
244
+ var _fakeZero_instances__options, _fakeZero_instances_;
245
+ var first = await mount({
246
+ auth: "old-token"
247
+ }, "conn-auth-cycle");
248
+ await (0, import_react.act)(async function () {
249
+ root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
250
+ cacheURL: "http://127.0.0.1:7788/zero",
251
+ userID: "conn-auth-cycle",
252
+ auth: void 0,
253
+ disable: true,
254
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
255
+ children: "ok"
256
+ })
257
+ }));
258
+ await Promise.resolve();
259
+ });
260
+ await (0, import_react.act)(async function () {
261
+ root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
262
+ cacheURL: "http://127.0.0.1:7788/zero",
263
+ userID: "conn-auth-cycle",
264
+ auth: "fresh-token",
265
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
266
+ children: "ok"
267
+ })
268
+ }));
269
+ await Promise.resolve();
270
+ });
271
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(2);
272
+ (0, import_vitest.expect)(fakeZero.instances[1]).not.toBe(first);
273
+ (0, import_vitest.expect)((_fakeZero_instances_ = fakeZero.instances[1]) === null || _fakeZero_instances_ === void 0 ? void 0 : (_fakeZero_instances__options = _fakeZero_instances_.options) === null || _fakeZero_instances__options === void 0 ? void 0 : _fakeZero_instances__options.auth).toBe("fresh-token");
274
+ });
275
+ (0, import_vitest.test)("a remounted provider reconnects its cached instance when auth changed", async function () {
276
+ var instance = await mount({
277
+ auth: "old-token"
278
+ }, "conn-auth-remount");
279
+ await (0, import_react.act)(async function () {
280
+ root === null || root === void 0 ? void 0 : root.unmount();
281
+ root = null;
282
+ await Promise.resolve();
283
+ });
284
+ root = (0, import_client.createRoot)(container);
285
+ await (0, import_react.act)(async function () {
286
+ root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
287
+ cacheURL: "http://127.0.0.1:7788/zero",
288
+ userID: "conn-auth-remount",
289
+ auth: "fresh-token",
290
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
291
+ children: "ok"
292
+ })
293
+ }));
294
+ await Promise.resolve();
295
+ });
296
+ (0, import_vitest.expect)(fakeZero.instances).toHaveLength(1);
297
+ (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({
298
+ auth: "fresh-token"
299
+ });
300
+ });
301
+ (0, import_vitest.test)("a double-invoked render still reconnects on a changed token", async function () {
302
+ root = (0, import_client.createRoot)(container);
303
+ await (0, import_react.act)(async function () {
304
+ root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.StrictMode, {
305
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
306
+ cacheURL: "http://127.0.0.1:7788/zero",
307
+ userID: "conn-auth-strict",
308
+ auth: "old-token",
309
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
310
+ children: "ok"
311
+ })
312
+ })
313
+ }));
314
+ await Promise.resolve();
315
+ });
316
+ var instance = fakeZero.instances.at(-1);
317
+ await (0, import_react.act)(async function () {
318
+ root === null || root === void 0 ? void 0 : root.render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.StrictMode, {
319
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(client.ProvideZero, {
320
+ cacheURL: "http://127.0.0.1:7788/zero",
321
+ userID: "conn-auth-strict",
322
+ auth: "fresh-token",
323
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
324
+ children: "ok"
325
+ })
326
+ })
327
+ }));
328
+ await Promise.resolve();
329
+ });
330
+ (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({
331
+ auth: "fresh-token"
332
+ });
333
+ });
235
334
  (0, import_vitest.test)("stale-poke error reconnects instead of surfacing a fatal error", async function () {
236
335
  var events = [];
237
336
  var off = client.zeroEvents.listen(function (event) {
@@ -1 +1 @@
1
- {"version":3,"names":["import_jsx_runtime","require","import_zero","import_react","import_client","import_vitest","import_createZeroClient","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","fakeZero","vi","hoisted","FakeConnectionState","FakeConnectionState2","initial","_this","Set","cb","listeners","add","delete","current","set","next","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","err","return","FakeZero","FakeZero2","state","name","connect","fn","errors","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","document","createElement","dataset","zeroState","zeroConnected","zeroReason","afterEach","act","unmount","mount","extraProps","arguments","userID","createRoot","render","jsx","ProvideZero","cacheURL","children","at","test","readinessClient","ready","waitForZero","expect","toBe","install","transport","toHaveBeenCalledOnce","toHaveBeenCalledWith","refreshAuth","events","off","zeroEvents","listen","event","connection","reason","toHaveBeenCalledTimes","auth","toContainEqual","type","reasonKey","message","some","status"],"sources":["../../src/createZeroClient.connection.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","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","fakeZero","vi","hoisted","FakeConnectionState","FakeConnectionState2","initial","_this","Set","cb","listeners","add","delete","current","set","next","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","err","return","FakeZero","FakeZero2","options","context","connection","state","name","connect","fn","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","document","createElement","dataset","zeroState","zeroConnected","zeroReason","afterEach","act","unmount","mount","extraProps","arguments","userID","createRoot","render","jsx","ProvideZero","cacheURL","children","at","test","readinessClient","ready","waitForZero","expect","toBe","install","transport","toHaveBeenCalledOnce","toHaveBeenCalledWith","refreshAuth","events","off","zeroEvents","listen","event","reason","toHaveBeenCalledTimes","auth","toContainEqual","type","reasonKey","message","_fakeZero_instances__options","_fakeZero_instances_","first","disable","toHaveLength","not","StrictMode","some","status"],"sources":["../../src/createZeroClient.connection.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -254,6 +254,22 @@ function createZeroClientInternal(param) {
254
254
  var zeroRuntime = instance.runtime;
255
255
  (0, import_run.setCustomQueries)(customQueries);
256
256
  var DisabledContext = /* @__PURE__ */(0, import_react2.createContext)(false);
257
+ var ZeroProviderGenerationContext = /* @__PURE__ */(0, import_react2.createContext)(null);
258
+ var zeroProviderGenerations = /* @__PURE__ */new WeakMap();
259
+ function useZeroProviderGeneration() {
260
+ return (0, import_react2.useContext)(ZeroProviderGenerationContext);
261
+ }
262
+ function getZeroProviderGeneration(zeroInstance) {
263
+ var existing = zeroProviderGenerations.get(zeroInstance);
264
+ if (existing) return existing;
265
+ var generation = {
266
+ isCurrent: function isCurrent() {
267
+ return zeroRuntime.zero === zeroInstance;
268
+ }
269
+ };
270
+ zeroProviderGenerations.set(zeroInstance, generation);
271
+ return generation;
272
+ }
257
273
  var clientMutators = null;
258
274
  function getClientMutators() {
259
275
  clientMutators !== null && clientMutators !== void 0 ? clientMutators : clientMutators = (0, import_createMutators.createMutators)({
@@ -642,17 +658,20 @@ function createZeroClientInternal(param) {
642
658
  value: authDataIn !== null && authDataIn !== void 0 ? authDataIn : {},
643
659
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisabledContext.Provider, {
644
660
  value: "empty",
645
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroContext.Provider, {
661
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ZeroContext.Provider, {
646
662
  value: DISABLED_ZERO_STUB,
647
- children: [
648
- /* match the active path's 3-child layout exactly so descendant
649
- useId() lands at the same fiber index in both branches. the
650
- two leading nulls reserve the SetZeroInstance + ConnectionMonitor
651
- slots; the active path puts those components there only once
652
- an instance exists. without these placeholder slots, children
653
- would sit at child index 0 here but index 2 in the active
654
- path, shifting every descendant useId. */
655
- null, null, children]
663
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ZeroProviderGenerationContext.Provider, {
664
+ value: null,
665
+ children: [
666
+ /* match the active path's 3-child layout exactly so descendant
667
+ useId() lands at the same fiber index in both branches. the
668
+ two leading nulls reserve the SetZeroInstance + ConnectionMonitor
669
+ slots; the active path puts those components there only once
670
+ an instance exists. without these placeholder slots, children
671
+ would sit at child index 0 here but index 2 in the active
672
+ path, shifting every descendant useId. */
673
+ null, null, children]
674
+ })
656
675
  })
657
676
  })
658
677
  });
@@ -727,14 +746,20 @@ function createZeroClientInternal(param) {
727
746
  return typeof pattern === "string" ? pattern : `/${pattern.source}/${pattern.flags}`;
728
747
  }), remintGeneration]);
729
748
  var liveInstance;
749
+ if (disable && cachedZero && cachedZero.key !== instanceKey) {
750
+ retiredZero.set(cachedZero.key, cachedZero);
751
+ cachedZero = null;
752
+ }
753
+ var activeZero = null;
730
754
  if (!disable) {
731
755
  if ((cachedZero === null || cachedZero === void 0 ? void 0 : cachedZero.key) !== instanceKey) {
732
- if (cachedZero) retiredZero.set(cachedZero.key, cachedZero.instance);
756
+ if (cachedZero) retiredZero.set(cachedZero.key, cachedZero);
733
757
  var revived = retiredZero.get(instanceKey);
734
758
  retiredZero.delete(instanceKey);
735
- cachedZero = {
759
+ var nextCachedZero = revived !== null && revived !== void 0 ? revived : {
736
760
  key: instanceKey,
737
- instance: revived !== null && revived !== void 0 ? revived : constructZeroInstance({
761
+ auth,
762
+ instance: constructZeroInstance({
738
763
  options: scopedProps,
739
764
  transport,
740
765
  beforeReload,
@@ -743,8 +768,10 @@ function createZeroClientInternal(param) {
743
768
  benignLogPatterns
744
769
  })
745
770
  };
771
+ cachedZero = nextCachedZero;
746
772
  }
747
- liveInstance = cachedZero.instance;
773
+ activeZero = cachedZero;
774
+ liveInstance = activeZero.instance;
748
775
  }
749
776
  (0, import_react2.useLayoutEffect)(function () {
750
777
  if (disable && zeroRuntime.zero) {
@@ -761,7 +788,9 @@ function createZeroClientInternal(param) {
761
788
  _iteratorError3 = void 0;
762
789
  try {
763
790
  for (var _iterator3 = outgoing[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
764
- var zeroInstance = _step3.value;
791
+ var {
792
+ instance: zeroInstance
793
+ } = _step3.value;
765
794
  zeroInstance.close();
766
795
  }
767
796
  } catch (err) {
@@ -779,28 +808,28 @@ function createZeroClientInternal(param) {
779
808
  }
780
809
  }
781
810
  });
782
- var prevAuthRef = (0, import_react2.useRef)(auth);
783
811
  (0, import_react2.useEffect)(function () {
784
- var prevAuth = prevAuthRef.current;
785
- prevAuthRef.current = auth;
786
- if (liveInstance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
787
- liveInstance.connection.connect({
788
- auth
789
- });
790
- }
791
- }, [liveInstance, auth]);
812
+ if (!activeZero || typeof auth !== "string" || activeZero.auth === auth) return;
813
+ activeZero.auth = auth;
814
+ activeZero.instance.connection.connect({
815
+ auth
816
+ });
817
+ }, [activeZero, auth]);
792
818
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
793
819
  value: authData,
794
820
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisabledContext.Provider, {
795
821
  value: liveInstance ? false : "empty",
796
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroContext.Provider, {
822
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ZeroContext.Provider, {
797
823
  value: liveInstance !== null && liveInstance !== void 0 ? liveInstance : DISABLED_ZERO_STUB,
798
- children: [liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}) : null, liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
799
- zeroEvents,
800
- refreshAuth,
801
- exposeDataset: connectionDataset,
802
- datasetCacheUrl: connectionDataset ? (_props_cacheURL = props.cacheURL) !== null && _props_cacheURL !== void 0 ? _props_cacheURL : props.server : void 0
803
- }) : null, children]
824
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ZeroProviderGenerationContext.Provider, {
825
+ value: liveInstance ? getZeroProviderGeneration(liveInstance) : null,
826
+ children: [liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}) : null, liveInstance ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
827
+ zeroEvents,
828
+ refreshAuth,
829
+ exposeDataset: connectionDataset,
830
+ datasetCacheUrl: connectionDataset ? (_props_cacheURL = props.cacheURL) !== null && _props_cacheURL !== void 0 ? _props_cacheURL : props.server : void 0
831
+ }) : null, children]
832
+ })
804
833
  })
805
834
  })
806
835
  });
@@ -809,6 +838,13 @@ function createZeroClientInternal(param) {
809
838
  var SetZeroInstance = function SetZeroInstance2() {
810
839
  var zeroInstance = (0, import_react.useZero)();
811
840
  publishZeroInstance(zeroInstance);
841
+ (0, import_react2.useLayoutEffect)(function () {
842
+ publishZeroInstance(zeroInstance);
843
+ return function () {
844
+ if (!unpublishZeroInstance(zeroInstance)) return;
845
+ mutationLifecycle.fence();
846
+ };
847
+ }, [zeroInstance]);
812
848
  (0, import_react2.useEffect)(function () {
813
849
  zeroInstanceVersion === null || zeroInstanceVersion === void 0 ? void 0 : zeroInstanceVersion.emit(zeroInstanceVersion.value + 1);
814
850
  }, [zeroInstance]);
@@ -1017,6 +1053,7 @@ function createZeroClientInternal(param) {
1017
1053
  useQueryDirect,
1018
1054
  usePermission,
1019
1055
  usePermissionDirect,
1056
+ useZeroProviderGeneration,
1020
1057
  zero,
1021
1058
  preload,
1022
1059
  getQuery,