@synnaxlabs/client 0.56.2 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (741) hide show
  1. package/dist/client-B08VDLSA.js +14463 -0
  2. package/dist/client-B08VDLSA.js.map +1 -0
  3. package/dist/client.js +1128 -14876
  4. package/dist/client.js.map +1 -0
  5. package/dist/src/access/client.d.ts +10 -1
  6. package/dist/src/access/client.d.ts.map +1 -1
  7. package/dist/src/access/enforce.d.ts.map +1 -1
  8. package/dist/src/access/external.d.ts +1 -0
  9. package/dist/src/access/external.d.ts.map +1 -1
  10. package/dist/src/access/granted.d.ts +39 -0
  11. package/dist/src/access/granted.d.ts.map +1 -0
  12. package/dist/src/access/policy/client.d.ts +136 -147
  13. package/dist/src/access/policy/client.d.ts.map +1 -1
  14. package/dist/src/access/policy/types.gen.d.ts +15 -68
  15. package/dist/src/access/policy/types.gen.d.ts.map +1 -1
  16. package/dist/src/access/role/client.d.ts +77 -58
  17. package/dist/src/access/role/client.d.ts.map +1 -1
  18. package/dist/src/access/role/types.gen.d.ts +8 -14
  19. package/dist/src/access/role/types.gen.d.ts.map +1 -1
  20. package/dist/src/actions/actions.d.ts +5 -6
  21. package/dist/src/actions/actions.d.ts.map +1 -1
  22. package/dist/src/actions/controller.d.ts +194 -0
  23. package/dist/src/actions/controller.d.ts.map +1 -0
  24. package/dist/src/actions/external.d.ts +1 -0
  25. package/dist/src/actions/external.d.ts.map +1 -1
  26. package/dist/src/arc/actions.d.ts +575 -0
  27. package/dist/src/arc/actions.d.ts.map +1 -0
  28. package/dist/src/arc/actions.gen.d.ts +1439 -0
  29. package/dist/src/arc/actions.gen.d.ts.map +1 -0
  30. package/dist/src/arc/client.d.ts +97 -13
  31. package/dist/src/arc/client.d.ts.map +1 -1
  32. package/dist/src/arc/compiler/types.gen.d.ts +3 -3
  33. package/dist/src/arc/compiler/types.gen.d.ts.map +1 -1
  34. package/dist/src/arc/external.d.ts +2 -0
  35. package/dist/src/arc/external.d.ts.map +1 -1
  36. package/dist/src/arc/graph/types.gen.d.ts +45 -597
  37. package/dist/src/arc/graph/types.gen.d.ts.map +1 -1
  38. package/dist/src/arc/ir/index.d.ts +1 -1
  39. package/dist/src/arc/ir/index.d.ts.map +1 -1
  40. package/dist/src/arc/ir/ir.d.ts +2 -0
  41. package/dist/src/arc/ir/ir.d.ts.map +1 -0
  42. package/dist/src/arc/ir/types.gen.d.ts +58 -2807
  43. package/dist/src/arc/ir/types.gen.d.ts.map +1 -1
  44. package/dist/src/arc/module/types.gen.d.ts +18 -1090
  45. package/dist/src/arc/module/types.gen.d.ts.map +1 -1
  46. package/dist/src/arc/program/types.gen.d.ts +18 -1090
  47. package/dist/src/arc/program/types.gen.d.ts.map +1 -1
  48. package/dist/src/arc/text/types.gen.d.ts +54 -1
  49. package/dist/src/arc/text/types.gen.d.ts.map +1 -1
  50. package/dist/src/arc/types/types.gen.d.ts +35 -153
  51. package/dist/src/arc/types/types.gen.d.ts.map +1 -1
  52. package/dist/src/arc/types.gen.d.ts +98 -2278
  53. package/dist/src/arc/types.gen.d.ts.map +1 -1
  54. package/dist/src/auth/auth.d.ts +14 -2
  55. package/dist/src/auth/auth.d.ts.map +1 -1
  56. package/dist/src/channel/client.d.ts +113 -75
  57. package/dist/src/channel/client.d.ts.map +1 -1
  58. package/dist/src/channel/external.d.ts +0 -1
  59. package/dist/src/channel/external.d.ts.map +1 -1
  60. package/dist/src/channel/payload.d.ts +65 -56
  61. package/dist/src/channel/payload.d.ts.map +1 -1
  62. package/dist/src/channel/types.gen.d.ts +26 -73
  63. package/dist/src/channel/types.gen.d.ts.map +1 -1
  64. package/dist/src/channel/writer.d.ts +1 -3
  65. package/dist/src/channel/writer.d.ts.map +1 -1
  66. package/dist/src/client.d.ts +55 -27
  67. package/dist/src/client.d.ts.map +1 -1
  68. package/dist/src/connection/client.d.ts +146 -0
  69. package/dist/src/connection/client.d.ts.map +1 -0
  70. package/dist/src/connection/external.d.ts +3 -0
  71. package/dist/src/connection/external.d.ts.map +1 -0
  72. package/dist/src/connection/index.d.ts +1 -1
  73. package/dist/src/connection/index.d.ts.map +1 -1
  74. package/dist/src/connection/status.d.ts +252 -0
  75. package/dist/src/connection/status.d.ts.map +1 -0
  76. package/dist/src/control/client.d.ts +31 -7
  77. package/dist/src/control/client.d.ts.map +1 -1
  78. package/dist/src/control/state.d.ts +47 -16
  79. package/dist/src/control/state.d.ts.map +1 -1
  80. package/dist/src/device/client.d.ts +59 -17
  81. package/dist/src/device/client.d.ts.map +1 -1
  82. package/dist/src/device/types.gen.d.ts +17 -67
  83. package/dist/src/device/types.gen.d.ts.map +1 -1
  84. package/dist/src/errors.d.ts +17 -20
  85. package/dist/src/errors.d.ts.map +1 -1
  86. package/dist/src/ethercat/external.d.ts +2 -0
  87. package/dist/src/ethercat/external.d.ts.map +1 -0
  88. package/dist/src/ethercat/index.d.ts +2 -0
  89. package/dist/src/ethercat/index.d.ts.map +1 -0
  90. package/dist/src/ethercat/types.gen.d.ts +243 -0
  91. package/dist/src/ethercat/types.gen.d.ts.map +1 -0
  92. package/dist/src/framer/adapter.d.ts +8 -5
  93. package/dist/src/framer/adapter.d.ts.map +1 -1
  94. package/dist/src/framer/benchutil.d.ts +19 -0
  95. package/dist/src/framer/benchutil.d.ts.map +1 -0
  96. package/dist/src/framer/cache/cache.d.ts +38 -0
  97. package/dist/src/framer/cache/cache.d.ts.map +1 -0
  98. package/dist/src/framer/cache/dynamic.d.ts +71 -0
  99. package/dist/src/framer/cache/dynamic.d.ts.map +1 -0
  100. package/dist/src/framer/cache/reader.d.ts +43 -0
  101. package/dist/src/framer/cache/reader.d.ts.map +1 -0
  102. package/dist/src/framer/cache/static.d.ts +66 -0
  103. package/dist/src/framer/cache/static.d.ts.map +1 -0
  104. package/dist/src/framer/cache/streamer.d.ts +86 -0
  105. package/dist/src/framer/cache/streamer.d.ts.map +1 -0
  106. package/dist/src/framer/cache/transform.d.ts +18 -0
  107. package/dist/src/framer/cache/transform.d.ts.map +1 -0
  108. package/dist/src/framer/cache/unary.d.ts +37 -0
  109. package/dist/src/framer/cache/unary.d.ts.map +1 -0
  110. package/dist/src/framer/client.d.ts +35 -14
  111. package/dist/src/framer/client.d.ts.map +1 -1
  112. package/dist/src/framer/codec.d.ts.map +1 -1
  113. package/dist/src/framer/deleter.d.ts +3 -2
  114. package/dist/src/framer/deleter.d.ts.map +1 -1
  115. package/dist/src/framer/external.d.ts +6 -0
  116. package/dist/src/framer/external.d.ts.map +1 -1
  117. package/dist/src/framer/feed.d.ts +40 -0
  118. package/dist/src/framer/feed.d.ts.map +1 -0
  119. package/dist/src/framer/frame.d.ts +16 -20
  120. package/dist/src/framer/frame.d.ts.map +1 -1
  121. package/dist/src/framer/hardened.d.ts +70 -0
  122. package/dist/src/framer/hardened.d.ts.map +1 -0
  123. package/dist/src/framer/iterator.d.ts +36 -43
  124. package/dist/src/framer/iterator.d.ts.map +1 -1
  125. package/dist/src/framer/reader.d.ts +3 -2
  126. package/dist/src/framer/reader.d.ts.map +1 -1
  127. package/dist/src/framer/streamer.d.ts +132 -205
  128. package/dist/src/framer/streamer.d.ts.map +1 -1
  129. package/dist/src/framer/writer.d.ts +130 -161
  130. package/dist/src/framer/writer.d.ts.map +1 -1
  131. package/dist/src/group/client.d.ts +66 -9
  132. package/dist/src/group/client.d.ts.map +1 -1
  133. package/dist/src/group/types.gen.d.ts +2 -2
  134. package/dist/src/http/external.d.ts +2 -0
  135. package/dist/src/http/external.d.ts.map +1 -0
  136. package/dist/src/http/index.d.ts +2 -0
  137. package/dist/src/http/index.d.ts.map +1 -0
  138. package/dist/src/http/types.gen.d.ts +451 -0
  139. package/dist/src/http/types.gen.d.ts.map +1 -0
  140. package/dist/src/imex/client.d.ts +88 -0
  141. package/dist/src/imex/client.d.ts.map +1 -0
  142. package/dist/src/imex/index.d.ts +2 -0
  143. package/dist/src/imex/index.d.ts.map +1 -0
  144. package/dist/src/index.d.ts +18 -5
  145. package/dist/src/index.d.ts.map +1 -1
  146. package/dist/src/label/client.d.ts +55 -36
  147. package/dist/src/label/client.d.ts.map +1 -1
  148. package/dist/src/label/external.d.ts +2 -0
  149. package/dist/src/label/external.d.ts.map +1 -1
  150. package/dist/src/label/payload.d.ts +4 -46
  151. package/dist/src/label/payload.d.ts.map +1 -1
  152. package/dist/src/label/store.d.ts +8 -0
  153. package/dist/src/label/store.d.ts.map +1 -0
  154. package/dist/src/label/types.gen.d.ts +45 -0
  155. package/dist/src/label/types.gen.d.ts.map +1 -0
  156. package/dist/src/labjack/external.d.ts +2 -0
  157. package/dist/src/labjack/external.d.ts.map +1 -0
  158. package/dist/src/labjack/index.d.ts +2 -0
  159. package/dist/src/labjack/index.d.ts.map +1 -0
  160. package/dist/src/labjack/types.gen.d.ts +442 -0
  161. package/dist/src/labjack/types.gen.d.ts.map +1 -0
  162. package/dist/src/lineplot/actions.d.ts +914 -0
  163. package/dist/src/lineplot/actions.d.ts.map +1 -0
  164. package/dist/src/lineplot/actions.gen.d.ts +4208 -0
  165. package/dist/src/lineplot/actions.gen.d.ts.map +1 -0
  166. package/dist/src/lineplot/client.d.ts +66 -16
  167. package/dist/src/lineplot/client.d.ts.map +1 -1
  168. package/dist/src/lineplot/external.d.ts +3 -0
  169. package/dist/src/lineplot/external.d.ts.map +1 -1
  170. package/dist/src/lineplot/line.d.ts +16 -0
  171. package/dist/src/lineplot/line.d.ts.map +1 -0
  172. package/dist/src/lineplot/types.gen.d.ts +837 -14
  173. package/dist/src/lineplot/types.gen.d.ts.map +1 -1
  174. package/dist/src/log/actions.d.ts +271 -0
  175. package/dist/src/log/actions.d.ts.map +1 -0
  176. package/dist/src/log/actions.gen.d.ts +1529 -0
  177. package/dist/src/log/actions.gen.d.ts.map +1 -0
  178. package/dist/src/log/client.d.ts +66 -16
  179. package/dist/src/log/client.d.ts.map +1 -1
  180. package/dist/src/log/external.d.ts +2 -0
  181. package/dist/src/log/external.d.ts.map +1 -1
  182. package/dist/src/log/types.gen.d.ts +139 -14
  183. package/dist/src/log/types.gen.d.ts.map +1 -1
  184. package/dist/src/modbus/external.d.ts +2 -0
  185. package/dist/src/modbus/external.d.ts.map +1 -0
  186. package/dist/src/modbus/index.d.ts +2 -0
  187. package/dist/src/modbus/index.d.ts.map +1 -0
  188. package/dist/src/modbus/types.gen.d.ts +280 -0
  189. package/dist/src/modbus/types.gen.d.ts.map +1 -0
  190. package/dist/src/ni/external.d.ts +2 -0
  191. package/dist/src/ni/external.d.ts.map +1 -0
  192. package/dist/src/ni/index.d.ts +2 -0
  193. package/dist/src/ni/index.d.ts.map +1 -0
  194. package/dist/src/ni/types.gen.d.ts +21029 -0
  195. package/dist/src/ni/types.gen.d.ts.map +1 -0
  196. package/dist/src/node/index.d.ts +2 -0
  197. package/dist/src/node/index.d.ts.map +1 -0
  198. package/dist/src/node/types.gen.d.ts +4 -0
  199. package/dist/src/node/types.gen.d.ts.map +1 -0
  200. package/dist/src/ontology/client.d.ts +314 -67
  201. package/dist/src/ontology/client.d.ts.map +1 -1
  202. package/dist/src/ontology/external.d.ts +1 -0
  203. package/dist/src/ontology/external.d.ts.map +1 -1
  204. package/dist/src/ontology/payload.d.ts +60 -18
  205. package/dist/src/ontology/payload.d.ts.map +1 -1
  206. package/dist/src/ontology/store.d.ts +32 -0
  207. package/dist/src/ontology/store.d.ts.map +1 -0
  208. package/dist/src/ontology/types.gen.d.ts +3 -2
  209. package/dist/src/ontology/types.gen.d.ts.map +1 -1
  210. package/dist/src/ontology/writer.d.ts +16 -10
  211. package/dist/src/ontology/writer.d.ts.map +1 -1
  212. package/dist/src/opcua/external.d.ts +2 -0
  213. package/dist/src/opcua/external.d.ts.map +1 -0
  214. package/dist/src/opcua/index.d.ts +2 -0
  215. package/dist/src/opcua/index.d.ts.map +1 -0
  216. package/dist/src/opcua/types.gen.d.ts +82 -0
  217. package/dist/src/opcua/types.gen.d.ts.map +1 -0
  218. package/dist/src/pagerduty/external.d.ts +2 -0
  219. package/dist/src/pagerduty/external.d.ts.map +1 -0
  220. package/dist/src/pagerduty/index.d.ts +2 -0
  221. package/dist/src/pagerduty/index.d.ts.map +1 -0
  222. package/dist/src/pagerduty/types.gen.d.ts +30 -0
  223. package/dist/src/pagerduty/types.gen.d.ts.map +1 -0
  224. package/dist/src/panel/actions.d.ts +273 -0
  225. package/dist/src/panel/actions.d.ts.map +1 -0
  226. package/dist/src/panel/actions.gen.d.ts +1255 -0
  227. package/dist/src/panel/actions.gen.d.ts.map +1 -0
  228. package/dist/src/panel/client.d.ts +148 -0
  229. package/dist/src/panel/client.d.ts.map +1 -0
  230. package/dist/src/panel/external.d.ts +6 -0
  231. package/dist/src/panel/external.d.ts.map +1 -0
  232. package/dist/src/panel/index.d.ts +2 -0
  233. package/dist/src/panel/index.d.ts.map +1 -0
  234. package/dist/src/panel/tree.d.ts +50 -0
  235. package/dist/src/panel/tree.d.ts.map +1 -0
  236. package/dist/src/panel/types.gen.d.ts +370 -0
  237. package/dist/src/panel/types.gen.d.ts.map +1 -0
  238. package/dist/src/project/client.d.ts +89 -0
  239. package/dist/src/project/client.d.ts.map +1 -0
  240. package/dist/src/project/external.d.ts.map +1 -0
  241. package/dist/src/project/index.d.ts +2 -0
  242. package/dist/src/project/index.d.ts.map +1 -0
  243. package/dist/src/project/types.gen.d.ts +27 -0
  244. package/dist/src/project/types.gen.d.ts.map +1 -0
  245. package/dist/src/query/cache.d.ts +132 -0
  246. package/dist/src/query/cache.d.ts.map +1 -0
  247. package/dist/src/query/deleted.d.ts +20 -0
  248. package/dist/src/query/deleted.d.ts.map +1 -0
  249. package/dist/src/query/derived.d.ts +33 -0
  250. package/dist/src/query/derived.d.ts.map +1 -0
  251. package/dist/src/query/external.d.ts +10 -0
  252. package/dist/src/query/external.d.ts.map +1 -0
  253. package/dist/src/query/index.d.ts +2 -0
  254. package/dist/src/query/index.d.ts.map +1 -0
  255. package/dist/src/query/query.d.ts +235 -0
  256. package/dist/src/query/query.d.ts.map +1 -0
  257. package/dist/src/query/retriever.d.ts +135 -0
  258. package/dist/src/query/retriever.d.ts.map +1 -0
  259. package/dist/src/query/streamer.d.ts +67 -0
  260. package/dist/src/query/streamer.d.ts.map +1 -0
  261. package/dist/src/query/table.d.ts +219 -0
  262. package/dist/src/query/table.d.ts.map +1 -0
  263. package/dist/src/query/types.d.ts +35 -0
  264. package/dist/src/query/types.d.ts.map +1 -0
  265. package/dist/src/query/write.d.ts +21 -0
  266. package/dist/src/query/write.d.ts.map +1 -0
  267. package/dist/src/rack/client.d.ts +58 -20
  268. package/dist/src/rack/client.d.ts.map +1 -1
  269. package/dist/src/rack/types.gen.d.ts +11 -12
  270. package/dist/src/rack/types.gen.d.ts.map +1 -1
  271. package/dist/src/range/alias/types.gen.d.ts +2 -3
  272. package/dist/src/range/alias/types.gen.d.ts.map +1 -1
  273. package/dist/src/ranger/client.d.ts +138 -27
  274. package/dist/src/ranger/client.d.ts.map +1 -1
  275. package/dist/src/ranger/kv/client.d.ts +7 -4
  276. package/dist/src/ranger/kv/client.d.ts.map +1 -1
  277. package/dist/src/ranger/payload.d.ts +3 -0
  278. package/dist/src/ranger/payload.d.ts.map +1 -1
  279. package/dist/src/ranger/types.gen.d.ts +45 -101
  280. package/dist/src/ranger/types.gen.d.ts.map +1 -1
  281. package/dist/src/ranger/writer.d.ts +2 -74
  282. package/dist/src/ranger/writer.d.ts.map +1 -1
  283. package/dist/src/schematic/actions.d.ts +90 -33
  284. package/dist/src/schematic/actions.d.ts.map +1 -1
  285. package/dist/src/schematic/actions.gen.d.ts +207 -114
  286. package/dist/src/schematic/actions.gen.d.ts.map +1 -1
  287. package/dist/src/schematic/client.d.ts +70 -68
  288. package/dist/src/schematic/client.d.ts.map +1 -1
  289. package/dist/src/schematic/symbol/client.d.ts +133 -27
  290. package/dist/src/schematic/symbol/client.d.ts.map +1 -1
  291. package/dist/src/schematic/symbol/types.gen.d.ts +258 -153
  292. package/dist/src/schematic/symbol/types.gen.d.ts.map +1 -1
  293. package/dist/src/schematic/types.gen.d.ts +17 -96
  294. package/dist/src/schematic/types.gen.d.ts.map +1 -1
  295. package/dist/src/status/client.d.ts +69 -14
  296. package/dist/src/status/client.d.ts.map +1 -1
  297. package/dist/src/status/external.d.ts +2 -0
  298. package/dist/src/status/external.d.ts.map +1 -1
  299. package/dist/src/status/payload.d.ts +2 -36
  300. package/dist/src/status/payload.d.ts.map +1 -1
  301. package/dist/src/status/status.d.ts +65 -0
  302. package/dist/src/status/status.d.ts.map +1 -0
  303. package/dist/src/status/types.gen.d.ts +58 -0
  304. package/dist/src/status/types.gen.d.ts.map +1 -0
  305. package/dist/src/table/actions.d.ts +72 -13
  306. package/dist/src/table/actions.d.ts.map +1 -1
  307. package/dist/src/table/actions.gen.d.ts +221 -137
  308. package/dist/src/table/actions.gen.d.ts.map +1 -1
  309. package/dist/src/table/client.d.ts +64 -40
  310. package/dist/src/table/client.d.ts.map +1 -1
  311. package/dist/src/table/types.gen.d.ts +20 -55
  312. package/dist/src/table/types.gen.d.ts.map +1 -1
  313. package/dist/src/task/client.d.ts +149 -28
  314. package/dist/src/task/client.d.ts.map +1 -1
  315. package/dist/src/task/types.gen.d.ts +71 -89
  316. package/dist/src/task/types.gen.d.ts.map +1 -1
  317. package/dist/src/testutil/access.d.ts +27 -1
  318. package/dist/src/testutil/access.d.ts.map +1 -1
  319. package/dist/src/testutil/channels.d.ts +2 -0
  320. package/dist/src/testutil/channels.d.ts.map +1 -1
  321. package/dist/src/testutil/client.d.ts +5 -0
  322. package/dist/src/testutil/client.d.ts.map +1 -1
  323. package/dist/src/testutil/connection.d.ts +10 -0
  324. package/dist/src/testutil/connection.d.ts.map +1 -0
  325. package/dist/src/testutil/index.d.ts +9 -0
  326. package/dist/src/testutil/index.d.ts.map +1 -0
  327. package/dist/src/testutil/panels.d.ts +8 -0
  328. package/dist/src/testutil/panels.d.ts.map +1 -0
  329. package/dist/src/testutil/proxy.d.ts +29 -0
  330. package/dist/src/testutil/proxy.d.ts.map +1 -0
  331. package/dist/src/testutil/query.d.ts +7 -0
  332. package/dist/src/testutil/query.d.ts.map +1 -0
  333. package/dist/src/testutil/telem.d.ts +4 -0
  334. package/dist/src/testutil/telem.d.ts.map +1 -1
  335. package/dist/src/transport.d.ts +10 -4
  336. package/dist/src/transport.d.ts.map +1 -1
  337. package/dist/src/user/client.d.ts +29 -28
  338. package/dist/src/user/client.d.ts.map +1 -1
  339. package/dist/src/user/external.d.ts +1 -1
  340. package/dist/src/user/external.d.ts.map +1 -1
  341. package/dist/src/user/types.gen.d.ts +4 -4
  342. package/dist/src/util/retrieve.d.ts +2 -2
  343. package/dist/src/util/retrieve.d.ts.map +1 -1
  344. package/dist/src/util/telem.d.ts.map +1 -1
  345. package/dist/src/view/client.d.ts +30 -14
  346. package/dist/src/view/client.d.ts.map +1 -1
  347. package/dist/src/view/types.gen.d.ts +7 -15
  348. package/dist/src/view/types.gen.d.ts.map +1 -1
  349. package/dist/testutil.js +189 -0
  350. package/dist/testutil.js.map +1 -0
  351. package/package.json +40 -17
  352. package/src/access/client.ts +14 -3
  353. package/src/access/enforce.ts +0 -3
  354. package/src/access/external.ts +1 -0
  355. package/src/access/granted.ts +114 -0
  356. package/src/access/policy/client.ts +135 -43
  357. package/src/access/policy/types.gen.ts +9 -11
  358. package/src/access/role/client.ts +160 -38
  359. package/src/access/role/types.gen.ts +8 -12
  360. package/src/actions/actions.ts +5 -6
  361. package/src/actions/controller.ts +626 -0
  362. package/src/actions/external.ts +11 -0
  363. package/src/arc/actions.gen.ts +313 -0
  364. package/src/arc/actions.ts +192 -0
  365. package/src/arc/client.ts +424 -41
  366. package/src/arc/compiler/types.gen.ts +5 -6
  367. package/src/arc/external.ts +2 -0
  368. package/src/arc/graph/types.gen.ts +24 -22
  369. package/src/arc/ir/index.ts +1 -1
  370. package/{eslint.config.ts → src/arc/ir/ir.ts} +1 -4
  371. package/src/arc/ir/types.gen.ts +42 -41
  372. package/src/arc/text/types.gen.ts +21 -2
  373. package/src/arc/types/types.gen.ts +40 -32
  374. package/src/arc/types.gen.ts +31 -29
  375. package/src/auth/auth.ts +40 -8
  376. package/src/channel/client.ts +529 -132
  377. package/src/channel/external.ts +0 -1
  378. package/src/channel/payload.ts +30 -3
  379. package/src/channel/types.gen.ts +37 -48
  380. package/src/channel/writer.ts +2 -11
  381. package/src/client.ts +215 -91
  382. package/src/connection/client.ts +495 -0
  383. package/src/connection/external.ts +34 -0
  384. package/src/connection/index.ts +1 -1
  385. package/src/connection/status.ts +442 -0
  386. package/src/control/client.ts +84 -12
  387. package/src/control/state.ts +17 -36
  388. package/src/device/client.ts +293 -41
  389. package/src/device/types.gen.ts +15 -26
  390. package/src/errors.ts +45 -22
  391. package/src/{workspace → ethercat}/external.ts +1 -2
  392. package/src/{workspace → ethercat}/index.ts +1 -1
  393. package/src/ethercat/types.gen.ts +151 -0
  394. package/src/framer/adapter.ts +60 -37
  395. package/src/framer/benchutil.ts +67 -0
  396. package/src/framer/cache/cache.ts +115 -0
  397. package/src/framer/cache/dynamic.ts +279 -0
  398. package/src/framer/cache/reader.ts +160 -0
  399. package/src/framer/cache/static.ts +215 -0
  400. package/src/framer/cache/streamer.ts +391 -0
  401. package/src/framer/cache/transform.ts +31 -0
  402. package/src/framer/cache/unary.ts +104 -0
  403. package/src/framer/client.ts +71 -43
  404. package/src/framer/codec.ts +55 -18
  405. package/src/framer/deleter.ts +4 -6
  406. package/src/framer/external.ts +10 -0
  407. package/src/framer/feed.ts +108 -0
  408. package/src/framer/frame.ts +13 -23
  409. package/src/framer/hardened.ts +283 -0
  410. package/src/framer/iterator.ts +31 -42
  411. package/src/framer/reader.ts +11 -11
  412. package/src/framer/streamer.ts +18 -178
  413. package/src/framer/writer.ts +39 -59
  414. package/src/group/client.ts +158 -23
  415. package/src/http/external.ts +10 -0
  416. package/src/{cluster → http}/index.ts +1 -1
  417. package/src/http/types.gen.ts +245 -0
  418. package/src/imex/client.ts +125 -0
  419. package/src/imex/index.ts +10 -0
  420. package/src/index.ts +18 -6
  421. package/src/label/client.ts +193 -54
  422. package/src/label/external.ts +2 -0
  423. package/src/label/payload.ts +4 -9
  424. package/src/label/store.ts +28 -0
  425. package/src/label/types.gen.ts +31 -0
  426. package/src/labjack/external.ts +10 -0
  427. package/src/labjack/index.ts +10 -0
  428. package/src/labjack/types.gen.ts +251 -0
  429. package/src/lineplot/actions.gen.ts +880 -0
  430. package/src/lineplot/actions.ts +535 -0
  431. package/src/lineplot/client.ts +224 -52
  432. package/src/lineplot/external.ts +3 -0
  433. package/src/lineplot/line.ts +80 -0
  434. package/src/lineplot/types.gen.ts +225 -12
  435. package/src/log/actions.gen.ts +474 -0
  436. package/src/log/actions.ts +242 -0
  437. package/src/log/client.ts +223 -52
  438. package/src/log/external.ts +2 -0
  439. package/src/log/types.gen.ts +45 -14
  440. package/src/modbus/external.ts +10 -0
  441. package/src/modbus/index.ts +10 -0
  442. package/src/modbus/types.gen.ts +185 -0
  443. package/src/ni/external.ts +10 -0
  444. package/src/ni/index.ts +10 -0
  445. package/src/ni/types.gen.ts +1632 -0
  446. package/src/node/index.ts +10 -0
  447. package/src/{cluster → node}/types.gen.ts +2 -2
  448. package/src/ontology/client.ts +408 -99
  449. package/src/ontology/external.ts +7 -0
  450. package/src/ontology/payload.ts +48 -7
  451. package/src/ontology/store.ts +83 -0
  452. package/src/ontology/types.gen.ts +2 -1
  453. package/src/ontology/writer.ts +1 -0
  454. package/src/opcua/external.ts +10 -0
  455. package/src/opcua/index.ts +10 -0
  456. package/src/opcua/types.gen.ts +65 -0
  457. package/src/pagerduty/external.ts +10 -0
  458. package/src/pagerduty/index.ts +10 -0
  459. package/src/pagerduty/types.gen.ts +41 -0
  460. package/src/panel/actions.gen.ts +267 -0
  461. package/src/panel/actions.ts +357 -0
  462. package/src/panel/client.ts +327 -0
  463. package/src/panel/external.ts +14 -0
  464. package/src/panel/index.ts +10 -0
  465. package/src/panel/tree.ts +163 -0
  466. package/src/panel/types.gen.ts +164 -0
  467. package/src/project/client.ts +273 -0
  468. package/src/project/external.ts +11 -0
  469. package/src/project/index.ts +10 -0
  470. package/src/project/types.gen.ts +40 -0
  471. package/src/query/cache.ts +326 -0
  472. package/src/query/deleted.ts +38 -0
  473. package/src/query/derived.ts +101 -0
  474. package/src/query/external.ts +51 -0
  475. package/src/query/index.ts +10 -0
  476. package/src/query/query.ts +865 -0
  477. package/src/query/retriever.ts +308 -0
  478. package/src/query/streamer.ts +207 -0
  479. package/src/query/table.ts +625 -0
  480. package/src/query/types.ts +54 -0
  481. package/src/query/write.ts +42 -0
  482. package/src/rack/client.ts +233 -45
  483. package/src/rack/types.gen.ts +15 -16
  484. package/src/range/alias/types.gen.ts +2 -3
  485. package/src/ranger/client.ts +581 -70
  486. package/src/ranger/kv/client.ts +52 -21
  487. package/src/ranger/payload.ts +3 -0
  488. package/src/ranger/types.gen.ts +21 -23
  489. package/src/ranger/writer.ts +4 -8
  490. package/src/schematic/actions.gen.ts +62 -53
  491. package/src/schematic/actions.ts +44 -42
  492. package/src/schematic/client.ts +226 -70
  493. package/src/schematic/symbol/client.ts +277 -48
  494. package/src/schematic/symbol/types.gen.ts +22 -34
  495. package/src/schematic/types.gen.ts +22 -29
  496. package/src/status/client.ts +321 -44
  497. package/src/status/external.ts +2 -0
  498. package/src/status/payload.ts +1 -23
  499. package/src/status/status.ts +241 -0
  500. package/src/status/types.gen.ts +108 -0
  501. package/src/table/actions.gen.ts +96 -63
  502. package/src/table/actions.ts +44 -19
  503. package/src/table/client.ts +220 -56
  504. package/src/table/types.gen.ts +24 -31
  505. package/src/task/client.ts +580 -101
  506. package/src/task/types.gen.ts +68 -75
  507. package/src/testutil/access.ts +102 -6
  508. package/src/testutil/channels.ts +29 -0
  509. package/src/testutil/client.ts +27 -2
  510. package/src/testutil/connection.ts +47 -0
  511. package/src/testutil/index.ts +17 -0
  512. package/src/testutil/panels.ts +26 -0
  513. package/src/testutil/proxy.ts +106 -0
  514. package/src/testutil/query.ts +28 -0
  515. package/src/testutil/telem.ts +17 -1
  516. package/src/transport.ts +18 -7
  517. package/src/user/client.ts +165 -64
  518. package/src/user/external.ts +1 -1
  519. package/src/user/types.gen.ts +5 -5
  520. package/src/util/retrieve.ts +4 -4
  521. package/src/util/telem.ts +0 -1
  522. package/src/view/client.ts +120 -37
  523. package/src/view/types.gen.ts +8 -11
  524. package/.turbo/turbo-build.log +0 -20
  525. package/.vscode/settings.json +0 -3
  526. package/CONTRIBUTING.md +0 -47
  527. package/dist/client.cjs +0 -118
  528. package/dist/eslint.config.d.ts +0 -4
  529. package/dist/eslint.config.d.ts.map +0 -1
  530. package/dist/src/access/enforce.spec.d.ts +0 -2
  531. package/dist/src/access/enforce.spec.d.ts.map +0 -1
  532. package/dist/src/access/policy/access.spec.d.ts +0 -2
  533. package/dist/src/access/policy/access.spec.d.ts.map +0 -1
  534. package/dist/src/access/role/role.spec.d.ts +0 -2
  535. package/dist/src/access/role/role.spec.d.ts.map +0 -1
  536. package/dist/src/actions/actions.spec.d.ts +0 -2
  537. package/dist/src/actions/actions.spec.d.ts.map +0 -1
  538. package/dist/src/arc/access.spec.d.ts +0 -2
  539. package/dist/src/arc/access.spec.d.ts.map +0 -1
  540. package/dist/src/arc/arc.spec.d.ts +0 -2
  541. package/dist/src/arc/arc.spec.d.ts.map +0 -1
  542. package/dist/src/arc/lsp.spec.d.ts +0 -2
  543. package/dist/src/arc/lsp.spec.d.ts.map +0 -1
  544. package/dist/src/auth/auth.spec.d.ts +0 -2
  545. package/dist/src/auth/auth.spec.d.ts.map +0 -1
  546. package/dist/src/channel/access.spec.d.ts +0 -2
  547. package/dist/src/channel/access.spec.d.ts.map +0 -1
  548. package/dist/src/channel/batchRetriever.spec.d.ts +0 -2
  549. package/dist/src/channel/batchRetriever.spec.d.ts.map +0 -1
  550. package/dist/src/channel/channel.spec.d.ts +0 -2
  551. package/dist/src/channel/channel.spec.d.ts.map +0 -1
  552. package/dist/src/channel/payload.spec.d.ts +0 -2
  553. package/dist/src/channel/payload.spec.d.ts.map +0 -1
  554. package/dist/src/channel/retriever.d.ts +0 -64
  555. package/dist/src/channel/retriever.d.ts.map +0 -1
  556. package/dist/src/cluster/index.d.ts +0 -2
  557. package/dist/src/cluster/index.d.ts.map +0 -1
  558. package/dist/src/cluster/types.gen.d.ts +0 -4
  559. package/dist/src/cluster/types.gen.d.ts.map +0 -1
  560. package/dist/src/connection/checker.d.ts +0 -86
  561. package/dist/src/connection/checker.d.ts.map +0 -1
  562. package/dist/src/connection/connection.spec.d.ts +0 -2
  563. package/dist/src/connection/connection.spec.d.ts.map +0 -1
  564. package/dist/src/connection.spec.d.ts +0 -2
  565. package/dist/src/connection.spec.d.ts.map +0 -1
  566. package/dist/src/control/state.spec.d.ts +0 -2
  567. package/dist/src/control/state.spec.d.ts.map +0 -1
  568. package/dist/src/device/access.spec.d.ts +0 -2
  569. package/dist/src/device/access.spec.d.ts.map +0 -1
  570. package/dist/src/device/device.spec.d.ts +0 -2
  571. package/dist/src/device/device.spec.d.ts.map +0 -1
  572. package/dist/src/device/payload.spec.d.ts +0 -2
  573. package/dist/src/device/payload.spec.d.ts.map +0 -1
  574. package/dist/src/errors.spec.d.ts +0 -2
  575. package/dist/src/errors.spec.d.ts.map +0 -1
  576. package/dist/src/framer/adapter.spec.d.ts +0 -2
  577. package/dist/src/framer/adapter.spec.d.ts.map +0 -1
  578. package/dist/src/framer/client.spec.d.ts +0 -2
  579. package/dist/src/framer/client.spec.d.ts.map +0 -1
  580. package/dist/src/framer/codec.spec.d.ts +0 -2
  581. package/dist/src/framer/codec.spec.d.ts.map +0 -1
  582. package/dist/src/framer/deleter.spec.d.ts +0 -2
  583. package/dist/src/framer/deleter.spec.d.ts.map +0 -1
  584. package/dist/src/framer/frame.spec.d.ts +0 -2
  585. package/dist/src/framer/frame.spec.d.ts.map +0 -1
  586. package/dist/src/framer/iterator.spec.d.ts +0 -2
  587. package/dist/src/framer/iterator.spec.d.ts.map +0 -1
  588. package/dist/src/framer/reader.spec.d.ts +0 -2
  589. package/dist/src/framer/reader.spec.d.ts.map +0 -1
  590. package/dist/src/framer/streamer.spec.d.ts +0 -2
  591. package/dist/src/framer/streamer.spec.d.ts.map +0 -1
  592. package/dist/src/framer/writer.spec.d.ts +0 -2
  593. package/dist/src/framer/writer.spec.d.ts.map +0 -1
  594. package/dist/src/group/access.spec.d.ts +0 -2
  595. package/dist/src/group/access.spec.d.ts.map +0 -1
  596. package/dist/src/group/group.spec.d.ts +0 -2
  597. package/dist/src/group/group.spec.d.ts.map +0 -1
  598. package/dist/src/label/access.spec.d.ts +0 -2
  599. package/dist/src/label/access.spec.d.ts.map +0 -1
  600. package/dist/src/label/label.spec.d.ts +0 -2
  601. package/dist/src/label/label.spec.d.ts.map +0 -1
  602. package/dist/src/lineplot/access.spec.d.ts +0 -2
  603. package/dist/src/lineplot/access.spec.d.ts.map +0 -1
  604. package/dist/src/lineplot/lineplot.spec.d.ts +0 -2
  605. package/dist/src/lineplot/lineplot.spec.d.ts.map +0 -1
  606. package/dist/src/log/access.spec.d.ts +0 -2
  607. package/dist/src/log/access.spec.d.ts.map +0 -1
  608. package/dist/src/log/log.spec.d.ts +0 -2
  609. package/dist/src/log/log.spec.d.ts.map +0 -1
  610. package/dist/src/ontology/ontology.spec.d.ts +0 -2
  611. package/dist/src/ontology/ontology.spec.d.ts.map +0 -1
  612. package/dist/src/rack/access.spec.d.ts +0 -2
  613. package/dist/src/rack/access.spec.d.ts.map +0 -1
  614. package/dist/src/rack/rack.spec.d.ts +0 -2
  615. package/dist/src/rack/rack.spec.d.ts.map +0 -1
  616. package/dist/src/ranger/access.spec.d.ts +0 -2
  617. package/dist/src/ranger/access.spec.d.ts.map +0 -1
  618. package/dist/src/ranger/alias/payload.spec.d.ts +0 -2
  619. package/dist/src/ranger/alias/payload.spec.d.ts.map +0 -1
  620. package/dist/src/ranger/ranger.spec.d.ts +0 -2
  621. package/dist/src/ranger/ranger.spec.d.ts.map +0 -1
  622. package/dist/src/schematic/access.spec.d.ts +0 -2
  623. package/dist/src/schematic/access.spec.d.ts.map +0 -1
  624. package/dist/src/schematic/actions.spec.d.ts +0 -2
  625. package/dist/src/schematic/actions.spec.d.ts.map +0 -1
  626. package/dist/src/schematic/schematic.spec.d.ts +0 -2
  627. package/dist/src/schematic/schematic.spec.d.ts.map +0 -1
  628. package/dist/src/schematic/symbol/access.spec.d.ts +0 -2
  629. package/dist/src/schematic/symbol/access.spec.d.ts.map +0 -1
  630. package/dist/src/schematic/symbol/client.spec.d.ts +0 -2
  631. package/dist/src/schematic/symbol/client.spec.d.ts.map +0 -1
  632. package/dist/src/status/access.spec.d.ts +0 -2
  633. package/dist/src/status/access.spec.d.ts.map +0 -1
  634. package/dist/src/status/status.spec.d.ts +0 -2
  635. package/dist/src/status/status.spec.d.ts.map +0 -1
  636. package/dist/src/table/access.spec.d.ts +0 -2
  637. package/dist/src/table/access.spec.d.ts.map +0 -1
  638. package/dist/src/table/table.spec.d.ts +0 -2
  639. package/dist/src/table/table.spec.d.ts.map +0 -1
  640. package/dist/src/task/access.spec.d.ts +0 -2
  641. package/dist/src/task/access.spec.d.ts.map +0 -1
  642. package/dist/src/task/payload.spec.d.ts +0 -2
  643. package/dist/src/task/payload.spec.d.ts.map +0 -1
  644. package/dist/src/task/task.spec.d.ts +0 -2
  645. package/dist/src/task/task.spec.d.ts.map +0 -1
  646. package/dist/src/user/access.spec.d.ts +0 -2
  647. package/dist/src/user/access.spec.d.ts.map +0 -1
  648. package/dist/src/user/user.spec.d.ts +0 -2
  649. package/dist/src/user/user.spec.d.ts.map +0 -1
  650. package/dist/src/util/retrieve.spec.d.ts +0 -2
  651. package/dist/src/util/retrieve.spec.d.ts.map +0 -1
  652. package/dist/src/view/view.spec.d.ts +0 -2
  653. package/dist/src/view/view.spec.d.ts.map +0 -1
  654. package/dist/src/workspace/access.spec.d.ts +0 -2
  655. package/dist/src/workspace/access.spec.d.ts.map +0 -1
  656. package/dist/src/workspace/client.d.ts +0 -36
  657. package/dist/src/workspace/client.d.ts.map +0 -1
  658. package/dist/src/workspace/external.d.ts.map +0 -1
  659. package/dist/src/workspace/index.d.ts +0 -2
  660. package/dist/src/workspace/index.d.ts.map +0 -1
  661. package/dist/src/workspace/types.gen.d.ts +0 -34
  662. package/dist/src/workspace/types.gen.d.ts.map +0 -1
  663. package/dist/src/workspace/workspace.spec.d.ts +0 -2
  664. package/dist/src/workspace/workspace.spec.d.ts.map +0 -1
  665. package/examples/node/basicReadWrite.js +0 -86
  666. package/examples/node/createChannels.js +0 -50
  667. package/examples/node/createRange.js +0 -67
  668. package/examples/node/package-lock.json +0 -133
  669. package/examples/node/package.json +0 -17
  670. package/examples/node/readLatest.js +0 -76
  671. package/examples/node/seriesAndFrames.js +0 -173
  672. package/examples/node/streamRead.js +0 -50
  673. package/examples/node/streamWrite.js +0 -87
  674. package/src/access/enforce.spec.ts +0 -188
  675. package/src/access/policy/access.spec.ts +0 -147
  676. package/src/access/role/role.spec.ts +0 -95
  677. package/src/actions/actions.spec.ts +0 -229
  678. package/src/arc/access.spec.ts +0 -149
  679. package/src/arc/arc.spec.ts +0 -44
  680. package/src/arc/lsp.spec.ts +0 -717
  681. package/src/auth/auth.spec.ts +0 -101
  682. package/src/channel/access.spec.ts +0 -116
  683. package/src/channel/batchRetriever.spec.ts +0 -115
  684. package/src/channel/channel.spec.ts +0 -352
  685. package/src/channel/payload.spec.ts +0 -117
  686. package/src/channel/retriever.ts +0 -252
  687. package/src/connection/checker.ts +0 -203
  688. package/src/connection/connection.spec.ts +0 -152
  689. package/src/connection.spec.ts +0 -145
  690. package/src/control/state.spec.ts +0 -22
  691. package/src/device/access.spec.ts +0 -159
  692. package/src/device/device.spec.ts +0 -461
  693. package/src/device/payload.spec.ts +0 -142
  694. package/src/errors.spec.ts +0 -71
  695. package/src/framer/adapter.spec.ts +0 -620
  696. package/src/framer/client.spec.ts +0 -180
  697. package/src/framer/codec.spec.ts +0 -383
  698. package/src/framer/deleter.spec.ts +0 -103
  699. package/src/framer/frame.spec.ts +0 -973
  700. package/src/framer/iterator.spec.ts +0 -169
  701. package/src/framer/reader.spec.ts +0 -865
  702. package/src/framer/streamer.spec.ts +0 -871
  703. package/src/framer/writer.spec.ts +0 -486
  704. package/src/group/access.spec.ts +0 -77
  705. package/src/group/group.spec.ts +0 -65
  706. package/src/label/access.spec.ts +0 -109
  707. package/src/label/label.spec.ts +0 -83
  708. package/src/lineplot/access.spec.ts +0 -134
  709. package/src/lineplot/lineplot.spec.ts +0 -120
  710. package/src/log/access.spec.ts +0 -132
  711. package/src/log/log.spec.ts +0 -106
  712. package/src/ontology/ontology.spec.ts +0 -521
  713. package/src/rack/access.spec.ts +0 -102
  714. package/src/rack/rack.spec.ts +0 -171
  715. package/src/ranger/access.spec.ts +0 -115
  716. package/src/ranger/alias/payload.spec.ts +0 -52
  717. package/src/ranger/ranger.spec.ts +0 -343
  718. package/src/schematic/access.spec.ts +0 -134
  719. package/src/schematic/actions.spec.ts +0 -699
  720. package/src/schematic/schematic.spec.ts +0 -340
  721. package/src/schematic/symbol/access.spec.ts +0 -172
  722. package/src/schematic/symbol/client.spec.ts +0 -160
  723. package/src/status/access.spec.ts +0 -129
  724. package/src/status/status.spec.ts +0 -448
  725. package/src/table/access.spec.ts +0 -128
  726. package/src/table/table.spec.ts +0 -651
  727. package/src/task/access.spec.ts +0 -131
  728. package/src/task/payload.spec.ts +0 -113
  729. package/src/task/task.spec.ts +0 -657
  730. package/src/user/access.spec.ts +0 -107
  731. package/src/user/user.spec.ts +0 -290
  732. package/src/util/retrieve.spec.ts +0 -49
  733. package/src/view/view.spec.ts +0 -165
  734. package/src/workspace/access.spec.ts +0 -108
  735. package/src/workspace/client.ts +0 -112
  736. package/src/workspace/types.gen.ts +0 -46
  737. package/src/workspace/workspace.spec.ts +0 -111
  738. package/tsconfig.json +0 -5
  739. package/tsconfig.vite.json +0 -4
  740. package/vite.config.ts +0 -29
  741. /package/dist/src/{workspace → project}/external.d.ts +0 -0
