on-zero 0.7.10 → 0.8.0

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 (546) hide show
  1. package/{readme.md → README.md} +172 -231
  2. package/dist/cjs/cli.cjs +5 -2
  3. package/dist/cjs/cli.native.js +5 -2
  4. package/dist/cjs/cli.native.js.map +1 -1
  5. package/dist/cjs/combineZeroClients.cjs +2 -2
  6. package/dist/cjs/combineZeroClients.native.js +6 -6
  7. package/dist/cjs/combineZeroClients.native.js.map +1 -1
  8. package/dist/cjs/config.cjs +30 -0
  9. package/dist/cjs/config.native.js +33 -0
  10. package/dist/cjs/config.native.js.map +1 -0
  11. package/dist/cjs/createPermissions.cjs +2 -2
  12. package/dist/cjs/createPermissions.native.js +17 -27
  13. package/dist/cjs/createPermissions.native.js.map +1 -1
  14. package/dist/cjs/createUseQuery.cjs +3 -3
  15. package/dist/cjs/createUseQuery.native.js +4 -4
  16. package/dist/cjs/createUseQuery.native.js.map +1 -1
  17. package/dist/cjs/createUseQueryDirect.cjs +4 -3
  18. package/dist/cjs/createUseQueryDirect.native.js +14 -18
  19. package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
  20. package/dist/cjs/createZeroClient.cjs +29 -9
  21. package/dist/cjs/createZeroClient.connection.test.cjs +11 -0
  22. package/dist/cjs/createZeroClient.connection.test.native.js +14 -7
  23. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  24. package/dist/cjs/createZeroClient.native.js +58 -32
  25. package/dist/cjs/createZeroClient.native.js.map +1 -1
  26. package/dist/cjs/createZeroClient.recovery.test.cjs +90 -3
  27. package/dist/cjs/createZeroClient.recovery.test.native.js +109 -19
  28. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  29. package/dist/cjs/generate-helpers.cjs +70 -17
  30. package/dist/cjs/generate-helpers.native.js +110 -23
  31. package/dist/cjs/generate-helpers.native.js.map +1 -1
  32. package/dist/cjs/generate-layout.cjs +586 -0
  33. package/dist/cjs/generate-layout.native.js +1275 -0
  34. package/dist/cjs/generate-layout.native.js.map +1 -0
  35. package/dist/cjs/generate-lite.cjs +295 -27
  36. package/dist/cjs/generate-lite.native.js +854 -102
  37. package/dist/cjs/generate-lite.native.js.map +1 -1
  38. package/dist/cjs/generate-lite.test.cjs +433 -41
  39. package/dist/cjs/generate-lite.test.native.js +446 -41
  40. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  41. package/dist/cjs/generate.cjs +172 -94
  42. package/dist/cjs/generate.native.js +324 -148
  43. package/dist/cjs/generate.native.js.map +1 -1
  44. package/dist/cjs/generate.test.cjs +362 -45
  45. package/dist/cjs/generate.test.native.js +374 -45
  46. package/dist/cjs/generate.test.native.js.map +1 -1
  47. package/dist/cjs/helpers/NullToOptional.cjs +18 -0
  48. package/dist/cjs/helpers/NullToOptional.native.js +21 -0
  49. package/dist/cjs/helpers/NullToOptional.native.js.map +1 -0
  50. package/dist/cjs/helpers/asyncContext.cjs +128 -0
  51. package/dist/cjs/helpers/asyncContext.native.js +87 -0
  52. package/dist/cjs/helpers/asyncContext.native.js.map +1 -0
  53. package/dist/cjs/helpers/batchQuery.cjs +2 -2
  54. package/dist/cjs/helpers/batchQuery.native.js +2 -2
  55. package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
  56. package/dist/cjs/helpers/createMutators.cjs +7 -4
  57. package/dist/cjs/helpers/createMutators.native.js +12 -9
  58. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  59. package/dist/cjs/helpers/createMutators.test.native.js +2 -2
  60. package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
  61. package/dist/cjs/helpers/ellipsis.cjs +35 -0
  62. package/dist/cjs/helpers/ellipsis.native.js +38 -0
  63. package/dist/cjs/helpers/ellipsis.native.js.map +1 -0
  64. package/dist/cjs/helpers/emitter.cjs +99 -0
  65. package/dist/cjs/helpers/emitter.native.js +125 -0
  66. package/dist/cjs/helpers/emitter.native.js.map +1 -0
  67. package/dist/cjs/helpers/ensure.cjs +33 -0
  68. package/dist/cjs/helpers/ensure.native.js +37 -0
  69. package/dist/cjs/helpers/ensure.native.js.map +1 -0
  70. package/dist/cjs/helpers/ensureLoggedIn.cjs +2 -2
  71. package/dist/cjs/helpers/ensureLoggedIn.native.js +3 -3
  72. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
  73. package/dist/cjs/helpers/errors.cjs +40 -0
  74. package/dist/cjs/helpers/errors.native.js +152 -0
  75. package/dist/cjs/helpers/errors.native.js.map +1 -0
  76. package/dist/cjs/helpers/getCurrentComponentStack.cjs +71 -0
  77. package/dist/cjs/helpers/getCurrentComponentStack.native.js +93 -0
  78. package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -0
  79. package/dist/cjs/helpers/globalValue.cjs +39 -0
  80. package/dist/cjs/helpers/globalValue.native.js +42 -0
  81. package/dist/cjs/helpers/globalValue.native.js.map +1 -0
  82. package/dist/cjs/helpers/mapObject.cjs +36 -0
  83. package/dist/cjs/helpers/mapObject.native.js +39 -0
  84. package/dist/cjs/helpers/mapObject.native.js.map +1 -0
  85. package/dist/cjs/helpers/mutationLifecycle.cjs +251 -0
  86. package/dist/cjs/helpers/mutationLifecycle.native.js +392 -0
  87. package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -0
  88. package/dist/cjs/helpers/mutationLifecycle.test.cjs +174 -0
  89. package/dist/cjs/helpers/mutationLifecycle.test.native.js +182 -0
  90. package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -0
  91. package/dist/cjs/helpers/mutatorContext.cjs +3 -3
  92. package/dist/cjs/helpers/mutatorContext.native.js +5 -5
  93. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
  94. package/dist/cjs/helpers/platform.cjs +31 -0
  95. package/dist/cjs/helpers/platform.native.js +33 -0
  96. package/dist/cjs/helpers/platform.native.js.map +1 -0
  97. package/dist/cjs/helpers/prettyFormatZeroQuery.cjs +2 -2
  98. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js +7 -7
  99. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  100. package/dist/cjs/helpers/queryContext.cjs +2 -2
  101. package/dist/cjs/helpers/queryContext.native.js +4 -4
  102. package/dist/cjs/helpers/queryContext.native.js.map +1 -1
  103. package/dist/cjs/helpers/recoverZeroClient.cjs +14 -15
  104. package/dist/cjs/helpers/recoverZeroClient.native.js +26 -23
  105. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  106. package/dist/cjs/helpers/recoverZeroClient.test.cjs +10 -8
  107. package/dist/cjs/helpers/recoverZeroClient.test.native.js +17 -21
  108. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  109. package/dist/cjs/helpers/sleep.cjs +34 -0
  110. package/dist/cjs/helpers/sleep.native.js +39 -0
  111. package/dist/cjs/helpers/sleep.native.js.map +1 -0
  112. package/dist/cjs/helpers/time.cjs +47 -0
  113. package/dist/cjs/helpers/time.native.js +80 -0
  114. package/dist/cjs/helpers/time.native.js.map +1 -0
  115. package/dist/cjs/helpers/tuple.cjs +18 -0
  116. package/dist/cjs/helpers/tuple.native.js +21 -0
  117. package/dist/cjs/helpers/tuple.native.js.map +1 -0
  118. package/dist/cjs/helpers/useMutation.native.js +5 -5
  119. package/dist/cjs/helpers/useMutation.native.js.map +1 -1
  120. package/dist/cjs/helpers/useMutation.test.native.js +1 -1
  121. package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
  122. package/dist/cjs/helpers/useZeroDebug.cjs +2 -2
  123. package/dist/cjs/helpers/useZeroDebug.native.js +7 -8
  124. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
  125. package/dist/cjs/index.cjs +9 -1
  126. package/dist/cjs/index.native.js +8 -0
  127. package/dist/cjs/index.native.js.map +1 -1
  128. package/dist/cjs/instanceRegistry.cjs +16 -4
  129. package/dist/cjs/instanceRegistry.native.js +56 -6
  130. package/dist/cjs/instanceRegistry.native.js.map +1 -1
  131. package/dist/cjs/multi.cjs +34 -13
  132. package/dist/cjs/multi.native.js +39 -17
  133. package/dist/cjs/multi.native.js.map +1 -1
  134. package/dist/cjs/multiInstance.test.cjs +6 -2
  135. package/dist/cjs/multiInstance.test.native.js +13 -9
  136. package/dist/cjs/multiInstance.test.native.js.map +1 -1
  137. package/dist/cjs/multiInstanceNested.test.native.js +10 -10
  138. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  139. package/dist/cjs/multiPartition.test.cjs +85 -36
  140. package/dist/cjs/multiPartition.test.native.js +102 -39
  141. package/dist/cjs/multiPartition.test.native.js.map +1 -1
  142. package/dist/cjs/mutations.cjs +2 -2
  143. package/dist/cjs/mutations.native.js +4 -4
  144. package/dist/cjs/mutations.native.js.map +1 -1
  145. package/dist/cjs/mutations.test.native.js +3 -3
  146. package/dist/cjs/mutations.test.native.js.map +1 -1
  147. package/dist/cjs/provideZero.hydration.test.cjs +3 -3
  148. package/dist/cjs/provideZero.hydration.test.native.js +4 -4
  149. package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
  150. package/dist/cjs/run.cjs +1 -1
  151. package/dist/cjs/run.native.js +3 -3
  152. package/dist/cjs/run.native.js.map +1 -1
  153. package/dist/cjs/server.cjs +20 -16
  154. package/dist/cjs/server.native.js +50 -57
  155. package/dist/cjs/server.native.js.map +1 -1
  156. package/dist/cjs/server.test.cjs +129 -6
  157. package/dist/cjs/server.test.native.js +141 -10
  158. package/dist/cjs/server.test.native.js.map +1 -1
  159. package/dist/cjs/serverWhere.test.native.js +3 -3
  160. package/dist/cjs/serverWhere.test.native.js.map +1 -1
  161. package/dist/cjs/state.cjs +2 -2
  162. package/dist/cjs/state.native.js +10 -10
  163. package/dist/cjs/state.native.js.map +1 -1
  164. package/dist/cjs/usePermission.test.native.js +3 -3
  165. package/dist/cjs/usePermission.test.native.js.map +1 -1
  166. package/dist/cjs/useQuery.empty.test.cjs +3 -3
  167. package/dist/cjs/useQuery.empty.test.native.js +6 -6
  168. package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
  169. package/dist/cjs/useQuery.ssr.test.native.js +2 -2
  170. package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
  171. package/dist/cjs/vite-plugin.cjs +7 -8
  172. package/dist/cjs/vite-plugin.native.js +11 -11
  173. package/dist/cjs/vite-plugin.native.js.map +1 -1
  174. package/dist/cjs/where.cjs +3 -3
  175. package/dist/cjs/where.native.js +4 -4
  176. package/dist/cjs/where.native.js.map +1 -1
  177. package/dist/esm/cli.mjs +6 -3
  178. package/dist/esm/cli.mjs.map +1 -1
  179. package/dist/esm/cli.native.js +6 -3
  180. package/dist/esm/cli.native.js.map +1 -1
  181. package/dist/esm/combineZeroClients.mjs +1 -1
  182. package/dist/esm/combineZeroClients.mjs.map +1 -1
  183. package/dist/esm/combineZeroClients.native.js +5 -5
  184. package/dist/esm/combineZeroClients.native.js.map +1 -1
  185. package/dist/esm/config.mjs +5 -0
  186. package/dist/esm/config.mjs.map +1 -0
  187. package/dist/esm/config.native.js +5 -0
  188. package/dist/esm/config.native.js.map +1 -0
  189. package/dist/esm/createPermissions.mjs +1 -1
  190. package/dist/esm/createPermissions.mjs.map +1 -1
  191. package/dist/esm/createPermissions.native.js +16 -26
  192. package/dist/esm/createPermissions.native.js.map +1 -1
  193. package/dist/esm/createUseQuery.mjs +2 -2
  194. package/dist/esm/createUseQuery.mjs.map +1 -1
  195. package/dist/esm/createUseQuery.native.js +3 -3
  196. package/dist/esm/createUseQuery.native.js.map +1 -1
  197. package/dist/esm/createUseQueryDirect.mjs +2 -1
  198. package/dist/esm/createUseQueryDirect.mjs.map +1 -1
  199. package/dist/esm/createUseQueryDirect.native.js +12 -16
  200. package/dist/esm/createUseQueryDirect.native.js.map +1 -1
  201. package/dist/esm/createZeroClient.connection.test.mjs +11 -0
  202. package/dist/esm/createZeroClient.connection.test.mjs.map +1 -1
  203. package/dist/esm/createZeroClient.connection.test.native.js +14 -7
  204. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  205. package/dist/esm/createZeroClient.mjs +25 -5
  206. package/dist/esm/createZeroClient.mjs.map +1 -1
  207. package/dist/esm/createZeroClient.native.js +54 -28
  208. package/dist/esm/createZeroClient.native.js.map +1 -1
  209. package/dist/esm/createZeroClient.recovery.test.mjs +90 -3
  210. package/dist/esm/createZeroClient.recovery.test.mjs.map +1 -1
  211. package/dist/esm/createZeroClient.recovery.test.native.js +109 -19
  212. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  213. package/dist/esm/generate-helpers.mjs +70 -18
  214. package/dist/esm/generate-helpers.mjs.map +1 -1
  215. package/dist/esm/generate-helpers.native.js +110 -24
  216. package/dist/esm/generate-helpers.native.js.map +1 -1
  217. package/dist/esm/generate-layout.mjs +560 -0
  218. package/dist/esm/generate-layout.mjs.map +1 -0
  219. package/dist/esm/generate-layout.native.js +1246 -0
  220. package/dist/esm/generate-layout.native.js.map +1 -0
  221. package/dist/esm/generate-lite.mjs +296 -28
  222. package/dist/esm/generate-lite.mjs.map +1 -1
  223. package/dist/esm/generate-lite.native.js +855 -103
  224. package/dist/esm/generate-lite.native.js.map +1 -1
  225. package/dist/esm/generate-lite.test.mjs +434 -42
  226. package/dist/esm/generate-lite.test.mjs.map +1 -1
  227. package/dist/esm/generate-lite.test.native.js +447 -42
  228. package/dist/esm/generate-lite.test.native.js.map +1 -1
  229. package/dist/esm/generate.mjs +172 -96
  230. package/dist/esm/generate.mjs.map +1 -1
  231. package/dist/esm/generate.native.js +324 -150
  232. package/dist/esm/generate.native.js.map +1 -1
  233. package/dist/esm/generate.test.mjs +366 -49
  234. package/dist/esm/generate.test.mjs.map +1 -1
  235. package/dist/esm/generate.test.native.js +378 -49
  236. package/dist/esm/generate.test.native.js.map +1 -1
  237. package/dist/esm/helpers/NullToOptional.mjs +2 -0
  238. package/dist/esm/helpers/NullToOptional.mjs.map +1 -0
  239. package/dist/esm/helpers/NullToOptional.native.js +2 -0
  240. package/dist/esm/helpers/NullToOptional.native.js.map +1 -0
  241. package/dist/esm/helpers/asyncContext.mjs +102 -0
  242. package/dist/esm/helpers/asyncContext.mjs.map +1 -0
  243. package/dist/esm/helpers/asyncContext.native.js +58 -0
  244. package/dist/esm/helpers/asyncContext.native.js.map +1 -0
  245. package/dist/esm/helpers/batchQuery.mjs +1 -1
  246. package/dist/esm/helpers/batchQuery.native.js +1 -1
  247. package/dist/esm/helpers/createMutators.mjs +5 -2
  248. package/dist/esm/helpers/createMutators.mjs.map +1 -1
  249. package/dist/esm/helpers/createMutators.native.js +10 -7
  250. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  251. package/dist/esm/helpers/createMutators.test.native.js +2 -2
  252. package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
  253. package/dist/esm/helpers/ellipsis.mjs +10 -0
  254. package/dist/esm/helpers/ellipsis.mjs.map +1 -0
  255. package/dist/esm/helpers/ellipsis.native.js +10 -0
  256. package/dist/esm/helpers/ellipsis.native.js.map +1 -0
  257. package/dist/esm/helpers/emitter.mjs +72 -0
  258. package/dist/esm/helpers/emitter.mjs.map +1 -0
  259. package/dist/esm/helpers/emitter.native.js +95 -0
  260. package/dist/esm/helpers/emitter.native.js.map +1 -0
  261. package/dist/esm/helpers/ensure.mjs +8 -0
  262. package/dist/esm/helpers/ensure.mjs.map +1 -0
  263. package/dist/esm/helpers/ensure.native.js +9 -0
  264. package/dist/esm/helpers/ensure.native.js.map +1 -0
  265. package/dist/esm/helpers/ensureLoggedIn.mjs +1 -1
  266. package/dist/esm/helpers/ensureLoggedIn.mjs.map +1 -1
  267. package/dist/esm/helpers/ensureLoggedIn.native.js +2 -2
  268. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
  269. package/dist/esm/helpers/errors.mjs +14 -0
  270. package/dist/esm/helpers/errors.mjs.map +1 -0
  271. package/dist/esm/helpers/errors.native.js +123 -0
  272. package/dist/esm/helpers/errors.native.js.map +1 -0
  273. package/dist/esm/helpers/getCurrentComponentStack.mjs +35 -0
  274. package/dist/esm/helpers/getCurrentComponentStack.mjs.map +1 -0
  275. package/dist/esm/helpers/getCurrentComponentStack.native.js +54 -0
  276. package/dist/esm/helpers/getCurrentComponentStack.native.js.map +1 -0
  277. package/dist/esm/helpers/globalValue.mjs +14 -0
  278. package/dist/esm/helpers/globalValue.mjs.map +1 -0
  279. package/dist/esm/helpers/globalValue.native.js +14 -0
  280. package/dist/esm/helpers/globalValue.native.js.map +1 -0
  281. package/dist/esm/helpers/mapObject.mjs +11 -0
  282. package/dist/esm/helpers/mapObject.mjs.map +1 -0
  283. package/dist/esm/helpers/mapObject.native.js +11 -0
  284. package/dist/esm/helpers/mapObject.native.js.map +1 -0
  285. package/dist/esm/helpers/mutationLifecycle.mjs +221 -0
  286. package/dist/esm/helpers/mutationLifecycle.mjs.map +1 -0
  287. package/dist/esm/helpers/mutationLifecycle.native.js +359 -0
  288. package/dist/esm/helpers/mutationLifecycle.native.js.map +1 -0
  289. package/dist/esm/helpers/mutationLifecycle.test.mjs +175 -0
  290. package/dist/esm/helpers/mutationLifecycle.test.mjs.map +1 -0
  291. package/dist/esm/helpers/mutationLifecycle.test.native.js +180 -0
  292. package/dist/esm/helpers/mutationLifecycle.test.native.js.map +1 -0
  293. package/dist/esm/helpers/mutatorContext.mjs +1 -1
  294. package/dist/esm/helpers/mutatorContext.native.js +4 -4
  295. package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
  296. package/dist/esm/helpers/platform.mjs +5 -0
  297. package/dist/esm/helpers/platform.mjs.map +1 -0
  298. package/dist/esm/helpers/platform.native.js +4 -0
  299. package/dist/esm/helpers/platform.native.js.map +1 -0
  300. package/dist/esm/helpers/prettyFormatZeroQuery.mjs +1 -1
  301. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +6 -6
  302. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  303. package/dist/esm/helpers/queryContext.mjs +1 -1
  304. package/dist/esm/helpers/queryContext.native.js +3 -3
  305. package/dist/esm/helpers/queryContext.native.js.map +1 -1
  306. package/dist/esm/helpers/recoverZeroClient.mjs +14 -15
  307. package/dist/esm/helpers/recoverZeroClient.mjs.map +1 -1
  308. package/dist/esm/helpers/recoverZeroClient.native.js +26 -23
  309. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  310. package/dist/esm/helpers/recoverZeroClient.test.mjs +8 -6
  311. package/dist/esm/helpers/recoverZeroClient.test.mjs.map +1 -1
  312. package/dist/esm/helpers/recoverZeroClient.test.native.js +15 -19
  313. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  314. package/dist/esm/helpers/sleep.mjs +9 -0
  315. package/dist/esm/helpers/sleep.mjs.map +1 -0
  316. package/dist/esm/helpers/sleep.native.js +11 -0
  317. package/dist/esm/helpers/sleep.native.js.map +1 -0
  318. package/dist/esm/helpers/time.mjs +22 -0
  319. package/dist/esm/helpers/time.mjs.map +1 -0
  320. package/dist/esm/helpers/time.native.js +52 -0
  321. package/dist/esm/helpers/time.native.js.map +1 -0
  322. package/dist/esm/helpers/tuple.mjs +2 -0
  323. package/dist/esm/helpers/tuple.mjs.map +1 -0
  324. package/dist/esm/helpers/tuple.native.js +2 -0
  325. package/dist/esm/helpers/tuple.native.js.map +1 -0
  326. package/dist/esm/helpers/useMutation.native.js +5 -5
  327. package/dist/esm/helpers/useMutation.native.js.map +1 -1
  328. package/dist/esm/helpers/useMutation.test.native.js +1 -1
  329. package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
  330. package/dist/esm/helpers/useZeroDebug.mjs +1 -1
  331. package/dist/esm/helpers/useZeroDebug.mjs.map +1 -1
  332. package/dist/esm/helpers/useZeroDebug.native.js +6 -7
  333. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  334. package/dist/esm/index.js +3 -1
  335. package/dist/esm/index.js.map +1 -1
  336. package/dist/esm/index.mjs +3 -1
  337. package/dist/esm/index.mjs.map +1 -1
  338. package/dist/esm/index.native.js +3 -1
  339. package/dist/esm/index.native.js.map +1 -1
  340. package/dist/esm/instanceRegistry.mjs +13 -2
  341. package/dist/esm/instanceRegistry.mjs.map +1 -1
  342. package/dist/esm/instanceRegistry.native.js +53 -4
  343. package/dist/esm/instanceRegistry.native.js.map +1 -1
  344. package/dist/esm/multi.mjs +33 -12
  345. package/dist/esm/multi.mjs.map +1 -1
  346. package/dist/esm/multi.native.js +38 -16
  347. package/dist/esm/multi.native.js.map +1 -1
  348. package/dist/esm/multiInstance.test.mjs +5 -1
  349. package/dist/esm/multiInstance.test.mjs.map +1 -1
  350. package/dist/esm/multiInstance.test.native.js +12 -8
  351. package/dist/esm/multiInstance.test.native.js.map +1 -1
  352. package/dist/esm/multiInstanceNested.test.native.js +10 -10
  353. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  354. package/dist/esm/multiPartition.test.mjs +86 -37
  355. package/dist/esm/multiPartition.test.mjs.map +1 -1
  356. package/dist/esm/multiPartition.test.native.js +103 -40
  357. package/dist/esm/multiPartition.test.native.js.map +1 -1
  358. package/dist/esm/mutations.mjs +1 -1
  359. package/dist/esm/mutations.mjs.map +1 -1
  360. package/dist/esm/mutations.native.js +3 -3
  361. package/dist/esm/mutations.native.js.map +1 -1
  362. package/dist/esm/mutations.test.native.js +3 -3
  363. package/dist/esm/mutations.test.native.js.map +1 -1
  364. package/dist/esm/provideZero.hydration.test.mjs +1 -1
  365. package/dist/esm/provideZero.hydration.test.mjs.map +1 -1
  366. package/dist/esm/provideZero.hydration.test.native.js +2 -2
  367. package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
  368. package/dist/esm/run.mjs +1 -1
  369. package/dist/esm/run.mjs.map +1 -1
  370. package/dist/esm/run.native.js +3 -3
  371. package/dist/esm/run.native.js.map +1 -1
  372. package/dist/esm/server.mjs +20 -15
  373. package/dist/esm/server.mjs.map +1 -1
  374. package/dist/esm/server.native.js +50 -56
  375. package/dist/esm/server.native.js.map +1 -1
  376. package/dist/esm/server.test.mjs +130 -7
  377. package/dist/esm/server.test.mjs.map +1 -1
  378. package/dist/esm/server.test.native.js +142 -11
  379. package/dist/esm/server.test.native.js.map +1 -1
  380. package/dist/esm/serverWhere.test.mjs.map +1 -1
  381. package/dist/esm/serverWhere.test.native.js +3 -3
  382. package/dist/esm/serverWhere.test.native.js.map +1 -1
  383. package/dist/esm/state.mjs +1 -1
  384. package/dist/esm/state.mjs.map +1 -1
  385. package/dist/esm/state.native.js +9 -9
  386. package/dist/esm/state.native.js.map +1 -1
  387. package/dist/esm/usePermission.test.native.js +3 -3
  388. package/dist/esm/usePermission.test.native.js.map +1 -1
  389. package/dist/esm/useQuery.empty.test.mjs +1 -1
  390. package/dist/esm/useQuery.empty.test.mjs.map +1 -1
  391. package/dist/esm/useQuery.empty.test.native.js +4 -4
  392. package/dist/esm/useQuery.empty.test.native.js.map +1 -1
  393. package/dist/esm/useQuery.ssr.test.native.js +2 -2
  394. package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
  395. package/dist/esm/vite-plugin.mjs +7 -8
  396. package/dist/esm/vite-plugin.mjs.map +1 -1
  397. package/dist/esm/vite-plugin.native.js +11 -11
  398. package/dist/esm/vite-plugin.native.js.map +1 -1
  399. package/dist/esm/where.mjs +1 -1
  400. package/dist/esm/where.mjs.map +1 -1
  401. package/dist/esm/where.native.js +2 -2
  402. package/dist/esm/where.native.js.map +1 -1
  403. package/package.json +18 -6
  404. package/src/cli.ts +11 -3
  405. package/src/combineZeroClients.tsx +18 -10
  406. package/src/config.ts +72 -0
  407. package/src/createPermissions.ts +3 -4
  408. package/src/createUseQuery.tsx +8 -8
  409. package/src/createUseQueryDirect.tsx +11 -10
  410. package/src/createZeroClient.authData.test.tsx +1 -1
  411. package/src/createZeroClient.connection.test.tsx +13 -2
  412. package/src/createZeroClient.recovery.test.tsx +100 -4
  413. package/src/createZeroClient.tsx +87 -30
  414. package/src/generate-helpers.ts +108 -31
  415. package/src/generate-layout.ts +841 -0
  416. package/src/generate-lite.test.ts +421 -42
  417. package/src/generate-lite.ts +479 -43
  418. package/src/generate.test.ts +552 -90
  419. package/src/generate.ts +360 -163
  420. package/src/helpers/NullToOptional.ts +5 -0
  421. package/src/helpers/asyncContext.native.ts +90 -0
  422. package/src/helpers/asyncContext.ts +159 -0
  423. package/src/helpers/batchQuery.ts +2 -2
  424. package/src/helpers/createMutators.ts +11 -8
  425. package/src/helpers/ellipsis.ts +9 -0
  426. package/src/helpers/emitter.tsx +106 -0
  427. package/src/helpers/ensure.ts +10 -0
  428. package/src/helpers/ensureLoggedIn.ts +1 -2
  429. package/src/helpers/errors.ts +13 -0
  430. package/src/helpers/getCurrentComponentStack.ts +56 -0
  431. package/src/helpers/globalValue.ts +40 -0
  432. package/src/helpers/mapObject.ts +14 -0
  433. package/src/helpers/mutationLifecycle.test.ts +180 -0
  434. package/src/helpers/mutationLifecycle.ts +313 -0
  435. package/src/helpers/mutatorContext.ts +3 -3
  436. package/src/helpers/platform.native.ts +2 -0
  437. package/src/helpers/platform.ts +16 -0
  438. package/src/helpers/prettyFormatZeroQuery.ts +2 -2
  439. package/src/helpers/queryContext.ts +2 -2
  440. package/src/helpers/recoverZeroClient.test.ts +23 -21
  441. package/src/helpers/recoverZeroClient.ts +56 -49
  442. package/src/helpers/sleep.ts +8 -0
  443. package/src/helpers/time.ts +51 -0
  444. package/src/helpers/tuple.ts +1 -0
  445. package/src/helpers/useMutation.tsx +3 -3
  446. package/src/helpers/useZeroDebug.ts +3 -3
  447. package/src/index.ts +13 -1
  448. package/src/instanceRegistry.ts +19 -6
  449. package/src/multi.ts +75 -31
  450. package/src/multiInstance.test.tsx +31 -13
  451. package/src/multiInstanceNested.test.tsx +2 -2
  452. package/src/multiPartition.test.ts +62 -27
  453. package/src/mutations.ts +10 -10
  454. package/src/provideZero.hydration.test.tsx +1 -1
  455. package/src/resolveQuery.ts +2 -2
  456. package/src/run.ts +7 -7
  457. package/src/server.test.ts +117 -18
  458. package/src/server.ts +70 -43
  459. package/src/serverWhere.ts +2 -2
  460. package/src/state.ts +2 -2
  461. package/src/types.ts +47 -6
  462. package/src/useQuery.empty.test.tsx +3 -3
  463. package/src/useQuery.ssr.test.ts +1 -1
  464. package/src/vite-plugin.ts +12 -9
  465. package/src/where.ts +6 -7
  466. package/src/zeroRunner.ts +2 -2
  467. package/types/combineZeroClients.d.ts +11 -5
  468. package/types/combineZeroClients.d.ts.map +1 -1
  469. package/types/config.d.ts +62 -0
  470. package/types/config.d.ts.map +1 -0
  471. package/types/createPermissions.d.ts.map +1 -1
  472. package/types/createUseQuery.d.ts.map +1 -1
  473. package/types/createUseQueryDirect.d.ts +1 -1
  474. package/types/createUseQueryDirect.d.ts.map +1 -1
  475. package/types/createZeroClient.d.ts +22 -12
  476. package/types/createZeroClient.d.ts.map +1 -1
  477. package/types/createZeroClient.recovery.test.d.ts.map +1 -1
  478. package/types/generate-helpers.d.ts +17 -2
  479. package/types/generate-helpers.d.ts.map +1 -1
  480. package/types/generate-layout.d.ts +26 -0
  481. package/types/generate-layout.d.ts.map +1 -0
  482. package/types/generate-lite.d.ts +29 -1
  483. package/types/generate-lite.d.ts.map +1 -1
  484. package/types/generate.d.ts +20 -0
  485. package/types/generate.d.ts.map +1 -1
  486. package/types/helpers/NullToOptional.d.ts +6 -0
  487. package/types/helpers/NullToOptional.d.ts.map +1 -0
  488. package/types/helpers/asyncContext.d.ts +15 -0
  489. package/types/helpers/asyncContext.d.ts.map +1 -0
  490. package/types/helpers/asyncContext.native.d.ts +8 -0
  491. package/types/helpers/asyncContext.native.d.ts.map +1 -0
  492. package/types/helpers/createMutators.d.ts +2 -1
  493. package/types/helpers/createMutators.d.ts.map +1 -1
  494. package/types/helpers/ellipsis.d.ts +2 -0
  495. package/types/helpers/ellipsis.d.ts.map +1 -0
  496. package/types/helpers/emitter.d.ts +21 -0
  497. package/types/helpers/emitter.d.ts.map +1 -0
  498. package/types/helpers/ensure.d.ts +2 -0
  499. package/types/helpers/ensure.d.ts.map +1 -0
  500. package/types/helpers/ensureLoggedIn.d.ts.map +1 -1
  501. package/types/helpers/errors.d.ts +7 -0
  502. package/types/helpers/errors.d.ts.map +1 -0
  503. package/types/helpers/getCurrentComponentStack.d.ts +2 -0
  504. package/types/helpers/getCurrentComponentStack.d.ts.map +1 -0
  505. package/types/helpers/globalValue.d.ts +23 -0
  506. package/types/helpers/globalValue.d.ts.map +1 -0
  507. package/types/helpers/mapObject.d.ts +4 -0
  508. package/types/helpers/mapObject.d.ts.map +1 -0
  509. package/types/helpers/mutationLifecycle.d.ts +44 -0
  510. package/types/helpers/mutationLifecycle.d.ts.map +1 -0
  511. package/types/helpers/mutationLifecycle.test.d.ts +2 -0
  512. package/types/helpers/mutationLifecycle.test.d.ts.map +1 -0
  513. package/types/helpers/platform.d.ts +3 -0
  514. package/types/helpers/platform.d.ts.map +1 -0
  515. package/types/helpers/platform.native.d.ts +3 -0
  516. package/types/helpers/platform.native.d.ts.map +1 -0
  517. package/types/helpers/recoverZeroClient.d.ts +13 -9
  518. package/types/helpers/recoverZeroClient.d.ts.map +1 -1
  519. package/types/helpers/sleep.d.ts +2 -0
  520. package/types/helpers/sleep.d.ts.map +1 -0
  521. package/types/helpers/time.d.ts +28 -0
  522. package/types/helpers/time.d.ts.map +1 -0
  523. package/types/helpers/tuple.d.ts +2 -0
  524. package/types/helpers/tuple.d.ts.map +1 -0
  525. package/types/index.d.ts +3 -1
  526. package/types/index.d.ts.map +1 -1
  527. package/types/instanceRegistry.d.ts +1 -0
  528. package/types/instanceRegistry.d.ts.map +1 -1
  529. package/types/multi.d.ts +23 -1
  530. package/types/multi.d.ts.map +1 -1
  531. package/types/mutations.d.ts +1 -1
  532. package/types/mutations.d.ts.map +1 -1
  533. package/types/run.d.ts.map +1 -1
  534. package/types/server.d.ts +12 -8
  535. package/types/server.d.ts.map +1 -1
  536. package/types/state.d.ts +1 -1
  537. package/types/state.d.ts.map +1 -1
  538. package/types/types.d.ts +23 -1
  539. package/types/types.d.ts.map +1 -1
  540. package/types/vite-plugin.d.ts.map +1 -1
  541. package/types/where.d.ts.map +1 -1
  542. package/lint/ssr-guards.js +0 -165
  543. package/test-fixtures/server-return-types.ts +0 -58
  544. package/test-fixtures/tsconfig.json +0 -13
  545. package/tsconfig.json +0 -26
  546. package/vitest.config.ts +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","generate_layout_exports","__export","discoverDataLayout","namespaceImportPath","module","exports","import_fs","require","import_path","isSourceFile","isSourceFile2","name","endsWith","toImportPath","toImportPath2","baseDir","path","relative","split","sep","join","replace","isWithin","isWithin2","root","child","startsWith","propertyName","ts","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","configPath","resolve","existsSync","Error","dirname","source","createSourceFile","readFileSync","ScriptTarget","Latest","hasParseErrors","config","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","statements","Symbol","iterator","_step","next","done","statement","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","arguments","isObjectLiteralExpression","err","return","rootOptions","Map","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","properties","_step1","option","isPropertyAssignment","has","set","initializer","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","keys","_step2","name1","instancesNode","get","instances","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_loop","property","_step3","name2","some","instance","dir","scope","supportTables","seen","Set","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_iterator5","_step5","option2","optionName","add","isArrayLiteralExpression","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_iterator12","elements","_step12","table","push","statSync","isDirectory","_iterator3","length","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_loop1","_step4","duplicate","find","candidate","_iterator4","_source_parseDiagnostics","Boolean","parseDiagnostics","hasNamespaceExports","displayPath","console","warn","functions","exported","isVariableStatement","_statement_modifiers","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declarationList","declarations","declaration","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","_statement_modifiers1","visiting","reachesQuery","reachesQuery1","node","isPropertyAccessExpression","helper","found","delete","found1","forEachChild","discoverNamespaces","instanceDirs","namespaces","readdirSync","withFileTypes","sort","a","b","localeCompare","entry","isFile","basename","queryPath","modelPath","sourcePaths","folder","hasQueries","hasMutations","includes","filter","path2","metadataPaths","paths","relations","databaseDir","relationTargets","visit","visit1","factory","isParenthesizedExpression","tableProperty","_relations_get","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","namespace","isVariableDeclaration","tableNames","foundColumns","inspect","inspect1","argument","test"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,28 @@ function baseName(path, ext) {
