over-zero 0.0.1 → 0.0.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZero.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAgE,iCAChE,iBAA6D,0BAC7DA,gBAA4D,kBAC5D,2BAAkC,gCAClC,iBAAwB,8BACxB,wBAA+B,qCAC/B,+BAAsC,4CACtC,sBAA6B,mCAmJrB;AA/ID,SAAS,WAAoE;AAAA,EAClF;AAAA,EACA;AAAA,EACA;AACF,GAIG;AAKD,QAAM,uBAAmB,0BAAU,QAAQ,CAAC,QAAQ,IAAI,WAAW,GAI7D,yBAAqB,4CAA0B;AAAA,IACnD;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,EACf,CAAC,GAEK,sBAAkB,mCAAoC,qBAAqB;AAAA,IAC/E,cAAc;AAAA,EAChB,CAAC,GAEK,iBAAa,8BAAgC,QAAQ,IAAI,GAEzD,sBAAkB,6BAAwB,CAAC,CAAa,GACxD,cAAc,UAAM,mBAAI,eAAe;AAM7C,WAAS,cAIP,OACA,QACA,SACA,UAAU,OAAO,UAAY,KAC7B,QAAQ,IACQ;AAEhB,UAAM,UAAU,GAAG,OAAO,KAAK,CAAC,GAAG,MAAM,IACnC,MAAM,GAAG,OAAO,GAAG,OAAO,WAAY,WAAW,UAAU,KAAK,UAAU,OAAO,CAAC,IAClF,WAAW,gBAAgB,IAAI,GAAG,KAAK,gBAAgB,IAAI,OAAO,GAClE,WAAW,YAAY,GACvB,aAAa,iBAAiB,KAAK,GAEnC,SAAS,MAAM;AACnB,UAAI,YAAY,KAAK,MAAM,KAAK,EAAE,IAAI;AAEtC,aAAK,UAIE,UAAU,MAAM,CAAC,OACf,mBAAmB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CACD,IAXQ;AAAA,IAYX,GAAG,GAEG,CAAC,MAAM,MAAM,IAAI,SAAS,OAAO;AAAA,MACrC,SAAS,GAAQ,WAAW,YAAY;AAAA,IAC1C,CAAC;AAED,IAAI,SACF,QAAQ;AAAA,MACN;AAAA,MACA,EAAE,MAAM,QAAQ,QAAQ,UAAU,WAAW;AAAA,UAC7C,oDAAsB,KAAK;AAAA,IAC7B;AAKF,UAAM,UAAU,EAFD;AAIf,WAAK,UAIE,UAHE;AAAA,EAIX;AAEA,MAAI,qBAA0C;AAI9C,QAAM,OAAqB,IAAI,MAAM,CAAC,GAAY;AAAA,IAChD,IAAI,GAAG,KAAK;AACV,aAAO,QAAQ,IAAI,oBAAqB,KAAK,kBAAkB;AAAA,IACjE;AAAA,EACF,CAAC,GAEK,WAAgC,CAAC,OAAO,YAAY;AACxD,QAAI;AACF,aAAO,CAAC,MAAM,EAAE,MAAM,UAAU,CAAC;AAGnC,UAAM,UAAM,aAAAC,UAAa,OAAO,OAAO;AAEvC,WAAI,QAAQ,IAAI,aAAa,qBAE3B,kCAAa,OAAO,SAAS,GAAG,GAG3B;AAAA,EACT,GAEM,cAAc,CAAC;AAAA,IACnB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,MAGM;AACJ,UAAM,eAAW,uBAAQ,UAChB,sCAAe;AAAA,MACpB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,KAAK,mBAAmB;AAAA,IAC1B,CAAC,GACA,CAAC,QAAQ,QAAQ,CAAC;AAErB,WAAI,UACK,WAIP,4CAAC,gBAAgB,UAAhB,EAAyB,OAAO,UAC/B;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT,SAAS,CAAC,UAAU;AAClB,kBAAQ,MAAM,eAAe,KAAK,GAClC,WAAW,KAAK;AAAA,YACd,MAAM;AAAA,YACN,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA,sDAAC,mBAAgB;AAAA,UAChB;AAAA;AAAA;AAAA,IACH,GACF;AAAA,EAEJ,GAEM,kBAAkB,MAAM;AAC5B,UAAMC,YAAO,sBAA8B;AAQ3C,WAAIA,UAAS,uBACX,qBAAqBA,QAGhB;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["import_react", "zeroUseQuery", "zero"]
6
6
  }
