over-zero 0.0.36 → 0.0.37

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.
Files changed (141) hide show
  1. package/dist/cjs/cli.cjs +16 -10
  2. package/dist/cjs/cli.js +15 -8
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/cli.native.js +18 -10
  5. package/dist/cjs/cli.native.js.map +1 -1
  6. package/dist/cjs/createPermissions.cjs +7 -6
  7. package/dist/cjs/createPermissions.js +6 -6
  8. package/dist/cjs/createPermissions.js.map +1 -1
  9. package/dist/cjs/createPermissions.native.js +8 -6
  10. package/dist/cjs/createPermissions.native.js.map +1 -1
  11. package/dist/cjs/createUseQuery.cjs +18 -27
  12. package/dist/cjs/createUseQuery.js +18 -19
  13. package/dist/cjs/createUseQuery.js.map +1 -1
  14. package/dist/cjs/createUseQuery.native.js +19 -32
  15. package/dist/cjs/createUseQuery.native.js.map +1 -1
  16. package/dist/cjs/createZeroClient.cjs +38 -16
  17. package/dist/cjs/createZeroClient.js +40 -28
  18. package/dist/cjs/createZeroClient.js.map +2 -2
  19. package/dist/cjs/createZeroClient.native.js +45 -21
  20. package/dist/cjs/createZeroClient.native.js.map +1 -1
  21. package/dist/cjs/createZeroServer.cjs +16 -16
  22. package/dist/cjs/createZeroServer.js +15 -19
  23. package/dist/cjs/createZeroServer.js.map +2 -2
  24. package/dist/cjs/createZeroServer.native.js +19 -50
  25. package/dist/cjs/createZeroServer.native.js.map +1 -1
  26. package/dist/cjs/helpers/batchQuery.cjs +1 -1
  27. package/dist/cjs/helpers/batchQuery.js +1 -1
  28. package/dist/cjs/helpers/batchQuery.native.js +1 -1
  29. package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
  30. package/dist/cjs/helpers/createMutators.cjs +1 -1
  31. package/dist/cjs/helpers/createMutators.js +1 -1
  32. package/dist/cjs/helpers/createMutators.js.map +1 -1
  33. package/dist/cjs/helpers/createMutators.native.js +1 -1
  34. package/dist/cjs/helpers/didRunPermissionCheck.cjs +1 -1
  35. package/dist/cjs/helpers/didRunPermissionCheck.js +1 -1
  36. package/dist/cjs/helpers/didRunPermissionCheck.native.js +1 -1
  37. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -1
  38. package/dist/cjs/helpers/ensureLoggedIn.cjs +1 -1
  39. package/dist/cjs/helpers/ensureLoggedIn.js +1 -1
  40. package/dist/cjs/helpers/ensureLoggedIn.js.map +1 -1
  41. package/dist/cjs/helpers/ensureLoggedIn.native.js +1 -1
  42. package/dist/cjs/helpers/mutatorContext.cjs +1 -1
  43. package/dist/cjs/helpers/mutatorContext.js +1 -1
  44. package/dist/cjs/helpers/mutatorContext.native.js +1 -1
  45. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
  46. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +1 -1
  47. package/dist/cjs/helpers/prettyFormatZeroQuery.js +1 -1
  48. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +1 -1
  49. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  50. package/dist/cjs/helpers/useZeroDebug.cjs +3 -3
  51. package/dist/cjs/helpers/useZeroDebug.js +2 -2
  52. package/dist/cjs/helpers/useZeroDebug.js.map +1 -1
  53. package/dist/cjs/helpers/useZeroDebug.native.js +5 -3
  54. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
  55. package/dist/cjs/where.cjs +1 -1
  56. package/dist/cjs/where.js +1 -1
  57. package/dist/cjs/where.js.map +1 -1
  58. package/dist/cjs/where.native.js +1 -1
  59. package/dist/cjs/where.native.js.map +1 -1
  60. package/dist/esm/cli.js +15 -8
  61. package/dist/esm/cli.js.map +1 -1
  62. package/dist/esm/cli.mjs +16 -10
  63. package/dist/esm/cli.mjs.map +1 -1
  64. package/dist/esm/cli.native.js +18 -10
  65. package/dist/esm/cli.native.js.map +1 -1
  66. package/dist/esm/createPermissions.js +5 -4
  67. package/dist/esm/createPermissions.js.map +1 -1
  68. package/dist/esm/createPermissions.mjs +5 -4
  69. package/dist/esm/createPermissions.mjs.map +1 -1
  70. package/dist/esm/createPermissions.native.js +6 -4
  71. package/dist/esm/createPermissions.native.js.map +1 -1
  72. package/dist/esm/createUseQuery.js +17 -19
  73. package/dist/esm/createUseQuery.js.map +1 -1
  74. package/dist/esm/createUseQuery.mjs +17 -26
  75. package/dist/esm/createUseQuery.mjs.map +1 -1
  76. package/dist/esm/createUseQuery.native.js +18 -31
  77. package/dist/esm/createUseQuery.native.js.map +1 -1
  78. package/dist/esm/createZeroClient.js +55 -30
  79. package/dist/esm/createZeroClient.js.map +2 -2
  80. package/dist/esm/createZeroClient.mjs +39 -17
  81. package/dist/esm/createZeroClient.mjs.map +1 -1
  82. package/dist/esm/createZeroClient.native.js +47 -23
  83. package/dist/esm/createZeroClient.native.js.map +1 -1
  84. package/dist/esm/createZeroServer.js +18 -20
  85. package/dist/esm/createZeroServer.js.map +1 -1
  86. package/dist/esm/createZeroServer.mjs +16 -16
  87. package/dist/esm/createZeroServer.mjs.map +1 -1
  88. package/dist/esm/createZeroServer.native.js +19 -50
  89. package/dist/esm/createZeroServer.native.js.map +1 -1
  90. package/dist/esm/helpers/batchQuery.js +1 -1
  91. package/dist/esm/helpers/batchQuery.mjs +1 -1
  92. package/dist/esm/helpers/batchQuery.native.js +1 -1
  93. package/dist/esm/helpers/createMutators.js +1 -1
  94. package/dist/esm/helpers/createMutators.mjs +1 -1
  95. package/dist/esm/helpers/createMutators.native.js +1 -1
  96. package/dist/esm/helpers/didRunPermissionCheck.js +1 -1
  97. package/dist/esm/helpers/didRunPermissionCheck.mjs +1 -1
  98. package/dist/esm/helpers/didRunPermissionCheck.native.js +1 -1
  99. package/dist/esm/helpers/ensureLoggedIn.js +1 -1
  100. package/dist/esm/helpers/ensureLoggedIn.mjs +1 -1
  101. package/dist/esm/helpers/ensureLoggedIn.native.js +1 -1
  102. package/dist/esm/helpers/mutatorContext.js +1 -1
  103. package/dist/esm/helpers/mutatorContext.mjs +1 -1
  104. package/dist/esm/helpers/mutatorContext.native.js +1 -1
  105. package/dist/esm/helpers/prettyFormatZeroQuery.js +1 -1
  106. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +1 -1
  107. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +1 -1
  108. package/dist/esm/helpers/useZeroDebug.js +2 -2
  109. package/dist/esm/helpers/useZeroDebug.js.map +1 -1
  110. package/dist/esm/helpers/useZeroDebug.mjs +3 -3
  111. package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
  112. package/dist/esm/helpers/useZeroDebug.native.js +5 -3
  113. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  114. package/dist/esm/where.js +1 -1
  115. package/dist/esm/where.mjs +1 -1
  116. package/dist/esm/where.native.js +1 -1
  117. package/package.json +2 -2
  118. package/readme.md +20 -6
  119. package/src/cli.ts +23 -22
  120. package/src/createPermissions.ts +6 -4
  121. package/src/createUseQuery.tsx +34 -69
  122. package/src/createZeroClient.tsx +81 -33
  123. package/src/createZeroServer.ts +27 -35
  124. package/src/helpers/batchQuery.ts +1 -1
  125. package/src/helpers/createMutators.ts +1 -1
  126. package/src/helpers/didRunPermissionCheck.ts +1 -1
  127. package/src/helpers/ensureLoggedIn.ts +1 -1
  128. package/src/helpers/mutatorContext.ts +1 -1
  129. package/src/helpers/prettyFormatZeroQuery.ts +1 -1
  130. package/src/helpers/useZeroDebug.ts +3 -3
  131. package/src/types.ts +2 -2
  132. package/src/where.ts +1 -1
  133. package/types/createPermissions.d.ts.map +1 -1
  134. package/types/createUseQuery.d.ts +7 -9
  135. package/types/createUseQuery.d.ts.map +1 -1
  136. package/types/createZeroClient.d.ts +5 -6
  137. package/types/createZeroClient.d.ts.map +1 -1
  138. package/types/createZeroServer.d.ts +69 -18
  139. package/types/createZeroServer.d.ts.map +1 -1
  140. package/types/types.d.ts +2 -2
  141. package/types/types.d.ts.map +1 -1
