@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.
- package/dist/client-DDACDVZ-.js +14505 -0
- package/dist/client-DDACDVZ-.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 +91 -0
- package/dist/src/framer/cache/dynamic.d.ts.map +1 -0
- package/dist/src/framer/cache/reader.d.ts +57 -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 +39 -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 +39 -16
- 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 +340 -0
- package/src/framer/cache/reader.ts +231 -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 +108 -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 +19 -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/label/client.ts
CHANGED
|
@@ -8,17 +8,19 @@
|
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
10
|
import { type UnaryClient } from "@synnaxlabs/freighter";
|
|
11
|
-
import { array } from "@synnaxlabs/x";
|
|
11
|
+
import { array, primitive, zod } from "@synnaxlabs/x";
|
|
12
12
|
import z from "zod";
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE } from "@/label/payload";
|
|
15
|
+
import { matchLabeledBy } from "@/label/store";
|
|
16
|
+
import { type Key, keyZ, type Label, labelZ, type New } from "@/label/types.gen";
|
|
15
17
|
import { ontology } from "@/ontology";
|
|
16
|
-
import {
|
|
18
|
+
import { query } from "@/query";
|
|
17
19
|
|
|
18
20
|
export const SET_CHANNEL_NAME = "sy_label_set";
|
|
19
21
|
export const DELETE_CHANNEL_NAME = "sy_label_delete";
|
|
20
22
|
|
|
21
|
-
const createReqZ = z.object({ labels:
|
|
23
|
+
const createReqZ = z.object({ labels: labelZ.array() });
|
|
22
24
|
const createResZ = z.object({ labels: labelZ.array() });
|
|
23
25
|
const deleteReqZ = z.object({ keys: keyZ.array() });
|
|
24
26
|
const setReqZ = z.object({
|
|
@@ -28,6 +30,7 @@ const setReqZ = z.object({
|
|
|
28
30
|
});
|
|
29
31
|
|
|
30
32
|
interface SetReq extends z.infer<typeof setReqZ> {}
|
|
33
|
+
/** Options for `Client.set`. Set `replace` to swap the whole label set at once. */
|
|
31
34
|
export interface SetOptions extends Pick<SetReq, "replace"> {}
|
|
32
35
|
|
|
33
36
|
const removeReqZ = setReqZ.omit({ replace: true });
|
|
@@ -40,77 +43,213 @@ const retrieveRequestZ = z.object({
|
|
|
40
43
|
searchTerm: z.string().optional(),
|
|
41
44
|
offset: z.int().optional(),
|
|
42
45
|
limit: z.int().optional(),
|
|
46
|
+
ignoreNotFoundError: z.boolean().optional(),
|
|
43
47
|
});
|
|
48
|
+
const retrieveMultiParamsZ = retrieveRequestZ.or(query.keyListZ(keyZ));
|
|
44
49
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const retrieveArgsZ = z.union([singleRetrieveArgsZ, retrieveRequestZ]);
|
|
50
|
-
|
|
51
|
-
export type RetrieveArgs = z.input<typeof retrieveArgsZ>;
|
|
52
|
-
export type RetrieveSingleParams = z.input<typeof singleRetrieveArgsZ>;
|
|
50
|
+
/** Names one label. */
|
|
51
|
+
export type RetrieveSingleParams = { key: Key };
|
|
52
|
+
/** Everything a multi-label retrieval can filter on, including the resource labeled. */
|
|
53
53
|
export type RetrieveMultipleParams = z.input<typeof retrieveRequestZ>;
|
|
54
|
+
/** Params for a label retrieval, single or multiple. */
|
|
55
|
+
export type RetrieveParams = RetrieveSingleParams | RetrieveMultipleParams;
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
interface RetrieveRequest extends z.infer<typeof retrieveRequestZ> {}
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
/** Config for {@link Client}. */
|
|
60
|
+
export interface ClientConfig {
|
|
61
|
+
unary: UnaryClient;
|
|
62
|
+
cache: query.Cache;
|
|
63
|
+
ontology: ontology.Client;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Creates, reads, deletes, and attaches labels on a Core. Reach it through
|
|
68
|
+
* `client.labels`.
|
|
69
|
+
*/
|
|
70
|
+
export class Client extends query.Retriever<typeof retrieveMultiParamsZ, Key, Label> {
|
|
58
71
|
readonly type: string = "label";
|
|
59
|
-
|
|
72
|
+
/** The label record table; injected into sibling clients at wiring. */
|
|
73
|
+
readonly store: query.Table<Key, Label>;
|
|
74
|
+
private readonly cfg: ClientConfig;
|
|
75
|
+
|
|
76
|
+
constructor(cfg: ClientConfig) {
|
|
77
|
+
const { cache, ontology: ontologyClient } = cfg;
|
|
78
|
+
const { relationships } = ontologyClient.cache;
|
|
79
|
+
const store = cache.createTable<Key, Label>({
|
|
80
|
+
name: "labels",
|
|
81
|
+
fetch: async (keys) =>
|
|
82
|
+
await this.execRetrieve({ keys, ignoreNotFoundError: true }),
|
|
83
|
+
listen: [
|
|
84
|
+
query.createSetListener(SET_CHANNEL_NAME, labelZ),
|
|
85
|
+
query.createDeleteListener(DELETE_CHANNEL_NAME, keyZ),
|
|
86
|
+
],
|
|
87
|
+
});
|
|
88
|
+
super(cache, {
|
|
89
|
+
name: "label",
|
|
90
|
+
table: store,
|
|
91
|
+
request: {
|
|
92
|
+
schema: retrieveMultiParamsZ,
|
|
93
|
+
fetch: async (req) => await this.execRetrieve(req),
|
|
94
|
+
matches: (label, req) => this.requestFilter(req)(label),
|
|
95
|
+
watch: [
|
|
96
|
+
query.watch(relationships, (event, req: RetrieveRequest) => {
|
|
97
|
+
if (req.for == null) return null;
|
|
98
|
+
const rel =
|
|
99
|
+
event.variant === "set"
|
|
100
|
+
? event.value
|
|
101
|
+
: ontology.relationshipZ.parse(event.key);
|
|
102
|
+
if (!matchLabeledBy(rel, req.for)) return null;
|
|
103
|
+
return [rel.to.key];
|
|
104
|
+
}),
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
this.cfg = cfg;
|
|
109
|
+
this.store = store;
|
|
110
|
+
}
|
|
60
111
|
|
|
61
|
-
|
|
62
|
-
|
|
112
|
+
async label(
|
|
113
|
+
id: ontology.ID,
|
|
114
|
+
labels: Key[],
|
|
115
|
+
opts: SetOptions & query.WriteOptions = {},
|
|
116
|
+
): Promise<void> {
|
|
117
|
+
await query.optimistic({
|
|
118
|
+
rollbacks: [
|
|
119
|
+
...(opts.replace === true
|
|
120
|
+
? [this.cfg.ontology.cache.relationships.delete((r) => matchLabeledBy(r, id))]
|
|
121
|
+
: []),
|
|
122
|
+
...labels.map((key) => {
|
|
123
|
+
const rel = labeledByRel(id, key);
|
|
124
|
+
return this.cfg.ontology.cache.relationships.set(
|
|
125
|
+
ontology.relationshipToString(rel),
|
|
126
|
+
rel,
|
|
127
|
+
);
|
|
128
|
+
}),
|
|
129
|
+
],
|
|
130
|
+
onOptimistic: opts.onOptimistic,
|
|
131
|
+
commit: async () =>
|
|
132
|
+
await this.cfg.unary.send(
|
|
133
|
+
"/label/set",
|
|
134
|
+
{ id, labels, replace: opts.replace },
|
|
135
|
+
setReqZ,
|
|
136
|
+
emptyResZ,
|
|
137
|
+
),
|
|
138
|
+
});
|
|
63
139
|
}
|
|
64
140
|
|
|
65
|
-
async
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
141
|
+
async remove(
|
|
142
|
+
id: ontology.ID,
|
|
143
|
+
labels: Key[],
|
|
144
|
+
opts: query.WriteOptions = {},
|
|
145
|
+
): Promise<void> {
|
|
146
|
+
await query.optimistic({
|
|
147
|
+
rollbacks: [
|
|
148
|
+
this.cfg.ontology.cache.relationships.delete(
|
|
149
|
+
(r) => matchLabeledBy(r, id) && labels.includes(r.to.key),
|
|
150
|
+
),
|
|
151
|
+
],
|
|
152
|
+
onOptimistic: opts.onOptimistic,
|
|
153
|
+
commit: async () =>
|
|
154
|
+
await this.cfg.unary.send(
|
|
155
|
+
"/label/remove",
|
|
156
|
+
{ id, labels },
|
|
157
|
+
removeReqZ,
|
|
158
|
+
emptyResZ,
|
|
159
|
+
),
|
|
160
|
+
});
|
|
77
161
|
}
|
|
78
162
|
|
|
79
|
-
async label
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
);
|
|
163
|
+
async create(label: New, opts?: query.WriteOptions<Label[]>): Promise<Label>;
|
|
164
|
+
async create(labels: New[], opts?: query.WriteOptions<Label[]>): Promise<Label[]>;
|
|
165
|
+
async create(
|
|
166
|
+
labels: New | New[],
|
|
167
|
+
opts: query.WriteOptions<Label[]> = {},
|
|
168
|
+
): Promise<Label | Label[]> {
|
|
169
|
+
const isMany = Array.isArray(labels);
|
|
170
|
+
const optimistic = array
|
|
171
|
+
.toArray(labels)
|
|
172
|
+
.map((l) => zod.parse(labelZ, l, { label: "label" }));
|
|
173
|
+
const res = await query.optimistic({
|
|
174
|
+
rollbacks: [this.store.set(optimistic)],
|
|
175
|
+
onOptimistic: () => opts.onOptimistic?.(optimistic),
|
|
176
|
+
commit: async () =>
|
|
177
|
+
await this.cfg.unary.send(
|
|
178
|
+
"/label/create",
|
|
179
|
+
{ labels: optimistic },
|
|
180
|
+
createReqZ,
|
|
181
|
+
createResZ,
|
|
182
|
+
),
|
|
183
|
+
});
|
|
184
|
+
this.store.set(res.labels);
|
|
185
|
+
return isMany ? res.labels : res.labels[0];
|
|
86
186
|
}
|
|
87
187
|
|
|
88
|
-
async
|
|
89
|
-
|
|
188
|
+
async delete(keys: Key | Key[], opts: query.WriteOptions = {}): Promise<void> {
|
|
189
|
+
const keysArr = array.toArray(keys);
|
|
190
|
+
const drop = () => [
|
|
191
|
+
this.store.delete(keysArr),
|
|
192
|
+
this.cfg.ontology.cache.relationships.delete(
|
|
193
|
+
(r) =>
|
|
194
|
+
r.type === LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE &&
|
|
195
|
+
r.to.type === "label" &&
|
|
196
|
+
keysArr.includes(r.to.key),
|
|
197
|
+
),
|
|
198
|
+
];
|
|
199
|
+
await query.optimistic({
|
|
200
|
+
rollbacks: drop(),
|
|
201
|
+
onOptimistic: opts.onOptimistic,
|
|
202
|
+
commit: async () =>
|
|
203
|
+
await this.cfg.unary.send(
|
|
204
|
+
"/label/delete",
|
|
205
|
+
{ keys: keysArr },
|
|
206
|
+
deleteReqZ,
|
|
207
|
+
emptyResZ,
|
|
208
|
+
),
|
|
209
|
+
});
|
|
210
|
+
drop();
|
|
90
211
|
}
|
|
91
212
|
|
|
92
|
-
async
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
{ labels: array.toArray(labels) },
|
|
99
|
-
createReqZ,
|
|
100
|
-
createResZ,
|
|
213
|
+
private async execRetrieve(params: RetrieveMultipleParams): Promise<Label[]> {
|
|
214
|
+
const res = await this.cfg.unary.send(
|
|
215
|
+
"/label/retrieve",
|
|
216
|
+
params,
|
|
217
|
+
retrieveRequestZ,
|
|
218
|
+
retrieveResponseZ,
|
|
101
219
|
);
|
|
102
|
-
return
|
|
220
|
+
return res.labels;
|
|
103
221
|
}
|
|
104
222
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
223
|
+
/**
|
|
224
|
+
* Client-side matching for a request: key sets, names, and labeled-entity
|
|
225
|
+
* membership via the relationship table. Server-computed shapes (search,
|
|
226
|
+
* limit/offset) never reach this filter; they refetch instead.
|
|
227
|
+
*/
|
|
228
|
+
private requestFilter(req: RetrieveRequest): (l: Label) => boolean {
|
|
229
|
+
const keySet = primitive.isNonZero(req.keys) ? new Set(req.keys) : undefined;
|
|
230
|
+
const nameSet = primitive.isNonZero(req.names) ? new Set(req.names) : undefined;
|
|
231
|
+
return (l) => {
|
|
232
|
+
if (keySet != null && !keySet.has(l.key)) return false;
|
|
233
|
+
if (nameSet != null && !nameSet.has(l.name)) return false;
|
|
234
|
+
if (req.for != null && !this.isLabelOf(req.for, l.key)) return false;
|
|
235
|
+
return true;
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
private isLabelOf(id: ontology.ID, key: Key): boolean {
|
|
240
|
+
return this.cfg.ontology.cache.relationships.has(
|
|
241
|
+
ontology.relationshipToString(labeledByRel(id, key)),
|
|
111
242
|
);
|
|
112
243
|
}
|
|
113
244
|
}
|
|
114
245
|
|
|
246
|
+
const retrieveResponseZ = z.object({ labels: labelZ.array().default(() => []) });
|
|
247
|
+
|
|
248
|
+
const labeledByRel = (id: ontology.ID, key: Key): ontology.Relationship => ({
|
|
249
|
+
from: id,
|
|
250
|
+
type: LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE,
|
|
251
|
+
to: ontologyID(key),
|
|
252
|
+
});
|
|
253
|
+
|
|
115
254
|
export const ontologyID = ontology.createIDFactory<Key>("label");
|
|
116
255
|
export const TYPE_ONTOLOGY_ID = ontologyID("");
|
package/src/label/external.ts
CHANGED
package/src/label/payload.ts
CHANGED
|
@@ -7,15 +7,10 @@
|
|
|
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 {
|
|
10
|
+
import { type Key } from "@/label/types.gen";
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export const keyZ = label.keyZ;
|
|
15
|
-
export type Key = label.Key;
|
|
16
|
-
export const labelZ = label.labelZ;
|
|
17
|
-
export interface Label extends label.Label {}
|
|
18
|
-
export const newZ = label.newZ;
|
|
19
|
-
export interface New extends label.New {}
|
|
12
|
+
/** One or many labels, by key. */
|
|
13
|
+
export type Params = Key | Key[];
|
|
20
14
|
|
|
15
|
+
/** Relationship type joining a resource to the labels on it. */
|
|
21
16
|
export const LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE = "labeled_by";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
import { LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE } from "@/label/payload";
|
|
11
|
+
import { type Key, type Label } from "@/label/types.gen";
|
|
12
|
+
import { ontology } from "@/ontology";
|
|
13
|
+
import { type query } from "@/query";
|
|
14
|
+
|
|
15
|
+
/** Reports whether the relationship labels the given ontology ID. */
|
|
16
|
+
export const matchLabeledBy = (rel: ontology.Relationship, id: ontology.ID): boolean =>
|
|
17
|
+
ontology.matchRelationship(rel, {
|
|
18
|
+
from: id,
|
|
19
|
+
type: LABELED_BY_ONTOLOGY_RELATIONSHIP_TYPE,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
/** Returns the cached labels attached to the given ontology ID. */
|
|
23
|
+
export const cachedLabelsOf = (
|
|
24
|
+
relationships: query.Table<string, ontology.Relationship>,
|
|
25
|
+
labels: query.Table<Key, Label>,
|
|
26
|
+
id: ontology.ID,
|
|
27
|
+
): Label[] =>
|
|
28
|
+
labels.get(relationships.get((r) => matchLabeledBy(r, id)).map((r) => r.to.key));
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
// Code generated by Oracle. DO NOT EDIT.
|
|
11
|
+
|
|
12
|
+
import { color, uuid } from "@synnaxlabs/x";
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
|
|
15
|
+
export const keyZ = z.uuid();
|
|
16
|
+
export type Key = z.infer<typeof keyZ>;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Label is a tagging and categorization entity with a name and associated color. Labels
|
|
20
|
+
* can be attached to resources like ranges for organization and filtering.
|
|
21
|
+
*/
|
|
22
|
+
export const labelZ = z.object({
|
|
23
|
+
/** key is the unique identifier for this label. */
|
|
24
|
+
key: keyZ.default(uuid.create),
|
|
25
|
+
/** name is a human-readable name for the label. */
|
|
26
|
+
name: z.string().min(1),
|
|
27
|
+
/** color is the display color for visual identification of the label. */
|
|
28
|
+
color: color.colorZ,
|
|
29
|
+
});
|
|
30
|
+
export interface Label extends z.infer<typeof labelZ> {}
|
|
31
|
+
export interface New extends z.input<typeof labelZ> {}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
export * from "@/labjack/types.gen";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
export * as labjack from "@/labjack/external";
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
// Code generated by Oracle. DO NOT EDIT.
|
|
11
|
+
|
|
12
|
+
import { id } from "@synnaxlabs/x";
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
|
|
15
|
+
import { channel } from "@/channel";
|
|
16
|
+
import { device } from "@/device";
|
|
17
|
+
import { task } from "@/task";
|
|
18
|
+
|
|
19
|
+
export const TEMPERATURE_UNITS = ["C", "F", "K"] as const;
|
|
20
|
+
export const temperatureUnitsZ = z.enum(TEMPERATURE_UNITS);
|
|
21
|
+
export type TemperatureUnits = z.infer<typeof temperatureUnitsZ>;
|
|
22
|
+
|
|
23
|
+
export const THERMOCOUPLE_TYPES = [
|
|
24
|
+
"J",
|
|
25
|
+
"K",
|
|
26
|
+
"N",
|
|
27
|
+
"R",
|
|
28
|
+
"S",
|
|
29
|
+
"T",
|
|
30
|
+
"B",
|
|
31
|
+
"E",
|
|
32
|
+
"C",
|
|
33
|
+
] as const;
|
|
34
|
+
export const thermocoupleTypeZ = z.enum(THERMOCOUPLE_TYPES);
|
|
35
|
+
export type ThermocoupleType = z.infer<typeof thermocoupleTypeZ>;
|
|
36
|
+
|
|
37
|
+
/** BaseReadChannel carries the fields every LabJack read channel shares. */
|
|
38
|
+
export const baseReadChannelZ = z.object({
|
|
39
|
+
/** key uniquely identifies the channel within the task. */
|
|
40
|
+
key: z.string().default(id.create),
|
|
41
|
+
/** name is the human-readable channel name. */
|
|
42
|
+
name: z.string().default(""),
|
|
43
|
+
/** disabled is true when the channel is excluded from acquisition. */
|
|
44
|
+
disabled: z.boolean().default(false),
|
|
45
|
+
/** channel is the Synnax channel that raw samples are written to. */
|
|
46
|
+
channel: channel.keyZ.default(0),
|
|
47
|
+
/** port is the physical port the channel reads from (e.g. 'AIN0', 'DIO4'). */
|
|
48
|
+
port: z.string().default(""),
|
|
49
|
+
});
|
|
50
|
+
export interface BaseReadChannel extends z.infer<typeof baseReadChannelZ> {}
|
|
51
|
+
|
|
52
|
+
/** BaseWriteChannel carries the fields every LabJack write channel shares. */
|
|
53
|
+
export const baseWriteChannelZ = z.object({
|
|
54
|
+
/** key uniquely identifies the channel within the task. */
|
|
55
|
+
key: z.string().default(id.create),
|
|
56
|
+
/** disabled is true when the channel is excluded from the task. */
|
|
57
|
+
disabled: z.boolean().default(false),
|
|
58
|
+
/** cmdChannel is the Synnax channel commands are read from. */
|
|
59
|
+
cmdChannel: channel.keyZ.default(0),
|
|
60
|
+
/** stateChannel is the Synnax channel the output state is written to. */
|
|
61
|
+
stateChannel: channel.keyZ.default(0),
|
|
62
|
+
/** cmdChannelName is the human-readable name of the command channel. */
|
|
63
|
+
cmdChannelName: z.string().default(""),
|
|
64
|
+
/** stateChannelName is the human-readable name of the state channel. */
|
|
65
|
+
stateChannelName: z.string().default(""),
|
|
66
|
+
/** port is the physical port the channel writes to (e.g. 'DAC0', 'DIO4'). */
|
|
67
|
+
port: z.string().default(""),
|
|
68
|
+
});
|
|
69
|
+
export interface BaseWriteChannel extends z.infer<typeof baseWriteChannelZ> {}
|
|
70
|
+
|
|
71
|
+
export const scanConfigZ = task.scanConfigZ.extend({
|
|
72
|
+
tcpScanMultiplier: z.int32().default(10),
|
|
73
|
+
});
|
|
74
|
+
export interface ScanConfig extends z.infer<typeof scanConfigZ> {}
|
|
75
|
+
|
|
76
|
+
/** LinearScale maps raw values to engineering units with a slope and offset. */
|
|
77
|
+
export const linearScaleZ = z.object({
|
|
78
|
+
type: z.literal("linear"),
|
|
79
|
+
/** slope is the multiplier applied to the raw value. */
|
|
80
|
+
slope: z.number().default(1),
|
|
81
|
+
/** offset is the offset added after scaling. */
|
|
82
|
+
offset: z.number().default(0),
|
|
83
|
+
});
|
|
84
|
+
export interface LinearScale extends z.infer<typeof linearScaleZ> {}
|
|
85
|
+
|
|
86
|
+
/** MapScale maps a raw range linearly onto a scaled range. */
|
|
87
|
+
export const mapScaleZ = z.object({
|
|
88
|
+
type: z.literal("map"),
|
|
89
|
+
/** preScaledMin is the lower bound of the raw input range. */
|
|
90
|
+
preScaledMin: z.number().default(0),
|
|
91
|
+
/** preScaledMax is the upper bound of the raw input range. */
|
|
92
|
+
preScaledMax: z.number().default(1),
|
|
93
|
+
/** scaledMin is the lower bound of the scaled output range. */
|
|
94
|
+
scaledMin: z.number().default(0),
|
|
95
|
+
/** scaledMax is the upper bound of the scaled output range. */
|
|
96
|
+
scaledMax: z.number().default(1),
|
|
97
|
+
});
|
|
98
|
+
export interface MapScale extends z.infer<typeof mapScaleZ> {}
|
|
99
|
+
|
|
100
|
+
/** NoneScale applies no scaling; the raw value is used directly. */
|
|
101
|
+
export const noneScaleZ = z.object({
|
|
102
|
+
type: z.literal("none"),
|
|
103
|
+
});
|
|
104
|
+
export interface NoneScale extends z.infer<typeof noneScaleZ> {}
|
|
105
|
+
|
|
106
|
+
export const SCALE_TYPES = ["linear", "map", "none"] as const;
|
|
107
|
+
export const scaleTypeZ = z.enum(SCALE_TYPES);
|
|
108
|
+
export type ScaleType = z.infer<typeof scaleTypeZ>;
|
|
109
|
+
|
|
110
|
+
/** Scale determines how raw sensor values are transformed to engineering units. */
|
|
111
|
+
export const scaleZ = z.discriminatedUnion("type", [
|
|
112
|
+
linearScaleZ,
|
|
113
|
+
mapScaleZ,
|
|
114
|
+
noneScaleZ,
|
|
115
|
+
]);
|
|
116
|
+
export type Scale = LinearScale | MapScale | NoneScale;
|
|
117
|
+
|
|
118
|
+
export const SCALE_SCHEMAS: {
|
|
119
|
+
[K in ScaleType]: z.ZodType<Extract<Scale, { type: K }>>;
|
|
120
|
+
} = {
|
|
121
|
+
linear: linearScaleZ,
|
|
122
|
+
map: mapScaleZ,
|
|
123
|
+
none: noneScaleZ,
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/** AnalogWriteChannel drives an analog output on a DAC port. */
|
|
127
|
+
export const analogWriteChannelZ = baseWriteChannelZ.extend({
|
|
128
|
+
type: z.literal("analog"),
|
|
129
|
+
port: z.string().default("DAC0"),
|
|
130
|
+
});
|
|
131
|
+
export interface AnalogWriteChannel extends z.infer<typeof analogWriteChannelZ> {}
|
|
132
|
+
|
|
133
|
+
/** DigitalWriteChannel drives a digital output line on a DIO port. */
|
|
134
|
+
export const digitalWriteChannelZ = baseWriteChannelZ.extend({
|
|
135
|
+
type: z.literal("digital"),
|
|
136
|
+
port: z.string().default("DIO4"),
|
|
137
|
+
});
|
|
138
|
+
export interface DigitalWriteChannel extends z.infer<typeof digitalWriteChannelZ> {}
|
|
139
|
+
|
|
140
|
+
export const WRITE_CHANNEL_TYPES = ["analog", "digital"] as const;
|
|
141
|
+
export const writeChannelTypeZ = z.enum(WRITE_CHANNEL_TYPES);
|
|
142
|
+
export type WriteChannelType = z.infer<typeof writeChannelTypeZ>;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* WriteChannel is a single LabJack write channel. The type field selects the output
|
|
146
|
+
* mode.
|
|
147
|
+
*/
|
|
148
|
+
export const writeChannelZ = z.discriminatedUnion("type", [
|
|
149
|
+
analogWriteChannelZ,
|
|
150
|
+
digitalWriteChannelZ,
|
|
151
|
+
]);
|
|
152
|
+
export type WriteChannel = AnalogWriteChannel | DigitalWriteChannel;
|
|
153
|
+
|
|
154
|
+
export const WRITE_CHANNEL_SCHEMAS: {
|
|
155
|
+
[K in WriteChannelType]: z.ZodType<Extract<WriteChannel, { type: K }>>;
|
|
156
|
+
} = {
|
|
157
|
+
analog: analogWriteChannelZ,
|
|
158
|
+
digital: digitalWriteChannelZ,
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/** AnalogReadChannel reads a voltage from an analog input port. */
|
|
162
|
+
export const analogReadChannelZ = baseReadChannelZ.extend({
|
|
163
|
+
type: z.literal("analog"),
|
|
164
|
+
port: z.string().default("AIN0"),
|
|
165
|
+
/** range is the upper bound of the voltage input range, in Volts. */
|
|
166
|
+
range: z.number().default(10),
|
|
167
|
+
/**
|
|
168
|
+
* negChan is the negative channel for differential readings on T7 devices. 199
|
|
169
|
+
* selects single-ended.
|
|
170
|
+
*/
|
|
171
|
+
negChan: z.int32().default(199),
|
|
172
|
+
/** scale is the scale applied to raw samples after acquisition. */
|
|
173
|
+
scale: scaleZ.prefault({ type: "none" }),
|
|
174
|
+
});
|
|
175
|
+
export interface AnalogReadChannel extends z.infer<typeof analogReadChannelZ> {}
|
|
176
|
+
|
|
177
|
+
/** DigitalReadChannel reads a digital input line. */
|
|
178
|
+
export const digitalReadChannelZ = baseReadChannelZ.extend({
|
|
179
|
+
type: z.literal("digital"),
|
|
180
|
+
port: z.string().default("DIO4"),
|
|
181
|
+
});
|
|
182
|
+
export interface DigitalReadChannel extends z.infer<typeof digitalReadChannelZ> {}
|
|
183
|
+
|
|
184
|
+
/** ThermocoupleReadChannel reads temperature from a thermocouple. */
|
|
185
|
+
export const thermocoupleReadChannelZ = baseReadChannelZ.extend({
|
|
186
|
+
type: z.literal("thermocouple"),
|
|
187
|
+
/** port is the AIN port the thermocouple's positive lead is wired to. */
|
|
188
|
+
port: z.string().default("AIN0"),
|
|
189
|
+
/** thermocoupleType selects the thermocouple alloy type. */
|
|
190
|
+
thermocoupleType: thermocoupleTypeZ.default("K"),
|
|
191
|
+
/**
|
|
192
|
+
* negChan is the AIN port of the thermocouple's negative lead on T7 devices. 199
|
|
193
|
+
* selects single-ended.
|
|
194
|
+
*/
|
|
195
|
+
negChan: z.int32().default(199),
|
|
196
|
+
/**
|
|
197
|
+
* cjcSource selects the cold-junction-compensation source: the device sensor
|
|
198
|
+
* ('TEMPERATURE_DEVICE_K'), ambient air ('TEMPERATURE_AIR_K'), or an AIN port (e.g.
|
|
199
|
+
* 'AIN2').
|
|
200
|
+
*/
|
|
201
|
+
cjcSource: z.string().default("TEMPERATURE_DEVICE_K"),
|
|
202
|
+
/** cjcSlope is the CJC voltage-to-temperature slope, in Kelvin per Volt. */
|
|
203
|
+
cjcSlope: z.number().default(1),
|
|
204
|
+
/** cjcOffset is the CJC temperature offset, in Kelvins. */
|
|
205
|
+
cjcOffset: z.number().default(0),
|
|
206
|
+
/** units are the units of the temperature measurement. */
|
|
207
|
+
units: temperatureUnitsZ.default("K"),
|
|
208
|
+
/** scale is the scale applied to raw samples after acquisition. */
|
|
209
|
+
scale: scaleZ.prefault({ type: "none" }),
|
|
210
|
+
});
|
|
211
|
+
export interface ThermocoupleReadChannel extends z.infer<
|
|
212
|
+
typeof thermocoupleReadChannelZ
|
|
213
|
+
> {}
|
|
214
|
+
|
|
215
|
+
export const READ_CHANNEL_TYPES = ["analog", "digital", "thermocouple"] as const;
|
|
216
|
+
export const readChannelTypeZ = z.enum(READ_CHANNEL_TYPES);
|
|
217
|
+
export type ReadChannelType = z.infer<typeof readChannelTypeZ>;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* ReadChannel is a single LabJack read channel. The type field selects the input mode
|
|
221
|
+
* and the fields that accompany it.
|
|
222
|
+
*/
|
|
223
|
+
export const readChannelZ = z.discriminatedUnion("type", [
|
|
224
|
+
analogReadChannelZ,
|
|
225
|
+
digitalReadChannelZ,
|
|
226
|
+
thermocoupleReadChannelZ,
|
|
227
|
+
]);
|
|
228
|
+
export type ReadChannel =
|
|
229
|
+
AnalogReadChannel | DigitalReadChannel | ThermocoupleReadChannel;
|
|
230
|
+
|
|
231
|
+
export const READ_CHANNEL_SCHEMAS: {
|
|
232
|
+
[K in ReadChannelType]: z.ZodType<Extract<ReadChannel, { type: K }>>;
|
|
233
|
+
} = {
|
|
234
|
+
analog: analogReadChannelZ,
|
|
235
|
+
digital: digitalReadChannelZ,
|
|
236
|
+
thermocouple: thermocoupleReadChannelZ,
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export const writeConfigZ = task.writeConfigZ.extend({
|
|
240
|
+
stateRate: z.number().default(10),
|
|
241
|
+
channels: writeChannelZ.array().default(() => []),
|
|
242
|
+
});
|
|
243
|
+
export interface WriteConfig extends z.infer<typeof writeConfigZ> {}
|
|
244
|
+
|
|
245
|
+
export const readConfigZ = task.readConfigZ.extend({
|
|
246
|
+
device: device.keyZ.default(""),
|
|
247
|
+
channels: readChannelZ.array().default(() => []),
|
|
248
|
+
deviceScanBacklogWarnOnCount: z.uint32().default(0),
|
|
249
|
+
ljmScanBacklogWarnOnCount: z.uint32().default(0),
|
|
250
|
+
});
|
|
251
|
+
export interface ReadConfig extends z.infer<typeof readConfigZ> {}
|