over-zero 0.0.9 → 0.0.11

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
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ModelToValibot","TypeScriptToModel","defineCommand","runMain","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","resolve","ts","generateQueries","meta","name","description","args","dir","type","required","default","run","param","readdirSync2","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","filePath","queries","content","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","_node_modifiers","exportModifier","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","_param_type","_$param","typeString","model","Generate","valibotCode","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","recursive","allModelFiles","sort","schemaChecks","hasSchema","includes","filesWithSchema","c","modelsOutput","typesOutput","tablesOutput","generateModelsFile","generateTypesFile","generateTablesFile","queryFiles","queryResults","fileBaseName","queriesOutput","generateQueriesFile","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","importName","join","sortedByImportName","a","b","localeCompare","modelsObj","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","exports","sortedQueries","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","q","value","has","set","get","return","queryImports","Array","from","keys"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,63 +1,48 @@
1
- import { ANYONE_CAN, definePermissions } from "@rocicorp/zero";
2
- import { ensure, EnsureError, objectEntries } from "@vxrn/helpers";
3
- import { runWithContext } from "./helpers/context";
1
+ import { ensure, EnsureError } from "@vxrn/helpers";
4
2
  import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck";
3
+ import { mutatorContext } from "./helpers/mutatorContext";
5
4
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery";
6
5
  import { getWhereTableName } from "./where";
