on-zero 0.7.2-1784530701923 → 0.7.2
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/asyncTasks.cjs +51 -0
- package/dist/cjs/asyncTasks.native.js +84 -0
- package/dist/cjs/asyncTasks.native.js.map +1 -0
- package/dist/cjs/createZeroDirectServer.cjs +269 -0
- package/dist/cjs/createZeroDirectServer.native.js +287 -0
- package/dist/cjs/createZeroDirectServer.native.js.map +1 -0
- package/dist/cjs/createZeroSQLiteServer.cjs +50 -0
- package/dist/cjs/createZeroSQLiteServer.native.js +58 -0
- package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -0
- package/dist/cjs/createZeroSQLiteServer.test.cjs +595 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js +647 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -0
- package/dist/cjs/createZeroServer.cjs +82 -0
- package/dist/cjs/createZeroServer.native.js +93 -0
- package/dist/cjs/createZeroServer.native.js.map +1 -0
- package/dist/cjs/createZeroServer.test.cjs +378 -0
- package/dist/cjs/createZeroServer.test.native.js +448 -0
- package/dist/cjs/createZeroServer.test.native.js.map +1 -0
- package/dist/cjs/createZeroServerCore.cjs +211 -0
- package/dist/cjs/createZeroServerCore.native.js +355 -0
- package/dist/cjs/createZeroServerCore.native.js.map +1 -0
- package/dist/cjs/helpers/createMutators.cjs +3 -4
- package/dist/cjs/helpers/createMutators.native.js +3 -6
- package/dist/cjs/helpers/createMutators.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/completeAck.test.cjs +69 -0
- package/dist/cjs/httpPull/completeAck.test.native.js +76 -0
- package/dist/cjs/httpPull/completeAck.test.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/index.cjs +1 -0
- package/dist/cjs/index.native.js +1 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/run.cjs +1 -1
- package/dist/cjs/run.native.js +1 -1
- package/dist/cjs/server.cjs +22 -0
- package/dist/cjs/server.native.js +4 -0
- package/dist/cjs/server.native.js.map +1 -0
- package/dist/cjs/sqliteRuntime.cjs +318 -0
- package/dist/cjs/sqliteRuntime.native.js +438 -0
- package/dist/cjs/sqliteRuntime.native.js.map +1 -0
- package/dist/cjs/state.cjs +1 -1
- package/dist/cjs/state.native.js +1 -1
- package/dist/cjs/syncHost.cjs +179 -0
- package/dist/cjs/syncHost.native.js +388 -0
- package/dist/cjs/syncHost.native.js.map +1 -0
- package/dist/cjs/syncHost.test.cjs +240 -0
- package/dist/cjs/syncHost.test.native.js +290 -0
- package/dist/cjs/syncHost.test.native.js.map +1 -0
- package/dist/cjs/zeroRunner.cjs +1 -1
- package/dist/cjs/zeroRunner.native.js +1 -1
- package/dist/esm/asyncTasks.mjs +26 -0
- package/dist/esm/asyncTasks.mjs.map +1 -0
- package/dist/esm/asyncTasks.native.js +56 -0
- package/dist/esm/asyncTasks.native.js.map +1 -0
- package/dist/esm/createZeroDirectServer.mjs +241 -0
- package/dist/esm/createZeroDirectServer.mjs.map +1 -0
- package/dist/esm/createZeroDirectServer.native.js +256 -0
- package/dist/esm/createZeroDirectServer.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.mjs +24 -0
- package/dist/esm/createZeroSQLiteServer.mjs.map +1 -0
- package/dist/esm/createZeroSQLiteServer.native.js +29 -0
- package/dist/esm/createZeroSQLiteServer.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.test.mjs +596 -0
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -0
- package/dist/esm/createZeroSQLiteServer.test.native.js +645 -0
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -0
- package/dist/esm/createZeroServer.mjs +57 -0
- package/dist/esm/createZeroServer.mjs.map +1 -0
- package/dist/esm/createZeroServer.native.js +65 -0
- package/dist/esm/createZeroServer.native.js.map +1 -0
- package/dist/esm/createZeroServer.test.mjs +379 -0
- package/dist/esm/createZeroServer.test.mjs.map +1 -0
- package/dist/esm/createZeroServer.test.native.js +446 -0
- package/dist/esm/createZeroServer.test.native.js.map +1 -0
- package/dist/esm/createZeroServerCore.mjs +186 -0
- package/dist/esm/createZeroServerCore.mjs.map +1 -0
- package/dist/esm/createZeroServerCore.native.js +327 -0
- package/dist/esm/createZeroServerCore.native.js.map +1 -0
- package/dist/esm/helpers/createMutators.mjs +3 -4
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +3 -6
- package/dist/esm/helpers/createMutators.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/completeAck.test.mjs +70 -0
- package/dist/esm/httpPull/completeAck.test.mjs.map +1 -0
- package/dist/esm/httpPull/completeAck.test.native.js +74 -0
- package/dist/esm/httpPull/completeAck.test.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/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/dist/esm/run.mjs +1 -1
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/run.native.js +1 -1
- package/dist/esm/server.mjs +4 -0
- package/dist/esm/server.mjs.map +1 -0
- package/dist/esm/server.native.js +2 -0
- package/dist/esm/server.native.js.map +1 -0
- package/dist/esm/sqliteRuntime.mjs +289 -0
- package/dist/esm/sqliteRuntime.mjs.map +1 -0
- package/dist/esm/sqliteRuntime.native.js +406 -0
- package/dist/esm/sqliteRuntime.native.js.map +1 -0
- package/dist/esm/state.mjs +1 -1
- package/dist/esm/state.native.js +1 -1
- package/dist/esm/syncHost.mjs +153 -0
- package/dist/esm/syncHost.mjs.map +1 -0
- package/dist/esm/syncHost.native.js +359 -0
- package/dist/esm/syncHost.native.js.map +1 -0
- package/dist/esm/syncHost.test.mjs +217 -0
- package/dist/esm/syncHost.test.mjs.map +1 -0
- package/dist/esm/syncHost.test.native.js +264 -0
- package/dist/esm/syncHost.test.native.js.map +1 -0
- package/dist/esm/zeroRunner.mjs +1 -1
- package/dist/esm/zeroRunner.mjs.map +1 -1
- package/dist/esm/zeroRunner.native.js +1 -1
- package/package.json +23 -8
- package/readme.md +65 -40
- package/src/asyncTasks.ts +36 -0
- package/src/createZeroClient.tsx +1 -1
- package/src/createZeroDirectServer.ts +411 -0
- package/src/createZeroSQLiteServer.test.ts +614 -0
- package/src/createZeroSQLiteServer.ts +56 -0
- package/src/createZeroServer.test.ts +421 -0
- package/src/createZeroServer.ts +105 -0
- package/src/createZeroServerCore.ts +296 -0
- package/src/helpers/createMutators.ts +2 -6
- package/src/httpPull/auth.test.ts +208 -0
- package/src/httpPull/churn.test.ts +147 -0
- package/src/httpPull/completeAck.test.ts +80 -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/index.ts +1 -0
- package/src/run.ts +1 -1
- package/src/server.native.ts +3 -0
- package/src/server.ts +4 -0
- package/src/sqliteRuntime.ts +512 -0
- package/src/state.ts +1 -1
- package/src/syncHost.test.ts +223 -0
- package/src/syncHost.ts +294 -0
- package/src/types.ts +5 -0
- package/src/zeroRunner.ts +1 -1
- package/test-fixtures/server-return-types.ts +58 -21
- package/types/asyncTasks.d.ts +11 -0
- package/types/asyncTasks.d.ts.map +1 -0
- package/types/createZeroDirectServer.d.ts +80 -0
- package/types/createZeroDirectServer.d.ts.map +1 -0
- package/types/createZeroSQLiteServer.d.ts +12 -0
- package/types/createZeroSQLiteServer.d.ts.map +1 -0
- package/types/createZeroSQLiteServer.test.d.ts +2 -0
- package/types/createZeroSQLiteServer.test.d.ts.map +1 -0
- package/types/createZeroServer.d.ts +18 -0
- package/types/createZeroServer.d.ts.map +1 -0
- package/types/createZeroServer.test.d.ts +2 -0
- package/types/createZeroServer.test.d.ts.map +1 -0
- package/types/createZeroServerCore.d.ts +256 -0
- package/types/createZeroServerCore.d.ts.map +1 -0
- package/types/helpers/createMutators.d.ts +1 -2
- package/types/helpers/createMutators.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/completeAck.test.d.ts +2 -0
- package/types/httpPull/completeAck.test.d.ts.map +1 -0
- package/types/httpPull/fixtureSchema.d.ts +1 -1
- 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/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/server.d.ts +5 -0
- package/types/server.d.ts.map +1 -0
- package/types/server.native.d.ts +1 -0
- package/types/server.native.d.ts.map +1 -0
- package/types/sqliteRuntime.d.ts +71 -0
- package/types/sqliteRuntime.d.ts.map +1 -0
- package/types/syncHost.d.ts +42 -0
- package/types/syncHost.d.ts.map +1 -0
- package/types/syncHost.test.d.ts +2 -0
- package/types/syncHost.test.d.ts.map +1 -0
- package/types/types.d.ts +4 -0
- package/types/types.d.ts.map +1 -1
- package/dist/cjs/orez.cjs +0 -227
- package/dist/cjs/orez.native.js +0 -314
- package/dist/cjs/orez.native.js.map +0 -1
- package/dist/cjs/orez.test.cjs +0 -211
- package/dist/cjs/orez.test.native.js +0 -226
- package/dist/cjs/orez.test.native.js.map +0 -1
- package/dist/esm/orez.mjs +0 -202
- package/dist/esm/orez.mjs.map +0 -1
- package/dist/esm/orez.native.js +0 -286
- package/dist/esm/orez.native.js.map +0 -1
- package/dist/esm/orez.test.mjs +0 -188
- package/dist/esm/orez.test.mjs.map +0 -1
- package/dist/esm/orez.test.native.js +0 -200
- package/dist/esm/orez.test.native.js.map +0 -1
- package/src/orez.test.ts +0 -195
- package/src/orez.ts +0 -331
- package/types/orez.d.ts +0 -53
- package/types/orez.d.ts.map +0 -1
- package/types/orez.test.d.ts +0 -2
- package/types/orez.test.d.ts.map +0 -1
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import { createBuilder } from "@rocicorp/zero";
|
|
2
|
+
import { asQueryInternals } from "@rocicorp/zero/bindings";
|
|
3
|
+
function _type_of(obj) {
|
|
4
|
+
"@swc/helpers - typeof";
|
|
5
|
+
|
|
6
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
7
|
+
}
|
|
8
|
+
function createSQLiteDatabase(options) {
|
|
9
|
+
return {
|
|
10
|
+
async transaction(callback, input) {
|
|
11
|
+
var committedLedgers = /* @__PURE__ */new Set();
|
|
12
|
+
var value = await options.transactionProvider(async function (executor) {
|
|
13
|
+
var attemptLedgers = /* @__PURE__ */new Set();
|
|
14
|
+
var ensureLedger = async function (upstreamSchema) {
|
|
15
|
+
var tables = options.ledgerTables(upstreamSchema);
|
|
16
|
+
var key2 = ledgerKey(tables);
|
|
17
|
+
if (options.initializedLedgers.has(key2) || attemptLedgers.has(key2)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
await createLedgerTables(executor, tables);
|
|
21
|
+
attemptLedgers.add(key2);
|
|
22
|
+
};
|
|
23
|
+
var transaction = createZeroSQLiteTransaction(options, executor, input);
|
|
24
|
+
var result = await callback(transaction, createLedgerHooks(options, executor, ensureLedger, input));
|
|
25
|
+
committedLedgers = attemptLedgers;
|
|
26
|
+
return result;
|
|
27
|
+
});
|
|
28
|
+
var _iteratorNormalCompletion = true,
|
|
29
|
+
_didIteratorError = false,
|
|
30
|
+
_iteratorError = void 0;
|
|
31
|
+
try {
|
|
32
|
+
for (var _iterator = committedLedgers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
33
|
+
var key = _step.value;
|
|
34
|
+
options.initializedLedgers.add(key);
|
|
35
|
+
}
|
|
36
|
+
} catch (err) {
|
|
37
|
+
_didIteratorError = true;
|
|
38
|
+
_iteratorError = err;
|
|
39
|
+
} finally {
|
|
40
|
+
try {
|
|
41
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
42
|
+
_iterator.return();
|
|
43
|
+
}
|
|
44
|
+
} finally {
|
|
45
|
+
if (_didIteratorError) {
|
|
46
|
+
throw _iteratorError;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function createZeroSQLiteTransaction(options, executor, input) {
|
|
55
|
+
var _options_encodeValue;
|
|
56
|
+
var transactionOptions = {
|
|
57
|
+
encodeValue: (_options_encodeValue = options.encodeValue) !== null && _options_encodeValue !== void 0 ? _options_encodeValue : encodeSQLiteValue,
|
|
58
|
+
schema: options.schema
|
|
59
|
+
};
|
|
60
|
+
var _input_clientID;
|
|
61
|
+
var clientID = (_input_clientID = input === null || input === void 0 ? void 0 : input.clientID) !== null && _input_clientID !== void 0 ? _input_clientID : "";
|
|
62
|
+
var _input_mutationID;
|
|
63
|
+
var mutationID = (_input_mutationID = input === null || input === void 0 ? void 0 : input.mutationID) !== null && _input_mutationID !== void 0 ? _input_mutationID : 0;
|
|
64
|
+
var mutate = new Proxy({}, {
|
|
65
|
+
get(_target, tableKey) {
|
|
66
|
+
var tableName = String(tableKey);
|
|
67
|
+
if (!options.schema.tables[tableName]) {
|
|
68
|
+
throw new Error(`unknown SQLite mutation table ${tableName}`);
|
|
69
|
+
}
|
|
70
|
+
return new Proxy({}, {
|
|
71
|
+
get(_innerTarget, kindKey) {
|
|
72
|
+
var kind = String(kindKey);
|
|
73
|
+
if (!isCrudKind(kind)) return;
|
|
74
|
+
return function (value) {
|
|
75
|
+
return executeCrud(transactionOptions, executor, tableName, kind, value);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
var runQuery = function (ast, format, queryName) {
|
|
82
|
+
return Promise.resolve(executor.queryAst(ast, format, queryName));
|
|
83
|
+
};
|
|
84
|
+
var dbTransaction = {
|
|
85
|
+
wrappedTransaction: executor,
|
|
86
|
+
query: function (sql, args) {
|
|
87
|
+
return executor.query(sql, args);
|
|
88
|
+
},
|
|
89
|
+
runQuery
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
clientID,
|
|
93
|
+
dbTransaction,
|
|
94
|
+
location: "server",
|
|
95
|
+
mutate,
|
|
96
|
+
mutationID,
|
|
97
|
+
query: transactionOptions.schema.enableLegacyQueries ? createLegacyQueryBuilder(transactionOptions.schema, function (query) {
|
|
98
|
+
var _internals_customQueryID;
|
|
99
|
+
var internals = asQueryInternals(query);
|
|
100
|
+
return runQuery(internals.ast, internals.format, (_internals_customQueryID = internals.customQueryID) === null || _internals_customQueryID === void 0 ? void 0 : _internals_customQueryID.name);
|
|
101
|
+
}) : void 0,
|
|
102
|
+
reason: "authoritative",
|
|
103
|
+
async run(query) {
|
|
104
|
+
var _internals_customQueryID;
|
|
105
|
+
var internals = asQueryInternals(query);
|
|
106
|
+
return runQuery(internals.ast, internals.format, (_internals_customQueryID = internals.customQueryID) === null || _internals_customQueryID === void 0 ? void 0 : _internals_customQueryID.name);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
function isCrudKind(value) {
|
|
111
|
+
return value === "delete" || value === "insert" || value === "update" || value === "upsert";
|
|
112
|
+
}
|
|
113
|
+
async function executeCrud(options, executor, tableName, kind, raw) {
|
|
114
|
+
if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object" || Array.isArray(raw)) {
|
|
115
|
+
throw new Error(`${tableName}.${kind} expects an object`);
|
|
116
|
+
}
|
|
117
|
+
var table = options.schema.tables[tableName];
|
|
118
|
+
var values = Object.fromEntries(Object.entries(raw).filter(function (param) {
|
|
119
|
+
var [, value] = param;
|
|
120
|
+
return value !== void 0;
|
|
121
|
+
}));
|
|
122
|
+
var _iteratorNormalCompletion = true,
|
|
123
|
+
_didIteratorError = false,
|
|
124
|
+
_iteratorError = void 0;
|
|
125
|
+
try {
|
|
126
|
+
for (var _iterator = Object.keys(values)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
127
|
+
var columnName = _step.value;
|
|
128
|
+
if (!table.columns[columnName]) {
|
|
129
|
+
throw new Error(`unknown SQLite column ${tableName}.${columnName}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
} catch (err) {
|
|
133
|
+
_didIteratorError = true;
|
|
134
|
+
_iteratorError = err;
|
|
135
|
+
} finally {
|
|
136
|
+
try {
|
|
137
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
138
|
+
_iterator.return();
|
|
139
|
+
}
|
|
140
|
+
} finally {
|
|
141
|
+
if (_didIteratorError) {
|
|
142
|
+
throw _iteratorError;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
var primaryValues = table.primaryKey.map(function (columnName2) {
|
|
147
|
+
if (!(columnName2 in values)) {
|
|
148
|
+
throw new Error(`${tableName}.${kind} is missing primary key ${columnName2}`);
|
|
149
|
+
}
|
|
150
|
+
return encodeColumn(options, tableName, columnName2, values[columnName2]);
|
|
151
|
+
});
|
|
152
|
+
var primaryWhere = table.primaryKey.map(function (columnName2) {
|
|
153
|
+
return `${quoteSQLiteIdentifier(serverColumn(table, columnName2))} = ?`;
|
|
154
|
+
}).join(" AND ");
|
|
155
|
+
var _table_serverName;
|
|
156
|
+
var serverTableName = quoteSQLiteIdentifier((_table_serverName = table.serverName) !== null && _table_serverName !== void 0 ? _table_serverName : table.name);
|
|
157
|
+
if (kind === "delete") {
|
|
158
|
+
var _table_serverName1;
|
|
159
|
+
await executor.exec(`DELETE FROM ${serverTableName} WHERE ${primaryWhere}`, primaryValues, {
|
|
160
|
+
table: (_table_serverName1 = table.serverName) !== null && _table_serverName1 !== void 0 ? _table_serverName1 : table.name,
|
|
161
|
+
publicTable: tableName,
|
|
162
|
+
kind
|
|
163
|
+
});
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
var columnNames = Object.keys(values);
|
|
167
|
+
if (columnNames.length === 0) {
|
|
168
|
+
throw new Error(`${tableName}.${kind} has no values`);
|
|
169
|
+
}
|
|
170
|
+
var serverColumns = columnNames.map(function (columnName2) {
|
|
171
|
+
return quoteSQLiteIdentifier(serverColumn(table, columnName2));
|
|
172
|
+
});
|
|
173
|
+
var params = columnNames.map(function (columnName2) {
|
|
174
|
+
return encodeColumn(options, tableName, columnName2, values[columnName2]);
|
|
175
|
+
});
|
|
176
|
+
var insert = `INSERT INTO ${serverTableName} (${serverColumns.join(", ")}) VALUES (${columnNames.map(function () {
|
|
177
|
+
return "?";
|
|
178
|
+
}).join(", ")})`;
|
|
179
|
+
var conflictColumns = table.primaryKey.map(function (columnName2) {
|
|
180
|
+
return quoteSQLiteIdentifier(serverColumn(table, columnName2));
|
|
181
|
+
}).join(", ");
|
|
182
|
+
if (kind === "insert") {
|
|
183
|
+
var _table_serverName2;
|
|
184
|
+
await executor.exec(`${insert} ON CONFLICT (${conflictColumns}) DO NOTHING`, params, {
|
|
185
|
+
table: (_table_serverName2 = table.serverName) !== null && _table_serverName2 !== void 0 ? _table_serverName2 : table.name,
|
|
186
|
+
publicTable: tableName,
|
|
187
|
+
kind
|
|
188
|
+
});
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (kind === "upsert") {
|
|
192
|
+
var mutableColumns = columnNames.filter(function (columnName2) {
|
|
193
|
+
return !table.primaryKey.includes(columnName2);
|
|
194
|
+
});
|
|
195
|
+
var conflictAction = mutableColumns.length === 0 ? "DO NOTHING" : `DO UPDATE SET ${mutableColumns.map(function (columnName2) {
|
|
196
|
+
var column = quoteSQLiteIdentifier(serverColumn(table, columnName2));
|
|
197
|
+
return `${column} = excluded.${column}`;
|
|
198
|
+
}).join(", ")}`;
|
|
199
|
+
var _table_serverName3;
|
|
200
|
+
await executor.exec(`${insert} ON CONFLICT (${conflictColumns}) ${conflictAction}`, params, {
|
|
201
|
+
table: (_table_serverName3 = table.serverName) !== null && _table_serverName3 !== void 0 ? _table_serverName3 : table.name,
|
|
202
|
+
publicTable: tableName,
|
|
203
|
+
kind
|
|
204
|
+
});
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
var mutableColumns1 = columnNames.filter(function (columnName2) {
|
|
208
|
+
return !table.primaryKey.includes(columnName2);
|
|
209
|
+
});
|
|
210
|
+
if (mutableColumns1.length === 0) return;
|
|
211
|
+
var _table_serverName4;
|
|
212
|
+
await executor.exec(`UPDATE ${serverTableName} SET ${mutableColumns1.map(function (columnName2) {
|
|
213
|
+
return `${quoteSQLiteIdentifier(serverColumn(table, columnName2))} = ?`;
|
|
214
|
+
}).join(", ")} WHERE ${primaryWhere}`, [...mutableColumns1.map(function (columnName2) {
|
|
215
|
+
return encodeColumn(options, tableName, columnName2, values[columnName2]);
|
|
216
|
+
}), ...primaryValues], {
|
|
217
|
+
table: (_table_serverName4 = table.serverName) !== null && _table_serverName4 !== void 0 ? _table_serverName4 : table.name,
|
|
218
|
+
publicTable: tableName,
|
|
219
|
+
kind
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
function serverColumn(table, columnName) {
|
|
223
|
+
var column = table.columns[columnName];
|
|
224
|
+
if (!column) throw new Error(`unknown SQLite column ${table.name}.${columnName}`);
|
|
225
|
+
var _column_serverName;
|
|
226
|
+
return (_column_serverName = column.serverName) !== null && _column_serverName !== void 0 ? _column_serverName : columnName;
|
|
227
|
+
}
|
|
228
|
+
function encodeColumn(options, tableName, columnName, value) {
|
|
229
|
+
return options.encodeValue(value, {
|
|
230
|
+
column: options.schema.tables[tableName].columns[columnName],
|
|
231
|
+
columnName,
|
|
232
|
+
tableName
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
function createLegacyQueryBuilder(schema, run) {
|
|
236
|
+
var builder = createBuilder(schema);
|
|
237
|
+
return new Proxy(builder, {
|
|
238
|
+
get(target, property) {
|
|
239
|
+
return makeRunnableQuery(Reflect.get(target, property, target), run);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
function makeRunnableQuery(query, run) {
|
|
244
|
+
if (!isQueryBuilder(query)) return query;
|
|
245
|
+
return new Proxy(query, {
|
|
246
|
+
get(target, property) {
|
|
247
|
+
if (property === "run") return function () {
|
|
248
|
+
return run(target);
|
|
249
|
+
};
|
|
250
|
+
if (property === "materialize" || property === "preload") {
|
|
251
|
+
return function () {
|
|
252
|
+
throw new Error(`${String(property)}() is not supported in server transactions`);
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
var value = Reflect.get(target, property, target);
|
|
256
|
+
if (typeof value !== "function") return value;
|
|
257
|
+
return function () {
|
|
258
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
259
|
+
args[_key] = arguments[_key];
|
|
260
|
+
}
|
|
261
|
+
return makeRunnableQuery(Reflect.apply(value, target, args), run);
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
function isQueryBuilder(value) {
|
|
267
|
+
if (!value || (typeof value === "undefined" ? "undefined" : _type_of(value)) !== "object") return false;
|
|
268
|
+
try {
|
|
269
|
+
asQueryInternals(value);
|
|
270
|
+
return true;
|
|
271
|
+
} catch (e) {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
function createLedgerHooks(options, executor, ensureLedger, input) {
|
|
276
|
+
var _input_upstreamSchema;
|
|
277
|
+
var upstreamSchema = (_input_upstreamSchema = input === null || input === void 0 ? void 0 : input.upstreamSchema) !== null && _input_upstreamSchema !== void 0 ? _input_upstreamSchema : "";
|
|
278
|
+
var _input_clientGroupID;
|
|
279
|
+
var clientGroupID = (_input_clientGroupID = input === null || input === void 0 ? void 0 : input.clientGroupID) !== null && _input_clientGroupID !== void 0 ? _input_clientGroupID : "";
|
|
280
|
+
var _input_clientID;
|
|
281
|
+
var clientID = (_input_clientID = input === null || input === void 0 ? void 0 : input.clientID) !== null && _input_clientID !== void 0 ? _input_clientID : "";
|
|
282
|
+
var tables = options.ledgerTables(upstreamSchema);
|
|
283
|
+
var clientsTable = quoteSQLiteIdentifier(tables.clients);
|
|
284
|
+
var mutationsTable = quoteSQLiteIdentifier(tables.mutations);
|
|
285
|
+
return {
|
|
286
|
+
async updateClientMutationID() {
|
|
287
|
+
var _rows_;
|
|
288
|
+
await ensureLedger(upstreamSchema);
|
|
289
|
+
var rows = await executor.query(`INSERT INTO ${clientsTable}
|
|
290
|
+
(clientGroupID, clientID, lastMutationID)
|
|
291
|
+
VALUES (?, ?, 1)
|
|
292
|
+
ON CONFLICT (clientGroupID, clientID)
|
|
293
|
+
DO UPDATE SET lastMutationID = lastMutationID + 1
|
|
294
|
+
RETURNING lastMutationID`, [clientGroupID, clientID]);
|
|
295
|
+
var lastMutationID = (_rows_ = rows[0]) === null || _rows_ === void 0 ? void 0 : _rows_.lastMutationID;
|
|
296
|
+
if (typeof lastMutationID !== "number" && (typeof lastMutationID === "undefined" ? "undefined" : _type_of(lastMutationID)) !== "bigint") {
|
|
297
|
+
throw new Error("SQLite mutation ledger returned no lastMutationID");
|
|
298
|
+
}
|
|
299
|
+
return {
|
|
300
|
+
lastMutationID
|
|
301
|
+
};
|
|
302
|
+
},
|
|
303
|
+
async writeMutationResult(result) {
|
|
304
|
+
await ensureLedger(upstreamSchema);
|
|
305
|
+
await executor.exec(`INSERT INTO ${mutationsTable}
|
|
306
|
+
(clientGroupID, clientID, mutationID, result)
|
|
307
|
+
VALUES (?, ?, ?, ?)`, [clientGroupID, result.id.clientID, result.id.id, JSON.stringify(result.result)]);
|
|
308
|
+
},
|
|
309
|
+
async deleteMutationResults(args) {
|
|
310
|
+
await ensureLedger(upstreamSchema);
|
|
311
|
+
if ("type" in args && args.type === "bulk") {
|
|
312
|
+
if (args.clientIDs.length === 0) return;
|
|
313
|
+
await executor.exec(`DELETE FROM ${mutationsTable}
|
|
314
|
+
WHERE clientGroupID = ?
|
|
315
|
+
AND clientID IN (${args.clientIDs.map(function () {
|
|
316
|
+
return "?";
|
|
317
|
+
}).join(", ")})`, [args.clientGroupID, ...args.clientIDs]);
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
await executor.exec(`DELETE FROM ${mutationsTable}
|
|
321
|
+
WHERE clientGroupID = ?
|
|
322
|
+
AND clientID = ?
|
|
323
|
+
AND mutationID <= ?`, [args.clientGroupID, args.clientID, args.upToMutationID]);
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
async function persistAlreadyProcessedMutationResults(options, param) {
|
|
328
|
+
var {
|
|
329
|
+
clientGroupID,
|
|
330
|
+
mutations,
|
|
331
|
+
upstreamSchema
|
|
332
|
+
} = param;
|
|
333
|
+
var tables = options.ledgerTables(upstreamSchema);
|
|
334
|
+
var table = quoteSQLiteIdentifier(tables.mutations);
|
|
335
|
+
var key = ledgerKey(tables);
|
|
336
|
+
await options.transactionProvider(async function (executor) {
|
|
337
|
+
if (!options.initializedLedgers.has(key)) {
|
|
338
|
+
await createLedgerTables(executor, tables);
|
|
339
|
+
}
|
|
340
|
+
var _iteratorNormalCompletion = true,
|
|
341
|
+
_didIteratorError = false,
|
|
342
|
+
_iteratorError = void 0;
|
|
343
|
+
try {
|
|
344
|
+
for (var _iterator = mutations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
345
|
+
var mutation = _step.value;
|
|
346
|
+
await executor.exec(`INSERT INTO ${table}
|
|
347
|
+
(clientGroupID, clientID, mutationID, result)
|
|
348
|
+
VALUES (?, ?, ?, ?)
|
|
349
|
+
ON CONFLICT (clientGroupID, clientID, mutationID) DO NOTHING`, [clientGroupID, mutation.id.clientID, mutation.id.id, JSON.stringify(mutation.result)]);
|
|
350
|
+
}
|
|
351
|
+
} catch (err) {
|
|
352
|
+
_didIteratorError = true;
|
|
353
|
+
_iteratorError = err;
|
|
354
|
+
} finally {
|
|
355
|
+
try {
|
|
356
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
357
|
+
_iterator.return();
|
|
358
|
+
}
|
|
359
|
+
} finally {
|
|
360
|
+
if (_didIteratorError) {
|
|
361
|
+
throw _iteratorError;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
options.initializedLedgers.add(key);
|
|
367
|
+
}
|
|
368
|
+
async function createLedgerTables(executor, tables) {
|
|
369
|
+
await executor.exec(`CREATE TABLE IF NOT EXISTS ${quoteSQLiteIdentifier(tables.clients)} (
|
|
370
|
+
clientGroupID TEXT NOT NULL,
|
|
371
|
+
clientID TEXT NOT NULL,
|
|
372
|
+
lastMutationID INTEGER NOT NULL,
|
|
373
|
+
PRIMARY KEY (clientGroupID, clientID)
|
|
374
|
+
)`);
|
|
375
|
+
await executor.exec(`CREATE TABLE IF NOT EXISTS ${quoteSQLiteIdentifier(tables.mutations)} (
|
|
376
|
+
clientGroupID TEXT NOT NULL,
|
|
377
|
+
clientID TEXT NOT NULL,
|
|
378
|
+
mutationID INTEGER NOT NULL,
|
|
379
|
+
result TEXT NOT NULL,
|
|
380
|
+
PRIMARY KEY (clientGroupID, clientID, mutationID)
|
|
381
|
+
)`);
|
|
382
|
+
}
|
|
383
|
+
function ledgerKey(tables) {
|
|
384
|
+
return `${tables.clients}\0${tables.mutations}`;
|
|
385
|
+
}
|
|
386
|
+
function defaultLedgerTables(upstreamSchema) {
|
|
387
|
+
var prefix = upstreamSchema ? `${upstreamSchema}_` : "";
|
|
388
|
+
return {
|
|
389
|
+
clients: `${prefix}clients`,
|
|
390
|
+
mutations: `${prefix}mutations`
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
function encodeSQLiteValue(value, param) {
|
|
394
|
+
var {
|
|
395
|
+
column
|
|
396
|
+
} = param;
|
|
397
|
+
if (value === null) return null;
|
|
398
|
+
if (column.type === "boolean") return value ? 1 : 0;
|
|
399
|
+
if (column.type === "json") return JSON.stringify(value);
|
|
400
|
+
return value;
|
|
401
|
+
}
|
|
402
|
+
function quoteSQLiteIdentifier(value) {
|
|
403
|
+
return `"${value.replaceAll('"', '""')}"`;
|
|
404
|
+
}
|
|
405
|
+
export { createSQLiteDatabase, createZeroSQLiteTransaction, defaultLedgerTables, encodeSQLiteValue, persistAlreadyProcessedMutationResults };
|
|
406
|
+
//# sourceMappingURL=sqliteRuntime.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createBuilder","asQueryInternals","_type_of","obj","Symbol","constructor","createSQLiteDatabase","options","transaction","callback","input","committedLedgers","Set","value","transactionProvider","executor","attemptLedgers","ensureLedger","upstreamSchema","tables","ledgerTables","key2","ledgerKey","initializedLedgers","has","createLedgerTables","add","createZeroSQLiteTransaction","result","createLedgerHooks","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","key","err","return","_options_encodeValue","transactionOptions","encodeValue","encodeSQLiteValue","schema","_input_clientID","clientID","_input_mutationID","mutationID","mutate","Proxy","get","_target","tableKey","tableName","String","Error","_innerTarget","kindKey","kind","isCrudKind","executeCrud","runQuery","ast","format","queryName","Promise","resolve","queryAst","dbTransaction","wrappedTransaction","query","sql","args","location","enableLegacyQueries","createLegacyQueryBuilder","_internals_customQueryID","internals","customQueryID","name","reason","run","raw","Array","isArray","table","values","Object","fromEntries","entries","filter","param","keys","columnName","columns","primaryValues","primaryKey","map","columnName2","encodeColumn","primaryWhere","quoteSQLiteIdentifier","serverColumn","join","_table_serverName","serverTableName","serverName","_table_serverName1","exec","publicTable","columnNames","length","serverColumns","params","insert","conflictColumns","_table_serverName2","mutableColumns","includes","conflictAction","column","_table_serverName3","mutableColumns1","_table_serverName4","_column_serverName","builder","target","property","makeRunnableQuery","Reflect","isQueryBuilder","_len","arguments","_key","apply","e","_input_upstreamSchema","_input_clientGroupID","clientGroupID","clientsTable","clients","mutationsTable","mutations","updateClientMutationID","_rows_","rows","lastMutationID","writeMutationResult","id","JSON","stringify","deleteMutationResults","type","clientIDs"],"sources":["../../src/sqliteRuntime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/state.mjs
CHANGED
|
@@ -5,7 +5,7 @@ const getState = () => globalValue("on-zero:state", () => ({
|
|
|
5
5
|
authData: void 0,
|
|
6
6
|
environment: null
|
|
7
7
|
}));
|
|
8
|
-
const errMessage = `
|
|
8
|
+
const errMessage = `Haven't called createZeroClient or createZeroServer yet!`;
|
|
9
9
|
const getZQL = () => {
|
|
10
10
|
const {
|
|
11
11
|
zql
|
package/dist/esm/state.native.js
CHANGED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { asQueryInternals } from "@rocicorp/zero/bindings";
|
|
2
|
+
import { createBuilder } from "@rocicorp/zero";
|
|
3
|
+
import { createPermissions } from "./createPermissions.mjs";
|
|
4
|
+
import { createZeroDirectServer, resolveServerQuery } from "./createZeroDirectServer.mjs";
|
|
5
|
+
import { createSQLiteDatabase, createZeroSQLiteTransaction, defaultLedgerTables, encodeSQLiteValue } from "./sqliteRuntime.mjs";
|
|
6
|
+
import { createMutators } from "./helpers/createMutators.mjs";
|
|
7
|
+
import { runWithAuthScope } from "./helpers/mutatorContext.mjs";
|
|
8
|
+
import { runWithQueryContext } from "./helpers/queryContext.mjs";
|
|
9
|
+
import { setEnvironment, setSchema } from "./state.mjs";
|
|
10
|
+
class MutationApplicationError extends Error {
|
|
11
|
+
constructor(details, message = details) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.details = details;
|
|
14
|
+
this.name = "MutationApplicationError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function createZeroSyncHostAdapter({
|
|
18
|
+
encodeValue,
|
|
19
|
+
mapAuthData = defaultMapAuthData,
|
|
20
|
+
transaction,
|
|
21
|
+
...options
|
|
22
|
+
}) {
|
|
23
|
+
setSchema(options.schema, createBuilder(options.schema));
|
|
24
|
+
setEnvironment("server");
|
|
25
|
+
const permissions = createPermissions({
|
|
26
|
+
environment: "server",
|
|
27
|
+
schema: options.schema,
|
|
28
|
+
adminRoleMode: options.defaultAllowAdminRole ?? "all"
|
|
29
|
+
});
|
|
30
|
+
const transactionOptions = {
|
|
31
|
+
encodeValue,
|
|
32
|
+
schema: options.schema
|
|
33
|
+
};
|
|
34
|
+
const mutators = {};
|
|
35
|
+
for (const [modelName, model] of Object.entries(options.models)) {
|
|
36
|
+
for (const mutatorName of Object.keys(model.mutate ?? {})) {
|
|
37
|
+
mutators[`${modelName}|${mutatorName}`] = async (executor, args, context) => {
|
|
38
|
+
const authData = mapAuthData(context.claims);
|
|
39
|
+
const asyncTaskEntries = [];
|
|
40
|
+
const modelMutators = createMutators({
|
|
41
|
+
enqueueTask(task, opts) {
|
|
42
|
+
asyncTaskEntries.push({
|
|
43
|
+
task,
|
|
44
|
+
barrier: opts?.barrier === true
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
authData,
|
|
48
|
+
can: permissions.can,
|
|
49
|
+
createServerActions: options.createServerActions,
|
|
50
|
+
environment: "server",
|
|
51
|
+
models: options.models,
|
|
52
|
+
mutationValidators: options.mutations,
|
|
53
|
+
validateMutation: options.validateMutation
|
|
54
|
+
});
|
|
55
|
+
const mutation = modelMutators[modelName]?.[mutatorName];
|
|
56
|
+
if (!mutation) throw new Error(`unknown on-zero mutator: ${modelName}|${mutatorName}`);
|
|
57
|
+
const mutationID = numericMutationID(context.mutationID);
|
|
58
|
+
const onZeroTransaction = createZeroSQLiteTransaction(transactionOptions, toSQLiteExecutor(executor), {
|
|
59
|
+
clientGroupID: "orez-sync-host",
|
|
60
|
+
clientID: context.clientID ?? "",
|
|
61
|
+
mutationID,
|
|
62
|
+
upstreamSchema: "orez-sync-host"
|
|
63
|
+
});
|
|
64
|
+
try {
|
|
65
|
+
await mutation(onZeroTransaction, args);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
throw asMutationApplicationError(error);
|
|
68
|
+
}
|
|
69
|
+
for (const {
|
|
70
|
+
task
|
|
71
|
+
} of asyncTaskEntries) {
|
|
72
|
+
context.defer(() => runWithAuthScope(authData, task));
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
mutators._zero_cleanupResults = async () => {};
|
|
78
|
+
const transactionProvider = work => transaction(executor => work(toSQLiteExecutor(executor)));
|
|
79
|
+
const directDatabaseOptions = {
|
|
80
|
+
encodeValue: encodeValue ?? encodeSQLiteValue,
|
|
81
|
+
initializedLedgers: /* @__PURE__ */new Set(),
|
|
82
|
+
ledgerTables: defaultLedgerTables,
|
|
83
|
+
schema: options.schema,
|
|
84
|
+
transactionProvider
|
|
85
|
+
};
|
|
86
|
+
const direct = createZeroDirectServer({
|
|
87
|
+
...options,
|
|
88
|
+
createDatabase: () => createSQLiteDatabase(directDatabaseOptions)
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
mutators: Object.freeze(mutators),
|
|
92
|
+
async resolveQuery(name, args, claims) {
|
|
93
|
+
if (!options.queries) {
|
|
94
|
+
throw new Error("No queries registered with createZeroSyncHostAdapter. Pass the syncedQueries registry via the queries option.");
|
|
95
|
+
}
|
|
96
|
+
const authData = mapAuthData(claims);
|
|
97
|
+
const query = await runWithQueryContext({
|
|
98
|
+
authData
|
|
99
|
+
}, () => resolveServerQuery({
|
|
100
|
+
authData,
|
|
101
|
+
args: args[0],
|
|
102
|
+
name,
|
|
103
|
+
permissions,
|
|
104
|
+
queries: options.queries,
|
|
105
|
+
validateQuery: options.validateQuery
|
|
106
|
+
}));
|
|
107
|
+
return asQueryInternals(query).ast;
|
|
108
|
+
},
|
|
109
|
+
server: {
|
|
110
|
+
mutate: direct.mutate,
|
|
111
|
+
query: direct.query,
|
|
112
|
+
transaction: direct.transaction
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function defaultMapAuthData(claims) {
|
|
117
|
+
return {
|
|
118
|
+
...claims,
|
|
119
|
+
id: typeof claims.id === "string" ? claims.id : claims.userID
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
function toSQLiteExecutor(executor) {
|
|
123
|
+
return {
|
|
124
|
+
exec(sql, params, metadata) {
|
|
125
|
+
return executor.exec(sql, params, metadata);
|
|
126
|
+
},
|
|
127
|
+
query(sql, params) {
|
|
128
|
+
return executor.query(sql, params);
|
|
129
|
+
},
|
|
130
|
+
queryAst(ast, format, queryName) {
|
|
131
|
+
return executor.queryAst(ast, format, queryName);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function numericMutationID(value) {
|
|
136
|
+
if (value === void 0) return 0;
|
|
137
|
+
const numeric = typeof value === "number" ? value : Number(value);
|
|
138
|
+
if (!Number.isSafeInteger(numeric) || numeric < 0) {
|
|
139
|
+
throw new TypeError(`invalid Zero mutation ID: ${value}`);
|
|
140
|
+
}
|
|
141
|
+
return numeric;
|
|
142
|
+
}
|
|
143
|
+
function asMutationApplicationError(error) {
|
|
144
|
+
if (typeof error === "object" && error !== null && error.name === "MutationApplicationError" && typeof error.details === "string") {
|
|
145
|
+
return error;
|
|
146
|
+
}
|
|
147
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
148
|
+
const applicationError = new MutationApplicationError(message);
|
|
149
|
+
if (error instanceof Error && error.stack) applicationError.stack = error.stack;
|
|
150
|
+
return applicationError;
|
|
151
|
+
}
|
|
152
|
+
export { MutationApplicationError, createZeroSyncHostAdapter };
|
|
153
|
+
//# sourceMappingURL=syncHost.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["asQueryInternals","createBuilder","createPermissions","createZeroDirectServer","resolveServerQuery","createSQLiteDatabase","createZeroSQLiteTransaction","defaultLedgerTables","encodeSQLiteValue","createMutators","runWithAuthScope","runWithQueryContext","setEnvironment","setSchema","MutationApplicationError","Error","constructor","details","message","name","createZeroSyncHostAdapter","encodeValue","mapAuthData","defaultMapAuthData","transaction","options","schema","permissions","environment","adminRoleMode","defaultAllowAdminRole","transactionOptions","mutators","modelName","model","Object","entries","models","mutatorName","keys","mutate","executor","args","context","authData","claims","asyncTaskEntries","modelMutators","enqueueTask","task","opts","push","barrier","can","createServerActions","mutationValidators","mutations","validateMutation","mutation","mutationID","numericMutationID","onZeroTransaction","toSQLiteExecutor","clientGroupID","clientID","upstreamSchema","error","asMutationApplicationError","defer","_zero_cleanupResults","transactionProvider","work","directDatabaseOptions","initializedLedgers","Set","ledgerTables","direct","createDatabase","freeze","resolveQuery","queries","query","validateQuery","ast","server","id","userID","exec","sql","params","metadata","queryAst","format","queryName","value","numeric","Number","isSafeInteger","TypeError","String","applicationError","stack"],"sources":["../../src/syncHost.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|