@synnaxlabs/client 0.56.2 → 0.57.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (741) hide show
  1. package/dist/client-DDACDVZ-.js +14505 -0
  2. package/dist/client-DDACDVZ-.js.map +1 -0
  3. package/dist/client.js +1128 -14876
  4. package/dist/client.js.map +1 -0
  5. package/dist/src/access/client.d.ts +10 -1
  6. package/dist/src/access/client.d.ts.map +1 -1
  7. package/dist/src/access/enforce.d.ts.map +1 -1
  8. package/dist/src/access/external.d.ts +1 -0
  9. package/dist/src/access/external.d.ts.map +1 -1
  10. package/dist/src/access/granted.d.ts +39 -0
  11. package/dist/src/access/granted.d.ts.map +1 -0
  12. package/dist/src/access/policy/client.d.ts +136 -147
  13. package/dist/src/access/policy/client.d.ts.map +1 -1
  14. package/dist/src/access/policy/types.gen.d.ts +15 -68
  15. package/dist/src/access/policy/types.gen.d.ts.map +1 -1
  16. package/dist/src/access/role/client.d.ts +77 -58
  17. package/dist/src/access/role/client.d.ts.map +1 -1
  18. package/dist/src/access/role/types.gen.d.ts +8 -14
  19. package/dist/src/access/role/types.gen.d.ts.map +1 -1
  20. package/dist/src/actions/actions.d.ts +5 -6
  21. package/dist/src/actions/actions.d.ts.map +1 -1
  22. package/dist/src/actions/controller.d.ts +194 -0
  23. package/dist/src/actions/controller.d.ts.map +1 -0
  24. package/dist/src/actions/external.d.ts +1 -0
  25. package/dist/src/actions/external.d.ts.map +1 -1
  26. package/dist/src/arc/actions.d.ts +575 -0
  27. package/dist/src/arc/actions.d.ts.map +1 -0
  28. package/dist/src/arc/actions.gen.d.ts +1439 -0
  29. package/dist/src/arc/actions.gen.d.ts.map +1 -0
  30. package/dist/src/arc/client.d.ts +97 -13
  31. package/dist/src/arc/client.d.ts.map +1 -1
  32. package/dist/src/arc/compiler/types.gen.d.ts +3 -3
  33. package/dist/src/arc/compiler/types.gen.d.ts.map +1 -1
  34. package/dist/src/arc/external.d.ts +2 -0
  35. package/dist/src/arc/external.d.ts.map +1 -1
  36. package/dist/src/arc/graph/types.gen.d.ts +45 -597
  37. package/dist/src/arc/graph/types.gen.d.ts.map +1 -1
  38. package/dist/src/arc/ir/index.d.ts +1 -1
  39. package/dist/src/arc/ir/index.d.ts.map +1 -1
  40. package/dist/src/arc/ir/ir.d.ts +2 -0
  41. package/dist/src/arc/ir/ir.d.ts.map +1 -0
  42. package/dist/src/arc/ir/types.gen.d.ts +58 -2807
  43. package/dist/src/arc/ir/types.gen.d.ts.map +1 -1
  44. package/dist/src/arc/module/types.gen.d.ts +18 -1090
  45. package/dist/src/arc/module/types.gen.d.ts.map +1 -1
  46. package/dist/src/arc/program/types.gen.d.ts +18 -1090
  47. package/dist/src/arc/program/types.gen.d.ts.map +1 -1
  48. package/dist/src/arc/text/types.gen.d.ts +54 -1
  49. package/dist/src/arc/text/types.gen.d.ts.map +1 -1
  50. package/dist/src/arc/types/types.gen.d.ts +35 -153
  51. package/dist/src/arc/types/types.gen.d.ts.map +1 -1
  52. package/dist/src/arc/types.gen.d.ts +98 -2278
  53. package/dist/src/arc/types.gen.d.ts.map +1 -1
  54. package/dist/src/auth/auth.d.ts +14 -2
  55. package/dist/src/auth/auth.d.ts.map +1 -1
  56. package/dist/src/channel/client.d.ts +113 -75
  57. package/dist/src/channel/client.d.ts.map +1 -1
  58. package/dist/src/channel/external.d.ts +0 -1
  59. package/dist/src/channel/external.d.ts.map +1 -1
  60. package/dist/src/channel/payload.d.ts +65 -56
  61. package/dist/src/channel/payload.d.ts.map +1 -1
  62. package/dist/src/channel/types.gen.d.ts +26 -73
  63. package/dist/src/channel/types.gen.d.ts.map +1 -1
  64. package/dist/src/channel/writer.d.ts +1 -3
  65. package/dist/src/channel/writer.d.ts.map +1 -1
  66. package/dist/src/client.d.ts +55 -27
  67. package/dist/src/client.d.ts.map +1 -1
  68. package/dist/src/connection/client.d.ts +146 -0
  69. package/dist/src/connection/client.d.ts.map +1 -0
  70. package/dist/src/connection/external.d.ts +3 -0
  71. package/dist/src/connection/external.d.ts.map +1 -0
  72. package/dist/src/connection/index.d.ts +1 -1
  73. package/dist/src/connection/index.d.ts.map +1 -1
  74. package/dist/src/connection/status.d.ts +252 -0
  75. package/dist/src/connection/status.d.ts.map +1 -0
  76. package/dist/src/control/client.d.ts +31 -7
  77. package/dist/src/control/client.d.ts.map +1 -1
  78. package/dist/src/control/state.d.ts +47 -16
  79. package/dist/src/control/state.d.ts.map +1 -1
  80. package/dist/src/device/client.d.ts +59 -17
  81. package/dist/src/device/client.d.ts.map +1 -1
  82. package/dist/src/device/types.gen.d.ts +17 -67
  83. package/dist/src/device/types.gen.d.ts.map +1 -1
  84. package/dist/src/errors.d.ts +17 -20
  85. package/dist/src/errors.d.ts.map +1 -1
  86. package/dist/src/ethercat/external.d.ts +2 -0
  87. package/dist/src/ethercat/external.d.ts.map +1 -0
  88. package/dist/src/ethercat/index.d.ts +2 -0
  89. package/dist/src/ethercat/index.d.ts.map +1 -0
  90. package/dist/src/ethercat/types.gen.d.ts +243 -0
  91. package/dist/src/ethercat/types.gen.d.ts.map +1 -0
  92. package/dist/src/framer/adapter.d.ts +8 -5
  93. package/dist/src/framer/adapter.d.ts.map +1 -1
  94. package/dist/src/framer/benchutil.d.ts +19 -0
  95. package/dist/src/framer/benchutil.d.ts.map +1 -0
  96. package/dist/src/framer/cache/cache.d.ts +38 -0
  97. package/dist/src/framer/cache/cache.d.ts.map +1 -0
  98. package/dist/src/framer/cache/dynamic.d.ts +91 -0
  99. package/dist/src/framer/cache/dynamic.d.ts.map +1 -0
  100. package/dist/src/framer/cache/reader.d.ts +57 -0
  101. package/dist/src/framer/cache/reader.d.ts.map +1 -0
  102. package/dist/src/framer/cache/static.d.ts +66 -0
  103. package/dist/src/framer/cache/static.d.ts.map +1 -0
  104. package/dist/src/framer/cache/streamer.d.ts +86 -0
  105. package/dist/src/framer/cache/streamer.d.ts.map +1 -0
  106. package/dist/src/framer/cache/transform.d.ts +18 -0
  107. package/dist/src/framer/cache/transform.d.ts.map +1 -0
  108. package/dist/src/framer/cache/unary.d.ts +39 -0
  109. package/dist/src/framer/cache/unary.d.ts.map +1 -0
  110. package/dist/src/framer/client.d.ts +35 -14
  111. package/dist/src/framer/client.d.ts.map +1 -1
  112. package/dist/src/framer/codec.d.ts.map +1 -1
  113. package/dist/src/framer/deleter.d.ts +3 -2
  114. package/dist/src/framer/deleter.d.ts.map +1 -1
  115. package/dist/src/framer/external.d.ts +6 -0
  116. package/dist/src/framer/external.d.ts.map +1 -1
  117. package/dist/src/framer/feed.d.ts +40 -0
  118. package/dist/src/framer/feed.d.ts.map +1 -0
  119. package/dist/src/framer/frame.d.ts +16 -20
  120. package/dist/src/framer/frame.d.ts.map +1 -1
  121. package/dist/src/framer/hardened.d.ts +70 -0
  122. package/dist/src/framer/hardened.d.ts.map +1 -0
  123. package/dist/src/framer/iterator.d.ts +36 -43
  124. package/dist/src/framer/iterator.d.ts.map +1 -1
  125. package/dist/src/framer/reader.d.ts +3 -2
  126. package/dist/src/framer/reader.d.ts.map +1 -1
  127. package/dist/src/framer/streamer.d.ts +132 -205
  128. package/dist/src/framer/streamer.d.ts.map +1 -1
  129. package/dist/src/framer/writer.d.ts +130 -161
  130. package/dist/src/framer/writer.d.ts.map +1 -1
  131. package/dist/src/group/client.d.ts +66 -9
  132. package/dist/src/group/client.d.ts.map +1 -1
  133. package/dist/src/group/types.gen.d.ts +2 -2
  134. package/dist/src/http/external.d.ts +2 -0
  135. package/dist/src/http/external.d.ts.map +1 -0
  136. package/dist/src/http/index.d.ts +2 -0
  137. package/dist/src/http/index.d.ts.map +1 -0
  138. package/dist/src/http/types.gen.d.ts +451 -0
  139. package/dist/src/http/types.gen.d.ts.map +1 -0
  140. package/dist/src/imex/client.d.ts +88 -0
  141. package/dist/src/imex/client.d.ts.map +1 -0
  142. package/dist/src/imex/index.d.ts +2 -0
  143. package/dist/src/imex/index.d.ts.map +1 -0
  144. package/dist/src/index.d.ts +18 -5
  145. package/dist/src/index.d.ts.map +1 -1
  146. package/dist/src/label/client.d.ts +55 -36
  147. package/dist/src/label/client.d.ts.map +1 -1
  148. package/dist/src/label/external.d.ts +2 -0
  149. package/dist/src/label/external.d.ts.map +1 -1
  150. package/dist/src/label/payload.d.ts +4 -46
  151. package/dist/src/label/payload.d.ts.map +1 -1
  152. package/dist/src/label/store.d.ts +8 -0
  153. package/dist/src/label/store.d.ts.map +1 -0
  154. package/dist/src/label/types.gen.d.ts +45 -0
  155. package/dist/src/label/types.gen.d.ts.map +1 -0
  156. package/dist/src/labjack/external.d.ts +2 -0
  157. package/dist/src/labjack/external.d.ts.map +1 -0
  158. package/dist/src/labjack/index.d.ts +2 -0
  159. package/dist/src/labjack/index.d.ts.map +1 -0
  160. package/dist/src/labjack/types.gen.d.ts +442 -0
  161. package/dist/src/labjack/types.gen.d.ts.map +1 -0
  162. package/dist/src/lineplot/actions.d.ts +914 -0
  163. package/dist/src/lineplot/actions.d.ts.map +1 -0
  164. package/dist/src/lineplot/actions.gen.d.ts +4208 -0
  165. package/dist/src/lineplot/actions.gen.d.ts.map +1 -0
  166. package/dist/src/lineplot/client.d.ts +66 -16
  167. package/dist/src/lineplot/client.d.ts.map +1 -1
  168. package/dist/src/lineplot/external.d.ts +3 -0
  169. package/dist/src/lineplot/external.d.ts.map +1 -1
  170. package/dist/src/lineplot/line.d.ts +16 -0
  171. package/dist/src/lineplot/line.d.ts.map +1 -0
  172. package/dist/src/lineplot/types.gen.d.ts +837 -14
  173. package/dist/src/lineplot/types.gen.d.ts.map +1 -1
  174. package/dist/src/log/actions.d.ts +271 -0
  175. package/dist/src/log/actions.d.ts.map +1 -0
  176. package/dist/src/log/actions.gen.d.ts +1529 -0
  177. package/dist/src/log/actions.gen.d.ts.map +1 -0
  178. package/dist/src/log/client.d.ts +66 -16
  179. package/dist/src/log/client.d.ts.map +1 -1
  180. package/dist/src/log/external.d.ts +2 -0
  181. package/dist/src/log/external.d.ts.map +1 -1
  182. package/dist/src/log/types.gen.d.ts +139 -14
  183. package/dist/src/log/types.gen.d.ts.map +1 -1
  184. package/dist/src/modbus/external.d.ts +2 -0
  185. package/dist/src/modbus/external.d.ts.map +1 -0
  186. package/dist/src/modbus/index.d.ts +2 -0
  187. package/dist/src/modbus/index.d.ts.map +1 -0
  188. package/dist/src/modbus/types.gen.d.ts +280 -0
  189. package/dist/src/modbus/types.gen.d.ts.map +1 -0
  190. package/dist/src/ni/external.d.ts +2 -0
  191. package/dist/src/ni/external.d.ts.map +1 -0
  192. package/dist/src/ni/index.d.ts +2 -0
  193. package/dist/src/ni/index.d.ts.map +1 -0
  194. package/dist/src/ni/types.gen.d.ts +21029 -0
  195. package/dist/src/ni/types.gen.d.ts.map +1 -0
  196. package/dist/src/node/index.d.ts +2 -0
  197. package/dist/src/node/index.d.ts.map +1 -0
  198. package/dist/src/node/types.gen.d.ts +4 -0
  199. package/dist/src/node/types.gen.d.ts.map +1 -0
  200. package/dist/src/ontology/client.d.ts +314 -67
  201. package/dist/src/ontology/client.d.ts.map +1 -1
  202. package/dist/src/ontology/external.d.ts +1 -0
  203. package/dist/src/ontology/external.d.ts.map +1 -1
  204. package/dist/src/ontology/payload.d.ts +60 -18
  205. package/dist/src/ontology/payload.d.ts.map +1 -1
  206. package/dist/src/ontology/store.d.ts +32 -0
  207. package/dist/src/ontology/store.d.ts.map +1 -0
  208. package/dist/src/ontology/types.gen.d.ts +3 -2
  209. package/dist/src/ontology/types.gen.d.ts.map +1 -1
  210. package/dist/src/ontology/writer.d.ts +16 -10
  211. package/dist/src/ontology/writer.d.ts.map +1 -1
  212. package/dist/src/opcua/external.d.ts +2 -0
  213. package/dist/src/opcua/external.d.ts.map +1 -0
  214. package/dist/src/opcua/index.d.ts +2 -0
  215. package/dist/src/opcua/index.d.ts.map +1 -0
  216. package/dist/src/opcua/types.gen.d.ts +82 -0
  217. package/dist/src/opcua/types.gen.d.ts.map +1 -0
  218. package/dist/src/pagerduty/external.d.ts +2 -0
  219. package/dist/src/pagerduty/external.d.ts.map +1 -0
  220. package/dist/src/pagerduty/index.d.ts +2 -0
  221. package/dist/src/pagerduty/index.d.ts.map +1 -0
  222. package/dist/src/pagerduty/types.gen.d.ts +30 -0
  223. package/dist/src/pagerduty/types.gen.d.ts.map +1 -0
  224. package/dist/src/panel/actions.d.ts +273 -0
  225. package/dist/src/panel/actions.d.ts.map +1 -0
  226. package/dist/src/panel/actions.gen.d.ts +1255 -0
  227. package/dist/src/panel/actions.gen.d.ts.map +1 -0
  228. package/dist/src/panel/client.d.ts +148 -0
  229. package/dist/src/panel/client.d.ts.map +1 -0
  230. package/dist/src/panel/external.d.ts +6 -0
  231. package/dist/src/panel/external.d.ts.map +1 -0
  232. package/dist/src/panel/index.d.ts +2 -0
  233. package/dist/src/panel/index.d.ts.map +1 -0
  234. package/dist/src/panel/tree.d.ts +50 -0
  235. package/dist/src/panel/tree.d.ts.map +1 -0
  236. package/dist/src/panel/types.gen.d.ts +370 -0
  237. package/dist/src/panel/types.gen.d.ts.map +1 -0
  238. package/dist/src/project/client.d.ts +89 -0
  239. package/dist/src/project/client.d.ts.map +1 -0
  240. package/dist/src/project/external.d.ts.map +1 -0
  241. package/dist/src/project/index.d.ts +2 -0
  242. package/dist/src/project/index.d.ts.map +1 -0
  243. package/dist/src/project/types.gen.d.ts +27 -0
  244. package/dist/src/project/types.gen.d.ts.map +1 -0
  245. package/dist/src/query/cache.d.ts +132 -0
  246. package/dist/src/query/cache.d.ts.map +1 -0
  247. package/dist/src/query/deleted.d.ts +20 -0
  248. package/dist/src/query/deleted.d.ts.map +1 -0
  249. package/dist/src/query/derived.d.ts +33 -0
  250. package/dist/src/query/derived.d.ts.map +1 -0
  251. package/dist/src/query/external.d.ts +10 -0
  252. package/dist/src/query/external.d.ts.map +1 -0
  253. package/dist/src/query/index.d.ts +2 -0
  254. package/dist/src/query/index.d.ts.map +1 -0
  255. package/dist/src/query/query.d.ts +235 -0
  256. package/dist/src/query/query.d.ts.map +1 -0
  257. package/dist/src/query/retriever.d.ts +135 -0
  258. package/dist/src/query/retriever.d.ts.map +1 -0
  259. package/dist/src/query/streamer.d.ts +67 -0
  260. package/dist/src/query/streamer.d.ts.map +1 -0
  261. package/dist/src/query/table.d.ts +219 -0
  262. package/dist/src/query/table.d.ts.map +1 -0
  263. package/dist/src/query/types.d.ts +35 -0
  264. package/dist/src/query/types.d.ts.map +1 -0
  265. package/dist/src/query/write.d.ts +21 -0
  266. package/dist/src/query/write.d.ts.map +1 -0
  267. package/dist/src/rack/client.d.ts +58 -20
  268. package/dist/src/rack/client.d.ts.map +1 -1
  269. package/dist/src/rack/types.gen.d.ts +11 -12
  270. package/dist/src/rack/types.gen.d.ts.map +1 -1
  271. package/dist/src/range/alias/types.gen.d.ts +2 -3
  272. package/dist/src/range/alias/types.gen.d.ts.map +1 -1
  273. package/dist/src/ranger/client.d.ts +138 -27
  274. package/dist/src/ranger/client.d.ts.map +1 -1
  275. package/dist/src/ranger/kv/client.d.ts +7 -4
  276. package/dist/src/ranger/kv/client.d.ts.map +1 -1
  277. package/dist/src/ranger/payload.d.ts +3 -0
  278. package/dist/src/ranger/payload.d.ts.map +1 -1
  279. package/dist/src/ranger/types.gen.d.ts +45 -101
  280. package/dist/src/ranger/types.gen.d.ts.map +1 -1
  281. package/dist/src/ranger/writer.d.ts +2 -74
  282. package/dist/src/ranger/writer.d.ts.map +1 -1
  283. package/dist/src/schematic/actions.d.ts +90 -33
  284. package/dist/src/schematic/actions.d.ts.map +1 -1
  285. package/dist/src/schematic/actions.gen.d.ts +207 -114
  286. package/dist/src/schematic/actions.gen.d.ts.map +1 -1
  287. package/dist/src/schematic/client.d.ts +70 -68
  288. package/dist/src/schematic/client.d.ts.map +1 -1
  289. package/dist/src/schematic/symbol/client.d.ts +133 -27
  290. package/dist/src/schematic/symbol/client.d.ts.map +1 -1
  291. package/dist/src/schematic/symbol/types.gen.d.ts +258 -153
  292. package/dist/src/schematic/symbol/types.gen.d.ts.map +1 -1
  293. package/dist/src/schematic/types.gen.d.ts +17 -96
  294. package/dist/src/schematic/types.gen.d.ts.map +1 -1
  295. package/dist/src/status/client.d.ts +69 -14
  296. package/dist/src/status/client.d.ts.map +1 -1
  297. package/dist/src/status/external.d.ts +2 -0
  298. package/dist/src/status/external.d.ts.map +1 -1
  299. package/dist/src/status/payload.d.ts +2 -36
  300. package/dist/src/status/payload.d.ts.map +1 -1
  301. package/dist/src/status/status.d.ts +65 -0
  302. package/dist/src/status/status.d.ts.map +1 -0
  303. package/dist/src/status/types.gen.d.ts +58 -0
  304. package/dist/src/status/types.gen.d.ts.map +1 -0
  305. package/dist/src/table/actions.d.ts +72 -13
  306. package/dist/src/table/actions.d.ts.map +1 -1
  307. package/dist/src/table/actions.gen.d.ts +221 -137
  308. package/dist/src/table/actions.gen.d.ts.map +1 -1
  309. package/dist/src/table/client.d.ts +64 -40
  310. package/dist/src/table/client.d.ts.map +1 -1
  311. package/dist/src/table/types.gen.d.ts +20 -55
  312. package/dist/src/table/types.gen.d.ts.map +1 -1
  313. package/dist/src/task/client.d.ts +149 -28
  314. package/dist/src/task/client.d.ts.map +1 -1
  315. package/dist/src/task/types.gen.d.ts +71 -89
  316. package/dist/src/task/types.gen.d.ts.map +1 -1
  317. package/dist/src/testutil/access.d.ts +27 -1
  318. package/dist/src/testutil/access.d.ts.map +1 -1
  319. package/dist/src/testutil/channels.d.ts +2 -0
  320. package/dist/src/testutil/channels.d.ts.map +1 -1
  321. package/dist/src/testutil/client.d.ts +5 -0
  322. package/dist/src/testutil/client.d.ts.map +1 -1
  323. package/dist/src/testutil/connection.d.ts +10 -0
  324. package/dist/src/testutil/connection.d.ts.map +1 -0
  325. package/dist/src/testutil/index.d.ts +9 -0
  326. package/dist/src/testutil/index.d.ts.map +1 -0
  327. package/dist/src/testutil/panels.d.ts +8 -0
  328. package/dist/src/testutil/panels.d.ts.map +1 -0
  329. package/dist/src/testutil/proxy.d.ts +29 -0
  330. package/dist/src/testutil/proxy.d.ts.map +1 -0
  331. package/dist/src/testutil/query.d.ts +7 -0
  332. package/dist/src/testutil/query.d.ts.map +1 -0
  333. package/dist/src/testutil/telem.d.ts +4 -0
  334. package/dist/src/testutil/telem.d.ts.map +1 -1
  335. package/dist/src/transport.d.ts +10 -4
  336. package/dist/src/transport.d.ts.map +1 -1
  337. package/dist/src/user/client.d.ts +29 -28
  338. package/dist/src/user/client.d.ts.map +1 -1
  339. package/dist/src/user/external.d.ts +1 -1
  340. package/dist/src/user/external.d.ts.map +1 -1
  341. package/dist/src/user/types.gen.d.ts +4 -4
  342. package/dist/src/util/retrieve.d.ts +2 -2
  343. package/dist/src/util/retrieve.d.ts.map +1 -1
  344. package/dist/src/util/telem.d.ts.map +1 -1
  345. package/dist/src/view/client.d.ts +30 -14
  346. package/dist/src/view/client.d.ts.map +1 -1
  347. package/dist/src/view/types.gen.d.ts +7 -15
  348. package/dist/src/view/types.gen.d.ts.map +1 -1
  349. package/dist/testutil.js +189 -0
  350. package/dist/testutil.js.map +1 -0
  351. package/package.json +39 -16
  352. package/src/access/client.ts +14 -3
  353. package/src/access/enforce.ts +0 -3
  354. package/src/access/external.ts +1 -0
  355. package/src/access/granted.ts +114 -0
  356. package/src/access/policy/client.ts +135 -43
  357. package/src/access/policy/types.gen.ts +9 -11
  358. package/src/access/role/client.ts +160 -38
  359. package/src/access/role/types.gen.ts +8 -12
  360. package/src/actions/actions.ts +5 -6
  361. package/src/actions/controller.ts +626 -0
  362. package/src/actions/external.ts +11 -0
  363. package/src/arc/actions.gen.ts +313 -0
  364. package/src/arc/actions.ts +192 -0
  365. package/src/arc/client.ts +424 -41
  366. package/src/arc/compiler/types.gen.ts +5 -6
  367. package/src/arc/external.ts +2 -0
  368. package/src/arc/graph/types.gen.ts +24 -22
  369. package/src/arc/ir/index.ts +1 -1
  370. package/{eslint.config.ts → src/arc/ir/ir.ts} +1 -4
  371. package/src/arc/ir/types.gen.ts +42 -41
  372. package/src/arc/text/types.gen.ts +21 -2
  373. package/src/arc/types/types.gen.ts +40 -32
  374. package/src/arc/types.gen.ts +31 -29
  375. package/src/auth/auth.ts +40 -8
  376. package/src/channel/client.ts +529 -132
  377. package/src/channel/external.ts +0 -1
  378. package/src/channel/payload.ts +30 -3
  379. package/src/channel/types.gen.ts +37 -48
  380. package/src/channel/writer.ts +2 -11
  381. package/src/client.ts +215 -91
  382. package/src/connection/client.ts +495 -0
  383. package/src/connection/external.ts +34 -0
  384. package/src/connection/index.ts +1 -1
  385. package/src/connection/status.ts +442 -0
  386. package/src/control/client.ts +84 -12
  387. package/src/control/state.ts +17 -36
  388. package/src/device/client.ts +293 -41
  389. package/src/device/types.gen.ts +15 -26
  390. package/src/errors.ts +45 -22
  391. package/src/{workspace → ethercat}/external.ts +1 -2
  392. package/src/{workspace → ethercat}/index.ts +1 -1
  393. package/src/ethercat/types.gen.ts +151 -0
  394. package/src/framer/adapter.ts +60 -37
  395. package/src/framer/benchutil.ts +67 -0
  396. package/src/framer/cache/cache.ts +115 -0
  397. package/src/framer/cache/dynamic.ts +340 -0
  398. package/src/framer/cache/reader.ts +231 -0
  399. package/src/framer/cache/static.ts +215 -0
  400. package/src/framer/cache/streamer.ts +391 -0
  401. package/src/framer/cache/transform.ts +31 -0
  402. package/src/framer/cache/unary.ts +108 -0
  403. package/src/framer/client.ts +71 -43
  404. package/src/framer/codec.ts +55 -18
  405. package/src/framer/deleter.ts +4 -6
  406. package/src/framer/external.ts +10 -0
  407. package/src/framer/feed.ts +108 -0
  408. package/src/framer/frame.ts +13 -23
  409. package/src/framer/hardened.ts +283 -0
  410. package/src/framer/iterator.ts +31 -42
  411. package/src/framer/reader.ts +11 -11
  412. package/src/framer/streamer.ts +18 -178
  413. package/src/framer/writer.ts +39 -59
  414. package/src/group/client.ts +158 -23
  415. package/src/http/external.ts +10 -0
  416. package/src/{cluster → http}/index.ts +1 -1
  417. package/src/http/types.gen.ts +245 -0
  418. package/src/imex/client.ts +125 -0
  419. package/src/imex/index.ts +10 -0
  420. package/src/index.ts +19 -6
  421. package/src/label/client.ts +193 -54
  422. package/src/label/external.ts +2 -0
  423. package/src/label/payload.ts +4 -9
  424. package/src/label/store.ts +28 -0
  425. package/src/label/types.gen.ts +31 -0
  426. package/src/labjack/external.ts +10 -0
  427. package/src/labjack/index.ts +10 -0
  428. package/src/labjack/types.gen.ts +251 -0
  429. package/src/lineplot/actions.gen.ts +880 -0
  430. package/src/lineplot/actions.ts +535 -0
  431. package/src/lineplot/client.ts +224 -52
  432. package/src/lineplot/external.ts +3 -0
  433. package/src/lineplot/line.ts +80 -0
  434. package/src/lineplot/types.gen.ts +225 -12
  435. package/src/log/actions.gen.ts +474 -0
  436. package/src/log/actions.ts +242 -0
  437. package/src/log/client.ts +223 -52
  438. package/src/log/external.ts +2 -0
  439. package/src/log/types.gen.ts +45 -14
  440. package/src/modbus/external.ts +10 -0
  441. package/src/modbus/index.ts +10 -0
  442. package/src/modbus/types.gen.ts +185 -0
  443. package/src/ni/external.ts +10 -0
  444. package/src/ni/index.ts +10 -0
  445. package/src/ni/types.gen.ts +1632 -0
  446. package/src/node/index.ts +10 -0
  447. package/src/{cluster → node}/types.gen.ts +2 -2
  448. package/src/ontology/client.ts +408 -99
  449. package/src/ontology/external.ts +7 -0
  450. package/src/ontology/payload.ts +48 -7
  451. package/src/ontology/store.ts +83 -0
  452. package/src/ontology/types.gen.ts +2 -1
  453. package/src/ontology/writer.ts +1 -0
  454. package/src/opcua/external.ts +10 -0
  455. package/src/opcua/index.ts +10 -0
  456. package/src/opcua/types.gen.ts +65 -0
  457. package/src/pagerduty/external.ts +10 -0
  458. package/src/pagerduty/index.ts +10 -0
  459. package/src/pagerduty/types.gen.ts +41 -0
  460. package/src/panel/actions.gen.ts +267 -0
  461. package/src/panel/actions.ts +357 -0
  462. package/src/panel/client.ts +327 -0
  463. package/src/panel/external.ts +14 -0
  464. package/src/panel/index.ts +10 -0
  465. package/src/panel/tree.ts +163 -0
  466. package/src/panel/types.gen.ts +164 -0
  467. package/src/project/client.ts +273 -0
  468. package/src/project/external.ts +11 -0
  469. package/src/project/index.ts +10 -0
  470. package/src/project/types.gen.ts +40 -0
  471. package/src/query/cache.ts +326 -0
  472. package/src/query/deleted.ts +38 -0
  473. package/src/query/derived.ts +101 -0
  474. package/src/query/external.ts +51 -0
  475. package/src/query/index.ts +10 -0
  476. package/src/query/query.ts +865 -0
  477. package/src/query/retriever.ts +308 -0
  478. package/src/query/streamer.ts +207 -0
  479. package/src/query/table.ts +625 -0
  480. package/src/query/types.ts +54 -0
  481. package/src/query/write.ts +42 -0
  482. package/src/rack/client.ts +233 -45
  483. package/src/rack/types.gen.ts +15 -16
  484. package/src/range/alias/types.gen.ts +2 -3
  485. package/src/ranger/client.ts +581 -70
  486. package/src/ranger/kv/client.ts +52 -21
  487. package/src/ranger/payload.ts +3 -0
  488. package/src/ranger/types.gen.ts +21 -23
  489. package/src/ranger/writer.ts +4 -8
  490. package/src/schematic/actions.gen.ts +62 -53
  491. package/src/schematic/actions.ts +44 -42
  492. package/src/schematic/client.ts +226 -70
  493. package/src/schematic/symbol/client.ts +277 -48
  494. package/src/schematic/symbol/types.gen.ts +22 -34
  495. package/src/schematic/types.gen.ts +22 -29
  496. package/src/status/client.ts +321 -44
  497. package/src/status/external.ts +2 -0
  498. package/src/status/payload.ts +1 -23
  499. package/src/status/status.ts +241 -0
  500. package/src/status/types.gen.ts +108 -0
  501. package/src/table/actions.gen.ts +96 -63
  502. package/src/table/actions.ts +44 -19
  503. package/src/table/client.ts +220 -56
  504. package/src/table/types.gen.ts +24 -31
  505. package/src/task/client.ts +580 -101
  506. package/src/task/types.gen.ts +68 -75
  507. package/src/testutil/access.ts +102 -6
  508. package/src/testutil/channels.ts +29 -0
  509. package/src/testutil/client.ts +27 -2
  510. package/src/testutil/connection.ts +47 -0
  511. package/src/testutil/index.ts +17 -0
  512. package/src/testutil/panels.ts +26 -0
  513. package/src/testutil/proxy.ts +106 -0
  514. package/src/testutil/query.ts +28 -0
  515. package/src/testutil/telem.ts +17 -1
  516. package/src/transport.ts +18 -7
  517. package/src/user/client.ts +165 -64
  518. package/src/user/external.ts +1 -1
  519. package/src/user/types.gen.ts +5 -5
  520. package/src/util/retrieve.ts +4 -4
  521. package/src/util/telem.ts +0 -1
  522. package/src/view/client.ts +120 -37
  523. package/src/view/types.gen.ts +8 -11
  524. package/.turbo/turbo-build.log +0 -20
  525. package/.vscode/settings.json +0 -3
  526. package/CONTRIBUTING.md +0 -47
  527. package/dist/client.cjs +0 -118
  528. package/dist/eslint.config.d.ts +0 -4
  529. package/dist/eslint.config.d.ts.map +0 -1
  530. package/dist/src/access/enforce.spec.d.ts +0 -2
  531. package/dist/src/access/enforce.spec.d.ts.map +0 -1
  532. package/dist/src/access/policy/access.spec.d.ts +0 -2
  533. package/dist/src/access/policy/access.spec.d.ts.map +0 -1
  534. package/dist/src/access/role/role.spec.d.ts +0 -2
  535. package/dist/src/access/role/role.spec.d.ts.map +0 -1
  536. package/dist/src/actions/actions.spec.d.ts +0 -2
  537. package/dist/src/actions/actions.spec.d.ts.map +0 -1
  538. package/dist/src/arc/access.spec.d.ts +0 -2
  539. package/dist/src/arc/access.spec.d.ts.map +0 -1
  540. package/dist/src/arc/arc.spec.d.ts +0 -2
  541. package/dist/src/arc/arc.spec.d.ts.map +0 -1
  542. package/dist/src/arc/lsp.spec.d.ts +0 -2
  543. package/dist/src/arc/lsp.spec.d.ts.map +0 -1
  544. package/dist/src/auth/auth.spec.d.ts +0 -2
  545. package/dist/src/auth/auth.spec.d.ts.map +0 -1
  546. package/dist/src/channel/access.spec.d.ts +0 -2
  547. package/dist/src/channel/access.spec.d.ts.map +0 -1
  548. package/dist/src/channel/batchRetriever.spec.d.ts +0 -2
  549. package/dist/src/channel/batchRetriever.spec.d.ts.map +0 -1
  550. package/dist/src/channel/channel.spec.d.ts +0 -2
  551. package/dist/src/channel/channel.spec.d.ts.map +0 -1
  552. package/dist/src/channel/payload.spec.d.ts +0 -2
  553. package/dist/src/channel/payload.spec.d.ts.map +0 -1
  554. package/dist/src/channel/retriever.d.ts +0 -64
  555. package/dist/src/channel/retriever.d.ts.map +0 -1
  556. package/dist/src/cluster/index.d.ts +0 -2
  557. package/dist/src/cluster/index.d.ts.map +0 -1
  558. package/dist/src/cluster/types.gen.d.ts +0 -4
  559. package/dist/src/cluster/types.gen.d.ts.map +0 -1
  560. package/dist/src/connection/checker.d.ts +0 -86
  561. package/dist/src/connection/checker.d.ts.map +0 -1
  562. package/dist/src/connection/connection.spec.d.ts +0 -2
  563. package/dist/src/connection/connection.spec.d.ts.map +0 -1
  564. package/dist/src/connection.spec.d.ts +0 -2
  565. package/dist/src/connection.spec.d.ts.map +0 -1
  566. package/dist/src/control/state.spec.d.ts +0 -2
  567. package/dist/src/control/state.spec.d.ts.map +0 -1
  568. package/dist/src/device/access.spec.d.ts +0 -2
  569. package/dist/src/device/access.spec.d.ts.map +0 -1
  570. package/dist/src/device/device.spec.d.ts +0 -2
  571. package/dist/src/device/device.spec.d.ts.map +0 -1
  572. package/dist/src/device/payload.spec.d.ts +0 -2
  573. package/dist/src/device/payload.spec.d.ts.map +0 -1
  574. package/dist/src/errors.spec.d.ts +0 -2
  575. package/dist/src/errors.spec.d.ts.map +0 -1
  576. package/dist/src/framer/adapter.spec.d.ts +0 -2
  577. package/dist/src/framer/adapter.spec.d.ts.map +0 -1
  578. package/dist/src/framer/client.spec.d.ts +0 -2
  579. package/dist/src/framer/client.spec.d.ts.map +0 -1
  580. package/dist/src/framer/codec.spec.d.ts +0 -2
  581. package/dist/src/framer/codec.spec.d.ts.map +0 -1
  582. package/dist/src/framer/deleter.spec.d.ts +0 -2
  583. package/dist/src/framer/deleter.spec.d.ts.map +0 -1
  584. package/dist/src/framer/frame.spec.d.ts +0 -2
  585. package/dist/src/framer/frame.spec.d.ts.map +0 -1
  586. package/dist/src/framer/iterator.spec.d.ts +0 -2
  587. package/dist/src/framer/iterator.spec.d.ts.map +0 -1
  588. package/dist/src/framer/reader.spec.d.ts +0 -2
  589. package/dist/src/framer/reader.spec.d.ts.map +0 -1
  590. package/dist/src/framer/streamer.spec.d.ts +0 -2
  591. package/dist/src/framer/streamer.spec.d.ts.map +0 -1
  592. package/dist/src/framer/writer.spec.d.ts +0 -2
  593. package/dist/src/framer/writer.spec.d.ts.map +0 -1
  594. package/dist/src/group/access.spec.d.ts +0 -2
  595. package/dist/src/group/access.spec.d.ts.map +0 -1
  596. package/dist/src/group/group.spec.d.ts +0 -2
  597. package/dist/src/group/group.spec.d.ts.map +0 -1
  598. package/dist/src/label/access.spec.d.ts +0 -2
  599. package/dist/src/label/access.spec.d.ts.map +0 -1
  600. package/dist/src/label/label.spec.d.ts +0 -2
  601. package/dist/src/label/label.spec.d.ts.map +0 -1
  602. package/dist/src/lineplot/access.spec.d.ts +0 -2
  603. package/dist/src/lineplot/access.spec.d.ts.map +0 -1
  604. package/dist/src/lineplot/lineplot.spec.d.ts +0 -2
  605. package/dist/src/lineplot/lineplot.spec.d.ts.map +0 -1
  606. package/dist/src/log/access.spec.d.ts +0 -2
  607. package/dist/src/log/access.spec.d.ts.map +0 -1
  608. package/dist/src/log/log.spec.d.ts +0 -2
  609. package/dist/src/log/log.spec.d.ts.map +0 -1
  610. package/dist/src/ontology/ontology.spec.d.ts +0 -2
  611. package/dist/src/ontology/ontology.spec.d.ts.map +0 -1
  612. package/dist/src/rack/access.spec.d.ts +0 -2
  613. package/dist/src/rack/access.spec.d.ts.map +0 -1
  614. package/dist/src/rack/rack.spec.d.ts +0 -2
  615. package/dist/src/rack/rack.spec.d.ts.map +0 -1
  616. package/dist/src/ranger/access.spec.d.ts +0 -2
  617. package/dist/src/ranger/access.spec.d.ts.map +0 -1
  618. package/dist/src/ranger/alias/payload.spec.d.ts +0 -2
  619. package/dist/src/ranger/alias/payload.spec.d.ts.map +0 -1
  620. package/dist/src/ranger/ranger.spec.d.ts +0 -2
  621. package/dist/src/ranger/ranger.spec.d.ts.map +0 -1
  622. package/dist/src/schematic/access.spec.d.ts +0 -2
  623. package/dist/src/schematic/access.spec.d.ts.map +0 -1
  624. package/dist/src/schematic/actions.spec.d.ts +0 -2
  625. package/dist/src/schematic/actions.spec.d.ts.map +0 -1
  626. package/dist/src/schematic/schematic.spec.d.ts +0 -2
  627. package/dist/src/schematic/schematic.spec.d.ts.map +0 -1
  628. package/dist/src/schematic/symbol/access.spec.d.ts +0 -2
  629. package/dist/src/schematic/symbol/access.spec.d.ts.map +0 -1
  630. package/dist/src/schematic/symbol/client.spec.d.ts +0 -2
  631. package/dist/src/schematic/symbol/client.spec.d.ts.map +0 -1
  632. package/dist/src/status/access.spec.d.ts +0 -2
  633. package/dist/src/status/access.spec.d.ts.map +0 -1
  634. package/dist/src/status/status.spec.d.ts +0 -2
  635. package/dist/src/status/status.spec.d.ts.map +0 -1
  636. package/dist/src/table/access.spec.d.ts +0 -2
  637. package/dist/src/table/access.spec.d.ts.map +0 -1
  638. package/dist/src/table/table.spec.d.ts +0 -2
  639. package/dist/src/table/table.spec.d.ts.map +0 -1
  640. package/dist/src/task/access.spec.d.ts +0 -2
  641. package/dist/src/task/access.spec.d.ts.map +0 -1
  642. package/dist/src/task/payload.spec.d.ts +0 -2
  643. package/dist/src/task/payload.spec.d.ts.map +0 -1
  644. package/dist/src/task/task.spec.d.ts +0 -2
  645. package/dist/src/task/task.spec.d.ts.map +0 -1
  646. package/dist/src/user/access.spec.d.ts +0 -2
  647. package/dist/src/user/access.spec.d.ts.map +0 -1
  648. package/dist/src/user/user.spec.d.ts +0 -2
  649. package/dist/src/user/user.spec.d.ts.map +0 -1
  650. package/dist/src/util/retrieve.spec.d.ts +0 -2
  651. package/dist/src/util/retrieve.spec.d.ts.map +0 -1
  652. package/dist/src/view/view.spec.d.ts +0 -2
  653. package/dist/src/view/view.spec.d.ts.map +0 -1
  654. package/dist/src/workspace/access.spec.d.ts +0 -2
  655. package/dist/src/workspace/access.spec.d.ts.map +0 -1
  656. package/dist/src/workspace/client.d.ts +0 -36
  657. package/dist/src/workspace/client.d.ts.map +0 -1
  658. package/dist/src/workspace/external.d.ts.map +0 -1
  659. package/dist/src/workspace/index.d.ts +0 -2
  660. package/dist/src/workspace/index.d.ts.map +0 -1
  661. package/dist/src/workspace/types.gen.d.ts +0 -34
  662. package/dist/src/workspace/types.gen.d.ts.map +0 -1
  663. package/dist/src/workspace/workspace.spec.d.ts +0 -2
  664. package/dist/src/workspace/workspace.spec.d.ts.map +0 -1
  665. package/examples/node/basicReadWrite.js +0 -86
  666. package/examples/node/createChannels.js +0 -50
  667. package/examples/node/createRange.js +0 -67
  668. package/examples/node/package-lock.json +0 -133
  669. package/examples/node/package.json +0 -17
  670. package/examples/node/readLatest.js +0 -76
  671. package/examples/node/seriesAndFrames.js +0 -173
  672. package/examples/node/streamRead.js +0 -50
  673. package/examples/node/streamWrite.js +0 -87
  674. package/src/access/enforce.spec.ts +0 -188
  675. package/src/access/policy/access.spec.ts +0 -147
  676. package/src/access/role/role.spec.ts +0 -95
  677. package/src/actions/actions.spec.ts +0 -229
  678. package/src/arc/access.spec.ts +0 -149
  679. package/src/arc/arc.spec.ts +0 -44
  680. package/src/arc/lsp.spec.ts +0 -717
  681. package/src/auth/auth.spec.ts +0 -101
  682. package/src/channel/access.spec.ts +0 -116
  683. package/src/channel/batchRetriever.spec.ts +0 -115
  684. package/src/channel/channel.spec.ts +0 -352
  685. package/src/channel/payload.spec.ts +0 -117
  686. package/src/channel/retriever.ts +0 -252
  687. package/src/connection/checker.ts +0 -203
  688. package/src/connection/connection.spec.ts +0 -152
  689. package/src/connection.spec.ts +0 -145
  690. package/src/control/state.spec.ts +0 -22
  691. package/src/device/access.spec.ts +0 -159
  692. package/src/device/device.spec.ts +0 -461
  693. package/src/device/payload.spec.ts +0 -142
  694. package/src/errors.spec.ts +0 -71
  695. package/src/framer/adapter.spec.ts +0 -620
  696. package/src/framer/client.spec.ts +0 -180
  697. package/src/framer/codec.spec.ts +0 -383
  698. package/src/framer/deleter.spec.ts +0 -103
  699. package/src/framer/frame.spec.ts +0 -973
  700. package/src/framer/iterator.spec.ts +0 -169
  701. package/src/framer/reader.spec.ts +0 -865
  702. package/src/framer/streamer.spec.ts +0 -871
  703. package/src/framer/writer.spec.ts +0 -486
  704. package/src/group/access.spec.ts +0 -77
  705. package/src/group/group.spec.ts +0 -65
  706. package/src/label/access.spec.ts +0 -109
  707. package/src/label/label.spec.ts +0 -83
  708. package/src/lineplot/access.spec.ts +0 -134
  709. package/src/lineplot/lineplot.spec.ts +0 -120
  710. package/src/log/access.spec.ts +0 -132
  711. package/src/log/log.spec.ts +0 -106
  712. package/src/ontology/ontology.spec.ts +0 -521
  713. package/src/rack/access.spec.ts +0 -102
  714. package/src/rack/rack.spec.ts +0 -171
  715. package/src/ranger/access.spec.ts +0 -115
  716. package/src/ranger/alias/payload.spec.ts +0 -52
  717. package/src/ranger/ranger.spec.ts +0 -343
  718. package/src/schematic/access.spec.ts +0 -134
  719. package/src/schematic/actions.spec.ts +0 -699
  720. package/src/schematic/schematic.spec.ts +0 -340
  721. package/src/schematic/symbol/access.spec.ts +0 -172
  722. package/src/schematic/symbol/client.spec.ts +0 -160
  723. package/src/status/access.spec.ts +0 -129
  724. package/src/status/status.spec.ts +0 -448
  725. package/src/table/access.spec.ts +0 -128
  726. package/src/table/table.spec.ts +0 -651
  727. package/src/task/access.spec.ts +0 -131
  728. package/src/task/payload.spec.ts +0 -113
  729. package/src/task/task.spec.ts +0 -657
  730. package/src/user/access.spec.ts +0 -107
  731. package/src/user/user.spec.ts +0 -290
  732. package/src/util/retrieve.spec.ts +0 -49
  733. package/src/view/view.spec.ts +0 -165
  734. package/src/workspace/access.spec.ts +0 -108
  735. package/src/workspace/client.ts +0 -112
  736. package/src/workspace/types.gen.ts +0 -46
  737. package/src/workspace/workspace.spec.ts +0 -111
  738. package/tsconfig.json +0 -5
  739. package/tsconfig.vite.json +0 -4
  740. package/vite.config.ts +0 -29
  741. /package/dist/src/{workspace → project}/external.d.ts +0 -0
