on-zero 0.6.13 → 0.6.15
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/createSchemaFromDrizzle.cjs +4 -4
- package/dist/cjs/createSchemaFromDrizzle.native.js +4 -4
- package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
- package/dist/cjs/createZeroDirectServer.cjs +279 -0
- package/dist/cjs/createZeroDirectServer.native.js +292 -0
- package/dist/cjs/createZeroDirectServer.native.js.map +1 -0
- package/dist/cjs/createZeroSQLiteServer.cjs +8 -277
- package/dist/cjs/createZeroSQLiteServer.native.js +8 -390
- package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -1
- package/dist/cjs/createZeroSQLiteServer.test.cjs +30 -3
- package/dist/cjs/createZeroSQLiteServer.test.native.js +31 -3
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/cjs/createZeroServerCore.cjs +20 -205
- package/dist/cjs/createZeroServerCore.native.js +19 -213
- package/dist/cjs/createZeroServerCore.native.js.map +1 -1
- package/dist/cjs/generate.cjs +10 -3
- package/dist/cjs/generate.native.js +10 -3
- package/dist/cjs/generate.native.js.map +1 -1
- package/dist/cjs/generate.test.cjs +39 -0
- package/dist/cjs/generate.test.native.js +39 -0
- package/dist/cjs/generate.test.native.js.map +1 -1
- 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/syncHost.cjs +16 -9
- package/dist/cjs/syncHost.native.js +21 -12
- package/dist/cjs/syncHost.native.js.map +1 -1
- package/dist/cjs/syncHost.test.cjs +13 -2
- package/dist/cjs/syncHost.test.native.js +14 -2
- package/dist/cjs/syncHost.test.native.js.map +1 -1
- package/dist/esm/createSchemaFromDrizzle.mjs +2 -2
- package/dist/esm/createSchemaFromDrizzle.native.js +2 -2
- package/dist/esm/createZeroDirectServer.mjs +251 -0
- package/dist/esm/createZeroDirectServer.mjs.map +1 -0
- package/dist/esm/createZeroDirectServer.native.js +261 -0
- package/dist/esm/createZeroDirectServer.native.js.map +1 -0
- package/dist/esm/createZeroSQLiteServer.mjs +3 -272
- package/dist/esm/createZeroSQLiteServer.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.native.js +3 -385
- package/dist/esm/createZeroSQLiteServer.native.js.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.mjs +30 -3
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.native.js +31 -3
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/esm/createZeroServerCore.mjs +18 -202
- package/dist/esm/createZeroServerCore.mjs.map +1 -1
- package/dist/esm/createZeroServerCore.native.js +18 -211
- package/dist/esm/createZeroServerCore.native.js.map +1 -1
- package/dist/esm/generate.mjs +10 -3
- package/dist/esm/generate.mjs.map +1 -1
- package/dist/esm/generate.native.js +10 -3
- package/dist/esm/generate.native.js.map +1 -1
- package/dist/esm/generate.test.mjs +39 -1
- package/dist/esm/generate.test.mjs.map +1 -1
- package/dist/esm/generate.test.native.js +39 -1
- package/dist/esm/generate.test.native.js.map +1 -1
- 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/syncHost.mjs +14 -7
- package/dist/esm/syncHost.mjs.map +1 -1
- package/dist/esm/syncHost.native.js +19 -10
- package/dist/esm/syncHost.native.js.map +1 -1
- package/dist/esm/syncHost.test.mjs +13 -2
- package/dist/esm/syncHost.test.mjs.map +1 -1
- package/dist/esm/syncHost.test.native.js +14 -2
- package/dist/esm/syncHost.test.native.js.map +1 -1
- package/package.json +5 -6
- package/src/createSchemaFromDrizzle.ts +2 -2
- package/src/createZeroDirectServer.ts +427 -0
- package/src/createZeroSQLiteServer.test.ts +20 -5
- package/src/createZeroSQLiteServer.ts +14 -481
- package/src/createZeroServerCore.ts +32 -337
- package/src/generate.test.ts +57 -1
- package/src/generate.ts +23 -3
- package/src/sqliteRuntime.ts +512 -0
- package/src/syncHost.test.ts +10 -3
- package/src/syncHost.ts +49 -12
- package/test-fixtures/server-return-types.ts +8 -1
- package/types/createSchemaFromDrizzle.d.ts +2 -2
- package/types/createSchemaFromDrizzle.d.ts.map +1 -1
- package/types/createZeroDirectServer.d.ts +80 -0
- package/types/createZeroDirectServer.d.ts.map +1 -0
- package/types/createZeroSQLiteServer.d.ts +5 -30
- package/types/createZeroSQLiteServer.d.ts.map +1 -1
- package/types/createZeroServerCore.d.ts +30 -87
- package/types/createZeroServerCore.d.ts.map +1 -1
- package/types/generate.d.ts.map +1 -1
- package/types/sqliteRuntime.d.ts +71 -0
- package/types/sqliteRuntime.d.ts.map +1 -0
- package/types/syncHost.d.ts +10 -19
- package/types/syncHost.d.ts.map +1 -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
|
+
if (kind === "insert") {
|
|
180
|
+
var _table_serverName2;
|
|
181
|
+
await executor.exec(insert, params, {
|
|
182
|
+
table: (_table_serverName2 = table.serverName) !== null && _table_serverName2 !== void 0 ? _table_serverName2 : table.name,
|
|
183
|
+
publicTable: tableName,
|
|
184
|
+
kind
|
|
185
|
+
});
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (kind === "upsert") {
|
|
189
|
+
var mutableColumns = columnNames.filter(function (columnName2) {
|
|
190
|
+
return !table.primaryKey.includes(columnName2);
|
|
191
|
+
});
|
|
192
|
+
var conflictColumns = table.primaryKey.map(function (columnName2) {
|
|
193
|
+
return quoteSQLiteIdentifier(serverColumn(table, columnName2));
|
|
194
|
+
}).join(", ");
|
|
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","_table_serverName2","mutableColumns","includes","conflictColumns","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":"AAAA,SAASA,aAAA,QAAqB;AAC9B,SAASC,gBAAA,QAAwB;AA2F1B,SAASC,SAAAC,GAAA;EAGd,uBAAO;;EAAA,OACLA,GAAM,WACJC,MAAA,KAIA,WACA,IAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACA;AACA,SAAAG,oBAAoBA,CAAAC,OAAQ;EAC1B;IACA,MAAAC,WAAMA,CAAAC,QAAe,EAAAC,KAAO;MAC1B,IAAAC,gBAAe,kBAAQ,IAAaC,GAAA;MACpC,IAAAC,KAAA,GAAM,MAAMN,OAAA,CAAUO,mBAAM,iBAAAC,QAAA;QAC5B,IAAAC,cAAY,kBAAuB,IAAGJ,GAAA,CAAK;QACzC,IAAAK,YAAA,kBAAAA,CAAAC,cAAA;UACF,IAAAC,MAAA,GAAAZ,OAAA,CAAAa,YAAA,CAAAF,cAAA;UACA,IAAAG,IAAM,GAAAC,SAAA,CAAAH,MAAmB;UACzB,IAAAZ,OAAA,CAAAgB,kBAAsB,CAAAC,GAAA,CAAAH,IAAA,KAAAL,cAAA,CAAAQ,GAAA,CAAAH,IAAA;YACxB;UACA;UACA,MAAMI,kBAAe,CAAAV,QAAA,EAAAI,MAAA;UACnBH,cAAA,CAAAU,GAAA,CAAAL,IAAA;QAAA;QAEF,IAAAb,WAAA,GAAAmB,2BAAA,CAAApB,OAAA,EAAAQ,QAAA,EAAAL,KAAA;QACA,IAAAkB,MAAA,SAAmBnB,QAAA,CAAAD,WAAA,EAAAqB,iBAAA,CAAAtB,OAAA,EAAAQ,QAAA,EAAAE,YAAA,EAAAP,KAAA;QACnBC,gBAAO,GAAAK,cAAA;QACR,OAAAY,MAAA;MACD;MACA,IAAAE,yBAAO;QAAAC,iBAAA;QAAAC,cAAA;MACT;QACF,SAAAC,SAAA,GAAAtB,gBAAA,CAAAP,MAAA,CAAA8B,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;UACF,IAAAQ,GAAA,GAAAH,KAAA,CAAAtB,KAAA;UAEgBN,OAAA,CAAAgB,kBAAA,CACdG,GAAA,CAAAY,GAAA;QAIM;MACJ,SAAAC,GAAa;QACbR,iBAAgB;QAClBC,cAAA,GAAAO,GAAA;MACA,UAAM;QACA;UACA,KAAAT,yBAAa,IAAAG,SAAA,CAAAO,MAAA;YAChBP,SAAA,CAAAO,MAAA;UACD;QACE,UAAI;UACF,IAAMT,iBAAY,EAAO;YACrB,MAACC,cAAe;UAClB;QACF;MACA;MAAW,OACRnB,KAAA;IAAA;EACD;AAEI;AACA,SAAAc,2BAAuBA,CAAApB,OAAA,EAAAQ,QAAA,EAAAL,KAAA;EACvB,IAAA+B,oBAAQ;EAC0D,IAAAC,kBACpE;IAAAC,WACF,GAAAF,oBAAA,GAAAlC,OAAA,CAAAoC,WAAA,cAAAF,oBAAA,cAAAA,oBAAA,GAAAG,iBAAA;IAAAC,MACF,EAAAtC,OAAA,CAAAsC;EAAA;EACF,IACFC,eAAA;EACF,IAAAC,QAAA,IAAAD,eAAA,GAAApC,KAAA,aAAAA,KAAA,uBAAAA,KAAA,CAAAqC,QAAA,cAAAD,eAAA,cAAAA,eAAA;EAEA,IAAAE,iBACE;EAIF,IAAAC,UAAM,IAAAD,iBAAgB,GAAAtC,KAAA,aAAAA,KAAA,uBAAAA,KAAA,CAAAuC,UAAA,cAAAD,iBAAA,cAAAA,iBAAA;EAAA,IACpBE,MAAA,OAAAC,KAAoB;IACpBC,IAAAC,OAAQ,EAAaC,QAAA,EAAoB;MACzC,IAAAC,SAAA,GAAAC,MAAA,CAAAF,QAAA;MACF,KAAA/C,OAAA,CAAAsC,MAAA,CAAA1B,MAAA,CAAAoC,SAAA;QAEA,MAAO,IAAAE,KAAA,kCAAAF,SAAA;MACL;MACA,WAAAJ,KAAA;QACAC,IAAAM,YAAU,EAAAC,OAAA;UACV,IAAAC,IAAA,GAAAJ,MAAA,CAAAG,OAAA;UACA,KAAAE,UAAA,CAAAD,IAAA;UACA,OAAO,UAAA/C,KAAmB;YAEd,OAAAiD,WAAY,CAAApB,kBAA+B,EAAA3B,QAAA,EAAAwC,SAAA,EAAAK,IAAA,EAAA/C,KAAA;UACjD;QACD;MAEL;IACA;EACE;EACA,IAAAkD,QAAO,YAAAA,CAASC,GAAA,EAAAC,MAAe,EAAAC,SAAU;IAC3C,OAAAC,OAAA,CAAAC,OAAA,CAAArD,QAAA,CAAAsD,QAAA,CAAAL,GAAA,EAAAC,MAAA,EAAAC,SAAA;EACF;EACF,IAAAI,aAAA;IAIAC,kBAAoB,EAAAxD,QAAkC;IACpDyD,KACE,WAAAA,CAAUC,GAAA,EAAAC,IAAA,EAAY;MAE1B,OAAA3D,QAAA,CAAAyD,KAAA,CAAAC,GAAA,EAAAC,IAAA;IAEA;IAOEX;EACE;EACF;IAEAhB,QAAM;IACNuB,aAAe;IACbK,QAAO,UAAsC;IAAEzB,MACzC;IACND,UAAA;IACFuB,KAAA,EAAA9B,kBAAA,CAAAG,MAAA,CAAA+B,mBAAA,GAAAC,wBAAA,CAAAnC,kBAAA,CAAAG,MAAA,YAAA2B,KAAA;MACA,IAAAM,wBAAgC;MAC9B,IAAKC,SAAM,GAAA9E,gBAAqB,CAAAuE,KAAA;MAC9B,OAAMT,QAAI,CAAMgB,SAAA,CAAAf,GAAA,EAAAe,SAAA,CAAyBd,MAAA,GAASa,wBAAgB,GAAAC,SAAA,CAAAC,aAAA,cAAAF,wBAAA,uBAAAA,wBAAA,CAAAG,IAAA;IACpE;IACFC,MAAA;IAEA,MAAMC,IAAAX,KAAA;MACJ,IAAMM,wBAAuB;MAC3B,IAAAC,SAAU,GAAM9E,gBAAgB,CAAAuE,KAAI;MACtC,OAAAT,QAAA,CAAAgB,SAAA,CAAAf,GAAA,EAAAe,SAAA,CAAAd,MAAA,GAAAa,wBAAA,GAAAC,SAAA,CAAAC,aAAA,cAAAF,wBAAA,uBAAAA,wBAAA,CAAAG,IAAA;IACA;EACF,CAAC;AACD;AAGA,SAAMpB,WAAAhD,KAAA,EAAkB;EAExB,OAAIA,KAAA,KAAS,QAAU,IAAAA,KAAA,iBAAAA,KAAA,iBAAAA,KAAA;AACrB;AAAe,eACbiD,WAAeA,CAAAvD,OAAA,EAAeQ,QAAA,EAAUwC,SAAA,EAAAK,IAAY,EAAAwB,GAAA;EAAA,IACpD,CAAAA,GAAA,YAAAA,GAAA,iCAAAlF,QAAA,CAAAkF,GAAA,mBAAAC,KAAA,CAAAC,OAAA,CAAAF,GAAA;IAAA,MACE,IAAA3B,KAAO,IAAMF,SAAA,IAAcK,IAAA,oBAAyB;EAAgB;EAExE,IAAA2B,KAAA,GAAAhF,OAAA,CAAAsC,MAAA,CAAA1B,MAAA,CAAAoC,SAAA;EACF,IAAAiC,MAAA,GAAAC,MAAA,CAAAC,WAAA,CAAAD,MAAA,CAAAE,OAAA,CAAAP,GAAA,EAAAQ,MAAA,WAAAC,KAAA;IAEA,IAAM,GAAAhF,KAAA,IAAAgF,KAAc;IACpB,OAAIhF,KAAA,KAAY;EACd;EACF,IAAAiB,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAEA;IAAsC,KAAC,IAAAC,SACrC,GAAAwD,MAAA,CAAAK,IAAA,CAAAN,MAAsB,EAAApF,MAAA,CAAA8B,QAAa,EAAO,GAAAC,KAAA,EAAU,EAACL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MACvD,IAAAiE,UAAA,GAAA5D,KAAA,CAAAtB,KAAA;MACA,IAAM,CAAA0E,KAAA,CAASS,OAAA,CAAAD,UAAY;QAAK,UAAAtC,KAC9B,0BAAsBF,SAAW,IAAAwC,UAAmB;MACtD;IACA;EAAgE,EAC9D,OAAAxD,GAAA;IACDR,iBAAa,OAAY;IAE1BC,cAAa,GAAAO,GAAA;EACX,UAAM;IAA8B,IAClC;MACA,KAAAT,yBAAa,IAAAG,SAAA,CAAAO,MAAA;QACbP,SAAA,CAAAO,MAAA;MACD;IACD;MACF,IAAAT,iBAAA;QAEI,MAAAC,cAAmB;MACrB;IAAmC;EACoB;EAEvD,IAAAiE,aAAM,GAAAV,KAAA,CAAkBW,UAAM,CAAAC,GAAA,WACtBC,WAAA,EAAe;IAEvB,MAAMA,WAAA,IAAAZ,MACJ;MAIQ,MAAM,IAAA/B,KAAS,IAAAF,SAAA,IAAAK,IAAA,2BAA0CwC,WAAW;IACpE;IACF,OACCC,YAAU,CAAA9F,OAAA,EAAAgD,SAAA,EAAA6C,WAAA,EAAAZ,MAAA,CAAAY,WAAA;EACnB;EAAe,IACbE,YAAS,GAAAf,KAAA,CAAAW,UAAiB,CAAAC,GAAA,WAAeC,WAAK;IAAc,OAC5D,GAAAG,qBAAA,CAAAC,YAAA,CAAAjB,KAAA,EAAAa,WAAA;EAAA,GAAAK,IACE,QAAO;EAA6D,IACxEC,iBAAA;EACA,IAAAC,eAAA,GAAAJ,qBAAA,EAAAG,iBAAA,GAAAnB,KAAA,CAAAqB,UAAA,cAAAF,iBAAA,cAAAA,iBAAA,GAAAnB,KAAA,CAAAN,IAAA;EACF,IAAArB,IAAA;IAEA,IAAMiD,kBAAiB;IACrB,MAAC9F,QAAA,CAAA+F,IAAgB,gBAAiBH,eAAS,UAAUL,YAAA,IAAAL,aAAA;MACvDV,KAAA,GAAAsB,kBAAA,GAAAtB,KAAA,CAAAqB,UAAA,cAAAC,kBAAA,cAAAA,kBAAA,GAAAtB,KAAA,CAAAN,IAAA;MACI8B,WAAA,EAAAxD,SAAe;MACnBK;IACE;IACG;EAC0E;EAE1C,IACnCoD,WAAA,GAAAvB,MAAA,CAAAK,IAAA,CAAAN,MAAA;EAAA,IACEwB,WAAG,CAAAC,MAAe;IAAA,MAAK,IAAAxD,KAAA,IAAAF,SACrB,IAAAK,IAAa,gBAAS,CAAW;EAA8B;EACjE,IACAsD,aAAG,GAAAF,WAAA,CAAAb,GAAA,WAAAC,WAAA;IACL,OAAAG,qBAAA,CAAAC,YAAA,CAAAjB,KAAA,EAAAa,WAAA;EAAA,EACA;EACF,IAAAe,MAAA,GAAAH,WAAA,CAAAb,GAAA,WAAAC,WAAA;IACF,OAAAC,YAAA,CAAA9F,OAAA,EAAAgD,SAAA,EAAA6C,WAAA,EAAAZ,MAAA,CAAAY,WAAA;EAEA;EACE,IAAAgB,MAAM,kBAAeT,eAAkB,KAAAO,aAAA,CAAAT,IAAA,mBAAAO,WAAA,CAAAb,GAAA;IACvC,OAAK,GAAQ;EACb,GAAAM,IAAO,SAAO;EAChB,IAAA7C,IAAA;IAEA,IAAAyD,kBACE;IAKA,MAAOtG,QAAQ,CAAA+F,IAAA,CAAAM,MAAY,EAAAD,MAAO;MAChC5B,KAAA,EAAQ,CAAA8B,kBAAe,GAAO9B,KAAA,CAAAqB,UAAY,MAAQ,QAAUS,kBAAA,cAAAA,kBAAA,GAAA9B,KAAA,CAAAN,IAAA;MAC5D8B,WAAA,EAAAxD,SAAA;MACAK;IACD;IACH;EAEA;EAIE,IAAAA,IAAM,aAAU;IAChB,IAAA0D,cAAiB,GAAAN,WAAS,CAAApB,MAAA,WAAAQ,WAAA;MACxB,OAAI,CAAAb,KAAQ,CAAAW,UAAU,CAAAqB,QAAA,CAAAnB,WAAA;IACpB;IACF,IAAAoB,eAAA,GAAAjC,KAAA,CAAAW,UAAA,CAAAC,GAAA,WAAAC,WAAA;MACD,OAAAG,qBAAA,CAAAC,YAAA,CAAAjB,KAAA,EAAAa,WAAA;IACH,GAAAK,IAAA;IAEA,IAAAgB,cAAS,GAAAH,cAGE,CAAAL,MAAA,yCAAAK,cAAA,CAAAnB,GAAA,WAAAC,WAAA;MACL,IAACsB,MAAA,GAAAnB,qBAA8B,CAAAC,YAAA,CAAAjB,KAAA,EAAAa,WAAA;MACnC,OAAW,GAAAsB,MAAM,eAAiBA,MAAA;IAChC,GAAAjB,IAAI,KAAQ;IACV,IAAAkB,kBAAiB;IACjB,MAAI5G,QAAA,CAAA+F,IAAa,IAAAM,MAAA,iBAAiBI,eAAwB,KAAAC,cAAA,IAAAN,MAAA;MACxD5B,KAAA,GAAAoC,kBAAa,GAAApC,KAAA,CAAAqB,UAAA,cAAAe,kBAAA,cAAAA,kBAAA,GAAApC,KAAA,CAAAN,IAAA;MACX8B,WAAM,EAAAxD,SAAU;MAA+DK;IACjF,EACF;IACA;EACA;EACA,IAAAgE,eAAW,GAAAZ,WACT,CAAApB,MAAA,WAA0BQ,WAAM,EAAO;IAC3C,QAAAb,KAAA,CAAAW,UAAA,CAAAqB,QAAA,CAAAnB,WAAA;EACF,CAAC;EACH,IAAAwB,eAAA,CAAAX,MAAA;EAEA,IAAAY,kBAAwB;EACtB,MAAK9G,QAAS,CAAA+F,IAAA,WAAOH,eAAoB,QAAOiB,eAAA,CAAAzB,GAAA,WAAAC,WAAA;IAChD,OAAI,GAAAG,qBAAA,CAAAC,YAAA,CAAAjB,KAAA,EAAAa,WAAA;EACF,GAAAK,IAAA,gBAAiBH,YAAc,KAC/B,GAAAsB,eAAO,CAAAzB,GAAA,WAAAC,WAAA;IACT,OAAQC,YAAA,CAAA9F,OAAA,EAAAgD,SAAA,EAAA6C,WAAA,EAAAZ,MAAA,CAAAY,WAAA;EACN,IACF,GAAAH,aAAA,CACF;IAEAV,KAAS,GAAAsC,kBACP,GAAAtC,KACA,CAAAqB,UACA,cACAiB,kBAC0B,cAAAA,kBAAA,GAAAtC,KAAA,CAAAN,IAAA;IAC1B8B,WAAM,EAAAxD,SAAiB;IACvBK;EACA;AACA;AACA,SAAM4C,aAAAjB,KAAe,EAAAQ,UAAA;EACrB,IAAA2B,MAAM,GAAAnC,KAAA,CAAAS,OAAiB,CAAAD,UAAA;EAEvB,KAAA2B,MAAO,YAAAjE,KAAA,0BAAA8B,KAAA,CAAAN,IAAA,IAAAc,UAAA;EAAA,IACL+B,kBAAM;EACJ,QAAAA,kBAAmB,GAAAJ,MAAA,CAAAd,UAAc,cAAAkB,kBAAA,cAAAA,kBAAA,GAAA/B,UAAA;AACjC;AAA4B,SAC1BM,aAAA9F,OAAe,EAAAgD,SAAY,EAAAwC,UAAA,EAAAlF,KAAA;EAAA,OAAAN,OAAA,CAAAoC,WAAA,CAAA9B,KAAA;IAAA6G,MAAA,EAAAnH,OAAA,CAAAsC,MAAA,CAAA1B,MAAA,CAAAoC,SAAA,EAAAyC,OAAA,CAAAD,UAAA;IAAAA,UAAA;IAAAxC;EAAA;AAAA;AAMH,SAC1BsB,yBAAAhC,MAAA,EAAAsC,GAAA;EACA,IAAA4C,OAAM,GAAA/H,aAAiB,CAAA6C,MAAM;EAC7B,WAAIM,KAAO,CAAA4E,OAAA;IACT3E,IAAA4E,MAAM,EAAAC,QAAU;MAClB,OAAAC,iBAAA,CAAAC,OAAA,CAAA/E,GAAA,CAAA4E,MAAA,EAAAC,QAAA,EAAAD,MAAA,GAAA7C,GAAA;IACA;EAAwB,EAC1B;AAAA;AAEE,SAAA+C,iBAAmBA,CAAA1D,KAAA,EAAAW,GAAA,EAAc;EACjC,KAAAiD,cAAe,CAAA5D,KAAA,UAAAA,KAAA;EAAA,OACb,IAAArB,KAAA,CAAAqB,KAAe;IAAcpB,IAAA4E,MAAA,EAAAC,QAAA;MAAA,IAAAA,QAAA;QAG7B,OAAC9C,GAAA,CAAA6C,MAAe;MAClB;MACF,IAAAC,QAAA,sBAAAA,QAAA;QACA,OAAM;UACJ,MAAM,IAAAxE,KAAa,IAAAD,MAAA,CAAAyE,QAAc;QACjC;MACE;MACA,IAAApH,KAAM,GAAAsH,OAAS,CAAA/E,GAAA,CAAA4E,MAAA,EAAAC,QAAA,EAAAD,MAAA;MAAA,IACb,OAAAnH,KAAA,KAAe,YAAc,OAAAA,KAAA;MAAA;QAAA,SAAAwH,IAAA,GAAAC,SAEP,CAAArB,MAAK,EAAAvC,IAAA,GAAU,IAAIW,KAAM,CAAAgD,IAAK,GAAAE,IAAK,GAAK,GAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;UAC9D7D,IAAC,CAAA6D,IAAK,IAAAD,SAAe,CAAAC,IAAG;QAC1B;QACA,OAAAL,iBAAA,CAAAC,OAAA,CAAAK,KAAA,CAAA3H,KAAA,EAAAmH,MAAA,EAAAtD,IAAA,GAAAS,GAAA;MACF;IACA;EAAe;AACgB;AAAA,SAAAiD,eAAAvH,KAAA;EAAA,KAAAA,KAAA,YAAAA,KAAA,iCAAAX,QAAA,CAAAW,KAAA;EAAA;IAI0BZ,gBACzD,CAAAY,KAAA;IACF;EACF,SAAA4H,CAAA;IACF;EAEA;AAIE;AACA,SAAM5G,iBAAQA,CAAAtB,OAAA,EAAAQ,QAAsB,EAAOE,YAAS,EAAAP,KAAA;EACpD,IAAAgI,qBAAsB;EACtB,IAAAxH,cAAc,IAAAwH,qBAA2B,GAAAhI,KAAA,KAAa,QAAAA,KAAA,uBAAAA,KAAA,CAAAQ,cAAA,cAAAwH,qBAAA,cAAAA,qBAAA;EACpD,IAAAC,oBAAa;EACX,IAAAC,aAAM,IAAAD,oBAA6B,GAAAjI,KAAM,aAAAA,KAAA,uBAAAA,KAAA,CAAAkI,aAAA,cAAAD,oBAAA,cAAAA,oBAAA;EAAA,IAC3C7F,eAAA;EACA,IAAAC,QAAA,GAAW,CAAAD,eAAY,GAAApC,KAAW,aAAAA,KAAA,uBAAAA,KAAA,CAAAqC,QAAA,cAAAD,eAAA,cAAAA,eAAA;EAChC,IAAA3B,MAAM,GAAAZ,OAAS,CAAAa,YAAA,CAAAF,cAAA;EAAA,IAAA2H,YACb,GAAAtC,qBAAoB,CAAApF,MAAA,CAAA2H,OAAA;EAAA,IAAAC,cAAA,GAAAxC,qBAAA,CAAApF,MAAA,CAAA6H,SAAA;EAAA;IAAA,MAAAC,uBAAA;MAAA,IAIpBC,MAAA;MAAA,MACEjI,YAAA,CAAAC,cAAA;MAAA,IACAiI,IAAA,SAAYpI,QAAA,CAAAyD,KAAA,gBAAAqE,YAAA;AAAA;AACA;AACkB;AAChC;AACF,kCACF,GACDD,aAAA,EACD7F,QAAQ,CACV;MAEA,IAAAqG,cAAe,IAAAF,MACb,GAAAC,IAAA,GACA,UACA,IAAAD,MAAA,uBAAAA,MAAA,CAAAE,cAAA;MACA,IAAM,OAASA,cAAA,yBAAAA,cAAA,iCAAAlJ,QAAA,CAAAkJ,cAAA;QACb,UAAA3F,KAAA,oDAAmE;MAAA;MAAA;QAAA2F;MAAA;IAAA;IAMrE,MAAAC,oBAAAzH,MAAA;MACA,MAAMX,YAAS,CAAAC,cAAA;MACb,MAAAH,QAAA,CAAA+F,IAAA,gBAA8BiC,cAAA;AAAuC;AAAA,gCAAAH,aAAA,EAAAhH,MAAA,CAAA0H,EAAA,CAAAvG,QAAA,EAAAnB,MAAA,CAAA0H,EAAA,CAAAA,EAAA,EAAAC,IAAA,CAAAC,SAAA,CAAA5H,MAAA,CAAAA,MAAA,EAOvE;IACF;IAEA,MAAS6H,qBAAsCA,CAAA/E,IAAA;MAC7C,MAAUzD,YAAO,CAAAC,cAAmB;MACtC,cAAAwD,IAAA,IAAAA,IAAA,CAAAgF,IAAA;QAEO,IAAShF,IAAA,CAAAiF,SAAA,CAAA1C,MAAoB;QAC5B,MAAAlG,QAAS,CAAA+F,IAAA,gBAAoBiC,cAAoB;AACvD;AAAO,gCACarE,IAAA,CAAAiF,SAAA,CAAAxD,GAAA;UAClB,OAAW,GAAG;QAChB,GAAAM,IAAA,YACF/B,IAAA,CAAAkE,aAAA,EAEgB,GAAAlE,IAAA,CAAAiF,SAAkB,CAC5B;QACA;MACA;MACJ,MAAO5I,QAAA,CAAA+F,IAAA,gBAAAiC,cAAA;AACT;AAEA;AACE,+BAA4B,GAC9BrE,IAAA,CAAAkE,aAAA,E","ignoreList":[]}
|
package/dist/esm/syncHost.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { asQueryInternals } from "@rocicorp/zero/bindings";
|
|
2
2
|
import { createPermissions } from "./createPermissions.mjs";
|
|
3
|
-
import { resolveServerQuery } from "./
|
|
4
|
-
import {
|
|
3
|
+
import { createZeroDirectServer, resolveServerQuery } from "./createZeroDirectServer.mjs";
|
|
4
|
+
import { createSQLiteDatabase, createZeroSQLiteTransaction, defaultLedgerTables, encodeSQLiteValue } from "./sqliteRuntime.mjs";
|
|
5
5
|
import { createMutators } from "./helpers/createMutators.mjs";
|
|
6
6
|
import { runWithAuthScope } from "./helpers/mutatorContext.mjs";
|
|
7
7
|
import { runWithQueryContext } from "./helpers/queryContext.mjs";
|
|
@@ -67,10 +67,17 @@ function createZeroSyncHostAdapter({
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
mutators._zero_cleanupResults = async () => {};
|
|
70
|
-
const
|
|
70
|
+
const transactionProvider = work => transaction(executor => work(toSQLiteExecutor(executor)));
|
|
71
|
+
const directDatabaseOptions = {
|
|
72
|
+
encodeValue: encodeValue ?? encodeSQLiteValue,
|
|
73
|
+
initializedLedgers: /* @__PURE__ */new Set(),
|
|
74
|
+
ledgerTables: defaultLedgerTables,
|
|
75
|
+
schema: options.schema,
|
|
76
|
+
transactionProvider
|
|
77
|
+
};
|
|
78
|
+
const direct = createZeroDirectServer({
|
|
71
79
|
...options,
|
|
72
|
-
|
|
73
|
-
transactionProvider: work => transaction(executor => work(toSQLiteExecutor(executor)))
|
|
80
|
+
createDatabase: () => createSQLiteDatabase(directDatabaseOptions)
|
|
74
81
|
});
|
|
75
82
|
return {
|
|
76
83
|
mutators: Object.freeze(mutators),
|
|
@@ -106,8 +113,8 @@ function defaultMapAuthData(claims) {
|
|
|
106
113
|
}
|
|
107
114
|
function toSQLiteExecutor(executor) {
|
|
108
115
|
return {
|
|
109
|
-
exec(sql, params) {
|
|
110
|
-
return executor.exec(sql, params);
|
|
116
|
+
exec(sql, params, metadata) {
|
|
117
|
+
return executor.exec(sql, params, metadata);
|
|
111
118
|
},
|
|
112
119
|
query(sql, params) {
|
|
113
120
|
return executor.query(sql, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["asQueryInternals","createPermissions","resolveServerQuery","
|
|
1
|
+
{"version":3,"names":["asQueryInternals","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","asyncTasks","modelMutators","can","createServerActions","mutationValidators","mutations","validateMutation","mutation","mutationID","numericMutationID","onZeroTransaction","toSQLiteExecutor","clientGroupID","clientID","upstreamSchema","error","asMutationApplicationError","task","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":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { asQueryInternals } from "@rocicorp/zero/bindings";
|
|
2
2
|
import { createPermissions } from "./createPermissions.native.js";
|
|
3
|
-
import { resolveServerQuery } from "./
|
|
4
|
-
import {
|
|
3
|
+
import { createZeroDirectServer, resolveServerQuery } from "./createZeroDirectServer.native.js";
|
|
4
|
+
import { createSQLiteDatabase, createZeroSQLiteTransaction, defaultLedgerTables, encodeSQLiteValue } from "./sqliteRuntime.native.js";
|
|
5
5
|
import { createMutators } from "./helpers/createMutators.native.js";
|
|
6
6
|
import { runWithAuthScope } from "./helpers/mutatorContext.native.js";
|
|
7
7
|
import { runWithQueryContext } from "./helpers/queryContext.native.js";
|
|
@@ -265,13 +265,22 @@ function createZeroSyncHostAdapter(param) {
|
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
mutators._zero_cleanupResults = async function () {};
|
|
268
|
-
var
|
|
268
|
+
var transactionProvider = function (work) {
|
|
269
|
+
return transaction(function (executor) {
|
|
270
|
+
return work(toSQLiteExecutor(executor));
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
var directDatabaseOptions = {
|
|
274
|
+
encodeValue: encodeValue !== null && encodeValue !== void 0 ? encodeValue : encodeSQLiteValue,
|
|
275
|
+
initializedLedgers: /* @__PURE__ */new Set(),
|
|
276
|
+
ledgerTables: defaultLedgerTables,
|
|
277
|
+
schema: options.schema,
|
|
278
|
+
transactionProvider
|
|
279
|
+
};
|
|
280
|
+
var direct = createZeroDirectServer({
|
|
269
281
|
...options,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
return transaction(function (executor) {
|
|
273
|
-
return work(toSQLiteExecutor(executor));
|
|
274
|
-
});
|
|
282
|
+
createDatabase: function () {
|
|
283
|
+
return createSQLiteDatabase(directDatabaseOptions);
|
|
275
284
|
}
|
|
276
285
|
});
|
|
277
286
|
return {
|
|
@@ -310,8 +319,8 @@ function defaultMapAuthData(claims) {
|
|
|
310
319
|
}
|
|
311
320
|
function toSQLiteExecutor(executor) {
|
|
312
321
|
return {
|
|
313
|
-
exec(sql, params) {
|
|
314
|
-
return executor.exec(sql, params);
|
|
322
|
+
exec(sql, params, metadata) {
|
|
323
|
+
return executor.exec(sql, params, metadata);
|
|
315
324
|
},
|
|
316
325
|
query(sql, params) {
|
|
317
326
|
return executor.query(sql, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["asQueryInternals","createPermissions","resolveServerQuery","
|
|
1
|
+
{"version":3,"names":["asQueryInternals","createPermissions","createZeroDirectServer","resolveServerQuery","createSQLiteDatabase","createZeroSQLiteTransaction","defaultLedgerTables","encodeSQLiteValue","createMutators","runWithAuthScope","runWithQueryContext","setEnvironment","setSchema","_assert_this_initialized","self","ReferenceError","_call_super","_this","derived","args","_get_prototype_of","_possible_constructor_return","_is_native_reflect_construct","Reflect","construct","constructor","apply","_class_call_check","instance","Constructor","TypeError","_construct","Parent","Class","Parent2","args2","Class2","a","push","Function","bind","_set_prototype_of","prototype","arguments","_define_property","obj","key","value","Object","defineProperty","enumerable","configurable","writable","o","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","_instanceof","left","right","Symbol","hasInstance","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper","result","Boolean","valueOf","_","MutationApplicationError","Error1","MutationApplicationError2","details","message","length","name","Error","createZeroSyncHostAdapter","param","encodeValue","mapAuthData","defaultMapAuthData","transaction","options","schema","_options_defaultAllowAdminRole","permissions","environment","adminRoleMode","defaultAllowAdminRole","transactionOptions"],"sources":["../../src/syncHost.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -20,12 +20,18 @@ describe("createZeroSyncHostAdapter", () => {
|
|
|
20
20
|
let executor;
|
|
21
21
|
let transaction;
|
|
22
22
|
let lastQueryFormat;
|
|
23
|
+
let statements;
|
|
23
24
|
beforeEach(() => {
|
|
24
25
|
db = new DatabaseSync(":memory:");
|
|
25
26
|
db.exec("CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL)");
|
|
27
|
+
statements = [];
|
|
26
28
|
executor = {
|
|
27
|
-
exec(sql, params = []) {
|
|
28
|
-
|
|
29
|
+
exec(sql, params = [], metadata) {
|
|
30
|
+
if (metadata) statements.push(metadata);
|
|
31
|
+
const result = db.prepare(sql).run(...params);
|
|
32
|
+
return {
|
|
33
|
+
changes: Number(result.changes)
|
|
34
|
+
};
|
|
29
35
|
},
|
|
30
36
|
query(sql, params = []) {
|
|
31
37
|
return db.prepare(sql).all(...params);
|
|
@@ -101,6 +107,11 @@ describe("createZeroSyncHostAdapter", () => {
|
|
|
101
107
|
}]);
|
|
102
108
|
expect(validatedAuthID).toBe("u1");
|
|
103
109
|
expect(effectAuthID).toBe("u1");
|
|
110
|
+
expect(statements).toEqual([{
|
|
111
|
+
table: "project",
|
|
112
|
+
publicTable: "project",
|
|
113
|
+
kind: "insert"
|
|
114
|
+
}]);
|
|
104
115
|
});
|
|
105
116
|
test("returns a structural application error and drops rolled-back effects", async () => {
|
|
106
117
|
let effectRuns = 0;
|