@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,92 @@
1
+ export interface EventSourceType {
2
+ readonly url: string;
3
+ readonly readyState: number;
4
+ onopen: ((this: EventSourceType, ev: Event) => any) | null;
5
+ onmessage: ((this: EventSourceType, ev: MessageEvent) => any) | null;
6
+ onerror: ((this: EventSourceType, ev: Event) => any) | null;
7
+ close(): void;
8
+ }
9
+ export interface EventSourceConstructor {
10
+ OPEN: number;
11
+ CONNECTING: number;
12
+ CLOSED: number;
13
+ new (url: string): EventSourceType;
14
+ }
15
+ type Conn = EventSourceType | WebSocket;
16
+ type OpenEvent<T extends Conn> = {
17
+ target: Connection<T>;
18
+ };
19
+ type MessageData = {
20
+ op: string;
21
+ [key: string]: any;
22
+ };
23
+ type SendMessageData = {
24
+ 'client-event-id': string;
25
+ [key: string]: any;
26
+ };
27
+ type MsgEvent<T extends Conn> = {
28
+ target: Connection<T>;
29
+ message: MessageData | MessageData[];
30
+ };
31
+ type CloseEvent<T extends Conn> = {
32
+ target: Connection<T>;
33
+ };
34
+ interface ErrorEvent<T extends Conn> {
35
+ target: Connection<T>;
36
+ }
37
+ export type TransportType = 'ws' | 'sse';
38
+ export interface Connection<T extends Conn> {
39
+ conn: T;
40
+ type: 'ws' | 'sse';
41
+ id: string;
42
+ close(): void;
43
+ isOpen(): boolean;
44
+ isConnecting(): boolean;
45
+ send(msg: SendMessageData): void;
46
+ onopen: ((event: OpenEvent<T>) => void) | null;
47
+ onmessage: ((event: MsgEvent<T>) => void) | null;
48
+ onclose: ((event: CloseEvent<T>) => void) | null;
49
+ onerror: ((event: ErrorEvent<T>) => void) | null;
50
+ }
51
+ export declare class WSConnection implements Connection<WebSocket> {
52
+ type: TransportType;
53
+ conn: WebSocket;
54
+ id: string;
55
+ onopen: (event: OpenEvent<WebSocket>) => void;
56
+ onmessage: (event: MsgEvent<WebSocket>) => void;
57
+ onclose: (event: CloseEvent<WebSocket>) => void;
58
+ onerror: (event: ErrorEvent<WebSocket>) => void;
59
+ constructor(url: string);
60
+ close(): void;
61
+ isOpen(): boolean;
62
+ isConnecting(): boolean;
63
+ send(msg: SendMessageData): void;
64
+ }
65
+ export declare class SSEConnection implements Connection<EventSourceType> {
66
+ type: TransportType;
67
+ private initParams;
68
+ private sendQueue;
69
+ private sendPromise;
70
+ private closeFired;
71
+ private sseInitTimeout;
72
+ private ES;
73
+ private messageUrl;
74
+ conn: EventSourceType;
75
+ url: string;
76
+ id: string;
77
+ onopen: (event: OpenEvent<EventSourceType>) => void;
78
+ onmessage: (event: MsgEvent<EventSourceType>) => void;
79
+ onclose: (event: CloseEvent<EventSourceType>) => void;
80
+ onerror: (event: ErrorEvent<EventSourceType>) => void;
81
+ constructor(ES: EventSourceConstructor, url: string, messageUrl?: string);
82
+ private handleMessage;
83
+ private handleError;
84
+ private handleClose;
85
+ private postMessages;
86
+ private flushQueue;
87
+ send(msg: SendMessageData): void;
88
+ isOpen(): boolean;
89
+ isConnecting(): boolean;
90
+ close(): void;
91
+ }
92
+ export {};
@@ -0,0 +1,188 @@
1
+ let _connId = 0;
2
+ export class WSConnection {
3
+ type = 'ws';
4
+ conn;
5
+ id;
6
+ onopen;
7
+ onmessage;
8
+ onclose;
9
+ onerror;
10
+ constructor(url) {
11
+ this.id = `${this.type}_${_connId++}`;
12
+ this.conn = new WebSocket(url);
13
+ this.conn.onopen = (_e) => {
14
+ if (this.onopen) {
15
+ this.onopen({ target: this });
16
+ }
17
+ };
18
+ this.conn.onmessage = (e) => {
19
+ if (this.onmessage) {
20
+ this.onmessage({
21
+ target: this,
22
+ message: JSON.parse(e.data.toString()),
23
+ });
24
+ }
25
+ };
26
+ this.conn.onclose = (_e) => {
27
+ if (this.onclose) {
28
+ this.onclose({ target: this });
29
+ }
30
+ };
31
+ this.conn.onerror = (_e) => {
32
+ if (this.onerror) {
33
+ this.onerror({ target: this });
34
+ }
35
+ };
36
+ }
37
+ close() {
38
+ this.conn.close();
39
+ }
40
+ isOpen() {
41
+ return this.conn.readyState === (WebSocket.OPEN ?? 1);
42
+ }
43
+ isConnecting() {
44
+ return this.conn.readyState === (WebSocket.CONNECTING ?? 0);
45
+ }
46
+ send(msg) {
47
+ return this.conn.send(JSON.stringify(msg));
48
+ }
49
+ }
50
+ export class SSEConnection {
51
+ type = 'sse';
52
+ initParams = null;
53
+ sendQueue = [];
54
+ sendPromise;
55
+ closeFired = false;
56
+ sseInitTimeout = undefined;
57
+ ES;
58
+ messageUrl;
59
+ conn;
60
+ url;
61
+ id;
62
+ onopen;
63
+ onmessage;
64
+ onclose;
65
+ onerror;
66
+ constructor(ES, url, messageUrl) {
67
+ this.id = `${this.type}_${_connId++}`;
68
+ this.url = url;
69
+ this.messageUrl = messageUrl || this.url;
70
+ this.ES = ES;
71
+ this.conn = new ES(url);
72
+ // Close the connection if we didn't get an init within 10 seconds
73
+ this.sseInitTimeout = setTimeout(() => {
74
+ if (!this.initParams) {
75
+ this.handleError();
76
+ }
77
+ }, 10000);
78
+ this.conn.onmessage = (e) => {
79
+ const message = JSON.parse(e.data);
80
+ if (Array.isArray(message)) {
81
+ for (const msg of message) {
82
+ this.handleMessage(msg);
83
+ }
84
+ }
85
+ else {
86
+ this.handleMessage(message);
87
+ }
88
+ };
89
+ this.conn.onerror = (e) => {
90
+ this.handleError();
91
+ };
92
+ }
93
+ handleMessage(msg) {
94
+ if (msg.op === 'sse-init') {
95
+ this.initParams = {
96
+ machineId: msg['machine-id'],
97
+ sessionId: msg['session-id'],
98
+ sseToken: msg['sse-token'],
99
+ };
100
+ if (this.onopen) {
101
+ this.onopen({ target: this });
102
+ }
103
+ clearTimeout(this.sseInitTimeout);
104
+ return;
105
+ }
106
+ if (this.onmessage) {
107
+ this.onmessage({
108
+ target: this,
109
+ message: msg,
110
+ });
111
+ }
112
+ }
113
+ // Runs the onerror and closes the connection
114
+ handleError() {
115
+ try {
116
+ if (this.onerror) {
117
+ this.onerror({ target: this });
118
+ }
119
+ }
120
+ finally {
121
+ this.handleClose();
122
+ }
123
+ }
124
+ handleClose() {
125
+ this.conn.close();
126
+ if (this.onclose && !this.closeFired) {
127
+ this.closeFired = true;
128
+ this.onclose({ target: this });
129
+ }
130
+ }
131
+ async postMessages(messages) {
132
+ // TODO(dww): Create a connection with chunked encoding so we can
133
+ // send multiple messages over one request
134
+ try {
135
+ const resp = await fetch(this.messageUrl, {
136
+ method: 'POST',
137
+ headers: { 'Content-Type': 'application/json' },
138
+ body: JSON.stringify({
139
+ machine_id: this.initParams?.machineId,
140
+ session_id: this.initParams?.sessionId,
141
+ sse_token: this.initParams?.sseToken,
142
+ messages,
143
+ }),
144
+ });
145
+ if (!resp.ok) {
146
+ this.handleError();
147
+ }
148
+ }
149
+ catch (e) {
150
+ this.handleError();
151
+ }
152
+ }
153
+ async flushQueue() {
154
+ if (this.sendPromise || !this.sendQueue.length)
155
+ return;
156
+ const messages = this.sendQueue;
157
+ this.sendQueue = [];
158
+ const sendPromise = this.postMessages(messages);
159
+ this.sendPromise = sendPromise;
160
+ sendPromise.then(() => {
161
+ this.sendPromise = null;
162
+ this.flushQueue();
163
+ });
164
+ }
165
+ send(msg) {
166
+ if (!this.isOpen() || !this.initParams) {
167
+ if (this.isConnecting()) {
168
+ throw new Error(`Failed to execute 'send' on 'EventSource': Still in CONNECTING state.`);
169
+ }
170
+ if (this.conn.readyState === this.ES.CLOSED) {
171
+ throw new Error(`EventSource is already in CLOSING or CLOSED state.`);
172
+ }
173
+ throw new Error(`EventSource is in invalid state.`);
174
+ }
175
+ this.sendQueue.push(msg);
176
+ this.flushQueue();
177
+ }
178
+ isOpen() {
179
+ return this.conn.readyState === this.ES.OPEN && this.initParams !== null;
180
+ }
181
+ isConnecting() {
182
+ return (this.conn.readyState === this.ES.CONNECTING ||
183
+ (this.conn.readyState === this.ES.OPEN && this.initParams === null));
184
+ }
185
+ close() {
186
+ this.handleClose();
187
+ }
188
+ }
@@ -0,0 +1,10 @@
1
+ import { StoreInterface, StoreInterfaceStoreName } from './utils/PersistedObject.js';
2
+ export default class InMemoryStore extends StoreInterface {
3
+ private store;
4
+ constructor(appId: string, dbName: StoreInterfaceStoreName);
5
+ getItem(k: any): Promise<any>;
6
+ setItem(k: any, v: any): Promise<void>;
7
+ getAllKeys(): Promise<string[]>;
8
+ multiSet(keyValuePairs: Array<[string, any]>): Promise<void>;
9
+ removeItem(key: string): Promise<void>;
10
+ }
@@ -0,0 +1,25 @@
1
+ import { StoreInterface, } from './utils/PersistedObject.js';
2
+ export default class InMemoryStore extends StoreInterface {
3
+ store;
4
+ constructor(appId, dbName) {
5
+ super(appId, dbName);
6
+ this.store = new Map();
7
+ }
8
+ async getItem(k) {
9
+ return this.store.get(k) ?? null;
10
+ }
11
+ async setItem(k, v) {
12
+ this.store.set(k, v);
13
+ }
14
+ async getAllKeys() {
15
+ return [...this.store.keys()];
16
+ }
17
+ async multiSet(keyValuePairs) {
18
+ for (const [k, v] of keyValuePairs) {
19
+ this.setItem(k, v);
20
+ }
21
+ }
22
+ async removeItem(key) {
23
+ this.store.delete(key);
24
+ }
25
+ }
@@ -0,0 +1,17 @@
1
+ import { StoreInterface, StoreInterfaceStoreName } from './utils/PersistedObject.ts';
2
+ export default class IndexedDBStorage extends StoreInterface {
3
+ dbName: string;
4
+ _storeName: StoreInterfaceStoreName;
5
+ _appId: string;
6
+ _prefix: string;
7
+ _dbPromise: Promise<IDBDatabase>;
8
+ constructor(appId: string, storeName: StoreInterfaceStoreName);
9
+ _init(): Promise<IDBDatabase>;
10
+ _upgradeStore(event: IDBVersionChangeEvent): void;
11
+ _withRetry<T>(fn: (db: IDBDatabase) => Promise<T>): Promise<T>;
12
+ getItem(k: string): Promise<any>;
13
+ setItem(k: string, v: any): Promise<void>;
14
+ multiSet(keyValuePairs: Array<[string, any]>): Promise<void>;
15
+ removeItem(k: string): Promise<void>;
16
+ getAllKeys(): Promise<string[]>;
17
+ }
@@ -0,0 +1,309 @@
1
+ import { META_KEY, StoreInterface, } from './utils/PersistedObject.js';
2
+ // Any time these are updates to the data format or new stores are added,
3
+ // the version must be updated.
4
+ // onupgradeneeded will be called, which is where you can
5
+ // move objects from one idb to another.
6
+ // We create a new IDB for each version change instead of
7
+ // using their built-in versioning because they have no ability
8
+ // to roll back and if multiple tabs are active, then you'll just
9
+ // be stuck.
10
+ const version = 6;
11
+ const storeNames = ['kv', 'querySubs', 'syncSubs'];
12
+ const _exhaustiveCheck = null;
13
+ function logErrorCb(source) {
14
+ return function logError(event) {
15
+ console.error('Error in IndexedDB event', { source, event });
16
+ };
17
+ }
18
+ async function existingDb(name) {
19
+ return new Promise((resolve) => {
20
+ const request = indexedDB.open(name);
21
+ request.onerror = (_event) => {
22
+ resolve(null);
23
+ };
24
+ request.onsuccess = (event) => {
25
+ const target = event.target;
26
+ const db = target.result;
27
+ resolve(db);
28
+ };
29
+ request.onupgradeneeded = (event) => {
30
+ const target = event.target;
31
+ target.transaction?.abort();
32
+ resolve(null);
33
+ };
34
+ });
35
+ }
36
+ async function upgradeQuerySubs5To6(hash, value, querySubStore) {
37
+ const subs =
38
+ // Backwards compatibility for older versions where we JSON.stringified before storing
39
+ typeof value === 'string' ? JSON.parse(value) : value;
40
+ if (!subs) {
41
+ return;
42
+ }
43
+ const putReqs = new Set();
44
+ return new Promise((resolve, reject) => {
45
+ const objects = {};
46
+ for (const [hash, v] of Object.entries(subs)) {
47
+ const value = typeof v === 'string' ? JSON.parse(v) : v;
48
+ if (value.lastAccessed) {
49
+ const objectMeta = {
50
+ createdAt: value.lastAccessed,
51
+ updatedAt: value.lastAccessed,
52
+ size: value.result?.store?.triples?.length ?? 0,
53
+ };
54
+ objects[hash] = objectMeta;
55
+ }
56
+ const putReq = querySubStore.put(value, hash);
57
+ putReqs.add(putReq);
58
+ }
59
+ const meta = { objects };
60
+ const metaPutReq = querySubStore.put(meta, META_KEY);
61
+ putReqs.add(metaPutReq);
62
+ for (const r of putReqs) {
63
+ r.onsuccess = () => {
64
+ putReqs.delete(r);
65
+ if (putReqs.size === 0) {
66
+ resolve();
67
+ }
68
+ };
69
+ r.onerror = (event) => {
70
+ logErrorCb(`Move ${hash} to querySubs store failed`);
71
+ reject(event);
72
+ };
73
+ }
74
+ });
75
+ }
76
+ async function moveKvEntry5To6(k, value, kvStore) {
77
+ const request = kvStore.put(value, k);
78
+ return new Promise((resolve, reject) => {
79
+ request.onsuccess = () => resolve();
80
+ request.onerror = (event) => reject(event);
81
+ });
82
+ }
83
+ async function upgrade5To6(appId, v6Db) {
84
+ const v5db = await existingDb(`instant_${appId}_5`);
85
+ if (!v5db) {
86
+ return;
87
+ }
88
+ const data = await new Promise((resolve, reject) => {
89
+ const v5Tx = v5db.transaction(['kv'], 'readonly');
90
+ const objectStore = v5Tx.objectStore('kv');
91
+ const cursorReq = objectStore.openCursor();
92
+ cursorReq.onerror = (event) => {
93
+ reject(event);
94
+ };
95
+ const data = [];
96
+ cursorReq.onsuccess = () => {
97
+ const cursor = cursorReq.result;
98
+ if (cursor) {
99
+ const key = cursor.key;
100
+ const value = cursor.value;
101
+ data.push([key, value]);
102
+ cursor.continue();
103
+ }
104
+ else {
105
+ resolve(data);
106
+ }
107
+ };
108
+ cursorReq.onerror = (event) => {
109
+ reject(event);
110
+ };
111
+ });
112
+ const v6Tx = v6Db.transaction(['kv', 'querySubs'], 'readwrite');
113
+ const kvStore = v6Tx.objectStore('kv');
114
+ const querySubStore = v6Tx.objectStore('querySubs');
115
+ const promises = [];
116
+ const kvMeta = { objects: {} };
117
+ for (const [key, value] of data) {
118
+ switch (key) {
119
+ case 'querySubs': {
120
+ const p = upgradeQuerySubs5To6(key, value, querySubStore);
121
+ promises.push(p);
122
+ break;
123
+ }
124
+ default: {
125
+ const p = moveKvEntry5To6(key, value, kvStore);
126
+ promises.push(p);
127
+ const objectMeta = {
128
+ createdAt: Date.now(),
129
+ updatedAt: Date.now(),
130
+ size: 0,
131
+ };
132
+ kvMeta.objects[key] = objectMeta;
133
+ break;
134
+ }
135
+ }
136
+ }
137
+ const p = moveKvEntry5To6(META_KEY, kvMeta, kvStore);
138
+ promises.push(p);
139
+ await Promise.all(promises);
140
+ await new Promise((resolve, reject) => {
141
+ v6Tx.oncomplete = (e) => resolve(e);
142
+ v6Tx.onerror = (e) => reject(e);
143
+ v6Tx.onabort = (e) => reject(e);
144
+ });
145
+ }
146
+ // We create many IndexedDBStorage instances that talk to the same
147
+ // underlying db, but we only get one `onupgradeneeded` event. This holds
148
+ // the upgrade promises so that we wait until upgrade finishes before
149
+ // we start writing.
150
+ const upgradePromises = new Map();
151
+ export default class IndexedDBStorage extends StoreInterface {
152
+ dbName;
153
+ _storeName;
154
+ _appId;
155
+ _prefix;
156
+ _dbPromise;
157
+ constructor(appId, storeName) {
158
+ super(appId, storeName);
159
+ this.dbName = `instant_${appId}_${version}`;
160
+ this._storeName = storeName;
161
+ this._appId = appId;
162
+ this._dbPromise = this._init();
163
+ }
164
+ _init() {
165
+ return new Promise((resolve, reject) => {
166
+ let requiresUpgrade = false;
167
+ const request = indexedDB.open(this.dbName, 1);
168
+ request.onerror = (event) => {
169
+ reject(event);
170
+ };
171
+ request.onsuccess = (event) => {
172
+ const target = event.target;
173
+ const db = target.result;
174
+ // Browsers can close IndexedDB connections unexpectedly
175
+ // (e.g. backgrounded tabs, memory pressure, version changes from
176
+ // other tabs). Re-init so the next operation gets a fresh connection.
177
+ db.onclose = () => {
178
+ this._dbPromise = this._init();
179
+ };
180
+ db.onversionchange = () => {
181
+ db.close();
182
+ };
183
+ if (!requiresUpgrade) {
184
+ const p = upgradePromises.get(this.dbName);
185
+ if (!p) {
186
+ resolve(db);
187
+ }
188
+ else {
189
+ p.then(() => resolve(db)).catch(() => resolve(db));
190
+ }
191
+ }
192
+ else {
193
+ const p = upgrade5To6(this._appId, db).catch((e) => {
194
+ logErrorCb('Error upgrading store from version 5 to 6.')(e);
195
+ });
196
+ upgradePromises.set(this.dbName, p);
197
+ p.then(() => resolve(db)).catch(() => resolve(db));
198
+ }
199
+ };
200
+ request.onupgradeneeded = (event) => {
201
+ requiresUpgrade = true;
202
+ this._upgradeStore(event);
203
+ };
204
+ });
205
+ }
206
+ _upgradeStore(event) {
207
+ const target = event.target;
208
+ const db = target.result;
209
+ for (const storeName of storeNames) {
210
+ if (!db.objectStoreNames.contains(storeName)) {
211
+ db.createObjectStore(storeName);
212
+ }
213
+ }
214
+ }
215
+ // Browsers can close IndexedDB connections unexpectedly (backgrounded tabs,
216
+ // memory pressure, cross-tab version changes, etc.), causing
217
+ // `db.transaction()` to throw InvalidStateError. This helper catches that
218
+ // error and retries once with a fresh connection.
219
+ async _withRetry(fn) {
220
+ try {
221
+ const db = await this._dbPromise;
222
+ return await fn(db);
223
+ }
224
+ catch (e) {
225
+ if (e instanceof DOMException && e.name === 'InvalidStateError') {
226
+ this._dbPromise = this._init();
227
+ const db = await this._dbPromise;
228
+ return await fn(db);
229
+ }
230
+ throw e;
231
+ }
232
+ }
233
+ async getItem(k) {
234
+ return this._withRetry((db) => {
235
+ return new Promise((resolve, reject) => {
236
+ const transaction = db.transaction([this._storeName], 'readonly');
237
+ const objectStore = transaction.objectStore(this._storeName);
238
+ const request = objectStore.get(k);
239
+ request.onerror = () => {
240
+ reject(request.error);
241
+ };
242
+ request.onsuccess = () => {
243
+ if (request.result) {
244
+ resolve(request.result);
245
+ }
246
+ else {
247
+ resolve(null);
248
+ }
249
+ };
250
+ });
251
+ });
252
+ }
253
+ async setItem(k, v) {
254
+ return this._withRetry((db) => {
255
+ return new Promise((resolve, reject) => {
256
+ const transaction = db.transaction([this._storeName], 'readwrite');
257
+ const objectStore = transaction.objectStore(this._storeName);
258
+ objectStore.put(v, k);
259
+ transaction.oncomplete = () => resolve();
260
+ transaction.onerror = () => reject(transaction.error);
261
+ transaction.onabort = () => reject(transaction.error);
262
+ transaction.commit?.();
263
+ });
264
+ });
265
+ }
266
+ async multiSet(keyValuePairs) {
267
+ return this._withRetry((db) => {
268
+ return new Promise((resolve, reject) => {
269
+ const transaction = db.transaction([this._storeName], 'readwrite');
270
+ const objectStore = transaction.objectStore(this._storeName);
271
+ for (const [k, v] of keyValuePairs) {
272
+ objectStore.put(v, k);
273
+ }
274
+ transaction.oncomplete = () => resolve();
275
+ transaction.onerror = () => reject(transaction.error);
276
+ transaction.onabort = () => reject(transaction.error);
277
+ transaction.commit?.();
278
+ });
279
+ });
280
+ }
281
+ async removeItem(k) {
282
+ return this._withRetry((db) => {
283
+ return new Promise((resolve, reject) => {
284
+ const transaction = db.transaction([this._storeName], 'readwrite');
285
+ const objectStore = transaction.objectStore(this._storeName);
286
+ objectStore.delete(k);
287
+ transaction.oncomplete = () => resolve();
288
+ transaction.onerror = () => reject(transaction.error);
289
+ transaction.onabort = () => reject(transaction.error);
290
+ transaction.commit?.();
291
+ });
292
+ });
293
+ }
294
+ async getAllKeys() {
295
+ return this._withRetry((db) => {
296
+ return new Promise((resolve, reject) => {
297
+ const transaction = db.transaction([this._storeName], 'readonly');
298
+ const objectStore = transaction.objectStore(this._storeName);
299
+ const request = objectStore.getAllKeys();
300
+ request.onerror = () => {
301
+ reject(request.error);
302
+ };
303
+ request.onsuccess = () => {
304
+ resolve(request.result.filter((x) => typeof x === 'string'));
305
+ };
306
+ });
307
+ });
308
+ }
309
+ }
@@ -0,0 +1,6 @@
1
+ export declare class InstantError extends Error {
2
+ hint?: unknown;
3
+ traceId?: string;
4
+ constructor(message: string, hint?: unknown, traceId?: string);
5
+ get [Symbol.toStringTag](): string;
6
+ }
@@ -0,0 +1,23 @@
1
+ export class InstantError extends Error {
2
+ hint;
3
+ traceId;
4
+ constructor(message, hint, traceId) {
5
+ super(message);
6
+ this.hint = hint;
7
+ if (traceId) {
8
+ this.traceId = traceId;
9
+ }
10
+ const actualProto = new.target.prototype;
11
+ if (Object.setPrototypeOf) {
12
+ Object.setPrototypeOf(this, actualProto);
13
+ }
14
+ // Maintain proper stack trace for where our error was thrown
15
+ if (Error.captureStackTrace) {
16
+ Error.captureStackTrace(this, InstantError);
17
+ }
18
+ this.name = 'InstantError';
19
+ }
20
+ get [Symbol.toStringTag]() {
21
+ return 'InstantError';
22
+ }
23
+ }