on-zero 0.6.1 → 0.6.3

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 (48) hide show
  1. package/dist/cjs/helpers/recoverZeroClient.cjs +64 -7
  2. package/dist/cjs/helpers/recoverZeroClient.native.js +72 -9
  3. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  4. package/dist/cjs/helpers/recoverZeroClient.test.cjs +60 -0
  5. package/dist/cjs/helpers/recoverZeroClient.test.native.js +60 -0
  6. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  7. package/dist/cjs/httpPull/transport.test.cjs +17 -0
  8. package/dist/cjs/httpPull/transport.test.native.js +21 -0
  9. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  10. package/dist/cjs/httpPullTransport.cjs +19 -3
  11. package/dist/cjs/httpPullTransport.native.js +19 -3
  12. package/dist/cjs/httpPullTransport.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +1 -0
  14. package/dist/cjs/index.native.js +1 -0
  15. package/dist/cjs/index.native.js.map +1 -1
  16. package/dist/esm/helpers/recoverZeroClient.mjs +64 -8
  17. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
  18. package/dist/esm/helpers/recoverZeroClient.native.js +72 -10
  19. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  20. package/dist/esm/helpers/recoverZeroClient.test.mjs +61 -1
  21. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  22. package/dist/esm/helpers/recoverZeroClient.test.native.js +61 -1
  23. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  24. package/dist/esm/httpPull/transport.test.mjs +17 -0
  25. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  26. package/dist/esm/httpPull/transport.test.native.js +21 -0
  27. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  28. package/dist/esm/httpPullTransport.mjs +19 -3
  29. package/dist/esm/httpPullTransport.mjs.map +1 -1
  30. package/dist/esm/httpPullTransport.native.js +19 -3
  31. package/dist/esm/httpPullTransport.native.js.map +1 -1
  32. package/dist/esm/index.js +2 -2
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/index.mjs +2 -2
  35. package/dist/esm/index.mjs.map +1 -1
  36. package/dist/esm/index.native.js +2 -2
  37. package/dist/esm/index.native.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/helpers/recoverZeroClient.test.ts +66 -0
  40. package/src/helpers/recoverZeroClient.ts +91 -15
  41. package/src/httpPull/transport.test.ts +19 -0
  42. package/src/httpPullTransport.ts +30 -2
  43. package/src/index.ts +3 -0
  44. package/types/helpers/recoverZeroClient.d.ts +9 -1
  45. package/types/helpers/recoverZeroClient.d.ts.map +1 -1
  46. package/types/httpPullTransport.d.ts.map +1 -1
  47. package/types/index.d.ts +1 -1
  48. package/types/index.d.ts.map +1 -1
@@ -137,6 +137,8 @@ function _is_native_reflect_construct() {
137
137
  })();
138
138
  }
139
139
  var COOKIE_WIDTH = 20;
140
+ var TRANSIENT_RECONNECT_BACKOFF_BASE_MS = 1e3;
141
+ var TRANSIENT_RECONNECT_BACKOFF_MAX_MS = 3e4;
140
142
  function installHttpPullTransport(opts) {
141
143
  var _class;
142
144
  var previousWebSocket = globalThis.WebSocket;
@@ -155,7 +157,8 @@ function installHttpPullTransport(opts) {
155
157
  nativeWebSocket: previousWebSocket,
156
158
  sockets: /* @__PURE__ */new Set(),
157
159
  pullIntervalMs: opts.pullIntervalMs,
158
- nextPokeID: 0
160
+ nextPokeID: 0,
161
+ transientFailureCount: 0
159
162
  };
160
163
  var Shim = (_class = function _class2(url, protocols) {
161
164
  "use strict";
@@ -256,7 +259,7 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
256
259
  this.state.sockets.add(this);
257
260
  this.openTimer = setTimeout(function () {
258
261
  return _this.open();
259
- }, 0);
262
+ }, reconnectDelayMs(this.state));
260
263
  }
