on-zero 0.4.35 → 0.4.37

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 (110) hide show
  1. package/dist/cjs/combineZeroClients.native.js.map +1 -1
  2. package/dist/cjs/createUseQuery.cjs +1 -96
  3. package/dist/cjs/createUseQuery.native.js +1 -132
  4. package/dist/cjs/createUseQuery.native.js.map +1 -1
  5. package/dist/cjs/createUseQueryDirect.cjs +228 -0
  6. package/dist/cjs/createUseQueryDirect.native.js +334 -0
  7. package/dist/cjs/createUseQueryDirect.native.js.map +1 -0
  8. package/dist/cjs/createZeroClient.cjs +18 -7
  9. package/dist/cjs/createZeroClient.native.js +18 -7
  10. package/dist/cjs/createZeroClient.native.js.map +1 -1
  11. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  12. package/dist/cjs/index.cjs +2 -2
  13. package/dist/cjs/index.native.js +2 -2
  14. package/dist/cjs/index.native.js.map +1 -1
  15. package/dist/cjs/multi.cjs +38 -0
  16. package/dist/cjs/multi.native.js +41 -0
  17. package/dist/cjs/multi.native.js.map +1 -0
  18. package/dist/cjs/multiInstance.test.cjs +75 -0
  19. package/dist/cjs/multiInstance.test.native.js +111 -0
  20. package/dist/cjs/multiInstance.test.native.js.map +1 -1
  21. package/dist/cjs/multiInstanceNested.test.cjs +92 -12
  22. package/dist/cjs/multiInstanceNested.test.native.js +108 -12
  23. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  24. package/dist/cjs/run.cjs +6 -1
  25. package/dist/cjs/run.native.js +6 -1
  26. package/dist/cjs/run.native.js.map +1 -1
  27. package/dist/cjs/testSetup.cjs +26 -0
  28. package/dist/cjs/testSetup.native.js +32 -0
  29. package/dist/cjs/testSetup.native.js.map +1 -0
  30. package/dist/cjs/zeroRunner.cjs +4 -0
  31. package/dist/cjs/zeroRunner.native.js +4 -0
  32. package/dist/cjs/zeroRunner.native.js.map +1 -1
  33. package/dist/esm/combineZeroClients.mjs.map +1 -1
  34. package/dist/esm/combineZeroClients.native.js.map +1 -1
  35. package/dist/esm/createUseQuery.mjs +2 -97
  36. package/dist/esm/createUseQuery.mjs.map +1 -1
  37. package/dist/esm/createUseQuery.native.js +2 -133
  38. package/dist/esm/createUseQuery.native.js.map +1 -1
  39. package/dist/esm/createUseQueryDirect.mjs +203 -0
  40. package/dist/esm/createUseQueryDirect.mjs.map +1 -0
  41. package/dist/esm/createUseQueryDirect.native.js +306 -0
  42. package/dist/esm/createUseQueryDirect.native.js.map +1 -0
  43. package/dist/esm/createZeroClient.mjs +18 -8
  44. package/dist/esm/createZeroClient.mjs.map +1 -1
  45. package/dist/esm/createZeroClient.native.js +18 -8
  46. package/dist/esm/createZeroClient.native.js.map +1 -1
  47. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  48. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  49. package/dist/esm/index.js +2 -3
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/index.mjs +2 -3
  52. package/dist/esm/index.mjs.map +1 -1
  53. package/dist/esm/index.native.js +2 -3
  54. package/dist/esm/index.native.js.map +1 -1
  55. package/dist/esm/multi.mjs +12 -0
  56. package/dist/esm/multi.mjs.map +1 -0
  57. package/dist/esm/multi.native.js +12 -0
  58. package/dist/esm/multi.native.js.map +1 -0
  59. package/dist/esm/multiInstance.test.mjs +75 -0
  60. package/dist/esm/multiInstance.test.mjs.map +1 -1
  61. package/dist/esm/multiInstance.test.native.js +111 -0
  62. package/dist/esm/multiInstance.test.native.js.map +1 -1
  63. package/dist/esm/multiInstanceNested.test.mjs +85 -5
  64. package/dist/esm/multiInstanceNested.test.mjs.map +1 -1
  65. package/dist/esm/multiInstanceNested.test.native.js +101 -5
  66. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  67. package/dist/esm/run.mjs +7 -2
  68. package/dist/esm/run.mjs.map +1 -1
  69. package/dist/esm/run.native.js +7 -2
  70. package/dist/esm/run.native.js.map +1 -1
  71. package/dist/esm/testSetup.mjs +27 -0
  72. package/dist/esm/testSetup.mjs.map +1 -0
  73. package/dist/esm/testSetup.native.js +30 -0
  74. package/dist/esm/testSetup.native.js.map +1 -0
  75. package/dist/esm/zeroRunner.mjs +4 -1
  76. package/dist/esm/zeroRunner.mjs.map +1 -1
  77. package/dist/esm/zeroRunner.native.js +4 -1
  78. package/dist/esm/zeroRunner.native.js.map +1 -1
  79. package/package.json +8 -2
  80. package/readme.md +10 -8
  81. package/src/combineZeroClients.tsx +4 -6
  82. package/src/createUseQuery.tsx +2 -189
  83. package/src/createUseQueryDirect.tsx +307 -0
  84. package/src/createZeroClient.tsx +65 -32
  85. package/src/helpers/recoverZeroClient.test.ts +8 -2
  86. package/src/index.ts +6 -2
  87. package/src/multi.ts +24 -0
  88. package/src/multiInstance.test.tsx +69 -0
  89. package/src/multiInstanceNested.test.tsx +79 -4
  90. package/src/run.ts +10 -2
  91. package/src/testSetup.ts +26 -0
  92. package/src/zeroRunner.ts +4 -0
  93. package/types/combineZeroClients.d.ts.map +1 -1
  94. package/types/createUseQuery.d.ts +4 -15
  95. package/types/createUseQuery.d.ts.map +1 -1
  96. package/types/createUseQueryDirect.d.ts +29 -0
  97. package/types/createUseQueryDirect.d.ts.map +1 -0
  98. package/types/createZeroClient.d.ts +51 -5
  99. package/types/createZeroClient.d.ts.map +1 -1
  100. package/types/index.d.ts +1 -2
  101. package/types/index.d.ts.map +1 -1
  102. package/types/multi.d.ts +6 -0
  103. package/types/multi.d.ts.map +1 -0
  104. package/types/multiInstanceNested.test.d.ts.map +1 -1
  105. package/types/run.d.ts.map +1 -1
  106. package/types/testSetup.d.ts +1 -0
  107. package/types/testSetup.d.ts.map +1 -0
  108. package/types/zeroRunner.d.ts +3 -0
  109. package/types/zeroRunner.d.ts.map +1 -1
  110. package/vitest.config.ts +1 -0
