on-zero 0.6.21 → 0.6.22-1784492767691
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/createPermissions.cjs +0 -2
- package/dist/cjs/createPermissions.native.js +0 -2
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createZeroSQLiteServer.test.cjs +97 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js +108 -0
- package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/cjs/httpPull/transport.test.cjs +30 -9
- package/dist/cjs/httpPull/transport.test.native.js +43 -11
- package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
- package/dist/cjs/httpPullTransport.cjs +63 -8
- package/dist/cjs/httpPullTransport.native.js +70 -10
- package/dist/cjs/httpPullTransport.native.js.map +1 -1
- package/dist/cjs/mutations.cjs +4 -11
- package/dist/cjs/mutations.native.js +4 -11
- package/dist/cjs/mutations.native.js.map +1 -1
- package/dist/esm/createPermissions.mjs +0 -2
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +0 -2
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.mjs +97 -0
- package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
- package/dist/esm/createZeroSQLiteServer.test.native.js +108 -0
- package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
- package/dist/esm/httpPull/transport.test.mjs +30 -9
- package/dist/esm/httpPull/transport.test.mjs.map +1 -1
- package/dist/esm/httpPull/transport.test.native.js +43 -11
- package/dist/esm/httpPull/transport.test.native.js.map +1 -1
- package/dist/esm/httpPullTransport.mjs +63 -8
- package/dist/esm/httpPullTransport.mjs.map +1 -1
- package/dist/esm/httpPullTransport.native.js +70 -10
- package/dist/esm/httpPullTransport.native.js.map +1 -1
- package/dist/esm/mutations.mjs +4 -11
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js +4 -11
- package/dist/esm/mutations.native.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +27 -8
- package/src/createPermissions.ts +0 -2
- package/src/createZeroSQLiteServer.test.ts +94 -0
- package/src/httpPull/transport.test.ts +31 -10
- package/src/httpPullTransport.ts +97 -11
- package/src/mutations.ts +7 -21
- package/types/createPermissions.d.ts.map +1 -1
- package/types/httpPullTransport.d.ts +3 -1
- package/types/httpPullTransport.d.ts.map +1 -1
- package/types/mutations.d.ts +1 -1
- package/types/mutations.d.ts.map +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +0 -36
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +0 -41
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +0 -1
- package/dist/esm/helpers/didRunPermissionCheck.mjs +0 -10
- package/dist/esm/helpers/didRunPermissionCheck.mjs.map +0 -1
- package/dist/esm/helpers/didRunPermissionCheck.native.js +0 -12
- package/dist/esm/helpers/didRunPermissionCheck.native.js.map +0 -1
- package/src/helpers/didRunPermissionCheck.ts +0 -16
- package/types/helpers/didRunPermissionCheck.d.ts +0 -4
- package/types/helpers/didRunPermissionCheck.d.ts.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ensure } from "@take-out/helpers";
|
|
2
|
-
import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.native.js";
|
|
3
2
|
import { mutatorContext } from "./helpers/mutatorContext.native.js";
|
|
4
3
|
import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.native.js";
|
|
5
4
|
import { getZQL } from "./state.native.js";
|
|
@@ -193,7 +192,6 @@ function createPermissions(param) {
|
|
|
193
192
|
throw new Error(`Must use where('table') style where to pass to can()`);
|
|
194
193
|
}
|
|
195
194
|
await ensurePermission(ctx.tx, ctx.authData, tableName, where, obj);
|
|
196
|
-
setDidRunPermissionCheck(ctx);
|
|
197
195
|
}
|
|
198
196
|
};
|
|
199
197
|
async function ensurePermission(tx, authData, tableName, where, obj) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensure","
|
|
1
|
+
{"version":3,"names":["ensure","mutatorContext","prettyFormatZeroQuery","getZQL","getWhereTableName","_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","o","Object","setPrototypeOf","getPrototypeOf","o2","__proto__","_inherits","subClass","superClass","create","value","writable","configurable","_is_native_function","fn","toString","call","indexOf","_type_of","p","p2","obj","Symbol","_wrap_native_super","_cache","Map","wrapNativeSuper","has","get","set","Wrapper","enumerable"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,8 @@ import { asQueryInternals } from "@rocicorp/zero/bindings";
|
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, test } from "vitest";
|
|
5
5
|
import { createZeroSQLiteServer } from "./createZeroSQLiteServer.mjs";
|
|
6
6
|
import { zeroHttpFixtureSchema } from "./httpPull/fixtureSchema.mjs";
|
|
7
|
+
import { mutations } from "./mutations.mjs";
|
|
8
|
+
import { serverWhere } from "./serverWhere.mjs";
|
|
7
9
|
const note = table("note").from("note_records").columns({
|
|
8
10
|
id: string().from("note_id"),
|
|
9
11
|
done: boolean(),
|
|
@@ -252,6 +254,101 @@ describe("createZeroSQLiteServer", () => {
|
|
|
252
254
|
message: "rejected"
|
|
253
255
|
});
|
|
254
256
|
});
|
|
257
|
+
test("allows a custom CRUD mutation to no-op without an automatic permission check", async () => {
|
|
258
|
+
const projectPermission = serverWhere("project", q => q.cmp("ownerId", "u1"));
|
|
259
|
+
const projectMutations = mutations("project", projectPermission, {
|
|
260
|
+
insert: async () => {}
|
|
261
|
+
});
|
|
262
|
+
const server = createZeroSQLiteServer({
|
|
263
|
+
schema: zeroHttpFixtureSchema,
|
|
264
|
+
models: {
|
|
265
|
+
project: {
|
|
266
|
+
mutate: projectMutations
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
createServerActions: () => ({}),
|
|
270
|
+
transactionProvider
|
|
271
|
+
});
|
|
272
|
+
const result = await server.handleMutationRequest({
|
|
273
|
+
authData: {
|
|
274
|
+
id: "u1",
|
|
275
|
+
role: "user"
|
|
276
|
+
},
|
|
277
|
+
request: pushRequest(1, "project.insert", {
|
|
278
|
+
id: "p1",
|
|
279
|
+
ownerId: "u1",
|
|
280
|
+
name: "skip"
|
|
281
|
+
})
|
|
282
|
+
});
|
|
283
|
+
expect(result.response.mutations[0].result).toEqual({});
|
|
284
|
+
expect(db.prepare("SELECT * FROM project").all()).toEqual([]);
|
|
285
|
+
});
|
|
286
|
+
test("rolls back when a custom CRUD mutation throws", async () => {
|
|
287
|
+
const projectPermission = serverWhere("project", q => q.cmp("ownerId", "u1"));
|
|
288
|
+
const projectMutations = mutations("project", projectPermission, {
|
|
289
|
+
insert: async ({
|
|
290
|
+
tx
|
|
291
|
+
}, value) => {
|
|
292
|
+
await tx.mutate.project.insert(value);
|
|
293
|
+
throw new Error("denied by custom validation");
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
const server = createZeroSQLiteServer({
|
|
297
|
+
schema: zeroHttpFixtureSchema,
|
|
298
|
+
models: {
|
|
299
|
+
project: {
|
|
300
|
+
mutate: projectMutations
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
createServerActions: () => ({}),
|
|
304
|
+
transactionProvider
|
|
305
|
+
});
|
|
306
|
+
const result = await server.handleMutationRequest({
|
|
307
|
+
authData: {
|
|
308
|
+
id: "u2",
|
|
309
|
+
role: "user"
|
|
310
|
+
},
|
|
311
|
+
request: pushRequest(1, "project.insert", {
|
|
312
|
+
id: "p2",
|
|
313
|
+
ownerId: "u2",
|
|
314
|
+
name: "unauthorized"
|
|
315
|
+
})
|
|
316
|
+
});
|
|
317
|
+
expect(result.response.mutations[0].result).toMatchObject({
|
|
318
|
+
error: "app",
|
|
319
|
+
message: "denied by custom validation"
|
|
320
|
+
});
|
|
321
|
+
expect(db.prepare("SELECT * FROM project").all()).toEqual([]);
|
|
322
|
+
});
|
|
323
|
+
test("permission-checks generated CRUD mutations", async () => {
|
|
324
|
+
let inserted;
|
|
325
|
+
let permissionChecks = 0;
|
|
326
|
+
const projectPermission = serverWhere("project", q => q.cmp("ownerId", "u1"));
|
|
327
|
+
const projectMutations = mutations("project", projectPermission);
|
|
328
|
+
const value = {
|
|
329
|
+
id: "p3",
|
|
330
|
+
ownerId: "u2",
|
|
331
|
+
name: "unauthorized"
|
|
332
|
+
};
|
|
333
|
+
await expect(projectMutations.insert({
|
|
334
|
+
tx: {
|
|
335
|
+
mutate: {
|
|
336
|
+
project: {
|
|
337
|
+
insert: async row => {
|
|
338
|
+
inserted = row;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
can: async (_where, row) => {
|
|
344
|
+
permissionChecks++;
|
|
345
|
+
expect(row).toEqual(value);
|
|
346
|
+
throw new Error("denied");
|
|
347
|
+
}
|
|
348
|
+
}, value)).rejects.toThrow("denied");
|
|
349
|
+
expect(inserted).toEqual(value);
|
|
350
|
+
expect(permissionChecks).toBe(1);
|
|
351
|
+
});
|
|
255
352
|
test("recovers duplicate results and deletes them through the cleanup mutation", async () => {
|
|
256
353
|
const server = createZeroSQLiteServer({
|
|
257
354
|
schema: zeroHttpFixtureSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","statements","exec","join","executor","sql","params","push","result","prepare","run","changes","Number","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","enqueueTask","barrier","createServerActions","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","asyncTasks","toHaveLength","toBe","task","fail","toMatchObject","message","get","stored","value2","duplicate","count","upsert","update","delete","q","resolves","transaction","location","one","dbTransaction","publicTable","kind","related","hydrated","receivedQueryName","hydratedExecutor","_ast","_format","queryName","hydratedProvider","nameAndArgs"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","mutations","serverWhere","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","statements","exec","join","executor","sql","params","push","result","prepare","run","changes","Number","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","enqueueTask","barrier","createServerActions","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","asyncTasks","toHaveLength","toBe","task","fail","toMatchObject","message","get","stored","projectPermission","q","cmp","projectMutations","role","inserted","permissionChecks","can","_where","rejects","toThrow","value2","duplicate","count","upsert","update","delete","resolves","transaction","location","one","dbTransaction","publicTable","kind","related","hydrated","receivedQueryName","hydratedExecutor","_ast","_format","queryName","hydratedProvider","nameAndArgs"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,8 @@ import { asQueryInternals } from "@rocicorp/zero/bindings";
|
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, test } from "vitest";
|
|
5
5
|
import { createZeroSQLiteServer } from "./createZeroSQLiteServer.native.js";
|
|
6
6
|
import { zeroHttpFixtureSchema } from "./httpPull/fixtureSchema.native.js";
|
|
7
|
+
import { mutations } from "./mutations.native.js";
|
|
8
|
+
import { serverWhere } from "./serverWhere.native.js";
|
|
7
9
|
var note = table("note").from("note_records").columns({
|
|
8
10
|
id: string().from("note_id"),
|
|
9
11
|
done: boolean(),
|
|
@@ -266,6 +268,112 @@ describe("createZeroSQLiteServer", function () {
|
|
|
266
268
|
message: "rejected"
|
|
267
269
|
});
|
|
268
270
|
});
|
|
271
|
+
test("allows a custom CRUD mutation to no-op without an automatic permission check", async function () {
|
|
272
|
+
var projectPermission = serverWhere("project", function (q) {
|
|
273
|
+
return q.cmp("ownerId", "u1");
|
|
274
|
+
});
|
|
275
|
+
var projectMutations = mutations("project", projectPermission, {
|
|
276
|
+
insert: async function () {}
|
|
277
|
+
});
|
|
278
|
+
var server = createZeroSQLiteServer({
|
|
279
|
+
schema: zeroHttpFixtureSchema,
|
|
280
|
+
models: {
|
|
281
|
+
project: {
|
|
282
|
+
mutate: projectMutations
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
createServerActions: function () {
|
|
286
|
+
return {};
|
|
287
|
+
},
|
|
288
|
+
transactionProvider
|
|
289
|
+
});
|
|
290
|
+
var result = await server.handleMutationRequest({
|
|
291
|
+
authData: {
|
|
292
|
+
id: "u1",
|
|
293
|
+
role: "user"
|
|
294
|
+
},
|
|
295
|
+
request: pushRequest(1, "project.insert", {
|
|
296
|
+
id: "p1",
|
|
297
|
+
ownerId: "u1",
|
|
298
|
+
name: "skip"
|
|
299
|
+
})
|
|
300
|
+
});
|
|
301
|
+
expect(result.response.mutations[0].result).toEqual({});
|
|
302
|
+
expect(db.prepare("SELECT * FROM project").all()).toEqual([]);
|
|
303
|
+
});
|
|
304
|
+
test("rolls back when a custom CRUD mutation throws", async function () {
|
|
305
|
+
var projectPermission = serverWhere("project", function (q) {
|
|
306
|
+
return q.cmp("ownerId", "u1");
|
|
307
|
+
});
|
|
308
|
+
var projectMutations = mutations("project", projectPermission, {
|
|
309
|
+
insert: async function (param, value) {
|
|
310
|
+
var {
|
|
311
|
+
tx
|
|
312
|
+
} = param;
|
|
313
|
+
await tx.mutate.project.insert(value);
|
|
314
|
+
throw new Error("denied by custom validation");
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
var server = createZeroSQLiteServer({
|
|
318
|
+
schema: zeroHttpFixtureSchema,
|
|
319
|
+
models: {
|
|
320
|
+
project: {
|
|
321
|
+
mutate: projectMutations
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
createServerActions: function () {
|
|
325
|
+
return {};
|
|
326
|
+
},
|
|
327
|
+
transactionProvider
|
|
328
|
+
});
|
|
329
|
+
var result = await server.handleMutationRequest({
|
|
330
|
+
authData: {
|
|
331
|
+
id: "u2",
|
|
332
|
+
role: "user"
|
|
333
|
+
},
|
|
334
|
+
request: pushRequest(1, "project.insert", {
|
|
335
|
+
id: "p2",
|
|
336
|
+
ownerId: "u2",
|
|
337
|
+
name: "unauthorized"
|
|
338
|
+
})
|
|
339
|
+
});
|
|
340
|
+
expect(result.response.mutations[0].result).toMatchObject({
|
|
341
|
+
error: "app",
|
|
342
|
+
message: "denied by custom validation"
|
|
343
|
+
});
|
|
344
|
+
expect(db.prepare("SELECT * FROM project").all()).toEqual([]);
|
|
345
|
+
});
|
|
346
|
+
test("permission-checks generated CRUD mutations", async function () {
|
|
347
|
+
var inserted;
|
|
348
|
+
var permissionChecks = 0;
|
|
349
|
+
var projectPermission = serverWhere("project", function (q) {
|
|
350
|
+
return q.cmp("ownerId", "u1");
|
|
351
|
+
});
|
|
352
|
+
var projectMutations = mutations("project", projectPermission);
|
|
353
|
+
var value = {
|
|
354
|
+
id: "p3",
|
|
355
|
+
ownerId: "u2",
|
|
356
|
+
name: "unauthorized"
|
|
357
|
+
};
|
|
358
|
+
await expect(projectMutations.insert({
|
|
359
|
+
tx: {
|
|
360
|
+
mutate: {
|
|
361
|
+
project: {
|
|
362
|
+
insert: async function (row) {
|
|
363
|
+
inserted = row;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
can: async function (_where, row) {
|
|
369
|
+
permissionChecks++;
|
|
370
|
+
expect(row).toEqual(value);
|
|
371
|
+
throw new Error("denied");
|
|
372
|
+
}
|
|
373
|
+
}, value)).rejects.toThrow("denied");
|
|
374
|
+
expect(inserted).toEqual(value);
|
|
375
|
+
expect(permissionChecks).toBe(1);
|
|
376
|
+
});
|
|
269
377
|
test("recovers duplicate results and deletes them through the cleanup mutation", async function () {
|
|
270
378
|
var server = createZeroSQLiteServer({
|
|
271
379
|
schema: zeroHttpFixtureSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","param","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","statements","exec","join","executor","sql","params","arguments","length","push","result","prepare","run","changes","Number","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","enqueueTask","barrier","createServerActions","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","asyncTasks","toHaveLength","toBe","task","fail","toMatchObject","message","get","stored","value2","duplicate","count","upsert","update","delete","q","resolves","transaction","location","one","dbTransaction"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAwC;AAEjD,SAASC,OAAA,EAASC,YAAA,EAAcC,IAAA,EAAMC,aAAA,EAAeC,MAAA,EAAQC,KAAA,QAAa;AAC1E,SAASC,gBAAA,QAAwB;AACjC,SAASC,SAAA,EAAWC,UAAA,EAAYC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAE9D,SAASC,sBAAA,QAA8B;AACvC,SAASC,qBAAA,QAA6B;AAQtC,IAAAC,IAAM,GAAAT,KAAO,OAAM,EAAMU,IACtB,eAAK,EAAcC,OACnB;EACCC,EAAA,EAAIb,MAAA,CAAO,EAAEW,IAAA,CAAK,SAAS;EAC3BG,IAAA,EAAMlB,OAAA,CAAQ;EACdmB,IAAA,EAAMjB,IAAA,CAAwB,EAAEkB,QAAA,CAAS;AAC3C,CAAC,EACAC,UAAA,CAAW,IAAI;AAElB,IAAAC,iBAAM,GAAArB,YAAoB;EACxBsB,MAAA,EAAQ,CACRT,IAAA,CACA;EACDX,aAAA;EAEDqB,mBAAqB;AACrB;AAGA,IAAAC,MAAM,GAAOpB,KAAA,CAAM,QAChB,EAAAW,OAAK;EAEJC,EAAA,EAAIb,MAAA,CAAO;AAAgB,EAC3B,CAAAiB,UAAQ,KAAQ;AAAkB,IAClCK,UAAU,GAAwBrB,KAAE,aAAK,EAAAW,OAAe;EACzDW,QACA,EAAAvB,MAAe;EAClBwB,MAAM,EAAAxB,MAAA;AAA4B,EAChC,CAAAiB,UAAS,WAAQ,UAAY,CAAI;AAAA,IACjCQ,IAAA,GAAAxB,KAAA,CAAe,QAAAU,IAAA,iBAAAC,OAAA;EAAAC,EACb,EAAAb,MAAA,GAAAW,IAAc,UAAW;EAAYe,MACnC,EAAA9B,OAAO,GAAAe,IAAA;EAAAgB,QACL,EAAA7B,IAAA,GAAAa,IAAA;AAAA,GAAAM,UACE;AAAkB,IAAAW,YAClB,GAAA/B,YAAY;EAAAsB,MAAA,EACZ,CAAsBE,MACxB,EAAAC,UACA,EAAAG,IAAA,CACwB;EACV1B,aACZ,GAAgBA,aAClB,CAAAsB,MAAA,YAAAQ,KAAA;IACF;MAAAC;IAAA,IAAAD,KAAA;IACA;MACJE,KAAA,EAAAD,IAAA;QACDE,WAAA,GAEQ,KACA;QACLC,UAAQ,EAAAX,UAAA;QACRY,SAAW,GACL,UAAK;MAET;QACEF,WAAA,GACE,QAAM,CACN;QACAC,UAAU,EAAAR,IAAA;QACVS,SAAA,GACA,IAAM;MAER;IACF;EAAA,EACA;AACW;AACS,SACrBC,YAAAtB,EAAA,EAAAuB,IAAA,EAAAC,IAAA;EACH,OAAC,IAAAC,OAAA;IACHC,MAAA;IAEAC,OAAS;MACP,cAAW,EAAQ;IACjB;IACAC,IAAA,EAAAC,IAAS,CAAEC,SAAA;MACXC,aAAW,OAAU;MACnBC,SAAA,GACA;QACEC,IAAA;QACEjC,EAAA;QACAkC,QAAI;QACJX,IAAA;QACAC,IAAA,EAAM,CACNA,IAAM;QACJW,SACE;MAAe,EACL;MACMC,WAClB;MAAAD,SACF;MAAAE,SACA,QAAW,GAAArC;IAAA;EACb;AACF;AACa,SACbsC,cAAWA,CAAA;EAAA,OACX,IAAAb,OAAW;IACbC,MAAC;IACFC,OAAA;MACH;IAEA;IACEC,IAAI,EAAAC,IAAA,CAAAC,SAAA;MACAC,aAAA;MACAC,SAAA,GACA;QAEJC,IAAW,UAAM;QACVjC,EAAA,EAAI;QACNkC,QAAA;QACDX,IAAA;QACEC,IAAA,GACA;UACKO,aAAI;UACbG,QAAA;UAEAK,cAAuB;QACvB,EACM;QACJJ,SAAW;MACT,EACA;MACAC,WAAS;MACXD,SAAA;MACAE,SAAM;IACJ;EAAyD;AAC3D;AAEE7C,QAAA,yBAAI;EACJ,IAAAgD,EAAA;EACE,IAAAC,oBAAU;EAAiD,IAAAC,mBAC9C;EACb,IAAAC,UAAA;EAGiBpD,UACb,aAAQ;IAAAiD,EAAA,OACR1D,YAAU,WAAS;IAAA0D,EAAA,CAAAI,IAAA,CACnB,CAAgE,wFAChE,2FAC6B,CACjC,CAAAC,IAAA,OAAO;IAAAJ,oBACL;IAAAE,UACE,KAAI;IAAA,IAAAG,QACJ;MAAO,MAAAF,IACLA,CAAAG,GAAA;QAAA,IAAAC,MACE,GAAAC,SAAI,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;UAAAnC,QAAA,GAAAmC,SAAA,CAAAC,MAAA,OAAAD,SAAA;QAAA,IAAAnC,QACJ,EAAA6B,UAAQ,CAAAQ,IAAA,CAAArC,QAAA;QAAA,IAAAsC,MACR,GAAAZ,EAAA,CAAAa,OAAY,CAAAN,GAAA,EAAOO,GAAA,IAAON,MAAA;QAAA;UAC5BO,OACF,EAAAC,MAAA,CAAAJ,MAAA,CAAAG,OAAA;QAAA;MACF;MACF,MACFE,KAAOA,CAAAV,GAAA;QACL,IAAAC,MAAM,GAAIC,SAAM,CAAAC,MAAA,QAAAD,SAA0B,GAAK,cAAAA,SAAA;QACjD,OAAAT,EAAA,CAAAa,OAAA,CAAAN,GAAA,EAAAW,GAAA,IAAAV,MAAA;MACA;MACF,MAAAW,SAAAC,GAAA,EAAAC,MAAA;QACF,IAAAC,IAAA;QACA,IAAMF,GAAA,CAAMxE,KAAA,KACV,WACG;UACA0E,IAAK,GAAAtB,EAAA,CAAAa,OAAO,sCAAAK,GAAA;QACf,OAAI,IAAAE,GAAA,CAAAxE,KAAA;UACF0E,IAAM,GAAAtB,EAAA,CAAAa,OAAQ,CAAM,+DAAiB,EAAAK,GAAA,GAAAK,GAAA,WAAAC,GAAA;YAClC,OAAK;cACRhE,EAAO,EAAAgE,GAAA,CAAAC,OAAA;cACThE,IAAS,EAAA+D,GAAO,CAAA/D,IAAA;cACXC,IAAK,SAAU8D,GAAA,CAAA9D,IAAA,gBAAA2B,IAAA,CAAAqC,KAAA,CAAAF,GAAA,CAAA9D,IAAA,IAAA8D,GAAA,CAAA9D;YAClB;UACF;QACF,WAAA0D,GAAA,CAAAxE,KAAA;UACA0E,IAAA,IAGM;YACF9D,EAAA;YACGkB,KAAK,GACF;cACElB,EAAA,MAAU;cACpBa,MAAA;cACWC,QAAQ;gBACrBqD,KAAA;cACD;YAES;UAET,EAEI;QACC;UACE,UAASC,KAAA,oBAAuB,GAAAR,GAAA,CAAAxE,KAAA;QACpC;QACA,OAAQyE,MAAA,CAAAQ,QAAA,GAAAP,IAAA,MAAAA,IAAA;MAAA;IACG;IACC,IAAAR,GAAA,GACN,eAAAA,CAAiBgB,QAAI;MACnB9B,EAAA,CAAAI,IAAA,QAAM;MACN;QAAQ,IAAA2B,KACN,SAAAD,QAAY,CAAAxB,QAAA;QACVN,EAAA,CAAAI,IAAA;QAAA,OAAA2B,KACF;MAAA,SAAAC,KACE;QAAchC,EAAA,CAAAI,IAClB;QAAA,MACF4B,KAAA;MAAA;IACF;IACF9B,mBACF,kBAAAA,CAAA4B,QAAA;MACA,IAAA7B,oBAAqB;QACrBA,oBAAA;QACDD,EAAA,CAAAI,IAAA;QAED,MAAA0B,QAAA,CAAAxB,QAAuB;QACvBN,EAAM,CAAAI,IAAA,WAAe;MACnB;MACA,OAAAU,GAAS,CAAAgB,QAAA;IAAiC;EACpC;EACKhF,SACT,aAAM;IAAAkD,EACR,CAACiC,KAAA;EAAA;EACe/E,IACjB;IAED,IAAAgF,UAAe;IACf,IAAAC,MAAU,GAAAhF,sBAAQ;MAChBiF,MAAM,EAAAhF,qBAAqB;MAC5BiF,MAAA;QACDC,OAAU;UACNC,MAAA;YACHC,MAAA,iBAAAA,CAAAhE,KAAA,EAAAuD,KAAA;cACM,IAAO;gBAAAU,EAAA;gBAAAN,MAAY,EAAAO;cAAA,IAAclE,KAAA;cACjC,MAAOiE,EAAA,CAAAF,MAAW,CAACD,OAAG,CAAAK,MAAS,CAAAZ,KAAS;cACzCW,OAAO,SAAY,IAAGA,OAAK,uBAAAA,OAAA,CAAAE,WAAA;gBAC1BV,UAAY,EAAK;cACzB;gBAEIW,OAAA;cACG;YACJ;UACA;QACE;MAAS;MACCC,mBACO,EAAE,SAAAA,CAAA,EAAM;QACnB;MACA;MAA0B5C;IAC5B;IACFD,oBACF;IAAA,IACFW,MAAA,SAAAuB,MAAA,CAAAY,qBAAA;MACAC,QAAA;MACAC,OAAA,EAAAnE,WAAA;QACDtB,EAAA;QAED0F,OAAM,MAAS;QACbnE,IAAA;MACA;MAAwCoE,cAClC;IAAA;IACKlG,MACT,CAAA2D,MAAM,CAAAwC,QAAA,CAAA5D,SAAA,IAAAoB,MAAA,EAAAyC,OAAA;IAAApG,MACP,CAAA+C,EAAA,CAAAa,OAAA,0BAAAK,GAAA,IAAAmC,OAAA,EACF;MAED7F,EAAA,EAAQ;MACN0F,OAAO;MACPnE,IAAA;IACD,EACD;IACA9B,MAAA,CAAO+C,EAAA,CAAGa,OAAA,CAAQ,gCAAAK,GAAA,IAAAmC,OAA6C,EAC7D;MACD9D,aAAA;MACDG,QAAM,YAAY;MAGlB4D,cAAkB;IAChB,EAAO,CACP;IACFrG,MAAC,CAAA2D,MAAA,CAAA2C,UAAA,EAAAC,YAAA;IACFvG,MAAA,CAAA2D,MAAA,CAAA2C,UAAA,IAAAV,OAAA,EAAAY,IAAA;IAED,MAAK7C,MAAA,CAAA2C,UAAA,IAAAG,IAAA;IACHzG,MAAM,CAAAiF,UAAS,EAAAuB,IAAA;EAAuB;EAC5BvG,IACR,wEAAQ;IAAA,IACNiF,MAAA,GAAShF,sBAAA;MAAAiF,MACP,EAAAhF,qBAAQ;MAAAiF,MACN;QACEC,OAAA;UAA6CC,MAC/C;YACFoB,IAAA,iBAAAA,CAAAnF,KAAA,EAAAuD,KAAA;cACF;gBAAAU;cAAA,IAAAjE,KAAA;cACF,MAAAiE,EAAA,CAAAF,MAAA,CAAAD,OAAA,CAAAK,MAAA,CAAAZ,KAAA;cACA,UAAAH,KAAqB,WAAQ;YAC7B;UACD;QACD;MACE;MACAkB,mBAAS,WAAAA,CAAA;QACT,OAAM;MACR;MAEA5C;IAAmC,EACjC;IAAU,IACVU,MAAA,GAAS,MAAAuB,MAAY,CAAGY,qBAAkB;MAC3CC,QAAA;MACDC,OAAM,EAAAnE,WAAY,EAAM,gBAAO;QAC7BtB,EAAA,MAAU;QACV0F,OAAS;QACVnE,IAAA;MAED;IAAsE,EACpE;IACF9B,MAAC,CAAA2D,MAAA,CAAAwC,QAAA,CAAA5D,SAAA,IAAAoB,MAAA,EAAAgD,aAAA;MACD5B,KAAO,OAAG;MACR6B,OAAA;IACF,CAAC;IACD5G,MAAA,CAAO+C,EAAA,CAAGa,OAAA,CAAQ,yBAAAK,GAAA,IAAAmC,OAAA;IAAiEpG,MACjF,CAAA+C,EAAO,CAAAa,OAAA,8CAAAiD,GAAA,IAAAT,OAAA;MACRC,cAAA;IAED;IAAmC,IACjCS,MAAA,GAAU/D,EAAA,CAAAa,OAAA,wCAAAiD,GAAA;IAAA7G,MACV,CAAAoC,IAAS,CAAAqC,KAAA,CAAAqC,MAAA,CAAAnD,MAAe,GAAAgD,aAAA;MACzB5B,KAAA;MACD6B,OAAO,EAAG;IAAyE,EACjF;EAAO,EACT;EACF3G,IAAC;IAED,IAAKiF,MAAA,GAAAhF,sBAAA;MACHiF,MAAM,EAAAhF,qBAAS;MACbiF,MAAA,EAAQ;QACRC,OAAQ;UACNC,MAAM;YACJC,MAAQ,iBAAAA,CAAAhE,KAAA,EAAAwF,MAAA;cACN;gBAAQvB;cAAA,IAAOjE,KAAK;cAClB,MAAMiE,EAAA,CAAGF,MAAA,CAAOD,OAAK,CAAAK,MAAO,CAAAqB,MAAc;YAC5C;UAAA;QAEE;MAA0C;MAC5ClB,mBACQ,EAAO,SAAAA,CAAA,EAAQ;QACrB;MAA0C;MAC5C5C;IAEE;IAA0C,IAAA6B,KAC5C;MAAAvE,EAAA,EACF;MAAA0F,OACF;MACFnE,IAAA;IAAA;IAC6B,MAC7BoD,MAAA,CAAAY,qBAAA;MACDC,QAAA;MAEDC,OAAM,EAAAnE,WAAc,IAAK,gBAAO,EAAAiD,KAAA;IAAA,EAC9B;IAAI,IACJkC,SAAM,SAAA9B,MAAA,CAAAY,qBAAA;MACNC,QAAQ;MACTC,OAAA,EAAAnE,WAAA,sBAAAiD,KAAA;IACD;IAAgC9E,MAC1B,CAAAgH,SAAA,CAAAb,QAAA,CAAA5D,SAAA,IAAAoB,MAAA,EAAAgD,aAAA;MACJ5B,KAAA,EAAM;IAAA,EACN;IACF/E,MAAC,CAAA+C,EAAA,CAAAa,OAAA,8CAAAiD,GAAA,IAAAT,OAAA;MACDC,cAAa;IAAmB,EAC9B;IAAIrG,MACJ,CAAA+C,EAAM,CAAAa,OAAA,mDAAAiD,GAAA,IAAAT,OAAA;MACPa,KAAA;IAED;IAA+D,MAC7D/B,MAAS,CAAAY,qBAAA;MACTC,QAAM;MACNC,OAAM,EAAAnD,cAAiB;IACzB,CAAC;IACD7C,MAAM,CAAA+C,EAAA,CAAAa,OAAO,iDAA8C,EAAAiD,GAAA,IAAAT,OAAA;MACzDa,KAAA;IAAA;EACM;EACEhH,IAAA,4EACkB;IAAA,IAC1BiF,MAAA,GAAAhF,sBAAA;MACDiF,MAAA,EAAAvE,iBAAA;MACDwE,MAAM;QACJhF,IAAI,EAAG;UACPkF,MAAM;YACAI,MAAA,iBAAAA,CAAAnE,KAAA,EAAAuD,KAAA;cACE;gBAAAU;cAAA,IAAAjE,KAAA;cACA,MAAEiE,EAAA,CAAOF,MAAA,CAAAlF,IAAS,CAAAsF,MAAA,CAAAZ,KAAA;YACzB;YACKoC,MAAA,iBAAAA,CAAA3F,KAAA,EAAAuD,KAAA;cACD;gBAAAU;cAAA,IAAcjE,KAAM;cACvB,MAASiE,EAAA,CAAAF,MAAQ,CAAAlF,IAAA,CAAA8G,MAAA,CAAApC,KAAA;YACjB;YACEqC,MAAA,EAAS,eAAAA,CAAA5F,KAAA,EAAAuD,KAAA;cACT,IAAM;gBAAAU;cAAA,IAAAjE,KAAA;cACN,MAAMiE,EAAK,CAAAF,MAAA,CAAAlF,IAAY,CAAA+G,MAAO,CAAArC,KAAA;YAChC;YACDsC,MAAA,iBAAAA,CAAA7F,KAAA,EAAAuD,KAAA;cACF;gBAAAU;cAAA,IAAAjE,KAAA;cAEK,MAAOiE,EAAA,CAAAF,MAAY,CAAAlF,IAAA,CAAAgH,MAAS,CAAItC,KAAK,CAAC;YACrC;UACP;QACI;MACF;MACAe,mBAAS,WAAAA,CAAA,EAAgB;QACvB,OAAO;MACV;MACF5C;IAED;IACE,MAAMiC,MAAA,CAAAI,MAAS,CAAAlF,IAAA,CAAAsF,MAAA;MACbnF,EAAA,MAAQ;MACRC,IAAA,OAAS;MACTC,IAAA;QACAiE,KAAA;MACD;IAED;IAAmF,MACjFQ,MAAA,CAAAI,MAAA,CAAAlF,IAAA,CAAA8G,MAAA;MAAA3G,EACE,MAAI;MAAAC,IACJ,MAAO;MAAAC,IACL;QAAAiE,KACE;MAAI;IACI;IACkB,MAC5BQ,MAAA,CAAAI,MAAA,CAAAlF,IAAA,CAAA+G,MAAA;MAAA5G,EACF;MACFC,IAAA;IACF,CAAC;IACFR,MAAA,CAAA+C,EAAA,CAAAa,OAAA,+BAAAiD,GAAA,IAAAT,OAAA;MAED5B,OAAK;MACHhE,IAAM;MACJC,IAAI,EAAA2B,IAAA,CAAAC,SAAA;QACJqC,KAAM;MACN;IACF;IACA,MAAI1E,MAAA,CAAAkF,MAAA,CAAAlB,KAAA,WAAAqD,CAAA;MACJ,OAAMA,CAAA,CAAAjH,IAAA;IAAmB,EACvB,EAAAkH,QAAM,CAAAlB,OAAO,EACX;MACF7F,EAAA;MACAC,IAAM;MACJC,IAAA;QACFiE,KAAA;MACA;IACE,EACA;IAAO,MACTQ,MAAA,CAAAqC,WAAA,iBAAA/B,EAAA;MACF,IAAAA,EAAA,CAAAgC,QAAA,yBAAA7C,KAAA;MACA,MAAM3E,MAAA,CAAAwF,EAAA,CAAAxB,KAAA,CAAA5D,IAA8C,CAAAqH,GAAO,GAAA5D,GAAA,IAAAyD,QACzD,CAAAlB,OAAS;QACX7F,EAAM;QACJC,IAAA,EAAQ;QACRC,IAAA,EAAQ;UACRiE,KAAA;QACA;MACD;MAED,MAAM1E,MAAA,CAAAwF,EAAA,CAAAkC,aAAA,CAAA1D,KAAA,oCAAAsD,QAAA,CAAAlB,OAAA,EACJ;QACA5B,OAAS,MAAQ;QACnBhE,IAAO;QACRC,IAAA,EAAA2B,IAAA,CAAAC,SAAA;UACFqC,KAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","mutations","serverWhere","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","param","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","statements","exec","join","executor","sql","params","arguments","length","push","result","prepare","run","changes","Number","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","enqueueTask","barrier","createServerActions","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","asyncTasks","toHaveLength","toBe","task","fail","toMatchObject","message","get","stored","projectPermission","q","cmp","projectMutations","role","inserted","permissionChecks","can","_where","rejects","toThrow","value2","duplicate","count","upsert","update","delete","resolves"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -196,10 +196,11 @@ describe("zero-http transport", () => {
|
|
|
196
196
|
await transport.pull();
|
|
197
197
|
expect(requests.at(-1)?.headers.authorization).toBe("Bearer token-new");
|
|
198
198
|
});
|
|
199
|
-
test("push frames are serialized per socket", async () => {
|
|
199
|
+
test("push frames are serialized and queued bursts are batched per socket", async () => {
|
|
200
200
|
const firstPushStarted = defer();
|
|
201
201
|
const releaseFirstPush = defer();
|
|
202
|
-
const
|
|
202
|
+
const pushRequests = [];
|
|
203
|
+
const lifecycle = [];
|
|
203
204
|
const fetch = vi.fn(async (input, init) => {
|
|
204
205
|
const request = recordRequest(input, init);
|
|
205
206
|
if (request.path === "/pull") {
|
|
@@ -209,9 +210,9 @@ describe("zero-http transport", () => {
|
|
|
209
210
|
});
|
|
210
211
|
}
|
|
211
212
|
expect(request.path).toBe("/push");
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
if (
|
|
213
|
+
const mutationIDs = request.body.mutations.map(mutation => mutation.id);
|
|
214
|
+
pushRequests.push(mutationIDs);
|
|
215
|
+
if (mutationIDs[0] === 1) {
|
|
215
216
|
firstPushStarted.resolve();
|
|
216
217
|
await releaseFirstPush.promise;
|
|
217
218
|
}
|
|
@@ -227,7 +228,12 @@ describe("zero-http transport", () => {
|
|
|
227
228
|
}
|
|
228
229
|
});
|
|
229
230
|
});
|
|
230
|
-
|
|
231
|
+
const transport = installHttpPullTransport({
|
|
232
|
+
origin: ORIGIN,
|
|
233
|
+
fetch,
|
|
234
|
+
lifecycle: event => lifecycle.push(event)
|
|
235
|
+
});
|
|
236
|
+
transports.push(transport);
|
|
231
237
|
const {
|
|
232
238
|
messages,
|
|
233
239
|
socket
|
|
@@ -236,12 +242,27 @@ describe("zero-http transport", () => {
|
|
|
236
242
|
socket.send(JSON.stringify(["push", pushBody(1)]));
|
|
237
243
|
await firstPushStarted.promise;
|
|
238
244
|
socket.send(JSON.stringify(["push", pushBody(2)]));
|
|
245
|
+
socket.send(JSON.stringify(["push", pushBody(3)]));
|
|
246
|
+
socket.send(JSON.stringify(["push", pushBody(4)]));
|
|
239
247
|
await sleep(25);
|
|
240
|
-
expect(
|
|
248
|
+
expect(pushRequests).toEqual([[1]]);
|
|
241
249
|
releaseFirstPush.resolve();
|
|
242
|
-
await eventually(() => expect(
|
|
250
|
+
await eventually(() => expect(pushRequests).toEqual([[1], [2, 3, 4]]));
|
|
243
251
|
await eventually(() => expect(messages.filter(message => message[0] === "pushResponse")).toHaveLength(2));
|
|
244
|
-
expect(messages.filter(message => message[0] === "pushResponse").
|
|
252
|
+
expect(messages.filter(message => message[0] === "pushResponse").flatMap(message => message[1].mutations.map(mutation => mutation.id.id))).toEqual([1, 2, 3, 4]);
|
|
253
|
+
expect(lifecycle.filter(event => event.type === "push").map(({
|
|
254
|
+
pushFrameCount,
|
|
255
|
+
mutationCount
|
|
256
|
+
}) => ({
|
|
257
|
+
pushFrameCount,
|
|
258
|
+
mutationCount
|
|
259
|
+
}))).toEqual([{
|
|
260
|
+
pushFrameCount: 1,
|
|
261
|
+
mutationCount: 1
|
|
262
|
+
}, {
|
|
263
|
+
pushFrameCount: 3,
|
|
264
|
+
mutationCount: 3
|
|
265
|
+
}]);
|
|
245
266
|
});
|
|
246
267
|
test("cookie discipline skips unchanged pokes, chains changed pokes, and coalesces concurrent pulls", async () => {
|
|
247
268
|
const requests = [];
|