261
264
  _create_class(ZeroHttpSocket2, [{
262
265
  key: "addEventListener",
@@ -328,7 +331,7 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
328
331
  key: "pull",
329
332
  value: function pull() {
330
333
  var _this = this;
331
- if (this.readyState === this.CLOSED) return Promise.resolve();
334
+ if (this.readyState !== this.OPEN) return Promise.resolve();
332
335
  if (this.pullInFlight) return this.pullInFlight;
333
336
  this.pullInFlight = this.fetchPull(this.clientGroupID, this.cookie).then(function (response) {
334
337
  if (response.unchanged) {
@@ -436,6 +439,7 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
436
439
  if (!response.ok) {
437
440
  throw new ZeroHttpResponseError(path, response.status);
438
441
  }
442
+ resetTransientFailures(this.state);
439
443
  return response.json();
440
444
  }
441
445
  }, {
@@ -468,6 +472,7 @@ var ZeroHttpSocket = /* @__PURE__ */function () {
468
472
  if (this.readyState !== this.CLOSED) this.close(1e3, error.message);
469
473
  return;
470
474
  }
475
+ recordTransientFailure(this.state);
471
476
  this.emit("error", {
472
477
  error
473
478
  });
@@ -690,5 +695,16 @@ function filterMutationResultsToClient(pushResponse, clientID) {
690
695
  function isStaleClientCookieError(error) {
691
696
  return _instanceof(error, ZeroHttpResponseError) && error.path === "/pull" && error.status === 409;
692
697
  }
698
+ function reconnectDelayMs(state) {
699
+ if (state.transientFailureCount === 0) return 0;
700
+ return Math.min(TRANSIENT_RECONNECT_BACKOFF_BASE_MS * Math.pow(2, state.transientFailureCount - 1), TRANSIENT_RECONNECT_BACKOFF_MAX_MS);
701
+ }
702
+ function recordTransientFailure(state) {
703
+ var maxExponent = Math.log2(TRANSIENT_RECONNECT_BACKOFF_MAX_MS / TRANSIENT_RECONNECT_BACKOFF_BASE_MS);
704
+ state.transientFailureCount = Math.min(state.transientFailureCount + 1, Math.ceil(maxExponent) + 1);
705
+ }
706
+ function resetTransientFailures(state) {
707
+ state.transientFailureCount = 0;
708
+ }
693
709
  export { ensureHttpPullTransport, installHttpPullTransport };
694
710
  //# sourceMappingURL=httpPullTransport.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_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","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","_define_property","obj","value","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","_","COOKIE_WIDTH","installHttpPullTransport","opts","_class","previousWebSocket","globalThis","WebSocket","_opts_fetch","fetchImpl","fetch","Error","state","origin","URL","originString","trimTrailingSlash","nativeWebSocket","sockets","Set","pullIntervalMs","nextPokeID","Shim","_class2","url","protocols","shouldIntercept","ZeroHttpSocket","String","pull","Promise","all","map","socket","connections","size","uninstall","transportsByOrigin","ensureHttpPullTransport","existing","transport","ZeroHttpSocket2","_this_cookie","_decoded_initConnectionMessage","CONNECTING","OPEN","CLOSING","CLOSED","readyState","listeners","open","message","close","error","pendingGotQueriesPatch","pullAfterCurrent","pushChain","resolve","connectURL","toHttpURL","_this_connectURL_searchParams_get","clientID","searchParams","_this_connectURL_searchParams_get1","clientGroupID","_this_connectURL_searchParams_get2","wsid","Date","now","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","Number","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","addEventListener","type","listener","_this_listeners_type","removeEventListener","delete","dispatchEvent","event","emit","send","data","JSON","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","clearTimeout","pullTimer","clearInterval","wasClean","pullInFlight","fetchPull","then","response","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","timestamp","setInterval","body","desiredQueriesPatch","Array","isArray","gotQueriesPatch","postJSON","filterMutationResultsToClient","pushResponse","nextPush","toWebSocketCookie","_ref","requestID","lastMutationIDChanges"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_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","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","_define_property","obj","value","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","_","COOKIE_WIDTH","TRANSIENT_RECONNECT_BACKOFF_BASE_MS","TRANSIENT_RECONNECT_BACKOFF_MAX_MS","installHttpPullTransport","opts","_class","previousWebSocket","globalThis","WebSocket","_opts_fetch","fetchImpl","fetch","Error","state","origin","URL","originString","trimTrailingSlash","nativeWebSocket","sockets","Set","pullIntervalMs","nextPokeID","transientFailureCount","Shim","_class2","url","protocols","shouldIntercept","ZeroHttpSocket","String","pull","Promise","all","map","socket","connections","size","uninstall","transportsByOrigin","ensureHttpPullTransport","existing","transport","ZeroHttpSocket2","_this_cookie","_decoded_initConnectionMessage","CONNECTING","OPEN","CLOSING","CLOSED","readyState","listeners","open","message","close","error","pendingGotQueriesPatch","pullAfterCurrent","pushChain","resolve","connectURL","toHttpURL","_this_connectURL_searchParams_get","clientID","searchParams","_this_connectURL_searchParams_get1","clientGroupID","_this_connectURL_searchParams_get2","wsid","Date","now","baseCookie","cookie","suffixMatch","match","nextLocalCookieID","Number","decoded","decodeSecProtocol","authToken","queueDesiredQueries","initConnectionMessage","add","openTimer","setTimeout","reconnectDelayMs","addEventListener","type","listener","_this_listeners_type","removeEventListener","delete","dispatchEvent","event","emit","send","data","JSON","parse","requestPullAfterCurrent","auth","enqueuePush","emitMessage","run","answerMutationRecoveryPull","code","reason","clearTimeout","pullTimer","clearInterval","wasClean","pullInFlight","fetchPull","then","response","unchanged","emitGotQueriesPatch","emitPoke","catch","fail","finally","pullAgain","timestamp","setInterval","body","desiredQueriesPatch","Array","isArray","gotQueriesPatch","postJSON","filterMutationResultsToClient","pushResponse","nextPush","toWebSocketCookie","_ref","requestID","lastMutationIDChanges","toHttpCookie","path","method","headers","authorization","stringify","ok","ZeroHttpResponseError","status","resetTransientFailures"],"sources":["../../src/httpPullTransport.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -20,6 +20,6 @@ export * from "./zql.mjs";
20
20
  import { defineQuery, defineQueries } from "@rocicorp/zero";
21
21
  import { clearZeroClientData } from "./helpers/clearZeroClientData.mjs";
22
22
  import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.mjs";
23
- import { makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.mjs";
24
- export { clearZeroClientData, composeRecoveryLogSink, createZeroClient, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
23
+ import { classifyZeroRecoveryLog, makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.mjs";
24
+ export { classifyZeroRecoveryLog, clearZeroClientData, composeRecoveryLogSink, createZeroClient, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
25
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAIK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,gBAAA,EACAC,sBAAA,QAEK","ignoreList":[]}
1
+ {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAIK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,uBAAA,EACAC,gBAAA,EACAC,sBAAA,QAIK","ignoreList":[]}
@@ -20,6 +20,6 @@ export * from "./zql.mjs";
20
20
  import { defineQuery, defineQueries } from "@rocicorp/zero";
21
21
  import { clearZeroClientData } from "./helpers/clearZeroClientData.mjs";
22
22
  import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.mjs";
23
- import { makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.mjs";
24
- export { clearZeroClientData, composeRecoveryLogSink, createZeroClient, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
23
+ import { classifyZeroRecoveryLog, makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.mjs";
24
+ export { classifyZeroRecoveryLog, clearZeroClientData, composeRecoveryLogSink, createZeroClient, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
25
25
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAIK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,gBAAA,EACAC,sBAAA,QAEK","ignoreList":[]}
1
+ {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SACEC,gBAAA,QAIK;AACP,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,SAAA,QAAkC;AAC3C,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASC,WAAA,EAAaC,aAAA,QAAqB;AAQ3C,SACEC,mBAAA,QAEK;AACP,SACEC,uBAAA,EACAC,yBAAA,QAGK;AACP,SACEC,uBAAA,EACAC,gBAAA,EACAC,sBAAA,QAIK","ignoreList":[]}
@@ -20,6 +20,6 @@ export * from "./zql.native.js";
20
20
  import { defineQuery, defineQueries } from "@rocicorp/zero";
21
21
  import { clearZeroClientData } from "./helpers/clearZeroClientData.native.js";
22
22
  import { showZeroClientErrorOnce, resetShownZeroClientError } from "./helpers/showZeroClientError.native.js";
23
- import { makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.native.js";
24
- export { clearZeroClientData, composeRecoveryLogSink, createZeroClient, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
23
+ import { classifyZeroRecoveryLog, makeZeroRecovery, composeRecoveryLogSink } from "./helpers/recoverZeroClient.native.js";
24
+ export { classifyZeroRecoveryLog, clearZeroClientData, composeRecoveryLogSink, createZeroClient, defineQueries, defineQuery, ensureAuth, getAuth, makeZeroRecovery, resetShownZeroClientError, setAuthData, setEnvironment, setRunner, showZeroClientErrorOnce };
25
25
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SAAAC,gBAAA;AAAA,cACE;AAAA,cAIK;AACP,cAAc;AACd,cAAc;AACd,SAAAC,SAAc;AACd,cAAc;AACd,cAAS;AACT,cAAc;AACd,cAAc;AACd,SAAAC,WAAc,EAAAC,aAAA;AACd,SAAAC,mBAAc;AACd,SAASC,uBAAa,EAAAC,yBAAqB;AAQ3C,SAAAC,gBAAA,EAAAC,sBAAA;AAAA,SACEJ,mBAEK,EACPI,sBAAA,EACER,gBAAA,EACAG,aAAA,EAAAD,WAGK,EACPN,UAAA,EACEC,OAAA,EACAU,gBAAA,EAAAD,yBAEK,E","ignoreList":[]}
1
+ {"version":3,"names":["ensureAuth","getAuth","setAuthData","setEnvironment","createZeroClient","setRunner","defineQuery","defineQueries","clearZeroClientData","showZeroClientErrorOnce","resetShownZeroClientError","classifyZeroRecoveryLog","makeZeroRecovery","composeRecoveryLogSink"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAASA,UAAA,EAAYC,OAAA,QAAe;AACpC,SAASC,WAAA,EAAaC,cAAA,QAAsB;AAE5C,SAAAC,gBAAA;AAAA,cACE;AAAA,cAIK;AACP,cAAc;AACd,cAAc;AACd,SAAAC,SAAc;AACd,cAAc;AACd,cAAS;AACT,cAAc;AACd,cAAc;AACd,SAAAC,WAAc,EAAAC,aAAA;AACd,SAAAC,mBAAc;AACd,SAASC,uBAAa,EAAAC,yBAAqB;AAQ3C,SAAAC,uBAAA,EAAAC,gBAAA,EAAAC,sBAAA;AAAA,SACEF,uBAEK,EACPH,mBAAA,EACEK,sBAAA,EACAT,gBAAA,EAAAG,aAGK,EACPD,WAAA,EACEN,UAAA,EACAC,OAAA,EACAW,gBAAA,EAAAF,yBAIK,E","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -83,7 +83,7 @@
83
83
  }
84
84
  },
85
85
  "dependencies": {
86
- "@take-out/helpers": "0.6.1",
86
+ "@take-out/helpers": "0.6.3",
87
87
  "chokidar": "^4.0.3",
88
88
  "citty": "^0.1.6",
89
89
  "valibot": "^1.1.0"
@@ -4,6 +4,7 @@ import { UpdateNeededReasonType } from '@rocicorp/zero'
4
4
  import { beforeEach, describe, expect, test, vi } from 'vitest'
5
5
 
6
6
  import {
7
+ classifyZeroRecoveryLog,
7
8
  composeRecoveryLogSink,
8
9
  makeZeroRecovery,
9
10
  resetRecoveryStateForTests,
@@ -131,6 +132,38 @@ describe('zero recovery', () => {
131
132
  expect(reload).toHaveBeenCalledTimes(1)
132
133
  })
133
134
 
135
+ test('logSink recovers on native sqlite finalized-statement local-store loss', async () => {
136
+ const { deps, deleteLocalState, reload } = setup()
137
+ const sqliteError = new Error('This statement has been finalized')
138
+ sqliteError.name = 'SqliteError'
139
+ const sink = composeRecoveryLogSink(deps)
140
+ sink.log('error', { bgIntervalProcess: 'Heartbeat' }, 'Error running.', sqliteError)
141
+ await flush()
142
+ expect(deleteLocalState).toHaveBeenCalledTimes(1)
143
+ expect(reload).toHaveBeenCalledTimes(1)
144
+ })
145
+
146
+ test('logSink recovers on repeated store-closed local-store loss', async () => {
147
+ const nowSpy = vi.spyOn(Date, 'now')
148
+ const { deps, deleteLocalState, reload } = setup()
149
+ try {
150
+ const sink = composeRecoveryLogSink(deps)
151
+ nowSpy.mockReturnValue(10_000)
152
+ sink.log('error', undefined, 'Failed to connect.', new Error('Store is closed'))
153
+ await flush()
154
+ expect(deleteLocalState).not.toHaveBeenCalled()
155
+ expect(reload).not.toHaveBeenCalled()
156
+
157
+ nowSpy.mockReturnValue(13_000)
158
+ sink.log('error', undefined, 'Failed to connect.', new Error('Store is closed'))
159
+ await flush()
160
+ expect(deleteLocalState).toHaveBeenCalledTimes(1)
161
+ expect(reload).toHaveBeenCalledTimes(1)
162
+ } finally {
163
+ nowSpy.mockRestore()
164
+ }
165
+ })
166
+
134
167
  test('logSink with no consumer preserves console output and still watches', async () => {
135
168
  const { deps, deleteLocalState, reload } = setup()
136
169
  const infoSpy = vi.spyOn(console, 'info').mockImplementation(() => {})
@@ -170,6 +203,39 @@ describe('zero recovery', () => {
170
203
  expect(reload).not.toHaveBeenCalled()
171
204
  })
172
205
 
206
+ test('recovery log classification is narrow', () => {
207
+ const sqliteError = new Error('This statement has been finalized')
208
+ sqliteError.name = 'SqliteError'
209
+ expect(
210
+ classifyZeroRecoveryLog('error', ['Error running.', sqliteError]),
211
+ ).toMatchObject({
212
+ reason: 'sqlite-statement-finalized',
213
+ dropLocalState: true,
214
+ })
215
+ expect(
216
+ classifyZeroRecoveryLog('error', [
217
+ { name: 'SqliteError', message: 'database is locked' },
218
+ ]),
219
+ ).toBeUndefined()
220
+ expect(
221
+ classifyZeroRecoveryLog('warn', ['Expected IndexedDB not found']),
222
+ ).toBeUndefined()
223
+ expect(classifyZeroRecoveryLog('error', ['Store is closed'], 10_000)).toBeUndefined()
224
+ expect(classifyZeroRecoveryLog('error', ['Store is closed'], 11_000)).toBeUndefined()
225
+ expect(classifyZeroRecoveryLog('error', ['Store is closed'], 14_000)).toMatchObject({
226
+ reason: 'store-closed-repeat',
227
+ dropLocalState: true,
228
+ })
229
+ resetRecoveryStateForTests()
230
+ expect(
231
+ classifyZeroRecoveryLog(
232
+ 'error',
233
+ ['Mutator "send" error on server', 'Store is closed'],
234
+ 20_000,
235
+ ),
236
+ ).toBeUndefined()
237
+ })
238
+
173
239
  // a host with a `window` shim but no real `location` — the sootsim tenant
174
240
  // render-worker, which hides `location` for isolation. the DEFAULT reload
175
241
  // path (no injected `deps.reload`) must still drop stale IDB and not throw
@@ -10,6 +10,23 @@ const RECOVER_GUARD_MS = 60_000
10
10
  // the fatal local-store-loss signature Zero logs when the IndexedDB it expects
11
11
  // is gone (evicted, or deleted by another tab).
12
12
  const LOCAL_STORE_LOST = 'Expected IndexedDB not found'
13
+ const SQLITE_ERROR_NAME = 'SqliteError'
14
+ const SQLITE_STATEMENT_FINALIZED = 'This statement has been finalized'
15
+ const STORE_CLOSED = 'Store is closed'
16
+ const STORE_CLOSED_REPEAT_MIN_MS = 2_000
17
+ const STORE_CLOSED_REPEAT_MAX_MS = 60_000
18
+
19
+ export type ZeroRecoveryLogReason =
20
+ | 'indexeddb-not-found'
21
+ | 'sqlite-statement-finalized'
22
+ | 'store-closed-repeat'
23
+
24
+ export type ZeroRecoveryLogClassification = {
25
+ reason: ZeroRecoveryLogReason
26
+ reasonKey: string
27
+ message: string
28
+ dropLocalState: boolean
29
+ }
13
30
 
14
31
  export type ZeroRecoveryDeps = {
15
32
  // delete THIS client's local persistent state (its own scoped IDB). pass the
@@ -38,15 +55,22 @@ const pendingDeletes: Array<Promise<unknown>> = []
38
55
  function recoveryGuardOpen(reasonKey: string): boolean {
39
56
  try {
40
57
  const key = `on-zero-recover-${reasonKey}`
41
- const last = Number(window.sessionStorage.getItem(key) || 0)
42
- if (Date.now() - last < RECOVER_GUARD_MS) return false
43
- window.sessionStorage.setItem(key, String(Date.now()))
58
+ const rawLast = window.sessionStorage.getItem(key)
59
+ const now = Date.now()
60
+ const last = rawLast ? Number(rawLast) : 0
61
+ if (last > 0 && now - last < RECOVER_GUARD_MS) return false
62
+ window.sessionStorage.setItem(key, String(now))
44
63
  } catch {
45
64
  // no sessionStorage (private mode) — fall back to the in-memory latch.
46
65
  }
47
66
  return true
48
67
  }
49
68
 
69
+ // "Store is closed" is noisy during intentional instance replacement. One log is
70
+ // teardown noise; repeated logs seconds apart mean a live client is stuck using a
71
+ // closed local store and needs fresh local state.
72
+ let lastStoreClosedAtMs = 0
73
+
50
74
  function recover(
51
75
  deps: ZeroRecoveryDeps,
52
76
  reasonKey: string,
@@ -137,6 +161,66 @@ function logToConsole(
137
161
  console[method](...(prefix ? [prefix] : []), ...args)
138
162
  }
139
163
 
164
+ function logArgText(arg: unknown): string {
165
+ if (typeof arg === 'string') return arg
166
+ if (arg instanceof Error) return `${arg.name} ${arg.message} ${arg.stack || ''}`
167
+ if (arg && typeof arg === 'object') {
168
+ const message = 'message' in arg ? (arg as { message?: unknown }).message : undefined
169
+ const name = 'name' in arg ? (arg as { name?: unknown }).name : undefined
170
+ if (typeof message === 'string')
171
+ return `${typeof name === 'string' ? name : ''} ${message}`
172
+ }
173
+ return ''
174
+ }
175
+
176
+ function isBenignStoreClosedLog(text: string): boolean {
177
+ if (/Mutator\s+".*"\s+error on server/i.test(text)) return true
178
+ if (/Mutator\s+".*"\s+app error on client/i.test(text)) return true
179
+ return false
180
+ }
181
+
182
+ export function classifyZeroRecoveryLog(
183
+ level: LogLevel | string,
184
+ args: readonly unknown[],
185
+ nowMs = Date.now(),
186
+ ): ZeroRecoveryLogClassification | undefined {
187
+ if (level !== 'error') return undefined
188
+ const text = args.map(logArgText).join(' ')
189
+ if (text.includes(LOCAL_STORE_LOST)) {
190
+ return {
191
+ reason: 'indexeddb-not-found',
192
+ reasonKey: 'local-store',
193
+ message: 'local store lost',
194
+ dropLocalState: true,
195
+ }
196
+ }
197
+ if (text.includes(SQLITE_ERROR_NAME) && text.includes(SQLITE_STATEMENT_FINALIZED)) {
198
+ return {
199
+ reason: 'sqlite-statement-finalized',
200
+ reasonKey: 'sqlite-statement-finalized',
201
+ message: 'sqlite statement finalized',
202
+ dropLocalState: true,
203
+ }
204
+ }
205
+ if (text.includes(STORE_CLOSED) && !isBenignStoreClosedLog(text)) {
206
+ const prevMs = lastStoreClosedAtMs
207
+ lastStoreClosedAtMs = nowMs
208
+ if (
209
+ prevMs > 0 &&
210
+ nowMs - prevMs >= STORE_CLOSED_REPEAT_MIN_MS &&
211
+ nowMs - prevMs <= STORE_CLOSED_REPEAT_MAX_MS
212
+ ) {
213
+ return {
214
+ reason: 'store-closed-repeat',
215
+ reasonKey: 'store-closed-repeat',
216
+ message: 'local store closed repeatedly',
217
+ dropLocalState: true,
218
+ }
219
+ }
220
+ }
221
+ return undefined
222
+ }
223
+
140
224
  // watch error-level logs for the local-store-lost signature (the one fatal Zero
141
225
  // surfaces only through the log, not the structured callbacks) and trigger the
142
226
  // same recovery. forwards to the consumer sink, or to the console when there is
@@ -151,18 +235,9 @@ export function composeRecoveryLogSink(
151
235
  log(level: LogLevel, context: Context | undefined, ...args: unknown[]): void {
152
236
  if (consumerLogSink) consumerLogSink.log(level, context, ...args)
153
237
  else logToConsole(level, context, ...args)
154
- if (level !== 'error') return
155
- const text = args
156
- .map((arg) =>
157
- typeof arg === 'string'
158
- ? arg
159
- : arg && typeof arg === 'object' && 'message' in arg
160
- ? String((arg as { message: unknown }).message)
161
- : '',
162
- )
163
- .join(' ')
164
- if (text.includes(LOCAL_STORE_LOST)) {
165
- recover(deps, 'local-store', 'local store lost', true)
238
+ const recovery = classifyZeroRecoveryLog(level, args)
239
+ if (recovery) {
240
+ recover(deps, recovery.reasonKey, recovery.message, recovery.dropLocalState)
166
241
  }
167
242
  },
168
243
  // call through the consumer sink so a class-based sink keeps its `this`,
@@ -176,4 +251,5 @@ export function composeRecoveryLogSink(
176
251
  export function resetRecoveryStateForTests() {
177
252
  reloadScheduled = false
178
253
  pendingDeletes.length = 0
254
+ lastStoreClosedAtMs = 0
179
255
  }
@@ -382,6 +382,25 @@ describe('zero-http transport', () => {
382
382
  view.destroy()
383
383
  })
384
384
 
385
+ test('transient pull failures back off reconnect attempts', async () => {
386
+ const requests: RequestRecord[] = []
387
+ const fetch = vi.fn(async (input: RequestInfo | URL, init?: RequestInit) => {
388
+ const request = recordRequest(input, init)
389
+ requests.push(request)
390
+ expect(request.path).toBe('/pull')
391
+ throw new TypeError('Failed to fetch')
392
+ })
393
+ install(fetch)
394
+ createZero()
395
+
396
+ await eventually(() => expect(requests.length).toBe(1))
397
+ await sleep(150)
398
+ expect(requests.length).toBe(1)
399
+ await eventually(() => expect(requests.length).toBe(2), 1_500)
400
+ await sleep(150)
401
+ expect(requests.length).toBe(2)
402
+ })
403
+
385
404
  test('non-origin WebSockets pass through to the native implementation', () => {
386
405
  const previous = globalThis.WebSocket
387
406
  class NativeWebSocket {
@@ -45,9 +45,12 @@ type TransportState = {
45
45
  readonly sockets: Set<ZeroHttpSocket>
46
46
  readonly pullIntervalMs: number | undefined
47
47
  nextPokeID: number
48
+ transientFailureCount: number
48
49
  }
49
50
 
50
51
  const COOKIE_WIDTH = 20
52
+ const TRANSIENT_RECONNECT_BACKOFF_BASE_MS = 1_000
53
+ const TRANSIENT_RECONNECT_BACKOFF_MAX_MS = 30_000
51
54
 
52
55
  export type HttpPullTransport = {
53
56
  pull(): Promise<void>
@@ -83,6 +86,7 @@ export function installHttpPullTransport(
83
86
  sockets: new Set(),
84
87
  pullIntervalMs: opts.pullIntervalMs,
85
88
  nextPokeID: 0,
89
+ transientFailureCount: 0,
86
90
  }
87
91
 
88
92
  const Shim = class {
@@ -190,7 +194,7 @@ class ZeroHttpSocket {
190
194
  this.queueDesiredQueries(decoded.initConnectionMessage?.[1])
191
195
 
192
196
  this.state.sockets.add(this)
193
- this.openTimer = setTimeout(() => this.open(), 0)
197
+ this.openTimer = setTimeout(() => this.open(), reconnectDelayMs(this.state))
194
198
  }
195
199
 
196
200
  addEventListener(type: SocketEventType, listener: SocketListener | null) {
@@ -247,7 +251,7 @@ class ZeroHttpSocket {
247
251
  }
248
252
 
249
253
  pull(): Promise<void> {
250
- if (this.readyState === this.CLOSED) return Promise.resolve()
254
+ if (this.readyState !== this.OPEN) return Promise.resolve()
251
255
  if (this.pullInFlight) return this.pullInFlight
252
256
  this.pullInFlight = this.fetchPull(this.clientGroupID, this.cookie)
253
257
  .then((response) => {
@@ -361,6 +365,7 @@ class ZeroHttpSocket {
361
365
  if (!response.ok) {
362
366
  throw new ZeroHttpResponseError(path, response.status)
363
367
  }
368
+ resetTransientFailures(this.state)
364
369
  return response.json()
365
370
  }
366
371
 
@@ -399,6 +404,7 @@ class ZeroHttpSocket {
399
404
  if (this.readyState !== this.CLOSED) this.close(1000, error.message)
400
405
  return
401
406
  }
407
+ recordTransientFailure(this.state)
402
408
  this.emit('error', { error })
403
409
  this.close(1011, errorMessage(error))
404
410
  }
@@ -618,3 +624,25 @@ function isStaleClientCookieError(error: unknown): error is ZeroHttpResponseErro
618
624
  error.status === 409
619
625
  )
620
626
  }
627
+
628
+ function reconnectDelayMs(state: TransportState) {
629
+ if (state.transientFailureCount === 0) return 0
630
+ return Math.min(
631
+ TRANSIENT_RECONNECT_BACKOFF_BASE_MS * 2 ** (state.transientFailureCount - 1),
632
+ TRANSIENT_RECONNECT_BACKOFF_MAX_MS,
633
+ )
634
+ }
635
+
636
+ function recordTransientFailure(state: TransportState) {
637
+ const maxExponent = Math.log2(
638
+ TRANSIENT_RECONNECT_BACKOFF_MAX_MS / TRANSIENT_RECONNECT_BACKOFF_BASE_MS,
639
+ )
640
+ state.transientFailureCount = Math.min(
641
+ state.transientFailureCount + 1,
642
+ Math.ceil(maxExponent) + 1,
643
+ )
644
+ }
645
+
646
+ function resetTransientFailures(state: TransportState) {
647
+ state.transientFailureCount = 0
648
+ }
package/src/index.ts CHANGED
@@ -42,7 +42,10 @@ export {
42
42
  type ZeroClientErrorInfo,
43
43
  } from './helpers/showZeroClientError'
44
44
  export {
45
+ classifyZeroRecoveryLog,
45
46
  makeZeroRecovery,
46
47
  composeRecoveryLogSink,
48
+ type ZeroRecoveryLogClassification,
49
+ type ZeroRecoveryLogReason,
47
50
  type ZeroRecoveryDeps,
48
51
  } from './helpers/recoverZeroClient'
@@ -1,7 +1,14 @@
1
1
  import type { Emitter } from '@take-out/helpers';
2
2
  import type { ZeroEvent } from '../types';
3
3
  import type { UpdateNeededReason } from '@rocicorp/zero';
4
- import type { LogSink } from '@rocicorp/logger';
4
+ import type { LogLevel, LogSink } from '@rocicorp/logger';
5
+ export type ZeroRecoveryLogReason = 'indexeddb-not-found' | 'sqlite-statement-finalized' | 'store-closed-repeat';
6
+ export type ZeroRecoveryLogClassification = {
7
+ reason: ZeroRecoveryLogReason;
8
+ reasonKey: string;
9
+ message: string;
10
+ dropLocalState: boolean;
11
+ };
5
12
  export type ZeroRecoveryDeps = {
6
13
  deleteLocalState: () => Promise<unknown>;
7
14
  zeroEvents: Emitter<ZeroEvent | null>;
@@ -12,6 +19,7 @@ export declare function makeZeroRecovery(deps: ZeroRecoveryDeps): {
12
19
  onUpdateNeeded(reason: UpdateNeededReason): void;
13
20
  onClientStateNotFound(): void;
14
21
  };
22
+ export declare function classifyZeroRecoveryLog(level: LogLevel | string, args: readonly unknown[], nowMs?: number): ZeroRecoveryLogClassification | undefined;
15
23
  export declare function composeRecoveryLogSink(deps: ZeroRecoveryDeps, consumerLogSink?: LogSink): LogSink;
16
24
  export declare function resetRecoveryStateForTests(): void;
17
25
  //# sourceMappingURL=recoverZeroClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recoverZeroClient.d.ts","sourceRoot":"","sources":["../../src/helpers/recoverZeroClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAqB,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAUlE,MAAM,MAAM,gBAAgB,GAAG;IAI7B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAGrC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAElC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAsED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB;2BAE5B,kBAAkB;;EAsB5C;AAyBD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAwBT;AAID,wBAAgB,0BAA0B,SAGzC"}
1
+ {"version":3,"file":"recoverZeroClient.d.ts","sourceRoot":"","sources":["../../src/helpers/recoverZeroClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAW,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAelE,MAAM,MAAM,qBAAqB,GAC7B,qBAAqB,GACrB,4BAA4B,GAC5B,qBAAqB,CAAA;AAEzB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,qBAAqB,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAI7B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAExC,UAAU,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAGrC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAElC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AA6ED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB;2BAE5B,kBAAkB;;EAsB5C;AAsCD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,GAAG,MAAM,EACxB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,KAAK,SAAa,GACjB,6BAA6B,GAAG,SAAS,CAoC3C;AAOD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAeT;AAID,wBAAgB,0BAA0B,SAIzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"httpPullTransport.d.ts","sourceRoot":"","sources":["../src/httpPullTransport.ts"],"names":[],"mappings":"AAmDA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,SAAS,IAAI,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAGpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,wBAAwB,GAC7B,iBAAiB,CAoDnB;AAOD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,iBAAiB,CAOnB"}
1
+ {"version":3,"file":"httpPullTransport.d.ts","sourceRoot":"","sources":["../src/httpPullTransport.ts"],"names":[],"mappings":"AAsDA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,SAAS,IAAI,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAGpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,wBAAwB,GAC7B,iBAAiB,CAqDnB;AAOD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,wBAAwB,GAC7B,iBAAiB,CAOnB"}
package/types/index.d.ts CHANGED
@@ -21,5 +21,5 @@ export { defineQuery, defineQueries } from '@rocicorp/zero';
21
21
  export type * from './types';
22
22
  export { clearZeroClientData, type ClearZeroClientDataOptions, } from './helpers/clearZeroClientData';
23
23
  export { showZeroClientErrorOnce, resetShownZeroClientError, type ShowZeroClientErrorOptions, type ZeroClientErrorInfo, } from './helpers/showZeroClientError';
24
- export { makeZeroRecovery, composeRecoveryLogSink, type ZeroRecoveryDeps, } from './helpers/recoverZeroClient';
24
+ export { classifyZeroRecoveryLog, makeZeroRecovery, composeRecoveryLogSink, type ZeroRecoveryLogClassification, type ZeroRecoveryLogReason, type ZeroRecoveryDeps, } from './helpers/recoverZeroClient';
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM3D,mBAAmB,SAAS,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AACzD,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAM3D,mBAAmB,SAAS,CAAA;AAE5B,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAA"}