package/src/arc/client.ts CHANGED
@@ -12,10 +12,32 @@ import {
12
12
  type StreamClient,
13
13
  type UnaryClient,
14
14
  } from "@synnaxlabs/freighter";
15
- import { array } from "@synnaxlabs/x";
15
+ import {
16
+ array,
17
+ deep,
18
+ type destructor,
19
+ errors,
20
+ id,
21
+ primitive,
22
+ zod,
23
+ } from "@synnaxlabs/x";
16
24
  import { z } from "zod/v4";
17
25
 
18
- import { type Arc, arcZ, type Key, keyZ, type New, newZ } from "@/arc/types.gen";
26
+ import { actions } from "@/actions";
27
+ import { createOf, isUndoable, kindOf, reduceAll } from "@/arc/actions";
28
+ import {
29
+ type Action,
30
+ dispatchReqZ,
31
+ rename as renameAction,
32
+ scopedActionZ,
33
+ } from "@/arc/actions.gen";
34
+ import { type Arc, arcZ, type Key, keyZ, type New, ontologyID } from "@/arc/types.gen";
35
+ import { NotFoundError } from "@/errors";
36
+ import { ontology } from "@/ontology";
37
+ import { query } from "@/query";
38
+ import { rack } from "@/rack";
39
+ import { type status } from "@/status";
40
+ import { task } from "@/task";
19
41
  import { checkForMultipleOrNoResults } from "@/util/retrieve";
