on-zero 0.1.31 → 0.1.33
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.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +11 -5
- package/dist/cjs/createZeroServer.js +26 -16
- package/dist/cjs/createZeroServer.js.map +1 -1
- package/dist/cjs/createZeroServer.native.js +37 -28
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.cjs +3 -2
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.js +2 -2
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.js.map +1 -1
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js +3 -2
- package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js.map +1 -1
- package/dist/cjs/helpers/queryContext.cjs +38 -0
- package/dist/cjs/helpers/queryContext.js +33 -0
- package/dist/cjs/helpers/queryContext.js.map +6 -0
- package/dist/cjs/helpers/queryContext.native.js +42 -0
- package/dist/cjs/helpers/queryContext.native.js.map +1 -0
- package/dist/esm/createZeroClient.js.map +1 -1
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +27 -16
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +12 -6
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +38 -29
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/getQueryOrMutatorAuthData.js +2 -1
- package/dist/esm/helpers/getQueryOrMutatorAuthData.js.map +1 -1
- package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs +2 -1
- package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs.map +1 -1
- package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js +2 -1
- package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js.map +1 -1
- package/dist/esm/helpers/queryContext.js +17 -0
- package/dist/esm/helpers/queryContext.js.map +6 -0
- package/dist/esm/helpers/queryContext.mjs +13 -0
- package/dist/esm/helpers/queryContext.mjs.map +1 -0
- package/dist/esm/helpers/queryContext.native.js +14 -0
- package/dist/esm/helpers/queryContext.native.js.map +1 -0
- package/package.json +2 -2
- package/src/createZeroClient.tsx +1 -3
- package/src/createZeroServer.ts +50 -35
- package/src/helpers/getQueryOrMutatorAuthData.ts +5 -1
- package/src/helpers/queryContext.ts +20 -0
- package/types/createZeroClient.d.ts +1 -1
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +1 -1
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/helpers/getQueryOrMutatorAuthData.d.ts.map +1 -1
- package/types/helpers/queryContext.d.ts +7 -0
- package/types/helpers/queryContext.d.ts.map +1 -0
- package/types/helpers/queryContext.test.d.ts +2 -0
- package/types/helpers/queryContext.test.d.ts.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getQueryOrMutatorAuthData","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","permission","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","arguments","length","debug","disabled","tableStr","checkFn","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,EAAAC,IAAe,IAAAC,KAAA,QAAmB;AAC3C,SAASC,aAAA,EAAAC,WAAoB,QAAS,gBAAoB;AAC1D,SAASC,kBAAA,EAAAC,OAAqB,EAAAC,YAAA;AAC9B,SAAAC,aAAA;AAAA,SACEC,aAAA,EAAAC,IAAA,EAAAC,GAAA,EAAAC,SAAA,EAAAC,OAAA,EAAAC,MAAA;AAAA,SACAC,iBAAA;AAAA,SACAC,cAAA;AAAA,SACAC,cAAA;AAAA,SACAC,yBAAA;AAAA,SACAC,0BAAA,EAAAC,uBAAA;AAAA,SAEKC,aAAA;AAEP,SAASC,YAAA,kCAAyB;AAClC,SAASC,gBAAA,QAAsB;AAC/B,SAASC,WAAA,EAAAC,SAAsB;AAC/B,SAASC,WAAA,EAAAC,uBAAiC;AAC1C,SAASC,SAAA,gCAA4B;AACrC,SAASC,GAAA;AACT,SAASC,iBAAAC,KAAuC;EAChD;IAAAC,MAAS;IAAAC,MAAA;IAAAC,cAAwB;IAAAC,kBAAA;EAAA,IAAAJ,KAAA;EACjCN,SAAS,CAAAO,MAAA;EACT,IAAAI,kBAAsB,GAAArB,iBAAA;MACtBiB,MAAS;MACTK,WAAS;
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","createEmitter","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","getQueryOrMutatorAuthData","getAllMutationsPermissions","getMutationsPermissions","registerQuery","resolveQuery","setCustomQueries","setAuthData","setSchema","getRawWhere","setEvaluatingPermission","setRunner","zql","createZeroClient","param","schema","models","groupedQueries","permissionStrategy","permissionsHelpers","environment","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","permissionCheckFns","createPermissionCheckFn","table","perm","base","objOrId","where","eb","cmpLit","one","rawPerm","buildPermissionQuery","e","and","permission","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_loop1","_step2","_iterator2","customQueries","DisabledContext","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","zeroEvents","AuthDataContext","useQuery","usePermission","enabled","arguments","length","debug","disabled","tableStr","checkFn","data","status","console","info","type","ProvideZero","children","authData","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -7,9 +7,10 @@ import { Pool } from "pg";
|
|
|
7
7
|
import { createPermissions } from "./createPermissions";
|
|
8
8
|
import { createMutators } from "./helpers/createMutators";
|
|
9
9
|
import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext";
|
|
10
|
+
import { runWithQueryContext } from "./helpers/queryContext";
|
|
10
11
|
import { getMutationsPermissions } from "./modelRegistry";
|
|
11
12
|
import { setCustomQueries } from "./run";
|
|
12
|
-
import { getZQL,
|
|
13
|
+
import { getZQL, setSchema } from "./state";
|
|
13
14
|
import { setRunner } from "./zeroRunner";
|
|
14
15
|
function createZeroServer({
|
|
15
16
|
createServerActions,
|
|
@@ -67,19 +68,28 @@ function createZeroServer({
|
|
|
67
68
|
throw new Error(
|
|
68
69
|
"No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option."
|
|
69
70
|
);
|
|
70
|
-
return
|
|
71
|
-
response: await
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
71
|
+
return {
|
|
72
|
+
response: await runWithQueryContext(
|
|
73
|
+
{ authData: authData || {} },
|
|
74
|
+
() => zeroHandleQueryRequest(
|
|
75
|
+
(name, args) => {
|
|
76
|
+
if (name.startsWith("permission.")) {
|
|
77
|
+
const table = name.slice(11), { objOrId } = args, perm = getMutationsPermissions(table);
|
|
78
|
+
if (!perm)
|
|
79
|
+
throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
80
|
+
return getZQL()[table].where((eb) => permissions.buildPermissionQuery(
|
|
81
|
+
authData,
|
|
82
|
+
eb,
|
|
83
|
+
perm,
|
|
84
|
+
objOrId,
|
|
85
|
+
table
|
|
86
|
+
)).one();
|
|
87
|
+
}
|
|
88
|
+
return validateQuery && validateQuery({ authData, queryName: name, params: args }), mustGetQuery(queries, name).fn({ args, ctx: authData });
|
|
89
|
+
},
|
|
90
|
+
schema,
|
|
91
|
+
request
|
|
92
|
+
)
|
|
83
93
|
)
|
|
84
94
|
};
|
|
85
95
|
}, mutate = async (run, authData, options) => {
|
|
@@ -122,8 +132,9 @@ function createZeroServer({
|
|
|
122
132
|
throw console.error(`Error running transaction(): ${err}`), err;
|
|
123
133
|
}
|
|
124
134
|
}
|
|
125
|
-
function query(cb) {
|
|
126
|
-
|
|
135
|
+
function query(cb, authData) {
|
|
136
|
+
const run = () => transaction(async (tx) => tx.run(cb(getZQL())));
|
|
137
|
+
return authData !== void 0 ? runWithQueryContext({ authData }, run) : run();
|
|
127
138
|
}
|
|
128
139
|
queries && setCustomQueries(queries), setRunner((queryObj) => transaction(async (tx) => tx.run(queryObj)));
|
|
129
140
|
const dummyTransactionInput = {
|
|
@@ -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,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["query"]
|
|
6
6
|
}
|
|
@@ -7,9 +7,10 @@ import { Pool } from "pg";
|
|
|
7
7
|
import { createPermissions } from "./createPermissions.mjs";
|
|
8
8
|
import { createMutators } from "./helpers/createMutators.mjs";
|
|
9
9
|
import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext.mjs";
|
|
10
|
+
import { runWithQueryContext } from "./helpers/queryContext.mjs";
|
|
10
11
|
import { getMutationsPermissions } from "./modelRegistry.mjs";
|
|
11
12
|
import { setCustomQueries } from "./run.mjs";
|
|
12
|
-
import { getZQL,
|
|
13
|
+
import { getZQL, setSchema } from "./state.mjs";
|
|
13
14
|
import { setRunner } from "./zeroRunner.mjs";
|
|
14
15
|
function createZeroServer({
|
|
15
16
|
createServerActions,
|
|
@@ -70,8 +71,10 @@ function createZeroServer({
|
|
|
70
71
|
request
|
|
71
72
|
}) => {
|
|
72
73
|
if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
73
|
-
return
|
|
74
|
-
response: await
|
|
74
|
+
return {
|
|
75
|
+
response: await runWithQueryContext({
|
|
76
|
+
authData: authData || {}
|
|
77
|
+
}, () => zeroHandleQueryRequest((name, args) => {
|
|
75
78
|
if (name.startsWith("permission.")) {
|
|
76
79
|
const table = name.slice(11),
|
|
77
80
|
{
|
|
@@ -89,7 +92,7 @@ function createZeroServer({
|
|
|
89
92
|
args,
|
|
90
93
|
ctx: authData
|
|
91
94
|
});
|
|
92
|
-
}, schema, request)
|
|
95
|
+
}, schema, request))
|
|
93
96
|
};
|
|
94
97
|
},
|
|
95
98
|
mutate = async (run, authData, options) => {
|
|
@@ -132,8 +135,11 @@ function createZeroServer({
|
|
|
132
135
|
throw console.error(`Error running transaction(): ${err}`), err;
|
|
133
136
|
}
|
|
134
137
|
}
|
|
135
|
-
function query(cb) {
|
|
136
|
-
|
|
138
|
+
function query(cb, authData) {
|
|
139
|
+
const run = () => transaction(async tx => tx.run(cb(getZQL())));
|
|
140
|
+
return authData !== void 0 ? runWithQueryContext({
|
|
141
|
+
authData
|
|
142
|
+
}, run) : run();
|
|
137
143
|
}
|
|
138
144
|
queries && setCustomQueries(queries), setRunner(queryObj => transaction(async tx => tx.run(queryObj)));
|
|
139
145
|
const dummyTransactionInput = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","
|
|
1
|
+
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","runWithQueryContext","getMutationsPermissions","setCustomQueries","getZQL","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","options","email","role","transaction","tx","awaitAsyncTasks","t","query2","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -7,9 +7,10 @@ import { Pool } from "pg";
|
|
|
7
7
|
import { createPermissions } from "./createPermissions.native.js";
|
|
8
8
|
import { createMutators } from "./helpers/createMutators.native.js";
|
|
9
9
|
import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext.native.js";
|
|
10
|
+
import { runWithQueryContext } from "./helpers/queryContext.native.js";
|
|
10
11
|
import { getMutationsPermissions } from "./modelRegistry.native.js";
|
|
11
12
|
import { setCustomQueries } from "./run.native.js";
|
|
12
|
-
import { getZQL,
|
|
13
|
+
import { getZQL, setSchema } from "./state.native.js";
|
|
13
14
|
import { setRunner } from "./zeroRunner.native.js";
|
|
14
15
|
function createZeroServer(param) {
|
|
15
16
|
var {
|
|
@@ -75,30 +76,33 @@ function createZeroServer(param) {
|
|
|
75
76
|
request
|
|
76
77
|
} = param2;
|
|
77
78
|
if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
79
|
+
var response = await runWithQueryContext({
|
|
80
|
+
authData: authData || {}
|
|
81
|
+
}, function () {
|
|
82
|
+
return zeroHandleQueryRequest(function (name, args) {
|
|
83
|
+
if (name.startsWith("permission.")) {
|
|
84
|
+
var table = name.slice(11),
|
|
85
|
+
{
|
|
86
|
+
objOrId
|
|
87
|
+
} = args,
|
|
88
|
+
perm = getMutationsPermissions(table);
|
|
89
|
+
if (!perm) throw new Error(`[permission] no permission defined for table: ${table}`);
|
|
90
|
+
return getZQL()[table].where(function (eb) {
|
|
91
|
+
return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table);
|
|
92
|
+
}).one();
|
|
93
|
+
}
|
|
94
|
+
validateQuery && validateQuery({
|
|
95
|
+
authData,
|
|
96
|
+
queryName: name,
|
|
97
|
+
params: args
|
|
98
|
+
});
|
|
99
|
+
var _$query = mustGetQuery(queries, name);
|
|
100
|
+
return _$query.fn({
|
|
101
|
+
args,
|
|
102
|
+
ctx: authData
|
|
103
|
+
});
|
|
104
|
+
}, schema, request);
|
|
105
|
+
});
|
|
102
106
|
return {
|
|
103
107
|
response
|
|
104
108
|
};
|
|
@@ -148,10 +152,15 @@ function createZeroServer(param) {
|
|
|
148
152
|
throw console.error(`Error running transaction(): ${err}`), err;
|
|
149
153
|
}
|
|
150
154
|
}
|
|
151
|
-
function query(cb) {
|
|
152
|
-
|
|
153
|
-
return
|
|
154
|
-
|
|
155
|
+
function query(cb, authData) {
|
|
156
|
+
var run = function () {
|
|
157
|
+
return transaction(async function (tx) {
|
|
158
|
+
return tx.run(cb(getZQL()));
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
return authData !== void 0 ? runWithQueryContext({
|
|
162
|
+
authData
|
|
163
|
+
}, run) : run();
|
|
155
164
|
}
|
|
156
165
|
queries && setCustomQueries(queries), setRunner(function (queryObj) {
|
|
157
166
|
return transaction(async function (tx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","getMutationsPermissions","setCustomQueries","getZQL","
|
|
1
|
+
{"version":3,"names":["mustGetQuery","PushProcessor","handleQueryRequest","zeroHandleQueryRequest","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","runWithQueryContext","getMutationsPermissions","setCustomQueries","getZQL","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","options","email","role","transaction","tx","awaitAsyncTasks","t","query2","output","dummyTransactionInput","query","cb","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getAuthData } from "../state";
|
|
2
2
|
import { isInZeroMutation, mutatorContext } from "./mutatorContext";
|
|
3
|
+
import { isInQueryContext, queryAuthData } from "./queryContext";
|
|
3
4
|
function getQueryOrMutatorAuthData() {
|
|
4
|
-
return isInZeroMutation() ? mutatorContext().authData : getAuthData();
|
|
5
|
+
return isInZeroMutation() ? mutatorContext().authData : isInQueryContext() ? queryAuthData() : getAuthData();
|
|
5
6
|
}
|
|
6
7
|
export {
|
|
7
8
|
getQueryOrMutatorAuthData
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/getQueryOrMutatorAuthData.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB,sBAAsB;
|
|
4
|
+
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB,sBAAsB;AACjD,SAAS,kBAAkB,qBAAqB;AAIzC,SAAS,4BAA6C;AAC3D,SAAI,iBAAiB,IACZ,eAAe,EAAE,WAEtB,iBAAiB,IACZ,cAAc,IAGhB,YAAY;AACrB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getAuthData } from "../state.mjs";
|
|
2
2
|
import { isInZeroMutation, mutatorContext } from "./mutatorContext.mjs";
|
|
3
|
+
import { isInQueryContext, queryAuthData } from "./queryContext.mjs";
|
|
3
4
|
function getQueryOrMutatorAuthData() {
|
|
4
|
-
return isInZeroMutation() ? mutatorContext().authData : getAuthData();
|
|
5
|
+
return isInZeroMutation() ? mutatorContext().authData : isInQueryContext() ? queryAuthData() : getAuthData();
|
|
5
6
|
}
|
|
6
7
|
export { getQueryOrMutatorAuthData };
|
|
7
8
|
//# sourceMappingURL=getQueryOrMutatorAuthData.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getAuthData","isInZeroMutation","mutatorContext","getQueryOrMutatorAuthData","authData"],"sources":["../../../src/helpers/getQueryOrMutatorAuthData.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;
|
|
1
|
+
{"version":3,"names":["getAuthData","isInZeroMutation","mutatorContext","isInQueryContext","queryAuthData","getQueryOrMutatorAuthData","authData"],"sources":["../../../src/helpers/getQueryOrMutatorAuthData.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;AACjD,SAASC,gBAAA,EAAkBC,aAAA,QAAqB;AAIzC,SAASC,0BAAA,EAA6C;EAC3D,OAAIJ,gBAAA,CAAiB,IACZC,cAAA,CAAe,EAAEI,QAAA,GAEtBH,gBAAA,CAAiB,IACZC,aAAA,CAAc,IAGhBJ,WAAA,CAAY;AACrB","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getAuthData } from "../state.native.js";
|
|
2
2
|
import { isInZeroMutation, mutatorContext } from "./mutatorContext.native.js";
|
|
3
|
+
import { isInQueryContext, queryAuthData } from "./queryContext.native.js";
|
|
3
4
|
function getQueryOrMutatorAuthData() {
|
|
4
|
-
return isInZeroMutation() ? mutatorContext().authData : getAuthData();
|
|
5
|
+
return isInZeroMutation() ? mutatorContext().authData : isInQueryContext() ? queryAuthData() : getAuthData();
|
|
5
6
|
}
|
|
6
7
|
export { getQueryOrMutatorAuthData };
|
|
7
8
|
//# sourceMappingURL=getQueryOrMutatorAuthData.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getAuthData","isInZeroMutation","mutatorContext","getQueryOrMutatorAuthData","authData"],"sources":["../../../src/helpers/getQueryOrMutatorAuthData.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;
|
|
1
|
+
{"version":3,"names":["getAuthData","isInZeroMutation","mutatorContext","isInQueryContext","queryAuthData","getQueryOrMutatorAuthData","authData"],"sources":["../../../src/helpers/getQueryOrMutatorAuthData.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,SAASC,gBAAA,EAAkBC,cAAA,QAAsB;AACjD,SAASC,gBAAA,EAAkBC,aAAA,QAAqB;AAIzC,SAASC,0BAAA,EAA6C;EAC3D,OAAIJ,gBAAA,CAAiB,IACZC,cAAA,CAAe,EAAEI,QAAA,GAEtBH,gBAAA,CAAiB,IACZC,aAAA,CAAc,IAGhBJ,WAAA,CAAY;AACrB","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createAsyncContext } from "@take-out/helpers";
|
|
2
|
+
const asyncContext = createAsyncContext();
|
|
3
|
+
function queryAuthData() {
|
|
4
|
+
return asyncContext.get()?.authData ?? null;
|
|
5
|
+
}
|
|
6
|
+
function isInQueryContext() {
|
|
7
|
+
return !!asyncContext.get();
|
|
8
|
+
}
|
|
9
|
+
function runWithQueryContext(context, fn) {
|
|
10
|
+
return asyncContext.run(context, fn);
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
isInQueryContext,
|
|
14
|
+
queryAuthData,
|
|
15
|
+
runWithQueryContext
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=queryContext.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/helpers/queryContext.ts"],
|
|
4
|
+
"mappings": "AAAA,SAAS,0BAA0B;AAInC,MAAM,eAAe,mBAAkD;AAEhE,SAAS,gBAAiC;AAC/C,SAAO,aAAa,IAAI,GAAG,YAAY;AACzC;AAEO,SAAS,mBAAmB;AACjC,SAAO,CAAC,CAAC,aAAa,IAAI;AAC5B;AAEO,SAAS,oBACd,SACA,IACY;AACZ,SAAO,aAAa,IAAI,SAAS,EAAE;AACrC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createAsyncContext } from "@take-out/helpers";
|
|
2
|
+
const asyncContext = createAsyncContext();
|
|
3
|
+
function queryAuthData() {
|
|
4
|
+
return asyncContext.get()?.authData ?? null;
|
|
5
|
+
}
|
|
6
|
+
function isInQueryContext() {
|
|
7
|
+
return !!asyncContext.get();
|
|
8
|
+
}
|
|
9
|
+
function runWithQueryContext(context, fn) {
|
|
10
|
+
return asyncContext.run(context, fn);
|
|
11
|
+
}
|
|
12
|
+
export { isInQueryContext, queryAuthData, runWithQueryContext };
|
|
13
|
+
//# sourceMappingURL=queryContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAsyncContext","asyncContext","queryAuthData","get","authData","isInQueryContext","runWithQueryContext","context","fn","run"],"sources":["../../../src/helpers/queryContext.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AAInC,MAAMC,YAAA,GAAeD,kBAAA,CAAkD;AAEhE,SAASE,cAAA,EAAiC;EAC/C,OAAOD,YAAA,CAAaE,GAAA,CAAI,GAAGC,QAAA,IAAY;AACzC;AAEO,SAASC,iBAAA,EAAmB;EACjC,OAAO,CAAC,CAACJ,YAAA,CAAaE,GAAA,CAAI;AAC5B;AAEO,SAASG,oBACdC,OAAA,EACAC,EAAA,EACY;EACZ,OAAOP,YAAA,CAAaQ,GAAA,CAAIF,OAAA,EAASC,EAAE;AACrC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createAsyncContext } from "@take-out/helpers";
|
|
2
|
+
var asyncContext = createAsyncContext();
|
|
3
|
+
function queryAuthData() {
|
|
4
|
+
var _asyncContext_get, _asyncContext_get_authData;
|
|
5
|
+
return (_asyncContext_get_authData = (_asyncContext_get = asyncContext.get()) === null || _asyncContext_get === void 0 ? void 0 : _asyncContext_get.authData) !== null && _asyncContext_get_authData !== void 0 ? _asyncContext_get_authData : null;
|
|
6
|
+
}
|
|
7
|
+
function isInQueryContext() {
|
|
8
|
+
return !!asyncContext.get();
|
|
9
|
+
}
|
|
10
|
+
function runWithQueryContext(context, fn) {
|
|
11
|
+
return asyncContext.run(context, fn);
|
|
12
|
+
}
|
|
13
|
+
export { isInQueryContext, queryAuthData, runWithQueryContext };
|
|
14
|
+
//# sourceMappingURL=queryContext.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAsyncContext","asyncContext","queryAuthData","_asyncContext_get","_asyncContext_get_authData","get","authData","isInQueryContext","runWithQueryContext","context","fn","run"],"sources":["../../../src/helpers/queryContext.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AAInC,IAAAC,YAAM,GAAAD,kBAAe;AAEd,SAASE,cAAA,EAAiC;EAC/C,IAAAC,iBAAoB,EAAAC,0BAAmB;EACzC,QAAAA,0BAAA,IAAAD,iBAAA,GAAAF,YAAA,CAAAI,GAAA,gBAAAF,iBAAA,uBAAAA,iBAAA,CAAAG,QAAA,cAAAF,0BAAA,cAAAA,0BAAA;AAEO;AACL,SAAOG,gBAAeA,CAAA,EAAI;EAC5B,SAAAN,YAAA,CAAAI,GAAA;AAEO;AAIL,SAAOG,mBAAiBA,CAAAC,OAAS,EAAEC,EAAA;EACrC,OAAAT,YAAA,CAAAU,GAAA,CAAAF,OAAA,EAAAC,EAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "on-zero",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.33",
|
|
4
4
|
"description": "A typed layer over @rocicorp/zero with queries, mutations, and permissions",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@take-out/helpers": "0.1.
|
|
74
|
+
"@take-out/helpers": "0.1.33",
|
|
75
75
|
"@sinclair/typebox-codegen": "^0.11.1",
|
|
76
76
|
"chokidar": "^4.0.3",
|
|
77
77
|
"citty": "^0.1.6",
|
package/src/createZeroClient.tsx
CHANGED
|
@@ -53,9 +53,7 @@ export function createZeroClient<
|
|
|
53
53
|
}) {
|
|
54
54
|
type ZeroMutators = GetZeroMutators<Models>
|
|
55
55
|
type ZeroInstance = Zero<Schema, ZeroMutators>
|
|
56
|
-
type TableName = keyof
|
|
57
|
-
? keyof ZeroInstance['query']
|
|
58
|
-
: never
|
|
56
|
+
type TableName = keyof Schema['tables'] & string
|
|
59
57
|
|
|
60
58
|
setSchema(schema)
|
|
61
59
|
|
package/src/createZeroServer.ts
CHANGED
|
@@ -8,9 +8,10 @@ import { Pool } from 'pg'
|
|
|
8
8
|
import { createPermissions } from './createPermissions'
|
|
9
9
|
import { createMutators } from './helpers/createMutators'
|
|
10
10
|
import { isInZeroMutation, mutatorContext } from './helpers/mutatorContext'
|
|
11
|
+
import { runWithQueryContext } from './helpers/queryContext'
|
|
11
12
|
import { getMutationsPermissions } from './modelRegistry'
|
|
12
13
|
import { setCustomQueries } from './run'
|
|
13
|
-
import { getZQL,
|
|
14
|
+
import { getZQL, setSchema } from './state'
|
|
14
15
|
import { setRunner } from './zeroRunner'
|
|
15
16
|
|
|
16
17
|
import type {
|
|
@@ -167,38 +168,45 @@ export function createZeroServer<
|
|
|
167
168
|
)
|
|
168
169
|
}
|
|
169
170
|
|
|
170
|
-
|
|
171
|
-
|
|
171
|
+
const response = await runWithQueryContext(
|
|
172
|
+
{ authData: authData || ({} as AuthData) },
|
|
173
|
+
() =>
|
|
174
|
+
zeroHandleQueryRequest(
|
|
175
|
+
(name, args) => {
|
|
176
|
+
// per-model permission queries registered by on-zero at runtime
|
|
177
|
+
if (name.startsWith('permission.')) {
|
|
178
|
+
const table = name.slice('permission.'.length)
|
|
179
|
+
const { objOrId } = args as {
|
|
180
|
+
objOrId: string | Record<string, any>
|
|
181
|
+
}
|
|
182
|
+
const perm = getMutationsPermissions(table)
|
|
183
|
+
if (!perm) {
|
|
184
|
+
throw new Error(`[permission] no permission defined for table: ${table}`)
|
|
185
|
+
}
|
|
186
|
+
return (getZQL() as any)[table]
|
|
187
|
+
.where((eb: any) => {
|
|
188
|
+
return permissions.buildPermissionQuery(
|
|
189
|
+
authData,
|
|
190
|
+
eb,
|
|
191
|
+
perm,
|
|
192
|
+
objOrId,
|
|
193
|
+
table
|
|
194
|
+
)
|
|
195
|
+
})
|
|
196
|
+
.one()
|
|
197
|
+
}
|
|
172
198
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const table = name.slice('permission.'.length)
|
|
178
|
-
const { objOrId } = args as {
|
|
179
|
-
objOrId: string | Record<string, any>
|
|
180
|
-
}
|
|
181
|
-
const perm = getMutationsPermissions(table)
|
|
182
|
-
if (!perm) {
|
|
183
|
-
throw new Error(`[permission] no permission defined for table: ${table}`)
|
|
184
|
-
}
|
|
185
|
-
return (getZQL() as any)[table]
|
|
186
|
-
.where((eb: any) => {
|
|
187
|
-
return permissions.buildPermissionQuery(authData, eb, perm, objOrId, table)
|
|
188
|
-
})
|
|
189
|
-
.one()
|
|
190
|
-
}
|
|
199
|
+
// run validation hook if provided (must be sync - throw to reject)
|
|
200
|
+
if (validateQuery) {
|
|
201
|
+
validateQuery({ authData, queryName: name, params: args })
|
|
202
|
+
}
|
|
191
203
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return query.fn({ args, ctx: authData })
|
|
199
|
-
},
|
|
200
|
-
schema,
|
|
201
|
-
request
|
|
204
|
+
const query = (mustGetQuery as any)(queries, name)
|
|
205
|
+
return query.fn({ args, ctx: authData })
|
|
206
|
+
},
|
|
207
|
+
schema,
|
|
208
|
+
request
|
|
209
|
+
)
|
|
202
210
|
)
|
|
203
211
|
|
|
204
212
|
return {
|
|
@@ -268,11 +276,18 @@ export function createZeroServer<
|
|
|
268
276
|
}
|
|
269
277
|
|
|
270
278
|
function query<R>(
|
|
271
|
-
cb: (q: QueryBuilder) => Query<any, Schema, R
|
|
279
|
+
cb: (q: QueryBuilder) => Query<any, Schema, R>,
|
|
280
|
+
authData?: AuthData | null
|
|
272
281
|
): Promise<HumanReadable<R>> {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
282
|
+
const run = () =>
|
|
283
|
+
transaction(async (tx) => {
|
|
284
|
+
return tx.run(cb(getZQL()))
|
|
285
|
+
}) as any
|
|
286
|
+
|
|
287
|
+
if (authData !== undefined) {
|
|
288
|
+
return runWithQueryContext({ authData }, run)
|
|
289
|
+
}
|
|
290
|
+
return run()
|
|
276
291
|
}
|
|
277
292
|
|
|
278
293
|
// register for global run() helper
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getAuthData } from '../state'
|
|
2
2
|
import { isInZeroMutation, mutatorContext } from './mutatorContext'
|
|
3
|
+
import { isInQueryContext, queryAuthData } from './queryContext'
|
|
3
4
|
|
|
4
5
|
import type { AuthData } from '../types'
|
|
5
6
|
|
|
@@ -7,6 +8,9 @@ export function getQueryOrMutatorAuthData(): AuthData | null {
|
|
|
7
8
|
if (isInZeroMutation()) {
|
|
8
9
|
return mutatorContext().authData as AuthData
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
+
if (isInQueryContext()) {
|
|
12
|
+
return queryAuthData()
|
|
13
|
+
}
|
|
14
|
+
// client-side fallback (browser global is fine, single-threaded)
|
|
11
15
|
return getAuthData()
|
|
12
16
|
}
|