on-zero 0.6.3 → 0.6.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 (82) hide show
  1. package/dist/cjs/createZeroClient.cjs +91 -12
  2. package/dist/cjs/createZeroClient.connection.test.cjs +163 -0
  3. package/dist/cjs/createZeroClient.connection.test.native.js +242 -0
  4. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -0
  5. package/dist/cjs/createZeroClient.native.js +99 -12
  6. package/dist/cjs/createZeroClient.native.js.map +1 -1
  7. package/dist/cjs/createZeroClient.recovery.test.cjs +52 -0
  8. package/dist/cjs/createZeroClient.recovery.test.native.js +52 -0
  9. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  10. package/dist/cjs/helpers/recoverZeroClient.cjs +140 -14
  11. package/dist/cjs/helpers/recoverZeroClient.native.js +155 -22
  12. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  13. package/dist/cjs/helpers/recoverZeroClient.test.cjs +181 -0
  14. package/dist/cjs/helpers/recoverZeroClient.test.native.js +209 -0
  15. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  16. package/dist/cjs/index.cjs +1 -0
  17. package/dist/cjs/index.native.js +1 -0
  18. package/dist/cjs/index.native.js.map +1 -1
  19. package/dist/cjs/multi.cjs +13 -0
  20. package/dist/cjs/multi.native.js +35 -0
  21. package/dist/cjs/multi.native.js.map +1 -1
  22. package/dist/cjs/multiPartition.test.cjs +42 -0
  23. package/dist/cjs/multiPartition.test.native.js +51 -0
  24. package/dist/cjs/multiPartition.test.native.js.map +1 -0
  25. package/dist/esm/createZeroClient.connection.test.mjs +164 -0
  26. package/dist/esm/createZeroClient.connection.test.mjs.map +1 -0
  27. package/dist/esm/createZeroClient.connection.test.native.js +240 -0
  28. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -0
  29. package/dist/esm/createZeroClient.mjs +92 -13
  30. package/dist/esm/createZeroClient.mjs.map +1 -1
  31. package/dist/esm/createZeroClient.native.js +100 -13
  32. package/dist/esm/createZeroClient.native.js.map +1 -1
  33. package/dist/esm/createZeroClient.recovery.test.mjs +52 -0
  34. package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
  35. package/dist/esm/createZeroClient.recovery.test.native.js +52 -0
  36. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  37. package/dist/esm/helpers/recoverZeroClient.mjs +140 -15
  38. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
  39. package/dist/esm/helpers/recoverZeroClient.native.js +155 -23
  40. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  41. package/dist/esm/helpers/recoverZeroClient.test.mjs +182 -1
  42. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  43. package/dist/esm/helpers/recoverZeroClient.test.native.js +210 -1
  44. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  45. package/dist/esm/index.js +2 -2
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/index.mjs +2 -2
  48. package/dist/esm/index.mjs.map +1 -1
  49. package/dist/esm/index.native.js +2 -2
  50. package/dist/esm/index.native.js.map +1 -1
  51. package/dist/esm/multi.mjs +13 -1
  52. package/dist/esm/multi.mjs.map +1 -1
  53. package/dist/esm/multi.native.js +35 -1
  54. package/dist/esm/multi.native.js.map +1 -1
  55. package/dist/esm/multiPartition.test.mjs +43 -0
  56. package/dist/esm/multiPartition.test.mjs.map +1 -0
  57. package/dist/esm/multiPartition.test.native.js +49 -0
  58. package/dist/esm/multiPartition.test.native.js.map +1 -0
  59. package/lint/ssr-guards.js +164 -0
  60. package/package.json +2 -2
  61. package/readme.md +126 -0
  62. package/src/createZeroClient.connection.test.tsx +162 -0
  63. package/src/createZeroClient.recovery.test.tsx +68 -0
  64. package/src/createZeroClient.tsx +159 -13
  65. package/src/helpers/recoverZeroClient.test.ts +204 -1
  66. package/src/helpers/recoverZeroClient.ts +263 -42
  67. package/src/index.ts +3 -0
  68. package/src/multi.ts +33 -0
  69. package/src/multiPartition.test.ts +38 -0
  70. package/types/createZeroClient.connection.test.d.ts +5 -0
  71. package/types/createZeroClient.connection.test.d.ts.map +1 -0
  72. package/types/createZeroClient.d.ts +17 -0
  73. package/types/createZeroClient.d.ts.map +1 -1
  74. package/types/createZeroServer.d.ts +4 -4
  75. package/types/helpers/recoverZeroClient.d.ts +15 -1
  76. package/types/helpers/recoverZeroClient.d.ts.map +1 -1
  77. package/types/index.d.ts +1 -1
  78. package/types/index.d.ts.map +1 -1
  79. package/types/multi.d.ts +1 -0
  80. package/types/multi.d.ts.map +1 -1
  81. package/types/multiPartition.test.d.ts +2 -0
  82. package/types/multiPartition.test.d.ts.map +1 -0