20
42
 
21
43
  export const SET_CHANNEL_NAME = "sy_arc_set";
@@ -28,11 +50,13 @@ const retrieveReqZ = z.object({
28
50
  limit: z.int().optional(),
29
51
  offset: z.int().optional(),
30
52
  includeStatus: z.boolean().optional(),
53
+ ignoreNotFoundError: z.boolean().optional(),
31
54
  });
32
- const createReqZ = z.object({ arcs: newZ.array() });
55
+ const retrieveMultiParamsZ = retrieveReqZ.or(query.keyListZ(keyZ));
56
+ const createReqZ = z.object({ arcs: arcZ.array() });
33
57
  const deleteReqZ = z.object({ keys: keyZ.array() });
34
58
 
35
- const retrieveResZ = z.object({ arcs: array.nullishToEmpty(arcZ) });
59
+ const retrieveResZ = z.object({ arcs: arcZ.array().default(() => []) });
36
60
  const createResZ = z.object({ arcs: arcZ.array() });
37
61
  const emptyResZ = z.object({});
38
62
 
@@ -55,60 +79,419 @@ const nameRetrieveRequestZ = z
55
79
  })
56
80
  .transform(({ name, includeStatus }) => ({ names: [name], includeStatus }));
57
81
 
58
- export const singleRetrieveArgsZ = z.union([keyRetrieveRequestZ, nameRetrieveRequestZ]);
82
+ export const singleRetrieveParamsZ = z.union([
83
+ keyRetrieveRequestZ,
84
+ nameRetrieveRequestZ,
85
+ ]);
86
+
87
+ export type SingleRetrieveParams = z.input<typeof singleRetrieveParamsZ>;
88
+
89
+ const retrieveParamsZ = z.union([singleRetrieveParamsZ, retrieveReqZ]);
59
90
 