@@ -0,0 +1,38 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
22
+ value: true
23
+ }), mod);
24
+ var multi_exports = {};
25
+ __export(multi_exports, {
26
+ createZeroClientWithDirectQueries: () => createZeroClientWithDirectQueries
27
+ });
28
+ module.exports = __toCommonJS(multi_exports);
29
+ var import_createZeroClient = require("./createZeroClient.cjs");
30
+ var import_createUseQueryDirect = require("./createUseQueryDirect.cjs");
31
+ __reExport(multi_exports, require("./combineZeroClients.cjs"), module.exports);
32
+ function createZeroClientWithDirectQueries(options) {
33
+ const createDirectUseQuery = import_createUseQueryDirect.createUseQueryDirect;
34
+ return (0, import_createZeroClient.createZeroClientInternal)({
35
+ ...options,
36
+ createDirectUseQuery
37
+ });
38
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
23
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
24
+ value: true
25
+ }), mod);
26
+ var multi_exports = {};
27
+ __export(multi_exports, {
28
+ createZeroClientWithDirectQueries: () => createZeroClientWithDirectQueries
29
+ });
30
+ module.exports = __toCommonJS(multi_exports);
31
+ var import_createZeroClient = require("./createZeroClient.native.js");
32
+ var import_createUseQueryDirect = require("./createUseQueryDirect.native.js");
33
+ __reExport(multi_exports, require("./combineZeroClients.native.js"), module.exports);
34
+ function createZeroClientWithDirectQueries(options) {
35
+ var createDirectUseQuery = import_createUseQueryDirect.createUseQueryDirect;
36
+ return (0, import_createZeroClient.createZeroClientInternal)({
37
+ ...options,
38
+ createDirectUseQuery
39
+ });
40
+ }
41
+ //# sourceMappingURL=multi.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","multi_exports","__export","createZeroClientWithDirectQueries","module","exports","import_createZeroClient","require","import_createUseQueryDirect","__reExport","options","createDirectUseQuery","createUseQueryDirect","createZeroClientInternal"],"sources":["../../src/multi.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,iCAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAA,CAIOK,aAAA;AACP,IAAAK,uBAAA,GAAAC,OAAqC;AAKrC,IAAAC,2BAAc,GAAAD,OAAA,mCAVd;AAYOE,UAAS,CAAAR,aAAA,EAAAM,OAAA,iCAK+C,GAAAH,MAAA,CAAAC,OAAA;AAC7D,SAAMF,iCAAmDA,CAAAO,OAAA;EACzD,IAAAC,oBAAO,GAAAH,2BAAA,CAAAI,oBAAyC;EAAA,OAC3C,IAAAN,uBAAA,CAAAO,wBAAA;IACH,GAAAH,OAAA;IACDC;EACH","ignoreList":[]}
@@ -3,10 +3,12 @@ var import_helpers = require("@take-out/helpers");
3
3
  var import_vitest = require("vitest");
