on-zero 0.9.2 → 0.9.4

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 (35) hide show
  1. package/dist/cjs/createZeroClient.cjs +176 -100
  2. package/dist/cjs/createZeroClient.connection.test.cjs +32 -0
  3. package/dist/cjs/createZeroClient.connection.test.native.js +34 -0
  4. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  5. package/dist/cjs/createZeroClient.headless.test.cjs +33 -0
  6. package/dist/cjs/createZeroClient.headless.test.native.js +38 -0
  7. package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -0
  8. package/dist/cjs/createZeroClient.native.js +207 -132
  9. package/dist/cjs/createZeroClient.native.js.map +1 -1
  10. package/dist/cjs/zeroRunner.cjs +1 -1
  11. package/dist/cjs/zeroRunner.native.js +1 -1
  12. package/dist/esm/createZeroClient.connection.test.mjs +32 -0
  13. package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
  14. package/dist/esm/createZeroClient.connection.test.native.js +34 -0
  15. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  16. package/dist/esm/createZeroClient.headless.test.mjs +34 -0
  17. package/dist/esm/createZeroClient.headless.test.mjs.map +1 -0
  18. package/dist/esm/createZeroClient.headless.test.native.js +36 -0
  19. package/dist/esm/createZeroClient.headless.test.native.js.map +1 -0
  20. package/dist/esm/createZeroClient.mjs +178 -102
  21. package/dist/esm/createZeroClient.mjs.map +1 -1
  22. package/dist/esm/createZeroClient.native.js +209 -134
  23. package/dist/esm/createZeroClient.native.js.map +1 -1
  24. package/dist/esm/zeroRunner.mjs +1 -1
  25. package/dist/esm/zeroRunner.mjs.map +1 -1
  26. package/dist/esm/zeroRunner.native.js +1 -1
  27. package/package.json +1 -1
  28. package/src/createZeroClient.connection.test.tsx +38 -0
  29. package/src/createZeroClient.headless.test.tsx +47 -0
  30. package/src/createZeroClient.tsx +323 -218
  31. package/src/zeroRunner.ts +1 -1
  32. package/types/createZeroClient.d.ts +24 -0
  33. package/types/createZeroClient.d.ts.map +1 -1
  34. package/types/createZeroClient.headless.test.d.ts +2 -0
  35. package/types/createZeroClient.headless.test.d.ts.map +1 -0
@@ -146,8 +146,79 @@ function createZeroClientInternal({
146
146
  });
147
147
  (0, import_run.setCustomQueries)(customQueries);
148
148
  const DisabledContext = (0, import_react2.createContext)(false);
149
+ let clientMutators = null;
150
+ function getClientMutators() {
151
+ clientMutators ??= (0, import_createMutators.createMutators)({
152
+ models,
153
+ environment: "client",
154
+ authData: null,
155
+ can: permissionsHelpers.can
156
+ });
157
+ return clientMutators;
158
+ }
159
+ function constructZeroInstance({
160
+ options,
161
+ transport,
162
+ beforeReload,
163
+ scheduleReload,
164
+ guardStorage,
165
+ benignLogPatterns
166
+ }) {
167
+ if (transport) {
168
+ const serverURL = options.cacheURL ?? options.server;
169
+ if (typeof serverURL !== "string") {
170
+ throw new Error(`client transport requires a server URL`);
171
+ }
172
+ transport.install(serverURL);
173
+ }
174
+ const instanceRef = {
175
+ current: null
176
+ };
177
+ const recoveryDeps = {
178
+ deleteLocalState: () => deleteZeroInstance(instanceRef.current),
179
+ zeroEvents,
180
+ beforeReload,
181
+ scheduleReload,
182
+ guardStorage,
183
+ benignLogPatterns: [...(transport?.logClassifications?.benign ?? []), ...(benignLogPatterns ?? [])],
184
+ onRecovery: () => mutationLifecycle.fence()
185
+ };
186
+ const recovery = (0, import_recoverZeroClient.makeZeroRecovery)(recoveryDeps);
187
+ const createdInstance = new import_zero.Zero({
188
+ kvStore: "mem",
189
+ ...options,
190
+ schema,
191
+ // @ts-expect-error same erasure ZeroProvider needed
192
+ mutators: getClientMutators(),
193
+ // when the consumer brings no logSink, install ours: it preserves Zero's
194
+ // console output AND watches for the local-store-lost signature. a
195
+ // consumer with its own logSink owns log-based recovery (no double-fire
196
+ // with e.g. soot's origin-gated recovery).
197
+ logSink: options.logSink ?? (0, import_recoverZeroClient.composeRecoveryLogSink)(recoveryDeps),
198
+ // consumer handlers win; otherwise on-zero's default self-healing
199
+ // recovery covers EVERY reason (drop local state + reload, guarded) —
200
+ // passing these to Zero disables its built-in reload, so any reason we
201
+ // left unhandled would fatal-blank the app forever.
202
+ onUpdateNeeded: options.onUpdateNeeded ?? recovery.onUpdateNeeded,
203
+ onClientStateNotFound: options.onClientStateNotFound ?? recovery.onClientStateNotFound
204
+ });
205
+ instanceRef.current = createdInstance;
206
+ return createdInstance;
207
+ }
149
208
  let latestZeroInstance = null;
150
209
  const zeroReadyWaiters = /* @__PURE__ */new Set();