@@ -345,5 +345,214 @@ async function flush() {
345
345
  reason: "client state not found"
346
346
  });
347
347
  });
348
+ (0, import_vitest.test)("scheduleReload defers the reload AND the store delete until performReload runs", async function () {
349
+ var {
350
+ deps,
351
+ deleteLocalState,
352
+ reload
353
+ } = setup();
354
+ var captured;
355
+ deps.scheduleReload = function (ctx) {
356
+ captured = ctx;
357
+ };
358
+ (0, import_recoverZeroClient.makeZeroRecovery)(deps).onClientStateNotFound();
359
+ await flush();
360
+ (0, import_vitest.expect)(reload).not.toHaveBeenCalled();
361
+ (0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
362
+ (0, import_vitest.expect)(captured).toMatchObject({
363
+ reasonKey: "client-state-not-found",
364
+ dropLocalState: true
365
+ });
366
+ await captured.performReload();
367
+ await flush();
368
+ (0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
369
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
370
+ });
371
+ (0, import_vitest.test)("scheduleReload that reloads directly skips the delete and beforeReload", async function () {
372
+ var {
373
+ deps,
374
+ deleteLocalState,
375
+ reload
376
+ } = setup();
377
+ var nativeReload = import_vitest.vi.fn();
378
+ var beforeReload = import_vitest.vi.fn(async function () {});
379
+ deps.beforeReload = beforeReload;
380
+ deps.scheduleReload = function () {
381
+ nativeReload();
382
+ };
383
+ (0, import_recoverZeroClient.makeZeroRecovery)(deps).onClientStateNotFound();
384
+ await flush();
385
+ (0, import_vitest.expect)(nativeReload).toHaveBeenCalledTimes(1);
386
+ (0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
387
+ (0, import_vitest.expect)(beforeReload).not.toHaveBeenCalled();
388
+ (0, import_vitest.expect)(reload).not.toHaveBeenCalled();
389
+ });
390
+ (0, import_vitest.test)("scheduleReload performReload is idempotent (one reload even if called twice)", async function () {
391
+ var {
392
+ deps,
393
+ deleteLocalState,
394
+ reload
395
+ } = setup();
396
+ var captured;
397
+ deps.scheduleReload = function (ctx) {
398
+ captured = ctx;
399
+ };
400
+ (0, import_recoverZeroClient.makeZeroRecovery)(deps).onClientStateNotFound();
401
+ await flush();
402
+ await captured.performReload();
403
+ await captured.performReload();
404
+ await flush();
405
+ (0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
406
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
407
+ });
408
+ (0, import_vitest.test)("scheduleReload deferred PAST the latch timeout still deletes and reloads exactly once", async function () {
409
+ import_vitest.vi.useFakeTimers();
410
+ try {
411
+ var {
412
+ deps,
413
+ deleteLocalState,
414
+ reload
415
+ } = setup();
416
+ var captured;
417
+ deps.scheduleReload = function (ctx) {
418
+ captured = ctx;
419
+ };
420
+ (0, import_recoverZeroClient.makeZeroRecovery)(deps).onClientStateNotFound();
421
+ (0, import_vitest.expect)(captured).toBeDefined();
422
+ await import_vitest.vi.advanceTimersByTimeAsync(2e4);
423
+ (0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
424
+ (0, import_vitest.expect)(reload).not.toHaveBeenCalled();
425
+ await captured.performReload();
426
+ (0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
427
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
428
+ } finally {
429
+ import_vitest.vi.useRealTimers();
430
+ }
431
+ });
432
+ (0, import_vitest.test)("a slow beforeReload holds the latch through the timeout window (no double reload)", async function () {
433
+ import_vitest.vi.useFakeTimers();
434
+ try {
435
+ var {
436
+ deps,
437
+ reload
438
+ } = setup();
439
+ var releaseBeforeReload = function () {};
440
+ deps.beforeReload = function () {
441
+ return new Promise(function (resolve) {
442
+ releaseBeforeReload = resolve;
443
+ });
444
+ };
445
+ var recovery = (0, import_recoverZeroClient.makeZeroRecovery)(deps);
446
+ recovery.onClientStateNotFound();
447
+ await import_vitest.vi.advanceTimersByTimeAsync(2e4);
448
+ recovery.onClientStateNotFound();
449
+ await import_vitest.vi.advanceTimersByTimeAsync(0);
450
+ (0, import_vitest.expect)(reload).not.toHaveBeenCalled();
451
+ releaseBeforeReload();
452
+ await import_vitest.vi.advanceTimersByTimeAsync(0);
453
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
454
+ } finally {
455
+ import_vitest.vi.useRealTimers();
456
+ }
457
+ });
458
+ (0, import_vitest.test)("injectable guardStorage gives cross-reload loop protection (Hermes has no sessionStorage)", async function () {
459
+ var store = /* @__PURE__ */new Map();
460
+ var {
461
+ deps,
462
+ reload,
463
+ events
464
+ } = setup();
465
+ deps.guardStorage = {
466
+ getItem: function (key) {
467
+ var _store_get;
468
+ return (_store_get = store.get(key)) !== null && _store_get !== void 0 ? _store_get : null;
469
+ },
470
+ setItem: function (key, value) {
471
+ store.set(key, value);
472
+ }
473
+ };
474
+ var recovery = (0, import_recoverZeroClient.makeZeroRecovery)(deps);
475
+ recovery.onClientStateNotFound();
476
+ await flush();
477
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
478
+ (0, import_recoverZeroClient.resetRecoveryStateForTests)();
479
+ recovery.onClientStateNotFound();
480
+ await flush();
481
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
482
+ (0, import_vitest.expect)(events.some(function (event) {
483
+ return event.type === "fatal";
484
+ })).toBe(true);
485
+ });
486
+ (0, import_vitest.test)("a guardStorage that throws never crashes recovery (in-memory is the floor)", async function () {
487
+ var {
488
+ deps,
489
+ reload
490
+ } = setup();
491
+ deps.guardStorage = {
492
+ getItem: function () {
493
+ throw new Error("no storage on this platform");
494
+ },
495
+ setItem: function () {
496
+ throw new Error("no storage on this platform");
497
+ }
498
+ };
499
+ (0, import_recoverZeroClient.makeZeroRecovery)(deps).onClientStateNotFound();
500
+ await flush();
501
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
502
+ });
503
+ (0, import_vitest.test)("classifier recognizes the mutation / connection desync class", function () {
504
+ var cases = [[["sent mutation ID 5 but expected 4"], "mutation-desync"], [["oooMutation detected"], "mutation-desync"], [["Server reported an out-of-order mutation"], "mutation-desync"], [["Ignoring mutation 3, already processed. Expected: 4"], "mutation-desync"], [["InvalidConnectionRequestLastMutationID"], "mutation-desync"], [["InvalidConnectionRequestBaseCookie"], "connection-cookie-invalid"], [["ClientNotFound: client gone"], "client-not-found"], [["connection userID mismatch"], "connection-userid-mismatch"]];
505
+ var _iteratorNormalCompletion = true,
506
+ _didIteratorError = false,
507
+ _iteratorError = void 0;
508
+ try {
509
+ for (var _iterator = cases[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
510
+ var [args, reason] = _step.value;
511
+ (0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", args)).toMatchObject({
512
+ reason,
513
+ dropLocalState: true
514
+ });
515
+ }
516
+ } catch (err) {
517
+ _didIteratorError = true;
518
+ _iteratorError = err;
519
+ } finally {
520
+ try {
521
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
522
+ _iterator.return();
523
+ }
524
+ } finally {
525
+ if (_didIteratorError) {
526
+ throw _iteratorError;
527
+ }
528
+ }
529
+ }
530
+ (0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["consecutive server-ack timeouts"])).toBeUndefined();
531
+ (0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Connection attempt timed out after 10 seconds"])).toBeUndefined();
532
+ (0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("warn", ["ClientNotFound"])).toBeUndefined();
533
+ });
534
+ (0, import_vitest.test)("benignLogFilter suppresses recovery for a matching classified log", async function () {
535
+ var {
536
+ deps,
537
+ deleteLocalState,
538
+ reload
539
+ } = setup();
540
+ deps.benignLogFilter = function (message) {
541
+ return message.includes("ClientNotFound");
542
+ };
543
+ var sink = (0, import_recoverZeroClient.composeRecoveryLogSink)(deps);
544
+ sink.log("error", void 0, "ClientNotFound: gone");
545
+ await flush();
546
+ (0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
547
+ (0, import_vitest.expect)(reload).not.toHaveBeenCalled();
548
+ sink.log("error", void 0, "sent mutation ID 5 but expected 4");
549
+ await flush();
550
+ (0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
551
+ });
552
+ (0, import_vitest.test)("isRecoverableZeroStalePokeMessage matches only the stale-cookie signatures", function () {
553
+ (0, import_vitest.expect)((0, import_recoverZeroClient.isRecoverableZeroStalePokeMessage)("Server returned unexpected base cookie during sync")).toBe(true);
554
+ (0, import_vitest.expect)((0, import_recoverZeroClient.isRecoverableZeroStalePokeMessage)("Received cookie 5 is < than last snapshot cookie 9, ignoring client view")).toBe(true);
555
+ (0, import_vitest.expect)((0, import_recoverZeroClient.isRecoverableZeroStalePokeMessage)("client state not found")).toBe(false);
556
+ });
348
557
  });
349
558
  //# sourceMappingURL=recoverZeroClient.test.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["import_helpers","require","import_zero","import_vitest","import_recoverZeroClient","_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","emitterSeq","setup","events","zeroEvents","createEmitter","listen","event","push","deleteLocalState","vi","fn","Promise","resolve","reload","deps","flush","setTimeout","beforeEach","window","sessionStorage","clear","resetRecoveryStateForTests","describe","test","makeZeroRecovery","onUpdateNeeded","type","UpdateNeededReasonType","SchemaVersionNotSupported","expect","toEqual","reason","stringContaining","toHaveBeenCalledTimes","recovery","NewClientGroup","VersionNotSupported","not","toHaveBeenCalled","onClientStateNotFound","a","b","mock","calls","toBe","filter","some","consumer","log","sink","composeRecoveryLogSink","sqliteError","Error","name","bgIntervalProcess","nowSpy","spyOn","Date","mockReturnValue","mockRestore","infoSpy","console","mockImplementation","worker","toHaveBeenCalledWith","_sink_flush","ClassSink","ClassSink2","flush2","flushed"],"sources":["../../../src/helpers/recoverZeroClient.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_helpers","require","import_zero","import_vitest","import_recoverZeroClient","_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","emitterSeq","setup","events","zeroEvents","createEmitter","listen","event","push","deleteLocalState","vi","fn","Promise","resolve","reload","deps","flush","setTimeout","beforeEach","window","sessionStorage","clear","resetRecoveryStateForTests","describe","test","makeZeroRecovery","onUpdateNeeded","type","UpdateNeededReasonType","SchemaVersionNotSupported","expect","toEqual","reason","stringContaining","toHaveBeenCalledTimes","recovery","NewClientGroup","VersionNotSupported","not","toHaveBeenCalled","onClientStateNotFound","a","b","mock","calls","toBe","filter","some","consumer","log","sink","composeRecoveryLogSink","sqliteError","Error","name","bgIntervalProcess","nowSpy","spyOn","Date","mockReturnValue","mockRestore","infoSpy","console","mockImplementation","worker","toHaveBeenCalledWith","_sink_flush","ClassSink","ClassSink2","flush2","flushed","call","classifyZeroRecoveryLog","toMatchObject","dropLocalState","message","toBeUndefined","originalLocation","globalThis","location","toContainEqual","captured","scheduleReload","ctx","reasonKey","performReload","nativeReload","beforeReload","useFakeTimers","toBeDefined","advanceTimersByTimeAsync","useRealTimers","releaseBeforeReload"],"sources":["../../../src/helpers/recoverZeroClient.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -31,6 +31,7 @@ __export(index_exports, {
31
31
  defineQuery: () => import_zero.defineQuery,
32
32
  ensureAuth: () => import_getAuth.ensureAuth,
33
33
  getAuth: () => import_getAuth.getAuth,
34
+ isRecoverableZeroStalePokeMessage: () => import_recoverZeroClient.isRecoverableZeroStalePokeMessage,
34
35
  makeZeroRecovery: () => import_recoverZeroClient.makeZeroRecovery,
35
36
  resetShownZeroClientError: () => import_showZeroClientError.resetShownZeroClientError,
36
37
  setAuthData: () => import_state.setAuthData,
@@ -33,6 +33,7 @@ __export(index_exports, {
33
33
  defineQuery: () => import_zero.defineQuery,
34
34
  ensureAuth: () => import_getAuth.ensureAuth,
35
35
  getAuth: () => import_getAuth.getAuth,
36
+ isRecoverableZeroStalePokeMessage: () => import_recoverZeroClient.isRecoverableZeroStalePokeMessage,
36
37
  makeZeroRecovery: () => import_recoverZeroClient.makeZeroRecovery,
37
38
  resetShownZeroClientError: () => import_showZeroClientError.resetShownZeroClientError,
38
39
  setAuthData: () => import_state.setAuthData,
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","classifyZeroRecoveryLog","import_recoverZeroClient","clearZeroClientData","import_clearZeroClientData","composeRecoveryLogSink","createZeroClient","import_createZeroClient","defineQueries","import_zero","defineQuery","ensureAuth","import_getAuth","getAuth","makeZeroRecovery","resetShownZeroClientError","import_showZeroClientError","setAuthData","import_state","setEnvironment","setRunner","import_zeroRunner","showZeroClientErrorOnce","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,uBAAA,EAAAA,CAAA,KAAAC,wBAAA,CAAAD,uBAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAC,0BAAA,CAAAD,mBAAA;EAAAE,sBAAA,EAAAA,CAAA,KAAAH,wBAAA,CAAAG,sBAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAC,uBAAA,CAAAD,gBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,WAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAD,WAAA,CAAAC,WAAA;EAAAC,UAAA,EAAAA,CAAA,KAAAC,cAAA,CAAAD,UAAA;EAAAE,OAAA,EAAAA,CAAA,KAAAD,cAAA,CAAAC,OAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAZ,wBAAA,CAAAY,gBAAA;EAAAC,yBAAA,EAAAA,CAAA,KAAAC,0BAAA,CAAAD,yBAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAC,YAAA,CAAAD,WAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAD,YAAA,CAAAC,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAC,iBAAA,CAAAD,SAAA;EAAAE,uBAAA,EAAAA,CAAA,KAAAN,0BAAA,CAAAM;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAA9B,YAAc,CAAAK,aAAA;AACd0B,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,gCADd,GAAAH,MAAA,CAAAC,OAAA;AAEAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,+BAAAH,MAFd,CAAAC,OAAA;AAGAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,oCAAAH,MAHd,CAAAC,OAAA;AAIAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,wCAJdH,MAAA,CAAAC,OAAA;AAKAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,wCALdH,MAAA,CAAAC,OAAA;AAMAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,qCANd,GAAAH,MAAA,CAAAC,OAAA;AAOAC,UAAA,CAAA1B,aAAoC,EAAA2B,OAAA,qCAAAH,MAAA,CAAAC,OAAA;AACpC,IAAAZ,cAAA,GAA4Cc,OAAA;AAE5C,IAAAR,YAAA,GAAAQ,OAAA,oBAKO;AACP,IAAAnB,uBAAc,GAAAmB,OAAA,+BAhBd;AAiBAD,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,gCAjBd,GAAAH,MAAA,CAAAC,OAAA;AAkBAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,8BAlBd,EAAAH,MAAA,CAAAC,OAAA;AAmBAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,2BAnBd,GAAAH,MAAA,CAAAC,OAAA;AAoBAC,UAAA,CAAA1B,aAA2C,EAAA2B,OAAA,qBAAAH,MAAA,CAAAC,OAAA;AAC3C,IAAAH,iBAAA,GAAAK,OAAc;AACdD,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,wBAtBd,GAAAH,MAAA,CAAAC,OAAA;AAuBAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,uBAAAH,MAvBd,CAAAC,OAAA;AAwBAC,UAAA,CAAA1B,aAAA,EAAc2B,OAAA,0BAxBd,GAAAH,MAAA,CAAAC,OAAA;AAyBAC,UAAA,CAAA1B,aAA2C,EAAA2B,OAAA,qBAAAH,MAAA,CAAAC,OAAA;AAQ3C,IAAAf,WAAA,GAAAiB,OAAA,iBAGO;AACP,IAAAtB,0BAAA,GAKOsB,OAAA;AACP,IAAAV,0BAAA,GAOOU,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","classifyZeroRecoveryLog","import_recoverZeroClient","clearZeroClientData","import_clearZeroClientData","composeRecoveryLogSink","createZeroClient","import_createZeroClient","defineQueries","import_zero","defineQuery","ensureAuth","import_getAuth","getAuth","isRecoverableZeroStalePokeMessage","makeZeroRecovery","resetShownZeroClientError","import_showZeroClientError","setAuthData","import_state","setEnvironment","setRunner","import_zeroRunner","showZeroClientErrorOnce","module","exports","__reExport","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -23,6 +23,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
23
  }), mod);
24
24
  var multi_exports = {};
25
25
  __export(multi_exports, {
26
+ assertZeroInstancePartition: () => assertZeroInstancePartition,
26
27
  createZeroClientWithDirectQueries: () => createZeroClientWithDirectQueries
27
28
  });
28
29
  module.exports = __toCommonJS(multi_exports);
@@ -35,4 +36,16 @@ function createZeroClientWithDirectQueries(options) {
35
36
  ...options,
36
37
  createDirectUseQuery
37
38
  });
39
+ }
40
+ function assertZeroInstancePartition(kind, entries, partitions) {
41
+ const labels = Object.keys(partitions);
42
+ for (const name of Object.keys(entries)) {
43
+ const owners = labels.filter(label => name in partitions[label]);
44
+ if (owners.length === 0) {
45
+ throw new Error(`[on-zero] generated ${kind} "${name}" is missing from the instance partition (${labels.join(" / ")}) \u2014 add it to exactly one partition table.`);
46
+ }
47
+ if (owners.length > 1) {
48
+ throw new Error(`[on-zero] generated ${kind} "${name}" is claimed by more than one instance partition (${owners.join(", ")}) \u2014 it must belong to exactly one.`);
49
+ }
50
+ }
38
51
  }
@@ -25,6 +25,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
25
25
  }), mod);
