on-zero 0.6.18 → 0.6.19

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 (114) hide show
  1. package/dist/cjs/asyncTasks.native.js.map +1 -1
  2. package/dist/cjs/createZeroClient.cjs +1 -28
  3. package/dist/cjs/createZeroClient.connection.test.cjs +11 -40
  4. package/dist/cjs/createZeroClient.connection.test.native.js +11 -40
  5. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  6. package/dist/cjs/createZeroClient.native.js +1 -29
  7. package/dist/cjs/createZeroClient.native.js.map +1 -1
  8. package/dist/cjs/createZeroDirectServer.cjs +1 -1
  9. package/dist/cjs/createZeroDirectServer.native.js +1 -1
  10. package/dist/cjs/createZeroDirectServer.native.js.map +1 -1
  11. package/dist/cjs/createZeroServer.test.cjs +6 -0
  12. package/dist/cjs/createZeroServer.test.native.js +6 -0
  13. package/dist/cjs/createZeroServer.test.native.js.map +1 -1
  14. package/dist/cjs/createZeroServerCore.cjs +29 -1
  15. package/dist/cjs/createZeroServerCore.native.js +153 -1
  16. package/dist/cjs/createZeroServerCore.native.js.map +1 -1
  17. package/dist/cjs/httpPull/transport.test.cjs +127 -15
  18. package/dist/cjs/httpPull/transport.test.native.js +161 -16
  19. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  20. package/dist/cjs/httpPullTransport.cjs +48 -18
  21. package/dist/cjs/httpPullTransport.native.js +57 -20
  22. package/dist/cjs/httpPullTransport.native.js.map +1 -1
  23. package/dist/cjs/modelRegistry.cjs +7 -4
  24. package/dist/cjs/modelRegistry.native.js +8 -4
  25. package/dist/cjs/modelRegistry.native.js.map +1 -1
  26. package/dist/cjs/mutations.cjs +15 -11
  27. package/dist/cjs/mutations.native.js +17 -11
  28. package/dist/cjs/mutations.native.js.map +1 -1
  29. package/dist/cjs/state.cjs +2 -3
  30. package/dist/cjs/state.native.js +2 -3
  31. package/dist/cjs/state.native.js.map +1 -1
  32. package/dist/cjs/syncHost.cjs +2 -1
  33. package/dist/cjs/syncHost.native.js +2 -1
  34. package/dist/cjs/syncHost.native.js.map +1 -1
  35. package/dist/cjs/usePermission.test.cjs +4 -2
  36. package/dist/cjs/usePermission.test.native.js +4 -2
  37. package/dist/cjs/usePermission.test.native.js.map +1 -1
  38. package/dist/esm/asyncTasks.mjs.map +1 -1
  39. package/dist/esm/asyncTasks.native.js.map +1 -1
  40. package/dist/esm/createZeroClient.connection.test.mjs +11 -40
  41. package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
  42. package/dist/esm/createZeroClient.connection.test.native.js +11 -40
  43. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  44. package/dist/esm/createZeroClient.mjs +2 -29
  45. package/dist/esm/createZeroClient.mjs.map +1 -1
  46. package/dist/esm/createZeroClient.native.js +2 -30
  47. package/dist/esm/createZeroClient.native.js.map +1 -1
  48. package/dist/esm/createZeroDirectServer.mjs +2 -2
  49. package/dist/esm/createZeroDirectServer.mjs.map +1 -1
  50. package/dist/esm/createZeroDirectServer.native.js +2 -2
  51. package/dist/esm/createZeroDirectServer.native.js.map +1 -1
  52. package/dist/esm/createZeroServer.test.mjs +6 -0
  53. package/dist/esm/createZeroServer.test.mjs.map +1 -1
  54. package/dist/esm/createZeroServer.test.native.js +6 -0
  55. package/dist/esm/createZeroServer.test.native.js.map +1 -1
  56. package/dist/esm/createZeroServerCore.mjs +29 -1
  57. package/dist/esm/createZeroServerCore.mjs.map +1 -1
  58. package/dist/esm/createZeroServerCore.native.js +153 -1
  59. package/dist/esm/createZeroServerCore.native.js.map +1 -1
  60. package/dist/esm/httpPull/transport.test.mjs +127 -15
  61. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  62. package/dist/esm/httpPull/transport.test.native.js +161 -16
  63. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  64. package/dist/esm/httpPullTransport.mjs +48 -18
  65. package/dist/esm/httpPullTransport.mjs.map +1 -1
  66. package/dist/esm/httpPullTransport.native.js +57 -20
  67. package/dist/esm/httpPullTransport.native.js.map +1 -1
  68. package/dist/esm/modelRegistry.mjs +7 -4
  69. package/dist/esm/modelRegistry.mjs.map +1 -1
  70. package/dist/esm/modelRegistry.native.js +8 -4
  71. package/dist/esm/modelRegistry.native.js.map +1 -1
  72. package/dist/esm/mutations.mjs +15 -11
  73. package/dist/esm/mutations.mjs.map +1 -1
  74. package/dist/esm/mutations.native.js +17 -11
  75. package/dist/esm/mutations.native.js.map +1 -1
  76. package/dist/esm/state.mjs +2 -3
  77. package/dist/esm/state.mjs.map +1 -1
  78. package/dist/esm/state.native.js +2 -3
  79. package/dist/esm/state.native.js.map +1 -1
  80. package/dist/esm/syncHost.mjs +2 -1
  81. package/dist/esm/syncHost.mjs.map +1 -1
  82. package/dist/esm/syncHost.native.js +2 -1
  83. package/dist/esm/syncHost.native.js.map +1 -1
  84. package/dist/esm/usePermission.test.mjs +6 -4
  85. package/dist/esm/usePermission.test.mjs.map +1 -1
  86. package/dist/esm/usePermission.test.native.js +6 -4
  87. package/dist/esm/usePermission.test.native.js.map +1 -1
  88. package/package.json +2 -2
  89. package/src/asyncTasks.ts +4 -1
  90. package/src/createZeroClient.connection.test.tsx +11 -35
  91. package/src/createZeroClient.tsx +7 -40
  92. package/src/createZeroDirectServer.ts +2 -2
  93. package/src/createZeroServer.test.ts +10 -0
  94. package/src/createZeroServerCore.ts +38 -1
  95. package/src/httpPull/transport.test.ts +143 -16
  96. package/src/httpPullTransport.ts +67 -30
  97. package/src/modelRegistry.ts +9 -4
  98. package/src/mutations.ts +19 -15
  99. package/src/state.ts +3 -3
  100. package/src/syncHost.ts +2 -2
  101. package/src/usePermission.test.ts +9 -3
  102. package/test-fixtures/server-return-types.ts +13 -1
  103. package/types/asyncTasks.d.ts +5 -1
  104. package/types/asyncTasks.d.ts.map +1 -1
  105. package/types/createZeroClient.d.ts.map +1 -1
  106. package/types/createZeroServerCore.d.ts.map +1 -1
  107. package/types/httpPullTransport.d.ts +13 -0
  108. package/types/httpPullTransport.d.ts.map +1 -1
  109. package/types/modelRegistry.d.ts.map +1 -1
  110. package/types/mutations.d.ts.map +1 -1
  111. package/types/state.d.ts +2 -2
  112. package/types/state.d.ts.map +1 -1
  113. package/types/syncHost.d.ts +1 -1
  114. package/types/syncHost.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createBuilder","globalValue","getState","schema","zql","authData","environment","errMessage","getZQL","Error","getSchema","setSchema","_","state","getAuthData","setAuthData","getEnvironment","setEnvironment","env"],"sources":["../../src/state.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAkC;AAC3C,SAASC,WAAA,QAAmB;AAW5B,MAAMC,QAAA,GAAWA,CAAA,KACfD,WAAA,CAAmB,iBAAiB,OAAO;EACzCE,MAAA,EAAQ;EACRC,GAAA,EAAK;EACLC,QAAA,EAAU;EACVC,WAAA,EAAa;AACf,EAAE;AAEJ,MAAMC,UAAA,GAAa;AAEZ,MAAMC,MAAA,GAASA,CAAA,KAAM;EAC1B,MAAM;IAAEJ;EAAI,IAAIF,QAAA,CAAS;EACzB,IAAI,CAACE,GAAA,EAAK,MAAM,IAAIK,KAAA,CAAMF,UAAU;EACpC,OAAOH,GAAA;AACT;AAEO,MAAMM,SAAA,GAAYA,CAAA,KAAM;EAC7B,MAAM;IAAEP;EAAO,IAAID,QAAA,CAAS;EAC5B,IAAI,CAACC,MAAA,EAAQ,MAAM,IAAIM,KAAA,CAAMF,UAAU;EACvC,OAAOJ,MAAA;AACT;AAEO,MAAMQ,SAAA,GAAaC,CAAA,IAAc;EACtC,MAAMC,KAAA,GAAQX,QAAA,CAAS;EACvBW,KAAA,CAAMV,MAAA,GAASS,CAAA;EACfC,KAAA,CAAMT,GAAA,GAAMJ,aAAA,CAAcY,CAAC;AAC7B;AAEO,MAAME,WAAA,GAAcA,CAAA,KAAM;EAC/B,OAAOZ,QAAA,CAAS,EAAEG,QAAA,IAAY;AAChC;AAEO,MAAMU,WAAA,GAAeH,CAAA,IAAgB;EAC1CV,QAAA,CAAS,EAAEG,QAAA,GAAWO,CAAA;AACxB;AAEO,MAAMI,cAAA,GAAiBA,CAAA,KAAMd,QAAA,CAAS,EAAEI,WAAA;AAExC,MAAMW,cAAA,GAAkBC,GAAA,IAA6B;EAC1DhB,QAAA,CAAS,EAAEI,WAAA,GAAcY,GAAA;AAC3B","ignoreList":[]}
