over-zero 0.0.36 → 0.0.38
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/cli.cjs +16 -10
- package/dist/cjs/cli.js +15 -8
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli.native.js +18 -10
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/createPermissions.cjs +7 -6
- package/dist/cjs/createPermissions.js +6 -6
- package/dist/cjs/createPermissions.js.map +1 -1
- package/dist/cjs/createPermissions.native.js +8 -6
- package/dist/cjs/createPermissions.native.js.map +1 -1
- package/dist/cjs/createUseQuery.cjs +18 -27
- package/dist/cjs/createUseQuery.js +18 -19
- package/dist/cjs/createUseQuery.js.map +1 -1
- package/dist/cjs/createUseQuery.native.js +19 -32
- package/dist/cjs/createUseQuery.native.js.map +1 -1
- package/dist/cjs/createZeroClient.cjs +38 -16
- package/dist/cjs/createZeroClient.js +40 -28
- package/dist/cjs/createZeroClient.js.map +2 -2
- package/dist/cjs/createZeroClient.native.js +45 -21
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/cjs/createZeroServer.cjs +16 -16
- package/dist/cjs/createZeroServer.js +15 -19
- package/dist/cjs/createZeroServer.js.map +2 -2
- package/dist/cjs/createZeroServer.native.js +19 -50
- package/dist/cjs/createZeroServer.native.js.map +1 -1
- package/dist/cjs/helpers/batchQuery.cjs +1 -1
- package/dist/cjs/helpers/batchQuery.js +1 -1
- package/dist/cjs/helpers/batchQuery.native.js +1 -1
- package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
- package/dist/cjs/helpers/createMutators.cjs +1 -1
- package/dist/cjs/helpers/createMutators.js +1 -1
- package/dist/cjs/helpers/createMutators.js.map +1 -1
- package/dist/cjs/helpers/createMutators.native.js +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.cjs +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.js +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.native.js +1 -1
- package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.cjs +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.js +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.js.map +1 -1
- package/dist/cjs/helpers/ensureLoggedIn.native.js +1 -1
- package/dist/cjs/helpers/mutatorContext.cjs +1 -1
- package/dist/cjs/helpers/mutatorContext.js +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js +1 -1
- package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.js +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +1 -1
- package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.cjs +3 -3
- package/dist/cjs/helpers/useZeroDebug.js +2 -2
- package/dist/cjs/helpers/useZeroDebug.js.map +1 -1
- package/dist/cjs/helpers/useZeroDebug.native.js +5 -3
- package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/cjs/where.cjs +1 -1
- package/dist/cjs/where.js +1 -1
- package/dist/cjs/where.js.map +1 -1
- package/dist/cjs/where.native.js +1 -1
- package/dist/cjs/where.native.js.map +1 -1
- package/dist/esm/cli.js +15 -8
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +16 -10
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +18 -10
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/createPermissions.js +5 -4
- package/dist/esm/createPermissions.js.map +1 -1
- package/dist/esm/createPermissions.mjs +5 -4
- package/dist/esm/createPermissions.mjs.map +1 -1
- package/dist/esm/createPermissions.native.js +6 -4
- package/dist/esm/createPermissions.native.js.map +1 -1
- package/dist/esm/createUseQuery.js +17 -19
- package/dist/esm/createUseQuery.js.map +1 -1
- package/dist/esm/createUseQuery.mjs +17 -26
- package/dist/esm/createUseQuery.mjs.map +1 -1
- package/dist/esm/createUseQuery.native.js +18 -31
- package/dist/esm/createUseQuery.native.js.map +1 -1
- package/dist/esm/createZeroClient.js +55 -30
- package/dist/esm/createZeroClient.js.map +2 -2
- package/dist/esm/createZeroClient.mjs +39 -17
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +47 -23
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroServer.js +18 -20
- package/dist/esm/createZeroServer.js.map +1 -1
- package/dist/esm/createZeroServer.mjs +16 -16
- package/dist/esm/createZeroServer.mjs.map +1 -1
- package/dist/esm/createZeroServer.native.js +19 -50
- package/dist/esm/createZeroServer.native.js.map +1 -1
- package/dist/esm/helpers/batchQuery.js +1 -1
- package/dist/esm/helpers/batchQuery.mjs +1 -1
- package/dist/esm/helpers/batchQuery.native.js +1 -1
- package/dist/esm/helpers/createMutators.js +1 -1
- package/dist/esm/helpers/createMutators.mjs +1 -1
- package/dist/esm/helpers/createMutators.native.js +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.js +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.mjs +1 -1
- package/dist/esm/helpers/didRunPermissionCheck.native.js +1 -1
- package/dist/esm/helpers/ensureLoggedIn.js +1 -1
- package/dist/esm/helpers/ensureLoggedIn.mjs +1 -1
- package/dist/esm/helpers/ensureLoggedIn.native.js +1 -1
- package/dist/esm/helpers/mutatorContext.js +1 -1
- package/dist/esm/helpers/mutatorContext.mjs +1 -1
- package/dist/esm/helpers/mutatorContext.native.js +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.js +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.mjs +1 -1
- package/dist/esm/helpers/prettyFormatZeroQuery.native.js +1 -1
- package/dist/esm/helpers/useZeroDebug.js +2 -2
- package/dist/esm/helpers/useZeroDebug.js.map +1 -1
- package/dist/esm/helpers/useZeroDebug.mjs +3 -3
- package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
- package/dist/esm/helpers/useZeroDebug.native.js +5 -3
- package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
- package/dist/esm/where.js +1 -1
- package/dist/esm/where.mjs +1 -1
- package/dist/esm/where.native.js +1 -1
- package/package.json +2 -2
- package/readme.md +20 -6
- package/src/cli.ts +23 -22
- package/src/createPermissions.ts +6 -4
- package/src/createUseQuery.tsx +34 -69
- package/src/createZeroClient.tsx +81 -33
- package/src/createZeroServer.ts +27 -35
- package/src/helpers/batchQuery.ts +1 -1
- package/src/helpers/createMutators.ts +1 -1
- package/src/helpers/didRunPermissionCheck.ts +1 -1
- package/src/helpers/ensureLoggedIn.ts +1 -1
- package/src/helpers/mutatorContext.ts +1 -1
- package/src/helpers/prettyFormatZeroQuery.ts +1 -1
- package/src/helpers/useZeroDebug.ts +3 -3
- package/src/types.ts +2 -2
- package/src/where.ts +1 -1
- package/types/createPermissions.d.ts.map +1 -1
- package/types/createUseQuery.d.ts +7 -9
- package/types/createUseQuery.d.ts.map +1 -1
- package/types/createZeroClient.d.ts +5 -6
- package/types/createZeroClient.d.ts.map +1 -1
- package/types/createZeroServer.d.ts +69 -18
- package/types/createZeroServer.d.ts.map +1 -1
- package/types/types.d.ts +2 -2
- package/types/types.d.ts.map +1 -1
|
@@ -25,8 +25,7 @@ __export(createUseQuery_exports, {
|
|
|
25
25
|
createUseQuery: () => createUseQuery
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(createUseQuery_exports);
|
|
28
|
-
var
|
|
29
|
-
import_react = require("@rocicorp/zero/react"),
|
|
28
|
+
var import_react = require("@rocicorp/zero/react"),
|
|
30
29
|
import_react2 = require("react"),
|
|
31
30
|
import_useZeroDebug = require("./helpers/useZeroDebug.native.js"),
|
|
32
31
|
import_queryRegistry = require("./queryRegistry.native.js");
|
|
@@ -37,49 +36,37 @@ function _type_of(obj) {
|
|
|
37
36
|
}
|
|
38
37
|
function createUseQuery(param) {
|
|
39
38
|
var {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
queryCache = /* @__PURE__ */new Map(),
|
|
44
|
-
parseAny = function (x) {
|
|
45
|
-
return [x[0]];
|
|
46
|
-
};
|
|
39
|
+
DisabledContext,
|
|
40
|
+
customQueries
|
|
41
|
+
} = param;
|
|
47
42
|
function useQuery() {
|
|
48
43
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
49
44
|
var disabled = (0, import_react2.use)(DisabledContext),
|
|
50
|
-
[
|
|
51
|
-
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
45
|
+
[fn, paramsOrOptions, optionsArg] = args,
|
|
52
46
|
{
|
|
53
|
-
|
|
47
|
+
queryRequest,
|
|
54
48
|
options
|
|
55
49
|
} = (0, import_react2.useMemo)(function () {
|
|
56
|
-
|
|
57
|
-
actualQuery: queryOrFn,
|
|
58
|
-
options: paramsOrOptions
|
|
59
|
-
};
|
|
60
|
-
var fn = queryOrFn,
|
|
50
|
+
var _customQueries_namespace,
|
|
61
51
|
queryName = (0, import_queryRegistry.getQueryName)(fn);
|
|
62
|
-
if (!queryName)
|
|
52
|
+
if (!queryName) {
|
|
53
|
+
var fnName = fn?.name || "anonymous";
|
|
54
|
+
throw new Error(`Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`);
|
|
55
|
+
}
|
|
63
56
|
var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions > "u" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
|
|
64
57
|
params = hasParams ? paramsOrOptions : void 0,
|
|
65
58
|
opts = hasParams ? optionsArg : paramsOrOptions,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var query = params !== void 0 ? synced(params) : synced;
|
|
59
|
+
[namespace, name] = queryName.split(".", 2),
|
|
60
|
+
customQuery = (_customQueries_namespace = customQueries[namespace]) === null || _customQueries_namespace === void 0 ? void 0 : _customQueries_namespace[name];
|
|
61
|
+
if (!customQuery) throw new Error(`CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`);
|
|
62
|
+
var queryRequest2 = params !== void 0 ? customQuery(params) : customQuery();
|
|
71
63
|
return {
|
|
72
|
-
|
|
64
|
+
queryRequest: queryRequest2,
|
|
73
65
|
options: opts
|
|
74
66
|
};
|
|
75
|
-
}, [
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
options,
|
|
79
|
-
queryOrFn
|
|
80
|
-
});
|
|
81
|
-
var out = (0, import_react.useQuery)(actualQuery, options);
|
|
82
|
-
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out), disabled ? [null, {
|
|
67
|
+
}, [fn, paramsOrOptions, optionsArg]),
|
|
68
|
+
out = (0, import_react.useQuery)(queryRequest, options);
|
|
69
|
+
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(queryRequest, options, out), disabled ? [null, {
|
|
83
70
|
type: "unknown"
|
|
84
71
|
}] : out;
|
|
85
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","module","exports","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","module","exports","import_react","require","import_react2","import_useZeroDebug","import_queryRegistry","_type_of","obj","Symbol","constructor","param","DisabledContext","customQueries","useQuery","_len","arguments","length","args","Array","_key","disabled","use","fn","paramsOrOptions","optionsArg","queryRequest","options","useMemo","_customQueries_namespace","queryName","getQueryName","fnName","name","Error","hasParams","params","opts","namespace","split","customQuery","queryRequest2"],"sources":["../../src/createUseQuery.tsx"],"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,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAyC,CAAAK,sBACzC;AAwCO,IAAAK,YAAS,GAAAC,OAA0C;EAAAC,aAAA,GAAAD,OAAA;EAAAE,mBAAA,GAAAF,OAAA;EAAAG,oBAAA,GAAAH,OAAA;AAAA,SACxDI,SAAAC,GAAA;EACA;;EACF,OAGyBA,GAAA,WAAAC,MAAA,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACvB;AACE,SAAAT,cAAMA,CAAAY,KAAW;EAIf;IAAAC,eAAM;IAAAC;EAAY,IAAAF,KAAA;EAClB,SAAKG,SAAA,EAAW;IACd,SAAAC,IAAM,GAAAC,SAAa,CAAAC,MAAQ,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,IAC3BF,IAAA,CAAAE,IAAM,IAAIJ,SAAA,CAAAI,IAAA;IAAA,IAAAC,QACR,OAAAjB,aAAyB,CAAAkB,GAAA,EAAAV,eAAA;MAAA,CAAAW,EAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAP,IAAA;MAAA;QAAAQ,YAAA;QAAAC;MAAA,QAAAvB,aAAA,CAAAwB,OAAA;QAAA,IAE3BC,wBAAA;UAAAC,SAAA,OAAAxB,oBAAA,CAAAyB,YAAA,EAAAR,EAAA;QACF,KAAAO,SAAA;UAGA,IAAME,MAAA,GAAAT,EAAA,EACJU,IAAA,eAAe;UAcjB,MAAK,IAAAC,KAAA,oBAAAF,MAAA;QACH;QAAU,IACRG,SAAA,GAAAV,UAAgB,KAAS,UAAAD,eAAA,YAAAA,eAAA,uBAAAjB,QAAA,CAAAiB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAY,MAAA,GAAAD,SAAA,GAAAX,eAAA;UAAAa,IAAA,GAAAF,SAAA,GAAAV,UAAA,GAAAD,eAAA;UAAA,CAAAc,SAAA,EAAAL,IAAA,IAAAH,SAAA,CAAAS,KAAA;UAAAC,WAAA,IAAAX,wBAAA,GAAAhB,aAAA,CAAAyB,SAAA,eAAAT,wBAAA,uBAAAA,wBAAA,CAAAI,IAAA;QAAA,IAE3B,CAAAO,WAAA,EAKF,MAAO,IAAEN,KAAA,iBAFuBJ,SAAY,+EAEP;QACvC,IAAIW,aAAI,GAAAL,MAAiB,UAAW,CAE9B,GAAAI,WAAM,CAAAJ,MAAA,IAAAI,WAAa;QAOzB,OALI;UAUNd,YAAA,EAAAe,aAAA;UAEAd,OAAO,EAAAU;QACT","ignoreList":[]}
|
|
@@ -23,8 +23,9 @@ __export(createZeroClient_exports, {
|
|
|
23
23
|
createZeroClient: () => createZeroClient
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(createZeroClient_exports);
|
|
26
|
-
var
|
|
27
|
-
|
|
26
|
+
var import_zero = require("@rocicorp/zero"),
|
|
27
|
+
import_react = require("@rocicorp/zero/react"),
|
|
28
|
+
import_helpers = require("@take-out/helpers"),
|
|
28
29
|
import_react2 = require("react"),
|
|
29
30
|
import_createPermissions = require("./createPermissions.cjs"),
|
|
30
31
|
import_createUseQuery = require("./createUseQuery.cjs"),
|
|
@@ -36,16 +37,23 @@ var import_react = require("@rocicorp/zero/react"),
|
|
|
36
37
|
function createZeroClient({
|
|
37
38
|
schema,
|
|
38
39
|
models,
|
|
39
|
-
groupedQueries
|
|
40
|
-
disableInlineQueries = !1
|
|
40
|
+
groupedQueries
|
|
41
41
|
}) {
|
|
42
42
|
(0, import_state.setSchema)(schema);
|
|
43
|
-
|
|
44
|
-
const
|
|
43
|
+
const wrappedNamespaces = {};
|
|
44
|
+
for (const [namespace, queries] of Object.entries(groupedQueries)) {
|
|
45
|
+
wrappedNamespaces[namespace] = {};
|
|
46
|
+
for (const [name, fn] of Object.entries(queries)) (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = (0, import_zero.defineQuery)(({
|
|
47
|
+
args
|
|
48
|
+
}) => fn(args));
|
|
49
|
+
}
|
|
50
|
+
const customQueries = (0, import_zero.defineQueries)(wrappedNamespaces),
|
|
51
|
+
DisabledContext = (0, import_react2.createContext)(!1),
|
|
45
52
|
modelWritePermissions = (0, import_helpers.mapObject)(models, val => val.permissions);
|
|
46
53
|
let latestZeroInstance = null;
|
|
47
54
|
const zero = new Proxy({}, {
|
|
48
55
|
get(_, key) {
|
|
56
|
+
if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
|
|
49
57
|
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
50
58
|
}
|
|
51
59
|
}),
|
|
@@ -58,7 +66,7 @@ function createZeroClient({
|
|
|
58
66
|
useAuthData = () => (0, import_react2.use)(AuthDataContext),
|
|
59
67
|
useQuery = (0, import_createUseQuery.createUseQuery)({
|
|
60
68
|
DisabledContext,
|
|
61
|
-
|
|
69
|
+
customQueries
|
|
62
70
|
});
|
|
63
71
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
64
72
|
const disabled = (0, import_react2.use)(DisabledContext),
|
|
@@ -68,7 +76,7 @@ function createZeroClient({
|
|
|
68
76
|
let baseQuery = zero.query[table].one();
|
|
69
77
|
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
|
|
70
78
|
})(),
|
|
71
|
-
[data, status] = useQuery(query, {
|
|
79
|
+
[data, status] = (0, import_react.useQuery)(query, {
|
|
72
80
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
73
81
|
});
|
|
74
82
|
debug && console.info("usePermission()", {
|
|
@@ -98,22 +106,36 @@ function createZeroClient({
|
|
|
98
106
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
|
|
99
107
|
schema,
|
|
100
108
|
kvStore: "mem",
|
|
101
|
-
onError: error => {
|
|
102
|
-
console.error("Zero Error:", error), zeroEvents.emit({
|
|
103
|
-
type: "error",
|
|
104
|
-
message: error
|
|
105
|
-
});
|
|
106
|
-
},
|
|
107
109
|
mutators,
|
|
108
110
|
...props,
|
|
109
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
|
|
111
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
|
|
112
|
+
zeroEvents
|
|
113
|
+
}), children]
|
|
110
114
|
})
|
|
111
115
|
});
|
|
112
116
|
},
|
|
113
117
|
SetZeroInstance = () => {
|
|
114
118
|
const zero2 = (0, import_react.useZero)();
|
|
115
119
|
return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
|
|
116
|
-
}
|
|
120
|
+
},
|
|
121
|
+
ConnectionMonitor = (0, import_react2.memo)(({
|
|
122
|
+
zeroEvents: zeroEvents2
|
|
123
|
+
}) => {
|
|
124
|
+
const state = (0, import_react.useConnectionState)(),
|
|
125
|
+
prevState = (0, import_react2.useRef)(state.name);
|
|
126
|
+
return (0, import_react2.useEffect)(() => {
|
|
127
|
+
if (state.name !== prevState.current) {
|
|
128
|
+
const reason = "reason" in state ? state.reason : "";
|
|
129
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
130
|
+
const message = typeof reason == "string" ? reason : state.name;
|
|
131
|
+
zeroEvents2.emit({
|
|
132
|
+
type: "error",
|
|
133
|
+
message
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}, [state, zeroEvents2]), null;
|
|
138
|
+
});
|
|
117
139
|
return {
|
|
118
140
|
zeroEvents,
|
|
119
141
|
ProvideZero,
|
|
@@ -17,21 +17,29 @@ __export(createZeroClient_exports, {
|
|
|
17
17
|
createZeroClient: () => createZeroClient
|
|
18
18
|
});
|
|
19
19
|
module.exports = __toCommonJS(createZeroClient_exports);
|
|
20
|
-
var import_react = require("@rocicorp/zero/react"), import_helpers = require("@
|
|
20
|
+
var import_zero = require("@rocicorp/zero"), import_react = require("@rocicorp/zero/react"), import_helpers = require("@take-out/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_createUseQuery = require("./createUseQuery"), import_createMutators = require("./helpers/createMutators"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_queryRegistry = require("./queryRegistry"), import_state = require("./state"), import_jsx_runtime = require("react/jsx-runtime");
|
|
21
21
|
function createZeroClient({
|
|
22
22
|
schema,
|
|
23
23
|
models,
|
|
24
|
-
groupedQueries
|
|
25
|
-
disableInlineQueries = !1
|
|
24
|
+
groupedQueries
|
|
26
25
|
}) {
|
|
27
26
|
(0, import_state.setSchema)(schema);
|
|
28
|
-
|
|
27
|
+
const wrappedNamespaces = {};
|
|
28
|
+
for (const [namespace, queries] of Object.entries(groupedQueries)) {
|
|
29
|
+
wrappedNamespaces[namespace] = {};
|
|
29
30
|
for (const [name, fn] of Object.entries(queries))
|
|
30
|
-
(0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`)
|
|
31
|
-
|
|
31
|
+
(0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = (0, import_zero.defineQuery)(
|
|
32
|
+
({ args }) => fn(args)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
const customQueries = (0, import_zero.defineQueries)(wrappedNamespaces), DisabledContext = (0, import_react2.createContext)(!1), modelWritePermissions = (0, import_helpers.mapObject)(models, (val) => val.permissions);
|
|
32
36
|
let latestZeroInstance = null;
|
|
33
37
|
const zero = new Proxy({}, {
|
|
34
38
|
get(_, key) {
|
|
39
|
+
if (latestZeroInstance === null)
|
|
40
|
+
throw new Error(
|
|
41
|
+
"Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'."
|
|
42
|
+
);
|
|
35
43
|
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
36
44
|
}
|
|
37
45
|
}), permissionsHelpers = (0, import_createPermissions.createPermissions)({
|
|
@@ -39,7 +47,7 @@ function createZeroClient({
|
|
|
39
47
|
environment: "client"
|
|
40
48
|
}), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = (0, import_react2.createContext)({}), useAuthData = () => (0, import_react2.use)(AuthDataContext), useQuery = (0, import_createUseQuery.createUseQuery)({
|
|
41
49
|
DisabledContext,
|
|
42
|
-
|
|
50
|
+
customQueries
|
|
43
51
|
});
|
|
44
52
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
45
53
|
const disabled = (0, import_react2.use)(DisabledContext), authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
|
|
@@ -50,7 +58,7 @@ function createZeroClient({
|
|
|
50
58
|
permission,
|
|
51
59
|
objOrId
|
|
52
60
|
));
|
|
53
|
-
})(), [data, status] = useQuery(query, {
|
|
61
|
+
})(), [data, status] = (0, import_react.useQuery)(query, {
|
|
54
62
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
55
63
|
});
|
|
56
64
|
debug && console.info(
|
|
@@ -73,29 +81,33 @@ function createZeroClient({
|
|
|
73
81
|
authData,
|
|
74
82
|
can: permissionsHelpers.can
|
|
75
83
|
})), [models, authData]);
|
|
76
|
-
return disable ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
77
|
-
|
|
78
|
-
{
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
onError: (error) => {
|
|
82
|
-
console.error("Zero Error:", error), zeroEvents.emit({
|
|
83
|
-
type: "error",
|
|
84
|
-
message: error
|
|
85
|
-
});
|
|
86
|
-
},
|
|
87
|
-
mutators,
|
|
88
|
-
...props,
|
|
89
|
-
children: [
|
|
90
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
|
|
91
|
-
children
|
|
92
|
-
]
|
|
93
|
-
}
|
|
94
|
-
) });
|
|
84
|
+
return disable ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, { schema, kvStore: "mem", mutators, ...props, children: [
|
|
85
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
|
|
86
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectionMonitor, { zeroEvents }),
|
|
87
|
+
children
|
|
88
|
+
] }) });
|
|
95
89
|
}, SetZeroInstance = () => {
|
|
96
90
|
const zero2 = (0, import_react.useZero)();
|
|
97
91
|
return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
|
|
98
|
-
}
|
|
92
|
+
}, ConnectionMonitor = (0, import_react2.memo)(
|
|
93
|
+
({
|
|
94
|
+
zeroEvents: zeroEvents2
|
|
95
|
+
}) => {
|
|
96
|
+
const state = (0, import_react.useConnectionState)(), prevState = (0, import_react2.useRef)(state.name);
|
|
97
|
+
return (0, import_react2.useEffect)(() => {
|
|
98
|
+
if (state.name !== prevState.current) {
|
|
99
|
+
const reason = "reason" in state ? state.reason : "";
|
|
100
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
101
|
+
const message = typeof reason == "string" ? reason : state.name;
|
|
102
|
+
zeroEvents2.emit({
|
|
103
|
+
type: "error",
|
|
104
|
+
message
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}, [state, zeroEvents2]), null;
|
|
109
|
+
}
|
|
110
|
+
);
|
|
99
111
|
return {
|
|
100
112
|
zeroEvents,
|
|
101
113
|
ProvideZero,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
5
|
-
"names": ["import_react", "zero"]
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA2C,2BAC3C,eAKO,iCACP,iBAAyC,8BACzCA,gBAQO,kBAEP,2BAAkC,gCAClC,wBAA+B,6BAC/B,wBAA+B,qCAC/B,+BAAsC,4CACtC,uBAA8B,4BAC9B,eAAuC,oBA6K/B;AAtKD,SAAS,iBAGd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAIG;AAKD,8BAAU,MAAM;AAIhB,QAAM,oBAGF,CAAC;AAEL,aAAW,CAAC,WAAW,OAAO,KAAK,OAAO,QAAQ,cAAc,GAAG;AACjE,sBAAkB,SAAS,IAAI,CAAC;AAChC,eAAW,CAAC,MAAM,EAAE,KAAK,OAAO,QAAQ,OAAO;AAC7C,8CAAc,IAAI,GAAG,SAAS,IAAI,IAAI,EAAE,GAExC,kBAAkB,SAAS,EAAE,IAAI,QAAI;AAAA,QAAY,CAAC,EAAE,KAAK,MACvD,GAAG,IAAI;AAAA,MACT;AAAA,EAEJ;AAGA,QAAM,oBAAgB,2BAAc,iBAAiB,GAE/C,sBAAkB,6BAAc,EAAK,GAErC,4BAAwB,0BAAU,QAAQ,CAAC,QAAQ,IAAI,WAAW;AAKxE,MAAI,qBAA0C;AAI9C,QAAM,OAAqB,IAAI,MAAM,CAAC,GAAY;AAAA,IAChD,IAAI,GAAG,KAAK;AACV,UAAI,uBAAuB;AACzB,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAEF,aAAO,QAAQ,IAAI,oBAAoB,KAAK,kBAAkB;AAAA,IAChE;AAAA,EACF,CAAC,GAEK,yBAAqB,4CAA0B;AAAA,IACnD;AAAA,IACA,aAAa;AAAA,EACf,CAAC,GAMK,iBAAa,8BAAgC,QAAQ,IAAI,GAEzD,sBAAkB,6BAAwB,CAAC,CAAa,GACxD,cAAc,UAAM,mBAAI,eAAe,GAEvC,eAAW,sCAAuB;AAAA,IACtC;AAAA,IACA;AAAA,EACF,CAAC;AAMD,WAAS,cACP,OACA,SACA,UAAU,OAAO,UAAY,KAC7B,QAAQ,IACQ;AAChB,UAAM,eAAW,mBAAI,eAAe,GAE9B,WAAW,YAAY,GACvB,aAAa,sBAAsB,KAAK,GAExC,SAAS,MAAM;AACnB,UAAI,YAAa,KAAK,MAAc,KAAK,EAAE,IAAI;AAE/C,aAAI,YAAY,CAAC,WAAW,CAAC,aACpB,YAGF,UAAU,MAAM,CAAC,OACf,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CACD;AAAA,IACH,GAAG,GAGG,CAAC,MAAM,MAAM,QAAI,aAAAC,UAAa,OAAO;AAAA,MACzC,SAAS,GAAQ,WAAW,cAAc,YAAY;AAAA,IACxD,CAAC;AAED,IAAI,SACF,QAAQ;AAAA,MACN;AAAA,MACA,EAAE,MAAM,QAAQ,UAAU,WAAW;AAAA,UACrC,oDAAsB,KAAK;AAAA,IAC7B;AAKF,UAAM,UAAU,EAFD;AAIf,WAAK,UAIE,UAHE;AAAA,EAIX;AAEA,QAAM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,GAAG;AAAA,EACL,MAIM;AACJ,UAAM,WAAY,cAAc,MAE1B,eAAW,uBAAQ,WACvB,0BAAY,QAAQ,OAEb,sCAAe;AAAA,MACpB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,KAAK,mBAAmB;AAAA,IAC1B,CAAC,IACA,CAAC,QAAQ,QAAQ,CAAC;AAGrB,WAAI,UACK,WAIP,4CAAC,gBAAgB,UAAhB,EAAyB,OAAO,UAC/B,uDAAC,6BAAa,QAAgB,SAAQ,OAAM,UAA4B,GAAG,OACzE;AAAA,kDAAC,mBAAgB;AAAA,MACjB,4CAAC,qBAAkB,YAAwB;AAAA,MAC1C;AAAA,OACH,GACF;AAAA,EAEJ,GAEM,kBAAkB,MAAM;AAC5B,UAAMC,YAAO,sBAA8B;AAQ3C,WAAIA,UAAS,uBACX,qBAAqBA,QAGhB;AAAA,EACT,GAGM,wBAAoB;AAAA,IACxB,CAAC;AAAA,MACC,YAAAC;AAAA,IACF,MAEM;AACJ,YAAM,YAAQ,iCAAmB,GAC3B,gBAAY,sBAAO,MAAM,IAAI;AAEnC,0CAAU,MAAM;AACd,YAAI,MAAM,SAAS,UAAU,SAAS;AACpC,gBAAM,SAAS,YAAY,QAAQ,MAAM,SAAS;AAGlD,cAFA,UAAU,UAAU,MAAM,MAEtB,MAAM,SAAS,WAAW,MAAM,SAAS,cAAc;AACzD,kBAAM,UAAU,OAAO,UAAW,WAAW,SAAS,MAAM;AAC5D,YAAAA,YAAW,KAAK;AAAA,cACd,MAAM;AAAA,cACN;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF,GAAG,CAAC,OAAOA,WAAU,CAAC,GAEf;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
|
|
5
|
+
"names": ["import_react", "zeroUseQuery", "zero", "zeroEvents"]
|
|
6
6
|
}
|
|
@@ -26,8 +26,9 @@ __export(createZeroClient_exports, {
|
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(createZeroClient_exports);
|
|
28
28
|
var import_jsx_runtime = require("react/jsx-runtime"),
|
|
29
|
+
import_zero = require("@rocicorp/zero"),
|
|
29
30
|
import_react = require("@rocicorp/zero/react"),
|
|
30
|
-
import_helpers = require("@
|
|
31
|
+
import_helpers = require("@take-out/helpers"),
|
|
31
32
|
import_react2 = require("react"),
|
|
32
33
|
import_createPermissions = require("./createPermissions.native.js"),
|
|
33
34
|
import_createUseQuery = require("./createUseQuery.native.js"),
|
|
@@ -39,24 +40,30 @@ function createZeroClient(param) {
|
|
|
39
40
|
var {
|
|
40
41
|
schema,
|
|
41
42
|
models,
|
|
42
|
-
groupedQueries
|
|
43
|
-
disableInlineQueries = !1
|
|
43
|
+
groupedQueries
|
|
44
44
|
} = param;
|
|
45
45
|
(0, import_state.setSchema)(schema);
|
|
46
|
-
var
|
|
46
|
+
var wrappedNamespaces = {},
|
|
47
|
+
_iteratorNormalCompletion = !0,
|
|
47
48
|
_didIteratorError = !1,
|
|
48
49
|
_iteratorError = void 0;
|
|
49
50
|
try {
|
|
50
51
|
for (var _iterator = Object.entries(groupedQueries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
51
|
-
var [namespace, queries] = _step.value
|
|
52
|
-
|
|
52
|
+
var [namespace, queries] = _step.value;
|
|
53
|
+
wrappedNamespaces[namespace] = {};
|
|
54
|
+
var _iteratorNormalCompletion1 = !0,
|
|
53
55
|
_didIteratorError1 = !1,
|
|
54
56
|
_iteratorError1 = void 0;
|
|
55
57
|
try {
|
|
56
|
-
for (var
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
for (var _loop = function () {
|
|
59
|
+
var [name, fn] = _step1.value;
|
|
60
|
+
(0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = (0, import_zero.defineQuery)(function (param2) {
|
|
61
|
+
var {
|
|
62
|
+
args
|
|
63
|
+
} = param2;
|
|
64
|
+
return fn(args);
|
|
65
|
+
});
|
|
66
|
+
}, _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop();
|
|
60
67
|
} catch (err) {
|
|
61
68
|
_didIteratorError1 = !0, _iteratorError1 = err;
|
|
62
69
|
} finally {
|
|
@@ -76,13 +83,15 @@ function createZeroClient(param) {
|
|
|
76
83
|
if (_didIteratorError) throw _iteratorError;
|
|
77
84
|
}
|
|
78
85
|
}
|
|
79
|
-
var
|
|
86
|
+
var customQueries = (0, import_zero.defineQueries)(wrappedNamespaces),
|
|
87
|
+
DisabledContext = /* @__PURE__ */(0, import_react2.createContext)(!1),
|
|
80
88
|
modelWritePermissions = (0, import_helpers.mapObject)(models, function (val) {
|
|
81
89
|
return val.permissions;
|
|
82
90
|
}),
|
|
83
91
|
latestZeroInstance = null,
|
|
84
92
|
zero = new Proxy({}, {
|
|
85
93
|
get(_, key) {
|
|
94
|
+
if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
|
|
86
95
|
return Reflect.get(latestZeroInstance, key, latestZeroInstance);
|
|
87
96
|
}
|
|
88
97
|
}),
|
|
@@ -97,7 +106,7 @@ function createZeroClient(param) {
|
|
|
97
106
|
},
|
|
98
107
|
useQuery = (0, import_createUseQuery.createUseQuery)({
|
|
99
108
|
DisabledContext,
|
|
100
|
-
|
|
109
|
+
customQueries
|
|
101
110
|
});
|
|
102
111
|
function usePermission(table, objOrId) {
|
|
103
112
|
var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
|
|
@@ -111,7 +120,7 @@ function createZeroClient(param) {
|
|
|
111
120
|
return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
|
|
112
121
|
});
|
|
113
122
|
}(),
|
|
114
|
-
[data, status] = useQuery(query, {
|
|
123
|
+
[data, status] = (0, import_react.useQuery)(query, {
|
|
115
124
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
116
125
|
});
|
|
117
126
|
debug && console.info("usePermission()", {
|
|
@@ -145,22 +154,37 @@ function createZeroClient(param) {
|
|
|
145
154
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
|
|
146
155
|
schema,
|
|
147
156
|
kvStore: "mem",
|
|
148
|
-
onError: function (error) {
|
|
149
|
-
console.error("Zero Error:", error), zeroEvents.emit({
|
|
150
|
-
type: "error",
|
|
151
|
-
message: error
|
|
152
|
-
});
|
|
153
|
-
},
|
|
154
157
|
mutators,
|
|
155
158
|
...props,
|
|
156
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
|
|
159
|
+
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
|
|
160
|
+
zeroEvents
|
|
161
|
+
}), children]
|
|
157
162
|
})
|
|
158
163
|
});
|
|
159
164
|
},
|
|
160
165
|
SetZeroInstance = function () {
|
|
161
166
|
var zero2 = (0, import_react.useZero)();
|
|
162
167
|
return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
|
|
163
|
-
}
|
|
168
|
+
},
|
|
169
|
+
ConnectionMonitor = /* @__PURE__ */(0, import_react2.memo)(function (param2) {
|
|
170
|
+
var {
|
|
171
|
+
zeroEvents: zeroEvents2
|
|
172
|
+
} = param2,
|
|
173
|
+
state = (0, import_react.useConnectionState)(),
|
|
174
|
+
prevState = (0, import_react2.useRef)(state.name);
|
|
175
|
+
return (0, import_react2.useEffect)(function () {
|
|
176
|
+
if (state.name !== prevState.current) {
|
|
177
|
+
var reason = "reason" in state ? state.reason : "";
|
|
178
|
+
if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
|
|
179
|
+
var message = typeof reason == "string" ? reason : state.name;
|
|
180
|
+
zeroEvents2.emit({
|
|
181
|
+
type: "error",
|
|
182
|
+
message
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}, [state, zeroEvents2]), null;
|
|
187
|
+
});
|
|
164
188
|
return {
|
|
165
189
|
zeroEvents,
|
|
166
190
|
ProvideZero,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_prettyFormatZeroQuery","import_queryRegistry","import_state","param","schema","models","groupedQueries","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_prettyFormatZeroQuery","import_queryRegistry","import_state","param","schema","models","groupedQueries","setSchema","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","err","return","customQueries","defineQueries","DisabledContext","createContext","modelWritePermissions","mapObject","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","permissionsHelpers","createPermissions","environment","zeroEvents","createEmitter","AuthDataContext","useAuthData","use","useQuery","createUseQuery","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","prettyFormatZeroQuery","result","allowed","ProvideZero","children","authDataIn","disable","props","mutators","useMemo","setAuthData","createMutators","can","jsx","Provider","jsxs","ZeroProvider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -23,9 +23,11 @@ __export(createZeroServer_exports, {
|
|
|
23
23
|
createZeroServer: () => createZeroServer
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(createZeroServer_exports);
|
|
26
|
-
var
|
|
26
|
+
var import_zero = require("@rocicorp/zero"),
|
|
27
|
+
import_pg = require("@rocicorp/zero/pg"),
|
|
28
|
+
import_server = require("@rocicorp/zero/server"),
|
|
27
29
|
import_pg2 = require("@rocicorp/zero/server/adapters/pg"),
|
|
28
|
-
import_helpers = require("@
|
|
30
|
+
import_helpers = require("@take-out/helpers"),
|
|
29
31
|
import_pg3 = require("pg"),
|
|
30
32
|
import_createPermissions = require("./createPermissions.cjs"),
|
|
31
33
|
import_createMutators = require("./helpers/createMutators.cjs"),
|
|
@@ -36,12 +38,16 @@ function createZeroServer({
|
|
|
36
38
|
database,
|
|
37
39
|
schema,
|
|
38
40
|
models,
|
|
39
|
-
|
|
41
|
+
queries
|
|
40
42
|
}) {
|
|
41
43
|
(0, import_state.setSchema)(schema);
|
|
42
44
|
const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'),
|
|
43
45
|
zeroDb = (0, import_pg2.zeroNodePg)(schema, new import_pg3.Pool({
|
|
44
|
-
connectionString: dbString
|
|
46
|
+
connectionString: dbString,
|
|
47
|
+
// handle self-signed certificates in production
|
|
48
|
+
ssl: dbString.includes("sslmode=require") ? {
|
|
49
|
+
rejectUnauthorized: !1
|
|
50
|
+
} : void 0
|
|
45
51
|
})),
|
|
46
52
|
permissions = (0, import_createPermissions.createPermissions)({
|
|
47
53
|
environment: "server",
|
|
@@ -76,22 +82,16 @@ function createZeroServer({
|
|
|
76
82
|
asyncTasks
|
|
77
83
|
};
|
|
78
84
|
},
|
|
79
|
-
|
|
80
|
-
if (syncedQueries) for (const [namespace, queries] of Object.entries(syncedQueries)) for (const [queryName, syncedQuery] of Object.entries(queries)) queryLookup.set(`${namespace}.${queryName}`, syncedQuery);
|
|
81
|
-
const handleQueryRequest = async ({
|
|
85
|
+
handleQueryRequest = async ({
|
|
82
86
|
authData,
|
|
83
87
|
request
|
|
84
88
|
}) => {
|
|
85
|
-
|
|
86
|
-
const q = queryLookup.get(name);
|
|
87
|
-
if (!q) throw new Error(`No such query: ${name}`);
|
|
88
|
-
return {
|
|
89
|
-
// @ts-expect-error zero bug atm
|
|
90
|
-
query: q(...args)
|
|
91
|
-
};
|
|
92
|
-
}
|
|
89
|
+
if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
|
|
93
90
|
return (0, import_state.setAuthData)(authData || {}), {
|
|
94
|
-
response: await (0,
|
|
91
|
+
response: await (0, import_server.handleQueryRequest)((name, args) => (0, import_zero.mustGetQuery)(queries, name).fn({
|
|
92
|
+
args,
|
|
93
|
+
ctx: authData
|
|
94
|
+
}), schema, request)
|
|
95
95
|
};
|
|
96
96
|
},
|
|
97
97
|
mutate = async (run, authData) => {
|
|
@@ -17,19 +17,21 @@ __export(createZeroServer_exports, {
|
|
|
17
17
|
createZeroServer: () => createZeroServer
|
|
18
18
|
});
|
|
19
19
|
module.exports = __toCommonJS(createZeroServer_exports);
|
|
20
|
-
var import_pg = require("@rocicorp/zero/pg"), import_pg2 = require("@rocicorp/zero/server/adapters/pg"), import_helpers = require("@
|
|
20
|
+
var import_zero = require("@rocicorp/zero"), import_pg = require("@rocicorp/zero/pg"), import_server = require("@rocicorp/zero/server"), import_pg2 = require("@rocicorp/zero/server/adapters/pg"), import_helpers = require("@take-out/helpers"), import_pg3 = require("pg"), import_createPermissions = require("./createPermissions"), import_createMutators = require("./helpers/createMutators"), import_mutatorContext = require("./helpers/mutatorContext"), import_state = require("./state");
|
|
21
21
|
function createZeroServer({
|
|
22
22
|
createServerActions,
|
|
23
23
|
database,
|
|
24
24
|
schema,
|
|
25
25
|
models,
|
|
26
|
-
|
|
26
|
+
queries
|
|
27
27
|
}) {
|
|
28
28
|
(0, import_state.setSchema)(schema);
|
|
29
29
|
const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'), zeroDb = (0, import_pg2.zeroNodePg)(
|
|
30
30
|
schema,
|
|
31
31
|
new import_pg3.Pool({
|
|
32
|
-
connectionString: dbString
|
|
32
|
+
connectionString: dbString,
|
|
33
|
+
// handle self-signed certificates in production
|
|
34
|
+
ssl: dbString.includes("sslmode=require") ? { rejectUnauthorized: !1 } : void 0
|
|
33
35
|
})
|
|
34
36
|
), permissions = (0, import_createPermissions.createPermissions)({
|
|
35
37
|
environment: "server",
|
|
@@ -59,26 +61,20 @@ function createZeroServer({
|
|
|
59
61
|
response,
|
|
60
62
|
asyncTasks
|
|
61
63
|
};
|
|
62
|
-
},
|
|
63
|
-
if (syncedQueries)
|
|
64
|
-
for (const [namespace, queries] of Object.entries(syncedQueries))
|
|
65
|
-
for (const [queryName, syncedQuery] of Object.entries(queries))
|
|
66
|
-
queryLookup.set(`${namespace}.${queryName}`, syncedQuery);
|
|
67
|
-
const handleQueryRequest = async ({
|
|
64
|
+
}, handleQueryRequest = async ({
|
|
68
65
|
authData,
|
|
69
66
|
request
|
|
70
67
|
}) => {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
// @ts-expect-error zero bug atm
|
|
77
|
-
query: q(...args)
|
|
78
|
-
};
|
|
79
|
-
}
|
|
68
|
+
if (!queries)
|
|
69
|
+
throw new Error(
|
|
70
|
+
"No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option."
|
|
71
|
+
);
|
|
80
72
|
return (0, import_state.setAuthData)(authData || {}), {
|
|
81
|
-
response: await (0,
|
|
73
|
+
response: await (0, import_server.handleQueryRequest)(
|
|
74
|
+
(name, args) => (0, import_zero.mustGetQuery)(queries, name).fn({ args, ctx: authData }),
|
|
75
|
+
schema,
|
|
76
|
+
request
|
|
77
|
+
)
|
|
82
78
|
};
|
|
83
79
|
}, mutate = async (run, authData) => {
|
|
84
80
|
const asyncTasks = [], mutators = (0, import_createMutators.createMutators)({
|