on-zero 0.0.86 → 0.0.88

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 (55) hide show
  1. package/dist/cjs/createZeroClient.cjs +32 -15
  2. package/dist/cjs/createZeroClient.js +42 -20
  3. package/dist/cjs/createZeroClient.js.map +1 -1
  4. package/dist/cjs/createZeroClient.native.js +61 -25
  5. package/dist/cjs/createZeroClient.native.js.map +1 -1
  6. package/dist/cjs/createZeroServer.cjs +4 -4
  7. package/dist/cjs/createZeroServer.js +3 -3
  8. package/dist/cjs/createZeroServer.js.map +1 -1
  9. package/dist/cjs/createZeroServer.native.js +4 -4
  10. package/dist/cjs/createZeroServer.native.js.map +1 -1
  11. package/dist/cjs/modelRegistry.cjs +4 -0
  12. package/dist/cjs/modelRegistry.js +4 -0
  13. package/dist/cjs/modelRegistry.js.map +1 -1
  14. package/dist/cjs/modelRegistry.native.js +4 -0
  15. package/dist/cjs/modelRegistry.native.js.map +1 -1
  16. package/dist/cjs/where.cjs +6 -1
  17. package/dist/cjs/where.js +6 -1
  18. package/dist/cjs/where.js.map +1 -1
  19. package/dist/cjs/where.native.js +7 -2
  20. package/dist/cjs/where.native.js.map +1 -1
  21. package/dist/esm/createZeroClient.js +44 -22
  22. package/dist/esm/createZeroClient.js.map +1 -1
  23. package/dist/esm/createZeroClient.mjs +34 -17
  24. package/dist/esm/createZeroClient.mjs.map +1 -1
  25. package/dist/esm/createZeroClient.native.js +63 -27
  26. package/dist/esm/createZeroClient.native.js.map +1 -1
  27. package/dist/esm/createZeroServer.js +3 -3
  28. package/dist/esm/createZeroServer.js.map +1 -1
  29. package/dist/esm/createZeroServer.mjs +4 -4
  30. package/dist/esm/createZeroServer.mjs.map +1 -1
  31. package/dist/esm/createZeroServer.native.js +4 -4
  32. package/dist/esm/createZeroServer.native.js.map +1 -1
  33. package/dist/esm/modelRegistry.js +4 -0
  34. package/dist/esm/modelRegistry.js.map +1 -1
  35. package/dist/esm/modelRegistry.mjs +4 -1
  36. package/dist/esm/modelRegistry.mjs.map +1 -1
  37. package/dist/esm/modelRegistry.native.js +4 -1
  38. package/dist/esm/modelRegistry.native.js.map +1 -1
  39. package/dist/esm/where.js +6 -1
  40. package/dist/esm/where.js.map +1 -1
  41. package/dist/esm/where.mjs +6 -2
  42. package/dist/esm/where.mjs.map +1 -1
  43. package/dist/esm/where.native.js +6 -2
  44. package/dist/esm/where.native.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/createZeroClient.tsx +80 -37
  47. package/src/createZeroServer.ts +5 -5
  48. package/src/modelRegistry.ts +4 -0
  49. package/src/where.ts +9 -1
  50. package/types/createZeroClient.d.ts +3 -1
  51. package/types/createZeroClient.d.ts.map +1 -1
  52. package/types/modelRegistry.d.ts +1 -0
  53. package/types/modelRegistry.d.ts.map +1 -1
  54. package/types/where.d.ts +1 -0
  55. package/types/where.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","where_exports","__export","getRawWhere","getWhereTableName","where","module","exports","import_constants","require","import_getQueryOrMutatorAuthData","a","b","isServerOnly","arguments","length","whereFn","wrappedWhereFn","a2","_$b","getQueryOrMutatorAuthData","isServer","and","result","cmpLit","WhereRawBuilderMap","set","WhereTableNameMap","WeakMap","where2","get"],"sources":["../../src/where.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,KAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAX,YAAyB,CAAAK,aAAA;AAgBlB,IAAAO,gBAEL,GACAC,OAAA,wBAC6B;EAAAC,gCAAA,GAAAD,OAAA;AAC7B,SAAMJ,MAAAM,CAAA,EAAWC,CAAA;EAMf,IAAAC,YAAK,GAAAC,SAAA,CAAAC,MAAA,GAAY,KAAAD,SAAA,iBAAAA,SAAA;IAAAE,OAAA,GAAAJ,CAAA,IAAAD,CAAA;IAAAM,cAAA,YAAAA,CAAAC,EAAA;MAEf,IAAAC,GAAA,GAAOL,SAAM,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,UAAAJ,gCAAA,CAAAU,yBAAA;MAGf,KAAAZ,gBAAe,CAAAa,QAAY,IAAAR,YAAA,EAC3B,OAAIK,EAAA,CAAAI,GAAO;MAQb,IAAAC,MAAA,GAAAP,OAAA,CAAAE,EAAA,EAAAC,GAAA;MAGA,cAAAI,MAAA,IAAmB,SAAI,GAAAA,MAAA,GAAgBL,EAAA,CAAAM,MAEnC,OACF,OAAAN,EAAA,CAAAM,MAAkB,IAAI,UAAAD,MAAgB;IAI1C;EAIA,OAAME,kBAAoB,CAAAC,GAAA,CAAAT,cAAI,EAAAD,OAA0B,GAClDJ,CAAA,IAAAe,iBAAqB,CAAAD,GAAA,CAAAT,cAAI,EAAAN,CAAA,GAAAM,cAAsB;AAE9C;AACL,IAAAU,iBAAO,kBAA2B,IAAAC,OAAA;EAAAH,kBAAA,sBAAAG,OAAA;AACpC,SAAAxB,kBAAAyB,MAAA;EAGO,OAASF,iBAAY,CAAAG,GAAiC,CAAAD,MAAA;AAC3D;AACF,SAAA1B,YAAA0B,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","where_exports","__export","getRawWhere","getWhereTableName","setEvaluatingPermission","where","module","exports","import_constants","require","import_getQueryOrMutatorAuthData","_evaluatingPermission","a","b","isServerOnly","arguments","length","whereFn","wrappedWhereFn","a2","_$b","getQueryOrMutatorAuthData","isServer","and","result","cmpLit","WhereRawBuilderMap","set","WhereTableNameMap","WeakMap","where2","get"],"sources":["../../src/where.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,uBAAA,EAAAA,CAAA,KAAAA,uBAAA;EAAAC,KAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAZ,YAAyB,CAAAK,aAAA;AAQzB,IAAIQ,gBAAA,GAAAC,OAAwB;EAAAC,gCAAA,GAAAD,OAAA;EAAAE,qBAAA;AAErB,SAASP,wBAAwBL,KAAA,EAAgB;EACtDY,qBAAA,GAAwBZ,KAAA;AAC1B;AAYO,SAASM,MACdO,CAAA,EACAC,CAAA,EACA;EAEA,IAAAC,YAAiB,GAAAC,SAEX,CAAAC,MAAA,QACJD,SACA,QAAI,SAAAA,SAAA;IAAAE,OAAA,GAAAJ,CAAA,IAAAD,CAAA;IAAAM,cAA0B,GAC3B,SAAAA,CAAAC,EAAA;MACH,IAAIC,GAAC,GAAAL,SAAA,CAAAC,MAAA,QAAYD,SAAA,QAAiB,SAAAA,SAAA,UAAAL,gCAAA,CAAAW,yBAAA;MAEhC,KAAAb,gBAAa,CAAAc,QAAA,IAAAR,YAAA,KAAAH,qBAAA,EAGf,OAAMQ,EAAA,CAAAI,GAAS;MACf,IAAAC,MAAI,GAAAP,OAAO,CAAAE,EAAA,EAAWC,GAAA;MAQxB,cAAAI,MAAA,gBAAAA,MAAA,GAAAL,EAAA,CAAAM,MAAA,cAAAN,EAAA,CAAAM,MAAA,cAAAD,MAAA;IAGA;EAOF,OAAAE,kBAAA,CAAAC,GAAA,CAAAT,cAAA,EAAAD,OAAA,GAAAJ,CAAA,IAAAe,iBAAA,CAAAD,GAAA,CAAAT,cAAA,EAAAN,CAAA,GAAAM,cAAA;AAIA;AAGO,IAAAU,iBAAS,kBAAgC,IAAAC,OAAA;EAAAH,kBAAA,sBAAAG,OAAA;AAC9C,SAAO1B,kBAAkB2B,MAAI;EAC/B,OAAAF,iBAAA,CAAAG,GAAA,CAAAD,MAAA;AAGO;AACL,SAAO5B,YAAA4B,MAAA,EAAmB;EAC5B,OAAAJ,kBAAA,CAAAK,GAAA,CAAAD,MAAA","ignoreList":[]}
