over-zero 0.0.61 → 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 (344) 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/helpers/createMutators.ts +2 -1
  26. package/src/where.ts +2 -1
  27. package/dist/cjs/cli.cjs +0 -405
  28. package/dist/cjs/cli.js +0 -397
  29. package/dist/cjs/cli.js.map +0 -6
  30. package/dist/cjs/cli.native.js +0 -505
  31. package/dist/cjs/cli.native.js.map +0 -1
  32. package/dist/cjs/createPermissions.cjs +0 -82
  33. package/dist/cjs/createPermissions.js +0 -77
  34. package/dist/cjs/createPermissions.js.map +0 -6
  35. package/dist/cjs/createPermissions.native.js +0 -107
  36. package/dist/cjs/createPermissions.native.js.map +0 -1
  37. package/dist/cjs/createUseQuery.cjs +0 -59
  38. package/dist/cjs/createUseQuery.js +0 -34
  39. package/dist/cjs/createUseQuery.js.map +0 -6
  40. package/dist/cjs/createUseQuery.native.js +0 -70
  41. package/dist/cjs/createUseQuery.native.js.map +0 -1
  42. package/dist/cjs/createZeroClient.cjs +0 -162
  43. package/dist/cjs/createZeroClient.js +0 -126
  44. package/dist/cjs/createZeroClient.js.map +0 -6
  45. package/dist/cjs/createZeroClient.native.js +0 -214
  46. package/dist/cjs/createZeroClient.native.js.map +0 -1
  47. package/dist/cjs/createZeroServer.cjs +0 -148
  48. package/dist/cjs/createZeroServer.js +0 -126
  49. package/dist/cjs/createZeroServer.js.map +0 -6
  50. package/dist/cjs/createZeroServer.native.js +0 -170
  51. package/dist/cjs/createZeroServer.native.js.map +0 -1
  52. package/dist/cjs/helpers/batchQuery.cjs +0 -49
  53. package/dist/cjs/helpers/batchQuery.js +0 -38
  54. package/dist/cjs/helpers/batchQuery.js.map +0 -6
  55. package/dist/cjs/helpers/batchQuery.native.js +0 -49
  56. package/dist/cjs/helpers/batchQuery.native.js.map +0 -1
  57. package/dist/cjs/helpers/createMutators.cjs +0 -89
  58. package/dist/cjs/helpers/createMutators.js +0 -85
  59. package/dist/cjs/helpers/createMutators.js.map +0 -6
  60. package/dist/cjs/helpers/createMutators.native.js +0 -131
  61. package/dist/cjs/helpers/createMutators.native.js.map +0 -1
  62. package/dist/cjs/helpers/didRunPermissionCheck.cjs +0 -30
  63. package/dist/cjs/helpers/didRunPermissionCheck.js +0 -26
  64. package/dist/cjs/helpers/didRunPermissionCheck.js.map +0 -6
  65. package/dist/cjs/helpers/didRunPermissionCheck.native.js +0 -39
  66. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +0 -1
  67. package/dist/cjs/helpers/ensureLoggedIn.cjs +0 -33
  68. package/dist/cjs/helpers/ensureLoggedIn.js +0 -25
  69. package/dist/cjs/helpers/ensureLoggedIn.js.map +0 -6
  70. package/dist/cjs/helpers/ensureLoggedIn.native.js +0 -36
  71. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +0 -1
  72. package/dist/cjs/helpers/getQueryOrMutatorAuthData.cjs +0 -30
  73. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js +0 -24
  74. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js.map +0 -6
  75. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js +0 -33
  76. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js.map +0 -1
  77. package/dist/cjs/helpers/mutatorContext.cjs +0 -40
  78. package/dist/cjs/helpers/mutatorContext.js +0 -36
  79. package/dist/cjs/helpers/mutatorContext.js.map +0 -6
  80. package/dist/cjs/helpers/mutatorContext.native.js +0 -43
  81. package/dist/cjs/helpers/mutatorContext.native.js.map +0 -1
  82. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +0 -107
  83. package/dist/cjs/helpers/prettyFormatZeroQuery.js +0 -92
  84. package/dist/cjs/helpers/prettyFormatZeroQuery.js.map +0 -6
  85. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +0 -119
  86. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +0 -1
  87. package/dist/cjs/helpers/useZeroDebug.cjs +0 -68
  88. package/dist/cjs/helpers/useZeroDebug.js +0 -49
  89. package/dist/cjs/helpers/useZeroDebug.js.map +0 -6
  90. package/dist/cjs/helpers/useZeroDebug.native.js +0 -81
  91. package/dist/cjs/helpers/useZeroDebug.native.js.map +0 -1
  92. package/dist/cjs/index.js +0 -35
  93. package/dist/cjs/index.js.map +0 -6
  94. package/dist/cjs/index.native.js +0 -45
  95. package/dist/cjs/index.native.js.map +0 -1
  96. package/dist/cjs/mutations.cjs +0 -51
  97. package/dist/cjs/mutations.js +0 -44
  98. package/dist/cjs/mutations.js.map +0 -6
  99. package/dist/cjs/mutations.native.js +0 -56
  100. package/dist/cjs/mutations.native.js.map +0 -1
  101. package/dist/cjs/queryRegistry.cjs +0 -33
  102. package/dist/cjs/queryRegistry.js +0 -28
  103. package/dist/cjs/queryRegistry.js.map +0 -6
  104. package/dist/cjs/queryRegistry.native.js +0 -36
  105. package/dist/cjs/queryRegistry.native.js.map +0 -1
  106. package/dist/cjs/resolveQuery.cjs +0 -41
  107. package/dist/cjs/resolveQuery.js +0 -40
  108. package/dist/cjs/resolveQuery.js.map +0 -6
  109. package/dist/cjs/resolveQuery.native.js +0 -46
  110. package/dist/cjs/resolveQuery.native.js.map +0 -1
  111. package/dist/cjs/run.cjs +0 -48
  112. package/dist/cjs/run.js +0 -37
  113. package/dist/cjs/run.js.map +0 -6
  114. package/dist/cjs/run.native.js +0 -52
  115. package/dist/cjs/run.native.js.map +0 -1
  116. package/dist/cjs/server.js +0 -15
  117. package/dist/cjs/server.js.map +0 -6
  118. package/dist/cjs/server.native.js +0 -21
  119. package/dist/cjs/server.native.js.map +0 -1
  120. package/dist/cjs/serverWhere.cjs +0 -29
  121. package/dist/cjs/serverWhere.js +0 -24
  122. package/dist/cjs/serverWhere.js.map +0 -6
  123. package/dist/cjs/serverWhere.native.js +0 -32
  124. package/dist/cjs/serverWhere.native.js.map +0 -1
  125. package/dist/cjs/state.cjs +0 -49
  126. package/dist/cjs/state.js +0 -37
  127. package/dist/cjs/state.js.map +0 -6
  128. package/dist/cjs/state.native.js +0 -54
  129. package/dist/cjs/state.native.js.map +0 -1
  130. package/dist/cjs/types.cjs +0 -16
  131. package/dist/cjs/types.js +0 -14
  132. package/dist/cjs/types.js.map +0 -6
  133. package/dist/cjs/types.native.js +0 -19
  134. package/dist/cjs/types.native.js.map +0 -1
  135. package/dist/cjs/where.cjs +0 -41
  136. package/dist/cjs/where.js +0 -38
  137. package/dist/cjs/where.js.map +0 -6
  138. package/dist/cjs/where.native.js +0 -48
  139. package/dist/cjs/where.native.js.map +0 -1
  140. package/dist/cjs/zeroRunner.cjs +0 -34
  141. package/dist/cjs/zeroRunner.js +0 -32
  142. package/dist/cjs/zeroRunner.js.map +0 -6
  143. package/dist/cjs/zeroRunner.native.js +0 -37
  144. package/dist/cjs/zeroRunner.native.js.map +0 -1
  145. package/dist/cjs/zql.cjs +0 -31
  146. package/dist/cjs/zql.js +0 -26
  147. package/dist/cjs/zql.js.map +0 -6
  148. package/dist/cjs/zql.native.js +0 -35
  149. package/dist/cjs/zql.native.js.map +0 -1
  150. package/dist/esm/cli.js +0 -383
  151. package/dist/esm/cli.js.map +0 -6
  152. package/dist/esm/cli.mjs +0 -384
  153. package/dist/esm/cli.mjs.map +0 -1
  154. package/dist/esm/cli.native.js +0 -481
  155. package/dist/esm/cli.native.js.map +0 -1
  156. package/dist/esm/createPermissions.js +0 -66
  157. package/dist/esm/createPermissions.js.map +0 -6
  158. package/dist/esm/createPermissions.mjs +0 -59
  159. package/dist/esm/createPermissions.mjs.map +0 -1
  160. package/dist/esm/createPermissions.native.js +0 -81
  161. package/dist/esm/createPermissions.native.js.map +0 -1
  162. package/dist/esm/createUseQuery.js +0 -21
  163. package/dist/esm/createUseQuery.js.map +0 -6
  164. package/dist/esm/createUseQuery.mjs +0 -36
  165. package/dist/esm/createUseQuery.mjs.map +0 -1
  166. package/dist/esm/createUseQuery.native.js +0 -44
  167. package/dist/esm/createUseQuery.native.js.map +0 -1
  168. package/dist/esm/createZeroClient.js +0 -135
  169. package/dist/esm/createZeroClient.js.map +0 -6
  170. package/dist/esm/createZeroClient.mjs +0 -139
  171. package/dist/esm/createZeroClient.mjs.map +0 -1
  172. package/dist/esm/createZeroClient.native.js +0 -188
  173. package/dist/esm/createZeroClient.native.js.map +0 -1
  174. package/dist/esm/createZeroServer.js +0 -121
  175. package/dist/esm/createZeroServer.js.map +0 -6
  176. package/dist/esm/createZeroServer.mjs +0 -125
  177. package/dist/esm/createZeroServer.mjs.map +0 -1
  178. package/dist/esm/createZeroServer.native.js +0 -144
  179. package/dist/esm/createZeroServer.native.js.map +0 -1
  180. package/dist/esm/helpers/batchQuery.js +0 -22
  181. package/dist/esm/helpers/batchQuery.js.map +0 -6
  182. package/dist/esm/helpers/batchQuery.mjs +0 -26
  183. package/dist/esm/helpers/batchQuery.mjs.map +0 -1
  184. package/dist/esm/helpers/batchQuery.native.js +0 -23
  185. package/dist/esm/helpers/batchQuery.native.js.map +0 -1
  186. package/dist/esm/helpers/createMutators.js +0 -70
  187. package/dist/esm/helpers/createMutators.js.map +0 -6
  188. package/dist/esm/helpers/createMutators.mjs +0 -66
  189. package/dist/esm/helpers/createMutators.mjs.map +0 -1
  190. package/dist/esm/helpers/createMutators.native.js +0 -105
  191. package/dist/esm/helpers/createMutators.native.js.map +0 -1
  192. package/dist/esm/helpers/didRunPermissionCheck.js +0 -10
  193. package/dist/esm/helpers/didRunPermissionCheck.js.map +0 -6
  194. package/dist/esm/helpers/didRunPermissionCheck.mjs +0 -6
  195. package/dist/esm/helpers/didRunPermissionCheck.mjs.map +0 -1
  196. package/dist/esm/helpers/didRunPermissionCheck.native.js +0 -12
  197. package/dist/esm/helpers/didRunPermissionCheck.native.js.map +0 -1
  198. package/dist/esm/helpers/ensureLoggedIn.js +0 -10
  199. package/dist/esm/helpers/ensureLoggedIn.js.map +0 -6
  200. package/dist/esm/helpers/ensureLoggedIn.mjs +0 -10
  201. package/dist/esm/helpers/ensureLoggedIn.mjs.map +0 -1
  202. package/dist/esm/helpers/ensureLoggedIn.native.js +0 -10
  203. package/dist/esm/helpers/ensureLoggedIn.native.js.map +0 -1
  204. package/dist/esm/helpers/getQueryOrMutatorAuthData.js +0 -9
  205. package/dist/esm/helpers/getQueryOrMutatorAuthData.js.map +0 -6
  206. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs +0 -7
  207. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs.map +0 -1
  208. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js +0 -7
  209. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js.map +0 -1
  210. package/dist/esm/helpers/mutatorContext.js +0 -20
  211. package/dist/esm/helpers/mutatorContext.js.map +0 -6
  212. package/dist/esm/helpers/mutatorContext.mjs +0 -15
  213. package/dist/esm/helpers/mutatorContext.mjs.map +0 -1
  214. package/dist/esm/helpers/mutatorContext.native.js +0 -15
  215. package/dist/esm/helpers/mutatorContext.native.js.map +0 -1
  216. package/dist/esm/helpers/prettyFormatZeroQuery.js +0 -76
  217. package/dist/esm/helpers/prettyFormatZeroQuery.js.map +0 -6
  218. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +0 -84
  219. package/dist/esm/helpers/prettyFormatZeroQuery.mjs.map +0 -1
  220. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +0 -93
  221. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +0 -1
  222. package/dist/esm/helpers/useZeroDebug.js +0 -35
  223. package/dist/esm/helpers/useZeroDebug.js.map +0 -6
  224. package/dist/esm/helpers/useZeroDebug.mjs +0 -45
  225. package/dist/esm/helpers/useZeroDebug.mjs.map +0 -1
  226. package/dist/esm/helpers/useZeroDebug.native.js +0 -55
  227. package/dist/esm/helpers/useZeroDebug.native.js.map +0 -1
  228. package/dist/esm/index.js +0 -20
  229. package/dist/esm/index.js.map +0 -6
  230. package/dist/esm/index.native.js +0 -17
  231. package/dist/esm/index.native.js.map +0 -1
  232. package/dist/esm/mutations.js +0 -28
  233. package/dist/esm/mutations.js.map +0 -6
  234. package/dist/esm/mutations.mjs +0 -28
  235. package/dist/esm/mutations.mjs.map +0 -1
  236. package/dist/esm/mutations.native.js +0 -30
  237. package/dist/esm/mutations.native.js.map +0 -1
  238. package/dist/esm/queryRegistry.js +0 -12
  239. package/dist/esm/queryRegistry.js.map +0 -6
  240. package/dist/esm/queryRegistry.mjs +0 -9
  241. package/dist/esm/queryRegistry.mjs.map +0 -1
  242. package/dist/esm/queryRegistry.native.js +0 -9
  243. package/dist/esm/queryRegistry.native.js.map +0 -1
  244. package/dist/esm/resolveQuery.js +0 -24
  245. package/dist/esm/resolveQuery.js.map +0 -6
  246. package/dist/esm/resolveQuery.mjs +0 -18
  247. package/dist/esm/resolveQuery.mjs.map +0 -1
  248. package/dist/esm/resolveQuery.native.js +0 -20
  249. package/dist/esm/resolveQuery.native.js.map +0 -1
  250. package/dist/esm/run.js +0 -22
  251. package/dist/esm/run.js.map +0 -6
  252. package/dist/esm/run.mjs +0 -24
  253. package/dist/esm/run.mjs.map +0 -1
  254. package/dist/esm/run.native.js +0 -25
  255. package/dist/esm/run.native.js.map +0 -1
  256. package/dist/esm/server.js +0 -2
  257. package/dist/esm/server.js.map +0 -6
  258. package/dist/esm/server.native.js +0 -2
  259. package/dist/esm/server.native.js.map +0 -1
  260. package/dist/esm/serverWhere.js +0 -8
  261. package/dist/esm/serverWhere.js.map +0 -6
  262. package/dist/esm/serverWhere.mjs +0 -6
  263. package/dist/esm/serverWhere.mjs.map +0 -1
  264. package/dist/esm/serverWhere.native.js +0 -6
  265. package/dist/esm/serverWhere.native.js.map +0 -1
  266. package/dist/esm/state.js +0 -21
  267. package/dist/esm/state.js.map +0 -6
  268. package/dist/esm/state.mjs +0 -22
  269. package/dist/esm/state.mjs.map +0 -1
  270. package/dist/esm/state.native.js +0 -24
  271. package/dist/esm/state.native.js.map +0 -1
  272. package/dist/esm/types.js +0 -1
  273. package/dist/esm/types.js.map +0 -6
  274. package/dist/esm/types.mjs +0 -2
  275. package/dist/esm/types.mjs.map +0 -1
  276. package/dist/esm/types.native.js +0 -2
  277. package/dist/esm/types.native.js.map +0 -1
  278. package/dist/esm/where.js +0 -23
  279. package/dist/esm/where.js.map +0 -6
  280. package/dist/esm/where.mjs +0 -17
  281. package/dist/esm/where.mjs.map +0 -1
  282. package/dist/esm/where.native.js +0 -21
  283. package/dist/esm/where.native.js.map +0 -1
  284. package/dist/esm/zeroRunner.js +0 -16
  285. package/dist/esm/zeroRunner.js.map +0 -6
  286. package/dist/esm/zeroRunner.mjs +0 -10
  287. package/dist/esm/zeroRunner.mjs.map +0 -1
  288. package/dist/esm/zeroRunner.native.js +0 -10
  289. package/dist/esm/zeroRunner.native.js.map +0 -1
  290. package/dist/esm/zql.js +0 -10
  291. package/dist/esm/zql.js.map +0 -6
  292. package/dist/esm/zql.mjs +0 -8
  293. package/dist/esm/zql.mjs.map +0 -1
  294. package/dist/esm/zql.native.js +0 -9
  295. package/dist/esm/zql.native.js.map +0 -1
  296. package/types/cli.d.ts +0 -3
  297. package/types/cli.d.ts.map +0 -1
  298. package/types/createPermissions.d.ts +0 -10
  299. package/types/createPermissions.d.ts.map +0 -1
  300. package/types/createUseQuery.d.ts +0 -20
  301. package/types/createUseQuery.d.ts.map +0 -1
  302. package/types/createZeroClient.d.ts +0 -35
  303. package/types/createZeroClient.d.ts.map +0 -1
  304. package/types/createZeroServer.d.ts.map +0 -1
  305. package/types/helpers/batchQuery.d.ts +0 -7
  306. package/types/helpers/batchQuery.d.ts.map +0 -1
  307. package/types/helpers/createMutators.d.ts +0 -10
  308. package/types/helpers/createMutators.d.ts.map +0 -1
  309. package/types/helpers/didRunPermissionCheck.d.ts +0 -4
  310. package/types/helpers/didRunPermissionCheck.d.ts.map +0 -1
  311. package/types/helpers/ensureLoggedIn.d.ts +0 -3
  312. package/types/helpers/ensureLoggedIn.d.ts.map +0 -1
  313. package/types/helpers/getQueryOrMutatorAuthData.d.ts +0 -3
  314. package/types/helpers/getQueryOrMutatorAuthData.d.ts.map +0 -1
  315. package/types/helpers/mutatorContext.d.ts +0 -5
  316. package/types/helpers/mutatorContext.d.ts.map +0 -1
  317. package/types/helpers/prettyFormatZeroQuery.d.ts +0 -3
  318. package/types/helpers/prettyFormatZeroQuery.d.ts.map +0 -1
  319. package/types/helpers/useZeroDebug.d.ts +0 -3
  320. package/types/helpers/useZeroDebug.d.ts.map +0 -1
  321. package/types/index.d.ts +0 -17
  322. package/types/index.d.ts.map +0 -1
  323. package/types/mutations.d.ts +0 -20
  324. package/types/mutations.d.ts.map +0 -1
  325. package/types/queryRegistry.d.ts +0 -3
  326. package/types/queryRegistry.d.ts.map +0 -1
  327. package/types/resolveQuery.d.ts +0 -11
  328. package/types/resolveQuery.d.ts.map +0 -1
  329. package/types/run.d.ts +0 -7
  330. package/types/run.d.ts.map +0 -1
  331. package/types/server.d.ts +0 -2
  332. package/types/server.d.ts.map +0 -1
  333. package/types/serverWhere.d.ts +0 -5
  334. package/types/serverWhere.d.ts.map +0 -1
  335. package/types/state.d.ts +0 -8
  336. package/types/state.d.ts.map +0 -1
  337. package/types/types.d.ts +0 -78
  338. package/types/types.d.ts.map +0 -1
  339. package/types/where.d.ts +0 -6
  340. package/types/where.d.ts.map +0 -1
  341. package/types/zeroRunner.d.ts +0 -6
  342. package/types/zeroRunner.d.ts.map +0 -1
  343. package/types/zql.d.ts +0 -3
  344. package/types/zql.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts","../../src/createPermissions.ts","../../src/helpers/didRunPermissionCheck.ts","../../src/helpers/mutatorContext.ts","../../src/helpers/prettyFormatZeroQuery.ts","../../src/state.ts","../../src/where.ts","../../src/helpers/getQueryOrMutatorAuthData.ts","../../src/queryRegistry.ts","../../src/helpers/batchQuery.ts","../../src/helpers/createMutators.ts","../../src/helpers/ensureLoggedIn.ts","../../src/createZeroClient.tsx","../../src/createUseQuery.tsx","../../src/helpers/useZeroDebug.ts","../../src/resolveQuery.ts","../../src/zeroRunner.ts","../../src/run.ts","../../src/mutations.ts","../../src/serverWhere.ts","../../src/zql.ts"],"sourcesContent":["export * from './createPermissions'\nexport * from './queryRegistry'\nexport * from './helpers/batchQuery'\nexport * from './helpers/createMutators'\nexport * from './helpers/ensureLoggedIn'\nexport * from './helpers/mutatorContext'\n\nexport * from './createZeroClient'\nexport * from './createUseQuery'\nexport * from './resolveQuery'\nexport { run } from './run'\nexport { setRunner, type ZeroRunner } from './zeroRunner'\nexport * from './mutations'\nexport * from './where'\nexport * from './serverWhere'\nexport * from './zql'\n\nexport type * from './types'\n","import { ensure, EnsureError } from '@take-out/helpers'\n\nimport { setDidRunPermissionCheck } from './helpers/didRunPermissionCheck'\nimport { mutatorContext } from './helpers/mutatorContext'\nimport { prettyFormatZeroQuery } from './helpers/prettyFormatZeroQuery'\nimport { getZQL } from './state'\nimport { getWhereTableName } from './where'\n\nimport type { AuthData, Can, TableName, Transaction, Where } from './types'\nimport type {\n Condition,\n ExpressionBuilder,\n Query,\n Schema as ZeroSchema,\n} from '@rocicorp/zero'\n\nexport function createPermissions<Schema extends ZeroSchema>({\n environment,\n schema,\n}: {\n environment: 'client' | 'server'\n schema: Schema\n}) {\n type PermissionReturn = Condition | boolean\n\n type PermissionsWhere<Table extends TableName = TableName> = Where<\n Table,\n PermissionReturn\n >\n\n function buildPermissionQuery<PermissionWhere extends PermissionsWhere>(\n authData: AuthData | null,\n eb: ExpressionBuilder<any, any>,\n permissionWhere: PermissionWhere,\n // TODO until i can get a working PickPrimaryKeys<'message'>\n objOrId: Record<string, any> | string\n ) {\n const tableName = getWhereTableName(permissionWhere)\n\n if (!tableName) {\n throw new Error(`Must use PermissionWhere for buildPermissionQuery`)\n }\n\n const tableSchema = schema.tables[tableName]\n\n if (!tableSchema) {\n throw new Error(`No schema?`)\n }\n\n const primaryKeys = tableSchema.primaryKey\n const permissionReturn = permissionWhere(eb, authData)\n\n if (permissionReturn == null) {\n throw new Error(`No permission defined for ${tableName}`)\n }\n\n if (permissionReturn === true) {\n return eb.cmpLit(true, '=', true)\n }\n\n if (permissionReturn === false) {\n return eb.cmpLit(true, '=', false)\n }\n\n const primaryKeyWheres: Condition[] = []\n\n for (const key of primaryKeys) {\n const value = typeof objOrId === 'string' ? objOrId : objOrId[key]\n primaryKeyWheres.push(eb.cmp(key as any, value))\n }\n\n return eb.and(permissionReturn, ...primaryKeyWheres)\n }\n\n const can: Can = async (where, obj) => {\n // on client we always allow! we only check on server (like zero does)\n if (environment === 'server') {\n const ctx = mutatorContext()\n const tableName = getWhereTableName(where)\n if (!tableName) {\n throw new Error(`Must use where('table') style where to pass to can()`)\n }\n await ensurePermission(ctx.tx, ctx.authData, tableName, where, obj)\n setDidRunPermissionCheck(ctx)\n }\n }\n\n async function ensurePermission(\n tx: Transaction,\n authData: AuthData | null,\n tableName: TableName,\n where: Where,\n obj: any // TODO until i can get a working PickPrimaryKeys<'message'>\n ): Promise<void> {\n if (authData?.role === 'admin') {\n // admin role can do any mutation\n return\n }\n\n const zqlBuilder = getZQL() as any\n const queryBase = zqlBuilder[tableName] as Query<any, any>\n let query: Query<any, any, any> | null = null\n\n try {\n query = queryBase\n .where((eb) => {\n return buildPermissionQuery(authData, eb, where, obj)\n })\n .one()\n\n ensure(await tx.run(query))\n } catch (err) {\n const errorTitle = `${tableName} with auth id: ${authData?.id}`\n\n if (err instanceof EnsureError) {\n let msg = `[permission] 🚫 Not Allowed: ${errorTitle}`\n if (process.env.NODE_ENV === 'development' && query) {\n msg += `\\n ${prettyFormatZeroQuery(query)}`\n }\n throw new Error(msg)\n }\n\n throw new Error(`Error running permission ${errorTitle}\\n${err}`)\n }\n }\n\n return {\n can,\n buildPermissionQuery,\n }\n}\n","import { globalValue } from '@take-out/helpers'\n\nimport type { MutatorContext } from '../types'\n\nconst PermissionCheckRan = globalValue(\n `over-zero:permissions-check`,\n () => new WeakMap<MutatorContext, boolean>()\n)\n\nexport const getDidRunPermissionCheck = (ctx: MutatorContext) => {\n return PermissionCheckRan.get(ctx)\n}\n\nexport const setDidRunPermissionCheck = (ctx: MutatorContext) => {\n return PermissionCheckRan.set(ctx, true)\n}\n","import { createAsyncContext } from '@take-out/helpers'\n\nimport type { MutatorContext } from '../types'\n\nconst asyncContext = createAsyncContext<MutatorContext>()\n\nexport function mutatorContext(): MutatorContext {\n const currentContext = asyncContext.get()\n if (!currentContext) {\n throw new Error('mutatorContext must be called within a mutator')\n }\n\n return currentContext\n}\n\nexport function isInZeroMutation() {\n return !!asyncContext.get()\n}\n\nexport function runWithContext<T>(\n context: MutatorContext,\n fn: () => T | Promise<T>\n): Promise<T> {\n return asyncContext.run(context, fn)\n}\n","import { ellipsis } from '@take-out/helpers'\n\nimport type { Query } from '@rocicorp/zero'\n\nexport const prettyFormatZeroQuery = (\n query: Query<any, any, any>,\n mode: 'full' | 'minimal' = 'full'\n): string => {\n const astObject = query['_completeAst']?.()\n\n if (!astObject) return ''\n\n if (mode === 'minimal') {\n return prettyFormatMinimal(astObject)\n }\n return prettyFormatFull(astObject)\n}\n\nconst prettyFormatFull = (astObject: any, indent = 0): string => {\n if (!astObject || !astObject.table) return ''\n\n const spaces = ' '.repeat(indent)\n let query = astObject.table\n let hasChainedMethods = false\n\n // Add where conditions\n if (astObject.where) {\n const whereClause = formatWhere(astObject.where)\n if (hasChainedMethods) {\n query += `\\n${spaces} ${whereClause}`\n } else {\n query += whereClause\n hasChainedMethods = true\n }\n }\n\n // Add limit\n if (astObject.limit) {\n const limitClause = `.limit(${astObject.limit})`\n if (hasChainedMethods) {\n query += `\\n${spaces} ${limitClause}`\n } else {\n query += limitClause\n hasChainedMethods = true\n }\n }\n\n // Add orderBy\n if (astObject.orderBy && astObject.orderBy.length > 0) {\n const orderClauses = astObject.orderBy\n .map(([field, direction]: [string, string]) => `${field}, ${direction}`)\n .join(', ')\n const orderByClause = `.orderBy(${orderClauses})`\n if (hasChainedMethods) {\n query += `\\n${spaces} ${orderByClause}`\n } else {\n query += orderByClause\n hasChainedMethods = true\n }\n }\n\n // Add related queries\n if (astObject.related && astObject.related.length > 0) {\n astObject.related.forEach((rel: any) => {\n if (rel.subquery) {\n const alias = rel.subquery.alias || rel.subquery.table\n const subQuery = prettyFormatFull(rel.subquery, indent + 1)\n query += `\\n${spaces} .related(${alias}, q => q.${subQuery}`\n }\n })\n\n // Add closing parentheses\n const closingParens = ')'.repeat(astObject.related.length)\n query += `\\n${spaces}${closingParens}`\n }\n\n return query\n}\n\nconst prettyFormatMinimal = (astObject: any): string => {\n if (!astObject || !astObject.table) return ''\n\n let query = astObject.table\n\n // Add where conditions only\n if (astObject.where) {\n query += formatWhere(astObject.where).replace('.where(', '(')\n }\n\n // Add sub-queries info if present\n if (astObject.related && astObject.related.length > 0) {\n const subQueries = collectSubQueryTables(astObject.related)\n const count = subQueries.length\n const tableNames = subQueries.join(', ')\n query += ` (+${count}: ${ellipsis(tableNames, 30)})`\n }\n\n return query\n}\n\nconst collectSubQueryTables = (related: any[]): string[] => {\n const tables: string[] = []\n\n related.forEach((rel: any) => {\n if (rel.subquery) {\n const tableName = rel.subquery.alias || rel.subquery.table\n tables.push(tableName)\n\n // Recursively collect nested sub-queries\n if (rel.subquery.related && rel.subquery.related.length > 0) {\n tables.push(...collectSubQueryTables(rel.subquery.related))\n }\n }\n })\n\n return tables\n}\n\nconst formatWhere = (where: any): string => {\n if (!where) return ''\n\n if (where.type === 'simple') {\n const column = where.left?.name || where.left\n const value = where.right?.value !== undefined ? where.right.value : where.right\n const op = where.op || '='\n\n // Special case: if column is \"id\" and op is \"=\" and value is a single item, show just the value\n if (\n column === 'id' &&\n op === '=' &&\n (typeof value === 'string' || typeof value === 'number')\n ) {\n return `(${value})`\n }\n\n if (op === '=') {\n return `.where(${column}, ${value})`\n }\n return `.where(${column}, ${op}, ${value})`\n }\n\n if (where.type === 'and' && where.conditions) {\n let result = ''\n where.conditions.forEach((condition: any, index: number) => {\n if (index === 0) {\n result += formatWhere(condition)\n } else {\n result += `.and(${formatWhere(condition).slice(1)})` // Remove the leading dot\n }\n })\n return result\n }\n\n if (where.type === 'or' && where.conditions) {\n let result = ''\n where.conditions.forEach((condition: any, index: number) => {\n if (index === 0) {\n result += formatWhere(condition)\n } else {\n result += `.or(${formatWhere(condition).slice(1)})` // Remove the leading dot\n }\n })\n return result\n }\n\n return ''\n}\n","import { createBuilder, type Schema } from '@rocicorp/zero'\n\nimport type { AuthData, QueryBuilder } from './types'\n\nlet schema: Schema | null = null\nlet zql: QueryBuilder | null = null\nlet authData: AuthData | null | undefined\n\nconst errMessage = `Haven't called createZeroClient or createZeroServer yet!`\n\nexport const getZQL = () => {\n if (!zql) throw new Error(errMessage)\n return zql\n}\n\nexport const getSchema = () => {\n if (!schema) throw new Error(errMessage)\n return schema\n}\n\nexport const setSchema = (_: Schema) => {\n schema = _\n zql = createBuilder(_) as QueryBuilder\n}\n\nexport const getAuthData = () => {\n return authData || null\n}\n\nexport const setAuthData = (_: AuthData) => {\n authData = _\n}\n","import { isServer } from '@tamagui/constants'\nimport { globalValue } from '@take-out/helpers'\n\nimport { getQueryOrMutatorAuthData } from './helpers/getQueryOrMutatorAuthData'\n\nimport type { TableName, Where } from './types'\nimport type { Condition, ExpressionBuilder } from '@rocicorp/zero'\n\nexport function where<Table extends TableName, Builder extends Where<Table>>(\n tableName: Table,\n builder: Builder,\n isServerOnly?: boolean\n): Where<Table, Condition>\n\nexport function where<Table extends TableName, Builder extends Where = Where<Table>>(\n builder: Builder\n): Where<Table, Condition>\n\nexport function where<Table extends TableName, Builder extends Where<Table>>(\n a: Table | Builder,\n b?: Builder,\n isServerOnly = false\n): Where<Table, any> | Builder {\n const whereFn = (b || a) as any\n\n const wrappedWhereFn = ((\n a: ExpressionBuilder<any, any>,\n b = getQueryOrMutatorAuthData()\n ) => {\n if (!isServer && isServerOnly) {\n // on client (web or native) where conditions always pass\n return a.and()\n }\n\n const result = whereFn(a, b)\n if (typeof result === 'boolean') {\n if (result) {\n return a.cmpLit(0, '=', 0)\n } else {\n return a.cmpLit(1, '=', 0)\n }\n }\n return result\n }) as Builder\n\n if (b) {\n WhereTableNameMap.set(wrappedWhereFn, a as Table)\n }\n\n return wrappedWhereFn\n}\n\n// permissions where:\n\nconst WhereTableNameMap = globalValue(\n `over-zero:where-table-map`,\n () => new WeakMap<Where, TableName>()\n)\n\nexport function getWhereTableName(where: Where) {\n return WhereTableNameMap.get(where)\n}\n","import { getAuthData } from '../state'\nimport { isInZeroMutation, mutatorContext } from './mutatorContext'\n\nimport type { AuthData } from '../types'\n\nexport function getQueryOrMutatorAuthData(): AuthData | null {\n if (isInZeroMutation()) {\n return mutatorContext().authData as AuthData\n }\n\n return getAuthData()\n}\n","// registry for query functions to their stable names\n// this allows minification while preserving query identity\n\nconst queryNameRegistry = new WeakMap<Function, string>()\n\nexport function registerQuery(fn: Function, name: string) {\n queryNameRegistry.set(fn, name)\n}\n\nexport function getQueryName(fn: Function): string | undefined {\n return queryNameRegistry.get(fn)\n}\n","import { sleep } from '@take-out/helpers'\n\nimport type { Query, Row } from '@rocicorp/zero'\n\nexport async function batchQuery<Q extends Query<any, any, any>, Item extends Row<Q>>(\n q: Q,\n mapper: (items: Item[]) => Promise<void>,\n {\n chunk,\n pause = 0,\n stopAfter = 100_000,\n }: {\n chunk: number\n pause?: number\n stopAfter?: number\n } = { chunk: 20 }\n) {\n let hasMore = true\n let last: Item | null = null\n let iterations = 0\n\n while (hasMore) {\n let query = q.limit(chunk)\n\n if (last) {\n query = query.start(last)\n }\n\n const results = await query.run({ type: 'complete' })\n\n await mapper(results as Item[])\n\n if (results.length < chunk) {\n hasMore = false\n }\n\n if (iterations > stopAfter) {\n console.error(`[batchQuery] ‼️ stopping batch, ran ${stopAfter} chunks`)\n break\n }\n\n if (pause) {\n await sleep(pause)\n }\n }\n}\n","import { isBrowser, isServer } from '@tamagui/constants'\nimport { mapObject, time } from '@take-out/helpers'\n\nimport { runWithContext } from './mutatorContext'\n\nimport type {\n AuthData,\n Can,\n GenericModels,\n GetZeroMutators,\n MutatorContext,\n Transaction,\n} from '../types'\n\nexport function createMutators<Models extends GenericModels>({\n environment,\n authData,\n createServerActions,\n asyncTasks = [],\n can,\n models,\n}: {\n environment: 'server' | 'client'\n authData: AuthData | null\n can: Can\n models: Models\n asyncTasks?: Array<() => Promise<void>>\n createServerActions?: () => Record<string, any>\n}): GetZeroMutators<Models> {\n const serverActions = createServerActions?.()\n\n const modelMutators = mapObject(models, (val) => val.mutate) as {\n [K in keyof typeof models]: (typeof models)[K]['mutate']\n }\n\n function withContext<Args extends any[]>(fn: (...args: Args) => Promise<void>) {\n return async (tx: Transaction, ...args: Args): Promise<void> => {\n const mutationContext: MutatorContext = {\n tx,\n authData,\n environment,\n can,\n server:\n environment === 'server'\n ? ({\n actions: serverActions || {},\n asyncTasks: asyncTasks || {},\n } as MutatorContext['server'])\n : undefined,\n }\n\n return await runWithContext(mutationContext, () => {\n // @ts-expect-error type shenanigan\n // map to our mutations() helper\n return fn(mutationContext, ...args)\n })\n }\n }\n\n function withDevelopmentLogging<Args extends any[]>(\n name: string,\n fn: (...args: Args) => Promise<void>\n ) {\n if (process.env.NODE_ENV !== 'development' && !process.env.IS_TESTING) {\n return fn\n }\n\n return async (...args: Args): Promise<void> => {\n const startTime = performance.now()\n\n try {\n if (isServer) {\n console.info(`[mutator] ${name} start`)\n }\n const result = await fn(...args)\n const duration = (performance.now() - startTime).toFixed(2)\n if (isBrowser) {\n console.groupCollapsed(`[mutator] ${name} completed in ${duration}ms`)\n console.info('→', args[1])\n console.info('←', result)\n console.trace()\n console.groupEnd()\n } else {\n // TODO in prod just track\n console.info(`[mutator] ${name} completed in ${duration}ms`)\n }\n return result\n } catch (error) {\n const duration = (performance.now() - startTime).toFixed(2)\n console.groupCollapsed(`[mutator] ${name} failed after ${duration}ms`)\n console.error('error:', error)\n console.info('arguments:', JSON.stringify(args[1], null, 2))\n console.info('stack trace:', new Error().stack)\n console.groupEnd()\n throw error\n }\n }\n }\n\n function withTimeoutGuard<Args extends any[]>(\n name: string,\n fn: (...args: Args) => Promise<void>,\n // don't want this too high - zero runs mutations in order and waits for the last to finish it seems\n // so if one mutation gets stuck it will just sit there\n timeoutMs: number = time.ms.minutes(1)\n ) {\n return async (...args: Args): Promise<void> => {\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => {\n reject(new Error(`[mutator] ${name} timeout after ${timeoutMs}ms`))\n }, timeoutMs)\n })\n\n return Promise.race([fn(...args), timeoutPromise])\n }\n }\n\n function decorateMutators<T extends Record<string, Record<string, any>>>(modules: T) {\n const result: any = {}\n\n for (const [moduleName, moduleExports] of Object.entries(modules)) {\n result[moduleName] = {}\n for (const [name, exportValue] of Object.entries(moduleExports)) {\n if (typeof exportValue === 'function') {\n const fullName = `${moduleName}.${name}`\n result[moduleName][name] = withDevelopmentLogging(\n fullName,\n withTimeoutGuard(fullName, withContext(exportValue))\n )\n }\n }\n }\n\n return result\n }\n\n return decorateMutators(modelMutators)\n}\n","import { ensure } from '@take-out/helpers'\n\nimport { mutatorContext } from './mutatorContext'\n\nimport type { AuthData } from '../types'\n\nexport const ensureLoggedIn = (): AuthData => {\n const { authData } = mutatorContext()\n ensure(authData, 'logged in')\n return authData\n}\n","import { defineQueries, defineQuery } from '@rocicorp/zero'\nimport {\n useConnectionState,\n useZero,\n ZeroProvider,\n useQuery as zeroUseQuery,\n} from '@rocicorp/zero/react'\nimport { createEmitter, mapObject } from '@take-out/helpers'\nimport {\n createContext,\n memo,\n use,\n useEffect,\n useMemo,\n useRef,\n type ReactNode,\n} from 'react'\n\nimport { createPermissions } from './createPermissions'\nimport { createUseQuery } from './createUseQuery'\nimport { createMutators } from './helpers/createMutators'\nimport { prettyFormatZeroQuery } from './helpers/prettyFormatZeroQuery'\nimport { registerQuery } from './queryRegistry'\nimport { resolveQuery, type PlainQueryFn } from './resolveQuery'\nimport { setCustomQueries } from './run'\nimport { setAuthData, setSchema } from './state'\nimport { setRunner } from './zeroRunner'\n\nimport type { AuthData, GenericModels, GetZeroMutators, Where, ZeroEvent } from './types'\nimport type {\n HumanReadable,\n Query,\n Row,\n Schema as ZeroSchema,\n Zero,\n ZeroOptions,\n} from '@rocicorp/zero'\n\ntype PreloadOptions = { ttl?: 'always' | 'never' | number | undefined }\n\nexport type GroupedQueries = Record<string, Record<string, (...args: any[]) => any>>\n\nexport function createZeroClient<\n Schema extends ZeroSchema,\n Models extends GenericModels,\n>({\n schema,\n models,\n groupedQueries,\n}: {\n schema: Schema\n models: Models\n groupedQueries: GroupedQueries\n}) {\n type ZeroMutators = GetZeroMutators<Models>\n type ZeroInstance = Zero<Schema, ZeroMutators>\n type TableName = keyof ZeroInstance['query']\n\n setSchema(schema)\n\n // build query registry from grouped queries\n // this creates ONE shared defineQueries registry that matches the server's structure\n const wrappedNamespaces: Record<\n string,\n Record<string, ReturnType<typeof defineQuery>>\n > = {}\n\n for (const [namespace, queries] of Object.entries(groupedQueries)) {\n wrappedNamespaces[namespace] = {}\n for (const [name, fn] of Object.entries(queries)) {\n registerQuery(fn, `${namespace}.${name}`)\n // wrap each plain function in defineQuery\n wrappedNamespaces[namespace][name] = defineQuery(({ args }: { args: any }) =>\n fn(args)\n )\n }\n }\n\n // create the single shared CustomQuery registry\n const customQueries = defineQueries(wrappedNamespaces)\n\n // register for global run() helper\n setCustomQueries(customQueries)\n\n const DisabledContext = createContext(false)\n\n const modelWritePermissions = mapObject(models, (val) => val.permissions) as Record<\n TableName,\n Where<any, any> | undefined\n >\n\n let latestZeroInstance: ZeroInstance | null = null\n\n // Proxy allows swapping the Zero instance on login without breaking existing references.\n // Ideally rocicorp/zero would support .setAuth() natively, but for now we swap instances.\n const zero: ZeroInstance = new Proxy({} as never, {\n get(_, key) {\n if (latestZeroInstance === null) {\n throw new Error(\n `Zero instance not initialized. Ensure ZeroProvider is mounted before accessing 'zero'.`\n )\n }\n return Reflect.get(latestZeroInstance, key, latestZeroInstance)\n },\n })\n\n const permissionsHelpers = createPermissions<Schema>({\n schema,\n environment: 'client',\n })\n\n // const permissionCache = createLocalStorage<string, boolean>('permissions-cache', {\n // storageLimit: 24,\n // })\n\n const zeroEvents = createEmitter<ZeroEvent | null>('zero', null)\n\n const AuthDataContext = createContext<AuthData>({} as AuthData)\n const useAuthData = () => use(AuthDataContext)\n\n const useQuery = createUseQuery<Schema>({\n DisabledContext,\n customQueries,\n })\n\n // we don't want flickers as you move around and these queries are re-run\n // and things generally aren't changing with permissions rapidly, so lets\n // cache the last results and use that when first rendering, they will\n // always update once the query resolves\n function usePermission<K extends TableName>(\n table: K,\n objOrId: string | Partial<Row<any>> | undefined,\n enabled = typeof objOrId !== 'undefined',\n debug = false\n ): boolean | null {\n const disabled = use(DisabledContext)\n // const cacheVal = permissionCache.get(key) ?? permissionCache.get(keyBase)\n const authData = useAuthData()\n const permission = modelWritePermissions[table]\n\n const query = (() => {\n let baseQuery = (zero.query as any)[table].one()\n\n if (disabled || !enabled || !permission) {\n return baseQuery\n }\n\n return baseQuery.where((eb) => {\n return permissionsHelpers.buildPermissionQuery(\n authData,\n eb,\n permission,\n objOrId as any\n )\n })\n })()\n\n // usePermission is internal and uses inline queries directly via zeroUseQuery\n const [data, status] = zeroUseQuery(query, {\n enabled: Boolean(enabled && permission && authData && objOrId),\n })\n\n if (debug) {\n console.info(\n `usePermission()`,\n { data, status, authData, permission },\n prettyFormatZeroQuery(query)\n )\n }\n\n const result = data\n\n const allowed = Boolean(result)\n\n if (!objOrId) {\n return false\n }\n\n return allowed\n }\n\n const ProvideZero = ({\n children,\n authData: authDataIn,\n disable,\n ...props\n }: Omit<ZeroOptions<Schema, ZeroMutators>, 'schema' | 'mutators'> & {\n children: ReactNode\n authData?: AuthData | null\n disable?: boolean\n }) => {\n const authData = (authDataIn ?? null) as AuthData\n\n const mutators = useMemo(() => {\n setAuthData(authData)\n\n return createMutators({\n models,\n environment: 'client',\n authData,\n can: permissionsHelpers.can,\n })\n }, [authData])\n\n // for now we re-parent\n if (disable) {\n return children\n }\n\n return (\n <AuthDataContext.Provider value={authData}>\n <ZeroProvider schema={schema} kvStore=\"mem\" mutators={mutators as any} {...props}>\n <SetZeroInstance />\n <ConnectionMonitor zeroEvents={zeroEvents} />\n {children}\n </ZeroProvider>\n </AuthDataContext.Provider>\n )\n }\n\n const SetZeroInstance = () => {\n const zeroInstance = useZero<Schema, ZeroMutators>()\n\n // TODO last hack zero wants us to use useZero but its a big migration\n // and has some downsides (global zero import leads to simpler code)\n // they plan to support .setAuth() at some point, and so long as we refresh\n // when we do change zero, this should be safe - that said we don't refresh\n // the browser for now, but we also don't handle new auth keys in general\n // we'll need to add that soon\n if (zeroInstance !== latestZeroInstance) {\n latestZeroInstance = zeroInstance\n // register runner for global run() helper\n setRunner((query, options) => zeroInstance.run(query as any, options))\n }\n\n return null\n }\n\n // monitors connection state and emits events (replaces onError callback removed in 0.25)\n const ConnectionMonitor = memo(\n ({\n zeroEvents,\n }: {\n zeroEvents: ReturnType<typeof createEmitter<ZeroEvent | null>>\n }) => {\n const state = useConnectionState()\n const prevState = useRef(state.name)\n\n useEffect(() => {\n if (state.name !== prevState.current) {\n const reason = 'reason' in state ? state.reason : ''\n prevState.current = state.name\n\n if (state.name === 'error' || state.name === 'needs-auth') {\n const message = typeof reason === 'string' ? reason : state.name\n zeroEvents.emit({\n type: 'error',\n message,\n })\n }\n }\n }, [state, zeroEvents])\n\n return null\n }\n )\n\n // preload data for a query into cache without materializing\n // uses same function signature as useQuery\n function preload<TArg, TTable extends keyof Schema['tables'] & string, TReturn>(\n fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>,\n params: TArg,\n options?: PreloadOptions\n ): { cleanup: () => void; complete: Promise<void> }\n function preload<TTable extends keyof Schema['tables'] & string, TReturn>(\n fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>,\n options?: PreloadOptions\n ): { cleanup: () => void; complete: Promise<void> }\n function preload(\n fnArg: any,\n paramsOrOptions?: any,\n optionsArg?: PreloadOptions\n ): { cleanup: () => void; complete: Promise<void> } {\n const hasParams =\n optionsArg !== undefined || (paramsOrOptions && !('ttl' in paramsOrOptions))\n const params = hasParams ? paramsOrOptions : undefined\n const options = hasParams ? optionsArg : paramsOrOptions\n\n const queryRequest = resolveQuery({ customQueries, fn: fnArg, params })\n return zero.preload(queryRequest as any, options)\n }\n\n return {\n zeroEvents,\n ProvideZero,\n useQuery,\n usePermission,\n zero,\n preload,\n }\n}\n","import { useQuery as zeroUseQuery } from '@rocicorp/zero/react'\nimport { use, useMemo, type Context } from 'react'\n\nimport { useZeroDebug } from './helpers/useZeroDebug'\nimport { resolveQuery, type PlainQueryFn } from './resolveQuery'\n\nimport type {\n AnyQueryRegistry,\n HumanReadable,\n Query,\n Schema as ZeroSchema,\n} from '@rocicorp/zero'\n\nexport type UseQueryOptions = {\n enabled?: boolean | undefined\n ttl?: 'always' | 'never' | number | undefined\n}\n\ntype QueryResultDetails = ReturnType<typeof zeroUseQuery>[1]\nexport type QueryResult<TReturn> = readonly [HumanReadable<TReturn>, QueryResultDetails]\n\nexport type { PlainQueryFn }\n\nexport type UseQueryHook<Schema extends ZeroSchema> = {\n // overload 1: plain function with params\n <TArg, TTable extends keyof Schema['tables'] & string, TReturn>(\n fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>,\n params: TArg,\n options?: UseQueryOptions | boolean\n ): QueryResult<TReturn>;\n\n // overload 2: plain function with no params\n <TTable extends keyof Schema['tables'] & string, TReturn>(\n fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>,\n options?: UseQueryOptions | boolean\n ): QueryResult<TReturn>\n}\n\nexport function createUseQuery<Schema extends ZeroSchema>({\n DisabledContext,\n customQueries,\n}: {\n DisabledContext: Context<boolean>\n customQueries: AnyQueryRegistry\n}): UseQueryHook<Schema> {\n function useQuery(...args: any[]): any {\n const disabled = use(DisabledContext)\n const [fn, paramsOrOptions, optionsArg] = args\n\n const { queryRequest, options } = useMemo(() => {\n // determine if this is with params or no params\n const hasParams =\n optionsArg !== undefined ||\n (paramsOrOptions &&\n typeof paramsOrOptions === 'object' &&\n !('enabled' in paramsOrOptions) &&\n !('ttl' in paramsOrOptions))\n\n const params = hasParams ? paramsOrOptions : undefined\n const opts = hasParams ? optionsArg : paramsOrOptions\n\n const queryRequest = resolveQuery({ customQueries, fn, params })\n\n return { queryRequest, options: opts }\n }, [fn, paramsOrOptions, optionsArg])\n\n const out = zeroUseQuery(queryRequest as any, options)\n\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useZeroDebug(queryRequest as any, options, out)\n }\n\n if (disabled) {\n return [null, { type: 'unknown' }] as never\n }\n\n return out\n }\n\n return useQuery as UseQueryHook<Schema>\n}\n","import { getCurrentComponentStack } from '@take-out/helpers'\nimport { useEffect, useId } from 'react'\n\nimport { prettyFormatZeroQuery } from './prettyFormatZeroQuery'\n\nimport type { Query } from '@rocicorp/zero'\n\nconst activeQueries = new Map<string, number>()\n\n// AST change tracking\ninterface AstHistory {\n asts: string[]\n changeCount: number\n}\n\nconst astHistoryByComponent = new Map<string, AstHistory>()\n\n// control what is logged here:\nconst filterLogs = (table: string): boolean => false\n\nconst COLLAPSED = true\nconst AST_CHANGE_THRESHOLD = 4\nconst MAX_AST_HISTORY = 10\n\n// short name because otherwise it often forces multiple lines in chrome devtools\n// due to showing the filename next to log lines\nexport const useZeroDebug = (query: Query<any, any, any>, options: any, results: any) => {\n const astObject = query['_completeAst']?.() ?? query['ast']\n const table = astObject?.table ?? 'unknown'\n const ast = JSON.stringify(astObject, null, 2)\n const queryDisabled = !options || options?.enabled === false\n const enabled = !queryDisabled && filterLogs(table)\n const stack = new Error().stack\n const isPermissionQuery = stack?.includes(`usePermission.ts`)\n const id = useId()\n\n // log here not in effect so we can breakpoint and find the query\n const num = activeQueries.get(ast) || 0\n const shouldLog = enabled && num === 0\n if (enabled) {\n activeQueries.set(ast, num + 1)\n if (shouldLog) {\n if (COLLAPSED) {\n console.groupCollapsed(\n `${isPermissionQuery ? `👮‍♂️` : `✨`}${prettyFormatZeroQuery(query, 'minimal')}`\n )\n console.info(id, prettyFormatZeroQuery(query, 'full'))\n console.info('cached result', results)\n console.trace()\n console.groupEnd()\n } else {\n console.info(`✨`, prettyFormatZeroQuery(query, 'full'))\n }\n }\n }\n\n // track AST changes per component\n useEffect(() => {\n if (!enabled) return\n const history = astHistoryByComponent.get(id) || { asts: [], changeCount: 0 }\n const currentAst = ast\n const lastAst = history.asts[history.asts.length - 1]\n\n if (currentAst !== lastAst) {\n history.asts.push(currentAst)\n if (history.asts.length > MAX_AST_HISTORY) {\n history.asts.shift()\n }\n history.changeCount++\n astHistoryByComponent.set(id, history)\n\n if (history.changeCount > AST_CHANGE_THRESHOLD) {\n console.warn(\n `⚠️ AST changed ${history.changeCount} times for component.\n - id: ${id}\n - stack: ${getCurrentComponentStack('short')}\n - table: ${table}`,\n {\n componentId: id,\n table,\n changeCount: history.changeCount,\n recentAsts: history.asts,\n }\n )\n }\n }\n }, [id, ast, table, enabled])\n\n useEffect(() => {\n if (!enabled) return\n return () => {\n activeQueries.set(ast, activeQueries.get(ast)! - 1)\n }\n }, [ast, enabled])\n\n // cleanup AST history on unmount\n useEffect(() => {\n return () => {\n astHistoryByComponent.delete(id)\n }\n }, [id])\n}\n","import { getQueryName } from './queryRegistry'\n\nimport type { AnyQueryRegistry, Query, Schema as ZeroSchema } from '@rocicorp/zero'\n\nexport type PlainQueryFn<\n TArg = any,\n TReturn extends Query<any, any, any> = Query<any, any, any>,\n> = (args: TArg) => TReturn\n\n/**\n * resolves a plain query function to a QueryRequest using the customQueries registry\n */\nexport function resolveQuery<Schema extends ZeroSchema>({\n customQueries,\n fn,\n params,\n}: {\n customQueries: AnyQueryRegistry\n fn: PlainQueryFn<any, Query<any, Schema, any>>\n params?: any\n}) {\n const queryName = getQueryName(fn)\n if (!queryName) {\n const fnName = fn?.name || 'anonymous'\n throw new Error(\n `Query function '${fnName}' not registered. ` +\n `Ensure it is exported from a queries file and passed to createZeroClient via groupedQueries.`\n )\n }\n\n // look up the CustomQuery from the shared registry\n // queryName is \"namespace.name\" format, e.g., \"user.userById\"\n const [namespace, name] = queryName.split('.', 2)\n const customQuery = (customQueries as any)[namespace]?.[name]\n\n if (!customQuery) {\n throw new Error(\n `CustomQuery '${queryName}' not found. ` +\n `Check that the query is exported and the namespace/name matches.`\n )\n }\n\n return params !== undefined ? customQuery(params) : customQuery()\n}\n","import type {\n HumanReadable,\n Query,\n RunOptions,\n Schema as ZeroSchema,\n} from '@rocicorp/zero'\n\nexport type { RunOptions }\n\nexport type ZeroRunner = <TReturn>(\n query: Query<any, ZeroSchema, TReturn>,\n options?: RunOptions\n) => Promise<HumanReadable<TReturn>>\n\nlet runner: ZeroRunner | null = null\n\nexport function setRunner(r: ZeroRunner) {\n runner = r\n}\n\nexport function getRunner(): ZeroRunner {\n if (!runner) {\n throw new Error(\n 'Zero runner not initialized. Ensure ProvideZero is mounted (client) or createZeroServer is called (server).'\n )\n }\n return runner\n}\n","import { resolveQuery, type PlainQueryFn } from './resolveQuery'\nimport { getRunner, type RunOptions } from './zeroRunner'\n\nimport type {\n AnyQueryRegistry,\n HumanReadable,\n Query,\n Schema as ZeroSchema,\n} from '@rocicorp/zero'\n\nlet customQueriesRef: AnyQueryRegistry | null = null\n\nexport function setCustomQueries(queries: AnyQueryRegistry) {\n customQueriesRef = queries\n}\n\nfunction getCustomQueries(): AnyQueryRegistry {\n if (!customQueriesRef) {\n throw new Error(\n 'Custom queries not initialized. Ensure createZeroClient or createZeroServer has been called.'\n )\n }\n return customQueriesRef\n}\n\n// run a query once and return results (non-reactive)\nexport function run<\n Schema extends ZeroSchema,\n TArg,\n TTable extends keyof Schema['tables'] & string,\n TReturn,\n>(\n fn: PlainQueryFn<TArg, Query<TTable, Schema, TReturn>>,\n params: TArg,\n options?: RunOptions\n): Promise<HumanReadable<TReturn>>\n\nexport function run<\n Schema extends ZeroSchema,\n TTable extends keyof Schema['tables'] & string,\n TReturn,\n>(\n fn: PlainQueryFn<void, Query<TTable, Schema, TReturn>>,\n options?: RunOptions\n): Promise<HumanReadable<TReturn>>\n\nexport function run(\n fnArg: any,\n paramsOrOptions?: any,\n optionsArg?: RunOptions\n): Promise<any> {\n const hasParams =\n optionsArg !== undefined || (paramsOrOptions && !('type' in paramsOrOptions))\n const params = hasParams ? paramsOrOptions : undefined\n const options = hasParams ? optionsArg : paramsOrOptions\n\n const customQueries = getCustomQueries()\n const queryRequest = resolveQuery({ customQueries, fn: fnArg, params })\n const runner = getRunner()\n\n return runner(queryRequest as any, options)\n}\n","import { getDidRunPermissionCheck } from './helpers/didRunPermissionCheck'\n\nimport type {\n MutatorContext,\n TableInsertRow,\n TableName,\n TableUpdateRow,\n Where,\n} from './types'\nimport type { TableBuilderWithColumns } from '@rocicorp/zero'\n\n// two ways to use it:\n// - mutations({}) which doesn't add the \"allowed\" helper or add CRUD\n// - mutation('tableName', permissions) adds CRUD with permissions, adds allowed\n\ntype MutationBuilder<Obj = any> = (ctx: MutatorContext, obj?: Obj) => Promise<void>\ntype MutationBuilders = Record<string, MutationBuilder>\n\n// start of adding custom can.write(message) style\n\n// type PermissionedMutationBuilder<Permissions extends PermissionsWhere, Obj = any> = (\n// ctx: MutatorContext & {\n// can: any\n// },\n// obj?: Obj\n// ) => Promise<void>\n// type PermissionedMutationBuilders<Permissions extends PermissionsWhere> = Record<\n// string,\n// PermissionedMutationBuilder<Permissions>\n// >\n\ntype GenericTable = TableBuilderWithColumns<any>\n\ntype CRUDMutations<Table extends GenericTable> = {\n insert: MutationBuilder<TableInsertRow<Table>>\n upsert: MutationBuilder<TableInsertRow<Table>>\n update: MutationBuilder<TableUpdateRow<Table>>\n delete: MutationBuilder<TableUpdateRow<Table>>\n}\n\ntype CRUDNames = 'insert' | 'upsert' | 'update' | 'delete'\n\ntype MutationsWithCRUD<Table extends GenericTable, Mutations extends MutationBuilders> = {\n [Key in CRUDNames | keyof Mutations]: Key extends keyof Mutations\n ? Mutations[Key]\n : Key extends keyof CRUDMutations<any>\n ? CRUDMutations<Table>[Key]\n : never\n}\n\nexport function mutations<Mutations extends MutationBuilders>(\n mutations: Mutations\n): Mutations\nexport function mutations<Table extends GenericTable, Permissions extends Where>(\n table: Table,\n permissions: Permissions\n): MutationsWithCRUD<Table, {}>\nexport function mutations<\n Table extends GenericTable,\n Permissions extends Where,\n Mutations extends MutationBuilders,\n>(\n table: Table,\n permissions: Permissions,\n mutations: Mutations\n): MutationsWithCRUD<Table, Mutations>\n// TODO we should enforece the CRUD mutations obj to the callier so they get it auto-typed\nexport function mutations<\n Table extends GenericTable,\n Mutations extends Record<string, MutationBuilder>,\n>(table: Table | Mutations, permissions?: Where, mutations?: Mutations): Mutations {\n if (permissions) {\n const tableName = (table as Table).schema.name as TableName\n\n const createCRUDMutation = (action: CRUDNames) => {\n return async (ctx: MutatorContext, obj: any) => {\n /**\n * CRUD mutations have permissions handled automatically using `can`:\n * - `can` throws an error if it fails\n * - zero catches error and rolls back transaction\n * - zero returns error to client when you await zero.mutate.x.z().server\n * - for INSERT: check runs after insert completes\n * - for the rest: check runs before mutation\n */\n const runServerPermissionCheck = async () => {\n if (getDidRunPermissionCheck(ctx)) {\n // if the user-defined CRUD mutation runs their own \"can\", we avoid running ours\n return\n }\n\n // only validate on the server\n if (process.env.VITE_ENVIRONMENT === 'ssr') {\n await ctx.can(permissions, obj)\n }\n }\n\n if (action !== 'insert') {\n await runServerPermissionCheck()\n }\n\n // if user defines insert run theirs, if not run plain zero:\n const existing = mutations?.[action]\n\n if (existing) {\n await existing(ctx, obj)\n } else {\n type TableName = keyof typeof ctx.tx.mutate // weird type foo because we declare this module and then type check\n await ctx.tx.mutate[tableName as TableName]![action](obj)\n }\n\n if (action === 'insert') {\n await runServerPermissionCheck()\n }\n }\n }\n\n const crudMutations: CRUDMutations<any> = {\n insert: createCRUDMutation('insert'),\n update: createCRUDMutation('update'),\n delete: createCRUDMutation('delete'),\n upsert: createCRUDMutation('upsert'),\n }\n\n return {\n ...mutations,\n // overwrite regular mutations but call them if they are defined by user\n ...crudMutations,\n } as any as Mutations\n }\n\n // no schema/permissions don't add CRUD\n return table as any\n}\n","import { where } from './where'\n\nimport type { TableName, Where } from './types'\nimport type { Condition } from '@rocicorp/zero'\n\nexport function serverWhere<Table extends TableName, Builder extends Where<Table>>(\n tableName: Table,\n builder: Builder\n): Where<Table, Condition>\n\nexport function serverWhere<\n Table extends TableName,\n Builder extends Where = Where<Table>,\n>(builder: Builder): Where<Table, Condition>\n\nexport function serverWhere<Table extends TableName, Builder extends Where<Table>>(\n a: Table | Builder,\n b?: Builder\n): Where<Table, any> | Builder {\n return where(a as any, b as any, true)\n}\n","import { getZQL } from './state'\n\nimport type { QueryBuilder } from './types'\n\nexport const zql = new Proxy({} as QueryBuilder, {\n get(_target, prop) {\n const b = getZQL()\n return (b as any)[prop]\n },\n})\n"],"mappings":"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","names":["zql","import_helpers","import_helpers","import_helpers","where","import_helpers","a","b","where","schema","authData","where","import_helpers","import_constants","import_helpers","authData","import_helpers","authData","import_zero","import_react","import_helpers","import_react","import_helpers","queryRequest","zeroUseQuery","runner","schema","authData","zeroUseQuery","zeroEvents","mutations","zql"]}