on-zero 0.16.20 → 0.16.21

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 (329) hide show
  1. package/dist/cjs/cli.cjs +6 -0
  2. package/dist/cjs/cli.native.js +6 -0
  3. package/dist/cjs/cli.native.js.map +1 -1
  4. package/dist/cjs/combineZeroClients.native.js.map +1 -1
  5. package/dist/cjs/config.native.js.map +1 -1
  6. package/dist/cjs/createPermissions.native.js.map +1 -1
  7. package/dist/cjs/createSchemaFromDrizzle.native.js.map +1 -1
  8. package/dist/cjs/createUseQuery.cjs +14 -4
  9. package/dist/cjs/createUseQuery.native.js +18 -5
  10. package/dist/cjs/createUseQuery.native.js.map +1 -1
  11. package/dist/cjs/createUseQueryDirect.cjs +13 -2
  12. package/dist/cjs/createUseQueryDirect.native.js +14 -2
  13. package/dist/cjs/createUseQueryDirect.native.js.map +1 -1
  14. package/dist/cjs/createZeroClient.authData.test.native.js.map +1 -1
  15. package/dist/cjs/createZeroClient.cjs +21 -3
  16. package/dist/cjs/createZeroClient.connection.test.native.js.map +1 -1
  17. package/dist/cjs/createZeroClient.exportProbe.test.native.js.map +1 -1
  18. package/dist/cjs/createZeroClient.headless.test.native.js.map +1 -1
  19. package/dist/cjs/createZeroClient.httpAuth.test.native.js.map +1 -1
  20. package/dist/cjs/createZeroClient.native.js +28 -3
  21. package/dist/cjs/createZeroClient.native.js.map +1 -1
  22. package/dist/cjs/createZeroClient.recovery.test.native.js.map +1 -1
  23. package/dist/cjs/generate-helpers.native.js.map +1 -1
  24. package/dist/cjs/generate-helpers.test.native.js.map +1 -1
  25. package/dist/cjs/generate-layout.native.js.map +1 -1
  26. package/dist/cjs/generate-lite.native.js.map +1 -1
  27. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  28. package/dist/cjs/generate.cjs +57 -30
  29. package/dist/cjs/generate.native.js +92 -31
  30. package/dist/cjs/generate.native.js.map +1 -1
  31. package/dist/cjs/generate.test.cjs +147 -0
  32. package/dist/cjs/generate.test.native.js +147 -0
  33. package/dist/cjs/generate.test.native.js.map +1 -1
  34. package/dist/cjs/helpers/NullToOptional.native.js.map +1 -1
  35. package/dist/cjs/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
  36. package/dist/cjs/helpers/batchQuery.native.js.map +1 -1
  37. package/dist/cjs/helpers/clearZeroClientData.native.js.map +1 -1
  38. package/dist/cjs/helpers/createMutators.native.js.map +1 -1
  39. package/dist/cjs/helpers/createMutators.test.native.js.map +1 -1
  40. package/dist/cjs/helpers/ellipsis.native.js.map +1 -1
  41. package/dist/cjs/helpers/emitter.native.js.map +1 -1
  42. package/dist/cjs/helpers/ensure.native.js.map +1 -1
  43. package/dist/cjs/helpers/ensureLoggedIn.native.js.map +1 -1
  44. package/dist/cjs/helpers/errors.native.js.map +1 -1
  45. package/dist/cjs/helpers/getAuth.native.js.map +1 -1
  46. package/dist/cjs/helpers/getCurrentComponentStack.native.js.map +1 -1
  47. package/dist/cjs/helpers/globalValue.native.js.map +1 -1
  48. package/dist/cjs/helpers/hostStorageScope.native.js.map +1 -1
  49. package/dist/cjs/helpers/mapObject.native.js.map +1 -1
  50. package/dist/cjs/helpers/mutationLifecycle.native.js.map +1 -1
  51. package/dist/cjs/helpers/mutationLifecycle.test.native.js.map +1 -1
  52. package/dist/cjs/helpers/mutatorContext.native.js.map +1 -1
  53. package/dist/cjs/helpers/mutatorContext.test.native.js.map +1 -1
  54. package/dist/cjs/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  55. package/dist/cjs/helpers/queryContext.native.js.map +1 -1
  56. package/dist/cjs/helpers/recoverZeroClient.native.js.map +1 -1
  57. package/dist/cjs/helpers/recoverZeroClient.test.native.js.map +1 -1
  58. package/dist/cjs/helpers/showZeroClientError.native.js.map +1 -1
  59. package/dist/cjs/helpers/sleep.native.js.map +1 -1
  60. package/dist/cjs/helpers/time.native.js.map +1 -1
  61. package/dist/cjs/helpers/tuple.native.js.map +1 -1
  62. package/dist/cjs/helpers/useMutation.native.js.map +1 -1
  63. package/dist/cjs/helpers/useMutation.test.native.js.map +1 -1
  64. package/dist/cjs/helpers/useZeroDebug.native.js.map +1 -1
  65. package/dist/cjs/index.native.js.map +1 -1
  66. package/dist/cjs/instanceRegistry.native.js.map +1 -1
  67. package/dist/cjs/modelRegistry.native.js.map +1 -1
  68. package/dist/cjs/multi.cjs +10 -5
  69. package/dist/cjs/multi.native.js +10 -5
  70. package/dist/cjs/multi.native.js.map +1 -1
  71. package/dist/cjs/multiInstance.test.native.js.map +1 -1
  72. package/dist/cjs/multiInstanceMutations.test.native.js.map +1 -1
  73. package/dist/cjs/multiInstanceNested.test.native.js.map +1 -1
  74. package/dist/cjs/multiPartition.test.cjs +46 -2
  75. package/dist/cjs/multiPartition.test.native.js +50 -2
  76. package/dist/cjs/multiPartition.test.native.js.map +1 -1
  77. package/dist/cjs/mutations.native.js.map +1 -1
  78. package/dist/cjs/mutations.test.native.js.map +1 -1
  79. package/dist/cjs/native-typescript.cjs +50 -11
  80. package/dist/cjs/native-typescript.native.js +158 -30
  81. package/dist/cjs/native-typescript.native.js.map +1 -1
  82. package/dist/cjs/provideZero.eagerInstance.test.cjs +22 -0
  83. package/dist/cjs/provideZero.eagerInstance.test.native.js +30 -0
  84. package/dist/cjs/provideZero.eagerInstance.test.native.js.map +1 -1
  85. package/dist/cjs/provideZero.hydration.test.native.js.map +1 -1
  86. package/dist/cjs/provideZero.ssr.test.native.js.map +1 -1
  87. package/dist/cjs/queryErrorRecovery.cjs +93 -0
  88. package/dist/cjs/queryErrorRecovery.native.js +205 -0
  89. package/dist/cjs/queryErrorRecovery.native.js.map +1 -0
  90. package/dist/cjs/queryJson.native.js.map +1 -1
  91. package/dist/cjs/queryRegistry.native.js.map +1 -1
  92. package/dist/cjs/resolveQuery.native.js.map +1 -1
  93. package/dist/cjs/run.native.js.map +1 -1
  94. package/dist/cjs/server.native.js.map +1 -1
  95. package/dist/cjs/server.test.native.js.map +1 -1
  96. package/dist/cjs/serverWhere.native.js.map +1 -1
  97. package/dist/cjs/serverWhere.test.native.js.map +1 -1
  98. package/dist/cjs/state.native.js.map +1 -1
  99. package/dist/cjs/streaming.native.js.map +1 -1
  100. package/dist/cjs/testSetup.native.js.map +1 -1
  101. package/dist/cjs/types.native.js.map +1 -1
  102. package/dist/cjs/usePermission.test.native.js.map +1 -1
  103. package/dist/cjs/useQuery.aggregate.zero.test.cjs +199 -4
  104. package/dist/cjs/useQuery.aggregate.zero.test.native.js +212 -4
  105. package/dist/cjs/useQuery.aggregate.zero.test.native.js.map +1 -1
  106. package/dist/cjs/useQuery.empty.test.native.js.map +1 -1
  107. package/dist/cjs/useQuery.ssr.test.native.js.map +1 -1
  108. package/dist/cjs/useStreamingField.loop.test.native.js.map +1 -1
  109. package/dist/cjs/useStreamingField.native.js.map +1 -1
  110. package/dist/cjs/vite-plugin.cjs +10 -0
  111. package/dist/cjs/vite-plugin.native.js +10 -0
  112. package/dist/cjs/vite-plugin.native.js.map +1 -1
  113. package/dist/cjs/where.native.js.map +1 -1
  114. package/dist/cjs/zeroRunner.native.js.map +1 -1
  115. package/dist/cjs/zql.native.js.map +1 -1
  116. package/dist/esm/cli.mjs +6 -0
  117. package/dist/esm/cli.mjs.map +1 -1
  118. package/dist/esm/cli.native.js +7 -1
  119. package/dist/esm/cli.native.js.map +1 -1
  120. package/dist/esm/combineZeroClients.native.js +4 -4
  121. package/dist/esm/combineZeroClients.native.js.map +1 -1
  122. package/dist/esm/config.native.js.map +1 -1
  123. package/dist/esm/createPermissions.native.js +4 -4
  124. package/dist/esm/createPermissions.native.js.map +1 -1
  125. package/dist/esm/createSchemaFromDrizzle.native.js +1 -1
  126. package/dist/esm/createSchemaFromDrizzle.native.js.map +1 -1
  127. package/dist/esm/createUseQuery.mjs +16 -6
  128. package/dist/esm/createUseQuery.mjs.map +1 -1
  129. package/dist/esm/createUseQuery.native.js +24 -11
  130. package/dist/esm/createUseQuery.native.js.map +1 -1
  131. package/dist/esm/createUseQueryDirect.mjs +13 -2
  132. package/dist/esm/createUseQueryDirect.mjs.map +1 -1
  133. package/dist/esm/createUseQueryDirect.native.js +19 -7
  134. package/dist/esm/createUseQueryDirect.native.js.map +1 -1
  135. package/dist/esm/createZeroClient.authData.test.native.js +2 -2
  136. package/dist/esm/createZeroClient.authData.test.native.js.map +1 -1
  137. package/dist/esm/createZeroClient.connection.test.native.js +1 -1
  138. package/dist/esm/createZeroClient.connection.test.native.js.map +1 -1
  139. package/dist/esm/createZeroClient.exportProbe.test.native.js +1 -1
  140. package/dist/esm/createZeroClient.exportProbe.test.native.js.map +1 -1
  141. package/dist/esm/createZeroClient.headless.test.native.js +2 -2
  142. package/dist/esm/createZeroClient.headless.test.native.js.map +1 -1
  143. package/dist/esm/createZeroClient.httpAuth.test.native.js +1 -1
  144. package/dist/esm/createZeroClient.httpAuth.test.native.js.map +1 -1
  145. package/dist/esm/createZeroClient.mjs +21 -3
  146. package/dist/esm/createZeroClient.mjs.map +1 -1
  147. package/dist/esm/createZeroClient.native.js +49 -24
  148. package/dist/esm/createZeroClient.native.js.map +1 -1
  149. package/dist/esm/createZeroClient.recovery.test.native.js +2 -2
  150. package/dist/esm/createZeroClient.recovery.test.native.js.map +1 -1
  151. package/dist/esm/generate-helpers.native.js.map +1 -1
  152. package/dist/esm/generate-helpers.test.native.js +1 -1
  153. package/dist/esm/generate-helpers.test.native.js.map +1 -1
  154. package/dist/esm/generate-layout.native.js.map +1 -1
  155. package/dist/esm/generate-lite.native.js +1 -1
  156. package/dist/esm/generate-lite.native.js.map +1 -1
  157. package/dist/esm/generate-lite.test.native.js +1 -1
  158. package/dist/esm/generate-lite.test.native.js.map +1 -1
  159. package/dist/esm/generate.mjs +57 -30
  160. package/dist/esm/generate.mjs.map +1 -1
  161. package/dist/esm/generate.native.js +95 -34
  162. package/dist/esm/generate.native.js.map +1 -1
  163. package/dist/esm/generate.test.mjs +147 -0
  164. package/dist/esm/generate.test.mjs.map +1 -1
  165. package/dist/esm/generate.test.native.js +148 -1
  166. package/dist/esm/generate.test.native.js.map +1 -1
  167. package/dist/esm/helpers/NullToOptional.native.js.map +1 -1
  168. package/dist/esm/helpers/asyncContext.hostStorage.test.native.js +7 -7
  169. package/dist/esm/helpers/asyncContext.hostStorage.test.native.js.map +1 -1
  170. package/dist/esm/helpers/batchQuery.native.js +1 -1
  171. package/dist/esm/helpers/batchQuery.native.js.map +1 -1
  172. package/dist/esm/helpers/clearZeroClientData.native.js.map +1 -1
  173. package/dist/esm/helpers/createMutators.native.js +4 -4
  174. package/dist/esm/helpers/createMutators.native.js.map +1 -1
  175. package/dist/esm/helpers/createMutators.test.native.js +2 -2
  176. package/dist/esm/helpers/createMutators.test.native.js.map +1 -1
  177. package/dist/esm/helpers/ellipsis.native.js.map +1 -1
  178. package/dist/esm/helpers/emitter.native.js.map +1 -1
  179. package/dist/esm/helpers/ensure.native.js +1 -1
  180. package/dist/esm/helpers/ensure.native.js.map +1 -1
  181. package/dist/esm/helpers/ensureLoggedIn.native.js +2 -2
  182. package/dist/esm/helpers/ensureLoggedIn.native.js.map +1 -1
  183. package/dist/esm/helpers/errors.native.js.map +1 -1
  184. package/dist/esm/helpers/getAuth.native.js +3 -3
  185. package/dist/esm/helpers/getAuth.native.js.map +1 -1
  186. package/dist/esm/helpers/getCurrentComponentStack.native.js.map +1 -1
  187. package/dist/esm/helpers/globalValue.native.js.map +1 -1
  188. package/dist/esm/helpers/hostStorageScope.native.js.map +1 -1
  189. package/dist/esm/helpers/mapObject.native.js.map +1 -1
  190. package/dist/esm/helpers/mutationLifecycle.native.js +1 -1
  191. package/dist/esm/helpers/mutationLifecycle.native.js.map +1 -1
  192. package/dist/esm/helpers/mutationLifecycle.test.native.js +1 -1
  193. package/dist/esm/helpers/mutationLifecycle.test.native.js.map +1 -1
  194. package/dist/esm/helpers/mutatorContext.native.js +1 -1
  195. package/dist/esm/helpers/mutatorContext.native.js.map +1 -1
  196. package/dist/esm/helpers/mutatorContext.test.native.js +6 -6
  197. package/dist/esm/helpers/mutatorContext.test.native.js.map +1 -1
  198. package/dist/esm/helpers/prettyFormatZeroQuery.native.js +1 -1
  199. package/dist/esm/helpers/prettyFormatZeroQuery.native.js.map +1 -1
  200. package/dist/esm/helpers/queryContext.native.js +1 -1
  201. package/dist/esm/helpers/queryContext.native.js.map +1 -1
  202. package/dist/esm/helpers/recoverZeroClient.native.js +1 -1
  203. package/dist/esm/helpers/recoverZeroClient.native.js.map +1 -1
  204. package/dist/esm/helpers/recoverZeroClient.test.native.js +2 -2
  205. package/dist/esm/helpers/recoverZeroClient.test.native.js.map +1 -1
  206. package/dist/esm/helpers/showZeroClientError.native.js +1 -1
  207. package/dist/esm/helpers/showZeroClientError.native.js.map +1 -1
  208. package/dist/esm/helpers/sleep.native.js +1 -1
  209. package/dist/esm/helpers/sleep.native.js.map +1 -1
  210. package/dist/esm/helpers/time.native.js.map +1 -1
  211. package/dist/esm/helpers/tuple.native.js.map +1 -1
  212. package/dist/esm/helpers/useMutation.native.js.map +1 -1
  213. package/dist/esm/helpers/useMutation.test.native.js +1 -1
  214. package/dist/esm/helpers/useMutation.test.native.js.map +1 -1
  215. package/dist/esm/helpers/useZeroDebug.native.js +2 -2
  216. package/dist/esm/helpers/useZeroDebug.native.js.map +1 -1
  217. package/dist/esm/index.native.js +23 -23
  218. package/dist/esm/index.native.js.map +1 -1
  219. package/dist/esm/instanceRegistry.native.js +2 -2
  220. package/dist/esm/instanceRegistry.native.js.map +1 -1
  221. package/dist/esm/modelRegistry.native.js.map +1 -1
  222. package/dist/esm/multi.mjs +10 -5
  223. package/dist/esm/multi.mjs.map +1 -1
  224. package/dist/esm/multi.native.js +15 -10
  225. package/dist/esm/multi.native.js.map +1 -1
  226. package/dist/esm/multiInstance.test.native.js +10 -10
  227. package/dist/esm/multiInstance.test.native.js.map +1 -1
  228. package/dist/esm/multiInstanceMutations.test.native.js +4 -4
  229. package/dist/esm/multiInstanceMutations.test.native.js.map +1 -1
  230. package/dist/esm/multiInstanceNested.test.native.js +3 -3
  231. package/dist/esm/multiInstanceNested.test.native.js.map +1 -1
  232. package/dist/esm/multiPartition.test.mjs +47 -3
  233. package/dist/esm/multiPartition.test.mjs.map +1 -1
  234. package/dist/esm/multiPartition.test.native.js +52 -4
  235. package/dist/esm/multiPartition.test.native.js.map +1 -1
  236. package/dist/esm/mutations.native.js +2 -2
  237. package/dist/esm/mutations.native.js.map +1 -1
  238. package/dist/esm/mutations.test.native.js +4 -4
  239. package/dist/esm/mutations.test.native.js.map +1 -1
  240. package/dist/esm/native-typescript.mjs +50 -11
  241. package/dist/esm/native-typescript.mjs.map +1 -1
  242. package/dist/esm/native-typescript.native.js +158 -30
  243. package/dist/esm/native-typescript.native.js.map +1 -1
  244. package/dist/esm/provideZero.eagerInstance.test.mjs +22 -0
  245. package/dist/esm/provideZero.eagerInstance.test.mjs.map +1 -1
  246. package/dist/esm/provideZero.eagerInstance.test.native.js +31 -1
  247. package/dist/esm/provideZero.eagerInstance.test.native.js.map +1 -1
  248. package/dist/esm/provideZero.hydration.test.native.js +2 -2
  249. package/dist/esm/provideZero.hydration.test.native.js.map +1 -1
  250. package/dist/esm/provideZero.ssr.test.native.js +2 -2
  251. package/dist/esm/provideZero.ssr.test.native.js.map +1 -1
  252. package/dist/esm/queryErrorRecovery.mjs +66 -0
  253. package/dist/esm/queryErrorRecovery.mjs.map +1 -0
  254. package/dist/esm/queryErrorRecovery.native.js +175 -0
  255. package/dist/esm/queryErrorRecovery.native.js.map +1 -0
  256. package/dist/esm/queryJson.native.js +1 -1
  257. package/dist/esm/queryJson.native.js.map +1 -1
  258. package/dist/esm/queryRegistry.native.js.map +1 -1
  259. package/dist/esm/resolveQuery.native.js +2 -2
  260. package/dist/esm/resolveQuery.native.js.map +1 -1
  261. package/dist/esm/run.native.js +4 -4
  262. package/dist/esm/run.native.js.map +1 -1
  263. package/dist/esm/server.native.js +10 -10
  264. package/dist/esm/server.native.js.map +1 -1
  265. package/dist/esm/server.test.native.js +2 -2
  266. package/dist/esm/server.test.native.js.map +1 -1
  267. package/dist/esm/serverWhere.native.js +1 -1
  268. package/dist/esm/serverWhere.native.js.map +1 -1
  269. package/dist/esm/serverWhere.test.native.js +3 -3
  270. package/dist/esm/serverWhere.test.native.js.map +1 -1
  271. package/dist/esm/state.native.js +1 -1
  272. package/dist/esm/state.native.js.map +1 -1
  273. package/dist/esm/streaming.native.js +1 -1
  274. package/dist/esm/streaming.native.js.map +1 -1
  275. package/dist/esm/testSetup.native.js.map +1 -1
  276. package/dist/esm/types.native.js.map +1 -1
  277. package/dist/esm/usePermission.test.native.js +3 -3
  278. package/dist/esm/usePermission.test.native.js.map +1 -1
  279. package/dist/esm/useQuery.aggregate.zero.test.mjs +197 -2
  280. package/dist/esm/useQuery.aggregate.zero.test.mjs.map +1 -1
  281. package/dist/esm/useQuery.aggregate.zero.test.native.js +212 -4
  282. package/dist/esm/useQuery.aggregate.zero.test.native.js.map +1 -1
  283. package/dist/esm/useQuery.empty.test.native.js +3 -3
  284. package/dist/esm/useQuery.empty.test.native.js.map +1 -1
  285. package/dist/esm/useQuery.ssr.test.native.js +2 -2
  286. package/dist/esm/useQuery.ssr.test.native.js.map +1 -1
  287. package/dist/esm/useStreamingField.loop.test.native.js +1 -1
  288. package/dist/esm/useStreamingField.loop.test.native.js.map +1 -1
  289. package/dist/esm/useStreamingField.native.js.map +1 -1
  290. package/dist/esm/vite-plugin.mjs +10 -0
  291. package/dist/esm/vite-plugin.mjs.map +1 -1
  292. package/dist/esm/vite-plugin.native.js +11 -1
  293. package/dist/esm/vite-plugin.native.js.map +1 -1
  294. package/dist/esm/where.native.js +3 -3
  295. package/dist/esm/where.native.js.map +1 -1
  296. package/dist/esm/zeroRunner.native.js +1 -1
  297. package/dist/esm/zeroRunner.native.js.map +1 -1
  298. package/dist/esm/zql.native.js +1 -1
  299. package/dist/esm/zql.native.js.map +1 -1
  300. package/package.json +4 -4
  301. package/src/cli.ts +6 -0
  302. package/src/createUseQuery.tsx +20 -5
  303. package/src/createUseQueryDirect.tsx +17 -1
  304. package/src/createZeroClient.tsx +37 -4
  305. package/src/generate.test.ts +116 -0
  306. package/src/generate.ts +109 -52
  307. package/src/multi.ts +11 -3
  308. package/src/multiPartition.test.ts +55 -11
  309. package/src/native-typescript.ts +64 -11
  310. package/src/provideZero.eagerInstance.test.tsx +27 -0
  311. package/src/queryErrorRecovery.ts +95 -0
  312. package/src/useQuery.aggregate.zero.test.tsx +187 -2
  313. package/src/vite-plugin.ts +10 -0
  314. package/types/createUseQuery.d.ts +3 -1
  315. package/types/createUseQuery.d.ts.map +1 -1
  316. package/types/createUseQueryDirect.d.ts +3 -1
  317. package/types/createUseQueryDirect.d.ts.map +1 -1
  318. package/types/createZeroClient.d.ts +3 -1
  319. package/types/createZeroClient.d.ts.map +1 -1
  320. package/types/generate.d.ts +4 -0
  321. package/types/generate.d.ts.map +1 -1
  322. package/types/multi.d.ts +3 -1
  323. package/types/multi.d.ts.map +1 -1
  324. package/types/native-typescript.d.ts +7 -1
  325. package/types/native-typescript.d.ts.map +1 -1
  326. package/types/queryErrorRecovery.d.ts +33 -0
  327. package/types/queryErrorRecovery.d.ts.map +1 -0
  328. package/types/useQuery.aggregate.zero.test.d.ts.map +1 -1
  329. package/types/vite-plugin.d.ts.map +1 -1