35
35
  if (ext && base.endsWith(ext)) base = base.slice(0, -ext.length);
36
36
  return base;
37
37
  }
38
+ function resolvePath(path) {
39
+ const absolute = path.startsWith("/");
40
+ const parts = [];
41
+ for (const part of path.split("/")) {
42
+ if (!part || part === ".") continue;
43
+ if (part === "..") parts.pop();else parts.push(part);
44
+ }
45
+ return `${absolute ? "/" : ""}${parts.join("/")}`;
46
+ }
47
+ function parentDir(path) {
48
+ return path.slice(0, path.lastIndexOf("/"));
49
+ }
50
+ function relativePath(from, to) {
51
+ const fromParts = resolvePath(from).split("/").filter(Boolean);
52
+ const toParts = resolvePath(to).split("/").filter(Boolean);
53
+ let common = 0;
54
+ while (fromParts[common] === toParts[common] && common < fromParts.length) common++;
55
+ return [...Array.from({
56
+ length: fromParts.length - common
57
+ }, () => ".."), ...toParts.slice(common)].join("/");
58
+ }
59
+ const isWithin = (root, path) => path === root || path.startsWith(`${root}/`);
38
60
  function listDirectTsFiles(files, dirPrefix) {
39
61
  const prefix = stripTrailingSlash(dirPrefix) + "/";
40
62
  const out = [];
@@ -49,28 +71,172 @@ function listDirectTsFiles(files, dirPrefix) {
49
71
  }
50
72
  return out.sort();
51
73
  }
