on-zero 0.0.85 → 0.0.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/createZeroClient.cjs +10 -1
- package/dist/cjs/createZeroClient.js +14 -2
- package/dist/cjs/createZeroClient.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +12 -2
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/where.cjs +7 -2
- package/dist/cjs/where.js +6 -2
- package/dist/cjs/where.js.map +1 -1
- package/dist/cjs/where.native.js +7 -2
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/esm/createZeroClient.js +16 -1
- package/dist/esm/createZeroClient.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +10 -1
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +12 -2
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/where.js +6 -2
- package/dist/esm/where.js.map +1 -1
- package/dist/esm/where.mjs +7 -3
- package/dist/esm/where.mjs.map +1 -1
- package/dist/esm/where.native.js +7 -3
- package/dist/esm/where.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createZeroClient.tsx +26 -9
- package/src/where.ts +9 -0
- package/types/createZeroClient.d.ts +1 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/where.d.ts +1 -0
- package/types/where.d.ts.map +1 -1
|
@@ -30,10 +30,13 @@ var import_zero = require("@rocicorp/zero"),
|
|
|
30
30
|
import_createPermissions = require("./createPermissions.cjs"),
|
|
31
31
|
import_createUseQuery = require("./createUseQuery.cjs"),
|
|
32
32
|
import_createMutators = require("./helpers/createMutators.cjs"),
|
|
33
|
+
import_getQueryOrMutatorAuthData = require("./helpers/getQueryOrMutatorAuthData.cjs"),
|
|
34
|
+
import_modelRegistry = require("./modelRegistry.cjs"),
|
|
33
35
|
import_queryRegistry = require("./queryRegistry.cjs"),
|
|
34
36
|
import_resolveQuery = require("./resolveQuery.cjs"),
|
|
35
37
|
import_run = require("./run.cjs"),
|
|
36
38
|
import_state = require("./state.cjs"),
|
|
39
|
+
import_where = require("./where.cjs"),
|
|
37
40
|
import_zeroRunner = require("./zeroRunner.cjs"),
|
|
38
41
|
import_zql = require("./zql.cjs"),
|
|
39
42
|
import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -54,7 +57,13 @@ function createZeroClient({
|
|
|
54
57
|
args
|
|
55
58
|
}) => fn(args));
|
|
56
59
|
}
|
|
57
|
-
const permissionCheckFn = args =>
|
|
60
|
+
const permissionCheckFn = args => {
|
|
61
|
+
const perm = (0, import_modelRegistry.getMutationsPermissions)(args.table),
|
|
62
|
+
base = import_zql.zql[args.table];
|
|
63
|
+
if (!args.objOrId) return base.where(eb => eb.cmpLit(!0, "=", !1)).one();
|
|
64
|
+
const rawPerm = perm && ((0, import_where.getRawWhere)(perm) || perm);
|
|
65
|
+
return base.where(eb => permissionsHelpers.buildPermissionQuery((0, import_getQueryOrMutatorAuthData.getQueryOrMutatorAuthData)(), eb, rawPerm || (e => e.and()), args.objOrId, args.table)).one();
|
|
66
|
+
};
|
|
58
67
|
(0, import_queryRegistry.registerQuery)(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
|
|
59
68
|
check: (0, import_zero.defineQuery)(({
|
|
60
69
|
args
|
|
@@ -17,7 +17,7 @@ __export(createZeroClient_exports, {
|
|
|
17
17
|
createZeroClient: () => createZeroClient
|
|
18
18
|
});
|
|
19
19
|
module.exports = __toCommonJS(createZeroClient_exports);
|
|
20
|
-
var import_zero = require("@rocicorp/zero"), import_react = require("@rocicorp/zero/react"), import_helpers = require("@take-out/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_createUseQuery = require("./createUseQuery"), import_createMutators = require("./helpers/createMutators"), import_queryRegistry = require("./queryRegistry"), import_resolveQuery = require("./resolveQuery"), import_run = require("./run"), import_state = require("./state"), import_zeroRunner = require("./zeroRunner"), import_zql = require("./zql"), import_jsx_runtime = require("react/jsx-runtime");
|
|
20
|
+
var import_zero = require("@rocicorp/zero"), import_react = require("@rocicorp/zero/react"), import_helpers = require("@take-out/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_createUseQuery = require("./createUseQuery"), import_createMutators = require("./helpers/createMutators"), import_getQueryOrMutatorAuthData = require("./helpers/getQueryOrMutatorAuthData"), import_modelRegistry = require("./modelRegistry"), import_queryRegistry = require("./queryRegistry"), import_resolveQuery = require("./resolveQuery"), import_run = require("./run"), import_state = require("./state"), import_where = require("./where"), import_zeroRunner = require("./zeroRunner"), import_zql = require("./zql"), import_jsx_runtime = require("react/jsx-runtime");
|
|
21
21
|
function createZeroClient({
|
|
22
22
|
schema,
|
|
23
23
|
models,
|
|
@@ -35,7 +35,19 @@ function createZeroClient({
|
|
|
35
35
|
({ args }) => fn(args)
|
|
36
36
|
);
|
|
37
37
|
}
|
|
38
|
-
const permissionCheckFn = (args) =>
|
|
38
|
+
const permissionCheckFn = (args) => {
|
|
39
|
+
const perm = (0, import_modelRegistry.getMutationsPermissions)(args.table), base = import_zql.zql[args.table];
|
|
40
|
+
if (!args.objOrId)
|
|
41
|
+
return base.where((eb) => eb.cmpLit(!0, "=", !1)).one();
|
|
42
|
+
const rawPerm = perm && ((0, import_where.getRawWhere)(perm) || perm);
|
|
43
|
+
return base.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
44
|
+
(0, import_getQueryOrMutatorAuthData.getQueryOrMutatorAuthData)(),
|
|
45
|
+
eb,
|
|
46
|
+
rawPerm || ((e) => e.and()),
|
|
47
|
+
args.objOrId,
|
|
48
|
+
args.table
|
|
49
|
+
)).one();
|
|
50
|
+
};
|
|
39
51
|
(0, import_queryRegistry.registerQuery)(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
|
|
40
52
|
check: (0, import_zero.defineQuery)(({ args }) => permissionCheckFn(args))
|
|
41
53
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA2C,2BAC3C,eAA0D,iCAC1D,iBAA8B,8BAC9BA,gBAQO,kBAEP,2BAAkC,gCAClC,wBAA+B,6BAC/B,wBAA+B,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["import_react", "zeroEvents"]
|
|
6
6
|
}
|
|
@@ -33,10 +33,13 @@ var import_jsx_runtime = require("react/jsx-runtime"),
|
|
|
33
33
|
import_createPermissions = require("./createPermissions.native.js"),
|
|
34
34
|
import_createUseQuery = require("./createUseQuery.native.js"),
|
|
35
35
|
import_createMutators = require("./helpers/createMutators.native.js"),
|
|
36
|
+
import_getQueryOrMutatorAuthData = require("./helpers/getQueryOrMutatorAuthData.native.js"),
|
|
37
|
+
import_modelRegistry = require("./modelRegistry.native.js"),
|
|
36
38
|
import_queryRegistry = require("./queryRegistry.native.js"),
|
|
37
39
|
import_resolveQuery = require("./resolveQuery.native.js"),
|
|
38
40
|
import_run = require("./run.native.js"),
|
|
39
41
|
import_state = require("./state.native.js"),
|
|
42
|
+
import_where = require("./where.native.js"),
|
|
40
43
|
import_zeroRunner = require("./zeroRunner.native.js"),
|
|
41
44
|
import_zql = require("./zql.native.js");
|
|
42
45
|
function createZeroClient(param) {
|
|
@@ -91,10 +94,17 @@ function createZeroClient(param) {
|
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
var permissionCheckFn = function (args) {
|
|
94
|
-
var
|
|
95
|
-
|
|
97
|
+
var perm = (0, import_modelRegistry.getMutationsPermissions)(args.table),
|
|
98
|
+
base = import_zql.zql[args.table];
|
|
99
|
+
if (!args.objOrId) return base.where(function (eb) {
|
|
96
100
|
return eb.cmpLit(!0, "=", !1);
|
|
97
101
|
}).one();
|
|
102
|
+
var rawPerm = perm && ((0, import_where.getRawWhere)(perm) || perm);
|
|
103
|
+
return base.where(function (eb) {
|
|
104
|
+
return permissionsHelpers.buildPermissionQuery((0, import_getQueryOrMutatorAuthData.getQueryOrMutatorAuthData)(), eb, rawPerm || function (e) {
|
|
105
|
+
return e.and();
|
|
106
|
+
}, args.objOrId, args.table);
|
|
107
|
+
}).one();
|
|
98
108
|
};
|
|
99
109
|
(0, import_queryRegistry.registerQuery)(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
|
|
100
110
|
check: (0, import_zero.defineQuery)(function (param2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_queryRegistry","import_resolveQuery","import_run","import_state","import_zeroRunner","import_zql","param","schema","models","groupedQueries","setSchema","permissionsHelpers","createPermissions","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","err","return","permissionCheckFn","base","zql","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_getQueryOrMutatorAuthData","import_modelRegistry","import_queryRegistry","import_resolveQuery","import_run","import_state","import_where","import_zeroRunner","import_zql","param","schema","models","groupedQueries","setSchema","permissionsHelpers","createPermissions","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","err","return","permissionCheckFn","perm","getMutationsPermissions","table","base","zql","objOrId","where","eb","cmpLit","one","rawPerm","getRawWhere","buildPermissionQuery","getQueryOrMutatorAuthData","e","and","permission","check","customQueries","defineQueries","setCustomQueries","DisabledContext","createContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","createEmitter","AuthDataContext","useQuery","createUseQuery","usePermission","enabled","arguments","length","debug","disabled","use","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","setAuthData","mutators","useMemo","createMutators","can","jsx","Provider","jsxs","ZeroProvider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/where.cjs
CHANGED
|
@@ -20,6 +20,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
20
20
|
}), mod);
|
|
21
21
|
var where_exports = {};
|
|
22
22
|
__export(where_exports, {
|
|
23
|
+
getRawWhere: () => getRawWhere,
|
|
23
24
|
getWhereTableName: () => getWhereTableName,
|
|
24
25
|
where: () => where
|
|
25
26
|
});
|
|
@@ -33,9 +34,13 @@ function where(a, b, isServerOnly = !1) {
|
|
|
33
34
|
const result = whereFn(a2, b2);
|
|
34
35
|
return typeof result == "boolean" ? result ? a2.cmpLit(0, "=", 0) : a2.cmpLit(1, "=", 0) : result;
|
|
35
36
|
};
|
|
36
|
-
return b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
37
|
+
return WhereRawBuilderMap.set(wrappedWhereFn, whereFn), b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
37
38
|
}
|
|
38
|
-
const WhereTableNameMap = /* @__PURE__ */new WeakMap()
|
|
39
|
+
const WhereTableNameMap = /* @__PURE__ */new WeakMap(),
|
|
40
|
+
WhereRawBuilderMap = /* @__PURE__ */new WeakMap();
|
|
39
41
|
function getWhereTableName(where2) {
|
|
40
42
|
return WhereTableNameMap.get(where2);
|
|
43
|
+
}
|
|
44
|
+
function getRawWhere(where2) {
|
|
45
|
+
return WhereRawBuilderMap.get(where2);
|
|
41
46
|
}
|
package/dist/cjs/where.js
CHANGED
|
@@ -14,6 +14,7 @@ var __export = (target, all) => {
|
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
15
|
var where_exports = {};
|
|
16
16
|
__export(where_exports, {
|
|
17
|
+
getRawWhere: () => getRawWhere,
|
|
17
18
|
getWhereTableName: () => getWhereTableName,
|
|
18
19
|
where: () => where
|
|
19
20
|
});
|
|
@@ -26,10 +27,13 @@ function where(a, b, isServerOnly = !1) {
|
|
|
26
27
|
const result = whereFn(a2, b2);
|
|
27
28
|
return typeof result == "boolean" ? result ? a2.cmpLit(0, "=", 0) : a2.cmpLit(1, "=", 0) : result;
|
|
28
29
|
});
|
|
29
|
-
return b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
30
|
+
return WhereRawBuilderMap.set(wrappedWhereFn, whereFn), b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
30
31
|
}
|
|
31
|
-
const WhereTableNameMap = /* @__PURE__ */ new WeakMap();
|
|
32
|
+
const WhereTableNameMap = /* @__PURE__ */ new WeakMap(), WhereRawBuilderMap = /* @__PURE__ */ new WeakMap();
|
|
32
33
|
function getWhereTableName(where2) {
|
|
33
34
|
return WhereTableNameMap.get(where2);
|
|
34
35
|
}
|
|
36
|
+
function getRawWhere(where2) {
|
|
37
|
+
return WhereRawBuilderMap.get(where2);
|
|
38
|
+
}
|
|
35
39
|
//# sourceMappingURL=where.js.map
|
package/dist/cjs/where.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/where.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB,wBACzB,mCAA0C;AAenC,SAAS,MACd,GACA,GACA,eAAe,IACc;AAC7B,QAAM,UAAW,KAAK,GAEhB,kBAAkB,CACtBA,IACAC,SAAI,4DAA0B,MAC3B;AACH,QAAI,CAAC,6BAAY;AAEf,aAAOD,GAAE,IAAI;AAGf,UAAM,SAAS,QAAQA,IAAGC,EAAC;AAC3B,WAAI,OAAO,UAAW,YAChB,SACKD,GAAE,OAAO,GAAG,KAAK,CAAC,IAElBA,GAAE,OAAO,GAAG,KAAK,CAAC,IAGtB;AAAA,EACT;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB,wBACzB,mCAA0C;AAenC,SAAS,MACd,GACA,GACA,eAAe,IACc;AAC7B,QAAM,UAAW,KAAK,GAEhB,kBAAkB,CACtBA,IACAC,SAAI,4DAA0B,MAC3B;AACH,QAAI,CAAC,6BAAY;AAEf,aAAOD,GAAE,IAAI;AAGf,UAAM,SAAS,QAAQA,IAAGC,EAAC;AAC3B,WAAI,OAAO,UAAW,YAChB,SACKD,GAAE,OAAO,GAAG,KAAK,CAAC,IAElBA,GAAE,OAAO,GAAG,KAAK,CAAC,IAGtB;AAAA,EACT;AAGA,4BAAmB,IAAI,gBAAgB,OAAO,GAE1C,KACF,kBAAkB,IAAI,gBAAgB,CAAU,GAG3C;AACT;AAIA,MAAM,oBAAoB,oBAAI,QAA0B,GAClD,qBAAqB,oBAAI,QAAsB;AAE9C,SAAS,kBAAkBE,QAAc;AAC9C,SAAO,kBAAkB,IAAIA,MAAK;AACpC;AAGO,SAAS,YAAYA,QAAiC;AAC3D,SAAO,mBAAmB,IAAIA,MAAK;AACrC;",
|
|
5
5
|
"names": ["a", "b", "where"]
|
|
6
6
|
}
|
package/dist/cjs/where.native.js
CHANGED
|
@@ -22,6 +22,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
22
22
|
}), mod);
|
|
23
23
|
var where_exports = {};
|
|
24
24
|
__export(where_exports, {
|
|
25
|
+
getRawWhere: () => getRawWhere,
|
|
25
26
|
getWhereTableName: () => getWhereTableName,
|
|
26
27
|
where: () => where
|
|
27
28
|
});
|
|
@@ -37,10 +38,14 @@ function where(a, b) {
|
|
|
37
38
|
var result = whereFn(a2, _$b);
|
|
38
39
|
return typeof result == "boolean" ? result ? a2.cmpLit(0, "=", 0) : a2.cmpLit(1, "=", 0) : result;
|
|
39
40
|
};
|
|
40
|
-
return b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
41
|
+
return WhereRawBuilderMap.set(wrappedWhereFn, whereFn), b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
41
42
|
}
|
|
42
|
-
var WhereTableNameMap = /* @__PURE__ */new WeakMap()
|
|
43
|
+
var WhereTableNameMap = /* @__PURE__ */new WeakMap(),
|
|
44
|
+
WhereRawBuilderMap = /* @__PURE__ */new WeakMap();
|
|
43
45
|
function getWhereTableName(where2) {
|
|
44
46
|
return WhereTableNameMap.get(where2);
|
|
45
47
|
}
|
|
48
|
+
function getRawWhere(where2) {
|
|
49
|
+
return WhereRawBuilderMap.get(where2);
|
|
50
|
+
}
|
|
46
51
|
//# sourceMappingURL=where.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","where_exports","__export","getWhereTableName","where","module","exports","import_constants","require","import_getQueryOrMutatorAuthData","a","b","isServerOnly","arguments","length","whereFn","wrappedWhereFn","a2","_$b","getQueryOrMutatorAuthData","isServer","and","result","cmpLit","
|
|
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":[]}
|
|
@@ -12,10 +12,13 @@ import {
|
|
|
12
12
|
import { createPermissions } from "./createPermissions";
|
|
13
13
|
import { createUseQuery } from "./createUseQuery";
|
|
14
14
|
import { createMutators } from "./helpers/createMutators";
|
|
15
|
+
import { getQueryOrMutatorAuthData } from "./helpers/getQueryOrMutatorAuthData";
|
|
16
|
+
import { getMutationsPermissions } from "./modelRegistry";
|
|
15
17
|
import { registerQuery } from "./queryRegistry";
|
|
16
18
|
import { resolveQuery } from "./resolveQuery";
|
|
17
19
|
import { setCustomQueries } from "./run";
|
|
18
20
|
import { setAuthData, setSchema } from "./state";
|
|
21
|
+
import { getRawWhere } from "./where";
|
|
19
22
|
import { setRunner } from "./zeroRunner";
|
|
20
23
|
import { zql } from "./zql";
|
|
21
24
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -36,7 +39,19 @@ function createZeroClient({
|
|
|
36
39
|
({ args }) => fn(args)
|
|
37
40
|
);
|
|
38
41
|
}
|
|
39
|
-
const permissionCheckFn = (args) =>
|
|
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
|
+
};
|
|
40
55
|
registerQuery(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
|
|
41
56
|
check: defineQuery(({ args }) => permissionCheckFn(args))
|
|
42
57
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,eAAe,mBAAmB;AAC3C,SAAS,oBAAoB,SAAS,oBAAoB;AAC1D,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;
|
|
4
|
+
"mappings": "AAAA,SAAS,eAAe,mBAAmB;AAC3C,SAAS,oBAAoB,SAAS,oBAAoB;AAC1D,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,iCAAiC;AAC1C,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAC9B,SAAS,oBAAuC;AAChD,SAAS,wBAAwB;AACjC,SAAS,aAAa,iBAAiB;AACvC,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,WAAW;AAwLZ,SAOE,KAPF;AA/KD,SAAS,iBAGd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAIG;AAOD,YAAU,MAAM;AAEhB,QAAM,qBAAqB,kBAA0B;AAAA,IACnD;AAAA,IACA,aAAa;AAAA,EACf,CAAC,GAIK,oBAGF,CAAC;AAEL,aAAW,CAAC,WAAW,OAAO,KAAK,OAAO,QAAQ,cAAc,GAAG;AACjE,sBAAkB,SAAS,IAAI,CAAC;AAChC,eAAW,CAAC,MAAM,EAAE,KAAK,OAAO,QAAQ,OAAO;AAC7C,oBAAc,IAAI,GAAG,SAAS,IAAI,IAAI,EAAE,GAExC,kBAAkB,SAAS,EAAE,IAAI,IAAI;AAAA,QAAY,CAAC,EAAE,KAAK,MACvD,GAAG,IAAI;AAAA,MACT;AAAA,EAEJ;AAKA,QAAM,oBAAoB,CAAC,SAGrB;AACJ,UAAM,OAAO,wBAAwB,KAAK,KAAK,GACzC,OAAQ,IAAY,KAAK,KAAK;AAGpC,QAAI,CAAC,KAAK;AACR,aAAO,KAAK,MAAM,CAAC,OAAY,GAAG,OAAO,IAAM,KAAK,EAAK,CAAC,EAAE,IAAI;AAKlE,UAAM,UAAU,SAAO,YAAY,IAAI,KAAK;AAE5C,WAAO,KACJ,MAAM,CAAC,OACC,mBAAmB;AAAA,MACxB,0BAA0B;AAAA,MAC1B;AAAA,MACA,YAAY,CAAC,MAAW,EAAE,IAAI;AAAA,MAC9B,KAAK;AAAA,MACL,KAAK;AAAA,IACP,CACD,EACA,IAAI;AAAA,EACT;AAEA,gBAAc,mBAAmB,kBAAkB,GACnD,kBAAkB,aAAgB;AAAA,IAChC,OAAO,YAAY,CAAC,EAAE,KAAK,MAAW,kBAAkB,IAAI,CAAC;AAAA,EAC/D;AAGA,QAAM,gBAAgB,cAAc,iBAAiB;AAGrD,mBAAiB,aAAa;AAE9B,QAAM,kBAAkB,cAAc,EAAK;AAE3C,MAAI,qBAA0C;AAI9C,QAAM,OAAqB,IAAI,MAAM,CAAC,GAAY;AAAA,IAChD,IAAI,GAAG,KAAK;AACV,UAAI,uBAAuB;AACzB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAEF,aAAO,QAAQ,IAAI,oBAAoB,KAAK,kBAAkB;AAAA,IAChE;AAAA,EACF,CAAC,GAEK,aAAa,cAAgC,QAAQ,IAAI,GAEzD,kBAAkB,cAAwB,CAAC,CAAa,GAExD,WAAW,eAAuB;AAAA,IACtC;AAAA,IACA;AAAA,EACF,CAAC;AAID,WAAS,cACP,OACA,SACA,UAAU,OAAO,UAAY,KAC7B,QAAQ,IACQ;AAChB,UAAM,WAAW,IAAI,eAAe,GAE9B,CAAC,MAAM,MAAM,IAAI;AAAA,MACrB;AAAA,MACA,EAAE,OAAwB,QAAwB;AAAA,MAClD,EAAE,SAAS,GAAQ,CAAC,YAAY,WAAW,SAAS;AAAA,IACtD;AAMA,WAJI,SACF,QAAQ,KAAK,mBAAmB,EAAE,OAAO,SAAS,MAAM,OAAO,CAAC,GAG7D,UAGD,OAAO,SAAS,YAAkB,OAE/B,EAAQ,OALM;AAAA,EAMvB;AAEA,QAAM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,GAAG;AAAA,EACL,MAIM;AACJ,UAAM,WAAY,cAAc;AAIhC,gBAAY,QAAQ;AAIpB,UAAM,WAAW,QAAQ,MAChB,eAAe;AAAA,MACpB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,KAAK,mBAAmB;AAAA,IAC1B,CAAC,GAEA,CAAC,QAAQ,CAAC;AAGb,WAAI,UACK,WAIP,oBAAC,gBAAgB,UAAhB,EAAyB,OAAO,UAC/B;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,SAAQ;AAAA,QAER;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA,8BAAC,mBAAgB;AAAA,UACjB,oBAAC,qBAAkB,YAAwB;AAAA,UAC1C;AAAA;AAAA;AAAA,IACH,GACF;AAAA,EAEJ,GAEM,kBAAkB,MAAM;AAC5B,UAAM,eAAe,QAA8B;AAQnD,WAAI,iBAAiB,uBACnB,qBAAqB,cAErB,UAAU,CAAC,OAAO,YAAY,aAAa,IAAI,OAAc,OAAO,CAAC,IAGhE;AAAA,EACT,GAGM,oBAAoB;AAAA,IACxB,CAAC;AAAA,MACC,YAAAA;AAAA,IACF,MAEM;AACJ,YAAM,QAAQ,mBAAmB,GAC3B,YAAY,OAAO,MAAM,IAAI;AAEnC,uBAAU,MAAM;AACd,YAAI,MAAM,SAAS,UAAU,SAAS;AACpC,gBAAM,SAAS,YAAY,QAAQ,MAAM,SAAS;AAGlD,cAFA,UAAU,UAAU,MAAM,MAEtB,MAAM,SAAS,WAAW,MAAM,SAAS,cAAc;AACzD,kBAAM,UAAU,OAAO,UAAW,WAAW,SAAS,MAAM;AAC5D,YAAAA,YAAW,KAAK;AAAA,cACd,MAAM;AAAA,cACN;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF,GAAG,CAAC,OAAOA,WAAU,CAAC,GAEf;AAAA,IACT;AAAA,EACF;AAaA,WAAS,QACP,OACA,iBACA,YACkD;AAClD,UAAM,YACJ,eAAe,UAAc,mBAAmB,EAAE,SAAS,kBACvD,SAAS,YAAY,kBAAkB,QACvC,UAAU,YAAY,aAAa,iBAEnC,eAAe,aAAa,EAAE,eAAe,IAAI,OAAO,OAAO,CAAC;AACtE,WAAO,KAAK,QAAQ,cAAqB,OAAO;AAAA,EAClD;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
5
|
"names": ["zeroEvents"]
|
|
6
6
|
}
|
|
@@ -5,10 +5,13 @@ import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
|
|
|
5
5
|
import { createPermissions } from "./createPermissions.mjs";
|
|
6
6
|
import { createUseQuery } from "./createUseQuery.mjs";
|
|
7
7
|
import { createMutators } from "./helpers/createMutators.mjs";
|
|
8
|
+
import { getQueryOrMutatorAuthData } from "./helpers/getQueryOrMutatorAuthData.mjs";
|
|
9
|
+
import { getMutationsPermissions } from "./modelRegistry.mjs";
|
|
8
10
|
import { registerQuery } from "./queryRegistry.mjs";
|
|
9
11
|
import { resolveQuery } from "./resolveQuery.mjs";
|
|
10
12
|
import { setCustomQueries } from "./run.mjs";
|
|
11
13
|
import { setAuthData, setSchema } from "./state.mjs";
|
|
14
|
+
import { getRawWhere } from "./where.mjs";
|
|
12
15
|
import { setRunner } from "./zeroRunner.mjs";
|
|
13
16
|
import { zql } from "./zql.mjs";
|
|
14
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -29,7 +32,13 @@ function createZeroClient({
|
|
|
29
32
|
args
|
|
30
33
|
}) => fn(args));
|
|
31
34
|
}
|
|
32
|
-
const permissionCheckFn = args =>
|
|
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
|
+
};
|
|
33
42
|
registerQuery(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
|
|
34
43
|
check: defineQuery(({
|
|
35
44
|
args
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","setRunner","zql","jsx","jsxs","createZeroClient","schema","models","groupedQueries","permissionsHelpers","environment","wrappedNamespaces","namespace","queries","Object","entries","name","fn","args","permissionCheckFn","table","where","eb","cmpLit","one","permission","check","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","
|
|
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":[]}
|
|
@@ -6,10 +6,13 @@ import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
|
|
|
6
6
|
import { createPermissions } from "./createPermissions.native.js";
|
|
7
7
|
import { createUseQuery } from "./createUseQuery.native.js";
|
|
8
8
|
import { createMutators } from "./helpers/createMutators.native.js";
|
|
9
|
+
import { getQueryOrMutatorAuthData } from "./helpers/getQueryOrMutatorAuthData.native.js";
|
|
10
|
+
import { getMutationsPermissions } from "./modelRegistry.native.js";
|
|
9
11
|
import { registerQuery } from "./queryRegistry.native.js";
|
|
10
12
|
import { resolveQuery } from "./resolveQuery.native.js";
|
|
11
13
|
import { setCustomQueries } from "./run.native.js";
|
|
12
14
|
import { setAuthData, setSchema } from "./state.native.js";
|
|
15
|
+
import { getRawWhere } from "./where.native.js";
|
|
13
16
|
import { setRunner } from "./zeroRunner.native.js";
|
|
14
17
|
import { zql } from "./zql.native.js";
|
|
15
18
|
function createZeroClient(param) {
|
|
@@ -64,10 +67,17 @@ function createZeroClient(param) {
|
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
var permissionCheckFn = function (args) {
|
|
67
|
-
var
|
|
68
|
-
|
|
70
|
+
var perm = getMutationsPermissions(args.table),
|
|
71
|
+
base = zql[args.table];
|
|
72
|
+
if (!args.objOrId) return base.where(function (eb) {
|
|
69
73
|
return eb.cmpLit(!0, "=", !1);
|
|
70
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();
|
|
71
81
|
};
|
|
72
82
|
registerQuery(permissionCheckFn, "permission.check"), wrappedNamespaces.permission = {
|
|
73
83
|
check: defineQuery(function (param2) {
|
|
@@ -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","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","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","
|
|
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":[]}
|
package/dist/esm/where.js
CHANGED
|
@@ -7,13 +7,17 @@ function where(a, b, isServerOnly = !1) {
|
|
|
7
7
|
const result = whereFn(a2, b2);
|
|
8
8
|
return typeof result == "boolean" ? result ? a2.cmpLit(0, "=", 0) : a2.cmpLit(1, "=", 0) : result;
|
|
9
9
|
});
|
|
10
|
-
return b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
10
|
+
return WhereRawBuilderMap.set(wrappedWhereFn, whereFn), b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
11
11
|
}
|
|
12
|
-
const WhereTableNameMap = /* @__PURE__ */ new WeakMap();
|
|
12
|
+
const WhereTableNameMap = /* @__PURE__ */ new WeakMap(), WhereRawBuilderMap = /* @__PURE__ */ new WeakMap();
|
|
13
13
|
function getWhereTableName(where2) {
|
|
14
14
|
return WhereTableNameMap.get(where2);
|
|
15
15
|
}
|
|
16
|
+
function getRawWhere(where2) {
|
|
17
|
+
return WhereRawBuilderMap.get(where2);
|
|
18
|
+
}
|
|
16
19
|
export {
|
|
20
|
+
getRawWhere,
|
|
17
21
|
getWhereTableName,
|
|
18
22
|
where
|
|
19
23
|
};
|
package/dist/esm/where.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/where.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAenC,SAAS,MACd,GACA,GACA,eAAe,IACc;AAC7B,QAAM,UAAW,KAAK,GAEhB,kBAAkB,CACtBA,IACAC,KAAI,0BAA0B,MAC3B;AACH,QAAI,CAAC,YAAY;AAEf,aAAOD,GAAE,IAAI;AAGf,UAAM,SAAS,QAAQA,IAAGC,EAAC;AAC3B,WAAI,OAAO,UAAW,YAChB,SACKD,GAAE,OAAO,GAAG,KAAK,CAAC,IAElBA,GAAE,OAAO,GAAG,KAAK,CAAC,IAGtB;AAAA,EACT;
|
|
4
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,iCAAiC;AAenC,SAAS,MACd,GACA,GACA,eAAe,IACc;AAC7B,QAAM,UAAW,KAAK,GAEhB,kBAAkB,CACtBA,IACAC,KAAI,0BAA0B,MAC3B;AACH,QAAI,CAAC,YAAY;AAEf,aAAOD,GAAE,IAAI;AAGf,UAAM,SAAS,QAAQA,IAAGC,EAAC;AAC3B,WAAI,OAAO,UAAW,YAChB,SACKD,GAAE,OAAO,GAAG,KAAK,CAAC,IAElBA,GAAE,OAAO,GAAG,KAAK,CAAC,IAGtB;AAAA,EACT;AAGA,4BAAmB,IAAI,gBAAgB,OAAO,GAE1C,KACF,kBAAkB,IAAI,gBAAgB,CAAU,GAG3C;AACT;AAIA,MAAM,oBAAoB,oBAAI,QAA0B,GAClD,qBAAqB,oBAAI,QAAsB;AAE9C,SAAS,kBAAkBE,QAAc;AAC9C,SAAO,kBAAkB,IAAIA,MAAK;AACpC;AAGO,SAAS,YAAYA,QAAiC;AAC3D,SAAO,mBAAmB,IAAIA,MAAK;AACrC;",
|
|
5
5
|
"names": ["a", "b", "where"]
|
|
6
6
|
}
|
package/dist/esm/where.mjs
CHANGED
|
@@ -7,11 +7,15 @@ function where(a, b, isServerOnly = !1) {
|
|
|
7
7
|
const result = whereFn(a2, b2);
|
|
8
8
|
return typeof result == "boolean" ? result ? a2.cmpLit(0, "=", 0) : a2.cmpLit(1, "=", 0) : result;
|
|
9
9
|
};
|
|
10
|
-
return b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
10
|
+
return WhereRawBuilderMap.set(wrappedWhereFn, whereFn), b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
11
11
|
}
|
|
12
|
-
const WhereTableNameMap = /* @__PURE__ */new WeakMap()
|
|
12
|
+
const WhereTableNameMap = /* @__PURE__ */new WeakMap(),
|
|
13
|
+
WhereRawBuilderMap = /* @__PURE__ */new WeakMap();
|
|
13
14
|
function getWhereTableName(where2) {
|
|
14
15
|
return WhereTableNameMap.get(where2);
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
+
function getRawWhere(where2) {
|
|
18
|
+
return WhereRawBuilderMap.get(where2);
|
|
19
|
+
}
|
|
20
|
+
export { getRawWhere, getWhereTableName, where };
|
|
17
21
|
//# sourceMappingURL=where.mjs.map
|
package/dist/esm/where.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isServer","getQueryOrMutatorAuthData","where","a","b","isServerOnly","whereFn","wrappedWhereFn","a2","b2","and","result","cmpLit","
|
|
1
|
+
{"version":3,"names":["isServer","getQueryOrMutatorAuthData","where","a","b","isServerOnly","whereFn","wrappedWhereFn","a2","b2","and","result","cmpLit","WhereRawBuilderMap","set","WhereTableNameMap","WeakMap","getWhereTableName","where2","get","getRawWhere"],"sources":["../../src/where.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,yBAAA,QAAiC;AAenC,SAASC,MACdC,CAAA,EACAC,CAAA,EACAC,YAAA,GAAe,IACc;EAC7B,MAAMC,OAAA,GAAWF,CAAA,IAAKD,CAAA;IAEhBI,cAAA,GAAkBA,CACtBC,EAAA,EACAC,EAAA,GAAIR,yBAAA,CAA0B,MAC3B;MACH,IAAI,CAACD,QAAA,IAAYK,YAAA,EAEf,OAAOG,EAAA,CAAEE,GAAA,CAAI;MAGf,MAAMC,MAAA,GAASL,OAAA,CAAQE,EAAA,EAAGC,EAAC;MAC3B,OAAI,OAAOE,MAAA,IAAW,YAChBA,MAAA,GACKH,EAAA,CAAEI,MAAA,CAAO,GAAG,KAAK,CAAC,IAElBJ,EAAA,CAAEI,MAAA,CAAO,GAAG,KAAK,CAAC,IAGtBD,MAAA;IACT;EAGA,OAAAE,kBAAA,CAAmBC,GAAA,CAAIP,cAAA,EAAgBD,OAAO,GAE1CF,CAAA,IACFW,iBAAA,CAAkBD,GAAA,CAAIP,cAAA,EAAgBJ,CAAU,GAG3CI,cAAA;AACT;AAIA,MAAMQ,iBAAA,GAAoB,mBAAIC,OAAA,CAA0B;EAClDH,kBAAA,GAAqB,mBAAIG,OAAA,CAAsB;AAE9C,SAASC,kBAAkBC,MAAA,EAAc;EAC9C,OAAOH,iBAAA,CAAkBI,GAAA,CAAID,MAAK;AACpC;AAGO,SAASE,YAAYF,MAAA,EAAiC;EAC3D,OAAOL,kBAAA,CAAmBM,GAAA,CAAID,MAAK;AACrC","ignoreList":[]}
|
package/dist/esm/where.native.js
CHANGED
|
@@ -9,11 +9,15 @@ function where(a, b) {
|
|
|
9
9
|
var result = whereFn(a2, _$b);
|
|
10
10
|
return typeof result == "boolean" ? result ? a2.cmpLit(0, "=", 0) : a2.cmpLit(1, "=", 0) : result;
|
|
11
11
|
};
|
|
12
|
-
return b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
12
|
+
return WhereRawBuilderMap.set(wrappedWhereFn, whereFn), b && WhereTableNameMap.set(wrappedWhereFn, a), wrappedWhereFn;
|
|
13
13
|
}
|
|
14
|
-
var WhereTableNameMap = /* @__PURE__ */new WeakMap()
|
|
14
|
+
var WhereTableNameMap = /* @__PURE__ */new WeakMap(),
|
|
15
|
+
WhereRawBuilderMap = /* @__PURE__ */new WeakMap();
|
|
15
16
|
function getWhereTableName(where2) {
|
|
16
17
|
return WhereTableNameMap.get(where2);
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
function getRawWhere(where2) {
|
|
20
|
+
return WhereRawBuilderMap.get(where2);
|
|
21
|
+
}
|
|
22
|
+
export { getRawWhere, getWhereTableName, where };
|
|
19
23
|
//# sourceMappingURL=where.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isServer","getQueryOrMutatorAuthData","where","a","b","isServerOnly","arguments","length","whereFn","wrappedWhereFn","a2","_$b","and","result","cmpLit","
|
|
1
|
+
{"version":3,"names":["isServer","getQueryOrMutatorAuthData","where","a","b","isServerOnly","arguments","length","whereFn","wrappedWhereFn","a2","_$b","and","result","cmpLit","WhereRawBuilderMap","set","WhereTableNameMap","WeakMap","getWhereTableName","where2","get","getRawWhere"],"sources":["../../src/where.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,QAAgB;AACzB,SAASC,yBAAA,QAAiC;AAenC,SAASC,MACdC,CAAA,EACAC,CAAA,EACA;EAEA,IAAAC,YAAiB,GAAAC,SAEX,CAAAC,MAAA,QACJD,SACI,iBAAAA,SAA0B,MAC3B;IAAAE,OAAA,GAAAJ,CAAA,IAAAD,CAAA;IAAAM,cAAA,YAAAA,CAAAC,EAAA;MACH,IAAIC,GAAC,GAAAL,SAAY,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA,MAAAL,yBAAA;MAEf,KAAAD,QAAS,IAAIK,YAAA,EAGf,OAAMK,EAAA,CAAAE,GAAS;MACf,IAAAC,MAAI,GAAAL,OAAO,CAAAE,EAAA,EAAWC,GAAA;MAQxB,cAAAE,MAAA,gBAAAA,MAAA,GAAAH,EAAA,CAAAI,MAAA,cAAAJ,EAAA,CAAAI,MAAA,cAAAD,MAAA;IAGA;EAOF,OAAAE,kBAAA,CAAAC,GAAA,CAAAP,cAAA,EAAAD,OAAA,GAAAJ,CAAA,IAAAa,iBAAA,CAAAD,GAAA,CAAAP,cAAA,EAAAN,CAAA,GAAAM,cAAA;AAIA;AAGO,IAAAQ,iBAAS,kBAAgC,IAAAC,OAAA;EAAAH,kBAAA,sBAAAG,OAAA;AAC9C,SAAOC,kBAAkBC,MAAI;EAC/B,OAAAH,iBAAA,CAAAI,GAAA,CAAAD,MAAA;AAGO;AACL,SAAOE,YAAAF,MAAA,EAAmB;EAC5B,OAAAL,kBAAA,CAAAM,GAAA,CAAAD,MAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.86",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@take-out/helpers": "
|
|
67
|
+
"@take-out/helpers": "0.0.79",
|
|
68
68
|
"@sinclair/typebox-codegen": "^0.11.1",
|
|
69
69
|
"chokidar": "^4.0.3",
|
|
70
70
|
"citty": "^0.1.6",
|
package/src/createZeroClient.tsx
CHANGED
|
@@ -20,6 +20,7 @@ import { registerQuery } from './queryRegistry'
|
|
|
20
20
|
import { resolveQuery, type PlainQueryFn } from './resolveQuery'
|
|
21
21
|
import { setCustomQueries } from './run'
|
|
22
22
|
import { setAuthData, setSchema } from './state'
|
|
23
|
+
import { getRawWhere } from './where'
|
|
23
24
|
import { setRunner } from './zeroRunner'
|
|
24
25
|
import { zql } from './zql'
|
|
25
26
|
|
|
@@ -74,19 +75,35 @@ export function createZeroClient<
|
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
// register permission.check synced query
|
|
77
|
-
// client:
|
|
78
|
-
// server: evaluates real permission
|
|
79
|
-
// the client-side query must NOT match local rows, otherwise zero's local
|
|
80
|
-
// materialization will always return the row (since it exists via other queries)
|
|
81
|
-
// and the server's "no row" response can't override it
|
|
78
|
+
// client: evaluates raw permission condition for optimistic result (zero caches via materialization)
|
|
79
|
+
// server: evaluates real permission condition authoritatively
|
|
82
80
|
const permissionCheckFn = (args: {
|
|
83
81
|
table: string
|
|
84
82
|
objOrId: string | Record<string, any>
|
|
85
83
|
}) => {
|
|
84
|
+
const perm = getMutationsPermissions(args.table)
|
|
86
85
|
const base = (zql as any)[args.table]
|
|
87
86
|
|
|
88
|
-
//
|
|
89
|
-
|
|
87
|
+
// when objOrId is missing, return a query that matches nothing
|
|
88
|
+
if (!args.objOrId) {
|
|
89
|
+
return base.where((eb: any) => eb.cmpLit(true, '=', false)).one()
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// use the raw (unwrapped) builder so serverWhere conditions actually evaluate on client
|
|
93
|
+
// this gives us optimistic permission results — zero caches via its materialized views
|
|
94
|
+
const rawPerm = perm ? getRawWhere(perm) || perm : perm
|
|
95
|
+
|
|
96
|
+
return base
|
|
97
|
+
.where((eb: any) => {
|
|
98
|
+
return permissionsHelpers.buildPermissionQuery(
|
|
99
|
+
getQueryOrMutatorAuthData(),
|
|
100
|
+
eb,
|
|
101
|
+
rawPerm || ((e: any) => e.and()),
|
|
102
|
+
args.objOrId,
|
|
103
|
+
args.table
|
|
104
|
+
)
|
|
105
|
+
})
|
|
106
|
+
.one()
|
|
90
107
|
}
|
|
91
108
|
|
|
92
109
|
registerQuery(permissionCheckFn, 'permission.check')
|
|
@@ -128,8 +145,8 @@ export function createZeroClient<
|
|
|
128
145
|
|
|
129
146
|
// permission check uses a synced query so server is authoritative
|
|
130
147
|
// client is optimistic (serverWhere is no-op), server evaluates real condition
|
|
131
|
-
function usePermission
|
|
132
|
-
table:
|
|
148
|
+
function usePermission(
|
|
149
|
+
table: TableName | (string & {}),
|
|
133
150
|
objOrId: string | Partial<Row<any>> | undefined,
|
|
134
151
|
enabled = typeof objOrId !== 'undefined',
|
|
135
152
|
debug = false
|
package/src/where.ts
CHANGED
|
@@ -41,6 +41,9 @@ export function where<Table extends TableName, Builder extends Where<Table>>(
|
|
|
41
41
|
return result
|
|
42
42
|
}) as Builder
|
|
43
43
|
|
|
44
|
+
// store the raw (unwrapped) builder so permission checks can evaluate it on client
|
|
45
|
+
WhereRawBuilderMap.set(wrappedWhereFn, whereFn)
|
|
46
|
+
|
|
44
47
|
if (b) {
|
|
45
48
|
WhereTableNameMap.set(wrappedWhereFn, a as Table)
|
|
46
49
|
}
|
|
@@ -51,7 +54,13 @@ export function where<Table extends TableName, Builder extends Where<Table>>(
|
|
|
51
54
|
// permissions where:
|
|
52
55
|
|
|
53
56
|
const WhereTableNameMap = new WeakMap<Where, TableName>()
|
|
57
|
+
const WhereRawBuilderMap = new WeakMap<Where, Where>()
|
|
54
58
|
|
|
55
59
|
export function getWhereTableName(where: Where) {
|
|
56
60
|
return WhereTableNameMap.get(where)
|
|
57
61
|
}
|
|
62
|
+
|
|
63
|
+
// returns the raw builder that always evaluates (bypasses serverWhere client no-op)
|
|
64
|
+
export function getRawWhere(where: Where): Where | undefined {
|
|
65
|
+
return WhereRawBuilderMap.get(where)
|
|
66
|
+
}
|
|
@@ -18,7 +18,7 @@ export declare function createZeroClient<Schema extends ZeroSchema, Models exten
|
|
|
18
18
|
disable?: boolean;
|
|
19
19
|
}) => string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
|
|
20
20
|
useQuery: import("./createUseQuery").UseQueryHook<Schema>;
|
|
21
|
-
usePermission:
|
|
21
|
+
usePermission: (table: (keyof import("@rocicorp/zero").ConditionalSchemaQuery<Schema> extends string ? keyof import("@rocicorp/zero").ConditionalSchemaQuery<Schema> : never) | (string & {}), objOrId: string | Partial<Row<any>> | undefined, enabled?: boolean, debug?: boolean) => boolean | null;
|
|
22
22
|
zero: Zero<Schema, GetZeroMutators<Models>, unknown>;
|
|
23
23
|
preload: {
|
|
24
24
|
<TArg, TTable extends keyof Schema["tables"] & string, TReturn>(fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>, params: TArg, options?: PreloadOptions): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAQd,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAQd,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAOhE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEzF,KAAK,cAAc,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEvE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;AAEpF,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,EACA,MAAM,EACN,MAAM,EACN,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;CAC/B;;yEAsII,IAAI,CAAC,WAAW,CAAC,MAAM,0BAAe,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QAClE,QAAQ,EAAE,SAAS,CAAA;QACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;QAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB;;2BAlCQ,yJAAY,CAAC,MAAM,GAAG,EAAE,CAAC,WACvB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,yCAG9C,OAAO,GAAG,IAAI;;;SAwHA,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,MACxE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,UAC9C,IAAI,YACF,cAAc,GACvB;YAAE,OAAO,EAAE,MAAM,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE;SAClC,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,MAClE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,YAC5C,cAAc,GACvB;YAAE,OAAO,EAAE,MAAM,IAAI,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SAAE;;EAuBpD"}
|
package/types/where.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ import type { Condition } from '@rocicorp/zero';
|
|
|
3
3
|
export declare function where<Table extends TableName, Builder extends Where<Table>>(tableName: Table, builder: Builder, isServerOnly?: boolean): Where<Table, Condition>;
|
|
4
4
|
export declare function where<Table extends TableName, Builder extends Where = Where<Table>>(builder: Builder): Where<Table, Condition>;
|
|
5
5
|
export declare function getWhereTableName(where: Where): string | undefined;
|
|
6
|
+
export declare function getRawWhere(where: Where): Where | undefined;
|
|
6
7
|
//# sourceMappingURL=where.d.ts.map
|
package/types/where.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../src/where.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAA;AAElE,wBAAgB,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,SAAS,KAAK,CAAC,KAAK,CAAC,EACzE,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,OAAO,GACrB,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAE1B,wBAAgB,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,SAAS,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EACjF,OAAO,EAAE,OAAO,GACf,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"where.d.ts","sourceRoot":"","sources":["../src/where.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAqB,MAAM,gBAAgB,CAAA;AAElE,wBAAgB,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,SAAS,KAAK,CAAC,KAAK,CAAC,EACzE,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,OAAO,GACrB,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAE1B,wBAAgB,KAAK,CAAC,KAAK,SAAS,SAAS,EAAE,OAAO,SAAS,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EACjF,OAAO,EAAE,OAAO,GACf,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AA4C1B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,sBAE7C;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAE3D"}
|