@@ -0,0 +1,128 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var createZeroClient_exports = {};
22
+ __export(createZeroClient_exports, {
23
+ createZeroClient: () => createZeroClient
24
+ });
25
+ module.exports = __toCommonJS(createZeroClient_exports);
26
+ var import_react = require("@rocicorp/zero/react"),
27
+ import_helpers = require("@vxrn/helpers"),
28
+ import_react2 = require("react"),
29
+ import_createPermissions = require("./createPermissions.cjs"),
30
+ import_context = require("./helpers/context.cjs"),
31
+ import_createMutators = require("./helpers/createMutators.cjs"),
32
+ import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery.cjs"),
33
+ import_useZeroDebug = require("./helpers/useZeroDebug.cjs"),
34
+ import_jsx_runtime = require("react/jsx-runtime");
35
+ function createZeroClient({
36
+ schema,
37
+ models,
38
+ disable
39
+ }) {
40
+ const modelPermissions = (0, import_helpers.mapObject)(models, val => val.permissions),
41
+ permissionsHelpers = (0, import_createPermissions.createPermissions)({
42
+ schema,
43
+ models,
44
+ getContext: import_context.context,
45
+ environment: "client"
46
+ }),
47
+ permissionCache = (0, import_helpers.createLocalStorage)("permissions-cache", {
48
+ storageLimit: 24
49
+ }),
50
+ zeroEvents = (0, import_helpers.createEmitter)("zero", null),
51
+ AuthDataContext = (0, import_react2.createContext)({}),
52
+ useAuthData = () => (0, import_react2.use)(AuthDataContext);
53
+ function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
54
+ const keyBase = `${String(table)}${action}`,
55
+ key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
56
+ cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase),
57
+ authData = useAuthData(),
58
+ permission = modelPermissions[table],
59
+ query = (() => {
60
+ let baseQuery = zero.query[table].one();
61
+ return enabled ? baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId)) : baseQuery;
62
+ })(),
63
+ [data, status] = useQuery(query, {
64
+ enabled: !!(enabled && authData && objOrId)
65
+ });
66
+ debug && console.info("usePermission()", {
67
+ data,
68
+ status,
69
+ action,
70
+ authData,
71
+ permission
72
+ }, (0, import_prettyFormatZeroQuery.prettyFormatZeroQuery)(query));
73
+ const allowed = !!data;
74
+ return objOrId ? allowed : !1;
75
+ }
76
+ let latestZeroInstance = null;
77
+ const zero = new Proxy({}, {
78
+ get(_, key) {
79
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
80
+ }
81
+ }),
82
+ useQuery = (query, options) => {
83
+ if (disable) return [null, {
84
+ type: "unknown"
85
+ }];
86
+ const out = (0, import_react.useQuery)(query, options);
87
+ return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(query, options, out), out;
88
+ },
89
+ ProvideZero = ({
90
+ children,
91
+ authData,
92
+ ...props
93
+ }) => {
94
+ const mutators = (0, import_react2.useMemo)(() => (0, import_createMutators.createMutators)({
95
+ models,
96
+ environment: "client",
97
+ authData,
98
+ can: permissionsHelpers.can
99
+ }), [models, authData]);
100
+ return disable ? children : /* @__PURE__ */(0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
101
+ value: authData,
102
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
103
+ schema,
104
+ kvStore: "mem",
105
+ onError: error => {
106
+ console.error("Zero Error:", error), zeroEvents.emit({
107
+ type: "error",
108
+ message: error
109
+ });
110
+ },
111
+ mutators,
112
+ ...props,
113
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), children]
114
+ })
115
+ });
116
+ },
117
+ SetZeroInstance = () => {
118
+ const zero2 = (0, import_react.useZero)();
119
+ return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
120
+ };
121
+ return {
122
+ zeroEvents,
123
+ ProvideZero,
124
+ useQuery,
125
+ usePermission,
126
+ zero
127
+ };
128
+ }
@@ -0,0 +1,103 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: !0 });
8
+ }, __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from == "object" || typeof from == "function")
10
+ for (let key of __getOwnPropNames(from))
11
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
15
+ var createZeroClient_exports = {};
16
+ __export(createZeroClient_exports, {
17
+ createZeroClient: () => createZeroClient
18
+ });
19
+ module.exports = __toCommonJS(createZeroClient_exports);
20
+ var import_react = require("@rocicorp/zero/react"), import_helpers = require("@vxrn/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_context = require("./helpers/context"), import_createMutators = require("./helpers/createMutators"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_useZeroDebug = require("./helpers/useZeroDebug"), import_jsx_runtime = require("react/jsx-runtime");
21
+ function createZeroClient({ schema, models, disable }) {
22
+ const modelPermissions = (0, import_helpers.mapObject)(models, (val) => val.permissions), permissionsHelpers = (0, import_createPermissions.createPermissions)({
23
+ schema,
24
+ models,
25
+ getContext: import_context.context,
26
+ environment: "client"
27
+ }), permissionCache = (0, import_helpers.createLocalStorage)("permissions-cache", {
28
+ storageLimit: 24
29
+ }), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = (0, import_react2.createContext)({}), useAuthData = () => (0, import_react2.use)(AuthDataContext);
30
+ function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
31
+ const keyBase = `${String(table)}${action}`, key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase), authData = useAuthData(), permission = modelPermissions[table], query = (() => {
32
+ let baseQuery = zero.query[table].one();
33
+ return enabled ? baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
34
+ authData,
35
+ eb,
36
+ permission,
37
+ action,
38
+ objOrId
39
+ )) : baseQuery;
40
+ })(), [data, status] = useQuery(query, {
41
+ enabled: !!(enabled && authData && objOrId)
42
+ });
43
+ debug && console.info(
44
+ "usePermission()",
45
+ { data, status, action, authData, permission },
46
+ (0, import_prettyFormatZeroQuery.prettyFormatZeroQuery)(query)
47
+ );
48
+ const allowed = !!data;
49
+ return objOrId ? allowed : !1;
50
+ }
51
+ let latestZeroInstance = null;
52
+ const zero = new Proxy({}, {
53
+ get(_, key) {
54
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
55
+ }
56
+ }), useQuery = (query, options) => {
57
+ if (disable)
58
+ return [null, { type: "unknown" }];
59
+ const out = (0, import_react.useQuery)(query, options);
60
+ return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(query, options, out), out;
61
+ }, ProvideZero = ({
62
+ children,
63
+ authData,
64
+ ...props
65
+ }) => {
66
+ const mutators = (0, import_react2.useMemo)(() => (0, import_createMutators.createMutators)({
67
+ models,
68
+ environment: "client",
69
+ authData,
70
+ can: permissionsHelpers.can
71
+ }), [models, authData]);
72
+ return disable ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
73
+ import_react.ZeroProvider,
74
+ {
75
+ schema,
76
+ kvStore: "mem",
77
+ onError: (error) => {
78
+ console.error("Zero Error:", error), zeroEvents.emit({
79
+ type: "error",
80
+ message: error
81
+ });
82
+ },
83
+ mutators,
84
+ ...props,
85
+ children: [
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
87
+ children
88
+ ]
89
+ }
90
+ ) });
91
+ }, SetZeroInstance = () => {
92
+ const zero2 = (0, import_react.useZero)();
93
+ return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
94
+ };
95
+ return {
96
+ zeroEvents,
97
+ ProvideZero,
98
+ useQuery,
99
+ usePermission,
100
+ zero
101
+ };
102
+ }
103
+ //# sourceMappingURL=createZeroClient.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createZeroClient.tsx"],
4
+ "mappings": "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",
5
+ "names": ["import_react", "zeroUseQuery", "zero"]
6
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: !0 });
9
+ }, __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from == "object" || typeof from == "function")
11
+ for (let key of __getOwnPropNames(from))
12
+ !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ return to;
14
+ };
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
16
+ var createZeroClient_exports = {};
17
+ __export(createZeroClient_exports, {
18
+ createZeroClient: () => createZeroClient
19
+ });
20
+ module.exports = __toCommonJS(createZeroClient_exports);
21
+ var import_jsx_runtime = require("react/jsx-runtime"), import_react = require("@rocicorp/zero/react"), import_helpers = require("@vxrn/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_context = require("./helpers/context"), import_createMutators = require("./helpers/createMutators"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_useZeroDebug = require("./helpers/useZeroDebug");
22
+ function createZeroClient(param) {
23
+ var { schema, models, disable } = param, modelPermissions = (0, import_helpers.mapObject)(models, function(val) {
24
+ return val.permissions;
25
+ }), permissionsHelpers = (0, import_createPermissions.createPermissions)({
26
+ schema,
27
+ models,
28
+ getContext: import_context.context,
29
+ environment: "client"
30
+ }), permissionCache = (0, import_helpers.createLocalStorage)("permissions-cache", {
31
+ storageLimit: 24
32
+ }), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = /* @__PURE__ */ (0, import_react2.createContext)({}), useAuthData = function() {
33
+ return (0, import_react2.use)(AuthDataContext);
34
+ };
35
+ function usePermission(table, action, objOrId) {
36
+ var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : typeof objOrId < "u", debug = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1, keyBase = `${String(table)}${action}`, key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, _permissionCache_get, cacheVal = (_permissionCache_get = permissionCache.get(key)) !== null && _permissionCache_get !== void 0 ? _permissionCache_get : permissionCache.get(keyBase), authData = useAuthData(), permission = modelPermissions[table], query = (function() {
37
+ var baseQuery = zero.query[table].one();
38
+ return enabled ? baseQuery.where(function(eb) {
39
+ return permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId);
40
+ }) : baseQuery;
41
+ })(), [data, status] = useQuery(query, {
42
+ enabled: !!(enabled && authData && objOrId)
43
+ });
44
+ debug && console.info("usePermission()", {
45
+ data,
46
+ status,
47
+ action,
48
+ authData,
49
+ permission
50
+ }, (0, import_prettyFormatZeroQuery.prettyFormatZeroQuery)(query));
51
+ var result = data, allowed = !!result;
52
+ return objOrId ? allowed : !1;
53
+ }
54
+ var latestZeroInstance = null, zero = new Proxy({}, {
55
+ get(_, key) {
56
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
57
+ }
58
+ }), useQuery = function(query, options) {
59
+ if (disable)
60
+ return [
61
+ null,
62
+ {
63
+ type: "unknown"
64
+ }
65
+ ];
66
+ var out = (0, import_react.useQuery)(query, options);
67
+ return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(query, options, out), out;
68
+ }, ProvideZero = function(param2) {
69
+ var { children, authData, ...props } = param2, mutators = (0, import_react2.useMemo)(function() {
70
+ return (0, import_createMutators.createMutators)({
71
+ models,
72
+ environment: "client",
73
+ authData,
74
+ can: permissionsHelpers.can
75
+ });
76
+ }, [
77
+ models,
78
+ authData
79
+ ]);
80
+ return disable ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, {
81
+ value: authData,
82
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
83
+ schema,
84
+ kvStore: "mem",
85
+ onError: function(error) {
86
+ console.error("Zero Error:", error), zeroEvents.emit({
87
+ type: "error",
88
+ message: error
89
+ });
90
+ },
91
+ mutators,
92
+ ...props,
93
+ children: [
94
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
95
+ children
96
+ ]
97
+ })
98
+ });
99
+ }, SetZeroInstance = function() {
100
+ var zero2 = (0, import_react.useZero)();
101
+ return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
102
+ };
103
+ return {
104
+ zeroEvents,
105
+ ProvideZero,
106
+ useQuery,
107
+ usePermission,
108
+ zero
109
+ };
110
+ }
111
+ // Annotate the CommonJS export names for ESM import in node:
112
+ 0 && (module.exports = {
113
+ createZeroClient
114
+ });
115
+ //# sourceMappingURL=createZeroClient.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createZeroClient.tsx"],
4
+ "mappings": "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",
5
+ "names": ["import_react", "zeroUseQuery", "param", "_jsx", "_jsxs", "zero"]
6
+ }
@@ -22,4 +22,4 @@ __reExport(index_exports, require("./helpers/createMutators.cjs"), module.export
22
22
  __reExport(index_exports, require("./helpers/ensureLoggedIn.cjs"), module.exports);
23
23
  __reExport(index_exports, require("./mutations.cjs"), module.exports);
24
24
  __reExport(index_exports, require("./where.cjs"), module.exports);
25
- __reExport(index_exports, require("./createZero.cjs"), module.exports);
25
+ __reExport(index_exports, require("./createZeroClient.cjs"), module.exports);
package/dist/cjs/index.js CHANGED
@@ -18,5 +18,5 @@ __reExport(index_exports, require("./helpers/createMutators"), module.exports);
18
18
  __reExport(index_exports, require("./helpers/ensureLoggedIn"), module.exports);
19
19
  __reExport(index_exports, require("./mutations"), module.exports);
20
20
  __reExport(index_exports, require("./where"), module.exports);
21
- __reExport(index_exports, require("./createZero"), module.exports);
21
+ __reExport(index_exports, require("./createZeroClient"), module.exports);
22
22
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,gCAAd;AACA,0BAAc,iCADd;AAEA,0BAAc,8BAFd;AAGA,0BAAc,qCAHd;AAIA,0BAAc,qCAJd;AAMA,0BAAc,wBANd;AAOA,0BAAc,oBAPd;AAQA,0BAAc,yBARd;",
4
+ "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,gCAAd;AACA,0BAAc,iCADd;AAEA,0BAAc,8BAFd;AAGA,0BAAc,qCAHd;AAIA,0BAAc,qCAJd;AAMA,0BAAc,wBANd;AAOA,0BAAc,oBAPd;AAQA,0BAAc,+BARd;",
5
5
  "names": []
6
6
  }
