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
@@ -0,0 +1,95 @@
1
+ import { useEffect, useMemo, useRef, useSyncExternalStore } from 'react'
2
+
3
+ // zero's ArrayView settles its result status once. A changed row can repair an
4
+ // errored query, but the existing view must be rematerialized to become complete.
5
+ export class QueryErrorRecovery {
6
+ private data: string | undefined
7
+ private errored = false
8
+
9
+ changed(data: unknown, resultType: string): boolean {
10
+ if (resultType !== 'error') {
11
+ this.errored = false
12
+ this.data = undefined
13
+ return false
14
+ }
15
+ const current = JSON.stringify(data)
16
+ const changed = this.errored && current !== this.data
17
+ this.errored = true
18
+ this.data = current
19
+ return changed
20
+ }
21
+ }
22
+
23
+ type QueryFault = { name: string; args: readonly unknown[]; message: string }
24
+
25
+ // The HTTP transport reports the complete set of failed queries for a pull.
26
+ // Zero's already-complete ArrayView cannot observe a later transform error.
27
+ export class QueryFaults {
28
+ private faults = new Map<string, QueryFault>()
29
+ private listeners = new Set<() => void>()
30
+
31
+ constructor(readonly retry: () => void) {}
32
+
33
+ update(faults: readonly QueryFault[]) {
34
+ const next = new Map<string, QueryFault>()
35
+ for (const fault of faults) {
36
+ const key = JSON.stringify([fault.name, fault.args])
37
+ const old = this.faults.get(key)
38
+ next.set(key, old?.message === fault.message ? old : fault)
39
+ }
40
+ if (
41
+ next.size === this.faults.size &&
42
+ [...next].every(([key, fault]) => this.faults.get(key) === fault)
43
+ )
44
+ return
45
+ this.faults = next
46
+ for (const listener of this.listeners) listener()
47
+ }
48
+
49
+ get(key: string) {
50
+ return this.faults.get(key)
51
+ }
52
+
53
+ subscribe = (listener: () => void) => {
54
+ this.listeners.add(listener)
55
+ return () => this.listeners.delete(listener)
56
+ }
57
+ }
58
+
59
+ const noSubscribe = () => () => {}
60
+ const noSnapshot = () => undefined
61
+
62
+ export function useQueryFault(
63
+ faults: QueryFaults | undefined,
64
+ request: { query: { queryName: string }; args?: unknown },
65
+ out: readonly [unknown, { type: string; retry?: () => void }]
66
+ ) {
67
+ const key = JSON.stringify([
68
+ request.query.queryName,
69
+ request.args === undefined ? [] : [request.args],
70
+ ])
71
+ const getSnapshot = useMemo(() => () => faults?.get(key), [faults, key])
72
+ const fault = useSyncExternalStore(
73
+ faults?.subscribe ?? noSubscribe,
74
+ getSnapshot,
75
+ noSnapshot
76
+ )
77
+ const previous = useRef(false)
78
+ useEffect(() => {
79
+ if (previous.current && !fault && out[1].type === 'error') out[1].retry?.()
80
+ previous.current = !!fault
81
+ }, [fault, out])
82
+ const status = useMemo(
83
+ () =>
84
+ fault && faults
85
+ ? {
86
+ type: 'error' as const,
87
+ error: { type: 'app' as const, message: fault.message },
88
+ retry: faults.retry,
89
+ refetch: faults.retry,
90
+ }
91
+ : undefined,
92
+ [fault, faults]
93
+ )
94
+ return status ? ([out[0], status] as const) : out
95
+ }
@@ -2,12 +2,13 @@
2
2
 
3
3
  import { createBuilder, createSchema, number, string, table } from '@rocicorp/zero'
4
4
  import { count, defineAggregates, sum } from 'orez-lite/aggregate'
5
+ import { createZeroClientTransport, type HttpPullTransport } from 'orez-lite/client'
5
6
  import { act } from 'react'
6
7
  import { createRoot, type Root } from 'react-dom/client'
