over-zero 0.0.35 → 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
@@ -25,8 +25,7 @@ __export(createUseQuery_exports, {
25
25
  createUseQuery: () => createUseQuery
26
26
  });
27
27
  module.exports = __toCommonJS(createUseQuery_exports);
28
- var import_zero = require("@rocicorp/zero"),
29
- import_react = require("@rocicorp/zero/react"),
28
+ var import_react = require("@rocicorp/zero/react"),
30
29
  import_react2 = require("react"),
31
30
  import_useZeroDebug = require("./helpers/useZeroDebug.native.js"),
32
31
  import_queryRegistry = require("./queryRegistry.native.js");
@@ -37,49 +36,37 @@ function _type_of(obj) {
37
36
  }
38
37
  function createUseQuery(param) {
39
38
  var {
40
- DisabledContext,
41
- disableInlineQueries = !1
42
- } = param,
43
- queryCache = /* @__PURE__ */new Map(),
44
- parseAny = function (x) {
45
- return [x[0]];
46
- };
39
+ DisabledContext,
40
+ customQueries
41
+ } = param;
47
42
  function useQuery() {
48
43
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
49
44
  var disabled = (0, import_react2.use)(DisabledContext),
50
- [queryOrFn, paramsOrOptions, optionsArg] = args,
51
- isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
45
+ [fn, paramsOrOptions, optionsArg] = args,
52
46
  {
53
- actualQuery,
47
+ queryRequest,
54
48
  options
55
49
  } = (0, import_react2.useMemo)(function () {
56
- if (!isPlainFunction) return {
57
- actualQuery: queryOrFn,
58
- options: paramsOrOptions
59
- };
60
- var fn = queryOrFn,
50
+ var _customQueries_namespace,
61
51
  queryName = (0, import_queryRegistry.getQueryName)(fn);
62
- if (!queryName) throw new Error("No query name?");
52
+ if (!queryName) {
53
+ var fnName = fn?.name || "anonymous";
54
+ throw new Error(`Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`);
55
+ }
63
56
  var hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions > "u" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
64
57
  params = hasParams ? paramsOrOptions : void 0,
65
58
  opts = hasParams ? optionsArg : paramsOrOptions,
66
- synced = queryCache.get(queryName);
67
- synced || (synced = (0, import_zero.syncedQuery)(queryName, parseAny, function (arg) {
68
- return fn(arg);
69
- }), queryCache.set(queryName, synced));
70
- var query = params !== void 0 ? synced(params) : synced;
59
+ [namespace, name] = queryName.split(".", 2),
60
+ customQuery = (_customQueries_namespace = customQueries[namespace]) === null || _customQueries_namespace === void 0 ? void 0 : _customQueries_namespace[name];
61
+ if (!customQuery) throw new Error(`CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`);
62
+ var queryRequest2 = params !== void 0 ? customQuery(params) : customQuery();
71
63
  return {
72
- actualQuery: query,
64
+ queryRequest: queryRequest2,
73
65
  options: opts
74
66
  };
75
- }, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]);
76
- console.info("running", {
77
- actualQuery,
78
- options,
79
- queryOrFn
80
- });
81
- var out = (0, import_react.useQuery)(actualQuery, options);
82
- return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(actualQuery, options, out), disabled ? [null, {
67
+ }, [fn, paramsOrOptions, optionsArg]),
68
+ out = (0, import_react.useQuery)(queryRequest, options);
69
+ return process.env.NODE_ENV === "development" && (0, import_useZeroDebug.useZeroDebug)(queryRequest, options, out), disabled ? [null, {
83
70
  type: "unknown"
84
71
  }] : out;
