over-zero 0.0.31 → 0.0.32
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.cjs +18 -14
- package/dist/cjs/createZeroClient.js +9 -8
- package/dist/cjs/createZeroClient.js.map +1 -1
- package/dist/cjs/createZeroClient.native.js +11 -7
- package/dist/cjs/createZeroClient.native.js.map +1 -1
- package/dist/esm/createZeroClient.js +9 -8
- package/dist/esm/createZeroClient.js.map +1 -1
- package/dist/esm/createZeroClient.mjs +18 -14
- package/dist/esm/createZeroClient.mjs.map +1 -1
- package/dist/esm/createZeroClient.native.js +11 -7
- package/dist/esm/createZeroClient.native.js.map +1 -1
- package/package.json +1 -1
- package/src/createZeroClient.tsx +14 -5
- package/types/createZeroClient.d.ts +5 -5
- package/types/createZeroClient.d.ts.map +1 -1
|
@@ -35,11 +35,11 @@ var import_zero = require("@rocicorp/zero"),
|
|
|
35
35
|
import_jsx_runtime = require("react/jsx-runtime");
|
|
36
36
|
function createZeroClient({
|
|
37
37
|
schema,
|
|
38
|
-
models
|
|
39
|
-
disable
|
|
38
|
+
models
|
|
40
39
|
}) {
|
|
41
40
|
(0, import_state.setSchema)(schema);
|
|
42
|
-
const
|
|
41
|
+
const DisabledContext = (0, import_react2.createContext)(!1),
|
|
42
|
+
modelWritePermissions = (0, import_helpers.mapObject)(models, val => val.permissions);
|
|
43
43
|
let latestZeroInstance = null;
|
|
44
44
|
const zero = new Proxy({}, {
|
|
45
45
|
get(_, key) {
|
|
@@ -54,11 +54,12 @@ function createZeroClient({
|
|
|
54
54
|
AuthDataContext = (0, import_react2.createContext)({}),
|
|
55
55
|
useAuthData = () => (0, import_react2.use)(AuthDataContext);
|
|
56
56
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
57
|
-
const
|
|
57
|
+
const disabled = (0, import_react2.use)(DisabledContext),
|
|
58
|
+
authData = useAuthData(),
|
|
58
59
|
permission = modelWritePermissions[table],
|
|
59
60
|
query = (() => {
|
|
60
61
|
let baseQuery = zero.query[table].one();
|
|
61
|
-
return !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
|
|
62
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
|
|
62
63
|
})(),
|
|
63
64
|
[data, status] = useQuery(query, {
|
|
64
65
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
@@ -75,7 +76,8 @@ function createZeroClient({
|
|
|
75
76
|
const queryCache = /* @__PURE__ */new Map(),
|
|
76
77
|
parseAny = x => [x[0]];
|
|
77
78
|
function useQuery(...args) {
|
|
78
|
-
const
|
|
79
|
+
const disabled = (0, import_react2.use)(DisabledContext),
|
|
80
|
+
[queryOrFn, paramsOrOptions, optionsArg] = args,
|
|
79
81
|
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
80
82
|
{
|
|
81
83
|
actualQuery,
|
|
@@ -97,21 +99,23 @@ function createZeroClient({
|
|
|
97
99
|
};
|
|
98
100
|
}, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]),
|
|
99
101
|
out = (0, import_react.useQuery)(actualQuery, options);
|
|
100
|
-
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out),
|
|
102
|
+
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out), disabled ? [null, {
|
|
101
103
|
type: "unknown"
|
|
102
104
|
}] : out;
|
|
103
105
|
}
|
|
104
106
|
const ProvideZero = ({
|
|
105
107
|
children,
|
|
106
|
-
authData,
|
|
108
|
+
authData: authDataIn,
|
|
109
|
+
disable,
|
|
107
110
|
...props
|
|
108
111
|
}) => {
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
const authData = authDataIn,
|
|
113
|
+
mutators = (0, import_react2.useMemo)(() => ((0, import_state.setAuthData)(authData), (0, import_createMutators.createMutators)({
|
|
114
|
+
models,
|
|
115
|
+
environment: "client",
|
|
116
|
+
authData,
|
|
117
|
+
can: permissionsHelpers.can
|
|
118
|
+
})), [models, authData]);
|
|
115
119
|
return disable ? children : /* @__PURE__ */(0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
|
|
116
120
|
value: authData,
|
|
117
121
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
|
|
@@ -18,9 +18,9 @@ __export(createZeroClient_exports, {
|
|
|
18
18
|
});
|
|
19
19
|
module.exports = __toCommonJS(createZeroClient_exports);
|
|
20
20
|
var import_zero = require("@rocicorp/zero"), import_react = require("@rocicorp/zero/react"), import_helpers = require("@vxrn/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_createMutators = require("./helpers/createMutators"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_useZeroDebug = require("./helpers/useZeroDebug"), import_state = require("./state"), import_jsx_runtime = require("react/jsx-runtime");
|
|
21
|
-
function createZeroClient({ schema, models
|
|
21
|
+
function createZeroClient({ schema, models }) {
|
|
22
22
|
(0, import_state.setSchema)(schema);
|
|
23
|
-
const modelWritePermissions = (0, import_helpers.mapObject)(models, (val) => val.permissions);
|
|
23
|
+
const DisabledContext = (0, import_react2.createContext)(!1), modelWritePermissions = (0, import_helpers.mapObject)(models, (val) => val.permissions);
|
|
24
24
|
let latestZeroInstance = null;
|
|
25
25
|
const zero = new Proxy({}, {
|
|
26
26
|
get(_, key) {
|
|
@@ -31,9 +31,9 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
31
31
|
environment: "client"
|
|
32
32
|
}), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = (0, import_react2.createContext)({}), useAuthData = () => (0, import_react2.use)(AuthDataContext);
|
|
33
33
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
34
|
-
const authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
|
|
34
|
+
const disabled = (0, import_react2.use)(DisabledContext), authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
|
|
35
35
|
let baseQuery = zero.query[table].one();
|
|
36
|
-
return !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
36
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
37
37
|
authData,
|
|
38
38
|
eb,
|
|
39
39
|
permission,
|
|
@@ -52,7 +52,7 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
52
52
|
}
|
|
53
53
|
const queryCache = /* @__PURE__ */ new Map(), parseAny = (x) => [x[0]];
|
|
54
54
|
function useQuery(...args) {
|
|
55
|
-
const [queryOrFn, paramsOrOptions, optionsArg] = args, isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn), { actualQuery, options } = (0, import_react2.useMemo)(() => {
|
|
55
|
+
const disabled = (0, import_react2.use)(DisabledContext), [queryOrFn, paramsOrOptions, optionsArg] = args, isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn), { actualQuery, options } = (0, import_react2.useMemo)(() => {
|
|
56
56
|
if (!isPlainFunction)
|
|
57
57
|
return {
|
|
58
58
|
actualQuery: queryOrFn,
|
|
@@ -62,14 +62,15 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
62
62
|
let synced = queryCache.get(queryName);
|
|
63
63
|
return synced || (synced = (0, import_zero.syncedQuery)(queryName, parseAny, (arg) => fn(arg)), queryCache.set(queryName, synced)), { actualQuery: params !== void 0 ? synced(params) : synced, options: opts };
|
|
64
64
|
}, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]), out = (0, import_react.useQuery)(actualQuery, options);
|
|
65
|
-
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out),
|
|
65
|
+
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out), disabled ? [null, { type: "unknown" }] : out;
|
|
66
66
|
}
|
|
67
67
|
const ProvideZero = ({
|
|
68
68
|
children,
|
|
69
|
-
authData,
|
|
69
|
+
authData: authDataIn,
|
|
70
|
+
disable,
|
|
70
71
|
...props
|
|
71
72
|
}) => {
|
|
72
|
-
const mutators = (0, import_react2.useMemo)(() => ((0, import_state.setAuthData)(authData), (0, import_createMutators.createMutators)({
|
|
73
|
+
const authData = authDataIn, mutators = (0, import_react2.useMemo)(() => ((0, import_state.setAuthData)(authData), (0, import_createMutators.createMutators)({
|
|
73
74
|
models,
|
|
74
75
|
environment: "client",
|
|
75
76
|
authData,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,kBAA4B,2BAC5B,eAAgE,iCAChE,iBAAyC,0BACzCA,gBAA4D,kBAC5D,2BAAkC,gCAClC,wBAA+B,qCAC/B,+BAAsC,4CACtC,sBAA6B,mCAC7B,eAAuC,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["import_react", "zeroUseQuery", "zero"]
|
|
6
6
|
}
|
|
@@ -43,11 +43,11 @@ function _type_of(obj) {
|
|
|
43
43
|
function createZeroClient(param) {
|
|
44
44
|
var {
|
|
45
45
|
schema,
|
|
46
|
-
models
|
|
47
|
-
disable
|
|
46
|
+
models
|
|
48
47
|
} = param;
|
|
49
48
|
(0, import_state.setSchema)(schema);
|
|
50
|
-
var
|
|
49
|
+
var DisabledContext = /* @__PURE__ */(0, import_react2.createContext)(!1),
|
|
50
|
+
modelWritePermissions = (0, import_helpers.mapObject)(models, function (val) {
|
|
51
51
|
return val.permissions;
|
|
52
52
|
}),
|
|
53
53
|
latestZeroInstance = null,
|
|
@@ -68,11 +68,12 @@ function createZeroClient(param) {
|
|
|
68
68
|
function usePermission(table, objOrId) {
|
|
69
69
|
var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
|
|
70
70
|
debug = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
|
|
71
|
+
disabled = (0, import_react2.use)(DisabledContext),
|
|
71
72
|
authData = useAuthData(),
|
|
72
73
|
permission = modelWritePermissions[table],
|
|
73
74
|
query = function () {
|
|
74
75
|
var baseQuery = zero.query[table].one();
|
|
75
|
-
return !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
|
|
76
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
|
|
76
77
|
return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
|
|
77
78
|
});
|
|
78
79
|
}(),
|
|
@@ -95,7 +96,8 @@ function createZeroClient(param) {
|
|
|
95
96
|
};
|
|
96
97
|
function useQuery() {
|
|
97
98
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
98
|
-
var
|
|
99
|
+
var disabled = (0, import_react2.use)(DisabledContext),
|
|
100
|
+
[queryOrFn, paramsOrOptions, optionsArg] = args,
|
|
99
101
|
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
100
102
|
{
|
|
101
103
|
actualQuery,
|
|
@@ -121,16 +123,18 @@ function createZeroClient(param) {
|
|
|
121
123
|
};
|
|
122
124
|
}, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]),
|
|
123
125
|
out = (0, import_react.useQuery)(actualQuery, options);
|
|
124
|
-
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out),
|
|
126
|
+
return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out), disabled ? [null, {
|
|
125
127
|
type: "unknown"
|
|
126
128
|
}] : out;
|
|
127
129
|
}
|
|
128
130
|
var ProvideZero = function (param2) {
|
|
129
131
|
var {
|
|
130
132
|
children,
|
|
131
|
-
authData,
|
|
133
|
+
authData: authDataIn,
|
|
134
|
+
disable,
|
|
132
135
|
...props
|
|
133
136
|
} = param2,
|
|
137
|
+
authData = authDataIn,
|
|
134
138
|
mutators = (0, import_react2.useMemo)(function () {
|
|
135
139
|
return (0, import_state.setAuthData)(authData), (0, import_createMutators.createMutators)({
|
|
136
140
|
models,
|
|
@@ -1 +1 @@
|
|
|
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_createMutators","import_prettyFormatZeroQuery","import_useZeroDebug","import_state","_type_of","obj","Symbol","constructor","param","schema","models","
|
|
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_createMutators","import_prettyFormatZeroQuery","import_useZeroDebug","import_state","_type_of","obj","Symbol","constructor","param","schema","models","setSchema","DisabledContext","createContext","modelWritePermissions","mapObject","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","createPermissions","environment","zeroEvents","createEmitter","AuthDataContext","useAuthData","use","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","useQuery","console","info","prettyFormatZeroQuery","result","allowed","queryCache","Map","parseAny","x","_len","args","Array","_key","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","useMemo","fn","queryName","name","hasParams","params","opts","synced","syncedQuery","arg","set","out","process","env","NODE_ENV","useZeroDebug","type","ProvideZero","param2","children","authDataIn","disable","props","mutators","setAuthData","createMutators","can","jsx","Provider","jsxs","ZeroProvider"],"sources":["../../src/createZeroClient.tsx"],"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;AAUAC,MAAA,CAAAC,OAAA,GAAAT,YAA4B,CAAAK,wBAC5B;AAUO,IAAAK,kBAAS,GAAAC,OAGZ,oBAAsD;EAAAC,WAAA,GAAAD,OAAA;EAAAE,YAAA,GAAAF,OAAA;EAAAG,cAAA,GAAAH,OAAA;EAAAI,aAAA,GAAAJ,OAAA;EAAAK,wBAAA,GAAAL,OAAA;EAAAM,qBAAA,GAAAN,OAAA;EAAAO,4BAAA,GAAAP,OAAA;EAAAQ,mBAAA,GAAAR,OAAA;EAAAS,YAAA,GAAAT,OAAA;AAKxD,SAAAU,SAAAC,GAAA;EAEA,uBAAM;;EAMN,OAAIA,GAAA,WAAAC,MAA0C,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAI9C;AAAkD,SAC5Cf,gBAAQA,CAAAkB,KAAA;EACV;IAAAC,MAAO;IAAAC;EAAQ,IAAIF,KAAA;EAA4C,EACjE,EAAAL,YAAA,CAAAQ,SAAA,EAAAF,MAAA;EACF,IAEMG,eAAA,kBAAqB,IAAAd,aAAA,CAAAe,aAAA,IAA0B;IAAAC,qBAAA,OAAAjB,cAAA,CAAAkB,SAAA,EAAAL,MAAA,YAAAM,GAAA;MACnD,OAAAA,GAAA,CAAAC,WAAA;IAAA,EACA;IAAAC,kBAAa;IAAAC,IAAA,OAAAC,KAAA;MACdC,GAMKA,CAAAC,CAAA,EAAAC,GAAA;QASN,OAASC,OAAA,CAAAH,GAAA,CACPH,kBAEA,EAAAK,GAAA,EAAAL,kBAA6B;MAG7B;IAME;IAAAO,kBAAgB,GAAK,IAAA1B,wBAAiB,CAAA2B,iBAAA;MAEtCjB,MAAA;MAK4BkB,WACxB;IAAA;IAAAC,UACA,OAAA/B,cAAA,CAAAgC,aAAA;IAAAC,eAAA,sBAAAhC,aAAA,CAAAe,aAAA;IAAAkB,WAAA,YAAAA,CAAA;MAAA,OACA,IAAAjC,aAAA,CAAAkC,GAAA,EAAAF,eAAA;IAAA;EACA,SAEHG,cAAAC,KAAA,EAAAC,OAAA;IACH,IAAGC,OAEI,GAAMC,SAAU,CAAAC,MAAA,GAAS,KAAAD,SAAO,iBAAAA,SAAA,aAAAF,OAAA;MAAAI,KAAA,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;MAAAG,QAAA,OAAA1C,aAAA,CAAAkC,GAAA,EAAApB,eAAA;MAAA6B,QAAA,GAAAV,WAAA;MAAAW,UAAA,GAAA5B,qBAAA,CAAAoB,KAAA;MAAAS,KAAA;QACrC,IAAAC,SAAiB,GAAAzB,IAAA,CAAAwB,KAAW,CAAAT,KAAA,EAAAW,GAAc;QAC3C,OAAAL,QAAA,KAAAJ,OAAA,KAAAM,UAAA,GAAAE,SAAA,GAAAA,SAAA,CAAAE,KAAA,WAAAC,EAAA;UAEG,OACFtB,kBAAQ,CAAAuB,oBAAA,CAAAP,QAAA,EAAAM,EAAA,EAAAL,UAAA,EAAAP,OAAA;QACN;MAAA,EACA,CAAE;MAAA,CAAAc,IAAM,EAAAC,MAAQ,IAAAC,QAAU,CAAAR,KAAA,EAAW;QAAAP,OACrC,KAAAA,OAAA,IAAAM,UAAA,IAAAD,QAAA,IAAAN,OAAsB;MACxB;IAKFI,KAAA,IAAMa,OAAU,CAAAC,IAFD;MAIfJ,IAAA;MAKFC,MAAA;MAeAT,QAAM;MA0BNC;IACE,OAAMzC,4BAAW,CAAAqD,qBAAmB,EAC7BX,KAAA;IAML,IAAAY,MAAK,GAAAN,IAAA;MAAAO,OAAA,KAAAD,MAAA;IAEH,OAAApB,OAAO,GAAAqB,OAAA;EAAA;EACQ,IAAAC,UACb,GAAS,mBAAAC,GAAA;IAAAC,QAAA,YAAAA,CAAAC,CAAA;MAAA,OACX,CAGFA,CAAA,IAcA;IACA;EAU2C,SACzCT,QAAWA,CAAA;IASf,SALIU,IAAA,GAAQxB,SAAI,CAAAC,MAAa,EAAAwB,IAAA,OAAAC,KAAA,CAAAF,IAE3B,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA,EAAa,EAQjBF,IAAA,CAAAE,IAAA,IAAA3B,SAAA,CAAA2B,IAAA;IAEA,IAAMxB,QAAA,OAAe1C,aAAA,CAAAkC,GAAA,EAAApB,eAAA;MAAA,CAAAqD,SAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAL,IAAA;MAAAM,eAAA,UAAAH,SAAA,mCAAAA,SAAA;MAAA;QAAAI,WAAA;QAAAC;MAAA,QAAAxE,aAAA,CAAAyE,OAAA;QACnB,KAAAH,eAAA,EACA,OAAU;UACVC,WAAA,EAAAJ,SAAA;UACGK,OAAA,EAAAJ;QAKC;QACJ,IAAMM,EAAA,GAAAP,SAAW;UAAAQ,SAEX,GAAAD,EAAA,CAAAE,IAAA,IAAW;UAAAC,SAAQ,GAAAR,UACvB,eAAAD,eAAoB,IAEb,QAAAA,eAAA,oBAAe,GAAA9D,QAAA,CAAA8D,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAU,MAAA,GAAAD,SAAA,GAAAT,eAAA;UAAAW,IAAA,GAAAF,SAAA,GAAAR,UAAA,GAAAD,eAAA;UAAAY,MAAA,GAAArB,UAAA,CAAApC,GAAA,CAAAoD,SAAA;QACpBK,MAAA,KAAAA,MAAA,OAAAnF,WAAA,CAAAoF,WAAA,EAAAN,SAAA,EAAAd,QAAA,YAAAqB,GAAA;UACA,OAAAR,EAAA,CAAAQ,GAAa;QACb,IAAAvB,UAAA,CAAAwB,GAAA,CAAAR,SAAA,EAAAK,MAAA;QACA,IAAAnC,KAAK,GAAAiC,MAAA,UAAmB,IAAAE,MAAA,CAAAF,MAAA,IAAAE,MAAA;QACzB,OACC;UAGJT,WAAI,EACK1B,KAAA;UAKJ2B,OAAA,EAAAO;QAAA;MAAA,IACCZ,SACA,EAAQC,eACE,EACRC,UAAA,EACgBC,eACR;MAAAc,GAAA,GACN,IAAAtF,YAAS,CAAAuD,QAAA,EAAAkB,WAAA,EAAAC,OAAA;IAAA,OACVa,OAAA,CAAAC,GAAA,CAAAC,QAAA,0BAAAnF,mBAAA,CAAAoF,YAAA,EAAAjB,WAAA,EAAAC,OAAA,EAAAY,GAAA,GAAA1C,QAAA,QACH;MAEC+C,IAAG;IAAA,EAEJ,GAAAL,GAAA;EAAiB;EAChB,IAAAM,WAAA,YAAAA,CAAAC,MAAA;MAAA;UAAAC,QAAA;UAAAjD,QAAA,EAAAkD,UAAA;UAAAC,OAAA;UAAA,GAAAC;QAAA,IAAAJ,MAAA;QAAAhD,QAAA,GAAAkD,UAAA;QAAAG,QAAA,OAAAhG,aAAA,CAAAyE,OAAA;UACH,OACF,IAAApE,YAAA,CAAA4F,WAAA,EAAAtD,QAAA,OAAAzC,qBAAA,CAAAgG,cAAA;YAIEtF,MAAA;YACJiB,WAAM,UAAO;YAQbc,QAAI;YAKNwD,GAAA,EAAAxE,kBAAA,CAAAwE;UAEA;QACE,IACAvF,MAAA,EACA+B,QAAA,CACA;MACA,OAAAmD,OAAA,GAAAF,QAAA,sBAAAjG,kBAAA,CAAAyG,GAAA,EAAApE,eAAA,CAAAqE,QAAA;QACFhH,KAAA,EAAAsD,QAAA;QACFiD,QAAA,qBAAAjG,kBAAA,CAAA2G,IAAA,EAAAxG,YAAA,CAAAyG,YAAA","ignoreList":[]}
|
|
@@ -8,9 +8,9 @@ import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery";
|
|
|
8
8
|
import { useZeroDebug } from "./helpers/useZeroDebug";
|
|
9
9
|
import { setAuthData, setSchema } from "./state";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
-
function createZeroClient({ schema, models
|
|
11
|
+
function createZeroClient({ schema, models }) {
|
|
12
12
|
setSchema(schema);
|
|
13
|
-
const modelWritePermissions = mapObject(models, (val) => val.permissions);
|
|
13
|
+
const DisabledContext = createContext(!1), modelWritePermissions = mapObject(models, (val) => val.permissions);
|
|
14
14
|
let latestZeroInstance = null;
|
|
15
15
|
const zero = new Proxy({}, {
|
|
16
16
|
get(_, key) {
|
|
@@ -21,9 +21,9 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
21
21
|
environment: "client"
|
|
22
22
|
}), zeroEvents = createEmitter("zero", null), AuthDataContext = createContext({}), useAuthData = () => use(AuthDataContext);
|
|
23
23
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
24
|
-
const authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
|
|
24
|
+
const disabled = use(DisabledContext), authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
|
|
25
25
|
let baseQuery = zero.query[table].one();
|
|
26
|
-
return !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
26
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
|
|
27
27
|
authData,
|
|
28
28
|
eb,
|
|
29
29
|
permission,
|
|
@@ -42,7 +42,7 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
42
42
|
}
|
|
43
43
|
const queryCache = /* @__PURE__ */ new Map(), parseAny = (x) => [x[0]];
|
|
44
44
|
function useQuery(...args) {
|
|
45
|
-
const [queryOrFn, paramsOrOptions, optionsArg] = args, isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn), { actualQuery, options } = useMemo(() => {
|
|
45
|
+
const disabled = use(DisabledContext), [queryOrFn, paramsOrOptions, optionsArg] = args, isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn), { actualQuery, options } = useMemo(() => {
|
|
46
46
|
if (!isPlainFunction)
|
|
47
47
|
return {
|
|
48
48
|
actualQuery: queryOrFn,
|
|
@@ -52,14 +52,15 @@ function createZeroClient({ schema, models, disable }) {
|
|
|
52
52
|
let synced = queryCache.get(queryName);
|
|
53
53
|
return synced || (synced = syncedQuery(queryName, parseAny, (arg) => fn(arg)), queryCache.set(queryName, synced)), { actualQuery: params !== void 0 ? synced(params) : synced, options: opts };
|
|
54
54
|
}, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]), out = zeroUseQuery(actualQuery, options);
|
|
55
|
-
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out),
|
|
55
|
+
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, { type: "unknown" }] : out;
|
|
56
56
|
}
|
|
57
57
|
const ProvideZero = ({
|
|
58
58
|
children,
|
|
59
|
-
authData,
|
|
59
|
+
authData: authDataIn,
|
|
60
|
+
disable,
|
|
60
61
|
...props
|
|
61
62
|
}) => {
|
|
62
|
-
const mutators = useMemo(() => (setAuthData(authData), createMutators({
|
|
63
|
+
const authData = authDataIn, mutators = useMemo(() => (setAuthData(authData), createMutators({
|
|
63
64
|
models,
|
|
64
65
|
environment: "client",
|
|
65
66
|
authData,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/createZeroClient.tsx"],
|
|
4
|
-
"mappings": "AAUA,SAAS,mBAAmB;AAC5B,SAAS,SAAS,cAAc,YAAY,oBAAoB;AAChE,SAAS,eAAe,iBAAiB;AACzC,SAAS,eAAe,KAAK,eAA+B;AAC5D,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,aAAa,iBAAiB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["zero"]
|
|
6
6
|
}
|
|
@@ -10,11 +10,11 @@ import { setAuthData, setSchema } from "./state.mjs";
|
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
11
|
function createZeroClient({
|
|
12
12
|
schema,
|
|
13
|
-
models
|
|
14
|
-
disable
|
|
13
|
+
models
|
|
15
14
|
}) {
|
|
16
15
|
setSchema(schema);
|
|
17
|
-
const
|
|
16
|
+
const DisabledContext = createContext(!1),
|
|
17
|
+
modelWritePermissions = mapObject(models, val => val.permissions);
|
|
18
18
|
let latestZeroInstance = null;
|
|
19
19
|
const zero = new Proxy({}, {
|
|
20
20
|
get(_, key) {
|
|
@@ -29,11 +29,12 @@ function createZeroClient({
|
|
|
29
29
|
AuthDataContext = createContext({}),
|
|
30
30
|
useAuthData = () => use(AuthDataContext);
|
|
31
31
|
function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
|
|
32
|
-
const
|
|
32
|
+
const disabled = use(DisabledContext),
|
|
33
|
+
authData = useAuthData(),
|
|
33
34
|
permission = modelWritePermissions[table],
|
|
34
35
|
query = (() => {
|
|
35
36
|
let baseQuery = zero.query[table].one();
|
|
36
|
-
return !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
|
|
37
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
|
|
37
38
|
})(),
|
|
38
39
|
[data, status] = useQuery(query, {
|
|
39
40
|
enabled: !!(enabled && permission && authData && objOrId)
|
|
@@ -50,7 +51,8 @@ function createZeroClient({
|
|
|
50
51
|
const queryCache = /* @__PURE__ */new Map(),
|
|
51
52
|
parseAny = x => [x[0]];
|
|
52
53
|
function useQuery(...args) {
|
|
53
|
-
const
|
|
54
|
+
const disabled = use(DisabledContext),
|
|
55
|
+
[queryOrFn, paramsOrOptions, optionsArg] = args,
|
|
54
56
|
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
55
57
|
{
|
|
56
58
|
actualQuery,
|
|
@@ -72,21 +74,23 @@ function createZeroClient({
|
|
|
72
74
|
};
|
|
73
75
|
}, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]),
|
|
74
76
|
out = zeroUseQuery(actualQuery, options);
|
|
75
|
-
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out),
|
|
77
|
+
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, {
|
|
76
78
|
type: "unknown"
|
|
77
79
|
}] : out;
|
|
78
80
|
}
|
|
79
81
|
const ProvideZero = ({
|
|
80
82
|
children,
|
|
81
|
-
authData,
|
|
83
|
+
authData: authDataIn,
|
|
84
|
+
disable,
|
|
82
85
|
...props
|
|
83
86
|
}) => {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
const authData = authDataIn,
|
|
88
|
+
mutators = useMemo(() => (setAuthData(authData), createMutators({
|
|
89
|
+
models,
|
|
90
|
+
environment: "client",
|
|
91
|
+
authData,
|
|
92
|
+
can: permissionsHelpers.can
|
|
93
|
+
})), [models, authData]);
|
|
90
94
|
return disable ? children : /* @__PURE__ */jsx(AuthDataContext.Provider, {
|
|
91
95
|
value: authData,
|
|
92
96
|
children: /* @__PURE__ */jsxs(ZeroProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["syncedQuery","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createMutators","prettyFormatZeroQuery","useZeroDebug","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","
|
|
1
|
+
{"version":3,"names":["syncedQuery","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createMutators","prettyFormatZeroQuery","useZeroDebug","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","queryCache","Map","parseAny","x","args","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","fn","queryName","name","hasParams","params","opts","synced","arg","set","out","process","env","NODE_ENV","type","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -16,11 +16,11 @@ function _type_of(obj) {
|
|
|
16
16
|
function createZeroClient(param) {
|
|
17
17
|
var {
|
|
18
18
|
schema,
|
|
19
|
-
models
|
|
20
|
-
disable
|
|
19
|
+
models
|
|
21
20
|
} = param;
|
|
22
21
|
setSchema(schema);
|
|
23
|
-
var
|
|
22
|
+
var DisabledContext = /* @__PURE__ */createContext(!1),
|
|
23
|
+
modelWritePermissions = mapObject(models, function (val) {
|
|
24
24
|
return val.permissions;
|
|
25
25
|
}),
|
|
26
26
|
latestZeroInstance = null,
|
|
@@ -41,11 +41,12 @@ function createZeroClient(param) {
|
|
|
41
41
|
function usePermission(table, objOrId) {
|
|
42
42
|
var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
|
|
43
43
|
debug = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
|
|
44
|
+
disabled = use(DisabledContext),
|
|
44
45
|
authData = useAuthData(),
|
|
45
46
|
permission = modelWritePermissions[table],
|
|
46
47
|
query = function () {
|
|
47
48
|
var baseQuery = zero.query[table].one();
|
|
48
|
-
return !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
|
|
49
|
+
return disabled || !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
|
|
49
50
|
return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
|
|
50
51
|
});
|
|
51
52
|
}(),
|
|
@@ -68,7 +69,8 @@ function createZeroClient(param) {
|
|
|
68
69
|
};
|
|
69
70
|
function useQuery() {
|
|
70
71
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
|
|
71
|
-
var
|
|
72
|
+
var disabled = use(DisabledContext),
|
|
73
|
+
[queryOrFn, paramsOrOptions, optionsArg] = args,
|
|
72
74
|
isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
|
|
73
75
|
{
|
|
74
76
|
actualQuery,
|
|
@@ -94,16 +96,18 @@ function createZeroClient(param) {
|
|
|
94
96
|
};
|
|
95
97
|
}, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]),
|
|
96
98
|
out = zeroUseQuery(actualQuery, options);
|
|
97
|
-
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out),
|
|
99
|
+
return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, {
|
|
98
100
|
type: "unknown"
|
|
99
101
|
}] : out;
|
|
100
102
|
}
|
|
101
103
|
var ProvideZero = function (param2) {
|
|
102
104
|
var {
|
|
103
105
|
children,
|
|
104
|
-
authData,
|
|
106
|
+
authData: authDataIn,
|
|
107
|
+
disable,
|
|
105
108
|
...props
|
|
106
109
|
} = param2,
|
|
110
|
+
authData = authDataIn,
|
|
107
111
|
mutators = useMemo(function () {
|
|
108
112
|
return setAuthData(authData), createMutators({
|
|
109
113
|
models,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","syncedQuery","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createMutators","prettyFormatZeroQuery","useZeroDebug","setAuthData","setSchema","_type_of","obj","Symbol","constructor","createZeroClient","param","schema","models","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","syncedQuery","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createMutators","prettyFormatZeroQuery","useZeroDebug","setAuthData","setSchema","_type_of","obj","Symbol","constructor","createZeroClient","param","schema","models","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","queryCache","Map","parseAny","x","_len","args","Array","_key","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","fn","queryName","name","hasParams","params","opts","synced","arg","set","out","process","env","NODE_ENV","type","ProvideZero","param2","children","authDataIn","disable","props","mutators","can","Provider","value"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/createZeroClient.tsx
CHANGED
|
@@ -22,13 +22,15 @@ import type { AuthData, GenericModels, GetZeroMutators, ZeroEvent } from './type
|
|
|
22
22
|
export function createZeroClient<
|
|
23
23
|
Schema extends ZeroSchema,
|
|
24
24
|
Models extends GenericModels,
|
|
25
|
-
>({ schema, models
|
|
25
|
+
>({ schema, models }: { schema: Schema; models: Models }) {
|
|
26
26
|
type ZeroMutators = GetZeroMutators<Models>
|
|
27
27
|
type ZeroInstance = Zero<Schema, ZeroMutators>
|
|
28
28
|
type TableName = keyof ZeroInstance['query']
|
|
29
29
|
|
|
30
30
|
setSchema(schema)
|
|
31
31
|
|
|
32
|
+
const DisabledContext = createContext(false)
|
|
33
|
+
|
|
32
34
|
const modelWritePermissions = mapObject(models, (val) => val.permissions) as {
|
|
33
35
|
[K in TableName]: K extends keyof Models ? Models[K]['permissions'] : never
|
|
34
36
|
}
|
|
@@ -67,6 +69,7 @@ export function createZeroClient<
|
|
|
67
69
|
enabled = typeof objOrId !== 'undefined',
|
|
68
70
|
debug = false
|
|
69
71
|
): boolean | null {
|
|
72
|
+
const disabled = use(DisabledContext)
|
|
70
73
|
// const cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase)
|
|
71
74
|
const authData = useAuthData()
|
|
72
75
|
const permission = modelWritePermissions[table]
|
|
@@ -74,7 +77,7 @@ export function createZeroClient<
|
|
|
74
77
|
const query = (() => {
|
|
75
78
|
let baseQuery = zero.query[table].one()
|
|
76
79
|
|
|
77
|
-
if (!enabled || !permission) {
|
|
80
|
+
if (disabled || !enabled || !permission) {
|
|
78
81
|
return baseQuery
|
|
79
82
|
}
|
|
80
83
|
|
|
@@ -151,6 +154,7 @@ export function createZeroClient<
|
|
|
151
154
|
|
|
152
155
|
// Implementation - keep it simple with any
|
|
153
156
|
function useQuery(...args: any[]): any {
|
|
157
|
+
const disabled = use(DisabledContext)
|
|
154
158
|
const [queryOrFn, paramsOrOptions, optionsArg] = args
|
|
155
159
|
|
|
156
160
|
// Detect which calling pattern is being used
|
|
@@ -200,7 +204,7 @@ export function createZeroClient<
|
|
|
200
204
|
useZeroDebug(actualQuery, options, out)
|
|
201
205
|
}
|
|
202
206
|
|
|
203
|
-
if (
|
|
207
|
+
if (disabled) {
|
|
204
208
|
return [null, { type: 'unknown' }] as never
|
|
205
209
|
}
|
|
206
210
|
|
|
@@ -209,12 +213,16 @@ export function createZeroClient<
|
|
|
209
213
|
|
|
210
214
|
const ProvideZero = ({
|
|
211
215
|
children,
|
|
212
|
-
authData,
|
|
216
|
+
authData: authDataIn,
|
|
217
|
+
disable,
|
|
213
218
|
...props
|
|
214
219
|
}: Omit<ZeroOptions<Schema, ZeroMutators>, 'schema' | 'mutators'> & {
|
|
215
220
|
children: ReactNode
|
|
216
|
-
authData?:
|
|
221
|
+
authData?: AuthData
|
|
222
|
+
disable?: boolean
|
|
217
223
|
}) => {
|
|
224
|
+
const authData = authDataIn as AuthData
|
|
225
|
+
|
|
218
226
|
const mutators = useMemo(() => {
|
|
219
227
|
setAuthData(authData)
|
|
220
228
|
|
|
@@ -226,6 +234,7 @@ export function createZeroClient<
|
|
|
226
234
|
})
|
|
227
235
|
}, [models, authData])
|
|
228
236
|
|
|
237
|
+
// for now we re-parent
|
|
229
238
|
if (disable) {
|
|
230
239
|
return children
|
|
231
240
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { HumanReadable, Query, Row, SyncedQuery, Zero, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
|
-
import type { GenericModels, GetZeroMutators, ZeroEvent } from './types';
|
|
4
|
-
export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models
|
|
3
|
+
import type { AuthData, GenericModels, GetZeroMutators, ZeroEvent } from './types';
|
|
4
|
+
export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>({ schema, models }: {
|
|
5
5
|
schema: Schema;
|
|
6
6
|
models: Models;
|
|
7
|
-
disable?: boolean;
|
|
8
7
|
}): {
|
|
9
8
|
zeroEvents: import("@vxrn/helpers").Emitter<ZeroEvent | null>;
|
|
10
|
-
ProvideZero: ({ children, authData, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
9
|
+
ProvideZero: ({ children, authData: authDataIn, disable, ...props }: Omit<ZeroOptions<Schema, GetZeroMutators<Models>>, "schema" | "mutators"> & {
|
|
11
10
|
children: ReactNode;
|
|
12
|
-
authData?:
|
|
11
|
+
authData?: AuthData;
|
|
12
|
+
disable?: boolean;
|
|
13
13
|
}) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
14
14
|
useQuery: {
|
|
15
15
|
<TTable extends keyof Schema["tables"] & string, TReturn>(query: Query<Schema, TTable, TReturn> | SyncedQuery<any, any, any, any, Query<Schema, TTable, TReturn>>, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,KAAK,EAEL,GAAG,EACH,WAAW,EACX,IAAI,EACJ,WAAW,EACX,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMnE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,KAAK,EAEL,GAAG,EACH,WAAW,EACX,IAAI,EACJ,WAAW,EACX,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMnE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAElF,wBAAgB,gBAAgB,CAC9B,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAC5B,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;yEAkMnD,IAAI,CAAC,WAAW,CAAC,MAAM,0BAAe,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG;QAClE,QAAQ,EAAE,SAAS,CAAA;QACnB,QAAQ,CAAC,EAAE,QAAQ,CAAA;QACnB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB;;SAxFiB,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,SAEnE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAC9B,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,YACzD;sBAhBA,OAAO,GAAG,SAAS;kBACvB,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS;YAejB,OAAO;SAInB,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,8DAErE,IAAI,YACF;sBAvBA,OAAO,GAAG,SAAS;kBACvB,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS;YAsBjB,OAAO;SAInB,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,gEAE7D;sBA7BA,OAAO,GAAG,SAAS;kBACvB,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS;YA4BjB,OAAO;;oBAtFd,CAAC,iDACf,CAAC,WACC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,yCAG9D,OAAO,GAAG,IAAI;;EAwNlB"}
|