@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,340 +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 { uuid } from "@synnaxlabs/x";
11
- import { describe, expect, it, test } from "vitest";
12
-
13
- import { NotFoundError, ValidationError } from "@/errors";
14
- import { schematic } from "@/schematic";
15
- import { createTestClient } from "@/testutil/client";
16
-
17
- const newWorkspaceSchematic = async (client: ReturnType<typeof createTestClient>) => {
18
- const ws = await client.workspaces.create({ name: "dispatch", layout: {} });
19
- const schem = await client.schematics.create(ws.key, {
20
- ...schematic.ZERO_NEW,
21
- name: "dispatch",
22
- });
23
- return { ws, schem };
24
- };
25
-
26
- const client = createTestClient();
27
-
28
- describe("Schematic", () => {
29
- describe("create", () => {
30
- test("create one", async () => {
31
- const ws = await client.workspaces.create({
32
- name: "Schematic",
33
- layout: { one: 1 },
34
- });
35
- const schem = await client.schematics.create(ws.key, {
36
- ...schematic.ZERO_NEW,
37
- name: "Schematic",
38
- });
39
- expect(schem.name).toEqual("Schematic");
40
- expect(schem.key).not.toEqual(uuid.ZERO);
41
- const retrieved = await client.schematics.retrieve({ key: schem.key });
42
- expect(retrieved.key).toEqual(schem.key);
43
- });
44
- });
45
-
46
- describe("rename", () => {
47
- test("rename one", async () => {
48
- const ws = await client.workspaces.create({
49
- name: "Schematic",
50
- layout: { one: 1 },
51
- });
52
- const schem = await client.schematics.create(ws.key, {
53
- ...schematic.ZERO_NEW,
54
- name: "Schematic",
55
- });
56
- await client.schematics.rename(schem.key, "Schematic2");
57
- const res = await client.schematics.retrieve({ key: schem.key });
58
- expect(res.name).toEqual("Schematic2");
59
- });
60
- });
61
-
62
- describe("setData", () => {
63
- test("set data replaces body fields while preserving key and name", async () => {
64
- const ws = await client.workspaces.create({
65
- name: "Schematic",
66
- layout: { one: 1 },
67
- });
68
- const schem = await client.schematics.create(ws.key, {
69
- ...schematic.ZERO_NEW,
70
- name: "Schematic",
71
- });
72
- await client.schematics.setData(schem.key, {
73
- ...schematic.ZERO_NEW,
74
- nodes: [{ key: "n1", position: { x: 10, y: 20 }, zIndex: 0 }],
75
- configs: { n1: { variant: "valve" } },
76
- });
77
- const res = await client.schematics.retrieve({ key: schem.key });
78
- expect(res.name).toEqual("Schematic");
79
- expect(res.nodes).toHaveLength(1);
80
- expect(res.nodes[0].key).toEqual("n1");
81
- expect((res.configs.n1 as Record<string, unknown>).variant).toEqual("valve");
82
- });
83
- });
84
-
85
- describe("delete", () => {
86
- test("delete one", async () => {
87
- const ws = await client.workspaces.create({
88
- name: "Schematic",
89
- layout: { one: 1 },
90
- });
91
- const schem = await client.schematics.create(ws.key, {
92
- ...schematic.ZERO_NEW,
93
- name: "Schematic",
94
- });
95
- await client.schematics.delete(schem.key);
96
- await expect(client.schematics.retrieve({ key: schem.key })).rejects.toThrow(
97
- NotFoundError,
98
- );
99
- });
100
- });
101
-
102
- describe("config case preservation", () => {
103
- test("preserves arbitrary key casing within config values", async () => {
104
- const ws = await client.workspaces.create({ name: "CaseTest", layout: {} });
105
- const schem = await client.schematics.create(ws.key, {
106
- ...schematic.ZERO_NEW,
107
- configs: {
108
- n1: {
109
- camelCaseKey: "value1",
110
- PascalCaseKey: "value2",
111
- snake_case_key: "value3",
112
- nested: {
113
- innerCamelCase: 123,
114
- InnerPascalCase: { deepKey: true },
115
- },
116
- },
117
- },
118
- });
119
- const retrieved = await client.schematics.retrieve({ key: schem.key });
120
- const config = retrieved.configs.n1 as Record<string, unknown>;
121
- expect(config.camelCaseKey).toEqual("value1");
122
- expect(config.PascalCaseKey).toEqual("value2");
123
- expect(config.snake_case_key).toEqual("value3");
124
- expect((config.nested as Record<string, unknown>).innerCamelCase).toEqual(123);
125
- expect(
126
- (
127
- (config.nested as Record<string, unknown>).InnerPascalCase as Record<
128
- string,
129
- unknown
130
- >
131
- ).deepKey,
132
- ).toEqual(true);
133
- });
134
- });
135
-
136
- describe("copy", () => {
137
- test("copy one", async () => {
138
- const ws = await client.workspaces.create({
139
- name: "Schematic",
140
- layout: { one: 1 },
141
- });
142
- const schem = await client.schematics.create(ws.key, {
143
- ...schematic.ZERO_NEW,
144
- name: "Schematic",
145
- });
146
- const schem2 = await client.schematics.copy({
147
- key: schem.key,
148
- name: "Schematic2",
149
- snapshot: false,
150
- });
151
- expect(schem2.name).toEqual("Schematic2");
152
- expect(schem2.key).not.toEqual(uuid.ZERO);
153
- });
154
-
155
- describe("snapshot", () => {
156
- it("should not allow the caller to edit the snapshot", async () => {
157
- const ws = await client.workspaces.create({
158
- name: "Schematic",
159
- layout: { one: 1 },
160
- });
161
- const schem = await client.schematics.create(ws.key, {
162
- ...schematic.ZERO_NEW,
163
- name: "Schematic",
164
- });
165
- const schem2 = await client.schematics.copy({
166
- key: schem.key,
167
- name: "Schematic2",
168
- snapshot: true,
169
- });
170
- await expect(
171
- client.schematics.setData(schem2.key, { ...schematic.ZERO_NEW }),
172
- ).rejects.toThrow(ValidationError);
173
- });
174
- });
175
- });
176
-
177
- describe("dispatch", () => {
178
- test("setNodePosition moves the matching node", async () => {
179
- const { schem } = await newWorkspaceSchematic(client);
180
- await client.schematics.setData(schem.key, {
181
- ...schematic.ZERO_NEW,
182
- nodes: [{ key: "n1", position: { x: 0, y: 0 } }],
183
- });
184
- await client.schematics.dispatch(schem.key, "sess-1", [
185
- schematic.setNodePosition({ key: "n1", position: { x: 100, y: 200 } }),
186
- ]);
187
- const res = await client.schematics.retrieve({ key: schem.key });
188
- expect(res.nodes).toHaveLength(1);
189
- expect(res.nodes[0].position).toEqual({ x: 100, y: 200 });
190
- });
191
-
192
- test("setNode inserts a node and writes its config", async () => {
193
- const { schem } = await newWorkspaceSchematic(client);
194
- await client.schematics.dispatch(schem.key, "sess-1", [
195
- schematic.setNode({
196
- node: { key: "n1", position: { x: 1, y: 2 } },
197
- config: { label: "Pump" },
198
- }),
199
- ]);
200
- const res = await client.schematics.retrieve({ key: schem.key });
201
- expect(res.nodes).toHaveLength(1);
202
- expect(res.nodes[0]).toMatchObject({ key: "n1", position: { x: 1, y: 2 } });
203
- expect(res.configs.n1.label).toBe("Pump");
204
- });
205
-
206
- test("removeNode removes the node and drops its config", async () => {
207
- const { schem } = await newWorkspaceSchematic(client);
208
- await client.schematics.setData(schem.key, {
209
- ...schematic.ZERO_NEW,
210
- nodes: [
211
- { key: "n1", position: { x: 0, y: 0 } },
212
- { key: "n2", position: { x: 1, y: 1 } },
213
- ],
214
- configs: { n1: { label: "Pump" }, n2: { label: "Tank" } },
215
- });
216
- await client.schematics.dispatch(schem.key, "sess-1", [
217
- schematic.removeNode({ key: "n1" }),
218
- ]);
219
- const res = await client.schematics.retrieve({ key: schem.key });
220
- expect(res.nodes).toHaveLength(1);
221
- expect(res.nodes[0]).toMatchObject({ key: "n2", position: { x: 1, y: 1 } });
222
- expect(res.configs).toEqual({ n2: { label: "Tank" } });
223
- });
224
-
225
- test("addEdge appends new edges and is a no-op on duplicate keys", async () => {
226
- const { schem } = await newWorkspaceSchematic(client);
227
- const e = (
228
- key: string,
229
- srcNode: string,
230
- srcParam: string,
231
- tgtNode: string,
232
- tgtParam: string,
233
- ) => ({
234
- key,
235
- source: { node: srcNode, param: srcParam },
236
- target: { node: tgtNode, param: tgtParam },
237
- });
238
- await client.schematics.setData(schem.key, {
239
- ...schematic.ZERO_NEW,
240
- edges: [e("e1", "a", "o", "b", "i"), e("e2", "b", "o", "c", "i")],
241
- });
242
- await client.schematics.dispatch(schem.key, "sess-1", [
243
- schematic.addEdge({ edge: e("e2", "x", "y", "z", "w") }),
244
- schematic.addEdge({ edge: e("e3", "c", "o", "d", "i") }),
245
- ]);
246
- const res = await client.schematics.retrieve({ key: schem.key });
247
- expect(res.edges).toEqual([
248
- e("e1", "a", "o", "b", "i"),
249
- e("e2", "b", "o", "c", "i"),
250
- e("e3", "c", "o", "d", "i"),
251
- ]);
252
- });
253
-
254
- test("removeEdge removes the matching edge", async () => {
255
- const { schem } = await newWorkspaceSchematic(client);
256
- await client.schematics.setData(schem.key, {
257
- ...schematic.ZERO_NEW,
258
- edges: [
259
- {
260
- key: "e1",
261
- source: { node: "a", param: "o" },
262
- target: { node: "b", param: "i" },
263
- },
264
- ],
265
- });
266
- await client.schematics.dispatch(schem.key, "sess-1", [
267
- schematic.removeEdge({ key: "e1" }),
268
- ]);
269
- const res = await client.schematics.retrieve({ key: schem.key });
270
- expect(res.edges).toEqual([]);
271
- });
272
-
273
- test("setConfig upserts config under the given key", async () => {
274
- const { schem } = await newWorkspaceSchematic(client);
275
- await client.schematics.dispatch(schem.key, "sess-1", [
276
- schematic.setConfig({ key: "n1", config: { label: "Original" } }),
277
- schematic.setConfig({ key: "n1", config: { label: "Replaced" } }),
278
- ]);
279
- const res = await client.schematics.retrieve({ key: schem.key });
280
- expect(res.configs.n1.label).toBe("Replaced");
281
- });
282
-
283
- test("applies a multi-action sequence atomically", async () => {
284
- const { schem } = await newWorkspaceSchematic(client);
285
- await client.schematics.dispatch(schem.key, "sess-1", [
286
- schematic.setNode({ node: { key: "pump", position: { x: 0, y: 0 } } }),
287
- schematic.setNode({ node: { key: "valve", position: { x: 100, y: 0 } } }),
288
- schematic.addEdge({
289
- edge: {
290
- key: "e1",
291
- source: { node: "pump", param: "out" },
292
- target: { node: "valve", param: "in" },
293
- },
294
- }),
295
- schematic.setConfig({ key: "pump", config: { label: "Main Pump" } }),
296
- ]);
297
- const res = await client.schematics.retrieve({ key: schem.key });
298
- expect(res.nodes).toHaveLength(2);
299
- expect(res.edges).toHaveLength(1);
300
- expect(res.configs.pump.label).toBe("Main Pump");
301
- });
302
-
303
- test("converges to the final position after a 30-action drag storm", async () => {
304
- const { schem } = await newWorkspaceSchematic(client);
305
- await client.schematics.setData(schem.key, {
306
- ...schematic.ZERO_NEW,
307
- nodes: [{ key: "pump", position: { x: 0, y: 0 } }],
308
- });
309
- const actions = Array.from({ length: 30 }, (_, i) =>
310
- schematic.setNodePosition({ key: "pump", position: { x: i, y: i * 2 } }),
311
- );
312
- await client.schematics.dispatch(schem.key, "sess-1", actions);
313
- const res = await client.schematics.retrieve({ key: schem.key });
314
- expect(res.nodes[0].position).toEqual({ x: 29, y: 58 });
315
- });
316
-
317
- test("preserves arbitrary key casing within config values through dispatch", async () => {
318
- const { schem } = await newWorkspaceSchematic(client);
319
- await client.schematics.dispatch(schem.key, "sess-1", [
320
- schematic.setConfig({
321
- key: "n1",
322
- config: {
323
- camelCaseKey: "v1",
324
- PascalCaseKey: "v2",
325
- snake_case_key: "v3",
326
- nested: { innerCamelCase: 1, InnerPascalCase: { deepKey: true } },
327
- },
328
- }),
329
- ]);
330
- const res = await client.schematics.retrieve({ key: schem.key });
331
- const config = res.configs.n1;
332
- expect(config.camelCaseKey).toBe("v1");
333
- expect(config.PascalCaseKey).toBe("v2");
334
- expect(config.snake_case_key).toBe("v3");
335
- const nested = config.nested as Record<string, unknown>;
336
- expect(nested.innerCamelCase).toBe(1);
337
- expect((nested.InnerPascalCase as Record<string, unknown>).deepKey).toBe(true);
338
- });
339
- });
340
- });
@@ -1,172 +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 { group } from "@/group";
14
- import { ontology } from "@/ontology";
15
- import { symbol } from "@/schematic/symbol";
16
- import { createTestClientWithPolicy } from "@/testutil/access";
17
- import { createTestClient } from "@/testutil/client";
18
-
19
- const client = createTestClient();
20
-
21
- describe("schematic_symbol", () => {
22
- describe("access control", () => {
23
- it("should deny access when no retrieve policy exists", async () => {
24
- const userClient = await createTestClientWithPolicy(client, {
25
- name: "test",
26
- objects: [],
27
- actions: [],
28
- });
29
- const symbolGroup = await client.groups.create({
30
- parent: ontology.ROOT_ID,
31
- name: "Test Symbols",
32
- });
33
- const randomSymbol = await client.schematics.symbols.create({
34
- name: "test",
35
- data: {
36
- svg: "<svg></svg>",
37
- states: [],
38
- handles: [],
39
- variant: "sensor",
40
- },
41
- parent: group.ontologyID(symbolGroup.key),
42
- });
43
- await expect(
44
- userClient.schematics.symbols.retrieve({ key: randomSymbol.key }),
45
- ).rejects.toThrow(AuthError);
46
- });
47
-
48
- it("should allow the caller to retrieve symbols with the correct policy", async () => {
49
- const userClient = await createTestClientWithPolicy(client, {
50
- name: "test",
51
- objects: [symbol.ontologyID("")],
52
- actions: ["retrieve"],
53
- });
54
- const symbolGroup = await client.groups.create({
55
- parent: ontology.ROOT_ID,
56
- name: "Test Symbols",
57
- });
58
- const randomSymbol = await client.schematics.symbols.create({
59
- name: "test",
60
- data: {
61
- svg: "<svg></svg>",
62
- states: [],
63
- handles: [],
64
- variant: "sensor",
65
- },
66
- parent: group.ontologyID(symbolGroup.key),
67
- });
68
- const retrieved = await userClient.schematics.symbols.retrieve({
69
- key: randomSymbol.key,
70
- });
71
- expect(retrieved.key).toBe(randomSymbol.key);
72
- expect(retrieved.name).toBe(randomSymbol.name);
73
- });
74
-
75
- it("should allow the caller to create symbols with the correct policy", async () => {
76
- const userClient = await createTestClientWithPolicy(client, {
77
- name: "test",
78
- objects: [symbol.ontologyID("")],
79
- actions: ["create"],
80
- });
81
- const symbolGroup = await client.groups.create({
82
- parent: ontology.ROOT_ID,
83
- name: "Test Symbols",
84
- });
85
- await userClient.schematics.symbols.create({
86
- name: "test",
87
- data: {
88
- svg: "<svg></svg>",
89
- states: [],
90
- handles: [],
91
- variant: "sensor",
92
- },
93
- parent: group.ontologyID(symbolGroup.key),
94
- });
95
- });
96
-
97
- it("should deny access when no create policy exists", async () => {
98
- const userClient = await createTestClientWithPolicy(client, {
99
- name: "test",
100
- objects: [symbol.ontologyID("")],
101
- actions: [],
102
- });
103
- const symbolGroup = await client.groups.create({
104
- parent: ontology.ROOT_ID,
105
- name: "Test Symbols",
106
- });
107
- await expect(
108
- userClient.schematics.symbols.create({
109
- name: "test",
110
- data: {
111
- svg: "<svg></svg>",
112
- states: [],
113
- handles: [],
114
- variant: "sensor",
115
- },
116
- parent: group.ontologyID(symbolGroup.key),
117
- }),
118
- ).rejects.toThrow(AuthError);
119
- });
120
-
121
- it("should allow the caller to delete symbols with the correct policy", async () => {
122
- const userClient = await createTestClientWithPolicy(client, {
123
- name: "test",
124
- objects: [symbol.ontologyID("")],
125
- actions: ["delete", "retrieve"],
126
- });
127
- const symbolGroup = await client.groups.create({
128
- parent: ontology.ROOT_ID,
129
- name: "Test Symbols",
130
- });
131
- const randomSymbol = await client.schematics.symbols.create({
132
- name: "test",
133
- data: {
134
- svg: "<svg></svg>",
135
- states: [],
136
- handles: [],
137
- variant: "sensor",
138
- },
139
- parent: group.ontologyID(symbolGroup.key),
140
- });
141
- await userClient.schematics.symbols.delete(randomSymbol.key);
142
- await expect(
143
- userClient.schematics.symbols.retrieve({ key: randomSymbol.key }),
144
- ).rejects.toThrow(NotFoundError);
145
- });
146
-
147
- it("should deny access when no delete policy exists", async () => {
148
- const userClient = await createTestClientWithPolicy(client, {
149
- name: "test",
150
- objects: [symbol.ontologyID("")],
151
- actions: [],
152
- });
153
- const symbolGroup = await client.groups.create({
154
- parent: ontology.ROOT_ID,
155
- name: "Test Symbols",
156
- });
157
- const randomSymbol = await client.schematics.symbols.create({
158
- name: "test",
159
- data: {
160
- svg: "<svg></svg>",
161
- states: [],
162
- handles: [],
163
- variant: "sensor",
164
- },
165
- parent: group.ontologyID(symbolGroup.key),
166
- });
167
- await expect(
168
- userClient.schematics.symbols.delete(randomSymbol.key),
169
- ).rejects.toThrow(AuthError);
170
- });
171
- });
172
- });
@@ -1,160 +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 } from "@synnaxlabs/x";
11
- import { beforeAll, describe, expect, it } from "vitest";
12
-
13
- import { group } from "@/group";
14
- import { ontology } from "@/ontology";
15
- import { createTestClient } from "@/testutil/client";
16
-
17
- const client = createTestClient();
18
-
19
- describe("Symbol Client", () => {
20
- let symbolGroup: group.Group;
21
- beforeAll(async () => {
22
- symbolGroup = await client.groups.create({
23
- parent: ontology.ROOT_ID,
24
- name: "Test Symbols",
25
- });
26
- });
27
- describe("create", () => {
28
- it("should create a single symbol", async () => {
29
- const symbol = await client.schematics.symbols.create({
30
- name: "Test Symbol",
31
- data: {
32
- svg: "<svg></svg>",
33
- states: [],
34
- handles: [],
35
- variant: "sensor",
36
- },
37
- parent: group.ontologyID(symbolGroup.key),
38
- });
39
- expect(symbol.name).toBe("Test Symbol");
40
- expect(symbol.key).toBeDefined();
41
- });
42
-
43
- it("should create multiple symbols", async () => {
44
- const symbols = await client.schematics.symbols.create({
45
- symbols: [
46
- {
47
- name: "Symbol 1",
48
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
49
- },
50
- {
51
- name: "Symbol 2",
52
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
53
- },
54
- ],
55
- parent: group.ontologyID(symbolGroup.key),
56
- });
57
- expect(symbols).toHaveLength(2);
58
- expect(symbols[0].name).toBe("Symbol 1");
59
- expect(symbols[1].name).toBe("Symbol 2");
60
- });
61
- });
62
-
63
- describe("retrieve", () => {
64
- it("should retrieve a single symbol by key", async () => {
65
- const created = await client.schematics.symbols.create({
66
- name: "Retrieve Test",
67
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
68
- parent: group.ontologyID(symbolGroup.key),
69
- });
70
-
71
- const retrieved = await client.schematics.symbols.retrieve({
72
- key: created.key,
73
- });
74
- expect(retrieved.key).toBe(created.key);
75
- expect(retrieved.name).toBe("Retrieve Test");
76
- });
77
-
78
- it("should retrieve multiple symbols by keys", async () => {
79
- const created = await client.schematics.symbols.create({
80
- symbols: [
81
- {
82
- name: "Multi Test 1",
83
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
84
- },
85
- {
86
- name: "Multi Test 2",
87
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
88
- },
89
- ],
90
- parent: group.ontologyID(symbolGroup.key),
91
- });
92
-
93
- const retrieved = await client.schematics.symbols.retrieve({
94
- keys: created.map((s) => s.key),
95
- });
96
- expect(retrieved).toHaveLength(2);
97
- });
98
-
99
- it("should retrieve symbols by search term", async () => {
100
- const prefix = `searchable-symbol-${id.create()}`;
101
- const names = [`${prefix}-1`, `${prefix}-2`];
102
- await client.schematics.symbols.create({
103
- symbols: names.map((name) => ({
104
- name,
105
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
106
- })),
107
- parent: group.ontologyID(symbolGroup.key),
108
- });
109
- await expect
110
- .poll(async () => {
111
- const results = await client.schematics.symbols.retrieve({
112
- searchTerm: prefix,
113
- });
114
- return results.map((s) => s.name).sort();
115
- })
116
- .toEqual(names);
117
- });
118
- });
119
-
120
- describe("rename", () => {
121
- it("should rename a symbol", async () => {
122
- const symbol = await client.schematics.symbols.create({
123
- name: "Original Name",
124
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
125
- parent: group.ontologyID(symbolGroup.key),
126
- });
127
-
128
- await client.schematics.symbols.rename(symbol.key, "New Name");
129
-
130
- const retrieved = await client.schematics.symbols.retrieve({
131
- key: symbol.key,
132
- });
133
- expect(retrieved.name).toBe("New Name");
134
- });
135
- });
136
-
137
- describe("delete", () => {
138
- it("should delete a single symbol", async () => {
139
- const symbol = await client.schematics.symbols.create({
140
- name: "Delete Test",
141
- data: { svg: "<svg></svg>", states: [], handles: [], variant: "sensor" },
142
- parent: group.ontologyID(symbolGroup.key),
143
- });
144
-
145
- await client.schematics.symbols.delete(symbol.key);
146
-
147
- await expect(
148
- client.schematics.symbols.retrieve({ key: symbol.key }),
149
- ).rejects.toThrow();
150
- });
151
- });
152
-
153
- describe("retrieveGroup", () => {
154
- it("should retrieve the symbol group", async () => {
155
- const group = await client.schematics.symbols.retrieveGroup();
156
- expect(group.key).toBeDefined();
157
- expect(group.name).toBe("Schematic Symbols");
158
- });
159
- });
160
- });