7
6
  function createPermissions({
8
7
  environment,
9
- schema,
10
- models,
11
- getContext
8
+ schema
12
9
  }) {
13
- const fallbackActions = {
14
- select: "read",
15
- insert: "write",
16
- update: "write",
17
- upsert: "write",
18
- delete: "write"
19
- };
20
- function buildPermissionQuery(authData, eb, permissionWhere, action, objOrId) {
10
+ function buildPermissionQuery(authData, eb, permissionWhere, objOrId) {
21
11
  const tableName = getWhereTableName(permissionWhere);
22
12
  if (!tableName)
23
13
  throw new Error("Must use PermissionWhere for buildPermissionQuery");
24
14
  const tableSchema = schema.tables[tableName];
25
15
  if (!tableSchema)
26
16
  throw new Error("No schema?");
27
- const primaryKeys = tableSchema.primaryKey, permissionQueryBuilder = permissionWhere(eb, authData), fallbackAction = fallbackActions[action], permissionCondition = permissionQueryBuilder[action] || (fallbackAction ? permissionQueryBuilder[fallbackAction] : void 0);
28
- if (permissionCondition == null)
29
- throw new Error(`No permission defined for ${action} (or ${fallbackAction})`);
30
- if (permissionCondition === !0)
17
+ const primaryKeys = tableSchema.primaryKey, permissionReturn = permissionWhere(eb, authData);
18
+ if (permissionReturn == null)
19
+ throw new Error(`No permission defined for ${tableName}`);
20
+ if (permissionReturn === !0)
31
21
  return eb.cmpLit(!0, "=", !0);
32
- if (permissionCondition === !1)
22
+ if (permissionReturn === !1)
33
23
  return eb.cmpLit(!0, "=", !1);
34
24
  const primaryKeyWheres = [];
35
25
  for (const key of primaryKeys) {
36
26
  const value = typeof objOrId == "string" ? objOrId : objOrId[key];
37
27
  primaryKeyWheres.push(eb.cmp(key, value));
38
28
  }
39
- return eb.and(permissionCondition, ...primaryKeyWheres);
29
+ return eb.and(permissionReturn, ...primaryKeyWheres);
40
30
  }
41
- const can = async (where, action, obj) => {
42
- const ctx = getContext(), tableName = getWhereTableName(where);
43
- if (!tableName)
44
- throw new Error("Must use where('table') style where to pass to can()");
45
- environment === "server" && (await ensurePermission(
46
- ctx.tx,
47
- ctx.authData,
48
- tableName,
49
- where,
50
- action,
51
- obj
52
- ), setDidRunPermissionCheck(ctx));
31
+ const can = async (where, obj) => {
32
+ if (environment === "server") {
33
+ const ctx = mutatorContext(), tableName = getWhereTableName(where);
34
+ if (!tableName)
35
+ throw new Error("Must use where('table') style where to pass to can()");
36
+ await ensurePermission(ctx.tx, ctx.authData, tableName, where, obj), setDidRunPermissionCheck(ctx);
37
+ }
53
38
  };
54
- async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
39
+ async function ensurePermission(tx, authData, tableName, where, obj) {
55
40
  if (authData?.role === "admin")
56
41
  return;
57
- const action = String(actionIn), name = `${tableName}.${action}`, queryBase = tx.query[tableName];
42
+ const queryBase = tx.query[tableName];
58
43
  let query = null;
59
44
  try {
60
- query = queryBase.where((eb) => buildPermissionQuery(authData, eb, where, action, obj)).one(), ensure(await query);
45
+ query = queryBase.where((eb) => buildPermissionQuery(authData, eb, where, obj)).one(), ensure(await query);
61
46
  } catch (err) {
62
47
  const errorTitle = `${name} with auth id: ${authData?.id}`;
63
48
  if (err instanceof EnsureError) {
@@ -69,37 +54,9 @@ function createPermissions({
69
54
  ${err}`);
70
55
  }
71
56
  }
72
- const readPermissions = definePermissions(schema, async () => {
73
- const permissionsEntries = await Promise.all(
74
- objectEntries(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await runWithContext(
75
- {
76
- authData: { id: "", role: void 0, email: "" }
77
- },
78
- () => [
79
- key,
80
- {
81
- row: {
82
- select: [
83
- (authData, eb) => {
84
- const out = model.permissions(eb, authData).read;
85
- return out === !0 ? eb.and() : out === !1 ? eb.cmpLit(!0, "=", !1) : out;
86
- }
87
- ],
88
- // we have permissions on these through our model system with custom mutators:
89
- insert: ANYONE_CAN,
90
- update: ANYONE_CAN,
91
- delete: ANYONE_CAN
92
- }
93
- }
94
- ]
95
- ))
96
- );
97
- return Object.fromEntries(permissionsEntries);
98
- });
99
57
  return {
100
58
  can,
101
- buildPermissionQuery,
102
- readPermissions
59
+ buildPermissionQuery
103
60
  };
104
61
  }
105
62
  export {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createPermissions.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAMA,SAAS,QAAQ,mBAAmB;AACpC,SAAS,gCAAgC;AACzC,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;AAEtC,SAAS,yBAAyB;AAE3B,SAAS,kBAA6C;AAAA,EAC3D;AAAA,EACA;AACF,GAGG;AAQD,WAAS,qBACP,UACA,IACA,iBAEA,SACA;AACA,UAAM,YAAY,kBAAkB,eAAe;AAEnD,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,mDAAmD;AAGrE,UAAM,cAAc,OAAO,OAAO,SAAS;AAE3C,QAAI,CAAC;AACH,YAAM,IAAI,MAAM,YAAY;AAG9B,UAAM,cAAc,YAAY,YAC1B,mBAAmB,gBAAgB,IAAI,QAAQ;AAErD,QAAI,oBAAoB;AACtB,YAAM,IAAI,MAAM,6BAA6B,SAAS,EAAE;AAG1D,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAI;AAGlC,QAAI,qBAAqB;AACvB,aAAO,GAAG,OAAO,IAAM,KAAK,EAAK;AAGnC,UAAM,mBAAgC,CAAC;AAEvC,eAAW,OAAO,aAAa;AAC7B,YAAM,QAAQ,OAAO,WAAY,WAAW,UAAU,QAAQ,GAAG;AACjE,uBAAiB,KAAK,GAAG,IAAI,KAAY,KAAK,CAAC;AAAA,IACjD;AAEA,WAAO,GAAG,IAAI,kBAAkB,GAAG,gBAAgB;AAAA,EACrD;AAEA,QAAM,MAAW,OAAO,OAAO,QAAQ;AAErC,QAAI,gBAAgB,UAAU;AAC5B,YAAM,MAAM,eAAe,GACrB,YAAY,kBAAkB,KAAK;AACzC,UAAI,CAAC;AACH,cAAM,IAAI,MAAM,sDAAsD;AAExE,YAAM,iBAAiB,IAAI,IAAI,IAAI,UAAU,WAAW,OAAO,GAAG,GAClE,yBAAyB,GAAG;AAAA,IAC9B;AAAA,EACF;AAEA,iBAAe,iBACb,IACA,UACA,WACA,OACA,KACe;AACf,QAAI,UAAU,SAAS;AAErB;AAGF,UAAM,YAAY,GAAG,MAAM,SAAS;AACpC,QAAI,QAAqC;AAEzC,QAAI;AACF,cAAQ,UACL,MAAM,CAAC,OACC,qBAAqB,UAAU,IAAI,OAAO,GAAG,CACrD,EACA,IAAI,GAEP,OAAO,MAAM,KAAK;AAAA,IACpB,SAAS,KAAK;AACZ,YAAM,aAAa,GAAG,IAAI,kBAAkB,UAAU,EAAE;AAExD,UAAI,eAAe,aAAa;AAC9B,YAAI,MAAM,uCAAgC,UAAU;AACpD,cAAI,QAAQ,IAAI,aAAa,iBAAiB,UAC5C,OAAO;AAAA,GAAM,sBAAsB,KAAK,CAAC,KAErC,IAAI,MAAM,GAAG;AAAA,MACrB;AAEA,YAAM,IAAI,MAAM,4BAA4B,UAAU;AAAA,EAAK,GAAG,EAAE;AAAA,IAClE;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,55 +1,43 @@
1
- import { ANYONE_CAN, definePermissions } from "@rocicorp/zero";
2
- import { ensure, EnsureError, objectEntries } from "@vxrn/helpers";
3
- import { runWithContext } from "./helpers/context.mjs";
1
+ import { ensure, EnsureError } from "@vxrn/helpers";
4
2
  import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.mjs";
3
+ import { mutatorContext } from "./helpers/mutatorContext.mjs";
5
4
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.mjs";
6
5
  import { getWhereTableName } from "./where.mjs";
7
6
  function createPermissions({
8
7
  environment,
9
- schema,
10
- models,
11
- getContext
8
+ schema
12
9
  }) {
13
- const fallbackActions = {
14
- select: "read",
15
- insert: "write",
16
- update: "write",
17
- upsert: "write",
18
- delete: "write"
19
- };
20
- function buildPermissionQuery(authData, eb, permissionWhere, action, objOrId) {
10
+ function buildPermissionQuery(authData, eb, permissionWhere, objOrId) {
21
11
  const tableName = getWhereTableName(permissionWhere);
22
12
  if (!tableName) throw new Error("Must use PermissionWhere for buildPermissionQuery");
23
13
  const tableSchema = schema.tables[tableName];
24
14
  if (!tableSchema) throw new Error("No schema?");
25
15
  const primaryKeys = tableSchema.primaryKey,
26
- permissionQueryBuilder = permissionWhere(eb, authData),
27
- fallbackAction = fallbackActions[action],
28
- permissionCondition = permissionQueryBuilder[action] || (fallbackAction ? permissionQueryBuilder[fallbackAction] : void 0);
29
- if (permissionCondition == null) throw new Error(`No permission defined for ${action} (or ${fallbackAction})`);
30
- if (permissionCondition === !0) return eb.cmpLit(!0, "=", !0);
31
- if (permissionCondition === !1) return eb.cmpLit(!0, "=", !1);
16
+ permissionReturn = permissionWhere(eb, authData);
17
+ if (permissionReturn == null) throw new Error(`No permission defined for ${tableName}`);
18
+ if (permissionReturn === !0) return eb.cmpLit(!0, "=", !0);
19
+ if (permissionReturn === !1) return eb.cmpLit(!0, "=", !1);
32
20
  const primaryKeyWheres = [];
33
21
  for (const key of primaryKeys) {
34
22
  const value = typeof objOrId == "string" ? objOrId : objOrId[key];
35
23
  primaryKeyWheres.push(eb.cmp(key, value));
36
24
  }
37
- return eb.and(permissionCondition, ...primaryKeyWheres);
25
+ return eb.and(permissionReturn, ...primaryKeyWheres);
38
26
  }
39
- const can = async (where, action, obj) => {
40
- const ctx = getContext(),
41
- tableName = getWhereTableName(where);
42
- if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
43
- environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), setDidRunPermissionCheck(ctx));
27
+ const can = async (where, obj) => {
28
+ if (environment === "server") {
29
+ const ctx = mutatorContext(),
30
+ tableName = getWhereTableName(where);
31
+ if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
32
+ await ensurePermission(ctx.tx, ctx.authData, tableName, where, obj), setDidRunPermissionCheck(ctx);
33
+ }
44
34
  };
45
- async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
35
+ async function ensurePermission(tx, authData, tableName, where, obj) {
46
36
  if (authData?.role === "admin") return;
47
- const action = String(actionIn),
48
- name = `${tableName}.${action}`,
49
- queryBase = tx.query[tableName];
37
+ const queryBase = tx.query[tableName];
50
38
  let query = null;
51
39
  try {
52
- query = queryBase.where(eb => buildPermissionQuery(authData, eb, where, action, obj)).one(), ensure(await query);
40
+ query = queryBase.where(eb => buildPermissionQuery(authData, eb, where, obj)).one(), ensure(await query);
53
41
  } catch (err) {
54
42
  const errorTitle = `${name} with auth id: ${authData?.id}`;
55
43
  if (err instanceof EnsureError) {
@@ -61,31 +49,9 @@ function createPermissions({
61
49
  ${err}`);
62
50
  }
63
51
  }
64
- const readPermissions = definePermissions(schema, async () => {
65
- const permissionsEntries = await Promise.all(objectEntries(models).filter(([_, model]) => !!model.permissions).map(async ([key, model]) => await runWithContext({
66
- authData: {
67
- id: "",
68
- role: void 0,
69
- email: ""
70
- }
71
- }, () => [key, {
72
- row: {
73
- select: [(authData, eb) => {
74
- const out = model.permissions(eb, authData).read;
75
- return out === !0 ? eb.and() : out === !1 ? eb.cmpLit(!0, "=", !1) : out;
76
- }],
77
- // we have permissions on these through our model system with custom mutators:
78
- insert: ANYONE_CAN,
79
- update: ANYONE_CAN,
80
- delete: ANYONE_CAN
81
- }
82
- }])));
83
- return Object.fromEntries(permissionsEntries);
84
- });
85
52
  return {
86
53
  can,
87
- buildPermissionQuery,
88
- readPermissions
54
+ buildPermissionQuery
89
55
  };
90
56
  }
91
57
  export { createPermissions };
@@ -1 +1 @@
1
- {"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","setDidRunPermissionCheck","prettyFormatZeroQuery","getWhereTableName","createPermissions","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","actionIn","role","String","name","queryBase","query","one","err","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","filter","_","model","permissions","map","email","row","out","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"AAMA,SAASA,UAAA,EAAYC,iBAAA,QAAyB;AAC9C,SAASC,MAAA,EAAQC,WAAA,EAAaC,aAAA,QAAqB;AACnD,SAASC,cAAA,QAAsB;AAC/B,SAASC,wBAAA,QAAgC;AACzC,SAASC,qBAAA,QAA6B;AAStC,SAASC,iBAAA,QAAyB;AAE3B,SAASC,kBAA6C;EAC3DC,WAAA;EACAC,MAAA;EACAC,MAAA;EACAC;AACF,GAKG;EAkBD,MAAMC,eAAA,GAA0C;IAC9CC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;IACRC,MAAA,EAAQ;EACV;EAEA,SAASC,qBAIPC,QAAA,EACAC,EAAA,EACAC,eAAA,EACAC,MAAA,EAEAC,OAAA,EACA;IACA,MAAMC,SAAA,GAAYlB,iBAAA,CAAkBe,eAAe;IAEnD,IAAI,CAACG,SAAA,EACH,MAAM,IAAIC,KAAA,CAAM,mDAAmD;IAGrE,MAAMC,WAAA,GAAcjB,MAAA,CAAOkB,MAAA,CAAOH,SAAS;IAE3C,IAAI,CAACE,WAAA,EACH,MAAM,IAAID,KAAA,CAAM,YAAY;IAG9B,MAAMG,WAAA,GAAcF,WAAA,CAAYG,UAAA;MAC1BC,sBAAA,GAAyBT,eAAA,CAAgBD,EAAA,EAAID,QAAQ;MACrDY,cAAA,GAAiBnB,eAAA,CAAgBU,MAAM;MAEvCU,mBAAA,GACJF,sBAAA,CAAuBR,MAAM,MAC5BS,cAAA,GAAiBD,sBAAA,CAAuBC,cAAc,IAAI;IAE7D,IAAIC,mBAAA,IAAuB,MACzB,MAAM,IAAIP,KAAA,CAAM,6BAA6BH,MAAM,QAAQS,cAAc,GAAG;IAG9E,IAAIC,mBAAA,KAAwB,IAC1B,OAAOZ,EAAA,CAAGa,MAAA,CAAO,IAAM,KAAK,EAAI;IAGlC,IAAID,mBAAA,KAAwB,IAC1B,OAAOZ,EAAA,CAAGa,MAAA,CAAO,IAAM,KAAK,EAAK;IAGnC,MAAMC,gBAAA,GAAgC,EAAC;IAEvC,WAAWC,GAAA,IAAOP,WAAA,EAAa;MAC7B,MAAMQ,KAAA,GAAQ,OAAOb,OAAA,IAAY,WAAWA,OAAA,GAAUA,OAAA,CAAQY,GAAG;MACjED,gBAAA,CAAiBG,IAAA,CAAKjB,EAAA,CAAGkB,GAAA,CAAIH,GAAA,EAAYC,KAAK,CAAC;IACjD;IAEA,OAAOhB,EAAA,CAAGmB,GAAA,CAAIP,mBAAA,EAAqB,GAAGE,gBAAgB;EACxD;EAEA,MAAMM,GAAA,GAAW,MAAAA,CAAOC,KAAA,EAAOnB,MAAA,EAAQoB,GAAA,KAAQ;IAC7C,MAAMC,GAAA,GAAMhC,UAAA,CAAW;MACjBa,SAAA,GAAYlB,iBAAA,CAAkBmC,KAAK;IACzC,IAAI,CAACjB,SAAA,EACH,MAAM,IAAIC,KAAA,CAAM,sDAAsD;IAIpEjB,WAAA,KAAgB,aAClB,MAAMoC,gBAAA,CACJD,GAAA,CAAIE,EAAA,EACJF,GAAA,CAAIxB,QAAA,EACJK,SAAA,EACAiB,KAAA,EACAnB,MAAA,EACAoB,GACF,GACAtC,wBAAA,CAAyBuC,GAAG;EAEhC;EAEA,eAAeC,iBAIbC,EAAA,EACA1B,QAAA,EACAK,SAAA,EACAiB,KAAA,EACAK,QAAA,EACAJ,GAAA,EACe;IACf,IAAIvB,QAAA,EAAU4B,IAAA,KAAS,SAErB;IAGF,MAAMzB,MAAA,GAAS0B,MAAA,CAAOF,QAAQ;MACxBG,IAAA,GAAO,GAAGzB,SAAS,IAAIF,MAAM;MAE7B4B,SAAA,GAAYL,EAAA,CAAGM,KAAA,CAAM3B,SAAS;IACpC,IAAI2B,KAAA,GAAqC;IAEzC,IAAI;MACFA,KAAA,GAAQD,SAAA,CACLT,KAAA,CAAOrB,EAAA,IACCF,oBAAA,CAAqBC,QAAA,EAAUC,EAAA,EAAIqB,KAAA,EAAOnB,MAAA,EAAQoB,GAAG,CAC7D,EACAU,GAAA,CAAI,GAEPpD,MAAA,CAAO,MAAMmD,KAAK;IACpB,SAASE,GAAA,EAAK;MACZ,MAAMC,UAAA,GAAa,GAAGL,IAAI,kBAAkB9B,QAAA,EAAUoC,EAAE;MAExD,IAAIF,GAAA,YAAepD,WAAA,EAAa;QAC9B,IAAIuD,GAAA,GAAM,uCAAgCF,UAAU;QACpD,MAAIG,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAAiBR,KAAA,KAC5CK,GAAA,IAAO;AAAA,GAAMnD,qBAAA,CAAsB8C,KAAK,CAAC,KAErC,IAAI1B,KAAA,CAAM+B,GAAG;MACrB;MAEA,MAAM,IAAI/B,KAAA,CAAM,4BAA4B6B,UAAU;AAAA,EAAKD,GAAG,EAAE;IAClE;EACF;EAEA,MAAMO,eAAA,GAAkB7D,iBAAA,CAAoCU,MAAA,EAAQ,YAAY;IAC9E,MAAMoD,kBAAA,GAAqB,MAAMC,OAAA,CAAQC,GAAA,CACvC7D,aAAA,CAAcQ,MAAM,EAEjBsD,MAAA,CAAO,CAAC,CAACC,CAAA,EAAGC,KAAK,MAAM,CAAC,CAACA,KAAA,CAAMC,WAAW,EAC1CC,GAAA,CAAI,OAAO,CAACjC,GAAA,EAAK+B,KAAK,MACd,MAAM/D,cAAA,CACX;MACEgB,QAAA,EAAU;QAAEoC,EAAA,EAAI;QAAIR,IAAA,EAAM;QAAWsB,KAAA,EAAO;MAAG;IACjD,GACA,MACS,CACLlC,GAAA,EACA;MACEmC,GAAA,EAAK;QACHzD,MAAA,EAAQ,CACN,CAACM,QAAA,EAAoBC,EAAA,KAAoC;UACvD,MAAMmD,GAAA,GAAML,KAAA,CAAMC,WAAA,CAAY/C,EAAA,EAAID,QAAQ,EAAEqD,IAAA;UAE5C,OAAID,GAAA,KAAQ,KACHnD,EAAA,CAAGmB,GAAA,CAAI,IAGZgC,GAAA,KAAQ,KACHnD,EAAA,CAAGa,MAAA,CAAO,IAAM,KAAK,EAAK,IAG5BsC,GAAA;QACT,EACF;QAAA;QAEAzD,MAAA,EAAQhB,UAAA;QACRiB,MAAA,EAAQjB,UAAA;QACRmB,MAAA,EAAQnB;MACV;IACF,EAGN,CACD,CACL;IAIA,OAFoB2E,MAAA,CAAOC,WAAA,CAAYb,kBAAkB;EAG3D,CAAC;EAED,OAAO;IACLrB,GAAA;IACAtB,oBAAA;IACA0C;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["ensure","EnsureError","setDidRunPermissionCheck","mutatorContext","prettyFormatZeroQuery","getWhereTableName","createPermissions","environment","schema","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","cmpLit","primaryKeyWheres","key","value","push","cmp","and","can","where","obj","ctx","ensurePermission","tx","role","queryBase","query","one","err","errorTitle","name","id","msg","process","env","NODE_ENV"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,35 +1,26 @@
1
- import { ANYONE_CAN, definePermissions } from "@rocicorp/zero";
2
- import { ensure, EnsureError, objectEntries } from "@vxrn/helpers";
3
- import { runWithContext } from "./helpers/context.native.js";
1
+ import { ensure, EnsureError } from "@vxrn/helpers";
4
2
  import { setDidRunPermissionCheck } from "./helpers/didRunPermissionCheck.native.js";
3
+ import { mutatorContext } from "./helpers/mutatorContext.native.js";
5
4
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery.native.js";
6
5
  import { getWhereTableName } from "./where.native.js";
6
+ function _instanceof(left, right) {
7
+ return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
8
+ }
7
9
  function createPermissions(param) {
8
10
  var {
9
- environment,
10
- schema,
11
- models,
12
- getContext
13
- } = param,
14
- fallbackActions = {
15
- select: "read",
16
- insert: "write",
17
- update: "write",
18
- upsert: "write",
19
- delete: "write"
20
- };
21
- function buildPermissionQuery(authData, eb, permissionWhere, action, objOrId) {
11
+ environment,
12
+ schema
13
+ } = param;
14
+ function buildPermissionQuery(authData, eb, permissionWhere, objOrId) {
22
15
  var tableName = getWhereTableName(permissionWhere);
23
16
  if (!tableName) throw new Error("Must use PermissionWhere for buildPermissionQuery");
24
17
  var tableSchema = schema.tables[tableName];
25
18
  if (!tableSchema) throw new Error("No schema?");
26
19
  var primaryKeys = tableSchema.primaryKey,
27
- permissionQueryBuilder = permissionWhere(eb, authData),
28
- fallbackAction = fallbackActions[action],
29
- permissionCondition = permissionQueryBuilder[action] || (fallbackAction ? permissionQueryBuilder[fallbackAction] : void 0);
30
- if (permissionCondition == null) throw new Error(`No permission defined for ${action} (or ${fallbackAction})`);
31
- if (permissionCondition === !0) return eb.cmpLit(!0, "=", !0);
32
- if (permissionCondition === !1) return eb.cmpLit(!0, "=", !1);
20
+ permissionReturn = permissionWhere(eb, authData);
21
+ if (permissionReturn == null) throw new Error(`No permission defined for ${tableName}`);
22
+ if (permissionReturn === !0) return eb.cmpLit(!0, "=", !0);
23
+ if (permissionReturn === !1) return eb.cmpLit(!0, "=", !1);
33
24
  var primaryKeyWheres = [],
34
25
  _iteratorNormalCompletion = !0,
35
26
  _didIteratorError = !1,
@@ -49,27 +40,27 @@ function createPermissions(param) {
49
40
  if (_didIteratorError) throw _iteratorError;
50
41
  }
51
42
  }
52
- return eb.and(permissionCondition, ...primaryKeyWheres);
43
+ return eb.and(permissionReturn, ...primaryKeyWheres);
53
44
  }
54
- var can = async function (where, action, obj) {
55
- var ctx = getContext(),
56
- tableName = getWhereTableName(where);
57
- if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
58
- environment === "server" && (await ensurePermission(ctx.tx, ctx.authData, tableName, where, action, obj), setDidRunPermissionCheck(ctx));
45
+ var can = async function (where, obj) {
46
+ if (environment === "server") {
47
+ var ctx = mutatorContext(),
48
+ tableName = getWhereTableName(where);
49
+ if (!tableName) throw new Error("Must use where('table') style where to pass to can()");
50
+ await ensurePermission(ctx.tx, ctx.authData, tableName, where, obj), setDidRunPermissionCheck(ctx);
51
+ }
59
52
  };
60
- async function ensurePermission(tx, authData, tableName, where, actionIn, obj) {
53
+ async function ensurePermission(tx, authData, tableName, where, obj) {
61
54
  if (authData?.role !== "admin") {
62
- var action = String(actionIn),
63
- name = `${tableName}.${action}`,
64
- queryBase = tx.query[tableName],
55
+ var queryBase = tx.query[tableName],
65
56
  query = null;
66
57
  try {
67
58
  query = queryBase.where(function (eb) {
68
- return buildPermissionQuery(authData, eb, where, action, obj);
59
+ return buildPermissionQuery(authData, eb, where, obj);
69
60
  }).one(), ensure(await query);
70
61
  } catch (err) {
71
62
  var errorTitle = `${name} with auth id: ${authData?.id}`;
72
- if (err instanceof EnsureError) {
63
+ if (_instanceof(err, EnsureError)) {
73
64
  var msg = `[permission] \u{1F6AB} Not Allowed: ${errorTitle}`;
74
65
  throw process.env.NODE_ENV === "development" && query && (msg += `
75
66
  ${prettyFormatZeroQuery(query)}`), new Error(msg);
@@ -79,40 +70,9 @@ ${err}`);
79
70
  }
80
71
  }
81
72
  }
82
- var readPermissions = definePermissions(schema, async function () {
83
- var permissionsEntries = await Promise.all(objectEntries(models).filter(function (param2) {
84
- var [_, model] = param2;
85
- return !!model.permissions;
86
- }).map(async function (param2) {
87
- var [key, model] = param2;
88
- return await runWithContext({
89
- authData: {
90
- id: "",
91
- role: void 0,
92
- email: ""
93
- }
94
- }, function () {
95
- return [key, {
96
- row: {
97
- select: [function (authData, eb) {
98
- var out = model.permissions(eb, authData).read;
99
- return out === !0 ? eb.and() : out === !1 ? eb.cmpLit(!0, "=", !1) : out;
100
- }],
101
- // we have permissions on these through our model system with custom mutators:
102
- insert: ANYONE_CAN,
103
- update: ANYONE_CAN,
104
- delete: ANYONE_CAN
105
- }
106
- }];
107
- });
108
- })),
109
- permissions = Object.fromEntries(permissionsEntries);
110
- return permissions;
111
- });
112
73
  return {
113
74
  can,
114
- buildPermissionQuery,
115
- readPermissions
75
+ buildPermissionQuery
116
76
  };
117
77
  }
118
78
  export { createPermissions };
@@ -1 +1 @@
1
- {"version":3,"names":["ANYONE_CAN","definePermissions","ensure","EnsureError","objectEntries","runWithContext","setDidRunPermissionCheck","prettyFormatZeroQuery","getWhereTableName","createPermissions","param","environment","schema","models","getContext","fallbackActions","select","insert","update","upsert","delete","buildPermissionQuery","authData","eb","permissionWhere","action","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionQueryBuilder","fallbackAction","permissionCondition","cmpLit","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","key","value","push","cmp","err","return","and","can","where","obj","ctx","ensurePermission","tx","actionIn","role","String","name","queryBase","query","one","errorTitle","id","msg","process","env","NODE_ENV","readPermissions","permissionsEntries","Promise","all","filter","param2","_","model","permissions","map","email","row","out","read","Object","fromEntries"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"AAMA,SAASA,UAAA,EAAYC,iBAAA,QAAyB;AAC9C,SAASC,MAAA,EAAQC,WAAA,EAAaC,aAAA,QAAqB;AACnD,SAASC,cAAA,QAAsB;AAC/B,SAASC,wBAAA,QAAgC;AACzC,SAASC,qBAAA,QAA6B;AAStC,SAASC,iBAAA,QAAyB;AAE3B,SAASC,kBAA6CC,KAAA;EAC3D;MAAAC,WAAA;MAAAC,MAAA;MAAAC,MAAA;MAAAC;IAAA,IAAAJ,KAAA;IAAAK,eAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MAMCC,MAAA;MAkBDC,MAAM;IAA0C;EACtC,SACRC,oBAAQA,CAAAC,QAAA,EAAAC,EAAA,EAAAC,eAAA,EAAAC,MAAA,EAAAC,OAAA;IACR,IAAAC,SAAQ,GAAAnB,iBAAA,CAAAgB,eAAA;IACR,KAAAG,SAAQ,EACR,MAAQ,IAAAC,KAAA;IACV,IAAAC,WAAA,GAAAjB,MAAA,CAAAkB,MAAA,CAAAH,SAAA;IAEA,KAAAE,WAAS,EAWP,MAAM,IAAAD,KAAA,CAAY;IAElB,IAAIG,WAAC,GAAAF,WAAA,CAAAG,UAAA;MAAAC,sBAAA,GAAAT,eAAA,CAAAD,EAAA,EAAAD,QAAA;MAAAY,cAAA,GAAAnB,eAAA,CAAAU,MAAA;MAAAU,mBAAA,GAAAF,sBAAA,CAAAR,MAAA,MAAAS,cAAA,GAAAD,sBAAA,CAAAC,cAAA;IACH,IAAAC,mBAAgB,UAGlB,MAAM,IAAAP,KAAA,8BAAqCH,MAAA,QAAAS,cAAA;IAE3C,IAAIC,mBAAC,SACH,OAAMZ,EAAA,CAAIa,MAAM,YAAY;IAG9B,IAAAD,mBAAoB,SAQpB,OAAIZ,EAAA,CAAAa,MAAA,UAAuB;IACzB,IAAAC,gBAAgB;MAAAC,yBAA6B,GAAM;MAAAC,iBAAsB,GAAG;MAAAC,cAAA;IAG9E,IAAI;MACF,SAAOC,SAAU,GAAMV,WAAS,CAAAW,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QAG9B,IAAAS,GAAA,GAAAH,KAAA,CAAAI,KAAA;UAAAA,KAAwB,UAAAtB,OAAA,eAAAA,OAAA,GAAAA,OAAA,CAAAqB,GAAA;QAC1BV,gBAAiB,CAAAY,IAAM,CAAA1B,EAAK,CAAA2B,GAAK,CAAAH,GAAA,EAAAC,KAAA;MAGnC;IAEA,SAAAG,GAAW;MACTZ,iBAAc,IAAO,GAAAC,cAAY,GAAAW,GAAW;IAC5C;MACF;QAEA,CAAAb,yBAAc,IAAAG,SAAwB,CAAAW,MAAA,IAAgB,QAAAX,SAAA,CAAAW,MAAA;MACxD;QAEM,IAAAb,iBAAyB,EACvB,MAAMC,cACN;MACN;IACE;IAIE,OAAAjB,EAAA,CAAA8B,GAAA,CAAAlB,mBACF,EAAM,GAAAE,gBAAA;EAAA;EACA,IACJiB,GAAA,GAAI,eAAAA,CAAAC,KAAA,EAAA9B,MAAA,EAAA+B,GAAA;IAAA,IACJC,GAAA,GAAA3C,UAAA;MAAAa,SAAA,GAAAnB,iBAAA,CAAA+C,KAAA;IAAA,IACA,CAAA5B,SAAA,EACA,UAAAC,KAAA;IAAAjB,WACA,wBAAA+C,gBAAA,CAAAD,GAAA,CAAAE,EAAA,EAAAF,GAAA,CAAAnC,QAAA,EAAAK,SAAA,EAAA4B,KAAA,EAAA9B,MAAA,EAAA+B,GAAA,GAAAlD,wBAAA,CAAAmD,GAAA;EAAA;EAIN,eAAAC,iBAAAC,EAAA,EAAArC,QAAA,EAAAK,SAAA,EAAA4B,KAAA,EAAAK,QAAA,EAAAJ,GAAA;IAEA,IAAAlC,QAAA,EAAeuC,IAAA,YAIb;MAOA,IAAIpC,MAAA,GAAUqC,MAAA,CAAAF,QAAS;QAAAG,IAAA,MAAApC,SAAA,IAAAF,MAAA;QAAAuC,SAAA,GAAAL,EAAA,CAAAM,KAAA,CAAAtC,SAAA;QAAAsC,KAAA;MAErB;QAGFA,KAAM,GAAAD,SAAS,CAAOT,KAAA,WAChBhC,EAAA,EAAO;UAGT,OAAqCF,oBAAA,CAAAC,QAAA,EAAAC,EAAA,EAAAgC,KAAA,EAAA9B,MAAA,EAAA+B,GAAA;QAErC,GAAAU,GAAA,IAAAhE,MAAA,OAAA+D,KAAA;MACF,SAAQd,GAAA;QAOV,IAAAgB,UAAc,MAAAJ,IAAA,kBAAAzC,QAAA,EAAA8C,EAAA;QACZ,IAAMjB,GAAA,YAAahD,WAAO;UAEtB,IAAAkE,GAAA,0CAA4BF,UAAA;UAC9B,MAAIG,OAAM,CAAAC,GAAA,CAAAC,QAAA,sBAAgCP,KAAA,KAAUI,GAAA;AACpD,GAAA9D,qBAAY,CAAA0D,KAAI,UAAarC,KAAA,CAAAyC,GAAA;QACd;QAGjB,UAAAzC,KAAA,6BAAAuC,UAAA;AAEA,EAAAhB,GAAA;MAA8D;IAChE;EACF;EAEA,IAAAsB,eAAM,GAAAxE,iBAAkB,CAAAW,MAAoC,oBAAoB;IAC9E,IAAA8D,kBAAM,SAAqBC,OAAM,CAAAC,GAAQ,CAAAxE,aAAA,CAAAS,MAAA,EAAAgE,MAAA,WAAAC,MAAA;QACvC,KAAAC,CAAA,EAAAC,KAAA,CAAc,GAAAF,MAEX;QAEc,OACX,EAAAE,KAAA,CAAAC,WAAA;MAAA,GAAAC,GACE,iBAAgBJ,MAAI;QAA2B,IACjD,CAAA/B,GAAA,EAAAiC,KAAA,IAAAF,MAAA;QAAA,OACA,MACSzE,cAAA;UAAAiB,QACL;YACA8C,EAAA;YAAAP,IACE,OAAK;YAAAsB,KACH;UAAQ;QAEJ;UAEA,QAQOpC,GAAA,EACT;YACFqC,GAAA;cAEApE,MAAA,EAAQ,CACR,UAAQM,QAAA,EAAAC,EAAA;gBACR,IAAQ8D,GAAA,GAAAL,KAAA,CAAAC,WAAA,CAAA1D,EAAA,EAAAD,QAAA,EAAAgE,IAAA;gBACV,OAAAD,GAAA,UAAA9D,EAAA,CAAA8B,GAAA,KAAAgC,GAAA,UAAA9D,EAAA,CAAAa,MAAA,gBAAAiD,GAAA;cACF,EACF;cAGL;cACLpE,MAAA,EAAAjB,UAAA;cAEoBkB,MAAO,EAAAlB,UAAY;cAGxCoB,MAAA,EAAApB;YAEM;UACL,EACA;QACA;MACF;MAAAiF,WAAA,GAAAM,MAAA,CAAAC,WAAA,CAAAd,kBAAA;IACF,OAAAO,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["ensure","EnsureError","setDidRunPermissionCheck","mutatorContext","prettyFormatZeroQuery","getWhereTableName","_instanceof","left","right","Symbol","hasInstance","createPermissions","param","environment","schema","buildPermissionQuery","authData","eb","permissionWhere","objOrId","tableName","Error","tableSchema","tables","primaryKeys","primaryKey","permissionReturn","cmpLit","primaryKeyWheres","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","key","value","push","cmp","err","return","and","can","where","obj","ctx","ensurePermission","tx","role","queryBase","query","one","errorTitle","name","id","msg"],"sources":["../../src/createPermissions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,16 @@
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";
5
- import { context } from "./helpers/context";
6
6
  import { createMutators } from "./helpers/createMutators";
7
7
  import { prettyFormatZeroQuery } from "./helpers/prettyFormatZeroQuery";
8
8
  import { useZeroDebug } from "./helpers/useZeroDebug";
9
+ import { setAuthData, setSchema } from "./state";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
11
  function createZeroClient({ schema, models, disable }) {
11
- const modelPermissions = mapObject(models, (val) => val.permissions);
12
+ setSchema(schema);
13
+ const modelWritePermissions = mapObject(models, (val) => val.permissions);
12
14
  let latestZeroInstance = null;
13
15
  const zero = new Proxy({}, {
14
16
  get(_, key) {
@@ -16,18 +18,15 @@ function createZeroClient({ schema, models, disable }) {
16
18
  }
17
19
  }), permissionsHelpers = createPermissions({
18
20
  schema,
19
- models,
20
- getContext: context,
21
21
  environment: "client"
22
22
  }), zeroEvents = createEmitter("zero", null), AuthDataContext = createContext({}), useAuthData = () => use(AuthDataContext);
23
- function usePermission(table, action, objOrId, enabled = typeof objOrId < "u", debug = !1) {
24
- const key = `${`${String(table)}${action}`}${typeof objOrId == "string" ? objOrId : JSON.stringify(objOrId)}`, authData = useAuthData(), permission = modelPermissions[table], query = (() => {
23
+ function usePermission(table, objOrId, enabled = typeof objOrId < "u", debug = !1) {
24
+ const authData = useAuthData(), permission = modelWritePermissions[table], query = (() => {
25
25
  let baseQuery = zero.query[table].one();
26
26
  return !enabled || !permission ? baseQuery : baseQuery.where((eb) => permissionsHelpers.buildPermissionQuery(
27
27
  authData,
28
28
  eb,
29
29
  permission,
30
- action,
31
30
  objOrId
32
31
  ));
33
32
  })(), [data, status] = useQuery(query, {
@@ -35,28 +34,37 @@ function createZeroClient({ schema, models, disable }) {
35
34
  });
36
35
  debug && console.info(
37
36
  "usePermission()",
38
- { data, status, action, authData, permission },
37
+ { data, status, authData, permission },
39
38
  prettyFormatZeroQuery(query)
40
39
  );
41
40
  const allowed = !!data;
42
41
  return objOrId ? allowed : !1;
43
42
  }
44
- const useQuery = (query, options) => {
45
- if (disable)
46
- return [null, { type: "unknown" }];
47
- const out = zeroUseQuery(query, options);
48
- return process.env.NODE_ENV === "development" && useZeroDebug(query, options, out), out;
49
- }, ProvideZero = ({
43
+ const queryCache = /* @__PURE__ */ new Map(), parseAny = (x) => [x[0]];
44
+ function useQuery(...args) {
45
+ const [queryOrFn, paramsOrOptions, optionsArg] = args, isPlainFunction = typeof queryOrFn == "function" && !("queryName" in queryOrFn), { actualQuery, options } = useMemo(() => {
46
+ if (!isPlainFunction)
47
+ return {
48
+ actualQuery: queryOrFn,
49
+ options: paramsOrOptions
50
+ };
51
+ const fn = queryOrFn, queryName = fn.name || "anonymousQuery", hasParams = optionsArg !== void 0 || paramsOrOptions && typeof paramsOrOptions == "object" && !("enabled" in paramsOrOptions) && !("ttl" in paramsOrOptions), params = hasParams ? paramsOrOptions : void 0, opts = hasParams ? optionsArg : paramsOrOptions;
52
+ let synced = queryCache.get(queryName);
53
+ return synced || (synced = syncedQuery(queryName, parseAny, (arg) => fn(arg)), queryCache.set(queryName, synced)), { actualQuery: params !== void 0 ? synced(params) : synced, options: opts };
54
+ }, [queryOrFn, paramsOrOptions, optionsArg, isPlainFunction]), out = zeroUseQuery(actualQuery, options);
55
+ return process.env.NODE_ENV === "development" && useZeroDebug(actualQuery, options, out), disable ? [null, { type: "unknown" }] : out;
56
+ }
57
+ const ProvideZero = ({
50
58
  children,
51
59
  authData,
52
60
  ...props
53
61
  }) => {
54
- const mutators = useMemo(() => createMutators({
62
+ const mutators = useMemo(() => (setAuthData(authData), createMutators({
55
63
  models,
56
64
  environment: "client",
57
65
  authData,
58
66
  can: permissionsHelpers.can
59
- }), [models, authData]);
67
+ })), [models, authData]);
60
68
  return disable ? children : /* @__PURE__ */ jsx(AuthDataContext.Provider, { value: authData, children: /* @__PURE__ */ jsxs(
61
69
  ZeroProvider,
62
70
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createZeroClient.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["zero"]
6
6
  }