over-zero 0.0.60 → 0.0.62

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 (345) hide show
  1. package/dist/cjs/index.cjs +876 -34
  2. package/dist/cjs/index.cjs.map +1 -0
  3. package/dist/cjs/index.native.cjs +884 -0
  4. package/dist/cjs/index.native.cjs.map +1 -0
  5. package/dist/cjs/server.cjs +531 -11
  6. package/dist/cjs/server.cjs.map +1 -0
  7. package/dist/esm/chunk-H7ZB7VXX.mjs +852 -0
  8. package/dist/esm/chunk-H7ZB7VXX.mjs.map +1 -0
  9. package/dist/esm/index.cjs +884 -0
  10. package/dist/esm/index.cjs.map +1 -0
  11. package/dist/esm/index.d.cts +205 -0
  12. package/dist/esm/index.d.ts +205 -0
  13. package/dist/esm/index.mjs +43 -17
  14. package/dist/esm/index.mjs.map +1 -1
  15. package/dist/esm/index.native.cjs +884 -0
  16. package/dist/esm/index.native.cjs.map +1 -0
  17. package/dist/esm/index.native.d.cts +6 -0
  18. package/dist/esm/index.native.d.ts +6 -0
  19. package/dist/esm/index.native.mjs +43 -0
  20. package/dist/esm/index.native.mjs.map +1 -0
  21. package/{types/createZeroServer.d.ts → dist/esm/server.d.ts} +83 -16
  22. package/dist/esm/server.mjs +511 -2
  23. package/dist/esm/server.mjs.map +1 -1
  24. package/package.json +45 -24
  25. package/src/cli.ts +2 -2
  26. package/src/helpers/createMutators.ts +2 -1
  27. package/src/where.ts +2 -1
  28. package/dist/cjs/cli.cjs +0 -405
  29. package/dist/cjs/cli.js +0 -397
  30. package/dist/cjs/cli.js.map +0 -6
  31. package/dist/cjs/cli.native.js +0 -505
  32. package/dist/cjs/cli.native.js.map +0 -1
  33. package/dist/cjs/createPermissions.cjs +0 -82
  34. package/dist/cjs/createPermissions.js +0 -77
  35. package/dist/cjs/createPermissions.js.map +0 -6
  36. package/dist/cjs/createPermissions.native.js +0 -107
  37. package/dist/cjs/createPermissions.native.js.map +0 -1
  38. package/dist/cjs/createUseQuery.cjs +0 -59
  39. package/dist/cjs/createUseQuery.js +0 -34
  40. package/dist/cjs/createUseQuery.js.map +0 -6
  41. package/dist/cjs/createUseQuery.native.js +0 -70
  42. package/dist/cjs/createUseQuery.native.js.map +0 -1
  43. package/dist/cjs/createZeroClient.cjs +0 -162
  44. package/dist/cjs/createZeroClient.js +0 -126
  45. package/dist/cjs/createZeroClient.js.map +0 -6
  46. package/dist/cjs/createZeroClient.native.js +0 -214
  47. package/dist/cjs/createZeroClient.native.js.map +0 -1
  48. package/dist/cjs/createZeroServer.cjs +0 -148
  49. package/dist/cjs/createZeroServer.js +0 -126
  50. package/dist/cjs/createZeroServer.js.map +0 -6
  51. package/dist/cjs/createZeroServer.native.js +0 -170
  52. package/dist/cjs/createZeroServer.native.js.map +0 -1
  53. package/dist/cjs/helpers/batchQuery.cjs +0 -49
  54. package/dist/cjs/helpers/batchQuery.js +0 -38
  55. package/dist/cjs/helpers/batchQuery.js.map +0 -6
  56. package/dist/cjs/helpers/batchQuery.native.js +0 -49
  57. package/dist/cjs/helpers/batchQuery.native.js.map +0 -1
  58. package/dist/cjs/helpers/createMutators.cjs +0 -89
  59. package/dist/cjs/helpers/createMutators.js +0 -85
  60. package/dist/cjs/helpers/createMutators.js.map +0 -6
  61. package/dist/cjs/helpers/createMutators.native.js +0 -131
  62. package/dist/cjs/helpers/createMutators.native.js.map +0 -1
  63. package/dist/cjs/helpers/didRunPermissionCheck.cjs +0 -30
  64. package/dist/cjs/helpers/didRunPermissionCheck.js +0 -26
  65. package/dist/cjs/helpers/didRunPermissionCheck.js.map +0 -6
  66. package/dist/cjs/helpers/didRunPermissionCheck.native.js +0 -39
  67. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +0 -1
  68. package/dist/cjs/helpers/ensureLoggedIn.cjs +0 -33
  69. package/dist/cjs/helpers/ensureLoggedIn.js +0 -25
  70. package/dist/cjs/helpers/ensureLoggedIn.js.map +0 -6
  71. package/dist/cjs/helpers/ensureLoggedIn.native.js +0 -36
  72. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +0 -1
  73. package/dist/cjs/helpers/getQueryOrMutatorAuthData.cjs +0 -30
  74. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js +0 -24
  75. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js.map +0 -6
  76. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js +0 -33
  77. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js.map +0 -1
  78. package/dist/cjs/helpers/mutatorContext.cjs +0 -40
  79. package/dist/cjs/helpers/mutatorContext.js +0 -36
  80. package/dist/cjs/helpers/mutatorContext.js.map +0 -6
  81. package/dist/cjs/helpers/mutatorContext.native.js +0 -43
  82. package/dist/cjs/helpers/mutatorContext.native.js.map +0 -1
  83. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +0 -107
  84. package/dist/cjs/helpers/prettyFormatZeroQuery.js +0 -92
  85. package/dist/cjs/helpers/prettyFormatZeroQuery.js.map +0 -6
  86. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +0 -119
  87. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +0 -1
  88. package/dist/cjs/helpers/useZeroDebug.cjs +0 -68
  89. package/dist/cjs/helpers/useZeroDebug.js +0 -49
  90. package/dist/cjs/helpers/useZeroDebug.js.map +0 -6
  91. package/dist/cjs/helpers/useZeroDebug.native.js +0 -81
  92. package/dist/cjs/helpers/useZeroDebug.native.js.map +0 -1
  93. package/dist/cjs/index.js +0 -35
  94. package/dist/cjs/index.js.map +0 -6
  95. package/dist/cjs/index.native.js +0 -45
  96. package/dist/cjs/index.native.js.map +0 -1
  97. package/dist/cjs/mutations.cjs +0 -51
  98. package/dist/cjs/mutations.js +0 -44
  99. package/dist/cjs/mutations.js.map +0 -6
  100. package/dist/cjs/mutations.native.js +0 -56
  101. package/dist/cjs/mutations.native.js.map +0 -1
  102. package/dist/cjs/queryRegistry.cjs +0 -33
  103. package/dist/cjs/queryRegistry.js +0 -28
  104. package/dist/cjs/queryRegistry.js.map +0 -6
  105. package/dist/cjs/queryRegistry.native.js +0 -36
  106. package/dist/cjs/queryRegistry.native.js.map +0 -1
  107. package/dist/cjs/resolveQuery.cjs +0 -41
  108. package/dist/cjs/resolveQuery.js +0 -40
  109. package/dist/cjs/resolveQuery.js.map +0 -6
  110. package/dist/cjs/resolveQuery.native.js +0 -46
  111. package/dist/cjs/resolveQuery.native.js.map +0 -1
  112. package/dist/cjs/run.cjs +0 -48
  113. package/dist/cjs/run.js +0 -37
  114. package/dist/cjs/run.js.map +0 -6
  115. package/dist/cjs/run.native.js +0 -52
  116. package/dist/cjs/run.native.js.map +0 -1
  117. package/dist/cjs/server.js +0 -15
  118. package/dist/cjs/server.js.map +0 -6
  119. package/dist/cjs/server.native.js +0 -21
  120. package/dist/cjs/server.native.js.map +0 -1
  121. package/dist/cjs/serverWhere.cjs +0 -29
  122. package/dist/cjs/serverWhere.js +0 -24
  123. package/dist/cjs/serverWhere.js.map +0 -6
  124. package/dist/cjs/serverWhere.native.js +0 -32
  125. package/dist/cjs/serverWhere.native.js.map +0 -1
  126. package/dist/cjs/state.cjs +0 -49
  127. package/dist/cjs/state.js +0 -37
  128. package/dist/cjs/state.js.map +0 -6
  129. package/dist/cjs/state.native.js +0 -54
  130. package/dist/cjs/state.native.js.map +0 -1
  131. package/dist/cjs/types.cjs +0 -16
  132. package/dist/cjs/types.js +0 -14
  133. package/dist/cjs/types.js.map +0 -6
  134. package/dist/cjs/types.native.js +0 -19
  135. package/dist/cjs/types.native.js.map +0 -1
  136. package/dist/cjs/where.cjs +0 -41
  137. package/dist/cjs/where.js +0 -38
  138. package/dist/cjs/where.js.map +0 -6
  139. package/dist/cjs/where.native.js +0 -48
  140. package/dist/cjs/where.native.js.map +0 -1
  141. package/dist/cjs/zeroRunner.cjs +0 -34
  142. package/dist/cjs/zeroRunner.js +0 -32
  143. package/dist/cjs/zeroRunner.js.map +0 -6
  144. package/dist/cjs/zeroRunner.native.js +0 -37
  145. package/dist/cjs/zeroRunner.native.js.map +0 -1
  146. package/dist/cjs/zql.cjs +0 -31
  147. package/dist/cjs/zql.js +0 -26
  148. package/dist/cjs/zql.js.map +0 -6
  149. package/dist/cjs/zql.native.js +0 -35
  150. package/dist/cjs/zql.native.js.map +0 -1
  151. package/dist/esm/cli.js +0 -383
  152. package/dist/esm/cli.js.map +0 -6
  153. package/dist/esm/cli.mjs +0 -384
  154. package/dist/esm/cli.mjs.map +0 -1
  155. package/dist/esm/cli.native.js +0 -481
  156. package/dist/esm/cli.native.js.map +0 -1
  157. package/dist/esm/createPermissions.js +0 -66
  158. package/dist/esm/createPermissions.js.map +0 -6
  159. package/dist/esm/createPermissions.mjs +0 -59
  160. package/dist/esm/createPermissions.mjs.map +0 -1
  161. package/dist/esm/createPermissions.native.js +0 -81
  162. package/dist/esm/createPermissions.native.js.map +0 -1
  163. package/dist/esm/createUseQuery.js +0 -21
  164. package/dist/esm/createUseQuery.js.map +0 -6
  165. package/dist/esm/createUseQuery.mjs +0 -36
  166. package/dist/esm/createUseQuery.mjs.map +0 -1
  167. package/dist/esm/createUseQuery.native.js +0 -44
  168. package/dist/esm/createUseQuery.native.js.map +0 -1
  169. package/dist/esm/createZeroClient.js +0 -135
  170. package/dist/esm/createZeroClient.js.map +0 -6
  171. package/dist/esm/createZeroClient.mjs +0 -139
  172. package/dist/esm/createZeroClient.mjs.map +0 -1
  173. package/dist/esm/createZeroClient.native.js +0 -188
  174. package/dist/esm/createZeroClient.native.js.map +0 -1
  175. package/dist/esm/createZeroServer.js +0 -121
  176. package/dist/esm/createZeroServer.js.map +0 -6
  177. package/dist/esm/createZeroServer.mjs +0 -125
  178. package/dist/esm/createZeroServer.mjs.map +0 -1
  179. package/dist/esm/createZeroServer.native.js +0 -144
  180. package/dist/esm/createZeroServer.native.js.map +0 -1
  181. package/dist/esm/helpers/batchQuery.js +0 -22
  182. package/dist/esm/helpers/batchQuery.js.map +0 -6
  183. package/dist/esm/helpers/batchQuery.mjs +0 -26
  184. package/dist/esm/helpers/batchQuery.mjs.map +0 -1
  185. package/dist/esm/helpers/batchQuery.native.js +0 -23
  186. package/dist/esm/helpers/batchQuery.native.js.map +0 -1
  187. package/dist/esm/helpers/createMutators.js +0 -70
  188. package/dist/esm/helpers/createMutators.js.map +0 -6
  189. package/dist/esm/helpers/createMutators.mjs +0 -66
  190. package/dist/esm/helpers/createMutators.mjs.map +0 -1
  191. package/dist/esm/helpers/createMutators.native.js +0 -105
  192. package/dist/esm/helpers/createMutators.native.js.map +0 -1
  193. package/dist/esm/helpers/didRunPermissionCheck.js +0 -10
  194. package/dist/esm/helpers/didRunPermissionCheck.js.map +0 -6
  195. package/dist/esm/helpers/didRunPermissionCheck.mjs +0 -6
  196. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +0 -1
  197. package/dist/esm/helpers/didRunPermissionCheck.native.js +0 -12
  198. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +0 -1
  199. package/dist/esm/helpers/ensureLoggedIn.js +0 -10
  200. package/dist/esm/helpers/ensureLoggedIn.js.map +0 -6
  201. package/dist/esm/helpers/ensureLoggedIn.mjs +0 -10
  202. package/dist/esm/helpers/ensureLoggedIn.mjs.map +0 -1
  203. package/dist/esm/helpers/ensureLoggedIn.native.js +0 -10
  204. package/dist/esm/helpers/ensureLoggedIn.native.js.map +0 -1
  205. package/dist/esm/helpers/getQueryOrMutatorAuthData.js +0 -9
  206. package/dist/esm/helpers/getQueryOrMutatorAuthData.js.map +0 -6
  207. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs +0 -7
  208. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs.map +0 -1
  209. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js +0 -7
  210. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js.map +0 -1
  211. package/dist/esm/helpers/mutatorContext.js +0 -20
  212. package/dist/esm/helpers/mutatorContext.js.map +0 -6
  213. package/dist/esm/helpers/mutatorContext.mjs +0 -15
  214. package/dist/esm/helpers/mutatorContext.mjs.map +0 -1
  215. package/dist/esm/helpers/mutatorContext.native.js +0 -15
  216. package/dist/esm/helpers/mutatorContext.native.js.map +0 -1
  217. package/dist/esm/helpers/prettyFormatZeroQuery.js +0 -76
  218. package/dist/esm/helpers/prettyFormatZeroQuery.js.map +0 -6
  219. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +0 -84
  220. package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +0 -1
  221. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +0 -93
  222. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +0 -1
  223. package/dist/esm/helpers/useZeroDebug.js +0 -35
  224. package/dist/esm/helpers/useZeroDebug.js.map +0 -6
  225. package/dist/esm/helpers/useZeroDebug.mjs +0 -45
  226. package/dist/esm/helpers/useZeroDebug.mjs.map +0 -1
  227. package/dist/esm/helpers/useZeroDebug.native.js +0 -55
  228. package/dist/esm/helpers/useZeroDebug.native.js.map +0 -1
  229. package/dist/esm/index.js +0 -20
  230. package/dist/esm/index.js.map +0 -6
  231. package/dist/esm/index.native.js +0 -17
  232. package/dist/esm/index.native.js.map +0 -1
  233. package/dist/esm/mutations.js +0 -28
  234. package/dist/esm/mutations.js.map +0 -6
  235. package/dist/esm/mutations.mjs +0 -28
  236. package/dist/esm/mutations.mjs.map +0 -1
  237. package/dist/esm/mutations.native.js +0 -30
  238. package/dist/esm/mutations.native.js.map +0 -1
  239. package/dist/esm/queryRegistry.js +0 -12
  240. package/dist/esm/queryRegistry.js.map +0 -6
  241. package/dist/esm/queryRegistry.mjs +0 -9
  242. package/dist/esm/queryRegistry.mjs.map +0 -1
  243. package/dist/esm/queryRegistry.native.js +0 -9
  244. package/dist/esm/queryRegistry.native.js.map +0 -1
  245. package/dist/esm/resolveQuery.js +0 -24
  246. package/dist/esm/resolveQuery.js.map +0 -6
  247. package/dist/esm/resolveQuery.mjs +0 -18
  248. package/dist/esm/resolveQuery.mjs.map +0 -1
  249. package/dist/esm/resolveQuery.native.js +0 -20
  250. package/dist/esm/resolveQuery.native.js.map +0 -1
  251. package/dist/esm/run.js +0 -22
  252. package/dist/esm/run.js.map +0 -6
  253. package/dist/esm/run.mjs +0 -24
  254. package/dist/esm/run.mjs.map +0 -1
  255. package/dist/esm/run.native.js +0 -25
  256. package/dist/esm/run.native.js.map +0 -1
  257. package/dist/esm/server.js +0 -2
  258. package/dist/esm/server.js.map +0 -6
  259. package/dist/esm/server.native.js +0 -2
  260. package/dist/esm/server.native.js.map +0 -1
  261. package/dist/esm/serverWhere.js +0 -8
  262. package/dist/esm/serverWhere.js.map +0 -6
  263. package/dist/esm/serverWhere.mjs +0 -6
  264. package/dist/esm/serverWhere.mjs.map +0 -1
  265. package/dist/esm/serverWhere.native.js +0 -6
  266. package/dist/esm/serverWhere.native.js.map +0 -1
  267. package/dist/esm/state.js +0 -21
  268. package/dist/esm/state.js.map +0 -6
  269. package/dist/esm/state.mjs +0 -22
  270. package/dist/esm/state.mjs.map +0 -1
  271. package/dist/esm/state.native.js +0 -24
  272. package/dist/esm/state.native.js.map +0 -1
  273. package/dist/esm/types.js +0 -1
  274. package/dist/esm/types.js.map +0 -6
  275. package/dist/esm/types.mjs +0 -2
  276. package/dist/esm/types.mjs.map +0 -1
  277. package/dist/esm/types.native.js +0 -2
  278. package/dist/esm/types.native.js.map +0 -1
  279. package/dist/esm/where.js +0 -23
  280. package/dist/esm/where.js.map +0 -6
  281. package/dist/esm/where.mjs +0 -17
  282. package/dist/esm/where.mjs.map +0 -1
  283. package/dist/esm/where.native.js +0 -21
  284. package/dist/esm/where.native.js.map +0 -1
  285. package/dist/esm/zeroRunner.js +0 -16
  286. package/dist/esm/zeroRunner.js.map +0 -6
  287. package/dist/esm/zeroRunner.mjs +0 -10
  288. package/dist/esm/zeroRunner.mjs.map +0 -1
  289. package/dist/esm/zeroRunner.native.js +0 -10
  290. package/dist/esm/zeroRunner.native.js.map +0 -1
  291. package/dist/esm/zql.js +0 -10
  292. package/dist/esm/zql.js.map +0 -6
  293. package/dist/esm/zql.mjs +0 -8
  294. package/dist/esm/zql.mjs.map +0 -1
  295. package/dist/esm/zql.native.js +0 -9
  296. package/dist/esm/zql.native.js.map +0 -1
  297. package/types/cli.d.ts +0 -3
  298. package/types/cli.d.ts.map +0 -1
  299. package/types/createPermissions.d.ts +0 -10
  300. package/types/createPermissions.d.ts.map +0 -1
  301. package/types/createUseQuery.d.ts +0 -20
  302. package/types/createUseQuery.d.ts.map +0 -1
  303. package/types/createZeroClient.d.ts +0 -35
  304. package/types/createZeroClient.d.ts.map +0 -1
  305. package/types/createZeroServer.d.ts.map +0 -1
  306. package/types/helpers/batchQuery.d.ts +0 -7
  307. package/types/helpers/batchQuery.d.ts.map +0 -1
  308. package/types/helpers/createMutators.d.ts +0 -10
  309. package/types/helpers/createMutators.d.ts.map +0 -1
  310. package/types/helpers/didRunPermissionCheck.d.ts +0 -4
  311. package/types/helpers/didRunPermissionCheck.d.ts.map +0 -1
  312. package/types/helpers/ensureLoggedIn.d.ts +0 -3
  313. package/types/helpers/ensureLoggedIn.d.ts.map +0 -1
  314. package/types/helpers/getQueryOrMutatorAuthData.d.ts +0 -3
  315. package/types/helpers/getQueryOrMutatorAuthData.d.ts.map +0 -1
  316. package/types/helpers/mutatorContext.d.ts +0 -5
  317. package/types/helpers/mutatorContext.d.ts.map +0 -1
  318. package/types/helpers/prettyFormatZeroQuery.d.ts +0 -3
  319. package/types/helpers/prettyFormatZeroQuery.d.ts.map +0 -1
  320. package/types/helpers/useZeroDebug.d.ts +0 -3
  321. package/types/helpers/useZeroDebug.d.ts.map +0 -1
  322. package/types/index.d.ts +0 -17
  323. package/types/index.d.ts.map +0 -1
  324. package/types/mutations.d.ts +0 -20
  325. package/types/mutations.d.ts.map +0 -1
  326. package/types/queryRegistry.d.ts +0 -3
  327. package/types/queryRegistry.d.ts.map +0 -1
  328. package/types/resolveQuery.d.ts +0 -11
  329. package/types/resolveQuery.d.ts.map +0 -1
  330. package/types/run.d.ts +0 -7
  331. package/types/run.d.ts.map +0 -1
  332. package/types/server.d.ts +0 -2
  333. package/types/server.d.ts.map +0 -1
  334. package/types/serverWhere.d.ts +0 -5
  335. package/types/serverWhere.d.ts.map +0 -1
  336. package/types/state.d.ts +0 -8
  337. package/types/state.d.ts.map +0 -1
  338. package/types/types.d.ts +0 -78
  339. package/types/types.d.ts.map +0 -1
  340. package/types/where.d.ts +0 -6
  341. package/types/where.d.ts.map +0 -1
  342. package/types/zeroRunner.d.ts +0 -6
  343. package/types/zeroRunner.d.ts.map +0 -1
  344. package/types/zql.d.ts +0 -3
  345. package/types/zql.d.ts.map +0 -1
