on-zero 0.6.22 → 0.7.0

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.
Files changed (39) hide show
  1. package/dist/cjs/createPermissions.cjs +0 -2
  2. package/dist/cjs/createPermissions.native.js +0 -2
  3. package/dist/cjs/createPermissions.native.js.map +1 -1
  4. package/dist/cjs/createZeroSQLiteServer.test.cjs +97 -0
  5. package/dist/cjs/createZeroSQLiteServer.test.native.js +108 -0
  6. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -1
  7. package/dist/cjs/mutations.cjs +4 -11
  8. package/dist/cjs/mutations.native.js +4 -11
  9. package/dist/cjs/mutations.native.js.map +1 -1
  10. package/dist/esm/createPermissions.mjs +0 -2
  11. package/dist/esm/createPermissions.mjs.map +1 -1
  12. package/dist/esm/createPermissions.native.js +0 -2
  13. package/dist/esm/createPermissions.native.js.map +1 -1
  14. package/dist/esm/createZeroSQLiteServer.test.mjs +97 -0
  15. package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -1
  16. package/dist/esm/createZeroSQLiteServer.test.native.js +108 -0
  17. package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -1
  18. package/dist/esm/mutations.mjs +4 -11
  19. package/dist/esm/mutations.mjs.map +1 -1
  20. package/dist/esm/mutations.native.js +4 -11
  21. package/dist/esm/mutations.native.js.map +1 -1
  22. package/package.json +2 -2
  23. package/readme.md +27 -8
  24. package/src/createPermissions.ts +0 -2
  25. package/src/createZeroSQLiteServer.test.ts +94 -0
  26. package/src/mutations.ts +7 -21
  27. package/types/createPermissions.d.ts.map +1 -1
  28. package/types/mutations.d.ts +1 -1
  29. package/types/mutations.d.ts.map +1 -1
  30. package/dist/cjs/helpers/didRunPermissionCheck.cjs +0 -36
  31. package/dist/cjs/helpers/didRunPermissionCheck.native.js +0 -41
  32. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +0 -1
  33. package/dist/esm/helpers/didRunPermissionCheck.mjs +0 -10
  34. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +0 -1
  35. package/dist/esm/helpers/didRunPermissionCheck.native.js +0 -12
  36. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +0 -1
  37. package/src/helpers/didRunPermissionCheck.ts +0 -16
  38. package/types/helpers/didRunPermissionCheck.d.ts +0 -4
  39. package/types/helpers/didRunPermissionCheck.d.ts.map +0 -1
@@ -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":"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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","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":[]}
@@ -1,5 +1,4 @@
1
1
  import { IS_SERVER_RUNTIME } from "@take-out/helpers";
2
- import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.mjs";
3
2
  import { setMutationsPermissions } from "./modelRegistry.mjs";