@@ -19,7 +19,7 @@ __reExport(index_exports, require("./helpers/createMutators"), module.exports);
19
19
  __reExport(index_exports, require("./helpers/ensureLoggedIn"), module.exports);
20
20
  __reExport(index_exports, require("./mutations"), module.exports);
21
21
  __reExport(index_exports, require("./where"), module.exports);
22
- __reExport(index_exports, require("./createZero"), module.exports);
22
+ __reExport(index_exports, require("./createZeroClient"), module.exports);
23
23
  // Annotate the CommonJS export names for ESM import in node:
24
24
  0 && (module.exports = {
25
25
  ...require("./createPermissions"),
@@ -29,6 +29,6 @@ __reExport(index_exports, require("./createZero"), module.exports);
29
29
  ...require("./helpers/ensureLoggedIn"),
30
30
  ...require("./mutations"),
31
31
  ...require("./where"),
32
- ...require("./createZero")
32
+ ...require("./createZeroClient")
33
33
  });
34
34
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,gCAAd;AACA,0BAAc,iCADd;AAEA,0BAAc,8BAFd;AAGA,0BAAc,qCAHd;AAIA,0BAAc,qCAJd;AAKA,0BAAc,wBALd;AAMA,0BAAc,oBANd;AAOA,0BAAc,yBAPd;",
4
+ "mappings": ";;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,gCAAd;AACA,0BAAc,iCADd;AAEA,0BAAc,8BAFd;AAGA,0BAAc,qCAHd;AAIA,0BAAc,qCAJd;AAKA,0BAAc,wBALd;AAMA,0BAAc,oBANd;AAOA,0BAAc,+BAPd;",
5
5
  "names": []
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZero.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["zero"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","createLocalStorage","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","createZero","param","schema","models","disable","modelPermissions","val","permissions","permissionsHelpers","getContext","environment","permissionCache","storageLimit","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","arguments","length","debug","keyBase","String","key","JSON","stringify","_permissionCache_get","cacheVal","get","authData","permission","query","baseQuery","zero","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","latestZeroInstance","Proxy","_","Reflect","options","type","out","process","env","NODE_ENV","ProvideZero","param2","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZero.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","createLocalStorage","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","createZero","param","schema","models","disable","modelPermissions","val","permissions","permissionsHelpers","getContext","environment","permissionCache","storageLimit","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","arguments","length","debug","keyBase","String","key","JSON","stringify","_permissionCache_get","cacheVal","get","authData","permission","query","baseQuery","zero","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","latestZeroInstance","Proxy","_","Reflect","options","type","out","process","env","NODE_ENV","ProvideZero","param2","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZero.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
+ import { createEmitter, createLocalStorage, mapObject } from "@vxrn/helpers";
3
+ import { createContext, use, useMemo } from "react";
4
+ import { createPermissions } from "./createPermissions";
5
+ import { context } from "./helpers/context";
6
+ import { createMutators } from "./helpers/createMutators";
7
+ import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery";
8
+ import { useZeroDebug } from "./helpers/useZeroDebug";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ function createZeroClient({ schema, models, disable }) {
11
+ const modelPermissions = mapObject(models, (val) => val.permissions), permissionsHelpers = createPermissions({
12
+ schema,
13
+ models,
14
+ getContext: context,
15
+ environment: "client"
16
+ }), permissionCache = createLocalStorage("permissions-cache", {
17
+ storageLimit: 24
18
+ }), zeroEvents = createEmitter("zero", null), AuthDataContext = createContext({}), useAuthData = () => use(AuthDataContext);
19
+ function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
20
+ const keyBase = `${String(table)}${action}`, key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase), authData = useAuthData(), permission = modelPermissions[table], query = (() => {
21
+ let baseQuery = zero.query[table].one();
22
+ return enabled ? baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
23
+ authData,
24
+ eb,
25
+ permission,
26
+ action,
27
+ objOrId
28
+ )) : baseQuery;
29
+ })(), [data, status] = useQuery(query, {
30
+ enabled: !!(enabled && authData && objOrId)
31
+ });
32
+ debug && console.info(
33
+ "usePermission()",
34
+ { data, status, action, authData, permission },
35
+ prettyFormatZeroQuery(query)
36
+ );
37
+ const allowed = !!data;
38
+ return objOrId ? allowed : !1;
39
+ }
40
+ let latestZeroInstance = null;
41
+ const zero = new Proxy({}, {
42
+ get(_, key) {
43
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
44
+ }
45
+ }), useQuery = (query, options) => {
46
+ if (disable)
47
+ return [null, { type: "unknown" }];
48
+ const out = zeroUseQuery(query, options);
49
+ return process.env.NODE_ENV === "development" && useZeroDebug(query, options, out), out;
50
+ }, ProvideZero = ({
51
+ children,
52
+ authData,
53
+ ...props
54
+ }) => {
55
+ const mutators = useMemo(() => createMutators({
56
+ models,
57
+ environment: "client",
58
+ authData,
59
+ can: permissionsHelpers.can
60
+ }), [models, authData]);
61
+ return disable ? children : /* @__PURE__ */ jsx(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ jsxs(
62
+ ZeroProvider,
63
+ {
64
+ schema,
65
+ kvStore: "mem",
66
+ onError: (error) => {
67
+ console.error("Zero Error:", error), zeroEvents.emit({
68
+ type: "error",
69
+ message: error
70
+ });
71
+ },
72
+ mutators,
73
+ ...props,
74
+ children: [
75
+ /* @__PURE__ */ jsx(SetZeroInstance, {}),
76
+ children
77
+ ]
78
+ }
79
+ ) });
80
+ }, SetZeroInstance = () => {
81
+ const zero2 = useZero();
82
+ return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
83
+ };
84
+ return {
85
+ zeroEvents,
86
+ ProvideZero,
87
+ useQuery,
88
+ usePermission,
89
+ zero
90
+ };
91
+ }
92
+ export {
93
+ createZeroClient
94
+ };
95
+ //# sourceMappingURL=createZeroClient.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/createZeroClient.tsx"],
4
+ "mappings": "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",
5
+ "names": ["zero"]
6
+ }
@@ -0,0 +1,105 @@
1
+ import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
+ import { createEmitter, createLocalStorage, mapObject } from "@vxrn/helpers";
3
+ import { createContext, use, useMemo } from "react";
4
+ import { createPermissions } from "./createPermissions.mjs";
5
+ import { context } from "./helpers/context.mjs";
6
+ import { createMutators } from "./helpers/createMutators.mjs";
7
+ import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.mjs";
8
+ import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ function createZeroClient({
11
+ schema,
12
+ models,
13
+ disable
14
+ }) {
15
+ const modelPermissions = mapObject(models, val => val.permissions),
16
+ permissionsHelpers = createPermissions({
17
+ schema,
18
+ models,
19
+ getContext: context,
20
+ environment: "client"
21
+ }),
22
+ permissionCache = createLocalStorage("permissions-cache", {
23
+ storageLimit: 24
24
+ }),
25
+ zeroEvents = createEmitter("zero", null),
26
+ AuthDataContext = createContext({}),
27
+ useAuthData = () => use(AuthDataContext);
28
+ function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
29
+ const keyBase = `${String(table)}${action}`,
30
+ key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
31
+ cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase),
32
+ authData = useAuthData(),
33
+ permission = modelPermissions[table],
34
+ query = (() => {
35
+ let baseQuery = zero.query[table].one();
36
+ return enabled ? baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId)) : baseQuery;
37
+ })(),
38
+ [data, status] = useQuery(query, {
39
+ enabled: !!(enabled && authData && objOrId)
40
+ });
41
+ debug && console.info("usePermission()", {
42
+ data,
43
+ status,
44
+ action,
45
+ authData,
46
+ permission
47
+ }, prettyFormatZeroQuery(query));
48
+ const allowed = !!data;
49
+ return objOrId ? allowed : !1;
50
+ }
51
+ let latestZeroInstance = null;
52
+ const zero = new Proxy({}, {
53
+ get(_, key) {
54
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
55
+ }
56
+ }),
57
+ useQuery = (query, options) => {
58
+ if (disable) return [null, {
59
+ type: "unknown"
60
+ }];
61
+ const out = zeroUseQuery(query, options);
62
+ return process.env.NODE_ENV === "development" && useZeroDebug(query, options, out), out;
63
+ },
64
+ ProvideZero = ({
65
+ children,
66
+ authData,
67
+ ...props
68
+ }) => {
69
+ const mutators = useMemo(() => createMutators({
70
+ models,
71
+ environment: "client",
72
+ authData,
73
+ can: permissionsHelpers.can
74
+ }), [models, authData]);
75
+ return disable ? children : /* @__PURE__ */jsx(AuthDataContext.Provider, {
76
+ value: authData,
77
+ children: /* @__PURE__ */jsxs(ZeroProvider, {
78
+ schema,
79
+ kvStore: "mem",
80
+ onError: error => {
81
+ console.error("Zero Error:", error), zeroEvents.emit({
82
+ type: "error",
83
+ message: error
84
+ });
85
+ },
86
+ mutators,
87
+ ...props,
88
+ children: [/* @__PURE__ */jsx(SetZeroInstance, {}), children]
89
+ })
90
+ });
91
+ },
92
+ SetZeroInstance = () => {
93
+ const zero2 = useZero();
94
+ return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
95
+ };
96
+ return {
97
+ zeroEvents,
98
+ ProvideZero,
99
+ useQuery,
100
+ usePermission,
101
+ zero
102
+ };
103
+ }
104
+ export { createZeroClient };
105
+ //# sourceMappingURL=createZeroClient.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","createLocalStorage","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","jsx","jsxs","createZeroClient","schema","models","disable","modelPermissions","val","permissions","permissionsHelpers","getContext","environment","permissionCache","storageLimit","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","debug","keyBase","String","key","JSON","stringify","cacheVal","get","authData","permission","query","baseQuery","zero","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","latestZeroInstance","Proxy","_","Reflect","options","type","out","process","env","NODE_ENV","ProvideZero","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,119 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
3
+ import { createEmitter, createLocalStorage, mapObject } from "@vxrn/helpers";
4
+ import { createContext, use, useMemo } from "react";
5
+ import { createPermissions } from "./createPermissions.native.js";
6
+ import { context } from "./helpers/context.native.js";
7
+ import { createMutators } from "./helpers/createMutators.native.js";
8
+ import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.native.js";
9
+ import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
10
+ function createZeroClient(param) {
11
+ var {
12
+ schema,
13
+ models,
14
+ disable
15
+ } = param,
16
+ modelPermissions = mapObject(models, function (val) {
17
+ return val.permissions;
18
+ }),
19
+ permissionsHelpers = createPermissions({
20
+ schema,
21
+ models,
22
+ getContext: context,
23
+ environment: "client"
24
+ }),
25
+ permissionCache = createLocalStorage("permissions-cache", {
26
+ storageLimit: 24
27
+ }),
28
+ zeroEvents = createEmitter("zero", null),
29
+ AuthDataContext = /* @__PURE__ */createContext({}),
30
+ useAuthData = function () {
31
+ return use(AuthDataContext);
32
+ };
33
+ function usePermission(table, action, objOrId) {
34
+ var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : typeof objOrId < "u",
35
+ debug = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1,
36
+ keyBase = `${String(table)}${action}`,
37
+ key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
38
+ _permissionCache_get,
39
+ cacheVal = (_permissionCache_get = permissionCache.get(key)) !== null && _permissionCache_get !== void 0 ? _permissionCache_get : permissionCache.get(keyBase),
40
+ authData = useAuthData(),
41
+ permission = modelPermissions[table],
42
+ query = function () {
43
+ var baseQuery = zero.query[table].one();
44
+ return enabled ? baseQuery.where(function (eb) {
45
+ return permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId);
46
+ }) : baseQuery;
47
+ }(),
48
+ [data, status] = useQuery(query, {
49
+ enabled: !!(enabled && authData && objOrId)
50
+ });
51
+ debug && console.info("usePermission()", {
52
+ data,
53
+ status,
54
+ action,
55
+ authData,
56
+ permission
57
+ }, prettyFormatZeroQuery(query));
58
+ var result = data,
59
+ allowed = !!result;
60
+ return objOrId ? allowed : !1;
61
+ }
62
+ var latestZeroInstance = null,
63
+ zero = new Proxy({}, {
64
+ get(_, key) {
65
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
66
+ }
67
+ }),
68
+ useQuery = function (query, options) {
69
+ if (disable) return [null, {
70
+ type: "unknown"
71
+ }];
72
+ var out = zeroUseQuery(query, options);
73
+ return process.env.NODE_ENV === "development" && useZeroDebug(query, options, out), out;
74
+ },
75
+ ProvideZero = function (param2) {
76
+ var {
77
+ children,
78
+ authData,
79
+ ...props
80
+ } = param2,
81
+ mutators = useMemo(function () {
82
+ return createMutators({
83
+ models,
84
+ environment: "client",
85
+ authData,
86
+ can: permissionsHelpers.can
87
+ });
88
+ }, [models, authData]);
89
+ return disable ? children : /* @__PURE__ */_jsx(AuthDataContext.Provider, {
90
+ value: authData,
91
+ children: /* @__PURE__ */_jsxs(ZeroProvider, {
92
+ schema,
93
+ kvStore: "mem",
94
+ onError: function (error) {
95
+ console.error("Zero Error:", error), zeroEvents.emit({
96
+ type: "error",
97
+ message: error
98
+ });
99
+ },
100
+ mutators,
101
+ ...props,
102
+ children: [/* @__PURE__ */_jsx(SetZeroInstance, {}), children]
103
+ })
104
+ });
105
+ },
106
+ SetZeroInstance = function () {
107
+ var zero2 = useZero();
108
+ return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
109
+ };
110
+ return {
111
+ zeroEvents,
112
+ ProvideZero,
113
+ useQuery,
114
+ usePermission,
115
+ zero
116
+ };
117
+ }
118
+ export { createZeroClient };
119
+ //# sourceMappingURL=createZeroClient.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","createLocalStorage","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","createZeroClient","param","schema","models","disable","modelPermissions","val","permissions","permissionsHelpers","getContext","environment","permissionCache","storageLimit","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","arguments","length","debug","keyBase","String","key","JSON","stringify","_permissionCache_get","cacheVal","get","authData","permission","query","baseQuery","zero","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","latestZeroInstance","Proxy","_","Reflect","options","type","out","process","env","NODE_ENV","ProvideZero","param2","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -5,5 +5,5 @@ export * from "./helpers/createMutators";
5
5
  export * from "./helpers/ensureLoggedIn";
