@synnaxlabs/client 0.53.0 → 0.54.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 (390) hide show
  1. package/.turbo/turbo-build.log +14 -8
  2. package/dist/client.cjs +48 -54
  3. package/dist/client.js +12360 -15511
  4. package/dist/src/access/action/index.d.ts +2 -0
  5. package/dist/src/access/action/index.d.ts.map +1 -0
  6. package/dist/src/access/{payload.d.ts → action/types.gen.d.ts} +2 -1
  7. package/dist/src/access/action/types.gen.d.ts.map +1 -0
  8. package/dist/src/access/enforce.d.ts +2 -2
  9. package/dist/src/access/enforce.d.ts.map +1 -1
  10. package/dist/src/access/external.d.ts +1 -1
  11. package/dist/src/access/external.d.ts.map +1 -1
  12. package/dist/src/access/policy/client.d.ts +233 -389
  13. package/dist/src/access/policy/client.d.ts.map +1 -1
  14. package/dist/src/access/policy/external.d.ts +1 -1
  15. package/dist/src/access/policy/external.d.ts.map +1 -1
  16. package/dist/src/access/policy/types.gen.d.ts +120 -0
  17. package/dist/src/access/policy/types.gen.d.ts.map +1 -0
  18. package/dist/src/access/role/client.d.ts +1 -1
  19. package/dist/src/access/role/client.d.ts.map +1 -1
  20. package/dist/src/access/role/external.d.ts +1 -1
  21. package/dist/src/access/role/external.d.ts.map +1 -1
  22. package/dist/src/access/role/types.gen.d.ts +34 -0
  23. package/dist/src/access/role/types.gen.d.ts.map +1 -0
  24. package/dist/src/arc/client.d.ts +2 -2
  25. package/dist/src/arc/client.d.ts.map +1 -1
  26. package/dist/src/arc/compiler/index.d.ts +2 -0
  27. package/dist/src/arc/compiler/index.d.ts.map +1 -0
  28. package/dist/src/arc/compiler/types.gen.d.ts +12 -0
  29. package/dist/src/arc/compiler/types.gen.d.ts.map +1 -0
  30. package/dist/src/arc/external.d.ts +6 -1
  31. package/dist/src/arc/external.d.ts.map +1 -1
  32. package/dist/src/arc/graph/index.d.ts +2 -0
  33. package/dist/src/arc/graph/index.d.ts.map +1 -0
  34. package/dist/src/arc/graph/types.gen.d.ts +644 -0
  35. package/dist/src/arc/graph/types.gen.d.ts.map +1 -0
  36. package/dist/src/arc/ir/index.d.ts +2 -0
  37. package/dist/src/arc/ir/index.d.ts.map +1 -0
  38. package/dist/src/arc/ir/types.gen.d.ts +2988 -0
  39. package/dist/src/arc/ir/types.gen.d.ts.map +1 -0
  40. package/dist/src/arc/module/index.d.ts +2 -0
  41. package/dist/src/arc/module/index.d.ts.map +1 -0
  42. package/dist/src/arc/module/types.gen.d.ts +1138 -0
  43. package/dist/src/arc/module/types.gen.d.ts.map +1 -0
  44. package/dist/src/arc/program/index.d.ts +2 -0
  45. package/dist/src/arc/program/index.d.ts.map +1 -0
  46. package/dist/src/arc/program/types.gen.d.ts +1138 -0
  47. package/dist/src/arc/program/types.gen.d.ts.map +1 -0
  48. package/dist/src/arc/text/index.d.ts +2 -0
  49. package/dist/src/arc/text/index.d.ts.map +1 -0
  50. package/dist/src/arc/text/types.gen.d.ts +8 -0
  51. package/dist/src/arc/text/types.gen.d.ts.map +1 -0
  52. package/dist/src/arc/types/index.d.ts +2 -0
  53. package/dist/src/arc/types/index.d.ts.map +1 -0
  54. package/dist/src/arc/types/types.gen.d.ts +237 -0
  55. package/dist/src/arc/types/types.gen.d.ts.map +1 -0
  56. package/dist/src/arc/types.gen.d.ts +2394 -0
  57. package/dist/src/arc/types.gen.d.ts.map +1 -0
  58. package/dist/src/channel/client.d.ts +5 -4
  59. package/dist/src/channel/client.d.ts.map +1 -1
  60. package/dist/src/channel/external.d.ts +1 -0
  61. package/dist/src/channel/external.d.ts.map +1 -1
  62. package/dist/src/channel/payload.d.ts +93 -178
  63. package/dist/src/channel/payload.d.ts.map +1 -1
  64. package/dist/src/channel/retriever.d.ts +3 -2
  65. package/dist/src/channel/retriever.d.ts.map +1 -1
  66. package/dist/src/channel/types.gen.d.ts +151 -0
  67. package/dist/src/channel/types.gen.d.ts.map +1 -0
  68. package/dist/src/channel/writer.d.ts +1 -1
  69. package/dist/src/channel/writer.d.ts.map +1 -1
  70. package/dist/src/client.d.ts.map +1 -1
  71. package/dist/src/cluster/index.d.ts +2 -0
  72. package/dist/src/cluster/index.d.ts.map +1 -0
  73. package/dist/src/cluster/types.gen.d.ts +4 -0
  74. package/dist/src/cluster/types.gen.d.ts.map +1 -0
  75. package/dist/src/control/state.d.ts +14 -9
  76. package/dist/src/control/state.d.ts.map +1 -1
  77. package/dist/src/device/client.d.ts +7 -12
  78. package/dist/src/device/client.d.ts.map +1 -1
  79. package/dist/src/device/external.d.ts +1 -1
  80. package/dist/src/device/external.d.ts.map +1 -1
  81. package/dist/src/device/types.gen.d.ts +163 -0
  82. package/dist/src/device/types.gen.d.ts.map +1 -0
  83. package/dist/src/framer/adapter.d.ts +2 -2
  84. package/dist/src/framer/adapter.d.ts.map +1 -1
  85. package/dist/src/framer/client.d.ts +7 -7
  86. package/dist/src/framer/client.d.ts.map +1 -1
  87. package/dist/src/framer/codec.d.ts +5 -5
  88. package/dist/src/framer/codec.d.ts.map +1 -1
  89. package/dist/src/framer/external.d.ts +1 -1
  90. package/dist/src/framer/external.d.ts.map +1 -1
  91. package/dist/src/framer/frame.d.ts +18 -18
  92. package/dist/src/framer/frame.d.ts.map +1 -1
  93. package/dist/src/framer/reader.d.ts +1 -1
  94. package/dist/src/framer/reader.d.ts.map +1 -1
  95. package/dist/src/framer/streamer.d.ts +177 -114
  96. package/dist/src/framer/streamer.d.ts.map +1 -1
  97. package/dist/src/framer/types.gen.d.ts +9 -0
  98. package/dist/src/framer/types.gen.d.ts.map +1 -0
  99. package/dist/src/framer/writer.d.ts +192 -128
  100. package/dist/src/framer/writer.d.ts.map +1 -1
  101. package/dist/src/group/client.d.ts +17 -17
  102. package/dist/src/group/client.d.ts.map +1 -1
  103. package/dist/src/group/external.d.ts +1 -1
  104. package/dist/src/group/external.d.ts.map +1 -1
  105. package/dist/src/group/types.gen.d.ts +23 -0
  106. package/dist/src/group/types.gen.d.ts.map +1 -0
  107. package/dist/src/label/client.d.ts +51 -72
  108. package/dist/src/label/client.d.ts.map +1 -1
  109. package/dist/src/label/payload.d.ts +30 -8
  110. package/dist/src/label/payload.d.ts.map +1 -1
  111. package/dist/src/lineplot/client.d.ts +2 -11
  112. package/dist/src/lineplot/client.d.ts.map +1 -1
  113. package/dist/src/lineplot/external.d.ts +1 -1
  114. package/dist/src/lineplot/external.d.ts.map +1 -1
  115. package/dist/src/lineplot/types.gen.d.ts +33 -0
  116. package/dist/src/lineplot/types.gen.d.ts.map +1 -0
  117. package/dist/src/log/client.d.ts +2 -11
  118. package/dist/src/log/client.d.ts.map +1 -1
  119. package/dist/src/log/external.d.ts +1 -1
  120. package/dist/src/log/external.d.ts.map +1 -1
  121. package/dist/src/log/types.gen.d.ts +33 -0
  122. package/dist/src/log/types.gen.d.ts.map +1 -0
  123. package/dist/src/ontology/client.d.ts +31 -31
  124. package/dist/src/ontology/payload.d.ts +74 -99
  125. package/dist/src/ontology/payload.d.ts.map +1 -1
  126. package/dist/src/ontology/types.gen.d.ts +30 -0
  127. package/dist/src/ontology/types.gen.d.ts.map +1 -0
  128. package/dist/src/ontology/writer.d.ts +80 -80
  129. package/dist/src/rack/client.d.ts +22 -11
  130. package/dist/src/rack/client.d.ts.map +1 -1
  131. package/dist/src/rack/external.d.ts +1 -1
  132. package/dist/src/rack/external.d.ts.map +1 -1
  133. package/dist/src/rack/types.gen.d.ts +72 -0
  134. package/dist/src/rack/types.gen.d.ts.map +1 -0
  135. package/dist/src/range/alias/types.gen.d.ts +14 -0
  136. package/dist/src/range/alias/types.gen.d.ts.map +1 -0
  137. package/dist/src/range/kv/types.gen.d.ts +13 -0
  138. package/dist/src/range/kv/types.gen.d.ts.map +1 -0
  139. package/dist/src/ranger/alias/client.d.ts +1 -1
  140. package/dist/src/ranger/alias/client.d.ts.map +1 -1
  141. package/dist/src/ranger/alias/external.d.ts +3 -1
  142. package/dist/src/ranger/alias/external.d.ts.map +1 -1
  143. package/dist/src/ranger/alias/payload.d.ts +5 -9
  144. package/dist/src/ranger/alias/payload.d.ts.map +1 -1
  145. package/dist/src/ranger/alias/payload.spec.d.ts +2 -0
  146. package/dist/src/ranger/alias/payload.spec.d.ts.map +1 -0
  147. package/dist/src/ranger/alias/types.gen.d.ts +14 -0
  148. package/dist/src/ranger/alias/types.gen.d.ts.map +1 -0
  149. package/dist/src/ranger/client.d.ts +10 -15
  150. package/dist/src/ranger/client.d.ts.map +1 -1
  151. package/dist/src/ranger/external.d.ts +4 -4
  152. package/dist/src/ranger/external.d.ts.map +1 -1
  153. package/dist/src/ranger/kv/client.d.ts +1 -1
  154. package/dist/src/ranger/kv/client.d.ts.map +1 -1
  155. package/dist/src/ranger/kv/external.d.ts +3 -1
  156. package/dist/src/ranger/kv/external.d.ts.map +1 -1
  157. package/dist/src/ranger/kv/payload.d.ts +6 -13
  158. package/dist/src/ranger/kv/payload.d.ts.map +1 -1
  159. package/dist/src/ranger/kv/types.gen.d.ts +13 -0
  160. package/dist/src/ranger/kv/types.gen.d.ts.map +1 -0
  161. package/dist/src/ranger/payload.d.ts +2 -97
  162. package/dist/src/ranger/payload.d.ts.map +1 -1
  163. package/dist/src/ranger/types.gen.d.ts +219 -0
  164. package/dist/src/ranger/types.gen.d.ts.map +1 -0
  165. package/dist/src/ranger/writer.d.ts +25 -25
  166. package/dist/src/ranger/writer.d.ts.map +1 -1
  167. package/dist/src/schematic/client.d.ts +2 -11
  168. package/dist/src/schematic/client.d.ts.map +1 -1
  169. package/dist/src/schematic/external.d.ts +1 -1
  170. package/dist/src/schematic/external.d.ts.map +1 -1
  171. package/dist/src/schematic/symbol/client.d.ts +1 -2
  172. package/dist/src/schematic/symbol/client.d.ts.map +1 -1
  173. package/dist/src/schematic/symbol/external.d.ts +1 -1
  174. package/dist/src/schematic/symbol/external.d.ts.map +1 -1
  175. package/dist/src/schematic/symbol/types.gen.d.ts +277 -0
  176. package/dist/src/schematic/symbol/types.gen.d.ts.map +1 -0
  177. package/dist/src/schematic/types.gen.d.ts +35 -0
  178. package/dist/src/schematic/types.gen.d.ts.map +1 -0
  179. package/dist/src/status/client.d.ts +2 -0
  180. package/dist/src/status/client.d.ts.map +1 -1
  181. package/dist/src/status/payload.d.ts +25 -54
  182. package/dist/src/status/payload.d.ts.map +1 -1
  183. package/dist/src/table/client.d.ts +2 -11
  184. package/dist/src/table/client.d.ts.map +1 -1
  185. package/dist/src/table/external.d.ts +1 -1
  186. package/dist/src/table/external.d.ts.map +1 -1
  187. package/dist/src/table/types.gen.d.ts +33 -0
  188. package/dist/src/table/types.gen.d.ts.map +1 -0
  189. package/dist/src/task/client.d.ts +15 -20
  190. package/dist/src/task/client.d.ts.map +1 -1
  191. package/dist/src/task/external.d.ts +1 -1
  192. package/dist/src/task/external.d.ts.map +1 -1
  193. package/dist/src/task/types.gen.d.ts +155 -0
  194. package/dist/src/task/types.gen.d.ts.map +1 -0
  195. package/dist/src/user/client.d.ts +3 -3
  196. package/dist/src/user/client.d.ts.map +1 -1
  197. package/dist/src/user/external.d.ts +1 -1
  198. package/dist/src/user/external.d.ts.map +1 -1
  199. package/dist/src/user/types.gen.d.ts +35 -0
  200. package/dist/src/user/types.gen.d.ts.map +1 -0
  201. package/dist/src/util/decodeJSONString.d.ts.map +1 -1
  202. package/dist/src/view/client.d.ts +1 -10
  203. package/dist/src/view/client.d.ts.map +1 -1
  204. package/dist/src/view/external.d.ts +1 -1
  205. package/dist/src/view/external.d.ts.map +1 -1
  206. package/dist/src/view/types.gen.d.ts +35 -0
  207. package/dist/src/view/types.gen.d.ts.map +1 -0
  208. package/dist/src/workspace/client.d.ts +2 -11
  209. package/dist/src/workspace/client.d.ts.map +1 -1
  210. package/dist/src/workspace/external.d.ts +1 -1
  211. package/dist/src/workspace/external.d.ts.map +1 -1
  212. package/dist/src/workspace/types.gen.d.ts +34 -0
  213. package/dist/src/workspace/types.gen.d.ts.map +1 -0
  214. package/package.json +11 -11
  215. package/src/access/action/index.ts +11 -0
  216. package/src/access/{payload.ts → action/types.gen.ts} +4 -1
  217. package/src/access/enforce.spec.ts +1 -2
  218. package/src/access/enforce.ts +2 -2
  219. package/src/access/external.ts +1 -1
  220. package/src/access/policy/client.ts +2 -2
  221. package/src/access/policy/external.ts +1 -1
  222. package/src/access/policy/types.gen.ts +44 -0
  223. package/src/access/role/client.ts +2 -2
  224. package/src/access/role/external.ts +1 -1
  225. package/src/access/role/types.gen.ts +46 -0
  226. package/src/arc/access.spec.ts +18 -6
  227. package/src/arc/client.ts +3 -3
  228. package/src/{framer/payload.ts → arc/compiler/index.ts} +1 -6
  229. package/src/arc/compiler/types.gen.ts +27 -0
  230. package/src/arc/external.ts +6 -1
  231. package/src/arc/graph/index.ts +10 -0
  232. package/src/arc/graph/types.gen.ts +59 -0
  233. package/src/arc/ir/index.ts +10 -0
  234. package/src/arc/ir/types.gen.ts +166 -0
  235. package/src/arc/module/index.ts +10 -0
  236. package/src/arc/module/types.gen.ts +18 -0
  237. package/src/arc/program/index.ts +10 -0
  238. package/src/arc/program/types.gen.ts +18 -0
  239. package/src/arc/text/index.ts +10 -0
  240. package/src/arc/text/types.gen.ts +19 -0
  241. package/src/arc/types/index.ts +10 -0
  242. package/src/arc/types/types.gen.ts +132 -0
  243. package/src/arc/types.gen.ts +85 -0
  244. package/src/channel/client.ts +14 -15
  245. package/src/channel/external.ts +1 -0
  246. package/src/channel/payload.spec.ts +19 -16
  247. package/src/channel/payload.ts +14 -82
  248. package/src/channel/retriever.ts +9 -18
  249. package/src/channel/types.gen.ts +137 -0
  250. package/src/channel/writer.ts +2 -2
  251. package/src/client.ts +4 -0
  252. package/src/cluster/index.ts +10 -0
  253. package/src/cluster/types.gen.ts +16 -0
  254. package/src/control/state.ts +8 -6
  255. package/src/device/client.ts +14 -11
  256. package/src/device/device.spec.ts +95 -1
  257. package/src/device/external.ts +1 -1
  258. package/src/device/payload.spec.ts +26 -2
  259. package/src/device/types.gen.ts +100 -0
  260. package/src/framer/adapter.ts +7 -4
  261. package/src/framer/client.ts +15 -9
  262. package/src/framer/codec.spec.ts +25 -5
  263. package/src/framer/codec.ts +11 -9
  264. package/src/framer/deleter.spec.ts +0 -15
  265. package/src/framer/external.ts +1 -1
  266. package/src/framer/frame.ts +44 -36
  267. package/src/framer/reader.spec.ts +2 -2
  268. package/src/framer/reader.ts +6 -6
  269. package/src/framer/streamer.spec.ts +98 -0
  270. package/src/framer/streamer.ts +10 -0
  271. package/src/framer/types.gen.ts +20 -0
  272. package/src/framer/writer.ts +14 -8
  273. package/src/group/client.ts +1 -1
  274. package/src/group/external.ts +1 -1
  275. package/src/group/group.spec.ts +1 -1
  276. package/src/{access/role/payload.ts → group/types.gen.ts} +11 -11
  277. package/src/label/client.ts +2 -5
  278. package/src/label/label.spec.ts +12 -3
  279. package/src/label/payload.ts +3 -1
  280. package/src/lineplot/client.ts +9 -11
  281. package/src/lineplot/external.ts +1 -1
  282. package/src/lineplot/lineplot.spec.ts +40 -0
  283. package/src/lineplot/types.gen.ts +42 -0
  284. package/src/log/client.ts +9 -18
  285. package/src/log/external.ts +1 -1
  286. package/src/log/log.spec.ts +38 -0
  287. package/src/log/types.gen.ts +42 -0
  288. package/src/ontology/payload.ts +5 -29
  289. package/src/ontology/types.gen.ts +41 -0
  290. package/src/rack/client.ts +26 -10
  291. package/src/rack/external.ts +1 -1
  292. package/src/rack/rack.spec.ts +37 -0
  293. package/src/rack/types.gen.ts +62 -0
  294. package/src/range/alias/types.gen.ts +30 -0
  295. package/src/range/kv/types.gen.ts +28 -0
  296. package/src/ranger/alias/client.ts +1 -1
  297. package/src/ranger/alias/external.ts +3 -10
  298. package/src/ranger/alias/payload.spec.ts +52 -0
  299. package/src/ranger/alias/payload.ts +11 -10
  300. package/src/ranger/alias/types.gen.ts +30 -0
  301. package/src/ranger/client.ts +34 -45
  302. package/src/ranger/external.ts +3 -3
  303. package/src/ranger/kv/client.ts +3 -3
  304. package/src/ranger/kv/external.ts +3 -7
  305. package/src/ranger/kv/payload.ts +1 -6
  306. package/src/ranger/kv/types.gen.ts +28 -0
  307. package/src/ranger/payload.ts +2 -46
  308. package/src/ranger/ranger.spec.ts +2 -4
  309. package/src/ranger/types.gen.ts +66 -0
  310. package/src/ranger/writer.ts +2 -1
  311. package/src/schematic/client.ts +11 -14
  312. package/src/schematic/external.ts +1 -1
  313. package/src/schematic/schematic.spec.ts +54 -2
  314. package/src/schematic/symbol/client.ts +2 -4
  315. package/src/schematic/symbol/external.ts +1 -1
  316. package/src/schematic/symbol/types.gen.ts +124 -0
  317. package/src/schematic/types.gen.ts +44 -0
  318. package/src/status/client.ts +4 -3
  319. package/src/status/payload.ts +5 -4
  320. package/src/status/status.spec.ts +106 -11
  321. package/src/table/client.ts +10 -19
  322. package/src/table/external.ts +1 -1
  323. package/src/table/table.spec.ts +38 -0
  324. package/src/table/types.gen.ts +42 -0
  325. package/src/task/client.ts +30 -28
  326. package/src/task/external.ts +1 -1
  327. package/src/task/payload.spec.ts +19 -19
  328. package/src/task/task.spec.ts +127 -9
  329. package/src/task/types.gen.ts +169 -0
  330. package/src/user/client.ts +2 -2
  331. package/src/user/external.ts +1 -1
  332. package/src/user/types.gen.ts +49 -0
  333. package/src/util/decodeJSONString.ts +1 -1
  334. package/src/util/retrieve.ts +2 -2
  335. package/src/view/client.ts +2 -7
  336. package/src/view/external.ts +1 -1
  337. package/src/view/types.gen.ts +44 -0
  338. package/src/workspace/client.ts +10 -14
  339. package/src/workspace/external.ts +1 -1
  340. package/src/workspace/types.gen.ts +45 -0
  341. package/src/workspace/workspace.spec.ts +37 -0
  342. package/tsconfig.json +1 -3
  343. package/vite.config.ts +9 -2
  344. package/dist/src/access/payload.d.ts.map +0 -1
  345. package/dist/src/access/policy/payload.d.ts +0 -156
  346. package/dist/src/access/policy/payload.d.ts.map +0 -1
  347. package/dist/src/access/role/payload.d.ts +0 -27
  348. package/dist/src/access/role/payload.d.ts.map +0 -1
  349. package/dist/src/arc/payload.d.ts +0 -167
  350. package/dist/src/arc/payload.d.ts.map +0 -1
  351. package/dist/src/device/payload.d.ts +0 -281
  352. package/dist/src/device/payload.d.ts.map +0 -1
  353. package/dist/src/framer/payload.d.ts +0 -7
  354. package/dist/src/framer/payload.d.ts.map +0 -1
  355. package/dist/src/group/payload.d.ts +0 -16
  356. package/dist/src/group/payload.d.ts.map +0 -1
  357. package/dist/src/lineplot/payload.d.ts +0 -28
  358. package/dist/src/lineplot/payload.d.ts.map +0 -1
  359. package/dist/src/log/payload.d.ts +0 -28
  360. package/dist/src/log/payload.d.ts.map +0 -1
  361. package/dist/src/rack/payload.d.ts +0 -243
  362. package/dist/src/rack/payload.d.ts.map +0 -1
  363. package/dist/src/schematic/payload.d.ts +0 -38
  364. package/dist/src/schematic/payload.d.ts.map +0 -1
  365. package/dist/src/schematic/symbol/payload.d.ts +0 -169
  366. package/dist/src/schematic/symbol/payload.d.ts.map +0 -1
  367. package/dist/src/table/payload.d.ts +0 -33
  368. package/dist/src/table/payload.d.ts.map +0 -1
  369. package/dist/src/task/payload.d.ts +0 -123
  370. package/dist/src/task/payload.d.ts.map +0 -1
  371. package/dist/src/user/payload.d.ts +0 -22
  372. package/dist/src/user/payload.d.ts.map +0 -1
  373. package/dist/src/view/payload.d.ts +0 -20
  374. package/dist/src/view/payload.d.ts.map +0 -1
  375. package/dist/src/workspace/payload.d.ts +0 -33
  376. package/dist/src/workspace/payload.d.ts.map +0 -1
  377. package/src/access/policy/payload.ts +0 -37
  378. package/src/arc/payload.ts +0 -73
  379. package/src/device/payload.ts +0 -83
  380. package/src/group/payload.ts +0 -24
  381. package/src/lineplot/payload.ts +0 -29
  382. package/src/log/payload.ts +0 -29
  383. package/src/rack/payload.ts +0 -30
  384. package/src/schematic/payload.ts +0 -34
  385. package/src/schematic/symbol/payload.ts +0 -70
  386. package/src/table/payload.ts +0 -33
  387. package/src/task/payload.ts +0 -127
  388. package/src/user/payload.ts +0 -29
  389. package/src/view/payload.ts +0 -25
  390. package/src/workspace/payload.ts +0 -33
