on-zero 0.4.25 → 0.4.27

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 (140) hide show
  1. package/dist/cjs/createUseQuery.cjs +28 -16
  2. package/dist/cjs/createUseQuery.native.js +42 -30
  3. package/dist/cjs/createUseQuery.native.js.map +1 -1
  4. package/dist/cjs/createZeroClient.cjs +13 -1
  5. package/dist/cjs/createZeroClient.native.js +13 -1
  6. package/dist/cjs/createZeroClient.native.js.map +1 -1
  7. package/dist/cjs/httpPull/auth.test.cjs +197 -0
  8. package/dist/cjs/httpPull/auth.test.native.js +279 -0
  9. package/dist/cjs/httpPull/auth.test.native.js.map +1 -0
  10. package/dist/cjs/httpPull/churn.test.cjs +132 -0
  11. package/dist/cjs/httpPull/churn.test.native.js +155 -0
  12. package/dist/cjs/httpPull/churn.test.native.js.map +1 -0
  13. package/dist/cjs/httpPull/fixtureSchema.cjs +76 -0
  14. package/dist/cjs/httpPull/fixtureSchema.native.js +82 -0
  15. package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -0
  16. package/dist/cjs/httpPull/fixtureServer.cjs +340 -0
  17. package/dist/cjs/httpPull/fixtureServer.native.js +534 -0
  18. package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -0
  19. package/dist/cjs/httpPull/integration.test.cjs +53 -0
  20. package/dist/cjs/httpPull/integration.test.native.js +60 -0
  21. package/dist/cjs/httpPull/integration.test.native.js.map +1 -0
  22. package/dist/cjs/httpPull/rebase.test.cjs +360 -0
  23. package/dist/cjs/httpPull/rebase.test.native.js +420 -0
  24. package/dist/cjs/httpPull/rebase.test.native.js.map +1 -0
  25. package/dist/cjs/httpPull/relations.test.cjs +107 -0
  26. package/dist/cjs/httpPull/relations.test.native.js +119 -0
  27. package/dist/cjs/httpPull/relations.test.native.js.map +1 -0
  28. package/dist/cjs/httpPull/testHarness.cjs +100 -0
  29. package/dist/cjs/httpPull/testHarness.native.js +112 -0
  30. package/dist/cjs/httpPull/testHarness.native.js.map +1 -0
  31. package/dist/cjs/httpPull/transport.test.cjs +568 -0
  32. package/dist/cjs/httpPull/transport.test.native.js +655 -0
  33. package/dist/cjs/httpPull/transport.test.native.js.map +1 -0
  34. package/dist/cjs/httpPullTransport.cjs +432 -0
  35. package/dist/cjs/httpPullTransport.native.js +695 -0
  36. package/dist/cjs/httpPullTransport.native.js.map +1 -0
  37. package/dist/cjs/index.cjs +1 -0
  38. package/dist/cjs/index.native.js +1 -0
  39. package/dist/cjs/index.native.js.map +1 -1
  40. package/dist/cjs/multiInstanceNested.test.cjs +26 -0
  41. package/dist/cjs/multiInstanceNested.test.native.js +34 -0
  42. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  43. package/dist/esm/createUseQuery.mjs +28 -16
  44. package/dist/esm/createUseQuery.mjs.map +1 -1
  45. package/dist/esm/createUseQuery.native.js +42 -30
  46. package/dist/esm/createUseQuery.native.js.map +1 -1
  47. package/dist/esm/createZeroClient.mjs +13 -1
  48. package/dist/esm/createZeroClient.mjs.map +1 -1
  49. package/dist/esm/createZeroClient.native.js +13 -1
  50. package/dist/esm/createZeroClient.native.js.map +1 -1
  51. package/dist/esm/httpPull/auth.test.mjs +198 -0
  52. package/dist/esm/httpPull/auth.test.mjs.map +1 -0
  53. package/dist/esm/httpPull/auth.test.native.js +277 -0
  54. package/dist/esm/httpPull/auth.test.native.js.map +1 -0
  55. package/dist/esm/httpPull/churn.test.mjs +133 -0
  56. package/dist/esm/httpPull/churn.test.mjs.map +1 -0
  57. package/dist/esm/httpPull/churn.test.native.js +153 -0
  58. package/dist/esm/httpPull/churn.test.native.js.map +1 -0
  59. package/dist/esm/httpPull/fixtureSchema.mjs +50 -0
  60. package/dist/esm/httpPull/fixtureSchema.mjs.map +1 -0
  61. package/dist/esm/httpPull/fixtureSchema.native.js +53 -0
  62. package/dist/esm/httpPull/fixtureSchema.native.js.map +1 -0
  63. package/dist/esm/httpPull/fixtureServer.mjs +315 -0
  64. package/dist/esm/httpPull/fixtureServer.mjs.map +1 -0
  65. package/dist/esm/httpPull/fixtureServer.native.js +506 -0
  66. package/dist/esm/httpPull/fixtureServer.native.js.map +1 -0
  67. package/dist/esm/httpPull/integration.test.mjs +54 -0
  68. package/dist/esm/httpPull/integration.test.mjs.map +1 -0
  69. package/dist/esm/httpPull/integration.test.native.js +58 -0
  70. package/dist/esm/httpPull/integration.test.native.js.map +1 -0
  71. package/dist/esm/httpPull/rebase.test.mjs +361 -0
  72. package/dist/esm/httpPull/rebase.test.mjs.map +1 -0
  73. package/dist/esm/httpPull/rebase.test.native.js +418 -0
  74. package/dist/esm/httpPull/rebase.test.native.js.map +1 -0
  75. package/dist/esm/httpPull/relations.test.mjs +108 -0
  76. package/dist/esm/httpPull/relations.test.mjs.map +1 -0
  77. package/dist/esm/httpPull/relations.test.native.js +117 -0
  78. package/dist/esm/httpPull/relations.test.native.js.map +1 -0
  79. package/dist/esm/httpPull/testHarness.mjs +72 -0
  80. package/dist/esm/httpPull/testHarness.mjs.map +1 -0
  81. package/dist/esm/httpPull/testHarness.native.js +81 -0
  82. package/dist/esm/httpPull/testHarness.native.js.map +1 -0
  83. package/dist/esm/httpPull/transport.test.mjs +569 -0
  84. package/dist/esm/httpPull/transport.test.mjs.map +1 -0
  85. package/dist/esm/httpPull/transport.test.native.js +653 -0
  86. package/dist/esm/httpPull/transport.test.native.js.map +1 -0
  87. package/dist/esm/httpPullTransport.mjs +406 -0
  88. package/dist/esm/httpPullTransport.mjs.map +1 -0
  89. package/dist/esm/httpPullTransport.native.js +666 -0
  90. package/dist/esm/httpPullTransport.native.js.map +1 -0
  91. package/dist/esm/index.js +1 -0
  92. package/dist/esm/index.js.map +1 -1
  93. package/dist/esm/index.mjs +1 -0
  94. package/dist/esm/index.mjs.map +1 -1
  95. package/dist/esm/index.native.js +1 -0
  96. package/dist/esm/index.native.js.map +1 -1
  97. package/dist/esm/multiInstanceNested.test.mjs +27 -1
  98. package/dist/esm/multiInstanceNested.test.mjs.map +1 -1
  99. package/dist/esm/multiInstanceNested.test.native.js +35 -1
  100. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  101. package/package.json +2 -2
  102. package/src/createUseQuery.tsx +40 -22
  103. package/src/createZeroClient.tsx +19 -0
  104. package/src/httpPull/auth.test.ts +208 -0
  105. package/src/httpPull/churn.test.ts +147 -0
  106. package/src/httpPull/fixtureSchema.ts +82 -0
  107. package/src/httpPull/fixtureServer.ts +391 -0
  108. package/src/httpPull/integration.test.ts +57 -0
  109. package/src/httpPull/rebase.test.ts +368 -0
  110. package/src/httpPull/relations.test.ts +135 -0
  111. package/src/httpPull/testHarness.ts +95 -0
  112. package/src/httpPull/transport.test.ts +577 -0
  113. package/src/httpPullTransport.ts +559 -0
  114. package/src/index.ts +1 -0
  115. package/src/multiInstanceNested.test.tsx +25 -1
  116. package/types/createUseQuery.d.ts.map +1 -1
  117. package/types/createZeroClient.d.ts +3 -1
  118. package/types/createZeroClient.d.ts.map +1 -1
  119. package/types/httpPull/auth.test.d.ts +2 -0
  120. package/types/httpPull/auth.test.d.ts.map +1 -0
  121. package/types/httpPull/churn.test.d.ts +2 -0
  122. package/types/httpPull/churn.test.d.ts.map +1 -0
  123. package/types/httpPull/fixtureSchema.d.ts +111 -0
  124. package/types/httpPull/fixtureSchema.d.ts.map +1 -0
  125. package/types/httpPull/fixtureServer.d.ts +14 -0
  126. package/types/httpPull/fixtureServer.d.ts.map +1 -0
  127. package/types/httpPull/integration.test.d.ts +2 -0
  128. package/types/httpPull/integration.test.d.ts.map +1 -0
  129. package/types/httpPull/rebase.test.d.ts +2 -0
  130. package/types/httpPull/rebase.test.d.ts.map +1 -0
  131. package/types/httpPull/relations.test.d.ts +2 -0
  132. package/types/httpPull/relations.test.d.ts.map +1 -0
  133. package/types/httpPull/testHarness.d.ts +32 -0
  134. package/types/httpPull/testHarness.d.ts.map +1 -0
  135. package/types/httpPull/transport.test.d.ts +2 -0
  136. package/types/httpPull/transport.test.d.ts.map +1 -0
  137. package/types/httpPullTransport.d.ts +13 -0
  138. package/types/httpPullTransport.d.ts.map +1 -0
  139. package/types/index.d.ts +1 -0
  140. package/types/index.d.ts.map +1 -1