@@ -1,45 +1,36 @@
1
- import { syncedQuery } from "@rocicorp/zero";
2
1
  import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
3
2
  import { use, useMemo } from "react";
4
3
  import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
5
4
  import { getQueryName } from "./queryRegistry.mjs";
6
5
  function createUseQuery({
7
6
  DisabledContext,
8
- disableInlineQueries = !1
7
+ customQueries
9
8
  }) {
10
- const queryCache = /* @__PURE__ */new Map(),
11
- parseAny = x => [x[0]];
12
9
  function useQuery(...args) {
13
10
  const disabled = use(DisabledContext),
14
- [queryOrFn, paramsOrOptions, optionsArg] = args,
15
- isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
11
+ [fn, paramsOrOptions, optionsArg] = args,
16
12
  {
17
- actualQuery,
13
+ queryRequest,
18
14
  options
19
15
  } = useMemo(() => {
20
- if (!isPlainFunction) return {
21
- actualQuery: queryOrFn,
22
- options: paramsOrOptions
23
- };
24
- const fn = queryOrFn,
25
- queryName = getQueryName(fn);
26
- if (!queryName) throw new Error("No query name?");
16
+ const queryName = getQueryName(fn);
17
+ if (!queryName) {
18
+ const fnName = fn?.name || "anonymous";
19
+ throw new Error(`Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`);
20
+ }
27
21
  const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions == "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
28
22
  params = hasParams ? paramsOrOptions : void 0,
29
- opts = hasParams ? optionsArg : paramsOrOptions;
30
- let synced = queryCache.get(queryName);
31
- return synced || (synced = syncedQuery(queryName, parseAny, arg => fn(arg)), queryCache.set(queryName, synced)), {
32
- actualQuery: params !== void 0 ? synced(params) : synced,
23
+ opts = hasParams ? optionsArg : paramsOrOptions,
24
+ [namespace, name] = queryName.split(".", 2),
25
+ customQuery = customQueries[namespace]?.[name];
26
+ if (!customQuery) throw new Error(`CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`);
27
+ return {
28
+ queryRequest: params !== void 0 ? customQuery(params) : customQuery(),
33
29
  options: opts
34
30
  };
35
- }, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]);
36
- console.info("running", {
37
- actualQuery,
38
- options,
39
- queryOrFn
40
- });
41
- const out = zeroUseQuery(actualQuery, options);
42
- return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, {
31
+ }, [fn, paramsOrOptions, optionsArg]),
32
+ out = zeroUseQuery(queryRequest, options);
33
+ return process.env.NODE_ENV === "development" && useZeroDebug(queryRequest, options, out), disabled ? [null, {
43
34
  type: "unknown"
44
35
  }] : out;
45
36
  }
