@iota-uz/sdk 0.4.44 → 0.5.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 (406) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -142
  3. package/dist/client-host/applet.d.ts +52 -0
  4. package/dist/client-host/applet.d.ts.map +1 -0
  5. package/dist/client-host/applet.js +24 -0
  6. package/dist/client-host/cache.d.ts +15 -0
  7. package/dist/client-host/cache.d.ts.map +1 -0
  8. package/dist/client-host/cache.js +27 -0
  9. package/dist/client-host/errors.d.ts +16 -0
  10. package/dist/client-host/errors.d.ts.map +1 -0
  11. package/dist/client-host/errors.js +45 -0
  12. package/dist/client-host/identity.d.ts +21 -0
  13. package/dist/client-host/identity.d.ts.map +1 -0
  14. package/dist/client-host/identity.js +28 -0
  15. package/dist/client-host/index.d.ts +11 -0
  16. package/dist/client-host/index.d.ts.map +1 -0
  17. package/dist/client-host/index.js +10 -0
  18. package/dist/client-host/portals.d.ts +30 -0
  19. package/dist/client-host/portals.d.ts.map +1 -0
  20. package/dist/client-host/portals.js +149 -0
  21. package/dist/client-host/protocol.d.ts +2 -0
  22. package/dist/client-host/protocol.d.ts.map +1 -0
  23. package/dist/client-host/protocol.js +2 -0
  24. package/dist/client-host/route.d.ts +29 -0
  25. package/dist/client-host/route.d.ts.map +1 -0
  26. package/dist/client-host/route.js +32 -0
  27. package/dist/client-host/rpc.d.ts +46 -0
  28. package/dist/client-host/rpc.d.ts.map +1 -0
  29. package/dist/client-host/rpc.js +90 -0
  30. package/dist/client-host/streaming.d.ts +43 -0
  31. package/dist/client-host/streaming.d.ts.map +1 -0
  32. package/dist/client-host/streaming.js +141 -0
  33. package/dist/client-host/transport.d.ts +26 -0
  34. package/dist/client-host/transport.d.ts.map +1 -0
  35. package/dist/client-host/transport.js +53 -0
  36. package/dist/lens/CascadePanel-DqOZFdR-.js +512 -0
  37. package/dist/lens/ChartDataEquivalent-BFDdHoQn.js +52 -0
  38. package/dist/lens/ChartHost-Bl2lxIqU.js +68 -0
  39. package/dist/lens/ChartPanel-CTIp_4YE.js +720 -0
  40. package/dist/lens/CoveragePanel-DZZWkjSv.js +131 -0
  41. package/dist/lens/DashboardPanels.d.ts +36 -0
  42. package/dist/lens/DashboardPanels.d.ts.map +1 -0
  43. package/dist/lens/GaugePanel-BcNdd_Wj.js +43 -0
  44. package/dist/lens/LensDashboard.d.ts +21 -0
  45. package/dist/lens/LensDashboard.d.ts.map +1 -0
  46. package/dist/lens/MapPanel-6sI_Ei9L.js +178 -0
  47. package/dist/lens/MetricFlowPanel-LzqevSPs.js +70 -0
  48. package/dist/lens/MetricHierarchyPanel-h6tJqRPg.js +72 -0
  49. package/dist/lens/MetricRelationshipPanel-CgckUvvJ.js +54 -0
  50. package/dist/lens/PrintReport-DJv4Rm_U.js +1351 -0
  51. package/dist/lens/TablePanel-Dh6bXlwM.js +619 -0
  52. package/dist/lens/adapter-zBDC8hbZ.js +29093 -0
  53. package/dist/lens/breakpoints.d.ts +37 -0
  54. package/dist/lens/breakpoints.d.ts.map +1 -0
  55. package/dist/lens/charts/adapter.d.ts +157 -0
  56. package/dist/lens/charts/adapter.d.ts.map +1 -0
  57. package/dist/lens/charts/echarts/adapter.d.ts +9 -0
  58. package/dist/lens/charts/echarts/adapter.d.ts.map +1 -0
  59. package/dist/lens/charts/echarts/distributions.d.ts +9 -0
  60. package/dist/lens/charts/echarts/distributions.d.ts.map +1 -0
  61. package/dist/lens/charts/echarts/events.d.ts +7 -0
  62. package/dist/lens/charts/echarts/events.d.ts.map +1 -0
  63. package/dist/lens/charts/echarts/options.d.ts +163 -0
  64. package/dist/lens/charts/echarts/options.d.ts.map +1 -0
  65. package/dist/lens/charts/echarts/theme.d.ts +49 -0
  66. package/dist/lens/charts/echarts/theme.d.ts.map +1 -0
  67. package/dist/lens/charts/echarts/tooltip.d.ts +79 -0
  68. package/dist/lens/charts/echarts/tooltip.d.ts.map +1 -0
  69. package/dist/lens/charts/index.d.ts +9 -0
  70. package/dist/lens/charts/index.d.ts.map +1 -0
  71. package/dist/lens/charts/keys.d.ts +8 -0
  72. package/dist/lens/charts/keys.d.ts.map +1 -0
  73. package/dist/lens/charts/overlays.d.ts +134 -0
  74. package/dist/lens/charts/overlays.d.ts.map +1 -0
  75. package/dist/lens/charts/palette.d.ts +54 -0
  76. package/dist/lens/charts/palette.d.ts.map +1 -0
  77. package/dist/lens/charts/scales.d.ts +26 -0
  78. package/dist/lens/charts/scales.d.ts.map +1 -0
  79. package/dist/lens/charts/shares.d.ts +44 -0
  80. package/dist/lens/charts/shares.d.ts.map +1 -0
  81. package/dist/lens/charts/text.d.ts +23 -0
  82. package/dist/lens/charts/text.d.ts.map +1 -0
  83. package/dist/lens/contract/index.d.ts +4 -0
  84. package/dist/lens/contract/index.d.ts.map +1 -0
  85. package/dist/lens/contract/palette.d.ts +13 -0
  86. package/dist/lens/contract/palette.d.ts.map +1 -0
  87. package/dist/lens/contract/schemas.d.ts +132 -0
  88. package/dist/lens/contract/schemas.d.ts.map +1 -0
  89. package/dist/lens/contract/types.d.ts +788 -0
  90. package/dist/lens/contract/types.d.ts.map +1 -0
  91. package/dist/lens/controls/Calendar.d.ts +24 -0
  92. package/dist/lens/controls/Calendar.d.ts.map +1 -0
  93. package/dist/lens/controls/CompareFilterControl.d.ts +23 -0
  94. package/dist/lens/controls/CompareFilterControl.d.ts.map +1 -0
  95. package/dist/lens/controls/FacetFilterMenu.d.ts +29 -0
  96. package/dist/lens/controls/FacetFilterMenu.d.ts.map +1 -0
  97. package/dist/lens/controls/FilterBar.d.ts +30 -0
  98. package/dist/lens/controls/FilterBar.d.ts.map +1 -0
  99. package/dist/lens/controls/PeriodFilterControl.d.ts +50 -0
  100. package/dist/lens/controls/PeriodFilterControl.d.ts.map +1 -0
  101. package/dist/lens/controls/SegmentedFilterControl.d.ts +22 -0
  102. package/dist/lens/controls/SegmentedFilterControl.d.ts.map +1 -0
  103. package/dist/lens/controls/facetOptions.d.ts +33 -0
  104. package/dist/lens/controls/facetOptions.d.ts.map +1 -0
  105. package/dist/lens/controls/index.d.ts +6 -0
  106. package/dist/lens/controls/index.d.ts.map +1 -0
  107. package/dist/lens/controls/model.d.ts +181 -0
  108. package/dist/lens/controls/model.d.ts.map +1 -0
  109. package/dist/lens/drillPrefetch-Bs-6Oyxa.js +68 -0
  110. package/dist/lens/element.d.ts +12 -0
  111. package/dist/lens/element.d.ts.map +1 -0
  112. package/dist/lens/explore/ContextMiniChart.d.ts +18 -0
  113. package/dist/lens/explore/ContextMiniChart.d.ts.map +1 -0
  114. package/dist/lens/explore/DrillOverlay.d.ts +66 -0
  115. package/dist/lens/explore/DrillOverlay.d.ts.map +1 -0
  116. package/dist/lens/explore/ExplorePanel.d.ts +8 -0
  117. package/dist/lens/explore/ExplorePanel.d.ts.map +1 -0
  118. package/dist/lens/explore/FocusContextHeader.d.ts +20 -0
  119. package/dist/lens/explore/FocusContextHeader.d.ts.map +1 -0
  120. package/dist/lens/explore/LensSelector.d.ts +17 -0
  121. package/dist/lens/explore/LensSelector.d.ts.map +1 -0
  122. package/dist/lens/explore/SourceDataDisclosure.d.ts +15 -0
  123. package/dist/lens/explore/SourceDataDisclosure.d.ts.map +1 -0
  124. package/dist/lens/explore/actions.d.ts +22 -0
  125. package/dist/lens/explore/actions.d.ts.map +1 -0
  126. package/dist/lens/explore/focusModel.d.ts +55 -0
  127. package/dist/lens/explore/focusModel.d.ts.map +1 -0
  128. package/dist/lens/explore/index.d.ts +9 -0
  129. package/dist/lens/explore/index.d.ts.map +1 -0
  130. package/dist/lens/explore/model.d.ts +59 -0
  131. package/dist/lens/explore/model.d.ts.map +1 -0
  132. package/dist/lens/export-B0U20F4u.js +57 -0
  133. package/dist/lens/icons.d.ts +103 -0
  134. package/dist/lens/icons.d.ts.map +1 -0
  135. package/dist/lens/idlePrefetch-Bi4Wk1uR.js +80 -0
  136. package/dist/lens/index-C45DAO6w.js +10883 -0
  137. package/dist/lens/index-CspKnSQn.js +11 -0
  138. package/dist/lens/index.d.ts +7 -0
  139. package/dist/lens/index.d.ts.map +1 -0
  140. package/dist/lens/index.js +17 -0
  141. package/dist/lens/install-3GLgv_LN.js +2028 -0
  142. package/dist/lens/install-B5oSx3pv.js +233 -0
  143. package/dist/lens/install-DT0AQkUj.js +1490 -0
  144. package/dist/lens/install-DyXK20dR.js +307 -0
  145. package/dist/lens/keys-DenV5HsJ.js +12 -0
  146. package/dist/lens/listSearch.d.ts +12 -0
  147. package/dist/lens/listSearch.d.ts.map +1 -0
  148. package/dist/lens/metricViews-QvoFHVdh.js +170 -0
  149. package/dist/lens/panels/CascadePanel.d.ts +138 -0
  150. package/dist/lens/panels/CascadePanel.d.ts.map +1 -0
  151. package/dist/lens/panels/ChartDataEquivalent.d.ts +23 -0
  152. package/dist/lens/panels/ChartDataEquivalent.d.ts.map +1 -0
  153. package/dist/lens/panels/ChartHost.d.ts +14 -0
  154. package/dist/lens/panels/ChartHost.d.ts.map +1 -0
  155. package/dist/lens/panels/ChartPanel.d.ts +29 -0
  156. package/dist/lens/panels/ChartPanel.d.ts.map +1 -0
  157. package/dist/lens/panels/CopyValueButton.d.ts +15 -0
  158. package/dist/lens/panels/CopyValueButton.d.ts.map +1 -0
  159. package/dist/lens/panels/CoveragePanel.d.ts +17 -0
  160. package/dist/lens/panels/CoveragePanel.d.ts.map +1 -0
  161. package/dist/lens/panels/ExportMenu.d.ts +12 -0
  162. package/dist/lens/panels/ExportMenu.d.ts.map +1 -0
  163. package/dist/lens/panels/GaugePanel.d.ts +6 -0
  164. package/dist/lens/panels/GaugePanel.d.ts.map +1 -0
  165. package/dist/lens/panels/InfoTip.d.ts +50 -0
  166. package/dist/lens/panels/InfoTip.d.ts.map +1 -0
  167. package/dist/lens/panels/MapPanel.d.ts +17 -0
  168. package/dist/lens/panels/MapPanel.d.ts.map +1 -0
  169. package/dist/lens/panels/MetricFlowPanel.d.ts +6 -0
  170. package/dist/lens/panels/MetricFlowPanel.d.ts.map +1 -0
  171. package/dist/lens/panels/MetricHierarchyPanel.d.ts +6 -0
  172. package/dist/lens/panels/MetricHierarchyPanel.d.ts.map +1 -0
  173. package/dist/lens/panels/MetricRelationshipPanel.d.ts +14 -0
  174. package/dist/lens/panels/MetricRelationshipPanel.d.ts.map +1 -0
  175. package/dist/lens/panels/PanelExportMenu.d.ts +5 -0
  176. package/dist/lens/panels/PanelExportMenu.d.ts.map +1 -0
  177. package/dist/lens/panels/PanelFrame.d.ts +42 -0
  178. package/dist/lens/panels/PanelFrame.d.ts.map +1 -0
  179. package/dist/lens/panels/PanelOverlay.d.ts +19 -0
  180. package/dist/lens/panels/PanelOverlay.d.ts.map +1 -0
  181. package/dist/lens/panels/QualityChip.d.ts +51 -0
  182. package/dist/lens/panels/QualityChip.d.ts.map +1 -0
  183. package/dist/lens/panels/ShareSliceButton.d.ts +3 -0
  184. package/dist/lens/panels/ShareSliceButton.d.ts.map +1 -0
  185. package/dist/lens/panels/Skeleton.d.ts +67 -0
  186. package/dist/lens/panels/Skeleton.d.ts.map +1 -0
  187. package/dist/lens/panels/StatPanel.d.ts +52 -0
  188. package/dist/lens/panels/StatPanel.d.ts.map +1 -0
  189. package/dist/lens/panels/StatValueTicker.d.ts +27 -0
  190. package/dist/lens/panels/StatValueTicker.d.ts.map +1 -0
  191. package/dist/lens/panels/TablePanel.d.ts +19 -0
  192. package/dist/lens/panels/TablePanel.d.ts.map +1 -0
  193. package/dist/lens/panels/WaterfallPlot.d.ts +51 -0
  194. package/dist/lens/panels/WaterfallPlot.d.ts.map +1 -0
  195. package/dist/lens/panels/actions.d.ts +75 -0
  196. package/dist/lens/panels/actions.d.ts.map +1 -0
  197. package/dist/lens/panels/context.d.ts +32 -0
  198. package/dist/lens/panels/context.d.ts.map +1 -0
  199. package/dist/lens/panels/data.d.ts +95 -0
  200. package/dist/lens/panels/data.d.ts.map +1 -0
  201. package/dist/lens/panels/kinds.d.ts +4 -0
  202. package/dist/lens/panels/kinds.d.ts.map +1 -0
  203. package/dist/lens/panels/metricViews.d.ts +79 -0
  204. package/dist/lens/panels/metricViews.d.ts.map +1 -0
  205. package/dist/lens/panels/registry.d.ts +45 -0
  206. package/dist/lens/panels/registry.d.ts.map +1 -0
  207. package/dist/lens/panels/useIsClamped.d.ts +16 -0
  208. package/dist/lens/panels/useIsClamped.d.ts.map +1 -0
  209. package/dist/lens/panels/useMenuButton.d.ts +68 -0
  210. package/dist/lens/panels/useMenuButton.d.ts.map +1 -0
  211. package/dist/lens/prefetch-Dov5CBoH.js +74 -0
  212. package/dist/lens/prefetchPanels-B7bIY0bM.js +31 -0
  213. package/dist/lens/print/PrintReport.d.ts +12 -0
  214. package/dist/lens/print/PrintReport.d.ts.map +1 -0
  215. package/dist/lens/print/footnotes.d.ts +29 -0
  216. package/dist/lens/print/footnotes.d.ts.map +1 -0
  217. package/dist/lens/print/formula.d.ts +9 -0
  218. package/dist/lens/print/formula.d.ts.map +1 -0
  219. package/dist/lens/print/narrative.d.ts +41 -0
  220. package/dist/lens/print/narrative.d.ts.map +1 -0
  221. package/dist/lens/print/outline.d.ts +94 -0
  222. package/dist/lens/print/outline.d.ts.map +1 -0
  223. package/dist/lens/print/palette.d.ts +23 -0
  224. package/dist/lens/print/palette.d.ts.map +1 -0
  225. package/dist/lens/print/quality.d.ts +32 -0
  226. package/dist/lens/print/quality.d.ts.map +1 -0
  227. package/dist/lens/print/units.d.ts +23 -0
  228. package/dist/lens/print/units.d.ts.map +1 -0
  229. package/dist/lens/print/values.d.ts +28 -0
  230. package/dist/lens/print/values.d.ts.map +1 -0
  231. package/dist/lens/print-CwcB0fug.js +216 -0
  232. package/dist/lens/runtime/clipboard.d.ts +11 -0
  233. package/dist/lens/runtime/clipboard.d.ts.map +1 -0
  234. package/dist/lens/runtime/document.d.ts +9 -0
  235. package/dist/lens/runtime/document.d.ts.map +1 -0
  236. package/dist/lens/runtime/drawer.d.ts +21 -0
  237. package/dist/lens/runtime/drawer.d.ts.map +1 -0
  238. package/dist/lens/runtime/drill.d.ts +54 -0
  239. package/dist/lens/runtime/drill.d.ts.map +1 -0
  240. package/dist/lens/runtime/drillPrefetch.d.ts +22 -0
  241. package/dist/lens/runtime/drillPrefetch.d.ts.map +1 -0
  242. package/dist/lens/runtime/export.d.ts +21 -0
  243. package/dist/lens/runtime/export.d.ts.map +1 -0
  244. package/dist/lens/runtime/filters.d.ts +51 -0
  245. package/dist/lens/runtime/filters.d.ts.map +1 -0
  246. package/dist/lens/runtime/focusTrap.d.ts +4 -0
  247. package/dist/lens/runtime/focusTrap.d.ts.map +1 -0
  248. package/dist/lens/runtime/format.d.ts +81 -0
  249. package/dist/lens/runtime/format.d.ts.map +1 -0
  250. package/dist/lens/runtime/idlePrefetch.d.ts +35 -0
  251. package/dist/lens/runtime/idlePrefetch.d.ts.map +1 -0
  252. package/dist/lens/runtime/index.d.ts +15 -0
  253. package/dist/lens/runtime/index.d.ts.map +1 -0
  254. package/dist/lens/runtime/navigate.d.ts +12 -0
  255. package/dist/lens/runtime/navigate.d.ts.map +1 -0
  256. package/dist/lens/runtime/navigation.d.ts +77 -0
  257. package/dist/lens/runtime/navigation.d.ts.map +1 -0
  258. package/dist/lens/runtime/overlayContainer.d.ts +24 -0
  259. package/dist/lens/runtime/overlayContainer.d.ts.map +1 -0
  260. package/dist/lens/runtime/panel.d.ts +47 -0
  261. package/dist/lens/runtime/panel.d.ts.map +1 -0
  262. package/dist/lens/runtime/panelImage.d.ts +28 -0
  263. package/dist/lens/runtime/panelImage.d.ts.map +1 -0
  264. package/dist/lens/runtime/prefetch.d.ts +48 -0
  265. package/dist/lens/runtime/prefetch.d.ts.map +1 -0
  266. package/dist/lens/runtime/prefetchPanels.d.ts +17 -0
  267. package/dist/lens/runtime/prefetchPanels.d.ts.map +1 -0
  268. package/dist/lens/runtime/print.d.ts +50 -0
  269. package/dist/lens/runtime/print.d.ts.map +1 -0
  270. package/dist/lens/runtime/provider.d.ts +195 -0
  271. package/dist/lens/runtime/provider.d.ts.map +1 -0
  272. package/dist/lens/runtime/query.d.ts +32 -0
  273. package/dist/lens/runtime/query.d.ts.map +1 -0
  274. package/dist/lens/runtime/recovery.d.ts +26 -0
  275. package/dist/lens/runtime/recovery.d.ts.map +1 -0
  276. package/dist/lens/runtime/snapshotLease.d.ts +2 -0
  277. package/dist/lens/runtime/snapshotLease.d.ts.map +1 -0
  278. package/dist/lens/runtime/theme.d.ts +4 -0
  279. package/dist/lens/runtime/theme.d.ts.map +1 -0
  280. package/dist/lens/runtime/url.d.ts +23 -0
  281. package/dist/lens/runtime/url.d.ts.map +1 -0
  282. package/dist/lens/scales-DKkoQGtJ.js +195 -0
  283. package/dist/lens/snapshotLease-LjBaqKs-.js +14 -0
  284. package/dist/lens/style.css +1 -0
  285. package/dist/lens/visualRegression.d.ts +2 -0
  286. package/dist/lens/visualRegression.d.ts.map +1 -0
  287. package/dist/sdk-identity.cjs +6 -0
  288. package/dist/sdk-identity.d.ts +4 -0
  289. package/dist/sdk-identity.js +4 -0
  290. package/dist/sdk-identity.json +5 -0
  291. package/package.json +22 -123
  292. package/assets/fonts/Actay/Actay-Regular.otf +0 -0
  293. package/assets/fonts/Actay/Actay-RegularItalic.otf +0 -0
  294. package/assets/fonts/Actay/ActayCondensed-Thin.otf +0 -0
  295. package/assets/fonts/Actay/ActayCondensed-ThinItalic.otf +0 -0
  296. package/assets/fonts/Actay/ActayWide-Bold.otf +0 -0
  297. package/assets/fonts/Actay/ActayWide-BoldItalic.otf +0 -0
  298. package/assets/fonts/Gilroy/Gilroy-Black.woff2 +0 -0
  299. package/assets/fonts/Gilroy/Gilroy-BlackItalic.woff2 +0 -0
  300. package/assets/fonts/Gilroy/Gilroy-Bold.woff2 +0 -0
  301. package/assets/fonts/Gilroy/Gilroy-BoldItalic.woff2 +0 -0
  302. package/assets/fonts/Gilroy/Gilroy-Extrabold.woff2 +0 -0
  303. package/assets/fonts/Gilroy/Gilroy-ExtraboldItalic.woff2 +0 -0
  304. package/assets/fonts/Gilroy/Gilroy-Heavy.woff2 +0 -0
  305. package/assets/fonts/Gilroy/Gilroy-HeavyItalic.woff2 +0 -0
  306. package/assets/fonts/Gilroy/Gilroy-Light.woff2 +0 -0
  307. package/assets/fonts/Gilroy/Gilroy-LightItalic.woff2 +0 -0
  308. package/assets/fonts/Gilroy/Gilroy-Medium.woff2 +0 -0
  309. package/assets/fonts/Gilroy/Gilroy-MediumItalic.woff2 +0 -0
  310. package/assets/fonts/Gilroy/Gilroy-Regular.woff2 +0 -0
  311. package/assets/fonts/Gilroy/Gilroy-RegularItalic.woff2 +0 -0
  312. package/assets/fonts/Gilroy/Gilroy-Semibold.woff2 +0 -0
  313. package/assets/fonts/Gilroy/Gilroy-SemiboldItalic.woff2 +0 -0
  314. package/assets/fonts/Gilroy/Gilroy-Thin.woff2 +0 -0
  315. package/assets/fonts/Gilroy/Gilroy-ThinItalic.woff2 +0 -0
  316. package/assets/fonts/Gilroy/Gilroy-UltraLight.woff2 +0 -0
  317. package/assets/fonts/Gilroy/Gilroy-UltraLightItalic.woff2 +0 -0
  318. package/assets/fonts/Inter.var.woff2 +0 -0
  319. package/dist/applet/core.cjs +0 -412
  320. package/dist/applet/core.cjs.map +0 -1
  321. package/dist/applet/core.d.cts +0 -187
  322. package/dist/applet/core.d.ts +0 -187
  323. package/dist/applet/core.mjs +0 -396
  324. package/dist/applet/core.mjs.map +0 -1
  325. package/dist/applet/devtools.cjs +0 -147
  326. package/dist/applet/devtools.cjs.map +0 -1
  327. package/dist/applet/devtools.d.cts +0 -7
  328. package/dist/applet/devtools.d.ts +0 -7
  329. package/dist/applet/devtools.mjs +0 -144
  330. package/dist/applet/devtools.mjs.map +0 -1
  331. package/dist/applet/host.cjs +0 -397
  332. package/dist/applet/host.cjs.map +0 -1
  333. package/dist/applet/host.d.cts +0 -42
  334. package/dist/applet/host.d.ts +0 -42
  335. package/dist/applet/host.mjs +0 -392
  336. package/dist/applet/host.mjs.map +0 -1
  337. package/dist/applet/vite.cjs +0 -219
  338. package/dist/applet/vite.cjs.map +0 -1
  339. package/dist/applet/vite.d.cts +0 -99
  340. package/dist/applet/vite.d.ts +0 -99
  341. package/dist/applet/vite.mjs +0 -203
  342. package/dist/applet/vite.mjs.map +0 -1
  343. package/dist/applet-runtime/index.cjs +0 -890
  344. package/dist/applet-runtime/index.cjs.map +0 -1
  345. package/dist/applet-runtime/index.d.cts +0 -191
  346. package/dist/applet-runtime/index.d.ts +0 -191
  347. package/dist/applet-runtime/index.mjs +0 -876
  348. package/dist/applet-runtime/index.mjs.map +0 -1
  349. package/dist/bichat/index.cjs +0 -20896
  350. package/dist/bichat/index.cjs.map +0 -1
  351. package/dist/bichat/index.css +0 -618
  352. package/dist/bichat/index.css.map +0 -1
  353. package/dist/bichat/index.d.cts +0 -4522
  354. package/dist/bichat/index.d.ts +0 -4522
  355. package/dist/bichat/index.mjs +0 -20724
  356. package/dist/bichat/index.mjs.map +0 -1
  357. package/dist/bichat/styles.css +0 -774
  358. package/dist/bichat/tailwind.cjs +0 -103
  359. package/dist/bichat/tailwind.cjs.map +0 -1
  360. package/dist/bichat/tailwind.d.cts +0 -21
  361. package/dist/bichat/tailwind.d.ts +0 -21
  362. package/dist/bichat/tailwind.mjs +0 -95
  363. package/dist/bichat/tailwind.mjs.map +0 -1
  364. package/dist/fonts/Actay/Actay-Regular.otf +0 -0
  365. package/dist/fonts/Actay/Actay-RegularItalic.otf +0 -0
  366. package/dist/fonts/Actay/ActayCondensed-Thin.otf +0 -0
  367. package/dist/fonts/Actay/ActayCondensed-ThinItalic.otf +0 -0
  368. package/dist/fonts/Actay/ActayWide-Bold.otf +0 -0
  369. package/dist/fonts/Actay/ActayWide-BoldItalic.otf +0 -0
  370. package/dist/fonts/Gilroy/Gilroy-Black.woff2 +0 -0
  371. package/dist/fonts/Gilroy/Gilroy-BlackItalic.woff2 +0 -0
  372. package/dist/fonts/Gilroy/Gilroy-Bold.woff2 +0 -0
  373. package/dist/fonts/Gilroy/Gilroy-BoldItalic.woff2 +0 -0
  374. package/dist/fonts/Gilroy/Gilroy-Extrabold.woff2 +0 -0
  375. package/dist/fonts/Gilroy/Gilroy-ExtraboldItalic.woff2 +0 -0
  376. package/dist/fonts/Gilroy/Gilroy-Heavy.woff2 +0 -0
  377. package/dist/fonts/Gilroy/Gilroy-HeavyItalic.woff2 +0 -0
  378. package/dist/fonts/Gilroy/Gilroy-Light.woff2 +0 -0
  379. package/dist/fonts/Gilroy/Gilroy-LightItalic.woff2 +0 -0
  380. package/dist/fonts/Gilroy/Gilroy-Medium.woff2 +0 -0
  381. package/dist/fonts/Gilroy/Gilroy-MediumItalic.woff2 +0 -0
  382. package/dist/fonts/Gilroy/Gilroy-Regular.woff2 +0 -0
  383. package/dist/fonts/Gilroy/Gilroy-RegularItalic.woff2 +0 -0
  384. package/dist/fonts/Gilroy/Gilroy-Semibold.woff2 +0 -0
  385. package/dist/fonts/Gilroy/Gilroy-SemiboldItalic.woff2 +0 -0
  386. package/dist/fonts/Gilroy/Gilroy-Thin.woff2 +0 -0
  387. package/dist/fonts/Gilroy/Gilroy-ThinItalic.woff2 +0 -0
  388. package/dist/fonts/Gilroy/Gilroy-UltraLight.woff2 +0 -0
  389. package/dist/fonts/Gilroy/Gilroy-UltraLightItalic.woff2 +0 -0
  390. package/dist/fonts/Inter.var.woff2 +0 -0
  391. package/dist/index-Cs_xWkhC.d.cts +0 -84
  392. package/dist/index-Cs_xWkhC.d.ts +0 -84
  393. package/dist/index.cjs +0 -777
  394. package/dist/index.cjs.map +0 -1
  395. package/dist/index.d.cts +0 -7
  396. package/dist/index.d.ts +0 -7
  397. package/dist/index.mjs +0 -755
  398. package/dist/index.mjs.map +0 -1
  399. package/dist/rpc-fh942_dj.d.cts +0 -31
  400. package/dist/rpc-fh942_dj.d.ts +0 -31
  401. package/tailwind/compiled.css +0 -2
  402. package/tailwind/create-config.cjs +0 -90
  403. package/tailwind/iota.css +0 -1195
  404. package/tailwind/main.css +0 -2
  405. package/tailwind/sdk-content.cjs +0 -177
  406. package/tailwind/sdk-theme.cjs +0 -120
