on-zero 0.12.21 → 0.13.0

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 (203) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/cli.native.js.map +1 -1
  3. package/dist/cjs/combineZeroClients.native.js.map +1 -1
  4. package/dist/cjs/config.native.js.map +1 -1
  5. package/dist/cjs/createPermissions.native.js.map +1 -1
  6. package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
  7. package/dist/cjs/createUseQuery.native.js.map +1 -1
  8. package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
  9. package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
  10. package/dist/cjs/createZeroClient.cjs +24 -6
  11. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  12. package/dist/cjs/createZeroClient.headless.test.cjs +55 -0
  13. package/dist/cjs/createZeroClient.headless.test.native.js +64 -0
  14. package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -1
  15. package/dist/cjs/createZeroClient.native.js +22 -4
  16. package/dist/cjs/createZeroClient.native.js.map +1 -1
  17. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  18. package/dist/cjs/generate-helpers.cjs +17 -0
  19. package/dist/cjs/generate-helpers.native.js +23 -0
  20. package/dist/cjs/generate-helpers.native.js.map +1 -1
  21. package/dist/cjs/generate-helpers.test.native.js.map +1 -1
  22. package/dist/cjs/generate-layout.cjs +47 -4
  23. package/dist/cjs/generate-layout.native.js +191 -81
  24. package/dist/cjs/generate-layout.native.js.map +1 -1
  25. package/dist/cjs/generate-lite.cjs +25 -5
  26. package/dist/cjs/generate-lite.native.js +205 -163
  27. package/dist/cjs/generate-lite.native.js.map +1 -1
  28. package/dist/cjs/generate-lite.test.cjs +58 -0
  29. package/dist/cjs/generate-lite.test.native.js +59 -0
  30. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  31. package/dist/cjs/generate.cjs +9 -1
  32. package/dist/cjs/generate.native.js +13 -1
  33. package/dist/cjs/generate.native.js.map +1 -1
  34. package/dist/cjs/generate.test.cjs +16 -0
  35. package/dist/cjs/generate.test.native.js +16 -0
  36. package/dist/cjs/generate.test.native.js.map +1 -1
  37. package/dist/cjs/helpers/NullToOptional.native.js.map +1 -1
  38. package/dist/cjs/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
  39. package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
  40. package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
  41. package/dist/cjs/helpers/createMutators.cjs +3 -3
  42. package/dist/cjs/helpers/createMutators.native.js +3 -3
  43. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  44. package/dist/cjs/helpers/createMutators.test.cjs +6 -6
  45. package/dist/cjs/helpers/createMutators.test.native.js +6 -6
  46. package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
  47. package/dist/cjs/helpers/ellipsis.native.js.map +1 -1
  48. package/dist/cjs/helpers/emitter.native.js.map +1 -1
  49. package/dist/cjs/helpers/ensure.native.js.map +1 -1
  50. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
  51. package/dist/cjs/helpers/errors.native.js.map +1 -1
  52. package/dist/cjs/helpers/getAuth.native.js.map +1 -1
  53. package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -1
  54. package/dist/cjs/helpers/globalValue.native.js.map +1 -1
  55. package/dist/cjs/helpers/hostStorageScope.native.js.map +1 -1
  56. package/dist/cjs/helpers/mapObject.native.js.map +1 -1
  57. package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -1
  58. package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -1
  59. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
  60. package/dist/cjs/helpers/mutatorContext.test.native.js.map +1 -1
  61. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  62. package/dist/cjs/helpers/queryContext.native.js.map +1 -1
  63. package/dist/cjs/helpers/recoverZeroClient.cjs +27 -3
  64. package/dist/cjs/helpers/recoverZeroClient.native.js +28 -4
  65. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  66. package/dist/cjs/helpers/recoverZeroClient.test.cjs +32 -2
  67. package/dist/cjs/helpers/recoverZeroClient.test.native.js +38 -2
  68. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  69. package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
  70. package/dist/cjs/helpers/sleep.native.js.map +1 -1
  71. package/dist/cjs/helpers/time.native.js.map +1 -1
  72. package/dist/cjs/helpers/tuple.native.js.map +1 -1
  73. package/dist/cjs/helpers/useMutation.cjs +27 -2
  74. package/dist/cjs/helpers/useMutation.native.js +71 -6
  75. package/dist/cjs/helpers/useMutation.native.js.map +1 -1
  76. package/dist/cjs/helpers/useMutation.test.cjs +16 -0
  77. package/dist/cjs/helpers/useMutation.test.native.js +18 -0
  78. package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
  79. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
  80. package/dist/cjs/index.native.js.map +1 -1
  81. package/dist/cjs/instanceRegistry.native.js.map +1 -1
  82. package/dist/cjs/modelRegistry.native.js.map +1 -1
  83. package/dist/cjs/multi.cjs +1 -1
  84. package/dist/cjs/multi.native.js +1 -1
  85. package/dist/cjs/multi.native.js.map +1 -1
  86. package/dist/cjs/multiInstance.test.native.js.map +1 -1
  87. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  88. package/dist/cjs/multiPartition.test.native.js.map +1 -1
  89. package/dist/cjs/mutations.native.js.map +1 -1
  90. package/dist/cjs/mutations.test.native.js.map +1 -1
  91. package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
  92. package/dist/cjs/queryRegistry.native.js.map +1 -1
  93. package/dist/cjs/resolveQuery.native.js.map +1 -1
  94. package/dist/cjs/run.native.js.map +1 -1
  95. package/dist/cjs/server.native.js.map +1 -1
  96. package/dist/cjs/server.test.native.js.map +1 -1
  97. package/dist/cjs/serverWhere.native.js.map +1 -1
  98. package/dist/cjs/serverWhere.test.native.js.map +1 -1
  99. package/dist/cjs/state.native.js.map +1 -1
  100. package/dist/cjs/streaming.native.js.map +1 -1
  101. package/dist/cjs/testSetup.native.js.map +1 -1
  102. package/dist/cjs/types.native.js.map +1 -1
  103. package/dist/cjs/usePermission.test.native.js.map +1 -1
  104. package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
  105. package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
  106. package/dist/cjs/useStreamingField.loop.test.native.js.map +1 -1
  107. package/dist/cjs/useStreamingField.native.js.map +1 -1
  108. package/dist/cjs/vite-plugin.native.js.map +1 -1
  109. package/dist/cjs/where.native.js.map +1 -1
  110. package/dist/cjs/zeroRunner.native.js.map +1 -1
  111. package/dist/cjs/zql.native.js.map +1 -1
  112. package/dist/esm/createZeroClient.headless.test.mjs +55 -0
  113. package/dist/esm/createZeroClient.headless.test.mjs.map +1 -1
  114. package/dist/esm/createZeroClient.headless.test.native.js +64 -0
  115. package/dist/esm/createZeroClient.headless.test.native.js.map +1 -1
  116. package/dist/esm/createZeroClient.mjs +24 -6
  117. package/dist/esm/createZeroClient.mjs.map +1 -1
  118. package/dist/esm/createZeroClient.native.js +22 -4
  119. package/dist/esm/createZeroClient.native.js.map +1 -1
  120. package/dist/esm/generate-helpers.mjs +17 -1
  121. package/dist/esm/generate-helpers.mjs.map +1 -1
  122. package/dist/esm/generate-helpers.native.js +23 -1
  123. package/dist/esm/generate-helpers.native.js.map +1 -1
  124. package/dist/esm/generate-layout.mjs +47 -4
  125. package/dist/esm/generate-layout.mjs.map +1 -1
  126. package/dist/esm/generate-layout.native.js +191 -81
  127. package/dist/esm/generate-layout.native.js.map +1 -1
  128. package/dist/esm/generate-lite.mjs +26 -6
  129. package/dist/esm/generate-lite.mjs.map +1 -1
  130. package/dist/esm/generate-lite.native.js +206 -164
  131. package/dist/esm/generate-lite.native.js.map +1 -1
  132. package/dist/esm/generate-lite.test.mjs +58 -0
  133. package/dist/esm/generate-lite.test.mjs.map +1 -1
  134. package/dist/esm/generate-lite.test.native.js +59 -0
  135. package/dist/esm/generate-lite.test.native.js.map +1 -1
  136. package/dist/esm/generate.mjs +10 -2
  137. package/dist/esm/generate.mjs.map +1 -1
  138. package/dist/esm/generate.native.js +14 -2
  139. package/dist/esm/generate.native.js.map +1 -1
  140. package/dist/esm/generate.test.mjs +16 -0
  141. package/dist/esm/generate.test.mjs.map +1 -1
  142. package/dist/esm/generate.test.native.js +16 -0
  143. package/dist/esm/generate.test.native.js.map +1 -1
  144. package/dist/esm/helpers/createMutators.mjs +3 -3
  145. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  146. package/dist/esm/helpers/createMutators.native.js +3 -3
  147. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  148. package/dist/esm/helpers/createMutators.test.mjs +5 -5
  149. package/dist/esm/helpers/createMutators.test.mjs.map +1 -1
  150. package/dist/esm/helpers/createMutators.test.native.js +5 -5
  151. package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
  152. package/dist/esm/helpers/recoverZeroClient.mjs +27 -3
  153. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
  154. package/dist/esm/helpers/recoverZeroClient.native.js +28 -4
  155. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  156. package/dist/esm/helpers/recoverZeroClient.test.mjs +32 -2
  157. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  158. package/dist/esm/helpers/recoverZeroClient.test.native.js +38 -2
  159. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  160. package/dist/esm/helpers/useMutation.mjs +27 -3
  161. package/dist/esm/helpers/useMutation.mjs.map +1 -1
  162. package/dist/esm/helpers/useMutation.native.js +71 -7
  163. package/dist/esm/helpers/useMutation.native.js.map +1 -1
  164. package/dist/esm/helpers/useMutation.test.mjs +16 -0
  165. package/dist/esm/helpers/useMutation.test.mjs.map +1 -1
  166. package/dist/esm/helpers/useMutation.test.native.js +18 -0
  167. package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
  168. package/dist/esm/multi.mjs +1 -1
  169. package/dist/esm/multi.mjs.map +1 -1
  170. package/dist/esm/multi.native.js +1 -1
  171. package/dist/esm/multi.native.js.map +1 -1
  172. package/package.json +2 -2
  173. package/src/createZeroClient.headless.test.tsx +58 -0
  174. package/src/createZeroClient.tsx +28 -7
  175. package/src/generate-helpers.ts +29 -0
  176. package/src/generate-layout.ts +80 -11
  177. package/src/generate-lite.test.ts +56 -0
  178. package/src/generate-lite.ts +38 -9
  179. package/src/generate.test.ts +19 -0
  180. package/src/generate.ts +19 -2
  181. package/src/helpers/createMutators.test.ts +5 -5
  182. package/src/helpers/createMutators.ts +7 -5
  183. package/src/helpers/recoverZeroClient.test.ts +34 -5
  184. package/src/helpers/recoverZeroClient.ts +38 -8
  185. package/src/helpers/useMutation.test.ts +15 -0
  186. package/src/helpers/useMutation.tsx +41 -2
  187. package/src/multi.ts +3 -3
  188. package/types/createZeroClient.d.ts +3 -3
  189. package/types/createZeroClient.d.ts.map +1 -1
  190. package/types/generate-helpers.d.ts +4 -0
  191. package/types/generate-helpers.d.ts.map +1 -1
  192. package/types/generate-layout.d.ts +2 -0
  193. package/types/generate-layout.d.ts.map +1 -1
  194. package/types/generate-lite.d.ts.map +1 -1
  195. package/types/generate.d.ts.map +1 -1
  196. package/types/helpers/createMutators.d.ts +3 -3
  197. package/types/helpers/createMutators.d.ts.map +1 -1
  198. package/types/helpers/recoverZeroClient.d.ts +2 -1
  199. package/types/helpers/recoverZeroClient.d.ts.map +1 -1
  200. package/types/helpers/useMutation.d.ts +1 -0
  201. package/types/helpers/useMutation.d.ts.map +1 -1
  202. package/types/multi.d.ts +2 -2
  203. package/types/multi.d.ts.map +1 -1
