on-zero 0.4.18 → 0.4.23

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.
@@ -168,6 +168,9 @@ function createZeroClient({
168
168
  }
169
169
  return null;
170
170
  }
171
+ let cachedZero = null;
172
+ const zeroInstanceGeneration = (0, import_helpers.createEmitter)("zero-instance-generation", 0);
173
+ let zeroRotationPending = false;
171
174
  const ProvideZero = ({
172
175
  children,
173
176
  authData: authDataIn,
@@ -184,20 +187,66 @@ function createZeroClient({
184
187
  can: permissionsHelpers.can
185
188
  });
186
189
  }, []);
190
+ const generation = (0, import_helpers.useEmitterValue)(zeroInstanceGeneration);
191
+ const auth = "auth" in props ? props.auth : void 0;
192
+ const hasAuth = typeof auth === "string";
193
+ const instanceKey = JSON.stringify([Object.entries({
194
+ kvStore: "mem",
195
+ ...props
196
+ }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, generation]);
197
+ const [instance, setInstance] = (0, import_react2.useState)();
198
+ (0, import_react2.useEffect)(() => {
199
+ let cached = cachedZero;
200
+ if (cached?.key !== instanceKey) {
201
+ cached?.instance.close();
202
+ const options = props;
203
+ cached = {
204
+ key: instanceKey,
205
+ instance: new import_zero.Zero({
206
+ kvStore: "mem",
207
+ ...options,
208
+ schema,
209
+ // @ts-expect-error same erasure ZeroProvider needed
210
+ mutators,
211
+ onClientStateNotFound: () => {
212
+ if (options.onClientStateNotFound) {
213
+ try {
214
+ options.onClientStateNotFound();
215
+ return;
216
+ } catch {}
217
+ }
218
+ if (zeroRotationPending) return;
219
+ zeroRotationPending = true;
220
+ zeroInstanceGeneration.emit(zeroInstanceGeneration.value + 1);
221
+ }
222
+ })
223
+ };
224
+ cachedZero = cached;
225
+ zeroRotationPending = false;
226
+ }
227
+ setInstance(cached.instance);
228
+ }, [instanceKey]);
229
+ const prevAuthRef = (0, import_react2.useRef)(auth);
230
+ (0, import_react2.useEffect)(() => {
231
+ const prevAuth = prevAuthRef.current;
232
+ prevAuthRef.current = auth;
233
+ if (instance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
234
+ instance.connection.connect({
235
+ auth
236
+ });
237
+ }
238
+ }, [instance, auth]);
187
239
  if (disable) {
188
240
  return children;
189
241
  }
190
242
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
191
243
  value: authData,
192
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
193
- schema,
194
- kvStore: "mem",
195
- mutators,
196
- ...props,
244
+ children: instance ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
245
+ zero: instance,
197
246
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
198
247
  zeroEvents
199
248
  }), children]
200
- })
249
+ }) : null
201
250
  });
202
251
  };
203
252
  const SetZeroInstance = () => {
@@ -265,6 +265,9 @@ function createZeroClient(param) {
265
265
  }
266
266
  return null;
267
267
  }
