@astrogate/sdk 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/README.md +6 -2
  2. package/THIRD_PARTY_NOTICES.md +17 -0
  3. package/dist/browser.d.ts +85 -0
  4. package/dist/browser.js +16 -0
  5. package/dist/database-binding.d.ts +7 -0
  6. package/dist/database-binding.js +11 -0
  7. package/dist/hosted-session.d.ts +1 -0
  8. package/dist/hosted-session.js +11 -0
  9. package/dist/http.d.ts +24 -0
  10. package/dist/http.js +92 -0
  11. package/dist/inventory.d.ts +7 -0
  12. package/dist/inventory.js +18 -0
  13. package/dist/management-read.d.ts +17 -0
  14. package/dist/management-read.js +104 -0
  15. package/dist/management.d.ts +347 -0
  16. package/dist/management.js +137 -0
  17. package/dist/operator.d.ts +136 -0
  18. package/dist/operator.js +53 -0
  19. package/dist/react.d.ts +16 -0
  20. package/dist/react.js +10 -0
  21. package/dist/server.d.ts +27 -0
  22. package/dist/server.js +30 -0
  23. package/dist/services.d.ts +7 -0
  24. package/dist/services.js +53 -0
  25. package/dist/storage.d.ts +68 -0
  26. package/dist/storage.js +30 -0
  27. package/dist/tasks.d.ts +42 -0
  28. package/dist/tasks.js +24 -0
  29. package/dist/wire.gen.d.ts +7107 -0
  30. package/dist/wire.gen.js +5 -0
  31. package/native-provenance.json +15 -0
  32. package/node_modules/@instantdb/admin/LICENSE +202 -0
  33. package/node_modules/@instantdb/admin/dist/esm/index.d.ts +607 -0
  34. package/node_modules/@instantdb/admin/dist/esm/index.js +1036 -0
  35. package/node_modules/@instantdb/admin/dist/esm/polyfill.d.ts +16 -0
  36. package/node_modules/@instantdb/admin/dist/esm/polyfill.js +21 -0
  37. package/node_modules/@instantdb/admin/dist/esm/subscribe.d.ts +38 -0
  38. package/node_modules/@instantdb/admin/dist/esm/subscribe.js +301 -0
  39. package/node_modules/@instantdb/admin/dist/esm/version.d.ts +2 -0
  40. package/node_modules/@instantdb/admin/dist/esm/version.js +2 -0
  41. package/node_modules/@instantdb/admin/package.json +23 -0
  42. package/node_modules/@instantdb/core/LICENSE +202 -0
  43. package/node_modules/@instantdb/core/dist/esm/Connection.d.ts +92 -0
  44. package/node_modules/@instantdb/core/dist/esm/Connection.js +188 -0
  45. package/node_modules/@instantdb/core/dist/esm/InMemoryStorage.d.ts +10 -0
  46. package/node_modules/@instantdb/core/dist/esm/InMemoryStorage.js +25 -0
  47. package/node_modules/@instantdb/core/dist/esm/IndexedDBStorage.d.ts +17 -0
  48. package/node_modules/@instantdb/core/dist/esm/IndexedDBStorage.js +309 -0
  49. package/node_modules/@instantdb/core/dist/esm/InstantError.d.ts +6 -0
  50. package/node_modules/@instantdb/core/dist/esm/InstantError.js +23 -0
  51. package/node_modules/@instantdb/core/dist/esm/Reactor.d.ts +430 -0
  52. package/node_modules/@instantdb/core/dist/esm/Reactor.js +2369 -0
  53. package/node_modules/@instantdb/core/dist/esm/StorageAPI.d.ts +39 -0
  54. package/node_modules/@instantdb/core/dist/esm/StorageAPI.js +65 -0
  55. package/node_modules/@instantdb/core/dist/esm/Stream.d.ts +120 -0
  56. package/node_modules/@instantdb/core/dist/esm/Stream.js +811 -0
  57. package/node_modules/@instantdb/core/dist/esm/SyncTable.d.ts +144 -0
  58. package/node_modules/@instantdb/core/dist/esm/SyncTable.js +523 -0
  59. package/node_modules/@instantdb/core/dist/esm/WindowNetworkListener.d.ts +4 -0
  60. package/node_modules/@instantdb/core/dist/esm/WindowNetworkListener.js +19 -0
  61. package/node_modules/@instantdb/core/dist/esm/attrTypes.d.ts +25 -0
  62. package/node_modules/@instantdb/core/dist/esm/attrTypes.js +1 -0
  63. package/node_modules/@instantdb/core/dist/esm/authAPI.d.ts +64 -0
  64. package/node_modules/@instantdb/core/dist/esm/authAPI.js +103 -0
  65. package/node_modules/@instantdb/core/dist/esm/clientTypes.d.ts +40 -0
  66. package/node_modules/@instantdb/core/dist/esm/clientTypes.js +1 -0
  67. package/node_modules/@instantdb/core/dist/esm/coreTypes.d.ts +33 -0
  68. package/node_modules/@instantdb/core/dist/esm/coreTypes.js +1 -0
  69. package/node_modules/@instantdb/core/dist/esm/createRouteHandler.d.ts +7 -0
  70. package/node_modules/@instantdb/core/dist/esm/createRouteHandler.js +51 -0
  71. package/node_modules/@instantdb/core/dist/esm/datalog.d.ts +7 -0
  72. package/node_modules/@instantdb/core/dist/esm/datalog.js +99 -0
  73. package/node_modules/@instantdb/core/dist/esm/devtool.d.ts +3 -0
  74. package/node_modules/@instantdb/core/dist/esm/devtool.js +144 -0
  75. package/node_modules/@instantdb/core/dist/esm/framework.d.ts +80 -0
  76. package/node_modules/@instantdb/core/dist/esm/framework.js +243 -0
  77. package/node_modules/@instantdb/core/dist/esm/helperTypes.d.ts +75 -0
  78. package/node_modules/@instantdb/core/dist/esm/helperTypes.js +1 -0
  79. package/node_modules/@instantdb/core/dist/esm/index.d.ts +597 -0
  80. package/node_modules/@instantdb/core/dist/esm/index.js +649 -0
  81. package/node_modules/@instantdb/core/dist/esm/infiniteQuery.d.ts +25 -0
  82. package/node_modules/@instantdb/core/dist/esm/infiniteQuery.js +430 -0
  83. package/node_modules/@instantdb/core/dist/esm/instaml.d.ts +17 -0
  84. package/node_modules/@instantdb/core/dist/esm/instaml.js +576 -0
  85. package/node_modules/@instantdb/core/dist/esm/instaql.d.ts +12 -0
  86. package/node_modules/@instantdb/core/dist/esm/instaql.js +632 -0
  87. package/node_modules/@instantdb/core/dist/esm/instatx.d.ts +127 -0
  88. package/node_modules/@instantdb/core/dist/esm/instatx.js +93 -0
  89. package/node_modules/@instantdb/core/dist/esm/model/instaqlResult.d.ts +7 -0
  90. package/node_modules/@instantdb/core/dist/esm/model/instaqlResult.js +24 -0
  91. package/node_modules/@instantdb/core/dist/esm/parseSchemaFromJSON.d.ts +2 -0
  92. package/node_modules/@instantdb/core/dist/esm/parseSchemaFromJSON.js +142 -0
  93. package/node_modules/@instantdb/core/dist/esm/presence.d.ts +50 -0
  94. package/node_modules/@instantdb/core/dist/esm/presence.js +50 -0
  95. package/node_modules/@instantdb/core/dist/esm/presenceTypes.d.ts +9 -0
  96. package/node_modules/@instantdb/core/dist/esm/presenceTypes.js +3 -0
  97. package/node_modules/@instantdb/core/dist/esm/queryTypes.d.ts +271 -0
  98. package/node_modules/@instantdb/core/dist/esm/queryTypes.js +3 -0
  99. package/node_modules/@instantdb/core/dist/esm/queryValidation.d.ts +5 -0
  100. package/node_modules/@instantdb/core/dist/esm/queryValidation.js +287 -0
  101. package/node_modules/@instantdb/core/dist/esm/reactorTypes.d.ts +29 -0
  102. package/node_modules/@instantdb/core/dist/esm/reactorTypes.js +1 -0
  103. package/node_modules/@instantdb/core/dist/esm/routeHandlerProtocol.d.ts +19 -0
  104. package/node_modules/@instantdb/core/dist/esm/routeHandlerProtocol.js +1 -0
  105. package/node_modules/@instantdb/core/dist/esm/rulesTypes.d.ts +85 -0
  106. package/node_modules/@instantdb/core/dist/esm/rulesTypes.js +1 -0
  107. package/node_modules/@instantdb/core/dist/esm/sanityCheckQueries.d.ts +18 -0
  108. package/node_modules/@instantdb/core/dist/esm/sanityCheckQueries.js +152 -0
  109. package/node_modules/@instantdb/core/dist/esm/schema.d.ts +72 -0
  110. package/node_modules/@instantdb/core/dist/esm/schema.js +128 -0
  111. package/node_modules/@instantdb/core/dist/esm/schemaTypes.d.ts +244 -0
  112. package/node_modules/@instantdb/core/dist/esm/schemaTypes.js +106 -0
  113. package/node_modules/@instantdb/core/dist/esm/store.d.ts +89 -0
  114. package/node_modules/@instantdb/core/dist/esm/store.js +722 -0
  115. package/node_modules/@instantdb/core/dist/esm/transactionValidation.d.ts +7 -0
  116. package/node_modules/@instantdb/core/dist/esm/transactionValidation.js +130 -0
  117. package/node_modules/@instantdb/core/dist/esm/utils/Deferred.d.ts +8 -0
  118. package/node_modules/@instantdb/core/dist/esm/utils/Deferred.js +17 -0
  119. package/node_modules/@instantdb/core/dist/esm/utils/PersistedObject.d.ts +80 -0
  120. package/node_modules/@instantdb/core/dist/esm/utils/PersistedObject.js +448 -0
  121. package/node_modules/@instantdb/core/dist/esm/utils/dates.d.ts +1 -0
  122. package/node_modules/@instantdb/core/dist/esm/utils/dates.js +211 -0
  123. package/node_modules/@instantdb/core/dist/esm/utils/error.d.ts +2 -0
  124. package/node_modules/@instantdb/core/dist/esm/utils/error.js +8 -0
  125. package/node_modules/@instantdb/core/dist/esm/utils/fetch.d.ts +125 -0
  126. package/node_modules/@instantdb/core/dist/esm/utils/fetch.js +31 -0
  127. package/node_modules/@instantdb/core/dist/esm/utils/flags.d.ts +4 -0
  128. package/node_modules/@instantdb/core/dist/esm/utils/flags.js +10 -0
  129. package/node_modules/@instantdb/core/dist/esm/utils/id.d.ts +3 -0
  130. package/node_modules/@instantdb/core/dist/esm/utils/id.js +25 -0
  131. package/node_modules/@instantdb/core/dist/esm/utils/linkIndex.d.ts +7 -0
  132. package/node_modules/@instantdb/core/dist/esm/utils/linkIndex.js +17 -0
  133. package/node_modules/@instantdb/core/dist/esm/utils/log.d.ts +6 -0
  134. package/node_modules/@instantdb/core/dist/esm/utils/log.js +13 -0
  135. package/node_modules/@instantdb/core/dist/esm/utils/object.d.ts +16 -0
  136. package/node_modules/@instantdb/core/dist/esm/utils/object.js +143 -0
  137. package/node_modules/@instantdb/core/dist/esm/utils/pgtime.d.ts +197 -0
  138. package/node_modules/@instantdb/core/dist/esm/utils/pgtime.js +197 -0
  139. package/node_modules/@instantdb/core/dist/esm/utils/pick.d.ts +1 -0
  140. package/node_modules/@instantdb/core/dist/esm/utils/pick.js +9 -0
  141. package/node_modules/@instantdb/core/dist/esm/utils/strings.d.ts +1 -0
  142. package/node_modules/@instantdb/core/dist/esm/utils/strings.js +15 -0
  143. package/node_modules/@instantdb/core/dist/esm/utils/weakHash.d.ts +15 -0
  144. package/node_modules/@instantdb/core/dist/esm/utils/weakHash.js +71 -0
  145. package/node_modules/@instantdb/core/dist/esm/utils/weakHashLegacy.d.ts +7 -0
  146. package/node_modules/@instantdb/core/dist/esm/utils/weakHashLegacy.js +72 -0
  147. package/node_modules/@instantdb/core/dist/esm/version.d.ts +2 -0
  148. package/node_modules/@instantdb/core/dist/esm/version.js +2 -0
  149. package/node_modules/@instantdb/core/dist/esm/warningToggle.d.ts +2 -0
  150. package/node_modules/@instantdb/core/dist/esm/warningToggle.js +4 -0
  151. package/node_modules/@instantdb/core/package.json +20 -0
  152. package/node_modules/@instantdb/eventsource/LICENSE +22 -0
  153. package/node_modules/@instantdb/eventsource/README.md +226 -0
  154. package/node_modules/@instantdb/eventsource/dist/index.cjs +279 -0
  155. package/node_modules/@instantdb/eventsource/dist/index.cjs.map +1 -0
  156. package/node_modules/@instantdb/eventsource/dist/index.d.cts +346 -0
  157. package/node_modules/@instantdb/eventsource/dist/index.d.ts +346 -0
  158. package/node_modules/@instantdb/eventsource/dist/index.js +279 -0
  159. package/node_modules/@instantdb/eventsource/dist/index.js.map +1 -0
  160. package/node_modules/@instantdb/eventsource/package.json +128 -0
  161. package/node_modules/@instantdb/eventsource/src/EventSource.ts +614 -0
  162. package/node_modules/@instantdb/eventsource/src/errors.ts +141 -0
  163. package/node_modules/@instantdb/eventsource/src/index.ts +3 -0
  164. package/node_modules/@instantdb/eventsource/src/types.ts +164 -0
  165. package/node_modules/@instantdb/react/LICENSE +202 -0
  166. package/node_modules/@instantdb/react/dist/esm/Cursors.d.ts +18 -0
  167. package/node_modules/@instantdb/react/dist/esm/Cursors.js +103 -0
  168. package/node_modules/@instantdb/react/dist/esm/InstantReactWebDatabase.d.ts +5 -0
  169. package/node_modules/@instantdb/react/dist/esm/InstantReactWebDatabase.js +5 -0
  170. package/node_modules/@instantdb/react/dist/esm/index.d.ts +6 -0
  171. package/node_modules/@instantdb/react/dist/esm/index.js +22 -0
  172. package/node_modules/@instantdb/react/dist/esm/init.d.ts +40 -0
  173. package/node_modules/@instantdb/react/dist/esm/init.js +49 -0
  174. package/node_modules/@instantdb/react/dist/esm/next-ssr/HydrationStreamProvider.d.ts +65 -0
  175. package/node_modules/@instantdb/react/dist/esm/next-ssr/HydrationStreamProvider.js +96 -0
  176. package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantNextDatabase.d.ts +11 -0
  177. package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantNextDatabase.js +31 -0
  178. package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantSuspenseProvider.d.ts +24 -0
  179. package/node_modules/@instantdb/react/dist/esm/next-ssr/InstantSuspenseProvider.js +162 -0
  180. package/node_modules/@instantdb/react/dist/esm/next-ssr/getUserFromInstantCookie.d.ts +9 -0
  181. package/node_modules/@instantdb/react/dist/esm/next-ssr/getUserFromInstantCookie.js +16 -0
  182. package/node_modules/@instantdb/react/dist/esm/next-ssr/htmlescape.d.ts +2 -0
  183. package/node_modules/@instantdb/react/dist/esm/next-ssr/htmlescape.js +20 -0
  184. package/node_modules/@instantdb/react/dist/esm/next-ssr/index.d.ts +29 -0
  185. package/node_modules/@instantdb/react/dist/esm/next-ssr/index.js +34 -0
  186. package/node_modules/@instantdb/react/dist/esm/version.d.ts +2 -0
  187. package/node_modules/@instantdb/react/dist/esm/version.js +2 -0
  188. package/node_modules/@instantdb/react/package.json +24 -0
  189. package/node_modules/@instantdb/react-common/LICENSE +202 -0
  190. package/node_modules/@instantdb/react-common/dist/esm/InstantReactAbstractDatabase.d.ts +282 -0
  191. package/node_modules/@instantdb/react-common/dist/esm/InstantReactAbstractDatabase.js +386 -0
  192. package/node_modules/@instantdb/react-common/dist/esm/InstantReactRoom.d.ts +182 -0
  193. package/node_modules/@instantdb/react-common/dist/esm/InstantReactRoom.js +280 -0
  194. package/node_modules/@instantdb/react-common/dist/esm/index.d.ts +4 -0
  195. package/node_modules/@instantdb/react-common/dist/esm/index.js +3 -0
  196. package/node_modules/@instantdb/react-common/dist/esm/useInfiniteQuerySubscription.d.ts +27 -0
  197. package/node_modules/@instantdb/react-common/dist/esm/useInfiniteQuerySubscription.js +53 -0
  198. package/node_modules/@instantdb/react-common/dist/esm/useQuery.d.ts +6 -0
  199. package/node_modules/@instantdb/react-common/dist/esm/useQuery.js +75 -0
  200. package/node_modules/@instantdb/react-common/dist/esm/useTimeout.d.ts +4 -0
  201. package/node_modules/@instantdb/react-common/dist/esm/useTimeout.js +17 -0
  202. package/node_modules/@instantdb/react-common/dist/esm/version.d.ts +2 -0
  203. package/node_modules/@instantdb/react-common/dist/esm/version.js +2 -0
  204. package/node_modules/@instantdb/react-common/package.json +22 -0
  205. package/node_modules/@instantdb/version/LICENSE +202 -0
  206. package/node_modules/@instantdb/version/dist/esm/index.d.ts +2 -0
  207. package/node_modules/@instantdb/version/dist/esm/index.js +2 -0
  208. package/node_modules/@instantdb/version/dist/esm/version.d.ts +2 -0
  209. package/node_modules/@instantdb/version/dist/esm/version.js +5 -0
  210. package/node_modules/@instantdb/version/package.json +16 -0
  211. package/node_modules/@instantdb/webhooks/LICENSE +202 -0
  212. package/node_modules/@instantdb/webhooks/dist/esm/index.d.ts +587 -0
  213. package/node_modules/@instantdb/webhooks/dist/esm/index.js +748 -0
  214. package/node_modules/@instantdb/webhooks/package.json +18 -0
  215. package/node_modules/cookie/LICENSE +24 -0
  216. package/node_modules/cookie/README.md +295 -0
  217. package/node_modules/cookie/dist/index.d.ts +143 -0
  218. package/node_modules/cookie/dist/index.js +355 -0
  219. package/node_modules/cookie/dist/index.js.map +1 -0
  220. package/node_modules/cookie/package.json +57 -0
  221. package/node_modules/eventsource/LICENSE +22 -0
  222. package/node_modules/eventsource/README.md +252 -0
  223. package/node_modules/eventsource/dist/EventSource.d.ts +128 -0
  224. package/node_modules/eventsource/dist/EventSource.d.ts.map +1 -0
  225. package/node_modules/eventsource/dist/EventSource.js +556 -0
  226. package/node_modules/eventsource/dist/EventSource.js.map +1 -0
  227. package/node_modules/eventsource/dist/errors.d.ts +53 -0
  228. package/node_modules/eventsource/dist/errors.d.ts.map +1 -0
  229. package/node_modules/eventsource/dist/errors.js +120 -0
  230. package/node_modules/eventsource/dist/errors.js.map +1 -0
  231. package/node_modules/eventsource/dist/index.d.ts +4 -0
  232. package/node_modules/eventsource/dist/index.d.ts.map +1 -0
  233. package/node_modules/eventsource/dist/index.js +3 -0
  234. package/node_modules/eventsource/dist/index.js.map +1 -0
  235. package/node_modules/eventsource/dist/types.d.ts +156 -0
  236. package/node_modules/eventsource/dist/types.d.ts.map +1 -0
  237. package/node_modules/eventsource/dist/types.js +2 -0
  238. package/node_modules/eventsource/dist/types.js.map +1 -0
  239. package/node_modules/eventsource/node_modules/eventsource-parser/LICENSE +21 -0
  240. package/node_modules/eventsource/node_modules/eventsource-parser/README.md +177 -0
  241. package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.d.ts +35 -0
  242. package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.d.ts.map +1 -0
  243. package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.js +16 -0
  244. package/node_modules/eventsource/node_modules/eventsource-parser/dist/errors.js.map +1 -0
  245. package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.d.ts +4 -0
  246. package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.d.ts.map +1 -0
  247. package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.js +3 -0
  248. package/node_modules/eventsource/node_modules/eventsource-parser/dist/index.js.map +1 -0
  249. package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.d.ts +12 -0
  250. package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.d.ts.map +1 -0
  251. package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.js +509 -0
  252. package/node_modules/eventsource/node_modules/eventsource-parser/dist/parse.js.map +1 -0
  253. package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.d.ts +76 -0
  254. package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.d.ts.map +1 -0
  255. package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.js +59 -0
  256. package/node_modules/eventsource/node_modules/eventsource-parser/dist/stream.js.map +1 -0
  257. package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.d.ts +130 -0
  258. package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.d.ts.map +1 -0
  259. package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.js +1 -0
  260. package/node_modules/eventsource/node_modules/eventsource-parser/dist/types.js.map +1 -0
  261. package/node_modules/eventsource/node_modules/eventsource-parser/package.json +96 -0
  262. package/node_modules/eventsource/node_modules/eventsource-parser/src/errors.ts +44 -0
  263. package/node_modules/eventsource/node_modules/eventsource-parser/src/index.ts +3 -0
  264. package/node_modules/eventsource/node_modules/eventsource-parser/src/parse.ts +576 -0
  265. package/node_modules/eventsource/node_modules/eventsource-parser/src/stream.ts +118 -0
  266. package/node_modules/eventsource/node_modules/eventsource-parser/src/types.ts +138 -0
  267. package/node_modules/eventsource/package.json +103 -0
  268. package/node_modules/eventsource/src/EventSource.ts +844 -0
  269. package/node_modules/eventsource/src/errors.ts +141 -0
  270. package/node_modules/eventsource/src/index.ts +3 -0
  271. package/node_modules/eventsource/src/types.ts +166 -0
  272. package/node_modules/eventsource-parser/LICENSE +21 -0
  273. package/node_modules/eventsource-parser/README.md +157 -0
  274. package/node_modules/eventsource-parser/dist/index.cjs +177 -0
  275. package/node_modules/eventsource-parser/dist/index.cjs.map +1 -0
  276. package/node_modules/eventsource-parser/dist/index.d.cts +169 -0
  277. package/node_modules/eventsource-parser/dist/index.d.ts +169 -0
  278. package/node_modules/eventsource-parser/dist/index.js +177 -0
  279. package/node_modules/eventsource-parser/dist/index.js.map +1 -0
  280. package/node_modules/eventsource-parser/dist/stream.cjs +29 -0
  281. package/node_modules/eventsource-parser/dist/stream.cjs.map +1 -0
  282. package/node_modules/eventsource-parser/dist/stream.d.cts +134 -0
  283. package/node_modules/eventsource-parser/dist/stream.d.ts +134 -0
  284. package/node_modules/eventsource-parser/dist/stream.js +30 -0
  285. package/node_modules/eventsource-parser/dist/stream.js.map +1 -0
  286. package/node_modules/eventsource-parser/package.json +92 -0
  287. package/node_modules/eventsource-parser/src/errors.ts +44 -0
  288. package/node_modules/eventsource-parser/src/index.ts +8 -0
  289. package/node_modules/eventsource-parser/src/parse.ts +439 -0
  290. package/node_modules/eventsource-parser/src/stream.ts +107 -0
  291. package/node_modules/eventsource-parser/src/types.ts +122 -0
  292. package/node_modules/eventsource-parser/stream.js +2 -0
  293. package/node_modules/mutative/LICENSE +21 -0
  294. package/node_modules/mutative/README.md +870 -0
  295. package/node_modules/mutative/dist/apply.d.ts +31 -0
  296. package/node_modules/mutative/dist/array.d.ts +45 -0
  297. package/node_modules/mutative/dist/constant.d.ts +8 -0
  298. package/node_modules/mutative/dist/create.d.ts +46 -0
  299. package/node_modules/mutative/dist/current.d.ts +23 -0
  300. package/node_modules/mutative/dist/draft.d.ts +3 -0
  301. package/node_modules/mutative/dist/draftify.d.ts +2 -0
  302. package/node_modules/mutative/dist/error.d.ts +54 -0
  303. package/node_modules/mutative/dist/index.d.mts +1 -0
  304. package/node_modules/mutative/dist/index.d.ts +12 -0
  305. package/node_modules/mutative/dist/index.js +8 -0
  306. package/node_modules/mutative/dist/index.mjs +3 -0
  307. package/node_modules/mutative/dist/interface.d.ts +200 -0
  308. package/node_modules/mutative/dist/internal.d.ts +4 -0
  309. package/node_modules/mutative/dist/makeCreator.d.ts +54 -0
  310. package/node_modules/mutative/dist/map.d.ts +15 -0
  311. package/node_modules/mutative/dist/mutative.cjs.development.js +2126 -0
  312. package/node_modules/mutative/dist/mutative.cjs.development.js.map +1 -0
  313. package/node_modules/mutative/dist/mutative.cjs.production.min.js +2 -0
  314. package/node_modules/mutative/dist/mutative.cjs.production.min.js.map +1 -0
  315. package/node_modules/mutative/dist/mutative.esm.js +2123 -0
  316. package/node_modules/mutative/dist/mutative.esm.js.map +1 -0
  317. package/node_modules/mutative/dist/mutative.esm.mjs +2123 -0
  318. package/node_modules/mutative/dist/mutative.esm.mjs.map +1 -0
  319. package/node_modules/mutative/dist/mutative.esm.production.min.mjs +2 -0
  320. package/node_modules/mutative/dist/mutative.esm.production.min.mjs.map +1 -0
  321. package/node_modules/mutative/dist/mutative.umd.development.js +2132 -0
  322. package/node_modules/mutative/dist/mutative.umd.development.js.map +1 -0
  323. package/node_modules/mutative/dist/mutative.umd.production.min.js +2 -0
  324. package/node_modules/mutative/dist/mutative.umd.production.min.js.map +1 -0
  325. package/node_modules/mutative/dist/original.d.ts +19 -0
  326. package/node_modules/mutative/dist/patch.d.ts +2 -0
  327. package/node_modules/mutative/dist/rawReturn.d.ts +19 -0
  328. package/node_modules/mutative/dist/set.d.ts +14 -0
  329. package/node_modules/mutative/dist/unsafe.d.ts +34 -0
  330. package/node_modules/mutative/dist/utils/cast.d.ts +13 -0
  331. package/node_modules/mutative/dist/utils/copy.d.ts +5 -0
  332. package/node_modules/mutative/dist/utils/deepFreeze.d.ts +1 -0
  333. package/node_modules/mutative/dist/utils/draft.d.ts +27 -0
  334. package/node_modules/mutative/dist/utils/finalize.d.ts +13 -0
  335. package/node_modules/mutative/dist/utils/forEach.d.ts +1 -0
  336. package/node_modules/mutative/dist/utils/index.d.ts +7 -0
  337. package/node_modules/mutative/dist/utils/mark.d.ts +2 -0
  338. package/node_modules/mutative/dist/utils/marker.d.ts +5 -0
  339. package/node_modules/mutative/dist/utils/proto.d.ts +10 -0
  340. package/node_modules/mutative/package.json +142 -0
  341. package/node_modules/mutative/src/apply.ts +239 -0
  342. package/node_modules/mutative/src/array.ts +679 -0
  343. package/node_modules/mutative/src/constant.ts +17 -0
  344. package/node_modules/mutative/src/create.ts +27 -0
  345. package/node_modules/mutative/src/current.ts +206 -0
  346. package/node_modules/mutative/src/draft.ts +489 -0
  347. package/node_modules/mutative/src/draftify.ts +57 -0
  348. package/node_modules/mutative/src/error.ts +129 -0
  349. package/node_modules/mutative/src/index.ts +21 -0
  350. package/node_modules/mutative/src/interface.ts +321 -0
  351. package/node_modules/mutative/src/internal.ts +5 -0
  352. package/node_modules/mutative/src/makeCreator.ts +382 -0
  353. package/node_modules/mutative/src/map.ts +160 -0
  354. package/node_modules/mutative/src/original.ts +28 -0
  355. package/node_modules/mutative/src/patch.ts +386 -0
  356. package/node_modules/mutative/src/rawReturn.ts +41 -0
  357. package/node_modules/mutative/src/set.ts +201 -0
  358. package/node_modules/mutative/src/unsafe.ts +66 -0
  359. package/node_modules/mutative/src/utils/cast.ts +22 -0
  360. package/node_modules/mutative/src/utils/copy.ts +224 -0
  361. package/node_modules/mutative/src/utils/deepFreeze.ts +103 -0
  362. package/node_modules/mutative/src/utils/draft.ts +189 -0
  363. package/node_modules/mutative/src/utils/finalize.ts +232 -0
  364. package/node_modules/mutative/src/utils/forEach.ts +24 -0
  365. package/node_modules/mutative/src/utils/index.ts +7 -0
  366. package/node_modules/mutative/src/utils/mark.ts +11 -0
  367. package/node_modules/mutative/src/utils/marker.ts +34 -0
  368. package/node_modules/mutative/src/utils/proto.ts +38 -0
  369. package/node_modules/uuid/LICENSE.md +9 -0
  370. package/node_modules/uuid/README.md +491 -0
  371. package/node_modules/uuid/dist/index.d.ts +15 -0
  372. package/node_modules/uuid/dist/index.js +14 -0
  373. package/node_modules/uuid/dist/max.d.ts +2 -0
  374. package/node_modules/uuid/dist/max.js +1 -0
  375. package/node_modules/uuid/dist/md5.d.ts +2 -0
  376. package/node_modules/uuid/dist/md5.js +135 -0
  377. package/node_modules/uuid/dist/nil.d.ts +2 -0
  378. package/node_modules/uuid/dist/nil.js +1 -0
  379. package/node_modules/uuid/dist/parse.d.ts +3 -0
  380. package/node_modules/uuid/dist/parse.js +9 -0
  381. package/node_modules/uuid/dist/regex.d.ts +2 -0
  382. package/node_modules/uuid/dist/regex.js +1 -0
  383. package/node_modules/uuid/dist/rng.d.ts +1 -0
  384. package/node_modules/uuid/dist/rng.js +4 -0
  385. package/node_modules/uuid/dist/sha1.d.ts +2 -0
  386. package/node_modules/uuid/dist/sha1.js +70 -0
  387. package/node_modules/uuid/dist/stringify.d.ts +3 -0
  388. package/node_modules/uuid/dist/stringify.js +35 -0
  389. package/node_modules/uuid/dist/types.d.ts +22 -0
  390. package/node_modules/uuid/dist/types.js +1 -0
  391. package/node_modules/uuid/dist/uuid-bin.d.ts +1 -0
  392. package/node_modules/uuid/dist/uuid-bin.js +70 -0
  393. package/node_modules/uuid/dist/v1.d.ts +11 -0
  394. package/node_modules/uuid/dist/v1.js +87 -0
  395. package/node_modules/uuid/dist/v1ToV6.d.ts +3 -0
  396. package/node_modules/uuid/dist/v1ToV6.js +10 -0
  397. package/node_modules/uuid/dist/v3.d.ts +9 -0
  398. package/node_modules/uuid/dist/v3.js +9 -0
  399. package/node_modules/uuid/dist/v35.d.ts +7 -0
  400. package/node_modules/uuid/dist/v35.js +39 -0
  401. package/node_modules/uuid/dist/v4.d.ts +4 -0
  402. package/node_modules/uuid/dist/v4.js +29 -0
  403. package/node_modules/uuid/dist/v5.d.ts +9 -0
  404. package/node_modules/uuid/dist/v5.js +9 -0
  405. package/node_modules/uuid/dist/v6.d.ts +4 -0
  406. package/node_modules/uuid/dist/v6.js +20 -0
  407. package/node_modules/uuid/dist/v6ToV1.d.ts +2 -0
  408. package/node_modules/uuid/dist/v6ToV1.js +10 -0
  409. package/node_modules/uuid/dist/v7.d.ts +9 -0
  410. package/node_modules/uuid/dist/v7.js +68 -0
  411. package/node_modules/uuid/dist/validate.d.ts +2 -0
  412. package/node_modules/uuid/dist/validate.js +5 -0
  413. package/node_modules/uuid/dist/version.d.ts +2 -0
  414. package/node_modules/uuid/dist/version.js +8 -0
  415. package/node_modules/uuid/dist-node/bin/uuid +2 -0
  416. package/node_modules/uuid/dist-node/index.js +14 -0
  417. package/node_modules/uuid/dist-node/max.js +1 -0
  418. package/node_modules/uuid/dist-node/md5.js +11 -0
  419. package/node_modules/uuid/dist-node/nil.js +1 -0
  420. package/node_modules/uuid/dist-node/parse.js +9 -0
  421. package/node_modules/uuid/dist-node/regex.js +1 -0
  422. package/node_modules/uuid/dist-node/rng.js +4 -0
  423. package/node_modules/uuid/dist-node/sha1.js +11 -0
  424. package/node_modules/uuid/dist-node/stringify.js +35 -0
  425. package/node_modules/uuid/dist-node/types.js +1 -0
  426. package/node_modules/uuid/dist-node/uuid-bin.js +70 -0
  427. package/node_modules/uuid/dist-node/v1.js +87 -0
  428. package/node_modules/uuid/dist-node/v1ToV6.js +10 -0
  429. package/node_modules/uuid/dist-node/v3.js +9 -0
  430. package/node_modules/uuid/dist-node/v35.js +39 -0
  431. package/node_modules/uuid/dist-node/v4.js +29 -0
  432. package/node_modules/uuid/dist-node/v5.js +9 -0
  433. package/node_modules/uuid/dist-node/v6.js +20 -0
  434. package/node_modules/uuid/dist-node/v6ToV1.js +10 -0
  435. package/node_modules/uuid/dist-node/v7.js +68 -0
  436. package/node_modules/uuid/dist-node/validate.js +5 -0
  437. package/node_modules/uuid/dist-node/version.js +8 -0
  438. package/node_modules/uuid/package.json +115 -0
  439. package/package.json +80 -4
  440. package/release.json +78 -0
