on-zero 0.6.16 → 0.6.18

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 (44) hide show
  1. package/dist/cjs/createZeroClient.cjs +27 -0
  2. package/dist/cjs/createZeroClient.connection.test.cjs +58 -0
  3. package/dist/cjs/createZeroClient.connection.test.native.js +58 -0
  4. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  5. package/dist/cjs/createZeroClient.native.js +28 -0
  6. package/dist/cjs/createZeroClient.native.js.map +1 -1
  7. package/dist/cjs/createZeroServer.native.js.map +1 -1
  8. package/dist/cjs/createZeroServer.test.cjs +98 -0
  9. package/dist/cjs/createZeroServer.test.native.js +104 -0
  10. package/dist/cjs/createZeroServer.test.native.js.map +1 -1
  11. package/dist/cjs/createZeroServerCore.cjs +2 -1
  12. package/dist/cjs/createZeroServerCore.native.js +2 -3
  13. package/dist/cjs/createZeroServerCore.native.js.map +1 -1
  14. package/dist/esm/createZeroClient.connection.test.mjs +58 -0
  15. package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
  16. package/dist/esm/createZeroClient.connection.test.native.js +58 -0
  17. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  18. package/dist/esm/createZeroClient.mjs +27 -0
  19. package/dist/esm/createZeroClient.mjs.map +1 -1
  20. package/dist/esm/createZeroClient.native.js +28 -0
  21. package/dist/esm/createZeroClient.native.js.map +1 -1
  22. package/dist/esm/createZeroServer.mjs.map +1 -1
  23. package/dist/esm/createZeroServer.native.js.map +1 -1
  24. package/dist/esm/createZeroServer.test.mjs +98 -0
  25. package/dist/esm/createZeroServer.test.mjs.map +1 -1
  26. package/dist/esm/createZeroServer.test.native.js +104 -0
  27. package/dist/esm/createZeroServer.test.native.js.map +1 -1
  28. package/dist/esm/createZeroServerCore.mjs +2 -1
  29. package/dist/esm/createZeroServerCore.mjs.map +1 -1
  30. package/dist/esm/createZeroServerCore.native.js +2 -3
  31. package/dist/esm/createZeroServerCore.native.js.map +1 -1
  32. package/package.json +2 -2
  33. package/readme.md +8 -1
  34. package/src/createZeroClient.connection.test.tsx +56 -0
  35. package/src/createZeroClient.tsx +38 -0
  36. package/src/createZeroServer.test.ts +106 -0
  37. package/src/createZeroServer.ts +2 -0
  38. package/src/createZeroServerCore.ts +12 -6
  39. package/test-fixtures/server-return-types.ts +12 -0
  40. package/types/createZeroClient.d.ts.map +1 -1
  41. package/types/createZeroServer.d.ts +1 -1
  42. package/types/createZeroServer.d.ts.map +1 -1
  43. package/types/createZeroServerCore.d.ts +8 -5
  44. package/types/createZeroServerCore.d.ts.map +1 -1
@@ -201,6 +201,104 @@ describe("createZeroServer mutation recovery", () => {
201
201
  });
202
202
  consoleError.mockRestore();
203
203
  });