1
+ {"version":3,"names":["globalValue","getState","schema","zql","authData","environment","errMessage","getZQL","Error","getSchema","setSchema","_","state","getAuthData","setAuthData","getEnvironment","setEnvironment","env"],"sources":["../../src/state.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,WAAA,QAAmB;AAW5B,MAAMC,QAAA,GAAWA,CAAA,KACfD,WAAA,CAAmB,iBAAiB,OAAO;EACzCE,MAAA,EAAQ;EACRC,GAAA,EAAK;EACLC,QAAA,EAAU;EACVC,WAAA,EAAa;AACf,EAAE;AAEJ,MAAMC,UAAA,GAAa;AAEZ,MAAMC,MAAA,GAASA,CAAA,KAAM;EAC1B,MAAM;IAAEJ;EAAI,IAAIF,QAAA,CAAS;EACzB,IAAI,CAACE,GAAA,EAAK,MAAM,IAAIK,KAAA,CAAMF,UAAU;EACpC,OAAOH,GAAA;AACT;AAEO,MAAMM,SAAA,GAAYA,CAAA,KAAM;EAC7B,MAAM;IAAEP;EAAO,IAAID,QAAA,CAAS;EAC5B,IAAI,CAACC,MAAA,EAAQ,MAAM,IAAIM,KAAA,CAAMF,UAAU;EACvC,OAAOJ,MAAA;AACT;AAEO,MAAMQ,SAAA,GAAYA,CAAmBC,CAAA,EAAMR,GAAA,KAAwB;EACxE,MAAMS,KAAA,GAAQX,QAAA,CAAS;EACvBW,KAAA,CAAMV,MAAA,GAASS,CAAA;EACfC,KAAA,CAAMT,GAAA,GAAMA,GAAA;AACd;AAEO,MAAMU,WAAA,GAAcA,CAAA,KAAM;EAC/B,OAAOZ,QAAA,CAAS,EAAEG,QAAA,IAAY;AAChC;AAEO,MAAMU,WAAA,GAAeH,CAAA,IAAgB;EAC1CV,QAAA,CAAS,EAAEG,QAAA,GAAWO,CAAA;AACxB;AAEO,MAAMI,cAAA,GAAiBA,CAAA,KAAMd,QAAA,CAAS,EAAEI,WAAA;AAExC,MAAMW,cAAA,GAAkBC,GAAA,IAA6B;EAC1DhB,QAAA,CAAS,EAAEI,WAAA,GAAcY,GAAA;AAC3B","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { createBuilder } from "@rocicorp/zero";
2
1
  import { globalValue } from "@take-out/helpers";
3
2
  var getState = function () {
4
3
  return globalValue("on-zero:state", function () {
@@ -25,10 +24,10 @@ var getSchema = function () {
25
24
  if (!schema) throw new Error(errMessage);
26
25
  return schema;
27
26
  };
28
- var setSchema = function (_) {
27
+ var setSchema = function (_, zql) {
29
28
  var state = getState();
30
29
  state.schema = _;
31
- state.zql = createBuilder(_);
30
+ state.zql = zql;
32
31
  };
33
32
  var getAuthData = function () {
34
33
  return getState().authData || null;
@@ -1 +1 @@
1
- {"version":3,"names":["createBuilder","globalValue","getState","schema","zql","authData","environment","errMessage","getZQL","Error","getSchema","setSchema","_","state","getAuthData","setAuthData"],"sources":["../../src/state.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,QAAkC;AAC3C,SAASC,WAAA,QAAmB;AAW5B,IAAAC,QAAM,YAAAA,CAAA,EACJ;EACE,OAAAD,WAAQ;IACR,OAAK;MACLE,MAAU;MACVC,GAAA,MAAa;MACbC,QAAA;MAEEC,WAAA,EAAa;IAEZ;EACL;AACA;AACA,IAAAC,UAAO;AACT,IAAAC,MAAA,YAAAA,CAAA;EAEO,IAAM;IAAAJ;EAAA,IAAAF,QAAkB;EAC7B,KAAAE,GAAQ,QAAO,IAAIK,KAAA,CAAAF,UAAS;EAC5B,OAAKH,GAAA;AACL;AACF,IAAAM,SAAA,YAAAA,CAAA;EAEO,IAAM;IAAAP;EAAA,IAAaD,QAAc;EACtC,KAAAC,MAAM,QAAQ,IAASM,KAAA,CAAAF,UAAA;EACvB,OAAMJ,MAAA;AACN;AACF,IAAAQ,SAAA,YAAAA,CAAAC,CAAA;EAEO,IAAMC,KAAA,GAAAX,QAAc;EACzBW,KAAA,CAAAV,MAAO,GAAAS,CAAS;EAClBC,KAAA,CAAAT,GAAA,GAAAJ,aAAA,CAAAY,CAAA;AAEO;AACL,IAAAE,WAAW,YAAAA,CAAA,EAAW;EACxB,OAAAZ,QAAA,GAAAG,QAAA;AAEO;AAEA,IAAAU,WAAM,YAAAA,CAAkBH,CAAA;EAC7BV,QAAA,CAAS,EAAEG,QAAA,GAAAO,CAAA;AACb","ignoreList":[]}
1
+ {"version":3,"names":["globalValue","getState","schema","zql","authData","environment","errMessage","getZQL","Error","getSchema","setSchema","_","state","getAuthData","setAuthData"],"sources":["../../src/state.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,WAAA,QAAmB;AAW5B,IAAAC,QAAM,YAAAA,CAAA,EACJ;EACE,OAAAD,WAAQ;IACR,OAAK;MACLE,MAAU;MACVC,GAAA,MAAa;MACbC,QAAA;MAEEC,WAAA,EAAa;IAEZ;EACL;AACA;AACA,IAAAC,UAAO;AACT,IAAAC,MAAA,YAAAA,CAAA;EAEO,IAAM;IAAAJ;EAAA,IAAAF,QAAkB;EAC7B,KAAAE,GAAQ,QAAO,IAAIK,KAAA,CAAAF,UAAS;EAC5B,OAAKH,GAAA;AACL;AACF,IAAAM,SAAA,YAAAA,CAAA;EAEO,IAAM;IAAAP;EAAA,IAA+BD,QAAM;EAChD,KAAAC,MAAM,QAAQ,IAASM,KAAA,CAAAF,UAAA;EACvB,OAAMJ,MAAA;AACN;AACF,IAAAQ,SAAA,YAAAA,CAAAC,CAAA,EAAAR,GAAA;EAEO,IAAMS,KAAA,GAAAX,QAAc;EACzBW,KAAA,CAAAV,MAAO,GAAAS,CAAS;EAClBC,KAAA,CAAAT,GAAA,GAAAA,GAAA;AAEO;AACL,IAAAU,WAAW,YAAAA,CAAA,EAAW;EACxB,OAAAZ,QAAA,GAAAG,QAAA;AAEO;AAEA,IAAAU,WAAM,YAAAA,CAAkBH,CAAA;EAC7BV,QAAA,CAAS,EAAEG,QAAA,GAAAO,CAAA;AACb","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import { asQueryInternals } from "@rocicorp/zero/bindings";
2
+ import { createBuilder } from "@rocicorp/zero";
2
3
  import { createPermissions } from "./createPermissions.mjs";
3
4
  import { createZeroDirectServer, resolveServerQuery } from "./createZeroDirectServer.mjs";
4
5
  import { createSQLiteDatabase, createZeroSQLiteTransaction, defaultLedgerTables, encodeSQLiteValue } from "./sqliteRuntime.mjs";
@@ -19,7 +20,7 @@ function createZeroSyncHostAdapter({
19
20
  transaction,
20
21
  ...options
21
22
  }) {
22
- setSchema(options.schema);
23
+ setSchema(options.schema, createBuilder(options.schema));
23
24
  setEnvironment("server");
24
25
  const permissions = createPermissions({
25
26
  environment: "server",
@@ -1 +1 @@
1
- {"version":3,"names":["asQueryInternals","createPermissions","createZeroDirectServer","resolveServerQuery","createSQLiteDatabase","createZeroSQLiteTransaction","defaultLedgerTables","encodeSQLiteValue","createMutators","runWithAuthScope","runWithQueryContext","setEnvironment","setSchema","MutationApplicationError","Error","constructor","details","message","name","createZeroSyncHostAdapter","encodeValue","mapAuthData","defaultMapAuthData","transaction","options","schema","permissions","environment","adminRoleMode","defaultAllowAdminRole","transactionOptions","mutators","modelName","model","Object","entries","models","mutatorName","keys","mutate","executor","args","context","authData","claims","asyncTaskEntries","modelMutators","enqueueTask","task","opts","push","barrier","can","createServerActions","mutationValidators","mutations","validateMutation","mutation","mutationID","numericMutationID","onZeroTransaction","toSQLiteExecutor","clientGroupID","clientID","upstreamSchema","error","asMutationApplicationError","defer","_zero_cleanupResults","transactionProvider","work","directDatabaseOptions","initializedLedgers","Set","ledgerTables","direct","createDatabase","freeze","resolveQuery","queries","query","validateQuery","ast","server","id","userID","exec","sql","params","metadata","queryAst","format","queryName","value","numeric","Number","isSafeInteger","TypeError","String","applicationError","stack"],"sources":["../../src/syncHost.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["asQueryInternals","createBuilder","createPermissions","createZeroDirectServer","resolveServerQuery","createSQLiteDatabase","createZeroSQLiteTransaction","defaultLedgerTables","encodeSQLiteValue","createMutators","runWithAuthScope","runWithQueryContext","setEnvironment","setSchema","MutationApplicationError","Error","constructor","details","message","name","createZeroSyncHostAdapter","encodeValue","mapAuthData","defaultMapAuthData","transaction","options","schema","permissions","environment","adminRoleMode","defaultAllowAdminRole","transactionOptions","mutators","modelName","model","Object","entries","models","mutatorName","keys","mutate","executor","args","context","authData","claims","asyncTaskEntries","modelMutators","enqueueTask","task","opts","push","barrier","can","createServerActions","mutationValidators","mutations","validateMutation","mutation","mutationID","numericMutationID","onZeroTransaction","toSQLiteExecutor","clientGroupID","clientID","upstreamSchema","error","asMutationApplicationError","defer","_zero_cleanupResults","transactionProvider","work","directDatabaseOptions","initializedLedgers","Set","ledgerTables","direct","createDatabase","freeze","resolveQuery","queries","query","validateQuery","ast","server","id","userID","exec","sql","params","metadata","queryAst","format","queryName","value","numeric","Number","isSafeInteger","TypeError","String","applicationError","stack"],"sources":["../../src/syncHost.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import { asQueryInternals } from "@rocicorp/zero/bindings";
2
+ import { createBuilder } from "@rocicorp/zero";
2
3
  import { createPermissions } from "./createPermissions.native.js";
3
4
  import { createZeroDirectServer, resolveServerQuery } from "./createZeroDirectServer.native.js";
4
5
  import { createSQLiteDatabase, createZeroSQLiteTransaction, defaultLedgerTables, encodeSQLiteValue } from "./sqliteRuntime.native.js";
@@ -151,7 +152,7 @@ function createZeroSyncHostAdapter(param) {
151
152
  transaction,
152
153
  ...options
153
154
  } = param;
154
- setSchema(options.schema);
155
+ setSchema(options.schema, createBuilder(options.schema));
155
156
  setEnvironment("server");
156
157
  var _options_defaultAllowAdminRole;
157
158
  var permissions = createPermissions({
@@ -1 +1 @@
1
- {"version":3,"names":["asQueryInternals","createPermissions","createZeroDirectServer","resolveServerQuery","createSQLiteDatabase","createZeroSQLiteTransaction","defaultLedgerTables","encodeSQLiteValue","createMutators","runWithAuthScope","runWithQueryContext","setEnvironment","setSchema","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper","result","Boolean","valueOf","_","MutationApplicationError","Error1","MutationApplicationError2","details","message","length","name","Error","createZeroSyncHostAdapter","param","encodeValue","mapAuthData","defaultMapAuthData","transaction","options","schema","_options_defaultAllowAdminRole","permissions","environment","adminRoleMode","defaultAllowAdminRole","transactionOptions","mutators","_iteratorNormalCompletion","_didIteratorError","_iteratorError"],"sources":["../../src/syncHost.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["asQueryInternals","createBuilder","createPermissions","createZeroDirectServer","resolveServerQuery","createSQLiteDatabase","createZeroSQLiteTransaction","defaultLedgerTables","encodeSQLiteValue","createMutators","runWithAuthScope","runWithQueryContext","setEnvironment","setSchema","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper","result","Boolean","valueOf","_","MutationApplicationError","Error1","MutationApplicationError2","details","message","length","name","Error","createZeroSyncHostAdapter","param","encodeValue","mapAuthData","defaultMapAuthData","transaction","options","schema","_options_defaultAllowAdminRole","permissions","environment","adminRoleMode","defaultAllowAdminRole","transactionOptions","mutators","_iteratorNormalCompletion","_didIteratorError","_iteratorError"],"sources":["../../src/syncHost.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { boolean, string, table } from "@rocicorp/zero";
1
+ import { boolean, createBuilder, string, table } from "@rocicorp/zero";
2
2
  import { describe, expect, test } from "vitest";
3
- import { getMutationsPermissions, setMutationsPermissions } from "./modelRegistry.mjs";
3
+ import { getAllMutationsPermissions, getMutationsPermissions, setMutationsPermissions } from "./modelRegistry.mjs";
4
4
  import { registerQuery, getQueryName } from "./queryRegistry.mjs";
5
5
  import { setEnvironment, setSchema } from "./state.mjs";
6
6
  describe("usePermission _uid query identity", () => {
@@ -10,12 +10,13 @@ describe("usePermission _uid query identity", () => {
10
10
  ownerId: string(),
11
11
  active: boolean()
12
12
  }).primaryKey("id");
13
- setSchema({
13
+ const schema = {
14
14
  tables: {
15
15
  testEntity: testTable
16
16
  },
17
17
  version: 1
18
- });
18
+ };
19
+ setSchema(schema, createBuilder(schema));
19
20
  setEnvironment("client");
20
21
  const fn = args => {
21
22
  return {
@@ -71,6 +72,7 @@ describe("usePermission _uid query identity", () => {
71
72
  const perm = getMutationsPermissions("testEntity");
72
73
  expect(perm).toBeDefined();
73
74
  expect(perm).toBe(mockWhere);
75
+ expect(getAllMutationsPermissions().get("testEntity")).toBe(mockWhere);
74
76
  });
75
77
  test("query name registration preserves permission namespace", () => {
76
78
  const fn = () => {};
@@ -1 +1 @@
1
- {"version":3,"names":["boolean","string","table","describe","expect","test","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp","perm","toBeDefined","original","activeProjects","hotReloaded","first","byId","second","toBeUndefined"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["boolean","createBuilder","string","table","describe","expect","test","getAllMutationsPermissions","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","schema","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp","perm","toBeDefined","get","original","activeProjects","hotReloaded","first","byId","second","toBeUndefined"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { boolean, string, table } from "@rocicorp/zero";
1
+ import { boolean, createBuilder, string, table } from "@rocicorp/zero";
2
2
  import { describe, expect, test } from "vitest";
3
- import { getMutationsPermissions, setMutationsPermissions } from "./modelRegistry.native.js";
3
+ import { getAllMutationsPermissions, getMutationsPermissions, setMutationsPermissions } from "./modelRegistry.native.js";
4
4
  import { registerQuery, getQueryName } from "./queryRegistry.native.js";
5
5
  import { setEnvironment, setSchema } from "./state.native.js";
6
6
  describe("usePermission _uid query identity", function () {
@@ -10,12 +10,13 @@ describe("usePermission _uid query identity", function () {
10
10
  ownerId: string(),
11
11
  active: boolean()
12
12
  }).primaryKey("id");
13
- setSchema({
13
+ var schema = {
14
14
  tables: {
15
15
  testEntity: testTable
16
16
  },
17
17
  version: 1
18
- });
18
+ };
19
+ setSchema(schema, createBuilder(schema));
19
20
  setEnvironment("client");
20
21
  var fn = function (args) {
21
22
  return {
@@ -73,6 +74,7 @@ describe("usePermission _uid query identity", function () {
73
74
  var perm = getMutationsPermissions("testEntity");
74
75
  expect(perm).toBeDefined();
75
76
  expect(perm).toBe(mockWhere);
77
+ expect(getAllMutationsPermissions().get("testEntity")).toBe(mockWhere);
76
78
  });
77
79
  test("query name registration preserves permission namespace", function () {
78
80
  var fn = function () {};
@@ -1 +1 @@
1
- {"version":3,"names":["boolean","string","table","describe","expect","test","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,MAAA,EAAQC,KAAA,QAAa;AACvC,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAASC,uBAAA,EAAyBC,uBAAA,QAA+B;AACjE,SAASC,aAAA,EAAeC,YAAA,QAAoB;AAC5C,SAASC,cAAA,EAAgBC,SAAA,QAAiB;AAE1CR,QAAA,CAAS,qCAAqC,YAAM;EAUlDE,IAAA,CAAK,kDAAkD,YAAM;IAE3D,IAAAO,SAAM,GAAAV,KAAY,aAAM,EAAYW,OACjC;MACCC,EAAA,EAAIb,MAAA,CAAO;MACXc,OAAA,EAASd,MAAA,CAAO;MAChBe,MAAA,EAAQhB,OAAA,CAAQ;IAClB,CAAC,EACAiB,UAAA,CAAW,IAAI;IAElBN,SAAA,CAAU;MACVO,MAAA;QAIAC,UAAY,EAAAP;MAEV;MACFQ,OAAA;IAEA;IACAV,cAAM,SAAe;IACrB,IAAAW,EAAM,YAAAA,CAAUC,IAAK;MAGrB,OAAO;QACPC,OAAO,EAAAD,IAAQ,CAAAC;MACf;IACD;IAED,IAAKC,OAAA,GAAAH,EAAA;MAGHE,OAAM,WAAa;MACnBE,IAAM;IACN;IAEA,IAAAC,OAAO,GAAOL,EAAA;MACdE,OAAO,WAAW;MAClBE,IAAA,EAAO;IACR;IAED,IAAKE,OAAA,GAAAN,EAAA;MAEHE,OAAM;IACN;IAEAnB,MAAA,CAAOoB,OAAO,CAAAD,OAAK,EAAKK,IAAA;IACzBxB,MAAA,CAAAsB,OAAA,CAAAH,OAAA,EAAAK,IAAA;IAEDxB,MAAK,CAAAuB,OAAA,CAAAJ,OAAA,EAAAK,IAAA;EAEH;EACAvB,IAAA,0DAAsD;IAEtD,IAAAwB,KAAM,GAAAC,IAAO,CAAAC,SAAA;MACbR,OAAO,EAAI,UAAE;MACbE,IAAA,EAAO;IACR;IAED,IAAKO,KAAA,GAAAF,IAAA,CAAAC,SAAA;MACHR,OAAM,EAAK,UAAM;MAACE,IAAA;IAClB;IAEA,IAAAQ,KAAO,GAAAH,IAAA,CAAAC,SAAkB;MAC1BR,OAAA;MAEDE,IAAK;IACH;IAA4CrB,MAAA,CAAAyB,KAAA,EAAAK,GAAA,CAAAN,IAAA,CAAAI,KAAA;IAC5C5B,MAAM,CAAAyB,KAAA,EAAAK,GAAA,CAAAN,IAAc,CAAAK,KAAA,CAAS;IAAkB7B,MAAA,CAAA4B,KAAA,EAAAE,GAAA,CAAAN,IAAA,CAAAK,KAAA;EAE/C;EAEA5B,IAAA,2CAAuC;IACxC,IAAAwB,KAAA,GAAAC,IAAA,CAAAC,SAAA;MAEDR,OAAK;MACHE,IAAM;IAAyB;IAC/B,IAAAO,KAAM,GAAAF,IAAS,CAAAC,SAAS;MAAQR,OAAA;MAChCE,IAAM;IAA+B;IAErCrB,MAAA,CAAAyB,KAAA,EAAcD,IAAA,CAAAI,KAAO;EACrB;EAEA3B,IAAA,iDAAgD;IACjD,IAAA8B,SAAA,YAAAA,CAAAC,EAAA,EAAAC,IAAA;MACF,OAAAD,EAAA,CAAAE,GAAA,aAAAD,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAvB,EAAA","ignoreList":[]}
1
+ {"version":3,"names":["boolean","createBuilder","string","table","describe","expect","test","getAllMutationsPermissions","getMutationsPermissions","setMutationsPermissions","registerQuery","getQueryName","setEnvironment","setSchema","testTable","columns","id","ownerId","active","primaryKey","schema","tables","testEntity","version","fn","args","objOrId","result1","_uid","result2","result3","toBe","args1","JSON","stringify","args2","args3","not","mockWhere","eb","auth","cmp","perm","toBeDefined"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,aAAA,EAAeC,MAAA,EAAQC,KAAA,QAAa;AACtD,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAAAC,0BAAA,EAAAC,uBAAA,EAAAC,uBAAA;AAAA,SACEC,aAAA,EAAAC,YAAA;AAAA,SACAC,cAAA,EAAAC,SAAA;AAAAT,QACA;EAAAE,IAAA,CACK;IACP,IAAAQ,SAAS,GAAAX,KAAe,eAAAY,OAAoB;MAC5CC,EAAA,EAASd,MAAA;MAETe,OAAS,EAAAf,MAAA;MAUPgB,MAAK,EAAAlB,OAAA;IAEH,GAAAmB,UAAM,KAAY;IACP,IACPC,MAAI,GAAO;MACXC,MAAA;QACAC,UAAQ,EAAAR;MACT,CACA;MAEHS,OAAM;IACN;IACAV,SAAA,CAAAO,MAAe,EAAAnB,aAAQ,CAAAmB,MAAA;IAIvBR,cAAY,SAAmE;IAE7E,IAAAY,EAAA,GAAO,SAAAA,CAAEC,IAAS;MACpB;QAEAC,OAAM,EAAAD,IAAU,CAAAC;MAChB;IACA;IAGA,IAAAC,OAAO,GAAAH,EAAQ;MACfE,OAAO,WAAQ;MACfE,IAAA,EAAO;IACR;IAED,IAAKC,OAAA,GAAAL,EAAA;MAGHE,OAAM,WAAa;MACnBE,IAAM;IACN;IAEA,IAAAE,OAAO,GAAON,EAAA;MACdE,OAAO;IACP;IACDrB,MAAA,CAAAsB,OAAA,CAAAD,OAAA,EAAAK,IAAA;IAED1B,MAAK,CAAAwB,OAAA,CAAAH,OAAA,EAAAK,IAAA;IAEH1B,MAAM,CAAAyB,OAAQ,CAAAJ,OAAK,EAAAK,IAAA,CAAU,SAAE;EAC/B;EAEAzB,IAAA,0DAAwB;IACzB,IAAA0B,KAAA,GAAAC,IAAA,CAAAC,SAAA;MAEDR,OAAK;MAEHE,IAAM;IACN;IAEA,IAAAO,KAAM,GAAAF,IAAO,CAAAC,SAAA;MACbR,OAAO,EAAI,UAAE;MACbE,IAAA,EAAO;IACP;IACD,IAAAQ,KAAA,GAAAH,IAAA,CAAAC,SAAA;MAEDR,OAAK;MACHE,IAAM;IAAY;IAClBvB,MAAA,CAAA2B,KAAA,EAAcK,GAAA,CAAIN,IAAA,CAAAI,KAAA;IAElB9B,MAAA,CAAO2B,KAAA,EAAAK,GAAA,CAAAN,IAAe,CAACK,KAAE;IAC1B/B,MAAA,CAAA8B,KAAA,EAAAE,GAAA,CAAAN,IAAA,CAAAK,KAAA;EAED;EACE9B,IAAA,2CAA2C;IAAC,IAAA0B,KAAA,GAAAC,IAAA,CAAAC,SAAA;MAC5CR,OAAM,YAAc;MAA2BE,IAAA;IAE/C;IAEA,IAAAO,KAAO,GAAAF,IAAA,CAAAC,SAAa;MACrBR,OAAA;MAEDE,IAAK;IACH;IAA+BvB,MAAA,CAAA2B,KAAA,EAAAD,IAAA,CAAAI,KAAA;EAC/B;EAA+B7B,IAAC;IAChC,IAAAgC,SAAM,YAAAA,CAAcC,EAAA,EAASC,IAAA;MAAQ,OAAAD,EAAA,CAAAE,GAAA,aAAAD,IAAA,aAAAA,IAAA,uBAAAA,IAAA,CAAAxB,EAAA;IAErC;IACAP,uBAAsB,aAAW,EAAA6B,SAAA;IAEjC,IAAAI,IAAO,GAAAlC,uBAA2B,cAAc;IACjDH,MAAA,CAAAqC,IAAA,EAAAC,WAAA;IACFtC,MAAA,CAAAqC,IAAA,EAAAX,IAAA,CAAAO,SAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.6.18",
3
+ "version": "0.6.19",
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.18",
102
+ "@take-out/helpers": "0.6.19",
103
103
  "chokidar": "^4.0.3",
104
104
  "citty": "^0.1.6",
105
105
  "valibot": "^1.1.0"
package/src/asyncTasks.ts CHANGED
@@ -1,4 +1,7 @@
1
- import type { AsyncTaskEntry } from './types'
1
+ type AsyncTaskEntry = {
2
+ task: () => Promise<void>
3
+ barrier: boolean
4
+ }
2
5
 
3
6
  export type RunAsyncTaskEntriesOptions = {
4
7
  /** Receives the background-task promise. Omit this to await all entries. */
@@ -161,10 +161,14 @@ test('connectionDataset mirrors connection state onto the body dataset', async (
161
161
  expect(document.body.dataset.zeroReason).toBe('boom')
162
162
  })
163
163
 
164
- test('fatal error state resumes with backoff and resets attempts on connected', async () => {
164
+ test('fatal error state stays terminal and reports the reason', async () => {
165
165
  vi.useFakeTimers()
166
166
  try {
167
167
  const instance = await mount({}, 'conn-fatal')
168
+ const events: Array<{ type: string; message?: string }> = []
169
+ const off = client.zeroEvents.listen((event) => {
170
+ if (event) events.push(event)
171
+ })
168
172
 
169
173
  await act(async () => {
170
174
  instance.connection.state.set({
@@ -174,44 +178,16 @@ test('fatal error state resumes with backoff and resets attempts on connected',
174
178
  await Promise.resolve()
175
179
  })
176
180
 
177
- // fatal (non-stale-poke) error: no immediate reconnect, one scheduled at 5s.
178
- expect(instance.connection.connect).not.toHaveBeenCalled()
179
181
  await act(async () => {
180
- vi.advanceTimersByTime(5_000)
182
+ vi.advanceTimersByTime(60_000)
181
183
  await Promise.resolve()
182
184
  })
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()
185
+ expect(instance.connection.connect).not.toHaveBeenCalled()
186
+ expect(events).toContainEqual({
187
+ type: 'error',
188
+ message: 'Got open event but connect start time is undefined',
213
189
  })
214
- expect(instance.connection.connect).toHaveBeenCalledTimes(3)
190
+ off()
215
191
  } finally {
216
192
  vi.useRealTimers()
217
193
  }
@@ -1,4 +1,9 @@
1
- import { defineQueries, defineQuery, Zero as ZeroClient } from '@rocicorp/zero'
1
+ import {
2
+ createBuilder,
3
+ defineQueries,
4
+ defineQuery,
5
+ Zero as ZeroClient,
6
+ } from '@rocicorp/zero'
2
7
  import {
3
8
  useConnectionState,
4
9
  useZero,
@@ -136,7 +141,7 @@ export function createZeroClientInternal<
136
141
  type ZeroInstance = Zero<Schema, ZeroMutators>
137
142
  type TableName = keyof Schema['tables'] & string
138
143
 
139
- setSchema(schema)
144
+ setSchema(schema, createBuilder(schema))
140
145
 
141
146
  // only set environment to 'client' if server hasn't already claimed it
142
147
  // (during SSR, createZeroServer runs first and sets 'server')
@@ -844,22 +849,6 @@ export function createZeroClientInternal<
844
849
  // transition, so a stuck error state doesn't retry-storm.
845
850
  const staleReconnectRef = useRef<string | null>(null)
846
851
  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
- }, [])
863
852
 
864
853
  useEffect(() => {
865
854
  const name = state.name
@@ -888,28 +877,6 @@ export function createZeroClientInternal<
888
877
  }
889
878
  if (name !== 'error') staleReconnectRef.current = null
890
879
 
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
-
913
880
  // needs-auth: the token expired and zero won't auto-resume unless the
914
881
  // auth string changes. refresh it and reconnect in place, once.
915
882
  if (name === 'needs-auth') {
@@ -1,4 +1,4 @@
1
- import { mustGetQuery } from '@rocicorp/zero'
1
+ import { createBuilder, mustGetQuery } from '@rocicorp/zero'
2
2
 
3
3
  import { runAsyncTaskEntries } from './asyncTasks'
4
4
  import { createPermissions } from './createPermissions'
@@ -229,7 +229,7 @@ export function createZeroDirectServerRuntime<
229
229
  permissions: ReturnType<typeof createPermissions<Schema>>
230
230
  server: ZeroDirectServer<Schema, Models>
231
231
  } {
232
- setSchema(schema)
232
+ setSchema(schema, createBuilder(schema))
233
233
  setEnvironment('server')
234
234
 
235
235
  const permissions = createPermissions<Schema>({
@@ -97,6 +97,7 @@ describe('createZeroServer mutation recovery', () => {
97
97
  test('discards async tasks from a rolled-back PostgreSQL mutation', async () => {
98
98
  const pg = new FakePgClient()
99
99
  let effectRuns = 0
100
+ const consoleWarn = vi.spyOn(console, 'warn').mockImplementation(() => {})
100
101
  const zeroServer = createZeroServer({
101
102
  schema: zeroHttpFixtureSchema,
102
103
  models: {
@@ -127,6 +128,12 @@ describe('createZeroServer mutation recovery', () => {
127
128
  })
128
129
  expect(result.asyncTasks).toEqual([])
129
130
  expect(effectRuns).toBe(0)
131
+ expect(consoleWarn).toHaveBeenCalledWith(
132
+ 'PushProcessor',
133
+ expect.stringContaining('Error processing mutation'),
134
+ expect.stringContaining('rejected'),
135
+ )
136
+ consoleWarn.mockRestore()
130
137
  })
131
138
 
132
139
  test('awaits barrier tasks before resolving the push response', async () => {
@@ -321,6 +328,7 @@ describe('createZeroServer mutation recovery', () => {
321
328
 
322
329
  test('persists alreadyProcessed duplicate results for zero-cache recovery rows', async () => {
323
330
  const pg = new FakePgClient()
331
+ const consoleWarn = vi.spyOn(console, 'warn').mockImplementation(() => {})
324
332
  const zeroServer = createZeroServer({
325
333
  schema: zeroHttpFixtureSchema,
326
334
  models: {
@@ -362,6 +370,8 @@ describe('createZeroServer mutation recovery', () => {
362
370
  }),
363
371
  ],
364
372
  ])
373
+ expect(consoleWarn).not.toHaveBeenCalled()
374
+ consoleWarn.mockRestore()
365
375
  })
366
376
 
367
377
  test('persists only alreadyProcessed results in a mixed recovery push', async () => {
@@ -190,7 +190,20 @@ function withTransactionLifecycle(
190
190
  const value = await database.transaction(async (tx, hooks) => {
191
191
  lifecycle.beginAttempt()
192
192
  try {
193
- const result = await callback(tx, hooks)
193
+ const result = await callback(tx, {
194
+ ...hooks,
195
+ async updateClientMutationID() {
196
+ const result = await hooks.updateClientMutationID()
197
+ if (input && input.mutationID < result.lastMutationID) {
198
+ throw new ExpectedDuplicateMutation(
199
+ input.clientID,
200
+ input.mutationID,
201
+ result.lastMutationID,
202
+ )
203
+ }
204
+ return result
205
+ },
206
+ })
194
207
  lifecycle.completeAttempt()
195
208
  return result
196
209
  } catch (error) {
@@ -202,12 +215,36 @@ function withTransactionLifecycle(
202
215
  return value
203
216
  } catch (error) {
204
217
  lifecycle.rollbackTransaction()
218
+ if (error instanceof ExpectedDuplicateMutation) {
219
+ return {
220
+ id: {
221
+ clientID: error.clientID,
222
+ id: error.mutationID,
223
+ },
224
+ result: {
225
+ error: 'alreadyProcessed',
226
+ details: error.message,
227
+ },
228
+ } as never
229
+ }
205
230
  throw error
206
231
  }
207
232
  },
208
233
  }
209
234
  }
210
235
 
236
+ class ExpectedDuplicateMutation extends Error {
237
+ constructor(
238
+ readonly clientID: string,
239
+ readonly mutationID: number,
240
+ expectedMutationID: number | bigint,
241
+ ) {
242
+ super(
243
+ `Ignoring mutation from ${clientID} with ID ${mutationID} as it was already processed. Expected: ${expectedMutationID}`,
244
+ )
245
+ }
246
+ }
247
+
211
248
  async function parseAlreadyProcessed(
212
249
  request: Request,
213
250
  response: unknown,