@@ -1,5 +1,6 @@
1
1
  import { useCallback, useEffect, useRef, useState } from "react";
2
2
  const mutationErrorListeners = /* @__PURE__ */new Set();
3
+ const mutationObservations = /* @__PURE__ */new WeakMap();
3
4
  function onMutationError(cb) {
4
5
  mutationErrorListeners.add(cb);
5
6
  return () => {
@@ -33,11 +34,30 @@ function rejectionToError(scope, e) {
33
34
  message: e instanceof Error ? e.message : String(e)
34
35
  };
35
36
  }
37
+ function reportMutationInvocationError(error) {
38
+ emitMutationError(rejectionToError("client", error));
39
+ }
36
40
  function observeMutation(result, onError) {
41
+ const existing = mutationObservations.get(result);
42
+ if (existing) {
43
+ if (onError) {
44
+ for (const error of existing.errors) onError(error);
45
+ if (!existing.settled) existing.listeners.add(onError);
46
+ }
47
+ return existing.done;
48
+ }
49
+ const observation = {
50
+ done: Promise.resolve(),
51
+ errors: [],
52
+ listeners: new Set(onError ? [onError] : []),
53
+ settled: false
54
+ };
55
+ mutationObservations.set(result, observation);
37
56
  let reportedGlobal = false;
38
57
  const report = err => {
39
58
  if (!err) return;
40
- onError?.(err);
59
+ observation.errors.push(err);
60
+ for (const listener of observation.listeners) listener(err);
41
61
  if (!reportedGlobal) {
42
62
  reportedGlobal = true;
43
63
  emitMutationError(err);
@@ -45,7 +65,11 @@ function observeMutation(result, onError) {
45
65
  };
46
66
  const client = result.client.then(d => report(toMutationError("client", d))).catch(e => report(rejectionToError("client", e)));
47
67
  const server = result.server.then(d => report(toMutationError("server", d))).catch(e => report(rejectionToError("server", e)));
48
- return Promise.all([client, server]).then(() => void 0);
68
+ observation.done = Promise.all([client, server]).then(() => {
69
+ observation.settled = true;
70
+ observation.listeners.clear();
71
+ });
72
+ return observation.done;
49
73
  }
50
74
  function useMutation(mutator) {
51
75
  const [pending, setPending] = useState(false);
@@ -83,5 +107,5 @@ function useMutation(mutator) {
83
107
  reset
84
108
  }];
85
109
  }
86
- export { observeMutation, onMutationError, useMutation };
110
+ export { observeMutation, onMutationError, reportMutationInvocationError, useMutation };
87
111
  //# sourceMappingURL=useMutation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","mutationErrorListeners","Set","onMutationError","cb","add","delete","emitMutationError","error","size","process","env","NODE_ENV","console","toMutationError","scope","details","d","type","kind","message","rejectionToError","e","Error","String","observeMutation","result","onError","reportedGlobal","report","err","client","then","catch","server","Promise","all","useMutation","mutator","pending","setPending","setError","seqRef","mountedRef","mutatorRef","current","reset","run","args","seq","isCurrent","finally"],"sources":["../../../src/helpers/useMutation.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","mutationErrorListeners","Set","mutationObservations","WeakMap","onMutationError","cb","add","delete","emitMutationError","error","size","process","env","NODE_ENV","console","toMutationError","scope","details","d","type","kind","message","rejectionToError","e","Error","String","reportMutationInvocationError","observeMutation","result","onError","existing","get","errors","settled","listeners","done","observation","Promise","resolve","set","reportedGlobal","report","err","push","listener","client","then","catch","server","all","clear","useMutation","mutator","pending","setPending","setError","seqRef","mountedRef","mutatorRef","current","reset","run","args","seq","isCurrent","finally"],"sources":["../../../src/helpers/useMutation.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ function _type_of(obj) {
12
12
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
13
13
  }
14
14
  var mutationErrorListeners = /* @__PURE__ */new Set();
15
+ var mutationObservations = /* @__PURE__ */new WeakMap();
15
16
  function onMutationError(cb) {
16
17
  mutationErrorListeners.add(cb);
17
18
  return function () {
@@ -67,14 +68,75 @@ function rejectionToError(scope, e) {
67
68
  message: _instanceof(e, Error) ? e.message : String(e)
68
69
  };
69
70
  }
71
+ function reportMutationInvocationError(error) {
72
+ emitMutationError(rejectionToError("client", error));
73
+ }
70
74
  function observeMutation(result, onError) {
75
+ var existing = mutationObservations.get(result);
76
+ if (existing) {
77
+ if (onError) {
78
+ var _iteratorNormalCompletion = true,
79
+ _didIteratorError = false,
80
+ _iteratorError = void 0;
81
+ try {
82
+ for (var _iterator = existing.errors[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
83
+ var error = _step.value;
84
+ onError(error);
85
+ }
86
+ } catch (err) {
87
+ _didIteratorError = true;
88
+ _iteratorError = err;
89
+ } finally {
90
+ try {
91
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
92
+ _iterator.return();
93
+ }
94
+ } finally {
95
+ if (_didIteratorError) {
96
+ throw _iteratorError;
97
+ }
98
+ }
99
+ }
100
+ if (!existing.settled) existing.listeners.add(onError);
101
+ }
102
+ return existing.done;
103
+ }
104
+ var observation = {
105
+ done: Promise.resolve(),
106
+ errors: [],
107
+ listeners: new Set(onError ? [onError] : []),
108
+ settled: false
109
+ };
110
+ mutationObservations.set(result, observation);
71
111
  var reportedGlobal = false;
72
- var report = function report2(err) {
73
- if (!err) return;
74
- onError === null || onError === void 0 ? void 0 : onError(err);
112
+ var report = function report2(err1) {
113
+ if (!err1) return;
114
+ observation.errors.push(err1);
115
+ var _iteratorNormalCompletion2 = true,
116
+ _didIteratorError2 = false,
117
+ _iteratorError2 = void 0;
118
+ try {
119
+ for (var _iterator2 = observation.listeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
120
+ var listener = _step2.value;
121
+ listener(err1);
122
+ }
123
+ } catch (err) {
124
+ _didIteratorError2 = true;
125
+ _iteratorError2 = err;
126
+ } finally {
127
+ try {
128
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
129
+ _iterator2.return();
130
+ }
131
+ } finally {
132
+ if (_didIteratorError2) {
133
+ throw _iteratorError2;
134
+ }
135
+ }
136
+ }
75
137
  if (!reportedGlobal) {
76
138
  reportedGlobal = true;
77
- emitMutationError(err);
139
+ emitMutationError(err1);
78
140
  }
79
141
  };
80
142
  var client = result.client.then(function (d) {
@@ -87,9 +149,11 @@ function observeMutation(result, onError) {
87
149
  }).catch(function (e) {
88
150
  return report(rejectionToError("server", e));
89
151
  });
90
- return Promise.all([client, server]).then(function () {
91
- return void 0;
152
+ observation.done = Promise.all([client, server]).then(function () {
153
+ observation.settled = true;
154
+ observation.listeners.clear();
92
155
  });
156
+ return observation.done;
93
157
  }
94
158
  function useMutation(mutator) {
95
159
  var [pending, setPending] = useState(false);
@@ -132,5 +196,5 @@ function useMutation(mutator) {
132
196
  reset
133
197
  }];
134
198
  }
135
- export { observeMutation, onMutationError, useMutation };
199
+ export { observeMutation, onMutationError, reportMutationInvocationError, useMutation };
136
200
  //# sourceMappingURL=useMutation.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","mutationErrorListeners","Set","onMutationError","cb","add","delete","emitMutationError","error","size","process","env","NODE_ENV","console","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","value","err","return","toMutationError","scope","details","_d_error","_d_error1","_d_error2","d","type","kind","message","rejectionToError","e","Error","String","observeMutation","result","onError","reportedGlobal","report","report2","client","then","catch","server"],"sources":["../../../src/helpers/useMutation.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","mutationErrorListeners","Set","mutationObservations","WeakMap","onMutationError","cb","add","delete","emitMutationError","error","size","process","env","NODE_ENV","console","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","value","err","return","toMutationError","scope","details","_d_error","_d_error1","_d_error2","d","type","kind","message","rejectionToError","e","Error","String","reportMutationInvocationError","observeMutation","result","onError","existing","get","errors","settled","listeners","observation","Promise","resolve"],"sources":["../../../src/helpers/useMutation.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -106,6 +106,22 @@ describe("observeMutation", () => {
106
106
  server.reject(new Error("x"));
107
107
  await expect(observeMutation(result)).resolves.toBeUndefined();
108
108
  });
109
+ test("observing the same result twice emits globally once", async () => {
110
+ const {
111
+ result,
112
+ client,
113
+ server
114
+ } = fakeResult();
115
+ const global = [];
116
+ const dispose = onMutationError(e => global.push(e));
117
+ const first = observeMutation(result);
118
+ const second = observeMutation(result);
119
+ client.resolve(SUCCESS);
120
+ server.resolve(appError("denied"));
121
+ await Promise.all([first, second]);
122
+ expect(global).toHaveLength(1);
123
+ dispose();
124
+ });
109
125
  test("with no listener registered it falls back to console.error in dev", async () => {
110
126
  const spy = vi.spyOn(console, "error").mockImplementation(() => {});
111
127
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["afterEach","describe","expect","test","vi","observeMutation","onMutationError","deferred","resolve","reject","promise","Promise","res","rej","fakeResult","client","server","result","SUCCESS","type","appError","message","error","restoreAllMocks","errors","dispose","e","push","done","toEqual","local","global","scope","kind","details","Error","toHaveLength","toMatchObject","resolves","toBeUndefined","spy","spyOn","console","mockImplementation","toHaveBeenCalledTimes","seen"],"sources":["../../../src/helpers/useMutation.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["afterEach","describe","expect","test","vi","observeMutation","onMutationError","deferred","resolve","reject","promise","Promise","res","rej","fakeResult","client","server","result","SUCCESS","type","appError","message","error","restoreAllMocks","errors","dispose","e","push","done","toEqual","local","global","scope","kind","details","Error","toHaveLength","toMatchObject","resolves","toBeUndefined","first","second","all","spy","spyOn","console","mockImplementation","toHaveBeenCalledTimes","seen"],"sources":["../../../src/helpers/useMutation.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -118,6 +118,24 @@ describe("observeMutation", function () {
118
118
  server.reject(new Error("x"));
119
119
  await expect(observeMutation(result)).resolves.toBeUndefined();
120
120
  });
121
+ test("observing the same result twice emits globally once", async function () {
122
+ var {
123
+ result,
124
+ client,
125
+ server
126
+ } = fakeResult();
127
+ var global = [];
128
+ var dispose = onMutationError(function (e) {
129
+ return global.push(e);
130
+ });
131
+ var first = observeMutation(result);
132
+ var second = observeMutation(result);
133
+ client.resolve(SUCCESS);
134
+ server.resolve(appError("denied"));
135
+ await Promise.all([first, second]);
136
+ expect(global).toHaveLength(1);
137
+ dispose();
138
+ });
121
139
  test("with no listener registered it falls back to console.error in dev", async function () {
122
140
  var spy = vi.spyOn(console, "error").mockImplementation(function () {});
123
141
  var {
@@ -1 +1 @@
1
- {"version":3,"names":["afterEach","describe","expect","test","vi","observeMutation","onMutationError","deferred","resolve","reject","promise","Promise","res","rej","fakeResult","client","server","result","SUCCESS","type","appError","appError2","message","error","restoreAllMocks","errors","dispose","e","push","done","toEqual","local","global","scope","kind","details","Error","toHaveLength","toMatchObject"],"sources":["../../../src/helpers/useMutation.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["afterEach","describe","expect","test","vi","observeMutation","onMutationError","deferred","resolve","reject","promise","Promise","res","rej","fakeResult","client","server","result","SUCCESS","type","appError","appError2","message","error","restoreAllMocks","errors","dispose","e","push","done","toEqual","local","global","scope","kind","details","Error","toHaveLength","toMatchObject","resolves","toBeUndefined","first","second"],"sources":["../../../src/helpers/useMutation.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -29,7 +29,7 @@ function createZeroClients(instances) {
29
29
  models: instance.models,
30
30
  groupedQueries: instance.queries,
31
31
  instanceName: name,
32
- rollups: instance.rollups
32
+ aggregates: instance.aggregates
33
33
  };
34
34
  clients[name] = name === innerName ? createZeroClientInternal(options) : createZeroClientWithDirectQueries(options);
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","name","reverse","instance","schema","models","groupedQueries","queries","instanceName","rollups","typedClients","orderedClients","map","providers","fromEntries","ProvideZero","combined"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SACEC,wBAAA,QAGK;AACP,SAASC,sBAAA,QAA8B;AAMvC,cAAc;AAEP,SAASC,kCAIdC,OAAA,EAC6D;EAC7D,MAAMC,oBAAA,GAAmDL,oBAAA;EACzD,OAAOC,wBAAA,CAAyC;IAC9C,GAAGG,OAAA;IACHC;EACF,CAAC;AACH;AA6BO,SAASC,kBAEdC,SAAA,EAAsB;EACtB,MAAMC,KAAA,GAAQC,MAAA,CAAOC,IAAA,CAAKH,SAAS;EACnC,IAAIC,KAAA,CAAMG,MAAA,KAAW,GAAG;IACtB,MAAM,IAAIC,KAAA,CAAM,4DAA4D;EAC9E;EACA,IAAIJ,KAAA,CAAMK,QAAA,CAAS,SAAS,GAAG;IAC7BL,KAAA,CAAMM,MAAA,CAAON,KAAA,CAAMO,OAAA,CAAQ,SAAS,GAAG,CAAC;IACxCP,KAAA,CAAMQ,OAAA,CAAQ,SAAS;EACzB;EAEA,MAAMC,SAAA,GAAYT,KAAA,CAAMA,KAAA,CAAMG,MAAA,GAAS,CAAC;EACxC,MAAMO,OAAA,GAAuE,CAAC;EAI9EhB,sBAAA,CAAuBM,KAAK;EAC5B,WAAWW,IAAA,IAAQ,CAAC,GAAGX,KAAK,EAAEY,OAAA,CAAQ,GAAG;IACvC,MAAMC,QAAA,GAAWd,SAAA,CAAUY,IAAI;IAC/B,MAAMf,OAAA,GAAU;MACdkB,MAAA,EAAQD,QAAA,CAASC,MAAA;MACjBC,MAAA,EAAQF,QAAA,CAASE,MAAA;MACjBC,cAAA,EAAgBH,QAAA,CAASI,OAAA;MACzBC,YAAA,EAAcP,IAAA;MACdQ,OAAA,EAASN,QAAA,CAASM;IACpB;IACAT,OAAA,CAAQC,IAAI,IACVA,IAAA,KAASF,SAAA,GACLhB,wBAAA,CAAyBG,OAAO,IAChCD,iCAAA,CAAkCC,OAAO;EACjD;EAEA,MAAMwB,YAAA,GAAeV,OAAA;EAGrB,MAAMW,cAAA,GAAiBrB,KAAA,CAAMsB,GAAA,CAC1BX,IAAA,IAASS,YAAA,CAAaT,IAAuB,CAChD;EACA,MAAMY,SAAA,GAAYtB,MAAA,CAAOuB,WAAA,CACvBxB,KAAA,CAAMsB,GAAA,CAAKX,IAAA,IAAS,CAACA,IAAA,EAAMD,OAAA,CAAQC,IAAI,EAAGc,WAAW,CAAC,CACxD;EAEA,OAAO;IACLf,OAAA,EAASU,YAAA;IACTG,SAAA;IACAG,QAAA,EAAUnC,kBAAA,CAAmB,GAAG8B,cAAc;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","name","reverse","instance","schema","models","groupedQueries","queries","instanceName","aggregates","typedClients","orderedClients","map","providers","fromEntries","ProvideZero","combined"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SACEC,wBAAA,QAGK;AACP,SAASC,sBAAA,QAA8B;AAMvC,cAAc;AAEP,SAASC,kCAIdC,OAAA,EAC6D;EAC7D,MAAMC,oBAAA,GAAmDL,oBAAA;EACzD,OAAOC,wBAAA,CAAyC;IAC9C,GAAGG,OAAA;IACHC;EACF,CAAC;AACH;AA6BO,SAASC,kBAEdC,SAAA,EAAsB;EACtB,MAAMC,KAAA,GAAQC,MAAA,CAAOC,IAAA,CAAKH,SAAS;EACnC,IAAIC,KAAA,CAAMG,MAAA,KAAW,GAAG;IACtB,MAAM,IAAIC,KAAA,CAAM,4DAA4D;EAC9E;EACA,IAAIJ,KAAA,CAAMK,QAAA,CAAS,SAAS,GAAG;IAC7BL,KAAA,CAAMM,MAAA,CAAON,KAAA,CAAMO,OAAA,CAAQ,SAAS,GAAG,CAAC;IACxCP,KAAA,CAAMQ,OAAA,CAAQ,SAAS;EACzB;EAEA,MAAMC,SAAA,GAAYT,KAAA,CAAMA,KAAA,CAAMG,MAAA,GAAS,CAAC;EACxC,MAAMO,OAAA,GAAuE,CAAC;EAI9EhB,sBAAA,CAAuBM,KAAK;EAC5B,WAAWW,IAAA,IAAQ,CAAC,GAAGX,KAAK,EAAEY,OAAA,CAAQ,GAAG;IACvC,MAAMC,QAAA,GAAWd,SAAA,CAAUY,IAAI;IAC/B,MAAMf,OAAA,GAAU;MACdkB,MAAA,EAAQD,QAAA,CAASC,MAAA;MACjBC,MAAA,EAAQF,QAAA,CAASE,MAAA;MACjBC,cAAA,EAAgBH,QAAA,CAASI,OAAA;MACzBC,YAAA,EAAcP,IAAA;MACdQ,UAAA,EAAYN,QAAA,CAASM;IACvB;IACAT,OAAA,CAAQC,IAAI,IACVA,IAAA,KAASF,SAAA,GACLhB,wBAAA,CAAyBG,OAAO,IAChCD,iCAAA,CAAkCC,OAAO;EACjD;EAEA,MAAMwB,YAAA,GAAeV,OAAA;EAGrB,MAAMW,cAAA,GAAiBrB,KAAA,CAAMsB,GAAA,CAC1BX,IAAA,IAASS,YAAA,CAAaT,IAAuB,CAChD;EACA,MAAMY,SAAA,GAAYtB,MAAA,CAAOuB,WAAA,CACvBxB,KAAA,CAAMsB,GAAA,CAAKX,IAAA,IAAS,CAACA,IAAA,EAAMD,OAAA,CAAQC,IAAI,EAAGc,WAAW,CAAC,CACxD;EAEA,OAAO;IACLf,OAAA,EAASU,YAAA;IACTG,SAAA;IACAG,QAAA,EAAUnC,kBAAA,CAAmB,GAAG8B,cAAc;EAChD;AACF","ignoreList":[]}
@@ -34,7 +34,7 @@ function createZeroClients(instances) {
34
34
  models: instance.models,
35
35
  groupedQueries: instance.queries,
36
36
  instanceName: name,
37
- rollups: instance.rollups
37
+ aggregates: instance.aggregates
38
38
  };
39
39
  clients[name] = name === innerName ? createZeroClientInternal(options) : createZeroClientWithDirectQueries(options);
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","reverse","Symbol","iterator","_step","next","done","name","value","instance","schema","models","groupedQueries","queries","instanceName","rollups","err","return"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SAAAC,wBAAA;AAAA,SACEC,sBAAA;AAAA,cAGK;AACP,SAASC,iCAA8BA,CAAAC,OAAA;EAMvC,IAAAC,oBAAc,GAAAL,oBAAA;EAEP,OAASC,wBAAA;IAMd,GAAAG,OAAM;IACNC;EAAgD,EAC9C;AAAG;AACH,SACDC,kBAAAC,SAAA;EACH,IAAAC,KAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA;EA6BO,IAAAC,KAAS,CAAAG,MAAA;IAGd,MAAM,IAAAC,KAAQ,6DAAqB;EACnC;EACE,IAAAJ,KAAM,CAAAK,QAAU;IAClBL,KAAA,CAAAM,MAAA,CAAAN,KAAA,CAAAO,OAAA;IACAP,KAAI,CAAAQ,OAAM,UAAS;EACjB;EACA,IAAAC,SAAM,GAAQT,KAAA,CAAAA,KAAS,CAAAG,MAAA;EACzB,IAAAO,OAAA;EAEAhB,sBAAkB,CAAAM,KAAM;EACxB,IAAAW,yBAA8E;IAAAC,iBAAA;IAAAC,cAAA;EAI9E;IACA,SAAWC,SAAS,GAAG,CACrB,GAAAd,KAAM,CACN,CAAAe,OAAM,GAAAC,MAAU,CAAAC,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MACd,IAAAU,IAAQ,GAAAH,KAAA,CAASI,KAAA;MACjB,IAAAC,QAAQ,GAAAxB,SAAS,CAAAsB,IAAA;MACjB,IAAAzB,OAAA;QACA4B,MAAA,EAAAD,QAAc,CAAAC,MAAA;QACdC,MAAA,EAASF,QAAS,CAAAE,MAAA;QACpBC,cAAA,EAAAH,QAAA,CAAAI,OAAA;QACAC,YACE,EAAAP,IAAA;QAGJQ,OAAA,EAAAN,QAAA,CAAAM;MAEA;MAGAnB,OAAM,CAAAW,IAAA,IAAAA,IAAiB,KAAMZ,SAAA,GAAAhB,wBAAA,CAAAG,OAAA,IAAAD,iCAAA,CAAAC,OAAA;IAC3B;EACF,SAAAkC,GAAA;IACAlB,iBAAkB,OAAO;IACvBC,cAAW,GAAAiB,GAAS;EACtB;IAEA;MACE,KAAAnB,yBAAS,IAAAG,SAAA,CAAAiB,MAAA;QACTjB,SAAA,CAAAiB,MAAA;MACA;IACF;MACF,IAAAnB,iBAAA","ignoreList":[]}
1
+ {"version":3,"names":["combineZeroClients","createUseQueryDirect","createZeroClientInternal","releaseClientInstances","createZeroClientWithDirectQueries","options","createDirectUseQuery","createZeroClients","instances","names","Object","keys","length","Error","includes","splice","indexOf","unshift","innerName","clients","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","reverse","Symbol","iterator","_step","next","done","name","value","instance","schema","models","groupedQueries","queries","instanceName","aggregates","err","return"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,oBAAA,QAA4B;AACrC,SAAAC,wBAAA;AAAA,SACEC,sBAAA;AAAA,cAGK;AACP,SAASC,iCAA8BA,CAAAC,OAAA;EAMvC,IAAAC,oBAAc,GAAAL,oBAAA;EAEP,OAASC,wBAAA;IAMd,GAAAG,OAAM;IACNC;EAAgD,EAC9C;AAAG;AACH,SACDC,kBAAAC,SAAA;EACH,IAAAC,KAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA;EA6BO,IAAAC,KAAS,CAAAG,MAAA;IAGd,MAAM,IAAAC,KAAQ,6DAAqB;EACnC;EACE,IAAAJ,KAAM,CAAAK,QAAU;IAClBL,KAAA,CAAAM,MAAA,CAAAN,KAAA,CAAAO,OAAA;IACAP,KAAI,CAAAQ,OAAM,UAAS;EACjB;EACA,IAAAC,SAAM,GAAQT,KAAA,CAAAA,KAAS,CAAAG,MAAA;EACzB,IAAAO,OAAA;EAEAhB,sBAAkB,CAAAM,KAAM;EACxB,IAAAW,yBAA8E;IAAAC,iBAAA;IAAAC,cAAA;EAI9E;IACA,SAAWC,SAAS,GAAG,CACrB,GAAAd,KAAM,CACN,CAAAe,OAAM,GAAAC,MAAU,CAAAC,QAAA,KAAAC,KAAA,IAAAP,yBAAA,IAAAO,KAAA,GAAAJ,SAAA,CAAAK,IAAA,IAAAC,IAAA,GAAAT,yBAAA;MACd,IAAAU,IAAQ,GAAAH,KAAA,CAASI,KAAA;MACjB,IAAAC,QAAQ,GAAAxB,SAAS,CAAAsB,IAAA;MACjB,IAAAzB,OAAA;QACA4B,MAAA,EAAAD,QAAc,CAAAC,MAAA;QACdC,MAAA,EAAAF,QAAY,CAAAE,MAAS;QACvBC,cAAA,EAAAH,QAAA,CAAAI,OAAA;QACAC,YACE,EAAAP,IAAA;QAGJQ,UAAA,EAAAN,QAAA,CAAAM;MAEA;MAGAnB,OAAM,CAAAW,IAAA,IAAAA,IAAiB,KAAMZ,SAAA,GAAAhB,wBAAA,CAAAG,OAAA,IAAAD,iCAAA,CAAAC,OAAA;IAC3B;EACF,SAAAkC,GAAA;IACAlB,iBAAkB,OAAO;IACvBC,cAAW,GAAAiB,GAAS;EACtB;IAEA;MACE,KAAAnB,yBAAS,IAAAG,SAAA,CAAAiB,MAAA;QACTjB,SAAA,CAAAiB,MAAA;MACA;IACF;MACF,IAAAnB,iBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.12.21",
3
+ "version": "0.13.0",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "files": [
@@ -105,7 +105,7 @@
105
105
  "chokidar": "^4.0.3",
106
106
  "citty": "^0.1.6",
107
107
  "dequal": "^2.0.3",
108
- "orez-lite": "0.12.21",
108
+ "orez-lite": "0.13.0",
109
109
  "valibot": "^1.1.0"
110
110
  },
111
111
  "peerDependencies": {
@@ -4,6 +4,7 @@ import { createSchema, string, table } from '@rocicorp/zero'
4
4
  import { expect, test } from 'vitest'
5
5
 
6
6
  import { createZeroClient } from './createZeroClient'
7
+ import { onMutationError, type MutationError } from './helpers/useMutation'
7
8
 
8
9
  import type { Query } from '@rocicorp/zero'
9
10
 
@@ -72,3 +73,60 @@ test('a hot-recreated client resolves the mounted same-name instance', async ()
72
73
  await connection.close()
73
74
  expect(() => refreshed.zero.clientID).toThrow(/not initialized/)
74
75
  })
76
+
77
+ test('direct facade mutations surface client failures without explicit observation', async () => {
78
+ const client = createZeroClient({
79
+ schema,
80
+ models: {
81
+ user: {
82
+ mutate: {
83
+ insert: async () => {
84
+ throw new Error('optimistic mutation failed')
85
+ },
86
+ },
87
+ },
88
+ } as never,
89
+ groupedQueries: { headlessObservedMutationTest: { byId } },
90
+ instanceName: 'headless-observed-mutation-test',
91
+ })
92
+ const connection = client.connectHeadless({
93
+ userID: 'user-headless-observed-mutation',
94
+ kvStore: 'mem',
95
+ storageKey: 'headless-observed-mutation-test',
96
+ })
97
+ const errors: MutationError[] = []
98
+ const dispose = onMutationError((error) => errors.push(error))
99
+
100
+ const mutate = Reflect.get(client.zero, 'mutate')
101
+ const user = Reflect.get(mutate, 'user')
102
+ const insert = Reflect.get(user, 'insert')
103
+ const result = Reflect.apply(insert, null, [{ id: 'u1', name: 'Ada' }])
104
+ if (result === null || typeof result !== 'object') {
105
+ throw new Error('mutation did not return client/server promises')
106
+ }
107
+ await Promise.all([Reflect.get(result, 'client'), Reflect.get(result, 'server')])
108
+ await Promise.resolve()
109
+
110
+ expect(errors).toHaveLength(1)
111
+ expect(errors[0]).toMatchObject({
112
+ kind: 'app',
113
+ message: 'optimistic mutation failed',
114
+ })
115
+
116
+ errors.length = 0
117
+ const missing = Reflect.get(user, 'createdAfterClientConstruction')
118
+ expect(() => Reflect.apply(missing, null, [{}])).toThrow(
119
+ "mutation 'user.createdAfterClientConstruction' is not registered"
120
+ )
121
+ expect(errors).toEqual([
122
+ {
123
+ scope: 'client',
124
+ kind: 'zero',
125
+ message:
126
+ "[on-zero] mutation 'user.createdAfterClientConstruction' is not registered on the active Zero client.",
127
+ },
128
+ ])
129
+
130
+ dispose()
131
+ await connection.close()
132
+ })
@@ -45,6 +45,7 @@ import {
45
45
  type ZeroLogPattern,
46
46
  type ZeroRecoveryDeps,
47
47
  } from './helpers/recoverZeroClient'
48
+ import { observeMutation, reportMutationInvocationError } from './helpers/useMutation'
48
49
  import { registerClientInstance } from './instanceRegistry'
49
50
  import { getAllMutationsPermissions, getMutationsPermissions } from './modelRegistry'
50
51
  import { registerQuery } from './queryRegistry'
@@ -71,7 +72,7 @@ import type {
71
72
  ZeroOptions,
72
73
  Schema as ZeroSchema,
73
74
  } from '@rocicorp/zero'
74
- import type { RollupSet } from 'orez-lite/rollup'
75
+ import type { AggregateSet } from 'orez-lite/aggregate'
75
76
 
76
77
  type PreloadOptions = { ttl?: 'always' | 'never' | number | undefined }
77
78
 
@@ -101,7 +102,7 @@ export type CreateZeroClientOptions<
101
102
  schema: Schema
102
103
  models: Models
103
104
  groupedQueries: GroupedQueries
104
- rollups?: RollupSet<Schema>
105
+ aggregates?: AggregateSet<Schema>
105
106
  permissionStrategy?: PermissionStrategy
106
107
  // repeated server acknowledgement timeouts reconnect with the existing local
107
108
  // state. one timeout remains a normal slow-server failure.
@@ -161,7 +162,7 @@ export function createZeroClientInternal<
161
162
  schema,
162
163
  models,
163
164
  groupedQueries,
164
- rollups,
165
+ aggregates,
165
166
  permissionStrategy = 'optimistic',
166
167
  instanceName = 'default',
167
168
  serverAckTimeoutRecoveryThreshold = 2,
@@ -309,7 +310,7 @@ export function createZeroClientInternal<
309
310
  environment: 'client',
310
311
  authData: null,
311
312
  bindCan: permissionsHelpers.bindCan,
312
- rollups,
313
+ aggregates,
313
314
  })
314
315
  return clientMutators
315
316
  }
@@ -362,6 +363,7 @@ export function createZeroClientInternal<
362
363
  ...(benignLogPatterns ?? []),
363
364
  ],
364
365
  onRecovery: () => mutationLifecycle.fence(),
366
+ recoverInPlace: () => remint({ dropLocalState: false }),
365
367
  }
366
368
  const recovery = makeZeroRecovery(recoveryDeps)
367
369
  const createdInstance = new ZeroClient<Schema, ZeroMutators>({
@@ -442,7 +444,16 @@ export function createZeroClientInternal<
442
444
  )
443
445
  }
444
446
  let target: any = zeroRuntime.zero.mutate
445
- for (const key of path) target = target[key]
447
+ for (const key of path) {
448
+ if (target == null) break
449
+ target = target[key]
450
+ }
451
+ if (typeof target !== 'function') {
452
+ const label = path.length > 0 ? path.join('.') : '<callable mutation>'
453
+ throw new Error(
454
+ `[on-zero] mutation '${label}' is not registered on the active Zero client.`
455
+ )
456
+ }
446
457
  return target
447
458
  }
448
459
  return new Proxy(function lazyMutator() {} as any, {
@@ -451,7 +462,14 @@ export function createZeroClientInternal<
451
462
  return lazyMutatePath([...path, key])
452
463
  },
453
464
  apply(_, __, args) {
454
- return resolve()(...args)
465
+ try {
466
+ const result = resolve()(...args)
467
+ void observeMutation(result)
468
+ return result
469
+ } catch (error) {
470
+ reportMutationInvocationError(error)
471
+ throw error
472
+ }
455
473
  },
456
474
  })
457
475
  }
@@ -460,8 +478,11 @@ export function createZeroClientInternal<
460
478
  // Ideally rocicorp/zero would support .setAuth() natively, but for now we swap instances.
461
479
  const zero: ZeroInstance = new Proxy({} as never, {
462
480
  get(_, key) {
481
+ // Always resolve mutation paths at call time. Besides surviving auth
482
+ // rotations, this is the one boundary that can observe raw
483
+ // fire-and-forget calls before callers discard Zero's result promises.
484
+ if (key === 'mutate') return lazyMutatePath([])
463
485
  if (zeroRuntime.zero === null) {
464
- if (key === 'mutate') return lazyMutatePath([])
465
486
  throw new Error(
466
487
  `Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.`
467
488
  )
@@ -421,6 +421,7 @@ this folder is auto-generated by on-zero. do not edit files here directly.
421
421
  - \`syncedQueries.ts\` - namespaced syncedQuery wrappers for server setup
422
422
  - \`syncedMutations.ts\` - valibot validators for mutation args (server auto-validation)
423
423
  - \`instances.ts\` - generated client partitions, sync tables, and server-only support tables
424
+ - \`aggregates.ts\` - every namespace's aggregate declarations compiled into one set
424
425
 
425
426
  ## usage guidelines
426
427
 
@@ -555,6 +556,34 @@ ${entries}
555
556
  `
556
557
  }
557
558
 
559
+ // every namespace's `aggregates.ts` declares definitions only; this is the one
560
+ // place they get compiled. a single defineAggregates call over the union is what
561
+ // makes the cross-namespace checks possible — two namespaces writing the same
562
+ // target column is a real conflict, and only the whole set can see it.
563
+ export function generateAggregatesFile(
564
+ namespaces: Array<{ name: string; importPath: string }>
565
+ ): string {
566
+ const sorted = [...namespaces].sort((a, b) => a.name.localeCompare(b.name))
567
+ const imports = sorted
568
+ .map(
569
+ (namespace) =>
570
+ `import { aggregates as ${namespace.name}Aggregates } from '${namespace.importPath}'`
571
+ )
572
+ .join('\n')
573
+ const merged = sorted.map((namespace) => `${namespace.name}Aggregates`).join(', ')
574
+
575
+ return `// auto-generated by: on-zero generate
576
+ import { defineAggregates, mergeAggregateDefinitions } from 'orez-lite/aggregate'
577
+ ${imports}
578
+ import { schema } from './schema'
579
+
580
+ export const aggregates = defineAggregates(
581
+ schema,
582
+ mergeAggregateDefinitions(${merged}),
583
+ )
584
+ `
585
+ }
586
+
558
587
  export function generateSyncedQueriesFile(
559
588
  queries: Array<{
560
589
  name: string