7
8
  import { afterEach, beforeEach, expect, test } from 'vitest'
8
9
 
9
- import { createZeroClient } from './createZeroClient'
10
10
  import { onMutationError } from './helpers/useMutation'
11
+ import { createZeroClientWithDirectQueries } from './multi'
11
12
  import { mutations } from './mutations'
12
13
 
13
14
  import type { MutatorContext } from './types'
@@ -48,7 +49,7 @@ const expenseMutations = mutations(expense, () => true, {
48
49
  })
49
50
  const categorySpendQuery = (args: { category: string }) =>
50
51
  builder.categorySpend.where('category', args.category)
51
- const client = createZeroClient({
52
+ const client = createZeroClientWithDirectQueries({
52
53
  schema,
53
54
  models: { expense: { mutate: expenseMutations } },
54
55
  groupedQueries: { expense: { categorySpendQuery } },
@@ -59,6 +60,7 @@ const client = createZeroClient({
59
60
  let container: HTMLDivElement
60
61
  let root: Root
61
62
  let stopErrorSink: () => void
63
+ let installedTransport: HttpPullTransport | undefined
62
64
  const silentLogSink = { log() {} }
63
65
 
64
66
  beforeEach(() => {
@@ -71,10 +73,193 @@ afterEach(async () => {
71
73
  const activeZero = await client.waitForZero()
72
74
  act(() => root.unmount())
73
75
  await activeZero.close()
76
+ installedTransport?.uninstall()
77
+ installedTransport = undefined
74
78
  await new Promise((resolve) => setTimeout(resolve, 0))
75
79
  stopErrorSink()
76
80
  })
77
81
 
82
+ test.each(['context', 'direct'] as const)(
83
+ 'an errored %s query rematerializes when repaired data reaches the hook',
84
+ async (mode) => {
85
+ let repaired = false
86
+ let hash = ''
87
+ const fetch = async (_input: RequestInfo | URL, init?: RequestInit) => {
88
+ const request = JSON.parse(String(init?.body))
89
+ const puts = (request.queries?.patch ?? []).filter((op: any) => op.op === 'put')
90
+ if (puts[0]) hash = puts[0].hash
91
+ return new Response(
92
+ JSON.stringify({
93
+ cookie: repaired ? 2 : 1,
94
+ lastMutationIDChanges: {},
95
+ rowsPatch: repaired
96
+ ? [
97
+ {
98
+ op: 'put',
99
+ tableName: 'categorySpend',
100
+ value: { category: 'Food', expenseCount: 1, spent: 4250 },
101
+ },
102
+ ]
103
+ : request.cookie === null
104
+ ? [{ op: 'clear' }]
105
+ : [],
106
+ ...(request.queries || repaired
107
+ ? {
108
+ gotQueries: {
109
+ version: request.queries?.version ?? 1,
110
+ patch: repaired ? [{ op: 'put', hash }] : [],
111
+ },
112
+ }
113
+ : {}),
114
+ queryErrors: repaired
115
+ ? []
116
+ : puts.map((op: any) => ({ hash: op.hash, message: 'invalid stored value' })),
117
+ }),
118
+ { headers: { 'content-type': 'application/json' } }
119
+ )
120
+ }
121
+ const plugin = createZeroClientTransport({ fetch })
122
+ const origin = `https://query-error-recovery-${mode}.orez.test`
123
+ installedTransport = plugin.install(origin)
124
+ let onError: () => void = () => {}
125
+ let onComplete: (rows: unknown) => void = () => {}
126
+ const error = new Promise<void>((resolve) => {
127
+ onError = resolve
128
+ })
129
+ const complete = new Promise<unknown>((resolve) => {
130
+ onComplete = resolve
131
+ })
132
+ function Probe() {
133
+ const useQuery = mode === 'context' ? client.useQuery : client.useQueryDirect
134
+ const [rows, status] = useQuery(categorySpendQuery, { category: 'Food' })
135
+ if (status.type === 'error') onError()
136
+ if (status.type === 'complete') onComplete(rows)
137
+ return null
138
+ }
139
+ await act(async () => {
140
+ root.render(
141
+ <client.ProvideZero
142
+ server={origin}
143
+ userID="query-recovery"
144
+ authData={{}}
145
+ logSink={silentLogSink}
146
+ transport={plugin}
147
+ >
148
+ <Probe />
149
+ </client.ProvideZero>
150
+ )
151
+ })
152
+ await act(async () => {
153
+ await error
154
+ })
155
+ repaired = true
156
+ await act(async () => {
157
+ await installedTransport?.pull()
158
+ })
159
+ let rows: unknown
160
+ await act(async () => {
161
+ rows = await complete
162
+ })
163
+ expect(rows).toEqual([
164
+ expect.objectContaining({ category: 'Food', expenseCount: 1, spent: 4250 }),
165
+ ])
166
+ }
167
+ )
168
+
169
+ test.each(['context', 'direct'] as const)(
170
+ 'a completed %s query reports later corruption and recovers after repair',
171
+ async (mode) => {
172
+ let phase: 'healthy' | 'corrupt' | 'repaired' = 'healthy'
173
+ let hash = ''
174
+ const fetch = async (_input: RequestInfo | URL, init?: RequestInit) => {
175
+ const request = JSON.parse(String(init?.body))
176
+ const puts = (request.queries?.patch ?? []).filter((op: any) => op.op === 'put')
177
+ if (puts[0]) hash = puts[0].hash
178
+ return new Response(
179
+ JSON.stringify({
180
+ cookie: phase === 'healthy' ? 1 : phase === 'corrupt' ? 2 : 3,
181
+ lastMutationIDChanges: {},
182
+ rowsPatch:
183
+ phase === 'corrupt'
184
+ ? []
185
+ : [
186
+ {
187
+ op: 'put',
188
+ tableName: 'categorySpend',
189
+ value: {
190
+ category: 'Food',
191
+ expenseCount: 1,
192
+ spent: phase === 'healthy' ? 42 : 99,
193
+ },
194
+ },
195
+ ],
196
+ ...(request.queries
197
+ ? {
198
+ gotQueries: {
199
+ version: request.queries.version,
200
+ patch: puts.map((op: any) => ({ op: 'put', hash: op.hash })),
201
+ },
202
+ }
203
+ : {}),
204
+ queryErrors:
205
+ phase === 'corrupt' ? [{ hash, message: 'invalid stored value' }] : [],
206
+ }),
207
+ { headers: { 'content-type': 'application/json' } }
208
+ )
209
+ }
210
+ const plugin = createZeroClientTransport({ fetch })
211
+ const origin = `https://query-later-error-${mode}.orez.test`
212
+ installedTransport = plugin.install(origin)
213
+ const snapshots: Array<{ type: string; spent: unknown }> = []
214
+ let onComplete: () => void = () => {}
215
+ let onRepaired: () => void = () => {}
216
+ const complete = new Promise<void>((resolve) => {
217
+ onComplete = resolve
218
+ })
219
+ const repaired = new Promise<void>((resolve) => {
220
+ onRepaired = resolve
221
+ })
222
+ function Probe() {
223
+ const useQuery = mode === 'context' ? client.useQuery : client.useQueryDirect
224
+ const [rows, status] = useQuery(categorySpendQuery, { category: 'Food' })
225
+ snapshots.push({ type: status.type, spent: rows[0]?.spent })
226
+ if (status.type === 'complete') onComplete()
227
+ if (status.type === 'complete' && rows[0]?.spent === 99) onRepaired()
228
+ return null
229
+ }
230
+ await act(async () => {
231
+ root.render(
232
+ <client.ProvideZero
233
+ server={origin}
234
+ userID="query-later"
235
+ authData={{}}
236
+ logSink={silentLogSink}
237
+ transport={plugin}
238
+ >
239
+ <Probe />
240
+ </client.ProvideZero>
241
+ )
242
+ })
243
+ await act(async () => {
244
+ await complete
245
+ })
246
+ expect(snapshots.at(-1)).toEqual({ type: 'complete', spent: 42 })
247
+ phase = 'corrupt'
248
+ await act(async () => {
249
+ await installedTransport?.pull()
250
+ })
251
+ expect(snapshots.at(-1)).toEqual({ type: 'error', spent: 42 })
252
+ phase = 'repaired'
253
+ await act(async () => {
254
+ await installedTransport?.pull()
255
+ })
256
+ await act(async () => {
257
+ await repaired
258
+ })
259
+ expect(snapshots.at(-1)).toEqual({ type: 'complete', spent: 99 })
260
+ }
261
+ )
262
+
78
263
  test('a mounted useQuery view updates after a custom mutation projects an aggregate', async () => {
79
264
  let rows: readonly { category: string; expenseCount: number; spent: number }[] = []
80
265
  function Probe() {
@@ -56,10 +56,13 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
56
56
 
57
57
  let dataDir: string
58
58
  let databaseDir: string
59
+ let tsconfig: string | undefined
59
60
 
60
61
  const runGenerate = (silent: boolean) =>
61
62
  generate({
62
63
  dir: dataDir,
64
+ config: options.config,
65
+ tsconfig,
63
66
  after: options.after,
64
67
  silent,
65
68
  force: options.force,
@@ -73,6 +76,7 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
73
76
  configResolved(config) {
74
77
  dataDir = resolve(config.root, dir)
75
78
  databaseDir = resolve(dataDir, '../database')
79
+ tsconfig = options.tsconfig ? resolve(config.root, options.tsconfig) : undefined
76
80
  },
77
81
 
78
82
  async buildStart() {
@@ -81,8 +85,13 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
81
85
 
82
86
  configureServer(server) {
83
87
  if (options.disableGenerate) return
88
+ if (tsconfig) server.watcher.add(tsconfig)
84
89
 
85
90
  const handler = async (file: string) => {
91
+ if (file === tsconfig) {
92
+ await runGenerate(false)
93
+ return
94
+ }
86
95
  if (!/\.tsx?$/.test(file)) return
87
96
  if (
88
97
  (isWithinDirectory(file, dataDir) &&
@@ -105,6 +114,7 @@ export function onZeroPlugin(options: OnZeroPluginOptions = {}): Plugin[] {
105
114
 
106
115
  configResolved(config) {
107
116
  dataDir = resolve(config.root, dir)
117
+ tsconfig = options.tsconfig ? resolve(config.root, options.tsconfig) : undefined
108
118
  },
109
119
 
110
120
  async buildStart() {
@@ -1,5 +1,6 @@
1
1
  import { useQuery as zeroUseQuery } from '@rocicorp/zero/react';
2
2
  import { type Context } from 'react';
3
+ import { type QueryFaults } from './queryErrorRecovery';
3
4
  import { type PlainQueryFn } from './resolveQuery';
4
5
  import type { AnyQueryRegistry, HumanReadable, Query, Schema as ZeroSchema, TTL } from '@rocicorp/zero';
5
6
  export type QueryControlMode = false | 'empty' | 'last-value';
@@ -21,8 +22,9 @@ export declare function parseUseQueryArgs(paramsOrOptions: any, optionsArg: any)
21
22
  params: any;
22
23
  options: any;
23
24
  };
24
- export declare function createUseQuery<Schema extends ZeroSchema>({ DisabledContext, customQueries, }: {
25
+ export declare function createUseQuery<Schema extends ZeroSchema>({ DisabledContext, customQueries, getQueryFaults, }: {
25
26
  DisabledContext: Context<QueryControlMode>;
26
27
  customQueries: AnyQueryRegistry;
28
+ getQueryFaults: (zero: object) => QueryFaults | undefined;
27
29
  }): UseQueryHook<Schema>;
28
30
  //# sourceMappingURL=createUseQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAKjE,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEhE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,MAAM,IAAI,UAAU,EACpB,GAAG,EACJ,MAAM,gBAAgB,CAAA;AAGvB,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CACtB,CAAA;AAED,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAA;AAExF,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,UAAU,IAAI;IAEpD,CAAC,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EAC5D,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,MAAM,EAAE,IAAI,EACZ,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,GAClC,WAAW,CAAC,OAAO,CAAC,CAAA;IAGvB,CAAC,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EACtD,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,GAClC,WAAW,CAAC,OAAO,CAAC,CAAA;CACxB,CAAA;AAiBD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,OAAO,GACpB,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUtC;AAGD,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;;;EAYtE;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,UAAU,EAAE,EACxD,eAAe,EACf,aAAa,GACd,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;CAChC,GAAG,YAAY,CAAC,MAAM,CAAC,CAwGvB"}
1
+ {"version":3,"file":"createUseQuery.d.ts","sourceRoot":"","sources":["../src/createUseQuery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAW,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAA0C,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAI5E,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE1F,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEhE,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,KAAK,EACL,MAAM,IAAI,UAAU,EACpB,GAAG,EACJ,MAAM,gBAAgB,CAAA;AAGvB,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAA;AAE7D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CACtB,CAAA;AAED,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,MAAM,MAAM,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAA;AAExF,YAAY,EAAE,YAAY,EAAE,CAAA;AAE5B,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,UAAU,IAAI;IAEpD,CAAC,IAAI,EAAE,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EAC5D,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,MAAM,EAAE,IAAI,EACZ,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,GAClC,WAAW,CAAC,OAAO,CAAC,CAAA;IAGvB,CAAC,MAAM,SAAS,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,EACtD,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EACtD,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,GAClC,WAAW,CAAC,OAAO,CAAC,CAAA;CACxB,CAAA;AAiBD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,OAAO,GACpB,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUtC;AAGD,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;;;EAYtE;AAED,wBAAgB,cAAc,CAAC,MAAM,SAAS,UAAU,EAAE,EACxD,eAAe,EACf,aAAa,EACb,cAAc,GACf,EAAE;IACD,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CAC1D,GAAG,YAAY,CAAC,MAAM,CAAC,CAoHvB"}
@@ -1,6 +1,7 @@
1
1
  import { type Context } from 'react';
2
2
  import { type QueryControlMode, type UseQueryHook } from './createUseQuery';
3
3
  import { type Emitter } from './helpers/emitter';
4
+ import { type QueryFaults } from './queryErrorRecovery';
4
5
  import type { AnyQueryRegistry, Schema as ZeroSchema } from '@rocicorp/zero';
5
6
  export type MaterializableZero = {
6
7
  clientID: string;
@@ -18,12 +19,13 @@ export type CreateUseQueryDirect<Schema extends ZeroSchema> = (props: {
18
19
  customQueries: AnyQueryRegistry;
19
20
  getZero: () => MaterializableZero | null;
20
21
  zeroVersion: Emitter<number>;
22
+ getQueryFaults: (zero: object) => QueryFaults | undefined;
21
23
  }) => UseQueryHook<Schema>;
22
24
  type DirectQueryError = {
23
25
  error: 'app' | 'parse';
24
26
  message?: string;
25
27
  details?: unknown;
26
28
  };
27
- export declare function createUseQueryDirect<Schema extends ZeroSchema>({ DisabledContext, customQueries, getZero, zeroVersion, }: Parameters<CreateUseQueryDirect<Schema>>[0]): UseQueryHook<Schema>;
29
+ export declare function createUseQueryDirect<Schema extends ZeroSchema>({ DisabledContext, customQueries, getZero, zeroVersion, getQueryFaults, }: Parameters<CreateUseQueryDirect<Schema>>[0]): UseQueryHook<Schema>;
28
30
  export {};
29
31
  //# sourceMappingURL=createUseQueryDirect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAKjE,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAkBvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CACT,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB;QACD,WAAW,CACT,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,GACpE,IAAI,CAAA;QACP,OAAO,IAAI,IAAI,CAAA;QACf,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE;IACpE,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAC7B,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;AAG1B,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AA2LD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,GACZ,EAAE,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CA8FpE"}
1
+ {"version":3,"file":"createUseQueryDirect.d.ts","sourceRoot":"","sources":["../src/createUseQueryDirect.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqD,KAAK,OAAO,EAAE,MAAM,OAAO,CAAA;AAEvF,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAElB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEjE,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAI1F,OAAO,KAAK,EACV,gBAAgB,EAEhB,MAAM,IAAI,UAAU,EACrB,MAAM,gBAAgB,CAAA;AAkBvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,CACT,KAAK,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GACtB;QACD,WAAW,CACT,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,KAAK,IAAI,GACpE,IAAI,CAAA;QACP,OAAO,IAAI,IAAI,CAAA;QACf,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,UAAU,IAAI,CAAC,KAAK,EAAE;IACpE,eAAe,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1C,aAAa,EAAE,gBAAgB,CAAA;IAC/B,OAAO,EAAE,MAAM,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAA;CAC1D,KAAK,YAAY,CAAC,MAAM,CAAC,CAAA;AAG1B,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAmMD,wBAAgB,oBAAoB,CAAC,MAAM,SAAS,UAAU,EAAE,EAC9D,eAAe,EACf,aAAa,EACb,OAAO,EACP,WAAW,EACX,cAAc,GACf,EAAE,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAmGpE"}
@@ -3,6 +3,7 @@ import { type Context, type ReactNode } from 'react';
3
3
  import { type QueryControlMode, type UseQueryHook } from './createUseQuery';
4
4
  import { type Emitter } from './helpers/emitter';
5
5
  import { type RecoveryGuardStorage, type ScheduleReloadContext, type ZeroLogPattern } from './helpers/recoverZeroClient';
6
+ import { QueryFaults } from './queryErrorRecovery';
6
7
  import { resolveQuery, type PlainQueryFn } from './resolveQuery';
7
8
  import type { AuthData, GenericModels, GetZeroMutators, ZeroEventsEmitter } from './types';
8
9
  import type { AnyQueryRegistry, Query, Row, ZeroOptions, Schema as ZeroSchema } from '@rocicorp/zero';
@@ -14,7 +15,7 @@ type PreloadOptions = {
14
15
  export type GroupedQueries = Record<string, Record<string, (...args: any[]) => any>>;
15
16
  export type PermissionStrategy = 'optimistic' | 'optimistic-deny' | 'optimistic-allow';
16
17
  export type ZeroProviderTransport = {
17
- install(serverURL: string): Pick<HttpPullTransport, 'subscribeLifecycle'> | undefined;
18
+ install(serverURL: string): (Pick<HttpPullTransport, 'subscribeLifecycle'> & Partial<Pick<HttpPullTransport, 'pull'>>) | undefined;
18
19
  logClassifications?: {
19
20
  benign?: readonly ZeroLogPattern[];
20
21
  };
@@ -39,6 +40,7 @@ export type DirectQueryAdapter<Schema extends ZeroSchema> = (props: {
39
40
  customQueries: AnyQueryRegistry;
40
41
  getZero: () => any;
41
42
  zeroVersion: Emitter<number>;
43
+ getQueryFaults: (zero: object) => QueryFaults | undefined;
42
44
  }) => UseQueryHook<Schema>;
43
45
  export declare function createZeroClient<Schema extends ZeroSchema, Models extends GenericModels>(options: CreateZeroClientOptions<Schema, Models>): {
44
46
  instanceName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createZeroClient.d.ts","sourceRoot":"","sources":["../src/createZeroClient.tsx"],"names":[],"mappings":"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"}
@@ -27,6 +27,8 @@ export interface GenerateOptions {
27
27
  dir: string;
28
28
  /** explicit on-zero.config.ts path; auto-discovered in `dir` when omitted */
29
29
  config?: string;
30
+ /** generation-only TypeScript project; defaults to each source file's project */
31
+ tsconfig?: string;
30
32
  /** run after generation */
31
33
  after?: string;
32
34
  /** suppress output */
@@ -57,11 +59,13 @@ export type DataMembership = {
57
59
  export declare function deriveDataMembership(options: {
58
60
  dir: string;
59
61
  config?: string;
62
+ tsconfig?: string;
60
63
  }): Promise<DataMembership>;
61
64
  export declare function generateDrizzleSchemaInputFile(options: {
62
65
  dir: string;
63
66
  schemaImportPath: string;
64
67
  config?: string;
68
+ tsconfig?: string;
65
69
  }): Promise<string>;
66
70
  export declare function generate(options: GenerateOptions): Promise<GenerateResult>;
67
71
  export declare function watch(options: WatchOptions): Promise<import("chokidar").FSWatcher>;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAoiBzF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;CACnE,CAAA;AAkCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6F3E;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CACf,MAAM,EACN;QACE,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CACF,CAAA;IACD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAkCD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,cAAc,CAAC,CAa1B;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAuFD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAOhF;AA8aD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,yCAoDhD"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAqC,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA+iBzF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACrC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,KAAK,GAAG,MAAM,CAAA;CAC5B,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAA;CACnE,CAAA;AAkCD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA6F3E;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CACf,MAAM,EACN;QACE,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CACF,CAAA;IACD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAyCD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,cAAc,CAAC,CAa1B;AAED,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlB;AAuFD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAOhF;AAgdD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,yCAqDhD"}
package/types/multi.d.ts CHANGED
@@ -23,7 +23,9 @@ type ClientMap<Instances extends Record<string, ZeroInstanceManifestEntry>> = {
23
23
  [Name in keyof Instances]: ClientFor<Instances[Name]>;
24
24
  };
25
25
  type ClientUnion<Instances extends Record<string, ZeroInstanceManifestEntry>> = ClientMap<Instances>[keyof Instances];
26
- export declare function createZeroClients<const Instances extends Record<string, ZeroInstanceManifestEntry>>(instances: Instances): {
26
+ export declare function createZeroClients<const Instances extends Record<string, ZeroInstanceManifestEntry>>(instances: Instances, options: {
27
+ inner: keyof Instances & string;
28
+ }): {
27
29
  clients: ClientMap<Instances>;
28
30
  providers: { [Name in keyof Instances]: ClientMap<Instances>[Name]["ProvideZero"]; };
29
31
  combined: import("./combineZeroClients").CombinedZeroClients<[ClientUnion<Instances>, ...ClientUnion<Instances>[]]>;
@@ -1 +1 @@
1
- {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAED,MAAM,MAAM,yBAAyB,CACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,GAAG,aAAa,IAC1C;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACjF,CAAA;AAED,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAC/D,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3D,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI;KAC3E,IAAI,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtD,CAAA;AAED,KAAK,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAC1E,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,CAAA;AAEvC,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,SAAS,EAAE,SAAS;;kBAuCZ,IAAI;;EAOb"}
1
+ {"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../src/multi.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EAExB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,cAAc,sBAAsB,CAAA;AAEpC,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,UAAU,EACzB,MAAM,SAAS,aAAa,EAE5B,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/C,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAM7D;AAED,MAAM,MAAM,yBAAyB,CACnC,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,MAAM,SAAS,aAAa,GAAG,aAAa,IAC1C;IACF,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,iBAAiB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACjF,CAAA;AAED,KAAK,SAAS,CAAC,KAAK,IAClB,KAAK,SAAS,yBAAyB,CAAC,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,GAC/D,UAAU,CAAC,OAAO,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3D,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAAI;KAC3E,IAAI,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtD,CAAA;AAED,KAAK,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,IAC1E,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,CAAA;AAEvC,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EACjE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,SAAS,GAAG,MAAM,CAAA;CAAE;;kBA4C1D,IAAI;;EAUb"}
@@ -1,11 +1,17 @@
1
1
  import { type Project } from 'typescript/unstable/async';
2
2
  import type { SourceFile } from 'typescript/unstable/ast';
3
3
  export type NativeTypeScriptProject = {
4
+ configurationKey: string;
4
5
  projectForFile(path: string): Project;
6
+ sourceFilePaths(): Promise<string[]>;
7
+ loadSources(): Promise<void>;
5
8
  sourceFile(path: string): SourceFile;
6
9
  hasParseErrors(path: string): boolean;
7
10
  close(): Promise<void>;
8
11
  };
9
12
  export declare function collectTypeScriptSourcePaths(roots: string[]): string[];
10
- export declare function createNativeTypeScriptProject(root: string, sourcePaths: string[]): Promise<NativeTypeScriptProject>;
13
+ export declare function createNativeTypeScriptProject(root: string, sourcePaths: string[], options?: {
14
+ deferSources?: boolean;
15
+ tsconfig?: string;
16
+ }): Promise<NativeTypeScriptProject>;
11
17
  //# sourceMappingURL=native-typescript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-typescript.d.ts","sourceRoot":"","sources":["../src/native-typescript.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB,CAAA;AA6ED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqBtE;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAyDlC"}
1
+ {"version":3,"file":"native-typescript.d.ts","sourceRoot":"","sources":["../src/native-typescript.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACpC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;IACpC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB,CAAA;AAqFD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAqBtE;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,uBAAuB,CAAC,CAkGlC"}
@@ -0,0 +1,33 @@
1
+ export declare class QueryErrorRecovery {
2
+ private data;
3
+ private errored;
4
+ changed(data: unknown, resultType: string): boolean;
5
+ }
6
+ type QueryFault = {
7
+ name: string;
8
+ args: readonly unknown[];
9
+ message: string;
10
+ };
11
+ export declare class QueryFaults {
12
+ readonly retry: () => void;
13
+ private faults;
14
+ private listeners;
15
+ constructor(retry: () => void);
16
+ update(faults: readonly QueryFault[]): void;
17
+ get(key: string): QueryFault | undefined;
18
+ subscribe: (listener: () => void) => () => boolean;
19
+ }
20
+ export declare function useQueryFault(faults: QueryFaults | undefined, request: {
21
+ query: {
22
+ queryName: string;
23
+ };
24
+ args?: unknown;
25
+ }, out: readonly [unknown, {
26
+ type: string;
27
+ retry?: () => void;
28
+ }]): readonly [unknown, {
29
+ type: string;
30
+ retry?: () => void;
31
+ }];
32
+ export {};
33
+ //# sourceMappingURL=queryErrorRecovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryErrorRecovery.d.ts","sourceRoot":"","sources":["../src/queryErrorRecovery.ts"],"names":[],"mappings":"AAIA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,OAAO,CAAQ;IAEvB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAYpD;AAED,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAI7E,qBAAa,WAAW;IAIV,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI;IAHtC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,SAAS,CAAwB;gBAEpB,KAAK,EAAE,MAAM,IAAI;IAEtC,MAAM,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE;IAgBpC,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,SAAS,GAAI,UAAU,MAAM,IAAI,mBAGhC;CACF;AAKD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE;IAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EACzD,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;UAA7B,MAAM;YAAU,MAAM,IAAI;GA8B3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useQuery.aggregate.zero.test.d.ts","sourceRoot":"","sources":["../src/useQuery.aggregate.zero.test.tsx"],"names":[],"mappings":"AAcA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
1
+ {"version":3,"file":"useQuery.aggregate.zero.test.d.ts","sourceRoot":"","sources":["../src/useQuery.aggregate.zero.test.tsx"],"names":[],"mappings":"AAeA,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,OAAO,GAAG,SAAS,CAAA;CAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClF,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,yCAAyC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAwCD,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CA+DxE;AAED,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAElE,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClF,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,yCAAyC;IACzC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAwCD,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,EAAE,CAyExE;AAED,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAElE,CAAA;AAED,eAAe,YAAY,CAAA"}