@synnaxlabs/client 0.56.1 → 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.
- package/dist/client-B08VDLSA.js +14463 -0
- package/dist/client-B08VDLSA.js.map +1 -0
- package/dist/client.js +1128 -14876
- package/dist/client.js.map +1 -0
- package/dist/src/access/client.d.ts +10 -1
- package/dist/src/access/client.d.ts.map +1 -1
- package/dist/src/access/enforce.d.ts.map +1 -1
- package/dist/src/access/external.d.ts +1 -0
- package/dist/src/access/external.d.ts.map +1 -1
- package/dist/src/access/granted.d.ts +39 -0
- package/dist/src/access/granted.d.ts.map +1 -0
- package/dist/src/access/policy/client.d.ts +136 -147
- package/dist/src/access/policy/client.d.ts.map +1 -1
- package/dist/src/access/policy/types.gen.d.ts +15 -68
- package/dist/src/access/policy/types.gen.d.ts.map +1 -1
- package/dist/src/access/role/client.d.ts +77 -58
- package/dist/src/access/role/client.d.ts.map +1 -1
- package/dist/src/access/role/types.gen.d.ts +8 -14
- package/dist/src/access/role/types.gen.d.ts.map +1 -1
- package/dist/src/actions/actions.d.ts +5 -6
- package/dist/src/actions/actions.d.ts.map +1 -1
- package/dist/src/actions/controller.d.ts +194 -0
- package/dist/src/actions/controller.d.ts.map +1 -0
- package/dist/src/actions/external.d.ts +1 -0
- package/dist/src/actions/external.d.ts.map +1 -1
- package/dist/src/arc/actions.d.ts +575 -0
- package/dist/src/arc/actions.d.ts.map +1 -0
- package/dist/src/arc/actions.gen.d.ts +1439 -0
- package/dist/src/arc/actions.gen.d.ts.map +1 -0
- package/dist/src/arc/client.d.ts +97 -13
- package/dist/src/arc/client.d.ts.map +1 -1
- package/dist/src/arc/compiler/types.gen.d.ts +3 -3
- package/dist/src/arc/compiler/types.gen.d.ts.map +1 -1
- package/dist/src/arc/external.d.ts +2 -0
- package/dist/src/arc/external.d.ts.map +1 -1
- package/dist/src/arc/graph/types.gen.d.ts +45 -597
- package/dist/src/arc/graph/types.gen.d.ts.map +1 -1
- package/dist/src/arc/ir/index.d.ts +1 -1
- package/dist/src/arc/ir/index.d.ts.map +1 -1
- package/dist/src/arc/ir/ir.d.ts +2 -0
- package/dist/src/arc/ir/ir.d.ts.map +1 -0
- package/dist/src/arc/ir/types.gen.d.ts +58 -2807
- package/dist/src/arc/ir/types.gen.d.ts.map +1 -1
- package/dist/src/arc/module/types.gen.d.ts +18 -1090
- package/dist/src/arc/module/types.gen.d.ts.map +1 -1
- package/dist/src/arc/program/types.gen.d.ts +18 -1090
- package/dist/src/arc/program/types.gen.d.ts.map +1 -1
- package/dist/src/arc/text/types.gen.d.ts +54 -1
- package/dist/src/arc/text/types.gen.d.ts.map +1 -1
- package/dist/src/arc/types/types.gen.d.ts +35 -153
- package/dist/src/arc/types/types.gen.d.ts.map +1 -1
- package/dist/src/arc/types.gen.d.ts +98 -2278
- package/dist/src/arc/types.gen.d.ts.map +1 -1
- package/dist/src/auth/auth.d.ts +14 -2
- package/dist/src/auth/auth.d.ts.map +1 -1
- package/dist/src/channel/client.d.ts +113 -75
- package/dist/src/channel/client.d.ts.map +1 -1
- package/dist/src/channel/external.d.ts +0 -1
- package/dist/src/channel/external.d.ts.map +1 -1
- package/dist/src/channel/payload.d.ts +65 -56
- package/dist/src/channel/payload.d.ts.map +1 -1
- package/dist/src/channel/types.gen.d.ts +26 -73
- package/dist/src/channel/types.gen.d.ts.map +1 -1
- package/dist/src/channel/writer.d.ts +1 -3
- package/dist/src/channel/writer.d.ts.map +1 -1
- package/dist/src/client.d.ts +55 -27
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/connection/client.d.ts +146 -0
- package/dist/src/connection/client.d.ts.map +1 -0
- package/dist/src/connection/external.d.ts +3 -0
- package/dist/src/connection/external.d.ts.map +1 -0
- package/dist/src/connection/index.d.ts +1 -1
- package/dist/src/connection/index.d.ts.map +1 -1
- package/dist/src/connection/status.d.ts +252 -0
- package/dist/src/connection/status.d.ts.map +1 -0
- package/dist/src/control/client.d.ts +31 -7
- package/dist/src/control/client.d.ts.map +1 -1
- package/dist/src/control/state.d.ts +47 -16
- package/dist/src/control/state.d.ts.map +1 -1
- package/dist/src/device/client.d.ts +59 -17
- package/dist/src/device/client.d.ts.map +1 -1
- package/dist/src/device/types.gen.d.ts +17 -67
- package/dist/src/device/types.gen.d.ts.map +1 -1
- package/dist/src/errors.d.ts +17 -20
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/ethercat/external.d.ts +2 -0
- package/dist/src/ethercat/external.d.ts.map +1 -0
- package/dist/src/ethercat/index.d.ts +2 -0
- package/dist/src/ethercat/index.d.ts.map +1 -0
- package/dist/src/ethercat/types.gen.d.ts +243 -0
- package/dist/src/ethercat/types.gen.d.ts.map +1 -0
- package/dist/src/framer/adapter.d.ts +8 -5
- package/dist/src/framer/adapter.d.ts.map +1 -1
- package/dist/src/framer/benchutil.d.ts +19 -0
- package/dist/src/framer/benchutil.d.ts.map +1 -0
- package/dist/src/framer/cache/cache.d.ts +38 -0
- package/dist/src/framer/cache/cache.d.ts.map +1 -0
- package/dist/src/framer/cache/dynamic.d.ts +71 -0
- package/dist/src/framer/cache/dynamic.d.ts.map +1 -0
- package/dist/src/framer/cache/reader.d.ts +43 -0
- package/dist/src/framer/cache/reader.d.ts.map +1 -0
- package/dist/src/framer/cache/static.d.ts +66 -0
- package/dist/src/framer/cache/static.d.ts.map +1 -0
- package/dist/src/framer/cache/streamer.d.ts +86 -0
- package/dist/src/framer/cache/streamer.d.ts.map +1 -0
- package/dist/src/framer/cache/transform.d.ts +18 -0
- package/dist/src/framer/cache/transform.d.ts.map +1 -0
- package/dist/src/framer/cache/unary.d.ts +37 -0
- package/dist/src/framer/cache/unary.d.ts.map +1 -0
- package/dist/src/framer/client.d.ts +35 -14
- package/dist/src/framer/client.d.ts.map +1 -1
- package/dist/src/framer/codec.d.ts.map +1 -1
- package/dist/src/framer/deleter.d.ts +3 -2
- package/dist/src/framer/deleter.d.ts.map +1 -1
- package/dist/src/framer/external.d.ts +6 -0
- package/dist/src/framer/external.d.ts.map +1 -1
- package/dist/src/framer/feed.d.ts +40 -0
- package/dist/src/framer/feed.d.ts.map +1 -0
- package/dist/src/framer/frame.d.ts +16 -20
- package/dist/src/framer/frame.d.ts.map +1 -1
- package/dist/src/framer/hardened.d.ts +70 -0
- package/dist/src/framer/hardened.d.ts.map +1 -0
- package/dist/src/framer/iterator.d.ts +36 -43
- package/dist/src/framer/iterator.d.ts.map +1 -1
- package/dist/src/framer/reader.d.ts +3 -2
- package/dist/src/framer/reader.d.ts.map +1 -1
- package/dist/src/framer/streamer.d.ts +132 -205
- package/dist/src/framer/streamer.d.ts.map +1 -1
- package/dist/src/framer/writer.d.ts +130 -161
- package/dist/src/framer/writer.d.ts.map +1 -1
- package/dist/src/group/client.d.ts +66 -9
- package/dist/src/group/client.d.ts.map +1 -1
- package/dist/src/group/types.gen.d.ts +2 -2
- package/dist/src/http/external.d.ts +2 -0
- package/dist/src/http/external.d.ts.map +1 -0
- package/dist/src/http/index.d.ts +2 -0
- package/dist/src/http/index.d.ts.map +1 -0
- package/dist/src/http/types.gen.d.ts +451 -0
- package/dist/src/http/types.gen.d.ts.map +1 -0
- package/dist/src/imex/client.d.ts +88 -0
- package/dist/src/imex/client.d.ts.map +1 -0
- package/dist/src/imex/index.d.ts +2 -0
- package/dist/src/imex/index.d.ts.map +1 -0
- package/dist/src/index.d.ts +18 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/label/client.d.ts +55 -36
- package/dist/src/label/client.d.ts.map +1 -1
- package/dist/src/label/external.d.ts +2 -0
- package/dist/src/label/external.d.ts.map +1 -1
- package/dist/src/label/payload.d.ts +4 -46
- package/dist/src/label/payload.d.ts.map +1 -1
- package/dist/src/label/store.d.ts +8 -0
- package/dist/src/label/store.d.ts.map +1 -0
- package/dist/src/label/types.gen.d.ts +45 -0
- package/dist/src/label/types.gen.d.ts.map +1 -0
- package/dist/src/labjack/external.d.ts +2 -0
- package/dist/src/labjack/external.d.ts.map +1 -0
- package/dist/src/labjack/index.d.ts +2 -0
- package/dist/src/labjack/index.d.ts.map +1 -0
- package/dist/src/labjack/types.gen.d.ts +442 -0
- package/dist/src/labjack/types.gen.d.ts.map +1 -0
- package/dist/src/lineplot/actions.d.ts +914 -0
- package/dist/src/lineplot/actions.d.ts.map +1 -0
- package/dist/src/lineplot/actions.gen.d.ts +4208 -0
- package/dist/src/lineplot/actions.gen.d.ts.map +1 -0
- package/dist/src/lineplot/client.d.ts +66 -16
- package/dist/src/lineplot/client.d.ts.map +1 -1
- package/dist/src/lineplot/external.d.ts +3 -0
- package/dist/src/lineplot/external.d.ts.map +1 -1
- package/dist/src/lineplot/line.d.ts +16 -0
- package/dist/src/lineplot/line.d.ts.map +1 -0
- package/dist/src/lineplot/types.gen.d.ts +837 -14
- package/dist/src/lineplot/types.gen.d.ts.map +1 -1
- package/dist/src/log/actions.d.ts +271 -0
- package/dist/src/log/actions.d.ts.map +1 -0
- package/dist/src/log/actions.gen.d.ts +1529 -0
- package/dist/src/log/actions.gen.d.ts.map +1 -0
- package/dist/src/log/client.d.ts +66 -16
- package/dist/src/log/client.d.ts.map +1 -1
- package/dist/src/log/external.d.ts +2 -0
- package/dist/src/log/external.d.ts.map +1 -1
- package/dist/src/log/types.gen.d.ts +139 -14
- package/dist/src/log/types.gen.d.ts.map +1 -1
- package/dist/src/modbus/external.d.ts +2 -0
- package/dist/src/modbus/external.d.ts.map +1 -0
- package/dist/src/modbus/index.d.ts +2 -0
- package/dist/src/modbus/index.d.ts.map +1 -0
- package/dist/src/modbus/types.gen.d.ts +280 -0
- package/dist/src/modbus/types.gen.d.ts.map +1 -0
- package/dist/src/ni/external.d.ts +2 -0
- package/dist/src/ni/external.d.ts.map +1 -0
- package/dist/src/ni/index.d.ts +2 -0
- package/dist/src/ni/index.d.ts.map +1 -0
- package/dist/src/ni/types.gen.d.ts +21029 -0
- package/dist/src/ni/types.gen.d.ts.map +1 -0
- package/dist/src/node/index.d.ts +2 -0
- package/dist/src/node/index.d.ts.map +1 -0
- package/dist/src/node/types.gen.d.ts +4 -0
- package/dist/src/node/types.gen.d.ts.map +1 -0
- package/dist/src/ontology/client.d.ts +314 -67
- package/dist/src/ontology/client.d.ts.map +1 -1
- package/dist/src/ontology/external.d.ts +1 -0
- package/dist/src/ontology/external.d.ts.map +1 -1
- package/dist/src/ontology/payload.d.ts +60 -18
- package/dist/src/ontology/payload.d.ts.map +1 -1
- package/dist/src/ontology/store.d.ts +32 -0
- package/dist/src/ontology/store.d.ts.map +1 -0
- package/dist/src/ontology/types.gen.d.ts +3 -2
- package/dist/src/ontology/types.gen.d.ts.map +1 -1
- package/dist/src/ontology/writer.d.ts +16 -10
- package/dist/src/ontology/writer.d.ts.map +1 -1
- package/dist/src/opcua/external.d.ts +2 -0
- package/dist/src/opcua/external.d.ts.map +1 -0
- package/dist/src/opcua/index.d.ts +2 -0
- package/dist/src/opcua/index.d.ts.map +1 -0
- package/dist/src/opcua/types.gen.d.ts +82 -0
- package/dist/src/opcua/types.gen.d.ts.map +1 -0
- package/dist/src/pagerduty/external.d.ts +2 -0
- package/dist/src/pagerduty/external.d.ts.map +1 -0
- package/dist/src/pagerduty/index.d.ts +2 -0
- package/dist/src/pagerduty/index.d.ts.map +1 -0
- package/dist/src/pagerduty/types.gen.d.ts +30 -0
- package/dist/src/pagerduty/types.gen.d.ts.map +1 -0
- package/dist/src/panel/actions.d.ts +273 -0
- package/dist/src/panel/actions.d.ts.map +1 -0
- package/dist/src/panel/actions.gen.d.ts +1255 -0
- package/dist/src/panel/actions.gen.d.ts.map +1 -0
- package/dist/src/panel/client.d.ts +148 -0
- package/dist/src/panel/client.d.ts.map +1 -0
- package/dist/src/panel/external.d.ts +6 -0
- package/dist/src/panel/external.d.ts.map +1 -0
- package/dist/src/panel/index.d.ts +2 -0
- package/dist/src/panel/index.d.ts.map +1 -0
- package/dist/src/panel/tree.d.ts +50 -0
- package/dist/src/panel/tree.d.ts.map +1 -0
- package/dist/src/panel/types.gen.d.ts +370 -0
- package/dist/src/panel/types.gen.d.ts.map +1 -0
- package/dist/src/project/client.d.ts +89 -0
- package/dist/src/project/client.d.ts.map +1 -0
- package/dist/src/project/external.d.ts.map +1 -0
- package/dist/src/project/index.d.ts +2 -0
- package/dist/src/project/index.d.ts.map +1 -0
- package/dist/src/project/types.gen.d.ts +27 -0
- package/dist/src/project/types.gen.d.ts.map +1 -0
- package/dist/src/query/cache.d.ts +132 -0
- package/dist/src/query/cache.d.ts.map +1 -0
- package/dist/src/query/deleted.d.ts +20 -0
- package/dist/src/query/deleted.d.ts.map +1 -0
- package/dist/src/query/derived.d.ts +33 -0
- package/dist/src/query/derived.d.ts.map +1 -0
- package/dist/src/query/external.d.ts +10 -0
- package/dist/src/query/external.d.ts.map +1 -0
- package/dist/src/query/index.d.ts +2 -0
- package/dist/src/query/index.d.ts.map +1 -0
- package/dist/src/query/query.d.ts +235 -0
- package/dist/src/query/query.d.ts.map +1 -0
- package/dist/src/query/retriever.d.ts +135 -0
- package/dist/src/query/retriever.d.ts.map +1 -0
- package/dist/src/query/streamer.d.ts +67 -0
- package/dist/src/query/streamer.d.ts.map +1 -0
- package/dist/src/query/table.d.ts +219 -0
- package/dist/src/query/table.d.ts.map +1 -0
- package/dist/src/query/types.d.ts +35 -0
- package/dist/src/query/types.d.ts.map +1 -0
- package/dist/src/query/write.d.ts +21 -0
- package/dist/src/query/write.d.ts.map +1 -0
- package/dist/src/rack/client.d.ts +58 -20
- package/dist/src/rack/client.d.ts.map +1 -1
- package/dist/src/rack/types.gen.d.ts +11 -12
- package/dist/src/rack/types.gen.d.ts.map +1 -1
- package/dist/src/range/alias/types.gen.d.ts +2 -3
- package/dist/src/range/alias/types.gen.d.ts.map +1 -1
- package/dist/src/ranger/client.d.ts +138 -27
- package/dist/src/ranger/client.d.ts.map +1 -1
- package/dist/src/ranger/kv/client.d.ts +7 -4
- package/dist/src/ranger/kv/client.d.ts.map +1 -1
- package/dist/src/ranger/payload.d.ts +3 -0
- package/dist/src/ranger/payload.d.ts.map +1 -1
- package/dist/src/ranger/types.gen.d.ts +45 -101
- package/dist/src/ranger/types.gen.d.ts.map +1 -1
- package/dist/src/ranger/writer.d.ts +2 -74
- package/dist/src/ranger/writer.d.ts.map +1 -1
- package/dist/src/schematic/actions.d.ts +90 -33
- package/dist/src/schematic/actions.d.ts.map +1 -1
- package/dist/src/schematic/actions.gen.d.ts +207 -114
- package/dist/src/schematic/actions.gen.d.ts.map +1 -1
- package/dist/src/schematic/client.d.ts +70 -68
- package/dist/src/schematic/client.d.ts.map +1 -1
- package/dist/src/schematic/symbol/client.d.ts +133 -27
- package/dist/src/schematic/symbol/client.d.ts.map +1 -1
- package/dist/src/schematic/symbol/types.gen.d.ts +258 -153
- package/dist/src/schematic/symbol/types.gen.d.ts.map +1 -1
- package/dist/src/schematic/types.gen.d.ts +17 -96
- package/dist/src/schematic/types.gen.d.ts.map +1 -1
- package/dist/src/status/client.d.ts +69 -14
- package/dist/src/status/client.d.ts.map +1 -1
- package/dist/src/status/external.d.ts +2 -0
- package/dist/src/status/external.d.ts.map +1 -1
- package/dist/src/status/payload.d.ts +2 -36
- package/dist/src/status/payload.d.ts.map +1 -1
- package/dist/src/status/status.d.ts +65 -0
- package/dist/src/status/status.d.ts.map +1 -0
- package/dist/src/status/types.gen.d.ts +58 -0
- package/dist/src/status/types.gen.d.ts.map +1 -0
- package/dist/src/table/actions.d.ts +72 -13
- package/dist/src/table/actions.d.ts.map +1 -1
- package/dist/src/table/actions.gen.d.ts +221 -137
- package/dist/src/table/actions.gen.d.ts.map +1 -1
- package/dist/src/table/client.d.ts +64 -40
- package/dist/src/table/client.d.ts.map +1 -1
- package/dist/src/table/types.gen.d.ts +20 -55
- package/dist/src/table/types.gen.d.ts.map +1 -1
- package/dist/src/task/client.d.ts +149 -28
- package/dist/src/task/client.d.ts.map +1 -1
- package/dist/src/task/types.gen.d.ts +71 -89
- package/dist/src/task/types.gen.d.ts.map +1 -1
- package/dist/src/testutil/access.d.ts +27 -1
- package/dist/src/testutil/access.d.ts.map +1 -1
- package/dist/src/testutil/channels.d.ts +2 -0
- package/dist/src/testutil/channels.d.ts.map +1 -1
- package/dist/src/testutil/client.d.ts +5 -0
- package/dist/src/testutil/client.d.ts.map +1 -1
- package/dist/src/testutil/connection.d.ts +10 -0
- package/dist/src/testutil/connection.d.ts.map +1 -0
- package/dist/src/testutil/index.d.ts +9 -0
- package/dist/src/testutil/index.d.ts.map +1 -0
- package/dist/src/testutil/panels.d.ts +8 -0
- package/dist/src/testutil/panels.d.ts.map +1 -0
- package/dist/src/testutil/proxy.d.ts +29 -0
- package/dist/src/testutil/proxy.d.ts.map +1 -0
- package/dist/src/testutil/query.d.ts +7 -0
- package/dist/src/testutil/query.d.ts.map +1 -0
- package/dist/src/testutil/telem.d.ts +4 -0
- package/dist/src/testutil/telem.d.ts.map +1 -1
- package/dist/src/transport.d.ts +10 -4
- package/dist/src/transport.d.ts.map +1 -1
- package/dist/src/user/client.d.ts +29 -28
- package/dist/src/user/client.d.ts.map +1 -1
- package/dist/src/user/external.d.ts +1 -1
- package/dist/src/user/external.d.ts.map +1 -1
- package/dist/src/user/types.gen.d.ts +4 -4
- package/dist/src/util/retrieve.d.ts +2 -2
- package/dist/src/util/retrieve.d.ts.map +1 -1
- package/dist/src/util/telem.d.ts.map +1 -1
- package/dist/src/view/client.d.ts +30 -14
- package/dist/src/view/client.d.ts.map +1 -1
- package/dist/src/view/types.gen.d.ts +7 -15
- package/dist/src/view/types.gen.d.ts.map +1 -1
- package/dist/testutil.js +189 -0
- package/dist/testutil.js.map +1 -0
- package/package.json +40 -17
- package/src/access/client.ts +14 -3
- package/src/access/enforce.ts +0 -3
- package/src/access/external.ts +1 -0
- package/src/access/granted.ts +114 -0
- package/src/access/policy/client.ts +135 -43
- package/src/access/policy/types.gen.ts +9 -11
- package/src/access/role/client.ts +160 -38
- package/src/access/role/types.gen.ts +8 -12
- package/src/actions/actions.ts +5 -6
- package/src/actions/controller.ts +626 -0
- package/src/actions/external.ts +11 -0
- package/src/arc/actions.gen.ts +313 -0
- package/src/arc/actions.ts +192 -0
- package/src/arc/client.ts +424 -41
- package/src/arc/compiler/types.gen.ts +5 -6
- package/src/arc/external.ts +2 -0
- package/src/arc/graph/types.gen.ts +24 -22
- package/src/arc/ir/index.ts +1 -1
- package/{eslint.config.ts → src/arc/ir/ir.ts} +1 -4
- package/src/arc/ir/types.gen.ts +42 -41
- package/src/arc/text/types.gen.ts +21 -2
- package/src/arc/types/types.gen.ts +40 -32
- package/src/arc/types.gen.ts +31 -29
- package/src/auth/auth.ts +40 -8
- package/src/channel/client.ts +529 -132
- package/src/channel/external.ts +0 -1
- package/src/channel/payload.ts +30 -3
- package/src/channel/types.gen.ts +37 -48
- package/src/channel/writer.ts +2 -11
- package/src/client.ts +215 -91
- package/src/connection/client.ts +495 -0
- package/src/connection/external.ts +34 -0
- package/src/connection/index.ts +1 -1
- package/src/connection/status.ts +442 -0
- package/src/control/client.ts +84 -12
- package/src/control/state.ts +17 -36
- package/src/device/client.ts +293 -41
- package/src/device/types.gen.ts +15 -26
- package/src/errors.ts +45 -22
- package/src/{workspace → ethercat}/external.ts +1 -2
- package/src/{workspace → ethercat}/index.ts +1 -1
- package/src/ethercat/types.gen.ts +151 -0
- package/src/framer/adapter.ts +60 -37
- package/src/framer/benchutil.ts +67 -0
- package/src/framer/cache/cache.ts +115 -0
- package/src/framer/cache/dynamic.ts +279 -0
- package/src/framer/cache/reader.ts +160 -0
- package/src/framer/cache/static.ts +215 -0
- package/src/framer/cache/streamer.ts +391 -0
- package/src/framer/cache/transform.ts +31 -0
- package/src/framer/cache/unary.ts +104 -0
- package/src/framer/client.ts +71 -43
- package/src/framer/codec.ts +55 -18
- package/src/framer/deleter.ts +4 -6
- package/src/framer/external.ts +10 -0
- package/src/framer/feed.ts +108 -0
- package/src/framer/frame.ts +13 -23
- package/src/framer/hardened.ts +283 -0
- package/src/framer/iterator.ts +31 -42
- package/src/framer/reader.ts +11 -11
- package/src/framer/streamer.ts +18 -178
- package/src/framer/writer.ts +39 -59
- package/src/group/client.ts +158 -23
- package/src/http/external.ts +10 -0
- package/src/{cluster → http}/index.ts +1 -1
- package/src/http/types.gen.ts +245 -0
- package/src/imex/client.ts +125 -0
- package/src/imex/index.ts +10 -0
- package/src/index.ts +18 -6
- package/src/label/client.ts +193 -54
- package/src/label/external.ts +2 -0
- package/src/label/payload.ts +4 -9
- package/src/label/store.ts +28 -0
- package/src/label/types.gen.ts +31 -0
- package/src/labjack/external.ts +10 -0
- package/src/labjack/index.ts +10 -0
- package/src/labjack/types.gen.ts +251 -0
- package/src/lineplot/actions.gen.ts +880 -0
- package/src/lineplot/actions.ts +535 -0
- package/src/lineplot/client.ts +224 -52
- package/src/lineplot/external.ts +3 -0
- package/src/lineplot/line.ts +80 -0
- package/src/lineplot/types.gen.ts +225 -12
- package/src/log/actions.gen.ts +474 -0
- package/src/log/actions.ts +242 -0
- package/src/log/client.ts +223 -52
- package/src/log/external.ts +2 -0
- package/src/log/types.gen.ts +45 -14
- package/src/modbus/external.ts +10 -0
- package/src/modbus/index.ts +10 -0
- package/src/modbus/types.gen.ts +185 -0
- package/src/ni/external.ts +10 -0
- package/src/ni/index.ts +10 -0
- package/src/ni/types.gen.ts +1632 -0
- package/src/node/index.ts +10 -0
- package/src/{cluster → node}/types.gen.ts +2 -2
- package/src/ontology/client.ts +408 -99
- package/src/ontology/external.ts +7 -0
- package/src/ontology/payload.ts +48 -7
- package/src/ontology/store.ts +83 -0
- package/src/ontology/types.gen.ts +2 -1
- package/src/ontology/writer.ts +1 -0
- package/src/opcua/external.ts +10 -0
- package/src/opcua/index.ts +10 -0
- package/src/opcua/types.gen.ts +65 -0
- package/src/pagerduty/external.ts +10 -0
- package/src/pagerduty/index.ts +10 -0
- package/src/pagerduty/types.gen.ts +41 -0
- package/src/panel/actions.gen.ts +267 -0
- package/src/panel/actions.ts +357 -0
- package/src/panel/client.ts +327 -0
- package/src/panel/external.ts +14 -0
- package/src/panel/index.ts +10 -0
- package/src/panel/tree.ts +163 -0
- package/src/panel/types.gen.ts +164 -0
- package/src/project/client.ts +273 -0
- package/src/project/external.ts +11 -0
- package/src/project/index.ts +10 -0
- package/src/project/types.gen.ts +40 -0
- package/src/query/cache.ts +326 -0
- package/src/query/deleted.ts +38 -0
- package/src/query/derived.ts +101 -0
- package/src/query/external.ts +51 -0
- package/src/query/index.ts +10 -0
- package/src/query/query.ts +865 -0
- package/src/query/retriever.ts +308 -0
- package/src/query/streamer.ts +207 -0
- package/src/query/table.ts +625 -0
- package/src/query/types.ts +54 -0
- package/src/query/write.ts +42 -0
- package/src/rack/client.ts +233 -45
- package/src/rack/types.gen.ts +15 -16
- package/src/range/alias/types.gen.ts +2 -3
- package/src/ranger/client.ts +581 -70
- package/src/ranger/kv/client.ts +52 -21
- package/src/ranger/payload.ts +3 -0
- package/src/ranger/types.gen.ts +21 -23
- package/src/ranger/writer.ts +4 -8
- package/src/schematic/actions.gen.ts +62 -53
- package/src/schematic/actions.ts +44 -42
- package/src/schematic/client.ts +226 -70
- package/src/schematic/symbol/client.ts +277 -48
- package/src/schematic/symbol/types.gen.ts +22 -34
- package/src/schematic/types.gen.ts +22 -29
- package/src/status/client.ts +321 -44
- package/src/status/external.ts +2 -0
- package/src/status/payload.ts +1 -23
- package/src/status/status.ts +241 -0
- package/src/status/types.gen.ts +108 -0
- package/src/table/actions.gen.ts +96 -63
- package/src/table/actions.ts +44 -19
- package/src/table/client.ts +220 -56
- package/src/table/types.gen.ts +24 -31
- package/src/task/client.ts +580 -101
- package/src/task/types.gen.ts +68 -75
- package/src/testutil/access.ts +102 -6
- package/src/testutil/channels.ts +29 -0
- package/src/testutil/client.ts +27 -2
- package/src/testutil/connection.ts +47 -0
- package/src/testutil/index.ts +17 -0
- package/src/testutil/panels.ts +26 -0
- package/src/testutil/proxy.ts +106 -0
- package/src/testutil/query.ts +28 -0
- package/src/testutil/telem.ts +17 -1
- package/src/transport.ts +18 -7
- package/src/user/client.ts +165 -64
- package/src/user/external.ts +1 -1
- package/src/user/types.gen.ts +5 -5
- package/src/util/retrieve.ts +4 -4
- package/src/util/telem.ts +0 -1
- package/src/view/client.ts +120 -37
- package/src/view/types.gen.ts +8 -11
- package/.turbo/turbo-build.log +0 -20
- package/.vscode/settings.json +0 -3
- package/CONTRIBUTING.md +0 -47
- package/dist/client.cjs +0 -118
- package/dist/eslint.config.d.ts +0 -4
- package/dist/eslint.config.d.ts.map +0 -1
- package/dist/src/access/enforce.spec.d.ts +0 -2
- package/dist/src/access/enforce.spec.d.ts.map +0 -1
- package/dist/src/access/policy/access.spec.d.ts +0 -2
- package/dist/src/access/policy/access.spec.d.ts.map +0 -1
- package/dist/src/access/role/role.spec.d.ts +0 -2
- package/dist/src/access/role/role.spec.d.ts.map +0 -1
- package/dist/src/actions/actions.spec.d.ts +0 -2
- package/dist/src/actions/actions.spec.d.ts.map +0 -1
- package/dist/src/arc/access.spec.d.ts +0 -2
- package/dist/src/arc/access.spec.d.ts.map +0 -1
- package/dist/src/arc/arc.spec.d.ts +0 -2
- package/dist/src/arc/arc.spec.d.ts.map +0 -1
- package/dist/src/arc/lsp.spec.d.ts +0 -2
- package/dist/src/arc/lsp.spec.d.ts.map +0 -1
- package/dist/src/auth/auth.spec.d.ts +0 -2
- package/dist/src/auth/auth.spec.d.ts.map +0 -1
- package/dist/src/channel/access.spec.d.ts +0 -2
- package/dist/src/channel/access.spec.d.ts.map +0 -1
- package/dist/src/channel/batchRetriever.spec.d.ts +0 -2
- package/dist/src/channel/batchRetriever.spec.d.ts.map +0 -1
- package/dist/src/channel/channel.spec.d.ts +0 -2
- package/dist/src/channel/channel.spec.d.ts.map +0 -1
- package/dist/src/channel/payload.spec.d.ts +0 -2
- package/dist/src/channel/payload.spec.d.ts.map +0 -1
- package/dist/src/channel/retriever.d.ts +0 -64
- package/dist/src/channel/retriever.d.ts.map +0 -1
- package/dist/src/cluster/index.d.ts +0 -2
- package/dist/src/cluster/index.d.ts.map +0 -1
- package/dist/src/cluster/types.gen.d.ts +0 -4
- package/dist/src/cluster/types.gen.d.ts.map +0 -1
- package/dist/src/connection/checker.d.ts +0 -86
- package/dist/src/connection/checker.d.ts.map +0 -1
- package/dist/src/connection/connection.spec.d.ts +0 -2
- package/dist/src/connection/connection.spec.d.ts.map +0 -1
- package/dist/src/connection.spec.d.ts +0 -2
- package/dist/src/connection.spec.d.ts.map +0 -1
- package/dist/src/control/state.spec.d.ts +0 -2
- package/dist/src/control/state.spec.d.ts.map +0 -1
- package/dist/src/device/access.spec.d.ts +0 -2
- package/dist/src/device/access.spec.d.ts.map +0 -1
- package/dist/src/device/device.spec.d.ts +0 -2
- package/dist/src/device/device.spec.d.ts.map +0 -1
- package/dist/src/device/payload.spec.d.ts +0 -2
- package/dist/src/device/payload.spec.d.ts.map +0 -1
- package/dist/src/errors.spec.d.ts +0 -2
- package/dist/src/errors.spec.d.ts.map +0 -1
- package/dist/src/framer/adapter.spec.d.ts +0 -2
- package/dist/src/framer/adapter.spec.d.ts.map +0 -1
- package/dist/src/framer/client.spec.d.ts +0 -2
- package/dist/src/framer/client.spec.d.ts.map +0 -1
- package/dist/src/framer/codec.spec.d.ts +0 -2
- package/dist/src/framer/codec.spec.d.ts.map +0 -1
- package/dist/src/framer/deleter.spec.d.ts +0 -2
- package/dist/src/framer/deleter.spec.d.ts.map +0 -1
- package/dist/src/framer/frame.spec.d.ts +0 -2
- package/dist/src/framer/frame.spec.d.ts.map +0 -1
- package/dist/src/framer/iterator.spec.d.ts +0 -2
- package/dist/src/framer/iterator.spec.d.ts.map +0 -1
- package/dist/src/framer/reader.spec.d.ts +0 -2
- package/dist/src/framer/reader.spec.d.ts.map +0 -1
- package/dist/src/framer/streamer.spec.d.ts +0 -2
- package/dist/src/framer/streamer.spec.d.ts.map +0 -1
- package/dist/src/framer/writer.spec.d.ts +0 -2
- package/dist/src/framer/writer.spec.d.ts.map +0 -1
- package/dist/src/group/access.spec.d.ts +0 -2
- package/dist/src/group/access.spec.d.ts.map +0 -1
- package/dist/src/group/group.spec.d.ts +0 -2
- package/dist/src/group/group.spec.d.ts.map +0 -1
- package/dist/src/label/access.spec.d.ts +0 -2
- package/dist/src/label/access.spec.d.ts.map +0 -1
- package/dist/src/label/label.spec.d.ts +0 -2
- package/dist/src/label/label.spec.d.ts.map +0 -1
- package/dist/src/lineplot/access.spec.d.ts +0 -2
- package/dist/src/lineplot/access.spec.d.ts.map +0 -1
- package/dist/src/lineplot/lineplot.spec.d.ts +0 -2
- package/dist/src/lineplot/lineplot.spec.d.ts.map +0 -1
- package/dist/src/log/access.spec.d.ts +0 -2
- package/dist/src/log/access.spec.d.ts.map +0 -1
- package/dist/src/log/log.spec.d.ts +0 -2
- package/dist/src/log/log.spec.d.ts.map +0 -1
- package/dist/src/ontology/ontology.spec.d.ts +0 -2
- package/dist/src/ontology/ontology.spec.d.ts.map +0 -1
- package/dist/src/rack/access.spec.d.ts +0 -2
- package/dist/src/rack/access.spec.d.ts.map +0 -1
- package/dist/src/rack/rack.spec.d.ts +0 -2
- package/dist/src/rack/rack.spec.d.ts.map +0 -1
- package/dist/src/ranger/access.spec.d.ts +0 -2
- package/dist/src/ranger/access.spec.d.ts.map +0 -1
- package/dist/src/ranger/alias/payload.spec.d.ts +0 -2
- package/dist/src/ranger/alias/payload.spec.d.ts.map +0 -1
- package/dist/src/ranger/ranger.spec.d.ts +0 -2
- package/dist/src/ranger/ranger.spec.d.ts.map +0 -1
- package/dist/src/schematic/access.spec.d.ts +0 -2
- package/dist/src/schematic/access.spec.d.ts.map +0 -1
- package/dist/src/schematic/actions.spec.d.ts +0 -2
- package/dist/src/schematic/actions.spec.d.ts.map +0 -1
- package/dist/src/schematic/schematic.spec.d.ts +0 -2
- package/dist/src/schematic/schematic.spec.d.ts.map +0 -1
- package/dist/src/schematic/symbol/access.spec.d.ts +0 -2
- package/dist/src/schematic/symbol/access.spec.d.ts.map +0 -1
- package/dist/src/schematic/symbol/client.spec.d.ts +0 -2
- package/dist/src/schematic/symbol/client.spec.d.ts.map +0 -1
- package/dist/src/status/access.spec.d.ts +0 -2
- package/dist/src/status/access.spec.d.ts.map +0 -1
- package/dist/src/status/status.spec.d.ts +0 -2
- package/dist/src/status/status.spec.d.ts.map +0 -1
- package/dist/src/table/access.spec.d.ts +0 -2
- package/dist/src/table/access.spec.d.ts.map +0 -1
- package/dist/src/table/table.spec.d.ts +0 -2
- package/dist/src/table/table.spec.d.ts.map +0 -1
- package/dist/src/task/access.spec.d.ts +0 -2
- package/dist/src/task/access.spec.d.ts.map +0 -1
- package/dist/src/task/payload.spec.d.ts +0 -2
- package/dist/src/task/payload.spec.d.ts.map +0 -1
- package/dist/src/task/task.spec.d.ts +0 -2
- package/dist/src/task/task.spec.d.ts.map +0 -1
- package/dist/src/user/access.spec.d.ts +0 -2
- package/dist/src/user/access.spec.d.ts.map +0 -1
- package/dist/src/user/user.spec.d.ts +0 -2
- package/dist/src/user/user.spec.d.ts.map +0 -1
- package/dist/src/util/retrieve.spec.d.ts +0 -2
- package/dist/src/util/retrieve.spec.d.ts.map +0 -1
- package/dist/src/view/view.spec.d.ts +0 -2
- package/dist/src/view/view.spec.d.ts.map +0 -1
- package/dist/src/workspace/access.spec.d.ts +0 -2
- package/dist/src/workspace/access.spec.d.ts.map +0 -1
- package/dist/src/workspace/client.d.ts +0 -36
- package/dist/src/workspace/client.d.ts.map +0 -1
- package/dist/src/workspace/external.d.ts.map +0 -1
- package/dist/src/workspace/index.d.ts +0 -2
- package/dist/src/workspace/index.d.ts.map +0 -1
- package/dist/src/workspace/types.gen.d.ts +0 -34
- package/dist/src/workspace/types.gen.d.ts.map +0 -1
- package/dist/src/workspace/workspace.spec.d.ts +0 -2
- package/dist/src/workspace/workspace.spec.d.ts.map +0 -1
- package/examples/node/basicReadWrite.js +0 -86
- package/examples/node/createChannels.js +0 -50
- package/examples/node/createRange.js +0 -67
- package/examples/node/package-lock.json +0 -133
- package/examples/node/package.json +0 -17
- package/examples/node/readLatest.js +0 -76
- package/examples/node/seriesAndFrames.js +0 -173
- package/examples/node/streamRead.js +0 -50
- package/examples/node/streamWrite.js +0 -87
- package/src/access/enforce.spec.ts +0 -188
- package/src/access/policy/access.spec.ts +0 -147
- package/src/access/role/role.spec.ts +0 -95
- package/src/actions/actions.spec.ts +0 -229
- package/src/arc/access.spec.ts +0 -149
- package/src/arc/arc.spec.ts +0 -44
- package/src/arc/lsp.spec.ts +0 -717
- package/src/auth/auth.spec.ts +0 -101
- package/src/channel/access.spec.ts +0 -116
- package/src/channel/batchRetriever.spec.ts +0 -115
- package/src/channel/channel.spec.ts +0 -352
- package/src/channel/payload.spec.ts +0 -117
- package/src/channel/retriever.ts +0 -252
- package/src/connection/checker.ts +0 -203
- package/src/connection/connection.spec.ts +0 -152
- package/src/connection.spec.ts +0 -145
- package/src/control/state.spec.ts +0 -22
- package/src/device/access.spec.ts +0 -159
- package/src/device/device.spec.ts +0 -461
- package/src/device/payload.spec.ts +0 -142
- package/src/errors.spec.ts +0 -71
- package/src/framer/adapter.spec.ts +0 -620
- package/src/framer/client.spec.ts +0 -180
- package/src/framer/codec.spec.ts +0 -383
- package/src/framer/deleter.spec.ts +0 -103
- package/src/framer/frame.spec.ts +0 -973
- package/src/framer/iterator.spec.ts +0 -169
- package/src/framer/reader.spec.ts +0 -865
- package/src/framer/streamer.spec.ts +0 -871
- package/src/framer/writer.spec.ts +0 -486
- package/src/group/access.spec.ts +0 -77
- package/src/group/group.spec.ts +0 -65
- package/src/label/access.spec.ts +0 -109
- package/src/label/label.spec.ts +0 -83
- package/src/lineplot/access.spec.ts +0 -134
- package/src/lineplot/lineplot.spec.ts +0 -120
- package/src/log/access.spec.ts +0 -132
- package/src/log/log.spec.ts +0 -106
- package/src/ontology/ontology.spec.ts +0 -521
- package/src/rack/access.spec.ts +0 -102
- package/src/rack/rack.spec.ts +0 -171
- package/src/ranger/access.spec.ts +0 -115
- package/src/ranger/alias/payload.spec.ts +0 -52
- package/src/ranger/ranger.spec.ts +0 -343
- package/src/schematic/access.spec.ts +0 -134
- package/src/schematic/actions.spec.ts +0 -699
- package/src/schematic/schematic.spec.ts +0 -340
- package/src/schematic/symbol/access.spec.ts +0 -172
- package/src/schematic/symbol/client.spec.ts +0 -160
- package/src/status/access.spec.ts +0 -129
- package/src/status/status.spec.ts +0 -448
- package/src/table/access.spec.ts +0 -128
- package/src/table/table.spec.ts +0 -651
- package/src/task/access.spec.ts +0 -131
- package/src/task/payload.spec.ts +0 -113
- package/src/task/task.spec.ts +0 -657
- package/src/user/access.spec.ts +0 -107
- package/src/user/user.spec.ts +0 -290
- package/src/util/retrieve.spec.ts +0 -49
- package/src/view/view.spec.ts +0 -165
- package/src/workspace/access.spec.ts +0 -108
- package/src/workspace/client.ts +0 -112
- package/src/workspace/types.gen.ts +0 -46
- package/src/workspace/workspace.spec.ts +0 -111
- package/tsconfig.json +0 -5
- package/tsconfig.vite.json +0 -4
- package/vite.config.ts +0 -29
- /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 {
|
|
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 {
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
91
|
+
export type RetrieveParams = z.input<typeof retrieveParamsZ>;
|
|
61
92
|
|
|
62
|
-
const
|
|
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
|
-
|
|
99
|
+
const setRackReqZ = z.object({ key: keyZ, rack: rack.keyZ });
|
|
100
|
+
const setRackResZ = z.object({ task: task.payloadZ().nullish() });
|
|
65
101
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
|
|
99
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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.
|
|
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
|
-
*
|
|
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,
|
|
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
|
|
25
|
+
outputMemoryBases: z.record(z.string(), z.uint32()).default(() => ({})),
|
|
27
26
|
});
|
|
28
27
|
export interface Output extends z.infer<typeof outputZ> {}
|
package/src/arc/external.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
*
|
|
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
|
-
|
|
34
|
-
|
|
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
|
|
33
|
+
export interface Edge extends z.infer<typeof edgeZ> {}
|
|
41
34
|
|
|
42
|
-
export const nodesZ = array.
|
|
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
|
-
*
|
|
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:
|
|
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> {}
|
package/src/arc/ir/index.ts
CHANGED
|
@@ -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
|
-
|
|
11
|
-
import type { Linter } from "eslint";
|
|
12
|
-
|
|
13
|
-
export default [...cfg, { ignores: ["examples"] }] as Linter.Config[];
|
|
10
|
+
export * from "@/arc/ir/types.gen";
|