on-zero 0.6.6 → 0.6.8

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/createMutators.cjs +7 -2
  2. package/dist/cjs/helpers/createMutators.native.js +7 -2
  3. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  4. package/dist/cjs/helpers/createMutators.test.cjs +43 -0
  5. package/dist/cjs/helpers/createMutators.test.native.js +46 -0
  6. package/dist/cjs/helpers/createMutators.test.native.js.map +1 -0
  7. package/dist/cjs/httpPull/completeAck.test.cjs +69 -0
  8. package/dist/cjs/httpPull/completeAck.test.native.js +76 -0
  9. package/dist/cjs/httpPull/completeAck.test.native.js.map +1 -0
  10. package/dist/cjs/httpPull/transport.test.cjs +177 -1
  11. package/dist/cjs/httpPull/transport.test.native.js +192 -0
  12. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  13. package/dist/cjs/httpPullTransport.cjs +138 -12
  14. package/dist/cjs/httpPullTransport.native.js +173 -13
  15. package/dist/cjs/httpPullTransport.native.js.map +1 -1
  16. package/dist/esm/helpers/createMutators.mjs +7 -2
  17. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  18. package/dist/esm/helpers/createMutators.native.js +7 -2
  19. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  20. package/dist/esm/helpers/createMutators.test.mjs +44 -0
  21. package/dist/esm/helpers/createMutators.test.mjs.map +1 -0
  22. package/dist/esm/helpers/createMutators.test.native.js +44 -0
  23. package/dist/esm/helpers/createMutators.test.native.js.map +1 -0
  24. package/dist/esm/httpPull/completeAck.test.mjs +70 -0
  25. package/dist/esm/httpPull/completeAck.test.mjs.map +1 -0
  26. package/dist/esm/httpPull/completeAck.test.native.js +74 -0
  27. package/dist/esm/httpPull/completeAck.test.native.js.map +1 -0
  28. package/dist/esm/httpPull/transport.test.mjs +176 -0
  29. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  30. package/dist/esm/httpPull/transport.test.native.js +192 -0
  31. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  32. package/dist/esm/httpPullTransport.mjs +138 -12
  33. package/dist/esm/httpPullTransport.mjs.map +1 -1
  34. package/dist/esm/httpPullTransport.native.js +173 -13
  35. package/dist/esm/httpPullTransport.native.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/helpers/createMutators.test.ts +51 -0
  38. package/src/helpers/createMutators.ts +7 -2
  39. package/src/httpPull/completeAck.test.ts +80 -0
  40. package/src/httpPull/transport.test.ts +134 -0
  41. package/src/httpPullTransport.ts +198 -13
  42. package/types/helpers/createMutators.d.ts.map +1 -1
  43. package/types/helpers/createMutators.test.d.ts +2 -0
  44. package/types/helpers/createMutators.test.d.ts.map +1 -0
  45. package/types/httpPull/completeAck.test.d.ts +2 -0
  46. package/types/httpPull/completeAck.test.d.ts.map +1 -0
  47. package/types/httpPullTransport.d.ts +4 -0
  48. package/types/httpPullTransport.d.ts.map +1 -1
@@ -734,4 +734,196 @@ function defer() {
734
734
  reject
735
735
  };
736
736
  }