26
26
  var multi_exports = {};
27
27
  __export(multi_exports, {
28
+ assertZeroInstancePartition: () => assertZeroInstancePartition,
28
29
  createZeroClientWithDirectQueries: () => createZeroClientWithDirectQueries
29
30
  });
30
31
  module.exports = __toCommonJS(multi_exports);
@@ -38,4 +39,38 @@ function createZeroClientWithDirectQueries(options) {
38
39
  createDirectUseQuery
39
40
  });
40
41
  }
42
+ function assertZeroInstancePartition(kind, entries, partitions) {
43
+ var labels = Object.keys(partitions);
44
+ var _iteratorNormalCompletion = true,
45
+ _didIteratorError = false,
46
+ _iteratorError = void 0;
47
+ try {
48
+ var _loop = function () {
49
+ var name = _step.value;
50
+ var owners = labels.filter(function (label) {
51
+ return name in partitions[label];
52
+ });
53
+ if (owners.length === 0) {
54
+ throw new Error(`[on-zero] generated ${kind} "${name}" is missing from the instance partition (${labels.join(" / ")}) \u2014 add it to exactly one partition table.`);
55
+ }
56
+ if (owners.length > 1) {
57
+ throw new Error(`[on-zero] generated ${kind} "${name}" is claimed by more than one instance partition (${owners.join(", ")}) \u2014 it must belong to exactly one.`);
58
+ }
59
+ };
60
+ for (var _iterator = Object.keys(entries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
61
+ } catch (err) {
62
+ _didIteratorError = true;
63
+ _iteratorError = err;
64
+ } finally {
65
+ try {
66
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
67
+ _iterator.return();
68
+ }
69
+ } finally {
70
+ if (_didIteratorError) {
71
+ throw _iteratorError;
72
+ }
73
+ }
74
+ }
75
+ }
41
76
  //# sourceMappingURL=multi.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","multi_exports","__export","createZeroClientWithDirectQueries","module","exports","import_createZeroClient","require","import_createUseQueryDirect","__reExport","options","createDirectUseQuery","createUseQueryDirect","createZeroClientInternal"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,iCAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAA,CAIOK,aAAA;AACP,IAAAK,uBAAA,GAAAC,OAAqC;AAKrC,IAAAC,2BAAc,GAAAD,OAAA,mCAVd;AAYOE,UAAS,CAAAR,aAAA,EAAAM,OAAA,iCAK+C,GAAAH,MAAA,CAAAC,OAAA;AAC7D,SAAMF,iCAAmDA,CAAAO,OAAA;EACzD,IAAAC,oBAAO,GAAAH,2BAAA,CAAAI,oBAAyC;EAAA,OAC3C,IAAAN,uBAAA,CAAAO,wBAAA;IACH,GAAAH,OAAA;IACDC;EACH","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","multi_exports","__export","assertZeroInstancePartition","createZeroClientWithDirectQueries","module","exports","import_createZeroClient","require","import_createUseQueryDirect","__reExport","options","createDirectUseQuery","createUseQueryDirect","createZeroClientInternal","kind","entries","partitions","labels","Object","keys","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","name","_step","owners","filter","label","length","Error","join"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,2BAAA,EAAAA,CAAA,KAAAA,2BAAA;EAAAC,iCAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,YAAA,CAIOK,aAAA;AACP,IAAAM,uBAAA,GAAAC,OAAqC;AAKrC,IAAAC,2BAAc,GAAAD,OAAA,mCAVd;AAYOE,UAAS,CAAAT,aAAA,EAAAO,OAAA,iCAK+C,GAAAH,MAAA,CAAAC,OAAA;AAC7D,SAAMF,iCAAmDA,CAAAO,OAAA;EACzD,IAAAC,oBAAO,GAAAH,2BAAA,CAAAI,oBAAyC;EAAA,OAC3C,IAAAN,uBAAA,CAAAO,wBAAA;IACH,GAAAH,OAAA;IACDC;EACH;AAYO;AAKL,SAAMT,2BAAqBA,CAAAY,IAAU,EAAAC,OAAA,EAAAC,UAAA;EACrC,IAAAC,MAAA,GAAWC,MAAQ,CAAAC,IAAA,CAAAH,UAAY;EAC7B,IAAAI,yBAAsB,GAAQ;IAAAC,iBAAkB,QAAW;IAAAC,cAAM;EACjE;IACE,IAAAC,KAAM,GAAI,SAAAA,CAAA;MAAA,IACRC,IAAA,GAAAC,KAAA,CAAA1B,KAAA;MAEF,IAAA2B,MAAA,GAAAT,MAAA,CAAAU,MAAA,WAAAC,KAAA;QACF,OAAAJ,IAAA,IAAAR,UAAA,CAAAY,KAAA;MACA,EAAI;MACF,IAAAF,MAAU,CAAAG,MAAA;QACR,UAAAC,KAAA,wBAAoChB,IAAA,KAAAU,IAAA,6CACvBP,MAAK,CAAAc,IAAK;MACzB;MACF,IAAAL,MAAA,CAAAG,MAAA;QACF,UAAAC,KAAA,wBAAAhB,IAAA,KAAAU,IAAA,qDAAAE,MAAA,CAAAK,IAAA;MACF","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ var import_vitest = require("vitest");
2
+ var import_multi = require("./multi.cjs");
3
+ (0, import_vitest.describe)("assertZeroInstancePartition", () => {
4
+ const control = {
5
+ user: 1,
6
+ workspace: 1
7
+ };
8
+ const project = {
9
+ message: 1,
10
+ thread: 1
11
+ };
12
+ (0, import_vitest.test)("passes when every namespace belongs to exactly one partition", () => {
13
+ (0, import_vitest.expect)(() => (0, import_multi.assertZeroInstancePartition)("query namespace", {
14
+ user: {},
15
+ workspace: {},
16
+ message: {},
17
+ thread: {}
18
+ }, {
19
+ control,
20
+ project
21
+ })).not.toThrow();
22
+ });
23
+ (0, import_vitest.test)("throws on a namespace missing from every partition (the planGrant drift)", () => {
24
+ (0, import_vitest.expect)(() => (0, import_multi.assertZeroInstancePartition)("query namespace", {
25
+ user: {},
26
+ planGrant: {}
27
+ }, {
28
+ control,
29
+ project
30
+ })).toThrow(/planGrant.*missing from the instance partition/);
31
+ });
32
+ (0, import_vitest.test)("throws on a namespace claimed by more than one partition", () => {
33
+ (0, import_vitest.expect)(() => (0, import_multi.assertZeroInstancePartition)("query namespace", {
34
+ user: {}
35
+ }, {
36
+ control,
37
+ project: {
38
+ user: 1
39
+ }
40
+ })).toThrow(/user.*more than one instance partition/);
41
+ });
42
+ });
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest");
4
+ var import_multi = require("./multi.native.js");
5
+ (0, import_vitest.describe)("assertZeroInstancePartition", function () {
6
+ var control = {
7
+ user: 1,
8
+ workspace: 1
9
+ };
10
+ var project = {
11
+ message: 1,
12
+ thread: 1
13
+ };
14
+ (0, import_vitest.test)("passes when every namespace belongs to exactly one partition", function () {
15
+ (0, import_vitest.expect)(function () {
16
+ return (0, import_multi.assertZeroInstancePartition)("query namespace", {
17
+ user: {},
18
+ workspace: {},
19
+ message: {},
20
+ thread: {}
21
+ }, {
22
+ control,
23
+ project
24
+ });
25
+ }).not.toThrow();
26
+ });
27
+ (0, import_vitest.test)("throws on a namespace missing from every partition (the planGrant drift)", function () {
28
+ (0, import_vitest.expect)(function () {
29
+ return (0, import_multi.assertZeroInstancePartition)("query namespace", {
30
+ user: {},
31
+ planGrant: {}
32
+ }, {
33
+ control,
34
+ project
35
+ });
36
+ }).toThrow(/planGrant.*missing from the instance partition/);
37
+ });
38
+ (0, import_vitest.test)("throws on a namespace claimed by more than one partition", function () {
39
+ (0, import_vitest.expect)(function () {
40
+ return (0, import_multi.assertZeroInstancePartition)("query namespace", {
41
+ user: {}
42
+ }, {
43
+ control,
44
+ project: {
45
+ user: 1
46
+ }
47
+ });
48
+ }).toThrow(/user.*more than one instance partition/);
49
+ });
50
+ });
51
+ //# sourceMappingURL=multiPartition.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_multi","describe","control","user","workspace","project","message","thread","test","expect","assertZeroInstancePartition","not","toThrow","planGrant"],"sources":["../../src/multiPartition.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAEA,IAAAA,aAAA,GAA4CC,OAAA;AAAA,IAE5CC,YAAA,GAAAD,OAAA,oBAAS;AACP,IAAAD,aAAM,CAAUG,QAAQ,+BAAgB;EACxC,IAAAC,OAAM;IAENC,IAAA;IACEC,SAAA;EAAA;EACE,IAAAC,OACE;IAAAC,OACE;IAAiDC,MACjD;EAAiB;EACrB,EACF,EAAET,aAAY,CAAAU,IAAA;IACf,IAAAV,aAAA,CAAAW,MAAA;MAED,WAAAT,YAAK,CAAAU,2BAAA;QACHP,IAAA;QAAOC,SACL;QACEE,OAAA;QACAC,MAAE,EAAM,CAAC;MAAiB,GAC1B;QACFL,OAAA;QACAG;MACH;IAED,GAAAM,GAAA,CAAAC,OAAA;EACE;EAAA,IAAOd,aACL,CAAAU,IAAA;IAAA,IACEV,aAAA,CAAAW,MAAA;MAAA,OACE,IAAOT,YAAE,CAAAU,2BAAA;QACXP,IAAE;QACJU,SAAA;MACA;QACHX,OAAA;QACFG","ignoreList":[]}
@@ -0,0 +1,164 @@
1
+ import { createSchema, string, table } from "@rocicorp/zero";
2
+ import { act } from "react";
3
+ import { createRoot } from "react-dom/client";
4
+ import { afterEach, beforeEach, expect, test, vi } from "vitest";
5
+ import { createZeroClient } from "./createZeroClient.mjs";
6
+ import { jsx } from "react/jsx-runtime";
7
+ const fakeZero = vi.hoisted(() => {
8
+ class FakeConnectionState {
9
+ current;
10
+ listeners = /* @__PURE__ */new Set();
11
+ constructor(initial) {
12
+ this.current = initial;
13
+ }
14
+ subscribe = cb => {
15
+ this.listeners.add(cb);
16
+ return () => {
17
+ this.listeners.delete(cb);
18
+ };
19
+ };
20
+ set(next) {
21
+ this.current = next;
22
+ for (const cb of this.listeners) cb();
23
+ }
24
+ }
25
+ class FakeZero {
26
+ context = {};
27
+ connection = {
28
+ state: new FakeConnectionState({
29
+ name: "connecting"
30
+ }),
31
+ connect: vi.fn(async () => {})
32
+ };
33
+ delete = vi.fn(async () => ({
34
+ errors: []
35
+ }));
36
+ close = vi.fn();
37
+ run = vi.fn(async () => []);
38
+ preload = vi.fn(() => ({
39
+ cleanup: () => {},
40
+ complete: Promise.resolve()
41
+ }));
42
+ constructor() {
43
+ instances.push(this);
44
+ }
45
+ }
46
+ const instances = [];
47
+ return {
48
+ FakeZero,
49
+ FakeConnectionState,
50
+ instances
51
+ };
52
+ });
53
+ vi.mock("@rocicorp/zero", async importOriginal => {
54
+ const actual = await importOriginal();
55
+ return {
56
+ ...actual,
57
+ Zero: fakeZero.FakeZero
58
+ };
59
+ });
60
+ globalThis.IS_REACT_ACT_ENVIRONMENT = true;
61
+ const noteTable = table("note").columns({
62
+ id: string(),
63
+ body: string()
64
+ }).primaryKey("id");
65
+ const schema = createSchema({
66
+ tables: [noteTable]
67
+ });
68
+ const client = createZeroClient({
69
+ schema,
70
+ models: {},
71
+ groupedQueries: {},
72
+ instanceName: "connection-test"
73
+ });
74
+ let container;
75
+ let root;
76
+ beforeEach(() => {
77
+ fakeZero.instances.length = 0;
78
+ container = document.createElement("div");
79
+ root = null;
80
+ delete document.body.dataset.zeroState;
81
+ delete document.body.dataset.zeroConnected;
82
+ delete document.body.dataset.zeroReason;
83
+ });
84
+ afterEach(() => {
85
+ if (root) act(() => root?.unmount());
86
+ });
87
+ async function mount(extraProps = {}, userID = "conn") {
88
+ root = createRoot(container);
89
+ await act(async () => {
90
+ root?.render(/* @__PURE__ */jsx(client.ProvideZero, {
91
+ cacheURL: "http://127.0.0.1:7788/zero",
92
+ userID,
93
+ ...extraProps,
94
+ children: /* @__PURE__ */jsx("span", {
95
+ children: "ok"
96
+ })
97
+ }));
98
+ await Promise.resolve();
99
+ });
100
+ return fakeZero.instances.at(-1);
101
+ }
102
+ test("refreshAuth reconnects in place on needs-auth, once per transition", async () => {
103
+ const refreshAuth = vi.fn(async () => "fresh-token");
104
+ const instance = await mount({
105
+ refreshAuth
106
+ }, "conn-auth");
107
+ await act(async () => {
108
+ instance.connection.state.set({
109
+ name: "needs-auth",
110
+ reason: "token expired"
111
+ });
112
+ await Promise.resolve();
113
+ });
114
+ expect(refreshAuth).toHaveBeenCalledTimes(1);
115
+ await act(async () => {
116
+ await Promise.resolve();
117
+ });
118
+ expect(instance.connection.connect).toHaveBeenCalledWith({
119
+ auth: "fresh-token"
120
+ });
121
+ });
122
+ test("stale-poke error reconnects instead of surfacing a fatal error", async () => {
123
+ const events = [];
124
+ const off = client.zeroEvents.listen(event => {
125
+ if (event) events.push(event);
126
+ });
127
+ const instance = await mount({}, "conn-stale");
128
+ await act(async () => {
129
+ instance.connection.state.set({
130
+ name: "error",
131
+ reason: "Server returned unexpected base cookie during sync"
132
+ });
133
+ await Promise.resolve();
134
+ });
135
+ expect(instance.connection.connect).toHaveBeenCalledTimes(1);
136
+ expect(instance.connection.connect).toHaveBeenCalledWith();
137
+ expect(events.some(event => event.type === "error")).toBe(false);
138
+ off();
139
+ });
140
+ test("connectionDataset mirrors connection state onto the body dataset", async () => {
141
+ const instance = await mount({
142
+ connectionDataset: true
143
+ }, "conn-dataset");
144
+ await act(async () => {
145
+ instance.connection.state.set({
146
+ name: "connected"
147
+ });
148
+ await Promise.resolve();
149
+ });
150
+ expect(document.body.dataset.zeroState).toBe("connected");
151
+ expect(document.body.dataset.zeroConnected).toBe("true");
152
+ expect(document.body.dataset.zeroCacheUrl).toBe("http://127.0.0.1:7788/zero");
153
+ await act(async () => {
154
+ instance.connection.state.set({
155
+ name: "error",
156
+ reason: "boom"
157
+ });
158
+ await Promise.resolve();
159
+ });
160
+ expect(document.body.dataset.zeroState).toBe("error");
161
+ expect(document.body.dataset.zeroConnected).toBeUndefined();
162
+ expect(document.body.dataset.zeroReason).toBe("boom");
163
+ });
164
+ //# sourceMappingURL=createZeroClient.connection.test.mjs.map