@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,25 @@
1
+ type id = string;
2
+ type etype = string;
3
+ type label = string;
4
+ export type InstantDBIdent = [id, etype, label];
5
+ export type InstantDBInferredType = 'number' | 'string' | 'boolean' | 'json';
6
+ export type InstantDBCheckedDataType = 'number' | 'string' | 'boolean' | 'date';
7
+ export type InstantDBAttrOnDelete = 'cascade';
8
+ export type InstantDBAttr = {
9
+ id: string;
10
+ 'value-type': 'blob' | 'ref';
11
+ cardinality: 'many' | 'one';
12
+ 'forward-identity': InstantDBIdent;
13
+ 'reverse-identity'?: InstantDBIdent | null | undefined;
14
+ 'unique?': boolean;
15
+ 'index?': boolean;
16
+ 'required?': boolean;
17
+ 'inferred-types': InstantDBInferredType[] | null;
18
+ catalog: 'system' | 'user';
19
+ 'on-delete'?: InstantDBAttrOnDelete | null | undefined;
20
+ 'on-delete-reverse'?: InstantDBAttrOnDelete | null | undefined;
21
+ 'checked-data-type'?: InstantDBCheckedDataType | null | undefined;
22
+ 'indexing?'?: boolean;
23
+ 'setting-unique?'?: boolean;
24
+ };
25
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,64 @@
1
+ import { User } from './clientTypes.ts';
2
+ type SharedInput = {
3
+ apiURI: string;
4
+ appId: string;
5
+ };
6
+ export type SendMagicCodeParams = {
7
+ email: string;
8
+ };
9
+ export type SendMagicCodeResponse = {
10
+ sent: true;
11
+ };
12
+ export declare function sendMagicCode({ apiURI, appId, email, }: SharedInput & SendMagicCodeParams): Promise<SendMagicCodeResponse>;
13
+ export type VerifyMagicCodeParams = {
14
+ email: string;
15
+ code: string;
16
+ refreshToken?: string | undefined;
17
+ };
18
+ export type VerifyResponse = {
19
+ user: User;
20
+ };
21
+ /**
22
+ * @deprecated Use {@link checkMagicCode} instead to get the `created` field
23
+ * and support `extraFields`.
24
+ */
25
+ export declare function verifyMagicCode({ apiURI, appId, email, code, refreshToken, }: SharedInput & VerifyMagicCodeParams): Promise<VerifyResponse>;
26
+ export type CheckMagicCodeParams = {
27
+ email: string;
28
+ code: string;
29
+ refreshToken?: string | undefined;
30
+ extraFields?: Record<string, any> | undefined;
31
+ };
32
+ export type CheckMagicCodeResponse = {
33
+ user: User;
34
+ created: boolean;
35
+ };
36
+ export declare function checkMagicCode({ apiURI, appId, email, code, refreshToken, extraFields, }: SharedInput & CheckMagicCodeParams): Promise<CheckMagicCodeResponse>;
37
+ export type VerifyRefreshTokenParams = {
38
+ refreshToken: string;
39
+ };
40
+ export declare function verifyRefreshToken({ apiURI, appId, refreshToken, }: SharedInput & VerifyRefreshTokenParams): Promise<VerifyResponse>;
41
+ export type SignInAsGuestParams = {
42
+ extraFields?: Record<string, any> | undefined;
43
+ };
44
+ export declare function signInAsGuest({ apiURI, appId, extraFields, }: SharedInput & SignInAsGuestParams): Promise<VerifyResponse>;
45
+ export type ExchangeCodeForTokenParams = {
46
+ code: string;
47
+ codeVerifier?: string;
48
+ refreshToken?: string | undefined;
49
+ extraFields?: Record<string, any> | undefined;
50
+ };
51
+ export declare function exchangeCodeForToken({ apiURI, appId, code, codeVerifier, refreshToken, extraFields, }: SharedInput & ExchangeCodeForTokenParams): Promise<CheckMagicCodeResponse>;
52
+ export type SignInWithIdTokenParams = {
53
+ nonce?: string | null | undefined;
54
+ idToken: string;
55
+ clientName: string;
56
+ refreshToken?: string;
57
+ extraFields?: Record<string, any> | undefined;
58
+ };
59
+ export declare function signInWithIdToken({ apiURI, appId, nonce, idToken, clientName, refreshToken, extraFields, }: SharedInput & SignInWithIdTokenParams): Promise<CheckMagicCodeResponse>;
60
+ export type SignoutParams = {
61
+ refreshToken: string;
62
+ };
63
+ export declare function signOut({ apiURI, appId, refreshToken, }: SharedInput & SignoutParams): Promise<{}>;
64
+ export {};
@@ -0,0 +1,103 @@
1
+ import { jsonFetch } from './utils/fetch.js';
2
+ export function sendMagicCode({ apiURI, appId, email, }) {
3
+ return jsonFetch(`${apiURI}/runtime/auth/send_magic_code`, {
4
+ method: 'POST',
5
+ headers: { 'content-type': 'application/json' },
6
+ body: JSON.stringify({ 'app-id': appId, email }),
7
+ });
8
+ }
9
+ /**
10
+ * @deprecated Use {@link checkMagicCode} instead to get the `created` field
11
+ * and support `extraFields`.
12
+ */
13
+ export async function verifyMagicCode({ apiURI, appId, email, code, refreshToken, }) {
14
+ const res = await jsonFetch(`${apiURI}/runtime/auth/verify_magic_code`, {
15
+ method: 'POST',
16
+ headers: { 'content-type': 'application/json' },
17
+ body: JSON.stringify({
18
+ 'app-id': appId,
19
+ email,
20
+ code,
21
+ ...(refreshToken ? { 'refresh-token': refreshToken } : {}),
22
+ }),
23
+ });
24
+ return res;
25
+ }
26
+ export async function checkMagicCode({ apiURI, appId, email, code, refreshToken, extraFields, }) {
27
+ const res = await jsonFetch(`${apiURI}/runtime/auth/verify_magic_code`, {
28
+ method: 'POST',
29
+ headers: { 'content-type': 'application/json' },
30
+ body: JSON.stringify({
31
+ 'app-id': appId,
32
+ email,
33
+ code,
34
+ ...(refreshToken ? { 'refresh-token': refreshToken } : {}),
35
+ ...(extraFields ? { 'extra-fields': extraFields } : {}),
36
+ }),
37
+ });
38
+ return res;
39
+ }
40
+ export async function verifyRefreshToken({ apiURI, appId, refreshToken, }) {
41
+ const res = await jsonFetch(`${apiURI}/runtime/auth/verify_refresh_token`, {
42
+ method: 'POST',
43
+ headers: { 'content-type': 'application/json' },
44
+ body: JSON.stringify({
45
+ 'app-id': appId,
46
+ 'refresh-token': refreshToken,
47
+ }),
48
+ });
49
+ return res;
50
+ }
51
+ export async function signInAsGuest({ apiURI, appId, extraFields, }) {
52
+ const res = await jsonFetch(`${apiURI}/runtime/auth/sign_in_guest`, {
53
+ method: 'POST',
54
+ headers: { 'content-type': 'application/json' },
55
+ body: JSON.stringify({
56
+ 'app-id': appId,
57
+ ...(extraFields ? { 'extra-fields': extraFields } : {}),
58
+ }),
59
+ });
60
+ return res;
61
+ }
62
+ export async function exchangeCodeForToken({ apiURI, appId, code, codeVerifier, refreshToken, extraFields, }) {
63
+ const res = await jsonFetch(`${apiURI}/runtime/oauth/token`, {
64
+ method: 'POST',
65
+ headers: { 'content-type': 'application/json' },
66
+ body: JSON.stringify({
67
+ app_id: appId,
68
+ code: code,
69
+ code_verifier: codeVerifier,
70
+ refresh_token: refreshToken,
71
+ ...(extraFields ? { extra_fields: extraFields } : {}),
72
+ }),
73
+ });
74
+ return res;
75
+ }
76
+ export async function signInWithIdToken({ apiURI, appId, nonce, idToken, clientName, refreshToken, extraFields, }) {
77
+ const res = await jsonFetch(`${apiURI}/runtime/oauth/id_token`, {
78
+ method: 'POST',
79
+ headers: { 'content-type': 'application/json' },
80
+ body: JSON.stringify({
81
+ app_id: appId,
82
+ nonce,
83
+ id_token: idToken,
84
+ client_name: clientName,
85
+ refresh_token: refreshToken,
86
+ ...(extraFields ? { extra_fields: extraFields } : {}),
87
+ }),
88
+ });
89
+ return res;
90
+ }
91
+ export async function signOut({ apiURI, appId, refreshToken, }) {
92
+ const res = await jsonFetch(`${apiURI}/runtime/signout`, {
93
+ method: 'POST',
94
+ headers: {
95
+ 'content-type': 'application/json',
96
+ },
97
+ body: JSON.stringify({
98
+ app_id: appId,
99
+ refresh_token: refreshToken,
100
+ }),
101
+ });
102
+ return res;
103
+ }
@@ -0,0 +1,40 @@
1
+ export type User = {
2
+ id: string;
3
+ refresh_token: string;
4
+ email?: string | null | undefined;
5
+ imageURL?: string | null | undefined;
6
+ type?: 'user' | 'guest' | undefined;
7
+ isGuest: boolean;
8
+ };
9
+ export type AuthResult = {
10
+ user: User | undefined;
11
+ error: undefined;
12
+ } | {
13
+ user: undefined;
14
+ error: {
15
+ message: string;
16
+ };
17
+ };
18
+ export type AuthState = {
19
+ isLoading: true;
20
+ error: undefined;
21
+ user: undefined;
22
+ } | {
23
+ isLoading: false;
24
+ error: {
25
+ message: string;
26
+ };
27
+ user: undefined;
28
+ } | {
29
+ isLoading: false;
30
+ error: undefined;
31
+ user: User | null | undefined;
32
+ };
33
+ export type ConnectionStatus = 'connecting' | 'opened' | 'authenticated' | 'closed' | 'errored';
34
+ export type AppStatusState = {
35
+ isLoading: true;
36
+ isReadOnly: undefined;
37
+ } | {
38
+ isLoading: false;
39
+ isReadOnly: boolean;
40
+ };
@@ -0,0 +1,33 @@
1
+ import { TxChunk } from './instatx.ts';
2
+ import { RoomSchemaShape } from './presence.ts';
3
+ import type { IContainEntitiesAndLinks, InstantSchemaDef } from './schemaTypes.ts';
4
+ export interface IDatabase<Schema extends IContainEntitiesAndLinks<any, any> | {} = {}, _RoomSchema extends RoomSchemaShape = {}, WithCardinalityInference extends boolean = false> {
5
+ tx: TxChunk<Schema extends IContainEntitiesAndLinks<any, any> ? Schema : InstantSchemaDef<any, any, any>>;
6
+ withCardinalityInference?: WithCardinalityInference;
7
+ }
8
+ export interface IInstantDatabase<Schema extends InstantSchemaDef<any, any, any>> {
9
+ tx: TxChunk<Schema>;
10
+ }
11
+ export type DevtoolPosition = 'bottom-left' | 'bottom-right' | 'top-right' | 'top-left';
12
+ export type DevtoolConfig = {
13
+ /**
14
+ * Position of the devtool panel on the screen
15
+ * @default 'bottom-right'
16
+ */
17
+ position?: DevtoolPosition;
18
+ /**
19
+ * Hosts where the devtool should be shown
20
+ * @default ['localhost']
21
+ */
22
+ allowedHosts?: string[];
23
+ /**
24
+ * Dashboard URI used to render the devtool
25
+ * @default 'https://instantdb.com'
26
+ */
27
+ dashURI?: string;
28
+ };
29
+ export type StrictDevtoolConfig = {
30
+ position: DevtoolPosition;
31
+ allowedHosts: string[];
32
+ dashURI?: string;
33
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ type CreateRouteHandlerConfig = {
2
+ appId: string;
3
+ };
4
+ export declare const createInstantRouteHandler: (config: CreateRouteHandlerConfig) => {
5
+ POST: (req: Request) => Promise<Response>;
6
+ };
7
+ export {};
@@ -0,0 +1,51 @@
1
+ function createUserSyncResponse(config, user) {
2
+ if (user && user.refresh_token) {
3
+ return new Response(JSON.stringify({ ok: true }), {
4
+ headers: {
5
+ 'Content-Type': 'application/json',
6
+ // 7 day expiry
7
+ 'Set-Cookie': `instant_user_${config.appId}=${encodeURIComponent(JSON.stringify(user))}; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=604800`,
8
+ },
9
+ });
10
+ }
11
+ else {
12
+ return new Response(JSON.stringify({ ok: true }), {
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ // remove the cookie (some browsers)
16
+ 'Set-Cookie': `instant_user_${config.appId}=; Path=/; HttpOnly; Secure; SameSite=Strict; Max-Age=-1`,
17
+ },
18
+ });
19
+ }
20
+ }
21
+ function errorResponse(status, message) {
22
+ return new Response(JSON.stringify({ ok: false, error: message }), {
23
+ status,
24
+ headers: { 'Content-Type': 'application/json' },
25
+ });
26
+ }
27
+ export const createInstantRouteHandler = (config) => {
28
+ return {
29
+ POST: async (req) => {
30
+ let body;
31
+ try {
32
+ body = await req.json();
33
+ }
34
+ catch {
35
+ return errorResponse(400, 'Invalid JSON body');
36
+ }
37
+ if (!body.type) {
38
+ return errorResponse(400, 'Missing "type" field');
39
+ }
40
+ if (body.appId !== config.appId) {
41
+ return errorResponse(403, 'App ID mismatch');
42
+ }
43
+ switch (body.type) {
44
+ case 'sync-user':
45
+ return createUserSyncResponse(config, body.user ?? null);
46
+ default:
47
+ return errorResponse(400, `Unknown type: ${body.type}`);
48
+ }
49
+ },
50
+ };
51
+ };
@@ -0,0 +1,7 @@
1
+ export declare function matchPattern(pattern: any, triple: any, context: any): any;
2
+ export declare function querySingle(store: any, pattern: any, context: any): any[];
3
+ export declare function queryWhere(store: any, patterns: any, contexts?: {}[]): any;
4
+ export declare function query(store: any, { find, where }: {
5
+ find: any;
6
+ where: any;
7
+ }): any;
@@ -0,0 +1,99 @@
1
+ // 1. patternMatch
2
+ import { getTriples } from './store.js';
3
+ function isVariable(x) {
4
+ return typeof x === 'string' && x.startsWith('?');
5
+ }
6
+ function matchVariable(variable, triplePart, context) {
7
+ if (context.hasOwnProperty(variable)) {
8
+ const bound = context[variable];
9
+ return matchPart(bound, triplePart, context);
10
+ }
11
+ return { ...context, [variable]: triplePart };
12
+ }
13
+ function matchExact(patternPart, triplePart, context) {
14
+ return patternPart === triplePart ? context : null;
15
+ }
16
+ function matcherForPatternPart(patternPart) {
17
+ switch (typeof patternPart) {
18
+ case 'string':
19
+ return patternPart.startsWith('?') ? matchVariable : matchExact;
20
+ default:
21
+ return matchExact;
22
+ }
23
+ }
24
+ const validArgMapProps = [
25
+ 'in',
26
+ '$in',
27
+ '$not',
28
+ '$isNull',
29
+ '$comparator', // covers all of $gt, $lt, etc.
30
+ ];
31
+ // Checks if an object is an args map
32
+ function isArgsMap(patternPart) {
33
+ for (const prop of validArgMapProps) {
34
+ if (patternPart.hasOwnProperty(prop)) {
35
+ return true;
36
+ }
37
+ }
38
+ return false;
39
+ }
40
+ function matchPart(patternPart, triplePart, context) {
41
+ if (!context)
42
+ return null;
43
+ if (typeof patternPart === 'object') {
44
+ // This is an args map, so we'll have already fitered the triples
45
+ // in `getRelevantTriples`
46
+ if (isArgsMap(patternPart)) {
47
+ return context;
48
+ }
49
+ return null;
50
+ }
51
+ const matcher = matcherForPatternPart(patternPart);
52
+ return matcher(patternPart, triplePart, context);
53
+ }
54
+ export function matchPattern(pattern, triple, context) {
55
+ return pattern.reduce((context, patternPart, idx) => {
56
+ const triplePart = triple[idx];
57
+ return matchPart(patternPart, triplePart, context);
58
+ }, context);
59
+ }
60
+ // 2. querySingle
61
+ export function querySingle(store, pattern, context) {
62
+ return relevantTriples(store, pattern, context)
63
+ .map((triple) => matchPattern(pattern, triple, context))
64
+ .filter((x) => x);
65
+ }
66
+ // 3. queryWhere
67
+ function queryPattern(store, pattern, contexts) {
68
+ if (pattern.or) {
69
+ return pattern.or.patterns.flatMap((patterns) => {
70
+ return queryWhere(store, patterns, contexts);
71
+ });
72
+ }
73
+ if (pattern.and) {
74
+ return pattern.and.patterns.reduce((contexts, patterns) => {
75
+ return queryWhere(store, patterns, contexts);
76
+ }, contexts);
77
+ }
78
+ return contexts.flatMap((context) => querySingle(store, pattern, context));
79
+ }
80
+ export function queryWhere(store, patterns, contexts = [{}]) {
81
+ return patterns.reduce((contexts, pattern) => {
82
+ return queryPattern(store, pattern, contexts);
83
+ }, contexts);
84
+ }
85
+ // 4. query
86
+ function actualize(context, find) {
87
+ if (Array.isArray(find)) {
88
+ return find.map((findPart) => actualize(context, findPart));
89
+ }
90
+ return isVariable(find) ? context[find] : find;
91
+ }
92
+ export function query(store, { find, where }) {
93
+ const contexts = queryWhere(store, where);
94
+ return contexts.map((context) => actualize(context, find));
95
+ }
96
+ // 5. Index
97
+ function relevantTriples(store, pattern, context) {
98
+ return getTriples(store, actualize(context, pattern));
99
+ }
@@ -0,0 +1,3 @@
1
+ import { StrictDevtoolConfig } from './coreTypes.ts';
2
+ export declare function createDevtool(appId: string, config: StrictDevtoolConfig): void;
3
+ export declare function getDevtoolSrc(appId: string, config: StrictDevtoolConfig): string;
@@ -0,0 +1,144 @@
1
+ import * as flags from './utils/flags.js';
2
+ let currentDevtool;
3
+ export function createDevtool(appId, config) {
4
+ currentDevtool?.dispose();
5
+ const iframeContrainer = createIframeContainer(config);
6
+ const toggler = createToggler(config, toggleView);
7
+ const iframe = createIframe(getDevtoolSrc(appId, config));
8
+ function onPostMessage(event) {
9
+ if (event.source !== iframe.element.contentWindow)
10
+ return;
11
+ if (event.data?.type === 'close' && iframeContrainer.isVisible()) {
12
+ toggleView();
13
+ }
14
+ }
15
+ function onKeyDown(event) {
16
+ const isToggleShortcut = event.shiftKey && event.ctrlKey && event.code === 'Digit0';
17
+ const isEsc = event.key === 'Escape' || event.key === 'Esc';
18
+ if (isToggleShortcut) {
19
+ toggleView();
20
+ }
21
+ else if (isEsc && iframeContrainer.isVisible()) {
22
+ toggleView();
23
+ }
24
+ }
25
+ function toggleView() {
26
+ if (iframeContrainer.isVisible()) {
27
+ iframeContrainer.element.style.display = 'none';
28
+ }
29
+ else {
30
+ iframeContrainer.element.style.display = 'block';
31
+ // lazily render iframe on first open
32
+ if (!iframeContrainer.element.contains(iframe.element)) {
33
+ iframeContrainer.element.appendChild(iframe.element);
34
+ }
35
+ }
36
+ }
37
+ function dispose() {
38
+ iframeContrainer.element.remove();
39
+ toggler.element.remove();
40
+ removeEventListener('keydown', onKeyDown);
41
+ removeEventListener('message', onPostMessage);
42
+ }
43
+ function create() {
44
+ document.body.appendChild(iframeContrainer.element);
45
+ document.body.appendChild(toggler.element);
46
+ addEventListener('keydown', onKeyDown);
47
+ addEventListener('message', onPostMessage);
48
+ currentDevtool = {
49
+ dispose,
50
+ };
51
+ }
52
+ return create();
53
+ }
54
+ export function getDevtoolSrc(appId, config) {
55
+ const useLocalDashboard = flags.devBackend || flags.devtoolLocalDashboard;
56
+ const dashURI = config.dashURI ??
57
+ (useLocalDashboard ? 'http://localhost:3000' : 'https://instantdb.com');
58
+ return `${dashURI.replace(/\/+$/, '')}/_devtool?appId=${appId}`;
59
+ }
60
+ function createIframe(src) {
61
+ const element = document.createElement('iframe');
62
+ element.src = src;
63
+ element.className = 'instant-devtool-iframe';
64
+ Object.assign(element.style, {
65
+ width: '100%',
66
+ height: '100%',
67
+ backgroundColor: 'white',
68
+ border: 'none',
69
+ });
70
+ return { element };
71
+ }
72
+ function createToggler(config, onClick) {
73
+ const logoSVG = `
74
+ <svg width="32" height="32" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
75
+ <rect width="512" height="512" fill="black"/>
76
+ <rect x="97.0973" y="91.3297" width="140" height="330" fill="white"/>
77
+ </svg>
78
+ `;
79
+ const element = document.createElement('button');
80
+ element.innerHTML = logoSVG;
81
+ element.className = 'instant-devtool-toggler';
82
+ Object.assign(element.style, {
83
+ // pos
84
+ position: 'fixed',
85
+ ...cssPositionForToggler(config.position),
86
+ height: '32px',
87
+ width: '32px',
88
+ // layout
89
+ display: 'flex',
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ zIndex: '9010',
93
+ // look
94
+ padding: '0',
95
+ margin: '0',
96
+ border: 'none',
97
+ cursor: 'pointer',
98
+ });
99
+ element.addEventListener('click', onClick);
100
+ return { element };
101
+ }
102
+ function cssPositionForToggler(position) {
103
+ switch (position) {
104
+ case 'bottom-left':
105
+ return { bottom: '24px', left: '24px' };
106
+ case 'bottom-right':
107
+ return { bottom: '24px', right: '24px' };
108
+ case 'top-right':
109
+ return { top: '24px', right: '24px' };
110
+ case 'top-left':
111
+ return { top: '24px', left: '24px' };
112
+ }
113
+ }
114
+ function cssPositionForIframeContainer(position) {
115
+ switch (position) {
116
+ case 'bottom-left':
117
+ return { bottom: '24px', right: '24px', left: '60px', top: '72px' };
118
+ case 'bottom-right':
119
+ return { bottom: '24px', left: '24px', right: '60px', top: '72px' };
120
+ case 'top-right':
121
+ return { top: '24px', left: '24px', right: '60px', bottom: '72px' };
122
+ case 'top-left':
123
+ return { top: '24px', right: '24px', left: '60px', bottom: '72px' };
124
+ }
125
+ }
126
+ function createIframeContainer(config) {
127
+ const element = document.createElement('div');
128
+ Object.assign(element.style, {
129
+ position: 'fixed',
130
+ ...cssPositionForIframeContainer(config.position),
131
+ display: 'block',
132
+ borderRadius: '4px',
133
+ border: '1px #ccc solid',
134
+ boxShadow: '0px 0px 8px #00000044',
135
+ backgroundColor: '#eee',
136
+ zIndex: '999990',
137
+ });
138
+ element.style.display = 'none';
139
+ element.className = 'instant-devtool-container';
140
+ function isVisible() {
141
+ return element.style.display !== 'none';
142
+ }
143
+ return { element, isVisible };
144
+ }
@@ -0,0 +1,80 @@
1
+ import { InstantCoreDatabase, InstantDBAttr } from './index.ts';
2
+ import { RuleParams } from './schemaTypes.ts';
3
+ export declare const isServer: boolean;
4
+ export type FrameworkConfig = {
5
+ token?: string | null;
6
+ db: InstantCoreDatabase<any, any>;
7
+ };
8
+ type QueryPromise = {
9
+ type: 'http';
10
+ triples: any;
11
+ attrs: any;
12
+ queryHash: any;
13
+ query: any;
14
+ pageInfo?: any;
15
+ } | {
16
+ type: 'session';
17
+ queryResult: any;
18
+ };
19
+ export declare class FrameworkClient {
20
+ private params;
21
+ private db;
22
+ resultMap: Map<string, {
23
+ status: 'pending' | 'success' | 'error';
24
+ type: 'http' | 'session';
25
+ promise?: Promise<QueryPromise> | null;
26
+ data?: any;
27
+ error?: any;
28
+ }>;
29
+ private queryResolvedCallbacks;
30
+ constructor(params: FrameworkConfig);
31
+ subscribe: (callback: (result: {
32
+ triples: any;
33
+ attrs: any;
34
+ queryHash: string;
35
+ pageInfo?: any;
36
+ }) => void) => void;
37
+ addQueryResult: (queryKey: string, value: any) => void;
38
+ removeCachedQueryResult: (queryHash: string) => void;
39
+ queryClient: (query_: any, opts?: {
40
+ ruleParams: RuleParams;
41
+ }) => Promise<QueryPromise>;
42
+ query: (_query: any, opts?: {
43
+ ruleParams: RuleParams;
44
+ }) => {
45
+ type: 'http' | 'session';
46
+ status: 'pending' | 'success' | 'error';
47
+ promise?: Promise<QueryPromise>;
48
+ data?: any;
49
+ error?: any;
50
+ };
51
+ getExistingResultForQuery: (_query: any, opts?: {
52
+ ruleParams: RuleParams;
53
+ }) => {
54
+ status: 'pending' | 'success' | 'error';
55
+ type: 'http' | 'session';
56
+ promise?: Promise<QueryPromise> | null;
57
+ data?: any;
58
+ error?: any;
59
+ } | undefined;
60
+ completeIsomorphic: (query: any, triples: any[], attrs: InstantDBAttr[], pageInfo?: any) => {
61
+ data: any;
62
+ pageInfo?: any;
63
+ aggregate?: any;
64
+ };
65
+ hashQuery: (_query: any, opts?: {
66
+ ruleParams: RuleParams;
67
+ }) => {
68
+ hash: string;
69
+ query: any;
70
+ };
71
+ getTriplesAndAttrsForQuery: (query: any) => Promise<{
72
+ triples: any[];
73
+ attrs: InstantDBAttr[];
74
+ query: any;
75
+ queryHash: string;
76
+ type: 'http';
77
+ pageInfo?: any;
78
+ }>;
79
+ }
80
+ export {};