85
72
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","module","exports","import_zero","require","import_react","import_react2","import_useZeroDebug","import_queryRegistry","_type_of","obj","Symbol","constructor","param","DisabledContext","disableInlineQueries","queryCache","Map","parseAny","x","useQuery","_len","arguments","length","args","Array","_key","disabled","use","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","useMemo","fn","queryName","getQueryName","Error","hasParams","params","opts","synced","get","syncedQuery","arg"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,sBAAA;AAAAC,QAAA,CAAAD,sBAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAA4B,CAAAK,sBAC5B;AA6DO,IAAAK,WAAS,GAAAC,OAGd;EAAAC,YAAA,GAAAD,OAAA;EAAAE,aAAA,GAAAF,OAAA;EAAAG,mBAAA,GAAAH,OAAA;EAAAI,oBAAA,GAAAJ,OAAA;AAAA,SACAK,SAAAC,GAAA;EACA,uBAAuB;;EACzB,OAGwCA,GAAA,WAAAC,MAAA,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACtC;AAGA,SAAAV,cAAqBA,CAAAa,KAAkB;EACrC;MAAAC,eAAM;MAAWC,oBAAI;IAAA,IAAAF,KAAe;IAC9BG,UAAC,GAAW,eAAiB,IAAAC,GAAA;IAAUC,QAAI,GAG3C,SAAAA,CAAAC,CAAA;MAGJ,OAAK,CAEHA,CAAA,IAAO;IACQ;EACJ,SACXC,SAAA;IAGF,SAAMC,IAAK,GAAAC,SACL,CAAAC,MAAA,EAAAC,IAAA,GAAY,IAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAaL,IAAE,EAAAK,IAAA,IAEjCF,IAAI,CAACE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IACH,IAAAC,QAAM,GAAI,IAAArB,aAAM,CAAAsB,GAAgB,EAAAd,eAAA;MAAA,CAAAe,SAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAP,IAAA;MAAAQ,eAAA,UAAAH,SAAA,mCAAAA,SAAA;MAAA;QAAAI,WAAA;QAAAC;MAAA,QAAA5B,aAAA,CAAA6B,OAAA;QAIlC,KAAAH,eACE,EASF,OAAI;UACJC,WAAK,EAAAJ,SACH;UAUAK,OAAA,EAAWJ;QAEf;QAEA,IAAMM,EAAA,GAAAP,SAAM;UAAAQ,SAAA,OAAA7B,oBAA0B,CAAO8B,YAAA,EAAAF,EAAA;QAO7C,KALIC,SAAQ,EAUd,UAAAE,KAAA;QAEA,IAAOC,SAAA,GAAAT,UAAA,eAAAD,eAAA,YAAAA,eAAA,uBAAArB,QAAA,CAAAqB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAW,MAAA,GAAAD,SAAA,GAAAV,eAAA;UAAAY,IAAA,GAAAF,SAAA,GAAAT,UAAA,GAAAD,eAAA;UAAAa,MAAA,GAAA3B,UAAA,CAAA4B,GAAA,CAAAP,SAAA;QACTM,MAAA,KAAAA,MAAA,OAAAxC,WAAA,CAAA0C,WAAA,EAAAR,SAAA,EAAAnB,QAAA,YAAA4B,GAAA","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createUseQuery_exports","__export","createUseQuery","module","exports","import_react","require","import_react2","import_useZeroDebug","import_queryRegistry","_type_of","obj","Symbol","constructor","param","DisabledContext","customQueries","useQuery","_len","arguments","length","args","Array","_key","disabled","use","fn","paramsOrOptions","optionsArg","queryRequest","options","useMemo","_customQueries_namespace","queryName","getQueryName","fnName","name","Error","hasParams","params","opts","namespace","split","customQuery","queryRequest2"],"sources":["../../src/createUseQuery.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,sBAAA;AAAAC,QAAA,CAAAD,sBAAA;EAAAE,cAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAyC,CAAAK,sBACzC;AAwCO,IAAAK,YAAS,GAAAC,OAA0C;EAAAC,aAAA,GAAAD,OAAA;EAAAE,mBAAA,GAAAF,OAAA;EAAAG,oBAAA,GAAAH,OAAA;AAAA,SACxDI,SAAAC,GAAA;EACA;;EACF,OAGyBA,GAAA,WAAAC,MAAA,UAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACvB;AACE,SAAAT,cAAMA,CAAAY,KAAW;EAIf;IAAAC,eAAM;IAAAC;EAAY,IAAAF,KAAA;EAClB,SAAKG,SAAA,EAAW;IACd,SAAAC,IAAM,GAAAC,SAAa,CAAAC,MAAQ,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,IAC3BF,IAAA,CAAAE,IAAM,IAAIJ,SAAA,CAAAI,IAAA;IAAA,IAAAC,QACR,OAAAjB,aAAyB,CAAAkB,GAAA,EAAAV,eAAA;MAAA,CAAAW,EAAA,EAAAC,eAAA,EAAAC,UAAA,IAAAP,IAAA;MAAA;QAAAQ,YAAA;QAAAC;MAAA,QAAAvB,aAAA,CAAAwB,OAAA;QAAA,IAE3BC,wBAAA;UAAAC,SAAA,OAAAxB,oBAAA,CAAAyB,YAAA,EAAAR,EAAA;QACF,KAAAO,SAAA;UAGA,IAAME,MAAA,GAAAT,EAAA,EACJU,IAAA,eAAe;UAcjB,MAAK,IAAAC,KAAA,oBAAAF,MAAA;QACH;QAAU,IACRG,SAAA,GAAAV,UAAgB,KAAS,UAAAD,eAAA,YAAAA,eAAA,uBAAAjB,QAAA,CAAAiB,eAAA,kCAAAA,eAAA,gBAAAA,eAAA;UAAAY,MAAA,GAAAD,SAAA,GAAAX,eAAA;UAAAa,IAAA,GAAAF,SAAA,GAAAV,UAAA,GAAAD,eAAA;UAAA,CAAAc,SAAA,EAAAL,IAAA,IAAAH,SAAA,CAAAS,KAAA;UAAAC,WAAA,IAAAX,wBAAA,GAAAhB,aAAA,CAAAyB,SAAA,eAAAT,wBAAA,uBAAAA,wBAAA,CAAAI,IAAA;QAAA,IAE3B,CAAAO,WAAA,EAKF,MAAO,IAAEN,KAAA,iBAFuBJ,SAAY,+EAEP;QACvC,IAAIW,aAAI,GAAAL,MAAiB,UAAW,CAE9B,GAAAI,WAAM,CAAAJ,MAAA,IAAAI,WAAa;QAOzB,OALI;UAUNd,YAAA,EAAAe,aAAA;UAEAd,OAAO,EAAAU;QACT","ignoreList":[]}
@@ -23,8 +23,9 @@ __export(createZeroClient_exports, {
23
23
  createZeroClient: () => createZeroClient
24
24
  });