@@ -87,29 +87,42 @@ const DISABLED_SNAPSHOT = [void 0, {
87
87
  type: "unknown"
88
88
  }];
89
89
  const getDisabledSnapshot = () => DISABLED_SNAPSHOT;
90
- function createDirectView(zero, queryRequest, ttl) {
90
+ function createDirectView(getZero, queryRequest, ttl) {
91
91
  let snapshot = DISABLED_SNAPSHOT;
92
92
  const listeners = /* @__PURE__ */new Set();
93
- const view = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
94
- ttl
95
- });
96
- view.addListener((data, resultType) => {
97
- snapshot = [data === void 0 ? void 0 : structuredClone(data), {
98
- type: resultType
99
- }];
100
- for (const listener of listeners) {
101
- listener();
102
- }
103
- });
93
+ let view = null;
94
+ const materialize = () => {
95
+ const zero = getZero();
96
+ if (!zero) return;
97
+ const next = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
98
+ ttl
99
+ });
100
+ view = next;
101
+ next.addListener((data, resultType) => {
102
+ snapshot = [data === void 0 ? void 0 : structuredClone(data), {
103
+ type: resultType
104
+ }];
105
+ for (const listener of listeners) {
106
+ listener();
107
+ }
108
+ });
109
+ };
110
+ materialize();
104
111
  return {
105
112
  subscribe: notify => {
106
113
  listeners.add(notify);
114
+ if (view === null) {
115
+ materialize();
116
+ }
107
117
  return () => listeners.delete(notify);
108
118
  },
109
119
  getSnapshot: () => snapshot,
110
120
  destroy: () => {
121
+ const current = view;
122
+ view = null;
123
+ if (!current) return;
111
124
  try {
112
- view.destroy();
125
+ current.destroy();
113
126
  } catch {}
114
127
  }
115
128
  };