74
+ function discoverLiteLayout(files, baseDir, parse, explicitConfigPath) {
75
+ const paths = Object.keys(files);
76
+ const configPath = resolvePath(explicitConfigPath ?? `${baseDir}/on-zero.config.ts`);
77
+ const configSource = files[configPath];
78
+ let config;
79
+ if (configSource !== void 0) {
80
+ const parsed = parse(configSource, configPath);
81
+ if (parsed.parseError) {
82
+ throw new Error(`[on-zero] unable to parse ${configPath}: ${parsed.parseError}`);
83
+ }
84
+ config = parsed.dataConfig;
85
+ if (!config) {
86
+ throw new Error(`[on-zero] ${configPath} must default export defineConfig({ instances: { ... } })`);
87
+ }
88
+ } else if (explicitConfigPath) {
89
+ throw new Error(`[on-zero] config file does not exist: ${configPath}`);
90
+ }
91
+ if (explicitConfigPath && parentDir(configPath) !== baseDir) {
92
+ throw new Error(`[on-zero] ${configPath} must be at the data root ${baseDir}`);
93
+ }
94
+ const instances = config ? Object.entries(config.instances).map(([name, options]) => {
95
+ if (options.dir?.startsWith("/")) {
96
+ throw new Error(`[on-zero] instance '${name}' dir must be relative to ${configPath}`);
97
+ }
98
+ if (options.scope === "") {
99
+ throw new Error(`[on-zero] instance '${name}' scope cannot be empty`);
100
+ }
101
+ if (options.supportTables?.some(table => table === "")) {
102
+ throw new Error(`[on-zero] instance '${name}' supportTables cannot contain an empty table name`);
103
+ }
104
+ return {
105
+ name,
106
+ dir: resolvePath(`${parentDir(configPath)}/${options.dir ?? name}`),
107
+ scope: options.scope ?? null,
108
+ declaredSupportTables: [...(options.supportTables ?? [])],
109
+ namespaces: []
110
+ };
111
+ }) : [{
112
+ name: "default",
113
+ dir: baseDir,
114
+ scope: null,
115
+ declaredSupportTables: [],
116
+ namespaces: []
117
+ }];
118
+ if (config && instances.length === 0) {
119
+ throw new Error(`[on-zero] ${configPath} must declare at least one instance`);
120
+ }
121
+ for (const instance of instances) {
122
+ if (!paths.some(path => isWithin(instance.dir, path))) {
123
+ throw new Error(`[on-zero] instance '${instance.name}' directory does not exist: ${instance.dir}`);
124
+ }
125
+ const duplicate = instances.find(candidate => candidate !== instance && candidate.dir === instance.dir);
126
+ if (duplicate) {
127
+ throw new Error(`[on-zero] instances '${instance.name}' and '${duplicate.name}' resolve to the same directory: ${instance.dir}`);
128
+ }
129
+ }
130
+ const instanceDirs = new Set(instances.map(instance => instance.dir));
131
+ const sourceRoots = [baseDir, ...instances.map(instance => instance.dir)];
132
+ const remnant = paths.find(path => baseName(path) === "instance.ts" && sourceRoots.some(root => isWithin(root, path)));
133
+ if (remnant) {
134
+ throw new Error(`[on-zero] ${remnant} uses removed instance.ts configuration; delete it and configure instances in on-zero.config.ts`);
135
+ }
136
+ const parseDataFile = path => {
137
+ let parsed;
138
+ try {
139
+ parsed = parse(files[path], path);
140
+ } catch {
141
+ console.warn(`[on-zero] ignoring ${path.slice(baseDir.lastIndexOf("/") + 1)}: no recognized data exports`);
142
+ return null;
143
+ }
144
+ if (parsed.parseError) {
145
+ console.warn(`[on-zero] ignoring ${path.slice(baseDir.lastIndexOf("/") + 1)}: no recognized data exports`);
146
+ return null;
147
+ }
148
+ return parsed;
149
+ };
150
+ const hasDataExport = (source, parsed) => parsed.queries.length > 0 || parsed.mutations.length > 0 || (parsed.tables?.length ?? 0) > 0 || /export\s+const\s+(?:mutate|schema|where)\s*=\s*(?:mutations|serverWhere|table)\s*\(/.test(source);
151
+ if (config) {
152
+ for (const path of paths) {
153
+ if (path === configPath || !isWithin(baseDir, path) || instances.some(instance => isWithin(instance.dir, path)) || isWithin(`${baseDir}/generated`, path) || !path.endsWith(".ts") || path.endsWith(".d.ts") || path.endsWith(".test.ts") || path.endsWith(".spec.ts") || baseName(path) === "instance.ts") {
154
+ continue;
155
+ }
156
+ const parsed = parseDataFile(path);
157
+ if (parsed && hasDataExport(files[path], parsed)) {
158
+ throw new Error(`[on-zero] data namespace ${path} is outside every instance directory declared in ${configPath}`);
159
+ }
160
+ }
161
+ }
162
+ for (const instance of instances) {
163
+ const directFiles = listDirectTsFiles(files, instance.dir).filter(path => baseName(path) !== "on-zero.config.ts");
164
+ for (const path of directFiles) {
165
+ const source = files[path];
166
+ const parsed = parseDataFile(path);
167
+ if (!parsed || !hasDataExport(source, parsed)) continue;
168
+ instance.namespaces.push({
169
+ name: baseName(path, ".ts"),
170
+ instance: instance.name,
171
+ queryPath: path,
172
+ modelPath: path
173
+ });
174
+ }
175
+ const prefix = `${instance.dir}/`;
176
+ const folders = /* @__PURE__ */new Set();
177
+ for (const path of paths) {
178
+ if (!path.startsWith(prefix)) continue;
179
+ const rest = path.slice(prefix.length);
180
+ const slash = rest.indexOf("/");
181
+ if (slash > 0) folders.add(`${instance.dir}/${rest.slice(0, slash)}`);
182
+ }
183
+ for (const folder of [...folders].sort()) {
184
+ if (folder === `${baseDir}/generated` || instanceDirs.has(folder)) continue;
185
+ const queries = `${folder}/queries.ts`;
186
+ const mutations = `${folder}/mutations.ts`;
187
+ if (!(queries in files) && !(mutations in files)) {
188
+ const oldName = baseName(folder);
189
+ if (["models", "mutations", "queries"].includes(oldName) && listDirectTsFiles(files, folder).length > 0) {
190
+ throw new Error(`[on-zero] ${folder} uses the removed top-level ${oldName}/ layout; move each namespace to <name>.ts or <name>/queries.ts + mutations.ts`);
191
+ }
192
+ continue;
193
+ }
194
+ instance.namespaces.push({
195
+ name: baseName(folder),
196
+ instance: instance.name,
197
+ queryPath: queries in files ? queries : null,
198
+ modelPath: mutations in files ? mutations : null
199
+ });
200
+ }
201
+ }
202
+ const owners = /* @__PURE__ */new Map();
203
+ for (const namespace of instances.flatMap(instance => instance.namespaces)) {
204
+ const owner = owners.get(namespace.name);
205
+ if (owner) {
206
+ throw new Error(`[on-zero] namespace '${namespace.name}' is claimed by instances '${owner}' and '${namespace.instance}'`);
207
+ }
208
+ owners.set(namespace.name, namespace.instance);
209
+ }
210
+ return instances;
211
+ }
52
212
  function generateLite(opts) {
53
213
  const {
54
214
  files,
55
215
  parse
56
216
  } = opts;
57
- const baseDir = stripTrailingSlash(opts.dir);
58
- let modelsDirName;
59
- if (opts.modelsDir) {
60
- modelsDirName = opts.modelsDir;
61
- } else {
62
- const mutationsPrefix = `${baseDir}/mutations/`;
63
- const hasMutationsDir = Object.keys(files).some(p => p.startsWith(mutationsPrefix));
64
- modelsDirName = hasMutationsDir ? "mutations" : "models";
65
- }
66
- const modelsDirPath = `${baseDir}/${modelsDirName}`;
67
- const queriesDirPath = `${baseDir}/queries`;
68
- const modelFilePaths = listDirectTsFiles(files, modelsDirPath);
69
- const queryFilePaths = listDirectTsFiles(files, queriesDirPath);
217
+ const baseDir = resolvePath(stripTrailingSlash(opts.dir));
218
+ const instances = discoverLiteLayout(files, baseDir, parse, opts.config);
219
+ const sourceRoots = [baseDir, ...instances.map(instance => instance.dir)];
220
+ const namespaces = instances.flatMap(instance => instance.namespaces);
221
+ const modelNamespaces = namespaces.filter(namespace => namespace.modelPath !== null);
222
+ const relations = /* @__PURE__ */new Map();
223
+ const tableColumns = /* @__PURE__ */new Map();
224
+ for (const path of Object.keys(files).filter(path2 => path2.endsWith("/relations.ts") || /\/database\/(?:schema[^/]*|zeroSchemaInput)\.ts$/.test(path2))) {
225
+ const parsed = parse(files[path], path);
226
+ for (const relation of parsed.relations ?? []) {
227
+ const tableRelations = relations.get(relation.sourceTable) ?? /* @__PURE__ */new Map();
228
+ tableRelations.set(relation.name, relation.targetTable);
229
+ relations.set(relation.sourceTable, tableRelations);
230
+ }
231
+ for (const table of parsed.tables ?? []) {
232
+ tableColumns.set(table.name, new Set(table.columns));
233
+ }
234
+ }
70
235
  const allModelMutations = [];
71
236
  const modelNamesWithSchema = [];
72
- for (const filePath of modelFilePaths) {
73
- const modelName = baseName(filePath, ".ts");
237
+ for (const namespace of modelNamespaces) {
238
+ const filePath = namespace.modelPath;
239
+ const modelName = namespace.name;
74
240
  const content = files[filePath];
75
241
  const parsed = parse(content, filePath);
76
242
  const mutationExport = parsed.mutations[0] ?? null;
@@ -84,6 +250,9 @@ function generateLite(opts) {
84
250
  for (const col of mutationExport.schema.columns) {
85
251
  columns[col.name] = (0, import_generate_helpers.parseColumnType)(col.builderText);
86
252
  }
253
+ const names = new Set(mutationExport.schema.columns.map(column => column.name));
254
+ tableColumns.set(modelName, names);
255
+ tableColumns.set(mutationExport.schema.tableName, names);
87
256
  }
88
257
  const hasCRUD = hasSchema && mutationExport !== null;
89
258
  const custom = (mutationExport?.handlers ?? []).map(h => {
@@ -123,18 +292,32 @@ function generateLite(opts) {
123
292
  });
124
293
  }
125
294
  const allQueries = [];
126
- for (const filePath of queryFilePaths) {
127
- const fileBaseName = baseName(filePath, ".ts");
295
+ const relatedPaths = /* @__PURE__ */new Map();
296
+ for (const namespace of namespaces.filter(namespace2 => namespace2.queryPath !== null)) {
297
+ const filePath = namespace.queryPath;
298
+ const fileBaseName = namespace.name;
128
299
  const content = files[filePath];
129
300
  const parsed = parse(content, filePath);
301
+ if (content.includes(".related(") && !parsed.queries.some(query => query.relatedPaths)) {
302
+ throw new Error(`[on-zero] ${filePath} uses related(), but the lite parser did not return relatedPaths`);
303
+ }
130
304
  for (const q of parsed.queries) {
131
- if (q.name === "permission") continue;
305
+ if (["mutate", "permission", "schema", "where"].includes(q.name)) continue;
306
+ if (q.relatedPaths?.length) {
307
+ const entries = relatedPaths.get(namespace.name) ?? [];
308
+ entries.push({
309
+ query: q.name,
310
+ paths: q.relatedPaths
311
+ });
312
+ relatedPaths.set(namespace.name, entries);
313
+ }
132
314
  if (q.paramTypeText == null) {
133
315
  allQueries.push({
134
316
  name: q.name,
135
317
  params: "void",
136
318
  valibotCode: "",
137
- sourceFile: fileBaseName
319
+ sourceFile: fileBaseName,
320
+ importPath: `../${relativePath(baseDir, filePath).replace(/\.ts$/, "")}`
138
321
  });
139
322
  continue;
140
323
  }
@@ -149,22 +332,102 @@ function generateLite(opts) {
149
332
  name: q.name,
150
333
  params: paramType,
151
334
  valibotCode: valibotCode ?? "v.unknown()",
152
- sourceFile: fileBaseName
335
+ sourceFile: fileBaseName,
336
+ importPath: `../${relativePath(baseDir, filePath).replace(/\.ts$/, "")}`
153
337
  });
154
338
  }
155
339
  }
156
- const modelNames = modelFilePaths.map(p => baseName(p, ".ts"));
340
+ const owners = new Map(namespaces.map(namespace => [namespace.name, namespace.instance]));
341
+ const relatedOwners = /* @__PURE__ */new Map();
342
+ const syncTables = /* @__PURE__ */new Map();
343
+ for (const instance of instances) {
344
+ const synced = new Set(instance.namespaces.map(namespace => namespace.name));
345
+ for (const namespace of instance.namespaces) {
346
+ for (const query of relatedPaths.get(namespace.name) ?? []) {
347
+ for (const path of query.paths) {
348
+ let sourceTable = namespace.name;
349
+ for (const relationName of path) {
350
+ const target = relations.get(sourceTable)?.get(relationName);
351
+ if (!target) {
352
+ throw new Error(`[on-zero] ${namespace.name}.${query.query} related('${relationName}') cannot be resolved from table '${sourceTable}' through relations.ts`);
353
+ }
354
+ const owner = owners.get(target) ?? relatedOwners.get(target);
355
+ if (owner && owner !== instance.name) {
356
+ throw new Error(`[on-zero] ${namespace.name}.${query.query} in instance '${instance.name}' reaches table '${target}' owned by instance '${owner}'`);
357
+ }
358
+ relatedOwners.set(target, instance.name);
359
+ synced.add(target);
360
+ sourceTable = target;
361
+ }
362
+ }
363
+ }
364
+ }
365
+ const tables = [...synced].sort();
366
+ if (instance.scope) {
367
+ for (const table of tables) {
368
+ if (!tableColumns.get(table)?.has(instance.scope)) {
369
+ throw new Error(`[on-zero] table '${table}' in instance '${instance.name}' is missing scope column '${instance.scope}'`);
370
+ }
371
+ }
372
+ }
373
+ syncTables.set(instance.name, tables);
374
+ }
375
+ const supportTables = /* @__PURE__ */new Map();
376
+ for (const instance of instances) {
377
+ const supported = new Set(instance.declaredSupportTables);
378
+ for (const namespace of instance.namespaces) {
379
+ if (!namespace.modelPath) continue;
380
+ const visited = /* @__PURE__ */new Set();
381
+ const scan = path => {
382
+ if (visited.has(path)) return;
383
+ visited.add(path);
384
+ const parsed = parse(files[path], path);
385
+ if (parsed.parseError) {
386
+ throw new Error(`[on-zero] unable to derive mutation dependencies from ${path}: ${parsed.parseError}`);
387
+ }
388
+ for (const table of parsed.supportTables ?? []) {
389
+ if (owners.has(table) || relatedOwners.has(table)) continue;
390
+ if (!syncTables.get(instance.name).includes(table)) {
391
+ supported.add(table);
392
+ }
393
+ }
394
+ for (const specifier of parsed.imports ?? []) {
395
+ const unresolved = specifier.startsWith("~/data/") ? `${baseDir}/${specifier.slice("~/data/".length)}` : specifier.startsWith(".") ? `${parentDir(path)}/${specifier}` : null;
396
+ if (!unresolved) continue;
397
+ const normalized = resolvePath(unresolved);
398
+ const dependency = [normalized.endsWith(".ts") ? normalized : `${normalized}.ts`, `${normalized}/index.ts`].find(candidate => candidate in files && sourceRoots.some(root => isWithin(root, candidate)));
399
+ if (dependency) scan(dependency);
400
+ }
401
+ };
402
+ scan(namespace.modelPath);
403
+ }
404
+ supportTables.set(instance.name, [...supported].sort());
405
+ }
406
+ const modelNames = modelNamespaces.map(namespace => namespace.name);
157
407
  const out = {};
158
- out["models.ts"] = (0, import_generate_helpers.generateModelsFile)(modelNames, modelsDirName);
408
+ out["models.ts"] = (0, import_generate_helpers.generateModelsFile)(modelNamespaces.map(namespace => ({
409
+ name: namespace.name,
410
+ importPath: `../${relativePath(baseDir, namespace.modelPath).replace(/\.ts$/, "")}`
411
+ })));
159
412
  if (modelNamesWithSchema.length > 0) {
160
413
  out["types.ts"] = (0, import_generate_helpers.generateTypesFile)(modelNamesWithSchema);
161
- out["tables.ts"] = (0, import_generate_helpers.generateTablesFile)(modelNamesWithSchema, modelsDirName);
414
+ out["tables.ts"] = (0, import_generate_helpers.generateTablesFile)(modelNamespaces.filter(namespace => modelNamesWithSchema.includes(namespace.name)).map(namespace => ({
415
+ name: namespace.name,
416
+ importPath: `../${relativePath(baseDir, namespace.modelPath).replace(/\.ts$/, "")}`
417
+ })));
162
418
  }
163
419
  out["README.md"] = (0, import_generate_helpers.generateReadmeFile)();
164
- if (queryFilePaths.length > 0) {
165
- out["groupedQueries.ts"] = (0, import_generate_helpers.generateGroupedQueriesFile)(allQueries);
166
- out["syncedQueries.ts"] = (0, import_generate_helpers.generateSyncedQueriesFile)(allQueries);
167
- }
420
+ out["groupedQueries.ts"] = (0, import_generate_helpers.generateGroupedQueriesFile)(allQueries);
421
+ out["syncedQueries.ts"] = (0, import_generate_helpers.generateSyncedQueriesFile)(allQueries);
422
+ out["instances.ts"] = (0, import_generate_helpers.generateInstancesFile)(instances.map(instance => ({
423
+ name: instance.name,
424
+ scope: instance.scope,
425
+ queryNames: instance.namespaces.map(namespace => namespace.name).filter(name => allQueries.some(query => query.sourceFile === name)),
426
+ modelNames: instance.namespaces.filter(namespace => namespace.modelPath).map(namespace => namespace.name),
427
+ tables: instance.namespaces.map(namespace => namespace.name),
428
+ syncTables: syncTables.get(instance.name),
429
+ supportTables: supportTables.get(instance.name)
430
+ })));
168
431
  if (allModelMutations.length > 0) {
169
432
  out["syncedMutations.ts"] = (0, import_generate_helpers.generateSyncedMutationsFile)(allModelMutations);
170
433
  }
@@ -175,6 +438,11 @@ function generateLite(opts) {
175
438
  }
176
439
  return {
177
440
  files: out,
441
+ instances: instances.map(instance => ({
442
+ name: instance.name,
443
+ syncTables: syncTables.get(instance.name),
444
+ supportTables: supportTables.get(instance.name)
445
+ })),
178
446
  modelCount: modelNames.length,
179
447
  queryCount: allQueries.length,
180
448
  mutationCount,