on-zero 0.1.34 → 0.1.35-1772258140754
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/createZeroServer.cjs +42 -29
- package/dist/cjs/createZeroServer.js +34 -21
- package/dist/cjs/createZeroServer.js.map +2 -2
- package/dist/cjs/createZeroServer.native.js +48 -33
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.cjs +10 -1
- package/dist/cjs/helpers/mutatorContext.js +9 -1
- package/dist/cjs/helpers/mutatorContext.js.map +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js +12 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +40 -22
- package/dist/esm/createZeroServer.js.map +2 -2
- package/dist/esm/createZeroServer.mjs +43 -30
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +49 -34
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.js +9 -1
- package/dist/esm/helpers/mutatorContext.js.map +1 -1
- package/dist/esm/helpers/mutatorContext.mjs +9 -2
- package/dist/esm/helpers/mutatorContext.mjs.map +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +11 -2
- package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +4 -3
- package/src/createZeroServer.ts +73 -25
- package/src/helpers/mutatorContext.ts +19 -1
- package/types/createZeroServer.d.ts +16 -5
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/helpers/mutatorContext.d.ts +3 -1
- package/types/helpers/mutatorContext.d.ts.map +1 -1
|
@@ -45,7 +45,8 @@ function createZeroServer({
|
|
|
45
45
|
queries,
|
|
46
46
|
validateQuery,
|
|
47
47
|
validateMutation,
|
|
48
|
-
defaultAllowAdminRole = "all"
|
|
48
|
+
defaultAllowAdminRole = "all",
|
|
49
|
+
defaultMutateAuthData = {}
|
|
49
50
|
}) {
|
|
50
51
|
(0, import_state.setSchema)(schema);
|
|
51
52
|
const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'),
|
|
@@ -80,7 +81,7 @@ function createZeroServer({
|
|
|
80
81
|
response = await processor.process(mutators, request);
|
|
81
82
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
82
83
|
const id = (0, import_helpers.randomId)();
|
|
83
|
-
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(task =>
|
|
84
|
+
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(task => (0, import_mutatorContext.runWithAuthScope)(authData, task))).then(() => {
|
|
84
85
|
console.info(`[push] async tasks complete ${id}`);
|
|
85
86
|
}).catch(err => {
|
|
86
87
|
console.error("[push] error: async tasks failed \u{1F61E}", err);
|
|
@@ -119,34 +120,46 @@ function createZeroServer({
|
|
|
119
120
|
});
|
|
120
121
|
}, schema, request))
|
|
121
122
|
};
|
|
122
|
-
},
|
|
123
|
-
mutate = async (run, authData, options) => {
|
|
124
|
-
const asyncTasks = [],
|
|
125
|
-
mutators = (0, import_createMutators.createMutators)({
|
|
126
|
-
models,
|
|
127
|
-
environment: "server",
|
|
128
|
-
asyncTasks,
|
|
129
|
-
authData: {
|
|
130
|
-
id: "",
|
|
131
|
-
email: "admin@start.chat",
|
|
132
|
-
role: "admin",
|
|
133
|
-
...authData
|
|
134
|
-
},
|
|
135
|
-
createServerActions,
|
|
136
|
-
can: permissions.can,
|
|
137
|
-
validateMutation
|
|
138
|
-
});
|
|
139
|
-
if (await transaction(async tx => {
|
|
140
|
-
await run(tx, mutators);
|
|
141
|
-
}), asyncTasks.length) if (options?.awaitAsyncTasks) await Promise.all(asyncTasks.map(t => t()));else {
|
|
142
|
-
const id = (0, import_helpers.randomId)();
|
|
143
|
-
console.info(`[mutate] running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(t => t())).then(() => {
|
|
144
|
-
console.info(`[mutate] async tasks complete ${id}`);
|
|
145
|
-
}).catch(err => {
|
|
146
|
-
console.error("[mutate] error: async tasks failed", err);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
123
|
};
|
|
124
|
+
async function runMutate(modelName, mutatorName, mutatorArg, authData) {
|
|
125
|
+
if (!authData) {
|
|
126
|
+
const scoped = (0, import_mutatorContext.getScopedAuthData)();
|
|
127
|
+
scoped && (authData = scoped);
|
|
128
|
+
}
|
|
129
|
+
const asyncTasks = [],
|
|
130
|
+
mutator = (0, import_createMutators.createMutators)({
|
|
131
|
+
models,
|
|
132
|
+
environment: "server",
|
|
133
|
+
asyncTasks,
|
|
134
|
+
authData: {
|
|
135
|
+
...defaultMutateAuthData,
|
|
136
|
+
...authData
|
|
137
|
+
},
|
|
138
|
+
createServerActions,
|
|
139
|
+
can: permissions.can,
|
|
140
|
+
validateMutation
|
|
141
|
+
})[modelName][mutatorName];
|
|
142
|
+
if (await transaction(async tx => {
|
|
143
|
+
await mutator(tx, mutatorArg);
|
|
144
|
+
}), asyncTasks.length) {
|
|
145
|
+
const id = (0, import_helpers.randomId)(),
|
|
146
|
+
resolvedAuth = authData ?? null;
|
|
147
|
+
console.info(`[mutate] running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(t => (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, t))).then(() => {
|
|
148
|
+
console.info(`[mutate] async tasks complete ${id}`);
|
|
149
|
+
}).catch(err => {
|
|
150
|
+
console.error("[mutate] error: async tasks failed", err);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const mutate = new Proxy({}, {
|
|
155
|
+
get(_, modelName) {
|
|
156
|
+
return new Proxy({}, {
|
|
157
|
+
get(_2, mutatorName) {
|
|
158
|
+
return (arg, authData) => runMutate(modelName, mutatorName, arg, authData);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
150
163
|
async function transaction(query2) {
|
|
151
164
|
try {
|
|
152
165
|
if ((0, import_mutatorContext.isInZeroMutation)()) {
|
|
@@ -26,7 +26,8 @@ function createZeroServer({
|
|
|
26
26
|
queries,
|
|
27
27
|
validateQuery,
|
|
28
28
|
validateMutation,
|
|
29
|
-
defaultAllowAdminRole = "all"
|
|
29
|
+
defaultAllowAdminRole = "all",
|
|
30
|
+
defaultMutateAuthData = {}
|
|
30
31
|
}) {
|
|
31
32
|
(0, import_state.setSchema)(schema);
|
|
32
33
|
const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'), zeroDb = (0, import_pg2.zeroNodePg)(
|
|
@@ -56,7 +57,7 @@ function createZeroServer({
|
|
|
56
57
|
}), response = await processor.process(mutators, request);
|
|
57
58
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
58
59
|
const id = (0, import_helpers.randomId)();
|
|
59
|
-
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((task) =>
|
|
60
|
+
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((task) => (0, import_mutatorContext.runWithAuthScope)(authData, task))).then(() => {
|
|
60
61
|
console.info(`[push] async tasks complete ${id}`);
|
|
61
62
|
}).catch((err) => {
|
|
62
63
|
console.error("[push] error: async tasks failed \u{1F61E}", err);
|
|
@@ -98,35 +99,47 @@ function createZeroServer({
|
|
|
98
99
|
)
|
|
99
100
|
)
|
|
100
101
|
};
|
|
101
|
-
}
|
|
102
|
-
|
|
102
|
+
};
|
|
103
|
+
async function runMutate(modelName, mutatorName, mutatorArg, authData) {
|
|
104
|
+
if (!authData) {
|
|
105
|
+
const scoped = (0, import_mutatorContext.getScopedAuthData)();
|
|
106
|
+
scoped && (authData = scoped);
|
|
107
|
+
}
|
|
108
|
+
const asyncTasks = [], mutator = (0, import_createMutators.createMutators)({
|
|
103
109
|
models,
|
|
104
110
|
environment: "server",
|
|
105
111
|
asyncTasks,
|
|
106
112
|
authData: {
|
|
107
|
-
|
|
108
|
-
email: "admin@start.chat",
|
|
109
|
-
role: "admin",
|
|
113
|
+
...defaultMutateAuthData,
|
|
110
114
|
...authData
|
|
111
115
|
},
|
|
112
116
|
createServerActions,
|
|
113
117
|
can: permissions.can,
|
|
114
118
|
validateMutation
|
|
115
|
-
});
|
|
119
|
+
})[modelName][mutatorName];
|
|
116
120
|
if (await transaction(async (tx) => {
|
|
117
|
-
await
|
|
118
|
-
}), asyncTasks.length)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
console.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
121
|
+
await mutator(tx, mutatorArg);
|
|
122
|
+
}), asyncTasks.length) {
|
|
123
|
+
const id = (0, import_helpers.randomId)(), resolvedAuth = authData ?? null;
|
|
124
|
+
console.info(`[mutate] running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((t) => (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, t))).then(() => {
|
|
125
|
+
console.info(`[mutate] async tasks complete ${id}`);
|
|
126
|
+
}).catch((err) => {
|
|
127
|
+
console.error("[mutate] error: async tasks failed", err);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const mutate = new Proxy({}, {
|
|
132
|
+
get(_, modelName) {
|
|
133
|
+
return new Proxy(
|
|
134
|
+
{},
|
|
135
|
+
{
|
|
136
|
+
get(_2, mutatorName) {
|
|
137
|
+
return (arg, authData) => runMutate(modelName, mutatorName, arg, authData);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
130
143
|
async function transaction(query2) {
|
|
131
144
|
try {
|
|
132
145
|
if ((0, import_mutatorContext.isInZeroMutation)()) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B,2BAC7B,YAA8B,8BAC9B,gBAA6D,kCAC7DA,aAA2B,8CAC3B,iBAAuC,8BACvCA,aAAqB,eAErB,2BAAkC,gCAClC,wBAA+B,qCAC/B,
|
|
5
|
-
"names": ["import_pg", "zeroHandleQueryRequest", "query"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["import_pg", "zeroHandleQueryRequest", "_", "query"]
|
|
6
6
|
}
|
|
@@ -48,7 +48,8 @@ function createZeroServer(param) {
|
|
|
48
48
|
queries,
|
|
49
49
|
validateQuery,
|
|
50
50
|
validateMutation,
|
|
51
|
-
defaultAllowAdminRole = "all"
|
|
51
|
+
defaultAllowAdminRole = "all",
|
|
52
|
+
defaultMutateAuthData = {}
|
|
52
53
|
} = param;
|
|
53
54
|
(0, import_state.setSchema)(schema);
|
|
54
55
|
var dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'),
|
|
@@ -85,7 +86,7 @@ function createZeroServer(param) {
|
|
|
85
86
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
86
87
|
var id = (0, import_helpers.randomId)();
|
|
87
88
|
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(function (task) {
|
|
88
|
-
return
|
|
89
|
+
return (0, import_mutatorContext.runWithAuthScope)(authData, task);
|
|
89
90
|
})).then(function () {
|
|
90
91
|
console.info(`[push] async tasks complete ${id}`);
|
|
91
92
|
}).catch(function (err) {
|
|
@@ -133,38 +134,52 @@ function createZeroServer(param) {
|
|
|
133
134
|
return {
|
|
134
135
|
response
|
|
135
136
|
};
|
|
136
|
-
},
|
|
137
|
-
mutate = async function (run, authData, options) {
|
|
138
|
-
var asyncTasks = [],
|
|
139
|
-
mutators = (0, import_createMutators.createMutators)({
|
|
140
|
-
models,
|
|
141
|
-
environment: "server",
|
|
142
|
-
asyncTasks,
|
|
143
|
-
authData: {
|
|
144
|
-
id: "",
|
|
145
|
-
email: "admin@start.chat",
|
|
146
|
-
role: "admin",
|
|
147
|
-
...authData
|
|
148
|
-
},
|
|
149
|
-
createServerActions,
|
|
150
|
-
can: permissions.can,
|
|
151
|
-
validateMutation
|
|
152
|
-
});
|
|
153
|
-
if (await transaction(async function (tx) {
|
|
154
|
-
await run(tx, mutators);
|
|
155
|
-
}), asyncTasks.length) if (options?.awaitAsyncTasks) await Promise.all(asyncTasks.map(function (t) {
|
|
156
|
-
return t();
|
|
157
|
-
}));else {
|
|
158
|
-
var id = (0, import_helpers.randomId)();
|
|
159
|
-
console.info(`[mutate] running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(function (t) {
|
|
160
|
-
return t();
|
|
161
|
-
})).then(function () {
|
|
162
|
-
console.info(`[mutate] async tasks complete ${id}`);
|
|
163
|
-
}).catch(function (err) {
|
|
164
|
-
console.error("[mutate] error: async tasks failed", err);
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
137
|
};
|
|
138
|
+
async function runMutate(modelName, mutatorName, mutatorArg, authData) {
|
|
139
|
+
if (!authData) {
|
|
140
|
+
var scoped = (0, import_mutatorContext.getScopedAuthData)();
|
|
141
|
+
scoped && (authData = scoped);
|
|
142
|
+
}
|
|
143
|
+
var asyncTasks = [],
|
|
144
|
+
mutators = (0, import_createMutators.createMutators)({
|
|
145
|
+
models,
|
|
146
|
+
environment: "server",
|
|
147
|
+
asyncTasks,
|
|
148
|
+
authData: {
|
|
149
|
+
...defaultMutateAuthData,
|
|
150
|
+
...authData
|
|
151
|
+
},
|
|
152
|
+
createServerActions,
|
|
153
|
+
can: permissions.can,
|
|
154
|
+
validateMutation
|
|
155
|
+
}),
|
|
156
|
+
modelMutators = mutators[modelName],
|
|
157
|
+
mutator = modelMutators[mutatorName];
|
|
158
|
+
if (await transaction(async function (tx) {
|
|
159
|
+
await mutator(tx, mutatorArg);
|
|
160
|
+
}), asyncTasks.length) {
|
|
161
|
+
var id = (0, import_helpers.randomId)(),
|
|
162
|
+
resolvedAuth = authData ?? null;
|
|
163
|
+
console.info(`[mutate] running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map(function (t) {
|
|
164
|
+
return (0, import_mutatorContext.runWithAuthScope)(resolvedAuth, t);
|
|
165
|
+
})).then(function () {
|
|
166
|
+
console.info(`[mutate] async tasks complete ${id}`);
|
|
167
|
+
}).catch(function (err) {
|
|
168
|
+
console.error("[mutate] error: async tasks failed", err);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
var mutate = new Proxy({}, {
|
|
173
|
+
get(_, modelName) {
|
|
174
|
+
return new Proxy({}, {
|
|
175
|
+
get(_2, mutatorName) {
|
|
176
|
+
return function (arg, authData) {
|
|
177
|
+
return runMutate(modelName, mutatorName, arg, authData);
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
});
|
|
168
183
|
async function transaction(query2) {
|
|
169
184
|
try {
|
|
170
185
|
if ((0, import_mutatorContext.isInZeroMutation)()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServer_exports","__export","createZeroServer","module","exports","import_zero","require","import_pg","import_server","import_pg2","import_helpers","import_pg3","import_createPermissions","import_createMutators","import_mutatorContext","import_queryContext","import_modelRegistry","import_run","import_state","import_zeroRunner","param","createServerActions","database","schema","models","queries","validateQuery","validateMutation","defaultAllowAdminRole","setSchema","dbString","assertString","zeroDb","zeroNodePg","Pool","connectionString","ssl","includes","rejectUnauthorized","permissions","createPermissions","environment","adminRoleMode","processor","PushProcessor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","createMutators","can","response","process","length","id","randomId","console","info","Promise","all","map","task","then","catch","err","error","handleQueryRequest","Error","runWithQueryContext","name","args","startsWith","table","slice","objOrId","perm","getMutationsPermissions","getZQL","where","eb","buildPermissionQuery","one","queryName","params","_$query","mustGetQuery","fn","ctx","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroServer_exports","__export","createZeroServer","module","exports","import_zero","require","import_pg","import_server","import_pg2","import_helpers","import_pg3","import_createPermissions","import_createMutators","import_mutatorContext","import_queryContext","import_modelRegistry","import_run","import_state","import_zeroRunner","param","createServerActions","database","schema","models","queries","validateQuery","validateMutation","defaultAllowAdminRole","defaultMutateAuthData","setSchema","dbString","assertString","zeroDb","zeroNodePg","Pool","connectionString","ssl","includes","rejectUnauthorized","permissions","createPermissions","environment","adminRoleMode","processor","PushProcessor","handleMutationRequest","param2","authData","request","skipAsyncTasks","asyncTasks","mutators","createMutators","can","response","process","length","id","randomId","console","info","Promise","all","map","task","runWithAuthScope","then","catch","err","error","handleQueryRequest","Error","runWithQueryContext","name","args","startsWith","table","slice","objOrId","perm","getMutationsPermissions","getZQL","where","eb","buildPermissionQuery","one","queryName","params","_$query","mustGetQuery","fn","ctx","runMutate","modelName","mutatorName","mutatorArg","scoped","getScopedAuthData","modelMutators","mutator","transaction","tx","resolvedAuth","t","mutate","Proxy","get","_","_2","arg","query2","isInZeroMutation","mutatorContext","output","dummyTransactionInput","query","cb","run","setCustomQueries","setRunner","queryObj","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,wBAAA;AAAAC,QAAA,CAAAD,wBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA6B,CAAAK,wBAC7B;AAkEO,IAAAK,WAAS,GAAAC,OAAA,CAId;EAAAC,SAAA,GAAAD,OAAA;EAAAE,aAAA,GAAAF,OAAA;EAAAG,UAAA,GAAAH,OAAA;EAAAI,cAAA,GAAAJ,OAAA;EAAAK,UAAA,GAAAL,OAAA;EAAAM,wBAAA,GAAAN,OAAA;EAAAO,qBAAA,GAAAP,OAAA;EAAAQ,qBAAA,GAAAR,OAAA;EAAAS,mBAAA,GAAAT,OAAA;EAAAU,oBAAA,GAAAV,OAAA;EAAAW,UAAA,GAAAX,OAAA;EAAAY,YAAA,GAAAZ,OAAA;EAAAa,iBAAA,GAAAb,OAAA;AAAA,SACAJ,iBAAAkB,KAAA;EACA;IAAAC,mBAAA;IAAAC,QAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,aAAA;IAAAC,gBAAA;IAAAC,qBAAA;IAAAC,qBAAA;EAAA,IAAAT,KAAA;EACA,IAAAF,YAAA,CAAAY,SAAA,EAAAP,MAAA;EACA,IAAAQ,QAAA,OAAArB,cAAA,CAAAsB,YAAA,EAAAV,QAAA;IAAAW,MAAA,OAAAxB,UAAA,CAAAyB,UAAA,EAAAX,MAAA,MAAAZ,UAAA,CAAAwB,IAAA;MACAC,gBAAA,EAAAL,QAAA;MACA;MACAM,GAAA,EAAAN,QAAA,CAAAO,QAAA;QACAC,kBAAA,EAAwB;MACxB;IACF,CAgCG;IAAAC,WAAA,OAAA5B,wBAAA,CAAA6B,iBAAA;MACDC,WAAA;MAEAnB,MAAM;MAGJoB,aAAA,EAAAf;IAAA,EACA;IAAAgB,SAAI,OAAArC,SAAK,CAAAsC,aAAA,CAAAZ,MAAA;IAAAa,qBAAA,kBAAAA,CAAAC,MAAA;MAAA,IACP;UAAAC,QAAA;UAAAC,OAAkB;UAAAC;QAAA,IAAAH,MAAA;QAAAI,UAAA;QAAAC,QAAA,OAAAvC,qBAAA,CAAAwC,cAAA;UAAAF,UAAA;UAElBG,GAAA,EAAKd,WAAS,CAAAc,GAAA;UAGfjC,mBAAA;UAGGqB,WAAA,UAAc;UAClBlB,MAAA;UACAwB,QAAA;UACArB;QACD,EAEK;QAAA4B,QAAA,GAAY,MAAIX,SAAA,CAAAY,OAAA,CAAAJ,QAAc,EAAMH,OAEpC;MACJ,KAAAC,cAAA,IAAAC,UAAA,CAAAM,MAAA;QACA,IAAAC,EAAA,OAAAhD,cAAA,CAAAiD,QAAA;QACAC,OAAA,CAAAC,IAAA,yCAAAV,UAAA,CAAAM,MAAA,OAAAC,EAAA,KAAAI,OAAA,CAAAC,GAAA,CAAAZ,UAAA,CAAAa,GAAA,WAAAC,IAAA;UAKI,WAAAnD,qBAAA,CAAAoD,gBAAA,EAAAlB,QAAA,EAAAiB,IAAA;QAEJ,IAAME,IAAA,aAA6B;UAGjCP,OAAA,CAAAC,IAAA,gCAAAH,EAAA;QACA,GAAAU,KAAK,WAAYC,GAAA;UACjBT,OAAA,CAAAU,KAAA,+CAAAD,GAAA;QACA;MAAa;MACb,OACA;QACAd,QAAA;QACDJ;MAMD;IACE;IAAAoB,kBAAW,kBAAAA,CAAAxB,MAAS;MACpB;QAAAC,QAAQ;QAAKC;MAAA,IAAAF,MAAA;MAGT,KAAAtB,OAAQ,EACV,MACC,IAAO+C,KAAA,2HAAQ;MACd,IAAAjB,QAAQ,SAAM,IAAAxC,mBAAA,CAAA0D,mBAAuC;QACvDzB,QAAC,EAAAA,QAAA;MACL;QAEA,OAAO,IAAAxC,aAAA,CAAA+D,kBAAA,YAAAG,IAAA,EAAAC,IAAA;UACL,IAAAD,IAAA,CAAAE,UAAA;YACA,IAAAC,KAAA,GAAAH,IAAA,CAAAI,KAAA;cAAA;gBAAAC;cAAA,IAAAJ,IAAA;cAAAK,IAAA,OAAAhE,oBAAA,CAAAiE,uBAAA,EAAAJ,KAAA;YACF,KAAAG,IAAA,EAGI,UAAAR,KAAqB,kDAAOK,KAAA;YAChC,WAAA3D,YAAA,CAAAgE,MAAA,IAAAL,KAAA,EAAAM,KAAA,WAAAC,EAAA;cACA,OAAA5C,WAAA,CAAA6C,oBAAA,CAAArC,QAAA,EAAAoC,EAAA,EAAAJ,IAAA,EAAAD,OAAA,EAAAF,KAAA;YAII,GAAAS,GAAA;UACA;UACF5D,aAAU,IAAAA,aAAA;YACRsB,QAAA;YAEFuC,SAAA,EAAAb,IAAA;YA4CFc,MAAO,EAAAb;UACL;UAzCA,IAAEc,OAAA,GAAU,IAAApF,WAA6B,CAAAqF,YAAA,EAAAjE,OAAA,EAAAiD,IAAA;UACzC,OAAAe,OACE,CAAAE,EAAA;YACEhB,IAAC;YAECiB,GAAA,EAAA5C;UACE;QAKA,GAAAzB,MAAA,EAAA0B,OAAK;MACH;MAEF;QAEuBM;MACjB;IACA;EACA,eACAsC,UAAAC,SAAA,EAAAC,WAAA,EAAAC,UAAA,EAAAhD,QAAA;IAAA,KAAAA,QACA;MAAA,IAAAiD,MAEH,GACA,EAAI,EAAAnF,qBAAA,CAAAoF,iBAAA;MAAAD,MACT,KAAAjD,QAAA,GAAAiD,MAAA;IAGA;IAKuC,IAAA9C,UACzC;MAAAC,QAAA,OAAAvC,qBAAA,CAAAwC,cAAA;QAAA7B,MACA;QAAAkB,WACA;QAAAS,UACF;QACJH,QAAA;UAIA,GAAAnB,qBAAA;UACF,GAAAmB;QAEA;QAOE3B,mBAAe;QACbiC,GAAA,EAAAd,WAAM,CAAAc,GAAS;QACX3B;MAGN;MAAAwE,aAAA,GAAA/C,QAAA,CAAA0C,SAAA;MAAAM,OAAA,GAAAD,aAAA,CAAAJ,WAAA;IAEA,UAAMM,WAA0C,iBAE/BC,EAAA;MACf,MAAAF,OAAA,CAAAE,EAAA,EAAAN,UAAA;IAAA,EACA,EAAA7C,UAAA,CAAaM,MAAA;MACb,IAAAC,EAAA,OAAAhD,cAAA,CAAAiD,QAAA;QAAA4C,YAAA,GAAAvD,QAAA;MACAY,OAAA,CAAAC,IAAU,iCAAAV,UAAA,CAAAM,MAAA,OAAAC,EAAA,KAAAI,OAAA,CAAAC,GAAA,CAAAZ,UAAA,CAAAa,GAAA,WAAAwC,CAAA;QACR,OAAG,IAAA1F,qBAAA,CAAAoD,gBAAA,EAAAqC,YAAA,EAAAC,CAAA;MAAA,EACH,EAAArC,IAAG;QACLP,OAAA,CAAAC,IAAA,kCAAAH,EAAA;MACA,GAAAU,KAAA,WAAAC,GAAA;QACAT,OAAK,CAAAU,KAAA,qCAAY,EAAAD,GAAA;MACjB;IACF;EAUA;EAHE,IAAAoC,MAAM,OAAAC,KAAY;IACpBC,GAACA,CAEGC,CAAA,EAAAd,SAAW;MACb,OAAM,IAAAY,KAAK;QAEXC,IAAAE,EAAQ,EAAAd,WAAK;UAGT,OAAQ,UAAKe,GAAA,EAAA9D,QAAA;YAEd,OAAO6C,SAAQ,CAAAC,SAAA,EAAAC,WAAA,EAAAe,GAAA,EAAA9D,QAAA;UACd;QACD;MACL;IACF;EAGA;EAAqD,eAC5CqD,WAAmBA,CAAAU,MAAA;IACxB;MAAW,IACR,IAAAjG,qBAAA,CAAAkG,gBAAA;QACD;UAAAV;QAAA,QAAAxF,qBAAA,CAAAmG,cAAA;QAAA,OACM,MAAGF,MAAA,CAAAT,EAAA,CAAqB;MAC1B;MACiD,IACnDY,MAAA,SAAAjF,MAAA,CAAAoE,WAAA,CAAAU,MAAA,EAAAI,qBAAA;MAAA,OACFD,MAAA;IAAA,EACF,OAAA7C,GAAA;MACF,MAAAT,OAAA,CAAAU,KAAA,iCAAAD,GAAA,KAAAA,GAAA;IACD;EAED;EAIE,SAAI+C,MAAAC,EAAA,EAAArE,QAAA;IACF,IAAAsE,GAAA,GAAI,SAAAA,CAAA;MACF,OAAAjB,WAAW,iBAAIC,EAAA;QACf,OAAOA,EAAA,CAAAgB,GAAM,CAAAD,EAAA,KAAMnG,YAAE,CAAAgE,MAAA;MACvB;IAGA;IACF,OAAAlC,QAAc,kBAAAjC,mBAAA,CAAA0D,mBAAA;MACZzB;IAEF,GAAAsE,GAAA,IAAAA,GAAA;EACF;EAEA7F,OAAA,IAAS,IACPR,UACA,CAAAsG,gBAC2B,EAAA9F,OAAA,OAAAN,iBAAA,CAAAqG,SAAA,YAAAC,QAAA;IAC3B,OAAMpB,WACJ,iBAAYC,EAAA,EAAO;MAIrB,OAAIA,EAAA,CAAAgB,GAAA,CAAAG,QAAa;IAInB;EAGI;EAYJ,IAAAN,qBAAM;IACJO,aAAA,EAAe;IACfC,QAAA,EAAU;IACVC,UAAA,EAAY;IACZC,cAAA,EAAgB;EAClB;EAEA,OAAO;IACL/E,qBAAA;IACAyB,kBAAA;IACA8B,WAAA;IACAI,MAAA;IACAW;EACF;AACF","ignoreList":[]}
|
|
@@ -20,13 +20,16 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
20
20
|
}), mod);
|
|
21
21
|
var mutatorContext_exports = {};
|
|
22
22
|
__export(mutatorContext_exports, {
|
|
23
|
+
getScopedAuthData: () => getScopedAuthData,
|
|
23
24
|
isInZeroMutation: () => isInZeroMutation,
|
|
24
25
|
mutatorContext: () => mutatorContext,
|
|
26
|
+
runWithAuthScope: () => runWithAuthScope,
|
|
25
27
|
runWithContext: () => runWithContext
|
|
26
28
|
});
|
|
27
29
|
module.exports = __toCommonJS(mutatorContext_exports);
|
|
28
30
|
var import_helpers = require("@take-out/helpers");
|
|
29
|
-
const asyncContext = (0, import_helpers.createAsyncContext)()
|
|
31
|
+
const asyncContext = (0, import_helpers.createAsyncContext)(),
|
|
32
|
+
authScopeContext = (0, import_helpers.createAsyncContext)();
|
|
30
33
|
function mutatorContext() {
|
|
31
34
|
const currentContext = asyncContext.get();
|
|
32
35
|
if (!currentContext) throw new Error("mutatorContext must be called within a mutator");
|
|
@@ -37,4 +40,10 @@ function isInZeroMutation() {
|
|
|
37
40
|
}
|
|
38
41
|
function runWithContext(context, fn) {
|
|
39
42
|
return asyncContext.run(context, fn);
|
|
43
|
+
}
|
|
44
|
+
function getScopedAuthData() {
|
|
45
|
+
return isInZeroMutation() ? mutatorContext().authData : authScopeContext.get() ?? void 0;
|
|
46
|
+
}
|
|
47
|
+
function runWithAuthScope(authData, fn) {
|
|
48
|
+
return authScopeContext.run(authData, fn);
|
|
40
49
|
}
|
|
@@ -14,13 +14,15 @@ var __export = (target, all) => {
|
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
15
|
var mutatorContext_exports = {};
|
|
16
16
|
__export(mutatorContext_exports, {
|
|
17
|
+
getScopedAuthData: () => getScopedAuthData,
|
|
17
18
|
isInZeroMutation: () => isInZeroMutation,
|
|
18
19
|
mutatorContext: () => mutatorContext,
|
|
20
|
+
runWithAuthScope: () => runWithAuthScope,
|
|
19
21
|
runWithContext: () => runWithContext
|
|
20
22
|
});
|
|
21
23
|
module.exports = __toCommonJS(mutatorContext_exports);
|
|
22
24
|
var import_helpers = require("@take-out/helpers");
|
|
23
|
-
const asyncContext = (0, import_helpers.createAsyncContext)();
|
|
25
|
+
const asyncContext = (0, import_helpers.createAsyncContext)(), authScopeContext = (0, import_helpers.createAsyncContext)();
|
|
24
26
|
function mutatorContext() {
|
|
25
27
|
const currentContext = asyncContext.get();
|
|
26
28
|
if (!currentContext)
|
|
@@ -33,4 +35,10 @@ function isInZeroMutation() {
|
|
|
33
35
|
function runWithContext(context, fn) {
|
|
34
36
|
return asyncContext.run(context, fn);
|
|
35
37
|
}
|
|
38
|
+
function getScopedAuthData() {
|
|
39
|
+
return isInZeroMutation() ? mutatorContext().authData : authScopeContext.get() ?? void 0;
|
|
40
|
+
}
|
|
41
|
+
function runWithAuthScope(authData, fn) {
|
|
42
|
+
return authScopeContext.run(authData, fn);
|
|
43
|
+
}
|
|
36
44
|
//# sourceMappingURL=mutatorContext.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/mutatorContext.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAmC;AAInC,MAAM,mBAAe,mCAAmC;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAmC;AAInC,MAAM,mBAAe,mCAAmC,GAGlD,uBAAmB,mCAAoC;AAEtD,SAAS,iBAAiC;AAC/C,QAAM,iBAAiB,aAAa,IAAI;AACxC,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,gDAAgD;AAGlE,SAAO;AACT;AAEO,SAAS,mBAAmB;AACjC,SAAO,CAAC,CAAC,aAAa,IAAI;AAC5B;AAEO,SAAS,eACd,SACA,IACY;AACZ,SAAO,aAAa,IAAI,SAAS,EAAE;AACrC;AAGO,SAAS,oBAAiD;AAC/D,SAAI,iBAAiB,IACZ,eAAe,EAAE,WAEnB,iBAAiB,IAAI,KAAK;AACnC;AAEO,SAAS,iBACd,UACA,IACY;AACZ,SAAO,iBAAiB,IAAI,UAAU,EAAE;AAC1C;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -22,13 +22,16 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
22
22
|
}), mod);
|
|
23
23
|
var mutatorContext_exports = {};
|
|
24
24
|
__export(mutatorContext_exports, {
|
|
25
|
+
getScopedAuthData: () => getScopedAuthData,
|
|
25
26
|
isInZeroMutation: () => isInZeroMutation,
|
|
26
27
|
mutatorContext: () => mutatorContext,
|
|
28
|
+
runWithAuthScope: () => runWithAuthScope,
|
|
27
29
|
runWithContext: () => runWithContext
|
|
28
30
|
});
|
|
29
31
|
module.exports = __toCommonJS(mutatorContext_exports);
|
|
30
32
|
var import_helpers = require("@take-out/helpers"),
|
|
31
|
-
asyncContext = (0, import_helpers.createAsyncContext)()
|
|
33
|
+
asyncContext = (0, import_helpers.createAsyncContext)(),
|
|
34
|
+
authScopeContext = (0, import_helpers.createAsyncContext)();
|
|
32
35
|
function mutatorContext() {
|
|
33
36
|
var currentContext = asyncContext.get();
|
|
34
37
|
if (!currentContext) throw new Error("mutatorContext must be called within a mutator");
|
|
@@ -40,4 +43,12 @@ function isInZeroMutation() {
|
|
|
40
43
|
function runWithContext(context, fn) {
|
|
41
44
|
return asyncContext.run(context, fn);
|
|
42
45
|
}
|
|
46
|
+
function getScopedAuthData() {
|
|
47
|
+
if (isInZeroMutation()) return mutatorContext().authData;
|
|
48
|
+
var _authScopeContext_get;
|
|
49
|
+
return (_authScopeContext_get = authScopeContext.get()) !== null && _authScopeContext_get !== void 0 ? _authScopeContext_get : void 0;
|
|
50
|
+
}
|
|
51
|
+
function runWithAuthScope(authData, fn) {
|
|
52
|
+
return authScopeContext.run(authData, fn);
|
|
53
|
+
}
|
|
43
54
|
//# sourceMappingURL=mutatorContext.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mutatorContext_exports","__export","isInZeroMutation","mutatorContext","runWithContext","module","exports","import_helpers","require","asyncContext","createAsyncContext","currentContext","get","Error","context","fn","run"],"sources":["../../../src/helpers/mutatorContext.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,sBAAA;AAAAC,QAAA,CAAAD,sBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","mutatorContext_exports","__export","getScopedAuthData","isInZeroMutation","mutatorContext","runWithAuthScope","runWithContext","module","exports","import_helpers","require","asyncContext","createAsyncContext","authScopeContext","currentContext","get","Error","context","fn","run","authData","_authScopeContext_get"],"sources":["../../../src/helpers/mutatorContext.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,sBAAA;AAAAC,QAAA,CAAAD,sBAAA;EAAAE,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAb,YAAmC,CAAAK,sBAAA;AAInC,IAAAS,cAAM,GAAAC,OAAe;EAAAC,YAGf,OAAAF,cAAA,CAAAG,kBAAmB;EAAAC,gBAAoC,OAAAJ,cAAA,CAAAG,kBAAA;AAEtD,SAASR,eAAA,EAAiC;EAC/C,IAAAU,cAAM,GAAAH,YAAiB,CAAAI,GAAa;EACpC,IAAI,CAACD,cAAA,EACH,MAAM,IAAIE,KAAA,CAAM,gDAAgD;EAGlE,OAAOF,cAAA;AACT;AAEO,SAASX,iBAAA,EAAmB;EACjC,OAAO,CAAC,CAACQ,YAAA,CAAaI,GAAA,CAAI;AAC5B;AAEO,SAAST,eACdW,OAAA,EACAC,EAAA,EACY;EACZ,OAAOP,YAAA,CAAaQ,GAAA,CAAIF,OAAA,EAASC,EAAE;AACrC;AAGO,SAAShB,kBAAA,EAAiD;EAC/D,IAAAC,gBAAI,IAIN,OAAAC,cAAA,GAAAgB,QAAA;EAEO,IAAAC,qBACL;EAGA,OAAO,CAAAA,qBAAqB,GAAAR,gBAAY,CAAAE,GAAA,gBAAAM,qBAAA,cAAAA,qBAAA;AAC1C","ignoreList":[]}
|
|
@@ -6,7 +6,12 @@ import { assertString, randomId } from "@take-out/helpers";
|
|
|
6
6
|
import { Pool } from "pg";
|
|
7
7
|
import { createPermissions } from "./createPermissions";
|
|
8
8
|
import { createMutators } from "./helpers/createMutators";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
getScopedAuthData,
|
|
11
|
+
isInZeroMutation,
|
|
12
|
+
mutatorContext,
|
|
13
|
+
runWithAuthScope
|
|
14
|
+
} from "./helpers/mutatorContext";
|
|
10
15
|
import { runWithQueryContext } from "./helpers/queryContext";
|
|
11
16
|
import { getMutationsPermissions } from "./modelRegistry";
|
|
12
17
|
import { setCustomQueries } from "./run";
|
|
@@ -20,7 +25,8 @@ function createZeroServer({
|
|
|
20
25
|
queries,
|
|
21
26
|
validateQuery,
|
|
22
27
|
validateMutation,
|
|
23
|
-
defaultAllowAdminRole = "all"
|
|
28
|
+
defaultAllowAdminRole = "all",
|
|
29
|
+
defaultMutateAuthData = {}
|
|
24
30
|
}) {
|
|
25
31
|
setSchema(schema);
|
|
26
32
|
const dbString = assertString(database, 'createZeroServer "database"'), zeroDb = zeroNodePg(
|
|
@@ -50,7 +56,7 @@ function createZeroServer({
|
|
|
50
56
|
}), response = await processor.process(mutators, request);
|
|
51
57
|
if (!skipAsyncTasks && asyncTasks.length) {
|
|
52
58
|
const id = randomId();
|
|
53
|
-
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((task) => task
|
|
59
|
+
console.info(`[push] complete, running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((task) => runWithAuthScope(authData, task))).then(() => {
|
|
54
60
|
console.info(`[push] async tasks complete ${id}`);
|
|
55
61
|
}).catch((err) => {
|
|
56
62
|
console.error("[push] error: async tasks failed \u{1F61E}", err);
|
|
@@ -92,35 +98,47 @@ function createZeroServer({
|
|
|
92
98
|
)
|
|
93
99
|
)
|
|
94
100
|
};
|
|
95
|
-
}
|
|
96
|
-
|
|
101
|
+
};
|
|
102
|
+
async function runMutate(modelName, mutatorName, mutatorArg, authData) {
|
|
103
|
+
if (!authData) {
|
|
104
|
+
const scoped = getScopedAuthData();
|
|
105
|
+
scoped && (authData = scoped);
|
|
106
|
+
}
|
|
107
|
+
const asyncTasks = [], mutator = createMutators({
|
|
97
108
|
models,
|
|
98
109
|
environment: "server",
|
|
99
110
|
asyncTasks,
|
|
100
111
|
authData: {
|
|
101
|
-
|
|
102
|
-
email: "admin@start.chat",
|
|
103
|
-
role: "admin",
|
|
112
|
+
...defaultMutateAuthData,
|
|
104
113
|
...authData
|
|
105
114
|
},
|
|
106
115
|
createServerActions,
|
|
107
116
|
can: permissions.can,
|
|
108
117
|
validateMutation
|
|
109
|
-
});
|
|
118
|
+
})[modelName][mutatorName];
|
|
110
119
|
if (await transaction(async (tx) => {
|
|
111
|
-
await
|
|
112
|
-
}), asyncTasks.length)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
console.
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
await mutator(tx, mutatorArg);
|
|
121
|
+
}), asyncTasks.length) {
|
|
122
|
+
const id = randomId(), resolvedAuth = authData ?? null;
|
|
123
|
+
console.info(`[mutate] running async tasks ${asyncTasks.length} id ${id}`), Promise.all(asyncTasks.map((t) => runWithAuthScope(resolvedAuth, t))).then(() => {
|
|
124
|
+
console.info(`[mutate] async tasks complete ${id}`);
|
|
125
|
+
}).catch((err) => {
|
|
126
|
+
console.error("[mutate] error: async tasks failed", err);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const mutate = new Proxy({}, {
|
|
131
|
+
get(_, modelName) {
|
|
132
|
+
return new Proxy(
|
|
133
|
+
{},
|
|
134
|
+
{
|
|
135
|
+
get(_2, mutatorName) {
|
|
136
|
+
return (arg, authData) => runMutate(modelName, mutatorName, arg, authData);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
124
142
|
async function transaction(query2) {
|
|
125
143
|
try {
|
|
126
144
|
if (isInZeroMutation()) {
|
|
@@ -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,
|
|
5
|
-
"names": ["query"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["_", "query"]
|
|
6
6
|
}
|