268
+ var cachedZero = null;
269
+ var zeroInstanceGeneration = (0, import_helpers.createEmitter)("zero-instance-generation", 0);
270
+ var zeroRotationPending = false;
268
271
  var ProvideZero = function (param2) {
269
272
  var {
270
273
  children,
@@ -284,21 +287,77 @@ function createZeroClient(param) {
284
287
  },
285
288
  // eslint-disable-next-line react-hooks/exhaustive-deps
286
289
  []);
290
+ var generation = (0, import_helpers.useEmitterValue)(zeroInstanceGeneration);
291
+ var auth = "auth" in props ? props.auth : void 0;
292
+ var hasAuth = typeof auth === "string";
293
+ var instanceKey = JSON.stringify([Object.entries({
294
+ kvStore: "mem",
295
+ ...props
296
+ }).filter(function (param3) {
297
+ var [key, value] = param3;
298
+ return key !== "auth" && typeof value !== "function" && value !== void 0;
299
+ }).sort(function (param3, param1) {
300
+ var [a] = param3,
301
+ [b] = param1;
302
+ return a < b ? -1 : 1;
303
+ }), hasAuth, generation]);
304
+ var [instance, setInstance] = (0, import_react2.useState)();
305
+ (0, import_react2.useEffect)(function () {
306
+ var cached = cachedZero;
307
+ if ((cached === null || cached === void 0 ? void 0 : cached.key) !== instanceKey) {
308
+ cached === null || cached === void 0 ? void 0 : cached.instance.close();
309
+ var options = props;
310
+ cached = {
311
+ key: instanceKey,
312
+ instance: new import_zero.Zero({
313
+ kvStore: "mem",
314
+ ...options,
315
+ schema,
316
+ // @ts-expect-error same erasure ZeroProvider needed
317
+ mutators,
318
+ onClientStateNotFound: function () {
319
+ if (options.onClientStateNotFound) {
320
+ try {
321
+ options.onClientStateNotFound();
322
+ return;
323
+ } catch (e) {}
324
+ }
325
+ if (zeroRotationPending) return;
326
+ zeroRotationPending = true;
327
+ zeroInstanceGeneration.emit(zeroInstanceGeneration.value + 1);
328
+ }
329
+ })
330
+ };
331
+ cachedZero = cached;
332
+ zeroRotationPending = false;
333
+ }
334
+ setInstance(cached.instance);
335
+ },
336
+ // identity is fully captured by instanceKey; function props are bound
337
+ // at construction by design.
338
+ // eslint-disable-next-line react-hooks/exhaustive-deps
339
+ [instanceKey]);
340
+ var prevAuthRef = (0, import_react2.useRef)(auth);
341
+ (0, import_react2.useEffect)(function () {
342
+ var prevAuth = prevAuthRef.current;
343
+ prevAuthRef.current = auth;
344
+ if (instance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
345
+ instance.connection.connect({
346
+ auth
347
+ });
348
+ }
349
+ }, [instance, auth]);
287
350
  if (disable) {
288
351
  return children;
289
352
  }
290
353
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
291
354
  value: authData,
292
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
293
- schema,
294
- kvStore: "mem",
295
- // @ts-expect-error
296
- mutators,
297
- ...props,
355
+ children: instance ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
356
+ zero: instance,
298
357
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
299
358
  zeroEvents
300
359
  }), children]
301
- })
360
+ }) : null
302
361
  });
303
362
  };
