on-zero 0.4.23 → 0.4.24

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 (93) hide show
  1. package/dist/cjs/combineZeroClients.cjs +101 -0
  2. package/dist/cjs/combineZeroClients.native.js +150 -0
  3. package/dist/cjs/combineZeroClients.native.js.map +1 -0
  4. package/dist/cjs/createUseQuery.cjs +92 -4
  5. package/dist/cjs/createUseQuery.native.js +130 -4
  6. package/dist/cjs/createUseQuery.native.js.map +1 -1
  7. package/dist/cjs/createZeroClient.cjs +41 -13
  8. package/dist/cjs/createZeroClient.native.js +75 -43
  9. package/dist/cjs/createZeroClient.native.js.map +1 -1
  10. package/dist/cjs/index.cjs +1 -0
  11. package/dist/cjs/index.native.js +1 -0
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/instanceRegistry.cjs +65 -0
  14. package/dist/cjs/instanceRegistry.native.js +111 -0
  15. package/dist/cjs/instanceRegistry.native.js.map +1 -0
  16. package/dist/cjs/multiInstance.test.cjs +322 -0
  17. package/dist/cjs/multiInstance.test.native.js +387 -0
  18. package/dist/cjs/multiInstance.test.native.js.map +1 -0
  19. package/dist/cjs/multiInstanceNested.test.cjs +206 -0
  20. package/dist/cjs/multiInstanceNested.test.native.js +254 -0
  21. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -0
  22. package/dist/cjs/run.cjs +5 -5
  23. package/dist/cjs/run.native.js +6 -5
  24. package/dist/cjs/run.native.js.map +1 -1
  25. package/dist/cjs/zeroRunner.cjs +4 -1
  26. package/dist/cjs/zeroRunner.native.js +4 -1
  27. package/dist/cjs/zeroRunner.native.js.map +1 -1
  28. package/dist/esm/combineZeroClients.mjs +76 -0
  29. package/dist/esm/combineZeroClients.mjs.map +1 -0
  30. package/dist/esm/combineZeroClients.native.js +122 -0
  31. package/dist/esm/combineZeroClients.native.js.map +1 -0
  32. package/dist/esm/createUseQuery.mjs +92 -5
  33. package/dist/esm/createUseQuery.mjs.map +1 -1
  34. package/dist/esm/createUseQuery.native.js +130 -5
  35. package/dist/esm/createUseQuery.native.js.map +1 -1
  36. package/dist/esm/createZeroClient.mjs +42 -14
  37. package/dist/esm/createZeroClient.mjs.map +1 -1
  38. package/dist/esm/createZeroClient.native.js +76 -44
  39. package/dist/esm/createZeroClient.native.js.map +1 -1
  40. package/dist/esm/index.js +1 -0
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/index.mjs +1 -0
  43. package/dist/esm/index.mjs.map +1 -1
  44. package/dist/esm/index.native.js +1 -0
  45. package/dist/esm/index.native.js.map +1 -1
  46. package/dist/esm/instanceRegistry.mjs +38 -0
  47. package/dist/esm/instanceRegistry.mjs.map +1 -0
  48. package/dist/esm/instanceRegistry.native.js +81 -0
  49. package/dist/esm/instanceRegistry.native.js.map +1 -0
  50. package/dist/esm/multiInstance.test.mjs +323 -0
  51. package/dist/esm/multiInstance.test.mjs.map +1 -0
  52. package/dist/esm/multiInstance.test.native.js +385 -0
  53. package/dist/esm/multiInstance.test.native.js.map +1 -0
  54. package/dist/esm/multiInstanceNested.test.mjs +207 -0
  55. package/dist/esm/multiInstanceNested.test.mjs.map +1 -0
  56. package/dist/esm/multiInstanceNested.test.native.js +252 -0
  57. package/dist/esm/multiInstanceNested.test.native.js.map +1 -0
  58. package/dist/esm/run.mjs +5 -5
  59. package/dist/esm/run.mjs.map +1 -1
  60. package/dist/esm/run.native.js +6 -5
  61. package/dist/esm/run.native.js.map +1 -1
  62. package/dist/esm/zeroRunner.mjs +4 -1
  63. package/dist/esm/zeroRunner.mjs.map +1 -1
  64. package/dist/esm/zeroRunner.native.js +4 -1
  65. package/dist/esm/zeroRunner.native.js.map +1 -1
  66. package/package.json +5 -3
  67. package/readme.md +59 -0
  68. package/src/combineZeroClients.tsx +186 -0
  69. package/src/createUseQuery.tsx +175 -12
  70. package/src/createZeroClient.tsx +107 -42
  71. package/src/index.ts +1 -0
  72. package/src/instanceRegistry.ts +75 -0
  73. package/src/multiInstance.test.tsx +284 -0
  74. package/src/multiInstanceNested.test.tsx +205 -0
  75. package/src/run.ts +7 -6
  76. package/src/zeroRunner.ts +7 -1
  77. package/types/combineZeroClients.d.ts +38 -0
  78. package/types/combineZeroClients.d.ts.map +1 -0
  79. package/types/createUseQuery.d.ts +15 -0
  80. package/types/createUseQuery.d.ts.map +1 -1
  81. package/types/createZeroClient.d.ts +7 -2
  82. package/types/createZeroClient.d.ts.map +1 -1
  83. package/types/index.d.ts +1 -0
  84. package/types/index.d.ts.map +1 -1
  85. package/types/instanceRegistry.d.ts +15 -0
  86. package/types/instanceRegistry.d.ts.map +1 -0
  87. package/types/multiInstance.test.d.ts +2 -0
  88. package/types/multiInstance.test.d.ts.map +1 -0
  89. package/types/multiInstanceNested.test.d.ts +5 -0
  90. package/types/multiInstanceNested.test.d.ts.map +1 -0
  91. package/types/run.d.ts.map +1 -1
  92. package/types/zeroRunner.d.ts +3 -1
  93. package/types/zeroRunner.d.ts.map +1 -1
@@ -1,10 +1,18 @@
1
1
  import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
- import { useContext, useMemo, useRef } from "react";
2
+ import { useEmitterValue } from "@take-out/helpers";
3
+ import { useContext, useEffect, useMemo, useRef, useSyncExternalStore } from "react";
3
4
  import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
4
5
  import { resolveQuery } from "./resolveQuery.mjs";
