over-zero 0.0.10 → 0.0.13

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 (392) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/{build/schema.cjs → builder.cjs} +10 -7
  3. package/dist/cjs/{helpers/zeroEmitter.js → builder.js} +11 -7
  4. package/dist/cjs/builder.js.map +6 -0
  5. package/dist/cjs/builder.native.js +35 -0
  6. package/dist/cjs/builder.native.js.map +1 -0
  7. package/dist/cjs/cli.cjs +299 -0
  8. package/dist/cjs/cli.js +292 -0
  9. package/dist/cjs/cli.js.map +6 -0
  10. package/dist/cjs/cli.native.js +386 -0
  11. package/dist/cjs/cli.native.js.map +1 -0
  12. package/dist/cjs/createPermissions.cjs +22 -56
  13. package/dist/cjs/createPermissions.js +22 -64
  14. package/dist/cjs/createPermissions.js.map +1 -1
  15. package/dist/cjs/createPermissions.native.js +61 -87
  16. package/dist/cjs/createPermissions.native.js.map +1 -6
  17. package/dist/cjs/createZeroClient.cjs +41 -21
  18. package/dist/cjs/createZeroClient.js +23 -16
  19. package/dist/cjs/createZeroClient.js.map +1 -1
  20. package/dist/cjs/createZeroClient.native.js +139 -81
  21. package/dist/cjs/createZeroClient.native.js.map +1 -6
  22. package/dist/cjs/createZeroServer.cjs +40 -34
  23. package/dist/cjs/createZeroServer.js +35 -27
  24. package/dist/cjs/createZeroServer.js.map +2 -2
  25. package/dist/cjs/createZeroServer.native.js +119 -77
  26. package/dist/cjs/createZeroServer.native.js.map +1 -6
  27. package/dist/cjs/helpers/batchQuery.native.js +25 -18
  28. package/dist/cjs/helpers/batchQuery.native.js.map +1 -6
  29. package/dist/cjs/helpers/context.js.map +1 -1
  30. package/dist/cjs/helpers/context.native.js +20 -19
  31. package/dist/cjs/helpers/context.native.js.map +1 -6
  32. package/dist/cjs/helpers/createMutators.cjs +2 -2
  33. package/dist/cjs/helpers/createMutators.js +2 -2
  34. package/dist/cjs/helpers/createMutators.js.map +1 -1
  35. package/dist/cjs/helpers/createMutators.native.js +52 -41
  36. package/dist/cjs/helpers/createMutators.native.js.map +1 -6
  37. package/dist/cjs/helpers/didRunPermissionCheck.native.js +27 -22
  38. package/dist/cjs/helpers/didRunPermissionCheck.native.js.map +1 -6
  39. package/dist/cjs/helpers/ensureLoggedIn.cjs +2 -2
  40. package/dist/cjs/helpers/ensureLoggedIn.js +2 -2
  41. package/dist/cjs/helpers/ensureLoggedIn.js.map +1 -1
  42. package/dist/cjs/helpers/ensureLoggedIn.native.js +25 -18
  43. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -6
  44. package/dist/cjs/helpers/getQueryOrMutatorAuthData.cjs +30 -0
  45. package/dist/cjs/{build/schema.native.js → helpers/getQueryOrMutatorAuthData.js} +9 -13
  46. package/dist/cjs/helpers/getQueryOrMutatorAuthData.js.map +6 -0
  47. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js +33 -0
  48. package/dist/cjs/helpers/getQueryOrMutatorAuthData.native.js.map +1 -0
  49. package/dist/cjs/helpers/mutatorContext.cjs +40 -0
  50. package/dist/cjs/helpers/mutatorContext.js +36 -0
  51. package/dist/cjs/helpers/mutatorContext.js.map +6 -0
  52. package/dist/cjs/helpers/mutatorContext.native.js +43 -0
  53. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -0
  54. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +102 -82
  55. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -6
  56. package/dist/cjs/helpers/queryContext.cjs +40 -0
  57. package/dist/cjs/helpers/{getDidRunPermissionCheck.native.js → queryContext.js} +21 -13
  58. package/dist/cjs/helpers/queryContext.js.map +6 -0
  59. package/dist/cjs/helpers/queryContext.native.js +43 -0
  60. package/dist/cjs/helpers/queryContext.native.js.map +1 -0
  61. package/dist/cjs/helpers/queryOrMutatorAuthData.js +1 -0
  62. package/dist/cjs/helpers/queryOrMutatorAuthData.native.js +2 -0
  63. package/dist/cjs/helpers/queryOrMutatorContext.js +1 -0
  64. package/dist/cjs/helpers/queryOrMutatorContext.native.js +2 -0
  65. package/dist/cjs/helpers/useZeroDebug.native.js +63 -50
  66. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -6
  67. package/dist/cjs/index.cjs +3 -2
  68. package/dist/cjs/index.js +3 -2
  69. package/dist/cjs/index.js.map +1 -1
  70. package/dist/cjs/index.native.js +21 -26
  71. package/dist/cjs/index.native.js.map +1 -6
  72. package/dist/cjs/mutations.cjs +1 -1
  73. package/dist/cjs/mutations.js +1 -1
  74. package/dist/cjs/mutations.js.map +1 -1
  75. package/dist/cjs/mutations.native.js +33 -28
  76. package/dist/cjs/mutations.native.js.map +1 -6
  77. package/dist/cjs/query.cjs +34 -0
  78. package/dist/cjs/{helpers/zeroEmitter.native.js → query.js} +13 -11
  79. package/dist/cjs/query.js.map +6 -0
  80. package/dist/cjs/query.native.js +39 -0
  81. package/dist/cjs/query.native.js.map +1 -0
  82. package/dist/cjs/{helpers/getDidRunPermissionCheck.cjs → queryBuilder.cjs} +10 -6
  83. package/dist/cjs/{build/schema.js → queryBuilder.js} +11 -7
  84. package/dist/cjs/queryBuilder.js.map +6 -0
  85. package/dist/cjs/queryBuilder.native.js +35 -0
  86. package/dist/cjs/queryBuilder.native.js.map +1 -0
  87. package/dist/cjs/server.native.js +13 -12
  88. package/dist/cjs/server.native.js.map +1 -6
  89. package/dist/cjs/state.cjs +52 -0
  90. package/dist/cjs/state.js +40 -0
  91. package/dist/cjs/state.js.map +6 -0
  92. package/dist/cjs/state.native.js +55 -0
  93. package/dist/cjs/state.native.js.map +1 -0
  94. package/dist/cjs/types.native.js +9 -5
  95. package/dist/cjs/types.native.js.map +1 -6
  96. package/dist/cjs/where.cjs +9 -2
  97. package/dist/cjs/where.js +8 -2
  98. package/dist/cjs/where.js.map +2 -2
  99. package/dist/cjs/where.native.js +29 -19
  100. package/dist/cjs/where.native.js.map +1 -6
  101. package/dist/cjs/{helpers/zeroEmitter.cjs → zql.cjs} +10 -6
  102. package/dist/cjs/{helpers/getDidRunPermissionCheck.js → zql.js} +11 -6
  103. package/dist/cjs/zql.js.map +6 -0
  104. package/dist/cjs/zql.native.js +35 -0
  105. package/dist/cjs/zql.native.js.map +1 -0
  106. package/dist/esm/builder.js +10 -0
  107. package/dist/esm/builder.js.map +6 -0
  108. package/dist/esm/builder.mjs +8 -0
  109. package/dist/esm/builder.mjs.map +1 -0
  110. package/dist/esm/builder.native.js +9 -0
  111. package/dist/esm/builder.native.js.map +1 -0
  112. package/dist/esm/cli.js +278 -0
  113. package/dist/esm/cli.js.map +6 -0
  114. package/dist/esm/cli.mjs +278 -0
  115. package/dist/esm/cli.mjs.map +1 -0
  116. package/dist/esm/cli.native.js +362 -0
  117. package/dist/esm/cli.native.js.map +1 -0
  118. package/dist/esm/createPermissions.js +21 -64
  119. package/dist/esm/createPermissions.js.map +1 -1
  120. package/dist/esm/createPermissions.mjs +20 -54
  121. package/dist/esm/createPermissions.mjs.map +1 -1
  122. package/dist/esm/createPermissions.native.js +26 -66
  123. package/dist/esm/createPermissions.native.js.map +1 -1
  124. package/dist/esm/createZeroClient.js +24 -16
  125. package/dist/esm/createZeroClient.js.map +1 -1
  126. package/dist/esm/createZeroClient.mjs +40 -20
  127. package/dist/esm/createZeroClient.mjs.map +1 -1
  128. package/dist/esm/createZeroClient.native.js +56 -25
  129. package/dist/esm/createZeroClient.native.js.map +1 -1
  130. package/dist/esm/createZeroServer.js +36 -19
  131. package/dist/esm/createZeroServer.js.map +1 -1
  132. package/dist/esm/createZeroServer.mjs +35 -18
  133. package/dist/esm/createZeroServer.mjs.map +1 -1
  134. package/dist/esm/createZeroServer.native.js +43 -23
  135. package/dist/esm/createZeroServer.native.js.map +1 -1
  136. package/dist/esm/helpers/context.js.map +1 -1
  137. package/dist/esm/helpers/context.mjs.map +1 -1
  138. package/dist/esm/helpers/context.native.js.map +1 -1
  139. package/dist/esm/helpers/createMutators.js +1 -1
  140. package/dist/esm/helpers/createMutators.mjs +1 -1
  141. package/dist/esm/helpers/createMutators.native.js +1 -1
  142. package/dist/esm/helpers/ensureLoggedIn.js +2 -2
  143. package/dist/esm/helpers/ensureLoggedIn.js.map +1 -1
  144. package/dist/esm/helpers/ensureLoggedIn.mjs +2 -2
  145. package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
  146. package/dist/esm/helpers/ensureLoggedIn.native.js +2 -2
  147. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
  148. package/dist/esm/helpers/getQueryOrMutatorAuthData.js +9 -0
  149. package/dist/esm/helpers/getQueryOrMutatorAuthData.js.map +6 -0
  150. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs +7 -0
  151. package/dist/esm/helpers/getQueryOrMutatorAuthData.mjs.map +1 -0
  152. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js +7 -0
  153. package/dist/esm/helpers/getQueryOrMutatorAuthData.native.js.map +1 -0
  154. package/dist/esm/helpers/mutatorContext.js +20 -0
  155. package/dist/esm/helpers/mutatorContext.js.map +6 -0
  156. package/dist/esm/helpers/mutatorContext.mjs +15 -0
  157. package/dist/esm/helpers/mutatorContext.mjs.map +1 -0
  158. package/dist/esm/helpers/mutatorContext.native.js +15 -0
  159. package/dist/esm/helpers/mutatorContext.native.js.map +1 -0
  160. package/dist/esm/helpers/queryContext.js +20 -0
  161. package/dist/esm/helpers/queryContext.js.map +6 -0
  162. package/dist/esm/helpers/queryContext.mjs +15 -0
  163. package/dist/esm/helpers/queryContext.mjs.map +1 -0
  164. package/dist/esm/helpers/queryContext.native.js +15 -0
  165. package/dist/esm/helpers/queryContext.native.js.map +1 -0
  166. package/dist/esm/helpers/queryOrMutatorAuthData.js +1 -0
  167. package/dist/esm/helpers/queryOrMutatorAuthData.mjs +2 -0
  168. package/dist/esm/helpers/queryOrMutatorAuthData.native.js +2 -0
  169. package/dist/esm/helpers/queryOrMutatorContext.js +1 -0
  170. package/dist/esm/helpers/queryOrMutatorContext.mjs +2 -0
  171. package/dist/esm/helpers/queryOrMutatorContext.mjs.map +1 -0
  172. package/dist/esm/helpers/queryOrMutatorContext.native.js +2 -0
  173. package/dist/esm/helpers/queryOrMutatorContext.native.js.map +1 -0
  174. package/dist/esm/index.js +3 -2
  175. package/dist/esm/index.js.map +1 -1
  176. package/dist/esm/index.mjs +3 -2
  177. package/dist/esm/index.mjs.map +1 -1
  178. package/dist/esm/index.native.js +3 -2
  179. package/dist/esm/index.native.js.map +1 -1
  180. package/dist/esm/mutations.js +1 -1
  181. package/dist/esm/mutations.js.map +1 -1
  182. package/dist/esm/mutations.mjs +1 -1
  183. package/dist/esm/mutations.mjs.map +1 -1
  184. package/dist/esm/mutations.native.js +1 -1
  185. package/dist/esm/mutations.native.js.map +1 -1
  186. package/dist/esm/query.js +13 -0
  187. package/dist/esm/query.js.map +6 -0
  188. package/dist/esm/query.mjs +11 -0
  189. package/dist/esm/query.mjs.map +1 -0
  190. package/dist/esm/query.native.js +13 -0
  191. package/dist/esm/query.native.js.map +1 -0
  192. package/dist/esm/queryBuilder.js +10 -0
  193. package/dist/esm/queryBuilder.js.map +6 -0
  194. package/dist/esm/queryBuilder.mjs +8 -0
  195. package/dist/esm/queryBuilder.mjs.map +1 -0
  196. package/dist/esm/queryBuilder.native.js +9 -0
  197. package/dist/esm/queryBuilder.native.js.map +1 -0
  198. package/dist/esm/state.js +24 -0
  199. package/dist/esm/state.js.map +6 -0
  200. package/dist/esm/state.mjs +25 -0
  201. package/dist/esm/state.mjs.map +1 -0
  202. package/dist/esm/state.native.js +25 -0
  203. package/dist/esm/state.native.js.map +1 -0
  204. package/dist/esm/where.js +9 -2
  205. package/dist/esm/where.js.map +2 -2
  206. package/dist/esm/where.mjs +9 -2
  207. package/dist/esm/where.mjs.map +1 -1
  208. package/dist/esm/where.native.js +10 -2
  209. package/dist/esm/where.native.js.map +1 -1
  210. package/dist/esm/zql.js +10 -0
  211. package/dist/esm/zql.js.map +6 -0
  212. package/dist/esm/zql.mjs +8 -0
  213. package/dist/esm/zql.mjs.map +1 -0
  214. package/dist/esm/zql.native.js +9 -0
  215. package/dist/esm/zql.native.js.map +1 -0
  216. package/package.json +13 -3
  217. package/readme.md +460 -13
  218. package/src/cli.ts +511 -0
  219. package/src/createPermissions.ts +21 -123
  220. package/src/createZeroClient.tsx +107 -23
  221. package/src/createZeroServer.ts +64 -29
  222. package/src/helpers/createMutators.ts +1 -1
  223. package/src/helpers/ensureLoggedIn.ts +2 -2
  224. package/src/helpers/getQueryOrMutatorAuthData.ts +11 -0
  225. package/src/helpers/{context.ts → mutatorContext.ts} +2 -6
  226. package/src/index.ts +3 -2
  227. package/src/mutations.ts +1 -1
  228. package/src/state.ts +32 -0
  229. package/src/types.ts +11 -5
  230. package/src/where.ts +33 -8
  231. package/src/zql.ts +9 -0
  232. package/types/builder.d.ts +3 -0
  233. package/types/builder.d.ts.map +1 -0
  234. package/types/cli.d.ts +3 -0
  235. package/types/cli.d.ts.map +1 -0
  236. package/types/createPermissions.d.ts +3 -27
  237. package/types/createPermissions.d.ts.map +1 -1
  238. package/types/createZeroClient.d.ts +16 -4
  239. package/types/createZeroClient.d.ts.map +1 -1
  240. package/types/createZeroServer.d.ts +33 -6
  241. package/types/createZeroServer.d.ts.map +1 -1
  242. package/types/helpers/context.d.ts.map +1 -1
  243. package/types/helpers/getQueryOrMutatorAuthData.d.ts +3 -0
  244. package/types/helpers/getQueryOrMutatorAuthData.d.ts.map +1 -0
  245. package/types/helpers/mutatorContext.d.ts +5 -0
  246. package/types/helpers/mutatorContext.d.ts.map +1 -0
  247. package/types/helpers/queryContext.d.ts +5 -0
  248. package/types/helpers/queryContext.d.ts.map +1 -0
  249. package/types/index.d.ts +3 -2
  250. package/types/index.d.ts.map +1 -1
  251. package/types/state.d.ts +8 -0
  252. package/types/state.d.ts.map +1 -0
  253. package/types/types.d.ts +5 -4
  254. package/types/types.d.ts.map +1 -1
  255. package/types/where.d.ts +3 -2
  256. package/types/where.d.ts.map +1 -1
  257. package/types/zql.d.ts +3 -0
  258. package/types/zql.d.ts.map +1 -0
  259. package/dist/cjs/build/readPermissions.cjs +0 -51
  260. package/dist/cjs/build/readPermissions.js +0 -48
  261. package/dist/cjs/build/readPermissions.js.map +0 -6
  262. package/dist/cjs/build/readPermissions.native.js +0 -56
  263. package/dist/cjs/build/readPermissions.native.js.map +0 -6
  264. package/dist/cjs/build/schema.js.map +0 -6
  265. package/dist/cjs/build/schema.native.js.map +0 -6
  266. package/dist/cjs/createClient.cjs +0 -89
  267. package/dist/cjs/createClient.js +0 -76
  268. package/dist/cjs/createClient.js.map +0 -6
  269. package/dist/cjs/createClient.native.js +0 -81
  270. package/dist/cjs/createClient.native.js.map +0 -6
  271. package/dist/cjs/createMutations.cjs +0 -50
  272. package/dist/cjs/createMutations.js +0 -43
  273. package/dist/cjs/createMutations.js.map +0 -6
  274. package/dist/cjs/createMutations.native.js +0 -50
  275. package/dist/cjs/createMutations.native.js.map +0 -6
  276. package/dist/cjs/createServer.cjs +0 -92
  277. package/dist/cjs/createServer.js +0 -71
  278. package/dist/cjs/createServer.js.map +0 -6
  279. package/dist/cjs/createServer.native.js +0 -75
  280. package/dist/cjs/createServer.native.js.map +0 -6
  281. package/dist/cjs/createZero.cjs +0 -128
  282. package/dist/cjs/createZero.js +0 -107
  283. package/dist/cjs/createZero.js.map +0 -6
  284. package/dist/cjs/createZero.native.js +0 -115
  285. package/dist/cjs/createZero.native.js.map +0 -6
  286. package/dist/cjs/helpers/clearZeroDatabase.cjs +0 -57
  287. package/dist/cjs/helpers/clearZeroDatabase.js +0 -57
  288. package/dist/cjs/helpers/clearZeroDatabase.js.map +0 -6
  289. package/dist/cjs/helpers/clearZeroDatabase.native.js +0 -71
  290. package/dist/cjs/helpers/clearZeroDatabase.native.js.map +0 -6
  291. package/dist/cjs/helpers/getAuthData.js +0 -1
  292. package/dist/cjs/helpers/getAuthData.native.js +0 -2
  293. package/dist/cjs/helpers/getDidRunPermissionCheck.js.map +0 -6
  294. package/dist/cjs/helpers/getDidRunPermissionCheck.native.js.map +0 -6
  295. package/dist/cjs/helpers/setupZeroClientGlobalEffects.cjs +0 -40
  296. package/dist/cjs/helpers/setupZeroClientGlobalEffects.js +0 -36
  297. package/dist/cjs/helpers/setupZeroClientGlobalEffects.js.map +0 -6
  298. package/dist/cjs/helpers/setupZeroClientGlobalEffects.native.js +0 -36
  299. package/dist/cjs/helpers/setupZeroClientGlobalEffects.native.js.map +0 -6
  300. package/dist/cjs/helpers/useAuthData.js +0 -1
  301. package/dist/cjs/helpers/useAuthData.native.js +0 -2
  302. package/dist/cjs/helpers/useZDB.cjs +0 -70
  303. package/dist/cjs/helpers/useZDB.js +0 -51
  304. package/dist/cjs/helpers/useZDB.js.map +0 -6
  305. package/dist/cjs/helpers/useZDB.native.js +0 -68
  306. package/dist/cjs/helpers/useZDB.native.js.map +0 -6
  307. package/dist/cjs/helpers/zeroEmitter.js.map +0 -6
  308. package/dist/cjs/helpers/zeroEmitter.native.js.map +0 -6
  309. package/dist/esm/build/readPermissions.js +0 -36
  310. package/dist/esm/build/readPermissions.js.map +0 -6
  311. package/dist/esm/build/readPermissions.mjs +0 -28
  312. package/dist/esm/build/readPermissions.mjs.map +0 -1
  313. package/dist/esm/build/readPermissions.native.js +0 -34
  314. package/dist/esm/build/readPermissions.native.js.map +0 -1
  315. package/dist/esm/build/schema.js +0 -7
  316. package/dist/esm/build/schema.js.map +0 -6
  317. package/dist/esm/build/schema.mjs +0 -4
  318. package/dist/esm/build/schema.mjs.map +0 -1
  319. package/dist/esm/build/schema.native.js +0 -4
  320. package/dist/esm/build/schema.native.js.map +0 -1
  321. package/dist/esm/createClient.js +0 -68
  322. package/dist/esm/createClient.js.map +0 -6
  323. package/dist/esm/createClient.mjs +0 -66
  324. package/dist/esm/createClient.mjs.map +0 -1
  325. package/dist/esm/createClient.native.js +0 -74
  326. package/dist/esm/createClient.native.js.map +0 -1
  327. package/dist/esm/createMutations.js +0 -27
  328. package/dist/esm/createMutations.js.map +0 -6
  329. package/dist/esm/createMutations.mjs +0 -27
  330. package/dist/esm/createMutations.mjs.map +0 -1
  331. package/dist/esm/createMutations.native.js +0 -29
  332. package/dist/esm/createMutations.native.js.map +0 -1
  333. package/dist/esm/createServer.js +0 -54
  334. package/dist/esm/createServer.js.map +0 -6
  335. package/dist/esm/createServer.mjs +0 -58
  336. package/dist/esm/createServer.mjs.map +0 -1
  337. package/dist/esm/createServer.native.js +0 -61
  338. package/dist/esm/createServer.native.js.map +0 -1
  339. package/dist/esm/createZero.js +0 -99
  340. package/dist/esm/createZero.js.map +0 -6
  341. package/dist/esm/createZero.mjs +0 -105
  342. package/dist/esm/createZero.mjs.map +0 -1
  343. package/dist/esm/createZero.native.js +0 -119
  344. package/dist/esm/createZero.native.js.map +0 -1
  345. package/dist/esm/helpers/clearZeroDatabase.js +0 -42
  346. package/dist/esm/helpers/clearZeroDatabase.js.map +0 -6
  347. package/dist/esm/helpers/clearZeroDatabase.mjs +0 -34
  348. package/dist/esm/helpers/clearZeroDatabase.mjs.map +0 -1
  349. package/dist/esm/helpers/clearZeroDatabase.native.js +0 -50
  350. package/dist/esm/helpers/clearZeroDatabase.native.js.map +0 -1
  351. package/dist/esm/helpers/getAuthData.js +0 -1
  352. package/dist/esm/helpers/getAuthData.js.map +0 -6
  353. package/dist/esm/helpers/getAuthData.mjs +0 -2
  354. package/dist/esm/helpers/getAuthData.native.js +0 -2
  355. package/dist/esm/helpers/getDidRunPermissionCheck.js +0 -5
  356. package/dist/esm/helpers/getDidRunPermissionCheck.js.map +0 -6
  357. package/dist/esm/helpers/getDidRunPermissionCheck.mjs +0 -4
  358. package/dist/esm/helpers/getDidRunPermissionCheck.mjs.map +0 -1
  359. package/dist/esm/helpers/getDidRunPermissionCheck.native.js +0 -6
  360. package/dist/esm/helpers/getDidRunPermissionCheck.native.js.map +0 -1
  361. package/dist/esm/helpers/setupZeroClientGlobalEffects.js +0 -40
  362. package/dist/esm/helpers/setupZeroClientGlobalEffects.js.map +0 -6
  363. package/dist/esm/helpers/setupZeroClientGlobalEffects.mjs +0 -41
  364. package/dist/esm/helpers/setupZeroClientGlobalEffects.mjs.map +0 -1
  365. package/dist/esm/helpers/setupZeroClientGlobalEffects.native.js +0 -41
  366. package/dist/esm/helpers/setupZeroClientGlobalEffects.native.js.map +0 -1
  367. package/dist/esm/helpers/useAuthData.js +0 -1
  368. package/dist/esm/helpers/useAuthData.js.map +0 -6
  369. package/dist/esm/helpers/useAuthData.mjs +0 -2
  370. package/dist/esm/helpers/useAuthData.native.js +0 -2
  371. package/dist/esm/helpers/useZDB.js +0 -38
  372. package/dist/esm/helpers/useZDB.js.map +0 -6
  373. package/dist/esm/helpers/useZDB.mjs +0 -47
  374. package/dist/esm/helpers/useZDB.mjs.map +0 -1
  375. package/dist/esm/helpers/useZDB.native.js +0 -55
  376. package/dist/esm/helpers/useZDB.native.js.map +0 -1
  377. package/dist/esm/helpers/zeroEmitter.js +0 -6
  378. package/dist/esm/helpers/zeroEmitter.js.map +0 -6
  379. package/dist/esm/helpers/zeroEmitter.mjs +0 -4
  380. package/dist/esm/helpers/zeroEmitter.mjs.map +0 -1
  381. package/dist/esm/helpers/zeroEmitter.native.js +0 -4
  382. package/dist/esm/helpers/zeroEmitter.native.js.map +0 -1
  383. /package/dist/cjs/helpers/{getAuthData.cjs → queryOrMutatorAuthData.cjs} +0 -0
  384. /package/dist/cjs/helpers/{getAuthData.js.map → queryOrMutatorAuthData.js.map} +0 -0
  385. /package/dist/{esm/helpers/getAuthData.mjs.map → cjs/helpers/queryOrMutatorAuthData.native.js.map} +0 -0
  386. /package/dist/cjs/helpers/{useAuthData.cjs → queryOrMutatorContext.cjs} +0 -0
  387. /package/dist/cjs/helpers/{getAuthData.native.js.map → queryOrMutatorContext.js.map} +0 -0
  388. /package/dist/{esm/helpers/getAuthData.native.js.map → cjs/helpers/queryOrMutatorContext.native.js.map} +0 -0
  389. /package/dist/{cjs/helpers/useAuthData.js.map → esm/helpers/queryOrMutatorAuthData.js.map} +0 -0
  390. /package/dist/esm/helpers/{useAuthData.mjs.map → queryOrMutatorAuthData.mjs.map} +0 -0
  391. /package/dist/esm/helpers/{useAuthData.native.js.map → queryOrMutatorAuthData.native.js.map} +0 -0
  392. /package/dist/{cjs/helpers/useAuthData.native.js.map → esm/helpers/queryOrMutatorContext.js.map} +0 -0
