on-zero 0.4.30 → 0.4.32

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 (75) hide show
  1. package/dist/cjs/createZeroClient.authData.test.cjs +67 -0
  2. package/dist/cjs/createZeroClient.authData.test.native.js +72 -0
  3. package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -0
  4. package/dist/cjs/createZeroClient.cjs +41 -26
  5. package/dist/cjs/createZeroClient.native.js +47 -26
  6. package/dist/cjs/createZeroClient.native.js.map +1 -1
  7. package/dist/cjs/createZeroServer.cjs +35 -33
  8. package/dist/cjs/createZeroServer.native.js +36 -34
  9. package/dist/cjs/createZeroServer.native.js.map +1 -1
  10. package/dist/cjs/helpers/recoverZeroClient.cjs +101 -0
  11. package/dist/cjs/helpers/recoverZeroClient.native.js +130 -0
  12. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -0
  13. package/dist/cjs/helpers/recoverZeroClient.test.cjs +201 -0
  14. package/dist/cjs/helpers/recoverZeroClient.test.native.js +256 -0
  15. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -0
  16. package/dist/cjs/index.cjs +4 -1
  17. package/dist/cjs/index.native.js +3 -0
  18. package/dist/cjs/index.native.js.map +1 -1
  19. package/dist/cjs/multiInstance.test.cjs +4 -3
  20. package/dist/cjs/multiInstance.test.native.js +6 -6
  21. package/dist/cjs/multiInstance.test.native.js.map +1 -1
  22. package/dist/esm/createZeroClient.authData.test.mjs +68 -0
  23. package/dist/esm/createZeroClient.authData.test.mjs.map +1 -0
  24. package/dist/esm/createZeroClient.authData.test.native.js +70 -0
  25. package/dist/esm/createZeroClient.authData.test.native.js.map +1 -0
  26. package/dist/esm/createZeroClient.mjs +42 -27
  27. package/dist/esm/createZeroClient.mjs.map +1 -1
  28. package/dist/esm/createZeroClient.native.js +48 -27
  29. package/dist/esm/createZeroClient.native.js.map +1 -1
  30. package/dist/esm/createZeroServer.mjs +35 -33
  31. package/dist/esm/createZeroServer.mjs.map +1 -1
  32. package/dist/esm/createZeroServer.native.js +36 -34
  33. package/dist/esm/createZeroServer.native.js.map +1 -1
  34. package/dist/esm/helpers/recoverZeroClient.mjs +74 -0
  35. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -0
  36. package/dist/esm/helpers/recoverZeroClient.native.js +100 -0
  37. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -0
  38. package/dist/esm/helpers/recoverZeroClient.test.mjs +202 -0
  39. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -0
  40. package/dist/esm/helpers/recoverZeroClient.test.native.js +254 -0
  41. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -0
  42. package/dist/esm/index.js +2 -1
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/index.mjs +2 -1
  45. package/dist/esm/index.mjs.map +1 -1
  46. package/dist/esm/index.native.js +2 -1
  47. package/dist/esm/index.native.js.map +1 -1
  48. package/dist/esm/multiInstance.test.mjs +4 -3
  49. package/dist/esm/multiInstance.test.mjs.map +1 -1
  50. package/dist/esm/multiInstance.test.native.js +6 -6
  51. package/dist/esm/multiInstance.test.native.js.map +1 -1
  52. package/package.json +2 -2
  53. package/src/createZeroClient.authData.test.tsx +73 -0
  54. package/src/createZeroClient.tsx +60 -47
  55. package/src/createZeroServer.ts +48 -44
  56. package/src/helpers/recoverZeroClient.test.ts +172 -0
  57. package/src/helpers/recoverZeroClient.ts +173 -0
  58. package/src/index.ts +5 -0
  59. package/src/multiInstance.test.tsx +5 -3
  60. package/src/multiInstanceNested.test.tsx +1 -1
  61. package/src/types.ts +6 -1
  62. package/types/createZeroClient.authData.test.d.ts +5 -0
  63. package/types/createZeroClient.authData.test.d.ts.map +1 -0
  64. package/types/createZeroClient.d.ts +3 -2
  65. package/types/createZeroClient.d.ts.map +1 -1
  66. package/types/createZeroServer.d.ts +4 -4
  67. package/types/createZeroServer.d.ts.map +1 -1
  68. package/types/helpers/recoverZeroClient.d.ts +17 -0
  69. package/types/helpers/recoverZeroClient.d.ts.map +1 -0
  70. package/types/helpers/recoverZeroClient.test.d.ts +2 -0
  71. package/types/helpers/recoverZeroClient.test.d.ts.map +1 -0
  72. package/types/index.d.ts +1 -0
  73. package/types/index.d.ts.map +1 -1
  74. package/types/types.d.ts +6 -0
  75. package/types/types.d.ts.map +1 -1