@@ -13,19 +13,20 @@ import { createPermissions } from "./createPermissions";
13
13
  import { createUseQuery } from "./createUseQuery";
14
14
  import { createMutators } from "./helpers/createMutators";
15
15
  import { getQueryOrMutatorAuthData } from "./helpers/getQueryOrMutatorAuthData";
16
- import { getMutationsPermissions } from "./modelRegistry";
16
+ import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegistry";
17
17
  import { registerQuery } from "./queryRegistry";
18
18
  import { resolveQuery } from "./resolveQuery";
19
19
  import { setCustomQueries } from "./run";
20
20
  import { setAuthData, setSchema } from "./state";
21
- import { getRawWhere } from "./where";
21
+ import { getRawWhere, setEvaluatingPermission } from "./where";
22
22
  import { setRunner } from "./zeroRunner";
23
23
  import { zql } from "./zql";
24
24
  import { jsx, jsxs } from "react/jsx-runtime";
25
25
  function createZeroClient({
26
26
  schema,
27
27
  models,
28
- groupedQueries
28
+ groupedQueries,
29
+ permissionStrategy = "optimistic"
29
30
  }) {
30
31
  setSchema(schema);
31
32
  const permissionsHelpers = createPermissions({
@@ -39,22 +40,43 @@ function createZeroClient({
39
40
  ({ args }) => fn(args)
40
41
  );
41
42
  }
42
- const permissionCheckFn = (args) => {
43
- const perm = getMutationsPermissions(args.table), base = zql[args.table];
44
- if (!args.objOrId)
45
- return base.where((eb) => eb.cmpLit(!0, "=", !1)).one();
46
- const rawPerm = perm && (getRawWhere(perm) || perm);
47
- return base.where((eb) => permissionsHelpers.buildPermissionQuery(
48
- getQueryOrMutatorAuthData(),
49
- eb,
50
- rawPerm || ((e) => e.and()),
51
- args.objOrId,
52
- args.table
53
- )).one();
54
- };
55
- registerQuery(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
56
- check: defineQuery(({ args }) => permissionCheckFn(args))
43
+ const permissionCheckFns = {}, createPermissionCheckFn = (table) => {
44
+ const fn = (args) => {
45
+ const perm = getMutationsPermissions(table), base = zql[table];
46
+ if (!args.objOrId)
47
+ return base.where((eb) => eb.cmpLit(!0, "=", !1)).one();
48
+ if (permissionStrategy === "optimistic") {
49
+ const rawPerm = perm && (getRawWhere(perm) || perm);
50
+ return base.where((eb) => {
51
+ setEvaluatingPermission(!0);
52
+ try {
53
+ return permissionsHelpers.buildPermissionQuery(
54
+ getQueryOrMutatorAuthData(),
55
+ eb,
56
+ rawPerm || ((e) => e.and()),
57
+ args.objOrId,
58
+ table
59
+ );
60
+ } finally {
61
+ setEvaluatingPermission(!1);
62
+ }
63
+ }).one();
64
+ }
65
+ return permissionStrategy === "optimistic-deny" ? base.where((eb) => eb.cmpLit(!0, "=", !1)).one() : base.where((eb) => permissionsHelpers.buildPermissionQuery(
66
+ getQueryOrMutatorAuthData(),
67
+ eb,
68
+ perm || ((e) => e.and()),
69
+ args.objOrId,
70
+ table
71
+ )).one();
72
+ };
73
+ return permissionCheckFns[table] = fn, registerQuery(fn, `permission.${table}`), fn;
57
74
  };
75
+ wrappedNamespaces.permission = {};
76
+ for (const [table] of getAllMutationsPermissions()) {
77
+ const fn = createPermissionCheckFn(table);
78
+ wrappedNamespaces.permission[table] = defineQuery(({ args }) => fn(args));
79
+ }
58
80
  const customQueries = defineQueries(wrappedNamespaces);
59
81
  setCustomQueries(customQueries);
60
82
  const DisabledContext = createContext(!1);
@@ -72,10 +94,10 @@ function createZeroClient({
72
94
  customQueries
73
95
  });
74
96
  function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
75
- const disabled = use(DisabledContext), [data, status] = useQuery(
76
- permissionCheckFn,
77
- { table, objOrId },
78
- { enabled: !!(!disabled && enabled && objOrId) }
97
+ const disabled = use(DisabledContext), checkFn = permissionCheckFns[table], [data, status] = useQuery(
98
+ checkFn,
99
+ { objOrId },
100
+ { enabled: !!(!disabled && enabled && objOrId && checkFn) }
79
101
  );
80
102
  return debug && console.info("usePermission()", { table, objOrId, data, status }), objOrId ? status.type === "unknown" ? null : !!data : !1;
81
103
  }
@@ -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": ["zeroEvents"]
6
6
  }
@@ -6,19 +6,20 @@ import { createPermissions } from "./createPermissions.mjs";
6
6
  import { createUseQuery } from "./createUseQuery.mjs";
7
7
  import { createMutators } from "./helpers/createMutators.mjs";
8
8
  import { getQueryOrMutatorAuthData } from "./helpers/getQueryOrMutatorAuthData.mjs";
9
- import { getMutationsPermissions } from "./modelRegistry.mjs";
9
+ import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegistry.mjs";
10
10
  import { registerQuery } from "./queryRegistry.mjs";
11
11
  import { resolveQuery } from "./resolveQuery.mjs";
12
12
  import { setCustomQueries } from "./run.mjs";
13
13
  import { setAuthData, setSchema } from "./state.mjs";
14
- import { getRawWhere } from "./where.mjs";
14
+ import { getRawWhere, setEvaluatingPermission } from "./where.mjs";
15
15
  import { setRunner } from "./zeroRunner.mjs";
16
16
  import { zql } from "./zql.mjs";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
18
18
  function createZeroClient({
19
19
  schema,
20
20
  models,
21
- groupedQueries
21
+ groupedQueries,
22
+ permissionStrategy = "optimistic"
22
23
  }) {
23
24
  setSchema(schema);
24
25
  const permissionsHelpers = createPermissions({
@@ -32,18 +33,34 @@ function createZeroClient({
32
33
  args
33
34
  }) => fn(args));
34
35
  }
35
- const permissionCheckFn = args => {
36
- const perm = getMutationsPermissions(args.table),
37
- base = zql[args.table];
38
- if (!args.objOrId) return base.where(eb => eb.cmpLit(!0, "=", !1)).one();
39
- const rawPerm = perm && (getRawWhere(perm) || perm);
40
- return base.where(eb => permissionsHelpers.buildPermissionQuery(getQueryOrMutatorAuthData(), eb, rawPerm || (e => e.and()), args.objOrId, args.table)).one();
41
- };
42
- registerQuery(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
43
- check: defineQuery(({
36
+ const permissionCheckFns = {},
37
+ createPermissionCheckFn = table => {
38
+ const fn = args => {
39
+ const perm = getMutationsPermissions(table),
40
+ base = zql[table];
41
+ if (!args.objOrId) return base.where(eb => eb.cmpLit(!0, "=", !1)).one();
42
+ if (permissionStrategy === "optimistic") {
43
+ const rawPerm = perm && (getRawWhere(perm) || perm);
44
+ return base.where(eb => {
45
+ setEvaluatingPermission(!0);
46
+ try {
47
+ return permissionsHelpers.buildPermissionQuery(getQueryOrMutatorAuthData(), eb, rawPerm || (e => e.and()), args.objOrId, table);
48
+ } finally {
49
+ setEvaluatingPermission(!1);
50
+ }
51
+ }).one();
52
+ }
53
+ return permissionStrategy === "optimistic-deny" ? base.where(eb => eb.cmpLit(!0, "=", !1)).one() : base.where(eb => permissionsHelpers.buildPermissionQuery(getQueryOrMutatorAuthData(), eb, perm || (e => e.and()), args.objOrId, table)).one();
54
+ };
55
+ return permissionCheckFns[table] = fn, registerQuery(fn, `permission.${table}`), fn;
56
+ };
57
+ wrappedNamespaces.permission = {};
58
+ for (const [table] of getAllMutationsPermissions()) {
59
+ const fn = createPermissionCheckFn(table);
60
+ wrappedNamespaces.permission[table] = defineQuery(({
44
61
  args
45
- }) => permissionCheckFn(args))
46
- };
62
+ }) => fn(args));
63
+ }
47
64
  const customQueries = defineQueries(wrappedNamespaces);
48
65
  setCustomQueries(customQueries);
49
66
  const DisabledContext = createContext(!1);
@@ -62,11 +79,11 @@ function createZeroClient({
62
79
  });
63
80
  function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
64
81
  const disabled = use(DisabledContext),
65
- [data, status] = useQuery(permissionCheckFn, {
66
- table,
82
+ checkFn = permissionCheckFns[table],
83
+ [data, status] = useQuery(checkFn, {
67
84
  objOrId
68
85
  }, {
69
- enabled: !!(!disabled && enabled && objOrId)
86
+ enabled: !!(!disabled && enabled && objOrId && checkFn)
70
87
  });
71
88
  return debug && console.info("usePermission()", {
72
89
  table,
@@ -1 +1 @@
1
- {"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getQueryOrMutatorAuthData","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","getRawWhere","setRunner","zql","jsx","jsxs","createZeroClient","schema","models","groupedQueries","permissionsHelpers","environment","wrappedNamespaces","namespace","queries","Object","entries","name","fn","args","permissionCheckFn","perm","table","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","permission","check","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","debug","disabled","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","value","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","current","reason","message","emit","preload","fnArg","paramsOrOptions","optionsArg","hasParams","params","queryRequest"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getQueryOrMutatorAuthData","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","jsx","jsxs","createZeroClient","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","namespace","queries","Object","entries","name","fn","args","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","permission","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","debug","disabled","checkFn","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","value","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","current","reason","message","emit","preload","fnArg","paramsOrOptions","optionsArg","hasParams","params","queryRequest"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -7,19 +7,20 @@ import { createPermissions } from "./createPermissions.native.js";
7
7
  import { createUseQuery } from "./createUseQuery.native.js";
8
8
  import { createMutators } from "./helpers/createMutators.native.js";
9
9
  import { getQueryOrMutatorAuthData } from "./helpers/getQueryOrMutatorAuthData.native.js";
10
- import { getMutationsPermissions } from "./modelRegistry.native.js";
10
+ import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegistry.native.js";
11
11
  import { registerQuery } from "./queryRegistry.native.js";
12
12
  import { resolveQuery } from "./resolveQuery.native.js";
13
13
  import { setCustomQueries } from "./run.native.js";
14
14
  import { setAuthData, setSchema } from "./state.native.js";
15
- import { getRawWhere } from "./where.native.js";
15
+ import { getRawWhere, setEvaluatingPermission } from "./where.native.js";
16
16
  import { setRunner } from "./zeroRunner.native.js";
17
17
  import { zql } from "./zql.native.js";
18
18
  function createZeroClient(param) {
19
19
  var {
20
20
  schema,
21
21
  models,
22
- groupedQueries
22
+ groupedQueries,
23
+ permissionStrategy = "optimistic"
23
24
  } = param;
24
25
  setSchema(schema);
25
26
  var permissionsHelpers = createPermissions({
@@ -66,27 +67,61 @@ function createZeroClient(param) {
66
67
  if (_didIteratorError) throw _iteratorError;
67
68
  }
68
69
  }
69
- var permissionCheckFn = function (args) {
70
- var perm = getMutationsPermissions(args.table),
71
- base = zql[args.table];
72
- if (!args.objOrId) return base.where(function (eb) {
73
- return eb.cmpLit(!0, "=", !1);
74
- }).one();
75
- var rawPerm = perm && (getRawWhere(perm) || perm);
76
- return base.where(function (eb) {
77
- return permissionsHelpers.buildPermissionQuery(getQueryOrMutatorAuthData(), eb, rawPerm || function (e) {
78
- return e.and();
79
- }, args.objOrId, args.table);
80
- }).one();
81
- };
82
- registerQuery(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
83
- check: defineQuery(function (param2) {
84
- var {
85
- args
86
- } = param2;
87
- return permissionCheckFn(args);
88
- })
89
- };
70
+ var permissionCheckFns = {},
71
+ createPermissionCheckFn = function (table) {
72
+ var fn = function (args) {
73
+ var perm = getMutationsPermissions(table),
74
+ base = zql[table];
75
+ if (!args.objOrId) return base.where(function (eb) {
76
+ return eb.cmpLit(!0, "=", !1);
77
+ }).one();
78
+ if (permissionStrategy === "optimistic") {
79
+ var rawPerm = perm && (getRawWhere(perm) || perm);
80
+ return base.where(function (eb) {
81
+ setEvaluatingPermission(!0);
82
+ try {
83
+ return permissionsHelpers.buildPermissionQuery(getQueryOrMutatorAuthData(), eb, rawPerm || function (e) {
84
+ return e.and();
85
+ }, args.objOrId, table);
86
+ } finally {
87
+ setEvaluatingPermission(!1);
88
+ }
89
+ }).one();
90
+ }
91
+ return permissionStrategy === "optimistic-deny" ? base.where(function (eb) {
92
+ return eb.cmpLit(!0, "=", !1);
93
+ }).one() : base.where(function (eb) {
94
+ return permissionsHelpers.buildPermissionQuery(getQueryOrMutatorAuthData(), eb, perm || function (e) {
95
+ return e.and();
96
+ }, args.objOrId, table);
97
+ }).one();
98
+ };
99
+ return permissionCheckFns[table] = fn, registerQuery(fn, `permission.${table}`), fn;
100
+ };
101
+ wrappedNamespaces.permission = {};
102
+ var _iteratorNormalCompletion2 = !0,
103
+ _didIteratorError2 = !1,
104
+ _iteratorError2 = void 0;
105
+ try {
106
+ for (var _loop1 = function () {
107
+ var [table] = _step2.value,
108
+ fn = createPermissionCheckFn(table);
109
+ wrappedNamespaces.permission[table] = defineQuery(function (param2) {
110
+ var {
111
+ args
112
+ } = param2;
113
+ return fn(args);
114
+ });
115
+ }, _iterator2 = getAllMutationsPermissions()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = !0) _loop1();
116
+ } catch (err) {
117
+ _didIteratorError2 = !0, _iteratorError2 = err;
118
+ } finally {
119
+ try {
120
+ !_iteratorNormalCompletion2 && _iterator2.return != null && _iterator2.return();
121
+ } finally {
122
+ if (_didIteratorError2) throw _iteratorError2;
123
+ }
124
+ }
90
125
  var customQueries = defineQueries(wrappedNamespaces);
91
126
  setCustomQueries(customQueries);
92
127
  var DisabledContext = /* @__PURE__ */createContext(!1),
@@ -107,11 +142,12 @@ function createZeroClient(param) {
107
142
  var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
108
143
  debug = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
109
144
  disabled = use(DisabledContext),
110
- [data, status] = useQuery(permissionCheckFn, {
111
- table,
145
+ tableStr = table,
146
+ checkFn = permissionCheckFns[tableStr],
147
+ [data, status] = useQuery(checkFn, {
112
148
  objOrId
113
149
  }, {
114
- enabled: !!(!disabled && enabled && objOrId)
150
+ enabled: !!(!disabled && enabled && objOrId && checkFn)
115
151
  });
116
152
  return debug && console.info("usePermission()", {
117
153
  table,
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getQueryOrMutatorAuthData","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","getRawWhere","setRunner","zql","createZeroClient","param","schema","models","groupedQueries","permissionsHelpers","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","permissionCheckFn","perm","table","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","permission","check","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","arguments","length","debug","disabled","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getQueryOrMutatorAuthData","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","permission","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","arguments","length","debug","disabled","tableStr","checkFn","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -65,8 +65,8 @@ function createZeroServer({
65
65
  return setAuthData(authData || {}), {
66
66
  response: await zeroHandleQueryRequest(
67
67
  (name, args) => {
68
- if (name === "permission.check") {
69
- const { table, objOrId } = args, perm = getMutationsPermissions(table);
68
+ if (name.startsWith("permission.")) {
69
+ const table = name.slice(11), { objOrId } = args, perm = getMutationsPermissions(table);
70
70
  if (!perm)
71
71
  throw new Error(`[permission] no permission defined for table: ${table}`);
72
72
  return getZQL()[table].where((eb) => permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)).one();
@@ -107,7 +107,7 @@ function createZeroServer({
107
107
  }
108
108
  }
109
109
  function query(cb) {
110
- return transaction(async (tx) => cb(tx.query));
110
+ return transaction(async (tx) => tx.run(cb(tx.query)));
111
111
  }
112
112
  queries && setCustomQueries(queries), setRunner((queryObj) => transaction(async (tx) => tx.run(queryObj)));
113
113
  const dummyTransactionInput = {
@@ -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": ["query"]
6
6
  }
@@ -67,9 +67,9 @@ function createZeroServer({
67
67
  if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
68
68
  return setAuthData(authData || {}), {
69
69
  response: await zeroHandleQueryRequest((name, args) => {
70
- if (name === "permission.check") {
71
- const {
72
- table,
70
+ if (name.startsWith("permission.")) {
71
+ const table = name.slice(11),
72
+ {
73
73
  objOrId
74
74
  } = args,
75
75
  perm = getMutationsPermissions(table);
@@ -116,7 +116,7 @@ function createZeroServer({
116
116
  }
117
117
  }
118
118
  function query(cb) {
119
- return transaction(async tx => cb(tx.query));
119
+ return transaction(async tx => tx.run(cb(tx.query)));
120
120
  }
121
121
  queries && setCustomQueries(queries), setRunner(queryObj => transaction(async tx => tx.run(queryObj)));
122
122
  const dummyTransactionInput = {
@@ -1 +1 @@
1
- {"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","table","objOrId","perm","where","eb","buildPermissionQuery","one","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","startsWith","table","slice","objOrId","perm","where","eb","buildPermissionQuery","one","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -72,9 +72,9 @@ function createZeroServer(param) {
72
72
  if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
73
73
  setAuthData(authData || {});
74
74
  var response = await zeroHandleQueryRequest(function (name, args) {
75
- if (name === "permission.check") {
76
- var {
77
- table,
75
+ if (name.startsWith("permission.")) {
76
+ var table = name.slice(11),
77
+ {
78
78
  objOrId
79
79
  } = args,
80
80
  perm = getMutationsPermissions(table);
@@ -130,7 +130,7 @@ function createZeroServer(param) {
130
130
  }
131
131
  function query(cb) {
132
132
  return transaction(async function (tx) {
133
- return cb(tx.query);
133
+ return tx.run(cb(tx.query));
134
134
  });
135
135
  }
136
136
  queries && setCustomQueries(queries), setRunner(function (queryObj) {
@@ -1 +1 @@
1
- {"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","param","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","table","objOrId","perm","where","eb","buildPermissionQuery","one","_$query","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","output","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","param","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","startsWith","table","slice","objOrId","perm","where","eb","buildPermissionQuery","one","_$query","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","output","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,11 @@ function setMutationsPermissions(tableName, permissions) {
5
5
  function getMutationsPermissions(tableName) {
6
6
  return mutationsToPermissionsRegistry.get(tableName);
7
7
  }
8
+ function getAllMutationsPermissions() {
9
+ return mutationsToPermissionsRegistry;
10
+ }
8
11
  export {
12
+ getAllMutationsPermissions,
9
13
  getMutationsPermissions,
10
14
  setMutationsPermissions
11
15
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/modelRegistry.ts"],
4
- "mappings": "AAEA,MAAM,iCAAiC,oBAAI,IAAmB;AAEvD,SAAS,wBAAwB,WAAmB,aAAoB;AAC7E,iCAA+B,IAAI,WAAW,WAAW;AAC3D;AAEO,SAAS,wBAAwB,WAAsC;AAC5E,SAAO,+BAA+B,IAAI,SAAS;AACrD;",
4
+ "mappings": "AAEA,MAAM,iCAAiC,oBAAI,IAAmB;AAEvD,SAAS,wBAAwB,WAAmB,aAAoB;AAC7E,iCAA+B,IAAI,WAAW,WAAW;AAC3D;AAEO,SAAS,wBAAwB,WAAsC;AAC5E,SAAO,+BAA+B,IAAI,SAAS;AACrD;AAEO,SAAS,6BAAiD;AAC/D,SAAO;AACT;",
5
5
  "names": []
6
6
  }