@@ -1,42 +1,884 @@
1
+ "use strict";
1
2
  var __defProp = Object.defineProperty;
2
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
6
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ batchQuery: () => batchQuery,
24
+ createMutators: () => createMutators,
25
+ createPermissions: () => createPermissions,
26
+ createUseQuery: () => createUseQuery,
27
+ createZeroClient: () => createZeroClient,
28
+ ensureLoggedIn: () => ensureLoggedIn,
29
+ getQueryName: () => getQueryName,
30
+ getWhereTableName: () => getWhereTableName,
31
+ isInZeroMutation: () => isInZeroMutation,
32
+ mutations: () => mutations,
33
+ mutatorContext: () => mutatorContext,
34
+ registerQuery: () => registerQuery,
35
+ resolveQuery: () => resolveQuery,
36
+ run: () => run,
37
+ runWithContext: () => runWithContext,
38
+ serverWhere: () => serverWhere,
39
+ setRunner: () => setRunner,
40
+ where: () => where,
41
+ zql: () => zql2
42
+ });
43
+ module.exports = __toCommonJS(src_exports);
44
+
45
+ // src/createPermissions.ts
46
+ var import_helpers5 = require("@take-out/helpers");
47
+
48
+ // src/helpers/didRunPermissionCheck.ts
49
+ var import_helpers = require("@take-out/helpers");
50
+ var PermissionCheckRan = (0, import_helpers.globalValue)(
51
+ `over-zero:permissions-check`,
52
+ () => /* @__PURE__ */ new WeakMap()
53
+ );
54
+ var getDidRunPermissionCheck = (ctx) => {
55
+ return PermissionCheckRan.get(ctx);
56
+ };
57
+ var setDidRunPermissionCheck = (ctx) => {
58
+ return PermissionCheckRan.set(ctx, true);
59
+ };
60
+
61
+ // src/helpers/mutatorContext.ts
62
+ var import_helpers2 = require("@take-out/helpers");
63
+ var asyncContext = (0, import_helpers2.createAsyncContext)();
64
+ function mutatorContext() {
65
+ const currentContext = asyncContext.get();
66
+ if (!currentContext) {
67
+ throw new Error("mutatorContext must be called within a mutator");
68
+ }
69
+ return currentContext;
70
+ }
71
+ function isInZeroMutation() {
72
+ return !!asyncContext.get();
73
+ }
74
+ function runWithContext(context, fn) {
75
+ return asyncContext.run(context, fn);
76
+ }
77
+
78
+ // src/helpers/prettyFormatZeroQuery.ts
79
+ var import_helpers3 = require("@take-out/helpers");
80
+ var prettyFormatZeroQuery = (query, mode = "full") => {
81
+ const astObject = query["_completeAst"]?.();
82
+ if (!astObject) return "";
83
+ if (mode === "minimal") {
84
+ return prettyFormatMinimal(astObject);
85
+ }
86
+ return prettyFormatFull(astObject);
87
+ };
88
+ var prettyFormatFull = (astObject, indent = 0) => {
89
+ if (!astObject || !astObject.table) return "";
90
+ const spaces = " ".repeat(indent);
91
+ let query = astObject.table;
92
+ let hasChainedMethods = false;
93
+ if (astObject.where) {
94
+ const whereClause = formatWhere(astObject.where);
95
+ if (hasChainedMethods) {
96
+ query += `
97
+ ${spaces} ${whereClause}`;
98
+ } else {
99
+ query += whereClause;
100
+ hasChainedMethods = true;
101
+ }
102
+ }
103
+ if (astObject.limit) {
104
+ const limitClause = `.limit(${astObject.limit})`;
105
+ if (hasChainedMethods) {
106
+ query += `
107
+ ${spaces} ${limitClause}`;
108
+ } else {
109
+ query += limitClause;
110
+ hasChainedMethods = true;
111
+ }
112
+ }
113
+ if (astObject.orderBy && astObject.orderBy.length > 0) {
114
+ const orderClauses = astObject.orderBy.map(([field, direction]) => `${field}, ${direction}`).join(", ");
115
+ const orderByClause = `.orderBy(${orderClauses})`;
116
+ if (hasChainedMethods) {
117
+ query += `
118
+ ${spaces} ${orderByClause}`;
119
+ } else {
120
+ query += orderByClause;
121
+ hasChainedMethods = true;
122
+ }
123
+ }
124
+ if (astObject.related && astObject.related.length > 0) {
125
+ astObject.related.forEach((rel) => {
126
+ if (rel.subquery) {
127
+ const alias = rel.subquery.alias || rel.subquery.table;
128
+ const subQuery = prettyFormatFull(rel.subquery, indent + 1);
129
+ query += `
130
+ ${spaces} .related(${alias}, q => q.${subQuery}`;
131
+ }
132
+ });
133
+ const closingParens = ")".repeat(astObject.related.length);
134
+ query += `
135
+ ${spaces}${closingParens}`;
136
+ }
137
+ return query;
138
+ };
139
+ var prettyFormatMinimal = (astObject) => {
140
+ if (!astObject || !astObject.table) return "";
141
+ let query = astObject.table;
142
+ if (astObject.where) {
143
+ query += formatWhere(astObject.where).replace(".where(", "(");
144
+ }
145
+ if (astObject.related && astObject.related.length > 0) {
146
+ const subQueries = collectSubQueryTables(astObject.related);
147
+ const count = subQueries.length;
148
+ const tableNames = subQueries.join(", ");
149
+ query += ` (+${count}: ${(0, import_helpers3.ellipsis)(tableNames, 30)})`;
150
+ }
151
+ return query;
152
+ };
153
+ var collectSubQueryTables = (related) => {
154
+ const tables = [];
155
+ related.forEach((rel) => {
156
+ if (rel.subquery) {
157
+ const tableName = rel.subquery.alias || rel.subquery.table;
158
+ tables.push(tableName);
159
+ if (rel.subquery.related && rel.subquery.related.length > 0) {
160
+ tables.push(...collectSubQueryTables(rel.subquery.related));
161
+ }
162
+ }
163
+ });
164
+ return tables;
165
+ };
166
+ var formatWhere = (where2) => {
167
+ if (!where2) return "";
168
+ if (where2.type === "simple") {
169
+ const column = where2.left?.name || where2.left;
170
+ const value = where2.right?.value !== void 0 ? where2.right.value : where2.right;
171
+ const op = where2.op || "=";
172
+ if (column === "id" && op === "=" && (typeof value === "string" || typeof value === "number")) {
173
+ return `(${value})`;
174
+ }
175
+ if (op === "=") {
176
+ return `.where(${column}, ${value})`;
177
+ }
178
+ return `.where(${column}, ${op}, ${value})`;
179
+ }
180
+ if (where2.type === "and" && where2.conditions) {
181
+ let result = "";
182
+ where2.conditions.forEach((condition, index) => {
183
+ if (index === 0) {
184
+ result += formatWhere(condition);
185
+ } else {
186
+ result += `.and(${formatWhere(condition).slice(1)})`;
187
+ }
9
188
  });
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
189
+ return result;
190
+ }
191
+ if (where2.type === "or" && where2.conditions) {
192
+ let result = "";
193
+ where2.conditions.forEach((condition, index) => {
194
+ if (index === 0) {
195
+ result += formatWhere(condition);
196
+ } else {
197
+ result += `.or(${formatWhere(condition).slice(1)})`;
198
+ }
15
199
  });
16
- return to;
17
- },
18
- __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
20
- value: !0
21
- }), mod);
22
- var index_exports = {};
23
- __export(index_exports, {
24
- run: () => import_run.run,
25
- setRunner: () => import_zeroRunner.setRunner
200
+ return result;
201
+ }
202
+ return "";
203
+ };
204
+
205
+ // src/state.ts
206
+ var import_zero = require("@rocicorp/zero");
207
+ var schema = null;
208
+ var zql = null;
209
+ var authData;
210
+ var errMessage = `Haven't called createZeroClient or createZeroServer yet!`;
211
+ var getZQL = () => {
212
+ if (!zql) throw new Error(errMessage);
213
+ return zql;
214
+ };
215
+ var setSchema = (_) => {
216
+ schema = _;
217
+ zql = (0, import_zero.createBuilder)(_);
218
+ };
219
+ var getAuthData = () => {
220
+ return authData || null;
221
+ };
222
+ var setAuthData = (_) => {
223
+ authData = _;
224
+ };
225
+
226
+ // src/where.ts
227
+ var import_constants = require("@tamagui/constants");
228
+ var import_helpers4 = require("@take-out/helpers");
229
+
230
+ // src/helpers/getQueryOrMutatorAuthData.ts
231
+ function getQueryOrMutatorAuthData() {
232
+ if (isInZeroMutation()) {
233
+ return mutatorContext().authData;
234
+ }
235
+ return getAuthData();
236
+ }
237
+
238
+ // src/where.ts
239
+ function where(a, b, isServerOnly = false) {
240
+ const whereFn = b || a;
241
+ const wrappedWhereFn = ((a2, b2 = getQueryOrMutatorAuthData()) => {
242
+ if (!import_constants.isServer && isServerOnly) {
243
+ return a2.and();
244
+ }
245
+ const result = whereFn(a2, b2);
246
+ if (typeof result === "boolean") {
247
+ if (result) {
248
+ return a2.cmpLit(0, "=", 0);
249
+ } else {
250
+ return a2.cmpLit(1, "=", 0);
251
+ }
252
+ }
253
+ return result;
254
+ });
255
+ if (b) {
256
+ WhereTableNameMap.set(wrappedWhereFn, a);
257
+ }
258
+ return wrappedWhereFn;
259
+ }
260
+ var WhereTableNameMap = (0, import_helpers4.globalValue)(
261
+ `over-zero:where-table-map`,
262
+ () => /* @__PURE__ */ new WeakMap()
263
+ );
264
+ function getWhereTableName(where2) {
265
+ return WhereTableNameMap.get(where2);
266
+ }
267
+
268
+ // src/createPermissions.ts
269
+ function createPermissions({
270
+ environment,
271
+ schema: schema2
272
+ }) {
273
+ function buildPermissionQuery(authData2, eb, permissionWhere, objOrId) {
274
+ const tableName = getWhereTableName(permissionWhere);
275
+ if (!tableName) {
276
+ throw new Error(`Must use PermissionWhere for buildPermissionQuery`);
277
+ }
278
+ const tableSchema = schema2.tables[tableName];
279
+ if (!tableSchema) {
280
+ throw new Error(`No schema?`);
281
+ }
282
+ const primaryKeys = tableSchema.primaryKey;
283
+ const permissionReturn = permissionWhere(eb, authData2);
284
+ if (permissionReturn == null) {
285
+ throw new Error(`No permission defined for ${tableName}`);
286
+ }
287
+ if (permissionReturn === true) {
288
+ return eb.cmpLit(true, "=", true);
289
+ }
290
+ if (permissionReturn === false) {
291
+ return eb.cmpLit(true, "=", false);
292
+ }
293
+ const primaryKeyWheres = [];
294
+ for (const key of primaryKeys) {
295
+ const value = typeof objOrId === "string" ? objOrId : objOrId[key];
296
+ primaryKeyWheres.push(eb.cmp(key, value));
297
+ }
298
+ return eb.and(permissionReturn, ...primaryKeyWheres);
299
+ }
300
+ const can = async (where2, obj) => {
301
+ if (environment === "server") {
302
+ const ctx = mutatorContext();
303
+ const tableName = getWhereTableName(where2);
304
+ if (!tableName) {
305
+ throw new Error(`Must use where('table') style where to pass to can()`);
306
+ }
307
+ await ensurePermission(ctx.tx, ctx.authData, tableName, where2, obj);
308
+ setDidRunPermissionCheck(ctx);
309
+ }
310
+ };
311
+ async function ensurePermission(tx, authData2, tableName, where2, obj) {
312
+ if (authData2?.role === "admin") {
313
+ return;
314
+ }
315
+ const zqlBuilder = getZQL();
316
+ const queryBase = zqlBuilder[tableName];
317
+ let query = null;
318
+ try {
319
+ query = queryBase.where((eb) => {
320
+ return buildPermissionQuery(authData2, eb, where2, obj);
321
+ }).one();
322
+ (0, import_helpers5.ensure)(await tx.run(query));
323
+ } catch (err) {
324
+ const errorTitle = `${tableName} with auth id: ${authData2?.id}`;
325
+ if (err instanceof import_helpers5.EnsureError) {
326
+ let msg = `[permission] \u{1F6AB} Not Allowed: ${errorTitle}`;
327
+ if (process.env.NODE_ENV === "development" && query) {
328
+ msg += `
329
+ ${prettyFormatZeroQuery(query)}`;
330
+ }
331
+ throw new Error(msg);
332
+ }
333
+ throw new Error(`Error running permission ${errorTitle}
334
+ ${err}`);
335
+ }
336
+ }
337
+ return {
338
+ can,
339
+ buildPermissionQuery
340
+ };
341
+ }
342
+
343
+ // src/queryRegistry.ts
344
+ var queryNameRegistry = /* @__PURE__ */ new WeakMap();
345
+ function registerQuery(fn, name) {
346
+ queryNameRegistry.set(fn, name);
347
+ }
348
+ function getQueryName(fn) {
349
+ return queryNameRegistry.get(fn);
350
+ }
351
+
352
+ // src/helpers/batchQuery.ts
353
+ var import_helpers6 = require("@take-out/helpers");
354
+ async function batchQuery(q, mapper, {
355
+ chunk,
356
+ pause = 0,
357
+ stopAfter = 1e5
358
+ } = { chunk: 20 }) {
359
+ let hasMore = true;
360
+ let last = null;
361
+ let iterations = 0;
362
+ while (hasMore) {
363
+ let query = q.limit(chunk);
364
+ if (last) {
365
+ query = query.start(last);
366
+ }
367
+ const results = await query.run({ type: "complete" });
368
+ await mapper(results);
369
+ if (results.length < chunk) {
370
+ hasMore = false;
371
+ }
372
+ if (iterations > stopAfter) {
373
+ console.error(`[batchQuery] \u203C\uFE0F stopping batch, ran ${stopAfter} chunks`);
374
+ break;
375
+ }
376
+ if (pause) {
377
+ await (0, import_helpers6.sleep)(pause);
378
+ }
379
+ }
380
+ }
381
+
382
+ // src/helpers/createMutators.ts
383
+ var import_constants2 = require("@tamagui/constants");
384
+ var import_helpers7 = require("@take-out/helpers");
385
+ function createMutators({
386
+ environment,
387
+ authData: authData2,
388
+ createServerActions,
389
+ asyncTasks = [],
390
+ can,
391
+ models
392
+ }) {
393
+ const serverActions = createServerActions?.();
394
+ const modelMutators = (0, import_helpers7.mapObject)(models, (val) => val.mutate);
395
+ function withContext(fn) {
396
+ return async (tx, ...args) => {
397
+ const mutationContext = {
398
+ tx,
399
+ authData: authData2,
400
+ environment,
401
+ can,
402
+ server: environment === "server" ? {
403
+ actions: serverActions || {},
404
+ asyncTasks: asyncTasks || {}
405
+ } : void 0
406
+ };
407
+ return await runWithContext(mutationContext, () => {
408
+ return fn(mutationContext, ...args);
409
+ });
410
+ };
411
+ }
412
+ function withDevelopmentLogging(name, fn) {
413
+ if (process.env.NODE_ENV !== "development" && !process.env.IS_TESTING) {
414
+ return fn;
415
+ }
416
+ return async (...args) => {
417
+ const startTime = performance.now();
418
+ try {
419
+ if (import_constants2.isServer) {
420
+ console.info(`[mutator] ${name} start`);
421
+ }
422
+ const result = await fn(...args);
423
+ const duration = (performance.now() - startTime).toFixed(2);
424
+ if (import_constants2.isBrowser) {
425
+ console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`);
426
+ console.info("\u2192", args[1]);
427
+ console.info("\u2190", result);
428
+ console.trace();
429
+ console.groupEnd();
430
+ } else {
431
+ console.info(`[mutator] ${name} completed in ${duration}ms`);
432
+ }
433
+ return result;
434
+ } catch (error) {
435
+ const duration = (performance.now() - startTime).toFixed(2);
436
+ console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`);
437
+ console.error("error:", error);
438
+ console.info("arguments:", JSON.stringify(args[1], null, 2));
439
+ console.info("stack trace:", new Error().stack);
440
+ console.groupEnd();
441
+ throw error;
442
+ }
443
+ };
444
+ }
445
+ function withTimeoutGuard(name, fn, timeoutMs = import_helpers7.time.ms.minutes(1)) {
446
+ return async (...args) => {
447
+ const timeoutPromise = new Promise((_, reject) => {
448
+ setTimeout(() => {
449
+ reject(new Error(`[mutator] ${name} timeout after ${timeoutMs}ms`));
450
+ }, timeoutMs);
451
+ });
452
+ return Promise.race([fn(...args), timeoutPromise]);
453
+ };
454
+ }
455
+ function decorateMutators(modules) {
456
+ const result = {};
457
+ for (const [moduleName, moduleExports] of Object.entries(modules)) {
458
+ result[moduleName] = {};
459
+ for (const [name, exportValue] of Object.entries(moduleExports)) {
460
+ if (typeof exportValue === "function") {
461
+ const fullName = `${moduleName}.${name}`;
462
+ result[moduleName][name] = withDevelopmentLogging(
463
+ fullName,
464
+ withTimeoutGuard(fullName, withContext(exportValue))
465
+ );
466
+ }
467
+ }
468
+ }
469
+ return result;
470
+ }
471
+ return decorateMutators(modelMutators);
472
+ }
473
+
474
+ // src/helpers/ensureLoggedIn.ts
475
+ var import_helpers8 = require("@take-out/helpers");
476
+ var ensureLoggedIn = () => {
477
+ const { authData: authData2 } = mutatorContext();
478
+ (0, import_helpers8.ensure)(authData2, "logged in");
479
+ return authData2;
480
+ };
481
+
482
+ // src/createZeroClient.tsx
483
+ var import_zero2 = require("@rocicorp/zero");
484
+ var import_react4 = require("@rocicorp/zero/react");
485
+ var import_helpers10 = require("@take-out/helpers");
486
+ var import_react5 = require("react");
487
+
488
+ // src/createUseQuery.tsx
489
+ var import_react2 = require("@rocicorp/zero/react");
490
+ var import_react3 = require("react");
491
+
492
+ // src/helpers/useZeroDebug.ts
493
+ var import_helpers9 = require("@take-out/helpers");
494
+ var import_react = require("react");
495
+ var activeQueries = /* @__PURE__ */ new Map();
496
+ var astHistoryByComponent = /* @__PURE__ */ new Map();
497
+ var filterLogs = (table) => false;
498
+ var COLLAPSED = true;
499
+ var AST_CHANGE_THRESHOLD = 4;
500
+ var MAX_AST_HISTORY = 10;
501
+ var useZeroDebug = (query, options, results) => {
502
+ const astObject = query["_completeAst"]?.() ?? query["ast"];
503
+ const table = astObject?.table ?? "unknown";
504
+ const ast = JSON.stringify(astObject, null, 2);
505
+ const queryDisabled = !options || options?.enabled === false;
506
+ const enabled = !queryDisabled && filterLogs(table);
507
+ const stack = new Error().stack;
508
+ const isPermissionQuery = stack?.includes(`usePermission.ts`);
509
+ const id = (0, import_react.useId)();
510
+ const num = activeQueries.get(ast) || 0;
511
+ const shouldLog = enabled && num === 0;
512
+ if (enabled) {
513
+ activeQueries.set(ast, num + 1);
514
+ if (shouldLog) {
515
+ if (COLLAPSED) {
516
+ console.groupCollapsed(
517
+ `${isPermissionQuery ? `\u{1F46E}\u200D\u2642\uFE0F` : `\u2728`}${prettyFormatZeroQuery(query, "minimal")}`
518
+ );
519
+ console.info(id, prettyFormatZeroQuery(query, "full"));
520
+ console.info("cached result", results);
521
+ console.trace();
522
+ console.groupEnd();
523
+ } else {
524
+ console.info(`\u2728`, prettyFormatZeroQuery(query, "full"));
525
+ }
526
+ }
527
+ }
528
+ (0, import_react.useEffect)(() => {
529
+ if (!enabled) return;
530
+ const history = astHistoryByComponent.get(id) || { asts: [], changeCount: 0 };
531
+ const currentAst = ast;
532
+ const lastAst = history.asts[history.asts.length - 1];
533
+ if (currentAst !== lastAst) {
534
+ history.asts.push(currentAst);
535
+ if (history.asts.length > MAX_AST_HISTORY) {
536
+ history.asts.shift();
537
+ }
538
+ history.changeCount++;
539
+ astHistoryByComponent.set(id, history);
540
+ if (history.changeCount > AST_CHANGE_THRESHOLD) {
541
+ console.warn(
542
+ `\u26A0\uFE0F AST changed ${history.changeCount} times for component.
543
+ - id: ${id}
544
+ - stack: ${(0, import_helpers9.getCurrentComponentStack)("short")}
545
+ - table: ${table}`,
546
+ {
547
+ componentId: id,
548
+ table,
549
+ changeCount: history.changeCount,
550
+ recentAsts: history.asts
551
+ }
552
+ );
553
+ }
554
+ }
555
+ }, [id, ast, table, enabled]);
556
+ (0, import_react.useEffect)(() => {
557
+ if (!enabled) return;
558
+ return () => {
559
+ activeQueries.set(ast, activeQueries.get(ast) - 1);
560
+ };
561
+ }, [ast, enabled]);
562
+ (0, import_react.useEffect)(() => {
563
+ return () => {
564
+ astHistoryByComponent.delete(id);
565
+ };
566
+ }, [id]);
567
+ };
568
+
569
+ // src/resolveQuery.ts
570
+ function resolveQuery({
571
+ customQueries,
572
+ fn,
573
+ params
574
+ }) {
575
+ const queryName = getQueryName(fn);
576
+ if (!queryName) {
577
+ const fnName = fn?.name || "anonymous";
578
+ throw new Error(
579
+ `Query function '${fnName}' not registered. Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`
580
+ );
581
+ }
582
+ const [namespace, name] = queryName.split(".", 2);
583
+ const customQuery = customQueries[namespace]?.[name];
584
+ if (!customQuery) {
585
+ throw new Error(
586
+ `CustomQuery '${queryName}' not found. Check that the query is exported and the namespace/name matches.`
587
+ );
588
+ }
589
+ return params !== void 0 ? customQuery(params) : customQuery();
590
+ }
591
+
592
+ // src/createUseQuery.tsx
593
+ function createUseQuery({
594
+ DisabledContext,
595
+ customQueries
596
+ }) {
597
+ function useQuery(...args) {
598
+ const disabled = (0, import_react3.use)(DisabledContext);
599
+ const [fn, paramsOrOptions, optionsArg] = args;
600
+ const { queryRequest, options } = (0, import_react3.useMemo)(() => {
601
+ const hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions);
602
+ const params = hasParams ? paramsOrOptions : void 0;
603
+ const opts = hasParams ? optionsArg : paramsOrOptions;
604
+ const queryRequest2 = resolveQuery({ customQueries, fn, params });
605
+ return { queryRequest: queryRequest2, options: opts };
606
+ }, [fn, paramsOrOptions, optionsArg]);
607
+ const out = (0, import_react2.useQuery)(queryRequest, options);
608
+ if (process.env.NODE_ENV === "development") {
609
+ useZeroDebug(queryRequest, options, out);
610
+ }
611
+ if (disabled) {
612
+ return [null, { type: "unknown" }];
613
+ }
614
+ return out;
615
+ }
616
+ return useQuery;
617
+ }
618
+
619
+ // src/zeroRunner.ts
620
+ var runner = null;
621
+ function setRunner(r) {
622
+ runner = r;
623
+ }
624
+ function getRunner() {
625
+ if (!runner) {
626
+ throw new Error(
627
+ "Zero runner not initialized. Ensure ProvideZero is mounted (client) or createZeroServer is called (server)."
628
+ );
629
+ }
630
+ return runner;
631
+ }
632
+
633
+ // src/run.ts
634
+ var customQueriesRef = null;
635
+ function setCustomQueries(queries) {
636
+ customQueriesRef = queries;
637
+ }
638
+ function getCustomQueries() {
639
+ if (!customQueriesRef) {
640
+ throw new Error(
641
+ "Custom queries not initialized. Ensure createZeroClient or createZeroServer has been called."
642
+ );
643
+ }
644
+ return customQueriesRef;
645
+ }
646
+ function run(fnArg, paramsOrOptions, optionsArg) {
647
+ const hasParams = optionsArg !== void 0 || paramsOrOptions && !("type" in paramsOrOptions);
648
+ const params = hasParams ? paramsOrOptions : void 0;
649
+ const options = hasParams ? optionsArg : paramsOrOptions;
650
+ const customQueries = getCustomQueries();
651
+ const queryRequest = resolveQuery({ customQueries, fn: fnArg, params });
652
+ const runner2 = getRunner();
653
+ return runner2(queryRequest, options);
654
+ }
655
+
656
+ // src/createZeroClient.tsx
657
+ var import_jsx_runtime = require("react/jsx-runtime");
658
+ function createZeroClient({
659
+ schema: schema2,
660
+ models,
661
+ groupedQueries
662
+ }) {
663
+ setSchema(schema2);
664
+ const wrappedNamespaces = {};
665
+ for (const [namespace, queries] of Object.entries(groupedQueries)) {
666
+ wrappedNamespaces[namespace] = {};
667
+ for (const [name, fn] of Object.entries(queries)) {
668
+ registerQuery(fn, `${namespace}.${name}`);
669
+ wrappedNamespaces[namespace][name] = (0, import_zero2.defineQuery)(
670
+ ({ args }) => fn(args)
671
+ );
672
+ }
673
+ }
674
+ const customQueries = (0, import_zero2.defineQueries)(wrappedNamespaces);
675
+ setCustomQueries(customQueries);
676
+ const DisabledContext = (0, import_react5.createContext)(false);
677
+ const modelWritePermissions = (0, import_helpers10.mapObject)(models, (val) => val.permissions);
678
+ let latestZeroInstance = null;
679
+ const zero = new Proxy({}, {
680
+ get(_, key) {
681
+ if (latestZeroInstance === null) {
682
+ throw new Error(
683
+ `Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.`
684
+ );
685
+ }
686
+ return Reflect.get(latestZeroInstance, key, latestZeroInstance);
687
+ }
688
+ });
689
+ const permissionsHelpers = createPermissions({
690
+ schema: schema2,
691
+ environment: "client"
692
+ });
693
+ const zeroEvents = (0, import_helpers10.createEmitter)("zero", null);
694
+ const AuthDataContext = (0, import_react5.createContext)({});
695
+ const useAuthData = () => (0, import_react5.use)(AuthDataContext);
696
+ const useQuery = createUseQuery({
697
+ DisabledContext,
698
+ customQueries
699
+ });
700
+ function usePermission(table, objOrId, enabled = typeof objOrId !== "undefined", debug = false) {
701
+ const disabled = (0, import_react5.use)(DisabledContext);
702
+ const authData2 = useAuthData();
703
+ const permission = modelWritePermissions[table];
704
+ const query = (() => {
705
+ let baseQuery = zero.query[table].one();
706
+ if (disabled || !enabled || !permission) {
707
+ return baseQuery;
708
+ }
709
+ return baseQuery.where((eb) => {
710
+ return permissionsHelpers.buildPermissionQuery(
711
+ authData2,
712
+ eb,
713
+ permission,
714
+ objOrId
715
+ );
716
+ });
717
+ })();
718
+ const [data, status] = (0, import_react4.useQuery)(query, {
719
+ enabled: Boolean(enabled && permission && authData2 && objOrId)
720
+ });
721
+ if (debug) {
722
+ console.info(
723
+ `usePermission()`,
724
+ { data, status, authData: authData2, permission },
725
+ prettyFormatZeroQuery(query)
726
+ );
727
+ }
728
+ const result = data;
729
+ const allowed = Boolean(result);
730
+ if (!objOrId) {
731
+ return false;
732
+ }
733
+ return allowed;
734
+ }
735
+ const ProvideZero = ({
736
+ children,
737
+ authData: authDataIn,
738
+ disable,
739
+ ...props
740
+ }) => {
741
+ const authData2 = authDataIn ?? null;
742
+ const mutators = (0, import_react5.useMemo)(() => {
743
+ setAuthData(authData2);
744
+ return createMutators({
745
+ models,
746
+ environment: "client",
747
+ authData: authData2,
748
+ can: permissionsHelpers.can
749
+ });
750
+ }, [authData2]);
751
+ if (disable) {
752
+ return children;
753
+ }
754
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AuthDataContext.Provider, { value: authData2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react4.ZeroProvider, { schema: schema2, kvStore: "mem", mutators, ...props, children: [
755
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SetZeroInstance, {}),
756
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ConnectionMonitor, { zeroEvents }),
757
+ children
758
+ ] }) });
759
+ };
760
+ const SetZeroInstance = () => {
761
+ const zeroInstance = (0, import_react4.useZero)();
762
+ if (zeroInstance !== latestZeroInstance) {
763
+ latestZeroInstance = zeroInstance;
764
+ setRunner((query, options) => zeroInstance.run(query, options));
765
+ }
766
+ return null;
767
+ };
768
+ const ConnectionMonitor = (0, import_react5.memo)(
769
+ ({
770
+ zeroEvents: zeroEvents2
771
+ }) => {
772
+ const state = (0, import_react4.useConnectionState)();
773
+ const prevState = (0, import_react5.useRef)(state.name);
774
+ (0, import_react5.useEffect)(() => {
775
+ if (state.name !== prevState.current) {
776
+ const reason = "reason" in state ? state.reason : "";
777
+ prevState.current = state.name;
778
+ if (state.name === "error" || state.name === "needs-auth") {
779
+ const message = typeof reason === "string" ? reason : state.name;
780
+ zeroEvents2.emit({
781
+ type: "error",
782
+ message
783
+ });
784
+ }
785
+ }
786
+ }, [state, zeroEvents2]);
787
+ return null;
788
+ }
789
+ );
790
+ function preload(fnArg, paramsOrOptions, optionsArg) {
791
+ const hasParams = optionsArg !== void 0 || paramsOrOptions && !("ttl" in paramsOrOptions);
792
+ const params = hasParams ? paramsOrOptions : void 0;
793
+ const options = hasParams ? optionsArg : paramsOrOptions;
794
+ const queryRequest = resolveQuery({ customQueries, fn: fnArg, params });
795
+ return zero.preload(queryRequest, options);
796
+ }
797
+ return {
798
+ zeroEvents,
799
+ ProvideZero,
800
+ useQuery,
801
+ usePermission,
802
+ zero,
803
+ preload
804
+ };
805
+ }
806
+
807
+ // src/mutations.ts
808
+ function mutations(table, permissions, mutations2) {
809
+ if (permissions) {
810
+ const tableName = table.schema.name;
811
+ const createCRUDMutation = (action) => {
812
+ return async (ctx, obj) => {
813
+ const runServerPermissionCheck = async () => {
814
+ if (getDidRunPermissionCheck(ctx)) {
815
+ return;
816
+ }
817
+ if (process.env.VITE_ENVIRONMENT === "ssr") {
818
+ await ctx.can(permissions, obj);
819
+ }
820
+ };
821
+ if (action !== "insert") {
822
+ await runServerPermissionCheck();
823
+ }
824
+ const existing = mutations2?.[action];
825
+ if (existing) {
826
+ await existing(ctx, obj);
827
+ } else {
828
+ await ctx.tx.mutate[tableName][action](obj);
829
+ }
830
+ if (action === "insert") {
831
+ await runServerPermissionCheck();
832
+ }
833
+ };
834
+ };
835
+ const crudMutations = {
836
+ insert: createCRUDMutation("insert"),
837
+ update: createCRUDMutation("update"),
838
+ delete: createCRUDMutation("delete"),
839
+ upsert: createCRUDMutation("upsert")
840
+ };
841
+ return {
842
+ ...mutations2,
843
+ // overwrite regular mutations but call them if they are defined by user
844
+ ...crudMutations
845
+ };
846
+ }
847
+ return table;
848
+ }
849
+
850
+ // src/serverWhere.ts
851
+ function serverWhere(a, b) {
852
+ return where(a, b, true);
853
+ }
854
+
855
+ // src/zql.ts
856
+ var zql2 = new Proxy({}, {
857
+ get(_target, prop) {
858
+ const b = getZQL();
859
+ return b[prop];
860
+ }
861
+ });
862
+ // Annotate the CommonJS export names for ESM import in node:
863
+ 0 && (module.exports = {
864
+ batchQuery,
865
+ createMutators,
866
+ createPermissions,
867
+ createUseQuery,
868
+ createZeroClient,
869
+ ensureLoggedIn,
870
+ getQueryName,
871
+ getWhereTableName,
872
+ isInZeroMutation,
873
+ mutations,
874
+ mutatorContext,
875
+ registerQuery,
876
+ resolveQuery,
877
+ run,
878
+ runWithContext,
879
+ serverWhere,
880
+ setRunner,
881
+ where,
882
+ zql
26
883
  });