@@ -1,5 +1,6 @@
1
1
  import { createSchema, string, table } from "@rocicorp/zero";
2
- import { describe, expect, test } from "vitest";
2
+ import { describe, expect, test, vi } from "vitest";
3
+ import { getInstanceForQueryFn } from "./instanceRegistry.mjs";
3
4
  import { createZeroClients } from "./multi.mjs";
4
5
  const schema = createSchema({
5
6
  tables: [table("message").columns({
@@ -41,16 +42,55 @@ describe("createZeroClients", () => {
41
42
  })
42
43
  }
43
44
  };
44
- const result = createZeroClients(instances);
45
+ const result = createZeroClients(instances, {
46
+ inner: "default"
47
+ });
45
48
  expect(Object.keys(result.clients)).toEqual(["project", "default"]);
46
49
  expect(result.clients.default.instanceName).toBe("default");
47
50
  expect(result.clients.project.instanceName).toBe("project");
48
51
  expect(result.providers.default).toBe(result.clients.default.ProvideZero);
49
52
  expect(result.providers.project).toBe(result.clients.project.ProvideZero);
50
53
  expect(result.combined.run).toBeTypeOf("function");
54
+ const innerQuery = vi.spyOn(result.clients.default, "useQuery").mockReturnValue("inner");
55
+ const outerQuery = vi.spyOn(result.clients.project, "useQueryDirect").mockReturnValue("outer");
56
+ expect(result.combined.useQuery(instances.default.queries.account.current, {})).toBe("inner");
57
+ expect(result.combined.useQuery(instances.project.queries.message.all, {})).toBe("outer");
58
+ expect(innerQuery).toHaveBeenCalledOnce();
59
+ expect(outerQuery).toHaveBeenCalledOnce();
51
60
  });
52
61
  test("requires at least one generated instance", () => {
53
- expect(() => createZeroClients({})).toThrow(/at least one instance/);
62
+ expect(() => createZeroClients({}, {
63
+ inner: "missing"
64
+ })).toThrow(/at least one instance/);
65
+ });
66
+ test("rejects an unknown inner instance before replacing registered clients", () => {
67
+ const entry = {
68
+ schema,
69
+ queries: {
70
+ preserved: {
71
+ current: () => ({})
72
+ }
73
+ },
74
+ models: {},
75
+ tables: [],
76
+ syncTables: [],
77
+ supportTables: [],
78
+ scope: null,
79
+ defaultVisibility: null
80
+ };
81
+ createZeroClients({
82
+ default: entry
83
+ }, {
84
+ inner: "default"
85
+ });
86
+ const owner = getInstanceForQueryFn(entry.queries.preserved.current);
87
+ expect(owner?.name).toBe("default");
88
+ expect(() => createZeroClients({
89
+ default: entry
90
+ }, {
91
+ inner: "missing"
92
+ })).toThrow(/inner instance 'missing'/);
93
+ expect(getInstanceForQueryFn(entry.queries.preserved.current)).toBe(owner);
54
94
  });
55
95
  test("replaces an existing partition atomically when a namespace moves", () => {
56
96
  const entry = queries => ({
@@ -74,6 +114,8 @@ describe("createZeroClients", () => {
74
114
  before: () => ({})
75
115
  }
76
116
  })
117
+ }, {
118
+ inner: "project"
77
119
  });
78
120
  expect(() => createZeroClients({
79
121
  default: entry({
@@ -86,6 +128,8 @@ describe("createZeroClients", () => {
86
128
  after: () => ({})
87
129
  }
88
130
  })
131
+ }, {
132
+ inner: "project"
89
133
  })).not.toThrow();
90
134
  });
91
135
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createSchema","string","table","describe","expect","test","createZeroClients","schema","tables","columns","id","primaryKey","instances","default","queries","account","current","models","syncTables","supportTables","scope","defaultVisibility","project","message","all","value","column","result","Object","keys","clients","toEqual","instanceName","toBe","providers","ProvideZero","combined","run","toBeTypeOf","toThrow","entry","movedNamespace","before","stableProject","stableDefault","after","not"],"sources":["../../src/multiPartition.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSchema","string","table","describe","expect","test","vi","getInstanceForQueryFn","createZeroClients","schema","tables","columns","id","primaryKey","instances","default","queries","account","current","models","syncTables","supportTables","scope","defaultVisibility","project","message","all","value","column","result","inner","Object","keys","clients","toEqual","instanceName","toBe","providers","ProvideZero","combined","run","toBeTypeOf","innerQuery","spyOn","mockReturnValue","outerQuery","useQuery","toHaveBeenCalledOnce","toThrow","entry","preserved","owner","name","movedNamespace","before","stableProject","stableDefault","after","not"],"sources":["../../src/multiPartition.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import { createSchema, string, table } from "@rocicorp/zero";
2
- import { describe, expect, test } from "vitest";
3
- import { createZeroClients } from "./multi.native.js";
2
+ import { describe, expect, test, vi } from "vitest";
3
+ import { getInstanceForQueryFn } from "./instanceRegistry";
4
+ import { createZeroClients } from "./multi";
4
5
  var schema = createSchema({
5
6
  tables: [table("message").columns({
6
7
  id: string()
@@ -47,19 +48,62 @@ describe("createZeroClients", function () {
47
48
  }
48
49
  }
49
50
  };
50
- var result = createZeroClients(instances);
51
+ var result = createZeroClients(instances, {
52
+ inner: "default"
53
+ });
51
54
  expect(Object.keys(result.clients)).toEqual(["project", "default"]);
52
55
  expect(result.clients.default.instanceName).toBe("default");
53
56
  expect(result.clients.project.instanceName).toBe("project");
54
57
  expect(result.providers.default).toBe(result.clients.default.ProvideZero);
55
58
  expect(result.providers.project).toBe(result.clients.project.ProvideZero);
56
59
  expect(result.combined.run).toBeTypeOf("function");
60
+ var innerQuery = vi.spyOn(result.clients.default, "useQuery").mockReturnValue("inner");
61
+ var outerQuery = vi.spyOn(result.clients.project, "useQueryDirect").mockReturnValue("outer");
62
+ expect(result.combined.useQuery(instances.default.queries.account.current, {})).toBe("inner");
63
+ expect(result.combined.useQuery(instances.project.queries.message.all, {})).toBe("outer");
64
+ expect(innerQuery).toHaveBeenCalledOnce();
65
+ expect(outerQuery).toHaveBeenCalledOnce();
57
66
  });
58
67
  test("requires at least one generated instance", function () {
59
68
  expect(function () {
60
- return createZeroClients({});
69
+ return createZeroClients({}, {
70
+ inner: "missing"
71
+ });
61
72
  }).toThrow(/at least one instance/);
62
73
  });
74
+ test("rejects an unknown inner instance before replacing registered clients", function () {
75
+ var entry = {
76
+ schema,
77
+ queries: {
78
+ preserved: {
79
+ current: function current() {
80
+ return {};
81
+ }
82
+ }
83
+ },
84
+ models: {},
85
+ tables: [],
86
+ syncTables: [],
87
+ supportTables: [],
88
+ scope: null,
89
+ defaultVisibility: null
90
+ };
91
+ createZeroClients({
92
+ default: entry
93
+ }, {
94
+ inner: "default"
95
+ });
96
+ var owner = getInstanceForQueryFn(entry.queries.preserved.current);
97
+ expect(owner === null || owner === void 0 ? void 0 : owner.name).toBe("default");
98
+ expect(function () {
99
+ return createZeroClients({
100
+ default: entry
101
+ }, {
102
+ inner: "missing"
103
+ });
104
+ }).toThrow(/inner instance 'missing'/);
105
+ expect(getInstanceForQueryFn(entry.queries.preserved.current)).toBe(owner);
106
+ });
63
107
  test("replaces an existing partition atomically when a namespace moves", function () {
64
108
  var entry = function entry2(queries) {
65
109
  return {
@@ -88,6 +132,8 @@ describe("createZeroClients", function () {
88
132
  }
89
133
  }
90
134
  })
135
+ }, {
136
+ inner: "project"
91
137
  });
92
138
  expect(function () {
93
139
  return createZeroClients({
@@ -105,6 +151,8 @@ describe("createZeroClients", function () {
105
151
  }
106
152
  }
107
153
  })
154
+ }, {
155
+ inner: "project"
108
156
  });
109
157
  }).not.toThrow();
110
158
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createSchema","string","table","describe","expect","test","createZeroClients","schema","tables","columns","id","primaryKey","instances","default","queries","account","current","models","syncTables","supportTables","scope","defaultVisibility","project","message","all","value","column","result","Object","keys","clients","toEqual"],"sources":["../../src/multiPartition.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,YAAA,EAAcC,MAAA,EAAQC,KAAA,QAAa;AAC5C,SAASC,QAAA,EAAUC,MAAA,EAAQC,IAAA,QAAY;AAEvC,SAASC,iBAAA,QAAyB;AAElC,IAAAC,MAAM,GAAAP,YAAS;EACbQ,MAAA,EAAQ,CACTN,KAAA,YAAAO,OAAA;IAEDC,EAAA,EAAST,MAAA;EACP,GAAKU,UAAA;AACe;AACPR,QACP;EAAAE,IAAA,iEACqD;IAAA,IACrDO,SAAS;MAAAC,OACT;QACAN,MAAA;QACAO,OAAA;UACAC,OAAO;YACPC,OAAA,WAAmBA,QAAA;cACrB;YACA;UACE;QACA;QACAC,MAAA,EAAQ,CAAC;QACTT,MAAA,EAAQ,CACR,UACA;QACAU,UAAO,GACP,UACF;QACFC,aAAA;QAEAC,KAAM,MAAS;QAEfC,iBAAmB;MACnB;MACAC,OAAO;QACPf,MAAO;QACPO,OAAO;UACPS,OAAO,EAAO;YACfC,GAAA,WAAAA,IAAA;cAEI;YACI;UACR;QAEI;QACHP,MAAM,IAAQ;QACZT,MAAA,GACA,UACA;QACAU,UAAQ,GACR,SAAY,CACZ;QACAC,aAAO;QACPC,KAAA,aAAmB;QACrBC,iBAAA,WAAAA,kBAAAI,KAAA;UAEA;YACEC,MAAS,aAAQ;YACjBD;UACD;QAED;MAAO;IACa;IACgD,IAChEE,MAAA,GAASrB,iBAAQ,CAAAM,SAAkB;IAA8BR,MAClE,CAAAwB,MAAA,CAAAC,IAAA,CAAAF,MAAA,CAAAG,OAAA,GAAAC,OAAA,EACD,SAAI,EACP,UACF","ignoreList":[]}
1
+ {"version":3,"names":["createSchema","string","table","describe","expect","test","vi","getInstanceForQueryFn","createZeroClients","schema","tables","columns","id","primaryKey","instances","default","queries","account","current","models","syncTables","supportTables","scope","defaultVisibility","project","message","all","value","column","result","inner","Object","keys","clients","toEqual","instanceName","toBe","providers","ProvideZero","combined","run","toBeTypeOf","innerQuery","spyOn","mockReturnValue","outerQuery","useQuery","toHaveBeenCalledOnce","toThrow","entry","preserved","owner","name","entry2","movedNamespace","before","stableProject","stableDefault","after","not"],"sources":["multiPartition.test.native.js"],"sourcesContent":["import { createSchema, string, table } from \"@rocicorp/zero\";\nimport { describe, expect, test, vi } from \"vitest\";\nimport { getInstanceForQueryFn } from \"./instanceRegistry\";\nimport { createZeroClients } from \"./multi\";\nvar schema = createSchema({\n tables: [\n table(\"message\").columns({\n id: string()\n }).primaryKey(\"id\")\n ]\n});\ndescribe(\"createZeroClients\", function() {\n test(\"builds generated partitions with default as the primary client\", function() {\n var instances = {\n default: {\n schema,\n queries: {\n account: {\n current: function current() {\n return {};\n }\n }\n },\n models: {},\n tables: [\n \"account\"\n ],\n syncTables: [\n \"account\"\n ],\n supportTables: [],\n scope: null,\n defaultVisibility: null\n },\n project: {\n schema,\n queries: {\n message: {\n all: function all() {\n return {};\n }\n }\n },\n models: {},\n tables: [\n \"message\"\n ],\n syncTables: [\n \"message\"\n ],\n supportTables: [],\n scope: \"projectId\",\n defaultVisibility: function defaultVisibility(value) {\n return {\n column: \"projectId\",\n value\n };\n }\n }\n };\n var result = createZeroClients(instances, {\n inner: \"default\"\n });\n expect(Object.keys(result.clients)).toEqual([\n \"project\",\n \"default\"\n ]);\n expect(result.clients.default.instanceName).toBe(\"default\");\n expect(result.clients.project.instanceName).toBe(\"project\");\n expect(result.providers.default).toBe(result.clients.default.ProvideZero);\n expect(result.providers.project).toBe(result.clients.project.ProvideZero);\n expect(result.combined.run).toBeTypeOf(\"function\");\n var innerQuery = vi.spyOn(result.clients.default, \"useQuery\").mockReturnValue(\"inner\");\n var outerQuery = vi.spyOn(result.clients.project, \"useQueryDirect\").mockReturnValue(\"outer\");\n expect(result.combined.useQuery(instances.default.queries.account.current, {})).toBe(\"inner\");\n expect(result.combined.useQuery(instances.project.queries.message.all, {})).toBe(\"outer\");\n expect(innerQuery).toHaveBeenCalledOnce();\n expect(outerQuery).toHaveBeenCalledOnce();\n });\n test(\"requires at least one generated instance\", function() {\n expect(function() {\n return createZeroClients({}, {\n inner: \"missing\"\n });\n }).toThrow(/at least one instance/);\n });\n test(\"rejects an unknown inner instance before replacing registered clients\", function() {\n var entry = {\n schema,\n queries: {\n preserved: {\n current: function current() {\n return {};\n }\n }\n },\n models: {},\n tables: [],\n syncTables: [],\n supportTables: [],\n scope: null,\n defaultVisibility: null\n };\n createZeroClients({\n default: entry\n }, {\n inner: \"default\"\n });\n var owner = getInstanceForQueryFn(entry.queries.preserved.current);\n expect(owner === null || owner === void 0 ? void 0 : owner.name).toBe(\"default\");\n expect(function() {\n return createZeroClients({\n default: entry\n }, {\n inner: \"missing\"\n });\n }).toThrow(/inner instance 'missing'/);\n expect(getInstanceForQueryFn(entry.queries.preserved.current)).toBe(owner);\n });\n test(\"replaces an existing partition atomically when a namespace moves\", function() {\n var entry = function entry2(queries) {\n return {\n schema,\n queries,\n models: {},\n tables: Object.keys(queries),\n syncTables: Object.keys(queries),\n supportTables: [],\n scope: null,\n defaultVisibility: null\n };\n };\n createZeroClients({\n default: entry({\n movedNamespace: {\n before: function before() {\n return {};\n }\n }\n }),\n project: entry({\n stableProject: {\n before: function before() {\n return {};\n }\n }\n })\n }, {\n inner: \"project\"\n });\n expect(function() {\n return createZeroClients({\n default: entry({\n stableDefault: {\n after: function after() {\n return {};\n }\n }\n }),\n project: entry({\n movedNamespace: {\n after: function after() {\n return {};\n }\n }\n })\n }, {\n inner: \"project\"\n });\n }).not.toThrow();\n });\n});\n//# sourceMappingURL=multiPartition.test.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { setMutationsPermissions } from "./modelRegistry.native.js";
2
- import { getSchema, getZQL } from "./state.native.js";
1
+ import { setMutationsPermissions } from "./modelRegistry";
2
+ import { getSchema, getZQL } from "./state";
3
3
  function mutationRegistry() {
4
4
  var _global;
5
5
  var global = globalThis;
@@ -1 +1 @@
1
- {"version":3,"names":["setMutationsPermissions","getSchema","getZQL","mutationRegistry","_global","global","globalThis","__onZeroMutationRegistry__","Map","proxyRegistry","__onZeroProxyRegistry__","getOrCreateMutationProxy","tableName","implementations","crud","arguments","length","prior","get","_i","_iter","action","set","existing","proxy","Proxy","_","key","_mutationRegistry_get","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","options","schema","name","createCRUDMutation","createCRUDMutation2","customMutation","ctx","obj","environment","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","tables","primaryKey","Symbol","iterator","_step","next","done","where","err","return"],"sources":["../../src/mutations.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["setMutationsPermissions","getSchema","getZQL","mutationRegistry","_global","global","globalThis","__onZeroMutationRegistry__","Map","proxyRegistry","__onZeroProxyRegistry__","getOrCreateMutationProxy","tableName","implementations","crud","arguments","length","prior","get","_i","_iter","action","set","existing","proxy","Proxy","_","key","_mutationRegistry_get","ownKeys","current","Object","keys","getOwnPropertyDescriptor","enumerable","configurable","value","has","mutations","table","permissions","mutations2","options","schema","name","createCRUDMutation","createCRUDMutation2","customMutation","ctx","obj","environment","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","tables","primaryKey","Symbol","iterator","_step","next","done","where","err","return","tx","run","one","can","mutate","crudMutations","insert","update","delete","upsert","finalMutations"],"sources":["mutations.native.js"],"sourcesContent":["import { setMutationsPermissions } from \"./modelRegistry\";\nimport { getSchema, getZQL } from \"./state\";\nfunction mutationRegistry() {\n var _global;\n var global = globalThis;\n return (_global = global).__onZeroMutationRegistry__ || (_global.__onZeroMutationRegistry__ = /* @__PURE__ */ new Map());\n}\nfunction proxyRegistry() {\n var _global;\n var global = globalThis;\n return (_global = global).__onZeroProxyRegistry__ || (_global.__onZeroProxyRegistry__ = /* @__PURE__ */ new Map());\n}\nfunction getOrCreateMutationProxy(tableName, implementations) {\n var crud = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;\n var prior = mutationRegistry().get(tableName);\n if (prior && !crud) {\n for (var _i = 0, _iter = [\n \"insert\",\n \"update\",\n \"delete\",\n \"upsert\"\n ]; _i < _iter.length; _i++) {\n var action = _iter[_i];\n if (!(action in implementations)) delete prior[action];\n }\n }\n mutationRegistry().set(tableName, prior ? {\n ...prior,\n ...implementations\n } : implementations);\n var existing = proxyRegistry().get(tableName);\n if (existing) {\n return existing;\n }\n var proxy = new Proxy({}, {\n get(_, key) {\n var _mutationRegistry_get;\n return (_mutationRegistry_get = mutationRegistry().get(tableName)) === null || _mutationRegistry_get === void 0 ? void 0 : _mutationRegistry_get[key];\n },\n ownKeys() {\n var current = mutationRegistry().get(tableName);\n return current ? Object.keys(current) : [];\n },\n getOwnPropertyDescriptor(_, key) {\n var current = mutationRegistry().get(tableName);\n if (current && key in current) {\n return {\n enumerable: true,\n configurable: true,\n value: current[key]\n };\n }\n },\n has(_, key) {\n var current = mutationRegistry().get(tableName);\n return current ? key in current : false;\n }\n });\n proxyRegistry().set(tableName, proxy);\n return proxy;\n}\nfunction mutations(table, permissions, mutations2, options) {\n if (permissions) {\n var tableName = typeof table === \"string\" ? table : table.schema.name;\n setMutationsPermissions(tableName, permissions);\n if ((options === null || options === void 0 ? void 0 : options.crud) === false) {\n return getOrCreateMutationProxy(tableName, mutations2 !== null && mutations2 !== void 0 ? mutations2 : {}, false);\n }\n var createCRUDMutation = function createCRUDMutation2(action) {\n var customMutation = mutations2 === null || mutations2 === void 0 ? void 0 : mutations2[action];\n if (customMutation) return customMutation;\n return async function(ctx, obj) {\n if (action === \"upsert\" && ctx.environment === \"server\") {\n var existing = getZQL()[tableName];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = getSchema().tables[tableName].primaryKey[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n existing = existing.where(key, obj[key]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (await ctx.tx.run(existing.one())) {\n await ctx.can(permissions, obj);\n }\n } else if (action === \"update\" || action === \"delete\") {\n await ctx.can(permissions, obj);\n }\n await ctx.tx.mutate[tableName][action](obj);\n if (action !== \"delete\") {\n await ctx.can(permissions, obj);\n }\n };\n };\n var crudMutations = {\n insert: createCRUDMutation(\"insert\"),\n update: createCRUDMutation(\"update\"),\n delete: createCRUDMutation(\"delete\"),\n upsert: createCRUDMutation(\"upsert\")\n };\n var finalMutations = {\n ...mutations2,\n // generated CRUD fills missing operations; custom CRUD runs as-is\n ...crudMutations\n };\n return getOrCreateMutationProxy(tableName, finalMutations);\n }\n return table;\n}\nexport {\n mutations\n};\n//# sourceMappingURL=mutations.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -5,10 +5,10 @@ import { createSQLiteApplicationDatabase, createSyncExecutor } from "orez-lite";
5
5
  import { createQueryCompiler } from "orez-lite/cloudflare/query-compiler";
6
6
  import { executeTransactionQueryPlan } from "orez-lite/cloudflare/transaction-query";
7
7
  import { afterAll, describe, expect, test, vi } from "vitest";
8
- import { createZeroServerBindings, setupAsyncLocalStorage } from "./server.native.js";
9
- import { getMutationsPermissions } from "./modelRegistry.native.js";
10
- import { mutations } from "./mutations.native.js";
11
- import { serverWhere } from "./serverWhere.native.js";
8
+ import { createZeroServerBindings, setupAsyncLocalStorage } from "./server";
9
+ import { getMutationsPermissions } from "./modelRegistry";
10
+ import { mutations } from "./mutations";
11
+ import { serverWhere } from "./serverWhere";
12
12
  var previousEnvironment = vi.hoisted(function () {
13
13
  var previous = process.env.VITE_ENVIRONMENT;
14
14
  process.env.VITE_ENVIRONMENT = "client";
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncLocalStorage","DatabaseSync","createSchema","string","table","createSQLiteApplicationDatabase","createSyncExecutor","createQueryCompiler","executeTransactionQueryPlan","afterAll","describe","expect","test","vi","createZeroServerBindings","setupAsyncLocalStorage","getMutationsPermissions","mutations","serverWhere","previousEnvironment","hoisted","previous","process","env","VITE_ENVIRONMENT","record","columns","id","primaryKey","permission","first","Object","keys","sort","toEqual","custom","fn","closed","crud","toBe","Reflect","get","toBeUndefined","toHaveBeenCalledOnce","reopened","insert","permissions","v1","v12","v2","v22","proxy","document","workspace","ownerId","title","schema","tables","relationships","enableLegacyQueries","sqlite","exec","compile","query","query2","sql","params","arguments","length","prepare","all","map","value","tx","changes","Number","run","queryAst","ast","format","queryName","database","transaction","work","result","error","eb","auth2","cmp","bindings","models","mutate","createServerActions","executor","mutators","effects","runBackground","promise","report","server","auth","authData","own","foreign"],"sources":["../../src/mutations.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AsyncLocalStorage","DatabaseSync","createSchema","string","table","createSQLiteApplicationDatabase","createSyncExecutor","createQueryCompiler","executeTransactionQueryPlan","afterAll","describe","expect","test","vi","createZeroServerBindings","setupAsyncLocalStorage","getMutationsPermissions","mutations","serverWhere","previousEnvironment","hoisted","previous","process","env","VITE_ENVIRONMENT","record","columns","id","primaryKey","permission","first","Object","keys","sort","toEqual","custom","fn","closed","crud","toBe","Reflect","get","toBeUndefined","toHaveBeenCalledOnce","reopened","insert","permissions","v1","v12","v2","v22","proxy","document","workspace","ownerId","title","schema","tables","relationships","enableLegacyQueries","sqlite","exec","compile","query","query2","sql","params","arguments","length","prepare","all","map","value","tx","changes","Number","run","queryAst","ast","format","queryName","database","transaction","work","result","error","eb","auth2","cmp","bindings","models","mutate","createServerActions","executor","mutators","effects","runBackground","promise","report","server","auth","authData","own","foreign","rejects","toThrow","upsert","update","closedBindings","rename","ctx","input","can","closedExecutor","_i","_iter","action","execute","userID","close"],"sources":["mutations.test.native.js"],"sourcesContent":["import { AsyncLocalStorage } from \"async_hooks\";\nimport { DatabaseSync } from \"node:sqlite\";\nimport { createSchema, string, table } from \"@rocicorp/zero\";\nimport { createSQLiteApplicationDatabase, createSyncExecutor } from \"orez-lite\";\nimport { createQueryCompiler } from \"orez-lite/cloudflare/query-compiler\";\nimport { executeTransactionQueryPlan } from \"orez-lite/cloudflare/transaction-query\";\nimport { afterAll, describe, expect, test, vi } from \"vitest\";\nimport { createZeroServerBindings, setupAsyncLocalStorage } from \"./server\";\nimport { getMutationsPermissions } from \"./modelRegistry\";\nimport { mutations } from \"./mutations\";\nimport { serverWhere } from \"./serverWhere\";\nvar previousEnvironment = vi.hoisted(function() {\n var previous = process.env.VITE_ENVIRONMENT;\n process.env.VITE_ENVIRONMENT = \"client\";\n return previous;\n});\nafterAll(function() {\n if (previousEnvironment === void 0) delete process.env.VITE_ENVIRONMENT;\n else process.env.VITE_ENVIRONMENT = previousEnvironment;\n});\ndescribe(\"mutations registry\", function() {\n test(\"explicit opt-out removes generated CRUD from existing proxies and retains permissions\", async function() {\n var record = table(\"closedRecord\").columns({\n id: string()\n }).primaryKey(\"id\");\n var permission = serverWhere(\"closedRecord\", function() {\n return true;\n });\n var first = mutations(record, permission);\n expect(Object.keys(first).sort()).toEqual([\n \"delete\",\n \"insert\",\n \"update\",\n \"upsert\"\n ]);\n var custom = vi.fn(async function() {\n });\n var closed = mutations(record, permission, {\n custom\n }, {\n crud: false\n });\n expect(closed).toBe(first);\n expect(Object.keys(closed)).toEqual([\n \"custom\"\n ]);\n expect(\"insert\" in closed).toBe(false);\n expect(Reflect.get(closed, \"upsert\")).toBeUndefined();\n expect(getMutationsPermissions(\"closedRecord\")).toBe(permission);\n await closed.custom();\n expect(custom).toHaveBeenCalledOnce();\n var reopened = mutations(record, permission, {}, {\n crud: true\n });\n expect(Object.keys(reopened).sort()).toEqual([\n \"custom\",\n \"delete\",\n \"insert\",\n \"update\",\n \"upsert\"\n ]);\n });\n test(\"opt-out preserves explicitly declared CRUD handlers\", async function() {\n var record = table(\"customRecord\").columns({\n id: string()\n }).primaryKey(\"id\");\n var permission = serverWhere(\"customRecord\", function() {\n return true;\n });\n var insert = vi.fn(async function() {\n });\n var custom = mutations(record, permission, {\n insert\n }, {\n crud: false\n });\n expect(Object.keys(custom)).toEqual([\n \"insert\"\n ]);\n await custom.insert();\n expect(insert).toHaveBeenCalledOnce();\n });\n test(\"re-registering a handler replaces it per key (HMR)\", function() {\n var permissions = serverWhere(\"post\", function() {\n return true;\n });\n var v1 = async function v12() {\n };\n var v2 = async function v22() {\n };\n mutations(\"post\", permissions, {\n custom: v1\n });\n var proxy = mutations(\"post\", permissions, {\n custom: v2\n });\n expect(proxy.custom).toBe(v2);\n });\n});\ndescribe(\"generated CRUD authorization\", function() {\n test(\"authorizes both sides of composite-key writes through the server executor\", async function() {\n setupAsyncLocalStorage(AsyncLocalStorage);\n var document = table(\"document\").columns({\n workspace: string(),\n id: string(),\n ownerId: string(),\n title: string()\n }).primaryKey(\"workspace\", \"id\");\n var schema = createSchema({\n tables: [\n document\n ],\n relationships: [],\n enableLegacyQueries: true\n });\n var sqlite = new DatabaseSync(\":memory:\");\n sqlite.exec(\"CREATE TABLE document (workspace TEXT, id TEXT, ownerId TEXT, title TEXT, PRIMARY KEY (workspace, id))\");\n var compile = createQueryCompiler(schema);\n var query = async function query2(sql) {\n var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];\n return sqlite.prepare(sql).all(...params.map(function(value) {\n return value;\n }));\n };\n var tx = {\n query,\n exec: async function exec(sql) {\n var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];\n return {\n changes: Number(sqlite.prepare(sql).run(...params.map(function(value) {\n return value;\n })).changes)\n };\n },\n queryAst: async function queryAst(ast, format, queryName) {\n return executeTransactionQueryPlan(compile(ast, format), function(sql, params) {\n return sqlite.prepare(sql).all(...params.map(function(value) {\n return value;\n }));\n }, {\n queryName\n });\n }\n };\n var database = createSQLiteApplicationDatabase({\n query,\n transaction: async function transaction(work) {\n sqlite.exec(\"BEGIN\");\n try {\n var result = await work(tx);\n sqlite.exec(\"COMMIT\");\n return result;\n } catch (error) {\n sqlite.exec(\"ROLLBACK\");\n throw error;\n }\n }\n });\n var permission = serverWhere(\"document\", function(eb, auth2) {\n return eb.cmp(\"ownerId\", auth2 && \"id\" in auth2 && typeof auth2.id === \"string\" ? auth2.id : \"\");\n });\n var bindings = createZeroServerBindings({\n schema,\n models: {\n document: {\n mutate: mutations(document, permission)\n }\n },\n createServerActions: function createServerActions() {\n return {};\n }\n });\n var executor = createSyncExecutor({\n database,\n schema,\n mutators: bindings.mutators,\n effects: {\n runBackground: function runBackground(promise) {\n return promise;\n },\n report: function report(error) {\n throw error;\n }\n }\n });\n var server = bindings.server(executor);\n var auth = {\n authData: {\n id: \"alice\"\n }\n };\n var own = {\n workspace: \"a\",\n id: \"same\",\n ownerId: \"alice\",\n title: \"own\"\n };\n var foreign = {\n workspace: \"b\",\n id: \"same\",\n ownerId: \"bob\",\n title: \"foreign\"\n };\n try {\n await server.mutate.document.insert(own, auth);\n await server.mutate.document.insert(foreign, {\n authData: {\n id: \"bob\"\n }\n });\n await expect(server.mutate.document.insert({\n ...foreign,\n id: \"forbidden\"\n }, auth)).rejects.toThrow();\n await expect(server.mutate.document.upsert({\n ...foreign,\n ownerId: \"alice\"\n }, auth)).rejects.toThrow();\n await expect(server.mutate.document.update({\n ...own,\n ownerId: \"bob\"\n }, auth)).rejects.toThrow();\n await expect(server.mutate.document.upsert({\n ...own,\n ownerId: \"bob\"\n }, auth)).rejects.toThrow();\n await expect(server.mutate.document.upsert({\n ...foreign,\n id: \"missing\"\n }, auth)).rejects.toThrow();\n await server.mutate.document.upsert({\n ...own,\n title: \"updated\"\n }, auth);\n await server.mutate.document.upsert({\n ...own,\n title: \"updated\"\n }, auth);\n await server.mutate.document.upsert({\n ...own,\n id: \"new\"\n }, auth);\n expect(sqlite.prepare(\"SELECT * FROM document ORDER BY workspace, id\").all()).toEqual([\n {\n ...own,\n id: \"new\"\n },\n {\n ...own,\n title: \"updated\"\n },\n foreign\n ]);\n var closedBindings = createZeroServerBindings({\n schema,\n models: {\n document: {\n mutate: mutations(document, permission, {\n rename: async function rename(ctx, input) {\n await ctx.can(permission, input);\n await ctx.tx.mutate.document.update(input);\n }\n }, {\n crud: false\n })\n }\n },\n createServerActions: function createServerActions() {\n return {};\n }\n });\n expect(Object.keys(closedBindings.mutators)).toEqual([\n \"document|rename\"\n ]);\n var closedExecutor = createSyncExecutor({\n database,\n schema,\n mutators: closedBindings.mutators,\n effects: {\n runBackground: function runBackground(promise) {\n return promise;\n },\n report: function report(error) {\n throw error;\n }\n }\n });\n for (var _i = 0, _iter = [\n \"insert\",\n \"update\",\n \"delete\",\n \"upsert\"\n ]; _i < _iter.length; _i++) {\n var action = _iter[_i];\n await expect(closedExecutor.execute(`document|${action}`, own, {\n userID: \"alice\"\n })).rejects.toThrow(`unknown mutator: document|${action}`);\n }\n await closedBindings.server(closedExecutor).mutate.document.rename({\n workspace: \"a\",\n id: \"same\",\n title: \"renamed\"\n }, auth);\n expect(sqlite.prepare(\"SELECT title FROM document WHERE workspace = ? AND id = ?\").get(\"a\", \"same\")).toEqual({\n title: \"renamed\"\n });\n } finally {\n sqlite.close();\n }\n });\n});\n//# sourceMappingURL=mutations.test.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,11 @@ async function closeCompiler(session) {
11
11
  try {
12
12
  if (session.paths.size > 0) {
13
13
  const snapshot = await session.api.updateSnapshot({
14
- closeFiles: [...session.paths]
14
+ ...(session.tsconfig ? {
15
+ closeProjects: [session.tsconfig]
16
+ } : {
17
+ closeFiles: [...session.paths]
18
+ })
15
19
  });
16
20
  await snapshot.dispose();
17
21
  }
@@ -19,7 +23,7 @@ async function closeCompiler(session) {
19
23
  await session.api.close();
20
24
  }
21
25
  }
22
- async function acquireCompiler(root, sourcePaths) {
26
+ async function acquireCompiler(root, sourcePaths, tsconfig) {
23
27
  const previousTurn = compilerTurn;
24
28
  let releaseTurn = () => {};
25
29
  compilerTurn = new Promise(resolveTurn => {
@@ -31,7 +35,7 @@ async function acquireCompiler(root, sourcePaths) {
31
35
  compilerCloseTimer = null;
32
36
  }
33
37
  if (compilerClose) await compilerClose;
34
- if (compiler && compiler.root !== root) {
38
+ if (compiler && (tsconfig || compiler.root !== root || compiler.tsconfig !== tsconfig)) {
35
39
  const previous = compiler;
36
40
  compiler = null;
37
41
  await closeCompiler(previous);
@@ -41,7 +45,8 @@ async function acquireCompiler(root, sourcePaths) {
41
45
  cwd: root
42
46
  }),
43
47
  paths: /* @__PURE__ */new Set(),
44
- root
48
+ root,
49
+ tsconfig
45
50
  };
46
51
  compiler.api.clearSourceFileCache();
47
52
  const previousPaths = compiler.paths;
@@ -49,7 +54,11 @@ async function acquireCompiler(root, sourcePaths) {
49
54
  compiler.paths = nextPaths;
50
55
  if (previousPaths.size > 0) {
51
56
  const closedSnapshot = await compiler.api.updateSnapshot({
52
- closeFiles: [...previousPaths],
57
+ ...(tsconfig ? {
58
+ closeProjects: [tsconfig]
59
+ } : {
60
+ closeFiles: [...previousPaths]
61
+ }),
53
62
  fileChanges: {
54
63
  invalidateAll: true
55
64
  }
@@ -58,7 +67,11 @@ async function acquireCompiler(root, sourcePaths) {
58
67
  compiler.api.clearSourceFileCache();
59
68
  }
60
69
  const snapshot = await compiler.api.updateSnapshot({
61
- openFiles: sourcePaths,
70
+ ...(tsconfig ? {
71
+ openProjects: [tsconfig]
72
+ } : {
73
+ openFiles: sourcePaths
74
+ }),
62
75
  fileChanges: {
63
76
  invalidateAll: true
64
77
  }
@@ -103,7 +116,7 @@ function collectTypeScriptSourcePaths(roots) {
103
116
  for (const root of roots) walk(resolve(root));
104
117
  return [...paths].sort();
105
118
  }
106
- async function createNativeTypeScriptProject(root, sourcePaths) {
119
+ async function createNativeTypeScriptProject(root, sourcePaths, options = {}) {
107
120
  if (sourcePaths.length === 0) {
108
121
  throw new Error(`[on-zero] no TypeScript source files found under ${root}`);
109
122
  }
@@ -111,18 +124,18 @@ async function createNativeTypeScriptProject(root, sourcePaths) {
111
124
  session,
112
125
  snapshot,
113
126
  releaseTurn
114
- } = await acquireCompiler(root, sourcePaths);
127
+ } = await acquireCompiler(root, sourcePaths, options.tsconfig);
115
128
  const sources = /* @__PURE__ */new Map();
116
129
  const projectsByFile = /* @__PURE__ */new Map();
117
130
  const parseErrors = /* @__PURE__ */new Set();
118
- try {
131
+ const loadSources = async () => {
119
132
  for (const path of sourcePaths) {
120
- const project = await snapshot.getDefaultProjectForFile(path);
133
+ if (sources.has(path)) continue;
134
+ const project = projectsByFile.get(path);
121
135
  if (!project) throw new Error(`[on-zero] TypeScript did not open ${path}`);
122
136
  const source = await project.program.getSourceFile(path);
123
137
  if (!source) throw new Error(`[on-zero] TypeScript did not parse ${path}`);
124
138
  sources.set(path, source);
125
- projectsByFile.set(path, project);
126
139
  try {
127
140
  parse(readFileSync(path, "utf8"), {
128
141
  plugins: ["jsx", "typescript"],
@@ -132,6 +145,22 @@ async function createNativeTypeScriptProject(root, sourcePaths) {
132
145
  parseErrors.add(path);
133
146
  }
134
147
  }
148
+ };
149
+ try {
150
+ const scopedProject = options.tsconfig ? snapshot.getProject(options.tsconfig) : void 0;
151
+ if (options.tsconfig) {
152
+ if (!scopedProject) throw new Error(`[on-zero] TypeScript did not open ${options.tsconfig}`);
153
+ const included = new Set(await scopedProject.program.getSourceFileNames());
154
+ for (const path of sourcePaths) {
155
+ if (!included.has(path)) throw new Error(`[on-zero] generation project does not include ${path}`);
156
+ }
157
+ }
158
+ for (const path of sourcePaths) {
159
+ const project = options.tsconfig ? scopedProject : await snapshot.getDefaultProjectForFile(path);
160
+ if (!project) throw new Error(`[on-zero] TypeScript did not open ${path}`);
161
+ projectsByFile.set(path, project);
162
+ }
163
+ if (!options.deferSources) await loadSources();
135
164
  } catch (error) {
136
165
  await snapshot.dispose();
137
166
  releaseCompiler(session, releaseTurn);
@@ -139,6 +168,16 @@ async function createNativeTypeScriptProject(root, sourcePaths) {
139
168
  }
140
169
  let closed = false;
141
170
  return {
171
+ configurationKey: JSON.stringify([...new Map([...projectsByFile.values()].map(p => [p.id, p])).values()].map(project => [project.configFileName, project.compilerOptions]).sort(([left], [right]) => String(left).localeCompare(String(right)))),
172
+ loadSources,
173
+ async sourceFilePaths() {
174
+ const paths = /* @__PURE__ */new Set();
175
+ const projects = new Map([...projectsByFile.values()].map(p => [p.id, p]));
176
+ for (const project of projects.values()) {
177
+ for (const path of await project.program.getSourceFileNames()) paths.add(path);
178
+ }
179
+ return [...paths].sort();
180
+ },
142
181
  projectForFile(path) {
143
182
  const project = projectsByFile.get(resolve(path));
144
183
  if (!project) throw new Error(`[on-zero] TypeScript project does not contain ${path}`);
@@ -1 +1 @@
1
- {"version":3,"names":["existsSync","readFileSync","readdirSync","resolve","parse","API","process","env","GOMAXPROCS","compiler","compilerClose","compilerCloseTimer","compilerTurn","Promise","closeCompiler","session","paths","size","snapshot","api","updateSnapshot","closeFiles","dispose","close","acquireCompiler","root","sourcePaths","previousTurn","releaseTurn","resolveTurn","clearTimeout","previous","cwd","Set","clearSourceFileCache","previousPaths","nextPaths","closedSnapshot","fileChanges","invalidateAll","openFiles","releaseCompiler","setTimeout","finally","unref","collectTypeScriptSourcePaths","roots","visited","walk","dir","has","add","entry","withFileTypes","name","path","isDirectory","isFile","endsWith","sort","createNativeTypeScriptProject","length","Error","sources","Map","projectsByFile","parseErrors","project","getDefaultProjectForFile","source","program","getSourceFile","set","plugins","sourceType","error","closed","projectForFile","get","sourceFile","hasParseErrors"],"sources":["../../src/native-typescript.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,YAAA,EAAcC,WAAA,QAAmB;AACtD,SAASC,OAAA,QAAe;AAExB,SAASC,KAAA,QAAa;AACtB,SAASC,GAAA,QAAyB;AAIlCC,OAAA,CAAQC,GAAA,CAAIC,UAAA,KAAe;AAe3B,IAAIC,QAAA,GAAmC;AACvC,IAAIC,aAAA,GAAsC;AAC1C,IAAIC,kBAAA,GAA2D;AAC/D,IAAIC,YAAA,GAAeC,OAAA,CAAQV,OAAA,CAAQ;AAEnC,eAAeW,cAAcC,OAAA,EAA0B;EACrD,IAAI;IACF,IAAIA,OAAA,CAAQC,KAAA,CAAMC,IAAA,GAAO,GAAG;MAC1B,MAAMC,QAAA,GAAW,MAAMH,OAAA,CAAQI,GAAA,CAAIC,cAAA,CAAe;QAChDC,UAAA,EAAY,CAAC,GAAGN,OAAA,CAAQC,KAAK;MAC/B,CAAC;MACD,MAAME,QAAA,CAASI,OAAA,CAAQ;IACzB;EACF,UAAE;IACA,MAAMP,OAAA,CAAQI,GAAA,CAAII,KAAA,CAAM;EAC1B;AACF;AAEA,eAAeC,gBAAgBC,IAAA,EAAcC,WAAA,EAAuB;EAClE,MAAMC,YAAA,GAAef,YAAA;EACrB,IAAIgB,WAAA,GAAcA,CAAA,KAAM,CAAC;EACzBhB,YAAA,GAAe,IAAIC,OAAA,CAAegB,WAAA,IAAgB;IAChDD,WAAA,GAAcC,WAAA;EAChB,CAAC;EACD,MAAMF,YAAA;EACN,IAAIhB,kBAAA,EAAoB;IACtBmB,YAAA,CAAanB,kBAAkB;IAC/BA,kBAAA,GAAqB;EACvB;EACA,IAAID,aAAA,EAAe,MAAMA,aAAA;EACzB,IAAID,QAAA,IAAYA,QAAA,CAASgB,IAAA,KAASA,IAAA,EAAM;IACtC,MAAMM,QAAA,GAAWtB,QAAA;IACjBA,QAAA,GAAW;IACX,MAAMK,aAAA,CAAciB,QAAQ;EAC9B;EACAtB,QAAA,KAAa;IAAEU,GAAA,EAAK,IAAId,GAAA,CAAI;MAAE2B,GAAA,EAAKP;IAAK,CAAC;IAAGT,KAAA,EAAO,mBAAIiB,GAAA,CAAI;IAAGR;EAAK;EACnEhB,QAAA,CAASU,GAAA,CAAIe,oBAAA,CAAqB;EAClC,MAAMC,aAAA,GAAgB1B,QAAA,CAASO,KAAA;EAC/B,MAAMoB,SAAA,GAAY,IAAIH,GAAA,CAAIP,WAAW;EACrCjB,QAAA,CAASO,KAAA,GAAQoB,SAAA;EACjB,IAAID,aAAA,CAAclB,IAAA,GAAO,GAAG;IAC1B,MAAMoB,cAAA,GAAiB,MAAM5B,QAAA,CAASU,GAAA,CAAIC,cAAA,CAAe;MACvDC,UAAA,EAAY,CAAC,GAAGc,aAAa;MAC7BG,WAAA,EAAa;QAAEC,aAAA,EAAe;MAAK;IACrC,CAAC;IACD,MAAMF,cAAA,CAAef,OAAA,CAAQ;IAC7Bb,QAAA,CAASU,GAAA,CAAIe,oBAAA,CAAqB;EACpC;EACA,MAAMhB,QAAA,GAAW,MAAMT,QAAA,CAASU,GAAA,CAAIC,cAAA,CAAe;IACjDoB,SAAA,EAAWd,WAAA;IACXY,WAAA,EAAa;MAAEC,aAAA,EAAe;IAAK;EACrC,CAAC;EACD9B,QAAA,CAASU,GAAA,CAAIe,oBAAA,CAAqB;EAClC,OAAO;IAAEnB,OAAA,EAASN,QAAA;IAAUS,QAAA;IAAUU;EAAY;AACpD;AAEA,SAASa,gBAAgB1B,OAAA,EAA0Ba,WAAA,EAAyB;EAC1EA,WAAA,CAAY;EACZjB,kBAAA,GAAqB+B,UAAA,CAAW,MAAM;IACpC/B,kBAAA,GAAqB;IACrB,IAAIF,QAAA,KAAaM,OAAA,EAAS;IAC1BN,QAAA,GAAW;IACXC,aAAA,GAAgBI,aAAA,CAAcC,OAAO,EAAE4B,OAAA,CAAQ,MAAM;MACnDjC,aAAA,GAAgB;IAClB,CAAC;EACH,GAAG,EAAE;EACLC,kBAAA,CAAmBiC,KAAA,GAAQ;AAC7B;AAEO,SAASC,6BAA6BC,KAAA,EAA2B;EACtE,MAAM9B,KAAA,GAAQ,mBAAIiB,GAAA,CAAY;EAC9B,MAAMc,OAAA,GAAU,mBAAId,GAAA,CAAY;EAChC,MAAMe,IAAA,GAAQC,GAAA,IAAgB;IAC5B,IAAIF,OAAA,CAAQG,GAAA,CAAID,GAAG,KAAK,CAACjD,UAAA,CAAWiD,GAAG,GAAG;IAC1CF,OAAA,CAAQI,GAAA,CAAIF,GAAG;IACf,WAAWG,KAAA,IAASlD,WAAA,CAAY+C,GAAA,EAAK;MAAEI,aAAA,EAAe;IAAK,CAAC,GAAG;MAC7D,IAAID,KAAA,CAAME,IAAA,KAAS,gBAAgB;MACnC,MAAMC,IAAA,GAAOpD,OAAA,CAAQ8C,GAAA,EAAKG,KAAA,CAAME,IAAI;MACpC,IAAIF,KAAA,CAAMI,WAAA,CAAY,GAAG;QACvBR,IAAA,CAAKO,IAAI;MACX,WACEH,KAAA,CAAMK,MAAA,CAAO,MACZL,KAAA,CAAME,IAAA,CAAKI,QAAA,CAAS,KAAK,KAAKN,KAAA,CAAME,IAAA,CAAKI,QAAA,CAAS,MAAM,IACzD;QACA1C,KAAA,CAAMmC,GAAA,CAAII,IAAI;MAChB;IACF;EACF;EACA,WAAW9B,IAAA,IAAQqB,KAAA,EAAOE,IAAA,CAAK7C,OAAA,CAAQsB,IAAI,CAAC;EAC5C,OAAO,CAAC,GAAGT,KAAK,EAAE2C,IAAA,CAAK;AACzB;AAEA,eAAsBC,8BACpBnC,IAAA,EACAC,WAAA,EACkC;EAClC,IAAIA,WAAA,CAAYmC,MAAA,KAAW,GAAG;IAC5B,MAAM,IAAIC,KAAA,CAAM,oDAAoDrC,IAAI,EAAE;EAC5E;EAEA,MAAM;IAAEV,OAAA;IAASG,QAAA;IAAUU;EAAY,IAAI,MAAMJ,eAAA,CAAgBC,IAAA,EAAMC,WAAW;EAClF,MAAMqC,OAAA,GAAU,mBAAIC,GAAA,CAAwB;EAC5C,MAAMC,cAAA,GAAiB,mBAAID,GAAA,CAAqB;EAChD,MAAME,WAAA,GAAc,mBAAIjC,GAAA,CAAY;EAEpC,IAAI;IACF,WAAWsB,IAAA,IAAQ7B,WAAA,EAAa;MAC9B,MAAMyC,OAAA,GAAU,MAAMjD,QAAA,CAASkD,wBAAA,CAAyBb,IAAI;MAC5D,IAAI,CAACY,OAAA,EAAS,MAAM,IAAIL,KAAA,CAAM,qCAAqCP,IAAI,EAAE;MACzE,MAAMc,MAAA,GAAS,MAAMF,OAAA,CAAQG,OAAA,CAAQC,aAAA,CAAchB,IAAI;MACvD,IAAI,CAACc,MAAA,EAAQ,MAAM,IAAIP,KAAA,CAAM,sCAAsCP,IAAI,EAAE;MACzEQ,OAAA,CAAQS,GAAA,CAAIjB,IAAA,EAAMc,MAAM;MACxBJ,cAAA,CAAeO,GAAA,CAAIjB,IAAA,EAAMY,OAAO;MAChC,IAAI;QACF/D,KAAA,CAAMH,YAAA,CAAasD,IAAA,EAAM,MAAM,GAAG;UAChCkB,OAAA,EAAS,CAAC,OAAO,YAAY;UAC7BC,UAAA,EAAY;QACd,CAAC;MACH,QAAQ;QACNR,WAAA,CAAYf,GAAA,CAAII,IAAI;MACtB;IACF;EACF,SAASoB,KAAA,EAAO;IACd,MAAMzD,QAAA,CAASI,OAAA,CAAQ;IACvBmB,eAAA,CAAgB1B,OAAA,EAASa,WAAW;IACpC,MAAM+C,KAAA;EACR;EAEA,IAAIC,MAAA,GAAS;EACb,OAAO;IACLC,eAAetB,IAAA,EAAM;MACnB,MAAMY,OAAA,GAAUF,cAAA,CAAea,GAAA,CAAI3E,OAAA,CAAQoD,IAAI,CAAC;MAChD,IAAI,CAACY,OAAA,EACH,MAAM,IAAIL,KAAA,CAAM,iDAAiDP,IAAI,EAAE;MACzE,OAAOY,OAAA;IACT;IACAY,WAAWxB,IAAA,EAAM;MACf,MAAMc,MAAA,GAASN,OAAA,CAAQe,GAAA,CAAI3E,OAAA,CAAQoD,IAAI,CAAC;MACxC,IAAI,CAACc,MAAA,EACH,MAAM,IAAIP,KAAA,CAAM,iDAAiDP,IAAI,EAAE;MACzE,OAAOc,MAAA;IACT;IACAW,eAAezB,IAAA,EAAM;MACnB,OAAOW,WAAA,CAAYhB,GAAA,CAAI/C,OAAA,CAAQoD,IAAI,CAAC;IACtC;IACA,MAAMhC,MAAA,EAAQ;MACZ,IAAIqD,MAAA,EAAQ;MACZA,MAAA,GAAS;MACT,MAAM1D,QAAA,CAASI,OAAA,CAAQ;MACvBmB,eAAA,CAAgB1B,OAAA,EAASa,WAAW;IACtC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["existsSync","readFileSync","readdirSync","resolve","parse","API","process","env","GOMAXPROCS","compiler","compilerClose","compilerCloseTimer","compilerTurn","Promise","closeCompiler","session","paths","size","snapshot","api","updateSnapshot","tsconfig","closeProjects","closeFiles","dispose","close","acquireCompiler","root","sourcePaths","previousTurn","releaseTurn","resolveTurn","clearTimeout","previous","cwd","Set","clearSourceFileCache","previousPaths","nextPaths","closedSnapshot","fileChanges","invalidateAll","openProjects","openFiles","releaseCompiler","setTimeout","finally","unref","collectTypeScriptSourcePaths","roots","visited","walk","dir","has","add","entry","withFileTypes","name","path","isDirectory","isFile","endsWith","sort","createNativeTypeScriptProject","options","length","Error","sources","Map","projectsByFile","parseErrors","loadSources","project","get","source","program","getSourceFile","set","plugins","sourceType","scopedProject","getProject","included","getSourceFileNames","getDefaultProjectForFile","deferSources","error","closed","configurationKey","JSON","stringify","values","map","p","id","configFileName","compilerOptions","left","right","String","localeCompare","sourceFilePaths","projects","projectForFile","sourceFile","hasParseErrors"],"sources":["../../src/native-typescript.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}