package/dist/esm/index.js CHANGED
@@ -21,5 +21,6 @@ export * from "./zql.mjs";
21
21
  import { defineQuery, defineQueries } from "@rocicorp/zero";
22
22
  import { clearZeroClientData } from "./helpers/clearZeroClientData.mjs";
23
23
  import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.mjs";
24
- export { clearZeroClientData, defineQueries, defineQuery, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
24
+ import { makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.mjs";
25
+ export { clearZeroClientData, composeRecoveryLogSink, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
1
+ {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,gBAAA,EACAC,sBAAA,QAEK","ignoreList":[]}
@@ -21,5 +21,6 @@ export * from "./zql.mjs";
21
21
  import { defineQuery, defineQueries } from "@rocicorp/zero";
22
22
  import { clearZeroClientData } from "./helpers/clearZeroClientData.mjs";
23
23
  import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.mjs";
24
- export { clearZeroClientData, defineQueries, defineQuery, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
24
+ import { makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.mjs";
25
+ export { clearZeroClientData, composeRecoveryLogSink, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
25
26
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK","ignoreList":[]}
1
+ {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,gBAAA,EACAC,sBAAA,QAEK","ignoreList":[]}
@@ -21,5 +21,6 @@ export * from "./zql.native.js";
21
21
  import { defineQuery, defineQueries } from "@rocicorp/zero";
22
22
  import { clearZeroClientData } from "./helpers/clearZeroClientData.native.js";
23
23
  import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.native.js";
24
- export { clearZeroClientData, defineQueries, defineQuery, ensureAuth, getAuth, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
24
+ import { makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.native.js";
25
+ export { clearZeroClientData, composeRecoveryLogSink, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
25
26
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SAAAC,mBAAA;AAAA,SACEC,uBAAA,EAAAC,yBAAA;AAAA,SAGFF,mBAAA,EACED,aAAA,EACAD,WAAA,EAAAL,UAGK,E","ignoreList":[]}
1
+ {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SAAAC,mBAAA;AAAA,SACEC,uBAAA,EAAAC,yBAAA;AAAA,SAEKC,gBAAA,EAAAC,sBAAA;AACP,SACEJ,mBAAA,EACAI,sBAAA,EAAAL,aAGK,EACPD,WAAA,EACEL,UAAA,EACAC,OAAA,EAAAS,gBAEK,E","ignoreList":[]}
@@ -315,9 +315,10 @@ describe("combineZeroClients facade", () => {
315
315
  type: "error",
316
316
  message: "from-b"
317
317
  });
318
- expect(seen.map(event => event?.message)).toEqual(["from-a", "from-b"]);
319
- expect(a.zeroEvents.value?.message).toBe("from-a");
320
- expect(b.zeroEvents.value?.message).toBe("from-b");
318
+ const messageOf = event => event?.type === "error" ? event.message : void 0;
319
+ expect(seen.map(messageOf)).toEqual(["from-a", "from-b"]);
320
+ expect(messageOf(a.zeroEvents.value)).toBe("from-a");
321
+ expect(messageOf(b.zeroEvents.value)).toBe("from-b");
321
322
  });
322
323
  });
323
324
  //# sourceMappingURL=multiInstance.test.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createSchema","string","table","createEmitter","describe","expect","test","vi","combineZeroClients","createZeroClient","getInstanceForNamespace","registerClientInstance","registerQuery","run","setRunner","userTable","columns","id","name","primaryKey","taskTable","title","schema","tables","makeQueryFn","args","makeClient","instanceName","namespace","byId","client","models","groupedQueries","fakeClient","namespaces","zeroStub","customQueries","useQuery","fn","useQueryDirect","usePermission","usePermissionDirect","zero","preload","getQuery","zeroEvents","ControlQueries","children","control","project","controlRunner","_args","from","projectRunner","runner","ambientRunner","resolves","toEqual","not","toHaveBeenCalled","request","mock","calls","query","queryName","toBe","ambient","toHaveBeenCalledTimes","toThrow","mdlThing","mutate","insert","a","b","options","seenByB","listen","event","push","emit","type","message","value","clientID","insertSpy","updateSpy","fzUser","userID","fzTask","update","combined","toHaveBeenCalledWith","unknownNs","userQuery","taskQuery","anonymous","aQuery","bQuery","inner","seen","map"],"sources":["../../src/multiInstance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSchema","string","table","createEmitter","describe","expect","test","vi","combineZeroClients","createZeroClient","getInstanceForNamespace","registerClientInstance","registerQuery","run","setRunner","userTable","columns","id","name","primaryKey","taskTable","title","schema","tables","makeQueryFn","args","makeClient","instanceName","namespace","byId","client","models","groupedQueries","fakeClient","namespaces","zeroStub","customQueries","useQuery","fn","useQueryDirect","usePermission","usePermissionDirect","zero","preload","getQuery","zeroEvents","ControlQueries","children","control","project","controlRunner","_args","from","projectRunner","runner","ambientRunner","resolves","toEqual","not","toHaveBeenCalled","request","mock","calls","query","queryName","toBe","ambient","toHaveBeenCalledTimes","toThrow","mdlThing","mutate","insert","a","b","options","seenByB","listen","event","push","emit","type","message","value","clientID","insertSpy","updateSpy","fzUser","userID","fzTask","update","combined","toHaveBeenCalledWith","unknownNs","userQuery","taskQuery","anonymous","aQuery","bQuery","inner","seen","messageOf","map"],"sources":["../../src/multiInstance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -355,7 +355,6 @@ describe("combineZeroClients facade", function () {
355
355
  }).toThrow(/not one of the passed clients/);
356
356
  });
357
357
  test("combined zeroEvents relays every instance", function () {
358
- var _a_zeroEvents_value, _b_zeroEvents_value;
359
358
  var {
360
359
  client: a
361
360
  } = makeClient("relay-a", "relayA");
@@ -375,11 +374,12 @@ describe("combineZeroClients facade", function () {
375
374
  type: "error",
376
375
  message: "from-b"
377
376
  });
378
- expect(seen.map(function (event) {
379
- return event === null || event === void 0 ? void 0 : event.message;
380
- })).toEqual(["from-a", "from-b"]);
381
- expect((_a_zeroEvents_value = a.zeroEvents.value) === null || _a_zeroEvents_value === void 0 ? void 0 : _a_zeroEvents_value.message).toBe("from-a");
382
- expect((_b_zeroEvents_value = b.zeroEvents.value) === null || _b_zeroEvents_value === void 0 ? void 0 : _b_zeroEvents_value.message).toBe("from-b");
377
+ var messageOf = function (event) {
378
+ return (event === null || event === void 0 ? void 0 : event.type) === "error" ? event.message : void 0;
379
+ };
380
+ expect(seen.map(messageOf)).toEqual(["from-a", "from-b"]);
381
+ expect(messageOf(a.zeroEvents.value)).toBe("from-a");
382
+ expect(messageOf(b.zeroEvents.value)).toBe("from-b");
383
383
  });
384
384
  });
385
385
  //# sourceMappingURL=multiInstance.test.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createSchema","string","table","createEmitter","describe","expect","test","vi","combineZeroClients","createZeroClient","getInstanceForNamespace","registerClientInstance","registerQuery","run","setRunner","userTable","columns","id","name","primaryKey","taskTable","title","schema","tables","makeQueryFn","args","makeClient","instanceName","namespace","byId","client","models","groupedQueries","fakeClient","namespaces","zeroStub","customQueries","useQuery","fn","useQueryDirect","usePermission","usePermissionDirect","zero","preload","getQuery","zeroEvents","ControlQueries","param","children","control","project","controlRunner","_len","arguments","length","_args","Array","_key","from","projectRunner","runner","ambientRunner","resolves","toEqual","not","toHaveBeenCalled","request","mock","calls","query","queryName","toBe","ambient","toHaveBeenCalledTimes","toThrow","_getInstanceForNamespace","mdlThing","mutate","insert","_a_zeroEvents_options","_b_zeroEvents_options","a","b","options","seenByB","listen","event","push","emit","type","message","value","_client_zeroEvents_options"],"sources":["../../src/multiInstance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSchema","string","table","createEmitter","describe","expect","test","vi","combineZeroClients","createZeroClient","getInstanceForNamespace","registerClientInstance","registerQuery","run","setRunner","userTable","columns","id","name","primaryKey","taskTable","title","schema","tables","makeQueryFn","args","makeClient","instanceName","namespace","byId","client","models","groupedQueries","fakeClient","namespaces","zeroStub","customQueries","useQuery","fn","useQueryDirect","usePermission","usePermissionDirect","zero","preload","getQuery","zeroEvents","ControlQueries","param","children","control","project","controlRunner","_len","arguments","length","_args","Array","_key","from","projectRunner","runner","ambientRunner","resolves","toEqual","not","toHaveBeenCalled","request","mock","calls","query","queryName","toBe","ambient","toHaveBeenCalledTimes","toThrow","_getInstanceForNamespace","mdlThing","mutate","insert","_a_zeroEvents_options","_b_zeroEvents_options","a","b","options","seenByB","listen","event","push","emit","type","message","value","_client_zeroEvents_options"],"sources":["../../src/multiInstance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.4.30",
3
+ "version": "0.4.32",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -77,7 +77,7 @@
77
77
  }
78
78
  },