210
+ function publishZeroInstance(zeroInstance) {
211
+ if (zeroInstance === latestZeroInstance) return false;
212
+ latestZeroInstance = zeroInstance;
213
+ mutationLifecycle.activate();
214
+ const runner = (query, options) => zeroInstance.run(query, options);
215
+ instance.runner = runner;
216
+ (0, import_zeroRunner.setRunner)(runner);
217
+ const waiters = [...zeroReadyWaiters];
218
+ zeroReadyWaiters.clear();
219
+ for (const onReady of waiters) onReady(zeroInstance);
220
+ return true;
221
+ }
151
222
  function waitForZero({
152
223
  signal
153
224
  } = {}) {
@@ -402,14 +473,6 @@ function createZeroClientInternal({
402
473
  }
403
474
  const authData = authDataIn ?? stableAuthDataRef.current ?? null;
404
475
  (0, import_state.setAuthData)(authData);
405
- const mutators = (0, import_react2.useMemo)(() => {
406
- return (0, import_createMutators.createMutators)({
407
- models,
408
- environment: "client",
409
- authData: null,
410
- can: permissionsHelpers.can
411
- });
412
- }, []);
413
476
  const hostScope = (0, import_hostStorageScope.readHostStorageScope)();
414
477
  const scopedProps = hostScope ? {
415
478
  ...props,
@@ -453,54 +516,22 @@ function createZeroClientInternal({
453
516
  }
454
517
  let cached = cachedZero;
455
518
  const options = scopedProps;
456
- if (transport) {
457
- const serverURL = options.cacheURL ?? options.server;
458
- if (typeof serverURL !== "string") {
459
- throw new Error(`client transport requires a server URL`);
460
- }
461
- transport.install(serverURL);
462
- }
463
519
  if (cached?.key !== instanceKey) {
464
520
  if (cached) {
465
521
  clearZeroInstanceReferences(cached.instance);
466
522
  mutationLifecycle.fence();
467
523
  cached.instance.close();
468
524
  }
469
- const instanceRef = {
470
- current: null
471
- };
472
- const recoveryDeps = {
473
- deleteLocalState: () => deleteZeroInstance(instanceRef.current),
474
- zeroEvents,
475
- beforeReload,
476
- scheduleReload,
477
- guardStorage,
478
- benignLogPatterns: [...(transport?.logClassifications?.benign ?? []), ...(benignLogPatterns ?? [])],
479
- onRecovery: () => mutationLifecycle.fence()
480
- };
481
- const recovery = (0, import_recoverZeroClient.makeZeroRecovery)(recoveryDeps);
482
- const createdInstance = new import_zero.Zero({
483
- kvStore: "mem",
484
- ...options,
485
- schema,
486
- // @ts-expect-error same erasure ZeroProvider needed
487
- mutators,
488
- // when the consumer brings no logSink, install ours: it preserves
489
- // Zero's console output AND watches for the local-store-lost signature.
490
- // a consumer with its own logSink owns log-based recovery (no
491
- // double-fire with e.g. soot's origin-gated recovery).
492
- logSink: options.logSink ?? (0, import_recoverZeroClient.composeRecoveryLogSink)(recoveryDeps),
493
- // consumer handlers win; otherwise on-zero's default self-healing
494
- // recovery covers EVERY reason (drop local state + reload, guarded) —
495
- // passing these to Zero disables its built-in reload, so any reason we
496
- // left unhandled would fatal-blank the app forever.
497
- onUpdateNeeded: options.onUpdateNeeded ?? recovery.onUpdateNeeded,
498
- onClientStateNotFound: options.onClientStateNotFound ?? recovery.onClientStateNotFound
499
- });
500
- instanceRef.current = createdInstance;
501
525
  cached = {
502
526
  key: instanceKey,
503
- instance: createdInstance
527
+ instance: constructZeroInstance({
528
+ options,
529
+ transport,
530
+ beforeReload,
531
+ scheduleReload,
532
+ guardStorage,
533
+ benignLogPatterns
534
+ })
504
535
  };
505
536
  cachedZero = cached;
506
537
  }
@@ -536,39 +567,66 @@ function createZeroClientInternal({
536
567
  const ProvideZero = import_platform.IS_SERVER_RUNTIME ? ProvideZeroServer : ProvideZeroClient;
537
568
  const SetZeroInstance = () => {
538
569
  const zeroInstance = (0, import_react.useZero)();
539
- if (zeroInstance !== latestZeroInstance) {
540
- latestZeroInstance = zeroInstance;
541
- mutationLifecycle.activate();
542
- const runner = (query, options) => zeroInstance.run(query, options);
543
- instance.runner = runner;
544
- (0, import_zeroRunner.setRunner)(runner);
545
- const waiters = [...zeroReadyWaiters];
546
- zeroReadyWaiters.clear();
547
- for (const onReady of waiters) onReady(zeroInstance);
548
- }
570
+ publishZeroInstance(zeroInstance);
549
571
  (0, import_react2.useEffect)(() => {
550
572
  zeroInstanceVersion?.emit(zeroInstanceVersion.value + 1);
551
573
  }, [zeroInstance]);
552
574
  return null;
553
575
  };
554
- const ConnectionMonitor = (0, import_react2.memo)(({
555
- zeroEvents: zeroEvents2,
556
- refreshAuth,
557
- exposeDataset,
558
- datasetCacheUrl
559
- }) => {
560
- const zeroInstance = (0, import_react.useZero)();
561
- const state = (0, import_react.useConnectionState)();
562
- const prevState = (0, import_react2.useRef)(state.name);
563
- const hasConnectedRef = (0, import_react2.useRef)(false);
564
- const currentReconnect = zeroEvents2.value?.type === "reconnect" && zeroEvents2.value.status !== "connected" ? zeroEvents2.value : null;
565
- const reconnectRef = (0, import_react2.useRef)(currentReconnect ? {
576
+ function connectHeadless(props) {
577
+ const {
578
+ authData,
579
+ transport,
580
+ beforeReload,
581
+ scheduleReload,
582
+ guardStorage,
583
+ benignLogPatterns,
584
+ refreshAuth,
585
+ ...options
586
+ } = props;
587
+ (0, import_state.setAuthData)(authData ?? null);
588
+ const zeroInstance = constructZeroInstance({
589
+ options,
590
+ transport,
591
+ beforeReload,
592
+ scheduleReload,
593
+ guardStorage,
594
+ benignLogPatterns
595
+ });
596
+ publishZeroInstance(zeroInstance);
597
+ zeroInstanceVersion?.emit(zeroInstanceVersion.value + 1);
598
+ const unwatch = watchZeroConnection({
599
+ zeroInstance,
600
+ refreshAuth
601
+ });
602
+ return {
603
+ zero: zeroInstance,
604
+ close: async () => {
605
+ unwatch();
606
+ clearZeroInstanceReferences(zeroInstance);
607
+ mutationLifecycle.fence();
608
+ await zeroInstance.close();
609
+ }
610
+ };
611
+ }
612
+ function watchZeroConnection(args) {
613
+ const {
614
+ zeroInstance,
615
+ refreshAuth,
616
+ exposeDataset,
617
+ datasetCacheUrl
618
+ } = args;
619
+ let prevState = zeroInstance.connection.state.current.name;
620
+ let hasConnected = false;
621
+ const currentReconnect = zeroEvents.value?.type === "reconnect" && zeroEvents.value.status !== "connected" ? zeroEvents.value : null;
622
+ let reconnect = currentReconnect ? {
566
623
  reasonKey: currentReconnect.reasonKey,
567
624
  reason: currentReconnect.reason
568
- } : null);
569
- const recoverableErrorRef = (0, import_react2.useRef)(null);
570
- const needsAuthRef = (0, import_react2.useRef)(false);
571
- (0, import_react2.useEffect)(() => {
625
+ } : null;
626
+ let recoverableError = null;
627
+ let needsAuth = false;
628
+ const handle = () => {
629
+ const state = zeroInstance.connection.state.current;
572
630
  const name = state.name;
573
631
  const reason = "reason" in state && typeof state.reason === "string" ? state.reason : "";
574
632
  if (exposeDataset && typeof document !== "undefined" && document.body) {
@@ -578,10 +636,10 @@ function createZeroClientInternal({
578
636
  if (name === "connected") document.body.dataset.zeroConnected = "true";else delete document.body.dataset.zeroConnected;
579
637
  }
580
638
  if (name === "connected") {
581
- hasConnectedRef.current = true;
582
- recoverableErrorRef.current = null;
583
- if (reconnectRef.current) {
584
- reconnectRef.current = null;
639
+ hasConnected = true;
640
+ recoverableError = null;
641
+ if (reconnect) {
642
+ reconnect = null;
585
643
  emitReconnectStatus({
586
644
  type: "reconnect",
587
645
  status: "connected"
@@ -590,46 +648,46 @@ function createZeroClientInternal({
590
648
  }
591
649
  const reconnectReasonKey = reason.includes("ServerOverloaded") ? "server-overloaded" : reason.includes("Failed to fetch") || reason.includes("fetch failed") || reason.includes("NetworkError when attempting to fetch resource") || reason.includes("Network request failed") || reason.includes("Load failed") ? "transport" : void 0;
592
650
  if (name === "error" && ((0, import_recoverZeroClient.isRecoverableZeroStalePokeMessage)(reason) || reconnectReasonKey)) {
593
- if (recoverableErrorRef.current !== reason) {
594
- recoverableErrorRef.current = reason;
595
- reconnectRef.current = {
651
+ if (recoverableError !== reason) {
652
+ recoverableError = reason;
653
+ reconnect = {
596
654
  reasonKey: reconnectReasonKey ?? "transport",
597
655
  reason
598
656
  };
599
657
  emitReconnectStatus({
600
658
  type: "reconnect",
601
659
  status: "trying",
602
- ...reconnectRef.current
660
+ ...reconnect
603
661
  });
604
662
  void Promise.resolve(zeroInstance.connection?.connect?.()).catch(() => {});
605
663
  }
606
664
  return;
607
665
  }
608
- if (name !== "error") recoverableErrorRef.current = null;
609
- if (name === "connecting" && (reconnectRef.current || hasConnectedRef.current || Boolean(reason))) {
610
- reconnectRef.current = {
611
- reasonKey: reconnectReasonKey ?? reconnectRef.current?.reasonKey ?? "transport",
612
- reason: reason || reconnectRef.current?.reason || "connection interrupted"
666
+ if (name !== "error") recoverableError = null;
667
+ if (name === "connecting" && (reconnect || hasConnected || Boolean(reason))) {
668
+ reconnect = {
669
+ reasonKey: reconnectReasonKey ?? reconnect?.reasonKey ?? "transport",
670
+ reason: reason || reconnect?.reason || "connection interrupted"
613
671
  };
614
672
  emitReconnectStatus({
615
673
  type: "reconnect",
616
674
  status: reason ? "waiting" : "trying",
617
- ...reconnectRef.current
675
+ ...reconnect
618
676
  });
619
- } else if (name === "disconnected" && (reconnectRef.current || hasConnectedRef.current)) {
620
- reconnectRef.current = {
621
- reasonKey: reconnectRef.current?.reasonKey ?? "transport",
622
- reason: reason || reconnectRef.current?.reason || "connection interrupted"
677
+ } else if (name === "disconnected" && (reconnect || hasConnected)) {
678
+ reconnect = {
679
+ reasonKey: reconnect?.reasonKey ?? "transport",
680
+ reason: reason || reconnect?.reason || "connection interrupted"
623
681
  };
624
682
  emitReconnectStatus({
625
683
  type: "reconnect",
626
684
  status: "waiting",
627
- ...reconnectRef.current
685
+ ...reconnect
628
686
  });
629
687
  }
630
688
  if (name === "needs-auth") {
631
- if (refreshAuth && !needsAuthRef.current) {
632
- needsAuthRef.current = true;
689
+ if (refreshAuth && !needsAuth) {
690
+ needsAuth = true;
633
691
  void refreshAuth().then(token => {
634
692
  if (token) zeroInstance.connection?.connect?.({
635
693
  auth: token
@@ -637,19 +695,36 @@ function createZeroClientInternal({
637
695
  }).catch(() => {});
638
696
  }
639
697
  } else {
640
- needsAuthRef.current = false;
698
+ needsAuth = false;
641
699
  }
642
- if (name !== prevState.current) {
643
- prevState.current = name;
700
+ if (name !== prevState) {
701
+ prevState = name;
644
702
  if (name === "error" || name === "needs-auth") {
645
- zeroEvents2.emit({
703
+ zeroEvents.emit({
646
704
  type: "error",
647
705
  reasonKey: name === "needs-auth" ? "connection-needs-auth" : "connection-error",
648
706
  message: reason || name
649
707
  });
650
708
  }
651
709
  }
652
- }, [state, zeroEvents2, zeroInstance, refreshAuth, exposeDataset, datasetCacheUrl]);
710
+ };
711
+ const unsubscribe = zeroInstance.connection.state.subscribe(handle);
712
+ handle();
713
+ return unsubscribe;
714
+ }
715
+ const ConnectionMonitor = (0, import_react2.memo)(({
716
+ zeroEvents: _zeroEvents,
717
+ refreshAuth,
718
+ exposeDataset,
719
+ datasetCacheUrl
720
+ }) => {
721
+ const zeroInstance = (0, import_react.useZero)();
722
+ (0, import_react2.useEffect)(() => watchZeroConnection({
723
+ zeroInstance,
724
+ refreshAuth,
725
+ exposeDataset,
726
+ datasetCacheUrl
727
+ }), [zeroInstance, refreshAuth, exposeDataset, datasetCacheUrl]);
653
728
  return null;
654
729
  });
655
730
  function preload(fnArg, paramsOrOptions, optionsArg) {
@@ -686,6 +761,7 @@ function createZeroClientInternal({
686
761
  zeroEvents,
687
762
  reloadPage,
688
763
  ProvideZero,
764
+ connectHeadless,
689
765
  ControlQueries,
690
766
  useQuery,
691
767
  useQueryDirect,
@@ -298,4 +298,36 @@ async function mount(extraProps = {}, userID = "conn") {
298
298
  } finally {
299
299
  import_vitest.vi.useRealTimers();
300
300
  }
301
+ });
302
+ (0, import_vitest.test)("connectHeadless refreshes auth on needs-auth with no react tree", async () => {
303
+ const headlessClient = (0, import_createZeroClient.createZeroClient)({
304
+ schema,
305
+ models: {},
306
+ groupedQueries: {},
307
+ instanceName: "headless-auth-test"
308
+ });
309
+ const refreshAuth = import_vitest.vi.fn(async () => "headless-fresh-token");
310
+ const connection = headlessClient.connectHeadless({
311
+ userID: "headless-auth",
312
+ cacheURL: "http://127.0.0.1:7788/zero",
313
+ refreshAuth
314
+ });
315
+ const instance = fakeZero.instances.at(-1);
316
+ instance.connection.state.set({
317
+ name: "needs-auth",
318
+ reason: "token expired"
319
+ });
320
+ await Promise.resolve();
321
+ (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
322
+ await Promise.resolve();
323
+ (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({
324
+ auth: "headless-fresh-token"
325
+ });
326
+ instance.connection.state.set({
327
+ name: "needs-auth",
328
+ reason: "token expired again"
329
+ });
330
+ await Promise.resolve();
331
+ (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
332
+ await connection.close();
301
333
  });
@@ -375,4 +375,38 @@ async function mount() {
375
375
  import_vitest.vi.useRealTimers();
376
376
  }
377
377
  });
378
+ (0, import_vitest.test)("connectHeadless refreshes auth on needs-auth with no react tree", async function () {
379
+ var headlessClient = (0, import_createZeroClient.createZeroClient)({
380
+ schema,
381
+ models: {},
382
+ groupedQueries: {},
383
+ instanceName: "headless-auth-test"
384
+ });
385
+ var refreshAuth = import_vitest.vi.fn(async function () {
386
+ return "headless-fresh-token";
387
+ });
388
+ var connection = headlessClient.connectHeadless({
389
+ userID: "headless-auth",
390
+ cacheURL: "http://127.0.0.1:7788/zero",
391
+ refreshAuth
392
+ });
393
+ var instance = fakeZero.instances.at(-1);
394
+ instance.connection.state.set({
395
+ name: "needs-auth",
396
+ reason: "token expired"
397
+ });
398
+ await Promise.resolve();
399
+ (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
400
+ await Promise.resolve();
401
+ (0, import_vitest.expect)(instance.connection.connect).toHaveBeenCalledWith({
402
+ auth: "headless-fresh-token"
403
+ });
404
+ instance.connection.state.set({
405
+ name: "needs-auth",
406
+ reason: "token expired again"
407
+ });
408
+ await Promise.resolve();
409
+ (0, import_vitest.expect)(refreshAuth).toHaveBeenCalledTimes(1);
410
+ await connection.close();
411
+ });
378
412
  //# sourceMappingURL=createZeroClient.connection.test.native.js.map
@@ -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"],"sources":["../../src/createZeroClient.connection.test.tsx"],"sourcesContent":[null],"mappings":"AAEA;;AACA,IAAAA,kBAAoB,GAAAC,OAAA;AACpB,IAAAC,WAAA,GAAAD,OAAsC;AACtC,IAAAE,YAAA,GAAAF,OAAwD;AAgDxD,IAAAG,aAAA,GAAAH,OAAA,mBAAiC;AA2CzB,IAAAI,aAAA,GAAAJ,OAAA;AAvFR,IAAAK,uBAAiB,GAAAL,OAAG,+BAAc;AAAA,SAC1BM,kBAAAC,QAAoB,EAAAC,WAAA;EAAA,IACxB,EAAAD,QAAA,YAAAC,WAAA,aAAAC,SAAA;AAAA;AACgC,SAChCC,iBAAwDA,CAAAC,MAAA,EAAAC,KAAA;EACtD,SAAKC,CAAA,MAAAA,CAAA,GAAUD,KAAA,CAAAE,MAAA,EAAAD,CAAA;IACjB,IAAAE,UAAA,GAAAH,KAAA,CAAAC,CAAA;IACAE,UAAA,CAAAC,UAAgC,GAAAD,UAAA,CAAAC,UAAA;IAC9BD,UAAK,CAAAE,YAAgB;IACrB,WAAO,IAAMF,UAAA,EAAAA,UAAA,CAAAG,QAAA;IACXC,MAAA,CAAAC,cAAe,CAAAT,MAAS,EAAAI,UAAA,CAAAM,GAAA,EAAAN,UAAA;EAAA;AAC1B;AACF,SACIO,aAAyCA,CAAAd,WAAA,EAAAe,UAAA,EAAAC,WAAA;EAC3C,IAAAD,UAAK,EAAAb,iBAAU,CAAAF,WAAA,CAAAiB,SAAA,EAAAF,UAAA;EACf,IAAAC,WAAW,EAAAd,iBAAW,CAAAF,WAAc,EAAAgB,WAAA;EAAA,OACtChB,WAAA;AAAA;AACF,SAEMkB,gBAASA,CAAAC,GAAA,EAAAN,GAAA,EAAAO,KAAA;EAAA,IACJP,GAAA,IAAAM,GAAW;IACXR,MAAA,CAAAC,cAAa,CAAAO,GAAA,EAAAN,GAAA;MACpBO,KAAA;MACAZ,UAAS;MAAmBC,YAAC;MAC/BC,QAAA;IACS;EAA2C,OAC3CS,GAAQ,CAAAN,GAAA,IAAAO,KAAA;EAAM,OACdD,GAAM;AAAoB;AACc,IAACE,QAAG,GAAAzB,aAAkB,CAAA0B,EAAA,CAAAC,OAAY;EAAA,IAEnFC,mBAAc;IACZ,YAAU;;IACZ,SAAAC,qBAAAC,OAAA;MACF,IAAAC,KAAA;MAEA7B,iBAA+B,OAAA2B,oBAAA;MAC/BP,gBAAmB,uBAAqB;MACzCA,gBAAA,uCAAAU,GAAA;MAEDV,gBAAQ,kBAAkB,YAAOW,EAAA;QACzBF,KAAA,CAAAG,SAAe,CAAAC,GAAA,CAAAF,EAAA;QACrB,OAAY,YAAQ;UACrBF,KAAA,CAAAG,SAAA,CAAAE,MAAA,CAAAH,EAAA;QAQD;MAEM;MACA,KAAAI,OAAA,GAASP,OAAA;IAEf;IACEZ,aAAA,CAAAW,oBAAA,GACA;MACAZ,GAAA,OAAgB;MAChBO,KAAA,WAAcc,IAAAC,IAAA;QACf,KAAAF,OAAA,GAAAE,IAAA;QAEG,IAAAC,yBAAA;UAAAC,iBAAA;UAAAC,cAAA;QACA;UAEJ,SAAAC,SAAW,OAAM,CAAAT,SAAA,CAAAU,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAJ,IAAA,IAAAQ,IAAA,GAAAP,yBAAA;YACN,IAAAP,EAAA,GAAUa,KAAA,CAAAtB,KAAS;YAChBS,EAAA;UACL;QACA,SAASe,GAAA,EAAK;UACdP,iBAAc,GAAQ;UACtBC,cAAc,GAAAM,GAAQ;QAC9B;UAED;YACY,KAAAR,yBAAU,IAAMG,SAAS,CAAAM,MAAA;cACpCN,SAAA,CAAAM,MAAA;YAED;UACE,CAAO;YACD,IAAAR,iBAAI;cACF,MAAAC,cAAA;YACJ;UAAC;QAAA;MAAA;IACU,EACT;IACI,OAEJb,oBAAA;EAAQ;EAAA,IACVqB,QAAA,YAAAC,UAAA;IACF;;IACAjD,iBAAc,KAAQ,EAAAiD,SAAA;IACvB7B,gBAAA;IACDA,gBAAgB,mBAAe;MACjC8B,KAAA,MAAAxB,mBAAA;QAEAyB,IAAA;MACE,EAAM;MACJC,OAAA,EAAAtD,aAAA,CAAA0B,EAAA,CAAA6B,EAAA,oBACA;IACA;IACAjC,gBAAc,iBAAAtB,aAAA,CAAA0B,EAAA,CAAA6B,EAAA;MACf;QACKC,MAAA,EAAQ;MAEd;IACA;IACElC,gBAAM,gBAAAtB,aAAA,CAAA0B,EAAA,CAAA6B,EAAA;IAAAjC,gBACJ,cAAAtB,aAAA,CAAA0B,EAAA,CAAA6B,EAAA;MAAA,OAAC;IAAgB;IAAhBjC,gBACU,kBAAAtB,aAAA,CAAA0B,EAAA,CAAA6B,EAAA;MAAA,OACT;QAAOE,OAEP,WAAAA,QAAA,GAAQ;QACVC,QAAA,EAAAC,OAAA,CAAAC,OAAA;MACF;IACA;IACDC,SAAA,CAAAC,IAAA;EAED;EACD,IAAAD,SAAA;EAAA,OAED;IACEX,QAAM;IAENtB,mBAAc;IAEdiC;EACA;AACF,CAAC;AAAA7D,aAED,CAAA0B,EAAA,CAAAqC,IAAA,iBAAK,kBAAAC,cAAA;EACH,IAAAC,MAAM,SAAAD,cAAc;EACpB,OAAM;IACN,GAAAC,MAAM;IACJC,IAAI,EAAAzC,QAAO,CAAAyB;EACb,CAAC;AACD;AAEAiB,UAAA,CAAAC,wBAAU,OAAY;AACpB,IAAAC,SAAS,OAAAxE,WAAiB,CAAAyE,KAAM,QAAM,EAAAC,OAAA;EACtCC,EAAA,MAAM3E,WAAQ,CAAA4E,MAAQ;EACxBC,IAAC,MAAA7E,WAAA,CAAA4E,MAAA;AAED,GAAAE,UAAA;AACA,IAAAC,MAAA,GAAM,IAAA/E,WAAA,CAAAgF,YAAI,EAAY;EACpBC,MAAA,EAAM,CACPT,SAAA;AAED;AAA8B,IAC5BU,MAAM,OAAA9E,uBAAA,CAAA+E,gBAAA;EAAAJ,MACN;EAAWK,MACX;EACFC,cAAC;EACDC,YAAI;AACN,CAAC;AAAA,IAEDC,SAAA;AACE,IAAAC,IAAM;AACN,IAAArF,aAAY,CAAAsF,UAAO,cAAmB;EACpC7D,QAAI,CAAAoC,SAAO,CAAAnD,MAAY;EACzB0E,SAAC,GAAAG,QAAA,CAAAC,aAAA;EACDH,IAAA,GAAM;EAEN,OAAAE,QAAM,CAAAb,IAAA,CAAAe,OAAI,CAAAC,SAAA;EACR,OAAAH,QAAS,CAAAb,IAAA,CAAAe,OAAiB,CAAAE,aAAI;EAAA,OAC5BJ,QAAM,CAAAb,IAAA,CAAAe,OAAA,CAAAG,UAAA;AAAA;AACE,IACV5F,aAAC,CAAA6F,SAAA;EACD,IAAAR,IAAM,MAAAvF,YAAgB,CAAAgG,GAAA;IACvB,OAAAT,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAU,OAAA;EAGD;AACA;AAEA,eAAAC,MAAA;EACA,IAAIC,UAAA,GAAAC,SAAA,CAAAxF,MAAA,QAAAwF,SAAA,iBAAAA,SAAA;IAAAC,MAAA,GAAAD,SAAA,CAAAxF,MAAA,QAAAwF,SAAA,iBAAAA,SAAA;EACLb,IAAA,OAAAtF,aAAA,CAAAqG,UAAA,EAAAhB,SAAA;EAAA,MAED,IAAAtF,YAAK,CAAAgG,GAAA;IACHT,IAAM,SAAuE,IAACA,IAAA,uBAAAA,IAAA,CAAAgB,MAAA,oBAAA1G,kBAAA,CAAA2G,GAAA,EAAAvB,MAAA,CAAAwB,WAAA;MAC9EC,QAAY,8BAA0B;MACpCL,MAAI;MACL,GAAAF,UAAA;MACDQ,QAAM,iBAAwB,IAAG9G,kBAAgB,CAAA2G,GAAA;QAEjDG,QAAM;MACJ;IAA8B,EAC5B;IAAM,MACN9C,OAAQ,CAAAC,OAAA;EAAA,EACV;EACA,OAAAnC,QAAM,CAAQoC,SAAQ,CAAA6C,EAAA;AAAA;AAGxB,IAAA1G,aAAA,CAAA2G,IAAA,wEAA2D;EAC3D,IAAAC,eAAA,OAAO3G,uBAAuB,CAAA+E,gBAAA;IAC5BJ,MAAM;IACNK,MAAA,EAAQ;IACRC,cAAW;IACXC,YAAQ;EACV,CAAC;EACD,IAAA0B,KAAA,GAAAD,eAAO,CAAAE,WAAa;EACpBzB,IAAA,OAAMtF,aAAA,CAAAqG,UAAI,EAAAhB,SAAY;EACpB,UAAAtF,YAAoB,CAAAgG,GAAA,EAAM,kBAAY;IACtCT,IAAA,KAAM,QAAQA,IAAA,KAAQ,kBAAAA,IAAA,CAAAgB,MAAA,oBAAA1G,kBAAA,CAAA2G,GAAA,EAAAM,eAAA,CAAAL,WAAA;MACvBC,QAAA;MACDL,MAAA;MACIM,QAAA,qBAAA9G,kBAAA,CAAA2G,GAAA;QACLG,QAAA;MAED;IACE;IACA,MAAM9C,OAAM,CAAAC,OAAO;EACjB;EACF,CAAC,GAAA5D,aAAA,CAAA+G,MAAA,QAAAF,KAAA,EAAAG,IAAA,CAAAvF,QAAA,CAAAoC,SAAA,CAAA6C,EAAA;AACD;AAEA,IAAA1G,aAAM,CAAA2G,IAAA,kEAAgB;EACpB,IAAAM,OAAS,GAAAjH,aAAW,CAAM0B,EAAA,CAAA6B,EAAI;EAAA,MAC5ByC,KAAM;IAAAkB,SACN,EAAQ;MACTD;IACD;EACF,CAAC;EAED,IAAAjH,aAAA,CAAA+G,MAAA,EAAOE,OAAA,EAASE,oBAAoB;EACpC,IAAAnH,aAAA,CAAA+G,MAAA,EAAOE,OAAM,CAAE,CAAAG,oBAAe;AAAA;AACtB,IACNpH,aAAQ,CAAA2G,IAAA;EAAA,IACRU,WAAW,GAAArH,aAAA,CAAA0B,EAAA,CAAA6B,EAAA;IACX,oBAAQ;EACV,CAAC;EACD,IAAA+D,MAAM;EACJ,IAAAC,GAAA,GAAAxC,MAAS,CAAAyC,UAAW,CAAMC,MAAM,WAAMC,KAAA;IACtC,IAAAA,KAAM,EAAAJ,MAAQ,CAAAxD,IAAQ,CAAA4D,KAAA;EACxB,CAAC;EACD,IAAAvH,QAAA,SAAA6F,KAAO;IACLqB;EAAM,GACN,WAAQ;EAAA,MACR,IAAAvH,YAAW,CAAAgG,GAAA;IACX3F,QAAQ,CAAAwH,UAAA,CAAAvE,KAAA,CAAAd,GAAA;MACTe,IAAA;MACGuE,MAAA;IACL;IAED,MAAAjE,OAAA,CAAAC,OAAK;EACH;EAEA,IAAA5D,aAAM,CAAA+G,MAAA,EAAAM,WAAI,EAAAQ,qBAAY;EACpB,UAAA/H,YAAoB,CAAAgG,GAAA,EAAM,kBAAY;IACtC,MAAMnC,OAAA,CAAQC,OAAA,CAAQ;EACxB,CAAC;EACD,IAAA5D,aAAA,CAAA+G,MAAA,EAAO5G,QAAA,CAASwH,UAAK,CAAArE,OAAQ,EAAA8D,oBAA2B;IACxDU,IAAA;EACA;EAEA,IAAA9H,aAAM,CAAA+G,MAAA,EAAAO,MAAI,EAAAS,cAAY;IACpBC,IAAA,SAAS;IACTC,SAAM,yBAAgB;IACvBC,OAAA;EACD;EACAX,GAAA;AACA;AACF,CAAC,GAAAvH,aAAA,CAAA2G,IAAA;EAAA,IAEDW,MAAA;EACE,IAAAC,GAAA,GAAAxC,MAAA,CAAGyC,UAAA,CAAAC,MAAc,WAAAC,KAAA;IACjB,IAAIA,KAAA,EAAAJ,MAAA,CAAAxD,IAAA,CAAA4D,KAAA;EACF;EACA,IAAAvH,QAAM,SAAqD6F,KAAA;EAC3D,QAAM,EAAAlG,YAAa,CAAAgG,GAAA,oBAAmB;IACpC3F,QAAI,CAAAwH,UAAO,CAAOvE,KAAK,CAAAd,GAAA,CAAK;MAC7Be,IAAA;MAEDuE,MAAA,EAAM;IACJ;IAA8B,MAC5BjE,OAAM,CAAAC,OAAA;EAAA;EACE,IACV5D,aAAC,CAAA+G,MAAA,EAAA5G,QAAA,CAAAwH,UAAA,CAAArE,OAAA,EAAAuE,qBAAA;EACD,IAAA7H,aAAM,CAAQ+G,MAAA,EAAQ5G,QAAA,CAAAwH,UAAA,CAAArE,OAAA,EAAA8D,oBAAA;EAAA,EACxB,EAACpH,aAAA,CAAA+G,MAAA,EAAAO,MAAA,CAAAa,IAAA,WAAAT,KAAA;IAED,OAAAA,KAAM,CAAAM,IAAA,YAAI;EACR,IAAAhB,IAAA;EACAO,GAAA;AAAsB;AAExB,IAAAvH,aAAA,CAAA2G,IAAA,mEAAyD;EACzD,IAAAW,MAAA;EAA8B,IAC5BC,GAAA,GAAMxC,MAAA,CAAAyC,UAAA,CAAAC,MAAA,WAAAC,KAAA;IAAA,IACNA,KAAA,EAAAJ,MAAW,CAAAxD,IAAA,CAAA4D,KAAA;EAAA;EACF,IACVvH,QAAA,SAAA6F,KAAA;EACD,MAAI,IAAAlG,YAAA,CAAAgG,GAAA;IACN3F,QAAE,CAAAwH,UAAA,CAAAvE,KAAA,CAAAd,GAAA;MACAe,IAAA;MACFuE,MAAA;IACD","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","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":[]}
@@ -0,0 +1,33 @@
1
+ var import_zero = require("@rocicorp/zero");
2
+ var import_vitest = require("vitest");
3
+ var import_createZeroClient = require("./createZeroClient.cjs");
4
+ const userTable = (0, import_zero.table)("user").columns({
5
+ id: (0, import_zero.string)(),
6
+ name: (0, import_zero.string)()
7
+ }).primaryKey("id");
8
+ const schema = (0, import_zero.createSchema)({
9
+ tables: [userTable]
10
+ });
11
+ const byId = args => args;
12
+ (0, import_vitest.test)("connectHeadless publishes the instance with no react tree", async () => {
13
+ const client = (0, import_createZeroClient.createZeroClient)({
14
+ schema,
15
+ models: {},
16
+ groupedQueries: {
17
+ headlessTest: {
18
+ byId
19
+ }
20
+ },
21
+ instanceName: "headless-test"
22
+ });
23
+ const pending = /* @__PURE__ */Symbol("pending");
24
+ const before = await Promise.race([client.waitForZero(), Promise.resolve(pending)]);
25
+ (0, import_vitest.expect)(before).toBe(pending);
26
+ const connection = client.connectHeadless({
27
+ userID: "user-headless",
28
+ kvStore: "mem",
29
+ storageKey: "headless-test"
30
+ });
31
+ (0, import_vitest.expect)(await client.waitForZero()).toBe(connection.zero);
32
+ await connection.close();
33
+ });
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var import_zero = require("@rocicorp/zero");
4
+ var import_vitest = require("vitest");
5
+ var import_createZeroClient = require("./createZeroClient.native.js");
6
+ var userTable = (0, import_zero.table)("user").columns({
7
+ id: (0, import_zero.string)(),
8
+ name: (0, import_zero.string)()
9
+ }).primaryKey("id");
10
+ var schema = (0, import_zero.createSchema)({
11
+ tables: [userTable]
12
+ });
13
+ var byId = function byId2(args) {
14
+ return args;
15
+ };
16
+ (0, import_vitest.test)("connectHeadless publishes the instance with no react tree", async function () {
17
+ var client = (0, import_createZeroClient.createZeroClient)({
18
+ schema,
19
+ models: {},
20
+ groupedQueries: {
21
+ headlessTest: {
22
+ byId
23
+ }
24
+ },
25
+ instanceName: "headless-test"
26
+ });
27
+ var pending = /* @__PURE__ */Symbol("pending");
28
+ var before = await Promise.race([client.waitForZero(), Promise.resolve(pending)]);
29
+ (0, import_vitest.expect)(before).toBe(pending);
30
+ var connection = client.connectHeadless({
31
+ userID: "user-headless",
32
+ kvStore: "mem",
33
+ storageKey: "headless-test"
34
+ });
35
+ (0, import_vitest.expect)(await client.waitForZero()).toBe(connection.zero);
36
+ await connection.close();
37
+ });
38
+ //# sourceMappingURL=createZeroClient.headless.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_zero","require","import_vitest","import_createZeroClient","userTable","table","columns","id","string","name","primaryKey","schema","createSchema","tables","byId","byId2","args","test","client","createZeroClient","models","groupedQueries","headlessTest","instanceName"],"sources":["../../src/createZeroClient.headless.test.tsx"],"sourcesContent":[null],"mappings":"AAEA;;AACA,IAAAA,WAAA,GAAAC,OAA6B;AAE7B,IAAAC,aAAA,GAAAD,OAAA,SAAiC;AAIjC,IAAAE,uBAAkB,GAAAF,OAAA,+BAAsB,CAAE;AAC1C,IAAAG,SAAM,OAASJ,WAAA,CAAAK,KAAA,QAAa,EAAEC,OAAA,CAAQ;EAEtCC,EAAA,EAAM,IAAAP,WAAQ,CAAAQ,MAAyB;EAAAC,IAOvC,MAAAT,WAAA,CAAKQ,MAAA;AACH,GAAAE,UAAM;AAA0B,IAC9BC,MAAA,OAAAX,WAAA,CAAAY,YAAA;EAAAC,MACA,GACAT,SAAA;AACc,EAChB;AAKA,IAAAU,IAAM,YAAUC,MAAAC,IAAA;EAChB,OAAMA,IAAA;AAA4B;AACb,IACnBd,aAAQ,CAAAe,IAAQ,6DAA2B;EAC7C,IAACC,MAAA,OAAAf,uBAAA,CAAAgB,gBAAA;IACDR,MAAA;IAEAS,MAAM;IACJC,cAAQ;MACRC,YAAS;QACTR;MACD;IAED;IAEAS,YAAM;EACP","ignoreList":[]}