@@ -1,521 +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 { describe, expect, it, test } from "vitest";
11
-
12
- import { group } from "@/group";
13
- import { ontology } from "@/ontology";
14
- import { createTestClient } from "@/testutil/client";
15
-
16
- const client = createTestClient();
17
-
18
- const randomName = (): string => `group-${Math.random()}`;
19
-
20
- describe("Ontology", () => {
21
- describe("parseIDs", () => {
22
- it("should parse a single ID object", () => {
23
- const id: ontology.ID = { type: "group", key: "test-key" };
24
- const result = ontology.parseIDs(id);
25
- expect(result).toEqual([id]);
26
- });
27
-
28
- it("should parse an array of ID objects", () => {
29
- const ids: ontology.ID[] = [
30
- { type: "group", key: "test-key-1" },
31
- { type: "channel", key: "test-key-2" },
32
- ];
33
- const result = ontology.parseIDs(ids);
34
- expect(result).toEqual(ids);
35
- });
36
-
37
- it("should parse a single string ID", () => {
38
- const stringId = "group:test-key";
39
- const result = ontology.parseIDs(stringId);
40
- expect(result).toEqual([{ type: "group", key: "test-key" }]);
41
- });
42
-
43
- it("should parse an array of string IDs", () => {
44
- const stringIds = ["group:test-key-1", "channel:test-key-2"];
45
- const result = ontology.parseIDs(stringIds);
46
- expect(result).toEqual([
47
- { type: "group", key: "test-key-1" },
48
- { type: "channel", key: "test-key-2" },
49
- ]);
50
- });
51
-
52
- it("should extract ID from a single Resource object", () => {
53
- const resource: ontology.Resource = {
54
- id: { type: "group", key: "test-key" },
55
- name: "Test Resource",
56
- key: "group:test-key",
57
- };
58
- const result = ontology.parseIDs(resource);
59
- expect(result).toEqual([{ type: "group", key: "test-key" }]);
60
- });
61
-
62
- it("should extract IDs from an array of Resource objects", () => {
63
- const resources: ontology.Resource[] = [
64
- {
65
- id: { type: "group", key: "test-key-1" },
66
- name: "Test Resource 1",
67
- key: "group:test-key-1",
68
- },
69
- {
70
- id: { type: "channel", key: "test-key-2" },
71
- name: "Test Resource 2",
72
- key: "channel:test-key-2",
73
- },
74
- ];
75
- const result = ontology.parseIDs(resources);
76
- expect(result).toEqual([
77
- { type: "group", key: "test-key-1" },
78
- { type: "channel", key: "test-key-2" },
79
- ]);
80
- });
81
-
82
- it("should return empty array for empty input", () => {
83
- const result = ontology.parseIDs([]);
84
- expect(result).toEqual([]);
85
- });
86
-
87
- it("should handle string IDs with colons in the key", () => {
88
- const stringId = "group:test:key:with:colons";
89
- const result = ontology.parseIDs(stringId);
90
- expect(result).toEqual([{ type: "group", key: "test" }]);
91
- });
92
-
93
- it("should handle mixed Resource objects with different data types", () => {
94
- const resources: ontology.Resource[] = [
95
- {
96
- id: { type: "group", key: "test-key-1" },
97
- name: "Test Resource 1",
98
- key: "group:test-key-1",
99
- data: { customField: "value" },
100
- },
101
- {
102
- id: { type: "channel", key: "test-key-2" },
103
- name: "Test Resource 2",
104
- key: "channel:test-key-2",
105
- data: null,
106
- },
107
- ];
108
- const result = ontology.parseIDs(resources);
109
- expect(result).toEqual([
110
- { type: "group", key: "test-key-1" },
111
- { type: "channel", key: "test-key-2" },
112
- ]);
113
- });
114
-
115
- it("should throw an error for invalid string ID format", () => {
116
- const invalidStringId = "invalid-format";
117
- expect(() => ontology.parseIDs(invalidStringId)).toThrow();
118
- });
119
-
120
- it("should throw an error for invalid resource type in string ID", () => {
121
- const invalidStringId = "invalid-type:test-key";
122
- expect(() => ontology.parseIDs(invalidStringId)).toThrow();
123
- });
124
- });
125
-
126
- describe("retrieve", () => {
127
- test("retrieve", async () => {
128
- const name = randomName();
129
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
130
- const g2 = await client.ontology.retrieve(group.ontologyID(g.key));
131
- expect(g2.name).toEqual(name);
132
- });
133
- test("retrieve children", async () => {
134
- const name = randomName();
135
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
136
- const name2 = randomName();
137
- await client.groups.create({
138
- parent: group.ontologyID(g.key),
139
- name: name2,
140
- });
141
- const children = await client.ontology.retrieveChildren(group.ontologyID(g.key));
142
- expect(children.length).toEqual(1);
143
- expect(children[0].name).toEqual(name2);
144
- });
145
- test("retrieve parents", async () => {
146
- const name = randomName();
147
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
148
- const name2 = randomName();
149
- const g2 = await client.groups.create({
150
- parent: group.ontologyID(g.key),
151
- name: name2,
152
- });
153
- const parents = await client.ontology.retrieveParents(group.ontologyID(g2.key));
154
- expect(parents.length).toEqual(1);
155
- expect(parents[0].name).toEqual(name);
156
- });
157
- test("retrieve by search term", async () => {
158
- const name = randomName();
159
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
160
- await expect
161
- .poll(async () => {
162
- const results = await client.ontology.retrieve({ searchTerm: name });
163
- return results.find((r) => r.id.key === g.key);
164
- })
165
- .toMatchObject({ name, id: { type: "group", key: g.key } });
166
- });
167
- });
168
-
169
- describe("write", () => {
170
- test("add children", async () => {
171
- const name = randomName();
172
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
173
- const name2 = randomName();
174
- const g2 = await client.groups.create({
175
- parent: ontology.ROOT_ID,
176
- name: name2,
177
- });
178
- await client.ontology.addChildren(
179
- group.ontologyID(g.key),
180
- group.ontologyID(g2.key),
181
- );
182
- const children = await client.ontology.retrieveChildren(group.ontologyID(g.key));
183
- expect(children.length).toEqual(1);
184
- expect(children[0].name).toEqual(name2);
185
- });
186
- test("remove children", async () => {
187
- const name = randomName();
188
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
189
- const name2 = randomName();
190
- const g2 = await client.groups.create({
191
- parent: ontology.ROOT_ID,
192
- name: name2,
193
- });
194
- await client.ontology.addChildren(
195
- group.ontologyID(g.key),
196
- group.ontologyID(g2.key),
197
- );
198
- await client.ontology.removeChildren(
199
- group.ontologyID(g.key),
200
- group.ontologyID(g2.key),
201
- );
202
- const children = await client.ontology.retrieveChildren(group.ontologyID(g.key));
203
- expect(children.length).toEqual(0);
204
- });
205
- test("move children", async () => {
206
- const name = randomName();
207
- const g = await client.groups.create({ parent: ontology.ROOT_ID, name });
208
- const name2 = randomName();
209
- const g2 = await client.groups.create({
210
- parent: ontology.ROOT_ID,
211
- name: name2,
212
- });
213
- const oldRootLength = (await client.ontology.retrieveChildren(ontology.ROOT_ID))
214
- .length;
215
-
216
- await client.ontology.moveChildren(
217
- ontology.ROOT_ID,
218
- group.ontologyID(g.key),
219
- group.ontologyID(g2.key),
220
- );
221
-
222
- const children = await client.ontology.retrieveChildren(group.ontologyID(g.key));
223
- expect(children.length).toEqual(1);
224
- const newRootLength = (await client.ontology.retrieveChildren(ontology.ROOT_ID))
225
- .length;
226
- expect(newRootLength).toEqual(oldRootLength - 1);
227
- });
228
- });
229
-
230
- describe("signals", async () => {
231
- it("should correctly decode a set of relationships from a string", () => {
232
- const rel = ontology.relationshipZ.parse("table:keyA->parent->schematic:keyB");
233
- expect(rel.type).toEqual(ontology.PARENT_OF_RELATIONSHIP_TYPE);
234
- expect(rel.from.type).toEqual("table");
235
- expect(rel.from.key).toEqual("keyA");
236
- expect(rel.to.type).toEqual("schematic");
237
- expect(rel.to.key).toEqual("keyB");
238
- });
239
- });
240
-
241
- describe("matchRelationship", () => {
242
- const sampleRelationship: ontology.Relationship = {
243
- from: { type: "group", key: "test-group" },
244
- type: "parent",
245
- to: { type: "channel", key: "test-channel" },
246
- };
247
-
248
- describe("type matching", () => {
249
- it("should return true when types match", () => {
250
- const match: ontology.MatchRelationshipArgs = { type: "parent" };
251
- const result = ontology.matchRelationship(sampleRelationship, match);
252
- expect(result).toBe(true);
253
- });
254
-
255
- it("should return false when types don't match", () => {
256
- const match: ontology.MatchRelationshipArgs = { type: "child" };
257
- const result = ontology.matchRelationship(sampleRelationship, match);
258
- expect(result).toBe(false);
259
- });
260
- });
261
-
262
- describe("from ID matching", () => {
263
- it("should return true when from type matches", () => {
264
- const match: ontology.MatchRelationshipArgs = {
265
- type: "parent",
266
- from: { type: "group" },
267
- };
268
- const result = ontology.matchRelationship(sampleRelationship, match);
269
- expect(result).toBe(true);
270
- });
271
-
272
- it("should return true when from key matches", () => {
273
- const match: ontology.MatchRelationshipArgs = {
274
- type: "parent",
275
- from: { key: "test-group" },
276
- };
277
- const result = ontology.matchRelationship(sampleRelationship, match);
278
- expect(result).toBe(true);
279
- });
280
-
281
- it("should return true when both from type and key match", () => {
282
- const match: ontology.MatchRelationshipArgs = {
283
- type: "parent",
284
- from: { type: "group", key: "test-group" },
285
- };
286
- const result = ontology.matchRelationship(sampleRelationship, match);
287
- expect(result).toBe(true);
288
- });
289
-
290
- it("should return false when from type doesn't match", () => {
291
- const match: ontology.MatchRelationshipArgs = {
292
- type: "parent",
293
- from: { type: "channel" },
294
- };
295
- const result = ontology.matchRelationship(sampleRelationship, match);
296
- expect(result).toBe(false);
297
- });
298
-
299
- it("should return false when from key doesn't match", () => {
300
- const match: ontology.MatchRelationshipArgs = {
301
- type: "parent",
302
- from: { key: "wrong-key" },
303
- };
304
- const result = ontology.matchRelationship(sampleRelationship, match);
305
- expect(result).toBe(false);
306
- });
307
-
308
- it("should return false when from type matches but key doesn't", () => {
309
- const match: ontology.MatchRelationshipArgs = {
310
- type: "parent",
311
- from: { type: "group", key: "wrong-key" },
312
- };
313
- const result = ontology.matchRelationship(sampleRelationship, match);
314
- expect(result).toBe(false);
315
- });
316
- });
317
-
318
- describe("to ID matching", () => {
319
- it("should return true when to type matches", () => {
320
- const match: ontology.MatchRelationshipArgs = {
321
- type: "parent",
322
- to: { type: "channel" },
323
- };
324
- const result = ontology.matchRelationship(sampleRelationship, match);
325
- expect(result).toBe(true);
326
- });
327
-
328
- it("should return true when to key matches", () => {
329
- const match: ontology.MatchRelationshipArgs = {
330
- type: "parent",
331
- to: { key: "test-channel" },
332
- };
333
- const result = ontology.matchRelationship(sampleRelationship, match);
334
- expect(result).toBe(true);
335
- });
336
-
337
- it("should return true when both to type and key match", () => {
338
- const match: ontology.MatchRelationshipArgs = {
339
- type: "parent",
340
- to: { type: "channel", key: "test-channel" },
341
- };
342
- const result = ontology.matchRelationship(sampleRelationship, match);
343
- expect(result).toBe(true);
344
- });
345
-
346
- it("should return false when to type doesn't match", () => {
347
- const match: ontology.MatchRelationshipArgs = {
348
- type: "parent",
349
- to: { type: "group" },
350
- };
351
- const result = ontology.matchRelationship(sampleRelationship, match);
352
- expect(result).toBe(false);
353
- });
354
-
355
- it("should return false when to key doesn't match", () => {
356
- const match = { type: "parent", to: { key: "wrong-key" } };
357
- const result = ontology.matchRelationship(sampleRelationship, match);
358
- expect(result).toBe(false);
359
- });
360
-
361
- it("should return false when to type matches but key doesn't", () => {
362
- const match: ontology.MatchRelationshipArgs = {
363
- type: "parent",
364
- to: { type: "channel", key: "wrong-key" },
365
- };
366
- const result = ontology.matchRelationship(sampleRelationship, match);
367
- expect(result).toBe(false);
368
- });
369
- });
370
-
371
- describe("combined matching", () => {
372
- it("should return true when all specified criteria match", () => {
373
- const match: ontology.MatchRelationshipArgs = {
374
- type: "parent",
375
- from: { type: "group", key: "test-group" },
376
- to: { type: "channel", key: "test-channel" },
377
- };
378
- const result = ontology.matchRelationship(sampleRelationship, match);
379
- expect(result).toBe(true);
380
- });
381
-
382
- it("should return false when type matches but from doesn't", () => {
383
- const match: ontology.MatchRelationshipArgs = {
384
- type: "parent",
385
- from: { type: "channel" },
386
- to: { type: "channel", key: "test-channel" },
387
- };
388
- const result = ontology.matchRelationship(sampleRelationship, match);
389
- expect(result).toBe(false);
390
- });
391
-
392
- it("should return false when type matches but to doesn't", () => {
393
- const match: ontology.MatchRelationshipArgs = {
394
- type: "parent",
395
- from: { type: "group", key: "test-group" },
396
- to: { type: "group" },
397
- };
398
- const result = ontology.matchRelationship(sampleRelationship, match);
399
- expect(result).toBe(false);
400
- });
401
-
402
- it("should return false when from and to match but type doesn't", () => {
403
- const match: ontology.MatchRelationshipArgs = {
404
- type: "child",
405
- from: { type: "group", key: "test-group" },
406
- to: { type: "channel", key: "test-channel" },
407
- };
408
- const result = ontology.matchRelationship(sampleRelationship, match);
409
- expect(result).toBe(false);
410
- });
411
- });
412
-
413
- describe("partial matching", () => {
414
- it("should return true when only type is specified and matches", () => {
415
- const match: ontology.MatchRelationshipArgs = { type: "parent" };
416
- const result = ontology.matchRelationship(sampleRelationship, match);
417
- expect(result).toBe(true);
418
- });
419
-
420
- it("should return true when only from type is specified and matches", () => {
421
- const match: ontology.MatchRelationshipArgs = {
422
- type: "parent",
423
- from: { type: "group" },
424
- };
425
- const result = ontology.matchRelationship(sampleRelationship, match);
426
- expect(result).toBe(true);
427
- });
428
-
429
- it("should return true when only to type is specified and matches", () => {
430
- const match: ontology.MatchRelationshipArgs = {
431
- type: "parent",
432
- to: { type: "channel" },
433
- };
434
- const result = ontology.matchRelationship(sampleRelationship, match);
435
- expect(result).toBe(true);
436
- });
437
-
438
- it("should return true when only from key is specified and matches", () => {
439
- const match: ontology.MatchRelationshipArgs = {
440
- type: "parent",
441
- from: { key: "test-group" },
442
- };
443
- const result = ontology.matchRelationship(sampleRelationship, match);
444
- expect(result).toBe(true);
445
- });
446
-
447
- it("should return true when only to key is specified and matches", () => {
448
- const match: ontology.MatchRelationshipArgs = {
449
- type: "parent",
450
- to: { key: "test-channel" },
451
- };
452
- const result = ontology.matchRelationship(sampleRelationship, match);
453
- expect(result).toBe(true);
454
- });
455
- });
456
-
457
- describe("edge cases", () => {
458
- it("should handle empty from and to objects", () => {
459
- const match: ontology.MatchRelationshipArgs = {
460
- type: "parent",
461
- from: {},
462
- to: {},
463
- };
464
- const result = ontology.matchRelationship(sampleRelationship, match);
465
- expect(result).toBe(true);
466
- });
467
-
468
- it("should handle relationships with empty keys", () => {
469
- const relationship: ontology.Relationship = {
470
- from: { type: "group", key: "" },
471
- type: "parent",
472
- to: { type: "channel", key: "" },
473
- };
474
- const match: ontology.MatchRelationshipArgs = {
475
- type: "parent",
476
- from: { key: "" },
477
- to: { key: "" },
478
- };
479
- const result = ontology.matchRelationship(relationship, match);
480
- expect(result).toBe(true);
481
- });
482
- });
483
- });
484
-
485
- describe("idToString", () => {
486
- it("should convert an ID to a string", () => {
487
- const result = ontology.idToString({ type: "group", key: "one" });
488
- expect(result).toEqual("group:one");
489
- });
490
-
491
- it("should convert an array of IDs to strings", () => {
492
- const result = ontology.idToString([
493
- { type: "group", key: "one" },
494
- { type: "channel", key: "two" },
495
- ]);
496
- expect(result).toEqual(["group:one", "channel:two"]);
497
- });
498
-
499
- it("should pass through string IDs", () => {
500
- const result = ontology.idToString("group:one");
501
- expect(result).toEqual("group:one");
502
- });
503
-
504
- it("should validate string IDs that get passed", () => {
505
- expect(() => {
506
- ontology.idToString("dog");
507
- }).toThrow();
508
- });
509
-
510
- it("should pass through an array of string IDs", () => {
511
- const result = ontology.idToString(["group:one", "channel:two"]);
512
- expect(result).toEqual(["group:one", "channel:two"]);
513
- });
514
-
515
- it("should validate an array of string IDs that get passed", () => {
516
- expect(() => {
517
- ontology.idToString(["group:one", "channel:two", "dog"]);
518
- }).toThrow();
519
- });
520
- });
521
- });
@@ -1,102 +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 { describe, expect, it } from "vitest";
11
-
12
- import { AuthError, NotFoundError } from "@/errors";
13
- import { rack } from "@/rack";
14
- import { createTestClientWithPolicy } from "@/testutil/access";
15
- import { createTestClient } from "@/testutil/client";
16
-
17
- const client = createTestClient();
18
-
19
- describe("rack", () => {
20
- describe("access control", () => {
21
- it("should deny access when no retrieve policy exists", async () => {
22
- const userClient = await createTestClientWithPolicy(client, {
23
- name: "test",
24
- objects: [],
25
- actions: [],
26
- });
27
- const randomRack = await client.racks.create({
28
- name: "test",
29
- });
30
- await expect(userClient.racks.retrieve({ key: randomRack.key })).rejects.toThrow(
31
- AuthError,
32
- );
33
- });
34
-
35
- it("should allow the caller to retrieve racks with the correct policy", async () => {
36
- const userClient = await createTestClientWithPolicy(client, {
37
- name: "test",
38
- objects: [rack.ontologyID(0)],
39
- actions: ["retrieve"],
40
- });
41
- const randomRack = await client.racks.create({
42
- name: "test",
43
- });
44
- const retrieved = await userClient.racks.retrieve({
45
- key: randomRack.key,
46
- });
47
- expect(retrieved.key).toBe(randomRack.key);
48
- expect(retrieved.name).toBe(randomRack.name);
49
- });
50
-
51
- it("should allow the caller to create racks with the correct policy", async () => {
52
- const userClient = await createTestClientWithPolicy(client, {
53
- name: "test",
54
- objects: [rack.ontologyID(0)],
55
- actions: ["create"],
56
- });
57
- await userClient.racks.create({
58
- name: "test",
59
- });
60
- });
61
-
62
- it("should deny access when no create policy exists", async () => {
63
- const userClient = await createTestClientWithPolicy(client, {
64
- name: "test",
65
- objects: [rack.ontologyID(0)],
66
- actions: [],
67
- });
68
- await expect(
69
- userClient.racks.create({
70
- name: "test",
71
- }),
72
- ).rejects.toThrow(AuthError);
73
- });
74
-
75
- it("should allow the caller to delete racks with the correct policy", async () => {
76
- const userClient = await createTestClientWithPolicy(client, {
77
- name: "test",
78
- objects: [rack.ontologyID(0)],
79
- actions: ["delete", "retrieve"],
80
- });
81
- const randomRack = await client.racks.create({
82
- name: "test",
83
- });
84
- await userClient.racks.delete(randomRack.key);
85
- await expect(userClient.racks.retrieve({ key: randomRack.key })).rejects.toThrow(
86
- NotFoundError,
87
- );
88
- });
89
-
90
- it("should deny access when no delete policy exists", async () => {
91
- const userClient = await createTestClientWithPolicy(client, {
92
- name: "test",
93
- objects: [rack.ontologyID(0)],
94
- actions: [],
95
- });
96
- const randomRack = await client.racks.create({
97
- name: "test",
98
- });
99
- await expect(userClient.racks.delete(randomRack.key)).rejects.toThrow(AuthError);
100
- });
101
- });
102
- });