79
79
  "dependencies": {
80
- "@take-out/helpers": "0.4.30",
80
+ "@take-out/helpers": "0.4.32",
81
81
  "chokidar": "^4.0.3",
82
82
  "citty": "^0.1.6",
83
83
  "valibot": "^1.1.0"
@@ -0,0 +1,73 @@
1
+ // @vitest-environment jsdom
2
+ //
3
+ // authData stabilization: ProvideZero keeps the last non-null authData across a
4
+ // transient blip (session refresh / tab wake) so mutations never see null
5
+ // mid-transition — but a REAL logout (auth token gone) must clear it, or client
6
+ // mutators keep running as the old user until the instance rotates.
7
+
8
+ import { createSchema, string, table } from '@rocicorp/zero'
9
+ import { act } from 'react'
10
+ import { createRoot, type Root } from 'react-dom/client'
11
+ import { afterEach, beforeEach, expect, test } from 'vitest'
12
+
13
+ import { createZeroClient } from './createZeroClient'
14
+ import { getAuthData } from './state'
15
+
16
+ declare global {
17
+ // eslint-disable-next-line no-var
18
+ var IS_REACT_ACT_ENVIRONMENT: boolean | undefined
19
+ }
20
+ globalThis.IS_REACT_ACT_ENVIRONMENT = true
21
+
22
+ const userTable = table('user').columns({ id: string(), name: string() }).primaryKey('id')
23
+ const schema = createSchema({ tables: [userTable] })
24
+
25
+ const client = createZeroClient({
26
+ schema,
27
+ models: {},
28
+ groupedQueries: {},
29
+ instanceName: 'authdata-test',
30
+ })
31
+
32
+ let container: HTMLDivElement
33
+ let root: Root
34
+
35
+ beforeEach(() => {
36
+ container = document.createElement('div')
37
+ root = createRoot(container)
38
+ })
39
+
40
+ afterEach(() => {
41
+ act(() => root.unmount())
42
+ })
43
+
44
+ function renderWith(props: {
45
+ auth?: string
46
+ authData: { id: string } | null
47
+ userID: string
48
+ }) {
49
+ act(() => {
50
+ root.render(
51
+ <client.ProvideZero
52
+ auth={props.auth}
53
+ authData={props.authData}
54
+ userID={props.userID}
55
+ >
56
+ <span>ok</span>
57
+ </client.ProvideZero>,
58
+ )
59
+ })
60
+ }
61
+
62
+ test('authData clears on logout (token gone) but survives a transient blip', () => {
63
+ renderWith({ auth: 'tok', authData: { id: 'u1' }, userID: 'u1' })
64
+ expect(getAuthData()).toEqual({ id: 'u1' })
65
+
66
+ // transient authData blip with the token still present → keep the last value
67
+ renderWith({ auth: 'tok', authData: null, userID: 'u1' })
68
+ expect(getAuthData()).toEqual({ id: 'u1' })
69
+
70
+ // real logout: no token + no authData → cleared (mutators must not run as u1)
71
+ renderWith({ authData: null, userID: 'anon' })
72
+ expect(getAuthData()).toBeNull()
73
+ })
@@ -1,6 +1,6 @@
1
1
  import { defineQueries, defineQuery, Zero as ZeroClient } from '@rocicorp/zero'
2
2
  import { useConnectionState, useZero, ZeroProvider } from '@rocicorp/zero/react'
3
- import { createEmitter, useEmitterValue } from '@take-out/helpers'
3
+ import { createEmitter } from '@take-out/helpers'
4
4
  import {
5
5
  createContext,
6
6
  memo,
@@ -22,6 +22,11 @@ import {
22
22
  } from './createUseQuery'
23
23
  import { registerClientInstance } from './instanceRegistry'
24
24
  import { createMutators } from './helpers/createMutators'
25
+ import {
26
+ composeRecoveryLogSink,
27
+ makeZeroRecovery,
28
+ type ZeroRecoveryDeps,
29
+ } from './helpers/recoverZeroClient'
25
30
  import { getAuth } from './helpers/getAuth'
26
31
  import { getAllMutationsPermissions, getMutationsPermissions } from './modelRegistry'
27
32
  import { registerQuery } from './queryRegistry'
@@ -226,8 +231,8 @@ export function createZeroClient<
226
231
  const zeroEvents = createEmitter<ZeroEvent | null>(`zero${emitterScope}`, null)
227
232
 
228
233
  // bumped after commit whenever the mounted zero instance changes (first
229
- // mount, identity change, client-state-not-found rotation) — the direct
230
- // query path re-materializes its views against the new instance
234
+ // mount, identity change) — the direct query path re-materializes its views
235
+ // against the new instance
231
236
  const zeroInstanceVersion = createEmitter<number>(
232
237
  `zero-instance-version${emitterScope}`,
233
238
  0,
@@ -316,24 +321,13 @@ export function createZeroClient<
316
321
  // with different identities would thrash this slot.
317
322
  let cachedZero: { key: string; instance: ZeroInstance } | null = null
318
323
 
319
- // bumping this recreates the instance with the same options — parity with
320
- // ZeroProvider's built-in onClientStateNotFound rotation. the pending flag
321
- // mirrors upstream's rotationPendingRef: a storm of client-state-not-found
322
- // callbacks coalesces into ONE rotation, re-armed when the fresh instance
323
- // is created — without it a new instance that immediately re-fires the
324
- // callback rotation-loops forever.
325
- const zeroInstanceGeneration = createEmitter<number>(
326
- `zero-instance-generation${emitterScope}`,
327
- 0,
328
- )
329
- let zeroRotationPending = false
330
-
331
324
  const ProvideZero = ({
332
325
  children,
333
326
  authData: authDataIn,
334
327
  disable,
335
328
  transport,
336
329
  pullIntervalMs = 30_000,
330
+ beforeReload,
337
331
  ...props
338
332
  }: Omit<ZeroOptions<Schema, ZeroMutators>, 'schema' | 'mutators'> & {
339
333
  children: ReactNode
@@ -346,8 +340,28 @@ export function createZeroClient<
346
340
  // http-pull only: every open connection also pulls on this interval so
347
341
  // server-initiated changes arrive without a client-side trigger
348
342
  pullIntervalMs?: number
343
+ // awaited before a self-healing recovery reload — e.g. wait for the dev
344
+ // origin to be reachable so the reload doesn't hit a restarting server.
345
+ beforeReload?: () => Promise<void>
349
346
  }) => {
350
- const authData = (authDataIn ?? null) as AuthData
347
+ // resolve the auth token first: a real logout (token gone) must clear
348
+ // authData so client mutators don't keep running as the old user, while a
349
+ // transient authData blip with the token still present (session refresh, tab
350
+ // wake) keeps the last value so mutations never see null mid-transition.
351
+ const auth = 'auth' in props ? (props as { auth?: string | null }).auth : undefined
352
+ const hasAuth = typeof auth === 'string'
353
+
354
+ // stabilize authData across transient gaps, but ONLY while authed — bakes in
355
+ // what consumers hand-rolled with a ref, and additionally clears on logout
356
+ // (the bare ref pattern does not, leaving mutators running as the old user
357
+ // until the instance rotates).
358
+ const stableAuthDataRef = useRef<AuthData | null>(authDataIn ?? null)
359
+ if (authDataIn) {
360
+ stableAuthDataRef.current = authDataIn
361
+ } else if (!hasAuth) {
362
+ stableAuthDataRef.current = null
363
+ }
364
+ const authData = (authDataIn ?? stableAuthDataRef.current ?? null) as AuthData
351
365
 
352
366
  // update global authData synchronously during render so mutations always have latest auth
353
367
  // (mutations read auth dynamically via getAuthData() to avoid stale closure race condition)
@@ -366,11 +380,6 @@ export function createZeroClient<
366
380
  // eslint-disable-next-line react-hooks/exhaustive-deps
367
381
  }, [])
368
382
 
369
- const generation = useEmitterValue(zeroInstanceGeneration)
370
-
371
- const auth = 'auth' in props ? (props as { auth?: string | null }).auth : undefined
372
- const hasAuth = typeof auth === 'string'
373
-
374
383
  // identity = every primitive option except the auth token value (token
375
384
  // changes refresh in place below; logged-in <-> logged-out still rotates
376
385
  // via hasAuth, matching zero's documented provider semantics). function
@@ -383,7 +392,6 @@ export function createZeroClient<
383
392
  )
384
393
  .sort(([a], [b]) => (a < b ? -1 : 1)),
385
394
  hasAuth,
386
- generation,
387
395
  transport,
388
396
  ])
