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,12 +1,14 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
3
3
  import { basename, dirname, resolve } from "node:path";
4
- import { formatObjectKey, generateGroupedQueriesFile, generateModelsFile, generateReadmeFile, generateSyncedMutationsFile, generateSyncedQueriesFile, generateTablesFile, generateTypesFile, parseColumnType, parseTypeString, shouldSkipObjectKey } from "./generate-helpers.mjs";
4
+ import { formatObjectKey, generateGroupedQueriesFile, generateInstancesFile, generateModelsFile, generateReadmeFile, generateSyncedMutationsFile, generateSyncedQueriesFile, generateTablesFile, generateTypesFile, parseColumnType, parseTypeString, shouldSkipObjectKey } from "./generate-helpers.mjs";
5
+ import { discoverDataLayout, namespaceImportPath } from "./generate-layout.mjs";
5
6
  const hash = s => createHash("sha256").update(s).digest("hex");
6
- const GENERATOR_CACHE_VERSION = "1";
7
+ const GENERATOR_CACHE_VERSION = "5";
7
8
  const isGeneratorSourceFile = name => name.endsWith(".ts") && !name.endsWith(".d.ts") && !name.endsWith(".test.ts") && !name.endsWith(".spec.ts");
8
- function hashInputTree(baseDir, generatedDir) {
9
+ function hashInputTree(sourceRoots, generatedDir) {
9
10
  const parts = [];
11
+ const seen = /* @__PURE__ */new Set();
10
12
  const walk = dir => {
11
13
  if (!existsSync(dir)) return;
12
14
  const entries = readdirSync(dir, {
@@ -15,14 +17,16 @@ function hashInputTree(baseDir, generatedDir) {
15
17
  for (const entry of entries) {
16
18
  const full = resolve(dir, entry.name);
17
19
  if (entry.isDirectory()) {
18
- if (entry.name === "node_modules" || full === generatedDir) continue;
20
+ if (entry.name === "node_modules" || entry.name === "generated" || full === generatedDir) continue;
19
21
  walk(full);
20
22
  } else if (entry.isFile() && isGeneratorSourceFile(entry.name)) {
23
+ if (seen.has(full)) continue;
24
+ seen.add(full);
21
25
  parts.push(`${full}\0${readFileSync(full, "utf-8")}`);
22
26
  }
23
27
  }
24
28
  };
25
- walk(baseDir);
29
+ for (const root of sourceRoots) walk(root);
26
30
  return hash(parts.join("\0"));
27
31
  }
28
32
  let generateCache = {};
@@ -510,27 +514,87 @@ function generateDrizzleSchemaFile(schema) {
510
514
  lines.push(``);
511
515
  return lines.join("\n");
512
516
  }
517
+ function dataMembershipFromLayout(layout) {
518
+ return {
519
+ instances: Object.fromEntries(layout.instances.map(instance => [instance.name, {
520
+ tables: instance.namespaces.map(namespace => namespace.name).sort(),
521
+ syncTables: [...instance.syncTables],
522
+ supportTables: [...instance.supportTables],
523
+ scope: instance.scope
524
+ }])),
525
+ allTables: [...new Set(layout.instances.flatMap(instance => [...instance.syncTables, ...instance.supportTables]))].sort()
526
+ };
527
+ }
528
+ async function deriveDataMembership(options) {
529
+ const ts = await import("typescript");
530
+ const layout = discoverDataLayout(ts, resolve(options.dir), options.config ? resolve(options.config) : void 0);
531
+ return dataMembershipFromLayout(layout);
532
+ }
533
+ async function generateDrizzleSchemaInputFile(options) {
534
+ const ts = await import("typescript");
535
+ const baseDir = resolve(options.dir);
536
+ const layout = discoverDataLayout(ts, baseDir, options.config ? resolve(options.config) : void 0);
537
+ const tableNames = dataMembershipFromLayout(layout).allTables;
538
+ const relationsPath = layout.metadataPaths.find(path => basename(path) === "relations.ts" && dirname(path) === resolve(dirname(baseDir), "database")) ?? layout.metadataPaths.find(path => basename(path) === "relations.ts");
539
+ const relationEntries = [];
540
+ if (relationsPath) {
541
+ const source = ts.createSourceFile(relationsPath, readFileSync(relationsPath, "utf8"), ts.ScriptTarget.Latest, true);
542
+ const included = new Set(tableNames);
543
+ const visit = node => {
544
+ if (!ts.isCallExpression(node) || node.expression.getText(source) !== "defineRelations") {
545
+ ts.forEachChild(node, visit);
546
+ return;
547
+ }
548
+ const factory = node.arguments[1];
549
+ if (!factory || !ts.isArrowFunction(factory) && !ts.isFunctionExpression(factory)) {
550
+ return;
551
+ }
552
+ const body = ts.isParenthesizedExpression(factory.body) ? factory.body.expression : factory.body;
553
+ if (!ts.isObjectLiteralExpression(body)) return;
554
+ for (const tableProperty of body.properties) {
555
+ if (!ts.isPropertyAssignment(tableProperty) || !ts.isObjectLiteralExpression(tableProperty.initializer)) {
556
+ continue;
557
+ }
558
+ const table = tableProperty.name.getText(source).replace(/^['"]|['"]$/g, "");
559
+ if (!included.has(table)) continue;
560
+ const relations = [];
561
+ for (const relationProperty of tableProperty.initializer.properties) {
562
+ if (!ts.isPropertyAssignment(relationProperty) || !ts.isCallExpression(relationProperty.initializer) || !ts.isPropertyAccessExpression(relationProperty.initializer.expression)) {
563
+ continue;
564
+ }
565
+ const target = relationProperty.initializer.expression.name.text;
566
+ if (included.has(target)) relations.push(relationProperty.getText(source));
567
+ }
568
+ relationEntries.push(` ${tableProperty.name.getText(source)}: {${relations.length ? `
569
+ ${relations.map(relation => ` ${relation},`).join("\n")}
570
+ ` : ""}},`);
571
+ }
572
+ };
573
+ visit(source);
574
+ }
575
+ const schemaImportPath = JSON.stringify(options.schemaImportPath);
576
+ 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");
577
+ }
513
578
  async function generate(options) {
514
579
  const {
515
580
  dir,
516
581
  after,
517
582
  silent,
518
- force
583
+ force,
584
+ config
519
585
  } = options;
520
586
  const baseDir = resolve(dir);
521
- const mutationsDir = resolve(baseDir, "mutations");
522
- const usesMutationsDir = existsSync(mutationsDir);
523
- const modelsDir = usesMutationsDir ? mutationsDir : resolve(baseDir, "models");
524
- const modelsDirName = usesMutationsDir ? "mutations" : "models";
525
587
  const generatedDir = resolve(baseDir, "generated");
526
- const queriesDir = resolve(baseDir, "queries");
527
588
  if (!existsSync(generatedDir)) {
528
589
  mkdirSync(generatedDir, {
529
590
  recursive: true
530
591
  });
531
592
  }
532
593
  loadCache();
533
- const inputHash = hashInputTree(baseDir, generatedDir);
594
+ const ts = await import("typescript");
595
+ const layout = discoverDataLayout(ts, baseDir, config ? resolve(config) : void 0);
596
+ const metadataHash = hash(layout.metadataPaths.map(path => `${path}\0${readFileSync(path, "utf8")}`).join("\0"));
597
+ const inputHash = hash(`${hashInputTree(layout.sourceRoots, generatedDir)}\0${metadataHash}`);
534
598
  if (!force && generateCache.__generatorVersion === GENERATOR_CACHE_VERSION && generateCache.__inputHash === inputHash && existsSync(resolve(generatedDir, "models.ts"))) {
535
599
  let counts = {};
536
600
  try {
@@ -544,19 +608,24 @@ async function generate(options) {
544
608
  mutationCount: counts.mutationCount ?? 0
545
609
  };
546
610
  }
547
- const allModelFiles = readdirSync(modelsDir).filter(isGeneratorSourceFile).sort();
548
- const filesWithSchema = allModelFiles.filter(f => readFileSync(resolve(modelsDir, f), "utf-8").includes("export const schema = table("));
549
- const allModelNames = allModelFiles.map(f => basename(f, ".ts"));
550
- const schemaModelNames = filesWithSchema.map(f => basename(f, ".ts"));
551
- const writeResults = [writeFileIfChanged(resolve(generatedDir, "models.ts"), generateModelsFile(allModelNames, modelsDirName)),
611
+ const modelNamespaces = layout.namespaces.filter(namespace => namespace.modelPath !== null);
612
+ const filesWithSchema = modelNamespaces.filter(namespace => readFileSync(namespace.modelPath, "utf-8").includes("export const schema = table("));
613
+ const modelModules = modelNamespaces.map(namespace => ({
614
+ name: namespace.name,
615
+ importPath: namespaceImportPath(baseDir, namespace.modelPath)
616
+ }));
617
+ const schemaModules = filesWithSchema.map(namespace => ({
618
+ name: namespace.name,
619
+ importPath: namespaceImportPath(baseDir, namespace.modelPath)
620
+ }));
621
+ const writeResults = [writeFileIfChanged(resolve(generatedDir, "models.ts"), generateModelsFile(modelModules)),
552
622
  // only generate types.ts and tables.ts when model files define schemas.
553
623
  // when using drizzle-zero CLI for schema generation, these files are
554
624
  // managed externally and should not be overwritten.
555
- ...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModelNames)), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModelNames, modelsDirName))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())];
625
+ ...(filesWithSchema.length > 0 ? [writeFileIfChanged(resolve(generatedDir, "types.ts"), generateTypesFile(schemaModules.map(module => module.name))), writeFileIfChanged(resolve(generatedDir, "tables.ts"), generateTablesFile(schemaModules))] : []), writeFileIfChanged(resolve(generatedDir, "README.md"), generateReadmeFile())];
556
626
  let filesChanged = writeResults.filter(Boolean).length;
557
627
  let queryCount = 0;
558
628
  let mutationCount = 0;
559
- const ts = await import("typescript");
560
629
  const typeToValibot = paramType => {
561
630
  try {
562
631
  return parseTypeString(paramType.trim());
@@ -564,81 +633,88 @@ async function generate(options) {
564
633
  return null;
565
634
  }
566
635
  };
567
- if (existsSync(queriesDir)) {
568
- const queryFiles = readdirSync(queriesDir).filter(isGeneratorSourceFile);
569
- const allQueries = [];
570
- let queryResolver = null;
571
- const getQueryResolver = () => {
572
- if (!queryResolver) {
573
- const allFiles = readdirSync(queriesDir).filter(isGeneratorSourceFile).map(f => ({
574
- path: resolve(queriesDir, f),
575
- content: readFileSync(resolve(queriesDir, f), "utf-8")
576
- }));
577
- queryResolver = createTypeResolver(ts, allFiles, queriesDir);
578
- }
579
- return queryResolver;
580
- };
581
- for (const file of queryFiles) {
582
- const filePath = resolve(queriesDir, file);
583
- const fileBaseName = basename(file, ".ts");
584
- try {
585
- const content = readFileSync(filePath, "utf-8");
586
- const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
587
- ts.forEachChild(sourceFile, node => {
588
- if (ts.isVariableStatement(node)) {
589
- const exportModifier = node.modifiers?.find(m => m.kind === ts.SyntaxKind.ExportKeyword);
590
- if (!exportModifier) return;
591
- const declaration = node.declarationList.declarations[0];
592
- if (!declaration || !ts.isVariableDeclaration(declaration)) return;
593
- const name = declaration.name.getText(sourceFile);
594
- if (name === "permission") return;
595
- if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
596
- const params = declaration.initializer.parameters;
597
- let paramType = "void";
598
- if (params.length > 0) {
599
- const param = params[0];
600
- paramType = param.type?.getText(sourceFile) || "unknown";
601
- }
602
- let valibotCode = typeToValibot(paramType);
603
- if (!valibotCode && params.length > 0 && params[0].type) {
604
- const resolver = getQueryResolver();
605
- const resolverSourceFile = resolver.program.getSourceFile(filePath);
606
- if (resolverSourceFile) {
607
- const resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
608
- if (resolvedType) {
609
- valibotCode = resolver.typeToValibot(resolvedType);
610
- }
636
+ const allQueries = [];
637
+ let queryResolver = null;
638
+ const getQueryResolver = () => {
639
+ if (!queryResolver) {
640
+ const allFiles = [...new Set(layout.namespaces.flatMap(namespace => namespace.sourcePaths))].map(path => ({
641
+ path,
642
+ content: readFileSync(path, "utf-8")
643
+ }));
644
+ queryResolver = createTypeResolver(ts, allFiles, baseDir);
645
+ }
646
+ return queryResolver;
647
+ };
648
+ for (const namespace of layout.namespaces.filter(namespace2 => namespace2.queryPath !== null)) {
649
+ const filePath = namespace.queryPath;
650
+ try {
651
+ const content = readFileSync(filePath, "utf-8");
652
+ const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
653
+ ts.forEachChild(sourceFile, node => {
654
+ if (ts.isVariableStatement(node)) {
655
+ const exportModifier = node.modifiers?.find(m => m.kind === ts.SyntaxKind.ExportKeyword);
656
+ if (!exportModifier) return;
657
+ const declaration = node.declarationList.declarations[0];
658
+ if (!declaration || !ts.isVariableDeclaration(declaration)) return;
659
+ const name = declaration.name.getText(sourceFile);
660
+ if (["mutate", "permission", "schema", "where"].includes(name)) return;
661
+ if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
662
+ const params = declaration.initializer.parameters;
663
+ let paramType = "void";
664
+ if (params.length > 0) {
665
+ const param = params[0];
666
+ paramType = param.type?.getText(sourceFile) || "unknown";
667
+ }
668
+ let valibotCode = typeToValibot(paramType);
669
+ if (!valibotCode && params.length > 0 && params[0].type) {
670
+ const resolver = getQueryResolver();
671
+ const resolverSourceFile = resolver.program.getSourceFile(filePath);
672
+ if (resolverSourceFile) {
673
+ const resolvedType = resolveParamType(ts, resolver, resolverSourceFile, name, 0);
674
+ if (resolvedType) {
675
+ valibotCode = resolver.typeToValibot(resolvedType);
611
676
  }
612
677
  }
613
- if (valibotCode) {
614
- allQueries.push({
615
- name,
616
- params: paramType,
617
- valibotCode,
618
- sourceFile: fileBaseName
619
- });
620
- } else if (!silent && paramType !== "void") {
621
- console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
622
- }
678
+ }
679
+ if (valibotCode) {
680
+ allQueries.push({
681
+ name,
682
+ params: paramType,
683
+ valibotCode,
684
+ sourceFile: namespace.name,
685
+ importPath: namespaceImportPath(baseDir, filePath)
686
+ });
687
+ } else if (!silent && paramType !== "void") {
688
+ console.error(`\u2717 ${name}: could not resolve type "${paramType}"`);
623
689
  }
624
690
  }
625
- });
626
- } catch (err) {
627
- if (!silent) console.error(`Error processing ${file}:`, err);
628
- }
691
+ }
692
+ });
693
+ } catch (err) {
694
+ if (!silent) console.error(`Error processing ${filePath}:`, err);
629
695
  }
630
- queryCount = allQueries.length;
631
- const groupedChanged = writeFileIfChanged(resolve(generatedDir, "groupedQueries.ts"), generateGroupedQueriesFile(allQueries));
632
- const syncedChanged = writeFileIfChanged(resolve(generatedDir, "syncedQueries.ts"), generateSyncedQueriesFile(allQueries));
633
- if (groupedChanged) filesChanged++;
634
- if (syncedChanged) filesChanged++;
635
696
  }
697
+ queryCount = allQueries.length;
698
+ const groupedChanged = writeFileIfChanged(resolve(generatedDir, "groupedQueries.ts"), generateGroupedQueriesFile(allQueries));
699
+ const syncedChanged = writeFileIfChanged(resolve(generatedDir, "syncedQueries.ts"), generateSyncedQueriesFile(allQueries));
700
+ if (groupedChanged) filesChanged++;
701
+ if (syncedChanged) filesChanged++;
702
+ const instancesChanged = writeFileIfChanged(resolve(generatedDir, "instances.ts"), generateInstancesFile(layout.instances.map(instance => ({
703
+ name: instance.name,
704
+ scope: instance.scope,
705
+ queryNames: instance.namespaces.map(namespace => namespace.name).filter(name => allQueries.some(query => query.sourceFile === name)),
706
+ modelNames: instance.namespaces.filter(namespace => namespace.modelPath).map(namespace => namespace.name),
707
+ tables: instance.namespaces.map(namespace => namespace.name),
708
+ syncTables: instance.syncTables,
709
+ supportTables: instance.supportTables
710
+ }))));
711
+ if (instancesChanged) filesChanged++;
636
712
  const allModelMutations = [];
637
713
  const mutationFiles = [];
638
714
  const unresolvedModels = [];
639
- for (const file of allModelFiles) {
640
- const filePath = resolve(modelsDir, file);
641
- const fileBaseName = basename(file, ".ts");
715
+ for (const namespace of modelNamespaces) {
716
+ const filePath = namespace.modelPath;
717
+ const fileBaseName = namespace.name;
642
718
  try {
643
719
  const content = readFileSync(filePath, "utf-8");
644
720
  mutationFiles.push({
@@ -660,7 +736,7 @@ async function generate(options) {
660
736
  }
661
737
  }
662
738
  } catch (err) {
663
- if (!silent) console.error(`Error extracting mutations from ${file}:`, err);
739
+ if (!silent) console.error(`Error extracting mutations from ${filePath}:`, err);
664
740
  }
665
741
  }
666
742
  if (unresolvedModels.length > 0) {
@@ -681,7 +757,7 @@ async function generate(options) {
681
757
  }
682
758
  return results;
683
759
  };
684
- const allFiles = collectTsFiles(baseDir);
760
+ const allFiles = [...new Map(layout.sourceRoots.flatMap(collectTsFiles).map(file => [file.path, file])).values()];
685
761
  const modelResolver = createTypeResolver(ts, allFiles, baseDir);
686
762
  for (const {
687
763
  baseName,
@@ -710,7 +786,7 @@ async function generate(options) {
710
786
  if (mutationsChanged) filesChanged++;
711
787
  }
712
788
  if (filesChanged > 0 && !silent) {
713
- console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`);
789
+ console.info(`\u2713 ${modelNamespaces.length} models (${filesWithSchema.length} schemas)${queryCount ? `, ${queryCount} queries` : ""}${mutationCount ? `, ${mutationCount} mutations` : ""}`);
714
790
  }
715
791
  if (filesChanged > 0 && after) {
716
792
  const {
@@ -731,7 +807,7 @@ async function generate(options) {
731
807
  generateCache.__generatorVersion = GENERATOR_CACHE_VERSION;
732
808
  generateCache.__inputHash = inputHash;
733
809
  generateCache.__counts = JSON.stringify({
734
- modelCount: allModelFiles.length,
810
+ modelCount: modelNamespaces.length,
735
811
  schemaCount: filesWithSchema.length,
736
812
  queryCount,
737
813
  mutationCount
@@ -739,7 +815,7 @@ async function generate(options) {
739
815
  saveCache();
740
816
  return {
741
817
  filesChanged,
742
- modelCount: allModelFiles.length,
818
+ modelCount: modelNamespaces.length,
743
819
  schemaCount: filesWithSchema.length,
744
820
  queryCount,
745
821
  mutationCount
@@ -751,9 +827,6 @@ async function watch(options) {
751
827
  debounce = 1e3
752
828
  } = options;
753
829
  const baseDir = resolve(dir);
754
- const mutationsDir = resolve(baseDir, "mutations");
755
- const modelsDir = existsSync(mutationsDir) ? mutationsDir : resolve(baseDir, "models");
756
- const queriesDir = resolve(baseDir, "queries");
757
830
  const generatedDir = resolve(baseDir, "generated");
758
831
  await generate({
759
832
  ...options,
@@ -773,15 +846,18 @@ ${event} ${path}`);
773
846
  });
774
847
  }, debounce);
775
848
  };
776
- const watcher = chokidar.watch([modelsDir, queriesDir], {
849
+ const databaseDir = resolve(dirname(baseDir), "database");
850
+ const ts = await import("typescript");
851
+ const layout = discoverDataLayout(ts, baseDir, options.config ? resolve(options.config) : void 0);
852
+ const watcher = chokidar.watch([... /* @__PURE__ */new Set([...layout.sourceRoots, ...(existsSync(databaseDir) ? [databaseDir] : [])])], {
777
853
  persistent: true,
778
854
  ignoreInitial: true,
779
- ignored: [generatedDir]
855
+ ignored: [generatedDir, /node_modules/]
780
856
  });
781
857
  watcher.on("change", path => debouncedRegenerate(path, "\u{1F4DD}"));
782
858
  watcher.on("add", path => debouncedRegenerate(path, "\u2795"));
783
859
  watcher.on("unlink", path => debouncedRegenerate(path, "\u{1F5D1}\uFE0F "));
784
860
  return watcher;
785
861
  }
786
- export { generate, generateDrizzleSchemaFile, watch };
862
+ export { deriveDataMembership, generate, generateDrizzleSchemaFile, generateDrizzleSchemaInputFile, watch };
787
863
  //# sourceMappingURL=generate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","formatObjectKey","generateGroupedQueriesFile","generateModelsFile","generateReadmeFile","generateSyncedMutationsFile","generateSyncedQueriesFile","generateTablesFile","generateTypesFile","parseColumnType","parseTypeString","shouldSkipObjectKey","hash","s","update","digest","GENERATOR_CACHE_VERSION","isGeneratorSourceFile","name","endsWith","hashInputTree","baseDir","generatedDir","parts","walk","dir","entries","withFileTypes","sort","a","b","entry","full","isDirectory","isFile","push","join","generateCache","generateCachePath","getCacheDir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","createTypeResolver","ts","files","configPath","findConfigFile","sys","fileExists","compilerOptions","target","ScriptTarget","Latest","module","ModuleKind","ESNext","moduleResolution","ModuleResolutionKind","Bundler","strict","skipLibCheck","noEmit","configFile","readConfigFile","readFile","config","parsed","parseJsonConfigFileContent","options","fileMap","Map","f","set","path","host","createCompilerHost","originalGetSourceFile","getSourceFile","bind","fileName","languageVersion","onError","get","createSourceFile","has","program","createProgram","map","checker","getTypeChecker","resolveType","node","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","sourceFile","exportName","paramIndex","result","forEachChild","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","param","parameters","resolveMutationParamTypes","resolved","isCallExpression","args","arguments","handlersArg","i","length","isObjectLiteralExpression","prop","properties","isPropertyAssignment","isMethodDeclaration","params","init","isFunctionExpression","typeNode","expanded","extractMutationsFromModel","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","call","firstArg","hasNamedModel","Boolean","isStringLiteralLike","extractSchemaColumns","paramType","valibotCode","secondParam","resolvedType","visit","text","expression","arg","isStringLiteral","obj","colName","initText","colType","getInstantiatedPropertyType","parent","resolveProperty","Reflect","apply","seen","Set","flags","getFlags","TypeFlags","Object","Intersection","add","recurse","t","String","Number","Void","Undefined","Null","Any","Unknown","Never","TemplateLiteral","isArrayType","isArrayLikeType","typeArgs","getTypeArguments","elementType","getNumberIndexType","StringLiteral","value","NumberLiteral","BooleanLiteral","intrinsicName","isUnion","members","types","hasNull","hasUndefined","rest","filter","every","inner2","inner","resolveSymbolType","instantiated","getName","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","isIntersection","props2","getProperties","propType","isOptional","SymbolFlags","Optional","val","startsWith","props","objectFlags","ObjectFlags","Reference","typeRef","symbol","getSymbol","typeArguments","Tuple","stringIndex","getStringIndexType","numberIndex","serializeColumnBuilder","col","zeroType","expr","serverName","optional","generateDrizzleSchemaFile","schema","lines","tableNames","keys","tables","tableName","colEntries","pkArgs","primaryKey","k","tableSource","relTableNames","relationships","rels","relEntries","relBody","relName","hops","hop","fn2","cardinality","sf","sourceField","df","destField","destSchema","Error","fn","hopCode","tableList","n","relList","generate","after","force","mutationsDir","usesMutationsDir","modelsDir","modelsDirName","queriesDir","inputHash","__generatorVersion","__inputHash","counts","__counts","filesChanged","modelCount","schemaCount","queryCount","mutationCount","allModelFiles","filesWithSchema","includes","allModelNames","schemaModelNames","writeResults","trim","queryFiles","allQueries","queryResolver","getQueryResolver","allFiles","file","fileBaseName","exportModifier","find","declaration","resolverSourceFile","console","error","err","groupedChanged","syncedChanged","allModelMutations","mutationFiles","unresolvedModels","baseName","hasUnresolved","collectTsFiles","dir2","results","fullPath","modelResolver","size","idx","findIndex","model","mutationsChanged","info","execSync","stdio","env","ON_ZERO_GENERATED_DIR","watch","debounce","chokidar","debounceTimer","debouncedRegenerate","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","ignored","on"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createHash","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","dirname","resolve","formatObjectKey","generateGroupedQueriesFile","generateInstancesFile","generateModelsFile","generateReadmeFile","generateSyncedMutationsFile","generateSyncedQueriesFile","generateTablesFile","generateTypesFile","parseColumnType","parseTypeString","shouldSkipObjectKey","discoverDataLayout","namespaceImportPath","hash","s","update","digest","GENERATOR_CACHE_VERSION","isGeneratorSourceFile","name","endsWith","hashInputTree","sourceRoots","generatedDir","parts","seen","Set","walk","dir","entries","withFileTypes","sort","a","b","entry","full","isDirectory","isFile","has","add","push","root","join","generateCache","generateCachePath","getCacheDir","process","cwd","nm","cacheDir","recursive","loadCache","JSON","parse","saveCache","stringify","writeFileIfChanged","filePath","content","contentHash","cachedHash","createTypeResolver","ts","files","configPath","findConfigFile","sys","fileExists","compilerOptions","target","ScriptTarget","Latest","module","ModuleKind","ESNext","moduleResolution","ModuleResolutionKind","Bundler","strict","skipLibCheck","noEmit","configFile","readConfigFile","readFile","config","parsed","parseJsonConfigFileContent","options","fileMap","Map","f","set","path","host","createCompilerHost","originalGetSourceFile","getSourceFile","bind","fileName","languageVersion","onError","get","createSourceFile","program","createProgram","map","checker","getTypeChecker","resolveType","node","getTypeFromTypeNode","typeToValibot","type","tsTypeToValibot","resolveParamType","resolver","sourceFile","exportName","paramIndex","result","forEachChild","isVariableStatement","modifiers","some","m","kind","SyntaxKind","ExportKeyword","decl","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","param","parameters","resolveMutationParamTypes","resolved","isCallExpression","args","arguments","handlersArg","i","length","isObjectLiteralExpression","prop","properties","isPropertyAssignment","isMethodDeclaration","params","init","isFunctionExpression","typeNode","expanded","extractMutationsFromModel","silent","resolvedTypes","resolvedTypeToValibot","mutateNode","modelName","hasCRUD","columns","primaryKeys","custom","call","firstArg","hasNamedModel","Boolean","isStringLiteralLike","extractSchemaColumns","paramType","valibotCode","secondParam","resolvedType","visit","text","expression","arg","isStringLiteral","obj","colName","initText","colType","getInstantiatedPropertyType","parent","resolveProperty","Reflect","apply","flags","getFlags","TypeFlags","Object","Intersection","recurse","t","String","Number","Void","Undefined","Null","Any","Unknown","Never","TemplateLiteral","isArrayType","isArrayLikeType","typeArgs","getTypeArguments","elementType","getNumberIndexType","StringLiteral","value","NumberLiteral","BooleanLiteral","intrinsicName","isUnion","members","types","hasNull","hasUndefined","rest","filter","every","inner","inner2","resolveSymbolType","instantiated","getName","valueDeclaration","getTypeOfSymbolAtLocation","getDeclaredTypeOfSymbol","isIntersection","props","getProperties","propType","isOptional","SymbolFlags","Optional","val","startsWith","objectFlags","ObjectFlags","Reference","typeRef","symbol","getSymbol","typeArguments","Tuple","stringIndex","getStringIndexType","numberIndex","serializeColumnBuilder","col","zeroType","expr","serverName","optional","generateDrizzleSchemaFile","schema","lines","tableNames","keys","tables","tableName","colEntries","pkArgs","primaryKey","k","tableSource","relTableNames","relationships","rels","relEntries","relBody","relName","hops","hop","fn2","cardinality","sf","sourceField","df","destField","destSchema","Error","fn","hopCode","tableList","n","relList","dataMembershipFromLayout","layout","instances","fromEntries","instance","namespaces","namespace","syncTables","supportTables","scope","allTables","flatMap","deriveDataMembership","generateDrizzleSchemaInputFile","baseDir","relationsPath","metadataPaths","find","relationEntries","source","included","factory","body","isParenthesizedExpression","tableProperty","table","replace","relations","relationProperty","isPropertyAccessExpression","relation","schemaImportPath","generate","after","force","metadataHash","inputHash","__generatorVersion","__inputHash","counts","__counts","filesChanged","modelCount","schemaCount","queryCount","mutationCount","modelNamespaces","modelPath","filesWithSchema","includes","modelModules","importPath","schemaModules","writeResults","trim","allQueries","queryResolver","getQueryResolver","allFiles","sourcePaths","namespace2","queryPath","exportModifier","declaration","resolverSourceFile","console","error","err","groupedChanged","syncedChanged","instancesChanged","queryNames","query","modelNames","allModelMutations","mutationFiles","unresolvedModels","fileBaseName","baseName","hasUnresolved","collectTsFiles","results","fullPath","file","values","modelResolver","size","idx","findIndex","model","mutationsChanged","info","execSync","stdio","env","ON_ZERO_GENERATED_DIR","watch","debounce","chokidar","debounceTimer","debouncedRegenerate","event","clearTimeout","setTimeout","databaseDir","watcher","persistent","ignoreInitial","ignored","on"],"sources":["../../src/generate.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}