over-zero 0.0.5 → 0.0.6
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/createPermissions.cjs +3 -3
- package/dist/cjs/createPermissions.js +3 -3
- package/dist/cjs/createPermissions.js.map +1 -1
- package/dist/cjs/createPermissions.native.js +6 -3
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +3 -8
- package/dist/cjs/createZeroClient.js +4 -6
- package/dist/cjs/createZeroClient.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +4 -6
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +18 -16
- package/dist/cjs/createZeroServer.js +18 -14
- package/dist/cjs/createZeroServer.js.map +2 -2
- package/dist/cjs/createZeroServer.native.js +20 -14
- package/dist/cjs/createZeroServer.native.js.map +2 -2
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/mutations.js.map +1 -1
- package/dist/esm/createPermissions.js +3 -3
- package/dist/esm/createPermissions.js.map +1 -1
- package/dist/esm/createPermissions.mjs +3 -3
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +6 -3
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createZeroClient.js +5 -7
- package/dist/esm/createZeroClient.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +4 -9
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +4 -9
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +18 -14
- package/dist/esm/createZeroServer.js.map +2 -2
- package/dist/esm/createZeroServer.mjs +18 -16
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +20 -16
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/mutations.js.map +1 -1
- package/dist/esm/mutations.mjs.map +1 -1
- package/dist/esm/mutations.native.js.map +1 -1
- package/package.json +2 -2
- package/src/createPermissions.ts +46 -39
- package/src/createZeroClient.tsx +7 -7
- package/src/createZeroServer.ts +28 -20
- package/src/helpers/createMutators.ts +4 -3
- package/src/mutations.ts +3 -6
- package/src/types.ts +19 -8
- package/types/createPermissions.d.ts +2 -2
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +1 -1
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts +2 -2
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/mutations.d.ts +1 -1
- package/types/mutations.d.ts.map +1 -1
- package/types/types.d.ts +7 -4
- package/types/types.d.ts.map +1 -1
|
@@ -60,12 +60,12 @@ function createPermissions({
|
|
|
60
60
|
}
|
|
61
61
|
return eb.and(permissionCondition, ...primaryKeyWheres);
|
|
62
62
|
}
|
|
63
|
-
async
|
|
63
|
+
const can = async (where, action, obj) => {
|
|
64
64
|
const ctx = getContext(),
|
|
65
65
|
tableName = (0, import_where.getWhereTableName)(where);
|
|
66
66
|
if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
|
|
67
67
|
environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), ctx.didCanPermissionsRun = !0);
|
|
68
|
-
}
|
|
68
|
+
};
|
|
69
69
|
async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
|
|
70
70
|
if (authData?.role === "admin") return;
|
|
71
71
|
const action = String(actionIn),
|
|
@@ -86,7 +86,7 @@ ${err}`);
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
const readPermissions = (0, import_zero.definePermissions)(schema, async () => {
|
|
89
|
-
const permissionsEntries = await Promise.all((0, import_helpers.objectEntries)(models).map(async ([key, model]) => await (0, import_context.runWithContext)({
|
|
89
|
+
const permissionsEntries = await Promise.all((0, import_helpers.objectEntries)(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await (0, import_context.runWithContext)({
|
|
90
90
|
authData: {
|
|
91
91
|
id: "",
|
|
92
92
|
role: void 0,
|
|
@@ -52,7 +52,7 @@ function createPermissions({
|
|
|
52
52
|
}
|
|
53
53
|
return eb.and(permissionCondition, ...primaryKeyWheres);
|
|
54
54
|
}
|
|
55
|
-
async
|
|
55
|
+
const can = async (where, action, obj) => {
|
|
56
56
|
const ctx = getContext(), tableName = (0, import_where.getWhereTableName)(where);
|
|
57
57
|
if (!tableName)
|
|
58
58
|
throw new Error("Must use where('table') style where to pass to can()");
|
|
@@ -64,7 +64,7 @@ function createPermissions({
|
|
|
64
64
|
action,
|
|
65
65
|
obj
|
|
66
66
|
), ctx.didCanPermissionsRun = !0);
|
|
67
|
-
}
|
|
67
|
+
};
|
|
68
68
|
async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
|
|
69
69
|
if (authData?.role === "admin")
|
|
70
70
|
return;
|
|
@@ -85,7 +85,7 @@ ${err}`);
|
|
|
85
85
|
}
|
|
86
86
|
const readPermissions = (0, import_zero.definePermissions)(schema, async () => {
|
|
87
87
|
const permissionsEntries = await Promise.all(
|
|
88
|
-
(0, import_helpers.objectEntries)(models).map(async ([key, model]) => await (0, import_context.runWithContext)(
|
|
88
|
+
(0, import_helpers.objectEntries)(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await (0, import_context.runWithContext)(
|
|
89
89
|
{
|
|
90
90
|
authData: { id: "", role: void 0, email: "" }
|
|
91
91
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createPermissions.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,kBAA8C,2BAC9C,iBAAmD,0BACnD,iBAA+B,8BAC/B,+BAAsC,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -59,12 +59,12 @@ function createPermissions(param) {
|
|
|
59
59
|
}
|
|
60
60
|
return eb.and(permissionCondition, ...primaryKeyWheres);
|
|
61
61
|
}
|
|
62
|
-
async function
|
|
62
|
+
var can = async function(where, action, obj) {
|
|
63
63
|
var ctx = getContext(), tableName = (0, import_where.getWhereTableName)(where);
|
|
64
64
|
if (!tableName)
|
|
65
65
|
throw new Error("Must use where('table') style where to pass to can()");
|
|
66
66
|
environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), ctx.didCanPermissionsRun = !0);
|
|
67
|
-
}
|
|
67
|
+
};
|
|
68
68
|
async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
|
|
69
69
|
if ((authData == null ? void 0 : authData.role) !== "admin") {
|
|
70
70
|
var action = String(actionIn), name = `${tableName}.${action}`, queryBase = tx.query[tableName], query = null;
|
|
@@ -85,7 +85,10 @@ ${err}`);
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
var readPermissions = (0, import_zero.definePermissions)(schema, async function() {
|
|
88
|
-
var permissionsEntries = await Promise.all((0, import_helpers.objectEntries)(models).
|
|
88
|
+
var permissionsEntries = await Promise.all((0, import_helpers.objectEntries)(models).filter(function(param2) {
|
|
89
|
+
var [_, model] = param2;
|
|
90
|
+
return !!model.permissions;
|
|
91
|
+
}).map(async function(param2) {
|
|
89
92
|
var [key, model] = param2;
|
|
90
93
|
return await (0, import_context.runWithContext)({
|
|
91
94
|
authData: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createPermissions.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA8C,2BAC9C,iBAAmD,0BACnD,iBAA+B,8BAC/B,+BAAsC,4CACtC,eAAkC;AAC3B,SAAS,kBAAkB,OAAO;AACrC,MAAI,EAAE,aAAa,QAAQ,QAAQ,WAAW,IAAI,OAC9C,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,EACZ;AACA,WAAS,qBAAqB,UAAU,IAAI,iBAAiB,QAC7D,SAAS;AACL,QAAI,gBAAY,gCAAkB,eAAe;AACjD,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,mDAAmD;AAEvE,QAAI,cAAc,OAAO,OAAO,SAAS;AACzC,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,YAAY;AAEhC,QAAI,cAAc,YAAY,YAC1B,yBAAyB,gBAAgB,IAAI,QAAQ,GACrD,iBAAiB,gBAAgB,MAAM,GACvC,sBAAsB,uBAAuB,MAAM,MAAM,iBAAiB,uBAAuB,cAAc,IAAI;AACvH,QAAI,uBAAuB;AACvB,YAAM,IAAI,MAAM,6BAA6B,MAAM,QAAQ,cAAc,GAAG;AAEhF,QAAI,wBAAwB;AACxB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAEpC,QAAI,wBAAwB;AACxB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAK;AAErC,QAAI,mBAAmB,CAAC,GACpB,4BAA4B,IAAM,oBAAoB,IAAO,iBAAiB;AAClF,QAAI;AACA,eAAQ,YAAY,YAAY,OAAO,QAAQ,EAAE,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,GAAG,OAAO,4BAA4B,IAAK;AACxJ,YAAI,MAAM,MAAM,OACZ,QAAQ,OAAO,WAAY,WAAW,UAAU,QAAQ,GAAG;AAC/D,yBAAiB,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC;AAAA,MAC5C;AAAA,IACJ,SAAS,KAAK;AACV,0BAAoB,IACpB,iBAAiB;AAAA,IACrB,UAAE;AACE,UAAI;AACA,QAAI,CAAC,6BAA6B,UAAU,UAAU,QAClD,UAAU,OAAO;AAAA,MAEzB,UAAE;AACE,YAAI;AACA,gBAAM;AAAA,MAEd;AAAA,IACJ;AACA,WAAO,GAAG,IAAI,qBAAqB,GAAG,gBAAgB;AAAA,EAC1D;AACA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["param"]
|
|
6
6
|
}
|
|
@@ -50,24 +50,19 @@ function createZeroClient({
|
|
|
50
50
|
getContext: import_context.context,
|
|
51
51
|
environment: "client"
|
|
52
52
|
}),
|
|
53
|
-
permissionCache = (0, import_helpers.createLocalStorage)("permissions-cache", {
|
|
54
|
-
storageLimit: 24
|
|
55
|
-
}),
|
|
56
53
|
zeroEvents = (0, import_helpers.createEmitter)("zero", null),
|
|
57
54
|
AuthDataContext = (0, import_react2.createContext)({}),
|
|
58
55
|
useAuthData = () => (0, import_react2.use)(AuthDataContext);
|
|
59
56
|
function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
60
|
-
const
|
|
61
|
-
key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
|
|
62
|
-
cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase),
|
|
57
|
+
const key = `${`${String(table)}${action}`}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
|
|
63
58
|
authData = useAuthData(),
|
|
64
59
|
permission = modelPermissions[table],
|
|
65
60
|
query = (() => {
|
|
66
61
|
let baseQuery = zero.query[table].one();
|
|
67
|
-
return enabled ? baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId))
|
|
62
|
+
return !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId));
|
|
68
63
|
})(),
|
|
69
64
|
[data, status] = useQuery(query, {
|
|
70
|
-
enabled: !!(enabled && authData && objOrId)
|
|
65
|
+
enabled: !!(enabled && permission && authData && objOrId)
|
|
71
66
|
});
|
|
72
67
|
debug && console.info("usePermission()", {
|
|
73
68
|
data,
|
|
@@ -30,21 +30,19 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
30
30
|
models,
|
|
31
31
|
getContext: import_context.context,
|
|
32
32
|
environment: "client"
|
|
33
|
-
}), permissionCache = (0, import_helpers.createLocalStorage)("permissions-cache", {
|
|
34
|
-
storageLimit: 24
|
|
35
33
|
}), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = (0, import_react2.createContext)({}), useAuthData = () => (0, import_react2.use)(AuthDataContext);
|
|
36
34
|
function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
37
|
-
const
|
|
35
|
+
const key = `${`${String(table)}${action}`}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, authData = useAuthData(), permission = modelPermissions[table], query = (() => {
|
|
38
36
|
let baseQuery = zero.query[table].one();
|
|
39
|
-
return enabled ? baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
37
|
+
return !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
40
38
|
authData,
|
|
41
39
|
eb,
|
|
42
40
|
permission,
|
|
43
41
|
action,
|
|
44
42
|
objOrId
|
|
45
|
-
))
|
|
43
|
+
));
|
|
46
44
|
})(), [data, status] = useQuery(query, {
|
|
47
|
-
enabled: !!(enabled && authData && objOrId)
|
|
45
|
+
enabled: !!(enabled && permission && authData && objOrId)
|
|
48
46
|
});
|
|
49
47
|
debug && console.info(
|
|
50
48
|
"usePermission()",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAgE,iCAChE,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["import_react", "zeroUseQuery", "zero"]
|
|
6
6
|
}
|
|
@@ -31,19 +31,17 @@ function createZeroClient(param) {
|
|
|
31
31
|
models,
|
|
32
32
|
getContext: import_context.context,
|
|
33
33
|
environment: "client"
|
|
34
|
-
}), permissionCache = (0, import_helpers.createLocalStorage)("permissions-cache", {
|
|
35
|
-
storageLimit: 24
|
|
36
34
|
}), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = /* @__PURE__ */ (0, import_react2.createContext)({}), useAuthData = function() {
|
|
37
35
|
return (0, import_react2.use)(AuthDataContext);
|
|
38
36
|
};
|
|
39
37
|
function usePermission(table, action, objOrId) {
|
|
40
|
-
var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : typeof objOrId < "u", debug = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1, keyBase = `${String(table)}${action}`, key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
|
|
38
|
+
var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : typeof objOrId < "u", debug = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1, keyBase = `${String(table)}${action}`, key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, authData = useAuthData(), permission = modelPermissions[table], query = (function() {
|
|
41
39
|
var baseQuery = zero.query[table].one();
|
|
42
|
-
return enabled ? baseQuery.where(function(eb) {
|
|
40
|
+
return !enabled || !permission ? baseQuery : baseQuery.where(function(eb) {
|
|
43
41
|
return permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId);
|
|
44
|
-
})
|
|
42
|
+
});
|
|
45
43
|
})(), [data, status] = useQuery(query, {
|
|
46
|
-
enabled: !!(enabled && authData && objOrId)
|
|
44
|
+
enabled: !!(enabled && permission && authData && objOrId)
|
|
47
45
|
});
|
|
48
46
|
debug && console.info("usePermission()", {
|
|
49
47
|
data,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA2C,8BAC3C,eAAgE,iCAChE,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["import_react", "zeroUseQuery", "param", "_jsx", "_jsxs", "zero"]
|
|
6
6
|
}
|
|
@@ -83,7 +83,7 @@ function createZeroServer({
|
|
|
83
83
|
asyncTasks
|
|
84
84
|
};
|
|
85
85
|
},
|
|
86
|
-
|
|
86
|
+
mutate = async (run, authData) => {
|
|
87
87
|
const asyncTasks = [],
|
|
88
88
|
mutators = (0, import_createMutators.createMutators)({
|
|
89
89
|
models,
|
|
@@ -98,34 +98,36 @@ function createZeroServer({
|
|
|
98
98
|
createServerActions,
|
|
99
99
|
can: permissions.can
|
|
100
100
|
});
|
|
101
|
-
await
|
|
101
|
+
await transaction(async tx => {
|
|
102
102
|
await run(tx, mutators);
|
|
103
103
|
}), await Promise.all(asyncTasks.map(t => t()));
|
|
104
|
-
},
|
|
105
|
-
serverQuery = serverTransaction,
|
|
106
|
-
dummyTransactionInput = {
|
|
107
|
-
clientGroupID: "unused",
|
|
108
|
-
clientID: "unused",
|
|
109
|
-
mutationID: 42,
|
|
110
|
-
upstreamSchema: "unused"
|
|
111
104
|
};
|
|
112
|
-
async function
|
|
105
|
+
async function transaction(query2) {
|
|
113
106
|
try {
|
|
114
107
|
if ((0, import_context.isInZeroMutation)()) {
|
|
115
108
|
const {
|
|
116
109
|
tx
|
|
117
110
|
} = (0, import_context.context)();
|
|
118
|
-
return await
|
|
111
|
+
return await query2(tx);
|
|
119
112
|
}
|
|
120
|
-
return await zeroServerDatabase.transaction(
|
|
113
|
+
return await zeroServerDatabase.transaction(query2, dummyTransactionInput);
|
|
121
114
|
} catch (err) {
|
|
122
|
-
throw console.error(`Error running
|
|
115
|
+
throw console.error(`Error running transaction(): ${err}`), err;
|
|
123
116
|
}
|
|
124
117
|
}
|
|
118
|
+
async function query(cb) {
|
|
119
|
+
return await transaction(async tx => await cb(tx.query));
|
|
120
|
+
}
|
|
121
|
+
const dummyTransactionInput = {
|
|
122
|
+
clientGroupID: "unused",
|
|
123
|
+
clientID: "unused",
|
|
124
|
+
mutationID: 42,
|
|
125
|
+
upstreamSchema: "unused"
|
|
126
|
+
};
|
|
125
127
|
return {
|
|
126
128
|
handleMutationRequest,
|
|
127
|
-
transaction
|
|
128
|
-
mutate
|
|
129
|
-
query
|
|
129
|
+
transaction,
|
|
130
|
+
mutate,
|
|
131
|
+
query
|
|
130
132
|
};
|
|
131
133
|
}
|
|
@@ -64,7 +64,7 @@ function createZeroServer({
|
|
|
64
64
|
response,
|
|
65
65
|
asyncTasks
|
|
66
66
|
};
|
|
67
|
-
},
|
|
67
|
+
}, mutate = async (run, authData) => {
|
|
68
68
|
const asyncTasks = [], mutators = (0, import_createMutators.createMutators)({
|
|
69
69
|
models,
|
|
70
70
|
environment: "server",
|
|
@@ -78,31 +78,35 @@ function createZeroServer({
|
|
|
78
78
|
createServerActions,
|
|
79
79
|
can: permissions.can
|
|
80
80
|
});
|
|
81
|
-
await
|
|
81
|
+
await transaction(async (tx) => {
|
|
82
82
|
await run(tx, mutators);
|
|
83
83
|
}), await Promise.all(asyncTasks.map((t) => t()));
|
|
84
|
-
}, serverQuery = serverTransaction, dummyTransactionInput = {
|
|
85
|
-
clientGroupID: "unused",
|
|
86
|
-
clientID: "unused",
|
|
87
|
-
mutationID: 42,
|
|
88
|
-
upstreamSchema: "unused"
|
|
89
84
|
};
|
|
90
|
-
async function
|
|
85
|
+
async function transaction(query2) {
|
|
91
86
|
try {
|
|
92
87
|
if ((0, import_context.isInZeroMutation)()) {
|
|
93
88
|
const { tx } = (0, import_context.context)();
|
|
94
|
-
return await
|
|
89
|
+
return await query2(tx);
|
|
95
90
|
}
|
|
96
|
-
return await zeroServerDatabase.transaction(
|
|
91
|
+
return await zeroServerDatabase.transaction(query2, dummyTransactionInput);
|
|
97
92
|
} catch (err) {
|
|
98
|
-
throw console.error(`Error running
|
|
93
|
+
throw console.error(`Error running transaction(): ${err}`), err;
|
|
99
94
|
}
|
|
100
95
|
}
|
|
96
|
+
async function query(cb) {
|
|
97
|
+
return await transaction(async (tx) => await cb(tx.query));
|
|
98
|
+
}
|
|
99
|
+
const dummyTransactionInput = {
|
|
100
|
+
clientGroupID: "unused",
|
|
101
|
+
clientID: "unused",
|
|
102
|
+
mutationID: 42,
|
|
103
|
+
upstreamSchema: "unused"
|
|
104
|
+
};
|
|
101
105
|
return {
|
|
102
106
|
handleMutationRequest,
|
|
103
|
-
transaction
|
|
104
|
-
mutate
|
|
105
|
-
query
|
|
107
|
+
transaction,
|
|
108
|
+
mutate,
|
|
109
|
+
query
|
|
106
110
|
};
|
|
107
111
|
}
|
|
108
112
|
//# sourceMappingURL=createZeroServer.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gBAAoD,8BACpD,gBAA4B,kCAC5B,iBAAuC,0BACvC,kBAAqB,iCACrB,2BAAkC,gCAClC,iBAA0C,8BAC1C,wBAA+B;AASxB,SAAS,iBAId;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,eAAW,6BAAa,QAAQ,IAAI,gBAAgB,GAEpD,qBAAqB,IAAI;AAAA,IAC7B,IAAI,mCAAqB,gBAAAA,SAAS,QAAQ,CAAC;AAAA,IAC3C;AAAA,EACF,GAEM,kBAAc,4CAA0B;AAAA,IAC5C,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd,CAAC,GAEK,YAAY,IAAI,wBAAc,kBAAkB,GAEhD,wBAAwB,OAAO;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAIM;AAEJ,UAAM,aAA4B,CAAC,GAE7B,eAAW,sCAAe;AAAA,MAC9B;AAAA,MACA,KAAK,YAAY;AAAA,MACjB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF,CAAC,GAGK,WAAW,MAAM,UAAU,QAAQ,UAAU,OAAO;AAG1D,QAAI,CAAC,kBAAkB,WAAW,QAAQ;AACxC,YAAM,SAAK,yBAAS;AACpB,cAAQ,KAAK,wCAAwC,WAAW,MAAM,OAAO,EAAE,EAAE,GACjF,QAAQ,IAAI,WAAW,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EACzC,KAAK,MAAM;AACV,gBAAQ,KAAK,+BAA+B,EAAE,EAAE;AAAA,MAClD,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,gBAAQ,MAAM,8CAAuC,GAAG;AAAA,MAC1D,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAEM,
|
|
5
|
-
"names": ["postgres"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,gBAAoD,8BACpD,gBAA4B,kCAC5B,iBAAuC,0BACvC,kBAAqB,iCACrB,2BAAkC,gCAClC,iBAA0C,8BAC1C,wBAA+B;AASxB,SAAS,iBAId;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,eAAW,6BAAa,QAAQ,IAAI,gBAAgB,GAEpD,qBAAqB,IAAI;AAAA,IAC7B,IAAI,mCAAqB,gBAAAA,SAAS,QAAQ,CAAC;AAAA,IAC3C;AAAA,EACF,GAEM,kBAAc,4CAA0B;AAAA,IAC5C,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd,CAAC,GAEK,YAAY,IAAI,wBAAc,kBAAkB,GAEhD,wBAAwB,OAAO;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAIM;AAEJ,UAAM,aAA4B,CAAC,GAE7B,eAAW,sCAAe;AAAA,MAC9B;AAAA,MACA,KAAK,YAAY;AAAA,MACjB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF,CAAC,GAGK,WAAW,MAAM,UAAU,QAAQ,UAAU,OAAO;AAG1D,QAAI,CAAC,kBAAkB,WAAW,QAAQ;AACxC,YAAM,SAAK,yBAAS;AACpB,cAAQ,KAAK,wCAAwC,WAAW,MAAM,OAAO,EAAE,EAAE,GACjF,QAAQ,IAAI,WAAW,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EACzC,KAAK,MAAM;AACV,gBAAQ,KAAK,+BAA+B,EAAE,EAAE;AAAA,MAClD,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,gBAAQ,MAAM,8CAAuC,GAAG;AAAA,MAC1D,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAEM,SAAS,OACb,KACA,aACG;AACH,UAAM,aAAyC,CAAC,GAE1C,eAAW,sCAAe;AAAA,MAC9B;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,UAAU;AAAA,QACR,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAM;AAAA,QACN,GAAG;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK,YAAY;AAAA,IACnB,CAAC;AAED,UAAM,YAAY,OAAO,OAAO;AAC9B,YAAM,IAAI,IAAI,QAAQ;AAAA,IACxB,CAAC,GAED,MAAM,QAAQ,IAAI,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAAA,EAC9C;AAEA,iBAAe,YAGbC,QAA6B;AAC7B,QAAI;AACF,cAAI,iCAAiB,GAAG;AACtB,cAAM,EAAE,GAAG,QAAI,wBAAQ;AACvB,eAAO,MAAMA,OAAM,EAAE;AAAA,MACvB;AAGA,aADe,MAAM,mBAAmB,YAAYA,QAAO,qBAAqB;AAAA,IAElF,SAAS,KAAK;AACZ,oBAAQ,MAAM,gCAAgC,GAAG,EAAE,GAC7C;AAAA,IACR;AAAA,EACF;AAMA,iBAAe,MACb,IAC+B;AAC/B,WAAO,MAAM,YAAY,OAAO,OACvB,MAAM,GAAG,GAAG,KAAK,CACzB;AAAA,EACH;AAGA,QAAM,wBAAkD;AAAA,IACtD,eAAe;AAAA,IACf,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
+
"names": ["postgres", "query"]
|
|
6
6
|
}
|
|
@@ -56,7 +56,7 @@ function createZeroServer(param) {
|
|
|
56
56
|
response,
|
|
57
57
|
asyncTasks
|
|
58
58
|
};
|
|
59
|
-
},
|
|
59
|
+
}, mutate = async function(run, authData) {
|
|
60
60
|
var asyncTasks = [], mutators = (0, import_createMutators.createMutators)({
|
|
61
61
|
models,
|
|
62
62
|
environment: "server",
|
|
@@ -70,34 +70,40 @@ function createZeroServer(param) {
|
|
|
70
70
|
createServerActions,
|
|
71
71
|
can: permissions.can
|
|
72
72
|
});
|
|
73
|
-
await
|
|
73
|
+
await transaction(async function(tx) {
|
|
74
74
|
await run(tx, mutators);
|
|
75
75
|
}), await Promise.all(asyncTasks.map(function(t) {
|
|
76
76
|
return t();
|
|
77
77
|
}));
|
|
78
|
-
}, serverQuery = serverTransaction, dummyTransactionInput = {
|
|
79
|
-
clientGroupID: "unused",
|
|
80
|
-
clientID: "unused",
|
|
81
|
-
mutationID: 42,
|
|
82
|
-
upstreamSchema: "unused"
|
|
83
78
|
};
|
|
84
|
-
async function
|
|
79
|
+
async function transaction(query2) {
|
|
85
80
|
try {
|
|
86
81
|
if ((0, import_context.isInZeroMutation)()) {
|
|
87
82
|
var { tx } = (0, import_context.context)();
|
|
88
|
-
return await
|
|
83
|
+
return await query2(tx);
|
|
89
84
|
}
|
|
90
|
-
var output = await zeroServerDatabase.transaction(
|
|
85
|
+
var output = await zeroServerDatabase.transaction(query2, dummyTransactionInput);
|
|
91
86
|
return output;
|
|
92
87
|
} catch (err) {
|
|
93
|
-
throw console.error(`Error running
|
|
88
|
+
throw console.error(`Error running transaction(): ${err}`), err;
|
|
94
89
|
}
|
|
95
90
|
}
|
|
91
|
+
async function query(cb) {
|
|
92
|
+
return await transaction(async function(tx) {
|
|
93
|
+
return await cb(tx.query);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
var dummyTransactionInput = {
|
|
97
|
+
clientGroupID: "unused",
|
|
98
|
+
clientID: "unused",
|
|
99
|
+
mutationID: 42,
|
|
100
|
+
upstreamSchema: "unused"
|
|
101
|
+
};
|
|
96
102
|
return {
|
|
97
103
|
handleMutationRequest,
|
|
98
|
-
transaction
|
|
99
|
-
mutate
|
|
100
|
-
query
|
|
104
|
+
transaction,
|
|
105
|
+
mutate,
|
|
106
|
+
query
|
|
101
107
|
};
|
|
102
108
|
}
|
|
103
109
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAoD,8BACpD,gBAA4B,kCAC5B,iBAAuC,0BACvC,kBAAqB,iCACrB,2BAAkC,gCAClC,iBAA0C,8BAC1C,wBAA+B;AACxB,SAAS,iBAAiB,OAAO;AACpC,MAAI,EAAE,qBAAqB,QAAQ,OAAO,IAAI,OAC1C,eAAW,6BAAa,QAAQ,IAAI,gBAAgB,GACpD,qBAAqB,IAAI,0BAAY,IAAI,mCAAqB,gBAAAA,SAAS,QAAQ,CAAC,GAAG,MAAM,GACzF,kBAAc,4CAAkB;AAAA,IAChC,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAChB,CAAC,GACG,YAAY,IAAI,wBAAc,kBAAkB,GAChD,wBAAwB,eAAeC,QAAO;AAC9C,QAAI,EAAE,UAAU,SAAS,eAAe,IAAIA,QAExC,aAAa,CAAC,GACd,eAAW,sCAAe;AAAA,MAC1B;AAAA,MACA,KAAK,YAAY;AAAA,MACjB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ,CAAC,GAEG,WAAW,MAAM,UAAU,QAAQ,UAAU,OAAO;AAExD,QAAI,CAAC,kBAAkB,WAAW,QAAQ;AACtC,UAAI,SAAK,yBAAS;AAClB,cAAQ,KAAK,wCAAwC,WAAW,MAAM,OAAO,EAAE,EAAE,GACjF,QAAQ,IAAI,WAAW,IAAI,SAAS,MAAM;AACtC,eAAO,KAAK;AAAA,MAChB,CAAC,CAAC,EAAE,KAAK,WAAW;AAChB,gBAAQ,KAAK,+BAA+B,EAAE,EAAE;AAAA,MACpD,CAAC,EAAE,MAAM,SAAS,KAAK;AACnB,gBAAQ,MAAM,8CAAuC,GAAG;AAAA,MAC5D,CAAC;AAAA,IACL;AACA,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ,GACI,
|
|
5
|
-
"names": ["postgres", "param"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAoD,8BACpD,gBAA4B,kCAC5B,iBAAuC,0BACvC,kBAAqB,iCACrB,2BAAkC,gCAClC,iBAA0C,8BAC1C,wBAA+B;AACxB,SAAS,iBAAiB,OAAO;AACpC,MAAI,EAAE,qBAAqB,QAAQ,OAAO,IAAI,OAC1C,eAAW,6BAAa,QAAQ,IAAI,gBAAgB,GACpD,qBAAqB,IAAI,0BAAY,IAAI,mCAAqB,gBAAAA,SAAS,QAAQ,CAAC,GAAG,MAAM,GACzF,kBAAc,4CAAkB;AAAA,IAChC,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EAChB,CAAC,GACG,YAAY,IAAI,wBAAc,kBAAkB,GAChD,wBAAwB,eAAeC,QAAO;AAC9C,QAAI,EAAE,UAAU,SAAS,eAAe,IAAIA,QAExC,aAAa,CAAC,GACd,eAAW,sCAAe;AAAA,MAC1B;AAAA,MACA,KAAK,YAAY;AAAA,MACjB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACJ,CAAC,GAEG,WAAW,MAAM,UAAU,QAAQ,UAAU,OAAO;AAExD,QAAI,CAAC,kBAAkB,WAAW,QAAQ;AACtC,UAAI,SAAK,yBAAS;AAClB,cAAQ,KAAK,wCAAwC,WAAW,MAAM,OAAO,EAAE,EAAE,GACjF,QAAQ,IAAI,WAAW,IAAI,SAAS,MAAM;AACtC,eAAO,KAAK;AAAA,MAChB,CAAC,CAAC,EAAE,KAAK,WAAW;AAChB,gBAAQ,KAAK,+BAA+B,EAAE,EAAE;AAAA,MACpD,CAAC,EAAE,MAAM,SAAS,KAAK;AACnB,gBAAQ,MAAM,8CAAuC,GAAG;AAAA,MAC5D,CAAC;AAAA,IACL;AACA,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ,GACI,SAAS,eAAe,KAAK,UAAU;AACvC,QAAI,aAAa,CAAC,GACd,eAAW,sCAAe;AAAA,MAC1B;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,UAAU;AAAA,QACN,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAM;AAAA,QACN,GAAG;AAAA,MACP;AAAA,MACA;AAAA,MACA,KAAK,YAAY;AAAA,IACrB,CAAC;AACD,UAAM,YAAY,eAAe,IAAI;AACjC,YAAM,IAAI,IAAI,QAAQ;AAAA,IAC1B,CAAC,GACD,MAAM,QAAQ,IAAI,WAAW,IAAI,SAAS,GAAG;AACzC,aAAO,EAAE;AAAA,IACb,CAAC,CAAC;AAAA,EACN;AACA,iBAAe,YAAYC,QAAO;AAC9B,QAAI;AACA,cAAI,iCAAiB,GAAG;AACpB,YAAI,EAAE,GAAG,QAAI,wBAAQ;AACrB,eAAO,MAAMA,OAAM,EAAE;AAAA,MACzB;AAEA,UAAI,SAAS,MAAM,mBAAmB,YAAYA,QAAO,qBAAqB;AAC9E,aAAO;AAAA,IACX,SAAS,KAAK;AACV,oBAAQ,MAAM,gCAAgC,GAAG,EAAE,GAC7C;AAAA,IACV;AAAA,EACJ;AACA,iBAAe,MAAM,IAAI;AACrB,WAAO,MAAM,YAAY,eAAe,IAAI;AACxC,aAAO,MAAM,GAAG,GAAG,KAAK;AAAA,IAC5B,CAAC;AAAA,EACL;AAEA,MAAI,wBAAwB;AAAA,IACxB,eAAe;AAAA,IACf,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,EACpB;AACA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;",
|
|
5
|
+
"names": ["postgres", "param", "query"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/createMutators.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoD,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoD,0BASpD,iBAA+B;AAExB,SAAS,eAA6C;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa,CAAC;AAAA,EACd;AAAA,EACA;AACF,GAO4B;AAC1B,QAAM,gBAAgB,sBAAsB,GAEtC,oBAAgB,0BAAU,QAAQ,CAAC,QAAQ,IAAI,MAAM;AAI3D,WAAS,YAAgC,IAAsC;AAC7E,WAAO,OAAO,OAAoB,SAA8B;AAC9D,YAAM,kBAAkC;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,aAAO,UAAM,+BAAe,iBAAiB,MAGpC,GAAG,iBAAiB,GAAG,IAAI,CACnC;AAAA,IACH;AAAA,EACF;AAEA,WAAS,uBACP,MACA,IACA;AACA,WAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,QAAQ,IAAI,aAClD,KAGF,UAAU,SAA8B;AAC7C,YAAM,YAAY,YAAY,IAAI;AAElC,UAAI;AACF,QAAI,2BACF,QAAQ,KAAK,aAAa,IAAI,QAAQ;AAExC,cAAM,SAAS,MAAM,GAAG,GAAG,IAAI,GACzB,YAAY,YAAY,IAAI,IAAI,WAAW,QAAQ,CAAC;AAC1D,eAAI,2BACF,QAAQ,eAAe,aAAa,IAAI,iBAAiB,QAAQ,IAAI,GACrE,QAAQ,KAAK,UAAK,KAAK,CAAC,CAAC,GACzB,QAAQ,KAAK,UAAK,MAAM,GACxB,QAAQ,MAAM,GACd,QAAQ,SAAS,KAGjB,QAAQ,KAAK,aAAa,IAAI,iBAAiB,QAAQ,IAAI,GAEtD;AAAA,MACT,SAAS,OAAO;AACd,cAAM,YAAY,YAAY,IAAI,IAAI,WAAW,QAAQ,CAAC;AAC1D,sBAAQ,eAAe,aAAa,IAAI,iBAAiB,QAAQ,IAAI,GACrE,QAAQ,MAAM,UAAU,KAAK,GAC7B,QAAQ,KAAK,cAAc,KAAK,UAAU,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,GAC3D,QAAQ,KAAK,gBAAgB,IAAI,MAAM,EAAE,KAAK,GAC9C,QAAQ,SAAS,GACX;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,WAAS,iBACP,MACA,IAGA,YAAoB,oBAAK,GAAG,QAAQ,CAAC,GACrC;AACA,WAAO,UAAU,SAA8B;AAC7C,YAAM,iBAAiB,IAAI,QAAe,CAAC,GAAG,WAAW;AACvD,mBAAW,MAAM;AACf,iBAAO,IAAI,MAAM,aAAa,IAAI,kBAAkB,SAAS,IAAI,CAAC;AAAA,QACpE,GAAG,SAAS;AAAA,MACd,CAAC;AAED,aAAO,QAAQ,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,cAAc,CAAC;AAAA,IACnD;AAAA,EACF;AAEA,WAAS,iBAAgE,SAAY;AACnF,UAAM,SAAc,CAAC;AAErB,eAAW,CAAC,YAAY,aAAa,KAAK,OAAO,QAAQ,OAAO,GAAG;AACjE,aAAO,UAAU,IAAI,CAAC;AACtB,iBAAW,CAAC,MAAM,WAAW,KAAK,OAAO,QAAQ,aAAa;AAC5D,YAAI,OAAO,eAAgB,YAAY;AACrC,gBAAM,WAAW,GAAG,UAAU,IAAI,IAAI;AACtC,iBAAO,UAAU,EAAE,IAAI,IAAI;AAAA,YACzB;AAAA,YACA,iBAAiB,UAAU,YAAY,WAAW,CAAC;AAAA,UACrD;AAAA,QACF;AAAA,IAEJ;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,iBAAiB,aAAa;AACvC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/mutations.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiEO,SAAS,UAGd,OAA0B,aAAqBA,YAAkC;AACjF,MAAI,aAAa;AACf,UAAM,YAAa,MAAgB,OAAO,MAEpC,qBAAqB,CAAC,WACnB,OAAO,KAAqB,QAAa;AAS9C,YAAM,2BAA2B,YAAY;AAC3C,QAAI,IAAI,wBAMJ,QAAQ,IAAI,qBAAqB,SACnC,MAAM,IAAI,IAAI,aAAa,QAAQ,GAAG;AAAA,MAE1C;AAEA,MAAI,WAAW,YACb,MAAM,yBAAyB;AAIjC,YAAM,WAAWA,aAAY,MAAM;AAEnC,MAAI,WACF,MAAM,SAAS,KAAK,GAAG,IAGvB,MAAM,IAAI,GAAG,OAAO,SAAsB,EAAG,MAAM,EAAE,GAAG,GAGtD,WAAW,YACb,MAAM,yBAAyB;AAAA,IAEnC,GAGI,gBAAoC;AAAA,MACxC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,MACnC,QAAQ,mBAAmB,QAAQ;AAAA,IACrC;AAEA,WAAO;AAAA,MACL,GAAGA;AAAA;AAAA,MAEH,GAAG;AAAA,IACL;AAAA,EACF;AAGA,SAAO;AACT;",
|
|
5
5
|
"names": ["mutations"]
|
|
6
6
|
}
|
|
@@ -37,7 +37,7 @@ function createPermissions({
|
|
|
37
37
|
}
|
|
38
38
|
return eb.and(permissionCondition, ...primaryKeyWheres);
|
|
39
39
|
}
|
|
40
|
-
async
|
|
40
|
+
const can = async (where, action, obj) => {
|
|
41
41
|
const ctx = getContext(), tableName = getWhereTableName(where);
|
|
42
42
|
if (!tableName)
|
|
43
43
|
throw new Error("Must use where('table') style where to pass to can()");
|
|
@@ -49,7 +49,7 @@ function createPermissions({
|
|
|
49
49
|
action,
|
|
50
50
|
obj
|
|
51
51
|
), ctx.didCanPermissionsRun = !0);
|
|
52
|
-
}
|
|
52
|
+
};
|
|
53
53
|
async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
|
|
54
54
|
if (authData?.role === "admin")
|
|
55
55
|
return;
|
|
@@ -70,7 +70,7 @@ ${err}`);
|
|
|
70
70
|
}
|
|
71
71
|
const readPermissions = definePermissions(schema, async () => {
|
|
72
72
|
const permissionsEntries = await Promise.all(
|
|
73
|
-
objectEntries(models).map(async ([key, model]) => await runWithContext(
|
|
73
|
+
objectEntries(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await runWithContext(
|
|
74
74
|
{
|
|
75
75
|
authData: { id: "", role: void 0, email: "" }
|
|
76
76
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createPermissions.ts"],
|
|
4
|
-
"mappings": "AAMA,SAAS,YAAY,yBAAyB;AAC9C,SAAS,QAAQ,aAAa,qBAAqB;AACnD,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -35,12 +35,12 @@ function createPermissions({
|
|
|
35
35
|
}
|
|
36
36
|
return eb.and(permissionCondition, ...primaryKeyWheres);
|
|
37
37
|
}
|
|
38
|
-
async
|
|
38
|
+
const can = async (where, action, obj) => {
|
|
39
39
|
const ctx = getContext(),
|
|
40
40
|
tableName = getWhereTableName(where);
|
|
41
41
|
if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
|
|
42
42
|
environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), ctx.didCanPermissionsRun = !0);
|
|
43
|
-
}
|
|
43
|
+
};
|
|
44
44
|
async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
|
|
45
45
|
if (authData?.role === "admin") return;
|
|
46
46
|
const action = String(actionIn),
|
|
@@ -61,7 +61,7 @@ ${err}`);
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
const readPermissions = definePermissions(schema, async () => {
|
|
64
|
-
const permissionsEntries = await Promise.all(objectEntries(models).map(async ([key, model]) => await runWithContext({
|
|
64
|
+
const permissionsEntries = await Promise.all(objectEntries(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await runWithContext({
|
|
65
65
|
authData: {
|
|
66
66
|
id: "",
|
|
67
67
|
role: void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","prettyFormatZeroQuery","getWhereTableName","createPermissions","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","didCanPermissionsRun","actionIn","role","String","name","queryBase","query","one","err","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","
|
|
1
|
+
{"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","prettyFormatZeroQuery","getWhereTableName","createPermissions","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","didCanPermissionsRun","actionIn","role","String","name","queryBase","query","one","err","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","filter","_","model","permissions","map","email","row","out","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -50,12 +50,12 @@ function createPermissions(param) {
|
|
|
50
50
|
}
|
|
51
51
|
return eb.and(permissionCondition, ...primaryKeyWheres);
|
|
52
52
|
}
|
|
53
|
-
async function
|
|
53
|
+
var can = async function (where, action, obj) {
|
|
54
54
|
var ctx = getContext(),
|
|
55
55
|
tableName = getWhereTableName(where);
|
|
56
56
|
if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
|
|
57
57
|
environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), ctx.didCanPermissionsRun = !0);
|
|
58
|
-
}
|
|
58
|
+
};
|
|
59
59
|
async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
|
|
60
60
|
if (authData?.role !== "admin") {
|
|
61
61
|
var action = String(actionIn),
|
|
@@ -79,7 +79,10 @@ ${err}`);
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
var readPermissions = definePermissions(schema, async function () {
|
|
82
|
-
var permissionsEntries = await Promise.all(objectEntries(models).
|
|
82
|
+
var permissionsEntries = await Promise.all(objectEntries(models).filter(function (param2) {
|
|
83
|
+
var [_, model] = param2;
|
|
84
|
+
return !!model.permissions;
|
|
85
|
+
}).map(async function (param2) {
|
|
83
86
|
var [key, model] = param2;
|
|
84
87
|
return await runWithContext({
|
|
85
88
|
authData: {
|