389
397
 
@@ -413,33 +421,38 @@ export function createZeroClient<
413
421
  }
414
422
  ensureHttpPullTransport({ origin: serverURL, pullIntervalMs })
415
423
  }
416
- cached = {
417
- key: instanceKey,
418
- instance: new ZeroClient<Schema, ZeroMutators>({
419
- kvStore: 'mem',
420
- ...options,
421
- schema,
422
- // @ts-expect-error same erasure ZeroProvider needed
423
- mutators,
424
- onClientStateNotFound: () => {
425
- // consumer callback wins; recreate-with-same-options is the
426
- // fallback, mirroring ZeroProvider's internal rotation.
427
- if (options.onClientStateNotFound) {
428
- try {
429
- options.onClientStateNotFound()
430
- return
431
- } catch {
432
- // fall through to rotation
433
- }
434
- }
435
- if (zeroRotationPending) return
436
- zeroRotationPending = true
437
- zeroInstanceGeneration.emit(zeroInstanceGeneration.value + 1)
438
- },
439
- }),
424
+ // recovery closures reach the instance through this ref so they always
425
+ // delete the CURRENT instance's own store (set right after construction;
426
+ // the handlers only fire post-mount).
427
+ const instanceRef: { current: ZeroInstance | null } = { current: null }
428
+ const recoveryDeps: ZeroRecoveryDeps = {
429
+ deleteLocalState: () => instanceRef.current?.delete() ?? Promise.resolve(),
430
+ zeroEvents,
431
+ beforeReload,
440
432
  }
433
+ const recovery = makeZeroRecovery(recoveryDeps)
434
+ const createdInstance = new ZeroClient<Schema, ZeroMutators>({
435
+ kvStore: 'mem',
436
+ ...options,
437
+ schema,
438
+ // @ts-expect-error same erasure ZeroProvider needed
439
+ mutators,
440
+ // when the consumer brings no logSink, install ours: it preserves
441
+ // Zero's console output AND watches for the local-store-lost signature.
442
+ // a consumer with its own logSink owns log-based recovery (no
443
+ // double-fire with e.g. soot's origin-gated recovery).
444
+ logSink: options.logSink ?? composeRecoveryLogSink(recoveryDeps),
445
+ // consumer handlers win; otherwise on-zero's default self-healing
446
+ // recovery covers EVERY reason (drop local state + reload, guarded) —
447
+ // passing these to Zero disables its built-in reload, so any reason we
448
+ // left unhandled would fatal-blank the app forever.
449
+ onUpdateNeeded: options.onUpdateNeeded ?? recovery.onUpdateNeeded,
450
+ onClientStateNotFound:
451
+ options.onClientStateNotFound ?? recovery.onClientStateNotFound,
452
+ })
453
+ instanceRef.current = createdInstance
454
+ cached = { key: instanceKey, instance: createdInstance }
441
455
  cachedZero = cached
442
- zeroRotationPending = false
443
456
  }