25
25
  module.exports = __toCommonJS(createZeroClient_exports);
26
- var import_react = require("@rocicorp/zero/react"),
27
- import_helpers = require("@vxrn/helpers"),
26
+ var import_zero = require("@rocicorp/zero"),
27
+ import_react = require("@rocicorp/zero/react"),
28
+ import_helpers = require("@take-out/helpers"),
28
29
  import_react2 = require("react"),
29
30
  import_createPermissions = require("./createPermissions.cjs"),
30
31
  import_createUseQuery = require("./createUseQuery.cjs"),
@@ -36,16 +37,23 @@ var import_react = require("@rocicorp/zero/react"),
36
37
  function createZeroClient({
37
38
  schema,
38
39
  models,
39
- groupedQueries,
40
- disableInlineQueries = !1
40
+ groupedQueries
41
41
  }) {
42
42
  (0, import_state.setSchema)(schema);
43
- for (const [namespace, queries] of Object.entries(groupedQueries)) for (const [name, fn] of Object.entries(queries)) (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`);
44
- const DisabledContext = (0, import_react2.createContext)(!1),
43
+ const wrappedNamespaces = {};
44
+ for (const [namespace, queries] of Object.entries(groupedQueries)) {
45
+ wrappedNamespaces[namespace] = {};
46
+ for (const [name, fn] of Object.entries(queries)) (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = (0, import_zero.defineQuery)(({
47
+ args
48
+ }) => fn(args));
49
+ }
50
+ const customQueries = (0, import_zero.defineQueries)(wrappedNamespaces),
51
+ DisabledContext = (0, import_react2.createContext)(!1),
45
52
  modelWritePermissions = (0, import_helpers.mapObject)(models, val => val.permissions);
46
53
  let latestZeroInstance = null;
47
54
  const zero = new Proxy({}, {
48
55
  get(_, key) {
56
+ if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
49
57
  return Reflect.get(latestZeroInstance, key, latestZeroInstance);
50
58
  }
51
59
  }),
@@ -58,7 +66,7 @@ function createZeroClient({
58
66
  useAuthData = () => (0, import_react2.use)(AuthDataContext),
59
67
  useQuery = (0, import_createUseQuery.createUseQuery)({
60
68
  DisabledContext,
61
- disableInlineQueries
69
+ customQueries
62
70
  });
63
71
  function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
64
72
  const disabled = (0, import_react2.use)(DisabledContext),
@@ -68,7 +76,7 @@ function createZeroClient({
68
76
  let baseQuery = zero.query[table].one();
69
77
  return disabled || !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
70
78
  })(),
71
- [data, status] = useQuery(query, {
79
+ [data, status] = (0, import_react.useQuery)(query, {
72
80
  enabled: !!(enabled && permission && authData && objOrId)
73
81
  });
74
82
  debug && console.info("usePermission()", {
@@ -98,22 +106,36 @@ function createZeroClient({
98
106
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
99
107
  schema,
100
108
  kvStore: "mem",
101
- onError: error => {
102
- console.error("Zero Error:", error), zeroEvents.emit({
103
- type: "error",
104
- message: error
105
- });
106
- },
107
109
  mutators,
108
110
  ...props,
109
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), children]
111
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
112
+ zeroEvents
113
+ }), children]
110
114
  })
111
115
  });
112
116
  },
113
117
  SetZeroInstance = () => {
114
118
  const zero2 = (0, import_react.useZero)();
115
119
  return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
116
- };
120
+ },
121
+ ConnectionMonitor = (0, import_react2.memo)(({
122
+ zeroEvents: zeroEvents2
123
+ }) => {
124
+ const state = (0, import_react.useConnectionState)(),
125
+ prevState = (0, import_react2.useRef)(state.name);
126
+ return (0, import_react2.useEffect)(() => {
127
+ if (state.name !== prevState.current) {
128
+ const reason = "reason" in state ? state.reason : "";
129
+ if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
130
+ const message = typeof reason == "string" ? reason : state.name;
131
+ zeroEvents2.emit({
132
+ type: "error",
133
+ message
134
+ });
135
+ }
136
+ }
137
+ }, [state, zeroEvents2]), null;
138
+ });
117
139
  return {
118
140
  zeroEvents,
119
141
  ProvideZero,
@@ -17,21 +17,29 @@ __export(createZeroClient_exports, {
17
17
  createZeroClient: () => createZeroClient
18
18
  });
19
19
  module.exports = __toCommonJS(createZeroClient_exports);
20
- var import_react = require("@rocicorp/zero/react"), import_helpers = require("@vxrn/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_createUseQuery = require("./createUseQuery"), import_createMutators = require("./helpers/createMutators"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_queryRegistry = require("./queryRegistry"), import_state = require("./state"), import_jsx_runtime = require("react/jsx-runtime");
20
+ var import_zero = require("@rocicorp/zero"), import_react = require("@rocicorp/zero/react"), import_helpers = require("@take-out/helpers"), import_react2 = require("react"), import_createPermissions = require("./createPermissions"), import_createUseQuery = require("./createUseQuery"), import_createMutators = require("./helpers/createMutators"), import_prettyFormatZeroQuery = require("./helpers/prettyFormatZeroQuery"), import_queryRegistry = require("./queryRegistry"), import_state = require("./state"), import_jsx_runtime = require("react/jsx-runtime");
21
21
  function createZeroClient({
22
22
  schema,
23
23
  models,
24
- groupedQueries,
25
- disableInlineQueries = !1
24
+ groupedQueries
26
25
  }) {
27
26
  (0, import_state.setSchema)(schema);
28
- for (const [namespace, queries] of Object.entries(groupedQueries))
27
+ const wrappedNamespaces = {};
28
+ for (const [namespace, queries] of Object.entries(groupedQueries)) {
29
+ wrappedNamespaces[namespace] = {};
29
30
  for (const [name, fn] of Object.entries(queries))
30
- (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`);
31
- const DisabledContext = (0, import_react2.createContext)(!1), modelWritePermissions = (0, import_helpers.mapObject)(models, (val) => val.permissions);
31
+ (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = (0, import_zero.defineQuery)(
32
+ ({ args }) => fn(args)
33
+ );
34
+ }
35
+ const customQueries = (0, import_zero.defineQueries)(wrappedNamespaces), DisabledContext = (0, import_react2.createContext)(!1), modelWritePermissions = (0, import_helpers.mapObject)(models, (val) => val.permissions);
32
36
  let latestZeroInstance = null;
33
37
  const zero = new Proxy({}, {
34
38
  get(_, key) {
39
+ if (latestZeroInstance === null)
40
+ throw new Error(
41
+ "Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'."
42
+ );
35
43
  return Reflect.get(latestZeroInstance, key, latestZeroInstance);
36
44
  }
37
45
  }), permissionsHelpers = (0, import_createPermissions.createPermissions)({
@@ -39,7 +47,7 @@ function createZeroClient({
39
47
  environment: "client"
40
48
  }), zeroEvents = (0, import_helpers.createEmitter)("zero", null), AuthDataContext = (0, import_react2.createContext)({}), useAuthData = () => (0, import_react2.use)(AuthDataContext), useQuery = (0, import_createUseQuery.createUseQuery)({
41
49
  DisabledContext,
42
- disableInlineQueries
50
+ customQueries
43
51
  });
44
52
  function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
45
53
  const disabled = (0, import_react2.use)(DisabledContext), authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
@@ -50,7 +58,7 @@ function createZeroClient({
50
58
  permission,
51
59
  objOrId
52
60
  ));
53
- })(), [data, status] = useQuery(query, {
61
+ })(), [data, status] = (0, import_react.useQuery)(query, {
54
62
  enabled: !!(enabled && permission && authData && objOrId)
55
63
  });
56
64
  debug && console.info(
@@ -73,29 +81,33 @@ function createZeroClient({
73
81
  authData,
74
82
  can: permissionsHelpers.can
75
83
  })), [models, authData]);
