on-zero 0.1.19 → 0.1.21
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 +4 -2
- package/dist/cjs/createPermissions.js +5 -2
- package/dist/cjs/createPermissions.js.map +1 -1
- package/dist/cjs/createPermissions.native.js +6 -2
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +15 -5
- package/dist/cjs/createZeroServer.js +11 -5
- package/dist/cjs/createZeroServer.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js +15 -4
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +16 -5
- package/dist/cjs/helpers/createMutators.js +20 -5
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js +19 -5
- package/dist/cjs/helpers/createMutators.native.js.map +1 -1
- package/dist/esm/createPermissions.js +5 -2
- package/dist/esm/createPermissions.js.map +1 -1
- package/dist/esm/createPermissions.mjs +4 -2
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +6 -2
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +11 -5
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +15 -5
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +15 -4
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/createMutators.js +20 -5
- package/dist/esm/helpers/createMutators.js.map +1 -1
- package/dist/esm/helpers/createMutators.mjs +16 -5
- package/dist/esm/helpers/createMutators.mjs.map +1 -1
- package/dist/esm/helpers/createMutators.native.js +19 -5
- package/dist/esm/helpers/createMutators.native.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +35 -0
- package/src/createPermissions.ts +12 -3
- package/src/createZeroServer.ts +45 -0
- package/src/helpers/createMutators.ts +50 -11
- package/src/types.ts +9 -0
- package/types/createPermissions.d.ts +3 -2
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +32 -2
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/helpers/createMutators.d.ts +9 -1
- package/types/helpers/createMutators.d.ts.map +1 -1
- package/types/types.d.ts +8 -0
- package/types/types.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensure","EnsureError","setDidRunPermissionCheck","mutatorContext","prettyFormatZeroQuery","getZQL","getWhereTableName","createPermissions","environment","schema","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableNameOverride","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","
|
|
1
|
+
{"version":3,"names":["ensure","EnsureError","setDidRunPermissionCheck","mutatorContext","prettyFormatZeroQuery","getZQL","getWhereTableName","createPermissions","environment","schema","adminRoleMode","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableNameOverride","role","cmpLit","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","queryBase","query","one","run","err","errorTitle","id","msg","process","env","NODE_ENV"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -10,9 +10,12 @@ function _instanceof(left, right) {
|
|
|
10
10
|
function createPermissions(param) {
|
|
11
11
|
var {
|
|
12
12
|
environment,
|
|
13
|
-
schema
|
|
13
|
+
schema,
|
|
14
|
+
adminRoleMode = "all"
|
|
14
15
|
} = param;
|
|
15
16
|
function buildPermissionQuery(authData, eb, permissionWhere, objOrId, tableNameOverride) {
|
|
17
|
+
var adminBypassQueries = adminRoleMode === "all" || adminRoleMode === "queries";
|
|
18
|
+
if (adminBypassQueries && authData?.role === "admin") return eb.cmpLit(!0, "=", !0);
|
|
16
19
|
var tableName = tableNameOverride || getWhereTableName(permissionWhere);
|
|
17
20
|
if (!tableName) throw new Error("Must use PermissionWhere for buildPermissionQuery");
|
|
18
21
|
var tableSchema = schema.tables[tableName];
|
|
@@ -52,7 +55,8 @@ function createPermissions(param) {
|
|
|
52
55
|
}
|
|
53
56
|
};
|
|
54
57
|
async function ensurePermission(tx, authData, tableName, where, obj) {
|
|
55
|
-
|
|
58
|
+
var adminBypassMutations = adminRoleMode === "all" || adminRoleMode === "mutations";
|
|
59
|
+
if (!(adminBypassMutations && authData?.role === "admin")) {
|
|
56
60
|
var zqlBuilder = getZQL(),
|
|
57
61
|
queryBase = zqlBuilder[tableName],
|
|
58
62
|
query = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ensure","EnsureError","setDidRunPermissionCheck","mutatorContext","prettyFormatZeroQuery","getZQL","getWhereTableName","_instanceof","left","right","Symbol","hasInstance","createPermissions","param","environment","schema","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableNameOverride","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","
|
|
1
|
+
{"version":3,"names":["ensure","EnsureError","setDidRunPermissionCheck","mutatorContext","prettyFormatZeroQuery","getZQL","getWhereTableName","_instanceof","left","right","Symbol","hasInstance","createPermissions","param","environment","schema","adminRoleMode","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableNameOverride","adminBypassQueries","role","cmpLit","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","key","value","push","cmp","err","return","and","can","where","obj","ctx","ensurePermission","tx","adminBypassMutations","zqlBuilder","queryBase","query","one","run","errorTitle","id"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,7 +16,10 @@ function createZeroServer({
|
|
|
16
16
|
database,
|
|
17
17
|
schema,
|
|
18
18
|
models,
|
|
19
|
-
queries
|
|
19
|
+
queries,
|
|
20
|
+
validateQuery,
|
|
21
|
+
validateMutation,
|
|
22
|
+
defaultAllowAdminRole = "all"
|
|
20
23
|
}) {
|
|
21
24
|
setSchema(schema);
|
|
22
25
|
const dbString = assertString(database, 'createZeroServer "database"'), zeroDb = zeroNodePg(
|
|
@@ -28,7 +31,8 @@ function createZeroServer({
|
|
|
28
31
|
})
|
|
29
32
|
), permissions = createPermissions({
|
|
30
33
|
environment: "server",
|
|
31
|
-
schema
|
|
34
|
+
schema,
|
|
35
|
+
adminRoleMode: defaultAllowAdminRole
|
|
32
36
|
}), processor = new PushProcessor(zeroDb), handleMutationRequest = async ({
|
|
33
37
|
authData,
|
|
34
38
|
request,
|
|
@@ -40,7 +44,8 @@ function createZeroServer({
|
|
|
40
44
|
createServerActions,
|
|
41
45
|
environment: "server",
|
|
42
46
|
models,
|
|
43
|
-
authData
|
|
47
|
+
authData,
|
|
48
|
+
validateMutation
|
|
44
49
|
}), response = await processor.process(mutators, request);
|
|
45
50
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
46
51
|
const id = randomId();
|
|
@@ -71,7 +76,7 @@ function createZeroServer({
|
|
|
71
76
|
throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
72
77
|
return getZQL()[table].where((eb) => permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)).one();
|
|
73
78
|
}
|
|
74
|
-
return mustGetQuery(queries, name).fn({ args, ctx: authData });
|
|
79
|
+
return validateQuery && validateQuery({ authData, queryName: name, params: args }), mustGetQuery(queries, name).fn({ args, ctx: authData });
|
|
75
80
|
},
|
|
76
81
|
schema,
|
|
77
82
|
request
|
|
@@ -89,7 +94,8 @@ function createZeroServer({
|
|
|
89
94
|
...authData
|
|
90
95
|
},
|
|
91
96
|
createServerActions,
|
|
92
|
-
can: permissions.can
|
|
97
|
+
can: permissions.can,
|
|
98
|
+
validateMutation
|
|
93
99
|
});
|
|
94
100
|
await transaction(async (tx) => {
|
|
95
101
|
await run(tx, mutators);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroServer.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB,8BAA8B;AAC7D,SAAS,kBAAkB;AAC3B,SAAS,cAAc,gBAAgB;AACvC,SAAS,YAAY;AAErB,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB,sBAAsB;AACjD,SAAS,+BAA+B;AACxC,SAAS,wBAAwB;AACjC,SAAS,QAAQ,aAAa,iBAAiB;AAC/C,SAAS,iBAAiB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["query"]
|
|
6
6
|
}
|
|
@@ -16,7 +16,10 @@ function createZeroServer({
|
|
|
16
16
|
database,
|
|
17
17
|
schema,
|
|
18
18
|
models,
|
|
19
|
-
queries
|
|
19
|
+
queries,
|
|
20
|
+
validateQuery,
|
|
21
|
+
validateMutation,
|
|
22
|
+
defaultAllowAdminRole = "all"
|
|
20
23
|
}) {
|
|
21
24
|
setSchema(schema);
|
|
22
25
|
const dbString = assertString(database, 'createZeroServer "database"'),
|
|
@@ -29,7 +32,8 @@ function createZeroServer({
|
|
|
29
32
|
})),
|
|
30
33
|
permissions = createPermissions({
|
|
31
34
|
environment: "server",
|
|
32
|
-
schema
|
|
35
|
+
schema,
|
|
36
|
+
adminRoleMode: defaultAllowAdminRole
|
|
33
37
|
}),
|
|
34
38
|
processor = new PushProcessor(zeroDb),
|
|
35
39
|
handleMutationRequest = async ({
|
|
@@ -44,7 +48,8 @@ function createZeroServer({
|
|
|
44
48
|
createServerActions,
|
|
45
49
|
environment: "server",
|
|
46
50
|
models,
|
|
47
|
-
authData
|
|
51
|
+
authData,
|
|
52
|
+
validateMutation
|
|
48
53
|
}),
|
|
49
54
|
response = await processor.process(mutators, request);
|
|
50
55
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
@@ -76,7 +81,11 @@ function createZeroServer({
|
|
|
76
81
|
if (!perm) throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
77
82
|
return getZQL()[table].where(eb => permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)).one();
|
|
78
83
|
}
|
|
79
|
-
return
|
|
84
|
+
return validateQuery && validateQuery({
|
|
85
|
+
authData,
|
|
86
|
+
queryName: name,
|
|
87
|
+
params: args
|
|
88
|
+
}), mustGetQuery(queries, name).fn({
|
|
80
89
|
args,
|
|
81
90
|
ctx: authData
|
|
82
91
|
});
|
|
@@ -96,7 +105,8 @@ function createZeroServer({
|
|
|
96
105
|
...authData
|
|
97
106
|
},
|
|
98
107
|
createServerActions,
|
|
99
|
-
can: permissions.can
|
|
108
|
+
can: permissions.can,
|
|
109
|
+
validateMutation
|
|
100
110
|
});
|
|
101
111
|
await transaction(async tx => {
|
|
102
112
|
await run(tx, mutators);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","startsWith","table","slice","objOrId","perm","where","eb","buildPermissionQuery","one","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAC7B,SAASC,aAAA,QAAqB;AAC9B,SAASC,kBAAA,IAAsBC,sBAAA,QAA8B;AAC7D,SAASC,UAAA,QAAkB;AAC3B,SAASC,YAAA,EAAcC,QAAA,QAAgB;AACvC,SAASC,IAAA,QAAY;AAErB,SAASC,iBAAA,QAAyB;AAClC,SAASC,cAAA,QAAsB;AAC/B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;AACjD,SAASC,uBAAA,QAA+B;AACxC,SAASC,gBAAA,QAAwB;AACjC,SAASC,MAAA,EAAQC,WAAA,EAAaC,SAAA,QAAiB;AAC/C,SAASC,SAAA,QAAiB;
|
|
1
|
+
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","createServerActions","database","schema","models","queries","validateQuery","validateMutation","defaultAllowAdminRole","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","adminRoleMode","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","startsWith","table","slice","objOrId","perm","where","eb","buildPermissionQuery","one","queryName","params","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,10 @@ function createZeroServer(param) {
|
|
|
17
17
|
database,
|
|
18
18
|
schema,
|
|
19
19
|
models,
|
|
20
|
-
queries
|
|
20
|
+
queries,
|
|
21
|
+
validateQuery,
|
|
22
|
+
validateMutation,
|
|
23
|
+
defaultAllowAdminRole = "all"
|
|
21
24
|
} = param;
|
|
22
25
|
setSchema(schema);
|
|
23
26
|
var dbString = assertString(database, 'createZeroServer "database"'),
|
|
@@ -30,7 +33,8 @@ function createZeroServer(param) {
|
|
|
30
33
|
})),
|
|
31
34
|
permissions = createPermissions({
|
|
32
35
|
environment: "server",
|
|
33
|
-
schema
|
|
36
|
+
schema,
|
|
37
|
+
adminRoleMode: defaultAllowAdminRole
|
|
34
38
|
}),
|
|
35
39
|
processor = new PushProcessor(zeroDb),
|
|
36
40
|
handleMutationRequest = async function (param2) {
|
|
@@ -46,7 +50,8 @@ function createZeroServer(param) {
|
|
|
46
50
|
createServerActions,
|
|
47
51
|
environment: "server",
|
|
48
52
|
models,
|
|
49
|
-
authData
|
|
53
|
+
authData,
|
|
54
|
+
validateMutation
|
|
50
55
|
}),
|
|
51
56
|
response = await processor.process(mutators, request);
|
|
52
57
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
@@ -83,6 +88,11 @@ function createZeroServer(param) {
|
|
|
83
88
|
return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table);
|
|
84
89
|
}).one();
|
|
85
90
|
}
|
|
91
|
+
validateQuery && validateQuery({
|
|
92
|
+
authData,
|
|
93
|
+
queryName: name,
|
|
94
|
+
params: args
|
|
95
|
+
});
|
|
86
96
|
var _$query = mustGetQuery(queries, name);
|
|
87
97
|
return _$query.fn({
|
|
88
98
|
args,
|
|
@@ -106,7 +116,8 @@ function createZeroServer(param) {
|
|
|
106
116
|
...authData
|
|
107
117
|
},
|
|
108
118
|
createServerActions,
|
|
109
|
-
can: permissions.can
|
|
119
|
+
can: permissions.can,
|
|
120
|
+
validateMutation
|
|
110
121
|
});
|
|
111
122
|
await transaction(async function (tx) {
|
|
112
123
|
await run(tx, mutators);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","param","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","processor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","startsWith","table","slice","objOrId","perm","where","eb","buildPermissionQuery","one","_$query","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","output","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,QAAoB;AAC7B,SAASC,aAAA,QAAqB;AAC9B,SAASC,kBAAA,IAAsBC,sBAAA,QAA8B;AAC7D,SAASC,UAAA,QAAkB;AAC3B,SAASC,YAAA,EAAcC,QAAA,QAAgB;AACvC,SAASC,IAAA,QAAY;AAErB,SAASC,iBAAA,QAAyB;AAClC,SAASC,cAAA,QAAsB;AAC/B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;AACjD,SAASC,uBAAA,QAA+B;AACxC,SAASC,gBAAA,QAAwB;AACjC,SAASC,MAAA,EAAQC,WAAA,EAAaC,SAAA,QAAiB;AAC/C,SAASC,SAAA,QAAiB;
|
|
1
|
+
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","setAuthData","setSchema","setRunner","createZeroServer","param","createServerActions","database","schema","models","queries","validateQuery","validateMutation","defaultAllowAdminRole","dbString","zeroDb","connectionString","ssl","includes","rejectUnauthorized","permissions","environment","adminRoleMode","processor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","Error","name","args","startsWith","table","slice","objOrId","perm","where","eb","buildPermissionQuery","one","queryName","params","_$query","fn","ctx","mutate","run","email","role","transaction","tx","t","query2","output","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,8 @@ function createMutators({
|
|
|
8
8
|
createServerActions,
|
|
9
9
|
asyncTasks = [],
|
|
10
10
|
can,
|
|
11
|
-
models
|
|
11
|
+
models,
|
|
12
|
+
validateMutation
|
|
12
13
|
}) {
|
|
13
14
|
const serverActions = createServerActions?.(), modelMutators = mapObject(models, (val) => val.mutate);
|
|
14
15
|
function withContext(fn) {
|
|
@@ -29,12 +30,15 @@ function createMutators({
|
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
32
|
function withDevelopmentLogging(name, fn) {
|
|
32
|
-
|
|
33
|
+
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING)
|
|
34
|
+
return fn;
|
|
35
|
+
const debug = process.env.DEBUG;
|
|
36
|
+
return async (...args) => {
|
|
33
37
|
const startTime = performance.now();
|
|
34
38
|
try {
|
|
35
|
-
isServer && console.info(`[mutator] ${name} start`);
|
|
39
|
+
debug && isServer && console.info(`[mutator] ${name} start`);
|
|
36
40
|
const result = await fn(...args), duration = (performance.now() - startTime).toFixed(2);
|
|
37
|
-
return isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`), result;
|
|
41
|
+
return debug && (isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
|
|
38
42
|
} catch (error) {
|
|
39
43
|
const duration = (performance.now() - startTime).toFixed(2);
|
|
40
44
|
throw console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.info("stack trace:", new Error().stack), console.groupEnd(), error;
|
|
@@ -51,6 +55,14 @@ function createMutators({
|
|
|
51
55
|
return Promise.race([fn(...args), timeoutPromise]);
|
|
52
56
|
};
|
|
53
57
|
}
|
|
58
|
+
function withValidation(tableName, mutatorName, fn) {
|
|
59
|
+
return validateMutation ? async (...args) => (await validateMutation({
|
|
60
|
+
authData: isBrowser ? getAuthData() : authData,
|
|
61
|
+
tableName,
|
|
62
|
+
mutatorName,
|
|
63
|
+
args: args[1]
|
|
64
|
+
}), fn(...args)) : fn;
|
|
65
|
+
}
|
|
54
66
|
function decorateMutators(modules) {
|
|
55
67
|
const result = {};
|
|
56
68
|
for (const [moduleName, moduleExports] of Object.entries(modules)) {
|
|
@@ -60,7 +72,10 @@ function createMutators({
|
|
|
60
72
|
const fullName = `${moduleName}.${name}`;
|
|
61
73
|
result[moduleName][name] = withDevelopmentLogging(
|
|
62
74
|
fullName,
|
|
63
|
-
withTimeoutGuard(
|
|
75
|
+
withTimeoutGuard(
|
|
76
|
+
fullName,
|
|
77
|
+
withValidation(moduleName, name, withContext(exportValue))
|
|
78
|
+
)
|
|
64
79
|
);
|
|
65
80
|
}
|
|
66
81
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/createMutators.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,WAAW,YAAY;AAEhC,SAAS,WAAW,gBAAgB;AACpC,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -8,7 +8,8 @@ function createMutators({
|
|
|
8
8
|
createServerActions,
|
|
9
9
|
asyncTasks = [],
|
|
10
10
|
can,
|
|
11
|
-
models
|
|
11
|
+
models,
|
|
12
|
+
validateMutation
|
|
12
13
|
}) {
|
|
13
14
|
const serverActions = createServerActions?.(),
|
|
14
15
|
modelMutators = mapObject(models, val => val.mutate);
|
|
@@ -30,13 +31,15 @@ function createMutators({
|
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
33
|
function withDevelopmentLogging(name, fn) {
|
|
33
|
-
|
|
34
|
+
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) return fn;
|
|
35
|
+
const debug = process.env.DEBUG;
|
|
36
|
+
return async (...args) => {
|
|
34
37
|
const startTime = performance.now();
|
|
35
38
|
try {
|
|
36
|
-
isServer && console.info(`[mutator] ${name} start`);
|
|
39
|
+
debug && isServer && console.info(`[mutator] ${name} start`);
|
|
37
40
|
const result = await fn(...args),
|
|
38
41
|
duration = (performance.now() - startTime).toFixed(2);
|
|
39
|
-
return isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`), result;
|
|
42
|
+
return debug && (isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
|
|
40
43
|
} catch (error) {
|
|
41
44
|
const duration = (performance.now() - startTime).toFixed(2);
|
|
42
45
|
throw console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.info("stack trace:", new Error().stack), console.groupEnd(), error;
|
|
@@ -53,13 +56,21 @@ function createMutators({
|
|
|
53
56
|
return Promise.race([fn(...args), timeoutPromise]);
|
|
54
57
|
};
|
|
55
58
|
}
|
|
59
|
+
function withValidation(tableName, mutatorName, fn) {
|
|
60
|
+
return validateMutation ? async (...args) => (await validateMutation({
|
|
61
|
+
authData: isBrowser ? getAuthData() : authData,
|
|
62
|
+
tableName,
|
|
63
|
+
mutatorName,
|
|
64
|
+
args: args[1]
|
|
65
|
+
}), fn(...args)) : fn;
|
|
66
|
+
}
|
|
56
67
|
function decorateMutators(modules) {
|
|
57
68
|
const result = {};
|
|
58
69
|
for (const [moduleName, moduleExports] of Object.entries(modules)) {
|
|
59
70
|
result[moduleName] = {};
|
|
60
71
|
for (const [name, exportValue] of Object.entries(moduleExports)) if (typeof exportValue == "function") {
|
|
61
72
|
const fullName = `${moduleName}.${name}`;
|
|
62
|
-
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withContext(exportValue)));
|
|
73
|
+
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext(exportValue))));
|
|
63
74
|
}
|
|
64
75
|
}
|
|
65
76
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","environment","authData","createServerActions","asyncTasks","can","models","serverActions","modelMutators","val","mutate","withContext","fn","tx","args","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","decorateMutators","modules","moduleName","moduleExports","Object","entries","exportValue","fullName"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,IAAA,QAAY;AAEhC,SAASC,SAAA,EAAWC,QAAA,QAAgB;AACpC,SAASC,WAAA,QAAmB;AAC5B,SAASC,cAAA,QAAsB;
|
|
1
|
+
{"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","val","mutate","withContext","fn","tx","args","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","moduleName","moduleExports","Object","entries","exportValue","fullName"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,8 @@ function createMutators(param) {
|
|
|
9
9
|
createServerActions,
|
|
10
10
|
asyncTasks = [],
|
|
11
11
|
can,
|
|
12
|
-
models
|
|
12
|
+
models,
|
|
13
|
+
validateMutation
|
|
13
14
|
} = param,
|
|
14
15
|
serverActions = createServerActions?.(),
|
|
15
16
|
modelMutators = mapObject(models, function (val) {
|
|
@@ -36,14 +37,16 @@ function createMutators(param) {
|
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
39
|
function withDevelopmentLogging(name, fn) {
|
|
39
|
-
|
|
40
|
+
if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) return fn;
|
|
41
|
+
var debug = process.env.DEBUG;
|
|
42
|
+
return async function () {
|
|
40
43
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
41
44
|
var startTime = performance.now();
|
|
42
45
|
try {
|
|
43
|
-
isServer && console.info(`[mutator] ${name} start`);
|
|
46
|
+
debug && isServer && console.info(`[mutator] ${name} start`);
|
|
44
47
|
var result = await fn(...args),
|
|
45
48
|
duration = (performance.now() - startTime).toFixed(2);
|
|
46
|
-
return isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`), result;
|
|
49
|
+
return debug && (isBrowser ? (console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`), console.info("\u2192", args[1]), console.info("\u2190", result), console.trace(), console.groupEnd()) : console.info(`[mutator] ${name} completed in ${duration}ms`)), result;
|
|
47
50
|
} catch (error) {
|
|
48
51
|
var duration1 = (performance.now() - startTime).toFixed(2);
|
|
49
52
|
throw console.groupCollapsed(`[mutator] ${name} failed after ${duration1}ms`), console.error("error:", error), console.info("arguments:", JSON.stringify(args[1], null, 2)), console.info("stack trace:", new Error().stack), console.groupEnd(), error;
|
|
@@ -62,6 +65,17 @@ function createMutators(param) {
|
|
|
62
65
|
return Promise.race([fn(...args), timeoutPromise]);
|
|
63
66
|
};
|
|
64
67
|
}
|
|
68
|
+
function withValidation(tableName, mutatorName, fn) {
|
|
69
|
+
return validateMutation ? async function () {
|
|
70
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
71
|
+
return await validateMutation({
|
|
72
|
+
authData: isBrowser ? getAuthData() : authData,
|
|
73
|
+
tableName,
|
|
74
|
+
mutatorName,
|
|
75
|
+
args: args[1]
|
|
76
|
+
}), fn(...args);
|
|
77
|
+
} : fn;
|
|
78
|
+
}
|
|
65
79
|
function decorateMutators(modules) {
|
|
66
80
|
var result = {},
|
|
67
81
|
_iteratorNormalCompletion = !0,
|
|
@@ -79,7 +93,7 @@ function createMutators(param) {
|
|
|
79
93
|
var [name, exportValue] = _step1.value;
|
|
80
94
|
if (typeof exportValue == "function") {
|
|
81
95
|
var fullName = `${moduleName}.${name}`;
|
|
82
|
-
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withContext(exportValue)));
|
|
96
|
+
result[moduleName][name] = withDevelopmentLogging(fullName, withTimeoutGuard(fullName, withValidation(moduleName, name, withContext(exportValue))));
|
|
83
97
|
}
|
|
84
98
|
}
|
|
85
99
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","param","environment","authData","createServerActions","asyncTasks","can","models","serverActions","modelMutators","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","moduleName","moduleExports","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","exportValue"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,IAAA,QAAY;AAEhC,SAASC,SAAA,EAAWC,QAAA,QAAgB;AACpC,SAASC,WAAA,QAAmB;AAC5B,SAASC,cAAA,QAAsB;
|
|
1
|
+
{"version":3,"names":["mapObject","time","isBrowser","isServer","getAuthData","runWithContext","createMutators","param","environment","authData","createServerActions","asyncTasks","can","models","validateMutation","serverActions","modelMutators","val","mutate","withContext","fn","tx","_len","arguments","length","args","Array","_key","mutationContext","server","actions","withDevelopmentLogging","name","process","env","NODE_ENV","IS_TESTING","debug","DEBUG","startTime","performance","now","console","info","result","duration","toFixed","groupCollapsed","trace","groupEnd","error","duration1","JSON","stringify","Error","stack","withTimeoutGuard","timeoutMs","ms","minutes","timeoutPromise","Promise","_","reject","setTimeout","race","withValidation","tableName","mutatorName","decorateMutators","modules","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","moduleName","moduleExports","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","exportValue"],"sources":["../../../src/helpers/createMutators.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
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": "0.1.
|
|
67
|
+
"@take-out/helpers": "0.1.21",
|
|
68
68
|
"@sinclair/typebox-codegen": "^0.11.1",
|
|
69
69
|
"chokidar": "^4.0.3",
|
|
70
70
|
"citty": "^0.1.6",
|