on-zero 0.1.16 → 0.1.20

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 (47) hide show
  1. package/dist/cjs/createPermissions.cjs +4 -2
  2. package/dist/cjs/createPermissions.js +5 -2
  3. package/dist/cjs/createPermissions.js.map +1 -1
  4. package/dist/cjs/createPermissions.native.js +6 -2
  5. package/dist/cjs/createPermissions.native.js.map +1 -1
  6. package/dist/cjs/createZeroServer.cjs +15 -5
  7. package/dist/cjs/createZeroServer.js +11 -5
  8. package/dist/cjs/createZeroServer.js.map +1 -1
  9. package/dist/cjs/createZeroServer.native.js +15 -4
  10. package/dist/cjs/createZeroServer.native.js.map +1 -1
  11. package/dist/cjs/helpers/createMutators.cjs +16 -5
  12. package/dist/cjs/helpers/createMutators.js +20 -5
  13. package/dist/cjs/helpers/createMutators.js.map +1 -1
  14. package/dist/cjs/helpers/createMutators.native.js +19 -5
  15. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  16. package/dist/esm/createPermissions.js +5 -2
  17. package/dist/esm/createPermissions.js.map +1 -1
  18. package/dist/esm/createPermissions.mjs +4 -2
  19. package/dist/esm/createPermissions.mjs.map +1 -1
  20. package/dist/esm/createPermissions.native.js +6 -2
  21. package/dist/esm/createPermissions.native.js.map +1 -1
  22. package/dist/esm/createZeroServer.js +11 -5
  23. package/dist/esm/createZeroServer.js.map +1 -1
  24. package/dist/esm/createZeroServer.mjs +15 -5
  25. package/dist/esm/createZeroServer.mjs.map +1 -1
  26. package/dist/esm/createZeroServer.native.js +15 -4
  27. package/dist/esm/createZeroServer.native.js.map +1 -1
  28. package/dist/esm/helpers/createMutators.js +20 -5
  29. package/dist/esm/helpers/createMutators.js.map +1 -1
  30. package/dist/esm/helpers/createMutators.mjs +16 -5
  31. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  32. package/dist/esm/helpers/createMutators.native.js +19 -5
  33. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  34. package/package.json +2 -2
  35. package/readme.md +42 -6
  36. package/src/createPermissions.ts +12 -3
  37. package/src/createZeroServer.ts +45 -0
  38. package/src/helpers/createMutators.ts +50 -11
  39. package/src/types.ts +9 -0
  40. package/types/createPermissions.d.ts +3 -2
  41. package/types/createPermissions.d.ts.map +1 -1
  42. package/types/createZeroServer.d.ts +32 -2
  43. package/types/createZeroServer.d.ts.map +1 -1
  44. package/types/helpers/createMutators.d.ts +9 -1
  45. package/types/helpers/createMutators.d.ts.map +1 -1
  46. package/types/types.d.ts +8 -0
  47. package/types/types.d.ts.map +1 -1
@@ -31,9 +31,11 @@ var import_helpers = require("@take-out/helpers"),
31
31
  import_where = require("./where.cjs");