76
- return disable ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
77
- import_react.ZeroProvider,
78
- {
79
- schema,
80
- kvStore: "mem",
81
- onError: (error) => {
82
- console.error("Zero Error:", error), zeroEvents.emit({
83
- type: "error",
84
- message: error
85
- });
86
- },
87
- mutators,
88
- ...props,
89
- children: [
90
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
91
- children
92
- ]
93
- }
94
- ) });
84
+ return disable ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, { schema, kvStore: "mem", mutators, ...props, children: [
85
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectionMonitor, { zeroEvents }),
87
+ children
88
+ ] }) });
95
89
  }, SetZeroInstance = () => {
96
90
  const zero2 = (0, import_react.useZero)();
97
91
  return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
98
- };
92
+ }, ConnectionMonitor = (0, import_react2.memo)(
93
+ ({
94
+ zeroEvents: zeroEvents2
95
+ }) => {
96
+ const state = (0, import_react.useConnectionState)(), prevState = (0, import_react2.useRef)(state.name);
97
+ return (0, import_react2.useEffect)(() => {
98
+ if (state.name !== prevState.current) {
99
+ const reason = "reason" in state ? state.reason : "";
100
+ if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
101
+ const message = typeof reason == "string" ? reason : state.name;
102
+ zeroEvents2.emit({
103
+ type: "error",
104
+ message
105
+ });
106
+ }
107
+ }
108
+ }, [state, zeroEvents2]), null;
109
+ }
110
+ );
99
111
  return {
100
112
  zeroEvents,
101
113
  ProvideZero,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZeroClient.tsx"],
4
- "mappings": "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",
5
- "names": ["import_react", "zero"]
4
+ "mappings": "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",
5
+ "names": ["import_react", "zeroUseQuery", "zero", "zeroEvents"]
6
6
  }