304
363
  var SetZeroInstance = function () {
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_getAuth","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","getZeroProxyValue","instance","key","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","param","schema","models","groupedQueries","permissionStrategy","setSchema","getEnvironment","setEnvironment","permissionsHelpers","createPermissions","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","getMutationsPermissions","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","setEvaluatingPermission","buildPermissionQuery","getAuth","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","getAllMutationsPermissions","customQueries","defineQueries","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","createEmitter","AuthDataContext","useQuery","createUseQuery","usePermission","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","setAuthData","mutators","useMemo","createMutators","can","jsx","Provider"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_getAuth","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","getZeroProxyValue","instance","key","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","param","schema","models","groupedQueries","permissionStrategy","setSchema","getEnvironment","setEnvironment","permissionsHelpers","createPermissions","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","getMutationsPermissions","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","setEvaluatingPermission","buildPermissionQuery","getAuth","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","getAllMutationsPermissions","customQueries","defineQueries","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","createEmitter","AuthDataContext","useQuery","createUseQuery","usePermission","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","props","setAuthData","mutators","useMemo","createMutators","can","generation","useEmitterValue","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","setInstance","useState","useEffect","cached","close","options","Zero","onClientStateNotFound","emit"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
- import { defineQueries, defineQuery } from "@rocicorp/zero";
1
+ import { defineQueries, defineQuery, Zero as ZeroClient } from "@rocicorp/zero";
2
2
  import { useConnectionState, useZero, ZeroProvider } from "@rocicorp/zero/react";
3
- import { createEmitter } from "@take-out/helpers";
4
- import { createContext, memo, useContext, useEffect, useMemo, useRef } from "react";
3
+ import { createEmitter, useEmitterValue } from "@take-out/helpers";
4
+ import { createContext, memo, useContext, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { createPermissions } from "./createPermissions.mjs";
6
6
  import { createUseQuery } from "./createUseQuery.mjs";
7
7
  import { createMutators } from "./helpers/createMutators.mjs";
@@ -141,6 +141,9 @@ function createZeroClient({
141
141
  }
142
142
  return null;
143
143
  }
144
+ let cachedZero = null;
145
+ const zeroInstanceGeneration = createEmitter("zero-instance-generation", 0);
146
+ let zeroRotationPending = false;
144
147
  const ProvideZero = ({
145
148
  children,
146
149
  authData: authDataIn,
@@ -157,20 +160,66 @@ function createZeroClient({
157
160
  can: permissionsHelpers.can
158
161
  });
159
162
  }, []);
163
+ const generation = useEmitterValue(zeroInstanceGeneration);
164
+ const auth = "auth" in props ? props.auth : void 0;
165
+ const hasAuth = typeof auth === "string";
166
+ const instanceKey = JSON.stringify([Object.entries({
167
+ kvStore: "mem",
168
+ ...props
169
+ }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, generation]);
170
+ const [instance, setInstance] = useState();
171
+ useEffect(() => {
172
+ let cached = cachedZero;
173
+ if (cached?.key !== instanceKey) {
174
+ cached?.instance.close();
175
+ const options = props;
176
+ cached = {
177
+ key: instanceKey,
178
+ instance: new ZeroClient({
179
+ kvStore: "mem",
180
+ ...options,
181
+ schema,
182
+ // @ts-expect-error same erasure ZeroProvider needed
183
+ mutators,
184
+ onClientStateNotFound: () => {
185
+ if (options.onClientStateNotFound) {
186
+ try {
187
+ options.onClientStateNotFound();
188
+ return;
189
+ } catch {}
190
+ }
191
+ if (zeroRotationPending) return;
192
+ zeroRotationPending = true;
193
+ zeroInstanceGeneration.emit(zeroInstanceGeneration.value + 1);
194
+ }
195
+ })
196
+ };
197
+ cachedZero = cached;
198
+ zeroRotationPending = false;
199
+ }
200
+ setInstance(cached.instance);
201
+ }, [instanceKey]);
202
+ const prevAuthRef = useRef(auth);
203
+ useEffect(() => {
204
+ const prevAuth = prevAuthRef.current;
205
+ prevAuthRef.current = auth;
206
+ if (instance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
207
+ instance.connection.connect({
208
+ auth
209
+ });
210
+ }
211
+ }, [instance, auth]);
160
212
  if (disable) {
161
213
  return children;
162
214
  }
163
215
  return /* @__PURE__ */jsx(AuthDataContext.Provider, {
164
216
  value: authData,
165
- children: /* @__PURE__ */jsxs(ZeroProvider, {
166
- schema,
167
- kvStore: "mem",
168
- mutators,
169
- ...props,
217
+ children: instance ? /* @__PURE__ */jsxs(ZeroProvider, {
218
+ zero: instance,
170
219
  children: [/* @__PURE__ */jsx(SetZeroInstance, {}), /* @__PURE__ */jsx(ConnectionMonitor, {
171
220
  zeroEvents
172
221
  }), children]
173
- })
222
+ }) : null
174
223
  });
175
224
  };
176
225
  const SetZeroInstance = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","useContext","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","jsx","jsxs","getZeroProxyValue","instance","key","value","Reflect","get","bound","bind","property","ownKeys","descriptor","Object","getOwnPropertyDescriptor","defineProperty","createZeroClient","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","namespace","queries","entries","name","fn","args","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","reason","message","emit","preload","fnArg","paramsOrOptions","optionsArg","hasParams","params","queryRequest","getQuery","ControlQueries","action","whenDisabled","mode"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["defineQueries","defineQuery","Zero","ZeroClient","useConnectionState","useZero","ZeroProvider","createEmitter","useEmitterValue","createContext","memo","useContext","useEffect","useMemo","useRef","useState","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","jsx","jsxs","getZeroProxyValue","instance","key","value","Reflect","get","bound","bind","property","ownKeys","descriptor","Object","getOwnPropertyDescriptor","defineProperty","createZeroClient","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","namespace","queries","entries","name","fn","args","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","generation","hasAuth","instanceKey","JSON","stringify","kvStore","filter","sort","a","b","setInstance","cached","close","options","onClientStateNotFound","emit","prevAuthRef","prevAuth","connection","connect","Provider","SetZeroInstance","ConnectionMonitor","zeroInstance","query","run","zeroEvents2","state","prevState","reason","message","preload","fnArg","paramsOrOptions","optionsArg","hasParams","params","queryRequest","getQuery","ControlQueries","action","whenDisabled","mode"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { defineQueries, defineQuery } from "@rocicorp/zero";
2
+ import { defineQueries, defineQuery, Zero as ZeroClient } from "@rocicorp/zero";
3
3
  import { useConnectionState, useZero, ZeroProvider } from "@rocicorp/zero/react";
4
- import { createEmitter } from "@take-out/helpers";
5
- import { createContext, memo, useContext, useEffect, useMemo, useRef } from "react";
4
+ import { createEmitter, useEmitterValue } from "@take-out/helpers";
5
+ import { createContext, memo, useContext, useEffect, useMemo, useRef, useState } from "react";
6
6
  import { createPermissions } from "./createPermissions.native.js";
7
7
  import { createUseQuery } from "./createUseQuery.native.js";
8
8
  import { createMutators } from "./helpers/createMutators.native.js";
@@ -236,6 +236,9 @@ function createZeroClient(param) {
236
236
  }
237
237
  return null;
238
238
  }
239
+ var cachedZero = null;
240
+ var zeroInstanceGeneration = createEmitter("zero-instance-generation", 0);
241
+ var zeroRotationPending = false;
239
242
  var ProvideZero = function (param2) {
240
243
  var {
241
244
  children,
@@ -255,21 +258,77 @@ function createZeroClient(param) {
255
258
  },
256
259
  // eslint-disable-next-line react-hooks/exhaustive-deps
257
260
  []);
261
+ var generation = useEmitterValue(zeroInstanceGeneration);
262
+ var auth = "auth" in props ? props.auth : void 0;
263
+ var hasAuth = typeof auth === "string";
264
+ var instanceKey = JSON.stringify([Object.entries({
265
+ kvStore: "mem",
266
+ ...props
267
+ }).filter(function (param3) {
268
+ var [key, value] = param3;
269
+ return key !== "auth" && typeof value !== "function" && value !== void 0;
270
+ }).sort(function (param3, param1) {
271
+ var [a] = param3,
272
+ [b] = param1;
273
+ return a < b ? -1 : 1;
274
+ }), hasAuth, generation]);
275
+ var [instance, setInstance] = useState();
276
+ useEffect(function () {
277
+ var cached = cachedZero;
278
+ if ((cached === null || cached === void 0 ? void 0 : cached.key) !== instanceKey) {
279
+ cached === null || cached === void 0 ? void 0 : cached.instance.close();
280
+ var options = props;
281
+ cached = {
282
+ key: instanceKey,
283
+ instance: new ZeroClient({
284
+ kvStore: "mem",
285
+ ...options,
286
+ schema,
287
+ // @ts-expect-error same erasure ZeroProvider needed
288
+ mutators,
289
+ onClientStateNotFound: function () {
290
+ if (options.onClientStateNotFound) {
291
+ try {
292
+ options.onClientStateNotFound();
293
+ return;
294
+ } catch (e) {}
295
+ }
296
+ if (zeroRotationPending) return;
297
+ zeroRotationPending = true;
298
+ zeroInstanceGeneration.emit(zeroInstanceGeneration.value + 1);
299
+ }
300
+ })
301
+ };
302
+ cachedZero = cached;
303
+ zeroRotationPending = false;
304
+ }
305
+ setInstance(cached.instance);
306
+ },
307
+ // identity is fully captured by instanceKey; function props are bound
308
+ // at construction by design.
309
+ // eslint-disable-next-line react-hooks/exhaustive-deps
310
+ [instanceKey]);
311
+ var prevAuthRef = useRef(auth);
312
+ useEffect(function () {
313
+ var prevAuth = prevAuthRef.current;
314
+ prevAuthRef.current = auth;
315
+ if (instance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
316
+ instance.connection.connect({
317
+ auth
318
+ });
319
+ }
320
+ }, [instance, auth]);
258
321
  if (disable) {
259
322
  return children;
260
323
  }
261
324
  return /* @__PURE__ */_jsx(AuthDataContext.Provider, {
262
325
  value: authData,
263
- children: /* @__PURE__ */_jsxs(ZeroProvider, {
264
- schema,
265
- kvStore: "mem",
266
- // @ts-expect-error
267
- mutators,
268
- ...props,
326
+ children: instance ? /* @__PURE__ */_jsxs(ZeroProvider, {
327
+ zero: instance,
269
328
  children: [/* @__PURE__ */_jsx(SetZeroInstance, {}), /* @__PURE__ */_jsx(ConnectionMonitor, {
270
329
  zeroEvents
271
330
  }), children]
272
- })
331
+ }) : null
273
332
  });
274
333
  };
275
334
  var SetZeroInstance = function () {
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","useContext","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","getZeroProxyValue","instance","key","value","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","arguments","length","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","Zero","ZeroClient","useConnectionState","useZero","ZeroProvider","createEmitter","useEmitterValue","createContext","memo","useContext","useEffect","useMemo","useRef","useState","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","getZeroProxyValue","instance","key","value","Reflect","get","bound","bind","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","ownKeys","Symbol","iterator","_step","next","done","property","descriptor","Object","getOwnPropertyDescriptor","defineProperty","err","return","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","entries","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","arguments","length","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","generation","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","setInstance","cached","close","options","onClientStateNotFound","emit"],"sources":["../../src/createZeroClient.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.18",
3
+ "version": "0.4.23",
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.18",
80
+ "@take-out/helpers": "0.4.23",
81
81
  "chokidar": "^4.0.3",
82
82
  "citty": "^0.1.6",
83
83
  "valibot": "^1.1.0"
@@ -1,6 +1,6 @@
1
- import { defineQueries, defineQuery } from '@rocicorp/zero'
1
+ import { defineQueries, defineQuery, Zero as ZeroClient } from '@rocicorp/zero'
2
2
  import { useConnectionState, useZero, ZeroProvider } from '@rocicorp/zero/react'
3
- import { createEmitter } from '@take-out/helpers'
3
+ import { createEmitter, useEmitterValue } from '@take-out/helpers'
4
4
  import {
5
5
  createContext,
6
6
  memo,
@@ -8,6 +8,7 @@ import {
8
8
  useEffect,
9
9
  useMemo,
10
10
  useRef,
11
+ useState,
11
12
  type ReactNode,
12
13
  } from 'react'
13
14
 
@@ -250,6 +251,30 @@ export function createZeroClient<
250
251
  return null
251
252
  }
252
253
 
254
+ // the zero instance lives OUTSIDE the react lifecycle. react destroys and
255
+ // re-fires the effects of a committed tree on any suspense hide/reveal, and
256
+ // consumers also remount the provider (splash -> IDE). when ZeroProvider
257
+ // created zero inside its own effect, every such cycle closed the live
258
+ // instance mid-connect ("Failed to connect / Store is closed") and built a
259
+ // replacement, killing in-flight queries and preloads. instead the instance
260
+ // is created in an effect, cached here per identity key, handed to
261
+ // ZeroProvider as an external `zero` (which it never closes), and the
262
+ // previous instance is closed only when the key truly changes — a real
263
+ // identity change (user, storage, server, logged in/out), never a react
264
+ // lifecycle artifact. single-provider assumption: one mounted ProvideZero
265
+ // per client (true of every consumer); two simultaneously mounted providers
266
+ // with different identities would thrash this slot.
267
+ let cachedZero: { key: string; instance: ZeroInstance } | null = null
268
+
269
+ // bumping this recreates the instance with the same options — parity with
270
+ // ZeroProvider's built-in onClientStateNotFound rotation. the pending flag
271
+ // mirrors upstream's rotationPendingRef: a storm of client-state-not-found
272
+ // callbacks coalesces into ONE rotation, re-armed when the fresh instance
273
+ // is created — without it a new instance that immediately re-fires the
274
+ // callback rotation-loops forever.
275
+ const zeroInstanceGeneration = createEmitter<number>('zero-instance-generation', 0)
276
+ let zeroRotationPending = false
277
+
253
278
  const ProvideZero = ({
254
279
  children,
255
280
  authData: authDataIn,
@@ -279,6 +304,93 @@ export function createZeroClient<
279
304
  // eslint-disable-next-line react-hooks/exhaustive-deps
280
305
  }, [])
281
306
 
307
+ const generation = useEmitterValue(zeroInstanceGeneration)
308
+
309
+ const auth = 'auth' in props ? (props as { auth?: string | null }).auth : undefined
310
+ const hasAuth = typeof auth === 'string'
311
+
312
+ // identity = every primitive option except the auth token value (token
313
+ // changes refresh in place below; logged-in <-> logged-out still rotates
314
+ // via hasAuth, matching zero's documented provider semantics). function
315
+ // props (callbacks, logSink, batchViewUpdates) are bound at construction.
316
+ const instanceKey = JSON.stringify([
317
+ Object.entries({ kvStore: 'mem', ...props })
318
+ .filter(
319
+ ([key, value]) =>
320
+ key !== 'auth' && typeof value !== 'function' && value !== undefined,
321
+ )
322
+ .sort(([a], [b]) => (a < b ? -1 : 1)),
323
+ hasAuth,
324
+ generation,
325
+ ])
326
+
327
+ // create/rotate in an effect — commit-safe: a discarded concurrent render
328
+ // can never close an instance the committed tree still uses. a suspense
329
+ // hide/reveal re-runs this effect with an unchanged key — cache hit, no
330
+ // churn, no cleanup-close. children mounting one effect-tick after the
331
+ // provider matches ZeroProvider's internal-creation timing, which consumer
332
+ // boot orchestration observes.
333
+ const [instance, setInstance] = useState<ZeroInstance | undefined>()
334
+ useEffect(() => {
335
+ let cached = cachedZero
336
+ if (cached?.key !== instanceKey) {
337
+ cached?.instance.close()
338
+ const options = props as Omit<
339
+ ZeroOptions<Schema, ZeroMutators>,
340
+ 'schema' | 'mutators'
341
+ >
342
+ cached = {
343
+ key: instanceKey,
344
+ instance: new ZeroClient<Schema, ZeroMutators>({
345
+ kvStore: 'mem',
346
+ ...options,
347
+ schema,
348
+ // @ts-expect-error same erasure ZeroProvider needed
349
+ mutators,
350
+ onClientStateNotFound: () => {
351
+ // consumer callback wins; recreate-with-same-options is the
352
+ // fallback, mirroring ZeroProvider's internal rotation.
353
+ if (options.onClientStateNotFound) {
354
+ try {
355
+ options.onClientStateNotFound()
356
+ return
357
+ } catch {
358
+ // fall through to rotation
359
+ }
360
+ }
361
+ if (zeroRotationPending) return
362
+ zeroRotationPending = true
363
+ zeroInstanceGeneration.emit(zeroInstanceGeneration.value + 1)
364
+ },
365
+ }),
366
+ }
367
+ cachedZero = cached
368
+ zeroRotationPending = false
369
+ }
370
+ setInstance(cached.instance)
371
+ // identity is fully captured by instanceKey; function props are bound
372
+ // at construction by design.
373
+ // eslint-disable-next-line react-hooks/exhaustive-deps
374
+ }, [instanceKey])
375
+
376
+ // a changed token on the same identity refreshes auth in place — zero
377
+ // sends an auth update over the live connection instead of reconnecting
378
+ // (upstream ZeroProvider does exactly this). string <-> undefined flips
379
+ // rotate the instance via hasAuth in the identity key instead.
380
+ const prevAuthRef = useRef(auth)
381
+ useEffect(() => {
382
+ const prevAuth = prevAuthRef.current
383
+ prevAuthRef.current = auth
384
+ if (
385
+ instance &&
386
+ typeof prevAuth === 'string' &&
387
+ typeof auth === 'string' &&
388
+ prevAuth !== auth
389
+ ) {
390
+ instance.connection.connect({ auth })
391
+ }
392
+ }, [instance, auth])
393
+
282
394
  // for now we re-parent
283
395
  if (disable) {
284
396
  return children
@@ -286,17 +398,13 @@ export function createZeroClient<
286
398
 
287
399
  return (
288
400
  <AuthDataContext.Provider value={authData}>
289
- <ZeroProvider
290
- schema={schema}
291
- kvStore="mem"
292
- // @ts-expect-error
293
- mutators={mutators}
294
- {...props}
295
- >
296
- <SetZeroInstance />
297
- <ConnectionMonitor zeroEvents={zeroEvents} />
298
- {children}
299
- </ZeroProvider>
401
+ {instance ? (
402
+ <ZeroProvider zero={instance}>
403
+ <SetZeroInstance />
404
+ <ConnectionMonitor zeroEvents={zeroEvents} />
405
+ {children}
406
+ </ZeroProvider>
407
+ ) : null}
300
408
  </AuthDataContext.Provider>
301
409
  )
302
410
  }
@@ -1,7 +1,8 @@
1
+ import { Zero as ZeroClient } from '@rocicorp/zero';
1
2
  import { type ReactNode } from 'react';
2
3
  import { resolveQuery, type PlainQueryFn } from './resolveQuery';
3
4
  import type { AuthData, GenericModels, GetZeroMutators, ZeroEvent } from './types';
4
- import type { Query, Row, Zero, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
5
+ import type { Query, Row, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
5
6
  type PreloadOptions = {
6
7
  ttl?: 'always' | 'never' | number | undefined;
7
8
  };
@@ -26,7 +27,7 @@ export declare function createZeroClient<Schema extends ZeroSchema, Models exten
26
27
  }) => import("react/jsx-runtime").JSX.Element;
27
28
  useQuery: import("./createUseQuery").UseQueryHook<Schema>;
28
29
  usePermission: (table: (keyof Schema["tables"] & string) | (string & {}), objOrId: string | Partial<Row<any>> | undefined, enabled?: boolean, debug?: boolean) => boolean | null;
29
- zero: Zero<Schema, GetZeroMutators<Models>, unknown>;
30
+ zero: ZeroClient<Schema, GetZeroMutators<Models>, unknown>;
30
31
  preload: {
31
32
  <TArg, TTable extends keyof Schema["tables"] & string, TReturn>(fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>, params: TArg, options?: PreloadOptions): {
32
33
  cleanup: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}