@@ -139,14 +152,13 @@ function createUseQueryDirect({
139
152
  }
140
153
  const paramsKey = params === void 0 ? "" : JSON.stringify(params);
141
154
  const view = (0, import_react2.useMemo)(() => {
142
- const zero = getZero();
143
- if (!enabled || !zero) return null;
155
+ if (!enabled || !getZero()) return null;
144
156
  const queryRequest = (0, import_resolveQuery.resolveQuery)({
145
157
  customQueries,
146
158
  fn,
147
159
  params
148
160
  });
149
- return createDirectView(zero, queryRequest, ttl);
161
+ return createDirectView(getZero, queryRequest, ttl);
150
162
  }, [fn, paramsKey, enabled, ttl, version]);
151
163
  (0, import_react2.useEffect)(() => {
152
164
  if (!view) return;
@@ -102,42 +102,52 @@ var DISABLED_SNAPSHOT = [void 0, {
102
102
  var getDisabledSnapshot = function () {
103
103
  return DISABLED_SNAPSHOT;
104
104
  };
105
- function createDirectView(zero, queryRequest, ttl) {
105
+ function createDirectView(getZero, queryRequest, ttl) {
106
106
  var snapshot = DISABLED_SNAPSHOT;
107
107
  var listeners = /* @__PURE__ */new Set();
108
- var view = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
109
- ttl
110
- });
111
- view.addListener(function (data, resultType) {
112
- snapshot = [data === void 0 ? void 0 : structuredClone(data), {
113
- type: resultType
114
- }];
115
- var _iteratorNormalCompletion = true,
116
- _didIteratorError = false,
117
- _iteratorError = void 0;
118
- try {
119
- for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
120
- var listener = _step.value;
121
- listener();
122
- }
123
- } catch (err) {
124
- _didIteratorError = true;
125
- _iteratorError = err;
126
- } finally {
108
+ var view = null;
109
+ var materialize = function () {
110
+ var zero = getZero();
111
+ if (!zero) return;
112
+ var next = zero.materialize(queryRequest, ttl === void 0 ? void 0 : {
113
+ ttl
114
+ });
115
+ view = next;
116
+ next.addListener(function (data, resultType) {
117
+ snapshot = [data === void 0 ? void 0 : structuredClone(data), {
118
+ type: resultType
119
+ }];
120
+ var _iteratorNormalCompletion = true,
121
+ _didIteratorError = false,
122
+ _iteratorError = void 0;
127
123
  try {
128
- if (!_iteratorNormalCompletion && _iterator.return != null) {
129
- _iterator.return();
124
+ for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
125
+ var listener = _step.value;
126
+ listener();
130
127
  }
128
+ } catch (err) {
129
+ _didIteratorError = true;
130
+ _iteratorError = err;
131
131
  } finally {
132
- if (_didIteratorError) {
133
- throw _iteratorError;
132
+ try {
133
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
134
+ _iterator.return();
135
+ }
136
+ } finally {
137
+ if (_didIteratorError) {
138
+ throw _iteratorError;
139
+ }
134
140
  }
135
141
  }
136
- }
137
- });
142
+ });
143
+ };
144
+ materialize();
138
145
  return {
139
146
  subscribe: function (notify) {
140
147
  listeners.add(notify);
148
+ if (view === null) {
149
+ materialize();
150
+ }
141
151
  return function () {
142
152
  return listeners.delete(notify);
143
153
  };
@@ -146,8 +156,11 @@ function createDirectView(zero, queryRequest, ttl) {
146
156
  return snapshot;
147
157
  },
148
158
  destroy: function () {
159
+ var current = view;
160
+ view = null;
161
+ if (!current) return;
149
162
  try {
150
- view.destroy();
163
+ current.destroy();
151
164
  } catch (e) {}
152
165
  }
153
166
  };
@@ -181,14 +194,13 @@ function createUseQueryDirect(param) {
181
194
  }
182
195
  var paramsKey = params === void 0 ? "" : JSON.stringify(params);
183
196
  var view = (0, import_react2.useMemo)(function () {
184
- var zero = getZero();
185
- if (!enabled || !zero) return null;
197
+ if (!enabled || !getZero()) return null;
186
198
  var queryRequest = (0, import_resolveQuery.resolveQuery)({
187
199
  customQueries,
188
200
  fn,
189
201
  params
190
202
  });
191
- return createDirectView(zero, queryRequest, ttl);
203
+ return createDirectView(getZero, queryRequest, ttl);
192
204
  },
193
205
  // params is keyed by paramsKey; version re-materializes on a new zero
194
206
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","createUseQueryDirect","module","exports","import_react","require","import_helpers","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_RESPONSE","type","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","param","DisabledContext","customQueries","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","fn","queryRequest","useMemo","opts","queryRequest2","resolveQuery","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","useZeroDebug","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","err","return","subscribe","notify","add","delete","getSnapshot","destroy"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","createUseQueryDirect","module","exports","import_react","require","import_helpers","import_react2","import_useZeroDebug","import_resolveQuery","_type_of","obj","Symbol","constructor","EMPTY_RESPONSE","type","parseUseQueryArgs","paramsOrOptions","optionsArg","hasParams","params","options","param","DisabledContext","customQueries","useQuery","_len","arguments","length","args","Array","_key","disableMode","useContext","lastRef","useRef","fn","queryRequest","useMemo","opts","queryRequest2","resolveQuery","out","process","env","NODE_ENV","DEBUG_ZERO_QUERIES","useZeroDebug","current","DISABLED_SUBSCRIBE","DISABLED_SNAPSHOT","getDisabledSnapshot","createDirectView","getZero","ttl","snapshot","listeners","Set","view","materialize","zero","next","addListener","data","resultType","structuredClone","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","listener","err","return","subscribe","notify","add","delete","getSnapshot","destroy"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -30,6 +30,7 @@ var import_react = require("@rocicorp/zero/react");
30
30
  var import_helpers = require("@take-out/helpers");
31
31
  var import_react2 = require("react");
32
32
  var import_createPermissions = require("./createPermissions.cjs");
33
+ var import_httpPullTransport = require("./httpPullTransport.cjs");
33
34
  var import_createUseQuery = require("./createUseQuery.cjs");
34
35
  var import_instanceRegistry = require("./instanceRegistry.cjs");
35
36
  var import_createMutators = require("./helpers/createMutators.cjs");
@@ -195,6 +196,8 @@ function createZeroClient({
195
196
  children,
196
197
  authData: authDataIn,
197
198
  disable,
199
+ transport,
200
+ pullIntervalMs = 3e4,
198
201
  ...props
199
202
  }) => {
200
203
  const authData = authDataIn ?? null;
@@ -213,13 +216,22 @@ function createZeroClient({
213
216
  const instanceKey = JSON.stringify([Object.entries({
214
217
  kvStore: "mem",
215
218
  ...props
216
- }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, generation]);
219
+ }).filter(([key, value]) => key !== "auth" && typeof value !== "function" && value !== void 0).sort(([a], [b]) => a < b ? -1 : 1), hasAuth, generation, transport]);
217
220
  const [instance2, setInstance] = (0, import_react2.useState)();
218
221
  (0, import_react2.useEffect)(() => {
219
222
  let cached = cachedZero;
220
223
  if (cached?.key !== instanceKey) {
221
224
  cached?.instance.close();
222
225
  const options = props;
226
+ if (transport === "http-pull") {
227
+ if (typeof options.server !== "string") {
228
+ throw new Error(`transport 'http-pull' requires a server URL`);
229
+ }
230
+ (0, import_httpPullTransport.ensureHttpPullTransport)({
231
+ origin: options.server,
232
+ pullIntervalMs
233
+ });
234
+ }
223
235
  cached = {
224
236
  key: instanceKey,
225
237
  instance: new import_zero.Zero({
@@ -33,6 +33,7 @@ var import_react = require("@rocicorp/zero/react");
33
33
  var import_helpers = require("@take-out/helpers");
34
34
  var import_react2 = require("react");
35
35
  var import_createPermissions = require("./createPermissions.native.js");
36
+ var import_httpPullTransport = require("./httpPullTransport.native.js");
36
37
  var import_createUseQuery = require("./createUseQuery.native.js");
37
38
  var import_instanceRegistry = require("./instanceRegistry.native.js");
38
39
  var import_createMutators = require("./helpers/createMutators.native.js");
@@ -297,6 +298,8 @@ function createZeroClient(param) {
297
298
  children,
298
299
  authData: authDataIn,
299
300
  disable,
301
+ transport,
302
+ pullIntervalMs = 3e4,
300
303
  ...props
301
304
  } = param2;
302
305
  var authData = authDataIn !== null && authDataIn !== void 0 ? authDataIn : null;
@@ -324,13 +327,22 @@ function createZeroClient(param) {
324
327
  var [a] = param3,
325
328
  [b] = param1;
326
329
  return a < b ? -1 : 1;
327
- }), hasAuth, generation]);
330
+ }), hasAuth, generation, transport]);
328
331
  var [instance2, setInstance] = (0, import_react2.useState)();
329
332
  (0, import_react2.useEffect)(function () {
330
333
  var cached = cachedZero;
331
334
  if ((cached === null || cached === void 0 ? void 0 : cached.key) !== instanceKey) {
332
335
  cached === null || cached === void 0 ? void 0 : cached.instance.close();
333
336
  var options = props;
337
+ if (transport === "http-pull") {
338
+ if (typeof options.server !== "string") {
339
+ throw new Error(`transport 'http-pull' requires a server URL`);
340
+ }
341
+ (0, import_httpPullTransport.ensureHttpPullTransport)({
342
+ origin: options.server,
343
+ pullIntervalMs
344
+ });
345
+ }
334
346
  cached = {
335
347
  key: instanceKey,
336
348
  instance: new import_zero.Zero({
@@ -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_instanceRegistry","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","instanceName","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","registerClientInstance","namespaces","keys","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","createEmitter","zeroInstanceVersion","AuthDataContext","useQuery","createUseQuery","useQueryDirect","createUseQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","usePermission","usePermissionDirect","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","instance2","setInstance","useState","useEffect","cached","close","options","Zero","onClientStateNotFound","emit"],"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_httpPullTransport","import_createUseQuery","import_instanceRegistry","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","instanceName","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","registerClientInstance","namespaces","keys","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","_","Error","emitterScope","zeroEvents","createEmitter","zeroInstanceVersion","AuthDataContext","useQuery","createUseQuery","useQueryDirect","createUseQueryDirect","getZero","zeroVersion","createUsePermission","useQueryImpl","usePermission2","enabled","arguments","length","debug","disableMode","useContext","lastRef","useRef","tableStr","checkFn","auth","_uid","id","data","status","Boolean","console","info","result","type","current","usePermission","usePermissionDirect","cachedZero","zeroInstanceGeneration","zeroRotationPending","ProvideZero","children","authData","authDataIn","disable","transport","pullIntervalMs","props","setAuthData","mutators","useMemo","createMutators","can","generation","useEmitterValue","hasAuth","instanceKey","JSON","stringify","kvStore","filter","param3","sort","param1","a","b","instance2","setInstance","useState","useEffect","cached","close","options","server","ensureHttpPullTransport","origin","Zero","onClientStateNotFound","emit"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,197 @@
1
+ var import_vitest = require("vitest");
2
+ var import_testHarness = require("./testHarness.cjs");
3
+ let harness;
4
+ (0, import_vitest.afterEach)(async () => {
5
+ await harness?.close();
6
+ harness = void 0;
7
+ });
8
+ (0, import_vitest.describe)("zero-http auth parity", () => {
9
+ (0, import_vitest.test)("real clients only emit rows visible to their auth token", async () => {
10
+ harness = await (0, import_testHarness.startZeroHttpHarness)({
11
+ seed: {
12
+ user: [{
13
+ id: "u1",
14
+ name: "ada"
15
+ }, {
16
+ id: "u2",
17
+ name: "ben"
18
+ }],
19
+ project: [{
20
+ id: "p-u1",
21
+ ownerId: "u1",
22
+ name: "u1 private"
23
+ }, {
24
+ id: "p-u2",
25
+ ownerId: "u2",
26
+ name: "u2 private"
27
+ }, {
28
+ id: "p-shared",
29
+ ownerId: "u2",
30
+ name: "shared"
31
+ }],
32
+ member: [{
33
+ id: "m-u1-owner",
34
+ projectId: "p-u1",
35
+ userId: "u1"
36
+ }, {
37
+ id: "m-u2-owner",
38
+ projectId: "p-u2",
39
+ userId: "u2"
40
+ }, {
41
+ id: "m-shared-u1",
42
+ projectId: "p-shared",
43
+ userId: "u1"
44
+ }, {
45
+ id: "m-shared-u2",
46
+ projectId: "p-shared",
47
+ userId: "u2"
48
+ }]
49
+ }
50
+ });
51
+ const u1 = harness.createZero("u1");
52
+ const u2 = harness.createZero("u2");
53
+ const u1Users = u1.query.user.materialize();
54
+ const u1Projects = u1.query.project.related("members").materialize();
55
+ const u2Users = u2.query.user.materialize();
56
+ const u2Projects = u2.query.project.related("members").materialize();
57
+ const u1UserEmissions = [];
58
+ const u1ProjectEmissions = [];
59
+ const u2UserEmissions = [];
60
+ const u2ProjectEmissions = [];
61
+ const stops = [captureRows(u1Users, u1UserEmissions, normalizeUsers), captureRows(u1Projects, u1ProjectEmissions, normalizeProjects), captureRows(u2Users, u2UserEmissions, normalizeUsers), captureRows(u2Projects, u2ProjectEmissions, normalizeProjects)];
62
+ try {
63
+ const [u1UsersComplete, u1ProjectsComplete, u2UsersComplete, u2ProjectsComplete] = await Promise.all([(0, import_testHarness.waitForComplete)(u1Users), (0, import_testHarness.waitForComplete)(u1Projects), (0, import_testHarness.waitForComplete)(u2Users), (0, import_testHarness.waitForComplete)(u2Projects)]);
64
+ (0, import_vitest.expect)(normalizeUsers(u1UsersComplete)).toEqual([{
65
+ id: "u1",
66
+ name: "ada"
67
+ }]);
68
+ (0, import_vitest.expect)(normalizeProjects(u1ProjectsComplete)).toEqual([{
69
+ id: "p-shared",
70
+ ownerId: "u2",
71
+ name: "shared",
72
+ members: [{
73
+ id: "m-shared-u1",
74
+ projectId: "p-shared",
75
+ userId: "u1"
76
+ }, {
77
+ id: "m-shared-u2",
78
+ projectId: "p-shared",
79
+ userId: "u2"
80
+ }]
81
+ }, {
82
+ id: "p-u1",
83
+ ownerId: "u1",
84
+ name: "u1 private",
85
+ members: [{
86
+ id: "m-u1-owner",
87
+ projectId: "p-u1",
88
+ userId: "u1"
89
+ }]
90
+ }]);
91
+ (0, import_vitest.expect)(normalizeUsers(u2UsersComplete)).toEqual([{
92
+ id: "u2",
93
+ name: "ben"
94
+ }]);
95
+ (0, import_vitest.expect)(normalizeProjects(u2ProjectsComplete)).toEqual([{
96
+ id: "p-shared",
97
+ ownerId: "u2",
98
+ name: "shared",
99
+ members: [{
100
+ id: "m-shared-u1",
101
+ projectId: "p-shared",
102
+ userId: "u1"
103
+ }, {
104
+ id: "m-shared-u2",
105
+ projectId: "p-shared",
106
+ userId: "u2"
107
+ }]
108
+ }, {
109
+ id: "p-u2",
110
+ ownerId: "u2",
111
+ name: "u2 private",
112
+ members: [{
113
+ id: "m-u2-owner",
114
+ projectId: "p-u2",
115
+ userId: "u2"
116
+ }]
117
+ }]);
118
+ assertNoUserEmission(u1UserEmissions, "u2");
119
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
120
+ assertNoUserEmission(u2UserEmissions, "u1");
121
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
122
+ await harness.transport.pull();
123
+ await (0, import_testHarness.sleep)(50);
124
+ assertNoUserEmission(u1UserEmissions, "u2");
125
+ assertNoProjectEmission(u1ProjectEmissions, "p-u2", "m-u2-owner");
126
+ assertNoUserEmission(u2UserEmissions, "u1");
127
+ assertNoProjectEmission(u2ProjectEmissions, "p-u1", "m-u1-owner");
128
+ } finally {
129
+ for (const stop of stops) stop();
130
+ u1Users.destroy();
131
+ u1Projects.destroy();
132
+ u2Users.destroy();
133
+ u2Projects.destroy();
134
+ }
135
+ });
136
+ (0, import_vitest.test)("unknown token 401 reaches needs-auth without materializing data", async () => {
137
+ harness = await (0, import_testHarness.startZeroHttpHarness)({
138
+ seed: {
139
+ user: [{
140
+ id: "u1",
141
+ name: "ada"
142
+ }],
143
+ project: [{
144
+ id: "p-u1",
145
+ ownerId: "u1",
146
+ name: "u1 private"
147
+ }],
148
+ member: [{
149
+ id: "m-u1-owner",
150
+ projectId: "p-u1",
151
+ userId: "u1"
152
+ }]
153
+ }
154
+ });
155
+ const unknown = harness.createZero("missing");
156
+ const projects = unknown.query.project.related("members").materialize();
157
+ const emissions = [];
158
+ const stop = captureRows(projects, emissions, normalizeProjects);
159
+ try {
160
+ await (0, import_testHarness.eventually)(() => (0, import_vitest.expect)(unknown.connection.state.current.name).toBe("needs-auth"));
161
+ await (0, import_testHarness.sleep)(50);
162
+ (0, import_vitest.expect)(projects.data).toEqual([]);
163
+ (0, import_vitest.expect)(emissions.every(emission => emission.length === 0)).toBe(true);
164
+ } finally {
165
+ stop();
166
+ projects.destroy();
167
+ }
168
+ });
169
+ });
170
+ function captureRows(view, emissions, normalize) {
171
+ return view.addListener(data => {
172
+ emissions.push(normalize(data));
173
+ });
174
+ }
175
+ function assertNoUserEmission(emissions, privateUserID) {
176
+ for (const emission of emissions) {
177
+ (0, import_vitest.expect)(emission.map(row => row.id)).not.toContain(privateUserID);
178
+ }
179
+ }
180
+ function assertNoProjectEmission(emissions, privateProjectID, privateMemberID) {
181
+ for (const emission of emissions) {
182
+ (0, import_vitest.expect)(emission.map(row => row.id)).not.toContain(privateProjectID);
183
+ (0, import_vitest.expect)(emission.flatMap(row => row.members.map(member => member.id))).not.toContain(privateMemberID);
184
+ }
185
+ }
186
+ function normalizeUsers(users) {
187
+ return clone(users).sort((a, b) => a.id.localeCompare(b.id));
188
+ }
189
+ function normalizeProjects(projects) {
190
+ return clone(projects).map(project => ({
191
+ ...project,
192
+ members: [...project.members].sort((a, b) => a.id.localeCompare(b.id))
193
+ })).sort((a, b) => a.id.localeCompare(b.id));
194
+ }
195
+ function clone(value) {
196
+ return JSON.parse(JSON.stringify(value));
197
+ }