@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,127 @@
1
+ import type { IContainEntitiesAndLinks, LinkParams, CreateParams, UpdateParams, UpdateOpts, RuleParams, UniqueKeys, ResolveEntityAttrs } from './schemaTypes.ts';
2
+ type Action = 'create' | 'update' | 'link' | 'unlink' | 'delete' | 'merge' | 'ruleParams';
3
+ type EType = string;
4
+ type Id = string;
5
+ type Args = any;
6
+ type LookupRef = [string, any];
7
+ type Lookup = string;
8
+ type Opts = UpdateOpts;
9
+ export type Op = [Action, EType, Id | LookupRef, Args, Opts?];
10
+ export interface TransactionChunk<Schema extends IContainEntitiesAndLinks<any, any>, EntityName extends keyof Schema['entities']> {
11
+ __ops: Op[];
12
+ __etype: EntityName;
13
+ /**
14
+ * Create objects. Throws an error if the object with the provided ID already
15
+ * exists.
16
+ */
17
+ create: (args: CreateParams<Schema, EntityName>) => TransactionChunk<Schema, EntityName>;
18
+ /**
19
+ * Create and update objects. By default works in upsert mode (will create
20
+ * entity if that doesn't exist). Can be optionally put into "strict update"
21
+ * mode by providing { upsert: false } option as second argument:
22
+ *
23
+ * @example
24
+ * const goalId = id();
25
+ * // upsert
26
+ * db.tx.goals[goalId].update({title: "Get fit", difficulty: 5})
27
+ *
28
+ * // strict update
29
+ * db.tx.goals[goalId].update({title: "Get fit"}, {upsert: false})
30
+ */
31
+ update: (args: UpdateParams<Schema, EntityName>, opts?: UpdateOpts) => TransactionChunk<Schema, EntityName>;
32
+ /**
33
+ * Link two objects together
34
+ *
35
+ * @example
36
+ * const goalId = id();
37
+ * const todoId = id();
38
+ * db.transact([
39
+ * db.tx.goals[goalId].update({title: "Get fit"}),
40
+ * db.tx.todos[todoId].update({title: "Go on a run"}),
41
+ * db.tx.goals[goalId].link({todos: todoId}),
42
+ * ])
43
+ *
44
+ * // Now, if you query:
45
+ * useQuery({ goals: { todos: {} } })
46
+ * // You'll get back:
47
+ *
48
+ * // { goals: [{ title: "Get fit", todos: [{ title: "Go on a run" }]}
49
+ */
50
+ link: (args: LinkParams<Schema, EntityName>) => TransactionChunk<Schema, EntityName>;
51
+ /**
52
+ * Unlink two objects
53
+ * @example
54
+ * // to "unlink" a todo from a goal:
55
+ * db.tx.goals[goalId].unlink({todos: todoId})
56
+ */
57
+ unlink: (args: LinkParams<Schema, EntityName>) => TransactionChunk<Schema, EntityName>;
58
+ /**
59
+ * Delete an object, alongside all of its links.
60
+ *
61
+ * @example
62
+ * db.tx.goals[goalId].delete()
63
+ */
64
+ delete: () => TransactionChunk<Schema, EntityName>;
65
+ /**
66
+ *
67
+ * Similar to `update`, but instead of overwriting the current value, it will merge the provided values into the current value.
68
+ *
69
+ * This is useful for deeply nested, document-style values, or for updating a single attribute at an arbitrary depth without overwriting the rest of the object.
70
+ *
71
+ * For example, if you have a goal with a nested `metrics` object:
72
+ *
73
+ * ```js
74
+ * goal = { name: "Get fit", metrics: { progress: 0.3 } }
75
+ * ```
76
+ *
77
+ * You can update the `progress` attribute like so:
78
+ *
79
+ * ```js
80
+ * db.tx.goals[goalId].merge({ metrics: { progress: 0.5 }, category: "Fitness" })
81
+ * ```
82
+ *
83
+ * And the resulting object will be:
84
+ *
85
+ * ```js
86
+ * goal = { name: "Get fit", metrics: { progress: 0.5 }, category: "Fitness" }
87
+ * ```
88
+ *
89
+ * @example
90
+ * const goalId = id();
91
+ * db.tx.goals[goalId].merge({title: "Get fitter"})
92
+ */
93
+ merge: (args: {
94
+ [attribute: string]: any;
95
+ }, opts?: UpdateOpts) => TransactionChunk<Schema, EntityName>;
96
+ ruleParams: (args: RuleParams) => TransactionChunk<Schema, EntityName>;
97
+ }
98
+ export type ETypeChunk<Schema extends IContainEntitiesAndLinks<any, any>, EntityName extends keyof Schema['entities']> = {
99
+ [id: Id]: TransactionChunk<Schema, EntityName>;
100
+ } & {
101
+ lookup: <Name extends UniqueKeys<Schema['entities'][EntityName]['attrs']>>(attrName: Name, value: ResolveEntityAttrs<Schema['entities'][EntityName]>[Name]) => TransactionChunk<Schema, EntityName>;
102
+ };
103
+ export type TxChunk<Schema extends IContainEntitiesAndLinks<any, any>> = {
104
+ [EntityName in keyof Schema['entities']]: ETypeChunk<Schema, EntityName>;
105
+ };
106
+ /**
107
+ * Creates a lookup to use in place of an id in a transaction
108
+ *
109
+ * @example
110
+ * db.tx.users[lookup('email', 'lyndon@example.com')].update({name: 'Lyndon'})
111
+ */
112
+ export declare function lookup(attribute: string, value: any): Lookup;
113
+ export declare function isLookup(k: string): boolean;
114
+ export declare function parseLookup(k: string): LookupRef;
115
+ export declare function txInit<Schema extends IContainEntitiesAndLinks<any, any>>(): TxChunk<Schema>;
116
+ /**
117
+ * A handy builder for changes.
118
+ *
119
+ * You must start with the `namespace` you want to change:
120
+ *
121
+ * @example
122
+ * db.tx.goals[goalId].update({title: "Get fit"})
123
+ * // Note: you don't need to create `goals` ahead of time.
124
+ */
125
+ export declare const tx: TxChunk<IContainEntitiesAndLinks<any, any>>;
126
+ export declare function getOps(x: TransactionChunk<any, any>): Op[];
127
+ export {};
@@ -0,0 +1,93 @@
1
+ function getAllTransactionChunkKeys() {
2
+ const v = 1;
3
+ const _dummy = {
4
+ __etype: v,
5
+ __ops: v,
6
+ create: v,
7
+ update: v,
8
+ link: v,
9
+ unlink: v,
10
+ delete: v,
11
+ merge: v,
12
+ ruleParams: v,
13
+ };
14
+ return new Set(Object.keys(_dummy));
15
+ }
16
+ const allTransactionChunkKeys = getAllTransactionChunkKeys();
17
+ function transactionChunk(etype, id, prevOps) {
18
+ const target = {
19
+ __etype: etype,
20
+ __ops: prevOps,
21
+ };
22
+ return new Proxy(target, {
23
+ get: (_target, cmd) => {
24
+ if (cmd === '__ops')
25
+ return prevOps;
26
+ if (cmd === '__etype')
27
+ return etype;
28
+ if (!allTransactionChunkKeys.has(cmd)) {
29
+ return undefined;
30
+ }
31
+ return (args, opts) => {
32
+ return transactionChunk(etype, id, [
33
+ ...prevOps,
34
+ opts ? [cmd, etype, id, args, opts] : [cmd, etype, id, args],
35
+ ]);
36
+ };
37
+ },
38
+ });
39
+ }
40
+ /**
41
+ * Creates a lookup to use in place of an id in a transaction
42
+ *
43
+ * @example
44
+ * db.tx.users[lookup('email', 'lyndon@example.com')].update({name: 'Lyndon'})
45
+ */
46
+ export function lookup(attribute, value) {
47
+ return `lookup__${attribute}__${JSON.stringify(value)}`;
48
+ }
49
+ export function isLookup(k) {
50
+ return k.startsWith('lookup__');
51
+ }
52
+ export function parseLookup(k) {
53
+ const [_, attribute, ...vJSON] = k.split('__');
54
+ return [attribute, JSON.parse(vJSON.join('__'))];
55
+ }
56
+ function etypeChunk(etype) {
57
+ return new Proxy({
58
+ __etype: etype,
59
+ }, {
60
+ get(_target, cmd) {
61
+ if (cmd === 'lookup') {
62
+ return (attrName, value) => transactionChunk(etype, parseLookup(lookup(attrName, value)), []);
63
+ }
64
+ if (cmd === '__etype')
65
+ return etype;
66
+ const id = cmd;
67
+ if (isLookup(id)) {
68
+ return transactionChunk(etype, parseLookup(id), []);
69
+ }
70
+ return transactionChunk(etype, id, []);
71
+ },
72
+ });
73
+ }
74
+ export function txInit() {
75
+ return new Proxy({}, {
76
+ get(_target, ns) {
77
+ return etypeChunk(ns);
78
+ },
79
+ });
80
+ }
81
+ /**
82
+ * A handy builder for changes.
83
+ *
84
+ * You must start with the `namespace` you want to change:
85
+ *
86
+ * @example
87
+ * db.tx.goals[goalId].update({title: "Get fit"})
88
+ * // Note: you don't need to create `goals` ahead of time.
89
+ */
90
+ export const tx = txInit();
91
+ export function getOps(x) {
92
+ return x.__ops;
93
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Marshall instaql-result into list of triples. Instaql-result may have
3
+ * multiple datalog-results, each datalog-result may have multiple join-rows
4
+ * and each join-row may have triples.The union of these triples may have
5
+ * duplicates, so we dedup them.
6
+ */
7
+ export declare function extractTriples(idNodes: any): any[];
@@ -0,0 +1,24 @@
1
+ function _extractTriplesHelper(idNodes, acc = []) {
2
+ idNodes.forEach((idNode) => {
3
+ const { data } = idNode;
4
+ const { 'datalog-result': datalogResult } = data;
5
+ const { 'join-rows': joinRows } = datalogResult;
6
+ for (const rows of joinRows) {
7
+ for (const triple of rows) {
8
+ acc.push(triple);
9
+ }
10
+ }
11
+ _extractTriplesHelper(idNode['child-nodes'], acc);
12
+ });
13
+ }
14
+ /**
15
+ * Marshall instaql-result into list of triples. Instaql-result may have
16
+ * multiple datalog-results, each datalog-result may have multiple join-rows
17
+ * and each join-row may have triples.The union of these triples may have
18
+ * duplicates, so we dedup them.
19
+ */
20
+ export function extractTriples(idNodes) {
21
+ const triples = [];
22
+ _extractTriplesHelper(idNodes, triples);
23
+ return triples;
24
+ }
@@ -0,0 +1,2 @@
1
+ import { InstantSchemaDef } from './schemaTypes.ts';
2
+ export declare const parseSchemaFromJSON: (s: any) => InstantSchemaDef<any, any, any>;
@@ -0,0 +1,142 @@
1
+ import { i } from './schema.js';
2
+ export const parseSchemaFromJSON = (s) => {
3
+ // Parse entities
4
+ const entities = {};
5
+ for (const [entityName, entityInfo] of Object.entries(s.entities)) {
6
+ const entityDef = entityInfo;
7
+ const attrs = {};
8
+ // Parse attributes
9
+ for (const [attrName, attrInfo] of Object.entries(entityDef.attrs)) {
10
+ const attrDef = attrInfo;
11
+ let attr;
12
+ // Create the appropriate attribute type
13
+ switch (attrDef.valueType) {
14
+ case 'string':
15
+ attr = i.string();
16
+ break;
17
+ case 'number':
18
+ attr = i.number();
19
+ break;
20
+ case 'boolean':
21
+ attr = i.boolean();
22
+ break;
23
+ case 'date':
24
+ attr = i.date();
25
+ break;
26
+ case 'json':
27
+ attr = i.json();
28
+ break;
29
+ default:
30
+ attr = i.json();
31
+ }
32
+ // Apply modifiers
33
+ if (!attrDef.required) {
34
+ attr = attr.optional();
35
+ }
36
+ if (attrDef.config?.indexed) {
37
+ attr = attr.indexed();
38
+ }
39
+ if (attrDef.config?.unique) {
40
+ attr = attr.unique();
41
+ }
42
+ attrs[attrName] = attr;
43
+ }
44
+ entities[entityName] = i.entity(attrs);
45
+ }
46
+ // Parse links
47
+ const links = s.links || {};
48
+ // Parse rooms
49
+ const rooms = {};
50
+ if (s.rooms) {
51
+ for (const [roomName, roomInfo] of Object.entries(s.rooms)) {
52
+ const roomDef = roomInfo;
53
+ // Parse presence
54
+ const presenceAttrs = {};
55
+ for (const [attrName, attrInfo] of Object.entries(roomDef.presence.attrs)) {
56
+ const attrDef = attrInfo;
57
+ let attr;
58
+ switch (attrDef.valueType) {
59
+ case 'string':
60
+ attr = i.string();
61
+ break;
62
+ case 'number':
63
+ attr = i.number();
64
+ break;
65
+ case 'boolean':
66
+ attr = i.boolean();
67
+ break;
68
+ case 'date':
69
+ attr = i.date();
70
+ break;
71
+ case 'json':
72
+ attr = i.json();
73
+ break;
74
+ default:
75
+ attr = i.json();
76
+ }
77
+ if (!attrDef.required) {
78
+ attr = attr.optional();
79
+ }
80
+ if (attrDef.config?.indexed) {
81
+ attr = attr.indexed();
82
+ }
83
+ if (attrDef.config?.unique) {
84
+ attr = attr.unique();
85
+ }
86
+ presenceAttrs[attrName] = attr;
87
+ }
88
+ // Parse topics
89
+ const topics = {};
90
+ if (roomDef.topics) {
91
+ for (const [topicName, topicInfo] of Object.entries(roomDef.topics)) {
92
+ const topicDef = topicInfo;
93
+ const topicAttrs = {};
94
+ for (const [attrName, attrInfo] of Object.entries(topicDef.attrs)) {
95
+ const attrDef = attrInfo;
96
+ let attr;
97
+ switch (attrDef.valueType) {
98
+ case 'string':
99
+ attr = i.string();
100
+ break;
101
+ case 'number':
102
+ attr = i.number();
103
+ break;
104
+ case 'boolean':
105
+ attr = i.boolean();
106
+ break;
107
+ case 'date':
108
+ attr = i.date();
109
+ break;
110
+ case 'json':
111
+ attr = i.json();
112
+ break;
113
+ default:
114
+ attr = i.json();
115
+ }
116
+ if (!attrDef.required) {
117
+ attr = attr.optional();
118
+ }
119
+ if (attrDef.config?.indexed) {
120
+ attr = attr.indexed();
121
+ }
122
+ if (attrDef.config?.unique) {
123
+ attr = attr.unique();
124
+ }
125
+ topicAttrs[attrName] = attr;
126
+ }
127
+ topics[topicName] = i.entity(topicAttrs);
128
+ }
129
+ }
130
+ rooms[roomName] = {
131
+ presence: i.entity(presenceAttrs),
132
+ topics,
133
+ };
134
+ }
135
+ }
136
+ const resultingSchema = i.schema({
137
+ entities,
138
+ links,
139
+ rooms,
140
+ });
141
+ return resultingSchema;
142
+ };
@@ -0,0 +1,50 @@
1
+ export type RoomSchemaShape = {
2
+ [k: string]: {
3
+ presence?: {
4
+ [k: string]: any;
5
+ };
6
+ topics?: {
7
+ [k: string]: {
8
+ [k: string]: any;
9
+ };
10
+ };
11
+ };
12
+ };
13
+ export type PresenceOpts<PresenceShape, Keys extends keyof PresenceShape> = {
14
+ user?: boolean;
15
+ peers?: string[];
16
+ keys?: Keys[];
17
+ /**
18
+ * If you haven't joined this room yet, initialPresence lets you set
19
+ * the very first presence state for the user.
20
+ */
21
+ initialPresence?: Partial<PresenceShape>;
22
+ /** @deprecated use `initialPresence` */
23
+ initialData?: Partial<PresenceShape>;
24
+ };
25
+ type PresencePeer<PresenceShape, Keys extends keyof PresenceShape> = Pick<PresenceShape, Keys> & {
26
+ peerId: string;
27
+ };
28
+ export type PresenceSlice<PresenceShape, Keys extends keyof PresenceShape> = {
29
+ user?: PresencePeer<PresenceShape, Keys>;
30
+ peers: {
31
+ [peerId: string]: PresencePeer<PresenceShape, Keys>;
32
+ };
33
+ };
34
+ export type PresenceResponse<PresenceShape, Keys extends keyof PresenceShape> = PresenceSlice<PresenceShape, Keys> & {
35
+ isLoading: boolean;
36
+ error?: string;
37
+ };
38
+ export declare function buildPresenceSlice<PresenceShape, Keys extends keyof PresenceShape>(data: {
39
+ user?: PresenceShape;
40
+ peers: Record<string, PresenceShape>;
41
+ }, opts: PresenceOpts<PresenceShape, Keys>, userPeerId: string): PresenceSlice<PresenceShape, Keys>;
42
+ /**
43
+ * Compare two presence slices
44
+ * 0. compare isLoading and error
45
+ * 1. shallow compare user
46
+ * 2. compare peers keys
47
+ * 3. shallow compare each peer
48
+ */
49
+ export declare function hasPresenceResponseChanged<PresenceShape, Keys extends keyof PresenceShape>(a: PresenceResponse<PresenceShape, Keys>, b: PresenceResponse<PresenceShape, Keys>): boolean;
50
+ export {};
@@ -0,0 +1,50 @@
1
+ import { pick } from './utils/pick.js';
2
+ import { areObjectsShallowEqual, areObjectKeysEqual } from './utils/object.js';
3
+ export function buildPresenceSlice(data, opts, userPeerId) {
4
+ const slice = {
5
+ peers: {},
6
+ };
7
+ const includeUser = opts && 'user' in opts ? opts.user : true;
8
+ if (includeUser) {
9
+ const user = pick(data.user ?? {}, opts?.keys);
10
+ slice.user = { ...user, peerId: userPeerId };
11
+ }
12
+ for (const id of Object.keys(data.peers ?? {})) {
13
+ const shouldIncludeAllPeers = opts?.peers === undefined;
14
+ const isPeerIncluded = Array.isArray(opts?.peers) && opts?.peers.includes(id);
15
+ if (shouldIncludeAllPeers || isPeerIncluded) {
16
+ const peer = pick(data.peers[id], opts?.keys);
17
+ slice.peers[id] = { ...peer, peerId: id };
18
+ }
19
+ }
20
+ return slice;
21
+ }
22
+ /**
23
+ * Compare two presence slices
24
+ * 0. compare isLoading and error
25
+ * 1. shallow compare user
26
+ * 2. compare peers keys
27
+ * 3. shallow compare each peer
28
+ */
29
+ export function hasPresenceResponseChanged(a, b) {
30
+ if (a.isLoading !== b.isLoading)
31
+ return true;
32
+ if (a.error !== b.error)
33
+ return true;
34
+ if (a.user || b.user) {
35
+ if (!a.user || !b.user)
36
+ return true;
37
+ const same = areObjectsShallowEqual(a.user, b.user);
38
+ if (!same)
39
+ return true;
40
+ }
41
+ const sameKeys = areObjectKeysEqual(a.peers, b.peers);
42
+ if (!sameKeys)
43
+ return true;
44
+ for (const id of Object.keys(a.peers)) {
45
+ const same = areObjectsShallowEqual(a.peers[id], b.peers[id]);
46
+ if (!same)
47
+ return true;
48
+ }
49
+ return false;
50
+ }
@@ -0,0 +1,9 @@
1
+ import type { Expand } from './queryTypes.ts';
2
+ import type { EntityDef, ResolveEntityAttrs, RoomsDef } from './schemaTypes.ts';
3
+ type ExtractPresenceAttrs<PresenceEntity> = PresenceEntity extends EntityDef<any, any, any> ? ResolveEntityAttrs<PresenceEntity> : never;
4
+ export type PresencePeer<Schema extends {
5
+ rooms: RoomsDef;
6
+ }, RoomType extends Extract<keyof Schema['rooms'], string>> = Expand<ExtractPresenceAttrs<Schema['rooms'][RoomType]['presence']> & {
7
+ peerId: string;
8
+ }>;
9
+ export {};
@@ -0,0 +1,3 @@
1
+ // Presence Utility Types
2
+ // ---------------------
3
+ export {};