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.
- package/dist/cjs/helpers/recoverZeroClient.cjs +64 -7
- package/dist/cjs/helpers/recoverZeroClient.native.js +72 -9
- package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/cjs/helpers/recoverZeroClient.test.cjs +60 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js +60 -0
- package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/cjs/httpPull/transport.test.cjs +17 -0
- package/dist/cjs/httpPull/transport.test.native.js +21 -0
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.cjs +19 -3
- package/dist/cjs/httpPullTransport.native.js +19 -3
- package/dist/cjs/httpPullTransport.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/esm/helpers/recoverZeroClient.mjs +64 -8
- package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.native.js +72 -10
- package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs +61 -1
- package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js +61 -1
- package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
- package/dist/esm/httpPull/transport.test.mjs +17 -0
- package/dist/esm/httpPull/transport.test.mjs.map +1 -1
- package/dist/esm/httpPull/transport.test.native.js +21 -0
- package/dist/esm/httpPull/transport.test.native.js.map +1 -1
- package/dist/esm/httpPullTransport.mjs +19 -3
- package/dist/esm/httpPullTransport.mjs.map +1 -1
- package/dist/esm/httpPullTransport.native.js +19 -3
- package/dist/esm/httpPullTransport.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/package.json +2 -2
- package/src/helpers/recoverZeroClient.test.ts +66 -0
- package/src/helpers/recoverZeroClient.ts +91 -15
- package/src/httpPull/transport.test.ts +19 -0
- package/src/httpPullTransport.ts +30 -2
- package/src/index.ts +3 -0
- package/types/helpers/recoverZeroClient.d.ts +9 -1
- package/types/helpers/recoverZeroClient.d.ts.map +1 -1
- package/types/httpPullTransport.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
|
@@ -22,6 +22,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
22
22
|
}), mod);
|
|
23
23
|
var recoverZeroClient_exports = {};
|
|
24
24
|
__export(recoverZeroClient_exports, {
|
|
25
|
+
classifyZeroRecoveryLog: () => classifyZeroRecoveryLog,
|
|
25
26
|
composeRecoveryLogSink: () => composeRecoveryLogSink,
|
|
26
27
|
makeZeroRecovery: () => makeZeroRecovery,
|
|
27
28
|
resetRecoveryStateForTests: () => resetRecoveryStateForTests
|
|
@@ -29,17 +30,25 @@ __export(recoverZeroClient_exports, {
|
|
|
29
30
|
module.exports = __toCommonJS(recoverZeroClient_exports);
|
|
30
31
|
const RECOVER_GUARD_MS = 6e4;
|
|
31
32
|
const LOCAL_STORE_LOST = "Expected IndexedDB not found";
|
|
33
|
+
const SQLITE_ERROR_NAME = "SqliteError";
|
|
34
|
+
const SQLITE_STATEMENT_FINALIZED = "This statement has been finalized";
|
|
35
|
+
const STORE_CLOSED = "Store is closed";
|
|
36
|
+
const STORE_CLOSED_REPEAT_MIN_MS = 2e3;
|
|
37
|
+
const STORE_CLOSED_REPEAT_MAX_MS = 6e4;
|
|
32
38
|
let reloadScheduled = false;
|
|
33
39
|
const pendingDeletes = [];
|
|
34
40
|
function recoveryGuardOpen(reasonKey) {
|
|
35
41
|
try {
|
|
36
42
|
const key = `on-zero-recover-${reasonKey}`;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
const rawLast = window.sessionStorage.getItem(key);
|
|
44
|
+
const now = Date.now();
|
|
45
|
+
const last = rawLast ? Number(rawLast) : 0;
|
|
46
|
+
if (last > 0 && now - last < RECOVER_GUARD_MS) return false;
|
|
47
|
+
window.sessionStorage.setItem(key, String(now));
|
|
40
48
|
} catch {}
|
|
41
49
|
return true;
|
|
42
50
|
}
|
|
51
|
+
let lastStoreClosedAtMs = 0;
|
|
43
52
|
function recover(deps, reasonKey, message, dropLocalState) {
|
|
44
53
|
if (typeof window === "undefined") return;
|
|
45
54
|
if (dropLocalState) {
|
|
@@ -79,15 +88,62 @@ function logToConsole(level, context, ...args) {
|
|
|
79
88
|
const method = level === "debug" ? "debug" : level;
|
|
80
89
|
console[method](...(prefix ? [prefix] : []), ...args);
|
|
81
90
|
}
|
|
91
|
+
function logArgText(arg) {
|
|
92
|
+
if (typeof arg === "string") return arg;
|
|
93
|
+
if (arg instanceof Error) return `${arg.name} ${arg.message} ${arg.stack || ""}`;
|
|
94
|
+
if (arg && typeof arg === "object") {
|
|
95
|
+
const message = "message" in arg ? arg.message : void 0;
|
|
96
|
+
const name = "name" in arg ? arg.name : void 0;
|
|
97
|
+
if (typeof message === "string") return `${typeof name === "string" ? name : ""} ${message}`;
|
|
98
|
+
}
|
|
99
|
+
return "";
|
|
100
|
+
}
|
|
101
|
+
function isBenignStoreClosedLog(text) {
|
|
102
|
+
if (/Mutator\s+".*"\s+error on server/i.test(text)) return true;
|
|
103
|
+
if (/Mutator\s+".*"\s+app error on client/i.test(text)) return true;
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
function classifyZeroRecoveryLog(level, args, nowMs = Date.now()) {
|
|
107
|
+
if (level !== "error") return void 0;
|
|
108
|
+
const text = args.map(logArgText).join(" ");
|
|
109
|
+
if (text.includes(LOCAL_STORE_LOST)) {
|
|
110
|
+
return {
|
|
111
|
+
reason: "indexeddb-not-found",
|
|
112
|
+
reasonKey: "local-store",
|
|
113
|
+
message: "local store lost",
|
|
114
|
+
dropLocalState: true
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
if (text.includes(SQLITE_ERROR_NAME) && text.includes(SQLITE_STATEMENT_FINALIZED)) {
|
|
118
|
+
return {
|
|
119
|
+
reason: "sqlite-statement-finalized",
|
|
120
|
+
reasonKey: "sqlite-statement-finalized",
|
|
121
|
+
message: "sqlite statement finalized",
|
|
122
|
+
dropLocalState: true
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (text.includes(STORE_CLOSED) && !isBenignStoreClosedLog(text)) {
|
|
126
|
+
const prevMs = lastStoreClosedAtMs;
|
|
127
|
+
lastStoreClosedAtMs = nowMs;
|
|
128
|
+
if (prevMs > 0 && nowMs - prevMs >= STORE_CLOSED_REPEAT_MIN_MS && nowMs - prevMs <= STORE_CLOSED_REPEAT_MAX_MS) {
|
|
129
|
+
return {
|
|
130
|
+
reason: "store-closed-repeat",
|
|
131
|
+
reasonKey: "store-closed-repeat",
|
|
132
|
+
message: "local store closed repeatedly",
|
|
133
|
+
dropLocalState: true
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return void 0;
|
|
138
|
+
}
|
|
82
139
|
function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
83
140
|
const consumerFlush = consumerLogSink?.flush;
|
|
84
141
|
return {
|
|
85
142
|
log(level, context, ...args) {
|
|
86
143
|
if (consumerLogSink) consumerLogSink.log(level, context, ...args);else logToConsole(level, context, ...args);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
recover(deps, "local-store", "local store lost", true);
|
|
144
|
+
const recovery = classifyZeroRecoveryLog(level, args);
|
|
145
|
+
if (recovery) {
|
|
146
|
+
recover(deps, recovery.reasonKey, recovery.message, recovery.dropLocalState);
|
|
91
147
|
}
|
|
92
148
|
},
|
|
93
149
|
// call through the consumer sink so a class-based sink keeps its `this`,
|
|
@@ -98,4 +154,5 @@ function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
|
98
154
|
function resetRecoveryStateForTests() {
|
|
99
155
|
reloadScheduled = false;
|
|
100
156
|
pendingDeletes.length = 0;
|
|
157
|
+
lastStoreClosedAtMs = 0;
|
|
101
158
|
}
|
|
@@ -24,11 +24,19 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
24
24
|
}), mod);
|
|
25
25
|
var recoverZeroClient_exports = {};
|
|
26
26
|
__export(recoverZeroClient_exports, {
|
|
27
|
+
classifyZeroRecoveryLog: () => classifyZeroRecoveryLog,
|
|
27
28
|
composeRecoveryLogSink: () => composeRecoveryLogSink,
|
|
28
29
|
makeZeroRecovery: () => makeZeroRecovery,
|
|
29
30
|
resetRecoveryStateForTests: () => resetRecoveryStateForTests
|
|
30
31
|
});
|
|
31
32
|
module.exports = __toCommonJS(recoverZeroClient_exports);
|
|
33
|
+
function _instanceof(left, right) {
|
|
34
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
35
|
+
return !!right[Symbol.hasInstance](left);
|
|
36
|
+
} else {
|
|
37
|
+
return left instanceof right;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
32
40
|
function _type_of(obj) {
|
|
33
41
|
"@swc/helpers - typeof";
|
|
34
42
|
|
|
@@ -36,17 +44,25 @@ function _type_of(obj) {
|
|
|
36
44
|
}
|
|
37
45
|
var RECOVER_GUARD_MS = 6e4;
|
|
38
46
|
var LOCAL_STORE_LOST = "Expected IndexedDB not found";
|
|
47
|
+
var SQLITE_ERROR_NAME = "SqliteError";
|
|
48
|
+
var SQLITE_STATEMENT_FINALIZED = "This statement has been finalized";
|
|
49
|
+
var STORE_CLOSED = "Store is closed";
|
|
50
|
+
var STORE_CLOSED_REPEAT_MIN_MS = 2e3;
|
|
51
|
+
var STORE_CLOSED_REPEAT_MAX_MS = 6e4;
|
|
39
52
|
var reloadScheduled = false;
|
|
40
53
|
var pendingDeletes = [];
|
|
41
54
|
function recoveryGuardOpen(reasonKey) {
|
|
42
55
|
try {
|
|
43
56
|
var key = `on-zero-recover-${reasonKey}`;
|
|
44
|
-
var
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
var rawLast = window.sessionStorage.getItem(key);
|
|
58
|
+
var now = Date.now();
|
|
59
|
+
var last = rawLast ? Number(rawLast) : 0;
|
|
60
|
+
if (last > 0 && now - last < RECOVER_GUARD_MS) return false;
|
|
61
|
+
window.sessionStorage.setItem(key, String(now));
|
|
47
62
|
} catch (e) {}
|
|
48
63
|
return true;
|
|
49
64
|
}
|
|
65
|
+
var lastStoreClosedAtMs = 0;
|
|
50
66
|
function recover(deps, reasonKey, message, dropLocalState) {
|
|
51
67
|
if (typeof window === "undefined") return;
|
|
52
68
|
if (dropLocalState) {
|
|
@@ -101,6 +117,55 @@ function logToConsole(level, context) {
|
|
|
101
117
|
var method = level === "debug" ? "debug" : level;
|
|
102
118
|
console[method](...(prefix ? [prefix] : []), ...args);
|
|
103
119
|
}
|
|
120
|
+
function logArgText(arg) {
|
|
121
|
+
if (typeof arg === "string") return arg;
|
|
122
|
+
if (_instanceof(arg, Error)) return `${arg.name} ${arg.message} ${arg.stack || ""}`;
|
|
123
|
+
if (arg && (typeof arg === "undefined" ? "undefined" : _type_of(arg)) === "object") {
|
|
124
|
+
var message = "message" in arg ? arg.message : void 0;
|
|
125
|
+
var name = "name" in arg ? arg.name : void 0;
|
|
126
|
+
if (typeof message === "string") return `${typeof name === "string" ? name : ""} ${message}`;
|
|
127
|
+
}
|
|
128
|
+
return "";
|
|
129
|
+
}
|
|
130
|
+
function isBenignStoreClosedLog(text) {
|
|
131
|
+
if (/Mutator\s+".*"\s+error on server/i.test(text)) return true;
|
|
132
|
+
if (/Mutator\s+".*"\s+app error on client/i.test(text)) return true;
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
function classifyZeroRecoveryLog(level, args) {
|
|
136
|
+
var nowMs = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Date.now();
|
|
137
|
+
if (level !== "error") return void 0;
|
|
138
|
+
var text = args.map(logArgText).join(" ");
|
|
139
|
+
if (text.includes(LOCAL_STORE_LOST)) {
|
|
140
|
+
return {
|
|
141
|
+
reason: "indexeddb-not-found",
|
|
142
|
+
reasonKey: "local-store",
|
|
143
|
+
message: "local store lost",
|
|
144
|
+
dropLocalState: true
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (text.includes(SQLITE_ERROR_NAME) && text.includes(SQLITE_STATEMENT_FINALIZED)) {
|
|
148
|
+
return {
|
|
149
|
+
reason: "sqlite-statement-finalized",
|
|
150
|
+
reasonKey: "sqlite-statement-finalized",
|
|
151
|
+
message: "sqlite statement finalized",
|
|
152
|
+
dropLocalState: true
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
if (text.includes(STORE_CLOSED) && !isBenignStoreClosedLog(text)) {
|
|
156
|
+
var prevMs = lastStoreClosedAtMs;
|
|
157
|
+
lastStoreClosedAtMs = nowMs;
|
|
158
|
+
if (prevMs > 0 && nowMs - prevMs >= STORE_CLOSED_REPEAT_MIN_MS && nowMs - prevMs <= STORE_CLOSED_REPEAT_MAX_MS) {
|
|
159
|
+
return {
|
|
160
|
+
reason: "store-closed-repeat",
|
|
161
|
+
reasonKey: "store-closed-repeat",
|
|
162
|
+
message: "local store closed repeatedly",
|
|
163
|
+
dropLocalState: true
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return void 0;
|
|
168
|
+
}
|
|
104
169
|
function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
105
170
|
var consumerFlush = consumerLogSink === null || consumerLogSink === void 0 ? void 0 : consumerLogSink.flush;
|
|
106
171
|
return {
|
|
@@ -109,12 +174,9 @@ function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
|
109
174
|
args[_key - 2] = arguments[_key];
|
|
110
175
|
}
|
|
111
176
|
if (consumerLogSink) consumerLogSink.log(level, context, ...args);else logToConsole(level, context, ...args);
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}).join(" ");
|
|
116
|
-
if (text.includes(LOCAL_STORE_LOST)) {
|
|
117
|
-
recover(deps, "local-store", "local store lost", true);
|
|
177
|
+
var recovery = classifyZeroRecoveryLog(level, args);
|
|
178
|
+
if (recovery) {
|
|
179
|
+
recover(deps, recovery.reasonKey, recovery.message, recovery.dropLocalState);
|
|
118
180
|
}
|
|
119
181
|
},
|
|
120
182
|
// call through the consumer sink so a class-based sink keeps its `this`,
|
|
@@ -127,5 +189,6 @@ function composeRecoveryLogSink(deps, consumerLogSink) {
|
|
|
127
189
|
function resetRecoveryStateForTests() {
|
|
128
190
|
reloadScheduled = false;
|
|
129
191
|
pendingDeletes.length = 0;
|
|
192
|
+
lastStoreClosedAtMs = 0;
|
|
130
193
|
}
|
|
131
194
|
//# sourceMappingURL=recoverZeroClient.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","recoverZeroClient_exports","__export","composeRecoveryLogSink","makeZeroRecovery","resetRecoveryStateForTests","module","exports","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","recoverZeroClient_exports","__export","classifyZeroRecoveryLog","composeRecoveryLogSink","makeZeroRecovery","resetRecoveryStateForTests","module","exports","_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","pendingDeletes","recoveryGuardOpen","reasonKey","key","rawLast","window","sessionStorage","getItem","now","Date","last","Number","setItem","String","e","lastStoreClosedAtMs","recover","deps","message","dropLocalState","push","Promise","resolve","then","deleteLocalState","catch","console","error","zeroEvents","emit","type","reason","warn","_deps_reload","doReload","reload","_globalThis_location_reload","_globalThis_location","globalThis","location","call","allSettled","_deps_beforeReload","beforeReload","finally","onUpdateNeeded","onClientStateNotFound","logToConsole","level","context","_len","arguments","length","args","Array","_key","prefix","Object","entries","map","param","join","method","logArgText","arg","Error","name","stack","isBenignStoreClosedLog","text","test","nowMs","includes","prevMs"],"sources":["../../../src/helpers/recoverZeroClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -150,6 +150,45 @@ async function flush() {
|
|
|
150
150
|
(0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
151
151
|
(0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
|
|
152
152
|
});
|
|
153
|
+
(0, import_vitest.test)("logSink recovers on native sqlite finalized-statement local-store loss", async () => {
|
|
154
|
+
const {
|
|
155
|
+
deps,
|
|
156
|
+
deleteLocalState,
|
|
157
|
+
reload
|
|
158
|
+
} = setup();
|
|
159
|
+
const sqliteError = new Error("This statement has been finalized");
|
|
160
|
+
sqliteError.name = "SqliteError";
|
|
161
|
+
const sink = (0, import_recoverZeroClient.composeRecoveryLogSink)(deps);
|
|
162
|
+
sink.log("error", {
|
|
163
|
+
bgIntervalProcess: "Heartbeat"
|
|
164
|
+
}, "Error running.", sqliteError);
|
|
165
|
+
await flush();
|
|
166
|
+
(0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
167
|
+
(0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
|
|
168
|
+
});
|
|
169
|
+
(0, import_vitest.test)("logSink recovers on repeated store-closed local-store loss", async () => {
|
|
170
|
+
const nowSpy = import_vitest.vi.spyOn(Date, "now");
|
|
171
|
+
const {
|
|
172
|
+
deps,
|
|
173
|
+
deleteLocalState,
|
|
174
|
+
reload
|
|
175
|
+
} = setup();
|
|
176
|
+
try {
|
|
177
|
+
const sink = (0, import_recoverZeroClient.composeRecoveryLogSink)(deps);
|
|
178
|
+
nowSpy.mockReturnValue(1e4);
|
|
179
|
+
sink.log("error", void 0, "Failed to connect.", new Error("Store is closed"));
|
|
180
|
+
await flush();
|
|
181
|
+
(0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
|
|
182
|
+
(0, import_vitest.expect)(reload).not.toHaveBeenCalled();
|
|
183
|
+
nowSpy.mockReturnValue(13e3);
|
|
184
|
+
sink.log("error", void 0, "Failed to connect.", new Error("Store is closed"));
|
|
185
|
+
await flush();
|
|
186
|
+
(0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
187
|
+
(0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
|
|
188
|
+
} finally {
|
|
189
|
+
nowSpy.mockRestore();
|
|
190
|
+
}
|
|
191
|
+
});
|
|
153
192
|
(0, import_vitest.test)("logSink with no consumer preserves console output and still watches", async () => {
|
|
154
193
|
const {
|
|
155
194
|
deps,
|
|
@@ -198,6 +237,27 @@ async function flush() {
|
|
|
198
237
|
(0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
|
|
199
238
|
(0, import_vitest.expect)(reload).not.toHaveBeenCalled();
|
|
200
239
|
});
|
|
240
|
+
(0, import_vitest.test)("recovery log classification is narrow", () => {
|
|
241
|
+
const sqliteError = new Error("This statement has been finalized");
|
|
242
|
+
sqliteError.name = "SqliteError";
|
|
243
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Error running.", sqliteError])).toMatchObject({
|
|
244
|
+
reason: "sqlite-statement-finalized",
|
|
245
|
+
dropLocalState: true
|
|
246
|
+
});
|
|
247
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", [{
|
|
248
|
+
name: "SqliteError",
|
|
249
|
+
message: "database is locked"
|
|
250
|
+
}])).toBeUndefined();
|
|
251
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("warn", ["Expected IndexedDB not found"])).toBeUndefined();
|
|
252
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Store is closed"], 1e4)).toBeUndefined();
|
|
253
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Store is closed"], 11e3)).toBeUndefined();
|
|
254
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Store is closed"], 14e3)).toMatchObject({
|
|
255
|
+
reason: "store-closed-repeat",
|
|
256
|
+
dropLocalState: true
|
|
257
|
+
});
|
|
258
|
+
(0, import_recoverZeroClient.resetRecoveryStateForTests)();
|
|
259
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ['Mutator "send" error on server', "Store is closed"], 2e4)).toBeUndefined();
|
|
260
|
+
});
|
|
201
261
|
(0, import_vitest.test)("default reload path is a safe no-op when location is absent", async () => {
|
|
202
262
|
const events = [];
|
|
203
263
|
const zeroEvents = (0, import_helpers.createEmitter)(`test-recover-${emitterSeq++}`, null);
|
|
@@ -192,6 +192,45 @@ async function flush() {
|
|
|
192
192
|
(0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
193
193
|
(0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
|
|
194
194
|
});
|
|
195
|
+
(0, import_vitest.test)("logSink recovers on native sqlite finalized-statement local-store loss", async function () {
|
|
196
|
+
var {
|
|
197
|
+
deps,
|
|
198
|
+
deleteLocalState,
|
|
199
|
+
reload
|
|
200
|
+
} = setup();
|
|
201
|
+
var sqliteError = new Error("This statement has been finalized");
|
|
202
|
+
sqliteError.name = "SqliteError";
|
|
203
|
+
var sink = (0, import_recoverZeroClient.composeRecoveryLogSink)(deps);
|
|
204
|
+
sink.log("error", {
|
|
205
|
+
bgIntervalProcess: "Heartbeat"
|
|
206
|
+
}, "Error running.", sqliteError);
|
|
207
|
+
await flush();
|
|
208
|
+
(0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
209
|
+
(0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
|
|
210
|
+
});
|
|
211
|
+
(0, import_vitest.test)("logSink recovers on repeated store-closed local-store loss", async function () {
|
|
212
|
+
var nowSpy = import_vitest.vi.spyOn(Date, "now");
|
|
213
|
+
var {
|
|
214
|
+
deps,
|
|
215
|
+
deleteLocalState,
|
|
216
|
+
reload
|
|
217
|
+
} = setup();
|
|
218
|
+
try {
|
|
219
|
+
var sink = (0, import_recoverZeroClient.composeRecoveryLogSink)(deps);
|
|
220
|
+
nowSpy.mockReturnValue(1e4);
|
|
221
|
+
sink.log("error", void 0, "Failed to connect.", new Error("Store is closed"));
|
|
222
|
+
await flush();
|
|
223
|
+
(0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
|
|
224
|
+
(0, import_vitest.expect)(reload).not.toHaveBeenCalled();
|
|
225
|
+
nowSpy.mockReturnValue(13e3);
|
|
226
|
+
sink.log("error", void 0, "Failed to connect.", new Error("Store is closed"));
|
|
227
|
+
await flush();
|
|
228
|
+
(0, import_vitest.expect)(deleteLocalState).toHaveBeenCalledTimes(1);
|
|
229
|
+
(0, import_vitest.expect)(reload).toHaveBeenCalledTimes(1);
|
|
230
|
+
} finally {
|
|
231
|
+
nowSpy.mockRestore();
|
|
232
|
+
}
|
|
233
|
+
});
|
|
195
234
|
(0, import_vitest.test)("logSink with no consumer preserves console output and still watches", async function () {
|
|
196
235
|
var {
|
|
197
236
|
deps,
|
|
@@ -252,6 +291,27 @@ async function flush() {
|
|
|
252
291
|
(0, import_vitest.expect)(deleteLocalState).not.toHaveBeenCalled();
|
|
253
292
|
(0, import_vitest.expect)(reload).not.toHaveBeenCalled();
|
|
254
293
|
});
|
|
294
|
+
(0, import_vitest.test)("recovery log classification is narrow", function () {
|
|
295
|
+
var sqliteError = new Error("This statement has been finalized");
|
|
296
|
+
sqliteError.name = "SqliteError";
|
|
297
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Error running.", sqliteError])).toMatchObject({
|
|
298
|
+
reason: "sqlite-statement-finalized",
|
|
299
|
+
dropLocalState: true
|
|
300
|
+
});
|
|
301
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", [{
|
|
302
|
+
name: "SqliteError",
|
|
303
|
+
message: "database is locked"
|
|
304
|
+
}])).toBeUndefined();
|
|
305
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("warn", ["Expected IndexedDB not found"])).toBeUndefined();
|
|
306
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Store is closed"], 1e4)).toBeUndefined();
|
|
307
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Store is closed"], 11e3)).toBeUndefined();
|
|
308
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ["Store is closed"], 14e3)).toMatchObject({
|
|
309
|
+
reason: "store-closed-repeat",
|
|
310
|
+
dropLocalState: true
|
|
311
|
+
});
|
|
312
|
+
(0, import_recoverZeroClient.resetRecoveryStateForTests)();
|
|
313
|
+
(0, import_vitest.expect)((0, import_recoverZeroClient.classifyZeroRecoveryLog)("error", ['Mutator "send" error on server', "Store is closed"], 2e4)).toBeUndefined();
|
|
314
|
+
});
|
|
255
315
|
(0, import_vitest.test)("default reload path is a safe no-op when location is absent", async function () {
|
|
256
316
|
var events = [];
|
|
257
317
|
var zeroEvents = (0, import_helpers.createEmitter)(`test-recover-${emitterSeq++}`, null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["import_helpers","require","import_zero","import_vitest","import_recoverZeroClient","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","emitterSeq","setup","events","zeroEvents","createEmitter","listen","event","push","deleteLocalState","vi","fn","Promise","resolve","reload","deps","flush","setTimeout","beforeEach","window","sessionStorage","clear","resetRecoveryStateForTests","describe","test","makeZeroRecovery","onUpdateNeeded","type","UpdateNeededReasonType","SchemaVersionNotSupported","expect","toEqual","reason","stringContaining","toHaveBeenCalledTimes","recovery","NewClientGroup","VersionNotSupported","not","toHaveBeenCalled","onClientStateNotFound","a","b","mock","calls","toBe","filter","some","consumer","log","sink","composeRecoveryLogSink","
|
|
1
|
+
{"version":3,"names":["import_helpers","require","import_zero","import_vitest","import_recoverZeroClient","_class_call_check","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_create_class","protoProps","staticProps","prototype","_define_property","obj","value","emitterSeq","setup","events","zeroEvents","createEmitter","listen","event","push","deleteLocalState","vi","fn","Promise","resolve","reload","deps","flush","setTimeout","beforeEach","window","sessionStorage","clear","resetRecoveryStateForTests","describe","test","makeZeroRecovery","onUpdateNeeded","type","UpdateNeededReasonType","SchemaVersionNotSupported","expect","toEqual","reason","stringContaining","toHaveBeenCalledTimes","recovery","NewClientGroup","VersionNotSupported","not","toHaveBeenCalled","onClientStateNotFound","a","b","mock","calls","toBe","filter","some","consumer","log","sink","composeRecoveryLogSink","sqliteError","Error","name","bgIntervalProcess","nowSpy","spyOn","Date","mockReturnValue","mockRestore","infoSpy","console","mockImplementation","worker","toHaveBeenCalledWith","_sink_flush","ClassSink","ClassSink2","flush2","flushed"],"sources":["../../../src/helpers/recoverZeroClient.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -390,6 +390,23 @@ let storageID = 0;
|
|
|
390
390
|
cleanup();
|
|
391
391
|
view.destroy();
|
|
392
392
|
});
|
|
393
|
+
(0, import_vitest.test)("transient pull failures back off reconnect attempts", async () => {
|
|
394
|
+
const requests = [];
|
|
395
|
+
const fetch = import_vitest.vi.fn(async (input, init) => {
|
|
396
|
+
const request = recordRequest(input, init);
|
|
397
|
+
requests.push(request);
|
|
398
|
+
(0, import_vitest.expect)(request.path).toBe("/pull");
|
|
399
|
+
throw new TypeError("Failed to fetch");
|
|
400
|
+
});
|
|
401
|
+
install(fetch);
|
|
402
|
+
createZero();
|
|
403
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBe(1));
|
|
404
|
+
await sleep(150);
|
|
405
|
+
(0, import_vitest.expect)(requests.length).toBe(1);
|
|
406
|
+
await eventually(() => (0, import_vitest.expect)(requests.length).toBe(2), 1500);
|
|
407
|
+
await sleep(150);
|
|
408
|
+
(0, import_vitest.expect)(requests.length).toBe(2);
|
|
409
|
+
});
|
|
393
410
|
(0, import_vitest.test)("non-origin WebSockets pass through to the native implementation", () => {
|
|
394
411
|
const previous = globalThis.WebSocket;
|
|
395
412
|
class NativeWebSocket {
|
|
@@ -459,6 +459,27 @@ var storageID = 0;
|
|
|
459
459
|
cleanup();
|
|
460
460
|
view.destroy();
|
|
461
461
|
});
|
|
462
|
+
(0, import_vitest.test)("transient pull failures back off reconnect attempts", async function () {
|
|
463
|
+
var requests = [];
|
|
464
|
+
var fetch = import_vitest.vi.fn(async function (input, init) {
|
|
465
|
+
var request = recordRequest(input, init);
|
|
466
|
+
requests.push(request);
|
|
467
|
+
(0, import_vitest.expect)(request.path).toBe("/pull");
|
|
468
|
+
throw new TypeError("Failed to fetch");
|
|
469
|
+
});
|
|
470
|
+
install(fetch);
|
|
471
|
+
createZero();
|
|
472
|
+
await eventually(function () {
|
|
473
|
+
return (0, import_vitest.expect)(requests.length).toBe(1);
|
|
474
|
+
});
|
|
475
|
+
await sleep(150);
|
|
476
|
+
(0, import_vitest.expect)(requests.length).toBe(1);
|
|
477
|
+
await eventually(function () {
|
|
478
|
+
return (0, import_vitest.expect)(requests.length).toBe(2);
|
|
479
|
+
}, 1500);
|
|
480
|
+
await sleep(150);
|
|
481
|
+
(0, import_vitest.expect)(requests.length).toBe(2);
|
|
482
|
+
});
|
|
462
483
|
(0, import_vitest.test)("non-origin WebSockets pass through to the native implementation", function () {
|
|
463
484
|
var previous = globalThis.WebSocket;
|
|
464
485
|
var NativeWebSocket = function NativeWebSocket2(url, protocols) {
|
|
@@ -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"],"sources":["../../../src/httpPull/transport.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|