5
6
  const EMPTY_RESPONSE = [null, {
6
7
  type: "unknown"
7
8
  }];
9
+ function parseUseQueryArgs(paramsOrOptions, optionsArg) {
10
+ const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
11
+ return {
12
+ params: hasParams ? paramsOrOptions : void 0,
13
+ options: hasParams ? optionsArg : paramsOrOptions
14
+ };
15
+ }
8
16
  function createUseQuery({
9
17
  DisabledContext,
10
18
  customQueries
@@ -17,9 +25,10 @@ function createUseQuery({
17
25
  queryRequest,
18
26
  options
19
27
  } = useMemo(() => {
20
- const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
21
- const params = hasParams ? paramsOrOptions : void 0;
22
- const opts = hasParams ? optionsArg : paramsOrOptions;
28
+ const {
29
+ params,
30
+ options: opts
31
+ } = parseUseQueryArgs(paramsOrOptions, optionsArg);
23
32
  const queryRequest2 = resolveQuery({
24
33
  customQueries,
25
34
  fn,
@@ -45,5 +54,83 @@ function createUseQuery({
45
54
  }
46
55
  return useQuery;
47
56
  }
48
- export { createUseQuery };
57
+ const DISABLED_SUBSCRIBE = () => () => {};
58
+ const DISABLED_SNAPSHOT = [void 0, {
59
+ type: "unknown"
60
+ }];
61
+ const getDisabledSnapshot = () => DISABLED_SNAPSHOT;
62
+ function createDirectView(zero, queryRequest, ttl) {
63
+ let snapshot = DISABLED_SNAPSHOT;
64
+ const listeners = /* @__PURE__ */new Set();
65
+ const view = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
66
+ ttl
67
+ });
68
+ view.addListener((data, resultType) => {
69
+ snapshot = [data === void 0 ? void 0 : structuredClone(data), {
70
+ type: resultType
71
+ }];
72
+ for (const listener of listeners) {
73
+ listener();
74
+ }
75
+ });
76
+ return {
77
+ subscribe: notify => {
78
+ listeners.add(notify);
79
+ return () => listeners.delete(notify);
80
+ },
81
+ getSnapshot: () => snapshot,
82
+ destroy: () => view.destroy()
83
+ };
84
+ }
85
+ function createUseQueryDirect({
86
+ DisabledContext,
87
+ customQueries,
88
+ getZero,
89
+ zeroVersion
90
+ }) {
91
+ function useQueryDirect(...args) {
92
+ const disableMode = useContext(DisabledContext);
93
+ const lastRef = useRef(EMPTY_RESPONSE);
94
+ const [fn, paramsOrOptions, optionsArg] = args;
95
+ const version = useEmitterValue(zeroVersion);
96
+ const {
97
+ params,
98
+ options
99
+ } = parseUseQueryArgs(paramsOrOptions, optionsArg);
100
+ let enabled = true;
101
+ let ttl;
102
+ if (typeof options === "boolean") {
103
+ enabled = options;
104
+ } else if (options) {
105
+ enabled = options.enabled !== false;
106
+ ttl = options.ttl;
107
+ }
108
+ const paramsKey = params === void 0 ? "" : JSON.stringify(params);
109
+ const view = useMemo(() => {
110
+ const zero = getZero();
111
+ if (!enabled || !zero) return null;
112
+ const queryRequest = resolveQuery({
113
+ customQueries,
114
+ fn,
115
+ params
116
+ });
117
+ return createDirectView(zero, queryRequest, ttl);
118
+ }, [fn, paramsKey, enabled, ttl, version]);
119
+ useEffect(() => {
120
+ if (!view) return;
121
+ return () => view.destroy();
122
+ }, [view]);
123
+ const out = useSyncExternalStore(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getDisabledSnapshot, view ? view.getSnapshot : getDisabledSnapshot);
124
+ if (!disableMode) {
125
+ lastRef.current = out;
126
+ return out;
127
+ }
128
+ if (disableMode === "last-value") {
129
+ return lastRef.current;
130
+ }
131
+ return EMPTY_RESPONSE;
132
+ }
133
+ return useQueryDirect;
134
+ }
135
+ export { createUseQuery, createUseQueryDirect };
49
136
  //# sourceMappingURL=createUseQuery.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useQuery","zeroUseQuery","useContext","useMemo","useRef","useZeroDebug","resolveQuery","EMPTY_RESPONSE","type","createUseQuery","DisabledContext","customQueries","args","disableMode","lastRef","fn","paramsOrOptions","optionsArg","queryRequest","options","hasParams","params","opts","queryRequest2","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","current"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;AAqChD,MAAMC,cAAA,GAAiB,CAAC,MAAM;EAAEC,IAAA,EAAM;AAAU,CAAC;AAE1C,SAASC,eAA0C;EACxDC,eAAA;EACAC;AACF,GAGyB;EACvB,SAASX,SAAA,GAAYY,IAAA,EAAkB;IACrC,MAAMC,WAAA,GAAcX,UAAA,CAAWQ,eAAe;IAC9C,MAAMI,OAAA,GAAUV,MAAA,CAAYG,cAAc;IAC1C,MAAM,CAACQ,EAAA,EAAIC,eAAA,EAAiBC,UAAU,IAAIL,IAAA;IAE1C,MAAM;MAAEM,YAAA;MAAcC;IAAQ,IAAIhB,OAAA,CAAQ,MAAM;MAE9C,MAAMiB,SAAA,GACJH,UAAA,KAAe,UACdD,eAAA,IACC,OAAOA,eAAA,KAAoB,YAC3B,EAAE,aAAaA,eAAA,KACf,EAAE,SAASA,eAAA;MAEf,MAAMK,MAAA,GAASD,SAAA,GAAYJ,eAAA,GAAkB;MAC7C,MAAMM,IAAA,GAAOF,SAAA,GAAYH,UAAA,GAAaD,eAAA;MAEtC,MAAMO,aAAA,GAAejB,YAAA,CAAa;QAAEK,aAAA;QAAeI,EAAA;QAAIM;MAAO,CAAC;MAE/D,OAAO;QAAEH,YAAA,EAAAK,aAAA;QAAcJ,OAAA,EAASG;MAAK;IACvC,GAAG,CAACP,EAAA,EAAIC,eAAA,EAAiBC,UAAU,CAAC;IAEpC,MAAMO,GAAA,GAAMvB,YAAA,CAAaiB,YAAA,EAAcC,OAAO;IAE9C,IAAIM,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;MAC1C,IAAIF,OAAA,CAAQC,GAAA,CAAIE,kBAAA,KAAuB,KAErCvB,YAAA,CAAaa,YAAA,EAAcC,OAAA,EAASK,GAAG;IAC3C;IAEA,IAAI,CAACX,WAAA,EAAa;MAChBC,OAAA,CAAQe,OAAA,GAAUL,GAAA;MAClB,OAAOA,GAAA;IACT;IAEA,IAAIX,WAAA,KAAgB,cAAc;MAChC,OAAOC,OAAA,CAAQe,OAAA;IACjB;IAEA,OAAOtB,cAAA;EACT;EAEA,OAAOP,QAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["useQuery","zeroUseQuery","useEmitterValue","useContext","useEffect","useMemo","useRef","useSyncExternalStore","useZeroDebug","resolveQuery","EMPTY_RESPONSE","type","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","createUseQuery","DisabledContext","customQueries","args","disableMode","lastRef","fn","queryRequest","opts","queryRequest2","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","current","DISABLED_SUBSCRIBE","DISABLED_SNAPSHOT","getDisabledSnapshot","createDirectView","zero","ttl","snapshot","listeners","Set","view","materialize","addListener","data","resultType","structuredClone","listener","subscribe","notify","add","delete","getSnapshot","destroy","createUseQueryDirect","getZero","zeroVersion","useQueryDirect","version","enabled","paramsKey","JSON","stringify"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
- import { useContext, useMemo, useRef } from "react";
2
+ import { useEmitterValue } from "@take-out/helpers";
3
+ import { useContext, useEffect, useMemo, useRef, useSyncExternalStore } from "react";
3
4
  import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
4
5
  import { resolveQuery } from "./resolveQuery.native.js";
5
6
  function _type_of(obj) {
@@ -10,6 +11,13 @@ function _type_of(obj) {
10
11
  var EMPTY_RESPONSE = [null, {
11
12
  type: "unknown"
12
13
  }];
14
+ function parseUseQueryArgs(paramsOrOptions, optionsArg) {
15
+ var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions === "undefined" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
16
+ return {
17
+ params: hasParams ? paramsOrOptions : void 0,
18
+ options: hasParams ? optionsArg : paramsOrOptions
19
+ };
20
+ }
13
21
  function createUseQuery(param) {
14
22
  var {
15
23
  DisabledContext,
@@ -26,9 +34,10 @@ function createUseQuery(param) {
26
34
  queryRequest,
27
35
  options
28
36
  } = useMemo(function () {
29
- var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions === "undefined" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
30
- var params = hasParams ? paramsOrOptions : void 0;
31
- var opts = hasParams ? optionsArg : paramsOrOptions;
37
+ var {
38
+ params,
39
+ options: opts
40
+ } = parseUseQueryArgs(paramsOrOptions, optionsArg);
32
41
  var queryRequest2 = resolveQuery({
33
42
  customQueries,
34
43
  fn,
@@ -54,5 +63,121 @@ function createUseQuery(param) {
54
63
  }
55
64
  return useQuery;
56
65
  }
57
- export { createUseQuery };
66
+ var DISABLED_SUBSCRIBE = function () {
67
+ return function () {};
68
+ };
69
+ var DISABLED_SNAPSHOT = [void 0, {
70
+ type: "unknown"
71
+ }];
72
+ var getDisabledSnapshot = function () {
73
+ return DISABLED_SNAPSHOT;
74
+ };
75
+ function createDirectView(zero, queryRequest, ttl) {
76
+ var snapshot = DISABLED_SNAPSHOT;
77
+ var listeners = /* @__PURE__ */new Set();
78
+ var view = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
79
+ ttl
80
+ });
81
+ view.addListener(function (data, resultType) {
82
+ snapshot = [data === void 0 ? void 0 : structuredClone(data), {
83
+ type: resultType
84
+ }];
85
+ var _iteratorNormalCompletion = true,
86
+ _didIteratorError = false,
87
+ _iteratorError = void 0;
88
+ try {
89
+ for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
90
+ var listener = _step.value;
91
+ listener();
92
+ }
93
+ } catch (err) {
94
+ _didIteratorError = true;
95
+ _iteratorError = err;
96
+ } finally {
97
+ try {
98
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
99
+ _iterator.return();
100
+ }
101
+ } finally {
102
+ if (_didIteratorError) {
103
+ throw _iteratorError;
104
+ }
105
+ }
106
+ }
107
+ });
108
+ return {
109
+ subscribe: function (notify) {
110
+ listeners.add(notify);
111
+ return function () {
112
+ return listeners.delete(notify);
113
+ };
114
+ },
115
+ getSnapshot: function () {
116
+ return snapshot;
117
+ },
118
+ destroy: function () {
119
+ return view.destroy();
120
+ }
121
+ };
122
+ }
123
+ function createUseQueryDirect(param) {
124
+ var {
125
+ DisabledContext,
126
+ customQueries,
127
+ getZero,
128
+ zeroVersion
129
+ } = param;
130
+ function useQueryDirect() {
131
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
132
+ args[_key] = arguments[_key];
133
+ }
134
+ var disableMode = useContext(DisabledContext);
135
+ var lastRef = useRef(EMPTY_RESPONSE);
136
+ var [fn, paramsOrOptions, optionsArg] = args;
137
+ var version = useEmitterValue(zeroVersion);
138
+ var {
139
+ params,
140
+ options
141
+ } = parseUseQueryArgs(paramsOrOptions, optionsArg);
142
+ var enabled = true;
143
+ var ttl;
144
+ if (typeof options === "boolean") {
145
+ enabled = options;
146
+ } else if (options) {
147
+ enabled = options.enabled !== false;
148
+ ttl = options.ttl;
149
+ }
150
+ var paramsKey = params === void 0 ? "" : JSON.stringify(params);
151
+ var view = useMemo(function () {
152
+ var zero = getZero();
153
+ if (!enabled || !zero) return null;
154
+ var queryRequest = resolveQuery({
155
+ customQueries,
156
+ fn,
157
+ params
158
+ });
159
+ return createDirectView(zero, queryRequest, ttl);
160
+ },
161
+ // params is keyed by paramsKey; version re-materializes on a new zero
162
+ // eslint-disable-next-line react-hooks/exhaustive-deps
163
+ [fn, paramsKey, enabled, ttl, version]);
164
+ useEffect(function () {
165
+ if (!view) return;
166
+ return function () {
167
+ return view.destroy();
168
+ };
169
+ }, [view]);
170
+ var out = useSyncExternalStore(view ? view.subscribe : DISABLED_SUBSCRIBE, view ? view.getSnapshot : getDisabledSnapshot, view ? view.getSnapshot : getDisabledSnapshot);
171
+ if (!disableMode) {
172
+ lastRef.current = out;
173
+ return out;
174
+ }
175
+ if (disableMode === "last-value") {
176
+ return lastRef.current;
177
+ }
178
+ return EMPTY_RESPONSE;
179
+ }
180
+ return useQueryDirect;
181
+ }
182
+ export { createUseQuery, createUseQueryDirect };
58
183
  //# sourceMappingURL=createUseQuery.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useQuery","zeroUseQuery","useContext","useMemo","useRef","useZeroDebug","resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_RESPONSE","type","createUseQuery","param","DisabledContext","customQueries","_len","arguments","length","args","Array","_key","disableMode","lastRef","fn","paramsOrOptions","optionsArg","queryRequest","options","hasParams","params","opts","queryRequest2"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,UAAA,EAAYC,OAAA,EAASC,MAAA,QAA4B;AAE1D,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAuC;AAqChD,SAAMC,SAAAC,GAAA,EAAiB;EAEhB,uBAAmD;;EACxD,OAAAA,GAAA,WAAAC,MAAA,oBAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAAA;AAEF,IAGyBG,cAAA,IACvB,MACE;EACAC,IAAA,EAAM;AACN,EAEA;AAEE,SAAAC,cAAMA,CACJC,KAAA;EAMF;IAAAC,eAAe;IAAAC;EAAY,IAAAF,KAAA;EAC3B,SAAAd,QAAaA,CAAA;IAEb,SAAMiB,IAAA,GAAAC,SAAe,CAAAC,MAAA,EAAAC,IAAa,GAAE,IAAAC,KAAA,CAAAJ,IAAe,GAAIK,IAAA,GAAO,CAAC,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAE/DF,IAAA,CAAAE,IAAS,IAAAJ,SAAA,CAAAI,IAAA;IACX;IAEA,IAAAC,WAAY,GAAArB,UAAa,CAAAa,eAAc;IAEvC,IAAIS,OAAA,GAAQpB,MAAI,CAAAO,cAAa;IAC3B,KAAAc,EAAI,EAAAC,eAAY,EAAAC,UAAA,IAAAP,IAAuB;IAErC;MAAAQ,YAAa;MAAAC;IAAA,IAAc1B,OAAA,CAAS,YAAG;MAC3C,IAAA2B,SAAA,GAAAH,UAAA,eAAAD,eAAA,YAAAA,eAAA,iCAAAnB,QAAA,CAAAmB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;MAEA,IAAKK,MAAA,GAAAD,SAAa,GAAAJ,eAAA;MAChB,IAAAM,IAAQ,GAAAF,SAAU,GAAAH,UAAA,GAAAD,eAAA;MAClB,IAAAO,aAAO,GAAA3B,YAAA;QACTU,aAAA;QAEIS,EAAA;QACFM;MACF;MAEA,OAAO;QACTH,YAAA,EAAAK,aAAA;QAEAJ,OAAO,EAAAG;MACT","ignoreList":[]}
1
+ {"version":3,"names":["useQuery","zeroUseQuery","useEmitterValue","useContext","useEffect","useMemo","useRef","useSyncExternalStore","useZeroDebug","resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_RESPONSE","type","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","createUseQuery","param","DisabledContext","customQueries","_len","arguments","length","args","Array","_key","disableMode","lastRef","fn","queryRequest","opts","queryRequest2","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","current","DISABLED_SUBSCRIBE","DISABLED_SNAPSHOT","getDisabledSnapshot","createDirectView","zero","ttl","snapshot","listeners","Set","view","materialize","addListener","data","resultType","structuredClone","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","listener","value","err","return","subscribe","notify","add","delete","getSnapshot","destroy"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,8 @@ import { useConnectionState, useZero, ZeroProvider } from "@rocicorp/zero/react"
3
3
  import { createEmitter, useEmitterValue } from "@take-out/helpers";
4
4
  import { createContext, memo, useContext, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { createPermissions } from "./createPermissions.mjs";
6
- import { createUseQuery } from "./createUseQuery.mjs";
6
+ import { createUseQuery, createUseQueryDirect } from "./createUseQuery.mjs";
7
+ import { registerClientInstance } from "./instanceRegistry.mjs";
7
8
  import { createMutators } from "./helpers/createMutators.mjs";
8
9
  import { getAuth } from "./helpers/getAuth.mjs";
9
10
  import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegistry.mjs";
@@ -34,7 +35,8 @@ function createZeroClient({
34
35
  schema,
35
36
  models,
36
37
  groupedQueries,
37
- permissionStrategy = "optimistic"
38
+ permissionStrategy = "optimistic",
39
+ instanceName = "default"
38
40
  }) {
39
41
  setSchema(schema);
40
42
  if (getEnvironment() === null) {
@@ -92,6 +94,14 @@ function createZeroClient({
92
94
  }) => fn(args));
93
95
  }
94
96
  const customQueries = defineQueries(wrappedNamespaces);
97
+ const instance = registerClientInstance({
98
+ name: instanceName,
99
+ namespaces: Object.keys({
100
+ ...groupedQueries,
101
+ ...models
102
+ }),
103
+ customQueries
104
+ });
95
105
  setCustomQueries(customQueries);
96
106
  const DisabledContext = createContext(false);
97
107
  let latestZeroInstance = null;
@@ -103,20 +113,28 @@ function createZeroClient({
103
113
  return getZeroProxyValue(latestZeroInstance, key);
104
114
  }
105
115
  });
106
- const zeroEvents = createEmitter("zero", null);
116
+ const emitterScope = instanceName === "default" ? "" : `:${instanceName}`;
117
+ const zeroEvents = createEmitter(`zero${emitterScope}`, null);
118
+ const zeroInstanceVersion = createEmitter(`zero-instance-version${emitterScope}`, 0);
107
119
  const AuthDataContext = createContext({});
108
120
  const useQuery = createUseQuery({
109
121
  DisabledContext,
110
122
  customQueries
111
123
  });
112
- function usePermission(table, objOrId, enabled = typeof objOrId !== "undefined", debug = false) {
124
+ const useQueryDirect = createUseQueryDirect({
125
+ DisabledContext,
126
+ customQueries,
127
+ getZero: () => latestZeroInstance,
128
+ zeroVersion: zeroInstanceVersion
129
+ });
130
+ const createUsePermission = useQueryImpl => function usePermission2(table, objOrId, enabled = typeof objOrId !== "undefined", debug = false) {
113
131
  const disableMode = useContext(DisabledContext);
114
132
  const lastRef = useRef(null);
115
133
  const tableStr = table;
116
134
  const checkFn = permissionCheckFns[tableStr];
117
135
  const auth = getAuth();
118
136
  const _uid = auth?.id || "anon";
119
- const [data, status] = useQuery(checkFn, {
137
+ const [data, status] = useQueryImpl(checkFn, {
120
138
  objOrId,
121
139
  _uid
122
140
  }, {
@@ -140,9 +158,11 @@ function createZeroClient({
140
158
  return lastRef.current;
141
159
  }
142
160
  return null;
143
- }
161
+ };
162
+ const usePermission = createUsePermission(useQuery);
163
+ const usePermissionDirect = createUsePermission(useQueryDirect);
144
164
  let cachedZero = null;
145
- const zeroInstanceGeneration = createEmitter("zero-instance-generation", 0);
165
+ const zeroInstanceGeneration = createEmitter(`zero-instance-generation${emitterScope}`, 0);
146
166
  let zeroRotationPending = false;
147
167
  const ProvideZero = ({
148
168
  children,
@@ -167,7 +187,7 @@ function createZeroClient({
167
187
  kvStore: "mem",
168
188
  ...props
169
189
  }).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();
190
+ const [instance2, setInstance] = useState();
171
191
  useEffect(() => {
172
192
  let cached = cachedZero;
173
193
  if (cached?.key !== instanceKey) {
@@ -203,19 +223,19 @@ function createZeroClient({
203
223
  useEffect(() => {
204
224
  const prevAuth = prevAuthRef.current;
205
225
  prevAuthRef.current = auth;
206
- if (instance && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
207
- instance.connection.connect({
226
+ if (instance2 && typeof prevAuth === "string" && typeof auth === "string" && prevAuth !== auth) {
227
+ instance2.connection.connect({
208
228
  auth
209
229
  });
210
230
  }
211
- }, [instance, auth]);
231
+ }, [instance2, auth]);
212
232
  if (disable) {
213
233
  return children;
214
234
  }
215
235
  return /* @__PURE__ */jsx(AuthDataContext.Provider, {
216
236
  value: authData,
217
- children: instance ? /* @__PURE__ */jsxs(ZeroProvider, {
218
- zero: instance,
237
+ children: instance2 ? /* @__PURE__ */jsxs(ZeroProvider, {
238
+ zero: instance2,
219
239
  children: [/* @__PURE__ */jsx(SetZeroInstance, {}), /* @__PURE__ */jsx(ConnectionMonitor, {
220
240
  zeroEvents
221
241
  }), children]
@@ -226,8 +246,13 @@ function createZeroClient({
226
246
  const zeroInstance = useZero();
227
247
  if (zeroInstance !== latestZeroInstance) {
228
248
  latestZeroInstance = zeroInstance;
229
- setRunner((query, options) => zeroInstance.run(query, options));
249
+ const runner = (query, options) => zeroInstance.run(query, options);
250
+ instance.runner = runner;
251
+ setRunner(runner);
230
252
  }
253
+ useEffect(() => {
254
+ zeroInstanceVersion.emit(zeroInstanceVersion.value + 1);
255
+ }, [zeroInstance]);
231
256
  return null;
232
257
  };
233
258
  const ConnectionMonitor = memo(({
@@ -280,11 +305,14 @@ function createZeroClient({
280
305
  });
281
306
  }
282
307
  return {
308
+ instanceName,
283
309
  zeroEvents,
284
310
  ProvideZero,
285
311
  ControlQueries,
286
312
  useQuery,
313
+ useQueryDirect,
287
314
  usePermission,
315
+ usePermissionDirect,
288
316
  zero,
289
317
  preload,
290
318
  getQuery
@@ -1 +1 @@
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":"AAAA,SAASA,aAAA,EAAeC,WAAA,EAAaC,IAAA,IAAQC,UAAA,QAAkB;AAC/D,SAASC,kBAAA,EAAoBC,OAAA,EAASC,YAAA,QAAoB;AAC1D,SAASC,aAAA,EAAeC,eAAA,QAAuB;AAC/C,SACEC,aAAA,EACAC,IAAA,EACAC,UAAA,EACAC,SAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA,QAEK;AAEP,SAASC,iBAAA,QAAyB;AAClC,SAASC,cAAA,QAA6C;AACtD,SAASC,cAAA,QAAsB;AAC/B,SAASC,OAAA,QAAe;AACxB,SAASC,0BAAA,EAA4BC,uBAAA,QAA+B;AACpE,SAASC,aAAA,QAAqB;AAC9B,SAASC,YAAA,QAAuC;AAChD,SAASC,gBAAA,QAAwB;AACjC,SAASC,cAAA,EAAgBC,WAAA,EAAaC,cAAA,EAAgBC,SAAA,QAAiB;AACvE,SAASC,WAAA,EAAaC,uBAAA,QAA+B;AACrD,SAASC,SAAA,QAAiB;AAC1B,SAASC,GAAA,QAAW;AAwXV,SACEC,GAAA,EADFC,IAAA;AAzWV,SAASC,kBAAkBC,QAAA,EAAkBC,GAAA,EAAkB;EAC7D,MAAMC,KAAA,GAAQC,OAAA,CAAQC,GAAA,CAAIJ,QAAA,EAAUC,GAAA,EAAKD,QAAQ;EACjD,IAAI,OAAOE,KAAA,KAAU,YAAY,OAAOA,KAAA;EAExC,MAAMG,KAAA,GAAQH,KAAA,CAAMI,IAAA,CAAKN,QAAQ;EACjC,WAAWO,QAAA,IAAYJ,OAAA,CAAQK,OAAA,CAAQN,KAAK,GAAG;IAC7C,IAAIK,QAAA,KAAa,YAAYA,QAAA,KAAa,UAAUA,QAAA,KAAa,aAAa;MAC5E;IACF;IACA,MAAME,UAAA,GAAaC,MAAA,CAAOC,wBAAA,CAAyBT,KAAA,EAAOK,QAAQ;IAClE,IAAIE,UAAA,EAAY;MACdC,MAAA,CAAOE,cAAA,CAAeP,KAAA,EAAOE,QAAA,EAAUE,UAAU;IACnD;EACF;EACA,OAAOJ,KAAA;AACT;AAEO,SAASQ,iBAGd;EACAC,MAAA;EACAC,MAAA;EACAC,cAAA;EACAC,kBAAA,GAAqB;AACvB,GAKG;EAKDzB,SAAA,CAAUsB,MAAM;EAIhB,IAAIzB,cAAA,CAAe,MAAM,MAAM;IAC7BE,cAAA,CAAe,QAAQ;EACzB;EAEA,MAAM2B,kBAAA,GAAqBtC,iBAAA,CAA0B;IACnDkC,MAAA;IACAK,WAAA,EAAa;EACf,CAAC;EAID,MAAMC,iBAAA,GAGF,CAAC;EAEL,WAAW,CAACC,SAAA,EAAWC,OAAO,KAAKZ,MAAA,CAAOa,OAAA,CAAQP,cAAc,GAAG;IACjEI,iBAAA,CAAkBC,SAAS,IAAI,CAAC;IAChC,WAAW,CAACG,IAAA,EAAMC,EAAE,KAAKf,MAAA,CAAOa,OAAA,CAAQD,OAAO,GAAG;MAChDpC,aAAA,CAAcuC,EAAA,EAAI,GAAGJ,SAAS,IAAIG,IAAI,EAAE;MAExCJ,iBAAA,CAAkBC,SAAS,EAAEG,IAAI,IAAI3D,WAAA,CAAY,CAAC;QAAE6D;MAAK,MACvDD,EAAA,CAAGC,IAAI,CACT;IACF;EACF;EAKA,MAAMC,kBAAA,GAGF,CAAC;EAEL,MAAMC,uBAAA,GAA2BC,KAAA,IAAkB;IACjD,MAAMJ,EAAA,GAAMC,IAAA,IAAoD;MAC9D,MAAMI,IAAA,GAAO7C,uBAAA,CAAwB4C,KAAK;MAC1C,MAAME,IAAA,GAAQnC,GAAA,CAAYiC,KAAK;MAE/B,IAAI,CAACH,IAAA,CAAKM,OAAA,EAAS;QACjB,OAAOD,IAAA,CAAKE,KAAA,CAAOC,EAAA,IAAYA,EAAA,CAAGC,MAAA,CAAO,MAAM,KAAK,KAAK,CAAC,EAAEC,GAAA,CAAI;MAClE;MAEA,IAAInB,kBAAA,KAAuB,cAAc;QAGvC,MAAMoB,OAAA,GAAUP,IAAA,GAAOrC,WAAA,CAAYqC,IAAI,KAAKA,IAAA,GAAOA,IAAA;QACnD,OAAOC,IAAA,CACJE,KAAA,CAAOC,EAAA,IAAY;UAClBxC,uBAAA,CAAwB,IAAI;UAC5B,IAAI;YACF,OAAOwB,kBAAA,CAAmBoB,oBAAA,CACxBvD,OAAA,CAAQ,GACRmD,EAAA,EACAG,OAAA,KAAaE,CAAA,IAAWA,CAAA,CAAEC,GAAA,CAAI,IAC9Bd,IAAA,CAAKM,OAAA,EACLH,KACF;UACF,UAAE;YACAnC,uBAAA,CAAwB,KAAK;UAC/B;QACF,CAAC,EACA0C,GAAA,CAAI;MACT;MAEA,IAAInB,kBAAA,KAAuB,mBAAmB;QAE5C,OAAOc,IAAA,CAAKE,KAAA,CAAOC,EAAA,IAAYA,EAAA,CAAGC,MAAA,CAAO,MAAM,KAAK,KAAK,CAAC,EAAEC,GAAA,CAAI;MAClE;MAKA,OAAOL,IAAA,CACJE,KAAA,CAAOC,EAAA,IAAY;QAClB,OAAOhB,kBAAA,CAAmBoB,oBAAA,CACxBvD,OAAA,CAAQ,GACRmD,EAAA,EACAJ,IAAA,KAAUS,CAAA,IAAWA,CAAA,CAAEC,GAAA,CAAI,IAC3Bd,IAAA,CAAKM,OAAA,EACLH,KACF;MACF,CAAC,EACAO,GAAA,CAAI;IACT;IACAT,kBAAA,CAAmBE,KAAK,IAAIJ,EAAA;IAC5BvC,aAAA,CAAcuC,EAAA,EAAI,cAAcI,KAAK,EAAE;IACvC,OAAOJ,EAAA;EACT;EAEAL,iBAAA,CAAkB,YAAY,IAAI,CAAC;EACnC,WAAW,CAACS,KAAK,KAAK7C,0BAAA,CAA2B,GAAG;IAClD,MAAMyC,EAAA,GAAKG,uBAAA,CAAwBC,KAAK;IACxCT,iBAAA,CAAkB,YAAY,EAAES,KAAK,IAAIhE,WAAA,CAAY,CAAC;MAAE6D;IAAK,MAAWD,EAAA,CAAGC,IAAI,CAAC;EAClF;EAGA,MAAMe,aAAA,GAAgB7E,aAAA,CAAcwD,iBAAiB;EAGrDhC,gBAAA,CAAiBqD,aAAa;EAE9B,MAAMC,eAAA,GAAkBrE,aAAA,CAAgC,KAAK;EAE7D,IAAIsE,kBAAA,GAA0C;EAI9C,MAAMC,IAAA,GAAqB,IAAIC,KAAA,CAAM,CAAC,GAAY;IAChDzC,IAAI0C,CAAA,EAAG7C,GAAA,EAAK;MACV,IAAI0C,kBAAA,KAAuB,MAAM;QAC/B,MAAM,IAAII,KAAA,CACR,wFACF;MACF;MACA,OAAOhD,iBAAA,CAAkB4C,kBAAA,EAAoB1C,GAAG;IAClD;EACF,CAAC;EAED,MAAM+C,UAAA,GAAa7E,aAAA,CAAgC,QAAQ,IAAI;EAE/D,MAAM8E,eAAA,GAAkB5E,aAAA,CAAwB,CAAC,CAAa;EAE9D,MAAM6E,QAAA,GAAWrE,cAAA,CAAuB;IACtC6D,eAAA;IACAD;EACF,CAAC;EAID,SAASU,cACPtB,KAAA,EACAG,OAAA,EACAoB,OAAA,GAAU,OAAOpB,OAAA,KAAY,aAC7BqB,KAAA,GAAQ,OACQ;IAChB,MAAMC,WAAA,GAAc/E,UAAA,CAAWmE,eAAe;IAC9C,MAAMa,OAAA,GAAU7E,MAAA,CAAuB,IAAI;IAC3C,MAAM8E,QAAA,GAAW3B,KAAA;IACjB,MAAM4B,OAAA,GAAU9B,kBAAA,CAAmB6B,QAAQ;IAI3C,MAAME,IAAA,GAAO3E,OAAA,CAAQ;IACrB,MAAM4E,IAAA,GAAOD,IAAA,EAAME,EAAA,IAAM;IAEzB,MAAM,CAACC,IAAA,EAAMC,MAAM,IAAIZ,QAAA,CACrBO,OAAA,EACA;MAAEzB,OAAA;MAAyB2B;IAAK,GAChC;MAAEP,OAAA,EAASW,OAAA,CAAQ,CAACT,WAAA,IAAeF,OAAA,IAAWpB,OAAA,IAAWyB,OAAO;IAAE,CACpE;IAEA,IAAIJ,KAAA,EAAO;MACTW,OAAA,CAAQC,IAAA,CAAK,mBAAmB;QAAEpC,KAAA;QAAOG,OAAA;QAAS6B,IAAA;QAAMC;MAAO,CAAC;IAClE;IAEA,IAAI,CAAC9B,OAAA,EAAS,OAAO;IAGrB,MAAMkC,MAAA,GAASJ,MAAA,CAAOK,IAAA,KAAS,YAAY,OAAOJ,OAAA,CAAQF,IAAI;IAE9D,IAAI,CAACP,WAAA,EAAa;MAChBC,OAAA,CAAQa,OAAA,GAAUF,MAAA;MAClB,OAAOA,MAAA;IACT;IAEA,IAAIZ,WAAA,KAAgB,cAAc;MAChC,OAAOC,OAAA,CAAQa,OAAA;IACjB;IAEA,OAAO;EACT;EAeA,IAAIC,UAAA,GAA6D;EAQjE,MAAMC,sBAAA,GAAyBnG,aAAA,CAAsB,4BAA4B,CAAC;EAClF,IAAIoG,mBAAA,GAAsB;EAE1B,MAAMC,WAAA,GAAcA,CAAC;IACnBC,QAAA;IACAC,QAAA,EAAUC,UAAA;IACVC,OAAA;IACA,GAAGC;EACL,MAIM;IACJ,MAAMH,QAAA,GAAYC,UAAA,IAAc;IAIhCrF,WAAA,CAAYoF,QAAQ;IAKpB,MAAMI,QAAA,GAAWrG,OAAA,CAAQ,MAAM;MAC7B,OAAOK,cAAA,CAAe;QACpBiC,MAAA;QACAI,WAAA,EAAa;QACbuD,QAAA,EAAU;QACVK,GAAA,EAAK7D,kBAAA,CAAmB6D;MAC1B,CAAC;IAEH,GAAG,EAAE;IAEL,MAAMC,UAAA,GAAa5G,eAAA,CAAgBkG,sBAAsB;IAEzD,MAAMZ,IAAA,GAAO,UAAUmB,KAAA,GAASA,KAAA,CAAmCnB,IAAA,GAAO;IAC1E,MAAMuB,OAAA,GAAU,OAAOvB,IAAA,KAAS;IAMhC,MAAMwB,WAAA,GAAcC,IAAA,CAAKC,SAAA,CAAU,CACjC1E,MAAA,CAAOa,OAAA,CAAQ;MAAE8D,OAAA,EAAS;MAAO,GAAGR;IAAM,CAAC,EACxCS,MAAA,CACC,CAAC,CAACrF,GAAA,EAAKC,KAAK,MACVD,GAAA,KAAQ,UAAU,OAAOC,KAAA,KAAU,cAAcA,KAAA,KAAU,MAC/D,EACCqF,IAAA,CAAK,CAAC,CAACC,CAAC,GAAG,CAACC,CAAC,MAAOD,CAAA,GAAIC,CAAA,GAAI,KAAK,CAAE,GACtCR,OAAA,EACAD,UAAA,CACD;IAQD,MAAM,CAAChF,QAAA,EAAU0F,WAAW,IAAI/G,QAAA,CAAmC;IACnEH,SAAA,CAAU,MAAM;MACd,IAAImH,MAAA,GAAStB,UAAA;MACb,IAAIsB,MAAA,EAAQ1F,GAAA,KAAQiF,WAAA,EAAa;QAC/BS,MAAA,EAAQ3F,QAAA,CAAS4F,KAAA,CAAM;QACvB,MAAMC,OAAA,GAAUhB,KAAA;QAIhBc,MAAA,GAAS;UACP1F,GAAA,EAAKiF,WAAA;UACLlF,QAAA,EAAU,IAAIjC,UAAA,CAAiC;YAC7CsH,OAAA,EAAS;YACT,GAAGQ,OAAA;YACH/E,MAAA;YAAA;YAEAgE,QAAA;YACAgB,qBAAA,EAAuBA,CAAA,KAAM;cAG3B,IAAID,OAAA,CAAQC,qBAAA,EAAuB;gBACjC,IAAI;kBACFD,OAAA,CAAQC,qBAAA,CAAsB;kBAC9B;gBACF,QAAQ,CAER;cACF;cACA,IAAIvB,mBAAA,EAAqB;cACzBA,mBAAA,GAAsB;cACtBD,sBAAA,CAAuByB,IAAA,CAAKzB,sBAAA,CAAuBpE,KAAA,GAAQ,CAAC;YAC9D;UACF,CAAC;QACH;QACAmE,UAAA,GAAasB,MAAA;QACbpB,mBAAA,GAAsB;MACxB;MACAmB,WAAA,CAAYC,MAAA,CAAO3F,QAAQ;IAI7B,GAAG,CAACkF,WAAW,CAAC;IAMhB,MAAMc,WAAA,GAActH,MAAA,CAAOgF,IAAI;IAC/BlF,SAAA,CAAU,MAAM;MACd,MAAMyH,QAAA,GAAWD,WAAA,CAAY5B,OAAA;MAC7B4B,WAAA,CAAY5B,OAAA,GAAUV,IAAA;MACtB,IACE1D,QAAA,IACA,OAAOiG,QAAA,KAAa,YACpB,OAAOvC,IAAA,KAAS,YAChBuC,QAAA,KAAavC,IAAA,EACb;QACA1D,QAAA,CAASkG,UAAA,CAAWC,OAAA,CAAQ;UAAEzC;QAAK,CAAC;MACtC;IACF,GAAG,CAAC1D,QAAA,EAAU0D,IAAI,CAAC;IAGnB,IAAIkB,OAAA,EAAS;MACX,OAAOH,QAAA;IACT;IAEA,OACE,eAAA5E,GAAA,CAACoD,eAAA,CAAgBmD,QAAA,EAAhB;MAAyBlG,KAAA,EAAOwE,QAAA;MAC9BD,QAAA,EAAAzE,QAAA,GACC,eAAAF,IAAA,CAAC5B,YAAA;QAAa0E,IAAA,EAAM5C,QAAA;QAClByE,QAAA,kBAAA5E,GAAA,CAACwG,eAAA,IAAgB,GACjB,eAAAxG,GAAA,CAACyG,iBAAA;UAAkBtD;QAAA,CAAwB,GAC1CyB,QAAA;MAAA,CACH,IACE;IAAA,CACN;EAEJ;EAEA,MAAM4B,eAAA,GAAkBA,CAAA,KAAM;IAC5B,MAAME,YAAA,GAAetI,OAAA,CAA8B;IAQnD,IAAIsI,YAAA,KAAiB5D,kBAAA,EAAoB;MACvCA,kBAAA,GAAqB4D,YAAA;MAErB5G,SAAA,CAAU,CAAC6G,KAAA,EAAOX,OAAA,KAAYU,YAAA,CAAaE,GAAA,CAAID,KAAA,EAAcX,OAAO,CAAC;IACvE;IAEA,OAAO;EACT;EAGA,MAAMS,iBAAA,GAAoBhI,IAAA,CACxB,CAAC;IACC0E,UAAA,EAAA0D;EACF,MAEM;IACJ,MAAMC,KAAA,GAAQ3I,kBAAA,CAAmB;IACjC,MAAM4I,SAAA,GAAYlI,MAAA,CAAOiI,KAAA,CAAMnF,IAAI;IAEnChD,SAAA,CAAU,MAAM;MACd,IAAImI,KAAA,CAAMnF,IAAA,KAASoF,SAAA,CAAUxC,OAAA,EAAS;QACpC,MAAMyC,MAAA,GAAS,YAAYF,KAAA,GAAQA,KAAA,CAAME,MAAA,GAAS;QAClDD,SAAA,CAAUxC,OAAA,GAAUuC,KAAA,CAAMnF,IAAA;QAE1B,IAAImF,KAAA,CAAMnF,IAAA,KAAS,WAAWmF,KAAA,CAAMnF,IAAA,KAAS,cAAc;UACzD,MAAMsF,OAAA,GAAU,OAAOD,MAAA,KAAW,WAAWA,MAAA,GAASF,KAAA,CAAMnF,IAAA;UAC5DkF,WAAA,CAAWX,IAAA,CAAK;YACd5B,IAAA,EAAM;YACN2C;UACF,CAAC;QACH;MACF;IACF,GAAG,CAACH,KAAA,EAAOD,WAAU,CAAC;IAEtB,OAAO;EACT,CACF;EAaA,SAASK,QACPC,KAAA,EACAC,eAAA,EACAC,UAAA,EACkD;IAClD,MAAMC,SAAA,GACJD,UAAA,KAAe,UAAcD,eAAA,IAAmB,EAAE,SAASA,eAAA;IAC7D,MAAMG,MAAA,GAASD,SAAA,GAAYF,eAAA,GAAkB;IAC7C,MAAMpB,OAAA,GAAUsB,SAAA,GAAYD,UAAA,GAAaD,eAAA;IAEzC,MAAMI,YAAA,GAAelI,YAAA,CAAa;MAAEsD,aAAA;MAAehB,EAAA,EAAIuF,KAAA;MAAOI;IAAO,CAAC;IACtE,OAAOxE,IAAA,CAAKmE,OAAA,CAAQM,YAAA,EAAqBxB,OAAO;EAClD;EASA,SAASyB,SAAS7F,EAAA,EAAS2F,MAAA,EAAc;IACvC,OAAOjI,YAAA,CAAa;MAAEsD,aAAA;MAAehB,EAAA;MAAI2F;IAAO,CAAC;EACnD;EAEA,SAASG,eAAe;IACtB9C,QAAA;IACA+C,MAAA,GAAS;IACTC,YAAA,GAAe;EACjB,GAIG;IACD,MAAMC,IAAA,GAAyBF,MAAA,KAAW,WAAW,QAAQC,YAAA;IAC7D,OAAO,eAAA5H,GAAA,CAAC6C,eAAA,CAAgB0D,QAAA,EAAhB;MAAyBlG,KAAA,EAAOwH,IAAA;MAAOjD;IAAA,CAAS;EAC1D;EAEA,OAAO;IACLzB,UAAA;IACAwB,WAAA;IACA+C,cAAA;IACArE,QAAA;IACAC,aAAA;IACAP,IAAA;IACAmE,OAAA;IACAO;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["defineQueries","defineQuery","Zero","ZeroClient","useConnectionState","useZero","ZeroProvider","createEmitter","useEmitterValue","createContext","memo","useContext","useEffect","useMemo","useRef","useState","createPermissions","createUseQuery","createUseQueryDirect","registerClientInstance","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","instanceName","permissionsHelpers","environment","wrappedNamespaces","namespace","queries","entries","name","fn","args","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","customQueries","namespaces","keys","DisabledContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","zeroInstanceVersion","AuthDataContext","useQuery","useQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","debug","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","usePermission","usePermissionDirect","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","generation","hasAuth","instanceKey","JSON","stringify","kvStore","filter","sort","a","b","instance2","setInstance","cached","close","options","onClientStateNotFound","emit","prevAuthRef","prevAuth","connection","connect","Provider","SetZeroInstance","ConnectionMonitor","zeroInstance","runner","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":[]}