on-zero 0.1.47 → 0.1.49
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 +4 -2
- package/dist/cjs/createZeroClient.js +3 -3
- package/dist/cjs/createZeroClient.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +5 -2
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +7 -1
- package/dist/cjs/createZeroServer.js +13 -8
- package/dist/cjs/createZeroServer.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js +9 -3
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/serverWhere.test.cjs +106 -0
- package/dist/cjs/serverWhere.test.js +52 -0
- package/dist/cjs/serverWhere.test.js.map +6 -0
- package/dist/cjs/serverWhere.test.native.js +125 -0
- package/dist/cjs/serverWhere.test.native.js.map +1 -0
- package/dist/cjs/state.cjs +21 -11
- package/dist/cjs/state.js +15 -8
- package/dist/cjs/state.js.map +1 -1
- package/dist/cjs/state.native.js +23 -9
- package/dist/cjs/state.native.js.map +1 -1
- package/dist/cjs/usePermission.test.cjs +67 -0
- package/dist/cjs/usePermission.test.js +29 -0
- package/dist/cjs/usePermission.test.js.map +6 -0
- package/dist/cjs/usePermission.test.native.js +74 -0
- package/dist/cjs/usePermission.test.native.js.map +1 -0
- package/dist/esm/createZeroClient.js +4 -4
- package/dist/esm/createZeroClient.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +5 -3
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +6 -3
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +13 -7
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +7 -1
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +9 -3
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/serverWhere.test.js +55 -0
- package/dist/esm/serverWhere.test.js.map +6 -0
- package/dist/esm/serverWhere.test.mjs +107 -0
- package/dist/esm/serverWhere.test.mjs.map +1 -0
- package/dist/esm/serverWhere.test.native.js +123 -0
- package/dist/esm/serverWhere.test.native.js.map +1 -0
- package/dist/esm/state.js +15 -7
- package/dist/esm/state.js.map +1 -1
- package/dist/esm/state.mjs +20 -10
- package/dist/esm/state.mjs.map +1 -1
- package/dist/esm/state.native.js +23 -9
- package/dist/esm/state.native.js.map +1 -1
- package/dist/esm/usePermission.test.js +33 -0
- package/dist/esm/usePermission.test.js.map +6 -0
- package/dist/esm/usePermission.test.mjs +68 -0
- package/dist/esm/usePermission.test.mjs.map +1 -0
- package/dist/esm/usePermission.test.native.js +72 -0
- package/dist/esm/usePermission.test.native.js.map +1 -0
- package/package.json +2 -2
- package/src/createZeroClient.tsx +13 -3
- package/src/createZeroServer.ts +19 -11
- package/src/serverWhere.test.ts +130 -0
- package/src/state.ts +24 -10
- package/src/usePermission.test.ts +84 -0
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/serverWhere.test.d.ts +2 -0
- package/types/serverWhere.test.d.ts.map +1 -0
- package/types/state.d.ts.map +1 -1
- package/types/usePermission.test.d.ts +2 -0
- package/types/usePermission.test.d.ts.map +1 -0
package/dist/cjs/state.cjs
CHANGED
|
@@ -29,28 +29,38 @@ __export(state_exports, {
|
|
|
29
29
|
setSchema: () => setSchema
|
|
30
30
|
});
|
|
31
31
|
module.exports = __toCommonJS(state_exports);
|
|
32
|
-
var import_zero = require("@rocicorp/zero")
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
var import_zero = require("@rocicorp/zero"),
|
|
33
|
+
import_helpers = require("@take-out/helpers");
|
|
34
|
+
const getState = () => (0, import_helpers.globalValue)("on-zero:state", () => ({
|
|
35
|
+
schema: null,
|
|
36
|
+
zql: null,
|
|
37
|
+
authData: void 0,
|
|
38
|
+
environment: null
|
|
39
|
+
})),
|
|
40
|
+
errMessage = "Haven't called createZeroClient or createZeroServer yet!",
|
|
38
41
|
getZQL = () => {
|
|
42
|
+
const {
|
|
43
|
+
zql
|
|
44
|
+
} = getState();
|
|
39
45
|
if (!zql) throw new Error(errMessage);
|
|
40
46
|
return zql;
|
|
41
47
|
},
|
|
42
48
|
getSchema = () => {
|
|
49
|
+
const {
|
|
50
|
+
schema
|
|
51
|
+
} = getState();
|
|
43
52
|
if (!schema) throw new Error(errMessage);
|
|
44
53
|
return schema;
|
|
45
54
|
},
|
|
46
55
|
setSchema = _ => {
|
|
47
|
-
|
|
56
|
+
const state = getState();
|
|
57
|
+
state.schema = _, state.zql = (0, import_zero.createBuilder)(_);
|
|
48
58
|
},
|
|
49
|
-
getAuthData = () => authData || null,
|
|
59
|
+
getAuthData = () => getState().authData || null,
|
|
50
60
|
setAuthData = _ => {
|
|
51
|
-
authData = _;
|
|
61
|
+
getState().authData = _;
|
|
52
62
|
},
|
|
53
|
-
getEnvironment = () => environment,
|
|
63
|
+
getEnvironment = () => getState().environment,
|
|
54
64
|
setEnvironment = env => {
|
|
55
|
-
environment = env;
|
|
65
|
+
getState().environment = env;
|
|
56
66
|
};
|
package/dist/cjs/state.js
CHANGED
|
@@ -23,19 +23,26 @@ __export(state_exports, {
|
|
|
23
23
|
setSchema: () => setSchema
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(state_exports);
|
|
26
|
-
var import_zero = require("@rocicorp/zero");
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
var import_zero = require("@rocicorp/zero"), import_helpers = require("@take-out/helpers");
|
|
27
|
+
const getState = () => (0, import_helpers.globalValue)("on-zero:state", () => ({
|
|
28
|
+
schema: null,
|
|
29
|
+
zql: null,
|
|
30
|
+
authData: void 0,
|
|
31
|
+
environment: null
|
|
32
|
+
})), errMessage = "Haven't called createZeroClient or createZeroServer yet!", getZQL = () => {
|
|
33
|
+
const { zql } = getState();
|
|
29
34
|
if (!zql) throw new Error(errMessage);
|
|
30
35
|
return zql;
|
|
31
36
|
}, getSchema = () => {
|
|
37
|
+
const { schema } = getState();
|
|
32
38
|
if (!schema) throw new Error(errMessage);
|
|
33
39
|
return schema;
|
|
34
40
|
}, setSchema = (_) => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
const state = getState();
|
|
42
|
+
state.schema = _, state.zql = (0, import_zero.createBuilder)(_);
|
|
43
|
+
}, getAuthData = () => getState().authData || null, setAuthData = (_) => {
|
|
44
|
+
getState().authData = _;
|
|
45
|
+
}, getEnvironment = () => getState().environment, setEnvironment = (env) => {
|
|
46
|
+
getState().environment = env;
|
|
40
47
|
};
|
|
41
48
|
//# sourceMappingURL=state.js.map
|
package/dist/cjs/state.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/state.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA2C;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA2C,2BAC3C,iBAA4B;AAW5B,MAAM,WAAW,UACf,4BAAmB,iBAAiB,OAAO;AAAA,EACzC,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,UAAU;AAAA,EACV,aAAa;AACf,EAAE,GAEE,aAAa,4DAEN,SAAS,MAAM;AAC1B,QAAM,EAAE,IAAI,IAAI,SAAS;AACzB,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,UAAU;AACpC,SAAO;AACT,GAEa,YAAY,MAAM;AAC7B,QAAM,EAAE,OAAO,IAAI,SAAS;AAC5B,MAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,UAAU;AACvC,SAAO;AACT,GAEa,YAAY,CAAC,MAAc;AACtC,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,GACf,MAAM,UAAM,2BAAc,CAAC;AAC7B,GAEa,cAAc,MAClB,SAAS,EAAE,YAAY,MAGnB,cAAc,CAAC,MAAgB;AAC1C,WAAS,EAAE,WAAW;AACxB,GAEa,iBAAiB,MAAM,SAAS,EAAE,aAElC,iBAAiB,CAAC,QAA6B;AAC1D,WAAS,EAAE,cAAc;AAC3B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/cjs/state.native.js
CHANGED
|
@@ -32,32 +32,46 @@ __export(state_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(state_exports);
|
|
34
34
|
var import_zero = require("@rocicorp/zero"),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
import_helpers = require("@take-out/helpers"),
|
|
36
|
+
getState = function () {
|
|
37
|
+
return (0, import_helpers.globalValue)("on-zero:state", function () {
|
|
38
|
+
return {
|
|
39
|
+
schema: null,
|
|
40
|
+
zql: null,
|
|
41
|
+
authData: void 0,
|
|
42
|
+
environment: null
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
},
|
|
39
46
|
errMessage = "Haven't called createZeroClient or createZeroServer yet!",
|
|
40
47
|
getZQL = function () {
|
|
48
|
+
var {
|
|
49
|
+
zql
|
|
50
|
+
} = getState();
|
|
41
51
|
if (!zql) throw new Error(errMessage);
|
|
42
52
|
return zql;
|
|
43
53
|
},
|
|
44
54
|
getSchema = function () {
|
|
55
|
+
var {
|
|
56
|
+
schema
|
|
57
|
+
} = getState();
|
|
45
58
|
if (!schema) throw new Error(errMessage);
|
|
46
59
|
return schema;
|
|
47
60
|
},
|
|
48
61
|
setSchema = function (_) {
|
|
49
|
-
|
|
62
|
+
var state = getState();
|
|
63
|
+
state.schema = _, state.zql = (0, import_zero.createBuilder)(_);
|
|
50
64
|
},
|
|
51
65
|
getAuthData = function () {
|
|
52
|
-
return authData || null;
|
|
66
|
+
return getState().authData || null;
|
|
53
67
|
},
|
|
54
68
|
setAuthData = function (_) {
|
|
55
|
-
authData = _;
|
|
69
|
+
getState().authData = _;
|
|
56
70
|
},
|
|
57
71
|
getEnvironment = function () {
|
|
58
|
-
return environment;
|
|
72
|
+
return getState().environment;
|
|
59
73
|
},
|
|
60
74
|
setEnvironment = function (env) {
|
|
61
|
-
environment = env;
|
|
75
|
+
getState().environment = env;
|
|
62
76
|
};
|
|
63
77
|
//# sourceMappingURL=state.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","state_exports","__export","getAuthData","getEnvironment","getSchema","getZQL","setAuthData","setEnvironment","setSchema","module","exports","import_zero","require","schema","zql","authData","environment","errMessage","Error","_","createBuilder"],"sources":["../../src/state.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,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,MAAA,EAAAA,CAAA,KAAAA,MAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAf,YAA2C,CAAAK,aAAA;
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","state_exports","__export","getAuthData","getEnvironment","getSchema","getZQL","setAuthData","setEnvironment","setSchema","module","exports","import_zero","require","import_helpers","getState","globalValue","schema","zql","authData","environment","errMessage","Error","_","state","createBuilder"],"sources":["../../src/state.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,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,MAAA,EAAAA,CAAA,KAAAA,MAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAf,YAA2C,CAAAK,aAAA;AAY3C,IAAAW,WAAM,GAAWC,OAAA,iBACf;EAAAC,cAAmB,GAAAD,OAAA,oBAAwB;EAAAE,QAAA,YAAAA,CAAA;IACzC,QAAQ,GAAAD,cAAA,CAAAE,WAAA;MACR,OAAK;QACLC,MAAU;QACVC,GAAA,MAAa;QAGXC,QAAA,OAAa;QAGjBC,WAAY,EAAI;MAChB;IACA;EACF;EAEaC,UAAA,GAAY,0DAAM;EAAAf,MAAA,YAAAA,CAAA;IAC7B;MAAMY;IAAE,IAAAH,QAAW;IACnB,IAAI,CAACG,GAAA,QAAQ,IAAMI,KAAI,CAAAD,UAAM;IAC7B,OAAOH,GAAA;EACT;EAEab,SAAA,GAAY,SAAAA,CAAA,EAAe;IACtC;MAAMY;IAAA,CAAQ,GAAAF,QAAS;IACvB,KAAAE,MAAM,QACN,IAAAK,KAAM,CAAAD,UAAM;IACd,OAEaJ,MAAA;EAKX;EAAAR,SAAS,GAAE,SAAAA,CAAWc,CAAA;IACxB,IAEaC,KAAA,GAAAT,QAAiB;IAG5BS,KAAA,CAAAP,MAAW,GAAAM,CAAA,EAAAC,KAAA,CAAAN,GAAc,OAAAN,WAAA,CAAAa,aAAA,EAAAF,CAAA;EAC3B;EAAApB,WAAA,YAAAA,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
var import_zero = require("@rocicorp/zero"),
|
|
2
|
+
import_vitest = require("vitest"),
|
|
3
|
+
import_modelRegistry = require("./modelRegistry.cjs"),
|
|
4
|
+
import_queryRegistry = require("./queryRegistry.cjs"),
|
|
5
|
+
import_state = require("./state.cjs");
|
|
6
|
+
(0, import_vitest.describe)("usePermission _uid query identity", () => {
|
|
7
|
+
(0, import_vitest.test)("permission check fn ignores extra _uid in args", () => {
|
|
8
|
+
const testTable = (0, import_zero.table)("testEntity").columns({
|
|
9
|
+
id: (0, import_zero.string)(),
|
|
10
|
+
ownerId: (0, import_zero.string)(),
|
|
11
|
+
active: (0, import_zero.boolean)()
|
|
12
|
+
}).primaryKey("id");
|
|
13
|
+
(0, import_state.setSchema)({
|
|
14
|
+
tables: {
|
|
15
|
+
testEntity: testTable
|
|
16
|
+
},
|
|
17
|
+
version: 1
|
|
18
|
+
}), (0, import_state.setEnvironment)("client");
|
|
19
|
+
const fn = args => ({
|
|
20
|
+
objOrId: args.objOrId
|
|
21
|
+
}),
|
|
22
|
+
result1 = fn({
|
|
23
|
+
objOrId: "test-id",
|
|
24
|
+
_uid: "user-A"
|
|
25
|
+
}),
|
|
26
|
+
result2 = fn({
|
|
27
|
+
objOrId: "test-id",
|
|
28
|
+
_uid: "user-B"
|
|
29
|
+
}),
|
|
30
|
+
result3 = fn({
|
|
31
|
+
objOrId: "test-id"
|
|
32
|
+
});
|
|
33
|
+
(0, import_vitest.expect)(result1.objOrId).toBe("test-id"), (0, import_vitest.expect)(result2.objOrId).toBe("test-id"), (0, import_vitest.expect)(result3.objOrId).toBe("test-id");
|
|
34
|
+
}), (0, import_vitest.test)("different _uid values produce different serialized args", () => {
|
|
35
|
+
const args1 = JSON.stringify({
|
|
36
|
+
objOrId: "server-1",
|
|
37
|
+
_uid: "user-A"
|
|
38
|
+
}),
|
|
39
|
+
args2 = JSON.stringify({
|
|
40
|
+
objOrId: "server-1",
|
|
41
|
+
_uid: "user-B"
|
|
42
|
+
}),
|
|
43
|
+
args3 = JSON.stringify({
|
|
44
|
+
objOrId: "server-1",
|
|
45
|
+
_uid: "anon"
|
|
46
|
+
});
|
|
47
|
+
(0, import_vitest.expect)(args1).not.toBe(args2), (0, import_vitest.expect)(args1).not.toBe(args3), (0, import_vitest.expect)(args2).not.toBe(args3);
|
|
48
|
+
}), (0, import_vitest.test)("same _uid produces stable query identity", () => {
|
|
49
|
+
const args1 = JSON.stringify({
|
|
50
|
+
objOrId: "server-1",
|
|
51
|
+
_uid: "user-A"
|
|
52
|
+
}),
|
|
53
|
+
args2 = JSON.stringify({
|
|
54
|
+
objOrId: "server-1",
|
|
55
|
+
_uid: "user-A"
|
|
56
|
+
});
|
|
57
|
+
(0, import_vitest.expect)(args1).toBe(args2);
|
|
58
|
+
}), (0, import_vitest.test)("permission registration works for query lookup", () => {
|
|
59
|
+
const mockWhere = (eb, auth) => eb.cmp("ownerId", auth?.id || "");
|
|
60
|
+
(0, import_modelRegistry.setMutationsPermissions)("testEntity", mockWhere);
|
|
61
|
+
const perm = (0, import_modelRegistry.getMutationsPermissions)("testEntity");
|
|
62
|
+
(0, import_vitest.expect)(perm).toBeDefined(), (0, import_vitest.expect)(perm).toBe(mockWhere);
|
|
63
|
+
}), (0, import_vitest.test)("query name registration preserves permission namespace", () => {
|
|
64
|
+
const fn = () => {};
|
|
65
|
+
(0, import_queryRegistry.registerQuery)(fn, "permission.testEntity"), (0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(fn)).toBe("permission.testEntity");
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var import_zero = require("@rocicorp/zero"), import_vitest = require("vitest"), import_modelRegistry = require("./modelRegistry"), import_queryRegistry = require("./queryRegistry"), import_state = require("./state");
|
|
2
|
+
(0, import_vitest.describe)("usePermission _uid query identity", () => {
|
|
3
|
+
(0, import_vitest.test)("permission check fn ignores extra _uid in args", () => {
|
|
4
|
+
const testTable = (0, import_zero.table)("testEntity").columns({
|
|
5
|
+
id: (0, import_zero.string)(),
|
|
6
|
+
ownerId: (0, import_zero.string)(),
|
|
7
|
+
active: (0, import_zero.boolean)()
|
|
8
|
+
}).primaryKey("id");
|
|
9
|
+
(0, import_state.setSchema)({ tables: { testEntity: testTable }, version: 1 }), (0, import_state.setEnvironment)("client");
|
|
10
|
+
const fn = (args) => ({ objOrId: args.objOrId }), result1 = fn({ objOrId: "test-id", _uid: "user-A" }), result2 = fn({ objOrId: "test-id", _uid: "user-B" }), result3 = fn({ objOrId: "test-id" });
|
|
11
|
+
(0, import_vitest.expect)(result1.objOrId).toBe("test-id"), (0, import_vitest.expect)(result2.objOrId).toBe("test-id"), (0, import_vitest.expect)(result3.objOrId).toBe("test-id");
|
|
12
|
+
}), (0, import_vitest.test)("different _uid values produce different serialized args", () => {
|
|
13
|
+
const args1 = JSON.stringify({ objOrId: "server-1", _uid: "user-A" }), args2 = JSON.stringify({ objOrId: "server-1", _uid: "user-B" }), args3 = JSON.stringify({ objOrId: "server-1", _uid: "anon" });
|
|
14
|
+
(0, import_vitest.expect)(args1).not.toBe(args2), (0, import_vitest.expect)(args1).not.toBe(args3), (0, import_vitest.expect)(args2).not.toBe(args3);
|
|
15
|
+
}), (0, import_vitest.test)("same _uid produces stable query identity", () => {
|
|
16
|
+
const args1 = JSON.stringify({ objOrId: "server-1", _uid: "user-A" }), args2 = JSON.stringify({ objOrId: "server-1", _uid: "user-A" });
|
|
17
|
+
(0, import_vitest.expect)(args1).toBe(args2);
|
|
18
|
+
}), (0, import_vitest.test)("permission registration works for query lookup", () => {
|
|
19
|
+
const mockWhere = (eb, auth) => eb.cmp("ownerId", auth?.id || "");
|
|
20
|
+
(0, import_modelRegistry.setMutationsPermissions)("testEntity", mockWhere);
|
|
21
|
+
const perm = (0, import_modelRegistry.getMutationsPermissions)("testEntity");
|
|
22
|
+
(0, import_vitest.expect)(perm).toBeDefined(), (0, import_vitest.expect)(perm).toBe(mockWhere);
|
|
23
|
+
}), (0, import_vitest.test)("query name registration preserves permission namespace", () => {
|
|
24
|
+
const fn = () => {
|
|
25
|
+
};
|
|
26
|
+
(0, import_queryRegistry.registerQuery)(fn, "permission.testEntity"), (0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(fn)).toBe("permission.testEntity");
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=usePermission.test.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/usePermission.test.ts"],
|
|
4
|
+
"mappings": "AAAA,kBAAuC,2BACvC,gBAAuC,mBAEvC,uBAAiE,4BACjE,uBAA4C,4BAC5C,eAA0C;AAAA,IAE1C,wBAAS,qCAAqC,MAAM;AAUlD,0BAAK,kDAAkD,MAAM;AAE3D,UAAM,gBAAY,mBAAM,YAAY,EACjC,QAAQ;AAAA,MACP,QAAI,oBAAO;AAAA,MACX,aAAS,oBAAO;AAAA,MAChB,YAAQ,qBAAQ;AAAA,IAClB,CAAC,EACA,WAAW,IAAI;AAElB,gCAAU,EAAE,QAAQ,EAAE,YAAY,UAAU,GAAG,SAAS,EAAE,CAAQ,OAClE,6BAAe,QAAQ;AAIvB,UAAM,KAAK,CAAC,UAEH,EAAE,SAAS,KAAK,QAAQ,IAG3B,UAAU,GAAG,EAAE,SAAS,WAAW,MAAM,SAAS,CAAC,GACnD,UAAU,GAAG,EAAE,SAAS,WAAW,MAAM,SAAS,CAAC,GACnD,UAAU,GAAG,EAAE,SAAS,UAAU,CAAC;AAGzC,8BAAO,QAAQ,OAAO,EAAE,KAAK,SAAS,OACtC,sBAAO,QAAQ,OAAO,EAAE,KAAK,SAAS,OACtC,sBAAO,QAAQ,OAAO,EAAE,KAAK,SAAS;AAAA,EACxC,CAAC,OAED,oBAAK,2DAA2D,MAAM;AAGpE,UAAM,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC,GAC9D,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC,GAC9D,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,OAAO,CAAC;AAElE,8BAAO,KAAK,EAAE,IAAI,KAAK,KAAK,OAC5B,sBAAO,KAAK,EAAE,IAAI,KAAK,KAAK,OAC5B,sBAAO,KAAK,EAAE,IAAI,KAAK,KAAK;AAAA,EAC9B,CAAC,OAED,oBAAK,4CAA4C,MAAM;AAErD,UAAM,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC,GAC9D,QAAQ,KAAK,UAAU,EAAE,SAAS,YAAY,MAAM,SAAS,CAAC;AAEpE,8BAAO,KAAK,EAAE,KAAK,KAAK;AAAA,EAC1B,CAAC,OAED,oBAAK,kDAAkD,MAAM;AAE3D,UAAM,YAAY,CAAC,IAAS,SAAc,GAAG,IAAI,WAAW,MAAM,MAAM,EAAE;AAC1E,sDAAwB,cAAc,SAAgB;AAEtD,UAAM,WAAO,8CAAwB,YAAY;AACjD,8BAAO,IAAI,EAAE,YAAY,OACzB,sBAAO,IAAI,EAAE,KAAK,SAAS;AAAA,EAC7B,CAAC,OAED,oBAAK,0DAA0D,MAAM;AACnE,UAAM,KAAK,MAAM;AAAA,IAAC;AAClB,4CAAc,IAAI,uBAAuB,OAEzC,0BAAO,mCAAa,EAAE,CAAC,EAAE,KAAK,uBAAuB;AAAA,EACvD,CAAC;AACH,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var import_zero = require("@rocicorp/zero"),
|
|
4
|
+
import_vitest = require("vitest"),
|
|
5
|
+
import_modelRegistry = require("./modelRegistry.native.js"),
|
|
6
|
+
import_queryRegistry = require("./queryRegistry.native.js"),
|
|
7
|
+
import_state = require("./state.native.js");
|
|
8
|
+
(0, import_vitest.describe)("usePermission _uid query identity", function () {
|
|
9
|
+
(0, import_vitest.test)("permission check fn ignores extra _uid in args", function () {
|
|
10
|
+
var testTable = (0, import_zero.table)("testEntity").columns({
|
|
11
|
+
id: (0, import_zero.string)(),
|
|
12
|
+
ownerId: (0, import_zero.string)(),
|
|
13
|
+
active: (0, import_zero.boolean)()
|
|
14
|
+
}).primaryKey("id");
|
|
15
|
+
(0, import_state.setSchema)({
|
|
16
|
+
tables: {
|
|
17
|
+
testEntity: testTable
|
|
18
|
+
},
|
|
19
|
+
version: 1
|
|
20
|
+
}), (0, import_state.setEnvironment)("client");
|
|
21
|
+
var fn = function (args) {
|
|
22
|
+
return {
|
|
23
|
+
objOrId: args.objOrId
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
result1 = fn({
|
|
27
|
+
objOrId: "test-id",
|
|
28
|
+
_uid: "user-A"
|
|
29
|
+
}),
|
|
30
|
+
result2 = fn({
|
|
31
|
+
objOrId: "test-id",
|
|
32
|
+
_uid: "user-B"
|
|
33
|
+
}),
|
|
34
|
+
result3 = fn({
|
|
35
|
+
objOrId: "test-id"
|
|
36
|
+
});
|
|
37
|
+
(0, import_vitest.expect)(result1.objOrId).toBe("test-id"), (0, import_vitest.expect)(result2.objOrId).toBe("test-id"), (0, import_vitest.expect)(result3.objOrId).toBe("test-id");
|
|
38
|
+
}), (0, import_vitest.test)("different _uid values produce different serialized args", function () {
|
|
39
|
+
var args1 = JSON.stringify({
|
|
40
|
+
objOrId: "server-1",
|
|
41
|
+
_uid: "user-A"
|
|
42
|
+
}),
|
|
43
|
+
args2 = JSON.stringify({
|
|
44
|
+
objOrId: "server-1",
|
|
45
|
+
_uid: "user-B"
|
|
46
|
+
}),
|
|
47
|
+
args3 = JSON.stringify({
|
|
48
|
+
objOrId: "server-1",
|
|
49
|
+
_uid: "anon"
|
|
50
|
+
});
|
|
51
|
+
(0, import_vitest.expect)(args1).not.toBe(args2), (0, import_vitest.expect)(args1).not.toBe(args3), (0, import_vitest.expect)(args2).not.toBe(args3);
|
|
52
|
+
}), (0, import_vitest.test)("same _uid produces stable query identity", function () {
|
|
53
|
+
var args1 = JSON.stringify({
|
|
54
|
+
objOrId: "server-1",
|
|
55
|
+
_uid: "user-A"
|
|
56
|
+
}),
|
|
57
|
+
args2 = JSON.stringify({
|
|
58
|
+
objOrId: "server-1",
|
|
59
|
+
_uid: "user-A"
|
|
60
|
+
});
|
|
61
|
+
(0, import_vitest.expect)(args1).toBe(args2);
|
|
62
|
+
}), (0, import_vitest.test)("permission registration works for query lookup", function () {
|
|
63
|
+
var mockWhere = function (eb, auth) {
|
|
64
|
+
return eb.cmp("ownerId", auth?.id || "");
|
|
65
|
+
};
|
|
66
|
+
(0, import_modelRegistry.setMutationsPermissions)("testEntity", mockWhere);
|
|
67
|
+
var perm = (0, import_modelRegistry.getMutationsPermissions)("testEntity");
|
|
68
|
+
(0, import_vitest.expect)(perm).toBeDefined(), (0, import_vitest.expect)(perm).toBe(mockWhere);
|
|
69
|
+
}), (0, import_vitest.test)("query name registration preserves permission namespace", function () {
|
|
70
|
+
var fn = function () {};
|
|
71
|
+
(0, import_queryRegistry.registerQuery)(fn, "permission.testEntity"), (0, import_vitest.expect)((0, import_queryRegistry.getQueryName)(fn)).toBe("permission.testEntity");
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=usePermission.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_zero","require","import_vitest","import_modelRegistry","import_queryRegistry","import_state","describe","test","testTable","table","columns","id","string","ownerId","active","boolean","primaryKey","setSchema","tables","testEntity","version","setEnvironment","fn","args","objOrId","result1","_uid","result2","result3"],"sources":["../../src/usePermission.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AAK0C,IAE1CA,WAAA,GAAAC,OAAA,iBAAS;EAAAC,aAAA,GAAAD,OAAqC,SAAM;EAAAE,oBAAA,GAAAF,OAAA;EAAAG,oBAAA,GAAAH,OAAA;EAAAI,YAAA,GAAAJ,OAAA;AAUlD,IAAAC,aAAA,CAAAI,QAAK,mDAAkD;EAErD,IAAAJ,aAAM,CAAAK,IAAA,EAAY,gDACP;IAAA,IACPC,SAAI,OAAAR,WAAO,CAAAS,KAAA,gBAAAC,OAAA;MACXC,EAAA,MAAAX,WAAS,CAAAY,MAAA;MACTC,OAAA,MAAQb,WAAA,CAAAY,MAAA,EAAQ;MACjBE,MACA,MAAWd,WAAI,CAAAe,OAAA;IAElB,GAAAC,UAAA;IAKA,IAAAX,YAAY,CAAAY,SAED;MAQXC,MAAA;QAGDC,UAED,EAAAX;MAGE;MAIAY,OAAA;IAGD,MAED,EAAAf,YAAA,CAAAgB,cAAK;IAEH,IAAAC,EAAM,YAAAA,CAAQC,IAAK;QAGnB;UACDC,OAED,EAAAD,IAAA,CAAAC;QAEE;MACA;MAAAC,OAAA,GAAAH,EAAA;QAEAE,OAAM,WAAO;QACbE,IAAA;MAED;MAAAC,OAED,GAAAL,EAAA;QACEE,OAAM,EAAK,SAAM;QAACE,IAAA;MAClB;MAAAE,OAAA,GAAAN,EAAA;QAGDE,OAAA;MACF","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegi
|
|
|
17
17
|
import { registerQuery } from "./queryRegistry";
|
|
18
18
|
import { resolveQuery } from "./resolveQuery";
|
|
19
19
|
import { setCustomQueries } from "./run";
|
|
20
|
-
import { setAuthData, setEnvironment, setSchema } from "./state";
|
|
20
|
+
import { getEnvironment, setAuthData, setEnvironment, setSchema } from "./state";
|
|
21
21
|
import { getRawWhere, setEvaluatingPermission } from "./where";
|
|
22
22
|
import { setRunner } from "./zeroRunner";
|
|
23
23
|
import { zql } from "./zql";
|
|
@@ -28,7 +28,7 @@ function createZeroClient({
|
|
|
28
28
|
groupedQueries,
|
|
29
29
|
permissionStrategy = "optimistic"
|
|
30
30
|
}) {
|
|
31
|
-
setSchema(schema), setEnvironment("client");
|
|
31
|
+
setSchema(schema), getEnvironment() === null && setEnvironment("client");
|
|
32
32
|
const permissionsHelpers = createPermissions({
|
|
33
33
|
schema,
|
|
34
34
|
environment: "client"
|
|
@@ -94,9 +94,9 @@ function createZeroClient({
|
|
|
94
94
|
customQueries
|
|
95
95
|
});
|
|
96
96
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
97
|
-
const disableMode = use(DisabledContext), lastRef = useRef(null), checkFn = permissionCheckFns[table], [data, status] = useQuery(
|
|
97
|
+
const disableMode = use(DisabledContext), lastRef = useRef(null), checkFn = permissionCheckFns[table], _uid = getAuth()?.id || "anon", [data, status] = useQuery(
|
|
98
98
|
checkFn,
|
|
99
|
-
{ objOrId },
|
|
99
|
+
{ objOrId, _uid },
|
|
100
100
|
{ enabled: !!(!disableMode && enabled && objOrId && checkFn) }
|
|
101
101
|
);
|
|
102
102
|
if (debug && console.info("usePermission()", { table, objOrId, data, status }), !objOrId) return !1;
|
|
@@ -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,sBAA6C;AACtD,SAAS,sBAAsB;AAC/B,SAAS,eAAe;AACxB,SAAS,4BAA4B,+BAA+B;AACpE,SAAS,qBAAqB;AAC9B,SAAS,oBAAuC;AAChD,SAAS,wBAAwB;AACjC,SAAS,aAAa,gBAAgB,iBAAiB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["zeroEvents"]
|
|
6
6
|
}
|
|
@@ -10,7 +10,7 @@ import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegi
|
|
|
10
10
|
import { registerQuery } from "./queryRegistry.mjs";
|
|
11
11
|
import { resolveQuery } from "./resolveQuery.mjs";
|
|
12
12
|
import { setCustomQueries } from "./run.mjs";
|
|
13
|
-
import { setAuthData, setEnvironment, setSchema } from "./state.mjs";
|
|
13
|
+
import { getEnvironment, setAuthData, setEnvironment, setSchema } from "./state.mjs";
|
|
14
14
|
import { getRawWhere, setEvaluatingPermission } from "./where.mjs";
|
|
15
15
|
import { setRunner } from "./zeroRunner.mjs";
|
|
16
16
|
import { zql } from "./zql.mjs";
|
|
@@ -21,7 +21,7 @@ function createZeroClient({
|
|
|
21
21
|
groupedQueries,
|
|
22
22
|
permissionStrategy = "optimistic"
|
|
23
23
|
}) {
|
|
24
|
-
setSchema(schema), setEnvironment("client");
|
|
24
|
+
setSchema(schema), getEnvironment() === null && setEnvironment("client");
|
|
25
25
|
const permissionsHelpers = createPermissions({
|
|
26
26
|
schema,
|
|
27
27
|
environment: "client"
|
|
@@ -81,8 +81,10 @@ function createZeroClient({
|
|
|
81
81
|
const disableMode = use(DisabledContext),
|
|
82
82
|
lastRef = useRef(null),
|
|
83
83
|
checkFn = permissionCheckFns[table],
|
|
84
|
+
_uid = getAuth()?.id || "anon",
|
|
84
85
|
[data, status] = useQuery(checkFn, {
|
|
85
|
-
objOrId
|
|
86
|
+
objOrId,
|
|
87
|
+
_uid
|
|
86
88
|
}, {
|
|
87
89
|
enabled: !!(!disableMode && enabled && objOrId && checkFn)
|
|
88
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setEnvironment","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","disableMode","lastRef","checkFn","data","status","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","value","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","reason","message","emit","preload","fnArg","paramsOrOptions","optionsArg","hasParams","params","queryRequest","getQuery","ControlQueries","action","whenDisabled","mode"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,EAAeC,WAAA,QAAmB;AAC3C,SAASC,kBAAA,EAAoBC,OAAA,EAASC,YAAA,QAAoB;AAC1D,SAASC,aAAA,QAAqB;AAC9B,SACEC,aAAA,EACAC,IAAA,EACAC,GAAA,EACAC,SAAA,EACAC,OAAA,EACAC,MAAA,QAEK;AAEP,SAASC,iBAAA,QAAyB;AAClC,SAASC,cAAA,QAA6C;AACtD,SAASC,cAAA,QAAsB;AAC/B,SAASC,OAAA,QAAe;AACxB,SAASC,0BAAA,EAA4BC,uBAAA,QAA+B;AACpE,SAASC,aAAA,QAAqB;AAC9B,SAASC,YAAA,QAAuC;AAChD,SAASC,gBAAA,QAAwB;AACjC,SAASC,WAAA,EAAaC,cAAA,EAAgBC,SAAA,QAAiB;
|
|
1
|
+
{"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","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","disableMode","lastRef","checkFn","_uid","id","data","status","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","value","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","reason","message","emit","preload","fnArg","paramsOrOptions","optionsArg","hasParams","params","queryRequest","getQuery","ControlQueries","action","whenDisabled","mode"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -11,7 +11,7 @@ import { getAllMutationsPermissions, getMutationsPermissions } from "./modelRegi
|
|
|
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
|
-
import { setAuthData, setEnvironment, setSchema } from "./state.native.js";
|
|
14
|
+
import { getEnvironment, setAuthData, setEnvironment, setSchema } from "./state.native.js";
|
|
15
15
|
import { getRawWhere, setEvaluatingPermission } from "./where.native.js";
|
|
16
16
|
import { setRunner } from "./zeroRunner.native.js";
|
|
17
17
|
import { zql } from "./zql.native.js";
|
|
@@ -22,7 +22,7 @@ function createZeroClient(param) {
|
|
|
22
22
|
groupedQueries,
|
|
23
23
|
permissionStrategy = "optimistic"
|
|
24
24
|
} = param;
|
|
25
|
-
setSchema(schema), setEnvironment("client");
|
|
25
|
+
setSchema(schema), getEnvironment() === null && setEnvironment("client");
|
|
26
26
|
var permissionsHelpers = createPermissions({
|
|
27
27
|
schema,
|
|
28
28
|
environment: "client"
|
|
@@ -145,8 +145,11 @@ function createZeroClient(param) {
|
|
|
145
145
|
lastRef = useRef(null),
|
|
146
146
|
tableStr = table,
|
|
147
147
|
checkFn = permissionCheckFns[tableStr],
|
|
148
|
+
auth = getAuth(),
|
|
149
|
+
_uid = auth?.id || "anon",
|
|
148
150
|
[data, status] = useQuery(checkFn, {
|
|
149
|
-
objOrId
|
|
151
|
+
objOrId,
|
|
152
|
+
_uid
|
|
150
153
|
}, {
|
|
151
154
|
enabled: !!(!disableMode && enabled && objOrId && checkFn)
|
|
152
155
|
});
|
|
@@ -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","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setEnvironment","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","disableMode","lastRef","tableStr","checkFn","data","status","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","reason"
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getAuth","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","getEnvironment","setAuthData","setEnvironment","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","disableMode","lastRef","tableStr","checkFn","auth","_uid","id","data","status","console","info","result","type","current","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zeroInstance","query","options","run","zeroEvents2","state","prevState","reason"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,6 +16,7 @@ import { runWithQueryContext } from "./helpers/queryContext";
|
|
|
16
16
|
import { getMutationsPermissions } from "./modelRegistry";
|
|
17
17
|
import { setCustomQueries } from "./run";
|
|
18
18
|
import { getZQL, setEnvironment, setSchema } from "./state";
|
|
19
|
+
import { setEvaluatingPermission } from "./where";
|
|
19
20
|
import { setRunner } from "./zeroRunner";
|
|
20
21
|
function createZeroServer({
|
|
21
22
|
createServerActions,
|
|
@@ -90,13 +91,18 @@ function createZeroServer({
|
|
|
90
91
|
const table = name.slice(11), { objOrId } = args, perm = getMutationsPermissions(table);
|
|
91
92
|
if (!perm)
|
|
92
93
|
throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
eb
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
setEvaluatingPermission(!0);
|
|
95
|
+
try {
|
|
96
|
+
return getZQL()[table].where((eb) => permissions.buildPermissionQuery(
|
|
97
|
+
authData,
|
|
98
|
+
eb,
|
|
99
|
+
perm,
|
|
100
|
+
objOrId,
|
|
101
|
+
table
|
|
102
|
+
)).one();
|
|
103
|
+
} finally {
|
|
104
|
+
setEvaluatingPermission(!1);
|
|
105
|
+
}
|
|
100
106
|
}
|
|
101
107
|
return validateQuery && validateQuery({ authData, queryName: name, params: args }), mustGetQuery(queries, name).fn({ args, ctx: authData });
|
|
102
108
|
},
|