@synnaxlabs/client 0.56.2 → 0.57.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 (741) hide show
  1. package/dist/client-B08VDLSA.js +14463 -0
  2. package/dist/client-B08VDLSA.js.map +1 -0
  3. package/dist/client.js +1128 -14876
  4. package/dist/client.js.map +1 -0
  5. package/dist/src/access/client.d.ts +10 -1
  6. package/dist/src/access/client.d.ts.map +1 -1
  7. package/dist/src/access/enforce.d.ts.map +1 -1
  8. package/dist/src/access/external.d.ts +1 -0
  9. package/dist/src/access/external.d.ts.map +1 -1
  10. package/dist/src/access/granted.d.ts +39 -0
  11. package/dist/src/access/granted.d.ts.map +1 -0
  12. package/dist/src/access/policy/client.d.ts +136 -147
  13. package/dist/src/access/policy/client.d.ts.map +1 -1
  14. package/dist/src/access/policy/types.gen.d.ts +15 -68
  15. package/dist/src/access/policy/types.gen.d.ts.map +1 -1
  16. package/dist/src/access/role/client.d.ts +77 -58
  17. package/dist/src/access/role/client.d.ts.map +1 -1
  18. package/dist/src/access/role/types.gen.d.ts +8 -14
  19. package/dist/src/access/role/types.gen.d.ts.map +1 -1
  20. package/dist/src/actions/actions.d.ts +5 -6
  21. package/dist/src/actions/actions.d.ts.map +1 -1
  22. package/dist/src/actions/controller.d.ts +194 -0
  23. package/dist/src/actions/controller.d.ts.map +1 -0
  24. package/dist/src/actions/external.d.ts +1 -0
  25. package/dist/src/actions/external.d.ts.map +1 -1
  26. package/dist/src/arc/actions.d.ts +575 -0
  27. package/dist/src/arc/actions.d.ts.map +1 -0
  28. package/dist/src/arc/actions.gen.d.ts +1439 -0
  29. package/dist/src/arc/actions.gen.d.ts.map +1 -0
  30. package/dist/src/arc/client.d.ts +97 -13
  31. package/dist/src/arc/client.d.ts.map +1 -1
  32. package/dist/src/arc/compiler/types.gen.d.ts +3 -3
  33. package/dist/src/arc/compiler/types.gen.d.ts.map +1 -1
  34. package/dist/src/arc/external.d.ts +2 -0
  35. package/dist/src/arc/external.d.ts.map +1 -1
  36. package/dist/src/arc/graph/types.gen.d.ts +45 -597
  37. package/dist/src/arc/graph/types.gen.d.ts.map +1 -1
  38. package/dist/src/arc/ir/index.d.ts +1 -1
  39. package/dist/src/arc/ir/index.d.ts.map +1 -1
  40. package/dist/src/arc/ir/ir.d.ts +2 -0
  41. package/dist/src/arc/ir/ir.d.ts.map +1 -0
  42. package/dist/src/arc/ir/types.gen.d.ts +58 -2807
  43. package/dist/src/arc/ir/types.gen.d.ts.map +1 -1
  44. package/dist/src/arc/module/types.gen.d.ts +18 -1090
  45. package/dist/src/arc/module/types.gen.d.ts.map +1 -1
  46. package/dist/src/arc/program/types.gen.d.ts +18 -1090
  47. package/dist/src/arc/program/types.gen.d.ts.map +1 -1
  48. package/dist/src/arc/text/types.gen.d.ts +54 -1
  49. package/dist/src/arc/text/types.gen.d.ts.map +1 -1
  50. package/dist/src/arc/types/types.gen.d.ts +35 -153
  51. package/dist/src/arc/types/types.gen.d.ts.map +1 -1
  52. package/dist/src/arc/types.gen.d.ts +98 -2278
  53. package/dist/src/arc/types.gen.d.ts.map +1 -1
  54. package/dist/src/auth/auth.d.ts +14 -2
  55. package/dist/src/auth/auth.d.ts.map +1 -1
  56. package/dist/src/channel/client.d.ts +113 -75
  57. package/dist/src/channel/client.d.ts.map +1 -1
  58. package/dist/src/channel/external.d.ts +0 -1
  59. package/dist/src/channel/external.d.ts.map +1 -1
  60. package/dist/src/channel/payload.d.ts +65 -56
  61. package/dist/src/channel/payload.d.ts.map +1 -1
  62. package/dist/src/channel/types.gen.d.ts +26 -73
  63. package/dist/src/channel/types.gen.d.ts.map +1 -1
  64. package/dist/src/channel/writer.d.ts +1 -3
  65. package/dist/src/channel/writer.d.ts.map +1 -1
  66. package/dist/src/client.d.ts +55 -27
  67. package/dist/src/client.d.ts.map +1 -1
  68. package/dist/src/connection/client.d.ts +146 -0
  69. package/dist/src/connection/client.d.ts.map +1 -0
  70. package/dist/src/connection/external.d.ts +3 -0
  71. package/dist/src/connection/external.d.ts.map +1 -0
  72. package/dist/src/connection/index.d.ts +1 -1
  73. package/dist/src/connection/index.d.ts.map +1 -1
  74. package/dist/src/connection/status.d.ts +252 -0
  75. package/dist/src/connection/status.d.ts.map +1 -0
  76. package/dist/src/control/client.d.ts +31 -7
  77. package/dist/src/control/client.d.ts.map +1 -1
  78. package/dist/src/control/state.d.ts +47 -16
  79. package/dist/src/control/state.d.ts.map +1 -1
  80. package/dist/src/device/client.d.ts +59 -17
  81. package/dist/src/device/client.d.ts.map +1 -1
  82. package/dist/src/device/types.gen.d.ts +17 -67
  83. package/dist/src/device/types.gen.d.ts.map +1 -1
  84. package/dist/src/errors.d.ts +17 -20
  85. package/dist/src/errors.d.ts.map +1 -1
  86. package/dist/src/ethercat/external.d.ts +2 -0
  87. package/dist/src/ethercat/external.d.ts.map +1 -0
  88. package/dist/src/ethercat/index.d.ts +2 -0
  89. package/dist/src/ethercat/index.d.ts.map +1 -0
  90. package/dist/src/ethercat/types.gen.d.ts +243 -0
  91. package/dist/src/ethercat/types.gen.d.ts.map +1 -0
  92. package/dist/src/framer/adapter.d.ts +8 -5
  93. package/dist/src/framer/adapter.d.ts.map +1 -1
  94. package/dist/src/framer/benchutil.d.ts +19 -0
  95. package/dist/src/framer/benchutil.d.ts.map +1 -0
  96. package/dist/src/framer/cache/cache.d.ts +38 -0
  97. package/dist/src/framer/cache/cache.d.ts.map +1 -0
  98. package/dist/src/framer/cache/dynamic.d.ts +71 -0
  99. package/dist/src/framer/cache/dynamic.d.ts.map +1 -0
  100. package/dist/src/framer/cache/reader.d.ts +43 -0
  101. package/dist/src/framer/cache/reader.d.ts.map +1 -0
  102. package/dist/src/framer/cache/static.d.ts +66 -0
  103. package/dist/src/framer/cache/static.d.ts.map +1 -0
  104. package/dist/src/framer/cache/streamer.d.ts +86 -0
  105. package/dist/src/framer/cache/streamer.d.ts.map +1 -0
  106. package/dist/src/framer/cache/transform.d.ts +18 -0
  107. package/dist/src/framer/cache/transform.d.ts.map +1 -0
  108. package/dist/src/framer/cache/unary.d.ts +37 -0
  109. package/dist/src/framer/cache/unary.d.ts.map +1 -0
  110. package/dist/src/framer/client.d.ts +35 -14
  111. package/dist/src/framer/client.d.ts.map +1 -1
  112. package/dist/src/framer/codec.d.ts.map +1 -1
  113. package/dist/src/framer/deleter.d.ts +3 -2
  114. package/dist/src/framer/deleter.d.ts.map +1 -1
  115. package/dist/src/framer/external.d.ts +6 -0
  116. package/dist/src/framer/external.d.ts.map +1 -1
  117. package/dist/src/framer/feed.d.ts +40 -0
  118. package/dist/src/framer/feed.d.ts.map +1 -0
  119. package/dist/src/framer/frame.d.ts +16 -20
  120. package/dist/src/framer/frame.d.ts.map +1 -1
  121. package/dist/src/framer/hardened.d.ts +70 -0
  122. package/dist/src/framer/hardened.d.ts.map +1 -0
  123. package/dist/src/framer/iterator.d.ts +36 -43
  124. package/dist/src/framer/iterator.d.ts.map +1 -1
  125. package/dist/src/framer/reader.d.ts +3 -2
  126. package/dist/src/framer/reader.d.ts.map +1 -1
  127. package/dist/src/framer/streamer.d.ts +132 -205
  128. package/dist/src/framer/streamer.d.ts.map +1 -1
  129. package/dist/src/framer/writer.d.ts +130 -161
  130. package/dist/src/framer/writer.d.ts.map +1 -1
  131. package/dist/src/group/client.d.ts +66 -9
  132. package/dist/src/group/client.d.ts.map +1 -1
  133. package/dist/src/group/types.gen.d.ts +2 -2
  134. package/dist/src/http/external.d.ts +2 -0
  135. package/dist/src/http/external.d.ts.map +1 -0
  136. package/dist/src/http/index.d.ts +2 -0
  137. package/dist/src/http/index.d.ts.map +1 -0
  138. package/dist/src/http/types.gen.d.ts +451 -0
  139. package/dist/src/http/types.gen.d.ts.map +1 -0
  140. package/dist/src/imex/client.d.ts +88 -0
  141. package/dist/src/imex/client.d.ts.map +1 -0
  142. package/dist/src/imex/index.d.ts +2 -0
  143. package/dist/src/imex/index.d.ts.map +1 -0
  144. package/dist/src/index.d.ts +18 -5
  145. package/dist/src/index.d.ts.map +1 -1
  146. package/dist/src/label/client.d.ts +55 -36
  147. package/dist/src/label/client.d.ts.map +1 -1
  148. package/dist/src/label/external.d.ts +2 -0
  149. package/dist/src/label/external.d.ts.map +1 -1
  150. package/dist/src/label/payload.d.ts +4 -46
  151. package/dist/src/label/payload.d.ts.map +1 -1
  152. package/dist/src/label/store.d.ts +8 -0
  153. package/dist/src/label/store.d.ts.map +1 -0
  154. package/dist/src/label/types.gen.d.ts +45 -0
  155. package/dist/src/label/types.gen.d.ts.map +1 -0
  156. package/dist/src/labjack/external.d.ts +2 -0
  157. package/dist/src/labjack/external.d.ts.map +1 -0
  158. package/dist/src/labjack/index.d.ts +2 -0
  159. package/dist/src/labjack/index.d.ts.map +1 -0
  160. package/dist/src/labjack/types.gen.d.ts +442 -0
  161. package/dist/src/labjack/types.gen.d.ts.map +1 -0
  162. package/dist/src/lineplot/actions.d.ts +914 -0
  163. package/dist/src/lineplot/actions.d.ts.map +1 -0
  164. package/dist/src/lineplot/actions.gen.d.ts +4208 -0
  165. package/dist/src/lineplot/actions.gen.d.ts.map +1 -0
  166. package/dist/src/lineplot/client.d.ts +66 -16
  167. package/dist/src/lineplot/client.d.ts.map +1 -1
  168. package/dist/src/lineplot/external.d.ts +3 -0
  169. package/dist/src/lineplot/external.d.ts.map +1 -1
  170. package/dist/src/lineplot/line.d.ts +16 -0
  171. package/dist/src/lineplot/line.d.ts.map +1 -0
  172. package/dist/src/lineplot/types.gen.d.ts +837 -14
  173. package/dist/src/lineplot/types.gen.d.ts.map +1 -1
  174. package/dist/src/log/actions.d.ts +271 -0
  175. package/dist/src/log/actions.d.ts.map +1 -0
  176. package/dist/src/log/actions.gen.d.ts +1529 -0
  177. package/dist/src/log/actions.gen.d.ts.map +1 -0
  178. package/dist/src/log/client.d.ts +66 -16
  179. package/dist/src/log/client.d.ts.map +1 -1
  180. package/dist/src/log/external.d.ts +2 -0
  181. package/dist/src/log/external.d.ts.map +1 -1
  182. package/dist/src/log/types.gen.d.ts +139 -14
  183. package/dist/src/log/types.gen.d.ts.map +1 -1
  184. package/dist/src/modbus/external.d.ts +2 -0
  185. package/dist/src/modbus/external.d.ts.map +1 -0
  186. package/dist/src/modbus/index.d.ts +2 -0
  187. package/dist/src/modbus/index.d.ts.map +1 -0
  188. package/dist/src/modbus/types.gen.d.ts +280 -0
  189. package/dist/src/modbus/types.gen.d.ts.map +1 -0
  190. package/dist/src/ni/external.d.ts +2 -0
  191. package/dist/src/ni/external.d.ts.map +1 -0
  192. package/dist/src/ni/index.d.ts +2 -0
  193. package/dist/src/ni/index.d.ts.map +1 -0
  194. package/dist/src/ni/types.gen.d.ts +21029 -0
  195. package/dist/src/ni/types.gen.d.ts.map +1 -0
  196. package/dist/src/node/index.d.ts +2 -0
  197. package/dist/src/node/index.d.ts.map +1 -0
  198. package/dist/src/node/types.gen.d.ts +4 -0
  199. package/dist/src/node/types.gen.d.ts.map +1 -0
  200. package/dist/src/ontology/client.d.ts +314 -67
  201. package/dist/src/ontology/client.d.ts.map +1 -1
  202. package/dist/src/ontology/external.d.ts +1 -0
  203. package/dist/src/ontology/external.d.ts.map +1 -1
  204. package/dist/src/ontology/payload.d.ts +60 -18
  205. package/dist/src/ontology/payload.d.ts.map +1 -1
  206. package/dist/src/ontology/store.d.ts +32 -0
  207. package/dist/src/ontology/store.d.ts.map +1 -0
  208. package/dist/src/ontology/types.gen.d.ts +3 -2
  209. package/dist/src/ontology/types.gen.d.ts.map +1 -1
  210. package/dist/src/ontology/writer.d.ts +16 -10
  211. package/dist/src/ontology/writer.d.ts.map +1 -1
  212. package/dist/src/opcua/external.d.ts +2 -0
  213. package/dist/src/opcua/external.d.ts.map +1 -0
  214. package/dist/src/opcua/index.d.ts +2 -0
  215. package/dist/src/opcua/index.d.ts.map +1 -0
  216. package/dist/src/opcua/types.gen.d.ts +82 -0
  217. package/dist/src/opcua/types.gen.d.ts.map +1 -0
  218. package/dist/src/pagerduty/external.d.ts +2 -0
  219. package/dist/src/pagerduty/external.d.ts.map +1 -0
  220. package/dist/src/pagerduty/index.d.ts +2 -0
  221. package/dist/src/pagerduty/index.d.ts.map +1 -0
  222. package/dist/src/pagerduty/types.gen.d.ts +30 -0
  223. package/dist/src/pagerduty/types.gen.d.ts.map +1 -0
  224. package/dist/src/panel/actions.d.ts +273 -0
  225. package/dist/src/panel/actions.d.ts.map +1 -0
  226. package/dist/src/panel/actions.gen.d.ts +1255 -0
  227. package/dist/src/panel/actions.gen.d.ts.map +1 -0
  228. package/dist/src/panel/client.d.ts +148 -0
  229. package/dist/src/panel/client.d.ts.map +1 -0
  230. package/dist/src/panel/external.d.ts +6 -0
  231. package/dist/src/panel/external.d.ts.map +1 -0
  232. package/dist/src/panel/index.d.ts +2 -0
  233. package/dist/src/panel/index.d.ts.map +1 -0
  234. package/dist/src/panel/tree.d.ts +50 -0
  235. package/dist/src/panel/tree.d.ts.map +1 -0
  236. package/dist/src/panel/types.gen.d.ts +370 -0
  237. package/dist/src/panel/types.gen.d.ts.map +1 -0
  238. package/dist/src/project/client.d.ts +89 -0
  239. package/dist/src/project/client.d.ts.map +1 -0
  240. package/dist/src/project/external.d.ts.map +1 -0
  241. package/dist/src/project/index.d.ts +2 -0
  242. package/dist/src/project/index.d.ts.map +1 -0
  243. package/dist/src/project/types.gen.d.ts +27 -0
  244. package/dist/src/project/types.gen.d.ts.map +1 -0
  245. package/dist/src/query/cache.d.ts +132 -0
  246. package/dist/src/query/cache.d.ts.map +1 -0
  247. package/dist/src/query/deleted.d.ts +20 -0
  248. package/dist/src/query/deleted.d.ts.map +1 -0
  249. package/dist/src/query/derived.d.ts +33 -0
  250. package/dist/src/query/derived.d.ts.map +1 -0
  251. package/dist/src/query/external.d.ts +10 -0
  252. package/dist/src/query/external.d.ts.map +1 -0
  253. package/dist/src/query/index.d.ts +2 -0
  254. package/dist/src/query/index.d.ts.map +1 -0
  255. package/dist/src/query/query.d.ts +235 -0
  256. package/dist/src/query/query.d.ts.map +1 -0
  257. package/dist/src/query/retriever.d.ts +135 -0
  258. package/dist/src/query/retriever.d.ts.map +1 -0
  259. package/dist/src/query/streamer.d.ts +67 -0
  260. package/dist/src/query/streamer.d.ts.map +1 -0
  261. package/dist/src/query/table.d.ts +219 -0
  262. package/dist/src/query/table.d.ts.map +1 -0
  263. package/dist/src/query/types.d.ts +35 -0
  264. package/dist/src/query/types.d.ts.map +1 -0
  265. package/dist/src/query/write.d.ts +21 -0
  266. package/dist/src/query/write.d.ts.map +1 -0
  267. package/dist/src/rack/client.d.ts +58 -20
  268. package/dist/src/rack/client.d.ts.map +1 -1
  269. package/dist/src/rack/types.gen.d.ts +11 -12
  270. package/dist/src/rack/types.gen.d.ts.map +1 -1
  271. package/dist/src/range/alias/types.gen.d.ts +2 -3
  272. package/dist/src/range/alias/types.gen.d.ts.map +1 -1
  273. package/dist/src/ranger/client.d.ts +138 -27
  274. package/dist/src/ranger/client.d.ts.map +1 -1
  275. package/dist/src/ranger/kv/client.d.ts +7 -4
  276. package/dist/src/ranger/kv/client.d.ts.map +1 -1
  277. package/dist/src/ranger/payload.d.ts +3 -0
  278. package/dist/src/ranger/payload.d.ts.map +1 -1
  279. package/dist/src/ranger/types.gen.d.ts +45 -101
  280. package/dist/src/ranger/types.gen.d.ts.map +1 -1
  281. package/dist/src/ranger/writer.d.ts +2 -74
  282. package/dist/src/ranger/writer.d.ts.map +1 -1
  283. package/dist/src/schematic/actions.d.ts +90 -33
  284. package/dist/src/schematic/actions.d.ts.map +1 -1
  285. package/dist/src/schematic/actions.gen.d.ts +207 -114
  286. package/dist/src/schematic/actions.gen.d.ts.map +1 -1
  287. package/dist/src/schematic/client.d.ts +70 -68
  288. package/dist/src/schematic/client.d.ts.map +1 -1
  289. package/dist/src/schematic/symbol/client.d.ts +133 -27
  290. package/dist/src/schematic/symbol/client.d.ts.map +1 -1
  291. package/dist/src/schematic/symbol/types.gen.d.ts +258 -153
  292. package/dist/src/schematic/symbol/types.gen.d.ts.map +1 -1
  293. package/dist/src/schematic/types.gen.d.ts +17 -96
  294. package/dist/src/schematic/types.gen.d.ts.map +1 -1
  295. package/dist/src/status/client.d.ts +69 -14
  296. package/dist/src/status/client.d.ts.map +1 -1
  297. package/dist/src/status/external.d.ts +2 -0
  298. package/dist/src/status/external.d.ts.map +1 -1
  299. package/dist/src/status/payload.d.ts +2 -36
  300. package/dist/src/status/payload.d.ts.map +1 -1
  301. package/dist/src/status/status.d.ts +65 -0
  302. package/dist/src/status/status.d.ts.map +1 -0
  303. package/dist/src/status/types.gen.d.ts +58 -0
  304. package/dist/src/status/types.gen.d.ts.map +1 -0
  305. package/dist/src/table/actions.d.ts +72 -13
  306. package/dist/src/table/actions.d.ts.map +1 -1
  307. package/dist/src/table/actions.gen.d.ts +221 -137
  308. package/dist/src/table/actions.gen.d.ts.map +1 -1
  309. package/dist/src/table/client.d.ts +64 -40
  310. package/dist/src/table/client.d.ts.map +1 -1
  311. package/dist/src/table/types.gen.d.ts +20 -55
  312. package/dist/src/table/types.gen.d.ts.map +1 -1
  313. package/dist/src/task/client.d.ts +149 -28
  314. package/dist/src/task/client.d.ts.map +1 -1
  315. package/dist/src/task/types.gen.d.ts +71 -89
  316. package/dist/src/task/types.gen.d.ts.map +1 -1
  317. package/dist/src/testutil/access.d.ts +27 -1
  318. package/dist/src/testutil/access.d.ts.map +1 -1
  319. package/dist/src/testutil/channels.d.ts +2 -0
  320. package/dist/src/testutil/channels.d.ts.map +1 -1
  321. package/dist/src/testutil/client.d.ts +5 -0
  322. package/dist/src/testutil/client.d.ts.map +1 -1
  323. package/dist/src/testutil/connection.d.ts +10 -0
  324. package/dist/src/testutil/connection.d.ts.map +1 -0
  325. package/dist/src/testutil/index.d.ts +9 -0
  326. package/dist/src/testutil/index.d.ts.map +1 -0
  327. package/dist/src/testutil/panels.d.ts +8 -0
  328. package/dist/src/testutil/panels.d.ts.map +1 -0
  329. package/dist/src/testutil/proxy.d.ts +29 -0
  330. package/dist/src/testutil/proxy.d.ts.map +1 -0
  331. package/dist/src/testutil/query.d.ts +7 -0
  332. package/dist/src/testutil/query.d.ts.map +1 -0
  333. package/dist/src/testutil/telem.d.ts +4 -0
  334. package/dist/src/testutil/telem.d.ts.map +1 -1
  335. package/dist/src/transport.d.ts +10 -4
  336. package/dist/src/transport.d.ts.map +1 -1
  337. package/dist/src/user/client.d.ts +29 -28
  338. package/dist/src/user/client.d.ts.map +1 -1
  339. package/dist/src/user/external.d.ts +1 -1
  340. package/dist/src/user/external.d.ts.map +1 -1
  341. package/dist/src/user/types.gen.d.ts +4 -4
  342. package/dist/src/util/retrieve.d.ts +2 -2
  343. package/dist/src/util/retrieve.d.ts.map +1 -1
  344. package/dist/src/util/telem.d.ts.map +1 -1
  345. package/dist/src/view/client.d.ts +30 -14
  346. package/dist/src/view/client.d.ts.map +1 -1
  347. package/dist/src/view/types.gen.d.ts +7 -15
  348. package/dist/src/view/types.gen.d.ts.map +1 -1
  349. package/dist/testutil.js +189 -0
  350. package/dist/testutil.js.map +1 -0
  351. package/package.json +40 -17
  352. package/src/access/client.ts +14 -3
  353. package/src/access/enforce.ts +0 -3
  354. package/src/access/external.ts +1 -0
  355. package/src/access/granted.ts +114 -0
  356. package/src/access/policy/client.ts +135 -43
  357. package/src/access/policy/types.gen.ts +9 -11
  358. package/src/access/role/client.ts +160 -38
  359. package/src/access/role/types.gen.ts +8 -12
  360. package/src/actions/actions.ts +5 -6
  361. package/src/actions/controller.ts +626 -0
  362. package/src/actions/external.ts +11 -0
  363. package/src/arc/actions.gen.ts +313 -0
  364. package/src/arc/actions.ts +192 -0
  365. package/src/arc/client.ts +424 -41
  366. package/src/arc/compiler/types.gen.ts +5 -6
  367. package/src/arc/external.ts +2 -0
  368. package/src/arc/graph/types.gen.ts +24 -22
  369. package/src/arc/ir/index.ts +1 -1
  370. package/{eslint.config.ts → src/arc/ir/ir.ts} +1 -4
  371. package/src/arc/ir/types.gen.ts +42 -41
  372. package/src/arc/text/types.gen.ts +21 -2
  373. package/src/arc/types/types.gen.ts +40 -32
  374. package/src/arc/types.gen.ts +31 -29
  375. package/src/auth/auth.ts +40 -8
  376. package/src/channel/client.ts +529 -132
  377. package/src/channel/external.ts +0 -1
  378. package/src/channel/payload.ts +30 -3
  379. package/src/channel/types.gen.ts +37 -48
  380. package/src/channel/writer.ts +2 -11
  381. package/src/client.ts +215 -91
  382. package/src/connection/client.ts +495 -0
  383. package/src/connection/external.ts +34 -0
  384. package/src/connection/index.ts +1 -1
  385. package/src/connection/status.ts +442 -0
  386. package/src/control/client.ts +84 -12
  387. package/src/control/state.ts +17 -36
  388. package/src/device/client.ts +293 -41
  389. package/src/device/types.gen.ts +15 -26
  390. package/src/errors.ts +45 -22
  391. package/src/{workspace → ethercat}/external.ts +1 -2
  392. package/src/{workspace → ethercat}/index.ts +1 -1
  393. package/src/ethercat/types.gen.ts +151 -0
  394. package/src/framer/adapter.ts +60 -37
  395. package/src/framer/benchutil.ts +67 -0
  396. package/src/framer/cache/cache.ts +115 -0
  397. package/src/framer/cache/dynamic.ts +279 -0
  398. package/src/framer/cache/reader.ts +160 -0
  399. package/src/framer/cache/static.ts +215 -0
  400. package/src/framer/cache/streamer.ts +391 -0
  401. package/src/framer/cache/transform.ts +31 -0
  402. package/src/framer/cache/unary.ts +104 -0
  403. package/src/framer/client.ts +71 -43
  404. package/src/framer/codec.ts +55 -18
  405. package/src/framer/deleter.ts +4 -6
  406. package/src/framer/external.ts +10 -0
  407. package/src/framer/feed.ts +108 -0
  408. package/src/framer/frame.ts +13 -23
  409. package/src/framer/hardened.ts +283 -0
  410. package/src/framer/iterator.ts +31 -42
  411. package/src/framer/reader.ts +11 -11
  412. package/src/framer/streamer.ts +18 -178
  413. package/src/framer/writer.ts +39 -59
  414. package/src/group/client.ts +158 -23
  415. package/src/http/external.ts +10 -0
  416. package/src/{cluster → http}/index.ts +1 -1
  417. package/src/http/types.gen.ts +245 -0
  418. package/src/imex/client.ts +125 -0
  419. package/src/imex/index.ts +10 -0
  420. package/src/index.ts +18 -6
  421. package/src/label/client.ts +193 -54
  422. package/src/label/external.ts +2 -0
  423. package/src/label/payload.ts +4 -9
  424. package/src/label/store.ts +28 -0
  425. package/src/label/types.gen.ts +31 -0
  426. package/src/labjack/external.ts +10 -0
  427. package/src/labjack/index.ts +10 -0
  428. package/src/labjack/types.gen.ts +251 -0
  429. package/src/lineplot/actions.gen.ts +880 -0
  430. package/src/lineplot/actions.ts +535 -0
  431. package/src/lineplot/client.ts +224 -52
  432. package/src/lineplot/external.ts +3 -0
  433. package/src/lineplot/line.ts +80 -0
  434. package/src/lineplot/types.gen.ts +225 -12
  435. package/src/log/actions.gen.ts +474 -0
  436. package/src/log/actions.ts +242 -0
  437. package/src/log/client.ts +223 -52
  438. package/src/log/external.ts +2 -0
  439. package/src/log/types.gen.ts +45 -14
  440. package/src/modbus/external.ts +10 -0
  441. package/src/modbus/index.ts +10 -0
  442. package/src/modbus/types.gen.ts +185 -0
  443. package/src/ni/external.ts +10 -0
  444. package/src/ni/index.ts +10 -0
  445. package/src/ni/types.gen.ts +1632 -0
  446. package/src/node/index.ts +10 -0
  447. package/src/{cluster → node}/types.gen.ts +2 -2
  448. package/src/ontology/client.ts +408 -99
  449. package/src/ontology/external.ts +7 -0
  450. package/src/ontology/payload.ts +48 -7
  451. package/src/ontology/store.ts +83 -0
  452. package/src/ontology/types.gen.ts +2 -1
  453. package/src/ontology/writer.ts +1 -0
  454. package/src/opcua/external.ts +10 -0
  455. package/src/opcua/index.ts +10 -0
  456. package/src/opcua/types.gen.ts +65 -0
  457. package/src/pagerduty/external.ts +10 -0
  458. package/src/pagerduty/index.ts +10 -0
  459. package/src/pagerduty/types.gen.ts +41 -0
  460. package/src/panel/actions.gen.ts +267 -0
  461. package/src/panel/actions.ts +357 -0
  462. package/src/panel/client.ts +327 -0
  463. package/src/panel/external.ts +14 -0
  464. package/src/panel/index.ts +10 -0
  465. package/src/panel/tree.ts +163 -0
  466. package/src/panel/types.gen.ts +164 -0
  467. package/src/project/client.ts +273 -0
  468. package/src/project/external.ts +11 -0
  469. package/src/project/index.ts +10 -0
  470. package/src/project/types.gen.ts +40 -0
  471. package/src/query/cache.ts +326 -0
  472. package/src/query/deleted.ts +38 -0
  473. package/src/query/derived.ts +101 -0
  474. package/src/query/external.ts +51 -0
  475. package/src/query/index.ts +10 -0
  476. package/src/query/query.ts +865 -0
  477. package/src/query/retriever.ts +308 -0
  478. package/src/query/streamer.ts +207 -0
  479. package/src/query/table.ts +625 -0
  480. package/src/query/types.ts +54 -0
  481. package/src/query/write.ts +42 -0
  482. package/src/rack/client.ts +233 -45
  483. package/src/rack/types.gen.ts +15 -16
  484. package/src/range/alias/types.gen.ts +2 -3
  485. package/src/ranger/client.ts +581 -70
  486. package/src/ranger/kv/client.ts +52 -21
  487. package/src/ranger/payload.ts +3 -0
  488. package/src/ranger/types.gen.ts +21 -23
  489. package/src/ranger/writer.ts +4 -8
  490. package/src/schematic/actions.gen.ts +62 -53
  491. package/src/schematic/actions.ts +44 -42
  492. package/src/schematic/client.ts +226 -70
  493. package/src/schematic/symbol/client.ts +277 -48
  494. package/src/schematic/symbol/types.gen.ts +22 -34
  495. package/src/schematic/types.gen.ts +22 -29
  496. package/src/status/client.ts +321 -44
  497. package/src/status/external.ts +2 -0
  498. package/src/status/payload.ts +1 -23
  499. package/src/status/status.ts +241 -0
  500. package/src/status/types.gen.ts +108 -0
  501. package/src/table/actions.gen.ts +96 -63
  502. package/src/table/actions.ts +44 -19
  503. package/src/table/client.ts +220 -56
  504. package/src/table/types.gen.ts +24 -31
  505. package/src/task/client.ts +580 -101
  506. package/src/task/types.gen.ts +68 -75
  507. package/src/testutil/access.ts +102 -6
  508. package/src/testutil/channels.ts +29 -0
  509. package/src/testutil/client.ts +27 -2
  510. package/src/testutil/connection.ts +47 -0
  511. package/src/testutil/index.ts +17 -0
  512. package/src/testutil/panels.ts +26 -0
  513. package/src/testutil/proxy.ts +106 -0
  514. package/src/testutil/query.ts +28 -0
  515. package/src/testutil/telem.ts +17 -1
  516. package/src/transport.ts +18 -7
  517. package/src/user/client.ts +165 -64
  518. package/src/user/external.ts +1 -1
  519. package/src/user/types.gen.ts +5 -5
  520. package/src/util/retrieve.ts +4 -4
  521. package/src/util/telem.ts +0 -1
  522. package/src/view/client.ts +120 -37
  523. package/src/view/types.gen.ts +8 -11
  524. package/.turbo/turbo-build.log +0 -20
  525. package/.vscode/settings.json +0 -3
  526. package/CONTRIBUTING.md +0 -47
  527. package/dist/client.cjs +0 -118
  528. package/dist/eslint.config.d.ts +0 -4
  529. package/dist/eslint.config.d.ts.map +0 -1
  530. package/dist/src/access/enforce.spec.d.ts +0 -2
  531. package/dist/src/access/enforce.spec.d.ts.map +0 -1
  532. package/dist/src/access/policy/access.spec.d.ts +0 -2
  533. package/dist/src/access/policy/access.spec.d.ts.map +0 -1
  534. package/dist/src/access/role/role.spec.d.ts +0 -2
  535. package/dist/src/access/role/role.spec.d.ts.map +0 -1
  536. package/dist/src/actions/actions.spec.d.ts +0 -2
  537. package/dist/src/actions/actions.spec.d.ts.map +0 -1
  538. package/dist/src/arc/access.spec.d.ts +0 -2
  539. package/dist/src/arc/access.spec.d.ts.map +0 -1
  540. package/dist/src/arc/arc.spec.d.ts +0 -2
  541. package/dist/src/arc/arc.spec.d.ts.map +0 -1
  542. package/dist/src/arc/lsp.spec.d.ts +0 -2
  543. package/dist/src/arc/lsp.spec.d.ts.map +0 -1
  544. package/dist/src/auth/auth.spec.d.ts +0 -2
  545. package/dist/src/auth/auth.spec.d.ts.map +0 -1
  546. package/dist/src/channel/access.spec.d.ts +0 -2
  547. package/dist/src/channel/access.spec.d.ts.map +0 -1
  548. package/dist/src/channel/batchRetriever.spec.d.ts +0 -2
  549. package/dist/src/channel/batchRetriever.spec.d.ts.map +0 -1
  550. package/dist/src/channel/channel.spec.d.ts +0 -2
  551. package/dist/src/channel/channel.spec.d.ts.map +0 -1
  552. package/dist/src/channel/payload.spec.d.ts +0 -2
  553. package/dist/src/channel/payload.spec.d.ts.map +0 -1
  554. package/dist/src/channel/retriever.d.ts +0 -64
  555. package/dist/src/channel/retriever.d.ts.map +0 -1
  556. package/dist/src/cluster/index.d.ts +0 -2
  557. package/dist/src/cluster/index.d.ts.map +0 -1
  558. package/dist/src/cluster/types.gen.d.ts +0 -4
  559. package/dist/src/cluster/types.gen.d.ts.map +0 -1
  560. package/dist/src/connection/checker.d.ts +0 -86
  561. package/dist/src/connection/checker.d.ts.map +0 -1
  562. package/dist/src/connection/connection.spec.d.ts +0 -2
  563. package/dist/src/connection/connection.spec.d.ts.map +0 -1
  564. package/dist/src/connection.spec.d.ts +0 -2
  565. package/dist/src/connection.spec.d.ts.map +0 -1
  566. package/dist/src/control/state.spec.d.ts +0 -2
  567. package/dist/src/control/state.spec.d.ts.map +0 -1
  568. package/dist/src/device/access.spec.d.ts +0 -2
  569. package/dist/src/device/access.spec.d.ts.map +0 -1
  570. package/dist/src/device/device.spec.d.ts +0 -2
  571. package/dist/src/device/device.spec.d.ts.map +0 -1
  572. package/dist/src/device/payload.spec.d.ts +0 -2
  573. package/dist/src/device/payload.spec.d.ts.map +0 -1
  574. package/dist/src/errors.spec.d.ts +0 -2
  575. package/dist/src/errors.spec.d.ts.map +0 -1
  576. package/dist/src/framer/adapter.spec.d.ts +0 -2
  577. package/dist/src/framer/adapter.spec.d.ts.map +0 -1
  578. package/dist/src/framer/client.spec.d.ts +0 -2
  579. package/dist/src/framer/client.spec.d.ts.map +0 -1
  580. package/dist/src/framer/codec.spec.d.ts +0 -2
  581. package/dist/src/framer/codec.spec.d.ts.map +0 -1
  582. package/dist/src/framer/deleter.spec.d.ts +0 -2
  583. package/dist/src/framer/deleter.spec.d.ts.map +0 -1
  584. package/dist/src/framer/frame.spec.d.ts +0 -2
  585. package/dist/src/framer/frame.spec.d.ts.map +0 -1
  586. package/dist/src/framer/iterator.spec.d.ts +0 -2
  587. package/dist/src/framer/iterator.spec.d.ts.map +0 -1
  588. package/dist/src/framer/reader.spec.d.ts +0 -2
  589. package/dist/src/framer/reader.spec.d.ts.map +0 -1
  590. package/dist/src/framer/streamer.spec.d.ts +0 -2
  591. package/dist/src/framer/streamer.spec.d.ts.map +0 -1
  592. package/dist/src/framer/writer.spec.d.ts +0 -2
  593. package/dist/src/framer/writer.spec.d.ts.map +0 -1
  594. package/dist/src/group/access.spec.d.ts +0 -2
  595. package/dist/src/group/access.spec.d.ts.map +0 -1
  596. package/dist/src/group/group.spec.d.ts +0 -2
  597. package/dist/src/group/group.spec.d.ts.map +0 -1
  598. package/dist/src/label/access.spec.d.ts +0 -2
  599. package/dist/src/label/access.spec.d.ts.map +0 -1
  600. package/dist/src/label/label.spec.d.ts +0 -2
  601. package/dist/src/label/label.spec.d.ts.map +0 -1
  602. package/dist/src/lineplot/access.spec.d.ts +0 -2
  603. package/dist/src/lineplot/access.spec.d.ts.map +0 -1
  604. package/dist/src/lineplot/lineplot.spec.d.ts +0 -2
  605. package/dist/src/lineplot/lineplot.spec.d.ts.map +0 -1
  606. package/dist/src/log/access.spec.d.ts +0 -2
  607. package/dist/src/log/access.spec.d.ts.map +0 -1
  608. package/dist/src/log/log.spec.d.ts +0 -2
  609. package/dist/src/log/log.spec.d.ts.map +0 -1
  610. package/dist/src/ontology/ontology.spec.d.ts +0 -2
  611. package/dist/src/ontology/ontology.spec.d.ts.map +0 -1
  612. package/dist/src/rack/access.spec.d.ts +0 -2
  613. package/dist/src/rack/access.spec.d.ts.map +0 -1
  614. package/dist/src/rack/rack.spec.d.ts +0 -2
  615. package/dist/src/rack/rack.spec.d.ts.map +0 -1
  616. package/dist/src/ranger/access.spec.d.ts +0 -2
  617. package/dist/src/ranger/access.spec.d.ts.map +0 -1
  618. package/dist/src/ranger/alias/payload.spec.d.ts +0 -2
  619. package/dist/src/ranger/alias/payload.spec.d.ts.map +0 -1
  620. package/dist/src/ranger/ranger.spec.d.ts +0 -2
  621. package/dist/src/ranger/ranger.spec.d.ts.map +0 -1
  622. package/dist/src/schematic/access.spec.d.ts +0 -2
  623. package/dist/src/schematic/access.spec.d.ts.map +0 -1
  624. package/dist/src/schematic/actions.spec.d.ts +0 -2
  625. package/dist/src/schematic/actions.spec.d.ts.map +0 -1
  626. package/dist/src/schematic/schematic.spec.d.ts +0 -2
  627. package/dist/src/schematic/schematic.spec.d.ts.map +0 -1
  628. package/dist/src/schematic/symbol/access.spec.d.ts +0 -2
  629. package/dist/src/schematic/symbol/access.spec.d.ts.map +0 -1
  630. package/dist/src/schematic/symbol/client.spec.d.ts +0 -2
  631. package/dist/src/schematic/symbol/client.spec.d.ts.map +0 -1
  632. package/dist/src/status/access.spec.d.ts +0 -2
  633. package/dist/src/status/access.spec.d.ts.map +0 -1
  634. package/dist/src/status/status.spec.d.ts +0 -2
  635. package/dist/src/status/status.spec.d.ts.map +0 -1
  636. package/dist/src/table/access.spec.d.ts +0 -2
  637. package/dist/src/table/access.spec.d.ts.map +0 -1
  638. package/dist/src/table/table.spec.d.ts +0 -2
  639. package/dist/src/table/table.spec.d.ts.map +0 -1
  640. package/dist/src/task/access.spec.d.ts +0 -2
  641. package/dist/src/task/access.spec.d.ts.map +0 -1
  642. package/dist/src/task/payload.spec.d.ts +0 -2
  643. package/dist/src/task/payload.spec.d.ts.map +0 -1
  644. package/dist/src/task/task.spec.d.ts +0 -2
  645. package/dist/src/task/task.spec.d.ts.map +0 -1
  646. package/dist/src/user/access.spec.d.ts +0 -2
  647. package/dist/src/user/access.spec.d.ts.map +0 -1
  648. package/dist/src/user/user.spec.d.ts +0 -2
  649. package/dist/src/user/user.spec.d.ts.map +0 -1
  650. package/dist/src/util/retrieve.spec.d.ts +0 -2
  651. package/dist/src/util/retrieve.spec.d.ts.map +0 -1
  652. package/dist/src/view/view.spec.d.ts +0 -2
  653. package/dist/src/view/view.spec.d.ts.map +0 -1
  654. package/dist/src/workspace/access.spec.d.ts +0 -2
  655. package/dist/src/workspace/access.spec.d.ts.map +0 -1
  656. package/dist/src/workspace/client.d.ts +0 -36
  657. package/dist/src/workspace/client.d.ts.map +0 -1
  658. package/dist/src/workspace/external.d.ts.map +0 -1
  659. package/dist/src/workspace/index.d.ts +0 -2
  660. package/dist/src/workspace/index.d.ts.map +0 -1
  661. package/dist/src/workspace/types.gen.d.ts +0 -34
  662. package/dist/src/workspace/types.gen.d.ts.map +0 -1
  663. package/dist/src/workspace/workspace.spec.d.ts +0 -2
  664. package/dist/src/workspace/workspace.spec.d.ts.map +0 -1
  665. package/examples/node/basicReadWrite.js +0 -86
  666. package/examples/node/createChannels.js +0 -50
  667. package/examples/node/createRange.js +0 -67
  668. package/examples/node/package-lock.json +0 -133
  669. package/examples/node/package.json +0 -17
  670. package/examples/node/readLatest.js +0 -76
  671. package/examples/node/seriesAndFrames.js +0 -173
  672. package/examples/node/streamRead.js +0 -50
  673. package/examples/node/streamWrite.js +0 -87
  674. package/src/access/enforce.spec.ts +0 -188
  675. package/src/access/policy/access.spec.ts +0 -147
  676. package/src/access/role/role.spec.ts +0 -95
  677. package/src/actions/actions.spec.ts +0 -229
  678. package/src/arc/access.spec.ts +0 -149
  679. package/src/arc/arc.spec.ts +0 -44
  680. package/src/arc/lsp.spec.ts +0 -717
  681. package/src/auth/auth.spec.ts +0 -101
  682. package/src/channel/access.spec.ts +0 -116
  683. package/src/channel/batchRetriever.spec.ts +0 -115
  684. package/src/channel/channel.spec.ts +0 -352
  685. package/src/channel/payload.spec.ts +0 -117
  686. package/src/channel/retriever.ts +0 -252
  687. package/src/connection/checker.ts +0 -203
  688. package/src/connection/connection.spec.ts +0 -152
  689. package/src/connection.spec.ts +0 -145
  690. package/src/control/state.spec.ts +0 -22
  691. package/src/device/access.spec.ts +0 -159
  692. package/src/device/device.spec.ts +0 -461
  693. package/src/device/payload.spec.ts +0 -142
  694. package/src/errors.spec.ts +0 -71
  695. package/src/framer/adapter.spec.ts +0 -620
  696. package/src/framer/client.spec.ts +0 -180
  697. package/src/framer/codec.spec.ts +0 -383
  698. package/src/framer/deleter.spec.ts +0 -103
  699. package/src/framer/frame.spec.ts +0 -973
  700. package/src/framer/iterator.spec.ts +0 -169
  701. package/src/framer/reader.spec.ts +0 -865
  702. package/src/framer/streamer.spec.ts +0 -871
  703. package/src/framer/writer.spec.ts +0 -486
  704. package/src/group/access.spec.ts +0 -77
  705. package/src/group/group.spec.ts +0 -65
  706. package/src/label/access.spec.ts +0 -109
  707. package/src/label/label.spec.ts +0 -83
  708. package/src/lineplot/access.spec.ts +0 -134
  709. package/src/lineplot/lineplot.spec.ts +0 -120
  710. package/src/log/access.spec.ts +0 -132
  711. package/src/log/log.spec.ts +0 -106
  712. package/src/ontology/ontology.spec.ts +0 -521
  713. package/src/rack/access.spec.ts +0 -102
  714. package/src/rack/rack.spec.ts +0 -171
  715. package/src/ranger/access.spec.ts +0 -115
  716. package/src/ranger/alias/payload.spec.ts +0 -52
  717. package/src/ranger/ranger.spec.ts +0 -343
  718. package/src/schematic/access.spec.ts +0 -134
  719. package/src/schematic/actions.spec.ts +0 -699
  720. package/src/schematic/schematic.spec.ts +0 -340
  721. package/src/schematic/symbol/access.spec.ts +0 -172
  722. package/src/schematic/symbol/client.spec.ts +0 -160
  723. package/src/status/access.spec.ts +0 -129
  724. package/src/status/status.spec.ts +0 -448
  725. package/src/table/access.spec.ts +0 -128
  726. package/src/table/table.spec.ts +0 -651
  727. package/src/task/access.spec.ts +0 -131
  728. package/src/task/payload.spec.ts +0 -113
  729. package/src/task/task.spec.ts +0 -657
  730. package/src/user/access.spec.ts +0 -107
  731. package/src/user/user.spec.ts +0 -290
  732. package/src/util/retrieve.spec.ts +0 -49
  733. package/src/view/view.spec.ts +0 -165
  734. package/src/workspace/access.spec.ts +0 -108
  735. package/src/workspace/client.ts +0 -112
  736. package/src/workspace/types.gen.ts +0 -46
  737. package/src/workspace/workspace.spec.ts +0 -111
  738. package/tsconfig.json +0 -5
  739. package/tsconfig.vite.json +0 -4
  740. package/vite.config.ts +0 -29
  741. /package/dist/src/{workspace → project}/external.d.ts +0 -0