32
32
  function createPermissions({
33
33
  environment,
34
- schema
34
+ schema,
35
+ adminRoleMode = "all"
35
36
  }) {
36
37
  function buildPermissionQuery(authData, eb, permissionWhere, objOrId, tableNameOverride) {
38
+ if ((adminRoleMode === "all" || adminRoleMode === "queries") && authData?.role === "admin") return eb.cmpLit(!0, "=", !0);
37
39
  const tableName = tableNameOverride || (0, import_where.getWhereTableName)(permissionWhere);
38
40
  if (!tableName) throw new Error("Must use PermissionWhere for buildPermissionQuery");
39
41
  const tableSchema = schema.tables[tableName];
@@ -59,7 +61,7 @@ function createPermissions({
59
61
  }
60
62
  };
61
63
  async function ensurePermission(tx, authData, tableName, where, obj) {
62
- if (authData?.role === "admin") return;
64
+ if ((adminRoleMode === "all" || adminRoleMode === "mutations") && authData?.role === "admin") return;
63
65
  const queryBase = (0, import_state.getZQL)()[tableName];
64
66
  let query = null;
65
67
  try {
@@ -20,9 +20,12 @@ module.exports = __toCommonJS(createPermissions_exports);
20
20
  var import_helpers = require("@take-out/helpers"), import_didRunPermissionCheck = require("./helpers/didRunPermissionCheck"), import_mutatorContext = require("./helpers/mutatorContext"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_state = require("./state"), import_where = require("./where");
21
21
  function createPermissions({
22
22
  environment,
23
- schema
23
+ schema,
24
+ adminRoleMode = "all"
24
25
  }) {
25
26
  function buildPermissionQuery(authData, eb, permissionWhere, objOrId, tableNameOverride) {
27
+ if ((adminRoleMode === "all" || adminRoleMode === "queries") && authData?.role === "admin")
28
+ return eb.cmpLit(!0, "=", !0);
26
29
  const tableName = tableNameOverride || (0, import_where.getWhereTableName)(permissionWhere);
27
30
  if (!tableName)
28
31
  throw new Error("Must use PermissionWhere for buildPermissionQuery");
@@ -52,7 +55,7 @@ function createPermissions({
52
55
  }
53
56
  };
54
57
  async function ensurePermission(tx, authData, tableName, where, obj) {
55
- if (authData?.role === "admin")
58
+ if ((adminRoleMode === "all" || adminRoleMode === "mutations") && authData?.role === "admin")
56
59
  return;
57
60
  const queryBase = (0, import_state.getZQL)()[tableName];
58
61
  let query = null;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createPermissions.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC,8BAEpC,+BAAyC,4CACzC,wBAA+B,qCAC/B,+BAAsC,4CACtC,eAAuB,oBACvB,eAAkC;AAU3B,SAAS,kBAA6C;AAAA,EAC3D;AAAA,EACA;AACF,GAGG;AAQD,WAAS,qBACP,UACA,IACA,iBAEA,SACA,mBACA;AACA,UAAM,YAAY,yBAAqB,gCAAkB,eAAe;AAExE,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAGrE,UAAM,cAAc,OAAO,OAAO,SAAS;AAE3C,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,YAAY;AAG9B,UAAM,cAAc,YAAY,YAC1B,mBAAmB,gBAAgB,IAAI,QAAQ;AAErD,QAAI,oBAAoB;AACtB,YAAM,IAAI,MAAM,6BAA6B,SAAS,EAAE;AAG1D,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAK;AAGnC,UAAM,mBAAgC,CAAC;AAEvC,eAAW,OAAO,aAAa;AAC7B,YAAM,QAAQ,OAAO,WAAY,WAAW,UAAU,QAAQ,GAAG;AACjE,uBAAiB,KAAK,GAAG,IAAI,KAAY,KAAK,CAAC;AAAA,IACjD;AAEA,WAAO,GAAG,IAAI,kBAAkB,GAAG,gBAAgB;AAAA,EACrD;AAEA,QAAM,MAAW,OAAO,OAAO,QAAQ;AAErC,QAAI,gBAAgB,UAAU;AAC5B,YAAM,UAAM,sCAAe,GACrB,gBAAY,gCAAkB,KAAK;AACzC,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,sDAAsD;AAExE,YAAM,iBAAiB,IAAI,IAAI,IAAI,UAAU,WAAW,OAAO,GAAG,OAClE,uDAAyB,GAAG;AAAA,IAC9B;AAAA,EACF;AAEA,iBAAe,iBACb,IACA,UACA,WACA,OACA,KACe;AACf,QAAI,UAAU,SAAS;AAErB;AAIF,UAAM,gBADa,qBAAO,EACG,SAAS;AACtC,QAAI,QAAqC;AAEzC,QAAI;AACF,cAAQ,UACL,MAAM,CAAC,OACC,qBAAqB,UAAU,IAAI,OAAO,GAAG,CACrD,EACA,IAAI,OAEP,uBAAO,MAAM,GAAG,IAAI,KAAK,CAAC;AAAA,IAC5B,SAAS,KAAK;AACZ,YAAM,aAAa,GAAG,SAAS,kBAAkB,UAAU,EAAE;AAE7D,UAAI,eAAe,4BAAa;AAC9B,YAAI,MAAM,uCAAgC,UAAU;AACpD,cAAI,QAAQ,IAAI,aAAa,iBAAiB,UAC5C,OAAO;AAAA,OAAM,oDAAsB,KAAK,CAAC,KAErC,IAAI,MAAM,GAAG;AAAA,MACrB;AAEA,YAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAAK,GAAG,EAAE;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC,8BAEpC,+BAAyC,4CACzC,wBAA+B,qCAC/B,+BAAsC,4CACtC,eAAuB,oBACvB,eAAkC;AAU3B,SAAS,kBAA6C;AAAA,EAC3D;AAAA,EACA;AAAA,EACA,gBAAgB;AAClB,GAIG;AAQD,WAAS,qBACP,UACA,IACA,iBAEA,SACA,mBACA;AAGA,SAD2B,kBAAkB,SAAS,kBAAkB,cAC9C,UAAU,SAAS;AAC3C,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,UAAM,YAAY,yBAAqB,gCAAkB,eAAe;AAExE,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAGrE,UAAM,cAAc,OAAO,OAAO,SAAS;AAE3C,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,YAAY;AAG9B,UAAM,cAAc,YAAY,YAC1B,mBAAmB,gBAAgB,IAAI,QAAQ;AAErD,QAAI,oBAAoB;AACtB,YAAM,IAAI,MAAM,6BAA6B,SAAS,EAAE;AAG1D,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAK;AAGnC,UAAM,mBAAgC,CAAC;AAEvC,eAAW,OAAO,aAAa;AAC7B,YAAM,QAAQ,OAAO,WAAY,WAAW,UAAU,QAAQ,GAAG;AACjE,uBAAiB,KAAK,GAAG,IAAI,KAAY,KAAK,CAAC;AAAA,IACjD;AAEA,WAAO,GAAG,IAAI,kBAAkB,GAAG,gBAAgB;AAAA,EACrD;AAEA,QAAM,MAAW,OAAO,OAAO,QAAQ;AAErC,QAAI,gBAAgB,UAAU;AAC5B,YAAM,UAAM,sCAAe,GACrB,gBAAY,gCAAkB,KAAK;AACzC,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,sDAAsD;AAExE,YAAM,iBAAiB,IAAI,IAAI,IAAI,UAAU,WAAW,OAAO,GAAG,OAClE,uDAAyB,GAAG;AAAA,IAC9B;AAAA,EACF;AAEA,iBAAe,iBACb,IACA,UACA,WACA,OACA,KACe;AAGf,SAD6B,kBAAkB,SAAS,kBAAkB,gBAC9C,UAAU,SAAS;AAC7C;AAIF,UAAM,gBADa,qBAAO,EACG,SAAS;AACtC,QAAI,QAAqC;AAEzC,QAAI;AACF,cAAQ,UACL,MAAM,CAAC,OACC,qBAAqB,UAAU,IAAI,OAAO,GAAG,CACrD,EACA,IAAI,OAEP,uBAAO,MAAM,GAAG,IAAI,KAAK,CAAC;AAAA,IAC5B,SAAS,KAAK;AACZ,YAAM,aAAa,GAAG,SAAS,kBAAkB,UAAU,EAAE;AAE7D,UAAI,eAAe,4BAAa;AAC9B,YAAI,MAAM,uCAAgC,UAAU;AACpD,cAAI,QAAQ,IAAI,aAAa,iBAAiB,UAC5C,OAAO;AAAA,OAAM,oDAAsB,KAAK,CAAC,KAErC,IAAI,MAAM,GAAG;AAAA,MACrB;AAEA,YAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAAK,GAAG,EAAE;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -37,9 +37,12 @@ function _instanceof(left, right) {
37
37
  function createPermissions(param) {
38
38
  var {
39
39
  environment,
40
- schema
40
+ schema,
41
+ adminRoleMode = "all"
41
42
  } = param;
42
43
  function buildPermissionQuery(authData, eb, permissionWhere, objOrId, tableNameOverride) {
44
+ var adminBypassQueries = adminRoleMode === "all" || adminRoleMode === "queries";
45
+ if (adminBypassQueries && authData?.role === "admin") return eb.cmpLit(!0, "=", !0);
43
46
  var tableName = tableNameOverride || (0, import_where.getWhereTableName)(permissionWhere);
44
47
  if (!tableName) throw new Error("Must use PermissionWhere for buildPermissionQuery");
45
48
  var tableSchema = schema.tables[tableName];
@@ -79,7 +82,8 @@ function createPermissions(param) {
79
82
  }
80
83
  };
81
84
  async function ensurePermission(tx, authData, tableName, where, obj) {
82
- if (authData?.role !== "admin") {
85
+ var adminBypassMutations = adminRoleMode === "all" || adminRoleMode === "mutations";
86
+ if (!(adminBypassMutations && authData?.role === "admin")) {
83
87
  var zqlBuilder = (0, import_state.getZQL)(),
84
88
  queryBase = zqlBuilder[tableName],
85
89
  query = null;
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createPermissions_exports","__export","createPermissions","module","exports","import_helpers","require","import_didRunPermissionCheck","import_mutatorContext","import_prettyFormatZeroQuery","import_state","import_where","_instanceof","left","right","Symbol","hasInstance","param","environment","schema","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableNameOverride","tableName","getWhereTableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","cmpLit","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","key","push","cmp","err","return","and","can","where","obj","ctx","mutatorContext","ensurePermission","tx","setDidRunPermissionCheck","role","zqlBuilder","getZQL","queryBase","query","one","ensure","run","errorTitle","id","EnsureError"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createPermissions_exports","__export","createPermissions","module","exports","import_helpers","require","import_didRunPermissionCheck","import_mutatorContext","import_prettyFormatZeroQuery","import_state","import_where","_instanceof","left","right","Symbol","hasInstance","param","environment","schema","adminRoleMode","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableNameOverride","adminBypassQueries","role","cmpLit","tableName","getWhereTableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","key","push","cmp","err","return","and","can","where","obj","ctx","mutatorContext","ensurePermission","tx","setDidRunPermissionCheck","adminBypassMutations","zqlBuilder","getZQL","queryBase","query","one","ensure","run","errorTitle","id"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -41,7 +41,10 @@ function createZeroServer({
41
41
  database,
42
42
  schema,
43
43
  models,
44
- queries
44
+ queries,
45
+ validateQuery,
46
+ validateMutation,
47
+ defaultAllowAdminRole = "all"
45
48
  }) {
46
49
  (0, import_state.setSchema)(schema);
47
50
  const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'),
@@ -54,7 +57,8 @@ function createZeroServer({
54
57
  })),
55
58
  permissions = (0, import_createPermissions.createPermissions)({
56
59
  environment: "server",
57
- schema
60
+ schema,
61
+ adminRoleMode: defaultAllowAdminRole
58
62
  }),
59
63
  processor = new import_pg.PushProcessor(zeroDb),
60
64
  handleMutationRequest = async ({
@@ -69,7 +73,8 @@ function createZeroServer({
69
73
  createServerActions,
70
74
  environment: "server",
71
75
  models,
72
- authData
76
+ authData,
77
+ validateMutation
73
78
  }),
74
79
  response = await processor.process(mutators, request);
75
80
  if (!skipAsyncTasks && asyncTasks.length) {
@@ -101,7 +106,11 @@ function createZeroServer({
101
106
  if (!perm) throw new Error(`[permission] no permission defined for table: ${table}`);
102
107
  return (0, import_state.getZQL)()[table].where(eb => permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)).one();
103
108
  }
104
- return (0, import_zero.mustGetQuery)(queries, name).fn({
109
+ return validateQuery && validateQuery({
110
+ authData,
111
+ queryName: name,
112
+ params: args
113
+ }), (0, import_zero.mustGetQuery)(queries, name).fn({
105
114
  args,
106
115
  ctx: authData
107
116
  });
@@ -121,7 +130,8 @@ function createZeroServer({
121
130
  ...authData
122
131
  },
123
132
  createServerActions,
124
- can: permissions.can
133
+ can: permissions.can,
134
+ validateMutation
125
135
  });
126
136
  await transaction(async tx => {
127
137
  await run(tx, mutators);
@@ -23,7 +23,10 @@ function createZeroServer({
23
23
  database,
24
24
  schema,
25
25
  models,
26
- queries
26
+ queries,
27
+ validateQuery,
28
+ validateMutation,
29
+ defaultAllowAdminRole = "all"
27
30
  }) {
28
31
  (0, import_state.setSchema)(schema);
29
32
  const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'), zeroDb = (0, import_pg2.zeroNodePg)(
@@ -35,7 +38,8 @@ function createZeroServer({
35
38
  })
36
39
  ), permissions = (0, import_createPermissions.createPermissions)({
37
40
  environment: "server",
38
- schema
41
+ schema,
42
+ adminRoleMode: defaultAllowAdminRole
39
43
  }), processor = new import_pg.PushProcessor(zeroDb), handleMutationRequest = async ({
40
44
  authData,
41
45
  request,
@@ -47,7 +51,8 @@ function createZeroServer({
47
51
  createServerActions,
48
52
  environment: "server",
49
53
  models,
50
- authData
54
+ authData,
55
+ validateMutation
51
56
  }), response = await processor.process(mutators, request);
52
57
  if (!skipAsyncTasks && asyncTasks.length) {
53
58
  const id = (0, import_helpers.randomId)();
@@ -78,7 +83,7 @@ function createZeroServer({
78
83
  throw new Error(`[permission] no permission defined for table: ${table}`);
79
84
  return (0, import_state.getZQL)()[table].where((eb) => permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)).one();
80
85
  }
81
- return (0, import_zero.mustGetQuery)(queries, name).fn({ args, ctx: authData });
86
+ return validateQuery && validateQuery({ authData, queryName: name, params: args }), (0, import_zero.mustGetQuery)(queries, name).fn({ args, ctx: authData });
82
87
  },
83
88
  schema,
84
89
  request
@@ -96,7 +101,8 @@ function createZeroServer({
96
101
  ...authData
97
102
  },
98
103
  createServerActions,
99
- can: permissions.can
104
+ can: permissions.can,
105
+ validateMutation
100
106
  });
101
107
  await transaction(async (tx) => {
102
108
  await run(tx, mutators);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZeroServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["import_pg", "zeroHandleQueryRequest", "query"]
6
6
  }
@@ -44,7 +44,10 @@ function createZeroServer(param) {
44
44
  database,
45
45
  schema,
46
46
  models,
47
- queries
47
+ queries,
48
+ validateQuery,
49
+ validateMutation,
50
+ defaultAllowAdminRole = "all"
48
51
  } = param;
49
52
  (0, import_state.setSchema)(schema);
50
53
  var dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'),
@@ -57,7 +60,8 @@ function createZeroServer(param) {
57
60
  })),
58
61
  permissions = (0, import_createPermissions.createPermissions)({
59
62
  environment: "server",
60
- schema
63
+ schema,
64
+ adminRoleMode: defaultAllowAdminRole
61
65
  }),
62
66
  processor = new import_pg.PushProcessor(zeroDb),
63
67
  handleMutationRequest = async function (param2) {
@@ -73,7 +77,8 @@ function createZeroServer(param) {
73
77
  createServerActions,
74
78
  environment: "server",
75
79
  models,
76
- authData
80
+ authData,
81
+ validateMutation
77
82
  }),
78
83
  response = await processor.process(mutators, request);
79
84
  if (!skipAsyncTasks && asyncTasks.length) {
@@ -110,6 +115,11 @@ function createZeroServer(param) {
110
115
  return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table);
111
116
  }).one();
112
117
  }
118
+ validateQuery && validateQuery({
119
+ authData,
120
+ queryName: name,
121
+ params: args
122
+ });
113
123
  var _$query = (0, import_zero.mustGetQuery)(queries, name);
114
124
  return _$query.fn({
115
125
  args,
@@ -133,7 +143,8 @@ function createZeroServer(param) {
133
143
  ...authData
134
144
  },
135
145
  createServerActions,
136
- can: permissions.can
146
+ can: permissions.can,
147
+ validateMutation
137
148
  });
138
149
  await transaction(async function (tx) {
139
150
  await run(tx, mutators);
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServer_exports","__export","createZeroServer","module","exports","import_zero","require","import_pg","import_server","import_pg2","import_helpers","import_pg3","import_createPermissions","import_createMutators","import_mutatorContext","import_modelRegistry","import_run","import_state","import_zeroRunner","param","createServerActions","database","schema","models","queries","setSchema","dbString","assertString","zeroDb","zeroNodePg","Pool","connectionString","ssl","includes","rejectUnauthorized","permissions","createPermissions","environment","processor","PushProcessor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","createMutators","can","response","process","length","id","randomId","console","info","Promise","all","map","task","then","catch","err","error","handleQueryRequest","Error","setAuthData","name","args","startsWith","table","slice","objOrId","perm","getMutationsPermissions","getZQL","where","eb","buildPermissionQuery","one","_$query","mustGetQuery","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","isInZeroMutation","mutatorContext","output","dummyTransactionInput","query","cb","setCustomQueries","setRunner","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServer_exports","__export","createZeroServer","module","exports","import_zero","require","import_pg","import_server","import_pg2","import_helpers","import_pg3","import_createPermissions","import_createMutators","import_mutatorContext","import_modelRegistry","import_run","import_state","import_zeroRunner","param","createServerActions","database","schema","models","queries","validateQuery","validateMutation","defaultAllowAdminRole","setSchema","dbString","assertString","zeroDb","zeroNodePg","Pool","connectionString","ssl","includes","rejectUnauthorized","permissions","createPermissions","environment","adminRoleMode","processor","PushProcessor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","createMutators","can","response","process","length","id","randomId","console","info","Promise","all","map","task","then","catch","err","error","handleQueryRequest","Error","setAuthData","name","args","startsWith","table","slice","objOrId","perm","getMutationsPermissions","getZQL","where","eb","buildPermissionQuery","one","queryName","params","_$query","mustGetQuery","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","isInZeroMutation","mutatorContext","output","dummyTransactionInput","query","cb","setCustomQueries","setRunner","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,wBAAA;AAAAC,QAAA,CAAAD,wBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA6B,CAAAK,wBAC7B;AA+CO,IAAAK,WAAS,GAAAC,OAAA,CAId;EAAAC,SAAA,GAAAD,OAAA;EAAAE,aAAA,GAAAF,OAAA;EAAAG,UAAA,GAAAH,OAAA;EAAAI,cAAA,GAAAJ,OAAA;EAAAK,UAAA,GAAAL,OAAA;EAAAM,wBAAA,GAAAN,OAAA;EAAAO,qBAAA,GAAAP,OAAA;EAAAQ,qBAAA,GAAAR,OAAA;EAAAS,oBAAA,GAAAT,OAAA;EAAAU,UAAA,GAAAV,OAAA;EAAAW,YAAA,GAAAX,OAAA;EAAAY,iBAAA,GAAAZ,OAAA;AAAA,SACAJ,iBAAAiB,KAAA;EACA;IAAAC,mBAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,aAAA;IAAAC,gBAAA;IAAAC,qBAAA;EAAA,IAAAR,KAAA;EACA,IAAAF,YAAA,CAAAW,SAAA,EAAAN,MAAA;EACA,IAAAO,QAAA,OAAAnB,cAAA,CAAAoB,YAAA,EAAAT,QAAA;IAAAU,MAAA,OAAAtB,UAAA,CAAAuB,UAAA,EAAAV,MAAA,MAAAX,UAAA,CAAAsB,IAAA;MACAC,gBAAA,EAAAL,QAAA;MACA;MACAM,GAAA,EAAAN,QAAA,CAAAO,QAAA;QACAC,kBAAA,EAAwB;MA2BvB;IACD;IAAAC,WAAA,OAAA1B,wBAAgB,CAAA2B,iBAAA;MAEhBC,WAAM,UAAW;MAGflB,MAAA;MACAmB,aAAI,EAAAd;IAAK;IACPe,SAAA,OAAAnC,SAAkB,CAAAoC,aAAA,CAAAZ,MAAA;IAAAa,qBAAA,kBAAAA,CAAAC,MAAA;MAAA;UAAAC,QAAA;UAAAC,OAAA;UAAAC;QAAA,IAAAH,MAAA;QAAAI,UAAA;QAAAC,QAAA,OAAArC,qBAAA,CAAAsC,cAAA;UAElBF,UAAK;UAGNG,GAAA,EAAAd,WAAA,CAAAc,GAAA;UAGGhC,mBAAc;UAClBoB,WAAa;UACbjB,MAAA;UACAuB,QAAA;UAGIpB;QAGJ;QAAA2B,QAAA,SAAAX,SAAA,CAAAY,OAAA,CAAAJ,QAAA,EAAAH,OAAA;MACA,KAAAC,cAAA,IAAAC,UAAA,CAAAM,MAAA;QACA,IAAAC,EAAA,OAAA9C,cAAA,CAAA+C,QAAA;QACFC,OAIM,CAAAC,IAAA,yCAAAV,UAAA,CAAAM,MAAA,OAAAC,EAAA,KAAAI,OAAA,CAAAC,GAAA,CAAAZ,UAAA,CAAAa,GAAA,WAAAC,IAAA;UAEJ,OAAMA,IAAA;QAGJ,IAAAC,IAAA;UACAN,OAAK,CAAAC,IAAA,gCAAYH,EAAA;QACjB,GAAAS,KAAA,WAAAC,GAAA;UACAR,OAAA,CAAAS,KAAa,+CAAAD,GAAA;QACb;MAAA;MACA,OACA;QACDb,QAGK;QAGNJ;MACE;IACA;IAAAmB,kBAAa,kBAAAA,CAAAvB,MAAA;MAGT;QAAAC,QAAQ;QAAAC;MAAK,IAAAF,MAAA;MAAmC,IACjD,CACArB,OAAO,EACN,UAAQ6C,KAAA,CAAM,0HAA0C;MAAA,EAC1D,EAACpD,YAAA,CAAAqD,WAAA,EAAAxB,QAAA;MACL,IAAAO,QAAA,aAAA7C,aAAA,CAAA4D,kBAAA,YAAAG,IAAA,EAAAC,IAAA;QAEA,IAAAD,IAAO,CAAAE,UAAA;UACL,IAAAC,KAAA,GAAAH,IAAA,CAAAI,KAAA;YAAA;cAAAC;YAAA,IAAAJ,IAAA;YAAAK,IAAA,OAAA9D,oBAAA,CAAA+D,uBAAA,EAAAJ,KAAA;UACA,KAAAG,IAAA,EACF,UAAAR,KAAA,kDAAAK,KAAA;UAGI,WAAAzD,YAAqB,CAAA8D,MAAO,IAAAL,KAAA,EAAAM,KAAA,WAAAC,EAAA;YAChC,OAAA3C,WAAA,CAAA4C,oBAAA,CAAApC,QAAA,EAAAmC,EAAA,EAAAJ,IAAA,EAAAD,OAAA,EAAAF,KAAA;UACA,GAAAS,GAAA;QACF;QAIE1D,aAAK,IAAAA,aAAA;UACHqB,QAAU;UACRsC,SAAA,EAAAb,IAAA;UAEFc,MAAA,EAAAb;QAIF;QAkCE,IAAAc,OAhCe,OAAAjF,WAAM,CAAAkF,YAAA,EAAA/D,OAAA,EAAA+C,IAAA;QAAA,OACpBe,OAAM,CAAAE,EAAA,CAAS;UAEdhB,IAAA;UACEiB,GAAA,EAAA3C;QAKA;MACE,GAAAxB,MAAA,EAAAyB,OAAM;MAER;QAIOM;MAIT;IAKuC;IAAAqC,MACzC,kBAAAA,CAAAC,GAAA,EAAA7C,QAAA;MAAA,IACAG,UAAA;QAAAC,QAAA,OAAArC,qBAAA,CAAAsC,cAAA;UAAA5B,MACA;UACFiB,WAAA;UAIAS,UAAA;UAGIH,QAAS;YAIbU,EAAM;YAGJoC,KAAA;YACAC,IAAA,SAAa;YACb,GAAA/C;UACA;UAAU1B,mBACJ;UAAAgC,GACJ,EAAAd,WAAO,CAAAc,GAAA;UAAA1B;QACD;MACH,MACLoE,WAAA,iBAAAC,EAAA;QACA,MAAAJ,GAAA,CAAAI,EAAA,EAAA7C,QAAA;MAAA,EACA,QAAKU,OAAA,CAAAC,GAAY,CAAAZ,UAAA,CAAAa,GAAA,WAAAkC,CAAA;QACjB,OAAAA,CAAA;MACF,CAAC;IAED;EACE,eAAUF,WAAYA,CAAAG,MAAA;IACxB,IAEA;MACF,QAAAnF,qBAAA,CAAAoF,gBAAA;QAEA;UAAAH;QAAe,QAAAjF,qBAGgB,CAAAqF,cAAA;QACzB,aAAAF,MAAA,CAAAF,EAAA;MACF;MACE,IAAAK,MAAQ,GAAG,MAAArE,MAAI,CAAA+D,WAAA,CAAAG,MAAA,EAAAI,qBAAe;MAC9B,OAAAD,MAAO;IAAc,EACvB,OAAAlC,GAAA;MAGA,MAAAR,OADqB,CAAAS,KAAA,CAAO,gCAAmBD,GAAA,KAAAA,GAAqB;IAEtE;EACE;EACM,SACRoC,MAAAC,EAAA;IACF,OAAAT,WAAA,iBAAAC,EAAA;MAEA,OAASA,EAAA,CAAAJ,GACP,CAAAY,EAC2B,KAAAtF,YAAA,CAAA8D,MAAA;IAC3B;EAGF;EAGIvD,OAAA,QACFR,UAAA,CAAAwF,gBAAA,EAAiBhF,OAAO,OAI1BN,iBAAA,CAAAuF,SAAA,EAAU,UAACC,QACF;IAMT,OAAMZ,WAAA,iBAAkDC,EAAA;MACtD,OAAAA,EAAA,CAAAJ,GAAe,CAAAe,QAAA;IACf;EAAU,EACV;EAAY,IACZL,qBAAgB;IAClBM,aAAA;IAEAC,QAAO;IACLC,UAAA;IACAC,cAAA;EAAA;EACA,OACA;IACAlE,qBAAA;IACFwB,kBAAA;IACF0B,WAAA","ignoreList":[]}
@@ -33,7 +33,8 @@ function createMutators({
33
33
  createServerActions,
34
34
  asyncTasks = [],
35
35
  can,
36
- models
36
+ models,
37
+ validateMutation
37
38
  }) {
38
39
  const serverActions = createServerActions?.(),
39
40
  modelMutators = (0, import_helpers.mapObject)(models, val => val.mutate);
@@ -55,13 +56,15 @@ function createMutators({
55
56
  };
56
57
  }
57
58
  function withDevelopmentLogging(name, fn) {
58
- return process.env.NODE_ENV !== "development" && !process.env.IS_TESTING ? fn : async (...args) => {
59
+ if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) return fn;
60
+ const debug = process.env.DEBUG;
61
+ return async (...args) => {
59
62
  const startTime = performance.now();
60
63
  try {
61
- import_constants.isServer && console.info(`[mutator] ${name} start`);
64
+ debug && import_constants.isServer && console.info(`[mutator] ${name} start`);
62
65
  const result = await fn(...args),
63
66
  duration = (performance.now() - startTime).toFixed(2);
64
- return import_constants.isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`), result;
67
+ return debug && (import_constants.isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
65
68
  } catch (error) {
66
69
  const duration = (performance.now() - startTime).toFixed(2);
67
70
  throw console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.info("stack trace:", new Error().stack), console.groupEnd(), error;
@@ -78,13 +81,21 @@ function createMutators({
78
81
  return Promise.race([fn(...args), timeoutPromise]);
79
82
  };
80
83
  }
84
+ function withValidation(tableName, mutatorName, fn) {
85
+ return validateMutation ? async (...args) => (await validateMutation({
86
+ authData: import_constants.isBrowser ? (0, import_state.getAuthData)() : authData,
87
+ tableName,
88
+ mutatorName,
89
+ args: args[1]
90
+ }), fn(...args)) : fn;
91
+ }
81
92
  function decorateMutators(modules) {
82
93
  const result = {};
83
94
  for (const [moduleName, moduleExports] of Object.entries(modules)) {
84
95
  result[moduleName] = {};
85
96
  for (const [name, exportValue] of Object.entries(moduleExports)) if (typeof exportValue == "function") {
86
97
  const fullName = `${moduleName}.${name}`;
87
- result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withContext(exportValue)));
98
+ result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext(exportValue))));
88
99
  }
89
100
  }
90
101
  return result;
@@ -24,7 +24,8 @@ function createMutators({
24
24
  createServerActions,
25
25
  asyncTasks = [],
26
26
  can,
27
- models
27
+ models,
28
+ validateMutation
28
29
  }) {
29
30
  const serverActions = createServerActions?.(), modelMutators = (0, import_helpers.mapObject)(models, (val) => val.mutate);
30
31
  function withContext(fn) {
@@ -45,12 +46,15 @@ function createMutators({
45
46
  };
46
47
  }
47
48
  function withDevelopmentLogging(name, fn) {
48
- return process.env.NODE_ENV !== "development" && !process.env.IS_TESTING ? fn : async (...args) => {
49
+ if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING)
50
+ return fn;
51
+ const debug = process.env.DEBUG;
52
+ return async (...args) => {
49
53
  const startTime = performance.now();
50
54
  try {
51
- import_constants.isServer && console.info(`[mutator] ${name} start`);
55
+ debug && import_constants.isServer && console.info(`[mutator] ${name} start`);
52
56
  const result = await fn(...args), duration = (performance.now() - startTime).toFixed(2);
53
- return import_constants.isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`), result;
57
+ return debug && (import_constants.isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
54
58
  } catch (error) {
55
59
  const duration = (performance.now() - startTime).toFixed(2);
56
60
  throw console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.info("stack trace:", new Error().stack), console.groupEnd(), error;
@@ -67,6 +71,14 @@ function createMutators({
67
71
  return Promise.race([fn(...args), timeoutPromise]);
68
72
  };
69
73
  }
74
+ function withValidation(tableName, mutatorName, fn) {
75
+ return validateMutation ? async (...args) => (await validateMutation({
76
+ authData: import_constants.isBrowser ? (0, import_state.getAuthData)() : authData,
77
+ tableName,
78
+ mutatorName,
79
+ args: args[1]
80
+ }), fn(...args)) : fn;
81
+ }
70
82
  function decorateMutators(modules) {
71
83
  const result = {};
72
84
  for (const [moduleName, moduleExports] of Object.entries(modules)) {
@@ -76,7 +88,10 @@ function createMutators({
76
88
  const fullName = `${moduleName}.${name}`;
77
89
  result[moduleName][name] = withDevelopmentLogging(
78
90
  fullName,
79
- withTimeoutGuard(fullName, withContext(exportValue))
91
+ withTimeoutGuard(
92
+ fullName,
93
+ withValidation(moduleName, name, withContext(exportValue))
94
+ )
80
95
  );
81
96
  }
82
97
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/helpers/createMutators.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -36,7 +36,8 @@ function createMutators(param) {
36
36
  createServerActions,
37
37
  asyncTasks = [],
38
38
  can,
39
- models
39
+ models,
40
+ validateMutation
40
41
  } = param,
41
42
  serverActions = createServerActions?.(),
42
43
  modelMutators = (0, import_helpers.mapObject)(models, function (val) {
@@ -63,14 +64,16 @@ function createMutators(param) {
63
64
  };
64
65
  }
65
66
  function withDevelopmentLogging(name, fn) {
66
- return process.env.NODE_ENV !== "development" && !process.env.IS_TESTING ? fn : async function () {
67
+ if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) return fn;
68
+ var debug = process.env.DEBUG;
69
+ return async function () {
67
70
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
68
71
  var startTime = performance.now();
69
72
  try {
70
- import_constants.isServer && console.info(`[mutator] ${name} start`);
73
+ debug && import_constants.isServer && console.info(`[mutator] ${name} start`);
71
74
  var result = await fn(...args),
72
75
  duration = (performance.now() - startTime).toFixed(2);
73
- return import_constants.isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`), result;
76
+ return debug && (import_constants.isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
74
77
  } catch (error) {
75
78
  var duration1 = (performance.now() - startTime).toFixed(2);
76
79
  throw console.groupCollapsed(`[mutator] ${name} failed after ${duration1}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.info("stack trace:", new Error().stack), console.groupEnd(), error;
@@ -89,6 +92,17 @@ function createMutators(param) {
89
92
  return Promise.race([fn(...args), timeoutPromise]);
90
93
  };
91
94
  }
95
+ function withValidation(tableName, mutatorName, fn) {
96
+ return validateMutation ? async function () {
97
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
98
+ return await validateMutation({
99
+ authData: import_constants.isBrowser ? (0, import_state.getAuthData)() : authData,
100
+ tableName,
101
+ mutatorName,
102
+ args: args[1]
103
+ }), fn(...args);
104
+ } : fn;
105
+ }
92
106
  function decorateMutators(modules) {
93
107
  var result = {},
94
108
  _iteratorNormalCompletion = !0,
@@ -106,7 +120,7 @@ function createMutators(param) {
106
120
  var [name, exportValue] = _step1.value;
107
121
  if (typeof exportValue == "function") {
108
122
  var fullName = `${moduleName}.${name}`;
109
- result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withContext(exportValue)));
123
+ result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext(exportValue))));
110
124
  }
111
125
  }
112
126
  } catch (err) {
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createMutators_exports","__export","createMutators","module","exports","import_helpers","require","import_constants","import_state","import_mutatorContext","param","environment","authData","createServerActions","asyncTasks","can","models","serverActions","modelMutators","mapObject","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","isBrowser","getAuthData","server","actions","runWithContext","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","startTime","performance","now","isServer","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","time","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","moduleName","moduleExports","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createMutators_exports","__export","createMutators","module","exports","import_helpers","require","import_constants","import_state","import_mutatorContext","param","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","mapObject","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","isBrowser","getAuthData","server","actions","runWithContext","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","isServer","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","time","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","moduleName","moduleExports","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -6,9 +6,12 @@ import { getZQL } from "./state";
6
6
  import { getWhereTableName } from "./where";
7
7
  function createPermissions({
8
8
  environment,
9
- schema
9
+ schema,
10
+ adminRoleMode = "all"
10
11
  }) {
11
12
  function buildPermissionQuery(authData, eb, permissionWhere, objOrId, tableNameOverride) {
13
+ if ((adminRoleMode === "all" || adminRoleMode === "queries") && authData?.role === "admin")
14
+ return eb.cmpLit(!0, "=", !0);
12
15
  const tableName = tableNameOverride || getWhereTableName(permissionWhere);
13
16
  if (!tableName)
14
17
  throw new Error("Must use PermissionWhere for buildPermissionQuery");
@@ -38,7 +41,7 @@ function createPermissions({
38
41
  }
39
42
  };
40
43
  async function ensurePermission(tx, authData, tableName, where, obj) {
41
- if (authData?.role === "admin")
44
+ if ((adminRoleMode === "all" || adminRoleMode === "mutations") && authData?.role === "admin")
42
45
  return;
43
46
  const queryBase = getZQL()[tableName];
44
47
  let query = null;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createPermissions.ts"],
4
- "mappings": "AAAA,SAAS,QAAQ,mBAAmB;AAEpC,SAAS,gCAAgC;AACzC,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;AACtC,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAU3B,SAAS,kBAA6C;AAAA,EAC3D;AAAA,EACA;AACF,GAGG;AAQD,WAAS,qBACP,UACA,IACA,iBAEA,SACA,mBACA;AACA,UAAM,YAAY,qBAAqB,kBAAkB,eAAe;AAExE,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAGrE,UAAM,cAAc,OAAO,OAAO,SAAS;AAE3C,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,YAAY;AAG9B,UAAM,cAAc,YAAY,YAC1B,mBAAmB,gBAAgB,IAAI,QAAQ;AAErD,QAAI,oBAAoB;AACtB,YAAM,IAAI,MAAM,6BAA6B,SAAS,EAAE;AAG1D,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAK;AAGnC,UAAM,mBAAgC,CAAC;AAEvC,eAAW,OAAO,aAAa;AAC7B,YAAM,QAAQ,OAAO,WAAY,WAAW,UAAU,QAAQ,GAAG;AACjE,uBAAiB,KAAK,GAAG,IAAI,KAAY,KAAK,CAAC;AAAA,IACjD;AAEA,WAAO,GAAG,IAAI,kBAAkB,GAAG,gBAAgB;AAAA,EACrD;AAEA,QAAM,MAAW,OAAO,OAAO,QAAQ;AAErC,QAAI,gBAAgB,UAAU;AAC5B,YAAM,MAAM,eAAe,GACrB,YAAY,kBAAkB,KAAK;AACzC,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,sDAAsD;AAExE,YAAM,iBAAiB,IAAI,IAAI,IAAI,UAAU,WAAW,OAAO,GAAG,GAClE,yBAAyB,GAAG;AAAA,IAC9B;AAAA,EACF;AAEA,iBAAe,iBACb,IACA,UACA,WACA,OACA,KACe;AACf,QAAI,UAAU,SAAS;AAErB;AAIF,UAAM,YADa,OAAO,EACG,SAAS;AACtC,QAAI,QAAqC;AAEzC,QAAI;AACF,cAAQ,UACL,MAAM,CAAC,OACC,qBAAqB,UAAU,IAAI,OAAO,GAAG,CACrD,EACA,IAAI,GAEP,OAAO,MAAM,GAAG,IAAI,KAAK,CAAC;AAAA,IAC5B,SAAS,KAAK;AACZ,YAAM,aAAa,GAAG,SAAS,kBAAkB,UAAU,EAAE;AAE7D,UAAI,eAAe,aAAa;AAC9B,YAAI,MAAM,uCAAgC,UAAU;AACpD,cAAI,QAAQ,IAAI,aAAa,iBAAiB,UAC5C,OAAO;AAAA,GAAM,sBAAsB,KAAK,CAAC,KAErC,IAAI,MAAM,GAAG;AAAA,MACrB;AAEA,YAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAAK,GAAG,EAAE;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,QAAQ,mBAAmB;AAEpC,SAAS,gCAAgC;AACzC,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;AACtC,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAU3B,SAAS,kBAA6C;AAAA,EAC3D;AAAA,EACA;AAAA,EACA,gBAAgB;AAClB,GAIG;AAQD,WAAS,qBACP,UACA,IACA,iBAEA,SACA,mBACA;AAGA,SAD2B,kBAAkB,SAAS,kBAAkB,cAC9C,UAAU,SAAS;AAC3C,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,UAAM,YAAY,qBAAqB,kBAAkB,eAAe;AAExE,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAGrE,UAAM,cAAc,OAAO,OAAO,SAAS;AAE3C,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,YAAY;AAG9B,UAAM,cAAc,YAAY,YAC1B,mBAAmB,gBAAgB,IAAI,QAAQ;AAErD,QAAI,oBAAoB;AACtB,YAAM,IAAI,MAAM,6BAA6B,SAAS,EAAE;AAG1D,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAK;AAGnC,UAAM,mBAAgC,CAAC;AAEvC,eAAW,OAAO,aAAa;AAC7B,YAAM,QAAQ,OAAO,WAAY,WAAW,UAAU,QAAQ,GAAG;AACjE,uBAAiB,KAAK,GAAG,IAAI,KAAY,KAAK,CAAC;AAAA,IACjD;AAEA,WAAO,GAAG,IAAI,kBAAkB,GAAG,gBAAgB;AAAA,EACrD;AAEA,QAAM,MAAW,OAAO,OAAO,QAAQ;AAErC,QAAI,gBAAgB,UAAU;AAC5B,YAAM,MAAM,eAAe,GACrB,YAAY,kBAAkB,KAAK;AACzC,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,sDAAsD;AAExE,YAAM,iBAAiB,IAAI,IAAI,IAAI,UAAU,WAAW,OAAO,GAAG,GAClE,yBAAyB,GAAG;AAAA,IAC9B;AAAA,EACF;AAEA,iBAAe,iBACb,IACA,UACA,WACA,OACA,KACe;AAGf,SAD6B,kBAAkB,SAAS,kBAAkB,gBAC9C,UAAU,SAAS;AAC7C;AAIF,UAAM,YADa,OAAO,EACG,SAAS;AACtC,QAAI,QAAqC;AAEzC,QAAI;AACF,cAAQ,UACL,MAAM,CAAC,OACC,qBAAqB,UAAU,IAAI,OAAO,GAAG,CACrD,EACA,IAAI,GAEP,OAAO,MAAM,GAAG,IAAI,KAAK,CAAC;AAAA,IAC5B,SAAS,KAAK;AACZ,YAAM,aAAa,GAAG,SAAS,kBAAkB,UAAU,EAAE;AAE7D,UAAI,eAAe,aAAa;AAC9B,YAAI,MAAM,uCAAgC,UAAU;AACpD,cAAI,QAAQ,IAAI,aAAa,iBAAiB,UAC5C,OAAO;AAAA,GAAM,sBAAsB,KAAK,CAAC,KAErC,IAAI,MAAM,GAAG;AAAA,MACrB;AAEA,YAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAAK,GAAG,EAAE;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -6,9 +6,11 @@ import { getZQL } from "./state.mjs";
6
6
  import { getWhereTableName } from "./where.mjs";
7
7
  function createPermissions({
8
8
  environment,
9
- schema
9
+ schema,
10
+ adminRoleMode = "all"
10
11
  }) {
11
12
  function buildPermissionQuery(authData, eb, permissionWhere, objOrId, tableNameOverride) {
13
+ if ((adminRoleMode === "all" || adminRoleMode === "queries") && authData?.role === "admin") return eb.cmpLit(!0, "=", !0);
12
14
  const tableName = tableNameOverride || getWhereTableName(permissionWhere);
13
15
  if (!tableName) throw new Error("Must use PermissionWhere for buildPermissionQuery");
14
16
  const tableSchema = schema.tables[tableName];
@@ -34,7 +36,7 @@ function createPermissions({
34
36
  }
35
37
  };
36
38
  async function ensurePermission(tx, authData, tableName, where, obj) {
37
- if (authData?.role === "admin") return;
39
+ if ((adminRoleMode === "all" || adminRoleMode === "mutations") && authData?.role === "admin") return;
38
40
  const queryBase = getZQL()[tableName];
39
41
  let query = null;
40
42
  try {