@synnaxlabs/client 0.56.2 → 0.57.1

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-DDACDVZ-.js +14505 -0
  2. package/dist/client-DDACDVZ-.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 +91 -0
  99. package/dist/src/framer/cache/dynamic.d.ts.map +1 -0
  100. package/dist/src/framer/cache/reader.d.ts +57 -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 +39 -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 +39 -16
  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 +340 -0
  398. package/src/framer/cache/reader.ts +231 -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 +108 -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 +19 -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
@@ -1,657 +0,0 @@
1
- // Copyright 2026 Synnax Labs, Inc.
2
- //
3
- // Use of this software is governed by the Business Source License included in the file
4
- // licenses/BSL.txt.
5
- //
6
- // As of the Change Date specified in that file, in accordance with the Business Source
7
- // License, use of this software will be governed by the Apache License, Version 2.0,
8
- // included in the file licenses/APL.txt.
9
-
10
- import { id, TimeStamp } from "@synnaxlabs/x";
11
- import { beforeAll, describe, expect, it } from "vitest";
12
- import { z } from "zod";
13
-
14
- import { ontology } from "@/ontology";
15
- import { task } from "@/task";
16
- import { createTestClient } from "@/testutil/client";
17
-
18
- const client = createTestClient();
19
-
20
- describe("Task", async () => {
21
- const testRack = await client.racks.create({ name: "test" });
22
- describe("create", () => {
23
- it("should create a task on a rack", async () => {
24
- const m = await testRack.createTask({
25
- name: "test",
26
- config: { a: "dog" },
27
- type: "ni",
28
- });
29
- expect(m.key).not.toHaveLength(0);
30
- const rackKey = BigInt(m.key) >> 32n;
31
- expect(Number(rackKey)).toBe(testRack.key);
32
- });
33
- it("should create a task with a config", async () => {
34
- const config = {
35
- stateRate: 100,
36
- inputChannels: [
37
- { port: "AIN0", enabled: true },
38
- { port: "DAC2", enabled: false },
39
- ],
40
- dataSaving: false,
41
- };
42
- const m = await testRack.createTask({
43
- name: "test",
44
- config,
45
- type: "ni",
46
- });
47
- expect(m.config).toStrictEqual(config);
48
- });
49
- it("should create a task with a custom status", async () => {
50
- const customStatus = {
51
- key: "",
52
- name: "",
53
- variant: "success" as const,
54
- message: "Custom task status",
55
- description: "Task is running",
56
- time: TimeStamp.now(),
57
- details: { running: true, data: { customData: true } },
58
- };
59
- const m = await testRack.createTask({
60
- name: "task-with-status",
61
- config: { test: true },
62
- type: "ni",
63
- status: customStatus,
64
- });
65
- expect(m.key).not.toHaveLength(0);
66
- const retrieved = await client.tasks.retrieve({
67
- key: m.key,
68
- includeStatus: true,
69
- });
70
- expect(retrieved.status).toBeDefined();
71
- expect(retrieved.status?.variant).toBe("success");
72
- expect(retrieved.status?.message).toBe("Custom task status");
73
- expect(retrieved.status?.description).toBe("Task is running");
74
- expect(retrieved.status?.details?.task).toBe(m.key);
75
- expect(retrieved.status?.details?.running).toBe(true);
76
- });
77
- });
78
- describe("update", () => {
79
- it("should update a task if the key is provided", async () => {
80
- const m = await testRack.createTask({
81
- name: "test",
82
- config: { a: "dog" },
83
- type: "ni",
84
- });
85
- // Exclude status, internal, snapshot when updating - these have different input/output types
86
- const { status: _, internal: __, snapshot: ___, ...taskFields } = m;
87
- const updated = await client.tasks.create({
88
- ...taskFields,
89
- name: "updated",
90
- });
91
- expect(updated.name).toBe("updated");
92
- const retrieved = await client.tasks.retrieve({ key: m.key });
93
- expect(retrieved.name).toBe("updated");
94
- });
95
- });
96
- describe("retrieve", () => {
97
- it("should retrieve a task by its key", async () => {
98
- const m = await testRack.createTask({
99
- name: "test",
100
- config: { a: "dog" },
101
- type: "ni",
102
- });
103
- const retrieved = await client.tasks.retrieve({ key: m.key });
104
- expect(retrieved.key).toBe(m.key);
105
- expect(retrieved.name).toBe("test");
106
- expect(retrieved.config).toStrictEqual({ a: "dog" });
107
- expect(retrieved.type).toBe("ni");
108
- });
109
-
110
- it("should retrieve a task by its name", async () => {
111
- const name = `test-${Date.now()}-${Math.random()}`;
112
- const m = await testRack.createTask({ name, config: { a: "dog" }, type: "ni" });
113
- const retrieved = await client.tasks.retrieve({ name });
114
- expect(retrieved.key).toBe(m.key);
115
- });
116
-
117
- it("should retrieve tasks by search term", async () => {
118
- const prefix = `searchable-task-${id.create()}`;
119
- const names = [`${prefix}-1`, `${prefix}-2`];
120
- await Promise.all(
121
- names.map((name) => testRack.createTask({ name, config: {}, type: "ni" })),
122
- );
123
- await expect
124
- .poll(async () => {
125
- const results = await client.tasks.retrieve({ searchTerm: prefix });
126
- return results.map((t) => t.name).sort();
127
- })
128
- .toEqual(names);
129
- });
130
-
131
- describe("status", () => {
132
- it("should include task status when requested", async () => {
133
- const t = await testRack.createTask({
134
- name: "test",
135
- config: { a: "dog" },
136
- type: "ni",
137
- });
138
- const communicatedStatus: task.Status = {
139
- key: ontology.idToString(task.ontologyID(t.key)),
140
- name: "test",
141
- variant: "success",
142
- details: { task: t.key, running: false, data: undefined },
143
- message: "test",
144
- time: TimeStamp.now(),
145
- };
146
- await client.statuses.set(communicatedStatus);
147
- await expect
148
- .poll(async () => {
149
- const retrieved = await client.tasks.retrieve({
150
- key: t.key,
151
- includeStatus: true,
152
- });
153
- return retrieved.status?.variant === communicatedStatus.variant;
154
- })
155
- .toBe(true);
156
- });
157
- });
158
-
159
- describe("request object format", () => {
160
- const testTasks: Array<{ key: string; name: string; type: string }> = [];
161
- let secondRack: any;
162
-
163
- beforeAll(async () => {
164
- secondRack = await client.racks.create({ name: "test-rack-2" });
165
-
166
- const taskConfigs = [
167
- { name: "sensor_task1", type: "ni", rack: testRack },
168
- { name: "sensor_task2", type: "ni", rack: testRack },
169
- { name: "actuator_task1", type: "labjack", rack: testRack },
170
- { name: "actuator_task2", type: "labjack", rack: secondRack },
171
- { name: "controller_task", type: "opc", rack: secondRack },
172
- ];
173
-
174
- for (const config of taskConfigs) {
175
- const task = await config.rack.createTask({
176
- name: config.name,
177
- type: config.type,
178
- config: { test: true },
179
- });
180
- testTasks.push({ key: task.key, name: config.name, type: config.type });
181
- }
182
- });
183
-
184
- it("should retrieve tasks by rack", async () => {
185
- const result = await client.tasks.retrieve({
186
- rack: testRack.key,
187
- });
188
- expect(result.length).toBeGreaterThanOrEqual(3);
189
- expect(result.every((t) => task.rackKey(t.key) === testRack.key)).toBe(true);
190
- });
191
-
192
- it("should retrieve tasks by multiple keys", async () => {
193
- const keysToQuery = testTasks.slice(0, 2).map((t) => t.key);
194
- const result = await client.tasks.retrieve({
195
- keys: keysToQuery,
196
- });
197
- expect(result).toHaveLength(2);
198
- expect(result.map((t) => t.key).sort()).toEqual(keysToQuery.sort());
199
- });
200
-
201
- it("should retrieve tasks by multiple names", async () => {
202
- const namesToQuery = ["sensor_task1", "actuator_task1"];
203
- const result = await client.tasks.retrieve({
204
- names: namesToQuery,
205
- });
206
- expect(result.length).toBeGreaterThanOrEqual(2);
207
- expect(result.every((t) => namesToQuery.includes(t.name))).toBe(true);
208
- });
209
-
210
- it("should retrieve tasks by types", async () => {
211
- const result = await client.tasks.retrieve({
212
- types: ["ni"],
213
- });
214
- expect(result.length).toBeGreaterThanOrEqual(2);
215
- expect(result.every((t) => t.type === "ni")).toBe(true);
216
- });
217
-
218
- it("should retrieve tasks by multiple types", async () => {
219
- const typesToQuery = ["ni", "labjack"];
220
- const result = await client.tasks.retrieve({
221
- types: typesToQuery,
222
- });
223
- expect(result.length).toBeGreaterThanOrEqual(4);
224
- expect(result.every((t) => typesToQuery.includes(t.type))).toBe(true);
225
- });
226
-
227
- it("should support pagination with limit and offset", async () => {
228
- const firstPage = await client.tasks.retrieve({
229
- rack: testRack.key,
230
- limit: 2,
231
- offset: 0,
232
- });
233
- expect(firstPage.length).toBeLessThanOrEqual(2);
234
-
235
- if (firstPage.length === 2) {
236
- const secondPage = await client.tasks.retrieve({
237
- rack: testRack.key,
238
- limit: 2,
239
- offset: 2,
240
- });
241
-
242
- const firstPageKeys = firstPage.map((t) => t.key);
243
- const secondPageKeys = secondPage.map((t) => t.key);
244
- expect(firstPageKeys.every((key) => !secondPageKeys.includes(key))).toBe(
245
- true,
246
- );
247
- }
248
- });
249
-
250
- it("should support combined filters", async () => {
251
- const result = await client.tasks.retrieve({
252
- rack: testRack.key,
253
- types: ["ni"],
254
- includeStatus: true,
255
- });
256
- expect(result.length).toBeGreaterThanOrEqual(1);
257
- expect(result.every((t) => t.type === "ni")).toBe(true);
258
-
259
- await expect
260
- .poll(async () => {
261
- const tasks = await client.tasks.retrieve({
262
- rack: testRack.key,
263
- types: ["ni"],
264
- includeStatus: true,
265
- });
266
- return tasks.every((t) => t.status !== undefined);
267
- })
268
- .toBe(true);
269
- });
270
-
271
- it("should handle empty results gracefully", async () => {
272
- const result = await client.tasks.retrieve({
273
- types: ["nonexistent_type"],
274
- });
275
- expect(result).toEqual([]);
276
- });
277
-
278
- it("should combine rack and type filters", async () => {
279
- const result = await client.tasks.retrieve({
280
- rack: secondRack.key,
281
- types: ["labjack"],
282
- });
283
- expect(result.length).toBeGreaterThanOrEqual(1);
284
- expect(result.every((t) => t.type === "labjack")).toBe(true);
285
- });
286
-
287
- it("should handle limit without offset", async () => {
288
- const result = await client.tasks.retrieve({
289
- limit: 1,
290
- });
291
- expect(result).toHaveLength(1);
292
- });
293
-
294
- it("should retrieve tasks with includeStatus in request object", async () => {
295
- const result = await client.tasks.retrieve({
296
- rack: testRack.key,
297
- includeStatus: true,
298
- });
299
- expect(result.length).toBeGreaterThanOrEqual(1);
300
-
301
- await expect
302
- .poll(async () => {
303
- const tasks = await client.tasks.retrieve({
304
- rack: testRack.key,
305
- includeStatus: true,
306
- });
307
- return tasks.every((t) => t.status !== undefined);
308
- })
309
- .toBe(true);
310
- });
311
-
312
- it("should filter tasks by snapshot parameter", async () => {
313
- const regularTask = await testRack.createTask({
314
- name: "regular_test_task",
315
- type: "ni",
316
- config: { test: true },
317
- });
318
-
319
- const snapshotTask = await client.tasks.copy(
320
- regularTask.key,
321
- "snapshot_test_task",
322
- true,
323
- );
324
-
325
- const snapshotOnlyResult = await client.tasks.retrieve({
326
- snapshot: true,
327
- });
328
- expect(snapshotOnlyResult.some((t) => t.key === snapshotTask.key)).toBe(true);
329
- expect(snapshotOnlyResult.every((t) => t.snapshot === true)).toBe(true);
330
-
331
- const regularOnlyResult = await client.tasks.retrieve({
332
- snapshot: false,
333
- });
334
- expect(regularOnlyResult.some((t) => t.key === regularTask.key)).toBe(true);
335
- expect(regularOnlyResult.every((t) => t.snapshot === false)).toBe(true);
336
- });
337
-
338
- it("should combine snapshot filter with other filters", async () => {
339
- const task1 = await testRack.createTask({
340
- name: "combined_filter_task",
341
- type: "ni",
342
- config: { test: true },
343
- });
344
-
345
- const result = await client.tasks.retrieve({
346
- rack: testRack.key,
347
- types: ["ni"],
348
- snapshot: false,
349
- });
350
-
351
- expect(result.some((t) => t.key === task1.key)).toBe(true);
352
- expect(result.every((t) => t.type === "ni")).toBe(true);
353
- expect(result.every((t) => t.snapshot === false)).toBe(true);
354
- });
355
- });
356
- });
357
-
358
- describe("list", () => {
359
- it("should list all tasks excluding internal tasks", async () => {
360
- const tasks = await client.tasks.list();
361
- expect(Array.isArray(tasks)).toBe(true);
362
- expect(tasks.every((t) => t.internal === false)).toBe(true);
363
- });
364
-
365
- it("should list tasks on a specific rack", async () => {
366
- const task1 = await testRack.createTask({
367
- name: `list-test-${Date.now()}`,
368
- config: { test: true },
369
- type: "ni",
370
- });
371
- const tasks = await client.tasks.list(testRack.key);
372
- expect(tasks.some((t) => t.key === task1.key)).toBe(true);
373
- expect(tasks.every((t) => task.rackKey(t.key) === testRack.key)).toBe(true);
374
- });
375
-
376
- it("should exclude internal tasks by default", async () => {
377
- const allTasks = await client.tasks.list();
378
- const internalTasks = await client.tasks.retrieve({
379
- internal: true,
380
- });
381
- const allTaskKeys = allTasks.map((t) => t.key);
382
- const internalTaskKeys = internalTasks.map((t) => t.key);
383
- expect(internalTaskKeys.every((key) => !allTaskKeys.includes(key))).toBe(true);
384
- });
385
- });
386
-
387
- describe("copy", () => {
388
- it("should correctly copy the task", async () => {
389
- const m = await testRack.createTask({
390
- name: "test",
391
- config: { a: "dog" },
392
- type: "ni",
393
- });
394
- const copy = await client.tasks.copy(m.key, "New Name", false);
395
- expect(copy.name).toBe("New Name");
396
- expect(copy.config).toStrictEqual({ a: "dog" });
397
- });
398
- });
399
-
400
- describe("lifecycle methods", () => {
401
- it("should start a task", async () => {
402
- const t = await testRack.createTask({
403
- name: "lifecycle-start-test",
404
- config: {},
405
- type: "ni",
406
- });
407
- const streamer = await client.openStreamer(task.COMMAND_CHANNEL_NAME);
408
- await t.start();
409
- await expect
410
- .poll<Promise<task.Command>>(async () => {
411
- const fr = await streamer.read();
412
- const sample = fr.at(-1)[task.COMMAND_CHANNEL_NAME];
413
- return task.commandZ.parse(sample);
414
- })
415
- .toMatchObject({ task: t.key, type: "start" });
416
- streamer.close();
417
- });
418
-
419
- it("should stop a task", async () => {
420
- const t = await testRack.createTask({
421
- name: "lifecycle-stop-test",
422
- config: {},
423
- type: "ni",
424
- });
425
- const streamer = await client.openStreamer(task.COMMAND_CHANNEL_NAME);
426
- await t.stop();
427
- await expect
428
- .poll<Promise<task.Command>>(async () => {
429
- const fr = await streamer.read();
430
- const sample = fr.at(-1)[task.COMMAND_CHANNEL_NAME];
431
- return task.commandZ.parse(sample);
432
- })
433
- .toMatchObject({ task: t.key, type: "stop" });
434
- streamer.close();
435
- });
436
-
437
- it("should run a task with automatic start and stop", async () => {
438
- const t = await testRack.createTask({
439
- name: "lifecycle-run-test",
440
- config: {},
441
- type: "ni",
442
- });
443
- const streamer = await client.openStreamer(task.COMMAND_CHANNEL_NAME);
444
- let executedCallback = false;
445
-
446
- await t.run(async () => {
447
- executedCallback = true;
448
- });
449
-
450
- expect(executedCallback).toBe(true);
451
-
452
- // Should have received both start and stop commands
453
- const commands: task.Command[] = [];
454
- await expect
455
- .poll(async () => {
456
- try {
457
- const fr = await streamer.read();
458
- const samples = fr.get(task.COMMAND_CHANNEL_NAME);
459
- for (const sample of samples) commands.push(task.commandZ.parse(sample));
460
-
461
- return (
462
- commands.some((c) => c.task === t.key && c.type === "start") &&
463
- commands.some((c) => c.task === t.key && c.type === "stop")
464
- );
465
- } catch {
466
- return false;
467
- }
468
- })
469
- .toBe(true);
470
-
471
- streamer.close();
472
- });
473
-
474
- it("should stop task even if callback throws error", async () => {
475
- const t = await testRack.createTask({
476
- name: "lifecycle-run-error-test",
477
- config: {},
478
- type: "ni",
479
- });
480
- const streamer = await client.openStreamer(task.COMMAND_CHANNEL_NAME);
481
-
482
- await expect(
483
- t.run(async () => {
484
- throw new Error("Test error");
485
- }),
486
- ).rejects.toThrow("Test error");
487
-
488
- // Should still have received stop command
489
- const stopCommands: task.Command[] = [];
490
- await expect
491
- .poll(async () => {
492
- try {
493
- const fr = await streamer.read();
494
- const samples = fr.get(task.COMMAND_CHANNEL_NAME);
495
- for (const sample of samples) {
496
- const cmd = task.commandZ.parse(sample);
497
- if (cmd.task === t.key && cmd.type === "stop") stopCommands.push(cmd);
498
- }
499
- return stopCommands.length > 0;
500
- } catch {
501
- return false;
502
- }
503
- })
504
- .toBe(true);
505
-
506
- streamer.close();
507
- });
508
- });
509
-
510
- describe("executeCommand", () => {
511
- it("should execute a command on a task", async () => {
512
- const type = "testCmd";
513
- const args = { a: "dog" };
514
- const t = await testRack.createTask({
515
- name: "test",
516
- config: { a: "dog" },
517
- type: "ni",
518
- });
519
- const streamer = await client.openStreamer(task.COMMAND_CHANNEL_NAME);
520
- const key = await client.tasks.executeCommand({
521
- task: t.key,
522
- type,
523
- args,
524
- });
525
- await expect
526
- .poll<Promise<task.Command>>(async () => {
527
- const fr = await streamer.read();
528
- const sample = fr.at(-1)[task.COMMAND_CHANNEL_NAME];
529
- return task.commandZ.parse(sample);
530
- })
531
- .toMatchObject({ key, task: t.key, type, args });
532
- streamer.close();
533
- });
534
- it("should timeout on a synchronously executed command", async () => {
535
- const t = await testRack.createTask({
536
- name: "test",
537
- config: {},
538
- type: "ni",
539
- });
540
- await expect(t.executeCommandSync({ type: "test", timeout: 0 })).rejects.toThrow(
541
- "timed out",
542
- );
543
- });
544
- });
545
-
546
- describe("with schemas", () => {
547
- const schemas = {
548
- type: z.literal("sensor_task"),
549
- config: z.object({
550
- sampleRate: z.number(),
551
- channels: z.array(z.string()),
552
- enabled: z.boolean(),
553
- }),
554
- statusData: z.object({
555
- samplesCollected: z.number().optional(),
556
- }),
557
- };
558
-
559
- it("should create and retrieve a task with typed config", async () => {
560
- const config = {
561
- sampleRate: 1000,
562
- channels: ["ch1", "ch2"],
563
- enabled: true,
564
- };
565
- const t = await testRack.createTask(
566
- {
567
- name: "typed-config-task",
568
- type: "sensor_task",
569
- config,
570
- },
571
- schemas,
572
- );
573
- expect(t.config.sampleRate).toBe(1000);
574
- expect(t.config.channels).toEqual(["ch1", "ch2"]);
575
- expect(t.config.enabled).toBe(true);
576
-
577
- const retrieved = await client.tasks.retrieve({
578
- key: t.key,
579
- schemas,
580
- });
581
- expect(retrieved.config.sampleRate).toBe(1000);
582
- expect(retrieved.config.channels).toEqual(["ch1", "ch2"]);
583
- expect(retrieved.type).toBe("sensor_task");
584
- });
585
-
586
- it("should retrieve multiple tasks with schemas", async () => {
587
- const t1 = await testRack.createTask(
588
- {
589
- name: "multi-schema-1",
590
- type: "sensor_task",
591
- config: { sampleRate: 100, channels: ["a"], enabled: true },
592
- },
593
- schemas,
594
- );
595
- const t2 = await testRack.createTask(
596
- {
597
- name: "multi-schema-2",
598
- type: "sensor_task",
599
- config: { sampleRate: 200, channels: ["b", "c"], enabled: false },
600
- },
601
- schemas,
602
- );
603
-
604
- const retrieved = await client.tasks.retrieve({
605
- keys: [t1.key, t2.key],
606
- schemas,
607
- });
608
- expect(retrieved).toHaveLength(2);
609
- expect(retrieved[0].config.sampleRate).toBe(100);
610
- expect(retrieved[1].config.sampleRate).toBe(200);
611
- });
612
-
613
- it("should retrieve task by name with schemas", async () => {
614
- const uniqueName = `schema-name-test-${Date.now()}`;
615
- await testRack.createTask(
616
- {
617
- name: uniqueName,
618
- type: "sensor_task",
619
- config: { sampleRate: 500, channels: ["x"], enabled: true },
620
- },
621
- schemas,
622
- );
623
-
624
- const retrieved = await client.tasks.retrieve({
625
- name: uniqueName,
626
- schemas,
627
- });
628
- expect(retrieved.name).toBe(uniqueName);
629
- expect(retrieved.config.sampleRate).toBe(500);
630
- });
631
-
632
- it("should retrieve task by type with schemas", async () => {
633
- const customSchemas = {
634
- type: z.literal("unique_type_test"),
635
- config: z.object({ value: z.number() }),
636
- statusData: z.unknown(),
637
- };
638
-
639
- await testRack.createTask(
640
- {
641
- name: "type-filter-test",
642
- type: "unique_type_test",
643
- config: { value: 42 },
644
- },
645
- customSchemas,
646
- );
647
-
648
- const retrieved = await client.tasks.retrieve({
649
- type: "unique_type_test",
650
- rack: testRack.key,
651
- schemas: customSchemas,
652
- });
653
- expect(retrieved.type).toBe("unique_type_test");
654
- expect(retrieved.config.value).toBe(42);
655
- });
656
- });
657
- });