4
4
  var import_combineZeroClients = require("./combineZeroClients.cjs");
5
5
  var import_createZeroClient = require("./createZeroClient.cjs");
6
+ var import_mutatorContext = require("./helpers/mutatorContext.cjs");
6
7
  var import_instanceRegistry = require("./instanceRegistry.cjs");
7
8
  var import_queryRegistry = require("./queryRegistry.cjs");
8
9
  var import_run = require("./run.cjs");
9
10
  var import_zeroRunner = require("./zeroRunner.cjs");
11
+ var import_zql = require("./zql.cjs");
10
12
  const userTable = (0, import_zero.table)("user").columns({
11
13
  id: (0, import_zero.string)(),
12
14
  name: (0, import_zero.string)()
@@ -87,6 +89,79 @@ function fakeClient(name, namespaces, zeroStub) {
87
89
  const request = controlRunner.mock.calls[0][0];
88
90
  (0, import_vitest.expect)(request.query.queryName).toBe("runUser.byId");
89
91
  });
92
+ (0, import_vitest.test)("run() rejects named queries inside server mutation context", async () => {
93
+ const {
94
+ byId
95
+ } = makeClient("run-ctx-owner", "runCtxThing");
96
+ const ownerRunner = import_vitest.vi.fn(async (..._args) => ({
97
+ from: "owner"
98
+ }));
99
+ (0, import_instanceRegistry.getInstanceForNamespace)("runCtxThing").runner = ownerRunner;
100
+ const txRun = import_vitest.vi.fn(async (..._args) => ({
101
+ from: "tx"
102
+ }));
103
+ await (0, import_vitest.expect)((0, import_mutatorContext.runWithContext)({
104
+ authData: null,
105
+ environment: "server",
106
+ can: async () => {},
107
+ tx: {
108
+ run: txRun
109
+ }
110
+ }, () => (0, import_run.run)(byId, {
111
+ id: "1"
112
+ }))).rejects.toThrow(/run\(namedQuery\) cannot be used inside a Zero mutation/);
113
+ (0, import_vitest.expect)(ownerRunner).not.toHaveBeenCalled();
114
+ (0, import_vitest.expect)(txRun).not.toHaveBeenCalled();
115
+ });
116
+ (0, import_vitest.test)("run() keeps named queries on their owning client runner when browser context leaks", async () => {
117
+ const {
118
+ byId
119
+ } = makeClient("run-client-leak-owner", "runClientLeakThing");
120
+ const ownerRunner = import_vitest.vi.fn(async (..._args) => ({
121
+ from: "owner"
122
+ }));
123
+ (0, import_instanceRegistry.getInstanceForNamespace)("runClientLeakThing").runner = ownerRunner;
124
+ const txRun = import_vitest.vi.fn(async (..._args) => ({
125
+ from: "tx"
126
+ }));
127
+ await (0, import_vitest.expect)((0, import_mutatorContext.runWithContext)({
128
+ authData: null,
129
+ environment: "client",
130
+ can: async () => {},
131
+ tx: {
132
+ run: txRun
133
+ }
134
+ }, () => (0, import_run.run)(byId, {
135
+ id: "1"
136
+ }))).resolves.toEqual({
137
+ from: "owner"
138
+ });
139
+ (0, import_vitest.expect)(ownerRunner).toHaveBeenCalledTimes(1);
140
+ (0, import_vitest.expect)(txRun).not.toHaveBeenCalled();
141
+ });
142
+ (0, import_vitest.test)("run() keeps inline zql on the active transaction runner", async () => {
143
+ makeClient("run-inline-context", "runInlineThing");
144
+ const ambientRunner = import_vitest.vi.fn(async (..._args) => ({
145
+ from: "ambient"
146
+ }));
147
+ (0, import_zeroRunner.setRunner)(ambientRunner);
148
+ const txRun = import_vitest.vi.fn(async (..._args) => ({
149
+ from: "tx"
150
+ }));
151
+ const query = import_zql.zql.user.where("id", "1");
152
+ await (0, import_vitest.expect)((0, import_mutatorContext.runWithContext)({
153
+ authData: null,
154
+ environment: "client",
155
+ can: async () => {},
156
+ tx: {
157
+ run: txRun
158
+ }
159
+ }, () => (0, import_run.run)(query))).resolves.toEqual({
160
+ from: "tx"
161
+ });
162
+ (0, import_vitest.expect)(txRun).toHaveBeenCalledWith(query, void 0);
163
+ (0, import_vitest.expect)(ambientRunner).not.toHaveBeenCalled();
164
+ });
90
165
  (0, import_vitest.test)("a claimed namespace with an unmounted instance uses the ambient runner (server path)", async () => {
91
166
  const {
92
167
  byId
@@ -5,10 +5,12 @@ var import_helpers = require("@take-out/helpers");
5
5
  var import_vitest = require("vitest");
6
6
  var import_combineZeroClients = require("./combineZeroClients.native.js");
7
7
  var import_createZeroClient = require("./createZeroClient.native.js");
8
+ var import_mutatorContext = require("./helpers/mutatorContext.native.js");
8
9
  var import_instanceRegistry = require("./instanceRegistry.native.js");
9
10
  var import_queryRegistry = require("./queryRegistry.native.js");
10
11
  var import_run = require("./run.native.js");
11
12
  var import_zeroRunner = require("./zeroRunner.native.js");
13
+ var import_zql = require("./zql.native.js");
12
14
  var userTable = (0, import_zero.table)("user").columns({
13
15
  id: (0, import_zero.string)(),
14
16
  name: (0, import_zero.string)()
@@ -123,6 +125,115 @@ function fakeClient(name, namespaces, zeroStub) {
123
125
  var request = controlRunner.mock.calls[0][0];
124
126
  (0, import_vitest.expect)(request.query.queryName).toBe("runUser.byId");
125
127
  });
128
+ (0, import_vitest.test)("run() rejects named queries inside server mutation context", async function () {
129
+ var {
130
+ byId
131
+ } = makeClient("run-ctx-owner", "runCtxThing");
132
+ var ownerRunner = import_vitest.vi.fn(async function () {
133
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
134
+ _args[_key] = arguments[_key];
135
+ }
136
+ return {
137
+ from: "owner"
138
+ };
139
+ });
140
+ (0, import_instanceRegistry.getInstanceForNamespace)("runCtxThing").runner = ownerRunner;
141
+ var txRun = import_vitest.vi.fn(async function () {
142
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
143
+ _args[_key] = arguments[_key];
144
+ }
145
+ return {
146
+ from: "tx"
147
+ };
148
+ });
149
+ await (0, import_vitest.expect)((0, import_mutatorContext.runWithContext)({
150
+ authData: null,
151
+ environment: "server",
152
+ can: async function () {},
153
+ tx: {
154
+ run: txRun
155
+ }
156
+ }, function () {
157
+ return (0, import_run.run)(byId, {
158
+ id: "1"
159
+ });
160
+ })).rejects.toThrow(/run\(namedQuery\) cannot be used inside a Zero mutation/);
161
+ (0, import_vitest.expect)(ownerRunner).not.toHaveBeenCalled();
162
+ (0, import_vitest.expect)(txRun).not.toHaveBeenCalled();
163
+ });
164
+ (0, import_vitest.test)("run() keeps named queries on their owning client runner when browser context leaks", async function () {
165
+ var {
166
+ byId
167
+ } = makeClient("run-client-leak-owner", "runClientLeakThing");
168
+ var ownerRunner = import_vitest.vi.fn(async function () {
169
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
170
+ _args[_key] = arguments[_key];
171
+ }
172
+ return {
173
+ from: "owner"
174
+ };
175
+ });
176
+ (0, import_instanceRegistry.getInstanceForNamespace)("runClientLeakThing").runner = ownerRunner;
177
+ var txRun = import_vitest.vi.fn(async function () {
178
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
179
+ _args[_key] = arguments[_key];
180
+ }
181
+ return {
182
+ from: "tx"
183
+ };
184
+ });
185
+ await (0, import_vitest.expect)((0, import_mutatorContext.runWithContext)({
186
+ authData: null,
187
+ environment: "client",
188
+ can: async function () {},
189
+ tx: {
190
+ run: txRun
191
+ }
192
+ }, function () {
193
+ return (0, import_run.run)(byId, {
194
+ id: "1"
195
+ });
196
+ })).resolves.toEqual({
197
+ from: "owner"
198
+ });
199
+ (0, import_vitest.expect)(ownerRunner).toHaveBeenCalledTimes(1);
200
+ (0, import_vitest.expect)(txRun).not.toHaveBeenCalled();
201
+ });
202
+ (0, import_vitest.test)("run() keeps inline zql on the active transaction runner", async function () {
203
+ makeClient("run-inline-context", "runInlineThing");
204
+ var ambientRunner = import_vitest.vi.fn(async function () {
205
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
206
+ _args[_key] = arguments[_key];
207
+ }
208
+ return {
209
+ from: "ambient"
210
+ };
211
+ });
212
+ (0, import_zeroRunner.setRunner)(ambientRunner);
213
+ var txRun = import_vitest.vi.fn(async function () {
214
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
215
+ _args[_key] = arguments[_key];
216
+ }
217
+ return {
218
+ from: "tx"
219
+ };
220
+ });
221
+ var query = import_zql.zql.user.where("id", "1");
222
+ await (0, import_vitest.expect)((0, import_mutatorContext.runWithContext)({
223
+ authData: null,
224
+ environment: "client",
225
+ can: async function () {},
226
+ tx: {
227
+ run: txRun
228
+ }
229
+ }, function () {
230
+ return (0, import_run.run)(query);
231
+ })).resolves.toEqual({
232
+ from: "tx"
233
+ });
234
+ (0, import_vitest.expect)(txRun).toHaveBeenCalledWith(query, void 0);
235
+ (0, import_vitest.expect)(ambientRunner).not.toHaveBeenCalled();
236
+ });
126
237
  (0, import_vitest.test)("a claimed namespace with an unmounted instance uses the ambient runner (server path)", async function () {
127
238
  var {
128
239
  byId
@@ -1 +1 @@
1
- {"version":3,"names":["import_zero","require","import_helpers","import_vitest","import_combineZeroClients","import_createZeroClient","import_instanceRegistry","import_queryRegistry","import_run","import_zeroRunner","userTable","table","columns","id","string","name","primaryKey","taskTable","title","schema","createSchema","tables","makeQueryFn","args","makeClient","instanceName","namespace","byId","client","createZeroClient","models","groupedQueries","fakeClient","namespaces","zeroStub","registerClientInstance","customQueries","useQuery","vi","fn","useQueryDirect","usePermission","usePermissionDirect","zero","preload","getQuery","zeroEvents","createEmitter","ControlQueries","param","children","describe","test","control","project","controlRunner","_len","arguments","length","_args","Array","_key","from","projectRunner","getInstanceForNamespace","runner","ambientRunner","setRunner","expect","run","resolves","toEqual","not","toHaveBeenCalled","request","mock","calls","query","queryName","toBe","ambient","toHaveBeenCalledTimes","toThrow","_getInstanceForNamespace","mdlThing","mutate","insert","_a_zeroEvents_options","_b_zeroEvents_options","a","b","options","seenByB","listen","event","push","emit","type","message","value","_client_zeroEvents_options"],"sources":["../../src/multiInstance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_zero","require","import_helpers","import_vitest","import_combineZeroClients","import_createZeroClient","import_mutatorContext","import_instanceRegistry","import_queryRegistry","import_run","import_zeroRunner","import_zql","userTable","table","columns","id","string","name","primaryKey","taskTable","title","schema","createSchema","tables","makeQueryFn","args","makeClient","instanceName","namespace","byId","client","createZeroClient","models","groupedQueries","fakeClient","namespaces","zeroStub","registerClientInstance","customQueries","useQuery","vi","fn","useQueryDirect","usePermission","usePermissionDirect","zero","preload","getQuery","zeroEvents","createEmitter","ControlQueries","param","children","describe","test","control","project","controlRunner","_len","arguments","length","_args","Array","_key","from","projectRunner","getInstanceForNamespace","runner","ambientRunner","setRunner","expect","run","resolves","toEqual","not","toHaveBeenCalled","request","mock","calls","query","queryName","toBe","ownerRunner","txRun","runWithContext","authData","environment","can","tx","rejects","toThrow","toHaveBeenCalledTimes","zql","user","where","toHaveBeenCalledWith","ambient","_getInstanceForNamespace","mdlThing","mutate","insert"],"sources":["../../src/multiInstance.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  var import_zero = require("@rocicorp/zero");
2
- var import_react = require("react");
2
+ var import_react = require("@rocicorp/zero/react");
3
+ var import_react2 = require("react");
3
4
  var import_client = require("react-dom/client");
4
5
  var import_vitest = require("vitest");
5
- var import_combineZeroClients = require("./combineZeroClients.cjs");
6
6
  var import_createZeroClient = require("./createZeroClient.cjs");
7
+ var import_multi = require("./multi.cjs");
7
8
  var import_zql = require("./zql.cjs");
8
9
  var import_jsx_runtime = require("react/jsx-runtime");
9
10
  globalThis.IS_REACT_ACT_ENVIRONMENT = true;
@@ -28,7 +29,7 @@ const controlModels = {
28
29
  }
29
30
  };
30
31
  const ctlUserById = args => import_zql.zql.user.where("id", args.id).one();
31
- const control = (0, import_createZeroClient.createZeroClient)({
32
+ const control = (0, import_multi.createZeroClientWithDirectQueries)({
32
33
  schema,
33
34
  models: controlModels,
34
35
  groupedQueries: {
@@ -58,7 +59,7 @@ const project = (0, import_createZeroClient.createZeroClient)({
58
59
  },
59
60
  instanceName: "nested-project"
60
61
  });
61
- const combined = (0, import_combineZeroClients.combineZeroClients)(control, project);
62
+ const combined = (0, import_multi.combineZeroClients)(control, project);
62
63
  let root;
63
64
  let container;
64
65
  (0, import_vitest.beforeEach)(() => {
@@ -68,14 +69,17 @@ let container;
68
69
  root = (0, import_client.createRoot)(container);
69
70
  });
70
71
  (0, import_vitest.afterEach)(async () => {
71
- await (0, import_react.act)(async () => root.unmount());
72
+ await (0, import_react2.act)(async () => root.unmount());
73
+ await (0, import_react2.act)(async () => {
74
+ await new Promise(resolve => setTimeout(resolve, 20));
75
+ });
72
76
  container.remove();
73
77
  });
74
- const render = ui => (0, import_react.act)(async () => root.render(ui));
78
+ const render = ui => (0, import_react2.act)(async () => root.render(ui));
75
79
  async function waitFor(condition, what) {
76
80
  for (let i = 0; i < 200; i++) {
77
81
  if (condition()) return;
78
- await (0, import_react.act)(async () => {
82
+ await (0, import_react2.act)(async () => {
79
83
  await new Promise(resolve => setTimeout(resolve, 5));
80
84
  });
81
85
  }
@@ -85,27 +89,63 @@ const probe = {
85
89
  data: void 0,
86
90
  renders: 0
87
91
  };
92
+ const materializeProbe = {
93
+ materializeTtls: [],
94
+ updateTtls: [],
95
+ destroys: 0
96
+ };
88
97
  function resetProbe() {
89
98
  probe.data = void 0;
90
99
  probe.renders = 0;
100
+ materializeProbe.materializeTtls = [];
101
+ materializeProbe.updateTtls = [];
102
+ materializeProbe.destroys = 0;
91
103
  }
92
104
  function ControlUserProbe({
93
- id
105
+ id,
106
+ ttl
94
107
  }) {
95
- const [data] = combined.useQuery(ctlUserById, {
108
+ const [data] = ttl === void 0 ? combined.useQuery(ctlUserById, {
109
+ id
110
+ }) : combined.useQuery(ctlUserById, {
96
111
  id
112
+ }, {
113
+ ttl
97
114
  });
98
115
  probe.data = data ?? void 0;
99
116
  probe.renders++;
100
117
  return null;
101
118
  }
119
+ function MaterializeProbe() {
120
+ const zero = (0, import_react.useZero)();
121
+ if (!zero.__onZeroMaterializeProbe) {
122
+ zero.__onZeroMaterializeProbe = true;
123
+ const materialize = zero.materialize.bind(zero);
124
+ zero.materialize = (...args) => {
125
+ materializeProbe.materializeTtls.push(args[1]?.ttl);
126
+ const view = materialize(...args);
127
+ const updateTTL = view.updateTTL.bind(view);
128
+ view.updateTTL = ttl => {
129
+ materializeProbe.updateTtls.push(ttl);
130
+ return updateTTL(ttl);
131
+ };
132
+ const destroy = view.destroy.bind(view);
133
+ view.destroy = () => {
134
+ materializeProbe.destroys++;
135
+ return destroy();
136
+ };
137
+ return view;
138
+ };
139
+ }
140
+ return null;
141
+ }
102
142
  const seedControl = async row => {
103
- await (0, import_react.act)(async () => {
143
+ await (0, import_react2.act)(async () => {
104
144
  await control.zero.mutate.user.seed(row).client;
105
145
  });
106
146
  };
107
147
  const seedProject = async row => {
108
- await (0, import_react.act)(async () => {
148
+ await (0, import_react2.act)(async () => {
109
149
  await project.zero.mutate.prjSeed.seedUser(row).client;
110
150
  });
111
151
  };
@@ -176,7 +216,7 @@ const seedProject = async row => {
176
216
  await waitFor(() => probe.data?.name === "v3", "v3 visible after inner remount");
177
217
  });
178
218
  (0, import_vitest.test)("StrictMode: direct views survive the effect double-invoke", async () => {
179
- await render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.StrictMode, {
219
+ await render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react2.StrictMode, {
180
220
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(control.ProvideZero, {
181
221
  server: null,
182
222
  userID: "t4-ctl",
@@ -201,6 +241,46 @@ const seedProject = async row => {
201
241
  });
202
242
  await waitFor(() => probe.data?.name === "strict-v2", "second update still live");
203
243
  });
244
+ (0, import_vitest.test)("direct-path subscribers share one materialized view", async () => {
245
+ const App = ({
246
+ showSubscribers
247
+ }) => /* @__PURE__ */(0, import_jsx_runtime.jsxs)(control.ProvideZero, {
248
+ server: null,
249
+ userID: "t5-ctl",
250
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(MaterializeProbe, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(project.ProvideZero, {
251
+ server: null,
252
+ userID: "t5-prj",
253
+ children: showSubscribers ? /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
254
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(ControlUserProbe, {
255
+ id: "u5",
256
+ ttl: 1e3
257
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ControlUserProbe, {
258
+ id: "u5",
259
+ ttl: 2e3
260
+ })]
261
+ }) : null
262
+ })]
263
+ });
264
+ await render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(App, {
265
+ showSubscribers: true
266
+ }));
267
+ await waitFor(() => probe.renders >= 2, "both probes mount");
268
+ (0, import_vitest.expect)(materializeProbe.materializeTtls).toEqual([1e3]);
269
+ (0, import_vitest.expect)(materializeProbe.updateTtls).toEqual([2e3]);
270
+ await seedControl({
271
+ id: "u5",
272
+ name: "shared-v1"
273
+ });
274
+ await waitFor(() => probe.data?.name === "shared-v1", "shared view update visible");
275
+ (0, import_vitest.expect)(materializeProbe.materializeTtls).toEqual([1e3]);
276
+ await render(/* @__PURE__ */(0, import_jsx_runtime.jsx)(App, {
277
+ showSubscribers: false
278
+ }));
279
+ await (0, import_react2.act)(async () => {
280
+ await new Promise(resolve => setTimeout(resolve, 20));
281
+ });
282
+ (0, import_vitest.expect)(materializeProbe.destroys).toBe(1);
283
+ });
204
284
  (0, import_vitest.test)("direct-path views re-materialize when the owning instance rotates", async () => {
205
285
  const App = ({
206
286
  userID