27
- module.exports = __toCommonJS(index_exports);
28
- __reExport(index_exports, require("./createPermissions.cjs"), module.exports);
29
- __reExport(index_exports, require("./queryRegistry.cjs"), module.exports);
30
- __reExport(index_exports, require("./helpers/batchQuery.cjs"), module.exports);
31
- __reExport(index_exports, require("./helpers/createMutators.cjs"), module.exports);
32
- __reExport(index_exports, require("./helpers/ensureLoggedIn.cjs"), module.exports);
33
- __reExport(index_exports, require("./helpers/mutatorContext.cjs"), module.exports);
34
- __reExport(index_exports, require("./createZeroClient.cjs"), module.exports);
35
- __reExport(index_exports, require("./createUseQuery.cjs"), module.exports);
36
- __reExport(index_exports, require("./resolveQuery.cjs"), module.exports);
37
- var import_run = require("./run.cjs"),
38
- import_zeroRunner = require("./zeroRunner.cjs");
39
- __reExport(index_exports, require("./mutations.cjs"), module.exports);
40
- __reExport(index_exports, require("./where.cjs"), module.exports);
41
- __reExport(index_exports, require("./serverWhere.cjs"), module.exports);
42
- __reExport(index_exports, require("./zql.cjs"), module.exports);
884
+ //# sourceMappingURL=index.cjs.map