@@ -0,0 +1,71 @@
1
+ import { alamos } from '@synnaxlabs/alamos';
2
+ import { MultiSeries, Series, TimeSpan, TimeStamp } from '@synnaxlabs/x';
3
+ import { Transform } from './transform';
4
+ /** Response from a write to the {@link Dynamic} cache. */
5
+ export interface WriteResponse {
6
+ /** Series flushed because the write did not fit in the current buffer. */
7
+ flushed: MultiSeries;
8
+ /** A list of series that were allocated during the write. */
9
+ allocated: MultiSeries;
10
+ }
11
+ /** Props for the {@link Dynamic} cache. */
12
+ export interface DynamicProps {
13
+ /**
14
+ * Sets the maximum size of the buffer that the cache will maintain before flushing
15
+ * data out to the caller.
16
+ */
17
+ dynamicBufferSize: number | TimeSpan;
18
+ /** Applied to every series before it enters a buffer. Defaults to identity. */
19
+ transform?: Transform;
20
+ /** Used for logging. */
21
+ instrumentation?: alamos.Instrumentation;
22
+ /** Pulls the current time. */
23
+ now?: () => TimeStamp;
24
+ }
25
+ /**
26
+ * A cache for channel data that maintains a single, rolling Series as a buffer
27
+ * for channel data. The buffer's data type is derived from the first written series,
28
+ * so the cache needs no channel metadata.
29
+ */
30
+ export declare class Dynamic {
31
+ private readonly props;
32
+ private counter;
33
+ private curr;
34
+ /** End timestamp of the last fully written stamped series in the current buffer.
35
+ * Null when the buffer holds unstamped or partially written data, in which case
36
+ * the flush falls back to the wall clock. */
37
+ private currDataEnd;
38
+ private avgRate;
39
+ private timeOfLastWrite;
40
+ private totalWrites;
41
+ private readonly now;
42
+ constructor(props: DynamicProps);
43
+ /** @returns the number of samples currently held in the cache. */
44
+ get length(): number;
45
+ /**
46
+ * @returns the current buffer being written to by the cache. Under no circumstances
47
+ * should this be modified by the caller.
48
+ */
49
+ get leadingBuffer(): Series | null;
50
+ /**
51
+ * @returns a list of buffers that were filled by the cache during the write. If the
52
+ * current buffer is able to fit all writes, no buffers will be returned.
53
+ */
54
+ write(series: MultiSeries): WriteResponse;
55
+ private allocate;
56
+ private allocStart;
57
+ private allocCurr;
58
+ private flushCurr;
59
+ private _write;
60
+ private updateAvgRate;
61
+ private nextBufferSize;
62
+ /**
63
+ * Flushes the leading buffer, stamping its end with the last stamped write or
64
+ * the wall clock.
65
+ * @returns the flushed buffer, or null when there is none.
66
+ */
67
+ flush(): Series | null;
68
+ /** Closes the cache. It must not be used afterwards. */
69
+ close(): void;
70
+ }
71
+ //# sourceMappingURL=dynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../../../../src/framer/cache/dynamic.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAGL,WAAW,EACX,MAAM,EACN,KAAK,QAAQ,EACb,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,WAAW,CAAC;IACrB,6DAA6D;IAC7D,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,iBAAiB,EAAE,MAAM,GAAG,QAAQ,CAAC;IACrC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC;IACzC,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,SAAS,CAAC;CACvB;AAYD;;;;GAIG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,IAAI,CAAuB;IACnC;;iDAE6C;IAC7C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;gBAE1B,KAAK,EAAE,YAAY;IAY/B,kEAAkE;IAClE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAEjC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa;IAUzC,OAAO,CAAC,QAAQ;IAgChB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,MAAM;IAmEd,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;IAQtB;;;;OAIG;IACH,KAAK,IAAI,MAAM,GAAG,IAAI;IAStB,wDAAwD;IACxD,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,43 @@
1
+ import { MultiSeries, TimeRange, TimeSpan } from '@synnaxlabs/x';
2
+ import { channel } from '../../channel';
3
+ import { Cache } from './cache';
4
+ import { Frame } from '../frame';
5
+ /** A function that reads a telemetry frame from the Synnax cluster. */
6
+ export interface RemoteReader {
7
+ (tr: TimeRange, keys: channel.Key[]): Promise<Frame>;
8
+ }
9
+ export interface ReaderProps {
10
+ /** Function used to read remote data from the server. */
11
+ readRemote: RemoteReader;
12
+ /** Will read from and populate the given cache with fetched data. */
13
+ cache: Cache;
14
+ /**
15
+ * Used to batch read requests to the server to minimize traffic. The window is not
16
+ * extended by later reads, so it is also the maximum wait before a batch fires.
17
+ * @default TimeSpan.milliseconds(50)
18
+ */
19
+ batchDebounce?: TimeSpan;
20
+ /**
21
+ * Reads whose gap time ranges are within this threshold merge into one request.
22
+ * @default TimeSpan.milliseconds(5)
23
+ */
24
+ overlapThreshold?: TimeSpan;
25
+ }
26
+ /**
27
+ * Reads historical telemetry, serving from the cache and batch-filling gaps from the
28
+ * server. A batch failure rejects only the reads whose gaps were in the failed fetch.
29
+ */
30
+ export declare class Reader {
31
+ private readonly props;
32
+ private readonly batcher;
33
+ private readonly mu;
34
+ constructor(props: ReaderProps);
35
+ /**
36
+ * Reads the given time range for the given channel.
37
+ * @throws {UnexpectedError} if the reader is closed while the read is pending.
38
+ */
39
+ read(tr: TimeRange, channel: channel.Key): Promise<MultiSeries>;
40
+ private batchRead;
41
+ close(): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../../src/framer/cache/reader.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,WAAW,EAGX,SAAS,EACT,QAAQ,EACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACtD;AAaD,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,UAAU,EAAE,YAAY,CAAC;IACzB,qEAAqE;IACrE,KAAK,EAAE,KAAK,CAAC;IACb;;;;OAIG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoC;gBAE3C,KAAK,EAAE,WAAW;IAkB9B;;;OAGG;IACG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;YAUvD,SAAS;IAsDjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
@@ -0,0 +1,66 @@
1
+ import { alamos } from '@synnaxlabs/alamos';
2
+ import { MultiSeries, Size, TimeRange, TimeSpan } from '@synnaxlabs/x';
3
+ import { Transform } from './transform';
4
+ export interface DirtyReadResult {
5
+ series: MultiSeries;
6
+ gaps: TimeRange[];
7
+ }
8
+ export interface GCMetrics {
9
+ purgedSeries: number;
10
+ purgedBytes: Size;
11
+ }
12
+ export declare const zeroGCMetrics: () => GCMetrics;
13
+ /** Props for the {@link Static} cache. */
14
+ export interface StaticProps {
15
+ /** Used for logging */
16
+ instrumentation?: alamos.Instrumentation;
17
+ /** Applied to every series before it enters the cache. Defaults to identity. */
18
+ transform?: Transform;
19
+ /**
20
+ * Sets the amount of time that a cache entry must be in the cache before it can
21
+ * be marked as stale and subject to garbage collection.
22
+ * @default TimeSpan.seconds(20) */
23
+ staleEntryThreshold?: TimeSpan;
24
+ }
25
+ export declare const DEFAULT_STATIC_PROPS: Required<StaticProps>;
26
+ /**
27
+ * A cache for historical channel data that will not be modified after it is written.
28
+ * Fetched and streamed entries are held apart because they measure position in
29
+ * different spaces: a fetched sample carries its committed alignment, the same sample
30
+ * streamed carries a provisional leading one. Insertion and gap computation both assume
31
+ * a single space, so each kind gets its own list.
32
+ */
33
+ export declare class Static {
34
+ private fetched;
35
+ private streamed;
36
+ private readonly props;
37
+ constructor(props: StaticProps);
38
+ /**
39
+ * Writes the given series to the cache, merging written series with any existing
40
+ * series in the cache.
41
+ * @param streamed - Marks the series as live-streamed data. A fetched write evicts
42
+ * every streamed entry whose time range it fully covers.
43
+ */
44
+ write(series: MultiSeries, streamed?: boolean): void;
45
+ private evictStreamed;
46
+ /**
47
+ * Executes a 'dirty' read of the cache, retrieving any series in the cache that
48
+ * overlap with the given time range. The series may extend before or after the range.
49
+ * Gaps are computed against fetched entries only. Streamed entries carry provisional
50
+ * leading alignments that cannot pair with fetched data on another channel, so they
51
+ * never claim coverage; the fetch they provoke evicts them.
52
+ * @returns A list of series that overlap with the given time range and a list of
53
+ * gaps, representing the regions of time the fetched series do not cover.
54
+ */
55
+ dirtyRead(tr: TimeRange): DirtyReadResult;
56
+ /**
57
+ * Garbage collects the cache, removing any stale entries.
58
+ * @returns metrics about the garbage collection.
59
+ */
60
+ gc(): GCMetrics;
61
+ /** Closes the cache, freeing all of its resources. */
62
+ close(): void;
63
+ private writeOne;
64
+ private repairIntegrity;
65
+ }
66
+ //# sourceMappingURL=static.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../../src/framer/cache/static.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAEL,WAAW,EAEX,IAAI,EACJ,SAAS,EACT,QAAQ,EAET,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,QAAO,SAG/B,CAAC;AAEH,0CAA0C;AAC1C,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC;IACzC,gFAAgF;IAChF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;uCAGmC;IACnC,mBAAmB,CAAC,EAAE,QAAQ,CAAC;CAChC;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAItD,CAAC;AASF;;;;;;GAMG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAElC,KAAK,EAAE,WAAW;IAS9B;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI;IAY3D,OAAO,CAAC,aAAa;IAWrB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,eAAe;IAkBzC;;;OAGG;IACH,EAAE,IAAI,SAAS;IAmBf,sDAAsD;IACtD,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,eAAe;CAsBxB"}
@@ -0,0 +1,86 @@
1
+ import { alamos } from '@synnaxlabs/alamos';
2
+ import { breaker, CrudeTimeSpan, destructor, MultiSeries } from '@synnaxlabs/x';
3
+ import { channel } from '../../channel';
4
+ import { Cache } from './cache';
5
+ import { Streamer, StreamerConfig } from '../streamer';
6
+ import { status } from '../../status';
7
+ /** Stream lifecycle hooks the streamer uses to track connection health. */
8
+ export interface StreamHooks {
9
+ /** Called after every successful reconnect of the underlying stream. */
10
+ onReopen: () => void;
11
+ /** Called when the underlying stream fails and reconnection begins. */
12
+ onDrop: (error: Error) => void;
13
+ }
14
+ /** Opens the underlying frame stream, hardened against connection loss. */
15
+ export interface HardenedOpener {
16
+ (config: StreamerConfig, hooks: StreamHooks): Promise<Streamer>;
17
+ }
18
+ /**
19
+ * Receives every channel that changed on the shared stream, which may include
20
+ * keys the handler did not subscribe to.
21
+ */
22
+ export type StreamHandler = (data: Map<channel.Key, MultiSeries>) => void;
23
+ /** Receives per-key data-plane status transitions for subscribed channels. */
24
+ export type StatusHandler = (key: channel.Key, status: status.Status) => void;
25
+ /**
26
+ * A durable handle on streaming demand. Closing it releases the demand; until then
27
+ * the streamer owns converging the underlying stream to it.
28
+ */
29
+ export interface Subscription {
30
+ /** Releases the subscription's demand. */
31
+ close: () => void;
32
+ /** @returns the current data-plane status for the given key. */
33
+ status: (key: channel.Key) => status.Status;
34
+ /** Registers a handler for status transitions on the subscription's keys. */
35
+ onStatusChange: (handler: StatusHandler) => destructor.Destructor;
36
+ }
37
+ export interface MultiplexedStreamerProps {
38
+ cache: Cache;
39
+ openStreamer: HardenedOpener;
40
+ instrumentation?: alamos.Instrumentation;
41
+ /**
42
+ * How long a closed subscription's keys stay on the stream, damping churn from
43
+ * rapid unsubscribe and resubscribe cycles.
44
+ * @default TimeSpan.seconds(5)
45
+ */
46
+ removalDelay?: CrudeTimeSpan;
47
+ /** Retry behavior for stream open and update failures. */
48
+ breaker?: breaker.Config;
49
+ }
50
+ /**
51
+ * Multiplexes durable subscriptions onto one shared frame stream. Demand
52
+ * registration is synchronous and cannot fail per key; all convergence work
53
+ * surfaces as per-key statuses instead of thrown errors.
54
+ */
55
+ export declare class MultiplexedStreamer {
56
+ private readonly props;
57
+ private readonly connMu;
58
+ private readonly breaker;
59
+ private readonly entries;
60
+ private readonly statuses;
61
+ private reconcileTimer;
62
+ private readonly removalTimers;
63
+ private runLoop;
64
+ private streamer;
65
+ private sentKeys;
66
+ constructor(props: MultiplexedStreamerProps);
67
+ /**
68
+ * Registers demand for the given keys. Registration is synchronous: the handler
69
+ * is called with any existing leading buffers, and the stream converges to the
70
+ * new demand in the background.
71
+ * @throws {UnexpectedError} if the streamer has been closed.
72
+ */
73
+ stream(handler: StreamHandler, keys: channel.Key[]): Subscription;
74
+ close(): Promise<void>;
75
+ private releaseStream;
76
+ private remove;
77
+ private scheduleReconcile;
78
+ /** @returns the union of keys across all entries, including those pending
79
+ * removal, so the stream lags demand only by the removal delay. */
80
+ private desiredKeys;
81
+ private setStatus;
82
+ private flushBuffers;
83
+ private reconcile;
84
+ private run;
85
+ }
86
+ //# sourceMappingURL=streamer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamer.d.ts","sourceRoot":"","sources":["../../../../src/framer/cache/streamer.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAEL,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,WAAW,EAKZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,uEAAuE;IACvE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACjE;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;AAE1E,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AAE9E;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,gEAAgE;IAChE,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,cAAc,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,UAAU,CAAC,UAAU,CAAC;CACnE;AASD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,cAAc,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC;IACzC;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;CAC1B;AAYD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAIpB;IAIF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAClE,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4C;IAC1E,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,QAAQ,CAAyB;IAGzC,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,KAAK,EAAE,wBAAwB;IA6B3C;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY;IAmC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBd,aAAa;IAS3B,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,iBAAiB;IAQzB;uEACmE;IACnE,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,YAAY;YAKN,SAAS;YAwET,GAAG;CAiDlB"}
@@ -0,0 +1,18 @@
1
+ import { DataType, math, Series } from '@synnaxlabs/x';
2
+ /**
3
+ * Converts series into the representation the caller renders from before they enter
4
+ * cache buffers. Injected at construction; the cache applies it to every write.
5
+ */
6
+ export interface Transform {
7
+ /** @returns the buffer data type used to hold series of the given type. */
8
+ resolveDataType: (dt: DataType) => DataType;
9
+ /**
10
+ * Converts the series to the resolved data type.
11
+ * @param offset - Subtracted from each sample before narrowing conversions to
12
+ * preserve precision. Omitted when the buffer anchors off the first sample.
13
+ */
14
+ convert: (series: Series, offset?: math.Numeric) => Series;
15
+ }
16
+ /** A transform that stores every series exactly as it arrives. */
17
+ export declare const IDENTITY_TRANSFORM: Transform;
18
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/framer/cache/transform.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,2EAA2E;IAC3E,eAAe,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,QAAQ,CAAC;IAC5C;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;CAC5D;AAED,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,SAGhC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { MultiSeries, Series, TimeRange } from '@synnaxlabs/x';
2
+ import { DynamicProps } from './dynamic';
3
+ import { DirtyReadResult, GCMetrics, StaticProps } from './static';
4
+ export interface UnaryProps extends StaticProps, Pick<DynamicProps, "dynamicBufferSize"> {
5
+ }
6
+ /**
7
+ * Caches data for a single channel: a dynamic leading buffer for live writes backed
8
+ * by a static cache for flushed and historical data.
9
+ * @throws {UnexpectedError} from every method after close().
10
+ */
11
+ export declare class Unary {
12
+ private closed;
13
+ private readonly static;
14
+ private readonly dynamic;
15
+ constructor(props: UnaryProps);
16
+ writeDynamic(series: MultiSeries): MultiSeries;
17
+ get leadingBuffer(): Series | null;
18
+ /**
19
+ * Flushes the live leading buffer into the static cache with its real end time,
20
+ * so reads treat the span after it as a gap to fetch. Call when streaming for
21
+ * the channel stops.
22
+ */
23
+ flushDynamic(): void;
24
+ writeStatic(series: MultiSeries): void;
25
+ /**
26
+ * Reads cached data overlapping the given time range. The result includes the
27
+ * live leading buffer when it overlaps, but the buffer never claims coverage:
28
+ * its samples carry provisional leading alignments that cannot pair with fetched
29
+ * data on another channel, so its span is still reported as a gap to fetch. A
30
+ * span may therefore return in both its streamed and fetched representation.
31
+ */
32
+ read(tr: TimeRange): DirtyReadResult;
33
+ gc(): GCMetrics;
34
+ close(): void;
35
+ private checkOpen;
36
+ }
37
+ //# sourceMappingURL=unary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unary.d.ts","sourceRoot":"","sources":["../../../../src/framer/cache/unary.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EAEd,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,UACf,SAAQ,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAAG;AAEjE;;;;GAIG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,KAAK,EAAE,UAAU;IAS7B,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAQ9C,IAAI,aAAa,IAAI,MAAM,GAAG,IAAI,CAGjC;IAED;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAOpB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKtC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,EAAE,SAAS,GAAG,eAAe;IASpC,EAAE,IAAI,SAAS;IAKf,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,SAAS;CAIlB"}
@@ -1,6 +1,8 @@
1
1
  import { UnaryClient, WebSocketClient } from '@synnaxlabs/freighter';
2
2
  import { CrudeSeries, CrudeTimeRange, CrudeTimeStamp, MultiSeries } from '@synnaxlabs/x';
3
3
  import { channel } from '../channel';
4
+ import { ChannelRetriever } from './adapter';
5
+ import { Feed, FeedOptions } from './feed';
4
6
  import { Frame } from './frame';
5
7
  import { Iterator, IteratorConfig } from './iterator';
6
8
  import { ReadRequest } from './reader';
@@ -9,22 +11,30 @@ import { Writer, WriterConfig } from './writer';
9
11
  import { ontology } from '../ontology';
10
12
  export declare const ontologyID: ontology.CreateID<string>;
11
13
  export declare const TYPE_ONTOLOGY_ID: {
12
- type: "arc" | "builtin" | "channel" | "device" | "framer" | "group" | "label" | "lineplot" | "log" | "node" | "policy" | "rack" | "range" | "range-alias" | "role" | "schematic" | "schematic_symbol" | "status" | "table" | "task" | "user" | "view" | "workspace";
14
+ type: "arc" | "builtin" | "channel" | "device" | "framer" | "group" | "label" | "lineplot" | "log" | "node" | "panel" | "policy" | "project" | "rack" | "range" | "range-alias" | "role" | "schematic" | "schematic_symbol" | "status" | "table" | "task" | "user" | "view";
13
15
  key: string;
14
16
  } | {
15
- type: "arc" | "builtin" | "channel" | "device" | "framer" | "group" | "label" | "lineplot" | "log" | "node" | "policy" | "rack" | "range" | "range-alias" | "role" | "schematic" | "schematic_symbol" | "status" | "table" | "task" | "user" | "view" | "workspace";
17
+ type: "arc" | "builtin" | "channel" | "device" | "framer" | "group" | "label" | "lineplot" | "log" | "node" | "panel" | "policy" | "project" | "rack" | "range" | "range-alias" | "role" | "schematic" | "schematic_symbol" | "status" | "table" | "task" | "user" | "view";
16
18
  key: string;
17
19
  };
20
+ /** Config for {@link Client}. */
21
+ export interface ClientConfig {
22
+ stream: WebSocketClient;
23
+ unary: UnaryClient;
24
+ retrieveChannels: ChannelRetriever;
25
+ }
26
+ /**
27
+ * Reads and writes telemetry on a Core. Reach it through `client.telem` rather than
28
+ * building one: `read` and `write` cover one-shot access, and the `open*` methods hand
29
+ * back a long-lived stream the caller must close.
30
+ */
18
31
  export declare class Client {
19
- private readonly streamClient;
20
- private readonly retriever;
32
+ private readonly cfg;
21
33
  private readonly deleter;
22
34
  private readonly reader;
23
- constructor(stream: WebSocketClient, unary: UnaryClient, retriever: channel.Retriever);
35
+ constructor(cfg: ClientConfig);
24
36
  /**
25
37
  * Opens a new iterator over the given channels within the provided time range.
26
- *
27
- * @param tr - A time range to iterate over.
28
38
  * @param channels - A list of channels (by name or key) to iterate over.
29
39
  * @param opts - see {@link IteratorConfig}
30
40
  * @returns a new {@link Iterator}.
@@ -32,7 +42,6 @@ export declare class Client {
32
42
  openIterator(tr: CrudeTimeRange, channels: channel.Params, opts?: IteratorConfig): Promise<Iterator>;
33
43
  /**
34
44
  * Opens a new writer on the given channels.
35
- *
36
45
  * @param config - The configuration for the created writer, see documentation for
37
46
  * writerConfig for more detail.
38
47
  * @returns a new {@link Writer}.
@@ -40,19 +49,27 @@ export declare class Client {
40
49
  openWriter(config: WriterConfig): Promise<Writer>;
41
50
  /**
42
51
  * Opens a new streamer with the provided configuration.
43
- *
44
- * @param config - Configuration parameters for the streamer.
45
52
  * @param config.channels - The channels to stream values from. Can be a key, name,
46
53
  * list of keys, or list of names.
47
- * @param config.from - If this parameter is set and is before the current time,
48
- * the streamer will first read and receive historical data from before this point
49
- * and then will start reading new values.
50
- *
54
+ * @param config.from - If this parameter is set and is before the current time, the
55
+ * streamer will first read and receive historical data from before this point and
56
+ * then will start reading new values.
51
57
  */
52
58
  openStreamer(config: StreamerConfig): Promise<Streamer>;
59
+ /**
60
+ * Opens a feed over this client. The underlying stream opens on first demand;
61
+ * the caller must close the feed.
62
+ */
63
+ openFeed(options?: FeedOptions): Feed;
53
64
  write(start: CrudeTimeStamp, channel: channel.Key | channel.Name, data: CrudeSeries): Promise<void>;
54
65
  write(start: CrudeTimeStamp, channels: channel.Key[] | channel.Name[], data: CrudeSeries[]): Promise<void>;
55
66
  write(start: CrudeTimeStamp, data: Record<channel.Key | channel.Name, CrudeSeries>): Promise<void>;
67
+ /**
68
+ * Reads every sample in the time range from the given channels.
69
+ *
70
+ * @returns a {@link MultiSeries} for one channel, or a {@link Frame} for several.
71
+ * @throws {NotFoundError} if a channel does not exist.
72
+ */
56
73
  read(tr: CrudeTimeRange, channel: channel.Key | channel.Name): Promise<MultiSeries>;
57
74
  read(tr: CrudeTimeRange, channels: channel.Params): Promise<Frame>;
58
75
  read(request: ReadRequest): Promise<ReadableStream<Uint8Array>>;
@@ -60,6 +77,10 @@ export declare class Client {
60
77
  readLatest(channel: channel.Key | channel.Name, n: number): Promise<MultiSeries>;
61
78
  readLatest(channels: channel.Params, n: number): Promise<Frame>;
62
79
  private readLatestNFrame;
80
+ /**
81
+ * Deletes every sample in the time range from the given channels. Deletion is
82
+ * permanent.
83
+ */
63
84
  delete(channels: channel.Params, timeRange: CrudeTimeRange): Promise<void>;
64
85
  }
65
86
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/framer/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/framer/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/framer/codec.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,MAAM,EACN,QAAQ,EAIT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA2C1D,qBAAa,KAAK;IAChB,WAAW,EAAE,MAAM,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,MAAM,CAAa;gBAEf,IAAI,GAAE,OAAO,CAAC,GAAG,EAAO,EAAE,SAAS,GAAE,QAAQ,EAAO;IAIhE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAiBxD,OAAO,CAAC,iBAAiB;IAQzB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,MAAU,GAAG,UAAU,CAAC,WAAW,CAAC;IA+H1E,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO;CAoGpE;AAED,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAI1C,qBAAa,aAAc,YAAW,MAAM,CAAC,KAAK;IAChD,WAAW,SAAgB;IAC3B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,KAAK;IAKvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAcjD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAUpF;AAED,qBAAa,eAAgB,YAAW,MAAM,CAAC,KAAK;IAClD,WAAW,SAAgB;IAC3B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,KAAK;IAKvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAIjD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAWpF;AAED,qBAAa,eAAgB,YAAW,MAAM,CAAC,KAAK;IAClD,WAAW,SAAgB;IAC3B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,KAAK;IAKvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAIjD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAgBpF"}
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../../src/framer/codec.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,MAAM,EACN,QAAQ,EAIT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAwE1D,qBAAa,KAAK;IAChB,WAAW,EAAE,MAAM,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,MAAM,CAAa;gBAEf,IAAI,GAAE,OAAO,CAAC,GAAG,EAAO,EAAE,SAAS,GAAE,QAAQ,EAAO;IAIhE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAmBxD,OAAO,CAAC,iBAAiB;IAQzB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,GAAE,MAAU,GAAG,UAAU,CAAC,WAAW,CAAC;IAkI1E,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO;CAuGpE;AAED,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAI1C,qBAAa,aAAc,YAAW,MAAM,CAAC,KAAK;IAChD,WAAW,SAAgB;IAC3B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,KAAK;IAKvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAcjD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAUpF;AAED,qBAAa,eAAgB,YAAW,MAAM,CAAC,KAAK;IAClD,WAAW,SAAgB;IAC3B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,KAAK;IAKvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAIjD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAWpF;AAED,qBAAa,eAAgB,YAAW,MAAM,CAAC,KAAK;IAClD,WAAW,SAAgB;IAC3B,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,YAAY,CAAe;gBAEvB,IAAI,EAAE,KAAK;IAKvB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC;IAIjD,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAgBpF"}
@@ -8,12 +8,12 @@ declare const reqZ: z.ZodObject<{
8
8
  value: z.ZodBigInt;
9
9
  }, z.core.$strip>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, {
10
10
  value: bigint;
11
- }>>, z.ZodPipe<z.ZodString, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, bigint>>, z.ZodPipe<z.ZodDate, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, Date>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').TimeSpan, import('@synnaxlabs/x').TimeSpan>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, import('@synnaxlabs/x').TimeSpan>>, z.ZodPipe<z.ZodUnion<readonly [z.ZodTuple<[z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt, z.ZodInt], null>]>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, [number, number, number] | [number, number] | [number]>>]>;
11
+ }>>, z.ZodPipe<z.ZodString, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, bigint>>, z.ZodPipe<z.ZodDate, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, Date>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').TimeSpan, import('@synnaxlabs/x').TimeSpan>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, import('@synnaxlabs/x').TimeSpan>>, z.ZodPipe<z.ZodUnion<readonly [z.ZodTuple<[z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt, z.ZodInt], null>]>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, [number, number] | [number] | [number, number, number]>>]>;
12
12
  end: z.ZodUnion<readonly [z.ZodCustom<import('@synnaxlabs/x').TimeStamp, import('@synnaxlabs/x').TimeStamp>, z.ZodPipe<z.ZodObject<{
13
13
  value: z.ZodBigInt;
14
14
  }, z.core.$strip>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, {
15
15
  value: bigint;
16
- }>>, z.ZodPipe<z.ZodString, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, bigint>>, z.ZodPipe<z.ZodDate, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, Date>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').TimeSpan, import('@synnaxlabs/x').TimeSpan>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, import('@synnaxlabs/x').TimeSpan>>, z.ZodPipe<z.ZodUnion<readonly [z.ZodTuple<[z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt, z.ZodInt], null>]>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, [number, number, number] | [number, number] | [number]>>]>;
16
+ }>>, z.ZodPipe<z.ZodString, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, string>>, z.ZodPipe<z.ZodNumber, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, number>>, z.ZodPipe<z.ZodBigInt, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, bigint>>, z.ZodPipe<z.ZodDate, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, Date>>, z.ZodPipe<z.ZodCustom<import('@synnaxlabs/x').TimeSpan, import('@synnaxlabs/x').TimeSpan>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, import('@synnaxlabs/x').TimeSpan>>, z.ZodPipe<z.ZodUnion<readonly [z.ZodTuple<[z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt], null>, z.ZodTuple<[z.ZodInt, z.ZodInt, z.ZodInt], null>]>, z.ZodTransform<import('@synnaxlabs/x').TimeStamp, [number, number] | [number] | [number, number, number]>>]>;
17
17
  }, z.core.$strip>, z.ZodTransform<TimeRange, {
18
18
  start: import('@synnaxlabs/x').TimeStamp;
19
19
  end: import('@synnaxlabs/x').TimeStamp;
@@ -22,6 +22,7 @@ declare const reqZ: z.ZodObject<{
22
22
  }, z.core.$strip>;
23
23
  interface Request extends z.infer<typeof reqZ> {
24
24
  }
25
+ /** Deletes a time range of telemetry from a Core. Reach it through `client.telem`. */
25
26
  export declare class Deleter {
26
27
  private readonly client;
27
28
  constructor(client: UnaryClient);
@@ -1 +1 @@
1
- {"version":3,"file":"deleter.d.ts","sourceRoot":"","sources":["../../../src/framer/deleter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;iBAIR,CAAC;AACH,UAAU,OAAQ,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;CAAG;AAIjD,qBAAa,OAAO;IAIlB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,WAAW;IAIzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5C"}
1
+ {"version":3,"file":"deleter.d.ts","sourceRoot":"","sources":["../../../src/framer/deleter.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;iBAIR,CAAC;AACH,UAAU,OAAQ,SAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC;CAAG;AAIjD,sFAAsF;AACtF,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAEzB,MAAM,EAAE,WAAW;IAIzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5C"}
@@ -1,5 +1,11 @@
1
+ export { type ChannelRetriever } from './adapter';
2
+ export { type RemoteReader } from './cache/reader';
3
+ export { type StatusHandler, type StreamHandler, type Subscription, } from './cache/streamer';
4
+ export { IDENTITY_TRANSFORM, type Transform } from './cache/transform';
1
5
  export * from './client';
6
+ export * from './feed';
2
7
  export * from './frame';
8
+ export * from './hardened';
3
9
  export * from './iterator';
4
10
  export * from './reader';
5
11
  export * from './streamer';
@@ -1 +1 @@
1
- {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../src/framer/external.ts"],"names":[],"mappings":"AASA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../../src/framer/external.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { MultiSeries, TimeRange } from '@synnaxlabs/x';
2
+ import { channel } from '../channel';
3
+ import { CacheProps } from './cache/cache';
4
+ import { ReaderProps } from './cache/reader';
5
+ import { MultiplexedStreamerProps, StreamHandler, Subscription } from './cache/streamer';
6
+ import { StreamOpener } from './streamer';
7
+ /** Props for {@link Feed}, including the transport it reads and streams through. */
8
+ export interface FeedProps extends CacheProps, Omit<ReaderProps, "cache">, Omit<MultiplexedStreamerProps, "cache" | "openStreamer"> {
9
+ openStreamer: StreamOpener;
10
+ }
11
+ /** The part of {@link FeedProps} a caller sets. The client supplies the rest. */
12
+ export interface FeedOptions extends Omit<FeedProps, "readRemote" | "openStreamer"> {
13
+ }
14
+ /**
15
+ * Cached, demand-managed access to channel telemetry: durable streaming
16
+ * subscriptions multiplexed onto one frame stream, and batched historical reads
17
+ * served through per-channel rolling buffers.
18
+ */
19
+ export declare class Feed {
20
+ private readonly cache;
21
+ private readonly reader;
22
+ private readonly streamer;
23
+ constructor(props: FeedProps);
24
+ /**
25
+ * Registers durable streaming demand for the given keys. Returns synchronously;
26
+ * convergence failures surface as per-key statuses, never as rejections. The
27
+ * handler's first call precedes registration, so a throw from it leaves no
28
+ * subscription behind.
29
+ * @throws {UnexpectedError} if the feed has been closed.
30
+ */
31
+ stream(handler: StreamHandler, keys: channel.Key[]): Subscription;
32
+ /**
33
+ * Reads the given time range for the given channel, serving from the cache and
34
+ * gap-filling from the cluster.
35
+ */
36
+ read(tr: TimeRange, key: channel.Key): Promise<MultiSeries>;
37
+ /** Closes the feed, releasing the stream and all cached buffers. */
38
+ close(): Promise<void>;
39
+ }
40
+ //# sourceMappingURL=feed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/framer/feed.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,oFAAoF;AACpF,MAAM,WAAW,SACf,SACE,UAAU,EACV,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAC1B,IAAI,CAAC,wBAAwB,EAAE,OAAO,GAAG,cAAc,CAAC;IAC1D,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,iFAAiF;AACjF,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,cAAc,CAAC;CAAG;AAEtF;;;;GAIG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAEnC,KAAK,EAAE,SAAS;IAqC5B;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY;IAIjE;;;OAGG;IACG,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjE,oEAAoE;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}