@@ -0,0 +1,2 @@
1
+ // GENERATED — do not edit
2
+ export const CLIENT_HOST_PROTOCOL_VERSION = "1.0.0";
@@ -0,0 +1,29 @@
1
+ import type { ComponentType } from 'react';
2
+ import { type WidgetSlotName } from './portals';
3
+ export declare class ClientHostProtocolError extends Error {
4
+ readonly expected: string;
5
+ readonly actual: string;
6
+ constructor(expected: string, actual: string);
7
+ }
8
+ export interface ClientRouteContext<TInitial = unknown> {
9
+ protocolVersion: string;
10
+ sdkReleaseVersion: string;
11
+ sdkCommit: string;
12
+ initial: TInitial;
13
+ theme: 'light' | 'dark';
14
+ csrf?: string;
15
+ }
16
+ export interface MountClientRouteOptions<TInitial, TProps extends object> {
17
+ root: HTMLElement;
18
+ portals: HTMLElement;
19
+ background?: HTMLElement;
20
+ widgetSlots?: Partial<Record<WidgetSlotName, HTMLElement>>;
21
+ component: ComponentType<TProps & {
22
+ route: ClientRouteContext<TInitial>;
23
+ }>;
24
+ props: TProps;
25
+ context: ClientRouteContext<TInitial>;
26
+ }
27
+ export declare function assertClientHostProtocol(actual: string): void;
28
+ export declare function mountClientRoute<TInitial, TProps extends object>(options: MountClientRouteOptions<TInitial, TProps>): () => void;
29
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../src/route.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,WAAW,CAAA;AAInE,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAzC,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,MAAM;CAI/D;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ,GAAG,OAAO;IACpD,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,QAAQ,CAAA;IACjB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB,CAAC,QAAQ,EAAE,MAAM,SAAS,MAAM;IACtE,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,WAAW,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;IAC1D,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG;QAAE,KAAK,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAC,CAAA;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAA;CACtC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI7D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,SAAS,MAAM,EAAE,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAehI"}
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createRoot } from 'react-dom/client';
3
+ import { ClientHostProvider } from './portals';
4
+ import { assertSDKIdentity } from './identity';
5
+ import { CLIENT_HOST_PROTOCOL_VERSION } from './protocol';
6
+ export class ClientHostProtocolError extends Error {
7
+ expected;
8
+ actual;
9
+ constructor(expected, actual) {
10
+ super(`Client host protocol ${actual} is incompatible with ${expected}`);
11
+ this.expected = expected;
12
+ this.actual = actual;
13
+ this.name = 'ClientHostProtocolError';
14
+ }
15
+ }
16
+ export function assertClientHostProtocol(actual) {
17
+ if (actual.split('.', 1)[0] !== CLIENT_HOST_PROTOCOL_VERSION.split('.', 1)[0]) {
18
+ throw new ClientHostProtocolError(CLIENT_HOST_PROTOCOL_VERSION, actual);
19
+ }
20
+ }
21
+ export function mountClientRoute(options) {
22
+ assertClientHostProtocol(options.context.protocolVersion);
23
+ assertSDKIdentity({
24
+ releaseVersion: options.context.sdkReleaseVersion,
25
+ sourceCommit: options.context.sdkCommit,
26
+ protocolVersion: options.context.protocolVersion,
27
+ });
28
+ const root = createRoot(options.root);
29
+ const Component = options.component;
30
+ root.render(_jsx(ClientHostProvider, { portalOwner: options.portals, background: options.background, widgetSlots: options.widgetSlots, theme: options.context.theme, children: _jsx(Component, { ...options.props, route: options.context }) }));
31
+ return () => root.unmount();
32
+ }
@@ -0,0 +1,46 @@
1
+ import { type QueryCache, type QueryKey } from './cache';
2
+ import { HostError, type HostErrorHandlers } from './errors';
3
+ export interface RPCMethodContract {
4
+ namespace: string;
5
+ method: string;
6
+ kind: 'query' | 'mutation';
7
+ cacheable?: boolean;
8
+ maxRetries?: number;
9
+ invalidates?: readonly string[];
10
+ }
11
+ export interface RPCTransport {
12
+ call<TRequest, TResponse>(method: string, request: TRequest, signal: AbortSignal): Promise<TResponse>;
13
+ }
14
+ export interface RPCDiagnostics {
15
+ call?(event: {
16
+ method: string;
17
+ key?: QueryKey;
18
+ state: 'start' | 'success' | 'error' | 'cancelled';
19
+ error?: HostError;
20
+ }): void;
21
+ }
22
+ export interface RPCClientOptions {
23
+ cache?: QueryCache;
24
+ errors?: HostErrorHandlers;
25
+ diagnostics?: RPCDiagnostics;
26
+ }
27
+ export declare class RPCClient {
28
+ readonly transport: RPCTransport;
29
+ readonly options: RPCClientOptions;
30
+ readonly cache: QueryCache;
31
+ constructor(transport: RPCTransport, options?: RPCClientOptions);
32
+ query<TRequest, TResponse>(contract: RPCMethodContract, request: TRequest, signal: AbortSignal): Promise<TResponse>;
33
+ mutate<TRequest, TResponse>(contract: RPCMethodContract, request: TRequest, signal: AbortSignal): Promise<TResponse>;
34
+ }
35
+ export type QueryState<T> = {
36
+ status: 'loading';
37
+ } | {
38
+ status: 'success';
39
+ data: T;
40
+ } | {
41
+ status: 'error';
42
+ error: HostError;
43
+ };
44
+ export declare function useRPCQuery<TRequest, TResponse>(client: RPCClient, contract: RPCMethodContract, request: TRequest): QueryState<TResponse>;
45
+ export declare function useRPCMutation<TRequest, TResponse>(client: RPCClient, contract: RPCMethodContract): (request: TRequest) => Promise<TResponse>;
46
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AACpF,OAAO,EAAkC,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;CACtG;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAA;CAC9H;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,WAAW,CAAC,EAAE,cAAc,CAAA;CAC7B;AAED,qBAAa,SAAS;IAER,QAAQ,CAAC,SAAS,EAAE,YAAY;IAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB;IADhF,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;gBACL,SAAS,EAAE,YAAY,EAAW,OAAO,GAAE,gBAAqB;IAI/E,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAgCnH,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;CAe3H;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAA;AAE1H,wBAAgB,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAezI;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,aAG7D,QAAQ,KAAG,OAAO,CAAC,SAAS,CAAC,CAKjE"}
@@ -0,0 +1,90 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { MemoryQueryCache, queryKey } from './cache';
3
+ import { asHostError, dispatchHostError, HostError } from './errors';
4
+ export class RPCClient {
5
+ transport;
6
+ options;
7
+ cache;
8
+ constructor(transport, options = {}) {
9
+ this.transport = transport;
10
+ this.options = options;
11
+ this.cache = options.cache ?? new MemoryQueryCache();
12
+ }
13
+ async query(contract, request, signal) {
14
+ if (contract.kind !== 'query')
15
+ throw new HostError('protocol', `${contract.method} is not a query`);
16
+ const key = queryKey(contract.namespace, contract.method, request);
17
+ if (contract.cacheable !== false) {
18
+ const cached = this.cache.get(key);
19
+ if (cached !== undefined)
20
+ return cached;
21
+ }
22
+ let attempt = 0;
23
+ const maxRetries = Math.max(0, Math.min(3, contract.maxRetries ?? 2));
24
+ for (;;) {
25
+ this.options.diagnostics?.call?.({ method: contract.method, key, state: 'start' });
26
+ try {
27
+ const response = await this.transport.call(contract.method, request, signal);
28
+ if (contract.cacheable !== false)
29
+ this.cache.set(key, response);
30
+ this.options.diagnostics?.call?.({ method: contract.method, key, state: 'success' });
31
+ return response;
32
+ }
33
+ catch (cause) {
34
+ if (signal.aborted) {
35
+ this.options.diagnostics?.call?.({ method: contract.method, key, state: 'cancelled' });
36
+ throw cause;
37
+ }
38
+ const error = asHostError(cause);
39
+ if (!error.retryable || attempt >= maxRetries) {
40
+ dispatchHostError(error, this.options.errors);
41
+ this.options.diagnostics?.call?.({ method: contract.method, key, state: 'error', error });
42
+ throw error;
43
+ }
44
+ attempt += 1;
45
+ }
46
+ }
47
+ }
48
+ async mutate(contract, request, signal) {
49
+ if (contract.kind !== 'mutation')
50
+ throw new HostError('protocol', `${contract.method} is not a mutation`);
51
+ this.options.diagnostics?.call?.({ method: contract.method, state: 'start' });
52
+ try {
53
+ const response = await this.transport.call(contract.method, request, signal);
54
+ this.cache.invalidate(contract.namespace, contract.invalidates ?? []);
55
+ this.options.diagnostics?.call?.({ method: contract.method, state: 'success' });
56
+ return response;
57
+ }
58
+ catch (cause) {
59
+ const error = asHostError(cause);
60
+ if (!signal.aborted)
61
+ dispatchHostError(error, this.options.errors);
62
+ this.options.diagnostics?.call?.({ method: contract.method, state: signal.aborted ? 'cancelled' : 'error', error });
63
+ throw error;
64
+ }
65
+ }
66
+ }
67
+ export function useRPCQuery(client, contract, request) {
68
+ const [state, setState] = useState({ status: 'loading' });
69
+ const generation = useRef(0);
70
+ const requestKey = queryKey(contract.namespace, contract.method, request)[2];
71
+ useEffect(() => {
72
+ const current = ++generation.current;
73
+ const controller = new AbortController();
74
+ setState({ status: 'loading' });
75
+ void client.query(contract, request, controller.signal).then((data) => { if (generation.current === current)
76
+ setState({ status: 'success', data }); }, (cause) => { if (!controller.signal.aborted && generation.current === current)
77
+ setState({ status: 'error', error: asHostError(cause) }); });
78
+ return () => controller.abort();
79
+ }, [client, contract, requestKey]);
80
+ return state;
81
+ }
82
+ export function useRPCMutation(client, contract) {
83
+ const controller = useRef();
84
+ useEffect(() => () => controller.current?.abort(), []);
85
+ return useCallback(async (request) => {
86
+ controller.current?.abort();
87
+ controller.current = new AbortController();
88
+ return client.mutate(contract, request, controller.current.signal);
89
+ }, [client, contract]);
90
+ }
@@ -0,0 +1,43 @@
1
+ import { HostError, type HostErrorHandlers } from './errors';
2
+ import type { QueryCache } from './cache';
3
+ import { type SessionService } from './transport';
4
+ export interface StreamContract<TEvent> {
5
+ id: string;
6
+ url: string;
7
+ method?: 'GET' | 'POST';
8
+ body?: BodyInit | (() => BodyInit);
9
+ headers?: Readonly<Record<string, string>>;
10
+ terminal(event: TEvent): boolean;
11
+ cursor?(event: TEvent): string | undefined;
12
+ invalidates?(event: TEvent): readonly {
13
+ namespace: string;
14
+ methods: readonly string[];
15
+ }[];
16
+ }
17
+ export interface StreamDiagnostics {
18
+ event?(event: {
19
+ stream: string;
20
+ state: 'connect' | 'event' | 'reconnect' | 'terminal' | 'error';
21
+ cursor?: string | undefined;
22
+ attempt?: number;
23
+ error?: HostError;
24
+ }): void;
25
+ }
26
+ export interface ManagedStreamOptions<TEvent> {
27
+ parse(data: string, event: string): TEvent;
28
+ session?: SessionService;
29
+ errors?: HostErrorHandlers;
30
+ diagnostics?: StreamDiagnostics;
31
+ cache?: QueryCache;
32
+ maxReconnects?: number;
33
+ staleAfterMs?: number;
34
+ baseDelayMs?: number;
35
+ fetch?: typeof globalThis.fetch;
36
+ random?: () => number;
37
+ }
38
+ export interface StreamSubscription {
39
+ close(): void;
40
+ readonly closed: boolean;
41
+ }
42
+ export declare function subscribeManagedStream<TEvent>(contract: StreamContract<TEvent>, onEvent: (event: TEvent) => void, options: ManagedStreamOptions<TEvent>): StreamSubscription;
43
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,cAAc,CAAC,MAAM;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;IAChC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC1C,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAA;CAC1F;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI,CAAA;CAC3K;AAED,MAAM,WAAW,oBAAoB,CAAC,MAAM;IAC1C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1C,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,kBAAkB;IAAG,KAAK,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE;AAI/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,kBAAkB,CAuE5K"}
@@ -0,0 +1,141 @@
1
+ import { asHostError, dispatchHostError, HostError } from './errors';
2
+ import { ManagedSession } from './transport';
3
+ export function subscribeManagedStream(contract, onEvent, options) {
4
+ const controller = new AbortController();
5
+ let cursor;
6
+ let terminal = false;
7
+ let attempt = 0;
8
+ let refreshed = false;
9
+ const fetcher = options.fetch ?? globalThis.fetch;
10
+ const maxReconnects = options.maxReconnects ?? 4;
11
+ const baseDelay = options.baseDelayMs ?? 250;
12
+ const run = async () => {
13
+ while (!controller.signal.aborted && !terminal) {
14
+ options.diagnostics?.event?.({ stream: contract.id, state: attempt === 0 ? 'connect' : 'reconnect', cursor, attempt });
15
+ try {
16
+ const sessionService = options.session ?? new ManagedSession({}, async () => ({}));
17
+ const session = sessionService.snapshot();
18
+ const body = typeof contract.body === 'function' ? contract.body() : contract.body;
19
+ const response = await fetcher(contract.url, {
20
+ method: contract.method ?? 'GET',
21
+ ...(body === undefined ? {} : { body }),
22
+ credentials: 'same-origin', signal: controller.signal,
23
+ headers: {
24
+ accept: 'text/event-stream',
25
+ ...(cursor ? { 'last-event-id': cursor } : {}),
26
+ ...(session.csrf ? { 'x-csrf-token': session.csrf } : {}),
27
+ ...session.headers,
28
+ ...contract.headers,
29
+ },
30
+ });
31
+ if (response.status === 401 && !refreshed) {
32
+ await sessionService.refresh(controller.signal);
33
+ refreshed = true;
34
+ continue;
35
+ }
36
+ if (response.status === 401)
37
+ throw new HostError('unauthenticated', 'Session expired');
38
+ if (response.status === 403)
39
+ throw new HostError('permission_denied', 'Permission denied');
40
+ if (!response.ok || !response.body)
41
+ throw new HostError(response.status >= 500 ? 'transient' : 'unknown', `Stream HTTP ${response.status}`);
42
+ for await (const message of readSSE(response.body, controller.signal, options.staleAfterMs ?? 45_000)) {
43
+ if (message.id && message.id === cursor)
44
+ continue;
45
+ const event = options.parse(message.data, message.event);
46
+ cursor = contract.cursor?.(event) ?? message.id ?? cursor;
47
+ if (contract.terminal(event)) {
48
+ if (terminal)
49
+ continue;
50
+ terminal = true;
51
+ options.diagnostics?.event?.({ stream: contract.id, state: 'terminal', cursor });
52
+ }
53
+ else {
54
+ options.diagnostics?.event?.({ stream: contract.id, state: 'event', cursor });
55
+ }
56
+ onEvent(event);
57
+ for (const invalidation of contract.invalidates?.(event) ?? []) {
58
+ options.cache?.invalidate(invalidation.namespace, invalidation.methods);
59
+ }
60
+ if (terminal)
61
+ break;
62
+ }
63
+ if (!terminal)
64
+ throw new HostError('transient', 'Stream ended before a terminal event');
65
+ }
66
+ catch (cause) {
67
+ if (controller.signal.aborted)
68
+ return;
69
+ const error = asHostError(cause);
70
+ if (!error.retryable || attempt >= maxReconnects) {
71
+ dispatchHostError(error, options.errors);
72
+ options.diagnostics?.event?.({ stream: contract.id, state: 'error', cursor, error });
73
+ return;
74
+ }
75
+ attempt += 1;
76
+ const jitter = 0.75 + (options.random?.() ?? Math.random()) * 0.5;
77
+ await abortableDelay(Math.min(8_000, baseDelay * 2 ** (attempt - 1)) * jitter, controller.signal);
78
+ }
79
+ }
80
+ };
81
+ void run();
82
+ return { close: () => controller.abort(), get closed() { return controller.signal.aborted; } };
83
+ }
84
+ async function* readSSE(stream, signal, staleAfterMs) {
85
+ const reader = stream.getReader();
86
+ const decoder = new TextDecoder();
87
+ let buffer = '';
88
+ try {
89
+ for (;;) {
90
+ const result = await readWithTimeout(reader, staleAfterMs, signal);
91
+ if (result.done)
92
+ break;
93
+ buffer = (buffer + decoder.decode(result.value, { stream: true })).replaceAll('\r\n', '\n');
94
+ let boundary = buffer.indexOf('\n\n');
95
+ while (boundary >= 0) {
96
+ const block = buffer.slice(0, boundary);
97
+ buffer = buffer.slice(boundary + 2);
98
+ const message = parseSSEBlock(block);
99
+ if (message)
100
+ yield message;
101
+ boundary = buffer.indexOf('\n\n');
102
+ }
103
+ }
104
+ }
105
+ finally {
106
+ reader.releaseLock();
107
+ }
108
+ }
109
+ function readWithTimeout(reader, staleAfterMs, signal) {
110
+ return new Promise((resolve, reject) => {
111
+ const timer = setTimeout(() => reject(new HostError('transient', 'Stream heartbeat timed out')), staleAfterMs);
112
+ const abort = () => { clearTimeout(timer); reject(signal.reason); };
113
+ signal.addEventListener('abort', abort, { once: true });
114
+ void reader.read().then((result) => { clearTimeout(timer); signal.removeEventListener('abort', abort); resolve(result); }, (error) => { clearTimeout(timer); signal.removeEventListener('abort', abort); reject(error); });
115
+ });
116
+ }
117
+ function parseSSEBlock(block) {
118
+ let id;
119
+ let event = 'message';
120
+ const data = [];
121
+ for (const line of block.replaceAll('\r', '').split('\n')) {
122
+ if (line.startsWith(':'))
123
+ continue;
124
+ const split = line.indexOf(':');
125
+ const field = split < 0 ? line : line.slice(0, split);
126
+ const value = split < 0 ? '' : line.slice(split + 1).replace(/^ /, '');
127
+ if (field === 'id')
128
+ id = value;
129
+ if (field === 'event')
130
+ event = value;
131
+ if (field === 'data')
132
+ data.push(value);
133
+ }
134
+ return data.length > 0 ? { ...(id === undefined ? {} : { id }), event, data: data.join('\n') } : undefined;
135
+ }
136
+ function abortableDelay(ms, signal) {
137
+ return new Promise((resolve, reject) => {
138
+ const timer = setTimeout(resolve, ms);
139
+ signal.addEventListener('abort', () => { clearTimeout(timer); reject(signal.reason); }, { once: true });
140
+ });
141
+ }
@@ -0,0 +1,26 @@
1
+ import type { RPCTransport } from './rpc';
2
+ export interface SessionState {
3
+ csrf?: string;
4
+ headers?: Readonly<Record<string, string>>;
5
+ }
6
+ export interface SessionService {
7
+ snapshot(): SessionState;
8
+ refresh(signal: AbortSignal): Promise<SessionState>;
9
+ }
10
+ export declare class ManagedSession implements SessionService {
11
+ private readonly renew;
12
+ private state;
13
+ private refreshing;
14
+ constructor(initial: SessionState, renew: (signal: AbortSignal) => Promise<SessionState>);
15
+ snapshot(): SessionState;
16
+ refresh(signal: AbortSignal): Promise<SessionState>;
17
+ }
18
+ export declare class FetchRPCTransport implements RPCTransport {
19
+ readonly endpoint: string;
20
+ readonly session: SessionService;
21
+ private requestID;
22
+ constructor(endpoint: string, session?: SessionService);
23
+ call<TRequest, TResponse>(method: string, request: TRequest, signal: AbortSignal): Promise<TResponse>;
24
+ private request;
25
+ }
26
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI,YAAY,CAAA;IACxB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CACpD;AAED,qBAAa,cAAe,YAAW,cAAc;IAGhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFzD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAmC;gBACzC,OAAO,EAAE,YAAY,EAAmB,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC;IACzG,QAAQ,IAAI,YAAY;IACxB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAIpD;AAED,qBAAa,iBAAkB,YAAW,YAAY;IAExC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,EAAE,cAAc;IADvE,OAAO,CAAC,SAAS,CAAI;gBACA,QAAQ,EAAE,MAAM,EAAW,OAAO,GAAE,cAAyD;IAE5G,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;YAI7F,OAAO;CAsBtB"}
@@ -0,0 +1,53 @@
1
+ import { asHostError, HostError } from './errors';
2
+ export class ManagedSession {
3
+ renew;
4
+ state;
5
+ refreshing;
6
+ constructor(initial, renew) {
7
+ this.renew = renew;
8
+ this.state = initial;
9
+ }
10
+ snapshot() { return { ...this.state, headers: { ...this.state.headers } }; }
11
+ refresh(signal) {
12
+ this.refreshing ??= this.renew(signal).then((state) => { this.state = state; return this.snapshot(); }).finally(() => { this.refreshing = undefined; });
13
+ return this.refreshing;
14
+ }
15
+ }
16
+ export class FetchRPCTransport {
17
+ endpoint;
18
+ session;
19
+ requestID = 0;
20
+ constructor(endpoint, session = new ManagedSession({}, async () => ({}))) {
21
+ this.endpoint = endpoint;
22
+ this.session = session;
23
+ }
24
+ async call(method, request, signal) {
25
+ return this.request(method, request, signal, true);
26
+ }
27
+ async request(method, request, signal, mayRefresh) {
28
+ const session = this.session.snapshot();
29
+ const response = await fetch(this.endpoint, {
30
+ method: 'POST', credentials: 'same-origin', signal,
31
+ headers: {
32
+ 'content-type': 'application/json',
33
+ ...(session.csrf ? { 'x-csrf-token': session.csrf } : {}),
34
+ ...session.headers,
35
+ },
36
+ body: JSON.stringify({ jsonrpc: '2.0', id: ++this.requestID, method, params: request }),
37
+ });
38
+ if (response.status === 401 && mayRefresh) {
39
+ await this.session.refresh(signal);
40
+ return this.request(method, request, signal, false);
41
+ }
42
+ if (response.status === 401)
43
+ throw new HostError('unauthenticated', 'Session expired');
44
+ if (response.status === 403)
45
+ throw new HostError('permission_denied', 'Permission denied');
46
+ if (!response.ok)
47
+ throw new HostError(response.status >= 500 ? 'transient' : 'unknown', `RPC HTTP ${response.status}`);
48
+ const payload = await response.json();
49
+ if (payload.error)
50
+ throw asHostError(payload.error);
51
+ return payload.result;
52
+ }
53
+ }