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
|
@@ -22,120 +22,19 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
22
22
|
}), mod);
|
|
23
23
|
var createZeroServerCore_exports = {};
|
|
24
24
|
__export(createZeroServerCore_exports, {
|
|
25
|
-
createZeroServerCore: () => createZeroServerCore
|
|
26
|
-
resolveServerQuery: () => resolveServerQuery
|
|
25
|
+
createZeroServerCore: () => createZeroServerCore
|
|
27
26
|
});
|
|
28
27
|
module.exports = __toCommonJS(createZeroServerCore_exports);
|
|
29
|
-
var import_zero = require("@rocicorp/zero");
|
|
30
28
|
var import_server = require("@rocicorp/zero/server");
|
|
31
|
-
var
|
|
29
|
+
var import_createZeroDirectServer = require("./createZeroDirectServer.cjs");
|
|
32
30
|
var import_createMutators = require("./helpers/createMutators.cjs");
|
|
33
31
|
var import_mutatorContext = require("./helpers/mutatorContext.cjs");
|
|
34
32
|
var import_queryContext = require("./helpers/queryContext.cjs");
|
|
35
|
-
var import_modelRegistry = require("./modelRegistry.cjs");
|
|
36
|
-
var import_run = require("./run.cjs");
|
|
37
|
-
var import_state = require("./state.cjs");
|
|
38
|
-
var import_where = require("./where.cjs");
|
|
39
|
-
var import_zeroRunner = require("./zeroRunner.cjs");
|
|
40
|
-
function resolveServerQuery({
|
|
41
|
-
authData,
|
|
42
|
-
name,
|
|
43
|
-
args,
|
|
44
|
-
queries,
|
|
45
|
-
permissions,
|
|
46
|
-
validateQuery
|
|
47
|
-
}) {
|
|
48
|
-
if (name.startsWith("permission.")) {
|
|
49
|
-
const table = name.slice("permission.".length);
|
|
50
|
-
const {
|
|
51
|
-
objOrId
|
|
52
|
-
} = args;
|
|
53
|
-
const permission = (0, import_modelRegistry.getMutationsPermissions)(table);
|
|
54
|
-
if (!permission) {
|
|
55
|
-
throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
56
|
-
}
|
|
57
|
-
(0, import_where.setEvaluatingPermission)(true);
|
|
58
|
-
try {
|
|
59
|
-
return (0, import_state.getZQL)()[table].where(eb => {
|
|
60
|
-
return permissions.buildPermissionQuery(authData, eb, permission, objOrId, table);
|
|
61
|
-
}).one();
|
|
62
|
-
} finally {
|
|
63
|
-
(0, import_where.setEvaluatingPermission)(false);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (validateQuery) {
|
|
67
|
-
validateQuery({
|
|
68
|
-
authData,
|
|
69
|
-
queryName: name,
|
|
70
|
-
params: args
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
const query = (0, import_zero.mustGetQuery)(queries, name);
|
|
74
|
-
return query.fn({
|
|
75
|
-
args,
|
|
76
|
-
ctx: authData
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
function createAsyncTaskCollector() {
|
|
80
|
-
const committed = [];
|
|
81
|
-
let attempt;
|
|
82
|
-
let completedAttempt;
|
|
83
|
-
const current = () => attempt ?? committed;
|
|
84
|
-
const queue = new Proxy([], {
|
|
85
|
-
deleteProperty(_target, property) {
|
|
86
|
-
return Reflect.deleteProperty(current(), property);
|
|
87
|
-
},
|
|
88
|
-
get(_target, property) {
|
|
89
|
-
const target = current();
|
|
90
|
-
const value = Reflect.get(target, property, target);
|
|
91
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
92
|
-
},
|
|
93
|
-
getOwnPropertyDescriptor(_target, property) {
|
|
94
|
-
return Reflect.getOwnPropertyDescriptor(current(), property);
|
|
95
|
-
},
|
|
96
|
-
has(_target, property) {
|
|
97
|
-
return Reflect.has(current(), property);
|
|
98
|
-
},
|
|
99
|
-
ownKeys() {
|
|
100
|
-
return Reflect.ownKeys(current());
|
|
101
|
-
},
|
|
102
|
-
set(_target, property, value) {
|
|
103
|
-
return Reflect.set(current(), property, value);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
const lifecycle = {
|
|
107
|
-
beginAttempt() {
|
|
108
|
-
attempt = [];
|
|
109
|
-
completedAttempt = void 0;
|
|
110
|
-
},
|
|
111
|
-
completeAttempt() {
|
|
112
|
-
completedAttempt = attempt;
|
|
113
|
-
attempt = void 0;
|
|
114
|
-
},
|
|
115
|
-
rollbackAttempt() {
|
|
116
|
-
attempt = void 0;
|
|
117
|
-
completedAttempt = void 0;
|
|
118
|
-
},
|
|
119
|
-
commitTransaction() {
|
|
120
|
-
if (completedAttempt) committed.push(...completedAttempt);
|
|
121
|
-
completedAttempt = void 0;
|
|
122
|
-
},
|
|
123
|
-
rollbackTransaction() {
|
|
124
|
-
attempt = void 0;
|
|
125
|
-
completedAttempt = void 0;
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
return {
|
|
129
|
-
committed,
|
|
130
|
-
lifecycle,
|
|
131
|
-
queue
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
33
|
function createZeroServerCore({
|
|
135
34
|
createDatabase,
|
|
136
35
|
createServerActions,
|
|
137
36
|
defaultAllowAdminRole = "all",
|
|
138
|
-
defaultMutateAuthData
|
|
37
|
+
defaultMutateAuthData,
|
|
139
38
|
models,
|
|
140
39
|
mutations: mutationValidators,
|
|
141
40
|
persistAlreadyProcessed,
|
|
@@ -144,19 +43,27 @@ function createZeroServerCore({
|
|
|
144
43
|
validateMutation,
|
|
145
44
|
validateQuery
|
|
146
45
|
}) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
46
|
+
const {
|
|
47
|
+
permissions,
|
|
48
|
+
server
|
|
49
|
+
} = (0, import_createZeroDirectServer.createZeroDirectServerRuntime)({
|
|
50
|
+
createDatabase,
|
|
51
|
+
createServerActions,
|
|
52
|
+
defaultAllowAdminRole,
|
|
53
|
+
defaultMutateAuthData,
|
|
54
|
+
models,
|
|
55
|
+
mutations: mutationValidators,
|
|
56
|
+
queries,
|
|
151
57
|
schema,
|
|
152
|
-
|
|
58
|
+
validateMutation,
|
|
59
|
+
validateQuery
|
|
153
60
|
});
|
|
154
61
|
const handleMutationRequest = async ({
|
|
155
62
|
authData,
|
|
156
63
|
request,
|
|
157
64
|
skipAsyncTasks
|
|
158
65
|
}) => {
|
|
159
|
-
const tasks = createAsyncTaskCollector();
|
|
66
|
+
const tasks = (0, import_createZeroDirectServer.createAsyncTaskCollector)();
|
|
160
67
|
const recoveryRequest = request.clone();
|
|
161
68
|
const mutators = (0, import_createMutators.createMutators)({
|
|
162
69
|
asyncTasks: tasks.queue,
|
|
@@ -191,7 +98,7 @@ function createZeroServerCore({
|
|
|
191
98
|
if (!queries) {
|
|
192
99
|
throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
193
100
|
}
|
|
194
|
-
const handler = (name, args) => resolveServerQuery({
|
|
101
|
+
const handler = (name, args) => (0, import_createZeroDirectServer.resolveServerQuery)({
|
|
195
102
|
authData,
|
|
196
103
|
name,
|
|
197
104
|
args,
|
|
@@ -214,96 +121,10 @@ function createZeroServerCore({
|
|
|
214
121
|
response
|
|
215
122
|
};
|
|
216
123
|
};
|
|
217
|
-
async function runTransaction(database, query2) {
|
|
218
|
-
try {
|
|
219
|
-
if ((0, import_mutatorContext.isInZeroMutation)()) {
|
|
220
|
-
const {
|
|
221
|
-
tx
|
|
222
|
-
} = (0, import_mutatorContext.mutatorContext)();
|
|
223
|
-
return await query2(tx);
|
|
224
|
-
}
|
|
225
|
-
return await database.transaction(query2, dummyTransactionInput);
|
|
226
|
-
} catch (err) {
|
|
227
|
-
if (err?.name !== "PermissionError") {
|
|
228
|
-
console.error(`Error running transaction(): ${err}`);
|
|
229
|
-
}
|
|
230
|
-
throw err;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
async function transaction(query2) {
|
|
234
|
-
return runTransaction(createDatabase(), query2);
|
|
235
|
-
}
|
|
236
|
-
async function runMutate(modelName, mutatorName, mutatorArg, options) {
|
|
237
|
-
let authData = options?.authData;
|
|
238
|
-
if (!authData) {
|
|
239
|
-
const scoped = (0, import_mutatorContext.getScopedAuthData)();
|
|
240
|
-
if (scoped) authData = scoped;
|
|
241
|
-
}
|
|
242
|
-
const tasks = createAsyncTaskCollector();
|
|
243
|
-
const mutators = (0, import_createMutators.createMutators)({
|
|
244
|
-
models,
|
|
245
|
-
environment: "server",
|
|
246
|
-
asyncTasks: tasks.queue,
|
|
247
|
-
authData: {
|
|
248
|
-
...defaultMutateAuthData,
|
|
249
|
-
...authData
|
|
250
|
-
},
|
|
251
|
-
createServerActions,
|
|
252
|
-
can: permissions.can,
|
|
253
|
-
validateMutation,
|
|
254
|
-
mutationValidators
|
|
255
|
-
});
|
|
256
|
-
const modelMutators = mutators[modelName];
|
|
257
|
-
const mutator = modelMutators[mutatorName];
|
|
258
|
-
await runTransaction(withTransactionLifecycle(createDatabase(), tasks.lifecycle), async tx => {
|
|
259
|
-
await mutator(tx, mutatorArg);
|
|
260
|
-
});
|
|
261
|
-
if (tasks.committed.length) {
|
|
262
|
-
const resolvedAuth = authData ?? null;
|
|
263
|
-
const promise = Promise.all(tasks.committed.map(task => (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, task)));
|
|
264
|
-
if (options?.awaitEffects) {
|
|
265
|
-
await promise;
|
|
266
|
-
} else {
|
|
267
|
-
promise.catch(err => {
|
|
268
|
-
console.error("[mutate] async tasks failed", err);
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
const mutate = new Proxy({}, {
|
|
274
|
-
get(_, modelName) {
|
|
275
|
-
return new Proxy({}, {
|
|
276
|
-
get(_2, mutatorName) {
|
|
277
|
-
return (arg, options) => runMutate(modelName, mutatorName, arg, options);
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
function query(cb, authData) {
|
|
283
|
-
const run = () => transaction(async tx => {
|
|
284
|
-
return tx.run(cb((0, import_state.getZQL)()));
|
|
285
|
-
});
|
|
286
|
-
if (authData !== void 0) {
|
|
287
|
-
return (0, import_queryContext.runWithQueryContext)({
|
|
288
|
-
authData
|
|
289
|
-
}, run);
|
|
290
|
-
}
|
|
291
|
-
return run();
|
|
292
|
-
}
|
|
293
|
-
if (queries) {
|
|
294
|
-
(0, import_run.setCustomQueries)(queries);
|
|
295
|
-
}
|
|
296
|
-
(0, import_zeroRunner.setRunner)(queryObj => {
|
|
297
|
-
return transaction(async tx => {
|
|
298
|
-
return tx.run(queryObj);
|
|
299
|
-
});
|
|
300
|
-
});
|
|
301
124
|
return {
|
|
302
125
|
handleMutationRequest,
|
|
303
126
|
handleQueryRequest,
|
|
304
|
-
|
|
305
|
-
mutate,
|
|
306
|
-
query
|
|
127
|
+
...server
|
|
307
128
|
};
|
|
308
129
|
}
|
|
309
130
|
function withTransactionLifecycle(database, lifecycle) {
|
|
@@ -353,10 +174,4 @@ function alreadyProcessedMutations(response) {
|
|
|
353
174
|
const result = mutation.result;
|
|
354
175
|
return !!id && typeof id === "object" && typeof id.clientID === "string" && typeof id.id === "number" && !!result && typeof result === "object" && result.error === "alreadyProcessed";
|
|
355
176
|
});
|
|
356
|
-
}
|
|
357
|
-
const dummyTransactionInput = {
|
|
358
|
-
clientGroupID: "unused",
|
|
359
|
-
clientID: "unused",
|
|
360
|
-
mutationID: 42,
|
|
361
|
-
upstreamSchema: "unused"
|
|
362
|
-
};
|
|
177
|
+
}
|
|
@@ -24,129 +24,25 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
24
24
|
}), mod);
|
|
25
25
|
var createZeroServerCore_exports = {};
|
|
26
26
|
__export(createZeroServerCore_exports, {
|
|
27
|
-
createZeroServerCore: () => createZeroServerCore
|
|
28
|
-
resolveServerQuery: () => resolveServerQuery
|
|
27
|
+
createZeroServerCore: () => createZeroServerCore
|
|
29
28
|
});
|
|
30
29
|
module.exports = __toCommonJS(createZeroServerCore_exports);
|
|
31
|
-
var import_zero = require("@rocicorp/zero");
|
|
32
30
|
var import_server = require("@rocicorp/zero/server");
|
|
33
|
-
var
|
|
31
|
+
var import_createZeroDirectServer = require("./createZeroDirectServer.native.js");
|
|
34
32
|
var import_createMutators = require("./helpers/createMutators.native.js");
|
|
35
33
|
var import_mutatorContext = require("./helpers/mutatorContext.native.js");
|
|
36
34
|
var import_queryContext = require("./helpers/queryContext.native.js");
|
|
37
|
-
var import_modelRegistry = require("./modelRegistry.native.js");
|
|
38
|
-
var import_run = require("./run.native.js");
|
|
39
|
-
var import_state = require("./state.native.js");
|
|
40
|
-
var import_where = require("./where.native.js");
|
|
41
|
-
var import_zeroRunner = require("./zeroRunner.native.js");
|
|
42
35
|
function _type_of(obj) {
|
|
43
36
|
"@swc/helpers - typeof";
|
|
44
37
|
|
|
45
38
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
46
39
|
}
|
|
47
|
-
function resolveServerQuery(param) {
|
|
48
|
-
var {
|
|
49
|
-
authData,
|
|
50
|
-
name,
|
|
51
|
-
args,
|
|
52
|
-
queries,
|
|
53
|
-
permissions,
|
|
54
|
-
validateQuery
|
|
55
|
-
} = param;
|
|
56
|
-
if (name.startsWith("permission.")) {
|
|
57
|
-
var table = name.slice("permission.".length);
|
|
58
|
-
var {
|
|
59
|
-
objOrId
|
|
60
|
-
} = args;
|
|
61
|
-
var permission = (0, import_modelRegistry.getMutationsPermissions)(table);
|
|
62
|
-
if (!permission) {
|
|
63
|
-
throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
64
|
-
}
|
|
65
|
-
(0, import_where.setEvaluatingPermission)(true);
|
|
66
|
-
try {
|
|
67
|
-
return (0, import_state.getZQL)()[table].where(function (eb) {
|
|
68
|
-
return permissions.buildPermissionQuery(authData, eb, permission, objOrId, table);
|
|
69
|
-
}).one();
|
|
70
|
-
} finally {
|
|
71
|
-
(0, import_where.setEvaluatingPermission)(false);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (validateQuery) {
|
|
75
|
-
validateQuery({
|
|
76
|
-
authData,
|
|
77
|
-
queryName: name,
|
|
78
|
-
params: args
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
var query = (0, import_zero.mustGetQuery)(queries, name);
|
|
82
|
-
return query.fn({
|
|
83
|
-
args,
|
|
84
|
-
ctx: authData
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
function createAsyncTaskCollector() {
|
|
88
|
-
var committed = [];
|
|
89
|
-
var attempt;
|
|
90
|
-
var completedAttempt;
|
|
91
|
-
var current = function () {
|
|
92
|
-
return attempt !== null && attempt !== void 0 ? attempt : committed;
|
|
93
|
-
};
|
|
94
|
-
var queue = new Proxy([], {
|
|
95
|
-
deleteProperty(_target, property) {
|
|
96
|
-
return Reflect.deleteProperty(current(), property);
|
|
97
|
-
},
|
|
98
|
-
get(_target, property) {
|
|
99
|
-
var target = current();
|
|
100
|
-
var value = Reflect.get(target, property, target);
|
|
101
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
102
|
-
},
|
|
103
|
-
getOwnPropertyDescriptor(_target, property) {
|
|
104
|
-
return Reflect.getOwnPropertyDescriptor(current(), property);
|
|
105
|
-
},
|
|
106
|
-
has(_target, property) {
|
|
107
|
-
return Reflect.has(current(), property);
|
|
108
|
-
},
|
|
109
|
-
ownKeys() {
|
|
110
|
-
return Reflect.ownKeys(current());
|
|
111
|
-
},
|
|
112
|
-
set(_target, property, value) {
|
|
113
|
-
return Reflect.set(current(), property, value);
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
var lifecycle = {
|
|
117
|
-
beginAttempt() {
|
|
118
|
-
attempt = [];
|
|
119
|
-
completedAttempt = void 0;
|
|
120
|
-
},
|
|
121
|
-
completeAttempt() {
|
|
122
|
-
completedAttempt = attempt;
|
|
123
|
-
attempt = void 0;
|
|
124
|
-
},
|
|
125
|
-
rollbackAttempt() {
|
|
126
|
-
attempt = void 0;
|
|
127
|
-
completedAttempt = void 0;
|
|
128
|
-
},
|
|
129
|
-
commitTransaction() {
|
|
130
|
-
if (completedAttempt) committed.push(...completedAttempt);
|
|
131
|
-
completedAttempt = void 0;
|
|
132
|
-
},
|
|
133
|
-
rollbackTransaction() {
|
|
134
|
-
attempt = void 0;
|
|
135
|
-
completedAttempt = void 0;
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
return {
|
|
139
|
-
committed,
|
|
140
|
-
lifecycle,
|
|
141
|
-
queue
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
40
|
function createZeroServerCore(param) {
|
|
145
41
|
var {
|
|
146
42
|
createDatabase,
|
|
147
43
|
createServerActions,
|
|
148
44
|
defaultAllowAdminRole = "all",
|
|
149
|
-
defaultMutateAuthData
|
|
45
|
+
defaultMutateAuthData,
|
|
150
46
|
models,
|
|
151
47
|
mutations: mutationValidators,
|
|
152
48
|
persistAlreadyProcessed,
|
|
@@ -155,12 +51,20 @@ function createZeroServerCore(param) {
|
|
|
155
51
|
validateMutation,
|
|
156
52
|
validateQuery
|
|
157
53
|
} = param;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
54
|
+
var {
|
|
55
|
+
permissions,
|
|
56
|
+
server
|
|
57
|
+
} = (0, import_createZeroDirectServer.createZeroDirectServerRuntime)({
|
|
58
|
+
createDatabase,
|
|
59
|
+
createServerActions,
|
|
60
|
+
defaultAllowAdminRole,
|
|
61
|
+
defaultMutateAuthData,
|
|
62
|
+
models,
|
|
63
|
+
mutations: mutationValidators,
|
|
64
|
+
queries,
|
|
162
65
|
schema,
|
|
163
|
-
|
|
66
|
+
validateMutation,
|
|
67
|
+
validateQuery
|
|
164
68
|
});
|
|
165
69
|
var handleMutationRequest = async function (param2) {
|
|
166
70
|
var {
|
|
@@ -168,7 +72,7 @@ function createZeroServerCore(param) {
|
|
|
168
72
|
request,
|
|
169
73
|
skipAsyncTasks
|
|
170
74
|
} = param2;
|
|
171
|
-
var tasks = createAsyncTaskCollector();
|
|
75
|
+
var tasks = (0, import_createZeroDirectServer.createAsyncTaskCollector)();
|
|
172
76
|
var recoveryRequest = request.clone();
|
|
173
77
|
var mutators = (0, import_createMutators.createMutators)({
|
|
174
78
|
asyncTasks: tasks.queue,
|
|
@@ -207,7 +111,7 @@ function createZeroServerCore(param) {
|
|
|
207
111
|
throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
208
112
|
}
|
|
209
113
|
var handler = function (name, args) {
|
|
210
|
-
return resolveServerQuery({
|
|
114
|
+
return (0, import_createZeroDirectServer.resolveServerQuery)({
|
|
211
115
|
authData,
|
|
212
116
|
name,
|
|
213
117
|
args,
|
|
@@ -234,102 +138,10 @@ function createZeroServerCore(param) {
|
|
|
234
138
|
response
|
|
235
139
|
};
|
|
236
140
|
};
|
|
237
|
-
async function runTransaction(database, query2) {
|
|
238
|
-
try {
|
|
239
|
-
if ((0, import_mutatorContext.isInZeroMutation)()) {
|
|
240
|
-
var {
|
|
241
|
-
tx
|
|
242
|
-
} = (0, import_mutatorContext.mutatorContext)();
|
|
243
|
-
return await query2(tx);
|
|
244
|
-
}
|
|
245
|
-
return await database.transaction(query2, dummyTransactionInput);
|
|
246
|
-
} catch (err) {
|
|
247
|
-
if ((err === null || err === void 0 ? void 0 : err.name) !== "PermissionError") {
|
|
248
|
-
console.error(`Error running transaction(): ${err}`);
|
|
249
|
-
}
|
|
250
|
-
throw err;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
async function transaction(query2) {
|
|
254
|
-
return runTransaction(createDatabase(), query2);
|
|
255
|
-
}
|
|
256
|
-
async function runMutate(modelName, mutatorName, mutatorArg, options) {
|
|
257
|
-
var authData = options === null || options === void 0 ? void 0 : options.authData;
|
|
258
|
-
if (!authData) {
|
|
259
|
-
var scoped = (0, import_mutatorContext.getScopedAuthData)();
|
|
260
|
-
if (scoped) authData = scoped;
|
|
261
|
-
}
|
|
262
|
-
var tasks = createAsyncTaskCollector();
|
|
263
|
-
var mutators = (0, import_createMutators.createMutators)({
|
|
264
|
-
models,
|
|
265
|
-
environment: "server",
|
|
266
|
-
asyncTasks: tasks.queue,
|
|
267
|
-
authData: {
|
|
268
|
-
...defaultMutateAuthData,
|
|
269
|
-
...authData
|
|
270
|
-
},
|
|
271
|
-
createServerActions,
|
|
272
|
-
can: permissions.can,
|
|
273
|
-
validateMutation,
|
|
274
|
-
mutationValidators
|
|
275
|
-
});
|
|
276
|
-
var modelMutators = mutators[modelName];
|
|
277
|
-
var mutator = modelMutators[mutatorName];
|
|
278
|
-
await runTransaction(withTransactionLifecycle(createDatabase(), tasks.lifecycle), async function (tx) {
|
|
279
|
-
await mutator(tx, mutatorArg);
|
|
280
|
-
});
|
|
281
|
-
if (tasks.committed.length) {
|
|
282
|
-
var resolvedAuth = authData !== null && authData !== void 0 ? authData : null;
|
|
283
|
-
var promise = Promise.all(tasks.committed.map(function (task) {
|
|
284
|
-
return (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, task);
|
|
285
|
-
}));
|
|
286
|
-
if (options === null || options === void 0 ? void 0 : options.awaitEffects) {
|
|
287
|
-
await promise;
|
|
288
|
-
} else {
|
|
289
|
-
promise.catch(function (err) {
|
|
290
|
-
console.error("[mutate] async tasks failed", err);
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
var mutate = new Proxy({}, {
|
|
296
|
-
get(_, modelName) {
|
|
297
|
-
return new Proxy({}, {
|
|
298
|
-
get(_2, mutatorName) {
|
|
299
|
-
return function (arg, options) {
|
|
300
|
-
return runMutate(modelName, mutatorName, arg, options);
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
function query(cb, authData) {
|
|
307
|
-
var run = function () {
|
|
308
|
-
return transaction(async function (tx) {
|
|
309
|
-
return tx.run(cb((0, import_state.getZQL)()));
|
|
310
|
-
});
|
|
311
|
-
};
|
|
312
|
-
if (authData !== void 0) {
|
|
313
|
-
return (0, import_queryContext.runWithQueryContext)({
|
|
314
|
-
authData
|
|
315
|
-
}, run);
|
|
316
|
-
}
|
|
317
|
-
return run();
|
|
318
|
-
}
|
|
319
|
-
if (queries) {
|
|
320
|
-
(0, import_run.setCustomQueries)(queries);
|
|
321
|
-
}
|
|
322
|
-
(0, import_zeroRunner.setRunner)(function (queryObj) {
|
|
323
|
-
return transaction(async function (tx) {
|
|
324
|
-
return tx.run(queryObj);
|
|
325
|
-
});
|
|
326
|
-
});
|
|
327
141
|
return {
|
|
328
142
|
handleMutationRequest,
|
|
329
143
|
handleQueryRequest,
|
|
330
|
-
|
|
331
|
-
mutate,
|
|
332
|
-
query
|
|
144
|
+
...server
|
|
333
145
|
};
|
|
334
146
|
}
|
|
335
147
|
function withTransactionLifecycle(database, lifecycle) {
|
|
@@ -380,10 +192,4 @@ function alreadyProcessedMutations(response) {
|
|
|
380
192
|
return !!id && (typeof id === "undefined" ? "undefined" : _type_of(id)) === "object" && typeof id.clientID === "string" && typeof id.id === "number" && !!result && (typeof result === "undefined" ? "undefined" : _type_of(result)) === "object" && result.error === "alreadyProcessed";
|
|
381
193
|
});
|
|
382
194
|
}
|
|
383
|
-
var dummyTransactionInput = {
|
|
384
|
-
clientGroupID: "unused",
|
|
385
|
-
clientID: "unused",
|
|
386
|
-
mutationID: 42,
|
|
387
|
-
upstreamSchema: "unused"
|
|
388
|
-
};
|
|
389
195
|
//# sourceMappingURL=createZeroServerCore.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServerCore_exports","__export","createZeroServerCore","resolveServerQuery","module","exports","import_zero","require","import_server","import_createPermissions","import_createMutators","import_mutatorContext","import_queryContext","import_modelRegistry","import_run","import_state","import_where","import_zeroRunner","_type_of","obj","Symbol","constructor","param","authData","name","args","queries","permissions","validateQuery","startsWith","table","slice","length","objOrId","permission","getMutationsPermissions","Error","setEvaluatingPermission","getZQL","where","eb","buildPermissionQuery","one","queryName","params","query","mustGetQuery","fn","ctx","createAsyncTaskCollector","committed","attempt","completedAttempt","current","queue","Proxy","deleteProperty","_target","property","Reflect","get","target","bind","getOwnPropertyDescriptor","has","ownKeys","set","lifecycle","beginAttempt","completeAttempt","rollbackAttempt","commitTransaction","push","rollbackTransaction","createDatabase","createServerActions","defaultAllowAdminRole","defaultMutateAuthData","models","mutations","mutationValidators","persistAlreadyProcessed","schema","validateMutation","setSchema","setEnvironment","createPermissions","environment","adminRoleMode","handleMutationRequest","param2","request","skipAsyncTasks","tasks","recoveryRequest","clone","mutators","createMutators","asyncTasks","can","processor","PushProcessor","withTransactionLifecycle","response","process","parsed","parseAlreadyProcessed","Promise","all","map","task","runWithAuthScope","catch","err","console","error","handleQueryRequest","handler","userID","id","runWithQueryContext","runTransaction","database","query2","isInZeroMutation","tx","mutatorContext","transaction","dummyTransactionInput","runMutate","modelName","mutatorName","mutatorArg","options","scoped","getScopedAuthData","modelMutators","mutator","resolvedAuth","promise","awaitEffects","mutate","_","_2","arg","cb","run","setCustomQueries","setRunner","queryObj","callback","input","hooks","result","alreadyProcessedMutations","upstreamSchema","URL","url","searchParams","body","json","clientGroupID","Array","isArray","filter","mutation","clientID","mutationID"],"sources":["../../src/createZeroServerCore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServerCore_exports","__export","createZeroServerCore","module","exports","import_server","require","import_createZeroDirectServer","import_createMutators","import_mutatorContext","import_queryContext","_type_of","obj","Symbol","constructor","param","createDatabase","createServerActions","defaultAllowAdminRole","defaultMutateAuthData","models","mutations","mutationValidators","persistAlreadyProcessed","queries","schema","validateMutation","validateQuery","permissions","server","createZeroDirectServerRuntime","handleMutationRequest","param2","authData","request","skipAsyncTasks","tasks","createAsyncTaskCollector","recoveryRequest","clone","mutators","createMutators","asyncTasks","queue","can","environment","processor","PushProcessor","withTransactionLifecycle","lifecycle","response","process","parsed","parseAlreadyProcessed","committed","length","Promise","all","map","task","runWithAuthScope","catch","err","console","error","handleQueryRequest","Error","handler","name","args","resolveServerQuery","userID","id","runWithQueryContext","database","transaction","callback","input","tx","hooks","beginAttempt","result","completeAttempt","rollbackAttempt","commitTransaction","rollbackTransaction","alreadyProcessedMutations","upstreamSchema","URL","url","searchParams","get","body","json","clientGroupID","Array","isArray","filter","mutation","clientID"],"sources":["../../src/createZeroServerCore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/generate.cjs
CHANGED
|
@@ -350,6 +350,11 @@ function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
|
|
|
350
350
|
}
|
|
351
351
|
visit(sourceFile);
|
|
352
352
|
}
|
|
353
|
+
function getInstantiatedPropertyType(checker, parent, name) {
|
|
354
|
+
const resolveProperty = Reflect.get(checker, "getTypeOfPropertyOfType");
|
|
355
|
+
if (typeof resolveProperty !== "function") return void 0;
|
|
356
|
+
return Reflect.apply(resolveProperty, checker, [parent, name]);
|
|
357
|
+
}
|
|
353
358
|
function tsTypeToValibot(ts, checker, type, seen) {
|
|
354
359
|
if (!seen) seen = /* @__PURE__ */new Set();
|
|
355
360
|
const flags = type.getFlags();
|
|
@@ -398,7 +403,9 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
398
403
|
if (hasUndefined) inner = `v.optional(${inner})`;
|
|
399
404
|
return inner;
|
|
400
405
|
}
|
|
401
|
-
const resolveSymbolType = prop => {
|
|
406
|
+
const resolveSymbolType = (parent, prop) => {
|
|
407
|
+
const instantiated = getInstantiatedPropertyType(checker, parent, prop.getName());
|
|
408
|
+
if (instantiated) return instantiated;
|
|
402
409
|
if (prop.valueDeclaration) return checker.getTypeOfSymbolAtLocation(prop, prop.valueDeclaration);
|
|
403
410
|
if (prop.declarations?.[0]) return checker.getTypeOfSymbolAtLocation(prop, prop.declarations[0]);
|
|
404
411
|
return checker.getDeclaredTypeOfSymbol(prop);
|
|
@@ -410,7 +417,7 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
410
417
|
for (const prop of props2) {
|
|
411
418
|
const name = prop.getName();
|
|
412
419
|
if ((0, import_generate_helpers.shouldSkipObjectKey)(name)) continue;
|
|
413
|
-
const propType = resolveSymbolType(prop);
|
|
420
|
+
const propType = resolveSymbolType(type, prop);
|
|
414
421
|
const isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
|
|
415
422
|
let val = recurse(propType);
|
|
416
423
|
if (isOptional && !val.startsWith("v.optional(")) {
|
|
@@ -443,7 +450,7 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
443
450
|
for (const prop of props) {
|
|
444
451
|
const name = prop.getName();
|
|
445
452
|
if ((0, import_generate_helpers.shouldSkipObjectKey)(name)) continue;
|
|
446
|
-
const propType = resolveSymbolType(prop);
|
|
453
|
+
const propType = resolveSymbolType(type, prop);
|
|
447
454
|
const isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
|
|
448
455
|
let val = recurse(propType);
|
|
449
456
|
if (isOptional && !val.startsWith("v.optional(")) {
|
|
@@ -491,6 +491,11 @@ function extractSchemaColumns(ts, sourceFile, columns, primaryKeys) {
|
|
|
491
491
|
}
|
|
492
492
|
visit(sourceFile);
|
|
493
493
|
}
|
|
494
|
+
function getInstantiatedPropertyType(checker, parent, name) {
|
|
495
|
+
var resolveProperty = Reflect.get(checker, "getTypeOfPropertyOfType");
|
|
496
|
+
if (typeof resolveProperty !== "function") return void 0;
|
|
497
|
+
return Reflect.apply(resolveProperty, checker, [parent, name]);
|
|
498
|
+
}
|
|
494
499
|
function tsTypeToValibot(ts, checker, type, seen) {
|
|
495
500
|
var _checker_isArrayType, _checker_isArrayLikeType;
|
|
496
501
|
if (!seen) seen = /* @__PURE__ */new Set();
|
|
@@ -554,8 +559,10 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
554
559
|
if (hasUndefined) inner1 = `v.optional(${inner1})`;
|
|
555
560
|
return inner1;
|
|
556
561
|
}
|
|
557
|
-
var resolveSymbolType = function (prop2) {
|
|
562
|
+
var resolveSymbolType = function (parent, prop2) {
|
|
558
563
|
var _prop_declarations;
|
|
564
|
+
var instantiated = getInstantiatedPropertyType(checker, parent, prop2.getName());
|
|
565
|
+
if (instantiated) return instantiated;
|
|
559
566
|
if (prop2.valueDeclaration) return checker.getTypeOfSymbolAtLocation(prop2, prop2.valueDeclaration);
|
|
560
567
|
if ((_prop_declarations = prop2.declarations) === null || _prop_declarations === void 0 ? void 0 : _prop_declarations[0]) return checker.getTypeOfSymbolAtLocation(prop2, prop2.declarations[0]);
|
|
561
568
|
return checker.getDeclaredTypeOfSymbol(prop2);
|
|
@@ -572,7 +579,7 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
572
579
|
var prop = _step.value;
|
|
573
580
|
var name1 = prop.getName();
|
|
574
581
|
if ((0, import_generate_helpers.shouldSkipObjectKey)(name1)) continue;
|
|
575
|
-
var propType = resolveSymbolType(prop);
|
|
582
|
+
var propType = resolveSymbolType(type, prop);
|
|
576
583
|
var isOptional = !!(prop.getFlags() & ts.SymbolFlags.Optional);
|
|
577
584
|
var val = recurse(propType);
|
|
578
585
|
if (isOptional && !val.startsWith("v.optional(")) {
|
|
@@ -628,7 +635,7 @@ function tsTypeToValibot(ts, checker, type, seen) {
|
|
|
628
635
|
var prop1 = _step1.value;
|
|
629
636
|
var name3 = prop1.getName();
|
|
630
637
|
if ((0, import_generate_helpers.shouldSkipObjectKey)(name3)) continue;
|
|
631
|
-
var propType1 = resolveSymbolType(prop1);
|
|
638
|
+
var propType1 = resolveSymbolType(type, prop1);
|
|
632
639
|
var isOptional1 = !!(prop1.getFlags() & ts.SymbolFlags.Optional);
|
|
633
640
|
var val1 = recurse(propType1);
|
|
634
641
|
if (isOptional1 && !val1.startsWith("v.optional(")) {
|