over-zero 0.0.5 → 0.0.7

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 (98) hide show
  1. package/dist/cjs/createPermissions.cjs +5 -4
  2. package/dist/cjs/createPermissions.js +5 -5
  3. package/dist/cjs/createPermissions.js.map +1 -1
  4. package/dist/cjs/createPermissions.native.js +8 -5
  5. package/dist/cjs/createPermissions.native.js.map +1 -1
  6. package/dist/cjs/createZeroClient.cjs +3 -8
  7. package/dist/cjs/createZeroClient.js +4 -6
  8. package/dist/cjs/createZeroClient.js.map +1 -1
  9. package/dist/cjs/createZeroClient.native.js +4 -6
  10. package/dist/cjs/createZeroClient.native.js.map +1 -1
  11. package/dist/cjs/createZeroServer.cjs +24 -18
  12. package/dist/cjs/createZeroServer.js +24 -16
  13. package/dist/cjs/createZeroServer.js.map +2 -2
  14. package/dist/cjs/createZeroServer.native.js +24 -15
  15. package/dist/cjs/createZeroServer.native.js.map +2 -2
  16. package/dist/cjs/helpers/createMutators.cjs +4 -2
  17. package/dist/cjs/helpers/createMutators.js +4 -2
  18. package/dist/cjs/helpers/createMutators.js.map +1 -1
  19. package/dist/cjs/helpers/createMutators.native.js +4 -2
  20. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  21. package/dist/cjs/helpers/didRunPermissionCheck.cjs +29 -0
  22. package/dist/cjs/helpers/didRunPermissionCheck.js +22 -0
  23. package/dist/cjs/helpers/didRunPermissionCheck.js.map +6 -0
  24. package/dist/cjs/helpers/didRunPermissionCheck.native.js +32 -0
  25. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +6 -0
  26. package/dist/cjs/helpers/getDidRunPermissionCheck.cjs +27 -0
  27. package/dist/cjs/helpers/getDidRunPermissionCheck.js +21 -0
  28. package/dist/cjs/helpers/getDidRunPermissionCheck.js.map +6 -0
  29. package/dist/cjs/helpers/getDidRunPermissionCheck.native.js +28 -0
  30. package/dist/cjs/helpers/getDidRunPermissionCheck.native.js.map +6 -0
  31. package/dist/cjs/mutations.cjs +2 -1
  32. package/dist/cjs/mutations.js +2 -1
  33. package/dist/cjs/mutations.js.map +1 -1
  34. package/dist/cjs/mutations.native.js +2 -1
  35. package/dist/cjs/mutations.native.js.map +1 -1
  36. package/dist/esm/createPermissions.js +5 -4
  37. package/dist/esm/createPermissions.js.map +1 -1
  38. package/dist/esm/createPermissions.mjs +5 -4
  39. package/dist/esm/createPermissions.mjs.map +1 -1
  40. package/dist/esm/createPermissions.native.js +8 -4
  41. package/dist/esm/createPermissions.native.js.map +1 -1
  42. package/dist/esm/createZeroClient.js +5 -7
  43. package/dist/esm/createZeroClient.js.map +1 -1
  44. package/dist/esm/createZeroClient.mjs +4 -9
  45. package/dist/esm/createZeroClient.mjs.map +1 -1
  46. package/dist/esm/createZeroClient.native.js +4 -9
  47. package/dist/esm/createZeroClient.native.js.map +1 -1
  48. package/dist/esm/createZeroServer.js +24 -16
  49. package/dist/esm/createZeroServer.js.map +2 -2
  50. package/dist/esm/createZeroServer.mjs +24 -18
  51. package/dist/esm/createZeroServer.mjs.map +1 -1
  52. package/dist/esm/createZeroServer.native.js +26 -18
  53. package/dist/esm/createZeroServer.native.js.map +1 -1
  54. package/dist/esm/helpers/createMutators.js +4 -2
  55. package/dist/esm/helpers/createMutators.js.map +1 -1
  56. package/dist/esm/helpers/createMutators.mjs +4 -2
  57. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  58. package/dist/esm/helpers/createMutators.native.js +4 -2
  59. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  60. package/dist/esm/helpers/didRunPermissionCheck.js +6 -0
  61. package/dist/esm/helpers/didRunPermissionCheck.js.map +6 -0
  62. package/dist/esm/helpers/didRunPermissionCheck.mjs +5 -0
  63. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +1 -0
  64. package/dist/esm/helpers/didRunPermissionCheck.native.js +9 -0
  65. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +1 -0
  66. package/dist/esm/helpers/getDidRunPermissionCheck.js +5 -0
  67. package/dist/esm/helpers/getDidRunPermissionCheck.js.map +6 -0
  68. package/dist/esm/helpers/getDidRunPermissionCheck.mjs +4 -0
  69. package/dist/esm/helpers/getDidRunPermissionCheck.mjs.map +1 -0
  70. package/dist/esm/helpers/getDidRunPermissionCheck.native.js +6 -0
  71. package/dist/esm/helpers/getDidRunPermissionCheck.native.js.map +1 -0
  72. package/dist/esm/mutations.js +2 -1
  73. package/dist/esm/mutations.js.map +1 -1
  74. package/dist/esm/mutations.mjs +2 -1
  75. package/dist/esm/mutations.mjs.map +1 -1
  76. package/dist/esm/mutations.native.js +2 -1
  77. package/dist/esm/mutations.native.js.map +1 -1
  78. package/package.json +3 -2
  79. package/readme.md +15 -11
  80. package/src/createPermissions.ts +48 -40
  81. package/src/createZeroClient.tsx +7 -7
  82. package/src/createZeroServer.ts +39 -22
  83. package/src/helpers/createMutators.ts +11 -5
  84. package/src/helpers/didRunPermissionCheck.ts +11 -0
  85. package/src/mutations.ts +5 -7
  86. package/src/types.ts +28 -15
  87. package/types/createPermissions.d.ts +2 -2
  88. package/types/createPermissions.d.ts.map +1 -1
  89. package/types/createZeroServer.d.ts +6 -2
  90. package/types/createZeroServer.d.ts.map +1 -1
  91. package/types/helpers/createMutators.d.ts +2 -2
  92. package/types/helpers/createMutators.d.ts.map +1 -1
  93. package/types/helpers/didRunPermissionCheck.d.ts +4 -0
  94. package/types/helpers/didRunPermissionCheck.d.ts.map +1 -0
  95. package/types/mutations.d.ts +1 -1
  96. package/types/mutations.d.ts.map +1 -1
  97. package/types/types.d.ts +15 -11
  98. package/types/types.d.ts.map +1 -1