6
6
  export * from "./mutations";
7
7
  export * from "./where";
8
- export * from "./createZero";
8
+ export * from "./createZeroClient";
9
9
  //# sourceMappingURL=index.js.map
@@ -5,5 +5,5 @@ export * from "./helpers/createMutators.mjs";
5
5
  export * from "./helpers/ensureLoggedIn.mjs";
6
6
  export * from "./mutations.mjs";
7
7
  export * from "./where.mjs";
8
- export * from "./createZero.mjs";
8
+ export * from "./createZeroClient.mjs";
9
9
  //# sourceMappingURL=index.mjs.map
@@ -5,5 +5,5 @@ export * from "./helpers/createMutators.native.js";
5
5
  export * from "./helpers/ensureLoggedIn.native.js";
6
6
  export * from "./mutations.native.js";
7
7
  export * from "./where.native.js";
8
- export * from "./createZero.native.js";
8
+ export * from "./createZeroClient.native.js";
9
9
  //# sourceMappingURL=index.native.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "over-zero",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/cjs",
@@ -10,15 +10,10 @@ import { useZeroDebug } from './helpers/useZeroDebug'
10
10
 
11
11
  import type { AuthData, GenericModels, GetZeroMutators, ZeroEvent } from './types'
12
12
 
13
- export function createZero<Schema extends ZeroSchema, Models extends GenericModels>({
14
- schema,
15
- models,
16
- disable,
17
- }: {
18
- schema: Schema
19
- models: Models
20
- disable?: boolean
21
- }) {
13
+ export function createZeroClient<
14
+ Schema extends ZeroSchema,
15
+ Models extends GenericModels,
16
+ >({ schema, models, disable }: { schema: Schema; models: Models; disable?: boolean }) {
22
17
  type ZeroMutators = GetZeroMutators<Models>
23
18
  type ZeroInstance = Zero<Schema, ZeroMutators>
24
19
  type TableName = keyof ZeroInstance['query']
@@ -155,7 +150,7 @@ export function createZero<Schema extends ZeroSchema, Models extends GenericMode
155
150
  <AuthDataContext.Provider value={authData}>
156
151
  <ZeroProvider
157
152
  schema={schema}
158
- kvStore={'mem'}
153
+ kvStore="mem"
159
154
  onError={(error) => {
160
155
  console.error(`Zero Error:`, error)
161
156
  zeroEvents.emit({
package/src/index.ts CHANGED
@@ -6,6 +6,6 @@ export * from './helpers/ensureLoggedIn'
6
6
 
7
7
  export * from './mutations'
8
8
  export * from './where'
9
- export * from './createZero'
9
+ export * from './createZeroClient'
10
10
 
11
11
  export type * from './types'