204
+ test("registers a promise that settles every background task with the request scheduler", async () => {
205
+ const pg = new FakePgClient();
206
+ const error = new Error("background failed");
207
+ const consoleError = vi.spyOn(console, "error").mockImplementation(() => {});
208
+ let releaseSibling;
209
+ const siblingGate = new Promise(resolve => {
210
+ releaseSibling = resolve;
211
+ });
212
+ let siblingFinished = false;
213
+ let scheduled;
214
+ const zeroServer = createZeroServer({
215
+ schema: zeroHttpFixtureSchema,
216
+ models: {
217
+ project: {
218
+ mutate: {
219
+ touch: async ({
220
+ server
221
+ }) => {
222
+ server?.enqueueTask(async () => {
223
+ throw error;
224
+ });
225
+ server?.enqueueTask(async () => {
226
+ await siblingGate;
227
+ siblingFinished = true;
228
+ });
229
+ }
230
+ }
231
+ }
232
+ },
233
+ createServerActions: () => ({}),
234
+ pool: pg
235
+ });
236
+ const result = await zeroServer.handleMutationRequest({
237
+ authData: null,
238
+ request: pushRequest(1),
239
+ scheduleBackgroundTask: promise => {
240
+ scheduled = promise;
241
+ }
242
+ });
243
+ expect(result.response.mutations[0].result).toEqual({});
244
+ expect(scheduled).toBeInstanceOf(Promise);
245
+ expect(siblingFinished).toBe(false);
246
+ let scheduledSettled = false;
247
+ void scheduled.then(() => {
248
+ scheduledSettled = true;
249
+ });
250
+ await Promise.resolve();
251
+ expect(scheduledSettled).toBe(false);
252
+ releaseSibling();
253
+ await scheduled;
254
+ expect(siblingFinished).toBe(true);
255
+ expect(consoleError).toHaveBeenCalledWith("[on-zero] async task failed", error);
256
+ consoleError.mockRestore();
257
+ });
258
+ test("awaits background tasks when the request has no scheduler", async () => {
259
+ const pg = new FakePgClient();
260
+ let markTaskStarted;
261
+ const taskStarted = new Promise(resolve => {
262
+ markTaskStarted = resolve;
263
+ });
264
+ let releaseTask;
265
+ const taskGate = new Promise(resolve => {
266
+ releaseTask = resolve;
267
+ });
268
+ const zeroServer = createZeroServer({
269
+ schema: zeroHttpFixtureSchema,
270
+ models: {
271
+ project: {
272
+ mutate: {
273
+ touch: async ({
274
+ server
275
+ }) => {
276
+ server?.enqueueTask(async () => {
277
+ markTaskStarted();
278
+ await taskGate;
279
+ });
280
+ }
281
+ }
282
+ }
283
+ },
284
+ createServerActions: () => ({}),
285
+ pool: pg
286
+ });
287
+ let responseResolved = false;
288
+ const resultPromise = zeroServer.handleMutationRequest({
289
+ authData: null,
290
+ request: pushRequest(1)
291
+ }).then(result2 => {
292
+ responseResolved = true;
293
+ return result2;
294
+ });
295
+ await taskStarted;
296
+ await Promise.resolve();
297
+ expect(responseResolved).toBe(false);
298
+ releaseTask();
299
+ const result = await resultPromise;
300
+ expect(result.response.mutations[0].result).toEqual({});
301
+ });
204
302
  test("persists alreadyProcessed duplicate results for zero-cache recovery rows", async () => {
205
303
  const pg = new FakePgClient();
206
304
  const zeroServer = createZeroServer({
@@ -1 +1 @@
1
- {"version":3,"names":["describe","expect","test","vi","createZeroServer","zeroHttpFixtureSchema","FakePgClient","lastMutationID","pendingLastMutationID","mutationResultInserts","query","sql","params","rows","includes","nextMutationID","schemaRows","push","Error","table","columns","map","column","schema","dataType","length","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","server","enqueueTask","createServerActions","pool","result","handleMutationRequest","authData","request","skipAsyncTasks","response","toMatchObject","error","message","asyncTasks","toEqual","toBe","releaseBarrier","markBarrierStarted","barrierStarted","Promise","resolve","barrier","responseResolved","resultPromise","then","result2","consoleError","spyOn","console","mockImplementation","waitFor","toHaveBeenCalledWith","mockRestore","first","duplicate","duplicateResult","details","mixed","results","mutation"],"sources":["../../src/createZeroServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["describe","expect","test","vi","createZeroServer","zeroHttpFixtureSchema","FakePgClient","lastMutationID","pendingLastMutationID","mutationResultInserts","query","sql","params","rows","includes","nextMutationID","schemaRows","push","Error","table","columns","map","column","schema","dataType","length","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","server","enqueueTask","createServerActions","pool","result","handleMutationRequest","authData","request","skipAsyncTasks","response","toMatchObject","error","message","asyncTasks","toEqual","toBe","releaseBarrier","markBarrierStarted","barrierStarted","Promise","resolve","barrier","responseResolved","resultPromise","then","result2","consoleError","spyOn","console","mockImplementation","waitFor","toHaveBeenCalledWith","mockRestore","releaseSibling","siblingGate","siblingFinished","scheduled","scheduleBackgroundTask","promise","toBeInstanceOf","scheduledSettled","markTaskStarted","taskStarted","releaseTask","taskGate","first","duplicate","duplicateResult","details","mixed","results","mutation"],"sources":["../../src/createZeroServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -256,6 +256,110 @@ describe("createZeroServer mutation recovery", function () {
256
256
  });
257
257
  consoleError.mockRestore();
258
258
  });
259
+ test("registers a promise that settles every background task with the request scheduler", async function () {
260
+ var pg = new FakePgClient();
261
+ var error = new Error("background failed");
262
+ var consoleError = vi.spyOn(console, "error").mockImplementation(function () {});
263
+ var releaseSibling;
264
+ var siblingGate = new Promise(function (resolve) {
265
+ releaseSibling = resolve;
266
+ });
267
+ var siblingFinished = false;
268
+ var scheduled;
269
+ var zeroServer = createZeroServer({
270
+ schema: zeroHttpFixtureSchema,
271
+ models: {
272
+ project: {
273
+ mutate: {
274
+ touch: async function (param) {
275
+ var {
276
+ server
277
+ } = param;
278
+ server === null || server === void 0 ? void 0 : server.enqueueTask(async function () {
279
+ throw error;
280
+ });
281
+ server === null || server === void 0 ? void 0 : server.enqueueTask(async function () {
282
+ await siblingGate;
283
+ siblingFinished = true;
284
+ });
285
+ }
286
+ }
287
+ }
288
+ },
289
+ createServerActions: function () {
290
+ return {};
291
+ },
292
+ pool: pg
293
+ });
294
+ var result = await zeroServer.handleMutationRequest({
295
+ authData: null,
296
+ request: pushRequest(1),
297
+ scheduleBackgroundTask: function (promise) {
298
+ scheduled = promise;
299
+ }
300
+ });
301
+ expect(result.response.mutations[0].result).toEqual({});
302
+ expect(scheduled).toBeInstanceOf(Promise);
303
+ expect(siblingFinished).toBe(false);
304
+ var scheduledSettled = false;
305
+ void scheduled.then(function () {
306
+ scheduledSettled = true;
307
+ });
308
+ await Promise.resolve();
309
+ expect(scheduledSettled).toBe(false);
310
+ releaseSibling();
311
+ await scheduled;
312
+ expect(siblingFinished).toBe(true);
313
+ expect(consoleError).toHaveBeenCalledWith("[on-zero] async task failed", error);
314
+ consoleError.mockRestore();
315
+ });
316
+ test("awaits background tasks when the request has no scheduler", async function () {
317
+ var pg = new FakePgClient();
318
+ var markTaskStarted;
319
+ var taskStarted = new Promise(function (resolve) {
320
+ markTaskStarted = resolve;
321
+ });
322
+ var releaseTask;
323
+ var taskGate = new Promise(function (resolve) {
324
+ releaseTask = resolve;
325
+ });
326
+ var zeroServer = createZeroServer({
327
+ schema: zeroHttpFixtureSchema,
328
+ models: {
329
+ project: {
330
+ mutate: {
331
+ touch: async function (param) {
332
+ var {
333
+ server
334
+ } = param;
335
+ server === null || server === void 0 ? void 0 : server.enqueueTask(async function () {
336
+ markTaskStarted();
337
+ await taskGate;
338
+ });
339
+ }
340
+ }
341
+ }
342
+ },
343
+ createServerActions: function () {
344
+ return {};
345
+ },
346
+ pool: pg
347
+ });
348
+ var responseResolved = false;
349
+ var resultPromise = zeroServer.handleMutationRequest({
350
+ authData: null,
351
+ request: pushRequest(1)
352
+ }).then(function (result2) {
353
+ responseResolved = true;
354
+ return result2;
355
+ });
356
+ await taskStarted;
357
+ await Promise.resolve();
358
+ expect(responseResolved).toBe(false);
359
+ releaseTask();
360
+ var result = await resultPromise;
361
+ expect(result.response.mutations[0].result).toEqual({});
362
+ });
259
363
  test("persists alreadyProcessed duplicate results for zero-cache recovery rows", async function () {
260
364
  var pg = new FakePgClient();
261
365
  var zeroServer = createZeroServer({
@@ -1 +1 @@
1
- {"version":3,"names":["describe","expect","test","vi","createZeroServer","zeroHttpFixtureSchema","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","FakePgClient","FakePgClient2","query","sql","params","arguments","pendingLastMutationID","rows","lastMutationID","includes","nextMutationID","schemaRows","mutationResultInserts","push","Error","table","columns","map","column","schema","dataType","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","param","server","enqueueTask","createServerActions","pool","result","handleMutationRequest","authData","request","skipAsyncTasks","response","toMatchObject","error","message","asyncTasks","toEqual","toBe","releaseBarrier","markBarrierStarted","barrierStarted","Promise","resolve","barrier","responseResolved","resultPromise","then","result2","consoleError","spyOn","console","mockImplementation","waitFor","toHaveBeenCalledWith"],"sources":["../../src/createZeroServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["describe","expect","test","vi","createZeroServer","zeroHttpFixtureSchema","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","FakePgClient","FakePgClient2","query","sql","params","arguments","pendingLastMutationID","rows","lastMutationID","includes","nextMutationID","schemaRows","mutationResultInserts","push","Error","table","columns","map","column","schema","dataType","precision","scale","typtype","typename","elemTyptype","elemTypname","pushRequest","mutationIDs","ids","Array","isArray","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","mutationID","type","id","clientID","name","args","timestamp","pushVersion","requestID","join","pg","effectRuns","zeroServer","models","project","mutate","touch","param","server","enqueueTask","createServerActions","pool","result","handleMutationRequest","authData","request","skipAsyncTasks","response","toMatchObject","error","message","asyncTasks","toEqual","toBe","releaseBarrier","markBarrierStarted","barrierStarted","Promise","resolve","barrier","responseResolved","resultPromise","then","result2","consoleError","spyOn","console","mockImplementation","waitFor","toHaveBeenCalledWith","mockRestore","releaseSibling","siblingGate","siblingFinished","scheduled","scheduleBackgroundTask","promise","toBeInstanceOf","scheduledSettled","markTaskStarted","taskStarted","releaseTask","taskGate"],"sources":["../../src/createZeroServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,7 @@ function createZeroServerCore({
35
35
  const handleMutationRequest = async ({
36
36
  authData,
37
37
  request,
38
+ scheduleBackgroundTask,
38
39
  skipAsyncTasks
39
40
  }) => {
40
41
  const tasks = createAsyncTaskCollector();
@@ -61,7 +62,7 @@ function createZeroServerCore({
61
62
  task: () => runWithAuthScope(authData, entry.task)
62
63
  }));
63
64
  await runAsyncTaskEntries(entries, {
64
- background: () => void 0
65
+ background: scheduleBackgroundTask
65
66
  });
66
67
  }
67
68
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["PushProcessor","handleQueryRequest","zeroHandleQueryRequest","runAsyncTaskEntries","createAsyncTaskCollector","createZeroDirectServerRuntime","resolveServerQuery","createMutators","runWithAuthScope","runWithQueryContext","createZeroServerCore","createDatabase","createServerActions","defaultAllowAdminRole","defaultMutateAuthData","models","mutations","mutationValidators","persistAlreadyProcessed","queries","schema","validateMutation","validateQuery","permissions","server","handleMutationRequest","authData","request","skipAsyncTasks","tasks","recoveryRequest","clone","mutators","enqueueTask","can","environment","processor","withTransactionLifecycle","lifecycle","response","process","parsed","parseAlreadyProcessed","committed","length","entries","map","entry","task","background","asyncTasks","Error","handler","name","args","userID","id","database","transaction","callback","input","value","tx","hooks","beginAttempt","result","completeAttempt","error","rollbackAttempt","commitTransaction","rollbackTransaction","alreadyProcessedMutations","upstreamSchema","URL","url","searchParams","get","body","json","clientGroupID","Array","isArray","filter","mutation","clientID"],"sources":["../../src/createZeroServerCore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PushProcessor","handleQueryRequest","zeroHandleQueryRequest","runAsyncTaskEntries","createAsyncTaskCollector","createZeroDirectServerRuntime","resolveServerQuery","createMutators","runWithAuthScope","runWithQueryContext","createZeroServerCore","createDatabase","createServerActions","defaultAllowAdminRole","defaultMutateAuthData","models","mutations","mutationValidators","persistAlreadyProcessed","queries","schema","validateMutation","validateQuery","permissions","server","handleMutationRequest","authData","request","scheduleBackgroundTask","skipAsyncTasks","tasks","recoveryRequest","clone","mutators","enqueueTask","can","environment","processor","withTransactionLifecycle","lifecycle","response","process","parsed","parseAlreadyProcessed","committed","length","entries","map","entry","task","background","asyncTasks","Error","handler","name","args","userID","id","database","transaction","callback","input","value","tx","hooks","beginAttempt","result","completeAttempt","error","rollbackAttempt","commitTransaction","rollbackTransaction","alreadyProcessedMutations","upstreamSchema","URL","url","searchParams","get","body","json","clientGroupID","Array","isArray","filter","mutation","clientID"],"sources":["../../src/createZeroServerCore.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,aAAA,EACAC,kBAAA,IAAsBC,sBAAA,QACjB;AAEP,SAASC,mBAAA,QAA2B;AACpC,SACEC,wBAAA,EACAC,6BAAA,EACAC,kBAAA,QAIK;AACP,SAASC,cAAA,QAAsB;AAC/B,SAASC,gBAAA,QAAwB;AACjC,SAASC,mBAAA,QAA2B;AA4C7B,SAASC,qBAId;EACAC,cAAA;EACAC,mBAAA;EACAC,qBAAA,GAAwB;EACxBC,qBAAA;EACAC,MAAA;EACAC,SAAA,EAAWC,kBAAA;EACXC,uBAAA;EACAC,OAAA;EACAC,MAAA;EACAC,gBAAA;EACAC;AACF,GAAyD;EACvD,MAAM;IAAEC,WAAA;IAAaC;EAAO,IAAInB,6BAAA,CAA8B;IAC5DM,cAAA;IACAC,mBAAA;IACAC,qBAAA;IACAC,qBAAA;IACAC,MAAA;IACAC,SAAA,EAAWC,kBAAA;IACXE,OAAA;IACAC,MAAA;IACAC,gBAAA;IACAC;EACF,CAAC;EAED,MAAMG,qBAAA,GAAwB,MAAAA,CAAO;IACnCC,QAAA;IACAC,OAAA;IACAC,sBAAA;IACAC;EACF,MAAoC;IAClC,MAAMC,KAAA,GAAQ1B,wBAAA,CAAyB;IACvC,MAAM2B,eAAA,GAAkBJ,OAAA,CAAQK,KAAA,CAAM;IACtC,MAAMC,QAAA,GAAW1B,cAAA,CAAe;MAC9B2B,WAAA,EAAaJ,KAAA,CAAMI,WAAA;MACnBC,GAAA,EAAKZ,WAAA,CAAYY,GAAA;MACjBvB,mBAAA;MACAwB,WAAA,EAAa;MACbrB,MAAA;MACAW,QAAA;MACAL,gBAAA;MACAJ;IACF,CAAC;IACD,MAAMoB,SAAA,GAAY,IAAIrC,aAAA,CACpBsC,wBAAA,CAAyB3B,cAAA,CAAe,GAAGmB,KAAA,CAAMS,SAAS,CAC5D;IACA,MAAMC,QAAA,GAAW,MAAMH,SAAA,CAAUI,OAAA,CAAQR,QAAA,EAAUN,OAAO;IAE1D,IAAIT,uBAAA,EAAyB;MAC3B,MAAMwB,MAAA,GAAS,MAAMC,qBAAA,CAAsBZ,eAAA,EAAiBS,QAAQ;MACpE,IAAIE,MAAA,EAAQ,MAAMxB,uBAAA,CAAwBwB,MAAM;IAClD;IAEA,IAAI,CAACb,cAAA,IAAkBC,KAAA,CAAMc,SAAA,CAAUC,MAAA,EAAQ;MAC7C,MAAMC,OAAA,GAAUhB,KAAA,CAAMc,SAAA,CAAUG,GAAA,CAAKC,KAAA,KAAW;QAC9C,GAAGA,KAAA;QACHC,IAAA,EAAMA,CAAA,KAAMzC,gBAAA,CAAiBkB,QAAA,EAAUsB,KAAA,CAAMC,IAAI;MACnD,EAAE;MACF,MAAM9C,mBAAA,CAAoB2C,OAAA,EAAS;QAAEI,UAAA,EAAYtB;MAAuB,CAAC;IAC3E;IAEA,OAAO;MACLY,QAAA;MACAW,UAAA,EAAYrB,KAAA,CAAMc;IACpB;EACF;EAEA,MAAM3C,kBAAA,GAAqB,MAAAA,CAAO;IAChCyB,QAAA;IACAC;EACF,MAGM;IACJ,IAAI,CAACR,OAAA,EAAS;MACZ,MAAM,IAAIiC,KAAA,CACR,0HAEF;IACF;IAEA,MAAMC,OAAA,GAAUA,CAACC,IAAA,EAAcC,IAAA,KAC7BjD,kBAAA,CAAmB;MACjBoB,QAAA;MACA4B,IAAA;MACAC,IAAA;MACApC,OAAA;MACAI,WAAA;MACAD;IACF,CAAC;IAEH,MAAMkC,MAAA,GAAS,OAAO9B,QAAA,EAAU+B,EAAA,KAAO,WAAW/B,QAAA,CAAS+B,EAAA,GAAK;IAChE,MAAMjB,QAAA,GAAW,MAAM/B,mBAAA,CACrB;MAAEiB,QAAA,EAAUA,QAAA,IAAa,CAAC;IAAe,GACzC;IAAA;IAEE8B,MAAA,KAAW,SACPtD,sBAAA,CAAuBmD,OAAA,EAASjC,MAAA,EAAQO,OAAO,IAC/CzB,sBAAA,CAAuB;MAAEmD,OAAA;MAASjC,MAAA;MAAQO,OAAA;MAAS6B;IAAO,CAAC,CACnE;IAEA,OAAO;MAAEhB;IAAS;EACpB;EAEA,OAAO;IACLf,qBAAA;IACAxB,kBAAA;IACA,GAAGuB;EACL;AACF;AAQA,SAASc,yBACPoB,QAAA,EACAnB,SAAA,EACoB;EACpB,OAAO;IACL,MAAMoB,YAAYC,QAAA,EAAUC,KAAA,EAAO;MACjC,IAAI;QACF,MAAMC,KAAA,GAAQ,MAAMJ,QAAA,CAASC,WAAA,CAAY,OAAOI,EAAA,EAAIC,KAAA,KAAU;UAC5DzB,SAAA,CAAU0B,YAAA,CAAa;UACvB,IAAI;YACF,MAAMC,MAAA,GAAS,MAAMN,QAAA,CAASG,EAAA,EAAIC,KAAK;YACvCzB,SAAA,CAAU4B,eAAA,CAAgB;YAC1B,OAAOD,MAAA;UACT,SAASE,KAAA,EAAO;YACd7B,SAAA,CAAU8B,eAAA,CAAgB;YAC1B,MAAMD,KAAA;UACR;QACF,GAAGP,KAAK;QACRtB,SAAA,CAAU+B,iBAAA,CAAkB;QAC5B,OAAOR,KAAA;MACT,SAASM,KAAA,EAAO;QACd7B,SAAA,CAAUgC,mBAAA,CAAoB;QAC9B,MAAMH,KAAA;MACR;IACF;EACF;AACF;AAEA,eAAezB,sBACbhB,OAAA,EACAa,QAAA,EACkD;EAClD,MAAMxB,SAAA,GAAYwD,yBAAA,CAA0BhC,QAAQ;EACpD,IAAIxB,SAAA,CAAU6B,MAAA,KAAW,GAAG;EAE5B,MAAM4B,cAAA,GAAiB,IAAIC,GAAA,CAAI/C,OAAA,CAAQgD,GAAG,EAAEC,YAAA,CAAaC,GAAA,CAAI,QAAQ;EACrE,IAAI,CAACJ,cAAA,EAAgB;EAErB,MAAMK,IAAA,GAAQ,MAAMnD,OAAA,CAAQoD,IAAA,CAAK;EACjC,IAAI,OAAOD,IAAA,CAAKE,aAAA,KAAkB,UAAU;EAE5C,OAAO;IACLA,aAAA,EAAeF,IAAA,CAAKE,aAAA;IACpBhE,SAAA;IACAyD;EACF;AACF;AAEA,SAASD,0BAA0BhC,QAAA,EAA+C;EAChF,IAAI,CAACA,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAU,OAAO,EAAC;EACvD,MAAMxB,SAAA,GAAawB,QAAA,CAAqCxB,SAAA;EACxD,IAAI,CAACiE,KAAA,CAAMC,OAAA,CAAQlE,SAAS,GAAG,OAAO,EAAC;EAEvC,OAAOA,SAAA,CAAUmE,MAAA,CAAQC,QAAA,IAAmD;IAC1E,IAAI,CAACA,QAAA,IAAY,OAAOA,QAAA,KAAa,UAAU,OAAO;IACtD,MAAM3B,EAAA,GAAM2B,QAAA,CAA8B3B,EAAA;IAC1C,MAAMS,MAAA,GAAUkB,QAAA,CAAkClB,MAAA;IAClD,OACE,CAAC,CAACT,EAAA,IACF,OAAOA,EAAA,KAAO,YACd,OAAQA,EAAA,CAA8B4B,QAAA,KAAa,YACnD,OAAQ5B,EAAA,CAAwBA,EAAA,KAAO,YACvC,CAAC,CAACS,MAAA,IACF,OAAOA,MAAA,KAAW,YACjBA,MAAA,CAA+BE,KAAA,KAAU;EAE9C,CAAC;AACH","ignoreList":[]}
@@ -42,6 +42,7 @@ function createZeroServerCore(param) {
42
42
  var {
43
43
  authData,
44
44
  request,
45
+ scheduleBackgroundTask,
45
46
  skipAsyncTasks
46
47
  } = param2;
47
48
  var tasks = createAsyncTaskCollector();
@@ -72,9 +73,7 @@ function createZeroServerCore(param) {
72
73
  };
73
74
  });
74
75
  await runAsyncTaskEntries(entries, {
75
- background: function () {
76
- return void 0;
77
- }
76
+ background: scheduleBackgroundTask
78
77
  });
79
78
  }
80
79
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["PushProcessor","handleQueryRequest","zeroHandleQueryRequest","runAsyncTaskEntries","createAsyncTaskCollector","createZeroDirectServerRuntime","resolveServerQuery","createMutators","runWithAuthScope","runWithQueryContext","_type_of","obj","Symbol","constructor","createZeroServerCore","param","createDatabase","createServerActions","defaultAllowAdminRole","defaultMutateAuthData","models","mutations","mutationValidators","persistAlreadyProcessed","queries","schema","validateMutation","validateQuery","permissions","server","handleMutationRequest","param2","authData","request","skipAsyncTasks","tasks","recoveryRequest","clone","mutators","enqueueTask","can","environment","processor","withTransactionLifecycle","lifecycle","response","process","parsed","parseAlreadyProcessed","committed","length","entries","map","entry","task","background","asyncTasks","Error","handler","name","args","userID","id","database","transaction","callback","input","value","tx","hooks","beginAttempt","result","completeAttempt","error","rollbackAttempt","commitTransaction","rollbackTransaction","alreadyProcessedMutations","upstreamSchema","URL","url","searchParams","get","body","json","clientGroupID","Array","isArray","filter","mutation","clientID"],"sources":["../../src/createZeroServerCore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PushProcessor","handleQueryRequest","zeroHandleQueryRequest","runAsyncTaskEntries","createAsyncTaskCollector","createZeroDirectServerRuntime","resolveServerQuery","createMutators","runWithAuthScope","runWithQueryContext","_type_of","obj","Symbol","constructor","createZeroServerCore","param","createDatabase","createServerActions","defaultAllowAdminRole","defaultMutateAuthData","models","mutations","mutationValidators","persistAlreadyProcessed","queries","schema","validateMutation","validateQuery","permissions","server","handleMutationRequest","param2","authData","request","scheduleBackgroundTask","skipAsyncTasks","tasks","recoveryRequest","clone","mutators","enqueueTask","can","environment","processor","withTransactionLifecycle","lifecycle","response","process","parsed","parseAlreadyProcessed","committed","length","entries","map","entry","task","background","asyncTasks","Error","handler","name","args","userID","id","database","transaction","callback","input","value","tx","hooks","beginAttempt","result","completeAttempt","error","rollbackAttempt","commitTransaction","rollbackTransaction","alreadyProcessedMutations","upstreamSchema","URL","url","searchParams","get","body","json","clientGroupID","Array","isArray","filter","mutation","clientID"],"sources":["../../src/createZeroServerCore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.6.16",
3
+ "version": "0.6.18",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -99,7 +99,7 @@
99
99
  }
100
100
  },
101
101
  "dependencies": {
102
- "@take-out/helpers": "0.6.16",
102
+ "@take-out/helpers": "0.6.18",
103
103
  "chokidar": "^4.0.3",
104
104
  "citty": "^0.1.6",
105
105
  "valibot": "^1.1.0"
package/readme.md CHANGED
@@ -505,7 +505,8 @@ app.post('/api/zero/push', async (req) => {
505
505
  const authData = await getAuthFromRequest(req)
506
506
  const { response } = await zeroServer.handleMutationRequest({
507
507
  authData,
508
- request: req
508
+ request: req,
509
+ scheduleBackgroundTask: (promise) => host.waitUntil(promise)
509
510
  })
510
511
  return response
511
512
  })
@@ -521,6 +522,12 @@ app.post('/api/zero/pull', async (req) => {
521
522
  })
522
523
  ```
523
524
 
525
+ `scheduleBackgroundTask` is the request host's lifetime hook, such as
526
+ Cloudflare Workers' `ctx.waitUntil`. on-zero passes it one promise that settles
527
+ after every non-barrier mutator task settles, including when a sibling rejects.
528
+ Without a scheduler, `handleMutationRequest` waits for those tasks before it
529
+ returns.
530
+
524
531
  SQLite uses the same handler surface through a separate entrypoint that does
525
532
  not import the PostgreSQL adapter:
526
533
 
@@ -160,3 +160,59 @@ test('connectionDataset mirrors connection state onto the body dataset', async (
160
160
  expect(document.body.dataset.zeroConnected).toBeUndefined()
161
161
  expect(document.body.dataset.zeroReason).toBe('boom')
162
162
  })
163
+
164
+ test('fatal error state resumes with backoff and resets attempts on connected', async () => {
165
+ vi.useFakeTimers()
166
+ try {
167
+ const instance = await mount({}, 'conn-fatal')
168
+
169
+ await act(async () => {
170
+ instance.connection.state.set({
171
+ name: 'error',
172
+ reason: 'Got open event but connect start time is undefined',
173
+ })
174
+ await Promise.resolve()
175
+ })
176
+
177
+ // fatal (non-stale-poke) error: no immediate reconnect, one scheduled at 5s.
178
+ expect(instance.connection.connect).not.toHaveBeenCalled()
179
+ await act(async () => {
180
+ vi.advanceTimersByTime(5_000)
181
+ await Promise.resolve()
182
+ })
183
+ expect(instance.connection.connect).toHaveBeenCalledTimes(1)
184
+
185
+ // the resume fails back to error: next attempt backs off to 10s.
186
+ await act(async () => {
187
+ instance.connection.state.set({ name: 'connecting' })
188
+ await Promise.resolve()
189
+ instance.connection.state.set({ name: 'error', reason: 'still broken' })
190
+ await Promise.resolve()
191
+ })
192
+ await act(async () => {
193
+ vi.advanceTimersByTime(5_000)
194
+ await Promise.resolve()
195
+ })
196
+ expect(instance.connection.connect).toHaveBeenCalledTimes(1)
197
+ await act(async () => {
198
+ vi.advanceTimersByTime(5_000)
199
+ await Promise.resolve()
200
+ })
201
+ expect(instance.connection.connect).toHaveBeenCalledTimes(2)
202
+
203
+ // a successful resume resets the backoff for the next incident.
204
+ await act(async () => {
205
+ instance.connection.state.set({ name: 'connected' })
206
+ await Promise.resolve()
207
+ instance.connection.state.set({ name: 'error', reason: 'new incident' })
208
+ await Promise.resolve()
209
+ })
210
+ await act(async () => {
211
+ vi.advanceTimersByTime(5_000)
212
+ await Promise.resolve()
213
+ })
214
+ expect(instance.connection.connect).toHaveBeenCalledTimes(3)
215
+ } finally {
216
+ vi.useRealTimers()
217
+ }
218
+ })
@@ -844,6 +844,22 @@ export function createZeroClientInternal<
844
844
  // transition, so a stuck error state doesn't retry-storm.
845
845
  const staleReconnectRef = useRef<string | null>(null)
846
846
  const needsAuthRef = useRef(false)
847
+ // fatal 'error' states pause zero permanently: upstream documents that the
848
+ // host application must call connect() to resume. a transient internal
849
+ // client error (e.g. zero 1.7's late-socket-open race after a /pull 500)
850
+ // otherwise kills every subsequent mutation until page reload. resume with
851
+ // bounded exponential backoff; attempts reset on the next 'connected'.
852
+ const fatalResumeRef = useRef<{
853
+ attempts: number
854
+ timer: ReturnType<typeof setTimeout> | null
855
+ }>({ attempts: 0, timer: null })
856
+
857
+ useEffect(() => {
858
+ const resume = fatalResumeRef.current
859
+ return () => {
860
+ if (resume.timer) clearTimeout(resume.timer)
861
+ }
862
+ }, [])
847
863
 
848
864
  useEffect(() => {
849
865
  const name = state.name
@@ -872,6 +888,28 @@ export function createZeroClientInternal<
872
888
  }
873
889
  if (name !== 'error') staleReconnectRef.current = null
874
890
 
891
+ // fatal error: schedule one resume per error entry, backing off per
892
+ // consecutive failure (5s, 10s, 20s, 40s, capped 60s) so a persistent
893
+ // server failure cannot retry-storm, while a one-off client race
894
+ // recovers without a reload. 'closed' stays terminal.
895
+ const fatalResume = fatalResumeRef.current
896
+ if (name === 'error') {
897
+ if (!fatalResume.timer) {
898
+ const delay = Math.min(5_000 * 2 ** fatalResume.attempts, 60_000)
899
+ fatalResume.timer = setTimeout(() => {
900
+ fatalResume.timer = null
901
+ fatalResume.attempts += 1
902
+ void Promise.resolve(zeroInstance.connection?.connect?.()).catch(() => {})
903
+ }, delay)
904
+ }
905
+ } else {
906
+ if (fatalResume.timer) {
907
+ clearTimeout(fatalResume.timer)
908
+ fatalResume.timer = null
909
+ }
910
+ if (name === 'connected') fatalResume.attempts = 0
911
+ }
912
+
875
913
  // needs-auth: the token expired and zero won't auto-resume unless the
876
914
  // auth string changes. refresh it and reconnect in place, once.
877
915
  if (name === 'needs-auth') {