4
3
  function mutationRegistry() {
5
4
  const global = globalThis;
@@ -45,11 +44,10 @@ function mutations(table, permissions, mutations2) {
45
44
  if (permissions) {
46
45
  const tableName = typeof table === "string" ? table : table.schema.name;
47
46
  const createCRUDMutation = action => {
47
+ const customMutation = mutations2?.[action];
48
+ if (customMutation) return customMutation;
48
49
  return async (ctx, obj) => {
49
50
  const runServerPermissionCheck = async () => {
50
- if (getDidRunPermissionCheck(ctx)) {
51
- return;
52
- }
53
51
  if (IS_SERVER_RUNTIME) {
54
52
  await ctx.can(permissions, obj);
55
53
  }
@@ -57,12 +55,7 @@ function mutations(table, permissions, mutations2) {
57
55
  if (action !== "insert" && action !== "upsert") {
58
56
  await runServerPermissionCheck();
59
57
  }
60
- const existing = mutations2?.[action];
61
- if (existing) {
62
- await existing(ctx, obj);
63
- } else {
64
- await ctx.tx.mutate[tableName][action](obj);
65
- }
58
+ await ctx.tx.mutate[tableName][action](obj);
66
59
  if (action === "insert" || action === "upsert") {
67
60
  await runServerPermissionCheck();
68
61
  }
@@ -76,7 +69,7 @@ function mutations(table, permissions, mutations2) {
76
69
  };
77
70
  const finalMutations = {
78
71
  ...mutations2,
79
- // overwrite regular mutations but call them if they are defined by user
72
+ // generated CRUD fills missing operations; custom CRUD runs as-is
80
73
  ...crudMutations
81
74
  };
82
75
  setMutationsPermissions(tableName, permissions);
@@ -1 +1 @@
1
- {"version":3,"names":["IS_SERVER_RUNTIME","getDidRunPermissionCheck","setMutationsPermissions","mutationRegistry","global","globalThis","__onZeroMutationRegistry__","Map","proxyRegistry","__onZeroProxyRegistry__","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["IS_SERVER_RUNTIME","setMutationsPermissions","mutationRegistry","global","globalThis","__onZeroMutationRegistry__","Map","proxyRegistry","__onZeroProxyRegistry__","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","customMutation","ctx","obj","runServerPermissionCheck","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import { IS_SERVER_RUNTIME } from "@take-out/helpers";
2
- import { getDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.native.js";
3
2
  import { setMutationsPermissions } from "./modelRegistry.native.js";
4
3
  function mutationRegistry() {
5
4
  var _global;
@@ -48,11 +47,10 @@ function mutations(table, permissions, mutations2) {
48
47
  if (permissions) {
49
48
  var tableName = typeof table === "string" ? table : table.schema.name;
50
49
  var createCRUDMutation = function (action) {
50
+ var customMutation = mutations2 === null || mutations2 === void 0 ? void 0 : mutations2[action];
51
+ if (customMutation) return customMutation;
51
52
  return async function (ctx, obj) {
52
53
  var runServerPermissionCheck = async function () {
53
- if (getDidRunPermissionCheck(ctx)) {
54
- return;
55
- }
56
54
  if (IS_SERVER_RUNTIME) {
57
55
  await ctx.can(permissions, obj);
58
56
  }
@@ -60,12 +58,7 @@ function mutations(table, permissions, mutations2) {
60
58
  if (action !== "insert" && action !== "upsert") {
61
59
  await runServerPermissionCheck();
62
60
  }
63
- var existing = mutations2 === null || mutations2 === void 0 ? void 0 : mutations2[action];
64
- if (existing) {
65
- await existing(ctx, obj);
66
- } else {
67
- await ctx.tx.mutate[tableName][action](obj);
68
- }
61
+ await ctx.tx.mutate[tableName][action](obj);
69
62
  if (action === "insert" || action === "upsert") {
70
63
  await runServerPermissionCheck();
71
64
  }
@@ -79,7 +72,7 @@ function mutations(table, permissions, mutations2) {
79
72
  };
80
73
  var finalMutations = {
81
74
  ...mutations2,
82
- // overwrite regular mutations but call them if they are defined by user
75
+ // generated CRUD fills missing operations; custom CRUD runs as-is
83
76
  ...crudMutations
84
77
  };
85
78
  setMutationsPermissions(tableName, permissions);
@@ -1 +1 @@
1
- {"version":3,"names":["IS_SERVER_RUNTIME","getDidRunPermissionCheck","setMutationsPermissions","mutationRegistry","_global","global","globalThis","__onZeroMutationRegistry__","Map","proxyRegistry","__onZeroProxyRegistry__","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","_mutationRegistry_get","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","ctx","obj","runServerPermissionCheck","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["IS_SERVER_RUNTIME","setMutationsPermissions","mutationRegistry","_global","global","globalThis","__onZeroMutationRegistry__","Map","proxyRegistry","__onZeroProxyRegistry__","getOrCreateMutationProxy","tableName","implementations","set","existing","get","proxy","Proxy","_","key","_mutationRegistry_get","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","schema","name","createCRUDMutation","action","customMutation","ctx","obj","runServerPermissionCheck","can","tx","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "on-zero",
3
- "version": "0.6.22",
3
+ "version": "0.7.0",
4
4
  "description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
5
5
  "sideEffects": false,
6
6
  "source": "src/index.ts",
@@ -100,7 +100,7 @@
100
100
  }
101
101
  },
102
102
  "dependencies": {
103
- "@take-out/helpers": "0.6.22",
103
+ "@take-out/helpers": "0.7.0",
104
104
  "chokidar": "^4.0.3",
105
105
  "citty": "^0.1.6",
106
106
  "valibot": "^1.1.0"
package/readme.md CHANGED
@@ -101,7 +101,7 @@ derived from drizzle — no need to define it here.
101
101
 
102
102
  ```ts
103
103
  // src/data/mutations/message.ts
104
- import { mutations, serverWhere } from 'on-zero'
104
+ import { ensureLoggedIn, mutations, serverWhere } from 'on-zero'
105
105
 
106
106
  const permissions = serverWhere('message', (q, auth) => {
107
107
  return q.cmp('authorId', auth?.id || '')
@@ -109,16 +109,20 @@ const permissions = serverWhere('message', (q, auth) => {
109
109
 
110
110
  // pass table name as string — types are inferred from schema
111
111
  export const mutate = mutations('message', permissions, {
112
- async send(ctx, props: { content: string; channelId: string }) {
113
- await ctx.can(permissions, props)
112
+ async send(
113
+ ctx,
114
+ props: { id: string; content: string; channelId: string; createdAt: number },
115
+ ) {
116
+ const auth = ensureLoggedIn()
114
117
 
115
118
  await ctx.tx.mutate.message.insert({
116
- id: randomId(),
119
+ id: props.id,
117
120
  content: props.content,
118
121
  channelId: props.channelId,
119
- authorId: ctx.authData!.id,
120
- createdAt: Date.now(),
122
+ authorId: auth.id,
123
+ createdAt: props.createdAt,
121
124
  })
125
+ await ctx.can(permissions, props.id)
122
126
 
123
127
  if (ctx.server) {
124
128
  ctx.server.enqueueTask(async () => {
@@ -132,7 +136,12 @@ export const mutate = mutations('message', permissions, {
132
136
  call mutations from react:
133
137
 
134
138
  ```tsx
135
- await zero.mutate.message.send({ content: 'hello', channelId: 'ch-1' })
139
+ await zero.mutate.message.send({
140
+ id: randomId(),
141
+ content: 'hello',
142
+ channelId: 'ch-1',
143
+ createdAt: Date.now(),
144
+ })
136
145
  ```
137
146
 
138
147
  the second argument (`permissions`) enables auto-generated crud that checks
@@ -145,6 +154,14 @@ zero.mutate.message.delete(message)
145
154
  zero.mutate.message.upsert(message)
146
155
  ```
147
156
 
157
+ if you define `insert`, `upsert`, `update`, or `delete` in the third argument,
158
+ that handler replaces the generated operation completely. on-zero does not add
159
+ an automatic permission check or write. validate however the handler needs to;
160
+ `ctx.can()` is available for query-based permissions, but any thrown error
161
+ rejects and rolls back the transaction. when using `ctx.can()`, check before an
162
+ update or delete. for an insert, write first and then check so the permission
163
+ query can see the new row. a custom handler can no-op with a normal `return`.
164
+
148
165
  ## permissions
149
166
 
150
167
  on-zero's permissions system is optional - you can implement your own
@@ -190,7 +207,9 @@ const permissions = serverWhere('message', (q, auth) => {
190
207
  })
191
208
  ```
192
209
 
193
- CRUD mutations automatically apply them, but for custom mutations use `can()`:
210
+ built-in CRUD mutations automatically apply them. custom mutations, including
211
+ CRUD overrides, own their validation. they can use `can()` for query-based
212
+ permissions or throw from any other validation:
194
213
 
195
214
  ```ts
196
215
  await ctx.can(permissions, messageId)
@@ -1,6 +1,5 @@
1
1
  import { ensure } from '@take-out/helpers'
2
2
 
3
- import { setDidRunPermissionCheck } from './helpers/didRunPermissionCheck'
4
3
  import { mutatorContext } from './helpers/mutatorContext'
5
4
  import { prettyFormatZeroQuery } from './helpers/prettyFormatZeroQuery'
6
5
  import { getZQL } from './state'
@@ -106,7 +105,6 @@ export function createPermissions<Schema extends ZeroSchema>({
106
105
  throw new Error(`Must use where('table') style where to pass to can()`)
107
106
  }
108
107
  await ensurePermission(ctx.tx, ctx.authData, tableName, where, obj)
109
- setDidRunPermissionCheck(ctx)
110
108
  }
111
109
  }
112
110