@@ -1,18 +1,20 @@
1
+ import { syncedQuery } from "@rocicorp/zero";
1
2
  import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
2
3
  import { createEmitter, mapObject } from "@vxrn/helpers";
3
4
  import { createContext, use, useMemo } from "react";
4
5
  import { createPermissions } from "./createPermissions.mjs";
5
- import { context } from "./helpers/context.mjs";
6
6
  import { createMutators } from "./helpers/createMutators.mjs";
7
7
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.mjs";
8
8
  import { useZeroDebug } from "./helpers/useZeroDebug.mjs";
9
+ import { setAuthData, setSchema } from "./state.mjs";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  function createZeroClient({
11
12
  schema,
12
13
  models,
13
14
  disable
14
15
  }) {
15
- const modelPermissions = mapObject(models, val => val.permissions);
16
+ setSchema(schema);
17
+ const modelWritePermissions = mapObject(models, val => val.permissions);
16
18
  let latestZeroInstance = null;
17
19
  const zero = new Proxy({}, {
18
20
  get(_, key) {
@@ -21,20 +23,17 @@ function createZeroClient({
21
23
  }),
22
24
  permissionsHelpers = createPermissions({
23
25
  schema,
24
- models,
25
- getContext: context,
26
26
  environment: "client"
27
27
  }),
28
28
  zeroEvents = createEmitter("zero", null),
29
29
  AuthDataContext = createContext({}),
30
30
  useAuthData = () => use(AuthDataContext);
31
- function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
32
- const key = `${`${String(table)}${action}`}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
33
- authData = useAuthData(),
34
- permission = modelPermissions[table],
31
+ function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
32
+ const authData = useAuthData(),
33
+ permission = modelWritePermissions[table],
35
34
  query = (() => {
36
35
  let baseQuery = zero.query[table].one();
37
- return !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId));
36
+ return !enabled || !permission ? baseQuery : baseQuery.where(eb => permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId));
38
37
  })(),
39
38
  [data, status] = useQuery(query, {
40
39
  enabled: !!(enabled && permission && authData && objOrId)
@@ -42,31 +41,52 @@ function createZeroClient({
42
41
  debug && console.info("usePermission()", {
43
42
  data,
44
43
  status,
45
- action,
46
44
  authData,
47
45
  permission
48
46
  }, prettyFormatZeroQuery(query));
49
47
  const allowed = !!data;
50
48
  return objOrId ? allowed : !1;
51
49
  }
52
- const useQuery = (query, options) => {
53
- if (disable) return [null, {
54
- type: "unknown"
55
- }];
56
- const out = zeroUseQuery(query, options);
57
- return process.env.NODE_ENV === "development" && useZeroDebug(query, options, out), out;
58
- },
59
- ProvideZero = ({
50
+ const queryCache = /* @__PURE__ */new Map(),
51
+ parseAny = x => [x[0]];
52
+ function useQuery(...args) {
53
+ const [queryOrFn, paramsOrOptions, optionsArg] = args,
54
+ isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
55
+ {
56
+ actualQuery,
57
+ options
58
+ } = useMemo(() => {
59
+ if (!isPlainFunction) return {
60
+ actualQuery: queryOrFn,
61
+ options: paramsOrOptions
62
+ };
63
+ const fn = queryOrFn,
64
+ queryName = fn.name || "anonymousQuery",
65
+ hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions == "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
66
+ params = hasParams ? paramsOrOptions : void 0,
67
+ opts = hasParams ? optionsArg : paramsOrOptions;
68
+ let synced = queryCache.get(queryName);
69
+ return synced || (synced = syncedQuery(queryName, parseAny, arg => fn(arg)), queryCache.set(queryName, synced)), {
70
+ actualQuery: params !== void 0 ? synced(params) : synced,
71
+ options: opts
72
+ };
73
+ }, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]),
74
+ out = zeroUseQuery(actualQuery, options);
75
+ return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disable ? [null, {
76
+ type: "unknown"
77
+ }] : out;
78
+ }
79
+ const ProvideZero = ({
60
80
  children,
61
81
  authData,
62
82
  ...props
63
83
  }) => {
64
- const mutators = useMemo(() => createMutators({
84
+ const mutators = useMemo(() => (setAuthData(authData), createMutators({
65
85
  models,
66
86
  environment: "client",
67
87
  authData,
68
88
  can: permissionsHelpers.can
69
- }), [models, authData]);
89
+ })), [models, authData]);
70
90
  return disable ? children : /* @__PURE__ */jsx(AuthDataContext.Provider, {
71
91
  value: authData,
72
92
  children: /* @__PURE__ */jsxs(ZeroProvider, {
@@ -1 +1 @@
1
- {"version":3,"names":["useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","jsx","jsxs","createZeroClient","schema","models","disable","modelPermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","getContext","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","debug","String","JSON","stringify","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","options","type","out","process","env","NODE_ENV","ProvideZero","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["syncedQuery","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createMutators","prettyFormatZeroQuery","useZeroDebug","setAuthData","setSchema","jsx","jsxs","createZeroClient","schema","models","disable","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","debug","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","allowed","queryCache","Map","parseAny","x","args","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","fn","queryName","name","hasParams","params","opts","synced","arg","set","out","process","env","NODE_ENV","type","ProvideZero","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,26 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { syncedQuery } from "@rocicorp/zero";
2
3
  import { useZero, ZeroProvider, useQuery as zeroUseQuery } from "@rocicorp/zero/react";
3
4
  import { createEmitter, mapObject } from "@vxrn/helpers";
4
5
  import { createContext, use, useMemo } from "react";
5
6
  import { createPermissions } from "./createPermissions.native.js";
6
- import { context } from "./helpers/context.native.js";
7
7
  import { createMutators } from "./helpers/createMutators.native.js";
8
8
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.native.js";
9
9
  import { useZeroDebug } from "./helpers/useZeroDebug.native.js";
10
+ import { setAuthData, setSchema } from "./state.native.js";
11
+ function _type_of(obj) {
12
+ "@swc/helpers - typeof";
13
+
14
+ return obj && typeof Symbol < "u" && obj.constructor === Symbol ? "symbol" : typeof obj;
15
+ }
10
16
  function createZeroClient(param) {
11
17
  var {
12
- schema,
13
- models,
14
- disable
15
- } = param,
16
- modelPermissions = mapObject(models, function (val) {
18
+ schema,
19
+ models,
20
+ disable
21
+ } = param;
22
+ setSchema(schema);
23
+ var modelWritePermissions = mapObject(models, function (val) {
17
24
  return val.permissions;
18
25
  }),
19
26
  latestZeroInstance = null,
@@ -24,8 +31,6 @@ function createZeroClient(param) {
24
31
  }),
25
32
  permissionsHelpers = createPermissions({
26
33
  schema,
27
- models,
28
- getContext: context,
29
34
  environment: "client"
30
35
  }),
31
36
  zeroEvents = createEmitter("zero", null),
@@ -33,17 +38,15 @@ function createZeroClient(param) {
33
38
  useAuthData = function () {
34
39
  return use(AuthDataContext);
35
40
  };
36
- function usePermission(table, action, objOrId) {
37
- var enabled = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : typeof objOrId < "u",
38
- debug = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : !1,
39
- keyBase = `${String(table)}${action}`,
40
- key = `${keyBase}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`,
41
+ function usePermission(table, objOrId) {
42
+ var enabled = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : typeof objOrId < "u",
43
+ debug = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : !1,
41
44
  authData = useAuthData(),
42
- permission = modelPermissions[table],
45
+ permission = modelWritePermissions[table],
43
46
  query = function () {
44
47
  var baseQuery = zero.query[table].one();
45
48
  return !enabled || !permission ? baseQuery : baseQuery.where(function (eb) {
46
- return permissionsHelpers.buildPermissionQuery(authData, eb, permission, action, objOrId);
49
+ return permissionsHelpers.buildPermissionQuery(authData, eb, permission, objOrId);
47
50
  });
48
51
  }(),
49
52
  [data, status] = useQuery(query, {
@@ -52,7 +55,6 @@ function createZeroClient(param) {
52
55
  debug && console.info("usePermission()", {
53
56
  data,
54
57
  status,
55
- action,
56
58
  authData,
57
59
  permission
58
60
  }, prettyFormatZeroQuery(query));
@@ -60,21 +62,50 @@ function createZeroClient(param) {
60
62
  allowed = !!result;
61
63
  return objOrId ? allowed : !1;
62
64
  }
63
- var useQuery = function (query, options) {
64
- if (disable) return [null, {
65
- type: "unknown"
66
- }];
67
- var out = zeroUseQuery(query, options);
68
- return process.env.NODE_ENV === "development" && useZeroDebug(query, options, out), out;
69
- },
70
- ProvideZero = function (param2) {
65
+ var queryCache = /* @__PURE__ */new Map(),
66
+ parseAny = function (x) {
67
+ return [x[0]];
68
+ };
69
+ function useQuery() {
70
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
71
+ var [queryOrFn, paramsOrOptions, optionsArg] = args,
72
+ isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn),
73
+ {
74
+ actualQuery,
75
+ options
76
+ } = useMemo(function () {
77
+ if (!isPlainFunction) return {
78
+ actualQuery: queryOrFn,
79
+ options: paramsOrOptions
80
+ };
81
+ var fn = queryOrFn,
82
+ queryName = fn.name || "anonymousQuery",
83
+ hasParams = optionsArg !== void 0 || paramsOrOptions && (typeof paramsOrOptions > "u" ? "undefined" : _type_of(paramsOrOptions)) === "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions),
84
+ params = hasParams ? paramsOrOptions : void 0,
85
+ opts = hasParams ? optionsArg : paramsOrOptions,
86
+ synced = queryCache.get(queryName);
87
+ synced || (synced = syncedQuery(queryName, parseAny, function (arg) {
88
+ return fn(arg);
89
+ }), queryCache.set(queryName, synced));
90
+ var query = params !== void 0 ? synced(params) : synced;
91
+ return {
92
+ actualQuery: query,
93
+ options: opts
94
+ };
95
+ }, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]),
96
+ out = zeroUseQuery(actualQuery, options);
97
+ return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disable ? [null, {
98
+ type: "unknown"
99
+ }] : out;
100
+ }
101
+ var ProvideZero = function (param2) {
71
102
  var {
72
103
  children,
73
104
  authData,
74
105
  ...props
75
106
  } = param2,
76
107
  mutators = useMemo(function () {
77
- return createMutators({
108
+ return setAuthData(authData), createMutators({
78
109
  models,
79
110
  environment: "client",
80
111
  authData,
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","context","createMutators","prettyFormatZeroQuery","useZeroDebug","createZeroClient","param","schema","models","disable","modelPermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","getContext","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","action","objOrId","enabled","arguments","length","debug","keyBase","String","JSON","stringify","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","options","type","out","process","env","NODE_ENV","ProvideZero","param2","children","props","mutators","can","Provider","value","kvStore","onError","error","emit","message","SetZeroInstance","zero2"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","syncedQuery","useZero","ZeroProvider","useQuery","zeroUseQuery","createEmitter","mapObject","createContext","use","useMemo","createPermissions","createMutators","prettyFormatZeroQuery","useZeroDebug","setAuthData","setSchema","_type_of","obj","Symbol","constructor","createZeroClient","param","schema","models","disable","modelWritePermissions","val","permissions","latestZeroInstance","zero","Proxy","get","_","key","Reflect","permissionsHelpers","environment","zeroEvents","AuthDataContext","useAuthData","usePermission","table","objOrId","enabled","arguments","length","debug","authData","permission","query","baseQuery","one","where","eb","buildPermissionQuery","data","status","console","info","result","allowed","queryCache","Map","parseAny","x","_len","args","Array","_key","queryOrFn","paramsOrOptions","optionsArg","isPlainFunction","actualQuery","options","fn","queryName","name","hasParams","params","opts","synced","arg","set","out","process","env","NODE_ENV","type","ProvideZero","param2","children","props","mutators","can","Provider","value"],"sources":["../../src/createZeroClient.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,28 +1,28 @@
1
- import { PostgresJSConnection, PushProcessor } from "@rocicorp/zero/pg";
2
- import { ZQLDatabase } from "@rocicorp/zero/server";
1
+ import { handleGetQueriesRequest, PushProcessor } from "@rocicorp/zero/pg";
2
+ import { zeroNodePg } from "@rocicorp/zero/server/adapters/pg";
3
3
  import { assertString, randomId } from "@vxrn/helpers";
4
- import postgres from "postgres";
4
+ import { Pool } from "pg";
5
5
  import { createPermissions } from "./createPermissions";
6
- import { context, isInZeroMutation } from "./helpers/context";
7
6
  import { createMutators } from "./helpers/createMutators";
7
+ import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext";
8
+ import { setAuthData, setSchema } from "./state";
8
9
  function createZeroServer({
9
10
  createServerActions,
10
11
  database,
11
12
  schema,
12
- models
13
+ models,
14
+ queries
13
15
  }) {
14
- const dbString = assertString(database, '"database" prop'), db = postgres(dbString), zeroServerDatabase = new ZQLDatabase(
15
- new PostgresJSConnection(
16
- // TODO if you have duplicate postgres due to zero having its own in node_modules TS types break
17
- db
18
- ),
19
- schema
16
+ setSchema(schema);
17
+ const dbString = assertString(database, 'createZeroServer "database"'), zeroDb = zeroNodePg(
18
+ schema,
19
+ new Pool({
20
+ connectionString: dbString
21
+ })
20
22
  ), permissions = createPermissions({
21
23
  environment: "server",
22
- schema,
23
- models,
24
- getContext: context
25
- }), processor = new PushProcessor(zeroServerDatabase), handleMutationRequest = async ({
24
+ schema
25
+ }), processor = new PushProcessor(zeroDb), handleMutationRequest = async ({
26
26
  authData,
27
27
  request,
28
28
  skipAsyncTasks
@@ -47,6 +47,22 @@ function createZeroServer({
47
47
  response,
48
48
  asyncTasks
49
49
  };
50
+ }, handleQueryRequest = async ({
51
+ authData,
52
+ request
53
+ }) => {
54
+ function getQuery(name, args) {
55
+ const q = queries?.[name];
56
+ if (!q)
57
+ throw new Error(`No such query: ${name}`);
58
+ return {
59
+ // @ts-expect-error zero bug atm
60
+ query: q(...args)
61
+ };
62
+ }
63
+ return setAuthData(authData || {}), {
64
+ response: await handleGetQueriesRequest(getQuery, schema, request)
65
+ };
50
66
  }, mutate = async (run, authData) => {
51
67
  const asyncTasks = [], mutators = createMutators({
52
68
  models,
@@ -68,16 +84,16 @@ function createZeroServer({
68
84
  async function transaction(query2) {
69
85
  try {
70
86
  if (isInZeroMutation()) {
71
- const { tx } = context();
87
+ const { tx } = mutatorContext();
72
88
  return await query2(tx);
73
89
  }
74
- return await zeroServerDatabase.transaction(query2, dummyTransactionInput);
90
+ return await zeroDb.transaction(query2, dummyTransactionInput);
75
91
  } catch (err) {
76
92
  throw console.error(`Error running transaction(): ${err}`), err;
77
93
  }
78
94
  }
79
- async function query(cb) {
80
- return await transaction(async (tx) => await cb(tx.query));
95
+ function query(cb) {
96
+ return transaction(async (tx) => cb(tx.query));
81
97
  }
82
98
  const dummyTransactionInput = {
83
99
  clientGroupID: "unused",
@@ -87,6 +103,7 @@ function createZeroServer({
87
103
  };
88
104
  return {
89
105
  handleMutationRequest,
106
+ handleQueryRequest,
90
107
  transaction,
91
108
  mutate,
92
109
  query
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZeroServer.ts"],
4
- "mappings": "AAEA,SAAS,sBAAsB,qBAAqB;AACpD,SAAS,mBAAmB;AAC5B,SAAS,cAAc,gBAAgB;AACvC,OAAO,cAAc;AACrB,SAAS,yBAAyB;AAClC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,sBAAsB;AASxB,SAAS,iBAId;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQG;AACD,QAAM,WAAW,aAAa,UAAU,iBAAiB,GACnD,KAAK,SAAS,QAAQ,GAEtB,qBAAqB,IAAI;AAAA,IAC7B,IAAI;AAAA;AAAA,MAEF;AAAA,IACF;AAAA,IACA;AAAA,EACF,GAEM,cAAc,kBAA0B;AAAA,IAC5C,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd,CAAC,GAEK,YAAY,IAAI,cAAc,kBAAkB,GAEhD,wBAAwB,OAAO;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,EACF,MAIM;AAEJ,UAAM,aAA4B,CAAC,GAE7B,WAAW,eAAe;AAAA,MAC9B;AAAA,MACA,KAAK,YAAY;AAAA,MACjB;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF,CAAC,GAGK,WAAW,MAAM,UAAU,QAAQ,UAAU,OAAO;AAG1D,QAAI,CAAC,kBAAkB,WAAW,QAAQ;AACxC,YAAM,KAAK,SAAS;AACpB,cAAQ,KAAK,wCAAwC,WAAW,MAAM,OAAO,EAAE,EAAE,GACjF,QAAQ,IAAI,WAAW,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,EACzC,KAAK,MAAM;AACV,gBAAQ,KAAK,+BAA+B,EAAE,EAAE;AAAA,MAClD,CAAC,EACA,MAAM,CAAC,QAAQ;AACd,gBAAQ,MAAM,8CAAuC,GAAG;AAAA,MAC1D,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAEM,SAAS,OACb,KACA,aACG;AACH,UAAM,aAAyC,CAAC,GAE1C,WAAW,eAAe;AAAA,MAC9B;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,UAAU;AAAA,QACR,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,MAAM;AAAA,QACN,GAAG;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK,YAAY;AAAA,IACnB,CAAC;AAED,UAAM,YAAY,OAAO,OAAO;AAC9B,YAAM,IAAI,IAAI,QAAQ;AAAA,IACxB,CAAC,GAED,MAAM,QAAQ,IAAI,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAAA,EAC9C;AAEA,iBAAe,YAGbA,QAA6B;AAC7B,QAAI;AACF,UAAI,iBAAiB,GAAG;AACtB,cAAM,EAAE,GAAG,IAAI,QAAQ;AACvB,eAAO,MAAMA,OAAM,EAAE;AAAA,MACvB;AAGA,aADe,MAAM,mBAAmB,YAAYA,QAAO,qBAAqB;AAAA,IAElF,SAAS,KAAK;AACZ,oBAAQ,MAAM,gCAAgC,GAAG,EAAE,GAC7C;AAAA,IACR;AAAA,EACF;AAMA,iBAAe,MACb,IAC+B;AAC/B,WAAO,MAAM,YAAY,OAAO,OACvB,MAAM,GAAG,GAAG,KAAK,CACzB;AAAA,EACH;AAGA,QAAM,wBAAkD;AAAA,IACtD,eAAe;AAAA,IACf,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAClB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["query"]
6
6
  }
@@ -1,28 +1,28 @@
1
- import { PostgresJSConnection, PushProcessor } from "@rocicorp/zero/pg";
2
- import { ZQLDatabase } from "@rocicorp/zero/server";
1
+ import { handleGetQueriesRequest, PushProcessor } from "@rocicorp/zero/pg";
2
+ import { zeroNodePg } from "@rocicorp/zero/server/adapters/pg";
3
3
  import { assertString, randomId } from "@vxrn/helpers";
4
- import postgres from "postgres";
4
+ import { Pool } from "pg";
5
5
  import { createPermissions } from "./createPermissions.mjs";
6
- import { context, isInZeroMutation } from "./helpers/context.mjs";
7
6
  import { createMutators } from "./helpers/createMutators.mjs";
7
+ import { isInZeroMutation, mutatorContext } from "./helpers/mutatorContext.mjs";
8
+ import { setAuthData, setSchema } from "./state.mjs";
8
9
  function createZeroServer({
9
10
  createServerActions,
10
11
  database,
11
12
  schema,
12
- models
13
+ models,
14
+ queries
13
15
  }) {
14
- const dbString = assertString(database, '"database" prop'),
15
- db = postgres(dbString),
16
- zeroServerDatabase = new ZQLDatabase(new PostgresJSConnection(
17
- // TODO if you have duplicate postgres due to zero having its own in node_modules TS types break
18
- db), schema),
16
+ setSchema(schema);
17
+ const dbString = assertString(database, 'createZeroServer "database"'),
18
+ zeroDb = zeroNodePg(schema, new Pool({
19
+ connectionString: dbString
20
+ })),
19
21
  permissions = createPermissions({
20
22
  environment: "server",
21
- schema,
22
- models,
23
- getContext: context
23
+ schema
24
24
  }),
25
- processor = new PushProcessor(zeroServerDatabase),
25
+ processor = new PushProcessor(zeroDb),
26
26
  handleMutationRequest = async ({
27
27
  authData,
28
28
  request,
@@ -51,6 +51,22 @@ function createZeroServer({
51
51
  asyncTasks
52
52
  };
53
53
  },
54
+ handleQueryRequest = async ({
55
+ authData,
56
+ request
57
+ }) => {
58
+ function getQuery(name, args) {
59
+ const q = queries?.[name];
60
+ if (!q) throw new Error(`No such query: ${name}`);
61
+ return {
62
+ // @ts-expect-error zero bug atm
63
+ query: q(...args)
64
+ };
65
+ }
66
+ return setAuthData(authData || {}), {
67
+ response: await handleGetQueriesRequest(getQuery, schema, request)
68
+ };
69
+ },
54
70
  mutate = async (run, authData) => {
55
71
  const asyncTasks = [],
56
72
  mutators = createMutators({
@@ -75,16 +91,16 @@ function createZeroServer({
75
91
  if (isInZeroMutation()) {
76
92
  const {
77
93
  tx
78
- } = context();
94
+ } = mutatorContext();
79
95
  return await query2(tx);
80
96
  }
81
- return await zeroServerDatabase.transaction(query2, dummyTransactionInput);
97
+ return await zeroDb.transaction(query2, dummyTransactionInput);
82
98
  } catch (err) {
83
99
  throw console.error(`Error running transaction(): ${err}`), err;
84
100
  }
85
101
  }
86
- async function query(cb) {
87
- return await transaction(async tx => await cb(tx.query));
102
+ function query(cb) {
103
+ return transaction(async tx => cb(tx.query));
88
104
  }
89
105
  const dummyTransactionInput = {
90
106
  clientGroupID: "unused",
@@ -94,6 +110,7 @@ function createZeroServer({
94
110
  };
95
111
  return {
96
112
  handleMutationRequest,
113
+ handleQueryRequest,
97
114
  transaction,
98
115
  mutate,
99
116
  query
@@ -1 +1 @@
1
- {"version":3,"names":["PostgresJSConnection","PushProcessor","ZQLDatabase","assertString","randomId","postgres","createPermissions","context","isInZeroMutation","createMutators","createZeroServer","createServerActions","database","schema","models","dbString","db","zeroServerDatabase","permissions","environment","getContext","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","query","cb","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["handleGetQueriesRequest","PushProcessor","zeroNodePg","assertString","randomId","Pool","createPermissions","createMutators","isInZeroMutation","mutatorContext","setAuthData","setSchema","createZeroServer","createServerActions","database","schema","models","queries","dbString","zeroDb","connectionString","permissions","environment","processor","handleMutationRequest","authData","request","skipAsyncTasks","asyncTasks","mutators","can","response","process","length","id","console","info","Promise","all","map","task","then","catch","err","error","handleQueryRequest","getQuery","name","args","q","Error","query","mutate","run","email","role","transaction","tx","t","query2","dummyTransactionInput","cb","clientGroupID","clientID","mutationID","upstreamSchema"],"sources":["../../src/createZeroServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}