@@ -0,0 +1,29 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var didRunPermissionCheck_exports = {};
22
+ __export(didRunPermissionCheck_exports, {
23
+ getDidRunPermissionCheck: () => getDidRunPermissionCheck,
24
+ setDidRunPermissionCheck: () => setDidRunPermissionCheck
25
+ });
26
+ module.exports = __toCommonJS(didRunPermissionCheck_exports);
27
+ const PermissionCheckRan = /* @__PURE__ */new WeakMap(),
28
+ getDidRunPermissionCheck = ctx => PermissionCheckRan.get(ctx),
29
+ setDidRunPermissionCheck = ctx => PermissionCheckRan.set(ctx, !0);
@@ -0,0 +1,22 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var didRunPermissionCheck_exports = {};
16
+ __export(didRunPermissionCheck_exports, {
17
+ getDidRunPermissionCheck: () => getDidRunPermissionCheck,
18
+ setDidRunPermissionCheck: () => setDidRunPermissionCheck
19
+ });
20
+ module.exports = __toCommonJS(didRunPermissionCheck_exports);
21
+ const PermissionCheckRan = /* @__PURE__ */ new WeakMap(), getDidRunPermissionCheck = (ctx) => PermissionCheckRan.get(ctx), setDidRunPermissionCheck = (ctx) => PermissionCheckRan.set(ctx, !0);
22
+ //# sourceMappingURL=didRunPermissionCheck.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/didRunPermissionCheck.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,MAAM,qBAAqB,oBAAI,QAAiC,GAEnD,2BAA2B,CAAC,QAChC,mBAAmB,IAAI,GAAG,GAGtB,2BAA2B,CAAC,QAChC,mBAAmB,IAAI,KAAK,EAAI;",
5
+ "names": []
6
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var didRunPermissionCheck_exports = {};
17
+ __export(didRunPermissionCheck_exports, {
18
+ getDidRunPermissionCheck: () => getDidRunPermissionCheck,
19
+ setDidRunPermissionCheck: () => setDidRunPermissionCheck
20
+ });
21
+ module.exports = __toCommonJS(didRunPermissionCheck_exports);
22
+ var PermissionCheckRan = /* @__PURE__ */ new WeakMap(), getDidRunPermissionCheck = function(ctx) {
23
+ return PermissionCheckRan.get(ctx);
24
+ }, setDidRunPermissionCheck = function(ctx) {
25
+ return PermissionCheckRan.set(ctx, !0);
26
+ };
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ getDidRunPermissionCheck,
30
+ setDidRunPermissionCheck
31
+ });
32
+ //# sourceMappingURL=didRunPermissionCheck.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/didRunPermissionCheck.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAI,qBAAqB,oBAAI,QAAQ,GAC1B,2BAA2B,SAAS,KAAK;AAChD,SAAO,mBAAmB,IAAI,GAAG;AACrC,GACW,2BAA2B,SAAS,KAAK;AAChD,SAAO,mBAAmB,IAAI,KAAK,EAAI;AAC3C;",
5
+ "names": []
6
+ }
@@ -0,0 +1,27 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var getDidRunPermissionCheck_exports = {};
22
+ __export(getDidRunPermissionCheck_exports, {
23
+ getDidRunPermissionCheck: () => getDidRunPermissionCheck
24
+ });
25
+ module.exports = __toCommonJS(getDidRunPermissionCheck_exports);
26
+ const PermissionCheckRan = /* @__PURE__ */new WeakMap(),
27
+ getDidRunPermissionCheck = ctx => PermissionCheckRan.get(ctx);
@@ -0,0 +1,21 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var getDidRunPermissionCheck_exports = {};
16
+ __export(getDidRunPermissionCheck_exports, {
17
+ getDidRunPermissionCheck: () => getDidRunPermissionCheck
18
+ });
19
+ module.exports = __toCommonJS(getDidRunPermissionCheck_exports);
20
+ const PermissionCheckRan = /* @__PURE__ */ new WeakMap(), getDidRunPermissionCheck = (ctx) => PermissionCheckRan.get(ctx);
21
+ //# sourceMappingURL=getDidRunPermissionCheck.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/getDidRunPermissionCheck.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,MAAM,qBAAqB,oBAAI,QAAiC,GAEnD,2BAA2B,CAAC,QAChC,mBAAmB,IAAI,GAAG;",
5
+ "names": []
6
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var getDidRunPermissionCheck_exports = {};
17
+ __export(getDidRunPermissionCheck_exports, {
18
+ getDidRunPermissionCheck: () => getDidRunPermissionCheck
19
+ });
20
+ module.exports = __toCommonJS(getDidRunPermissionCheck_exports);
21
+ var PermissionCheckRan = /* @__PURE__ */ new WeakMap(), getDidRunPermissionCheck = function(ctx) {
22
+ return PermissionCheckRan.get(ctx);
23
+ };
24
+ // Annotate the CommonJS export names for ESM import in node:
25
+ 0 && (module.exports = {
26
+ getDidRunPermissionCheck
27
+ });
28
+ //# sourceMappingURL=getDidRunPermissionCheck.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/getDidRunPermissionCheck.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAI,qBAAqB,oBAAI,QAAQ,GAC1B,2BAA2B,SAAS,KAAK;AAChD,SAAO,mBAAmB,IAAI,GAAG;AACrC;",
5
+ "names": []
6
+ }
@@ -23,12 +23,13 @@ __export(mutations_exports, {
23
23
  mutations: () => mutations
24
24
  });