@@ -0,0 +1,430 @@
1
+ import { coerceQuery, QueryValidationError, } from './index.js';
2
+ import { assert } from './utils/error.js';
3
+ // Example for {order: {value: "asc"}}
4
+ //
5
+ // 0
6
+ // <------------------|------------------------------------------------------>
7
+ // <- starter sub ->
8
+ //
9
+ // Bootstrap phase: until the limit (4 in this example) items are reached, the
10
+ // starter subscription is the only subscription and it writes to the forwardChunks map with the key PRE_BOOTSTRAP_CURSOR.
11
+ //
12
+ // When the limit is reached it automatically becomes a real forward chunk and has a definite start and end.
13
+ // A new reverse chunk gets added to watch for any new items at the start of the list.
14
+ //
15
+ // 0 1 2 3
16
+ // <------------------|------------------------------------------------------>
17
+ // <- starter sub ->
18
+ //
19
+ // ↓ BECOMES ↓
20
+ //
21
+ // 0 1 2 3
22
+ // <------------------|------------------------------------------------------>
23
+ // <-reverse chunk][forward chunk ]
24
+ //
25
+ // 0 1 2 3 4
26
+ // <------------------|------------------------------------------------------>
27
+ // <-reverse chunk][forward chunk ]
28
+ // When item 4 is added, the forward chunk subscription gets updated so that
29
+ // hasNextPage is `true`. This tells the user that a new page can be loaded.
30
+ //
31
+ // User clicks: loadNextPage
32
+ // 0 1 2 3 4
33
+ // <------------------|------------------------------------------------------>
34
+ // <-reverse chunk][ frozen forward chunk ][ new forward chunk ]
35
+ //
36
+ // More numbers get added
37
+ // 0 1 2 3 4 5 6 7 8
38
+ // <------------------|------------------------------------------------------>
39
+ // <-reverse chunk][ frozen forward chunk ][ forward chunk ] ^
40
+ // hasNextPage=true^
41
+ //
42
+ //
43
+ // User clicks: loadNextPage
44
+ //
45
+ // 0 1 2 3 4 5 6 7 8
46
+ // <------------------|------------------------------------------------------>
47
+ // <-reverse chunk][ frozen forward chunk ][ frozen forward chunk ][ new chunk
48
+ //
49
+ // The reverse chunks work in the same way as the forward chunks but the order in the query is reversed.
50
+ // When a reverse chunks recieves an update it will check to see if more can be loaded and it will
51
+ // automatically freeze the chunk and add a new one. i.e. : works the same as if
52
+ // loadNextPage was automatically clicked when hasNextPage became true.
53
+ //
54
+ // Chunks are indexed by their starting point cursor, for forward chunks this is the "[" point.
55
+ // Their starting point cursor is inclusive in the query and exclusive from the following query
56
+ const makeCursorKey = (cursor) => JSON.stringify(cursor);
57
+ const makeChunkKey = (cursor, afterInclusive = false) => JSON.stringify([cursor, afterInclusive]);
58
+ const parseChunkKey = (chunkKey) => {
59
+ const [cursor, afterInclusive] = JSON.parse(chunkKey);
60
+ return { cursor, afterInclusive };
61
+ };
62
+ // Chunk sub key is used to create keys to keep track of the subscriptions
63
+ // while chunk maps are keyed by [cursor, afterInclusive], we still distinguish
64
+ // between forward and reverse to avoid clashes that can share the same key.
65
+ const chunkSubKey = (direction, cursor, afterInclusive = false) => `${direction}:${makeChunkKey(cursor, afterInclusive)}`;
66
+ const chunkHasEndCursor = (chunk) => {
67
+ return !!chunk.endCursor;
68
+ };
69
+ const readCanLoadNextPage = (forwardChunks) => {
70
+ const chunksInOrder = Array.from(forwardChunks.values());
71
+ if (chunksInOrder.length === 0)
72
+ return false;
73
+ return chunksInOrder[chunksInOrder.length - 1]?.hasMore || false;
74
+ };
75
+ const reverseOrder = (order) => {
76
+ if (!order) {
77
+ return {
78
+ serverCreatedAt: 'asc',
79
+ };
80
+ }
81
+ const key = Object.keys(order).at(0);
82
+ if (!key) {
83
+ return {
84
+ serverCreatedAt: 'asc',
85
+ };
86
+ }
87
+ return {
88
+ [key]: order[key] === 'asc' ? 'desc' : 'asc',
89
+ };
90
+ };
91
+ const resolveOrder = (order) => {
92
+ if (order && Object.keys(order).length > 0)
93
+ return order;
94
+ // serverCreatedAt: 'asc' is the implicit order in queries without an `order`
95
+ // field. We need this to be explicit, because when doing `reverse` queries, we rely
96
+ // on inverting this order.
97
+ return {
98
+ serverCreatedAt: 'asc',
99
+ };
100
+ };
101
+ const normalizeChunks = (forwardChunks, reverseChunks) => {
102
+ const chunks = [
103
+ ...Array.from(reverseChunks.values()).slice().reverse(),
104
+ ...Array.from(forwardChunks.values()),
105
+ ];
106
+ const data = [
107
+ ...Array.from(reverseChunks.values())
108
+ .slice()
109
+ .reverse()
110
+ .flatMap((chunk) => chunk.data.slice().reverse()),
111
+ ...Array.from(forwardChunks.values()).flatMap((chunk) => chunk.data),
112
+ ];
113
+ return { chunks, data };
114
+ };
115
+ const PRE_BOOTSTRAP_CURSOR = ['bootstrap', 'bootstrap', 'bootstrap', 1];
116
+ export const subscribeInfiniteQuery = (db, fullQuery, cb, opts) => {
117
+ const { entityName, entityQuery: query } = splitAndValidateQuery(fullQuery);
118
+ const pageSize = query.$?.limit || 10;
119
+ const entity = entityName;
120
+ const order = resolveOrder(query.$?.order);
121
+ const forwardChunks = new Map();
122
+ const reverseChunks = new Map();
123
+ // Keeps track of all subscriptions (besides starter sub)
124
+ const allUnsubs = new Map();
125
+ let hasKickstarted = false;
126
+ let isActive = true;
127
+ let lastReverseAdvancedChunkKey = null;
128
+ let starterUnsub = null;
129
+ const sendError = (err) => {
130
+ cb({ error: err, data: undefined, canLoadNextPage: false });
131
+ };
132
+ const pushUpdate = () => {
133
+ if (!isActive)
134
+ return;
135
+ const { chunks, data } = normalizeChunks(forwardChunks, reverseChunks);
136
+ cb({
137
+ data: { [entity]: data },
138
+ // @ts-expect-error hidden debug variable
139
+ chunks,
140
+ canLoadNextPage: readCanLoadNextPage(forwardChunks),
141
+ });
142
+ };
143
+ const setForwardChunk = (startCursor, chunk) => {
144
+ forwardChunks.set(makeChunkKey(startCursor, chunk.afterInclusive), chunk);
145
+ pushUpdate();
146
+ };
147
+ const setReverseChunk = (startCursor, chunk) => {
148
+ reverseChunks.set(makeChunkKey(startCursor), chunk);
149
+ maybeAdvanceReverse();
150
+ pushUpdate();
151
+ };
152
+ const freezeReverse = (chunkKey, chunk) => {
153
+ const { cursor: startCursor } = parseChunkKey(chunkKey);
154
+ const currentSub = allUnsubs.get(chunkSubKey('reverse', startCursor));
155
+ currentSub?.();
156
+ const nextSub = db.subscribeQuery({
157
+ [entity]: {
158
+ ...query,
159
+ $: {
160
+ after: startCursor,
161
+ before: chunk.endCursor,
162
+ beforeInclusive: true,
163
+ where: query.$?.where,
164
+ fields: query.$?.fields,
165
+ order: reverseOrder(order),
166
+ },
167
+ },
168
+ }, (frozenData) => {
169
+ if (frozenData.error) {
170
+ return sendError(frozenData.error);
171
+ }
172
+ const rows = frozenData.data[entity];
173
+ const pageInfo = frozenData.pageInfo[entity];
174
+ assert(rows && pageInfo, 'Expected query subscription to contain rows and pageInfo');
175
+ setReverseChunk(startCursor, {
176
+ data: rows,
177
+ status: 'frozen',
178
+ hasMore: pageInfo.hasNextPage,
179
+ endCursor: pageInfo.endCursor,
180
+ });
181
+ }, opts);
182
+ allUnsubs.set(chunkSubKey('reverse', startCursor), nextSub);
183
+ };
184
+ const pushNewReverse = (startCursor) => {
185
+ const querySub = db.subscribeQuery({
186
+ [entity]: {
187
+ ...query,
188
+ $: {
189
+ limit: pageSize,
190
+ after: startCursor,
191
+ where: query.$?.where,
192
+ fields: query.$?.fields,
193
+ order: reverseOrder(order),
194
+ },
195
+ },
196
+ }, (windowData) => {
197
+ if (windowData.error) {
198
+ return sendError(windowData.error);
199
+ }
200
+ const rows = windowData.data[entity];
201
+ const pageInfo = windowData.pageInfo[entity];
202
+ assert(rows && pageInfo, 'Expected rows and pageInfo');
203
+ setReverseChunk(startCursor, {
204
+ data: rows,
205
+ status: 'bootstrapping',
206
+ hasMore: pageInfo.hasNextPage,
207
+ endCursor: pageInfo.endCursor,
208
+ });
209
+ }, opts);
210
+ allUnsubs.set(chunkSubKey('reverse', startCursor), querySub);
211
+ };
212
+ const pushNewForward = (startCursor, afterInclusive = false) => {
213
+ const querySub = db.subscribeQuery({
214
+ [entity]: {
215
+ ...query,
216
+ $: {
217
+ limit: pageSize,
218
+ after: startCursor,
219
+ afterInclusive,
220
+ where: query.$?.where,
221
+ fields: query.$?.fields,
222
+ order,
223
+ },
224
+ },
225
+ }, (windowData) => {
226
+ if (windowData.error) {
227
+ return sendError(windowData.error);
228
+ }
229
+ const rows = windowData.data[entity];
230
+ const pageInfo = windowData.pageInfo[entity];
231
+ assert(rows && pageInfo, 'Page info and rows');
232
+ setForwardChunk(startCursor, {
233
+ data: rows,
234
+ status: 'bootstrapping',
235
+ hasMore: pageInfo.hasNextPage,
236
+ endCursor: pageInfo.endCursor,
237
+ afterInclusive,
238
+ });
239
+ }, opts);
240
+ allUnsubs.set(chunkSubKey('forward', startCursor, afterInclusive), querySub);
241
+ };
242
+ const freezeForward = (startCursor, afterInclusive = false) => {
243
+ const key = makeChunkKey(startCursor, afterInclusive);
244
+ const currentSub = allUnsubs.get(chunkSubKey('forward', startCursor, afterInclusive));
245
+ currentSub?.();
246
+ const chunk = forwardChunks.get(key);
247
+ if (!chunk?.endCursor)
248
+ return;
249
+ const nextSub = db.subscribeQuery({
250
+ [entity]: {
251
+ ...query,
252
+ $: {
253
+ after: startCursor,
254
+ afterInclusive: chunk.afterInclusive,
255
+ before: chunk.endCursor,
256
+ beforeInclusive: true,
257
+ where: query.$?.where,
258
+ fields: query.$?.fields,
259
+ order,
260
+ },
261
+ },
262
+ }, (frozenData) => {
263
+ if (frozenData.error) {
264
+ return sendError(frozenData.error);
265
+ }
266
+ const rows = frozenData.data[entity];
267
+ const pageInfo = frozenData.pageInfo[entity];
268
+ assert(rows && pageInfo, 'Expected rows and pageInfo');
269
+ setForwardChunk(startCursor, {
270
+ data: rows,
271
+ status: 'frozen',
272
+ hasMore: pageInfo.hasNextPage,
273
+ endCursor: pageInfo.endCursor,
274
+ afterInclusive: chunk.afterInclusive,
275
+ });
276
+ }, opts);
277
+ allUnsubs.set(chunkSubKey('forward', startCursor, afterInclusive), nextSub);
278
+ };
279
+ // Consider order: {val: "asc"} with pageItems = 4
280
+ // A reverse chunk captures all the new items coming in before us.
281
+ // If we hit 4 then we freeze the current chunk and create a new reverse chunk
282
+ const maybeAdvanceReverse = () => {
283
+ const tailEntry = Array.from(reverseChunks.entries()).at(-1);
284
+ if (!tailEntry)
285
+ return;
286
+ const [chunkKey, chunk] = tailEntry;
287
+ // If a chunk has more, then it must have an endCursor
288
+ if (!chunk?.hasMore)
289
+ return;
290
+ if (!chunkHasEndCursor(chunk))
291
+ return;
292
+ // maybeAdvanceReverse can run multiple times if multiple changes are made
293
+ // to the reverse chunk
294
+ // This prevents adding the same new reverse frame twice
295
+ const advanceKey = `${chunkKey}:${makeCursorKey(chunk.endCursor)}`;
296
+ if (advanceKey == lastReverseAdvancedChunkKey)
297
+ return;
298
+ lastReverseAdvancedChunkKey = advanceKey;
299
+ freezeReverse(chunkKey, chunk);
300
+ pushNewReverse(chunk.endCursor);
301
+ };
302
+ const loadNextPage = () => {
303
+ const tailEntry = Array.from(forwardChunks.entries()).at(-1);
304
+ if (!tailEntry)
305
+ return;
306
+ const [chunkKey, chunk] = tailEntry;
307
+ // If the chunk has more items after it, it must have an end cursor, and we can
308
+ // load more items
309
+ // if (!chunk?.hasMore) return;
310
+ if (!chunk.endCursor)
311
+ return;
312
+ const { cursor: startCursor, afterInclusive } = parseChunkKey(chunkKey);
313
+ freezeForward(startCursor, afterInclusive);
314
+ pushNewForward(chunk.endCursor);
315
+ };
316
+ starterUnsub = db.subscribeQuery({
317
+ [entity]: {
318
+ ...query,
319
+ $: {
320
+ limit: pageSize,
321
+ where: query.$?.where,
322
+ fields: query.$?.fields,
323
+ order,
324
+ },
325
+ },
326
+ }, async (starterData) => {
327
+ if (hasKickstarted)
328
+ return;
329
+ if (starterData.error) {
330
+ return sendError(starterData.error);
331
+ }
332
+ const pageInfo = starterData.pageInfo[entity];
333
+ const rows = starterData?.data?.[entity];
334
+ assert(rows && pageInfo, 'Expected rows and pageInfo');
335
+ if (rows.length < pageSize) {
336
+ // If the rows are less than the page size, then we don't need to
337
+ // create forward and reverse chunks.
338
+ // We just treat the starter query as a forward chunk
339
+ setForwardChunk(PRE_BOOTSTRAP_CURSOR, {
340
+ data: rows,
341
+ status: 'pre-bootstrap',
342
+ });
343
+ return;
344
+ }
345
+ // Consider a query with no items; the server will return a result with
346
+ // no start cursor. If we add {pageSize} optimistic updates we can
347
+ // get here and still have no startCursor.
348
+ // For now we treat the data we currently have like a pre boostrap
349
+ // state.
350
+ const initialForwardCursor = pageInfo.startCursor;
351
+ if (!initialForwardCursor) {
352
+ setForwardChunk(PRE_BOOTSTRAP_CURSOR, {
353
+ data: rows,
354
+ status: 'pre-bootstrap',
355
+ });
356
+ return;
357
+ }
358
+ forwardChunks.delete(makeChunkKey(PRE_BOOTSTRAP_CURSOR));
359
+ pushNewForward(initialForwardCursor, true);
360
+ pushNewReverse(pageInfo.startCursor);
361
+ hasKickstarted = true;
362
+ }, opts);
363
+ const unsubscribe = () => {
364
+ if (!isActive)
365
+ return;
366
+ isActive = false;
367
+ starterUnsub?.();
368
+ starterUnsub = null;
369
+ for (const unsub of allUnsubs.values()) {
370
+ unsub?.();
371
+ }
372
+ allUnsubs.clear();
373
+ };
374
+ return {
375
+ unsubscribe,
376
+ loadNextPage,
377
+ };
378
+ };
379
+ export const getInfiniteQueryInitialSnapshot = (db, fullQuery, opts) => {
380
+ if (!fullQuery) {
381
+ return {
382
+ canLoadNextPage: false,
383
+ data: undefined,
384
+ error: undefined,
385
+ };
386
+ }
387
+ const { entityName, entityQuery } = splitAndValidateQuery(fullQuery);
388
+ const pageSize = entityQuery.$?.limit || 10;
389
+ const order = resolveOrder(entityQuery.$?.order);
390
+ let coercedQuery = fullQuery
391
+ ? coerceQuery({
392
+ [entityName]: {
393
+ ...entityQuery,
394
+ $: {
395
+ limit: pageSize,
396
+ where: entityQuery.$?.where,
397
+ fields: entityQuery.$?.fields,
398
+ order,
399
+ },
400
+ },
401
+ })
402
+ : null;
403
+ if (opts && 'ruleParams' in opts) {
404
+ coercedQuery = {
405
+ $$ruleParams: opts.ruleParams,
406
+ ...coercedQuery,
407
+ };
408
+ }
409
+ const queryResult = db._reactor.getPreviousResult(coercedQuery);
410
+ return {
411
+ canLoadNextPage: false,
412
+ data: queryResult?.data || undefined,
413
+ error: undefined,
414
+ };
415
+ };
416
+ /**
417
+ * @throws QueryValidationError
418
+ * @param fullQuery a ValidQuery with one key (entity)
419
+ */
420
+ const splitAndValidateQuery = (fullQuery) => {
421
+ const entityNames = Object.keys(fullQuery);
422
+ if (entityNames.length !== 1) {
423
+ throw new QueryValidationError('subscribeInfiniteQuery expects exactly one entity');
424
+ }
425
+ const [entityName, entityQuery] = Object.entries(fullQuery)[0];
426
+ if (!entityName || !entityQuery) {
427
+ throw new QueryValidationError('No query provided for infinite query');
428
+ }
429
+ return { entityName, entityQuery };
430
+ };
@@ -0,0 +1,17 @@
1
+ import { AttrsStore, Store } from './store.ts';
2
+ import { IContainEntitiesAndLinks } from './schemaTypes.ts';
3
+ export type AttrMapping = {
4
+ attrIdMap: Record<string, string>;
5
+ refSwapAttrIds: Set<string>;
6
+ };
7
+ type TXStep = any[];
8
+ export declare function rewriteStep(attrMapping: AttrMapping, txStep: TXStep): TXStep;
9
+ type Ctx = {
10
+ stores?: (Store | undefined)[];
11
+ attrsStore: AttrsStore;
12
+ schema?: Schema;
13
+ useDateObjects?: boolean | null;
14
+ };
15
+ type Schema = IContainEntitiesAndLinks<any, any>;
16
+ export declare function transform(ctx: Ctx, inputChunks: any): any[][];
17
+ export {};