737
+ function installWithQueries(fetch, queryTransform) {
738
+ var transport = (0, import_httpPullTransport.installHttpPullTransport)({
739
+ origin: ORIGIN,
740
+ fetch,
741
+ queryTransform
742
+ });
743
+ transports.push(transport);
744
+ return transport;
745
+ }
746
+ (0, import_vitest.describe)("zero-http query-aware extension", function () {
747
+ (0, import_vitest.test)("ships desired queries with pull state (transformed AST) and emits server got-query ack", async function () {
748
+ var requests = [];
749
+ var fetch = import_vitest.vi.fn(async function (input, init) {
750
+ var request = recordRequest(input, init);
751
+ requests.push(request);
752
+ return jsonResponse({
753
+ cookie: 1,
754
+ lastMutationIDChanges: {},
755
+ rowsPatch: [{
756
+ op: "clear"
757
+ }],
758
+ gotQueries: {
759
+ version: 1,
760
+ patch: [{
761
+ op: "put",
762
+ hash: "h1"
763
+ }]
764
+ }
765
+ });
766
+ });
767
+ installWithQueries(fetch, function (name, args) {
768
+ return {
769
+ resolved: name,
770
+ args
771
+ };
772
+ });
773
+ var {
774
+ messages
775
+ } = openRawSocketWithMessages({
776
+ desiredQueriesPatch: [{
777
+ op: "put",
778
+ hash: "h1",
779
+ name: "byOwner",
780
+ args: [{
781
+ ownerId: "u1"
782
+ }]
783
+ }]
784
+ });
785
+ await eventually(function () {
786
+ return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
787
+ });
788
+ (0, import_vitest.expect)(requests[0].body.queries).toEqual({
789
+ version: 1,
790
+ patch: [{
791
+ op: "put",
792
+ hash: "h1",
793
+ ast: {
794
+ resolved: "byOwner",
795
+ args: [{
796
+ ownerId: "u1"
797
+ }]
798
+ }
799
+ }]
800
+ });
801
+ await eventually(function () {
802
+ var poke = messages.find(function (m) {
803
+ return m[0] === "pokePart" && Array.isArray(m[1].gotQueriesPatch);
804
+ });
805
+ (0, import_vitest.expect)(poke === null || poke === void 0 ? void 0 : poke[1].gotQueriesPatch).toEqual([{
806
+ op: "put",
807
+ hash: "h1"
808
+ }]);
809
+ });
810
+ });
811
+ (0, import_vitest.test)("an ad-hoc put with an inline ast ships that ast unchanged", async function () {
812
+ var requests = [];
813
+ var fetch = import_vitest.vi.fn(async function (input, init) {
814
+ requests.push(recordRequest(input, init));
815
+ return jsonResponse({
816
+ cookie: 1,
817
+ unchanged: true
818
+ });
819
+ });
820
+ installWithQueries(fetch, function () {
821
+ throw new Error("transform should not run for an inline ast");
822
+ });
823
+ openRawSocketWithMessages({
824
+ desiredQueriesPatch: [{
825
+ op: "put",
826
+ hash: "h2",
827
+ ast: {
828
+ inline: true
829
+ }
830
+ }]
831
+ });
832
+ await eventually(function () {
833
+ return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
834
+ });
835
+ (0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([{
836
+ op: "put",
837
+ hash: "h2",
838
+ ast: {
839
+ inline: true
840
+ }
841
+ }]);
842
+ });
843
+ (0, import_vitest.test)("reconnect re-ships the desired set", async function () {
844
+ var requests = [];
845
+ var fetch = import_vitest.vi.fn(async function (input, init) {
846
+ requests.push(recordRequest(input, init));
847
+ return jsonResponse({
848
+ cookie: 1,
849
+ unchanged: true
850
+ });
851
+ });
852
+ installWithQueries(fetch, function (name) {
853
+ return {
854
+ resolved: name
855
+ };
856
+ });
857
+ var desired = [{
858
+ op: "put",
859
+ hash: "h1",
860
+ name: "byOwner",
861
+ args: []
862
+ }];
863
+ var first = openRawSocketWithMessages({
864
+ desiredQueriesPatch: desired
865
+ });
866
+ await eventually(function () {
867
+ return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
868
+ });
869
+ first.socket.close();
870
+ var before = requests.length;
871
+ openRawSocketWithMessages({
872
+ desiredQueriesPatch: desired
873
+ });
874
+ await eventually(function () {
875
+ return (0, import_vitest.expect)(requests.length).toBeGreaterThan(before);
876
+ });
877
+ var replay = requests[requests.length - 1].body.queries;
878
+ (0, import_vitest.expect)(replay.patch).toEqual([{
879
+ op: "put",
880
+ hash: "h1",
881
+ ast: {
882
+ resolved: "byOwner"
883
+ }
884
+ }]);
885
+ });
886
+ (0, import_vitest.test)("queryForward ships name+args for the server to resolve (no client transform)", async function () {
887
+ var requests = [];
888
+ var fetch = import_vitest.vi.fn(async function (input, init) {
889
+ requests.push(recordRequest(input, init));
890
+ return jsonResponse({
891
+ cookie: 1,
892
+ unchanged: true
893
+ });
894
+ });
895
+ var transport = (0, import_httpPullTransport.installHttpPullTransport)({
896
+ origin: ORIGIN,
897
+ fetch,
898
+ queryForward: true
899
+ });
900
+ transports.push(transport);
901
+ openRawSocketWithMessages({
902
+ desiredQueriesPatch: [{
903
+ op: "put",
904
+ hash: "h3",
905
+ name: "byOwner",
906
+ args: [{
907
+ ownerId: "u1"
908
+ }],
909
+ // Zero may include a locally evaluable AST on a named query put.
910
+ // queryForward must discard it so the server remains authoritative.
911
+ ast: {
912
+ table: "secret"
913
+ }
914
+ }]
915
+ });
916
+ await eventually(function () {
917
+ return (0, import_vitest.expect)(requests.length).toBeGreaterThan(0);
918
+ });
919
+ (0, import_vitest.expect)(requests[0].body.queries.patch).toEqual([{
920
+ op: "put",
921
+ hash: "h3",
922
+ name: "byOwner",
923
+ args: [{
924
+ ownerId: "u1"
925
+ }]
926
+ }]);
927
+ });
928
+ });
737
929
  //# sourceMappingURL=transport.test.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["import_zero","require","import_vitest","import_fixtureSchema","import_httpPullTransport","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ORIGIN","zeros","transports","storageID","afterEach","_zeros_pop","_transports_pop","length","pop","close","uninstall","vi","useRealTimers","describe","test","requests","cookie","fetch","fn","input","init","request","recordRequest","push","expect","path","toBe","headers","authorization","jsonResponse","lastMutationIDChanges","rowsPatch","op","tableName","id","name","ownerId","projectId","userId","transport","install","zero","createZero","view","query","project","related","materialize","data","waitForComplete","destroy","connections","toEqual","members","body","toBeNull","clientID","any","String","clientGroupID","unchanged","mutation2","mutations","pushResponse","result","eventually","filter","pullsBeforePush","mutation","mutate","create","client","server","find","toMatchObject","pushVersion","requestID","type","args","_requests_at","socket","openRawSocketWithMessages","authToken","send","JSON","stringify","auth","pull","at","firstPushStarted","defer","releaseFirstPush","pushIDs","mutationID","resolve","promise","map","messages","some","message","pushBody","sleep","toHaveLength","responses","deferred","inFlight","maxInFlight","Math","max","response","shift","Error","openRawSocket","findMessage","baseCookie","startsWith","concurrentA","concurrentB","Promise","all","projectView","userView","user","users","pingTimeoutMs","connection","state","current","error","status","emissions","cleanup","addListener","resultType","parse","toBeGreaterThan","flatMap","emission","previous","globalThis","WebSocket","NativeWebSocket","NativeWebSocket2","url","protocols","installHttpPullTransport","origin","toBeInstanceOf","first","ensureHttpPullTransport","second"],"sources":["../../../src/httpPull/transport.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_zero","require","import_vitest","import_fixtureSchema","import_httpPullTransport","_class_call_check","instance","Constructor","TypeError","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ORIGIN","zeros","transports","storageID","afterEach","_zeros_pop","_transports_pop","length","pop","close","uninstall","vi","useRealTimers","describe","test","requests","cookie","fetch","fn","input","init","request","recordRequest","push","expect","path","toBe","headers","authorization","jsonResponse","lastMutationIDChanges","rowsPatch","op","tableName","id","name","ownerId","projectId","userId","transport","install","zero","createZero","view","query","project","related","materialize","data","waitForComplete","destroy","connections","toEqual","members","body","toBeNull","clientID","any","String","clientGroupID","unchanged","mutation2","mutations","pushResponse","result","eventually","filter","pullsBeforePush","mutation","mutate","create","client","server","find","toMatchObject","pushVersion","requestID","type","args","_requests_at","socket","openRawSocketWithMessages","authToken","send","JSON","stringify","auth","pull","at","firstPushStarted","defer","releaseFirstPush","pushIDs","mutationID","resolve","promise","map","messages","some","message","pushBody","sleep","toHaveLength","responses","deferred","inFlight","maxInFlight","Math","max","response","shift","Error","openRawSocket","findMessage","baseCookie","startsWith","concurrentA","concurrentB","Promise","all","projectView","userView","user","users","pingTimeoutMs","connection","state","current","error","status","emissions","cleanup","addListener","resultType","parse","toBeGreaterThan","flatMap","emission","previous","globalThis","WebSocket","NativeWebSocket","NativeWebSocket2","url","protocols","installHttpPullTransport","origin","toBeInstanceOf","first","ensureHttpPullTransport","second","details","onClientStateNotFound","toHaveBeenCalled","options","arguments","Zero","userID","schema","zeroHttpFixtureSchema","kvStore","storageKey","mutators","zeroHttpFixtureMutators","URL","_init_headers","fromEntries","entries","param","toLowerCase","toString","pathname"],"sources":["../../../src/httpPull/transport.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -45,6 +45,10 @@ function installHttpPullTransport(opts) {
45
45
  nativeWebSocket: previousWebSocket,
46
46
  sockets: /* @__PURE__ */new Set(),
47
47
  pullIntervalMs: opts.pullIntervalMs,
48
+ wakeEnabled: opts.wake ?? false,
49
+ queryTransform: opts.queryTransform,
50
+ queryForward: opts.queryForward === true,
51
+ queryAware: opts.queryTransform !== void 0 || opts.queryForward === true,
48
52
  nextPokeID: 0,
49
53
  transientFailureCount: 0
50
54
  };
