on-zero 0.4.26 → 0.4.28
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 +14 -1
- package/dist/cjs/createZeroClient.native.js +15 -1
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/httpPull/auth.test.cjs +197 -0
- package/dist/cjs/httpPull/auth.test.native.js +279 -0
- package/dist/cjs/httpPull/auth.test.native.js.map +1 -0
- package/dist/cjs/httpPull/churn.test.cjs +132 -0
- package/dist/cjs/httpPull/churn.test.native.js +155 -0
- package/dist/cjs/httpPull/churn.test.native.js.map +1 -0
- package/dist/cjs/httpPull/fixtureSchema.cjs +76 -0
- package/dist/cjs/httpPull/fixtureSchema.native.js +82 -0
- package/dist/cjs/httpPull/fixtureSchema.native.js.map +1 -0
- package/dist/cjs/httpPull/fixtureServer.cjs +340 -0
- package/dist/cjs/httpPull/fixtureServer.native.js +534 -0
- package/dist/cjs/httpPull/fixtureServer.native.js.map +1 -0
- package/dist/cjs/httpPull/integration.test.cjs +53 -0
- package/dist/cjs/httpPull/integration.test.native.js +60 -0
- package/dist/cjs/httpPull/integration.test.native.js.map +1 -0
- package/dist/cjs/httpPull/rebase.test.cjs +360 -0
- package/dist/cjs/httpPull/rebase.test.native.js +420 -0
- package/dist/cjs/httpPull/rebase.test.native.js.map +1 -0
- package/dist/cjs/httpPull/relations.test.cjs +107 -0
- package/dist/cjs/httpPull/relations.test.native.js +119 -0
- package/dist/cjs/httpPull/relations.test.native.js.map +1 -0
- package/dist/cjs/httpPull/testHarness.cjs +100 -0
- package/dist/cjs/httpPull/testHarness.native.js +112 -0
- package/dist/cjs/httpPull/testHarness.native.js.map +1 -0
- package/dist/cjs/httpPull/transport.test.cjs +588 -0
- package/dist/cjs/httpPull/transport.test.native.js +677 -0
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -0
- package/dist/cjs/httpPullTransport.cjs +447 -0
- package/dist/cjs/httpPullTransport.native.js +710 -0
- package/dist/cjs/httpPullTransport.native.js.map +1 -0
- 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/createZeroClient.mjs +14 -1
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +15 -1
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/httpPull/auth.test.mjs +198 -0
- package/dist/esm/httpPull/auth.test.mjs.map +1 -0
- package/dist/esm/httpPull/auth.test.native.js +277 -0
- package/dist/esm/httpPull/auth.test.native.js.map +1 -0
- package/dist/esm/httpPull/churn.test.mjs +133 -0
- package/dist/esm/httpPull/churn.test.mjs.map +1 -0
- package/dist/esm/httpPull/churn.test.native.js +153 -0
- package/dist/esm/httpPull/churn.test.native.js.map +1 -0
- package/dist/esm/httpPull/fixtureSchema.mjs +50 -0
- package/dist/esm/httpPull/fixtureSchema.mjs.map +1 -0
- package/dist/esm/httpPull/fixtureSchema.native.js +53 -0
- package/dist/esm/httpPull/fixtureSchema.native.js.map +1 -0
- package/dist/esm/httpPull/fixtureServer.mjs +315 -0
- package/dist/esm/httpPull/fixtureServer.mjs.map +1 -0
- package/dist/esm/httpPull/fixtureServer.native.js +506 -0
- package/dist/esm/httpPull/fixtureServer.native.js.map +1 -0
- package/dist/esm/httpPull/integration.test.mjs +54 -0
- package/dist/esm/httpPull/integration.test.mjs.map +1 -0
- package/dist/esm/httpPull/integration.test.native.js +58 -0
- package/dist/esm/httpPull/integration.test.native.js.map +1 -0
- package/dist/esm/httpPull/rebase.test.mjs +361 -0
- package/dist/esm/httpPull/rebase.test.mjs.map +1 -0
- package/dist/esm/httpPull/rebase.test.native.js +418 -0
- package/dist/esm/httpPull/rebase.test.native.js.map +1 -0
- package/dist/esm/httpPull/relations.test.mjs +108 -0
- package/dist/esm/httpPull/relations.test.mjs.map +1 -0
- package/dist/esm/httpPull/relations.test.native.js +117 -0
- package/dist/esm/httpPull/relations.test.native.js.map +1 -0
- package/dist/esm/httpPull/testHarness.mjs +72 -0
- package/dist/esm/httpPull/testHarness.mjs.map +1 -0
- package/dist/esm/httpPull/testHarness.native.js +81 -0
- package/dist/esm/httpPull/testHarness.native.js.map +1 -0
- package/dist/esm/httpPull/transport.test.mjs +589 -0
- package/dist/esm/httpPull/transport.test.mjs.map +1 -0
- package/dist/esm/httpPull/transport.test.native.js +675 -0
- package/dist/esm/httpPull/transport.test.native.js.map +1 -0
- package/dist/esm/httpPullTransport.mjs +421 -0
- package/dist/esm/httpPullTransport.mjs.map +1 -0
- package/dist/esm/httpPullTransport.native.js +681 -0
- package/dist/esm/httpPullTransport.native.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.tsx +22 -0
- package/src/httpPull/auth.test.ts +208 -0
- package/src/httpPull/churn.test.ts +147 -0
- package/src/httpPull/fixtureSchema.ts +82 -0
- package/src/httpPull/fixtureServer.ts +391 -0
- package/src/httpPull/integration.test.ts +57 -0
- package/src/httpPull/rebase.test.ts +368 -0
- package/src/httpPull/relations.test.ts +135 -0
- package/src/httpPull/testHarness.ts +95 -0
- package/src/httpPull/transport.test.ts +603 -0
- package/src/httpPullTransport.ts +587 -0
- package/src/index.ts +1 -0
- package/types/createZeroClient.d.ts +3 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/httpPull/auth.test.d.ts +2 -0
- package/types/httpPull/auth.test.d.ts.map +1 -0
- package/types/httpPull/churn.test.d.ts +2 -0
- package/types/httpPull/churn.test.d.ts.map +1 -0
- package/types/httpPull/fixtureSchema.d.ts +111 -0
- package/types/httpPull/fixtureSchema.d.ts.map +1 -0
- package/types/httpPull/fixtureServer.d.ts +14 -0
- package/types/httpPull/fixtureServer.d.ts.map +1 -0
- package/types/httpPull/integration.test.d.ts +2 -0
- package/types/httpPull/integration.test.d.ts.map +1 -0
- package/types/httpPull/rebase.test.d.ts +2 -0
- package/types/httpPull/rebase.test.d.ts.map +1 -0
- package/types/httpPull/relations.test.d.ts +2 -0
- package/types/httpPull/relations.test.d.ts.map +1 -0
- package/types/httpPull/testHarness.d.ts +32 -0
- package/types/httpPull/testHarness.d.ts.map +1 -0
- package/types/httpPull/transport.test.d.ts +2 -0
- package/types/httpPull/transport.test.d.ts.map +1 -0
- package/types/httpPullTransport.d.ts +13 -0
- package/types/httpPullTransport.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var testHarness_exports = {};
|
|
24
|
+
__export(testHarness_exports, {
|
|
25
|
+
eventually: () => eventually,
|
|
26
|
+
sleep: () => sleep,
|
|
27
|
+
startZeroHttpHarness: () => startZeroHttpHarness,
|
|
28
|
+
waitForComplete: () => waitForComplete
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(testHarness_exports);
|
|
31
|
+
var import_zero = require("@rocicorp/zero");
|
|
32
|
+
var import_fixtureSchema = require("./fixtureSchema.cjs");
|
|
33
|
+
var import_fixtureServer = require("./fixtureServer.cjs");
|
|
34
|
+
var import_httpPullTransport = require("../httpPullTransport.cjs");
|
|
35
|
+
let storageID = 0;
|
|
36
|
+
async function startZeroHttpHarness(opts) {
|
|
37
|
+
const server = await (0, import_fixtureServer.startZeroHttpServer)({
|
|
38
|
+
seed: opts?.seed
|
|
39
|
+
});
|
|
40
|
+
const baseFetch = (input, init) => globalThis.fetch(input, init);
|
|
41
|
+
const transportFetch = opts?.interceptFetch ? opts.interceptFetch(baseFetch) : baseFetch;
|
|
42
|
+
const transport = (0, import_httpPullTransport.installHttpPullTransport)({
|
|
43
|
+
origin: server.url,
|
|
44
|
+
fetch: transportFetch
|
|
45
|
+
});
|
|
46
|
+
const clients = [];
|
|
47
|
+
return {
|
|
48
|
+
server,
|
|
49
|
+
transport,
|
|
50
|
+
createZero(userID, createOpts) {
|
|
51
|
+
const zero = new import_zero.Zero({
|
|
52
|
+
server: server.url,
|
|
53
|
+
userID,
|
|
54
|
+
auth: `token-${userID}`,
|
|
55
|
+
schema: import_fixtureSchema.zeroHttpFixtureSchema,
|
|
56
|
+
kvStore: "mem",
|
|
57
|
+
storageKey: createOpts?.storageKey ?? `zero-http-harness-${++storageID}`,
|
|
58
|
+
mutators: import_fixtureSchema.zeroHttpFixtureMutators,
|
|
59
|
+
pingTimeoutMs: createOpts?.pingTimeoutMs
|
|
60
|
+
});
|
|
61
|
+
clients.push(zero);
|
|
62
|
+
return zero;
|
|
63
|
+
},
|
|
64
|
+
async close() {
|
|
65
|
+
await transport.pull().catch(() => {});
|
|
66
|
+
while (clients.length) await clients.pop()?.close();
|
|
67
|
+
transport.uninstall();
|
|
68
|
+
await server.close();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function waitForComplete(view) {
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
const timeout = setTimeout(() => reject(new Error("timed out waiting for complete query")), 5e3);
|
|
75
|
+
let cleanup = () => {};
|
|
76
|
+
cleanup = view.addListener((data, resultType) => {
|
|
77
|
+
if (resultType !== "complete") return;
|
|
78
|
+
clearTimeout(timeout);
|
|
79
|
+
cleanup();
|
|
80
|
+
resolve(JSON.parse(JSON.stringify(data)));
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async function eventually(assertion, timeout = 3e3) {
|
|
85
|
+
const started = Date.now();
|
|
86
|
+
let lastError;
|
|
87
|
+
while (Date.now() - started < timeout) {
|
|
88
|
+
try {
|
|
89
|
+
await assertion();
|
|
90
|
+
return;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
lastError = error;
|
|
93
|
+
await sleep(10);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
throw lastError;
|
|
97
|
+
}
|
|
98
|
+
function sleep(ms) {
|
|
99
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
100
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var testHarness_exports = {};
|
|
26
|
+
__export(testHarness_exports, {
|
|
27
|
+
eventually: () => eventually,
|
|
28
|
+
sleep: () => sleep,
|
|
29
|
+
startZeroHttpHarness: () => startZeroHttpHarness,
|
|
30
|
+
waitForComplete: () => waitForComplete
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(testHarness_exports);
|
|
33
|
+
var import_zero = require("@rocicorp/zero");
|
|
34
|
+
var import_fixtureSchema = require("./fixtureSchema.native.js");
|
|
35
|
+
var import_fixtureServer = require("./fixtureServer.native.js");
|
|
36
|
+
var import_httpPullTransport = require("../httpPullTransport.native.js");
|
|
37
|
+
var storageID = 0;
|
|
38
|
+
async function startZeroHttpHarness(opts) {
|
|
39
|
+
var server = await (0, import_fixtureServer.startZeroHttpServer)({
|
|
40
|
+
seed: opts === null || opts === void 0 ? void 0 : opts.seed
|
|
41
|
+
});
|
|
42
|
+
var baseFetch = function (input, init) {
|
|
43
|
+
return globalThis.fetch(input, init);
|
|
44
|
+
};
|
|
45
|
+
var transportFetch = (opts === null || opts === void 0 ? void 0 : opts.interceptFetch) ? opts.interceptFetch(baseFetch) : baseFetch;
|
|
46
|
+
var transport = (0, import_httpPullTransport.installHttpPullTransport)({
|
|
47
|
+
origin: server.url,
|
|
48
|
+
fetch: transportFetch
|
|
49
|
+
});
|
|
50
|
+
var clients = [];
|
|
51
|
+
return {
|
|
52
|
+
server,
|
|
53
|
+
transport,
|
|
54
|
+
createZero(userID, createOpts) {
|
|
55
|
+
var _createOpts_storageKey;
|
|
56
|
+
var zero = new import_zero.Zero({
|
|
57
|
+
server: server.url,
|
|
58
|
+
userID,
|
|
59
|
+
auth: `token-${userID}`,
|
|
60
|
+
schema: import_fixtureSchema.zeroHttpFixtureSchema,
|
|
61
|
+
kvStore: "mem",
|
|
62
|
+
storageKey: (_createOpts_storageKey = createOpts === null || createOpts === void 0 ? void 0 : createOpts.storageKey) !== null && _createOpts_storageKey !== void 0 ? _createOpts_storageKey : `zero-http-harness-${++storageID}`,
|
|
63
|
+
mutators: import_fixtureSchema.zeroHttpFixtureMutators,
|
|
64
|
+
pingTimeoutMs: createOpts === null || createOpts === void 0 ? void 0 : createOpts.pingTimeoutMs
|
|
65
|
+
});
|
|
66
|
+
clients.push(zero);
|
|
67
|
+
return zero;
|
|
68
|
+
},
|
|
69
|
+
async close() {
|
|
70
|
+
var _clients_pop;
|
|
71
|
+
await transport.pull().catch(function () {});
|
|
72
|
+
while (clients.length) await ((_clients_pop = clients.pop()) === null || _clients_pop === void 0 ? void 0 : _clients_pop.close());
|
|
73
|
+
transport.uninstall();
|
|
74
|
+
await server.close();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function waitForComplete(view) {
|
|
79
|
+
return new Promise(function (resolve, reject) {
|
|
80
|
+
var timeout = setTimeout(function () {
|
|
81
|
+
return reject(new Error("timed out waiting for complete query"));
|
|
82
|
+
}, 5e3);
|
|
83
|
+
var cleanup = function () {};
|
|
84
|
+
cleanup = view.addListener(function (data, resultType) {
|
|
85
|
+
if (resultType !== "complete") return;
|
|
86
|
+
clearTimeout(timeout);
|
|
87
|
+
cleanup();
|
|
88
|
+
resolve(JSON.parse(JSON.stringify(data)));
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function eventually(assertion) {
|
|
93
|
+
var timeout = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 3e3;
|
|
94
|
+
var started = Date.now();
|
|
95
|
+
var lastError;
|
|
96
|
+
while (Date.now() - started < timeout) {
|
|
97
|
+
try {
|
|
98
|
+
await assertion();
|
|
99
|
+
return;
|
|
100
|
+
} catch (error) {
|
|
101
|
+
lastError = error;
|
|
102
|
+
await sleep(10);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
throw lastError;
|
|
106
|
+
}
|
|
107
|
+
function sleep(ms) {
|
|
108
|
+
return new Promise(function (resolve) {
|
|
109
|
+
return setTimeout(resolve, ms);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=testHarness.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","testHarness_exports","__export","eventually","sleep","startZeroHttpHarness","waitForComplete","module","exports","import_zero","require","import_fixtureSchema","import_fixtureServer","import_httpPullTransport","storageID","opts","server","startZeroHttpServer","seed","baseFetch","input","init","globalThis","fetch","transportFetch","interceptFetch","transport","installHttpPullTransport","origin","url","clients","createZero","userID","createOpts","_createOpts_storageKey","zero","Zero","auth","schema","zeroHttpFixtureSchema","kvStore","storageKey","mutators","zeroHttpFixtureMutators","pingTimeoutMs","push","close","_clients_pop","pull","catch","length","pop","uninstall","view","Promise","resolve","reject","timeout","setTimeout","Error","cleanup","addListener","data","resultType","clearTimeout","JSON","parse","stringify","assertion","arguments","started","Date","now","lastError","error"],"sources":["../../../src/httpPull/testHarness.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|