@@ -1 +1 @@
1
- {"version":3,"names":["syncedQuery","useQuery","zeroUseQuery","use","useMemo","useZeroDebug","getQueryName","createUseQuery","DisabledContext","disableInlineQueries","queryCache","Map","parseAny","x","args","disabled","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","fn","queryName","Error","hasParams","params","opts","synced","get","arg","set","console","info","out","process","env","NODE_ENV","type"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,SAASC,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,GAAA,EAAKC,OAAA,QAA6B;AAE3C,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAoB;AAyDtB,SAASC,eAGd;EACAC,eAAA;EACAC,oBAAA,GAAuB;AACzB,GAGwC;EACtC,MAAMC,UAAA,GAAa,mBAAIC,GAAA,CAAkD;IACnEC,QAAA,GAAYC,CAAA,IAAsC,CAACA,CAAA,CAAE,CAAC,CAAsB;EAElF,SAASZ,SAAA,GAAYa,IAAA,EAAkB;IACrC,MAAMC,QAAA,GAAWZ,GAAA,CAAIK,eAAe;MAC9B,CAACQ,SAAA,EAAWC,eAAA,EAAiBC,UAAU,IAAIJ,IAAA;MAG3CK,eAAA,GAAkB,OAAOH,SAAA,IAAc,cAAc,EAAE,eAAeA,SAAA;MAEtE;QAAEI,WAAA;QAAaC;MAAQ,IAAIjB,OAAA,CAAQ,MAAM;QAC7C,IAAI,CAACe,eAAA,EAEH,OAAO;UACLC,WAAA,EAAaJ,SAAA;UACbK,OAAA,EAASJ;QACX;QAGF,MAAMK,EAAA,GAAKN,SAAA;UACLO,SAAA,GAAYjB,YAAA,CAAagB,EAAE;QAEjC,IAAI,CAACC,SAAA,EACH,MAAM,IAAIC,KAAA,CAAM,gBAAgB;QAIlC,MAAMC,SAAA,GACJP,UAAA,KAAe,UACdD,eAAA,IACC,OAAOA,eAAA,IAAoB,YAC3B,EAAE,aAAaA,eAAA,KACf,EAAE,SAASA,eAAA;UAETS,MAAA,GAASD,SAAA,GAAYR,eAAA,GAAkB;UACvCU,IAAA,GAAOF,SAAA,GAAYP,UAAA,GAAaD,eAAA;QAEtC,IAAIW,MAAA,GAASlB,UAAA,CAAWmB,GAAA,CAAIN,SAAS;QACrC,OAAKK,MAAA,KACHA,MAAA,GAAS5B,WAAA,CAAYuB,SAAA,EAAWX,QAAA,EAAWkB,GAAA,IAClCR,EAAA,CAAGQ,GAAG,CACd,GACDpB,UAAA,CAAWqB,GAAA,CAAIR,SAAA,EAAWK,MAAM,IAM3B;UAAER,WAAA,EAFKM,MAAA,KAAW,SAAaE,MAAA,CAAeF,MAAM,IAAIE,MAAA;UAElCP,OAAA,EAASM;QAAK;MAC7C,GAAG,CAACX,SAAA,EAAWC,eAAA,EAAiBC,UAAA,EAAYC,eAAe,CAAC;IAE5Da,OAAA,CAAQC,IAAA,CAAK,WAAW;MAAEb,WAAA;MAAaC,OAAA;MAASL;IAAU,CAAC;IAE3D,MAAMkB,GAAA,GAAMhC,YAAA,CAAakB,WAAA,EAAaC,OAAO;IAO7C,OALIc,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAE3BhC,YAAA,CAAae,WAAA,EAAaC,OAAA,EAASa,GAAG,GAGpCnB,QAAA,GACK,CAAC,MAAM;MAAEuB,IAAA,EAAM;IAAU,CAAC,IAG5BJ,GAAA;EACT;EAEA,OAAOjC,QAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["useQuery","zeroUseQuery","use","useMemo","useZeroDebug","getQueryName","createUseQuery","DisabledContext","customQueries","args","disabled","fn","paramsOrOptions","optionsArg","queryRequest","options","queryName","fnName","name","Error","hasParams","params","opts","namespace","split","customQuery","out","process","env","NODE_ENV","type"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,GAAA,EAAKC,OAAA,QAA6B;AAE3C,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAoB;AAqCtB,SAASC,eAA0C;EACxDC,eAAA;EACAC;AACF,GAGyB;EACvB,SAASR,SAAA,GAAYS,IAAA,EAAkB;IACrC,MAAMC,QAAA,GAAWR,GAAA,CAAIK,eAAe;MAC9B,CAACI,EAAA,EAAIC,eAAA,EAAiBC,UAAU,IAAIJ,IAAA;MAEpC;QAAEK,YAAA;QAAcC;MAAQ,IAAIZ,OAAA,CAAQ,MAAM;QAC9C,MAAMa,SAAA,GAAYX,YAAA,CAAaM,EAAE;QACjC,IAAI,CAACK,SAAA,EAAW;UACd,MAAMC,MAAA,GAASN,EAAA,EAAIO,IAAA,IAAQ;UAC3B,MAAM,IAAIC,KAAA,CACR,mBAAmBF,MAAM,gHAE3B;QACF;QAGA,MAAMG,SAAA,GACJP,UAAA,KAAe,UACdD,eAAA,IACC,OAAOA,eAAA,IAAoB,YAC3B,EAAE,aAAaA,eAAA,KACf,EAAE,SAASA,eAAA;UAETS,MAAA,GAASD,SAAA,GAAYR,eAAA,GAAkB;UACvCU,IAAA,GAAOF,SAAA,GAAYP,UAAA,GAAaD,eAAA;UAIhC,CAACW,SAAA,EAAWL,IAAI,IAAIF,SAAA,CAAUQ,KAAA,CAAM,KAAK,CAAC;UAC1CC,WAAA,GAAejB,aAAA,CAAsBe,SAAS,IAAIL,IAAI;QAE5D,IAAI,CAACO,WAAA,EACH,MAAM,IAAIN,KAAA,CACR,gBAAgBH,SAAS,+EAE3B;QAKF,OAAO;UAAEF,YAAA,EAFYO,MAAA,KAAW,SAAYI,WAAA,CAAYJ,MAAM,IAAII,WAAA,CAAY;UAEvDV,OAAA,EAASO;QAAK;MACvC,GAAG,CAACX,EAAA,EAAIC,eAAA,EAAiBC,UAAU,CAAC;MAE9Ba,GAAA,GAAMzB,YAAA,CAAaa,YAAA,EAAqBC,OAAO;IAOrD,OALIY,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAE3BzB,YAAA,CAAaU,YAAA,EAAqBC,OAAA,EAASW,GAAG,GAG5ChB,QAAA,GACK,CAAC,MAAM;MAAEoB,IAAA,EAAM;IAAU,CAAC,IAG5BJ,GAAA;EACT;EAEA,OAAO1B,QAAA;AACT","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { syncedQuery } from "@rocicorp/zero";
2
1
  import { useQuery as zeroUseQuery } from "@rocicorp/zero/react";
3
2
  import { use, useMemo } from "react";
4
3
  import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
@@ -10,49 +9,37 @@ function _type_of(obj) {
10
9
  }
11
10
  function createUseQuery(param) {
12
11
  var {
13
- DisabledContext,
14
- disableInlineQueries = !1
15
- } = param,
16
- queryCache = /* @__PURE__ */new Map(),
17
- parseAny = function (x) {
18
- return [x[0]];
19
- };
12
+ DisabledContext,
13
+ customQueries
14
+ } = param;
20
15
  function useQuery() {
21
16
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
22
17
  var disabled = use(DisabledContext),
23
- [queryOrFn, paramsOrOptions, optionsArg] = args,
24
- isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
18
+ [fn, paramsOrOptions, optionsArg] = args,
25
19
  {
26
- actualQuery,
20
+ queryRequest,
27
21
  options
28
22
  } = useMemo(function () {
29
- if (!isPlainFunction) return {
30
- actualQuery: queryOrFn,
31
- options: paramsOrOptions
32
- };
33
- var fn = queryOrFn,
23
+ var _customQueries_namespace,
34
24
  queryName = getQueryName(fn);
35
- if (!queryName) throw new Error("No query name?");
25
+ if (!queryName) {
26
+ var fnName = fn?.name || "anonymous";
27
+ throw new Error(`Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`);
28
+ }
36
29
  var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions > "u" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
37
30
  params = hasParams ? paramsOrOptions : void 0,
38
31
  opts = hasParams ? optionsArg : paramsOrOptions,
39
- synced = queryCache.get(queryName);
40
- synced || (synced = syncedQuery(queryName, parseAny, function (arg) {
41
- return fn(arg);
42
- }), queryCache.set(queryName, synced));
43
- var query = params !== void 0 ? synced(params) : synced;
32
+ [namespace, name] = queryName.split(".", 2),
33
+ customQuery = (_customQueries_namespace = customQueries[namespace]) === null || _customQueries_namespace === void 0 ? void 0 : _customQueries_namespace[name];
34
+ if (!customQuery) throw new Error(`CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`);
35
+ var queryRequest2 = params !== void 0 ? customQuery(params) : customQuery();
44
36
  return {
45
- actualQuery: query,
37
+ queryRequest: queryRequest2,
46
38
  options: opts
47
39
  };
48
- }, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]);
49
- console.info("running", {
50
- actualQuery,
51
- options,
52
- queryOrFn
53
- });
54
- var out = zeroUseQuery(actualQuery, options);
55
- return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disabled ? [null, {
40
+ }, [fn, paramsOrOptions, optionsArg]),
41
+ out = zeroUseQuery(queryRequest, options);
42
+ return process.env.NODE_ENV === "development" && useZeroDebug(queryRequest, options, out), disabled ? [null, {
56
43
  type: "unknown"
57
44
  }] : out;
58
45
  }
@@ -1 +1 @@
1
- {"version":3,"names":["syncedQuery","useQuery","zeroUseQuery","use","useMemo","useZeroDebug","getQueryName","_type_of","obj","Symbol","constructor","createUseQuery","param","DisabledContext","disableInlineQueries","queryCache","Map","parseAny","x","_len","arguments","length","args","Array","_key","disabled","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","fn","queryName","Error","hasParams","params","opts","synced","get","arg"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,QAAmB;AAC5B,SAASC,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,GAAA,EAAKC,OAAA,QAA6B;AAE3C,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAoB;AAyDtB,SAASC,SAAAC,GAAA;EAId;;EACA,OAAAA,GAAA,WAAAC,MAAuB,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACzB;AAIE,SAAMG,cAAaA,CAAAC,KAAA;EAGnB;MAAAC,eAAqB;MAAAC,oBAAkB;IAAA,IAAAF,KAAA;IAAAG,UAAA,sBAAAC,GAAA;IAAAC,QAAA,YAAAA,CAAAC,CAAA;MACrC,OAAM,CAOJA,CAAA,GAAI,CAEF;IAAO;EACQ,SACbjB,QAASA,CAAA;IAAA,KACX,IAAAkB,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,IAGFF,IAAA,CAAAE,IAAM,IAAKJ,SACL,CAAAI,IAAA;IAEN,IAAAC,QAAK,GAAAtB,GAAA,CAAAU,eAAA;MAAA,CAAAa,SAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAN,IAAA;MAAAO,eAAA,UAAAH,SAAA,mCAAAA,SAAA;MAAA;QAAAI,WAAA;QAAAC;MAAA,IAAA3B,OAAA;QACH,KAAAyB,eAAgB,EAIlB,OAAM;UAUFC,WAAS,EAAAJ,SAAW;UACxBK,OAAK,EAAAJ;QAWH;QAEJ,IAAAK,EAAQ,GAAAN,SAAK;UAAAO,SAAa,GAAA3B,YAAa,CAAA0B,EAAS;QAEhD,IAAM,CAAAC,SAAM,EAOZ,MALI,IAAAC,KAAY,iBAAa;QAU/B,IAAAC,SAAA,GAAAP,UAAA,eAAAD,eAAA,YAAAA,eAAA,uBAAApB,QAAA,CAAAoB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAS,MAAA,GAAAD,SAAA,GAAAR,eAAA;UAAAU,IAAA,GAAAF,SAAA,GAAAP,UAAA,GAAAD,eAAA;UAAAW,MAAA,GAAAvB,UAAA,CAAAwB,GAAA,CAAAN,SAAA;QAEAK,MAAO,KAAAA,MAAA,GAAAtC,WAAA,CAAAiC,SAAA,EAAAhB,QAAA,YAAAuB,GAAA;UACT,OAAAR,EAAA,CAAAQ,GAAA","ignoreList":[]}
1
+ {"version":3,"names":["useQuery","zeroUseQuery","use","useMemo","useZeroDebug","getQueryName","_type_of","obj","Symbol","constructor","createUseQuery","param","DisabledContext","customQueries","_len","arguments","length","args","Array","_key","disabled","fn","paramsOrOptions","optionsArg","queryRequest","options","_customQueries_namespace","queryName","fnName","name","Error","hasParams","params","opts","namespace","split","customQuery","queryRequest2"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,IAAYC,YAAA,QAAoB;AACzC,SAASC,GAAA,EAAKC,OAAA,QAA6B;AAE3C,SAASC,YAAA,QAAoB;AAC7B,SAASC,YAAA,QAAoB;AAqCtB,SAASC,SAAAC,GAAA;EACd;;EACA,OAAAA,GAAA,WAAAC,MAAA,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACF;AAIE,SAAAG,cAAqBA,CAAAC,KAAkB;EACrC;IAAAC,eAAiB;IAAIC;EAAA,CAAe,GAC9BF,KAAK;EAGT,SAAAX,QAAMA,CAAA;IACN,SAAKc,IAAA,GAAAC,SAAW,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,IACdF,IAAA,CAAAE,IAAM,IAAAJ,SAAa,CAAAI,IAAA;IACnB,IAAAC,QAAM,GAAIlB,GAAA,CAAAU,eAAA;MAAA,CAAAS,EAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAN,IAAA;MAAA;QAAAO,YAAA;QAAAC;MAAA,IAAAtB,OAAA;QAAA,IACRuB,wBAAmB;UAAMC,SAAA,GAAAtB,YAAA,CAAAgB,EAAA;QAAA,IAE3B,CAAAM,SAAA;UACF,IAAAC,MAAA,GAAAP,EAAA,EAAAQ,IAAA;UAGA,MAAM,IAAAC,KAAA,CACJ,mBAAeF,MACd,gHAGY;QAUf;QACE,IAAAG,SAAU,GAAAR,UAAA,eAAAD,eAAA,YAAAA,eAAA,uBAAAhB,QAAA,CAAAgB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAU,MAAA,GAAAD,SAAA,GAAAT,eAAA;UAAAW,IAAA,GAAAF,SAAA,GAAAR,UAAA,GAAAD,eAAA;UAAA,CAAAY,SAAA,EAAAL,IAAA,IAAAF,SAAA,CAAAQ,KAAA;UAAAC,WAAA,IAAAV,wBAAA,GAAAb,aAAA,CAAAqB,SAAA,eAAAR,wBAAA,uBAAAA,wBAAA,CAAAG,IAAA;QAAA,IACR,CAAAO,WAAA,EAEF,UAAAN,KAAA,iBAAAH,SAAA;QAKF,IAAAU,aAAS,GAAAL,MAFY,UAAW,IAAAI,WAAY,CAAAJ,MAAY,IAAMI,WAAI;QAGpE,OAAQ;UASRZ,YALY,EAAAa,aAAI;UAUlBZ,OAAA,EAAAQ;QAEA;MACF,I","ignoreList":[]}
@@ -1,6 +1,19 @@
1
- import { useZero, ZeroProvider } from "@rocicorp/zero/react";
2
- import { createEmitter, mapObject } from "@vxrn/helpers";
3
- import { createContext, use, useMemo } from "react";
1
+ import { defineQueries, defineQuery } from "@rocicorp/zero";
2
+ import {
3
+ useConnectionState,
4
+ useZero,
5
+ ZeroProvider,
6
+ useQuery as zeroUseQuery
7
+ } from "@rocicorp/zero/react";
8
+ import { createEmitter, mapObject } from "@take-out/helpers";
9
+ import {
10
+ createContext,
11
+ memo,
12
+ use,
13
+ useEffect,
14
+ useMemo,
15
+ useRef
16
+ } from "react";
4
17
  import { createPermissions } from "./createPermissions";
5
18
  import { createUseQuery } from "./createUseQuery";
6
19
  import { createMutators } from "./helpers/createMutators";
@@ -11,17 +24,25 @@ import { jsx, jsxs } from "react/jsx-runtime";
11
24
  function createZeroClient({
12
25
  schema,
13
26
  models,
14
- groupedQueries,
15
- disableInlineQueries = !1
27
+ groupedQueries
16
28
  }) {
17
29
  setSchema(schema);
18
- for (const [namespace, queries] of Object.entries(groupedQueries))
30
+ const wrappedNamespaces = {};
31
+ for (const [namespace, queries] of Object.entries(groupedQueries)) {
32
+ wrappedNamespaces[namespace] = {};
19
33
  for (const [name, fn] of Object.entries(queries))
20
- registerQuery(fn, `${namespace}.${name}`);
21
- const DisabledContext = createContext(!1), modelWritePermissions = mapObject(models, (val) => val.permissions);
34
+ registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(
35
+ ({ args }) => fn(args)
36
+ );
37
+ }
38
+ const customQueries = defineQueries(wrappedNamespaces), DisabledContext = createContext(!1), modelWritePermissions = mapObject(models, (val) => val.permissions);
22
39
  let latestZeroInstance = null;
23
40
  const zero = new Proxy({}, {
24
41
  get(_, key) {
42
+ if (latestZeroInstance === null)
43
+ throw new Error(
44
+ "Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'."
45
+ );
25
46
  return Reflect.get(latestZeroInstance, key, latestZeroInstance);
26
47
  }
27
48
  }), permissionsHelpers = createPermissions({
@@ -29,7 +50,7 @@ function createZeroClient({
29
50
  environment: "client"
30
51
  }), zeroEvents = createEmitter("zero", null), AuthDataContext = createContext({}), useAuthData = () => use(AuthDataContext), useQuery = createUseQuery({
31
52
  DisabledContext,
32
- disableInlineQueries
53
+ customQueries
33
54
  });
34
55
  function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
35
56
  const disabled = use(DisabledContext), authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
@@ -40,7 +61,7 @@ function createZeroClient({
40
61
  permission,
41
62
  objOrId
42
63
  ));
43
- })(), [data, status] = useQuery(query, {
64
+ })(), [data, status] = zeroUseQuery(query, {
44
65
  enabled: !!(enabled && permission && authData && objOrId)
45
66
  });
46
67
  debug && console.info(
@@ -63,29 +84,33 @@ function createZeroClient({
63
84
  authData,
64
85
  can: permissionsHelpers.can
65
86
  })), [models, authData]);
66
- return disable ? children : /* @__PURE__ */ jsx(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ jsxs(
67
- ZeroProvider,
68
- {
69
- schema,
70
- kvStore: "mem",
71
- onError: (error) => {
72
- console.error("Zero Error:", error), zeroEvents.emit({
73
- type: "error",
74
- message: error
75
- });
76
- },
77
- mutators,
78
- ...props,
79
- children: [
80
- /* @__PURE__ */ jsx(SetZeroInstance, {}),
81
- children
82
- ]
83
- }
84
- ) });
87
+ return disable ? children : /* @__PURE__ */ jsx(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ jsxs(ZeroProvider, { schema, kvStore: "mem", mutators, ...props, children: [
88
+ /* @__PURE__ */ jsx(SetZeroInstance, {}),
89
+ /* @__PURE__ */ jsx(ConnectionMonitor, { zeroEvents }),
90
+ children
91
+ ] }) });
85
92
  }, SetZeroInstance = () => {
86
93
  const zero2 = useZero();
87
94
  return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
88
- };
95
+ }, ConnectionMonitor = memo(
96
+ ({
97
+ zeroEvents: zeroEvents2
98
+ }) => {
99
+ const state = useConnectionState(), prevState = useRef(state.name);
100
+ return useEffect(() => {
101
+ if (state.name !== prevState.current) {
102
+ const reason = "reason" in state ? state.reason : "";
103
+ if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
104
+ const message = typeof reason == "string" ? reason : state.name;
105
+ zeroEvents2.emit({
106
+ type: "error",
107
+ message
108
+ });
109
+ }
110
+ }
111
+ }, [state, zeroEvents2]), null;
112
+ }
113
+ );
89
114
  return {
90
115
  zeroEvents,
91
116
  ProvideZero,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZeroClient.tsx"],
4
- "mappings": "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",
5
- "names": ["zero"]
4
+ "mappings": "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",
5
+ "names": ["zero", "zeroEvents"]
6
6
  }
@@ -1,6 +1,7 @@
1
- import { useZero, ZeroProvider } from "@rocicorp/zero/react";
2
- import { createEmitter, mapObject } from "@vxrn/helpers";
3
- import { createContext, use, useMemo } from "react";
1
+ import { defineQueries, defineQuery } from "@rocicorp/zero";
2
+ import { useConnectionState, useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
3
+ import { createEmitter, mapObject } from "@take-out/helpers";
4
+ import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
4
5
  import { createPermissions } from "./createPermissions.mjs";
5
6
  import { createUseQuery } from "./createUseQuery.mjs";
6
7
  import { createMutators } from "./helpers/createMutators.mjs";
@@ -11,16 +12,23 @@ import { jsx, jsxs } from "react/jsx-runtime";
11
12
  function createZeroClient({
12
13
  schema,
13
14
  models,
14
- groupedQueries,
15
- disableInlineQueries = !1
15
+ groupedQueries
16
16
  }) {
17
17
  setSchema(schema);
18
- for (const [namespace, queries] of Object.entries(groupedQueries)) for (const [name, fn] of Object.entries(queries)) registerQuery(fn, `${namespace}.${name}`);
19
- const DisabledContext = createContext(!1),
18
+ const wrappedNamespaces = {};
19
+ for (const [namespace, queries] of Object.entries(groupedQueries)) {
20
+ wrappedNamespaces[namespace] = {};
21
+ for (const [name, fn] of Object.entries(queries)) registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(({
22
+ args
23
+ }) => fn(args));
24
+ }
25
+ const customQueries = defineQueries(wrappedNamespaces),
26
+ DisabledContext = createContext(!1),
20
27
  modelWritePermissions = mapObject(models, val => val.permissions);
21
28
  let latestZeroInstance = null;
22
29
  const zero = new Proxy({}, {
23
30
  get(_, key) {
31
+ if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
24
32
  return Reflect.get(latestZeroInstance, key, latestZeroInstance);
25
33
  }
26
34
  }),
@@ -33,7 +41,7 @@ function createZeroClient({
33
41
  useAuthData = () => use(AuthDataContext),
34
42
  useQuery = createUseQuery({
35
43
  DisabledContext,
36
- disableInlineQueries
44
+ customQueries
37
45
  });
38
46
  function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
39
47
  const disabled = use(DisabledContext),
@@ -43,7 +51,7 @@ function createZeroClient({
43
51
  let baseQuery = zero.query[table].one();
44
52
  return disabled || !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
45
53
  })(),
46
- [data, status] = useQuery(query, {
54
+ [data, status] = zeroUseQuery(query, {
47
55
  enabled: !!(enabled && permission && authData && objOrId)
48
56
  });
49
57
  debug && console.info("usePermission()", {
@@ -73,22 +81,36 @@ function createZeroClient({
73
81
  children: /* @__PURE__ */jsxs(ZeroProvider, {
74
82
  schema,
75
83
  kvStore: "mem",
76
- onError: error => {
77
- console.error("Zero Error:", error), zeroEvents.emit({
78
- type: "error",
79
- message: error
80
- });
81
- },
82
84
  mutators,
83
85
  ...props,
84
- children: [/* @__PURE__ */jsx(SetZeroInstance, {}), children]
86
+ children: [/* @__PURE__ */jsx(SetZeroInstance, {}), /* @__PURE__ */jsx(ConnectionMonitor, {
87
+ zeroEvents
88
+ }), children]
85
89
  })
86
90
  });
87
91
  },
88
92
  SetZeroInstance = () => {
89
93
  const zero2 = useZero();
90
94
  return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
91
- };
95
+ },
96
+ ConnectionMonitor = memo(({
97
+ zeroEvents: zeroEvents2
98
+ }) => {
99
+ const state = useConnectionState(),
100
+ prevState = useRef(state.name);
101
+ return useEffect(() => {
102
+ if (state.name !== prevState.current) {
103
+ const reason = "reason" in state ? state.reason : "";
104
+ if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
105
+ const message = typeof reason == "string" ? reason : state.name;
106
+ zeroEvents2.emit({
107
+ type: "error",
108
+ message
109
+ });
110
+ }
111
+ }
112
+ }, [state, zeroEvents2]), null;
113
+ });
92
114
  return {
93
115
  zeroEvents,
94
116
  ProvideZero,
@@ -1 +1 @@
1
- {"version":3,"names":["useZero","ZeroProvider","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","groupedQueries","disableInlineQueries","namespace","queries","Object","entries","name","fn","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","useQuery","usePermission","table","objOrId","enabled","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","value","kvStore","onError","error","emit","type","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","groupedQueries","wrappedNamespaces","namespace","queries","Object","entries","name","fn","args","customQueries","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","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","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","value","kvStore","SetZeroInstance","ConnectionMonitor","zero2","zeroEvents2","state","prevState","current","reason","message","emit","type"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useZero, ZeroProvider } from "@rocicorp/zero/react";
3
- import { createEmitter, mapObject } from "@vxrn/helpers";
4
- import { createContext, use, useMemo } from "react";
2
+ import { defineQueries, defineQuery } from "@rocicorp/zero";
3
+ import { useConnectionState, useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
4
+ import { createEmitter, mapObject } from "@take-out/helpers";
5
+ import { createContext, memo, use, useEffect, useMemo, useRef } from "react";
5
6
  import { createPermissions } from "./createPermissions.native.js";
6
7
  import { createUseQuery } from "./createUseQuery.native.js";
7
8
  import { createMutators } from "./helpers/createMutators.native.js";
@@ -12,24 +13,30 @@ function createZeroClient(param) {
12
13
  var {
13
14
  schema,
14
15
  models,
15
- groupedQueries,
16
- disableInlineQueries = !1
16
+ groupedQueries
17
17
  } = param;
18
18
  setSchema(schema);
19
- var _iteratorNormalCompletion = !0,
19
+ var wrappedNamespaces = {},
20
+ _iteratorNormalCompletion = !0,
20
21
  _didIteratorError = !1,
21
22
  _iteratorError = void 0;
22
23
  try {
23
24
  for (var _iterator = Object.entries(groupedQueries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
24
- var [namespace, queries] = _step.value,
25
- _iteratorNormalCompletion1 = !0,
25
+ var [namespace, queries] = _step.value;
26
+ wrappedNamespaces[namespace] = {};
27
+ var _iteratorNormalCompletion1 = !0,
26
28
  _didIteratorError1 = !1,
27
29
  _iteratorError1 = void 0;
28
30
  try {
29
- for (var _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
30
- var [name, fn] = _step1.value;
31
- registerQuery(fn, `${namespace}.${name}`);
32
- }
31
+ for (var _loop = function () {
32
+ var [name, fn] = _step1.value;
33
+ registerQuery(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = defineQuery(function (param2) {
34
+ var {
35
+ args
36
+ } = param2;
37
+ return fn(args);
38
+ });
39
+ }, _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop();
33
40
  } catch (err) {
34
41
  _didIteratorError1 = !0, _iteratorError1 = err;
35
42
  } finally {
@@ -49,13 +56,15 @@ function createZeroClient(param) {
49
56
  if (_didIteratorError) throw _iteratorError;
50
57
  }
51
58
  }
52
- var DisabledContext = /* @__PURE__ */createContext(!1),
59
+ var customQueries = defineQueries(wrappedNamespaces),
60
+ DisabledContext = /* @__PURE__ */createContext(!1),
53
61
  modelWritePermissions = mapObject(models, function (val) {
54
62
  return val.permissions;
55
63
  }),
56
64
  latestZeroInstance = null,
57
65
  zero = new Proxy({}, {
58
66
  get(_, key) {
67
+ if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
59
68
  return Reflect.get(latestZeroInstance, key, latestZeroInstance);
60
69
  }
61
70
  }),
@@ -70,7 +79,7 @@ function createZeroClient(param) {
70
79
  },
71
80
  useQuery = createUseQuery({
72
81
  DisabledContext,
73
- disableInlineQueries
82
+ customQueries
74
83
  });
75
84
  function usePermission(table, objOrId) {
76
85
  var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
@@ -84,7 +93,7 @@ function createZeroClient(param) {
84
93
  return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
85
94
  });
86
95
  }(),
87
- [data, status] = useQuery(query, {
96
+ [data, status] = zeroUseQuery(query, {
88
97
  enabled: !!(enabled && permission && authData && objOrId)
89
98
  });
90
99
  debug && console.info("usePermission()", {
@@ -118,22 +127,37 @@ function createZeroClient(param) {
118
127
  children: /* @__PURE__ */_jsxs(ZeroProvider, {
119
128
  schema,
120
129
  kvStore: "mem",
121
- onError: function (error) {
122
- console.error("Zero Error:", error), zeroEvents.emit({
123
- type: "error",
124
- message: error
125
- });
126
- },
127
130
  mutators,
128
131
  ...props,
129
- children: [/* @__PURE__ */_jsx(SetZeroInstance, {}), children]
132
+ children: [/* @__PURE__ */_jsx(SetZeroInstance, {}), /* @__PURE__ */_jsx(ConnectionMonitor, {
133
+ zeroEvents
134
+ }), children]
130
135
  })
131
136
  });
132
137
  },
133
138
  SetZeroInstance = function () {
134
139
  var zero2 = useZero();
135
140
  return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
136
- };
141
+ },
142
+ ConnectionMonitor = /* @__PURE__ */memo(function (param2) {
143
+ var {
144
+ zeroEvents: zeroEvents2
145
+ } = param2,
146
+ state = useConnectionState(),
147
+ prevState = useRef(state.name);
148
+ return useEffect(function () {
149
+ if (state.name !== prevState.current) {
150
+ var reason = "reason" in state ? state.reason : "";
151
+ if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
152
+ var message = typeof reason == "string" ? reason : state.name;
153
+ zeroEvents2.emit({
154
+ type: "error",
155
+ message
156
+ });
157
+ }
158
+ }
159
+ }, [state, zeroEvents2]), null;
160
+ });
137
161
  return {
138
162
  zeroEvents,
139
163
  ProvideZero,
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useZero","ZeroProvider","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","createZeroClient","param","schema","models","groupedQueries","disableInlineQueries","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","name","fn","err","return","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","useQuery","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","ProvideZero","param2","children","authDataIn","disable","props","mutators","can","Provider","kvStore","onError","error","emit","type"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","defineQueries","defineQuery","useConnectionState","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","memo","use","useEffect","useMemo","useRef","createPermissions","createUseQuery","createMutators","prettyFormatZeroQuery","registerQuery","setAuthData","setSchema","createZeroClient","param","schema","models","groupedQueries","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","value","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","param2","args","_iterator1","err","return","customQueries","DisabledContext","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","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","ProvideZero","children","authDataIn","disable","props","mutators","can","Provider","kvStore","SetZeroInstance","ConnectionMonitor","zero2","zeroEvents2","state","prevState","current","reason"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}