444
457
  setInstance(cached.instance)
445
458
  // identity is fully captured by instanceKey; function props are bound
@@ -223,53 +223,57 @@ export function createZeroServer<
223
223
  )
224
224
  }
225
225
 
226
+ const handler = (name: string, args: unknown) => {
227
+ // per-model permission queries registered by on-zero at runtime
228
+ if (name.startsWith('permission.')) {
229
+ const table = name.slice('permission.'.length)
230
+ const { objOrId } = args as {
231
+ objOrId: string | Record<string, any>
232
+ }
233
+ const perm = getMutationsPermissions(table)
234
+ if (!perm) {
235
+ throw new Error(`[permission] no permission defined for table: ${table}`)
236
+ }
237
+ // wrap with setEvaluatingPermission so serverWhere evaluates
238
+ // even when environment is 'client' (SSR hydration)
239
+ setEvaluatingPermission(true)
240
+ try {
241
+ return (getZQL() as any)[table]
242
+ .where((eb: any) => {
243
+ return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)
244
+ })
245
+ .one()
246
+ } finally {
247
+ setEvaluatingPermission(false)
248
+ }
249
+ }
250
+
251
+ // run validation hook if provided (must be sync - throw to reject)
252
+ if (validateQuery) {
253
+ validateQuery({ authData, queryName: name, params: args })
254
+ }
255
+
256
+ const query = (mustGetQuery as any)(queries, name)
257
+ return query.fn({ args, ctx: authData })
258
+ }
259
+
260
+ // when there is an authenticated user, pin the connection to its id so zero
261
+ // server-validates it (a client cannot claim another user's id). when logged
262
+ // out there is no server identity to validate against, so use zero's
263
+ // client-fallback path (the legacy call signature) which trusts whatever id
264
+ // the client declared — "anon", "guest", a per-device id, etc. on-zero stays
265
+ // un-prescriptive about the anon convention; permissions still gate access by
266
+ // authData. passing userID:null to the object form instead would make zero
267
+ // server-validate against null and reject every anon client, since a string
268
+ // connection userID can never equal null.
269
+ const userID = typeof authData?.id === 'string' ? authData.id : undefined
270
+
226
271
  const response = await runWithQueryContext(
227
272
  { authData: authData || ({} as AuthData) },
228
273
  () =>
229
- zeroHandleQueryRequest({
230
- handler: (name, args) => {
231
- // per-model permission queries registered by on-zero at runtime
232
- if (name.startsWith('permission.')) {
233
- const table = name.slice('permission.'.length)
234
- const { objOrId } = args as {
235
- objOrId: string | Record<string, any>
236
- }
237
- const perm = getMutationsPermissions(table)
238
- if (!perm) {
239
- throw new Error(`[permission] no permission defined for table: ${table}`)
240
- }
241
- // wrap with setEvaluatingPermission so serverWhere evaluates
242
- // even when environment is 'client' (SSR hydration)
243
- setEvaluatingPermission(true)
244
- try {
245
- return (getZQL() as any)[table]
246
- .where((eb: any) => {
247
- return permissions.buildPermissionQuery(
248
- authData,
249
- eb,
250
- perm,
251
- objOrId,
252
- table,
253
- )
254
- })
255
- .one()
256
- } finally {
257
- setEvaluatingPermission(false)
258
- }
259
- }
260
-
261
- // run validation hook if provided (must be sync - throw to reject)
262
- if (validateQuery) {
263
- validateQuery({ authData, queryName: name, params: args })
264
- }
265
-
266
- const query = (mustGetQuery as any)(queries, name)
267
- return query.fn({ args, ctx: authData })
268
- },
269
- schema,
270
- request,
271
- userID: typeof authData?.id === 'string' ? authData.id : null,
272
- }),
274
+ userID === undefined
275
+ ? zeroHandleQueryRequest(handler, schema, request)
276
+ : zeroHandleQueryRequest({ handler, schema, request, userID }),
273
277
  )
274
278
 
275
279
  return {