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
@@ -1,53 +1,78 @@
1
1
  import { createHash } from "crypto";
2
2
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
3
3
  import { basename, dirname, resolve } from "path";
4
- import { formatObjectKey, generateGroupedQueriesFile, generateModelsFile, generateReadmeFile, generateSyncedMutationsFile, generateSyncedQueriesFile, generateTablesFile, generateTypesFile, parseColumnType, parseTypeString, shouldSkipObjectKey } from "./generate-helpers.native.js";
5
- var hash = function (s) {
4
+ import { formatObjectKey, generateGroupedQueriesFile, generateInstancesFile, generateModelsFile, generateReadmeFile, generateSyncedMutationsFile, generateSyncedQueriesFile, generateTablesFile, generateTypesFile, parseColumnType, parseTypeString, shouldSkipObjectKey } from "./generate-helpers.native.js";
5
+ import { discoverDataLayout, namespaceImportPath } from "./generate-layout.native.js";
6
+ var hash = function hash2(s) {
6
7
  return createHash("sha256").update(s).digest("hex");
7
8
  };
8
- var GENERATOR_CACHE_VERSION = "1";
9
- var isGeneratorSourceFile = function (name) {
9
+ var GENERATOR_CACHE_VERSION = "5";
10
+ var isGeneratorSourceFile = function isGeneratorSourceFile2(name) {
10
11
  return name.endsWith(".ts") && !name.endsWith(".d.ts") && !name.endsWith(".test.ts") && !name.endsWith(".spec.ts");
11
12
  };
12
- function hashInputTree(baseDir, generatedDir) {
13
+ function hashInputTree(sourceRoots, generatedDir) {
13
14
  var parts = [];
14
- var walk = function (dir) {
15
+ var seen = /* @__PURE__ */new Set();
16
+ var walk = function walk1(dir) {
15
17
  if (!existsSync(dir)) return;
16
18
  var entries = readdirSync(dir, {
17
19
  withFileTypes: true
18
20
  }).sort(function (a, b) {
19
21
  return a.name < b.name ? -1 : 1;
20
22
  });
21
- var _iteratorNormalCompletion = true,
22
- _didIteratorError = false,
23
- _iteratorError = void 0;
23
+ var _iteratorNormalCompletion2 = true,
24
+ _didIteratorError2 = false,
25
+ _iteratorError2 = void 0;
24
26
  try {
25
- for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
26
- var entry = _step.value;
27
+ for (var _iterator2 = entries[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
28
+ var entry = _step2.value;
27
29
  var full = resolve(dir, entry.name);
28
30
  if (entry.isDirectory()) {
29
- if (entry.name === "node_modules" || full === generatedDir) continue;
31
+ if (entry.name === "node_modules" || entry.name === "generated" || full === generatedDir) continue;
30
32
  walk(full);
31
33
  } else if (entry.isFile() && isGeneratorSourceFile(entry.name)) {
34
+ if (seen.has(full)) continue;
35
+ seen.add(full);
32
36
  parts.push(`${full}\0${readFileSync(full, "utf-8")}`);
33
37
  }
34
38
  }
35
39
  } catch (err) {
36
- _didIteratorError = true;
37
- _iteratorError = err;
40
+ _didIteratorError2 = true;
41
+ _iteratorError2 = err;
38
42
  } finally {
39
43
  try {
40
- if (!_iteratorNormalCompletion && _iterator.return != null) {
41
- _iterator.return();
44
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
45
+ _iterator2.return();
42
46
  }
43
47
  } finally {
44
- if (_didIteratorError) {
45
- throw _iteratorError;
48
+ if (_didIteratorError2) {
49
+ throw _iteratorError2;
46
50
  }
47
51
  }
48
52
  }
49
53
  };
50
- walk(baseDir);
54
+ var _iteratorNormalCompletion = true,
55
+ _didIteratorError = false,
56
+ _iteratorError = void 0;
57
+ try {
58
+ for (var _iterator = sourceRoots[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
59
+ var root = _step.value;
60
+ walk(root);
61
+ }
62
+ } catch (err) {
63
+ _didIteratorError = true;
64
+ _iteratorError = err;
65
+ } finally {
66
+ try {
67
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
68
+ _iterator.return();
69
+ }
70
+ } finally {
71
+ if (_didIteratorError) {
72
+ throw _iteratorError;
73
+ }
74
+ }
75
+ }
51
76
  return hash(parts.join("\0"));
52
77
  }
53
78
  var generateCache = {};
@@ -75,7 +100,7 @@ function loadCache() {
75
100
  generateCachePath = resolve(cacheDir, "generate-cache.json");
76
101
  try {
77
102
  generateCache = JSON.parse(readFileSync(generateCachePath, "utf-8"));
78
- } catch (e) {
103
+ } catch (unused) {
79
104
  generateCache = {};
80
105
  }
81
106
  }
@@ -164,7 +189,7 @@ function createTypeResolver(ts, files, dir) {
164
189
  resolveType(node) {
165
190
  try {
166
191
  return checker.getTypeFromTypeNode(node);
167
- } catch (e) {
192
+ } catch (unused) {
168
193
  return null;
169
194
  }
170
195
  },
@@ -463,7 +488,7 @@ function tsTypeToValibot(ts, checker, type, seen) {
463
488
  if (seen.has(type)) return "v.unknown()";
464
489
  seen.add(type);
465
490
  }
466
- var recurse = function (t) {
491
+ var recurse = function recurse2(t) {
467
492
  return tsTypeToValibot(ts, checker, t, seen);
468
493
  };
469
494
  if (flags & ts.TypeFlags.String) return "v.string()";
@@ -475,9 +500,9 @@ function tsTypeToValibot(ts, checker, type, seen) {
475
500
  if (flags & ts.TypeFlags.Never) return "v.never()";
476
501
  if (flags & ts.TypeFlags.TemplateLiteral) return "v.string()";
477
502
  if (flags & ts.TypeFlags.Object && (((_checker_isArrayType = checker.isArrayType) === null || _checker_isArrayType === void 0 ? void 0 : _checker_isArrayType.call(checker, type)) || ((_checker_isArrayLikeType = checker.isArrayLikeType) === null || _checker_isArrayLikeType === void 0 ? void 0 : _checker_isArrayLikeType.call(checker, type)))) {
503
+ var _ref;
478
504
  var _checker_getTypeArguments, _type_getNumberIndexType;
479
- var _checker_getTypeArguments1;
480
- var typeArgs = (_checker_getTypeArguments1 = (_checker_getTypeArguments = checker.getTypeArguments) === null || _checker_getTypeArguments === void 0 ? void 0 : _checker_getTypeArguments.call(checker, type)) !== null && _checker_getTypeArguments1 !== void 0 ? _checker_getTypeArguments1 : [];
505
+ var typeArgs = (_ref = (_checker_getTypeArguments = checker.getTypeArguments) === null || _checker_getTypeArguments === void 0 ? void 0 : _checker_getTypeArguments.call(checker, type)) !== null && _ref !== void 0 ? _ref : [];
481
506
  var elementType = typeArgs.length === 1 ? typeArgs[0] : (_type_getNumberIndexType = type.getNumberIndexType) === null || _type_getNumberIndexType === void 0 ? void 0 : _type_getNumberIndexType.call(type);
482
507
  return `v.array(${elementType ? recurse(elementType) : "v.unknown()"})`;
483
508
  }
@@ -518,7 +543,7 @@ function tsTypeToValibot(ts, checker, type, seen) {
518
543
  if (hasUndefined) inner1 = `v.optional(${inner1})`;
519
544
  return inner1;
520
545
  }
521
- var resolveSymbolType = function (parent, prop2) {
546
+ var resolveSymbolType = function resolveSymbolType2(parent, prop2) {
522
547
  var _prop_declarations;
523
548
  var instantiated = getInstantiatedPropertyType(checker, parent, prop2.getName());
524
549
  if (instantiated) return instantiated;
@@ -768,33 +793,146 @@ function generateDrizzleSchemaFile(schema) {
768
793
  lines.push(``);
769
794
  return lines.join("\n");
770
795
  }
796
+ function dataMembershipFromLayout(layout) {
797
+ return {
798
+ instances: Object.fromEntries(layout.instances.map(function (instance) {
799
+ return [instance.name, {
800
+ tables: instance.namespaces.map(function (namespace) {
801
+ return namespace.name;
802
+ }).sort(),
803
+ syncTables: [...instance.syncTables],
804
+ supportTables: [...instance.supportTables],
805
+ scope: instance.scope
806
+ }];
807
+ })),
808
+ allTables: [...new Set(layout.instances.flatMap(function (instance) {
809
+ return [...instance.syncTables, ...instance.supportTables];
810
+ }))].sort()
811
+ };
812
+ }
813
+ async function deriveDataMembership(options) {
814
+ var ts = await import("typescript");
815
+ var layout = discoverDataLayout(ts, resolve(options.dir), options.config ? resolve(options.config) : void 0);
816
+ return dataMembershipFromLayout(layout);
817
+ }
818
+ async function generateDrizzleSchemaInputFile(options) {
819
+ var _layout_metadataPaths_find;
820
+ var ts = await import("typescript");
821
+ var baseDir = resolve(options.dir);
822
+ var layout = discoverDataLayout(ts, baseDir, options.config ? resolve(options.config) : void 0);
823
+ var tableNames = dataMembershipFromLayout(layout).allTables;
824
+ var relationsPath = (_layout_metadataPaths_find = layout.metadataPaths.find(function (path) {
825
+ return basename(path) === "relations.ts" && dirname(path) === resolve(dirname(baseDir), "database");
826
+ })) !== null && _layout_metadataPaths_find !== void 0 ? _layout_metadataPaths_find : layout.metadataPaths.find(function (path) {
827
+ return basename(path) === "relations.ts";
828
+ });
829
+ var relationEntries = [];
830
+ if (relationsPath) {
831
+ var source = ts.createSourceFile(relationsPath, readFileSync(relationsPath, "utf8"), ts.ScriptTarget.Latest, true);
832
+ var included = new Set(tableNames);
833
+ var visit = function visit1(node) {
834
+ if (!ts.isCallExpression(node) || node.expression.getText(source) !== "defineRelations") {
835
+ ts.forEachChild(node, visit);
836
+ return;
837
+ }
838
+ var factory = node.arguments[1];
839
+ if (!factory || !ts.isArrowFunction(factory) && !ts.isFunctionExpression(factory)) {
840
+ return;
841
+ }
842
+ var body = ts.isParenthesizedExpression(factory.body) ? factory.body.expression : factory.body;
843
+ if (!ts.isObjectLiteralExpression(body)) return;
844
+ var _iteratorNormalCompletion = true,
845
+ _didIteratorError = false,
846
+ _iteratorError = void 0;
847
+ try {
848
+ for (var _iterator = body.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
849
+ var tableProperty = _step.value;
850
+ if (!ts.isPropertyAssignment(tableProperty) || !ts.isObjectLiteralExpression(tableProperty.initializer)) {
851
+ continue;
852
+ }
853
+ var table = tableProperty.name.getText(source).replace(/^['"]|['"]$/g, "");
854
+ if (!included.has(table)) continue;
855
+ var relations = [];
856
+ var _iteratorNormalCompletion1 = true,
857
+ _didIteratorError1 = false,
858
+ _iteratorError1 = void 0;
859
+ try {
860
+ for (var _iterator1 = tableProperty.initializer.properties[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
861
+ var relationProperty = _step1.value;
862
+ if (!ts.isPropertyAssignment(relationProperty) || !ts.isCallExpression(relationProperty.initializer) || !ts.isPropertyAccessExpression(relationProperty.initializer.expression)) {
863
+ continue;
864
+ }
865
+ var target = relationProperty.initializer.expression.name.text;
866
+ if (included.has(target)) relations.push(relationProperty.getText(source));
867
+ }
868
+ } catch (err) {
869
+ _didIteratorError1 = true;
870
+ _iteratorError1 = err;
871
+ } finally {
872
+ try {
873
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
874
+ _iterator1.return();
875
+ }
876
+ } finally {
877
+ if (_didIteratorError1) {
878
+ throw _iteratorError1;
879
+ }
880
+ }
881
+ }
882
+ relationEntries.push(` ${tableProperty.name.getText(source)}: {${relations.length ? `
883
+ ${relations.map(function (relation) {
884
+ return ` ${relation},`;
885
+ }).join("\n")}
886
+ ` : ""}},`);
887
+ }
888
+ } catch (err) {
889
+ _didIteratorError = true;
890
+ _iteratorError = err;
891
+ } finally {
892
+ try {
893
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
894
+ _iterator.return();
895
+ }
896
+ } finally {
897
+ if (_didIteratorError) {
898
+ throw _iteratorError;
899
+ }
900
+ }
901
+ }
902
+ };
903
+ visit(source);
904
+ }
905
+ var schemaImportPath = JSON.stringify(options.schemaImportPath);
906
+ return ["// auto-generated from the on-zero data layout", `import { defineRelations } from 'drizzle-orm'`, `import * as schema from ${schemaImportPath}`, "", `export { ${tableNames.join(", ")} } from ${schemaImportPath}`, `export const relations = defineRelations(schema, (r) => ({`, ...relationEntries, `}))`, ""].join("\n");
907
+ }
771
908
  async function generate(options) {
772
909
  var {
773
910
  dir,
774
911
  after,
775
912
  silent,
776
- force
913
+ force,
914
+ config
777
915
  } = options;
778
916
  var baseDir = resolve(dir);
779
- var mutationsDir = resolve(baseDir, "mutations");
780
- var usesMutationsDir = existsSync(mutationsDir);
781
- var modelsDir = usesMutationsDir ? mutationsDir : resolve(baseDir, "models");
782
- var modelsDirName = usesMutationsDir ? "mutations" : "models";
783
917
  var generatedDir = resolve(baseDir, "generated");
784
- var queriesDir = resolve(baseDir, "queries");
785
918
  if (!existsSync(generatedDir)) {
786
919
  mkdirSync(generatedDir, {
787
920
  recursive: true
788
921
  });
789
922
  }
790
923
  loadCache();
791
- var inputHash = hashInputTree(baseDir, generatedDir);
924
+ var ts = await import("typescript");
925
+ var layout = discoverDataLayout(ts, baseDir, config ? resolve(config) : void 0);
926
+ var metadataHash = hash(layout.metadataPaths.map(function (path) {
927
+ return `${path}\0${readFileSync(path, "utf8")}`;
928
+ }).join("\0"));
929
+ var inputHash = hash(`${hashInputTree(layout.sourceRoots, generatedDir)}\0${metadataHash}`);
792
930
  if (!force && generateCache.__generatorVersion === GENERATOR_CACHE_VERSION && generateCache.__inputHash === inputHash && existsSync(resolve(generatedDir, "models.ts"))) {
931
+ var _counts_modelCount, _counts_schemaCount, _counts_queryCount, _counts_mutationCount;
793
932
  var counts = {};
794
933
  try {
795
934
  counts = JSON.parse(generateCache.__counts || "{}");
796
- } catch (e) {}
797
- var _counts_modelCount, _counts_schemaCount, _counts_queryCount, _counts_mutationCount;
935
+ } catch (unused) {}
798
936
  return {
799
937
  filesChanged: 0,
800
938
  modelCount: (_counts_modelCount = counts.modelCount) !== null && _counts_modelCount !== void 0 ? _counts_modelCount : 0,
@@ -803,127 +941,161 @@ async function generate(options) {
803
941
  mutationCount: (_counts_mutationCount = counts.mutationCount) !== null && _counts_mutationCount !== void 0 ? _counts_mutationCount : 0
804
942
  };
805
943
  }
806
- var allModelFiles = readdirSync(modelsDir).filter(isGeneratorSourceFile).sort();
807
- var filesWithSchema = allModelFiles.filter(function (f) {
808
- return readFileSync(resolve(modelsDir, f), "utf-8").includes("export const schema = table(");
944
+ var modelNamespaces = layout.namespaces.filter(function (namespace2) {
945
+ return namespace2.modelPath !== null;
809
946
  });
810
- var allModelNames = allModelFiles.map(function (f) {
811
- return basename(f, ".ts");
947
+ var filesWithSchema = modelNamespaces.filter(function (namespace2) {
948
+ return readFileSync(namespace2.modelPath, "utf-8").includes("export const schema = table(");
812
949
  });
813
- var schemaModelNames = filesWithSchema.map(function (f) {
814
- return basename(f, ".ts");
950
+ var modelModules = modelNamespaces.map(function (namespace2) {
951
+ return {
952
+ name: namespace2.name,
953
+ importPath: namespaceImportPath(baseDir, namespace2.modelPath)
954
+ };
815
955
  });
816
- var writeResults = [writeFileIfChanged(resolve(generatedDir, "models.ts"), generateModelsFile(allModelNames, modelsDirName)),
956
+ var schemaModules = filesWithSchema.map(function (namespace2) {
957
+ return {
958
+ name: namespace2.name,
959
+ importPath: namespaceImportPath(baseDir, namespace2.modelPath)
960
+ };
961
+ });
962
+ var writeResults = [writeFileIfChanged(resolve(generatedDir, "models.ts"), generateModelsFile(modelModules)),
817
963
  // only generate types.ts and tables.ts when model files define schemas.
818
964
  // when using drizzle-zero CLI for schema generation, these files are
819
965
  // managed externally and should not be overwritten.
820
- ...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModelNames)), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModelNames, modelsDirName))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())];
966
+ ...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModules.map(function (module) {
967
+ return module.name;
968
+ }))), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModules))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())];
821
969
  var filesChanged = writeResults.filter(Boolean).length;
822
970
  var queryCount = 0;
823
971
  var mutationCount = 0;
824
- var ts = await import("typescript");
825
- var typeToValibot = function (paramType) {
972
+ var typeToValibot = function typeToValibot2(paramType) {
826
973
  try {
827
974
  return parseTypeString(paramType.trim());
828
- } catch (e) {
975
+ } catch (unused) {
829
976
  return null;
830
977
  }
831
978
  };
832
- if (existsSync(queriesDir)) {
833
- var queryFiles = readdirSync(queriesDir).filter(isGeneratorSourceFile);
834
- var allQueries = [];
835
- var queryResolver = null;
836
- var getQueryResolver = function () {
837
- if (!queryResolver) {
838
- var allFiles2 = readdirSync(queriesDir).filter(isGeneratorSourceFile).map(function (f) {
839
- return {
840
- path: resolve(queriesDir, f),
841
- content: readFileSync(resolve(queriesDir, f), "utf-8")
842
- };
843
- });
844
- queryResolver = createTypeResolver(ts, allFiles2, queriesDir);
845
- }
846
- return queryResolver;
847
- };
848
- var _iteratorNormalCompletion = true,
849
- _didIteratorError = false,
850
- _iteratorError = void 0;
851
- try {
852
- var _loop = function () {
853
- var file2 = _step.value;
854
- var filePath2 = resolve(queriesDir, file2);
855
- var fileBaseName2 = basename(file2, ".ts");
856
- try {
857
- var content2 = readFileSync(filePath2, "utf-8");
858
- var sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, true);
859
- ts.forEachChild(sourceFile2, function (node) {
860
- if (ts.isVariableStatement(node)) {
861
- var _node_modifiers;
862
- var exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
863
- return m.kind === ts.SyntaxKind.ExportKeyword;
864
- });
865
- if (!exportModifier) return;
866
- var declaration = node.declarationList.declarations[0];
867
- if (!declaration || !ts.isVariableDeclaration(declaration)) return;
868
- var name = declaration.name.getText(sourceFile2);
869
- if (name === "permission") return;
870
- if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
871
- var params = declaration.initializer.parameters;
872
- var paramType = "void";
873
- if (params.length > 0) {
874
- var _param_type;
875
- var param = params[0];
876
- paramType = ((_param_type = param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile2)) || "unknown";
877
- }
878
- var valibotCode = typeToValibot(paramType);
879
- if (!valibotCode && params.length > 0 && params[0].type) {
880
- var resolver = getQueryResolver();
881
- var resolverSourceFile = resolver.program.getSourceFile(filePath2);
882
- if (resolverSourceFile) {
883
- var resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
884
- if (resolvedType) {
885
- valibotCode = resolver.typeToValibot(resolvedType);
886
- }
979
+ var allQueries = [];
980
+ var queryResolver = null;
981
+ var getQueryResolver = function getQueryResolver2() {
982
+ if (!queryResolver) {
983
+ var allFiles2 = [...new Set(layout.namespaces.flatMap(function (namespace2) {
984
+ return namespace2.sourcePaths;
985
+ }))].map(function (path) {
986
+ return {
987
+ path,
988
+ content: readFileSync(path, "utf-8")
989
+ };
990
+ });
991
+ queryResolver = createTypeResolver(ts, allFiles2, baseDir);
992
+ }
993
+ return queryResolver;
994
+ };
995
+ var _iteratorNormalCompletion = true,
996
+ _didIteratorError = false,
997
+ _iteratorError = void 0;
998
+ try {
999
+ var _loop = function () {
1000
+ var namespace2 = _step.value;
1001
+ var filePath2 = namespace2.queryPath;
1002
+ try {
1003
+ var content2 = readFileSync(filePath2, "utf-8");
1004
+ var sourceFile2 = ts.createSourceFile(filePath2, content2, ts.ScriptTarget.Latest, true);
1005
+ ts.forEachChild(sourceFile2, function (node) {
1006
+ if (ts.isVariableStatement(node)) {
1007
+ var _node_modifiers;
1008
+ var exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
1009
+ return m.kind === ts.SyntaxKind.ExportKeyword;
1010
+ });
1011
+ if (!exportModifier) return;
1012
+ var declaration = node.declarationList.declarations[0];
1013
+ if (!declaration || !ts.isVariableDeclaration(declaration)) return;
1014
+ var name = declaration.name.getText(sourceFile2);
1015
+ if (["mutate", "permission", "schema", "where"].includes(name)) return;
1016
+ if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
1017
+ var params = declaration.initializer.parameters;
1018
+ var paramType = "void";
1019
+ if (params.length > 0) {
1020
+ var _param_type;
1021
+ var param = params[0];
1022
+ paramType = ((_param_type = param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile2)) || "unknown";
1023
+ }
1024
+ var valibotCode = typeToValibot(paramType);
1025
+ if (!valibotCode && params.length > 0 && params[0].type) {
1026
+ var resolver = getQueryResolver();
1027
+ var resolverSourceFile = resolver.program.getSourceFile(filePath2);
1028
+ if (resolverSourceFile) {
1029
+ var resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
1030
+ if (resolvedType) {
1031
+ valibotCode = resolver.typeToValibot(resolvedType);
887
1032
  }
888
1033
  }
889
- if (valibotCode) {
890
- allQueries.push({
891
- name,
892
- params: paramType,
893
- valibotCode,
894
- sourceFile: fileBaseName2
895
- });
896
- } else if (!silent && paramType !== "void") {
897
- console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
898
- }
1034
+ }
1035
+ if (valibotCode) {
1036
+ allQueries.push({
1037
+ name,
1038
+ params: paramType,
1039
+ valibotCode,
1040
+ sourceFile: namespace2.name,
1041
+ importPath: namespaceImportPath(baseDir, filePath2)
1042
+ });
1043
+ } else if (!silent && paramType !== "void") {
1044
+ console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
899
1045
  }
900
1046
  }
901
- });
902
- } catch (err) {
903
- if (!silent) console.error(`Error processing ${file2}:`, err);
904
- }
905
- };
906
- for (var _iterator = queryFiles[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
907
- } catch (err) {
908
- _didIteratorError = true;
909
- _iteratorError = err;
1047
+ }
1048
+ });
1049
+ } catch (err) {
1050
+ if (!silent) console.error(`Error processing ${filePath2}:`, err);
1051
+ }
1052
+ };
1053
+ for (var _iterator = layout.namespaces.filter(function (namespace2) {
1054
+ return namespace2.queryPath !== null;
1055
+ })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
1056
+ } catch (err) {
1057
+ _didIteratorError = true;
1058
+ _iteratorError = err;
1059
+ } finally {
1060
+ try {
1061
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1062
+ _iterator.return();
1063
+ }
910
1064
  } finally {
911
- try {
912
- if (!_iteratorNormalCompletion && _iterator.return != null) {
913
- _iterator.return();
914
- }
915
- } finally {
916
- if (_didIteratorError) {
917
- throw _iteratorError;
918
- }
1065
+ if (_didIteratorError) {
1066
+ throw _iteratorError;
919
1067
  }
920
1068
  }
921
- queryCount = allQueries.length;
922
- var groupedChanged = writeFileIfChanged(resolve(generatedDir, "groupedQueries.ts"), generateGroupedQueriesFile(allQueries));
923
- var syncedChanged = writeFileIfChanged(resolve(generatedDir, "syncedQueries.ts"), generateSyncedQueriesFile(allQueries));
924
- if (groupedChanged) filesChanged++;
925
- if (syncedChanged) filesChanged++;
926
1069
  }
1070
+ queryCount = allQueries.length;
1071
+ var groupedChanged = writeFileIfChanged(resolve(generatedDir, "groupedQueries.ts"), generateGroupedQueriesFile(allQueries));
1072
+ var syncedChanged = writeFileIfChanged(resolve(generatedDir, "syncedQueries.ts"), generateSyncedQueriesFile(allQueries));
1073
+ if (groupedChanged) filesChanged++;
1074
+ if (syncedChanged) filesChanged++;
1075
+ var instancesChanged = writeFileIfChanged(resolve(generatedDir, "instances.ts"), generateInstancesFile(layout.instances.map(function (instance) {
1076
+ return {
1077
+ name: instance.name,
1078
+ scope: instance.scope,
1079
+ queryNames: instance.namespaces.map(function (namespace2) {
1080
+ return namespace2.name;
1081
+ }).filter(function (name) {
1082
+ return allQueries.some(function (query) {
1083
+ return query.sourceFile === name;
1084
+ });
1085
+ }),
1086
+ modelNames: instance.namespaces.filter(function (namespace2) {
1087
+ return namespace2.modelPath;
1088
+ }).map(function (namespace2) {
1089
+ return namespace2.name;
1090
+ }),
1091
+ tables: instance.namespaces.map(function (namespace2) {
1092
+ return namespace2.name;
1093
+ }),
1094
+ syncTables: instance.syncTables,
1095
+ supportTables: instance.supportTables
1096
+ };
1097
+ })));
1098
+ if (instancesChanged) filesChanged++;
927
1099
  var allModelMutations = [];
928
1100
  var mutationFiles = [];
929
1101
  var unresolvedModels = [];
@@ -931,10 +1103,10 @@ async function generate(options) {
931
1103
  _didIteratorError1 = false,
932
1104
  _iteratorError1 = void 0;
933
1105
  try {
934
- for (var _iterator1 = allModelFiles[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
935
- var file = _step1.value;
936
- var filePath = resolve(modelsDir, file);
937
- var fileBaseName = basename(file, ".ts");
1106
+ for (var _iterator1 = modelNamespaces[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
1107
+ var namespace = _step1.value;
1108
+ var filePath = namespace.modelPath;
1109
+ var fileBaseName = namespace.name;
938
1110
  try {
939
1111
  var content = readFileSync(filePath, "utf-8");
940
1112
  mutationFiles.push({
@@ -958,7 +1130,7 @@ async function generate(options) {
958
1130
  }
959
1131
  }
960
1132
  } catch (err) {
961
- if (!silent) console.error(`Error extracting mutations from ${file}:`, err);
1133
+ if (!silent) console.error(`Error extracting mutations from ${filePath}:`, err);
962
1134
  }
963
1135
  }
964
1136
  } catch (err) {
@@ -976,7 +1148,7 @@ async function generate(options) {
976
1148
  }
977
1149
  }
978
1150
  if (unresolvedModels.length > 0) {
979
- var collectTsFiles = function (dir2) {
1151
+ var collectTsFiles = function collectTsFiles1(dir2) {
980
1152
  var results = [];
981
1153
  var _iteratorNormalCompletion4 = true,
982
1154
  _didIteratorError4 = false,
@@ -1012,7 +1184,9 @@ async function generate(options) {
1012
1184
  }
1013
1185
  return results;
1014
1186
  };
1015
- var allFiles = collectTsFiles(baseDir);
1187
+ var allFiles = [...new Map(layout.sourceRoots.flatMap(collectTsFiles).map(function (file) {
1188
+ return [file.path, file];
1189
+ })).values()];
1016
1190
  var modelResolver = createTypeResolver(ts, allFiles, baseDir);
1017
1191
  var _iteratorNormalCompletion2 = true,
1018
1192
  _didIteratorError2 = false,
@@ -1085,7 +1259,7 @@ async function generate(options) {
1085
1259
  if (mutationsChanged) filesChanged++;
1086
1260
  }
1087
1261
  if (filesChanged > 0 && !silent) {
1088
- console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`);
1262
+ console.info(`\u2713 ${modelNamespaces.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`);
1089
1263
  }
1090
1264
  if (filesChanged > 0 && after) {
1091
1265
  var {
@@ -1106,7 +1280,7 @@ async function generate(options) {
1106
1280
  generateCache.__generatorVersion = GENERATOR_CACHE_VERSION;
1107
1281
  generateCache.__inputHash = inputHash;
1108
1282
  generateCache.__counts = JSON.stringify({
1109
- modelCount: allModelFiles.length,
1283
+ modelCount: modelNamespaces.length,
1110
1284
  schemaCount: filesWithSchema.length,
1111
1285
  queryCount,
1112
1286
  mutationCount
@@ -1114,7 +1288,7 @@ async function generate(options) {
1114
1288
  saveCache();
1115
1289
  return {
1116
1290
  filesChanged,
1117
- modelCount: allModelFiles.length,
1291
+ modelCount: modelNamespaces.length,
1118
1292
  schemaCount: filesWithSchema.length,
1119
1293
  queryCount,
1120
1294
  mutationCount
@@ -1126,9 +1300,6 @@ async function watch(options) {
1126
1300
  debounce = 1e3
1127
1301
  } = options;
1128
1302
  var baseDir = resolve(dir);
1129
- var mutationsDir = resolve(baseDir, "mutations");
1130
- var modelsDir = existsSync(mutationsDir) ? mutationsDir : resolve(baseDir, "models");
1131
- var queriesDir = resolve(baseDir, "queries");
1132
1303
  var generatedDir = resolve(baseDir, "generated");
1133
1304
  await generate({
1134
1305
  ...options,
@@ -1137,7 +1308,7 @@ async function watch(options) {
1137
1308
  console.info("\u{1F440} watching...\n");
1138
1309
  var chokidar = await import("chokidar");
1139
1310
  var debounceTimer = null;
1140
- var debouncedRegenerate = function (path, event) {
1311
+ var debouncedRegenerate = function debouncedRegenerate2(path, event) {
1141
1312
  if (debounceTimer) clearTimeout(debounceTimer);
1142
1313
  console.info(`
1143
1314
  ${event} ${path}`);
@@ -1148,10 +1319,13 @@ ${event} ${path}`);
1148
1319
  });
1149
1320
  }, debounce);
1150
1321
  };
1151
- var watcher = chokidar.watch([modelsDir, queriesDir], {
1322
+ var databaseDir = resolve(dirname(baseDir), "database");
1323
+ var ts = await import("typescript");
1324
+ var layout = discoverDataLayout(ts, baseDir, options.config ? resolve(options.config) : void 0);
1325
+ var watcher = chokidar.watch([... /* @__PURE__ */new Set([...layout.sourceRoots, ...(existsSync(databaseDir) ? [databaseDir] : [])])], {
1152
1326
  persistent: true,
1153
1327
  ignoreInitial: true,
1154
- ignored: [generatedDir]
1328
+ ignored: [generatedDir, /node_modules/]
1155
1329
  });
1156
1330
  watcher.on("change", function (path) {
1157
1331
  return debouncedRegenerate(path, "\u{1F4DD}");
@@ -1164,5 +1338,5 @@ ${event} ${path}`);
1164
1338
  });
1165
1339
  return watcher;
1166
1340
  }
1167
- export { generate, generateDrizzleSchemaFile, watch };
1341
+ export { deriveDataMembership, generate, generateDrizzleSchemaFile, generateDrizzleSchemaInputFile, watch };
1168
1342
  //# sourceMappingURL=generate.native.js.map