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.
- package/dist/cjs/createZeroClient.cjs +55 -6
- package/dist/cjs/createZeroClient.native.js +66 -7
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +58 -9
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +69 -10
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.tsx +121 -13
- package/types/createZeroClient.d.ts +3 -2
- package/types/createZeroClient.d.ts.map +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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","
|
|
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.
|
|
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.
|
|
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"
|
package/src/createZeroClient.tsx
CHANGED
|
@@ -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
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
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,
|
|
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:
|
|
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":"
|
|
1
|
+
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA8B,IAAI,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG/E,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAQd,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAOhE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAQ,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEzF,KAAK,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEvE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;AAMpF,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAmBtF,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,EACA,MAAM,EACN,MAAM,EACN,cAAc,EACd,kBAAiC,GAClC,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;;yEAoNI,IAAI,CAAC,WAAW,CAAC,MAAM,0BAAe,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QAClE,QAAQ,EAAE,SAAS,CAAA;QACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;QAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB;0DAoNE;QACD,QAAQ,EAAE,SAAS,CAAA;QACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;QAC7B,YAAY,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KACtC;;2BAnSQ,oCAAY,CAAC,MAAM,GAAG,EAAE,CAAC,WACvB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,yCAG9C,OAAO,GAAG,IAAI;;;SAqPA,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,MACxE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,UAC9C,IAAI,YACF,cAAc,GACvB;YAAE,OAAO,EAAE,MAAM,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE;SAClC,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,MAClE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,YAC5C,cAAc,GACvB;YAAE,OAAO,EAAE,MAAM,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE;;;SAejC,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,MACzE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,UAC9C,IAAI,GACX,UAAU,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;SACxB,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,MACnE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,GACrD,UAAU,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;;EA4B3C"}
|