@@ -26,8 +26,9 @@ __export(createZeroClient_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(createZeroClient_exports);
28
28
  var import_jsx_runtime = require("react/jsx-runtime"),
29
+ import_zero = require("@rocicorp/zero"),
29
30
  import_react = require("@rocicorp/zero/react"),
30
- import_helpers = require("@vxrn/helpers"),
31
+ import_helpers = require("@take-out/helpers"),
31
32
  import_react2 = require("react"),
32
33
  import_createPermissions = require("./createPermissions.native.js"),
33
34
  import_createUseQuery = require("./createUseQuery.native.js"),
@@ -39,24 +40,30 @@ function createZeroClient(param) {
39
40
  var {
40
41
  schema,
41
42
  models,
42
- groupedQueries,
43
- disableInlineQueries = !1
43
+ groupedQueries
44
44
  } = param;
45
45
  (0, import_state.setSchema)(schema);
46
- var _iteratorNormalCompletion = !0,
46
+ var wrappedNamespaces = {},
47
+ _iteratorNormalCompletion = !0,
47
48
  _didIteratorError = !1,
48
49
  _iteratorError = void 0;
49
50
  try {
50
51
  for (var _iterator = Object.entries(groupedQueries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
51
- var [namespace, queries] = _step.value,
52
- _iteratorNormalCompletion1 = !0,
52
+ var [namespace, queries] = _step.value;
53
+ wrappedNamespaces[namespace] = {};
54
+ var _iteratorNormalCompletion1 = !0,
53
55
  _didIteratorError1 = !1,
54
56
  _iteratorError1 = void 0;
55
57
  try {
56
- for (var _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
57
- var [name, fn] = _step1.value;
58
- (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`);
59
- }
58
+ for (var _loop = function () {
59
+ var [name, fn] = _step1.value;
60
+ (0, import_queryRegistry.registerQuery)(fn, `${namespace}.${name}`), wrappedNamespaces[namespace][name] = (0, import_zero.defineQuery)(function (param2) {
61
+ var {
62
+ args
63
+ } = param2;
64
+ return fn(args);
65
+ });
66
+ }, _iterator1 = Object.entries(queries)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop();
60
67
  } catch (err) {
61
68
  _didIteratorError1 = !0, _iteratorError1 = err;
62
69
  } finally {
@@ -76,13 +83,15 @@ function createZeroClient(param) {
76
83
  if (_didIteratorError) throw _iteratorError;
77
84
  }
78
85
  }
79
- var DisabledContext = /* @__PURE__ */(0, import_react2.createContext)(!1),
86
+ var customQueries = (0, import_zero.defineQueries)(wrappedNamespaces),
87
+ DisabledContext = /* @__PURE__ */(0, import_react2.createContext)(!1),
80
88
  modelWritePermissions = (0, import_helpers.mapObject)(models, function (val) {
81
89
  return val.permissions;
82
90
  }),
83
91
  latestZeroInstance = null,
84
92
  zero = new Proxy({}, {
85
93
  get(_, key) {
94
+ if (latestZeroInstance === null) throw new Error("Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.");
86
95
  return Reflect.get(latestZeroInstance, key, latestZeroInstance);
87
96
  }
88
97
  }),
@@ -97,7 +106,7 @@ function createZeroClient(param) {
97
106
  },
98
107
  useQuery = (0, import_createUseQuery.createUseQuery)({
99
108
  DisabledContext,
100
- disableInlineQueries
109
+ customQueries
101
110
  });
102
111
  function usePermission(table, objOrId) {
103
112
  var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
@@ -111,7 +120,7 @@ function createZeroClient(param) {
111
120
  return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
112
121
  });
113
122
  }(),
114
- [data, status] = useQuery(query, {
123
+ [data, status] = (0, import_react.useQuery)(query, {
115
124
  enabled: !!(enabled && permission && authData && objOrId)
116
125
  });
117
126
  debug && console.info("usePermission()", {
@@ -145,22 +154,37 @@ function createZeroClient(param) {
145
154
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react.ZeroProvider, {
146
155
  schema,
147
156
  kvStore: "mem",
148
- onError: function (error) {
149
- console.error("Zero Error:", error), zeroEvents.emit({
150
- type: "error",
151
- message: error
152
- });
153
- },
154
157
  mutators,
155
158
  ...props,
156
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), children]
159
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(SetZeroInstance, {}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(ConnectionMonitor, {
160
+ zeroEvents
161
+ }), children]
157
162
  })
158
163
  });
159
164
  },
160
165
  SetZeroInstance = function () {
161
166
  var zero2 = (0, import_react.useZero)();
162
167
  return zero2 !== latestZeroInstance && (latestZeroInstance = zero2), null;
163
- };
168
+ },
169
+ ConnectionMonitor = /* @__PURE__ */(0, import_react2.memo)(function (param2) {
170
+ var {
171
+ zeroEvents: zeroEvents2
172
+ } = param2,
173
+ state = (0, import_react.useConnectionState)(),
174
+ prevState = (0, import_react2.useRef)(state.name);
175
+ return (0, import_react2.useEffect)(function () {
176
+ if (state.name !== prevState.current) {
177
+ var reason = "reason" in state ? state.reason : "";
178
+ if (prevState.current = state.name, state.name === "error" || state.name === "needs-auth") {
179
+ var message = typeof reason == "string" ? reason : state.name;
180
+ zeroEvents2.emit({
181
+ type: "error",
182
+ message
183
+ });
184
+ }
185
+ }
186
+ }, [state, zeroEvents2]), null;
187
+ });
164
188
  return {
165
189
  zeroEvents,
166
190
  ProvideZero,
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_prettyFormatZeroQuery","import_queryRegistry","import_state","param","schema","models","groupedQueries","disableInlineQueries","setSchema","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","name","fn","registerQuery","err","return","DisabledContext","createContext","modelWritePermissions","mapObject","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","createPermissions","environment","zeroEvents","createEmitter","AuthDataContext","useAuthData","use","useQuery","createUseQuery","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","prettyFormatZeroQuery","result","allowed","ProvideZero","param2","children","authDataIn","disable","props","mutators","useMemo","setAuthData","createMutators","can","jsx","Provider","jsxs","ZeroProvider","kvStore","onError","error","emit"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createZeroClient_exports","__export","createZeroClient","module","exports","import_jsx_runtime","require","import_zero","import_react","import_helpers","import_react2","import_createPermissions","import_createUseQuery","import_createMutators","import_prettyFormatZeroQuery","import_queryRegistry","import_state","param","schema","models","groupedQueries","setSchema","wrappedNamespaces","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","Symbol","iterator","_step","next","done","namespace","queries","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop","name","fn","_step1","registerQuery","defineQuery","param2","args","_iterator1","err","return","customQueries","defineQueries","DisabledContext","createContext","modelWritePermissions","mapObject","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Error","Reflect","permissionsHelpers","createPermissions","environment","zeroEvents","createEmitter","AuthDataContext","useAuthData","use","useQuery","createUseQuery","usePermission","table","objOrId","enabled","arguments","length","debug","disabled","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","prettyFormatZeroQuery","result","allowed","ProvideZero","children","authDataIn","disable","props","mutators","useMemo","setAuthData","createMutators","can","jsx","Provider","jsxs","ZeroProvider","kvStore","SetZeroInstance","ConnectionMonitor"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -23,9 +23,11 @@ __export(createZeroServer_exports, {
23
23
  createZeroServer: () => createZeroServer
24
24
  });
25
25
  module.exports = __toCommonJS(createZeroServer_exports);
26
- var import_pg = require("@rocicorp/zero/pg"),
26
+ var import_zero = require("@rocicorp/zero"),
27
+ import_pg = require("@rocicorp/zero/pg"),
28
+ import_server = require("@rocicorp/zero/server"),
27
29
  import_pg2 = require("@rocicorp/zero/server/adapters/pg"),
28
- import_helpers = require("@vxrn/helpers"),
30
+ import_helpers = require("@take-out/helpers"),
29
31
  import_pg3 = require("pg"),
30
32
  import_createPermissions = require("./createPermissions.cjs"),
31
33
  import_createMutators = require("./helpers/createMutators.cjs"),
@@ -36,12 +38,16 @@ function createZeroServer({
36
38
  database,
37
39
  schema,
38
40
  models,
39
- syncedQueries
41
+ queries
40
42
  }) {
41
43
  (0, import_state.setSchema)(schema);
42
44
  const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'),
43
45
  zeroDb = (0, import_pg2.zeroNodePg)(schema, new import_pg3.Pool({
44
- connectionString: dbString
46
+ connectionString: dbString,
47
+ // handle self-signed certificates in production
48
+ ssl: dbString.includes("sslmode=require") ? {
49
+ rejectUnauthorized: !1
50
+ } : void 0
45
51
  })),
46
52
  permissions = (0, import_createPermissions.createPermissions)({
47
53
  environment: "server",
@@ -76,22 +82,16 @@ function createZeroServer({
76
82
  asyncTasks
77
83
  };
78
84
  },
79
- queryLookup = /* @__PURE__ */new Map();
80
- if (syncedQueries) for (const [namespace, queries] of Object.entries(syncedQueries)) for (const [queryName, syncedQuery] of Object.entries(queries)) queryLookup.set(`${namespace}.${queryName}`, syncedQuery);
81
- const handleQueryRequest = async ({
85
+ handleQueryRequest = async ({
82
86
  authData,
83
87
  request
84
88
  }) => {
85
- function getQuery(name, args) {
86
- const q = queryLookup.get(name);
87
- if (!q) throw new Error(`No such query: ${name}`);
88
- return {
89
- // @ts-expect-error zero bug atm
90
- query: q(...args)
91
- };
92
- }
89
+ if (!queries) throw new Error("No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option.");
93
90
  return (0, import_state.setAuthData)(authData || {}), {
94
- response: await (0, import_pg.handleGetQueriesRequest)(getQuery, schema, request)
91
+ response: await (0, import_server.handleQueryRequest)((name, args) => (0, import_zero.mustGetQuery)(queries, name).fn({
92
+ args,
93
+ ctx: authData
94
+ }), schema, request)
95
95
  };
96
96
  },
97
97
  mutate = async (run, authData) => {
@@ -17,19 +17,21 @@ __export(createZeroServer_exports, {
17
17
  createZeroServer: () => createZeroServer
18
18
  });
19
19
  module.exports = __toCommonJS(createZeroServer_exports);
20
- var import_pg = require("@rocicorp/zero/pg"), import_pg2 = require("@rocicorp/zero/server/adapters/pg"), import_helpers = require("@vxrn/helpers"), import_pg3 = require("pg"), import_createPermissions = require("./createPermissions"), import_createMutators = require("./helpers/createMutators"), import_mutatorContext = require("./helpers/mutatorContext"), import_state = require("./state");
20
+ var import_zero = require("@rocicorp/zero"), import_pg = require("@rocicorp/zero/pg"), import_server = require("@rocicorp/zero/server"), import_pg2 = require("@rocicorp/zero/server/adapters/pg"), import_helpers = require("@take-out/helpers"), import_pg3 = require("pg"), import_createPermissions = require("./createPermissions"), import_createMutators = require("./helpers/createMutators"), import_mutatorContext = require("./helpers/mutatorContext"), import_state = require("./state");
21
21
  function createZeroServer({
22
22
  createServerActions,
23
23
  database,
24
24
  schema,
25
25
  models,
26
- syncedQueries
26
+ queries
27
27
  }) {
28
28
  (0, import_state.setSchema)(schema);
29
29
  const dbString = (0, import_helpers.assertString)(database, 'createZeroServer "database"'), zeroDb = (0, import_pg2.zeroNodePg)(
30
30
  schema,
31
31
  new import_pg3.Pool({
32
- connectionString: dbString
32
+ connectionString: dbString,
33
+ // handle self-signed certificates in production
34
+ ssl: dbString.includes("sslmode=require") ? { rejectUnauthorized: !1 } : void 0
33
35
  })
34
36
  ), permissions = (0, import_createPermissions.createPermissions)({
35
37
  environment: "server",
@@ -59,26 +61,20 @@ function createZeroServer({
59
61
  response,
60
62
  asyncTasks
61
63
  };
62
- }, queryLookup = /* @__PURE__ */ new Map();
63
- if (syncedQueries)
64
- for (const [namespace, queries] of Object.entries(syncedQueries))
65
- for (const [queryName, syncedQuery] of Object.entries(queries))
66
- queryLookup.set(`${namespace}.${queryName}`, syncedQuery);
67
- const handleQueryRequest = async ({
64
+ }, handleQueryRequest = async ({
68
65
  authData,
69
66
  request
70
67
  }) => {
71
- function getQuery(name, args) {
72
- const q = queryLookup.get(name);
73
- if (!q)
74
- throw new Error(`No such query: ${name}`);
75
- return {
76
- // @ts-expect-error zero bug atm
77
- query: q(...args)
78
- };
79
- }
68
+ if (!queries)
69
+ throw new Error(
70
+ "No queries registered with createZeroServer. Pass the syncedQueries registry to createZeroServer via the queries option."
71
+ );
80
72
  return (0, import_state.setAuthData)(authData || {}), {
81
- response: await (0, import_pg.handleGetQueriesRequest)(getQuery, schema, request)
73
+ response: await (0, import_server.handleQueryRequest)(
74
+ (name, args) => (0, import_zero.mustGetQuery)(queries, name).fn({ args, ctx: authData }),
75
+ schema,
76
+ request
77
+ )
82
78
  };
83
79
  }, mutate = async (run, authData) => {
84
80
  const asyncTasks = [], mutators = (0, import_createMutators.createMutators)({