on-zero 0.6.3 → 0.6.5
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.
- package/dist/cjs/createZeroClient.cjs +111 -12
- package/dist/cjs/createZeroClient.connection.test.cjs +163 -0
- package/dist/cjs/createZeroClient.connection.test.native.js +242 -0
- package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -0
- package/dist/cjs/createZeroClient.native.js +145 -12
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroClient.recovery.test.cjs +52 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js +52 -0
- package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.cjs +140 -14
- package/dist/cjs/helpers/recoverZeroClient.native.js +155 -22
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +181 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +209 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/multi.cjs +13 -0
- package/dist/cjs/multi.native.js +35 -0
- package/dist/cjs/multi.native.js.map +1 -1
- package/dist/cjs/multiInstance.test.cjs +12 -0
- package/dist/cjs/multiInstance.test.native.js +21 -0
- package/dist/cjs/multiInstance.test.native.js.map +1 -1
- package/dist/cjs/multiPartition.test.cjs +42 -0
- package/dist/cjs/multiPartition.test.native.js +51 -0
- package/dist/cjs/multiPartition.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.connection.test.mjs +164 -0
- package/dist/esm/createZeroClient.connection.test.mjs.map +1 -0
- package/dist/esm/createZeroClient.connection.test.native.js +240 -0
- package/dist/esm/createZeroClient.connection.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.mjs +112 -13
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +146 -13
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.mjs +52 -0
- package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
- package/dist/esm/createZeroClient.recovery.test.native.js +52 -0
- package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.mjs +140 -15
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +155 -23
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +182 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +210 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/multi.mjs +13 -1
- package/dist/esm/multi.mjs.map +1 -1
- package/dist/esm/multi.native.js +35 -1
- package/dist/esm/multi.native.js.map +1 -1
- package/dist/esm/multiInstance.test.mjs +12 -0
- package/dist/esm/multiInstance.test.mjs.map +1 -1
- package/dist/esm/multiInstance.test.native.js +21 -0
- package/dist/esm/multiInstance.test.native.js.map +1 -1
- package/dist/esm/multiPartition.test.mjs +43 -0
- package/dist/esm/multiPartition.test.mjs.map +1 -0
- package/dist/esm/multiPartition.test.native.js +49 -0
- package/dist/esm/multiPartition.test.native.js.map +1 -0
- package/lint/ssr-guards.js +164 -0
- package/package.json +2 -2
- package/readme.md +126 -0
- package/src/createZeroClient.connection.test.tsx +162 -0
- package/src/createZeroClient.recovery.test.tsx +68 -0
- package/src/createZeroClient.tsx +188 -13
- package/src/helpers/recoverZeroClient.test.ts +204 -1
- package/src/helpers/recoverZeroClient.ts +263 -42
- package/src/index.ts +3 -0
- package/src/multi.ts +33 -0
- package/src/multiInstance.test.tsx +13 -0
- package/src/multiPartition.test.ts +38 -0
- package/types/createZeroClient.connection.test.d.ts +5 -0
- package/types/createZeroClient.connection.test.d.ts.map +1 -0
- package/types/createZeroClient.d.ts +17 -0
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +4 -4
- package/types/helpers/recoverZeroClient.d.ts +15 -1
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/multi.d.ts +1 -0
- package/types/multi.d.ts.map +1 -1
- package/types/multiPartition.test.d.ts +2 -0
- package/types/multiPartition.test.d.ts.map +1 -0
|
@@ -11,6 +11,7 @@ function _type_of(obj) {
|
|
|
11
11
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
12
12
|
}
|
|
13
13
|
var RECOVER_GUARD_MS = 6e4;
|
|
14
|
+
var RELOAD_LATCH_TIMEOUT_MS = 15e3;
|
|
14
15
|
var LOCAL_STORE_LOST = "Expected IndexedDB not found";
|
|
15
16
|
var SQLITE_ERROR_NAME = "SqliteError";
|
|
16
17
|
var SQLITE_STATEMENT_FINALIZED = "This statement has been finalized";
|
|
@@ -18,26 +19,83 @@ var STORE_CLOSED = "Store is closed";
|
|
|
18
19
|
var STORE_CLOSED_REPEAT_MIN_MS = 2e3;
|
|
19
20
|
var STORE_CLOSED_REPEAT_MAX_MS = 6e4;
|
|
20
21
|
var reloadScheduled = false;
|
|
22
|
+
var reloadInProgress = false;
|
|
23
|
+
var reloadLatchTimer;
|
|
21
24
|
var pendingDeletes = [];
|
|
22
|
-
|
|
25
|
+
var inMemoryGuard = /* @__PURE__ */new Map();
|
|
26
|
+
function defaultGuardStorage() {
|
|
23
27
|
try {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
if (typeof window === "undefined" || !window.sessionStorage) return void 0;
|
|
29
|
+
return window.sessionStorage;
|
|
30
|
+
} catch (e) {
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function recoveryGuardOpen(reasonKey, guardStorage) {
|
|
35
|
+
var key = `on-zero-recover-${reasonKey}`;
|
|
36
|
+
var now = Date.now();
|
|
37
|
+
var _inMemoryGuard_get;
|
|
38
|
+
var memLast = (_inMemoryGuard_get = inMemoryGuard.get(key)) !== null && _inMemoryGuard_get !== void 0 ? _inMemoryGuard_get : 0;
|
|
39
|
+
if (memLast > 0 && now - memLast < RECOVER_GUARD_MS) return false;
|
|
40
|
+
var storage = guardStorage !== null && guardStorage !== void 0 ? guardStorage : defaultGuardStorage();
|
|
41
|
+
if (storage) {
|
|
42
|
+
try {
|
|
43
|
+
var rawLast = storage.getItem(key);
|
|
44
|
+
var last = rawLast ? Number(rawLast) : 0;
|
|
45
|
+
if (last > 0 && now - last < RECOVER_GUARD_MS) return false;
|
|
46
|
+
storage.setItem(key, String(now));
|
|
47
|
+
} catch (e) {}
|
|
48
|
+
}
|
|
49
|
+
inMemoryGuard.set(key, now);
|
|
31
50
|
return true;
|
|
32
51
|
}
|
|
33
52
|
var lastStoreClosedAtMs = 0;
|
|
53
|
+
function armReloadLatchTimeout() {
|
|
54
|
+
if (typeof setTimeout !== "function") return;
|
|
55
|
+
if (reloadLatchTimer) clearTimeout(reloadLatchTimer);
|
|
56
|
+
reloadLatchTimer = setTimeout(function () {
|
|
57
|
+
reloadLatchTimer = void 0;
|
|
58
|
+
reloadScheduled = false;
|
|
59
|
+
}, RELOAD_LATCH_TIMEOUT_MS);
|
|
60
|
+
if (reloadLatchTimer && (typeof reloadLatchTimer === "undefined" ? "undefined" : _type_of(reloadLatchTimer)) === "object" && "unref" in reloadLatchTimer) {
|
|
61
|
+
reloadLatchTimer.unref();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function disarmReloadLatchTimeout() {
|
|
65
|
+
if (reloadLatchTimer) {
|
|
66
|
+
clearTimeout(reloadLatchTimer);
|
|
67
|
+
reloadLatchTimer = void 0;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function performReload(deps) {
|
|
71
|
+
if (reloadInProgress) return Promise.resolve();
|
|
72
|
+
reloadInProgress = true;
|
|
73
|
+
disarmReloadLatchTimeout();
|
|
74
|
+
var _deps_reload;
|
|
75
|
+
var doReload = (_deps_reload = deps.reload) !== null && _deps_reload !== void 0 ? _deps_reload : function () {
|
|
76
|
+
var _globalThis_location_reload, _globalThis_location;
|
|
77
|
+
return (_globalThis_location = globalThis.location) === null || _globalThis_location === void 0 ? void 0 : (_globalThis_location_reload = _globalThis_location.reload) === null || _globalThis_location_reload === void 0 ? void 0 : _globalThis_location_reload.call(_globalThis_location);
|
|
78
|
+
};
|
|
79
|
+
return Promise.resolve().then(function () {
|
|
80
|
+
return Promise.allSettled(pendingDeletes.splice(0).map(function (run) {
|
|
81
|
+
return run();
|
|
82
|
+
}));
|
|
83
|
+
}).then(function () {
|
|
84
|
+
var _deps_beforeReload;
|
|
85
|
+
return (_deps_beforeReload = deps.beforeReload) === null || _deps_beforeReload === void 0 ? void 0 : _deps_beforeReload.call(deps);
|
|
86
|
+
}).catch(function () {}).then(function () {
|
|
87
|
+
doReload();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
34
90
|
function recover(deps, reasonKey, message, dropLocalState) {
|
|
35
91
|
if (typeof window === "undefined") return;
|
|
36
92
|
if (dropLocalState) {
|
|
37
|
-
pendingDeletes.push(
|
|
93
|
+
pendingDeletes.push(function () {
|
|
94
|
+
return Promise.resolve().then(deps.deleteLocalState);
|
|
95
|
+
});
|
|
38
96
|
}
|
|
39
97
|
if (reloadScheduled) return;
|
|
40
|
-
if (!recoveryGuardOpen(reasonKey)) {
|
|
98
|
+
if (!recoveryGuardOpen(reasonKey, deps.guardStorage)) {
|
|
41
99
|
console.error(`[on-zero] ${message} \u2014 already recovered once, not reloading`);
|
|
42
100
|
deps.zeroEvents.emit({
|
|
43
101
|
type: "fatal",
|
|
@@ -46,22 +104,25 @@ function recover(deps, reasonKey, message, dropLocalState) {
|
|
|
46
104
|
return;
|
|
47
105
|
}
|
|
48
106
|
reloadScheduled = true;
|
|
107
|
+
armReloadLatchTimeout();
|
|
49
108
|
console.warn(`[on-zero] ${message} \u2014 recovering`);
|
|
50
109
|
deps.zeroEvents.emit({
|
|
51
110
|
type: "recovering",
|
|
52
111
|
reason: message
|
|
53
112
|
});
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
var _globalThis_location_reload, _globalThis_location;
|
|
57
|
-
return (_globalThis_location = globalThis.location) === null || _globalThis_location === void 0 ? void 0 : (_globalThis_location_reload = _globalThis_location.reload) === null || _globalThis_location_reload === void 0 ? void 0 : _globalThis_location_reload.call(_globalThis_location);
|
|
113
|
+
var runReload = function () {
|
|
114
|
+
return performReload(deps);
|
|
58
115
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
116
|
+
if (deps.scheduleReload) {
|
|
117
|
+
deps.scheduleReload({
|
|
118
|
+
reason: message,
|
|
119
|
+
reasonKey,
|
|
120
|
+
dropLocalState,
|
|
121
|
+
performReload: runReload
|
|
122
|
+
});
|
|
123
|
+
} else {
|
|
124
|
+
void runReload();
|
|
125
|
+
}
|
|
65
126
|
}
|
|
66
127
|
function makeZeroRecovery(deps) {
|
|
67
128
|
return {
|
|
@@ -100,6 +161,58 @@ function isBenignStoreClosedLog(text) {
|
|
|
100
161
|
if (/Mutator\s+".*"\s+app error on client/i.test(text)) return true;
|
|
101
162
|
return false;
|
|
102
163
|
}
|
|
164
|
+
function classifyMutationDesync(text) {
|
|
165
|
+
if (text.includes("sent mutation ID") && text.includes("but expected")) {
|
|
166
|
+
return {
|
|
167
|
+
reason: "mutation-desync",
|
|
168
|
+
reasonKey: "mutation-desync",
|
|
169
|
+
message: "mutation id desync"
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (text.includes("oooMutation") || text.includes("Server reported an out-of-order mutation")) {
|
|
173
|
+
return {
|
|
174
|
+
reason: "mutation-desync",
|
|
175
|
+
reasonKey: "mutation-desync",
|
|
176
|
+
message: "out-of-order mutation"
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
if (text.includes("already processed")) {
|
|
180
|
+
return {
|
|
181
|
+
reason: "mutation-desync",
|
|
182
|
+
reasonKey: "mutation-desync",
|
|
183
|
+
message: "mutation already processed"
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
if (text.includes("InvalidConnectionRequestLastMutationID")) {
|
|
187
|
+
return {
|
|
188
|
+
reason: "mutation-desync",
|
|
189
|
+
reasonKey: "mutation-desync",
|
|
190
|
+
message: "invalid connection last mutation id"
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
if (text.includes("InvalidConnectionRequestBaseCookie")) {
|
|
194
|
+
return {
|
|
195
|
+
reason: "connection-cookie-invalid",
|
|
196
|
+
reasonKey: "connection-cookie-invalid",
|
|
197
|
+
message: "invalid connection base cookie"
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
if (text.includes("ClientNotFound") || text.includes("Client not found")) {
|
|
201
|
+
return {
|
|
202
|
+
reason: "client-not-found",
|
|
203
|
+
reasonKey: "client-not-found",
|
|
204
|
+
message: "client not found"
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if (text.includes("connection userID mismatch")) {
|
|
208
|
+
return {
|
|
209
|
+
reason: "connection-userid-mismatch",
|
|
210
|
+
reasonKey: "connection-userid-mismatch",
|
|
211
|
+
message: "connection user id mismatch"
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
return void 0;
|
|
215
|
+
}
|
|
103
216
|
function classifyZeroRecoveryLog(level, args) {
|
|
104
217
|
var nowMs = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Date.now();
|
|
105
218
|
if (level !== "error") return void 0;
|
|
@@ -120,6 +233,13 @@ function classifyZeroRecoveryLog(level, args) {
|
|
|
120
233
|
dropLocalState: true
|
|
121
234
|
};
|
|
122
235
|
}
|
|
236
|
+
var desync = classifyMutationDesync(text);
|
|
237
|
+
if (desync) {
|
|
238
|
+
return {
|
|
239
|
+
...desync,
|
|
240
|
+
dropLocalState: true
|
|
241
|
+
};
|
|
242
|
+
}
|
|
123
243
|
if (text.includes(STORE_CLOSED) && !isBenignStoreClosedLog(text)) {
|
|
124
244
|
var prevMs = lastStoreClosedAtMs;
|
|
125
245
|
lastStoreClosedAtMs = nowMs;
|
|
@@ -143,9 +263,12 @@ function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
|
143
263
|
}
|
|
144
264
|
if (consumerLogSink) consumerLogSink.log(level, context, ...args);else logToConsole(level, context, ...args);
|
|
145
265
|
var recovery = classifyZeroRecoveryLog(level, args);
|
|
146
|
-
if (recovery)
|
|
147
|
-
|
|
266
|
+
if (!recovery) return;
|
|
267
|
+
if (deps.benignLogFilter) {
|
|
268
|
+
var text = args.map(logArgText).join(" ");
|
|
269
|
+
if (deps.benignLogFilter(text)) return;
|
|
148
270
|
}
|
|
271
|
+
recover(deps, recovery.reasonKey, recovery.message, recovery.dropLocalState);
|
|
149
272
|
},
|
|
150
273
|
// call through the consumer sink so a class-based sink keeps its `this`,
|
|
151
274
|
// rather than handing Zero a detached method reference.
|
|
@@ -154,10 +277,19 @@ function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
|
154
277
|
} : void 0
|
|
155
278
|
};
|
|
156
279
|
}
|
|
280
|
+
function isRecoverableZeroStalePokeMessage(message) {
|
|
281
|
+
return message.includes("Server returned unexpected base cookie during sync") || message.includes("Received cookie") && message.includes("is < than last snapshot cookie") && message.includes("ignoring client view");
|
|
282
|
+
}
|
|
157
283
|
function resetRecoveryStateForTests() {
|
|
158
284
|
reloadScheduled = false;
|
|
285
|
+
reloadInProgress = false;
|
|
286
|
+
if (reloadLatchTimer) {
|
|
287
|
+
clearTimeout(reloadLatchTimer);
|
|
288
|
+
reloadLatchTimer = void 0;
|
|
289
|
+
}
|
|
159
290
|
pendingDeletes.length = 0;
|
|
160
291
|
lastStoreClosedAtMs = 0;
|
|
292
|
+
inMemoryGuard.clear();
|
|
161
293
|
}
|
|
162
|
-
export { classifyZeroRecoveryLog, composeRecoveryLogSink, makeZeroRecovery, resetRecoveryStateForTests };
|
|
294
|
+
export { classifyZeroRecoveryLog, composeRecoveryLogSink, isRecoverableZeroStalePokeMessage, makeZeroRecovery, resetRecoveryStateForTests };
|
|
163
295
|
//# sourceMappingURL=recoverZeroClient.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","RECOVER_GUARD_MS","LOCAL_STORE_LOST","SQLITE_ERROR_NAME","SQLITE_STATEMENT_FINALIZED","STORE_CLOSED","STORE_CLOSED_REPEAT_MIN_MS","STORE_CLOSED_REPEAT_MAX_MS","reloadScheduled","
|
|
1
|
+
{"version":3,"names":["_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","RECOVER_GUARD_MS","RELOAD_LATCH_TIMEOUT_MS","LOCAL_STORE_LOST","SQLITE_ERROR_NAME","SQLITE_STATEMENT_FINALIZED","STORE_CLOSED","STORE_CLOSED_REPEAT_MIN_MS","STORE_CLOSED_REPEAT_MAX_MS","reloadScheduled","reloadInProgress","reloadLatchTimer","pendingDeletes","inMemoryGuard","Map","defaultGuardStorage","window","sessionStorage","e","recoveryGuardOpen","reasonKey","guardStorage","key","now","Date","_inMemoryGuard_get","memLast","get","storage","rawLast","getItem","last","Number","setItem","String","set","lastStoreClosedAtMs","armReloadLatchTimeout","setTimeout","clearTimeout","unref","disarmReloadLatchTimeout","performReload","deps","Promise","resolve","_deps_reload","doReload","reload","_globalThis_location_reload","_globalThis_location","globalThis","location","call","then","allSettled","splice","map","run","_deps_beforeReload","beforeReload","catch","recover","message","dropLocalState","push","deleteLocalState","console","error","zeroEvents","emit","type","reason","warn","runReload","scheduleReload","makeZeroRecovery","onUpdateNeeded","onClientStateNotFound","logToConsole","level","context","_len","arguments","length","args","Array","_key","prefix","Object","entries","param","value","join","method","logArgText","arg","Error","name","stack","isBenignStoreClosedLog","text","test","classifyMutationDesync","includes","classifyZeroRecoveryLog","nowMs","desync","prevMs"],"sources":["../../../src/helpers/recoverZeroClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createEmitter } from "@take-out/helpers";
|
|
2
2
|
import { UpdateNeededReasonType } from "@rocicorp/zero";
|
|
3
3
|
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
4
|
-
import { classifyZeroRecoveryLog, composeRecoveryLogSink, makeZeroRecovery, resetRecoveryStateForTests } from "./recoverZeroClient.mjs";
|
|
4
|
+
import { classifyZeroRecoveryLog, composeRecoveryLogSink, isRecoverableZeroStalePokeMessage, makeZeroRecovery, resetRecoveryStateForTests } from "./recoverZeroClient.mjs";
|
|
5
5
|
let emitterSeq = 0;
|
|
6
6
|
function setup() {
|
|
7
7
|
const events = [];
|
|
@@ -289,5 +289,186 @@ describe("zero recovery", () => {
|
|
|
289
289
|
reason: "client state not found"
|
|
290
290
|
});
|
|
291
291
|
});
|
|
292
|
+
test("scheduleReload defers the reload AND the store delete until performReload runs", async () => {
|
|
293
|
+
const {
|
|
294
|
+
deps,
|
|
295
|
+
deleteLocalState,
|
|
296
|
+
reload
|
|
297
|
+
} = setup();
|
|
298
|
+
let captured;
|
|
299
|
+
deps.scheduleReload = ctx => {
|
|
300
|
+
captured = ctx;
|
|
301
|
+
};
|
|
302
|
+
makeZeroRecovery(deps).onClientStateNotFound();
|
|
303
|
+
await flush();
|
|
304
|
+
expect(reload).not.toHaveBeenCalled();
|
|
305
|
+
expect(deleteLocalState).not.toHaveBeenCalled();
|
|
306
|
+
expect(captured).toMatchObject({
|
|
307
|
+
reasonKey: "client-state-not-found",
|
|
308
|
+
dropLocalState: true
|
|
309
|
+
});
|
|
310
|
+
await captured.performReload();
|
|
311
|
+
await flush();
|
|
312
|
+
expect(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
313
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
314
|
+
});
|
|
315
|
+
test("scheduleReload that reloads directly skips the delete and beforeReload", async () => {
|
|
316
|
+
const {
|
|
317
|
+
deps,
|
|
318
|
+
deleteLocalState,
|
|
319
|
+
reload
|
|
320
|
+
} = setup();
|
|
321
|
+
const nativeReload = vi.fn();
|
|
322
|
+
const beforeReload = vi.fn(async () => {});
|
|
323
|
+
deps.beforeReload = beforeReload;
|
|
324
|
+
deps.scheduleReload = () => {
|
|
325
|
+
nativeReload();
|
|
326
|
+
};
|
|
327
|
+
makeZeroRecovery(deps).onClientStateNotFound();
|
|
328
|
+
await flush();
|
|
329
|
+
expect(nativeReload).toHaveBeenCalledTimes(1);
|
|
330
|
+
expect(deleteLocalState).not.toHaveBeenCalled();
|
|
331
|
+
expect(beforeReload).not.toHaveBeenCalled();
|
|
332
|
+
expect(reload).not.toHaveBeenCalled();
|
|
333
|
+
});
|
|
334
|
+
test("scheduleReload performReload is idempotent (one reload even if called twice)", async () => {
|
|
335
|
+
const {
|
|
336
|
+
deps,
|
|
337
|
+
deleteLocalState,
|
|
338
|
+
reload
|
|
339
|
+
} = setup();
|
|
340
|
+
let captured;
|
|
341
|
+
deps.scheduleReload = ctx => {
|
|
342
|
+
captured = ctx;
|
|
343
|
+
};
|
|
344
|
+
makeZeroRecovery(deps).onClientStateNotFound();
|
|
345
|
+
await flush();
|
|
346
|
+
await captured.performReload();
|
|
347
|
+
await captured.performReload();
|
|
348
|
+
await flush();
|
|
349
|
+
expect(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
350
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
351
|
+
});
|
|
352
|
+
test("scheduleReload deferred PAST the latch timeout still deletes and reloads exactly once", async () => {
|
|
353
|
+
vi.useFakeTimers();
|
|
354
|
+
try {
|
|
355
|
+
const {
|
|
356
|
+
deps,
|
|
357
|
+
deleteLocalState,
|
|
358
|
+
reload
|
|
359
|
+
} = setup();
|
|
360
|
+
let captured;
|
|
361
|
+
deps.scheduleReload = ctx => {
|
|
362
|
+
captured = ctx;
|
|
363
|
+
};
|
|
364
|
+
makeZeroRecovery(deps).onClientStateNotFound();
|
|
365
|
+
expect(captured).toBeDefined();
|
|
366
|
+
await vi.advanceTimersByTimeAsync(2e4);
|
|
367
|
+
expect(deleteLocalState).not.toHaveBeenCalled();
|
|
368
|
+
expect(reload).not.toHaveBeenCalled();
|
|
369
|
+
await captured.performReload();
|
|
370
|
+
expect(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
371
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
372
|
+
} finally {
|
|
373
|
+
vi.useRealTimers();
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
test("a slow beforeReload holds the latch through the timeout window (no double reload)", async () => {
|
|
377
|
+
vi.useFakeTimers();
|
|
378
|
+
try {
|
|
379
|
+
const {
|
|
380
|
+
deps,
|
|
381
|
+
reload
|
|
382
|
+
} = setup();
|
|
383
|
+
let releaseBeforeReload = () => {};
|
|
384
|
+
deps.beforeReload = () => new Promise(resolve => {
|
|
385
|
+
releaseBeforeReload = resolve;
|
|
386
|
+
});
|
|
387
|
+
const recovery = makeZeroRecovery(deps);
|
|
388
|
+
recovery.onClientStateNotFound();
|
|
389
|
+
await vi.advanceTimersByTimeAsync(2e4);
|
|
390
|
+
recovery.onClientStateNotFound();
|
|
391
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
392
|
+
expect(reload).not.toHaveBeenCalled();
|
|
393
|
+
releaseBeforeReload();
|
|
394
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
395
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
396
|
+
} finally {
|
|
397
|
+
vi.useRealTimers();
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
test("injectable guardStorage gives cross-reload loop protection (Hermes has no sessionStorage)", async () => {
|
|
401
|
+
const store = /* @__PURE__ */new Map();
|
|
402
|
+
const {
|
|
403
|
+
deps,
|
|
404
|
+
reload,
|
|
405
|
+
events
|
|
406
|
+
} = setup();
|
|
407
|
+
deps.guardStorage = {
|
|
408
|
+
getItem: key => store.get(key) ?? null,
|
|
409
|
+
setItem: (key, value) => {
|
|
410
|
+
store.set(key, value);
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
const recovery = makeZeroRecovery(deps);
|
|
414
|
+
recovery.onClientStateNotFound();
|
|
415
|
+
await flush();
|
|
416
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
417
|
+
resetRecoveryStateForTests();
|
|
418
|
+
recovery.onClientStateNotFound();
|
|
419
|
+
await flush();
|
|
420
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
421
|
+
expect(events.some(event => event.type === "fatal")).toBe(true);
|
|
422
|
+
});
|
|
423
|
+
test("a guardStorage that throws never crashes recovery (in-memory is the floor)", async () => {
|
|
424
|
+
const {
|
|
425
|
+
deps,
|
|
426
|
+
reload
|
|
427
|
+
} = setup();
|
|
428
|
+
deps.guardStorage = {
|
|
429
|
+
getItem: () => {
|
|
430
|
+
throw new Error("no storage on this platform");
|
|
431
|
+
},
|
|
432
|
+
setItem: () => {
|
|
433
|
+
throw new Error("no storage on this platform");
|
|
434
|
+
}
|
|
435
|
+
};
|
|
436
|
+
makeZeroRecovery(deps).onClientStateNotFound();
|
|
437
|
+
await flush();
|
|
438
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
439
|
+
});
|
|
440
|
+
test("classifier recognizes the mutation / connection desync class", () => {
|
|
441
|
+
const cases = [[["sent mutation ID 5 but expected 4"], "mutation-desync"], [["oooMutation detected"], "mutation-desync"], [["Server reported an out-of-order mutation"], "mutation-desync"], [["Ignoring mutation 3, already processed. Expected: 4"], "mutation-desync"], [["InvalidConnectionRequestLastMutationID"], "mutation-desync"], [["InvalidConnectionRequestBaseCookie"], "connection-cookie-invalid"], [["ClientNotFound: client gone"], "client-not-found"], [["connection userID mismatch"], "connection-userid-mismatch"]];
|
|
442
|
+
for (const [args, reason] of cases) {
|
|
443
|
+
expect(classifyZeroRecoveryLog("error", args)).toMatchObject({
|
|
444
|
+
reason,
|
|
445
|
+
dropLocalState: true
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
expect(classifyZeroRecoveryLog("error", ["consecutive server-ack timeouts"])).toBeUndefined();
|
|
449
|
+
expect(classifyZeroRecoveryLog("error", ["Connection attempt timed out after 10 seconds"])).toBeUndefined();
|
|
450
|
+
expect(classifyZeroRecoveryLog("warn", ["ClientNotFound"])).toBeUndefined();
|
|
451
|
+
});
|
|
452
|
+
test("benignLogFilter suppresses recovery for a matching classified log", async () => {
|
|
453
|
+
const {
|
|
454
|
+
deps,
|
|
455
|
+
deleteLocalState,
|
|
456
|
+
reload
|
|
457
|
+
} = setup();
|
|
458
|
+
deps.benignLogFilter = message => message.includes("ClientNotFound");
|
|
459
|
+
const sink = composeRecoveryLogSink(deps);
|
|
460
|
+
sink.log("error", void 0, "ClientNotFound: gone");
|
|
461
|
+
await flush();
|
|
462
|
+
expect(deleteLocalState).not.toHaveBeenCalled();
|
|
463
|
+
expect(reload).not.toHaveBeenCalled();
|
|
464
|
+
sink.log("error", void 0, "sent mutation ID 5 but expected 4");
|
|
465
|
+
await flush();
|
|
466
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
467
|
+
});
|
|
468
|
+
test("isRecoverableZeroStalePokeMessage matches only the stale-cookie signatures", () => {
|
|
469
|
+
expect(isRecoverableZeroStalePokeMessage("Server returned unexpected base cookie during sync")).toBe(true);
|
|
470
|
+
expect(isRecoverableZeroStalePokeMessage("Received cookie 5 is < than last snapshot cookie 9, ignoring client view")).toBe(true);
|
|
471
|
+
expect(isRecoverableZeroStalePokeMessage("client state not found")).toBe(false);
|
|
472
|
+
});
|
|
292
473
|
});
|
|
293
474
|
//# sourceMappingURL=recoverZeroClient.test.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createEmitter","UpdateNeededReasonType","beforeEach","describe","expect","test","vi","classifyZeroRecoveryLog","composeRecoveryLogSink","makeZeroRecovery","resetRecoveryStateForTests","emitterSeq","setup","events","zeroEvents","listen","event","push","deleteLocalState","fn","Promise","resolve","reload","deps","flush","setTimeout","window","sessionStorage","clear","onUpdateNeeded","type","SchemaVersionNotSupported","toEqual","reason","stringContaining","toHaveBeenCalledTimes","recovery","NewClientGroup","VersionNotSupported","not","toHaveBeenCalled","onClientStateNotFound","a","b","mock","calls","length","toBe","filter","some","consumer","log","sink","sqliteError","Error","name","bgIntervalProcess","nowSpy","spyOn","Date","mockReturnValue","mockRestore","infoSpy","console","mockImplementation","worker","toHaveBeenCalledWith","ClassSink","flushed","toMatchObject","dropLocalState","message","toBeUndefined","originalLocation","globalThis","location","Object","defineProperty","configurable","value","toContainEqual"],"sources":["../../../src/helpers/recoverZeroClient.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createEmitter","UpdateNeededReasonType","beforeEach","describe","expect","test","vi","classifyZeroRecoveryLog","composeRecoveryLogSink","isRecoverableZeroStalePokeMessage","makeZeroRecovery","resetRecoveryStateForTests","emitterSeq","setup","events","zeroEvents","listen","event","push","deleteLocalState","fn","Promise","resolve","reload","deps","flush","setTimeout","window","sessionStorage","clear","onUpdateNeeded","type","SchemaVersionNotSupported","toEqual","reason","stringContaining","toHaveBeenCalledTimes","recovery","NewClientGroup","VersionNotSupported","not","toHaveBeenCalled","onClientStateNotFound","a","b","mock","calls","length","toBe","filter","some","consumer","log","sink","sqliteError","Error","name","bgIntervalProcess","nowSpy","spyOn","Date","mockReturnValue","mockRestore","infoSpy","console","mockImplementation","worker","toHaveBeenCalledWith","ClassSink","flushed","toMatchObject","dropLocalState","message","toBeUndefined","originalLocation","globalThis","location","Object","defineProperty","configurable","value","toContainEqual","captured","scheduleReload","ctx","reasonKey","performReload","nativeReload","beforeReload","useFakeTimers","toBeDefined","advanceTimersByTimeAsync","useRealTimers","releaseBeforeReload","store","Map","guardStorage","getItem","key","get","setItem","set","cases","args","benignLogFilter","includes"],"sources":["../../../src/helpers/recoverZeroClient.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|