@@ -108,7 +108,7 @@ export class WriteAdapter {
108
108
  return adapter;
109
109
  }
110
110
 
111
- async adaptParams(data: channel.Params): Promise<channel.Keys> {
111
+ async adaptParams(data: channel.Params): Promise<channel.Key[]> {
112
112
  const arrParams = channel.paramsZ.parse(data);
113
113
  const keys = await Promise.all(
114
114
  arrParams.map(async (p) => await this.adaptToKey(p)),
@@ -135,14 +135,14 @@ export class WriteAdapter {
135
135
  }
136
136
 
137
137
  private async fetchChannel(
138
- ch: channel.KeyOrName | channel.Payload,
138
+ ch: channel.Key | channel.Name | channel.Payload,
139
139
  ): Promise<channel.Payload> {
140
140
  const res = await this.retriever.retrieve(ch);
141
141
  if (res.length === 0) throw new Error(`Channel ${JSON.stringify(ch)} not found`);
142
142
  return res[0];
143
143
  }
144
144
 
145
- private async adaptToKey(k: channel.KeyOrName): Promise<channel.Key> {
145
+ private async adaptToKey(k: channel.Key | channel.Name): Promise<channel.Key> {
146
146
  if (typeof k === "number") return k;
147
147
  const res = await this.fetchChannel(k);
148
148
  return res.key;
@@ -153,7 +153,10 @@ export class WriteAdapter {
153
153
  }
154
154
 
155
155
  async adapt(
156
- columnsOrData: channel.Params | Record<channel.KeyOrName, CrudeSeries> | CrudeFrame,
156
+ columnsOrData:
157
+ | channel.Params
158
+ | Record<channel.Key | channel.Name, CrudeSeries>
159
+ | CrudeFrame,
157
160
  series?: CrudeSeries | CrudeSeries[],
158
161
  ): Promise<Frame> {
159
162
  if (typeof columnsOrData === "string" || typeof columnsOrData === "number") {
@@ -90,19 +90,19 @@ export class Client {
90
90
 
91
91
  async write(
92
92
  start: CrudeTimeStamp,
93
- channel: channel.KeyOrName,
93
+ channel: channel.Key | channel.Name,
94
94
  data: CrudeSeries,
95
95
  ): Promise<void>;
96
96
 
97
97
  async write(
98
98
  start: CrudeTimeStamp,
99
- channels: channel.KeysOrNames,
99
+ channels: channel.Key[] | channel.Name[],
100
100
  data: CrudeSeries[],
101
101
  ): Promise<void>;
102
102
 
103
103
  async write(
104
104
  start: CrudeTimeStamp,
105
- data: Record<channel.KeyOrName, CrudeSeries>,
105
+ data: Record<channel.Key | channel.Name, CrudeSeries>,
106
106
  ): Promise<void>;
107
107
 
108
108
  /**
@@ -116,11 +116,11 @@ export class Client {
116
116
  */
117
117
  async write(
118
118
  start: CrudeTimeStamp,
119
- channels: channel.Params | Record<channel.KeyOrName, CrudeSeries>,
119
+ channels: channel.Params | Record<channel.Key | channel.Name, CrudeSeries>,
120
120
  data?: CrudeSeries | CrudeSeries[],
121
121
  ): Promise<void> {
122
122
  if (data == null) {
123
- const data_ = channels as Record<channel.KeyOrName, CrudeSeries>;
123
+ const data_ = channels as Record<channel.Key | channel.Name, CrudeSeries>;
124
124
  const w = await this.openWriter({
125
125
  start,
126
126
  channels: Object.keys(data_),
@@ -142,7 +142,10 @@ export class Client {
142
142
  await w.close();
143
143
  }
144
144
 
145
- async read(tr: CrudeTimeRange, channel: channel.KeyOrName): Promise<MultiSeries>;
145
+ async read(
146
+ tr: CrudeTimeRange,
147
+ channel: channel.Key | channel.Name,
148
+ ): Promise<MultiSeries>;
146
149
  async read(tr: CrudeTimeRange, channels: channel.Params): Promise<Frame>;
147
150
  async read(request: ReadRequest): Promise<ReadableStream<Uint8Array>>;
148
151
  async read(
@@ -152,7 +155,7 @@ export class Client {
152
155
  if (!("start" in tr)) return this.reader.read(tr);
153
156
  const { single } = channel.analyzeParams(channels!);
154
157
  const fr = await this.readFrame(tr, channels!);
155
- if (single) return fr.get(channels as channel.KeyOrName);
158
+ if (single) return fr.get(channels as channel.Key | channel.Name);
156
159
  return fr;
157
160
  }
158
161
 
@@ -170,7 +173,10 @@ export class Client {
170
173
  return frame;
171
174
  }
172
175
 
173
- async readLatest(channel: channel.KeyOrName, n: number): Promise<MultiSeries>;
176
+ async readLatest(
177
+ channel: channel.Key | channel.Name,
178
+ n: number,
179
+ ): Promise<MultiSeries>;
174
180
 
175
181
  async readLatest(channels: channel.Params, n: number): Promise<Frame>;
176
182
 
@@ -180,7 +186,7 @@ export class Client {
180
186
  ): Promise<MultiSeries | Frame> {
181
187
  const { single } = channel.analyzeParams(channels);
182
188
  const fr = await this.readLatestNFrame(channels, n);
183
- if (single) return fr.get(channels as channel.KeyOrName);
189
+ if (single) return fr.get(channels as channel.Key | channel.Name);
184
190
  return fr;
185
191
  }
186
192
 
@@ -21,14 +21,14 @@ import {
21
21
  WSWriterCodec,
22
22
  } from "@/framer/codec";
23
23
  import { Frame } from "@/framer/frame";
24
- import { WriterCommand } from "@/framer/payload";
24
+ import { WriterCommand } from "@/framer/types.gen";
25
25
  import { type WriteRequest } from "@/framer/writer";
26
26
 
27
27
  describe("encoder", () => {
28
28
  describe("base codec", () => {
29
29
  interface Spec {
30
30
  name: string;
31
- channels: channel.Keys;
31
+ channels: channel.Key[];
32
32
  dataTypes: DataType[];
33
33
  frame: framer.Frame;
34
34
  }
@@ -117,7 +117,7 @@ describe("encoder", () => {
117
117
  ),
118
118
  },
119
119
  {
120
- name: "Different Time Ranges",
120
+ name: "All Same Non-Zero Time Range",
121
121
  channels: [1, 2],
122
122
  dataTypes: [DataType.UINT8, DataType.FLOAT32],
123
123
  frame: new framer.Frame(
@@ -126,12 +126,32 @@ describe("encoder", () => {
126
126
  new Series({
127
127
  dataType: DataType.UINT8,
128
128
  data: new Uint8Array([1]),
129
- timeRange: new TimeStamp(0).spanRange(5),
129
+ timeRange: new TimeStamp(1000000000).spanRange(5000000000),
130
130
  }),
131
131
  new Series({
132
132
  dataType: DataType.FLOAT32,
133
133
  data: new Float32Array([1, 2, 3, 4]),
134
- timeRange: new TimeStamp(0).spanRange(5),
134
+ timeRange: new TimeStamp(1000000000).spanRange(5000000000),
135
+ }),
136
+ ],
137
+ ),
138
+ },
139
+ {
140
+ name: "Different Non-Zero Time Ranges",
141
+ channels: [1, 2],
142
+ dataTypes: [DataType.UINT8, DataType.FLOAT32],
143
+ frame: new framer.Frame(
144
+ [1, 2],
145
+ [
146
+ new Series({
147
+ dataType: DataType.UINT8,
148
+ data: new Uint8Array([1]),
149
+ timeRange: new TimeStamp(1000000000).spanRange(5000000000),
150
+ }),
151
+ new Series({
152
+ dataType: DataType.FLOAT32,
153
+ data: new Float32Array([1, 2, 3, 4]),
154
+ timeRange: new TimeStamp(2000000000).spanRange(3000000000),
135
155
  }),
136
156
  ],
137
157
  ),
@@ -20,8 +20,8 @@ import { type z } from "zod";
20
20
  import { type channel } from "@/channel";
21
21
  import { ValidationError } from "@/errors";
22
22
  import { type Frame, type Payload } from "@/framer/frame";
23
- import { WriterCommand } from "@/framer/payload";
24
23
  import { type StreamerResponse } from "@/framer/streamer";
24
+ import { WriterCommand } from "@/framer/types.gen";
25
25
  import { type WriteRequest } from "@/framer/writer";
26
26
 
27
27
  const seriesPldLength = (series: SeriesPayload): number =>
@@ -57,7 +57,7 @@ const SEQ_NUM_SIZE = 4;
57
57
  const FLAGS_SIZE = 1;
58
58
 
59
59
  interface CodecState {
60
- keys: channel.Keys;
60
+ keys: channel.Key[];
61
61
  keyDataTypes: Map<channel.Key, DataType>;
62
62
  hasVariableDataTypes: boolean;
63
63
  }
@@ -68,11 +68,11 @@ export class Codec {
68
68
  private currState: CodecState | undefined;
69
69
  private seqNum: number = 0;
70
70
 
71
- constructor(keys: channel.Keys = [], dataTypes: DataType[] = []) {
71
+ constructor(keys: channel.Key[] = [], dataTypes: DataType[] = []) {
72
72
  if (keys.length > 0 || dataTypes.length > 0) this.update(keys, dataTypes);
73
73
  }
74
74
 
75
- update(keys: channel.Keys, dataTypes: DataType[]): void {
75
+ update(keys: channel.Key[], dataTypes: DataType[]): void {
76
76
  this.seqNum++;
77
77
  const state = {
78
78
  keys,
@@ -97,7 +97,7 @@ export class Codec {
97
97
  `);
98
98
  }
99
99
 
100
- encode(payload: unknown, startOffset: number = 0): Uint8Array {
100
+ encode(payload: unknown, startOffset: number = 0): Uint8Array<ArrayBuffer> {
101
101
  this.throwIfNotUpdated("encode");
102
102
  let src = payload as Payload;
103
103
  if (payload != null && typeof payload === "object" && "toPayload" in payload)
@@ -187,8 +187,9 @@ export class Codec {
187
187
 
188
188
  if (equalTimeRangesFlag && !timeRangesZeroFlag) {
189
189
  view.setBigUint64(offset, startTime?.valueOf() ?? 0n, true);
190
+ offset += TIMESTAMP_SIZE;
190
191
  view.setBigUint64(offset, endTime?.valueOf() ?? 0n, true);
191
- offset += TIMESTAMP_SIZE * 2;
192
+ offset += TIMESTAMP_SIZE;
192
193
  }
193
194
 
194
195
  if (equalAlignmentsFlag && !zeroAlignmentsFlag) {
@@ -211,8 +212,9 @@ export class Codec {
211
212
  offset += series.data.byteLength;
212
213
  if (!equalTimeRangesFlag && !timeRangesZeroFlag) {
213
214
  view.setBigUint64(offset, series.timeRange?.start.valueOf() ?? 0n, true);
215
+ offset += TIMESTAMP_SIZE;
214
216
  view.setBigUint64(offset, series.timeRange?.end.valueOf() ?? 0n, true);
215
- offset += TIMESTAMP_SIZE * 2;
217
+ offset += TIMESTAMP_SIZE;
216
218
  }
217
219
  if (!equalAlignmentsFlag && !zeroAlignmentsFlag) {
218
220
  view.setBigUint64(offset, series.alignment ?? 0n, true);
@@ -339,7 +341,7 @@ export class WSWriterCodec implements binary.Codec {
339
341
  this.lowPerfCodec = binary.JSON_CODEC;
340
342
  }
341
343
 
342
- encode(payload: unknown): Uint8Array {
344
+ encode(payload: unknown): Uint8Array<ArrayBuffer> {
343
345
  const pld = payload as WebsocketMessage<WriteRequest>;
344
346
  if (pld.type == "close" || pld.payload?.command != WriterCommand.Write) {
345
347
  const data = this.lowPerfCodec.encode(pld);
@@ -375,7 +377,7 @@ export class WSStreamerCodec implements binary.Codec {
375
377
  this.lowPerfCodec = binary.JSON_CODEC;
376
378
  }
377
379
 
378
- encode(payload: unknown): Uint8Array {
380
+ encode(payload: unknown): Uint8Array<ArrayBuffer> {
379
381
  return this.lowPerfCodec.encode(payload);
380
382
  }
381
383
 
@@ -49,21 +49,6 @@ describe("Deleter", () => {
49
49
  expect(deletedRes.data.length).toEqual(8);
50
50
  expect(Array.from(deletedRes)).toEqual([3, 4, 5, 6, 7, 8, 9, 10]);
51
51
  });
52
- test("Client - delete name not found", async () => {
53
- const [indexCh, dataCh] = await newIndexedPair(client);
54
- const data = randomSeries(10, dataCh.dataType);
55
- await client.write(TimeStamp.seconds(5), {
56
- [indexCh.key]: secondsLinspace(5, 10),
57
- [dataCh.key]: data,
58
- });
59
-
60
- await expect(
61
- client.delete(["nonexistent_channel_name", dataCh.name], TimeRange.MAX),
62
- ).rejects.toThrow(NotFoundError);
63
-
64
- const res = await client.read(TimeRange.MAX, dataCh.key);
65
- expect(res.data).toEqual(data);
66
- });
67
52
  test("Client - delete key not found", async () => {
68
53
  const [indexCh, dataCh] = await newIndexedPair(client);
69
54
  const data = randomSeries(10, dataCh.dataType);
@@ -10,7 +10,7 @@
10
10
  export * from "@/framer/client";
11
11
  export * from "@/framer/frame";
12
12
  export * from "@/framer/iterator";
13
- export * from "@/framer/payload";
14
13
  export * from "@/framer/reader";
15
14
  export * from "@/framer/streamer";
15
+ export * from "@/framer/types.gen";
16
16
  export * from "@/framer/writer";
@@ -26,13 +26,13 @@ import { UnexpectedError, ValidationError } from "@/errors";
26
26
 
27
27
  type ColumnType = "key" | "name" | null;
28
28
 
29
- export interface Digest extends Record<channel.KeyOrName, SeriesDigest[]> {}
29
+ export interface Digest extends Record<channel.Key | channel.Name, SeriesDigest[]> {}
30
30
 
31
31
  const columnType = (columns: channel.PrimitiveParams): ColumnType => {
32
32
  const arrKeys = array.toArray(columns);
33
33
  if (arrKeys.length === 0) return null;
34
34
  if (typeof arrKeys[0] === "number") return "key";
35
- if (!isNaN(parseInt(arrKeys[0]))) return "key";
35
+ if (!isNaN(parseInt(arrKeys[0], 10))) return "key";
36
36
  return "name";
37
37
  };
38
38
 
@@ -43,21 +43,21 @@ const validateMatchedColsAndSeries = (
43
43
  const colsArr = array.toArray(columns);
44
44
  if (colsArr.length === series.length) return;
45
45
  const colType = columnType(columns);
46
- if (columnType === null)
46
+ if (colType === null)
47
47
  throw new ValidationError(
48
48
  "[Frame] - channel keys or names must be provided when constructing a frame.",
49
49
  );
50
50
  throw new ValidationError(
51
- `[Frame] - ${colType as string}s and series must be the same length.
52
- Got ${colsArr.length} ${colType as string}s and ${series.length} series.`,
51
+ `[Frame] - ${colType}s and series must be the same length.
52
+ Got ${colsArr.length} ${colType}s and ${series.length} series.`,
53
53
  );
54
54
  };
55
55
 
56
56
  export type CrudeFrame =
57
57
  | Frame
58
58
  | CrudePayload
59
- | Map<channel.KeyOrName, Series[] | Series>
60
- | Record<channel.KeyOrName, Series[] | Series>;
59
+ | Map<channel.Key | channel.Name, Series[] | Series>
60
+ | Record<channel.Key | channel.Name, Series[] | Series>;
61
61
 
62
62
  /**
63
63
  * A frame is a collection of series mapped to a particular channel. Frames
@@ -95,7 +95,7 @@ export type CrudeFrame =
95
95
  * and array can be square.
96
96
  */
97
97
  export class Frame {
98
- readonly columns: channel.KeysOrNames = [];
98
+ readonly columns: channel.Key[] | channel.Name[] = [];
99
99
  readonly series: Series[] = [];
100
100
 
101
101
  constructor(
@@ -127,7 +127,7 @@ export class Frame {
127
127
  data_.keys.forEach((key, i) => this.push(key, series[i]));
128
128
  } else
129
129
  Object.entries(columnsOrData).forEach(([k, v]) => {
130
- const key = parseInt(k);
130
+ const key = parseInt(k, 10);
131
131
  if (!isNaN(key)) return this.push(key, ...array.toArray(v));
132
132
  this.push(k, ...array.toArray(v));
133
133
  });
@@ -140,7 +140,7 @@ export class Frame {
140
140
  ["string", "number"].includes(typeof columnsOrData)
141
141
  ) {
142
142
  const data_ = array.toArray(series);
143
- const cols = array.toArray(columnsOrData) as channel.KeysOrNames;
143
+ const cols = array.toArray(columnsOrData) as channel.Key[] | channel.Name[];
144
144
  validateMatchedColsAndSeries(cols, data_);
145
145
  data_.forEach((d, i) => this.push(cols[i], d));
146
146
  return;
@@ -167,16 +167,16 @@ export class Frame {
167
167
  * @returns the channel keys if the frame is keyed by channel key, and throws an error
168
168
  * otherwise.
169
169
  */
170
- get keys(): channel.Keys {
170
+ get keys(): channel.Key[] {
171
171
  if (this.colType === "name") throw new UnexpectedError("colType is not key");
172
- return (this.columns as channel.Keys) ?? [];
172
+ return (this.columns as channel.Key[]) ?? [];
173
173
  }
174
174
 
175
175
  /**
176
176
  * @returns the unique channel keys if the frame is keyed by channel key, and throws an
177
177
  * error otherwise.
178
178
  */
179
- get uniqueKeys(): channel.Keys {
179
+ get uniqueKeys(): channel.Key[] {
180
180
  return unique.unique(this.keys);
181
181
  }
182
182
 
@@ -200,7 +200,7 @@ export class Frame {
200
200
  /**
201
201
  * @returns the unique columns in the frame.
202
202
  */
203
- get uniqueColumns(): channel.KeysOrNames {
203
+ get uniqueColumns(): channel.Key[] | channel.Name[] {
204
204
  return this.colType === "key" ? this.uniqueKeys : this.uniqueNames;
205
205
  }
206
206
 
@@ -250,7 +250,7 @@ export class Frame {
250
250
  return ranges.every((tr) => tr.equals(ranges[0]));
251
251
  }
252
252
 
253
- timeRange(col?: channel.KeyOrName): TimeRange {
253
+ timeRange(col?: channel.Key | channel.Name): TimeRange {
254
254
  if (col == null) {
255
255
  if (this.columns.length === 0) return TimeRange.ZERO;
256
256
  const start = TimeStamp.min(...this.series.map((a) => a.timeRange.start));
@@ -274,17 +274,17 @@ export class Frame {
274
274
  * @returns lazy series matching the given channel key or name.
275
275
  * @param key the channel key or name.
276
276
  */
277
- get(key: channel.KeyOrName): MultiSeries;
277
+ get(key: channel.Key | channel.Name): MultiSeries;
278
278
 
279
279
  /**
280
280
  * @returns a frame with the given channel keys or names.
281
281
  * @param keys the channel keys or names.
282
282
  */
283
- get(keys: channel.KeysOrNames): Frame;
283
+ get(keys: channel.Key[] | channel.Name[]): Frame;
284
284
 
285
285
  get(key: channel.PrimitiveParams): MultiSeries | Frame {
286
286
  if (Array.isArray(key))
287
- return this.filter((k) => (key as channel.Keys).includes(k as channel.Key));
287
+ return this.filter((k) => (key as channel.Key[]).includes(k as channel.Key));
288
288
  return new MultiSeries(this.series.filter((_, i) => this.columns[i] === key));
289
289
  }
290
290
 
@@ -294,7 +294,7 @@ export class Frame {
294
294
  * @param key the channel key or name;
295
295
  * @param v the series to push.
296
296
  */
297
- push(key: channel.KeyOrName, ...v: Series[]): void;
297
+ push(key: channel.Key | channel.Name, ...v: Series[]): void;
298
298
 
299
299
  /**
300
300
  * Pushes the frame onto the current frame.
@@ -303,7 +303,7 @@ export class Frame {
303
303
  */
304
304
  push(frame: Frame): void;
305
305
 
306
- push(keyOrFrame: channel.KeyOrName | Frame, ...v: Series[]): void {
306
+ push(keyOrFrame: channel.Key | channel.Name | Frame, ...v: Series[]): void {
307
307
  if (keyOrFrame instanceof Frame) {
308
308
  if (
309
309
  keyOrFrame.colType != null &&
@@ -312,15 +312,15 @@ export class Frame {
312
312
  )
313
313
  throw new ValidationError("keyVariant must match");
314
314
  this.series.push(...keyOrFrame.series);
315
- (this.columns as channel.Keys).push(...(keyOrFrame.columns as channel.Keys));
315
+ (this.columns as channel.Key[]).push(...(keyOrFrame.columns as channel.Key[]));
316
316
  } else {
317
317
  this.series.push(...v);
318
318
  if (typeof keyOrFrame === "string" && this.colType === "key")
319
319
  throw new ValidationError("keyVariant must match");
320
320
  else if (typeof keyOrFrame !== "string" && this.colType === "name")
321
321
  throw new ValidationError("keyVariant must match");
322
- (this.columns as channel.Keys).push(
323
- ...(Array.from({ length: v.length }, () => keyOrFrame) as channel.Keys),
322
+ (this.columns as channel.Key[]).push(
323
+ ...(Array.from({ length: v.length }, () => keyOrFrame) as channel.Key[]),
324
324
  );
325
325
  }
326
326
  }
@@ -330,7 +330,7 @@ export class Frame {
330
330
  * provided frame.
331
331
  */
332
332
  concat(frame: Frame): Frame {
333
- return new Frame([...this.columns, ...frame.columns] as channel.Keys, [
333
+ return new Frame([...this.columns, ...frame.columns] as channel.Key[], [
334
334
  ...this.series,
335
335
  ...frame.series,
336
336
  ]);
@@ -340,10 +340,10 @@ export class Frame {
340
340
  * @returns true if the frame contains the provided channel key or name.
341
341
  * @param channel the channel key or name to check.
342
342
  */
343
- has(channel: channel.KeyOrName): boolean {
343
+ has(channel: channel.Key | channel.Name): boolean {
344
344
  if (typeof channel === "string" && this.colType === "key") return false;
345
345
  if (typeof channel === "number" && this.colType === "name") return false;
346
- return (this.columns as channel.Keys).includes(channel as channel.Key);
346
+ return (this.columns as channel.Key[]).includes(channel as channel.Key);
347
347
  }
348
348
 
349
349
  /**
@@ -352,7 +352,11 @@ export class Frame {
352
352
  * boolean.
353
353
  */
354
354
  map(
355
- fn: (k: channel.KeyOrName, arr: Series, i: number) => [channel.KeyOrName, Series],
355
+ fn: (
356
+ k: channel.Key | channel.Name,
357
+ arr: Series,
358
+ i: number,
359
+ ) => [channel.Key | channel.Name, Series],
356
360
  ): Frame {
357
361
  const frame = new Frame();
358
362
  this.forEach((k, arr, i) => frame.push(...fn(k, arr, i)));
@@ -361,10 +365,10 @@ export class Frame {
361
365
 
362
366
  mapFilter(
363
367
  fn: (
364
- k: channel.KeyOrName,
368
+ k: channel.Key | channel.Name,
365
369
  arr: Series,
366
370
  i: number,
367
- ) => [channel.KeyOrName, Series, boolean],
371
+ ) => [channel.Key | channel.Name, Series, boolean],
368
372
  ): Frame {
369
373
  const frame = new Frame();
370
374
  this.forEach((k, arr, i) => {
@@ -379,7 +383,7 @@ export class Frame {
379
383
  *
380
384
  * @param fn a function that takes a channel key and series.
381
385
  */
382
- forEach(fn: (k: channel.KeyOrName, arr: Series, i: number) => void): void {
386
+ forEach(fn: (k: channel.Key | channel.Name, arr: Series, i: number) => void): void {
383
387
  this.columns.forEach((k, i) => {
384
388
  const a = this.series[i];
385
389
  fn(k, a, i);
@@ -390,22 +394,24 @@ export class Frame {
390
394
  * Iterates over all unique columns in the frame.
391
395
  * @param fn a function that takes a channel key, multi-series, and index.
392
396
  */
393
- forEachUnique(fn: (k: channel.KeyOrName, ms: MultiSeries, i: number) => void): void {
397
+ forEachUnique(
398
+ fn: (k: channel.Key | channel.Name, ms: MultiSeries, i: number) => void,
399
+ ): void {
394
400
  this.uniqueColumns.forEach((k, i) => fn(k, this.get(k), i));
395
401
  }
396
402
 
397
- at(index: number, required: true): Record<channel.KeyOrName, TelemValue>;
403
+ at(index: number, required: true): Record<channel.Key | channel.Name, TelemValue>;
398
404
 
399
405
  at(
400
406
  index: number,
401
407
  required?: false,
402
- ): Record<channel.KeyOrName, TelemValue | undefined>;
408
+ ): Record<channel.Key | channel.Name, TelemValue | undefined>;
403
409
 
404
410
  at(
405
411
  index: number,
406
412
  required = false,
407
- ): Record<channel.KeyOrName, TelemValue | undefined> {
408
- const res: Record<channel.KeyOrName, TelemValue> = {};
413
+ ): Record<channel.Key | channel.Name, TelemValue | undefined> {
414
+ const res: Record<channel.Key | channel.Name, TelemValue> = {};
409
415
  this.uniqueColumns.forEach((k) => {
410
416
  res[k] = this.get(k).at(index, required as true);
411
417
  });
@@ -417,7 +423,9 @@ export class Frame {
417
423
  * the provided filter function.
418
424
  * @param fn a function that takes a channel key and series and returns a boolean.
419
425
  */
420
- filter(fn: (k: channel.KeyOrName, arr: Series, i: number) => boolean): Frame {
426
+ filter(
427
+ fn: (k: channel.Key | channel.Name, arr: Series, i: number) => boolean,
428
+ ): Frame {
421
429
  const frame = new Frame();
422
430
  this.columns.forEach((k, i) => {
423
431
  const a = this.series[i];
@@ -281,7 +281,7 @@ describe("Reader", () => {
281
281
  it("should handle large amounts of channels", async () => {
282
282
  const numGroups = 5;
283
283
  const channelsPerGroup = 3;
284
- const dataKeys: channel.Keys = [];
284
+ const dataKeys: channel.Key[] = [];
285
285
  const expectedColumns = numGroups * (1 + channelsPerGroup);
286
286
 
287
287
  // Store timestamps written per group for building expected rows later
@@ -298,7 +298,7 @@ describe("Reader", () => {
298
298
  dataType: DataType.TIMESTAMP,
299
299
  isIndex: true,
300
300
  });
301
- const groupChannels: channel.Keys = [index.key];
301
+ const groupChannels: channel.Key[] = [index.key];
302
302
  for (let c = 0; c < channelsPerGroup; c++) {
303
303
  const data = await client.channels.create({
304
304
  name: id.create(),
@@ -18,7 +18,7 @@ import { Iterator, type IteratorConfig } from "@/framer/iterator";
18
18
  export interface ReadRequest {
19
19
  channels: channel.Params;
20
20
  timeRange: CrudeTimeRange;
21
- channelNames?: Record<channel.KeyOrName, string>;
21
+ channelNames?: Record<channel.Key | channel.Name, string>;
22
22
  responseType: "csv";
23
23
  iteratorConfig?: IteratorConfig;
24
24
  }
@@ -70,7 +70,7 @@ export class Reader {
70
70
  interface CreateCSVExportStreamParams {
71
71
  iterator: Iterator;
72
72
  channelPayloads: channel.Payload[];
73
- headers?: Record<channel.KeyOrName, string>;
73
+ headers?: Record<channel.Key | channel.Name, string>;
74
74
  }
75
75
 
76
76
  const createCSVReadableStream = ({
@@ -198,8 +198,8 @@ const createCSVReadableStream = ({
198
198
 
199
199
  const groupChannelsByIndex = (
200
200
  channels: channel.Payload[],
201
- ): Map<channel.Key, channel.Keys> => {
202
- const groupMap = new Map<channel.Key, channel.Keys>();
201
+ ): Map<channel.Key, channel.Key[]> => {
202
+ const groupMap = new Map<channel.Key, channel.Key[]>();
203
203
  for (const ch of channels) {
204
204
  if (ch.index === 0) continue;
205
205
  let group = groupMap.get(ch.index);
@@ -225,8 +225,8 @@ interface ColumnMetaResult {
225
225
 
226
226
  const buildColumnMeta = (
227
227
  channels: channel.Payload[],
228
- groups: Map<channel.Key, channel.Keys>,
229
- headers?: Record<channel.KeyOrName, string>,
228
+ groups: Map<channel.Key, channel.Key[]>,
229
+ headers?: Record<channel.Key | channel.Name, string>,
230
230
  ): ColumnMetaResult => {
231
231
  const channelMap = new Map(channels.map((ch) => [ch.key, ch]));
232
232
  const columns: ColumnMeta[] = [];