60
- export type SingleRetrieveArgs = z.input<typeof singleRetrieveArgsZ>;
91
+ export type RetrieveParams = z.input<typeof retrieveParamsZ>;
61
92
 
62
- const retrieveArgsZ = z.union([singleRetrieveArgsZ, retrieveReqZ]);
93
+ const singleQueryZ = z.union([
94
+ z.strictObject({ key: keyZ, includeStatus: z.boolean().optional() }),
95
+ z.strictObject({ name: z.string(), includeStatus: z.boolean().optional() }),
96
+ keyZ.transform((key) => ({ key })),
97
+ ]);
63
98
 
64
- export type RetrieveArgs = z.input<typeof retrieveArgsZ>;
99
+ const setRackReqZ = z.object({ key: keyZ, rack: rack.keyZ });
100
+ const setRackResZ = z.object({ task: task.payloadZ().nullish() });
65
101
 
66
- export class Client {
67
- private readonly client: UnaryClient;
68
- private readonly streamClient: StreamClient;
102
+ /**
103
+ * Client-side matching for a request: key and name sets. Server-computed
104
+ * shapes (search, pagination) never reach this filter; they refetch instead.
105
+ */
106
+ const requestFilter = (req: RetrieveRequest): ((a: Arc) => boolean) => {
107
+ const keySet = primitive.isNonZero(req.keys) ? new Set(req.keys) : undefined;
108
+ const nameSet = primitive.isNonZero(req.names) ? new Set(req.names) : undefined;
109
+ return (a) => {
110
+ if (keySet != null && !keySet.has(a.key)) return false;
111
+ if (nameSet != null && !nameSet.has(a.name)) return false;
112
+ return true;
113
+ };
114
+ };
69
115
 
70
- constructor(client: UnaryClient, streamClient: StreamClient) {
71
- this.client = client;
72
- this.streamClient = streamClient;
116
+ const isTaskChild = (rel: ontology.Relationship, arcKey: Key): boolean =>
117
+ ontology.matchRelationship(rel, {
118
+ from: ontologyID(arcKey),
119
+ type: ontology.PARENT_OF_RELATIONSHIP_TYPE,
120
+ to: { type: "task" },
121
+ });
122
+
123
+ const taskStatusZ = z.object({ details: z.object({ task: task.keyZ }) });
124
+
125
+ // Task statuses may arrive under any status key; the referenced task lives in
126
+ // the details, with the "task:<key>" status key as a fallback.
127
+ const affectedTaskKeys = (
128
+ event: query.TableEvent<status.Key, status.Status>,
129
+ ): task.Key[] | null => {
130
+ const keys: task.Key[] = [];
131
+ if (event.variant === "set") {
132
+ const parsed = taskStatusZ.safeParse(event.value);
133
+ if (parsed.success) keys.push(parsed.data.details.task);
73
134
  }
135
+ const [type, key] = event.key.split(":");
136
+ if (type === "task" && primitive.isNonZero(key) && !keys.includes(key))
137
+ keys.push(key);
138
+ return keys.length === 0 ? null : keys;
139
+ };
140
+
141
+ export interface ClientConfig {
142
+ unary: UnaryClient;
143
+ stream: StreamClient;
144
+ ontology: ontology.Client;
145
+ tasks: task.Client;
146
+ cache: query.Cache;
147
+ statusStore: query.Table<status.Key, status.Status>;
148
+ }
74
149
 
75
- async create(arc: New): Promise<Arc>;
76
- async create(arcs: New[]): Promise<Arc[]>;
77
- async create(arcs: New | New[]): Promise<Arc | Arc[]> {
150
+ export class Client extends query.Retriever<
151
+ typeof retrieveMultiParamsZ,
152
+ Key,
153
+ Arc,
154
+ Arc,
155
+ SingleRetrieveParams,
156
+ SingleRetrieveParams
157
+ > {
158
+ private readonly cfg: ClientConfig;
159
+ private readonly dispatcher: actions.Controller<Key, Arc, Action>;
160
+ private readonly store: query.Table<Key, Arc>;
161
+ private readonly taskAnswers: query.Retrieves<Key, task.Task | null>;
162
+
163
+ constructor(cfg: ClientConfig) {
164
+ const { cache } = cfg;
165
+ // Fetched copies never clobber a doc holding locally replayed edits: the
166
+ // table hydrates if-absent, and hydrate() decides when a fresh network
167
+ // doc replaces the cached one.
168
+ const store = cache.createTable<Key, Arc>({
169
+ name: "Arcs",
170
+ hydrate: "if-absent",
171
+ fetch: async (keys) =>
172
+ await this.execRetrieve({ keys, ignoreNotFoundError: true }),
173
+ listen: [query.createDeleteListener(DELETE_CHANNEL_NAME, keyZ)],
174
+ });
175
+ const dispatcher = new actions.Controller<Key, Arc, Action>({
176
+ store,
177
+ onError: cache.onError,
178
+ reduce: reduceAll,
179
+ isUndoable,
180
+ kindOf,
181
+ createOf,
182
+ });
183
+ cache.listen(dispatcher.listener(SET_CHANNEL_NAME, scopedActionZ));
184
+ const single = cache.queries<SingleRetrieveParams, Arc, Key, Arc>({
185
+ name: "Arc",
186
+ table: store,
187
+ fetch: async (q) => [(await this.fetchSingle(q)).key],
188
+ compose: (records) => records[0],
189
+ keyOf: (q) => ("key" in q ? q.key : null),
190
+ matches: (a, q) => ("key" in q ? a.key === q.key : a.name === q.name),
191
+ single: true,
192
+ });
193
+ super(cache, {
194
+ name: "Arc",
195
+ table: store,
196
+ request: {
197
+ schema: retrieveMultiParamsZ,
198
+ fetch: async (req) =>
199
+ (await this.execRetrieve(req)).map((a) => this.hydrate(a)),
200
+ matches: (a, req) => requestFilter(req)(a),
201
+ },
202
+ single: { schema: singleQueryZ, space: single },
203
+ });
204
+ this.cfg = cfg;
205
+ this.store = store;
206
+ this.dispatcher = dispatcher;
207
+ const composedTasks = cache.derive<task.Key, Omit<task.Task, "status">, task.Task>({
208
+ name: "arc.task.composed",
209
+ source: this.cfg.tasks.store,
210
+ compose: (record) => this.composeTask(record),
211
+ equal: (a, b) => deep.equal(a.payload, b.payload),
212
+ watch: [
213
+ query.deriveWatch(this.cfg.statusStore, (event) => affectedTaskKeys(event)),
214
+ ],
215
+ });
216
+ this.taskAnswers = cache.queries<Key, task.Task | null, task.Key, task.Task>({
217
+ name: "Arc task",
218
+ table: composedTasks,
219
+ fetch: async (q) => {
220
+ const tsk = await this.fetchTask(q);
221
+ return tsk == null ? [] : [tsk.key];
222
+ },
223
+ compose: (records) => records[0] ?? null,
224
+ matches: (t, q) =>
225
+ this.cfg.ontology.cache.relationships.has(
226
+ ontology.relationshipToString({
227
+ from: ontologyID(q),
228
+ type: ontology.PARENT_OF_RELATIONSHIP_TYPE,
229
+ to: task.ontologyID(t.key),
230
+ }),
231
+ ),
232
+ watch: [
233
+ query.watch(this.cfg.ontology.cache.relationships, (event, q: Key) => {
234
+ const rel =
235
+ event.variant === "set"
236
+ ? event.value
237
+ : ontology.relationshipZ.parse(event.key);
238
+ if (!isTaskChild(rel, q)) return null;
239
+ return [rel.to.key];
240
+ }),
241
+ ],
242
+ });
243
+ }
244
+
245
+ async create(arc: New, opts?: query.WriteOptions<Arc[]>): Promise<Arc>;
246
+ async create(arcs: New[], opts?: query.WriteOptions<Arc[]>): Promise<Arc[]>;
247
+ async create(
248
+ arcs: New | New[],
249
+ opts: query.WriteOptions<Arc[]> = {},
250
+ ): Promise<Arc | Arc[]> {
78
251
  const isMany = Array.isArray(arcs);
79
- const res = await this.client.send(
80
- "/arc/create",
81
- { arcs: array.toArray(arcs) },
82
- createReqZ,
83
- createResZ,
84
- );
252
+ const optimistic = array
253
+ .toArray(arcs)
254
+ .map((a) => zod.parse(arcZ, a, { label: "Arc" }));
255
+ const res = await query.optimistic({
256
+ rollbacks: [this.store.set(optimistic)],
257
+ onOptimistic: () => opts.onOptimistic?.(optimistic),
258
+ commit: async () =>
259
+ await this.cfg.unary.send(
260
+ "/arc/create",
261
+ { arcs: optimistic },
262
+ createReqZ,
263
+ createResZ,
264
+ ),
265
+ });
266
+ this.store.set(res.arcs);
85
267
  return isMany ? res.arcs : res.arcs[0];
86
268
  }
87
269
 
88
- async retrieve(args: SingleRetrieveArgs): Promise<Arc>;
89
- async retrieve(args: RetrieveArgs): Promise<Arc[]>;
90
- async retrieve(args: RetrieveArgs): Promise<Arc | Arc[]> {
91
- const isSingle = "key" in args || "name" in args;
92
- const res = await this.client.send(
93
- "/arc/retrieve",
94
- args,
95
- retrieveArgsZ,
96
- retrieveResZ,
270
+ /**
271
+ * Binds the arc to the given rack, creating its task there or moving the
272
+ * existing one. A zero rack unbinds the arc, deleting its task. Returns the
273
+ * task, or null after an unbind.
274
+ * @throws {ValidationError} when unbinding while the task is running.
275
+ */
276
+ async setRack(key: Key, rackKey: rack.Key): Promise<task.Task | null> {
277
+ if (rackKey === 0) {
278
+ await this.clearRack(key);
279
+ return null;
280
+ }
281
+ const res = await this.cfg.unary.send(
282
+ "/arc/set-rack",
283
+ { key, rack: rackKey },
284
+ setRackReqZ,
285
+ setRackResZ,
97
286
  );
98
- checkForMultipleOrNoResults("Arc", args, res.arcs, isSingle);
99
- return isSingle ? res.arcs[0] : res.arcs;
287
+ if (res.task == null) return null;
288
+ const tsk = this.cfg.tasks.sugar(res.task);
289
+ this.cfg.tasks.store.set(tsk);
290
+ return tsk;
100
291
  }
101
292
 
102
- async delete(keys: Key | Key[]): Promise<void> {
103
- await this.client.send(
104
- "/arc/delete",
105
- { keys: array.toArray(keys) },
106
- deleteReqZ,
107
- emptyResZ,
293
+ // clearRack drops the deleted task from the cache so it is not served until
294
+ // the delete signal lands.
295
+ private async clearRack(key: Key): Promise<void> {
296
+ const tsk = await this.retrieveTask(key);
297
+ await this.cfg.unary.send(
298
+ "/arc/set-rack",
299
+ { key, rack: 0 },
300
+ setRackReqZ,
301
+ setRackResZ,
108
302
  );
303
+ if (tsk != null) this.cfg.tasks.dropCached(tsk.key);
304
+ }
305
+
306
+ async rename(key: Key, name: string, opts: query.WriteOptions = {}): Promise<void> {
307
+ const tsk = await this.retrieveTask(key);
308
+ if (tsk != null) await this.cfg.tasks.rename(tsk.key, name);
309
+ const rename = () => query.partialUpdate(this.store, key, { name });
310
+ await query.optimistic({
311
+ rollbacks: [rename()],
312
+ onOptimistic: opts.onOptimistic,
313
+ commit: async () =>
314
+ await this.sendDispatch(key, id.create(), [renameAction({ name })]),
315
+ });
316
+ rename();
317
+ }
318
+
319
+ private async retrieveTask(key: Key): Promise<task.Task | null> {
320
+ return await this.taskAnswers.retrieve(key);
321
+ }
322
+
323
+ /**
324
+ * Cached queries for the task deployed for an arc, keyed by the arc's key.
325
+ * Resolves null when the arc has no task.
326
+ */
327
+ get task(): query.Retrieves<Key, task.Task | null> {
328
+ return this.taskAnswers;
329
+ }
330
+
331
+ async delete(keys: Key | Key[], opts: query.WriteOptions = {}): Promise<void> {
332
+ const keysArr = array.toArray(keys);
333
+ const drop = () => this.store.delete(keysArr);
334
+ await query.optimistic({
335
+ rollbacks: [drop()],
336
+ onOptimistic: opts.onOptimistic,
337
+ commit: async () =>
338
+ await this.cfg.unary.send(
339
+ "/arc/delete",
340
+ { keys: keysArr },
341
+ deleteReqZ,
342
+ emptyResZ,
343
+ ),
344
+ });
345
+ drop();
346
+ }
347
+
348
+ /** Subscribes to every arc delete delivered to the cache. */
349
+ onDelete(handler: (key: Key) => void): destructor.Destructor {
350
+ return this.store.subscribe((event) => {
351
+ if (event.variant === "delete") handler(event.key);
352
+ });
109
353
  }
110
354
 
111
355
  async openLSP(): Promise<Stream<typeof lspMessageZ, typeof lspMessageZ>> {
112
- return await this.streamClient.stream("/arc/lsp", lspMessageZ, lspMessageZ);
356
+ return await this.cfg.stream.stream("/arc/lsp", lspMessageZ, lspMessageZ);
357
+ }
358
+
359
+ /**
360
+ * Applies actions to the cached arc and sends them to the server, recording an
361
+ * undoable entry. Returns false without side effects when the arc isn't cached. Rolls
362
+ * back the local apply and rethrows on send failure.
363
+ */
364
+ async dispatch(
365
+ key: Key,
366
+ actions: Action | Action[],
367
+ opts: actions.Options<Arc, Action> = {},
368
+ ): Promise<boolean> {
369
+ return await this.dispatcher.dispatch(
370
+ key,
371
+ array.toArray(actions),
372
+ this.dispatchSender(key),
373
+ opts,
374
+ );
375
+ }
376
+
377
+ /**
378
+ * Reverts the arc's most recent undoable entry. Returns false when
379
+ * nothing is undoable.
380
+ */
381
+ async undo(key: Key): Promise<boolean> {
382
+ return await this.dispatcher.undo(key, this.dispatchSender(key));
383
+ }
384
+
385
+ /**
386
+ * Re-applies the arc's most recently undone entry. Returns false when
387
+ * nothing is redoable.
388
+ */
389
+ async redo(key: Key): Promise<boolean> {
390
+ return await this.dispatcher.redo(key, this.dispatchSender(key));
391
+ }
392
+
393
+ /** Whether the arc has a live undo entry. */
394
+ hasUndo(key: Key): boolean {
395
+ return this.dispatcher.hasUndo(key);
396
+ }
397
+
398
+ /** Whether the arc has a live redo entry. */
399
+ hasRedo(key: Key): boolean {
400
+ return this.dispatcher.hasRedo(key);
401
+ }
402
+
403
+ /**
404
+ * Subscribes to changes in the arc's undo/redo stacks. Returns a
405
+ * destructor that unsubscribes.
406
+ */
407
+ onUndoStateChange(callback: () => void, key?: Key): destructor.Destructor {
408
+ return this.dispatcher.onUndoStateChange(callback, key);
409
+ }
410
+
411
+ /** Stages actions committed atomically as one undoable entry. */
412
+ beginTransaction(key: Key, kind?: string): actions.Transaction<Action> {
413
+ return this.dispatcher.transaction(key, this.dispatchSender(key), kind);
414
+ }
415
+
416
+ private dispatchSender(key: Key): actions.SendDispatch<Action> {
417
+ return async (actions, dispatchKey) =>
418
+ await this.sendDispatch(key, dispatchKey, actions);
419
+ }
420
+
421
+ private async sendDispatch(
422
+ key: Key,
423
+ dispatchKey: string,
424
+ actions: Action[],
425
+ ): Promise<void> {
426
+ await this.cfg.unary.send(
427
+ "/arc/dispatch",
428
+ { key, dispatchKey, actions },
429
+ dispatchReqZ,
430
+ emptyResZ,
431
+ );
432
+ }
433
+
434
+ private async execRetrieve(params: RetrieveParams): Promise<Arc[]> {
435
+ const res = await this.cfg.unary.send(
436
+ "/arc/retrieve",
437
+ params,
438
+ retrieveParamsZ,
439
+ retrieveResZ,
440
+ );
441
+ return res.arcs;
442
+ }
443
+
444
+ // Dispatch mutates documents server-side (including materialized text), so
445
+ // a cached copy is only as fresh as the streamer. Fetches always hit the
446
+ // network; only the server materializes text.
447
+ private async fetchSingle(q: SingleRetrieveParams): Promise<Arc> {
448
+ const arcs = await this.execRetrieve(q);
449
+ checkForMultipleOrNoResults("Arc", q, arcs, true);
450
+ return this.hydrate(arcs[0]);
451
+ }
452
+
453
+ // Answers reuse the identical store doc so selector references stay
454
+ // stable; a fresher network doc replaces it and answers. While a locally
455
+ // replayed dispatch awaits its echo the replayed doc stays, but the
456
+ // network doc answers: it carries the server-materialized text.
457
+ private hydrate(a: Arc): Arc {
458
+ if (this.dispatcher.hasOutstanding(a.key) === true) {
459
+ this.store.ingest(a);
460
+ return a;
461
+ }
462
+ const prev = this.store.get(a.key);
463
+ if (prev != null && deep.equal(prev, a)) return prev;
464
+ this.store.set(a);
465
+ return a;
466
+ }
467
+
468
+ /**
469
+ * Rebuilds a cached task with its cached status attached. The status is
470
+ * parsed because the status table holds every domain's statuses generically.
471
+ */
472
+ private composeTask(cached: Omit<task.Task, "status">): task.Task {
473
+ const cachedStatus = this.cfg.statusStore.get(task.statusKey(cached.key));
474
+ const payload = cached.payload;
475
+ if (cachedStatus == null) return this.cfg.tasks.sugar(payload);
476
+ const parsed = task.statusZ().safeParse(cachedStatus);
477
+ if (!parsed.success) return this.cfg.tasks.sugar(payload);
478
+ return this.cfg.tasks.sugar({ ...payload, status: parsed.data });
479
+ }
480
+
481
+ private async fetchTask(arcKey: Key): Promise<task.Task | null> {
482
+ let children: ontology.Resource[];
483
+ try {
484
+ children = await this.cfg.ontology.children.retrieve({
485
+ ids: ontologyID(arcKey),
486
+ types: ["task"],
487
+ });
488
+ } catch (e) {
489
+ // An arc that does not exist cannot have a task.
490
+ if (NotFoundError.matches(e)) return null;
491
+ throw errors.fromUnknown(e);
492
+ }
493
+ const child = children[0];
494
+ if (child == null) return null;
495
+ return await this.cfg.tasks.retrieve(child.id.key);
113
496
  }
114
497
  }
@@ -9,20 +9,19 @@
9
9
 
10
10
  // Code generated by Oracle. DO NOT EDIT.
11
11
 
12
- import { record } from "@synnaxlabs/x";
13
12
  import { z } from "zod";
14
13
 
15
14
  /**
16
- * Output is compiled output from the Arc compiler including WebAssembly bytecode
17
- * and memory layout.
15
+ * Output is compiled output from the Arc compiler including WebAssembly bytecode and
16
+ * memory layout.
18
17
  */
19
18
  export const outputZ = z.object({
20
19
  /** wasm is compiled WebAssembly bytecode for sandboxed execution. */
21
20
  wasm: z.instanceof(Uint8Array),
22
21
  /**
23
- * outputMemoryBases contains memory base addresses for multi-output functions, mapping
24
- * function keys to their base addresses.
22
+ * outputMemoryBases contains memory base addresses for multi-output functions,
23
+ * mapping function keys to their base addresses.
25
24
  */
26
- outputMemoryBases: record.nullishToEmpty(z.string(), z.uint32()),
25
+ outputMemoryBases: z.record(z.string(), z.uint32()).default(() => ({})),
27
26
  });
28
27
  export interface Output extends z.infer<typeof outputZ> {}
@@ -7,6 +7,8 @@
7
7
  // License, use of this software will be governed by the Apache License, Version 2.0,
8
8
  // included in the file licenses/APL.txt.
9
9
 
10
+ export * from "@/arc/actions";
11
+ export * from "@/arc/actions.gen";
10
12
  export * from "@/arc/client";
11
13
  export * from "@/arc/compiler";
12
14
  export * from "@/arc/graph";
@@ -9,51 +9,53 @@
9
9
 
10
10
  // Code generated by Oracle. DO NOT EDIT.
11
11
 
12
- import { array, record, spatial } from "@synnaxlabs/x";
12
+ import { caseconv, record, spatial } from "@synnaxlabs/x";
13
13
  import { z } from "zod";
14
14
 
15
15
  import { ir } from "@/arc/ir";
16
16
 
17
17
  /**
18
- * Node is a visual node in the Arc graph editor representing a function
19
- * instantiation with position data.
18
+ * Node is a visual node in the Arc graph editor representing a function instantiation
19
+ * with position data. The function type and input parameter values are stored in the
20
+ * graph's inputs map, keyed by the node key.
20
21
  */
21
22
  export const nodeZ = z.object({
22
23
  /** key is the unique identifier for this node instance. */
23
24
  key: z.string(),
24
- /** type is the function type being instantiated. */
25
- type: z.string(),
26
- /** config contains configuration parameter values as a JSON object. */
27
- config: record.nullishToEmpty(),
28
25
  /** position is the canvas position (x, y) for visual layout. */
29
26
  position: spatial.xyZ,
30
27
  });
31
28
  export interface Node extends z.infer<typeof nodeZ> {}
32
29
 
33
- /** Viewport is the camera state for viewing the Arc graph editor canvas. */
34
- export const viewportZ = z.object({
35
- /** position is the camera pan offset (x, y). */
36
- position: spatial.xyZ,
37
- /** zoom is the zoom level where 1.0 equals 100%. */
38
- zoom: z.number(),
30
+ export const edgeZ = ir.edgeZ.extend({
31
+ key: z.string(),
39
32
  });
40
- export interface Viewport extends z.infer<typeof viewportZ> {}
33
+ export interface Edge extends z.infer<typeof edgeZ> {}
41
34
 
42
- export const nodesZ = array.nullishToEmpty(nodeZ);
35
+ export const nodesZ = nodeZ.array().default(() => []);
43
36
  export type Nodes = z.infer<typeof nodesZ>;
44
37
 
38
+ export const edgesZ = edgeZ.array().default(() => []);
39
+ export type Edges = z.infer<typeof edgesZ>;
40
+
45
41
  /**
46
- * Graph is a visual dataflow graph representation combining IR elements with
47
- * canvas layout for the Arc graph editor.
42
+ * Graph is a visual dataflow graph representation combining IR elements with canvas
43
+ * layout for the Arc graph editor.
48
44
  */
49
45
  export const graphZ = z.object({
50
- /** viewport is the current camera state for the graph view. */
51
- viewport: viewportZ,
52
46
  /** functions contains function definitions available in this graph. */
53
- functions: ir.functionsZ,
47
+ functions: ir.functionsZ.default([]),
54
48
  /** edges contains dataflow connections between node parameters. */
55
- edges: ir.edgesZ,
49
+ edges: edgesZ.default([]),
56
50
  /** nodes contains visual nodes with canvas positions. */
57
- nodes: nodesZ,
51
+ nodes: nodesZ.default([]),
52
+ /**
53
+ * inputs contains per-node inputs keyed by node key. Each value is a JSON object
54
+ * holding the node's function type under "type" plus its input parameter values. The
55
+ * wire format stores it as an opaque record; the client types it per function.
56
+ */
57
+ inputs: caseconv.preserveCase(
58
+ z.record(z.string(), record.unknownZ()).default(() => ({})),
59
+ ),
58
60
  });
59
61
  export interface Graph extends z.infer<typeof graphZ> {}
@@ -7,4 +7,4 @@
7
7
  // License, use of this software will be governed by the Apache License, Version 2.0,
8
8
  // included in the file licenses/APL.txt.
9
9
 
10
- export * as ir from "@/arc/ir/types.gen";
10
+ export * as ir from "@/arc/ir/ir";
@@ -7,7 +7,4 @@
7
7
  // License, use of this software will be governed by the Apache License, Version 2.0,
8
8
  // included in the file licenses/APL.txt.
9
9
 
10
- import cfg from "@synnaxlabs/eslint-config";
11
- import type { Linter } from "eslint";
12
-
13
- export default [...cfg, { ignores: ["examples"] }] as Linter.Config[];
10
+ export * from "@/arc/ir/types.gen";