@@ -124,12 +128,22 @@ class ZeroHttpSocket {
124
128
  wsid;
125
129
  cookie;
126
130
  pendingGotQueriesPatch = [];
131
+ // query-aware extension state: the accumulated un-acked desired-query delta
132
+ // to ship, a client-side query-state version that bumps on each change, and
133
+ // the version/length of the delta the in-flight pull sent (to clear the
134
+ // acked prefix on the server's ack).
135
+ desiredQueryPatch = [];
136
+ queryVersion = 0;
137
+ sentQueryVersion;
138
+ sentQueryPatchLen = 0;
127
139
  pullInFlight;
128
140
  pullAfterCurrent = false;
129
141
  pushChain = Promise.resolve();
130
142
  nextLocalCookieID;
131
143
  openTimer;
132
144
  pullTimer;
145
+ wakeSocket;
146
+ wakeReconnectTimer;
133
147
  addEventListener(type, listener) {
134
148
  if (listener) this.listeners[type]?.add(listener);
135
149
  }
@@ -174,6 +188,7 @@ class ZeroHttpSocket {
174
188
  if (this.readyState === this.CLOSED) return;
175
189
  if (this.openTimer) clearTimeout(this.openTimer);
176
190
  if (this.pullTimer) clearInterval(this.pullTimer);
191
+ this.closeWakeChannel();
177
192
  this.readyState = this.CLOSED;
178
193
  this.state.sockets.delete(this);
179
194
  this.emit("close", {
@@ -185,7 +200,8 @@ class ZeroHttpSocket {
185
200
  pull() {
186
201
  if (this.readyState !== this.OPEN) return Promise.resolve();
187
202
  if (this.pullInFlight) return this.pullInFlight;
188
- this.pullInFlight = this.fetchPull(this.clientGroupID, this.cookie).then(response => {
203
+ this.pullInFlight = this.fetchPull(this.clientGroupID, this.cookie, true).then(response => {
204
+ if (this.state.queryAware) this.applyServerGotQueries(response);
189
205
  if (response.unchanged) {
190
206
  this.emitGotQueriesPatch(response.cookie);
191
207
  return;
@@ -216,11 +232,96 @@ class ZeroHttpSocket {
216
232
  this.run(this.pull());
217
233
  }, this.state.pullIntervalMs);
218
234
  }
235
+ if (this.state.wakeEnabled) this.openWakeChannel();
236
+ }
237
+ // notification-only wake channel: a real WebSocket to <origin>/wake that
238
+ // carries no data. any frame means "pull now", so a wake triggers an
239
+ // immediate (coalesced) pull — push-shaped propagation without waiting on
240
+ // the poll interval. advisory only: if it drops we reconnect, and the
241
+ // interval poll remains the safety net that guarantees convergence.
242
+ openWakeChannel() {
243
+ const Native = this.state.nativeWebSocket;
244
+ if (!Native || this.wakeSocket || this.readyState !== this.OPEN) return;
245
+ const wsBase = this.state.originString.replace(/^http/, "ws");
246
+ const url = `${wsBase}/wake?clientID=${encodeURIComponent(this.clientID)}`;
247
+ let socket;
248
+ try {
249
+ socket = new Native(url);
250
+ } catch {
251
+ return;
252
+ }
253
+ this.wakeSocket = socket;
254
+ const reconnect = () => {
255
+ if (this.wakeSocket !== socket) return;
256
+ this.wakeSocket = void 0;
257
+ if (this.readyState !== this.OPEN || this.wakeReconnectTimer) return;
258
+ this.wakeReconnectTimer = setTimeout(() => {
259
+ this.wakeReconnectTimer = void 0;
260
+ this.openWakeChannel();
261
+ }, 500);
262
+ };
263
+ socket.onmessage = () => this.requestPullAfterCurrent();
264
+ socket.onclose = reconnect;
265
+ socket.onerror = reconnect;
266
+ }
267
+ closeWakeChannel() {
268
+ if (this.wakeReconnectTimer) {
269
+ clearTimeout(this.wakeReconnectTimer);
270
+ this.wakeReconnectTimer = void 0;
271
+ }
272
+ const socket = this.wakeSocket;
273
+ this.wakeSocket = void 0;
274
+ if (socket) {
275
+ try {
276
+ socket.close();
277
+ } catch {}
278
+ }
219
279
  }
220
280
  queueDesiredQueries(body) {
221
281
  const desiredQueriesPatch = body?.desiredQueriesPatch;
222
282
  if (!Array.isArray(desiredQueriesPatch)) return;
223
- this.pendingGotQueriesPatch.push(...gotQueriesPatch(desiredQueriesPatch));
283
+ if (!this.state.queryAware) {
284
+ this.pendingGotQueriesPatch.push(...gotQueriesPatch(desiredQueriesPatch));
285
+ return;
286
+ }
287
+ const transform = this.state.queryTransform;
288
+ for (const op of desiredQueriesPatch) {
289
+ if (op.op === "clear") {
290
+ this.desiredQueryPatch.push({
291
+ op: "clear"
292
+ });
293
+ } else if (op.op === "del") {
294
+ this.desiredQueryPatch.push({
295
+ op: "del",
296
+ hash: op.hash
297
+ });
298
+ } else if (op.op === "put") {
299
+ const inline = op.ast;
300
+ const name = op.name ?? "";
301
+ const args = op.args ?? [];
302
+ if (this.state.queryForward) {
303
+ this.desiredQueryPatch.push({
304
+ op: "put",
305
+ hash: op.hash,
306
+ name,
307
+ args
308
+ });
309
+ } else if (inline !== void 0) {
310
+ this.desiredQueryPatch.push({
311
+ op: "put",
312
+ hash: op.hash,
313
+ ast: inline
314
+ });
315
+ } else if (transform) {
316
+ this.desiredQueryPatch.push({
317
+ op: "put",
318
+ hash: op.hash,
319
+ ast: transform(name, args)
320
+ });
321
+ }
322
+ }
323
+ }
324
+ this.queryVersion++;
224
325
  }
225
326
  async push(body) {
226
327
  const response = await this.postJSON("/push", body);
@@ -242,8 +343,21 @@ class ZeroHttpSocket {
242
343
  }
243
344
  this.run(this.pull());
244
345
  }
346
+ // in query-aware mode the got-query ack is authoritative from the server:
347
+ // take the server's gotQueries.patch as the got patch to emit (replacing
348
+ // local synthesis), and clear the acked prefix of the shipped desired delta
349
+ // once the server acks that version (the ack never leads its row effects —
350
+ // invariant 13 — so the client marks a query got only after its rows land).
351
+ applyServerGotQueries(response) {
352
+ const got = response.gotQueries;
353
+ this.pendingGotQueriesPatch = got ? got.patch : [];
354
+ if (got && this.sentQueryVersion !== void 0 && got.version >= this.sentQueryVersion) {
355
+ this.desiredQueryPatch.splice(0, this.sentQueryPatchLen);
356
+ this.sentQueryVersion = void 0;
357
+ }
358
+ }
245
359
  async answerMutationRecoveryPull(body) {
246
- const response = await this.fetchPull(body.clientGroupID, body.cookie);
360
+ const response = await this.fetchPull(body.clientGroupID, body.cookie, false);
247
361
  const cookie = toWebSocketCookie(response.cookie);
248
362
  this.emitMessage(["pull", {
249
363
  requestID: body.requestID,
@@ -251,12 +365,23 @@ class ZeroHttpSocket {
251
365
  lastMutationIDChanges: response.unchanged ? {} : response.lastMutationIDChanges
252
366
  }]);
253
367
  }
254
- async fetchPull(clientGroupID, cookie) {
255
- return await this.postJSON("/pull", {
368
+ async fetchPull(clientGroupID, cookie, includeQueries) {
369
+ const body = {
256
370
  clientID: this.clientID,
257
371
  clientGroupID,
258
372
  cookie: toHttpCookie(cookie)
259
- });
373
+ };
374
+ if (includeQueries && this.state.queryAware && this.desiredQueryPatch.length > 0) {
375
+ this.sentQueryVersion = this.queryVersion;
376
+ this.sentQueryPatchLen = this.desiredQueryPatch.length;
377
+ body.queries = {
378
+ version: this.queryVersion,
379
+ patch: [...this.desiredQueryPatch]
380
+ };
381
+ } else {
382
+ this.sentQueryVersion = void 0;
383
+ }
384
+ return await this.postJSON("/pull", body);
260
385
  }
261
386
  async postJSON(path, body) {
262
387
  const response = await this.state.fetch(`${this.state.originString}${path}`, {
@@ -303,9 +428,14 @@ class ZeroHttpSocket {
303
428
  this.close(1011, errorMessage(error));
304
429
  }
305
430
  emitPoke(response) {
306
- const nextCookie = toWebSocketCookie(response.cookie);
307
- if (isStaleCookie(this.cookie, response.cookie)) {
431
+ const currentServer = toHttpCookie(this.cookie);
432
+ let nextCookie;
433
+ if (currentServer !== null && response.cookie < currentServer) {
308
434
  throw new Error(`zero-http pull returned stale cookie ${response.cookie} for ${this.cookie}`);
435
+ } else if (currentServer !== null && response.cookie === currentServer) {
436
+ nextCookie = toLocalWebSocketCookie(response.cookie, ++this.nextLocalCookieID);
437
+ } else {
438
+ nextCookie = toWebSocketCookie(response.cookie);
309
439
  }
310
440
  const pokeID = `zero-http-${++this.state.nextPokeID}`;
311
441
  const gotQueries = this.pendingGotQueriesPatch;
@@ -432,10 +562,6 @@ function toWebSocketCookie(cookie) {
432
562
  function toLocalWebSocketCookie(cookie, localID) {
433
563
  return `${String(cookie).padStart(COOKIE_WIDTH, "0")}#${String(localID).padStart(6, "0")}`;
434
564
  }
435
- function isStaleCookie(current, next) {
436
- const currentNumber = toHttpCookie(current);
437
- return currentNumber !== null && next <= currentNumber;
438
- }
439
565
  function errorMessage(error) {
440
566
  return error instanceof Error ? error.message : String(error);
441
567
  }