25
25
  module.exports = __toCommonJS(mutations_exports);
26
+ var import_didRunPermissionCheck = require("./helpers/didRunPermissionCheck.cjs");
26
27
  function mutations(table, permissions, mutations2) {
27
28
  if (permissions) {
28
29
  const tableName = table.schema.name,
29
30
  createCRUDMutation = action => async (ctx, obj) => {
30
31
  const runServerPermissionCheck = async () => {
31
- ctx.didCanPermissionsRun || process.env.VITE_ENVIRONMENT === "ssr" && (await ctx.can(permissions, action, obj));
32
+ (0, import_didRunPermissionCheck.getDidRunPermissionCheck)(ctx) || process.env.VITE_ENVIRONMENT === "ssr" && (await ctx.can(permissions, action, obj));
32
33
  };
33
34
  action !== "insert" && (await runServerPermissionCheck());
34
35
  const existing = mutations2?.[action];
@@ -17,11 +17,12 @@ __export(mutations_exports, {
17
17
  mutations: () => mutations
18
18
  });
19
19
  module.exports = __toCommonJS(mutations_exports);
20
+ var import_didRunPermissionCheck = require("./helpers/didRunPermissionCheck");
20
21
  function mutations(table, permissions, mutations2) {
21
22
  if (permissions) {
22
23
  const tableName = table.schema.name, createCRUDMutation = (action) => async (ctx, obj) => {
23
24
  const runServerPermissionCheck = async () => {
24
- ctx.didCanPermissionsRun || process.env.VITE_ENVIRONMENT === "ssr" && await ctx.can(permissions, action, obj);
25
+ (0, import_didRunPermissionCheck.getDidRunPermissionCheck)(ctx) || process.env.VITE_ENVIRONMENT === "ssr" && await ctx.can(permissions, action, obj);
25
26
  };
26
27
  action !== "insert" && await runServerPermissionCheck();
27
28
  const existing = mutations2?.[action];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/mutations.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoEO,SAAS,UAGd,OAA0B,aAAqBA,YAAkC;AACjF,MAAI,aAAa;AACf,UAAM,YAAa,MAAgB,OAAO,MAEpC,qBAAqB,CAAC,WACnB,OAAO,KAAqB,QAAa;AAS9C,YAAM,2BAA2B,YAAY;AAC3C,QAAI,IAAI,wBAMJ,QAAQ,IAAI,qBAAqB,SACnC,MAAM,IAAI,IAAI,aAAa,QAAQ,GAAG;AAAA,MAE1C;AAEA,MAAI,WAAW,YACb,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,GAGtD,WAAW,YACb,MAAM,yBAAyB;AAAA,IAEnC,GAGI,gBAAoC;AAAA,MACxC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACrC;AAEA,WAAO;AAAA,MACL,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACL;AAAA,EACF;AAGA,SAAO;AACT;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mCAAyC;AAiElC,SAAS,UAGd,OAA0B,aAAqBA,YAAkC;AACjF,MAAI,aAAa;AACf,UAAM,YAAa,MAAgB,OAAO,MAEpC,qBAAqB,CAAC,WACnB,OAAO,KAAqB,QAAa;AAS9C,YAAM,2BAA2B,YAAY;AAC3C,YAAI,uDAAyB,GAAG,KAM5B,QAAQ,IAAI,qBAAqB,SACnC,MAAM,IAAI,IAAI,aAAa,QAAQ,GAAG;AAAA,MAE1C;AAEA,MAAI,WAAW,YACb,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,GAGtD,WAAW,YACb,MAAM,yBAAyB;AAAA,IAEnC,GAGI,gBAAoC;AAAA,MACxC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACrC;AAEA,WAAO;AAAA,MACL,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACL;AAAA,EACF;AAGA,SAAO;AACT;",
5
5
  "names": ["mutations"]
6
6
  }
@@ -18,12 +18,13 @@ __export(mutations_exports, {
18
18
  mutations: () => mutations
19
19
  });
20
20
  module.exports = __toCommonJS(mutations_exports);
21
+ var import_didRunPermissionCheck = require("./helpers/didRunPermissionCheck");
21
22
  function mutations(table, permissions, mutations2) {
22
23
  if (permissions) {
23
24
  var tableName = table.schema.name, createCRUDMutation = function(action) {
24
25
  return async function(ctx, obj) {
25
26
  var runServerPermissionCheck = async function() {
26
- ctx.didCanPermissionsRun || process.env.VITE_ENVIRONMENT === "ssr" && await ctx.can(permissions, action, obj);
27
+ (0, import_didRunPermissionCheck.getDidRunPermissionCheck)(ctx) || process.env.VITE_ENVIRONMENT === "ssr" && await ctx.can(permissions, action, obj);
27
28
  };
28
29
  action !== "insert" && await runServerPermissionCheck();
29
30
  var existing = mutations2 == null ? void 0 : mutations2[action];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/mutations.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,SAAS,UAAU,OAAO,aAAaA,YAAW;AACrD,MAAI,aAAa;AACb,QAAI,YAAY,MAAM,OAAO,MACzB,qBAAqB,SAAS,QAAQ;AACtC,aAAO,eAAe,KAAK,KAAK;AAQhC,YAAI,2BAA2B,iBAAiB;AACxC,UAAI,IAAI,wBAKJ,QAAQ,IAAI,qBAAqB,SACjC,MAAM,IAAI,IAAI,aAAa,QAAQ,GAAG;AAAA,QAE9C;AACA,QAAI,WAAW,YACX,MAAM,yBAAyB;AAGnC,YAAI,WAAWA,cAAc,OAA+B,SAASA,WAAU,MAAM;AACrF,QAAI,WACA,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAS,EAAE,MAAM,EAAE,GAAG,GAE1C,WAAW,YACX,MAAM,yBAAyB;AAAA,MAEvC;AAAA,IACJ,GACI,gBAAgB;AAAA,MAChB,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACvC;AACA,WAAO;AAAA,MACH,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACP;AAAA,EACJ;AAEA,SAAO;AACX;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAAyC;AAgBlC,SAAS,UAAU,OAAO,aAAaA,YAAW;AACrD,MAAI,aAAa;AACb,QAAI,YAAY,MAAM,OAAO,MACzB,qBAAqB,SAAS,QAAQ;AACtC,aAAO,eAAe,KAAK,KAAK;AAQhC,YAAI,2BAA2B,iBAAiB;AACxC,cAAI,uDAAyB,GAAG,KAK5B,QAAQ,IAAI,qBAAqB,SACjC,MAAM,IAAI,IAAI,aAAa,QAAQ,GAAG;AAAA,QAE9C;AACA,QAAI,WAAW,YACX,MAAM,yBAAyB;AAGnC,YAAI,WAAWA,cAAc,OAA+B,SAASA,WAAU,MAAM;AACrF,QAAI,WACA,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAS,EAAE,MAAM,EAAE,GAAG,GAE1C,WAAW,YACX,MAAM,yBAAyB;AAAA,MAEvC;AAAA,IACJ,GACI,gBAAgB;AAAA,MAChB,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACvC;AACA,WAAO;AAAA,MACH,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACP;AAAA,EACJ;AAEA,SAAO;AACX;",
5
5
  "names": ["mutations"]
6
6
  }
@@ -1,6 +1,7 @@
1
1
  import { ANYONE_CAN, definePermissions } from "@rocicorp/zero";
2
2
  import { ensure, EnsureError, objectEntries } from "@vxrn/helpers";
3
3
  import { runWithContext } from "./helpers/context";
4
+ import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck";
4
5
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery";
5
6
  import { getWhereTableName } from "./where";
6
7
  function createPermissions({
@@ -37,7 +38,7 @@ function createPermissions({
37
38
  }
38
39
  return eb.and(permissionCondition, ...primaryKeyWheres);
39
40
  }
40
- async function can(where, action, obj) {
41
+ const can = async (where, action, obj) => {
41
42
  const ctx = getContext(), tableName = getWhereTableName(where);
42
43
  if (!tableName)
43
44
  throw new Error("Must use where('table') style where to pass to can()");
@@ -48,8 +49,8 @@ function createPermissions({
48
49
  where,
49
50
  action,
50
51
  obj
51
- ), ctx.didCanPermissionsRun = !0);
52
- }
52
+ ), setDidRunPermissionCheck(ctx));
53
+ };
53
54
  async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
54
55
  if (authData?.role === "admin")
55
56
  return;
@@ -70,7 +71,7 @@ ${err}`);
70
71
  }
71
72
  const readPermissions = definePermissions(schema, async () => {
72
73
  const permissionsEntries = await Promise.all(
73
- objectEntries(models).map(async ([key, model]) => await runWithContext(
74
+ objectEntries(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await runWithContext(
74
75
  {
75
76
  authData: { id: "", role: void 0, email: "" }
76
77
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createPermissions.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAMA,SAAS,YAAY,yBAAyB;AAC9C,SAAS,QAAQ,aAAa,qBAAqB;AACnD,SAAS,sBAAsB;AAC/B,SAAS,gCAAgC;AACzC,SAAS,6BAA6B;AAStC,SAAS,yBAAyB;AAE3B,SAAS,kBAA6C;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AAkBD,QAAM,kBAA0C;AAAA,IAC9C,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AAEA,WAAS,qBAIP,UACA,IACA,iBACA,QAEA,SACA;AACA,UAAM,YAAY,kBAAkB,eAAe;AAEnD,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,yBAAyB,gBAAgB,IAAI,QAAQ,GACrD,iBAAiB,gBAAgB,MAAM,GAEvC,sBACJ,uBAAuB,MAAM,MAC5B,iBAAiB,uBAAuB,cAAc,IAAI;AAE7D,QAAI,uBAAuB;AACzB,YAAM,IAAI,MAAM,6BAA6B,MAAM,QAAQ,cAAc,GAAG;AAG9E,QAAI,wBAAwB;AAC1B,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,QAAI,wBAAwB;AAC1B,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,qBAAqB,GAAG,gBAAgB;AAAA,EACxD;AAEA,QAAM,MAAW,OAAO,OAAO,QAAQ,QAAQ;AAC7C,UAAM,MAAM,WAAW,GACjB,YAAY,kBAAkB,KAAK;AACzC,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,sDAAsD;AAIxE,IAAI,gBAAgB,aAClB,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,GACA,yBAAyB,GAAG;AAAA,EAEhC;AAEA,iBAAe,iBAIb,IACA,UACA,WACA,OACA,UACA,KACe;AACf,QAAI,UAAU,SAAS;AAErB;AAGF,UAAM,SAAS,OAAO,QAAQ,GACxB,OAAO,GAAG,SAAS,IAAI,MAAM,IAE7B,YAAY,GAAG,MAAM,SAAS;AACpC,QAAI,QAAqC;AAEzC,QAAI;AACF,cAAQ,UACL,MAAM,CAAC,OACC,qBAAqB,UAAU,IAAI,OAAO,QAAQ,GAAG,CAC7D,EACA,IAAI,GAEP,OAAO,MAAM,KAAK;AAAA,IACpB,SAAS,KAAK;AACZ,YAAM,aAAa,GAAG,IAAI,kBAAkB,UAAU,EAAE;AAExD,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,QAAM,kBAAkB,kBAAoC,QAAQ,YAAY;AAC9E,UAAM,qBAAqB,MAAM,QAAQ;AAAA,MACvC,cAAc,MAAM,EAEjB,OAAO,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,MAAM,WAAW,EAC1C,IAAI,OAAO,CAAC,KAAK,KAAK,MACd,MAAM;AAAA,QACX;AAAA,UACE,UAAU,EAAE,IAAI,IAAI,MAAM,QAAW,OAAO,GAAG;AAAA,QACjD;AAAA,QACA,MACS;AAAA,UACL;AAAA,UACA;AAAA,YACE,KAAK;AAAA,cACH,QAAQ;AAAA,gBACN,CAAC,UAAoB,OAAoC;AACvD,wBAAM,MAAM,MAAM,YAAY,IAAI,QAAQ,EAAE;AAE5C,yBAAI,QAAQ,KACH,GAAG,IAAI,IAGZ,QAAQ,KACH,GAAG,OAAO,IAAM,KAAK,EAAK,IAG5B;AAAA,gBACT;AAAA,cACF;AAAA;AAAA,cAEA,QAAQ;AAAA,cACR,QAAQ;AAAA,cACR,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA,MAEJ,CACD;AAAA,IACL;AAIA,WAFoB,OAAO,YAAY,kBAAkB;AAAA,EAG3D,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,7 @@
1
1
  import { ANYONE_CAN, definePermissions } from "@rocicorp/zero";
2
2
  import { ensure, EnsureError, objectEntries } from "@vxrn/helpers";
3
3
  import { runWithContext } from "./helpers/context.mjs";
4
+ import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.mjs";
4
5
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.mjs";
5
6
  import { getWhereTableName } from "./where.mjs";
6
7
  function createPermissions({
@@ -35,12 +36,12 @@ function createPermissions({
35
36
  }
36
37
  return eb.and(permissionCondition, ...primaryKeyWheres);
37
38
  }
38
- async function can(where, action, obj) {
39
+ const can = async (where, action, obj) => {
39
40
  const ctx = getContext(),
40
41
  tableName = getWhereTableName(where);
41
42
  if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
42
- environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), ctx.didCanPermissionsRun = !0);
43
- }
43
+ environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), setDidRunPermissionCheck(ctx));
44
+ };
44
45
  async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
45
46
  if (authData?.role === "admin") return;
46
47
  const action = String(actionIn),
@@ -61,7 +62,7 @@ ${err}`);
61
62
  }
62
63
  }
63
64
  const readPermissions = definePermissions(schema, async () => {
64
- const permissionsEntries = await Promise.all(objectEntries(models).map(async ([key, model]) => await runWithContext({
65
+ const permissionsEntries = await Promise.all(objectEntries(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await runWithContext({
65
66
  authData: {
66
67
  id: "",
67
68
  role: void 0,
@@ -1 +1 @@
1
- {"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","prettyFormatZeroQuery","getWhereTableName","createPermissions","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","didCanPermissionsRun","actionIn","role","String","name","queryBase","query","one","err","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","map","model","email","row","out","permissions","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"AAMA,SAASA,UAAA,EAAYC,iBAAA,QAAyB;AAC9C,SAASC,MAAA,EAAQC,WAAA,EAAaC,aAAA,QAAqB;AACnD,SAASC,cAAA,QAAsB;AAC/B,SAASC,qBAAA,QAA6B;AAEtC,SAASC,iBAAA,QAAyB;AAE3B,SAASC,kBAA6C;EAC3DC,WAAA;EACAC,MAAA;EACAC,MAAA;EACAC;AACF,GAKG;EAkBD,MAAMC,eAAA,GAA0C;IAC9CC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;EACV;EAEA,SAASC,qBAIPC,QAAA,EACAC,EAAA,EACAC,eAAA,EACAC,MAAA,EAEAC,OAAA,EACA;IACA,MAAMC,SAAA,GAAYlB,iBAAA,CAAkBe,eAAe;IAEnD,IAAI,CAACG,SAAA,EACH,MAAM,IAAIC,KAAA,CAAM,mDAAmD;IAGrE,MAAMC,WAAA,GAAcjB,MAAA,CAAOkB,MAAA,CAAOH,SAAS;IAE3C,IAAI,CAACE,WAAA,EACH,MAAM,IAAID,KAAA,CAAM,YAAY;IAG9B,MAAMG,WAAA,GAAcF,WAAA,CAAYG,UAAA;MAC1BC,sBAAA,GAAyBT,eAAA,CAAgBD,EAAA,EAAID,QAAQ;MACrDY,cAAA,GAAiBnB,eAAA,CAAgBU,MAAM;MAEvCU,mBAAA,GACJF,sBAAA,CAAuBR,MAAM,MAC5BS,cAAA,GAAiBD,sBAAA,CAAuBC,cAAc,IAAI;IAE7D,IAAIC,mBAAA,IAAuB,MACzB,MAAM,IAAIP,KAAA,CAAM,6BAA6BH,MAAM,QAAQS,cAAc,GAAG;IAG9E,IAAIC,mBAAA,KAAwB,IAC1B,OAAOZ,EAAA,CAAGa,MAAA,CAAO,IAAM,KAAK,EAAI;IAGlC,IAAID,mBAAA,KAAwB,IAC1B,OAAOZ,EAAA,CAAGa,MAAA,CAAO,IAAM,KAAK,EAAK;IAGnC,MAAMC,gBAAA,GAAgC,EAAC;IAEvC,WAAWC,GAAA,IAAOP,WAAA,EAAa;MAC7B,MAAMQ,KAAA,GAAQ,OAAOb,OAAA,IAAY,WAAWA,OAAA,GAAUA,OAAA,CAAQY,GAAG;MACjED,gBAAA,CAAiBG,IAAA,CAAKjB,EAAA,CAAGkB,GAAA,CAAIH,GAAA,EAAYC,KAAK,CAAC;IACjD;IAEA,OAAOhB,EAAA,CAAGmB,GAAA,CAAIP,mBAAA,EAAqB,GAAGE,gBAAgB;EACxD;EAEA,eAAeM,IAGbC,KAAA,EAAenB,MAAA,EAAgBoB,GAAA,EAAU;IACzC,MAAMC,GAAA,GAAMhC,UAAA,CAAW;MACjBa,SAAA,GAAYlB,iBAAA,CAAkBmC,KAAK;IACzC,IAAI,CAACjB,SAAA,EACH,MAAM,IAAIC,KAAA,CAAM,sDAAsD;IAIpEjB,WAAA,KAAgB,aAClB,MAAMoC,gBAAA,CACJD,GAAA,CAAIE,EAAA,EACJF,GAAA,CAAIxB,QAAA,EACJK,SAAA,EACAiB,KAAA,EACAnB,MAAA,EACAoB,GACF,GACAC,GAAA,CAAIG,oBAAA,GAAuB;EAE/B;EAEA,eAAeF,iBAIbC,EAAA,EACA1B,QAAA,EACAK,SAAA,EACAiB,KAAA,EACAM,QAAA,EACAL,GAAA,EACe;IACf,IAAIvB,QAAA,EAAU6B,IAAA,KAAS,SAErB;IAGF,MAAM1B,MAAA,GAAS2B,MAAA,CAAOF,QAAQ;MACxBG,IAAA,GAAO,GAAG1B,SAAS,IAAIF,MAAM;MAE7B6B,SAAA,GAAYN,EAAA,CAAGO,KAAA,CAAM5B,SAAS;IACpC,IAAI4B,KAAA,GAAqC;IAEzC,IAAI;MACFA,KAAA,GAAQD,SAAA,CACLV,KAAA,CAAOrB,EAAA,IACCF,oBAAA,CAAqBC,QAAA,EAAUC,EAAA,EAAIqB,KAAA,EAAOnB,MAAA,EAAQoB,GAAG,CAC7D,EACAW,GAAA,CAAI,GAEPpD,MAAA,CAAO,MAAMmD,KAAK;IACpB,SAASE,GAAA,EAAK;MACZ,MAAMC,UAAA,GAAa,GAAGL,IAAI,kBAAkB/B,QAAA,EAAUqC,EAAE;MAExD,IAAIF,GAAA,YAAepD,WAAA,EAAa;QAC9B,IAAIuD,GAAA,GAAM,uCAAgCF,UAAU;QACpD,MAAIG,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAAiBR,KAAA,KAC5CK,GAAA,IAAO;AAAA,GAAMpD,qBAAA,CAAsB+C,KAAK,CAAC,KAErC,IAAI3B,KAAA,CAAMgC,GAAG;MACrB;MAEA,MAAM,IAAIhC,KAAA,CAAM,4BAA4B8B,UAAU;AAAA,EAAKD,GAAG,EAAE;IAClE;EACF;EAEA,MAAMO,eAAA,GAAkB7D,iBAAA,CAAoCS,MAAA,EAAQ,YAAY;IAC9E,MAAMqD,kBAAA,GAAqB,MAAMC,OAAA,CAAQC,GAAA,CACvC7D,aAAA,CAAcO,MAAM,EAAEuD,GAAA,CAAI,OAAO,CAAC9B,GAAA,EAAK+B,KAAK,MACnC,MAAM9D,cAAA,CACX;MACEe,QAAA,EAAU;QAAEqC,EAAA,EAAI;QAAIR,IAAA,EAAM;QAAWmB,KAAA,EAAO;MAAG;IACjD,GACA,MACS,CACLhC,GAAA,EACA;MACEiC,GAAA,EAAK;QACHvD,MAAA,EAAQ,CACN,CAACM,QAAA,EAAoBC,EAAA,KAAoC;UACvD,MAAMiD,GAAA,GAAMH,KAAA,CAAMI,WAAA,CAAYlD,EAAA,EAAID,QAAQ,EAAEoD,IAAA;UAE5C,OAAIF,GAAA,KAAQ,KACHjD,EAAA,CAAGmB,GAAA,CAAI,IAGZ8B,GAAA,KAAQ,KACHjD,EAAA,CAAGa,MAAA,CAAO,IAAM,KAAK,EAAK,IAG5BoC,GAAA;QACT,EACF;QAAA;QAEAvD,MAAA,EAAQf,UAAA;QACRgB,MAAA,EAAQhB,UAAA;QACRkB,MAAA,EAAQlB;MACV;IACF,EAGN,CACD,CACH;IAIA,OAFoByE,MAAA,CAAOC,WAAA,CAAYX,kBAAkB;EAG3D,CAAC;EAED,OAAO;IACLtB,GAAA;IACAtB,oBAAA;IACA2C;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","setDidRunPermissionCheck","prettyFormatZeroQuery","getWhereTableName","createPermissions","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","actionIn","role","String","name","queryBase","query","one","err","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","filter","_","model","permissions","map","email","row","out","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import { ANYONE_CAN, definePermissions } from "@rocicorp/zero";
2
2
  import { ensure, EnsureError, objectEntries } from "@vxrn/helpers";
3
3
  import { runWithContext } from "./helpers/context.native.js";
4
+ import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.native.js";
4
5
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.native.js";
5
6
  import { getWhereTableName } from "./where.native.js";
6
7
  function createPermissions(param) {
@@ -50,12 +51,12 @@ function createPermissions(param) {
50
51
  }
51
52
  return eb.and(permissionCondition, ...primaryKeyWheres);
52
53
  }
53
- async function can(where, action, obj) {
54
+ var can = async function (where, action, obj) {
54
55
  var ctx = getContext(),
55
56
  tableName = getWhereTableName(where);
56
57
  if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
57
- environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), ctx.didCanPermissionsRun = !0);
58
- }
58
+ environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), setDidRunPermissionCheck(ctx));
59
+ };
59
60
  async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
60
61
  if (authData?.role !== "admin") {
61
62
  var action = String(actionIn),
@@ -79,7 +80,10 @@ ${err}`);
79
80
  }
80
81
  }
81
82
  var readPermissions = definePermissions(schema, async function () {
82
- var permissionsEntries = await Promise.all(objectEntries(models).map(async function (param2) {
83
+ var permissionsEntries = await Promise.all(objectEntries(models).filter(function (param2) {
84
+ var [_, model] = param2;
85
+ return !!model.permissions;
86
+ }).map(async function (param2) {
83
87
  var [key, model] = param2;
84
88
  return await runWithContext({
85
89
  authData: {
@@ -1 +1 @@
1
- {"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","prettyFormatZeroQuery","getWhereTableName","createPermissions","param","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","key","value","push","cmp","err","return","and","can","where","obj","ctx","ensurePermission","tx","didCanPermissionsRun","actionIn","role","String","name","queryBase","query","one","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","map","param2","model","email","row","out","permissions","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","setDidRunPermissionCheck","prettyFormatZeroQuery","getWhereTableName","createPermissions","param","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","key","value","push","cmp","err","return","and","can","where","obj","ctx","ensurePermission","tx","actionIn","role","String","name","queryBase","query","one","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","filter","param2","_","model","permissions","map","email","row","out","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
- import { createEmitter, createLocalStorage, mapObject } from "@vxrn/helpers";
2
+ import { createEmitter, mapObject } from "@vxrn/helpers";
3
3
  import { createContext, use, useMemo } from "react";
4
4
  import { createPermissions } from "./createPermissions";
5
5
  import { context } from "./helpers/context";
@@ -19,21 +19,19 @@ function createZeroClient({ schema, models, disable }) {
19
19
  models,
20
20
  getContext: context,
21
21
  environment: "client"
22
- }), permissionCache = createLocalStorage("permissions-cache", {
23
- storageLimit: 24
24
22
  }), zeroEvents = createEmitter("zero", null), AuthDataContext = createContext({}), useAuthData = () => use(AuthDataContext);
25
23
  function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
26
- const keyBase = `${String(table)}${action}`, key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase), authData = useAuthData(), permission = modelPermissions[table], query = (() => {
24
+ const key = `${`${String(table)}${action}`}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, authData = useAuthData(), permission = modelPermissions[table], query = (() => {
27
25
  let baseQuery = zero.query[table].one();
28
- return enabled ? baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
26
+ return !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
29
27
  authData,
30
28
  eb,
31
29
  permission,
32
30
  action,
33
31
  objOrId
34
- )) : baseQuery;
32
+ ));
35
33
  })(), [data, status] = useQuery(query, {
36
- enabled: !!(enabled && authData && objOrId)
34
+ enabled: !!(enabled && permission && authData && objOrId)
37
35
  });
38
36
  debug && console.info(
39
37
  "usePermission()",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZeroClient.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["zero"]
6
6
  }
@@ -1,5 +1,5 @@
1
1
  import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
- import { createEmitter, createLocalStorage, mapObject } from "@vxrn/helpers";
2
+ import { createEmitter, mapObject } from "@vxrn/helpers";
3
3
  import { createContext, use, useMemo } from "react";
4
4
  import { createPermissions } from "./createPermissions.mjs";
5
5
  import { context } from "./helpers/context.mjs";
@@ -25,24 +25,19 @@ function createZeroClient({
25
25
  getContext: context,
26
26
  environment: "client"
27
27
  }),
28
- permissionCache = createLocalStorage("permissions-cache", {
29
- storageLimit: 24
30
- }),
31
28
  zeroEvents = createEmitter("zero", null),
32
29
  AuthDataContext = createContext({}),
33
30
  useAuthData = () => use(AuthDataContext);
34
31
  function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
35
- const keyBase = `${String(table)}${action}`,
36
- key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
37
- cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase),
32
+ const key = `${`${String(table)}${action}`}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
38
33
  authData = useAuthData(),
39
34
  permission = modelPermissions[table],
40
35
  query = (() => {
41
36
  let baseQuery = zero.query[table].one();
42
- return enabled ? baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId)) : baseQuery;
37
+ return !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId));
43
38
  })(),
44
39
  [data, status] = useQuery(query, {
45
- enabled: !!(enabled && authData && objOrId)
40
+ enabled: !!(enabled && permission && authData && objOrId)
46
41
  });
47
42
  debug && console.info("usePermission()", {
48
43
  data,
@@ -1 +1 @@
1
- {"version":3,"names":["useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","createLocalStorage","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","jsx","jsxs","createZeroClient","schema","models","disable","modelPermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","getContext","environment","permissionCache","storageLimit","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","debug","keyBase","String","JSON","stringify","cacheVal","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","options","type","out","process","env","NODE_ENV","ProvideZero","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","jsx","jsxs","createZeroClient","schema","models","disable","modelPermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","getContext","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","debug","String","JSON","stringify","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","options","type","out","process","env","NODE_ENV","ProvideZero","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
3
- import { createEmitter, createLocalStorage, mapObject } from "@vxrn/helpers";
3
+ import { createEmitter, mapObject } from "@vxrn/helpers";
4
4
  import { createContext, use, useMemo } from "react";
5
5
  import { createPermissions } from "./createPermissions.native.js";
6
6
  import { context } from "./helpers/context.native.js";
@@ -28,9 +28,6 @@ function createZeroClient(param) {
28
28
  getContext: context,
29
29
  environment: "client"
30
30
  }),
31
- permissionCache = createLocalStorage("permissions-cache", {
32
- storageLimit: 24
33
- }),
34
31
  zeroEvents = createEmitter("zero", null),
35
32
  AuthDataContext = /* @__PURE__ */createContext({}),
36
33
  useAuthData = function () {
@@ -41,18 +38,16 @@ function createZeroClient(param) {
41
38
  debug = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1,
42
39
  keyBase = `${String(table)}${action}`,
43
40
  key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
44
- _permissionCache_get,
45
- cacheVal = (_permissionCache_get = permissionCache.get(key)) !== null && _permissionCache_get !== void 0 ? _permissionCache_get : permissionCache.get(keyBase),
46
41
  authData = useAuthData(),
47
42
  permission = modelPermissions[table],
48
43
  query = function () {
49
44
  var baseQuery = zero.query[table].one();
50
- return enabled ? baseQuery.where(function (eb) {
45
+ return !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
51
46
  return permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId);
52
- }) : baseQuery;
47
+ });
53
48
  }(),
54
49
  [data, status] = useQuery(query, {
55
- enabled: !!(enabled && authData && objOrId)
50
+ enabled: !!(enabled && permission && authData && objOrId)
56
51
  });
57
52
  debug && console.info("usePermission()", {
58
53
  data,