@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/rack/rack.spec.ts
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
-
// licenses/BSL.txt.
|
|
5
|
-
//
|
|
6
|
-
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
-
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
-
// included in the file licenses/APL.txt.
|
|
9
|
-
|
|
10
|
-
import { id, TimeStamp, zod } from "@synnaxlabs/x";
|
|
11
|
-
import { describe, expect, it } from "vitest";
|
|
12
|
-
|
|
13
|
-
import { type rack } from "@/rack";
|
|
14
|
-
import { createTestClient } from "@/testutil/client";
|
|
15
|
-
|
|
16
|
-
const client = createTestClient();
|
|
17
|
-
|
|
18
|
-
describe("Rack", () => {
|
|
19
|
-
describe("create", () => {
|
|
20
|
-
it("should create a single rack", async () => {
|
|
21
|
-
const r = await client.racks.create({ name: "test" });
|
|
22
|
-
expect(r.key).toBeGreaterThan(0n);
|
|
23
|
-
});
|
|
24
|
-
it("should return an error if the rack doesn't have a name", async () => {
|
|
25
|
-
// @ts-expect-error - Testing for error
|
|
26
|
-
await expect(client.racks.create({})).rejects.toThrow(zod.ParseError);
|
|
27
|
-
});
|
|
28
|
-
it("should create a rack with a custom status", async () => {
|
|
29
|
-
const customStatus: rack.Status = {
|
|
30
|
-
key: "",
|
|
31
|
-
name: "",
|
|
32
|
-
variant: "success",
|
|
33
|
-
message: "Custom rack status",
|
|
34
|
-
description: "Rack is running",
|
|
35
|
-
time: TimeStamp.now(),
|
|
36
|
-
details: { rack: 0 },
|
|
37
|
-
};
|
|
38
|
-
const r = await client.racks.create({
|
|
39
|
-
name: "rack-with-status",
|
|
40
|
-
status: customStatus,
|
|
41
|
-
});
|
|
42
|
-
expect(r.key).toBeGreaterThan(0n);
|
|
43
|
-
const retrieved = await client.racks.retrieve({
|
|
44
|
-
key: r.key,
|
|
45
|
-
includeStatus: true,
|
|
46
|
-
});
|
|
47
|
-
expect(retrieved.status).toBeDefined();
|
|
48
|
-
expect(retrieved.status?.variant).toBe("success");
|
|
49
|
-
expect(retrieved.status?.message).toBe("Custom rack status");
|
|
50
|
-
expect(retrieved.status?.description).toBe("Rack is running");
|
|
51
|
-
expect(retrieved.status?.details?.rack).toBe(r.key);
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
describe("update", () => {
|
|
55
|
-
it("should update a rack if the key is provided", async () => {
|
|
56
|
-
const r = await client.racks.create({ name: "test" });
|
|
57
|
-
const updated = await client.racks.create({
|
|
58
|
-
key: r.key,
|
|
59
|
-
name: "updated",
|
|
60
|
-
});
|
|
61
|
-
expect(updated.name).toBe("updated");
|
|
62
|
-
const retrieved = await client.racks.retrieve({ key: r.key });
|
|
63
|
-
expect(retrieved.name).toBe("updated");
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
describe("retrieve", () => {
|
|
67
|
-
it("should retrieve a rack by its key", async () => {
|
|
68
|
-
const r = await client.racks.create({ name: "test" });
|
|
69
|
-
const retrieved = await client.racks.retrieve({ key: r.key });
|
|
70
|
-
expect(retrieved.key).toBe(r.key);
|
|
71
|
-
expect(retrieved.name).toBe("test");
|
|
72
|
-
});
|
|
73
|
-
it("should retrieve a rack by its name", async () => {
|
|
74
|
-
const name = `${TimeStamp.now().toString()}-${Math.random()}`;
|
|
75
|
-
const r = await client.racks.create({ name });
|
|
76
|
-
const retrieved = await client.racks.retrieve({ name });
|
|
77
|
-
expect(retrieved.key).toBe(r.key);
|
|
78
|
-
expect(retrieved.name).toEqual(name);
|
|
79
|
-
});
|
|
80
|
-
it("should retrieve racks by search term", async () => {
|
|
81
|
-
const prefix = `searchable-rack-${id.create()}`;
|
|
82
|
-
const names = [`${prefix}-1`, `${prefix}-2`];
|
|
83
|
-
await client.racks.create(names.map((name) => ({ name })));
|
|
84
|
-
await expect
|
|
85
|
-
.poll(async () => {
|
|
86
|
-
const results = await client.racks.retrieve({ searchTerm: prefix });
|
|
87
|
-
return results.map((r) => r.name).sort();
|
|
88
|
-
})
|
|
89
|
-
.toEqual(names);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
describe("integrations", () => {
|
|
93
|
-
it("should create a rack with integrations and retrieve them", async () => {
|
|
94
|
-
const r = await client.racks.create({
|
|
95
|
-
name: "rack-with-integrations",
|
|
96
|
-
integrations: ["ni", "opc", "modbus"],
|
|
97
|
-
});
|
|
98
|
-
const retrieved = await client.racks.retrieve({ key: r.key });
|
|
99
|
-
expect(retrieved.integrations).toEqual(["ni", "opc", "modbus"]);
|
|
100
|
-
});
|
|
101
|
-
it("should filter racks by integration", async () => {
|
|
102
|
-
const r1 = await client.racks.create({
|
|
103
|
-
name: "rack-ni-opc",
|
|
104
|
-
integrations: ["ni", "opc"],
|
|
105
|
-
});
|
|
106
|
-
const r2 = await client.racks.create({
|
|
107
|
-
name: "rack-modbus-only",
|
|
108
|
-
integrations: ["modbus"],
|
|
109
|
-
});
|
|
110
|
-
const results = await client.racks.retrieve({ integration: "ni" });
|
|
111
|
-
const keys = results.map((r) => r.key);
|
|
112
|
-
expect(keys).toContain(r1.key);
|
|
113
|
-
expect(keys).not.toContain(r2.key);
|
|
114
|
-
});
|
|
115
|
-
it("should update integrations on upsert", async () => {
|
|
116
|
-
const r = await client.racks.create({
|
|
117
|
-
name: "rack-update-integrations",
|
|
118
|
-
integrations: ["ni"],
|
|
119
|
-
});
|
|
120
|
-
await client.racks.create({
|
|
121
|
-
key: r.key,
|
|
122
|
-
name: "rack-update-integrations",
|
|
123
|
-
integrations: ["ni", "opc", "arc"],
|
|
124
|
-
});
|
|
125
|
-
const retrieved = await client.racks.retrieve({ key: r.key });
|
|
126
|
-
expect(retrieved.integrations).toEqual(["ni", "opc", "arc"]);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
describe("tasks", () => {
|
|
130
|
-
it("should list the tasks on a rack", async () => {
|
|
131
|
-
const r = await client.racks.create({ name: "test" });
|
|
132
|
-
const tasks = await r.listTasks();
|
|
133
|
-
expect(tasks).toHaveLength(0);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
describe("status", () => {
|
|
137
|
-
it("should include the rack's status when includeStatus is true", async () => {
|
|
138
|
-
const r = await client.racks.create({ name: "test" });
|
|
139
|
-
let status: rack.Status | undefined;
|
|
140
|
-
await expect
|
|
141
|
-
.poll(async () => {
|
|
142
|
-
const retrieved = await client.racks.retrieve({
|
|
143
|
-
key: r.key,
|
|
144
|
-
includeStatus: true,
|
|
145
|
-
});
|
|
146
|
-
status = retrieved.status;
|
|
147
|
-
return status;
|
|
148
|
-
})
|
|
149
|
-
.toBeDefined();
|
|
150
|
-
expect(status?.details?.rack).toBe(r.key);
|
|
151
|
-
});
|
|
152
|
-
it("should include the status for multiple racks", async () => {
|
|
153
|
-
const r1 = await client.racks.create({ name: "test1" });
|
|
154
|
-
const r2 = await client.racks.create({ name: "test2" });
|
|
155
|
-
let statuses: (rack.Status | undefined)[] = [];
|
|
156
|
-
await expect
|
|
157
|
-
.poll(async () => {
|
|
158
|
-
const retrieved = await client.racks.retrieve({
|
|
159
|
-
keys: [r1.key, r2.key],
|
|
160
|
-
includeStatus: true,
|
|
161
|
-
});
|
|
162
|
-
statuses = retrieved.map((r) => r.status);
|
|
163
|
-
return statuses.every((s) => s != null);
|
|
164
|
-
})
|
|
165
|
-
.toBe(true);
|
|
166
|
-
expect(statuses).toHaveLength(2);
|
|
167
|
-
expect(statuses[0]?.details?.rack).toBe(r1.key);
|
|
168
|
-
expect(statuses[1]?.details?.rack).toBe(r2.key);
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
-
});
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
-
// licenses/BSL.txt.
|
|
5
|
-
//
|
|
6
|
-
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
-
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
-
// included in the file licenses/APL.txt.
|
|
9
|
-
|
|
10
|
-
import { TimeRange } from "@synnaxlabs/x";
|
|
11
|
-
import { describe, expect, it } from "vitest";
|
|
12
|
-
|
|
13
|
-
import { AuthError, NotFoundError } from "@/errors";
|
|
14
|
-
import { ranger } from "@/ranger";
|
|
15
|
-
import { createTestClientWithPolicy } from "@/testutil/access";
|
|
16
|
-
import { createTestClient } from "@/testutil/client";
|
|
17
|
-
|
|
18
|
-
const client = createTestClient();
|
|
19
|
-
|
|
20
|
-
describe("range", () => {
|
|
21
|
-
describe("access control", () => {
|
|
22
|
-
it("should deny access when no retrieve policy exists", async () => {
|
|
23
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
24
|
-
name: "test",
|
|
25
|
-
objects: [],
|
|
26
|
-
actions: [],
|
|
27
|
-
});
|
|
28
|
-
const randomRange = await client.ranges.create({
|
|
29
|
-
name: "test",
|
|
30
|
-
timeRange: new TimeRange(1n, 1000n),
|
|
31
|
-
color: "#E774D0",
|
|
32
|
-
});
|
|
33
|
-
await expect(userClient.ranges.retrieve(randomRange.key)).rejects.toThrow(
|
|
34
|
-
AuthError,
|
|
35
|
-
);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it("should allow the caller to retrieve ranges with the correct policy", async () => {
|
|
39
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
40
|
-
name: "test",
|
|
41
|
-
objects: [ranger.ontologyID("")],
|
|
42
|
-
actions: ["retrieve"],
|
|
43
|
-
});
|
|
44
|
-
const randomRange = await client.ranges.create({
|
|
45
|
-
name: "test",
|
|
46
|
-
timeRange: new TimeRange(1n, 1000n),
|
|
47
|
-
color: "#E774D0",
|
|
48
|
-
});
|
|
49
|
-
const retrieved = await userClient.ranges.retrieve(randomRange.key);
|
|
50
|
-
expect(retrieved.key).toBe(randomRange.key);
|
|
51
|
-
expect(retrieved.name).toBe(randomRange.name);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it("should allow the caller to create ranges with the correct policy", async () => {
|
|
55
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
56
|
-
name: "test",
|
|
57
|
-
objects: [ranger.ontologyID("")],
|
|
58
|
-
actions: ["create"],
|
|
59
|
-
});
|
|
60
|
-
await userClient.ranges.create({
|
|
61
|
-
name: "test",
|
|
62
|
-
timeRange: new TimeRange(1n, 1000n),
|
|
63
|
-
color: "#E774D0",
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
it("should deny access when no create policy exists", async () => {
|
|
68
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
69
|
-
name: "test",
|
|
70
|
-
objects: [ranger.ontologyID("")],
|
|
71
|
-
actions: [],
|
|
72
|
-
});
|
|
73
|
-
await expect(
|
|
74
|
-
userClient.ranges.create({
|
|
75
|
-
name: "test",
|
|
76
|
-
timeRange: new TimeRange(1n, 1000n),
|
|
77
|
-
color: "#E774D0",
|
|
78
|
-
}),
|
|
79
|
-
).rejects.toThrow(AuthError);
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it("should allow the caller to delete ranges with the correct policy", async () => {
|
|
83
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
84
|
-
name: "test",
|
|
85
|
-
objects: [ranger.ontologyID("")],
|
|
86
|
-
actions: ["delete"],
|
|
87
|
-
});
|
|
88
|
-
const randomRange = await client.ranges.create({
|
|
89
|
-
name: "test",
|
|
90
|
-
timeRange: new TimeRange(1n, 1000n),
|
|
91
|
-
color: "#E774D0",
|
|
92
|
-
});
|
|
93
|
-
await userClient.ranges.delete(randomRange.key);
|
|
94
|
-
await expect(userClient.ranges.retrieve(randomRange.key)).rejects.toThrow(
|
|
95
|
-
NotFoundError,
|
|
96
|
-
);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it("should deny access when no delete policy exists", async () => {
|
|
100
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
101
|
-
name: "test",
|
|
102
|
-
objects: [ranger.ontologyID("")],
|
|
103
|
-
actions: [],
|
|
104
|
-
});
|
|
105
|
-
const randomRange = await client.ranges.create({
|
|
106
|
-
name: "test",
|
|
107
|
-
timeRange: new TimeRange(1n, 1000n),
|
|
108
|
-
color: "#E774D0",
|
|
109
|
-
});
|
|
110
|
-
await expect(userClient.ranges.delete(randomRange.key)).rejects.toThrow(
|
|
111
|
-
AuthError,
|
|
112
|
-
);
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
});
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
-
// licenses/BSL.txt.
|
|
5
|
-
//
|
|
6
|
-
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
-
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
-
// included in the file licenses/APL.txt.
|
|
9
|
-
|
|
10
|
-
import { describe, expect, it } from "vitest";
|
|
11
|
-
|
|
12
|
-
import { ranger } from "@/ranger";
|
|
13
|
-
|
|
14
|
-
describe("alias", () => {
|
|
15
|
-
describe("ontologyID", () => {
|
|
16
|
-
it("should create an ontology ID with the correct type and composite key", () => {
|
|
17
|
-
const id = ranger.alias.ontologyID("range-uuid-123", 42);
|
|
18
|
-
expect(id.type).toBe("range-alias");
|
|
19
|
-
expect(id.key).toBe("range-uuid-123---42");
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it("should match the key format produced by createKey", () => {
|
|
23
|
-
const rangeKey = "abc-def";
|
|
24
|
-
const channelKey = 7;
|
|
25
|
-
const id = ranger.alias.ontologyID(rangeKey, channelKey);
|
|
26
|
-
const key = ranger.alias.createKey({ range: rangeKey, channel: channelKey });
|
|
27
|
-
expect(id.key).toBe(key);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
describe("TYPE_ONTOLOGY_ID", () => {
|
|
32
|
-
it("should have the correct type and an empty key", () => {
|
|
33
|
-
expect(ranger.alias.TYPE_ONTOLOGY_ID.type).toBe("range-alias");
|
|
34
|
-
expect(ranger.alias.TYPE_ONTOLOGY_ID.key).toBe("");
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
describe("createKey", () => {
|
|
39
|
-
it("should create a composite key from range and channel", () => {
|
|
40
|
-
const key = ranger.alias.createKey({ range: "my-range", channel: 10 });
|
|
41
|
-
expect(key).toBe("my-range---10");
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
describe("decodeDeleteChange", () => {
|
|
46
|
-
it("should decode a composite key into range and channel", () => {
|
|
47
|
-
const decoded = ranger.alias.decodeDeleteChange("my-range---10");
|
|
48
|
-
expect(decoded.range).toBe("my-range");
|
|
49
|
-
expect(decoded.channel).toBe(10);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
});
|
|
@@ -1,343 +0,0 @@
|
|
|
1
|
-
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
-
//
|
|
3
|
-
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
-
// licenses/BSL.txt.
|
|
5
|
-
//
|
|
6
|
-
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
-
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
-
// included in the file licenses/APL.txt.
|
|
9
|
-
|
|
10
|
-
import { DataType, id, math, TimeSpan, TimeStamp, uuid } from "@synnaxlabs/x";
|
|
11
|
-
import { describe, expect, it } from "vitest";
|
|
12
|
-
|
|
13
|
-
import { NotFoundError } from "@/errors";
|
|
14
|
-
import { ranger } from "@/ranger";
|
|
15
|
-
import { createTestClient } from "@/testutil/client";
|
|
16
|
-
|
|
17
|
-
const client = createTestClient();
|
|
18
|
-
|
|
19
|
-
describe("range", () => {
|
|
20
|
-
describe("payload", () => {
|
|
21
|
-
it("should validate the time range", () => {
|
|
22
|
-
const payload = ranger.payloadZ.parse({
|
|
23
|
-
name: "My New One Second Range",
|
|
24
|
-
key: uuid.create(),
|
|
25
|
-
timeRange: { start: 0, end: 1 },
|
|
26
|
-
});
|
|
27
|
-
expect(payload).toBeDefined();
|
|
28
|
-
expect(payload.timeRange.start.valueOf()).toBe(0n);
|
|
29
|
-
expect(payload.timeRange.end.valueOf()).toBe(1n);
|
|
30
|
-
});
|
|
31
|
-
it("should not validate the time range if it is invalid", () => {
|
|
32
|
-
const input = {
|
|
33
|
-
name: "My New One Second Range",
|
|
34
|
-
key: uuid.create(),
|
|
35
|
-
timeRange: { start: 1, end: 0 },
|
|
36
|
-
};
|
|
37
|
-
expect(() => ranger.payloadZ.parse(input)).toThrow(
|
|
38
|
-
"Time range start time must be before or equal to time range end time",
|
|
39
|
-
);
|
|
40
|
-
});
|
|
41
|
-
it("should validate the time range if the end is less than or equal to the maximum value of an int64", () => {
|
|
42
|
-
const input = {
|
|
43
|
-
name: "range with end greater than max int64",
|
|
44
|
-
key: uuid.create(),
|
|
45
|
-
timeRange: { start: 1, end: math.MAX_INT64 },
|
|
46
|
-
};
|
|
47
|
-
const payload = ranger.payloadZ.parse(input);
|
|
48
|
-
expect(payload).toBeDefined();
|
|
49
|
-
expect(payload.timeRange.end.valueOf()).toBe(math.MAX_INT64);
|
|
50
|
-
});
|
|
51
|
-
it("should not validate the time range if the end is greater than the maximum value of an int64", () => {
|
|
52
|
-
const input = {
|
|
53
|
-
name: "range with end greater than max int64",
|
|
54
|
-
key: uuid.create(),
|
|
55
|
-
timeRange: { start: 1, end: math.MAX_INT64 + 1n },
|
|
56
|
-
};
|
|
57
|
-
expect(() => ranger.payloadZ.parse(input)).toThrow(
|
|
58
|
-
"Time range end time must be less than or equal to the maximum value of an int64",
|
|
59
|
-
);
|
|
60
|
-
});
|
|
61
|
-
it("should validate the time range if start is greater than the minimum value of an int64", () => {
|
|
62
|
-
const input = {
|
|
63
|
-
name: "range with start greater than min int64",
|
|
64
|
-
key: uuid.create(),
|
|
65
|
-
timeRange: { start: math.MIN_INT64, end: 0 },
|
|
66
|
-
};
|
|
67
|
-
const payload = ranger.payloadZ.parse(input);
|
|
68
|
-
expect(payload).toBeDefined();
|
|
69
|
-
expect(payload.timeRange.start.valueOf()).toBe(math.MIN_INT64);
|
|
70
|
-
expect(payload.timeRange.end.valueOf()).toBe(0n);
|
|
71
|
-
});
|
|
72
|
-
it("should not validate the time range if start is less than the minimum value of an int64", () => {
|
|
73
|
-
const input = {
|
|
74
|
-
name: "range with start less than min int64",
|
|
75
|
-
key: uuid.create(),
|
|
76
|
-
timeRange: { start: -1n * 2n ** 63n - 1n, end: 0 },
|
|
77
|
-
};
|
|
78
|
-
expect(() => ranger.payloadZ.parse(input)).toThrow(
|
|
79
|
-
"Time range start time must be greater than or equal to the minimum value of an int64",
|
|
80
|
-
);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
describe("create", () => {
|
|
84
|
-
it("should create a single range", async () => {
|
|
85
|
-
const timeRange = TimeStamp.now().spanRange(TimeSpan.seconds(1));
|
|
86
|
-
const range = await client.ranges.create({
|
|
87
|
-
name: "My New One Second Range",
|
|
88
|
-
timeRange,
|
|
89
|
-
color: "#E774D0",
|
|
90
|
-
});
|
|
91
|
-
expect(range.key).not.toHaveLength(0);
|
|
92
|
-
expect(timeRange).toEqual(range.timeRange);
|
|
93
|
-
expect(range.color).toEqual([231, 116, 208, 1]);
|
|
94
|
-
});
|
|
95
|
-
it("should create multiple ranges", async () => {
|
|
96
|
-
const ranges: ranger.New[] = [
|
|
97
|
-
{
|
|
98
|
-
name: "My New One Second Range",
|
|
99
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
name: "My New Two Second Range",
|
|
103
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(2)),
|
|
104
|
-
},
|
|
105
|
-
];
|
|
106
|
-
const createdRanges = await client.ranges.create(ranges);
|
|
107
|
-
expect(createdRanges).toHaveLength(2);
|
|
108
|
-
expect(createdRanges[0].key).not.toHaveLength(0);
|
|
109
|
-
expect(createdRanges[1].key).not.toHaveLength(0);
|
|
110
|
-
expect(createdRanges[0].timeRange).toEqual(ranges[0].timeRange);
|
|
111
|
-
expect(createdRanges[1].timeRange).toEqual(ranges[1].timeRange);
|
|
112
|
-
});
|
|
113
|
-
it("should create a range with a parent", async () => {
|
|
114
|
-
const parentRange = await client.ranges.create({
|
|
115
|
-
name: "My New Parent Range",
|
|
116
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
117
|
-
});
|
|
118
|
-
await client.ranges.create(
|
|
119
|
-
{
|
|
120
|
-
name: "My New Child Range",
|
|
121
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
122
|
-
},
|
|
123
|
-
{ parent: parentRange.ontologyID },
|
|
124
|
-
);
|
|
125
|
-
const children = await client.ontology.retrieveChildren(parentRange.ontologyID);
|
|
126
|
-
expect(children).toHaveLength(1);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
describe("delete", () => {
|
|
131
|
-
it("should delete a single range", async () => {
|
|
132
|
-
const timeRange = TimeStamp.now().spanRange(TimeSpan.seconds(1));
|
|
133
|
-
const range = await client.ranges.create({
|
|
134
|
-
name: "My New One Second Range",
|
|
135
|
-
timeRange,
|
|
136
|
-
});
|
|
137
|
-
await client.ranges.delete(range.key);
|
|
138
|
-
await expect(async () => await client.ranges.retrieve(range.key)).rejects.toThrow(
|
|
139
|
-
NotFoundError,
|
|
140
|
-
);
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
describe("rename", () => {
|
|
145
|
-
it("should rename a single range", async () => {
|
|
146
|
-
const timeRange = TimeStamp.now().spanRange(TimeSpan.seconds(1));
|
|
147
|
-
const range = await client.ranges.create({
|
|
148
|
-
name: "My New One Second Range",
|
|
149
|
-
timeRange,
|
|
150
|
-
});
|
|
151
|
-
await client.ranges.rename(range.key, "My New One Second Range Renamed");
|
|
152
|
-
const renamed = await client.ranges.retrieve(range.key);
|
|
153
|
-
expect(renamed.name).toEqual("My New One Second Range Renamed");
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
describe("retrieve", () => {
|
|
158
|
-
it("should retrieve a range by key", async () => {
|
|
159
|
-
const timeRange = TimeStamp.now().spanRange(TimeSpan.seconds(1));
|
|
160
|
-
const range = await client.ranges.create({
|
|
161
|
-
name: "My New One Second Range",
|
|
162
|
-
timeRange,
|
|
163
|
-
});
|
|
164
|
-
const retrieved = await client.ranges.retrieve(range.key);
|
|
165
|
-
expect(retrieved.key).toEqual(range.key);
|
|
166
|
-
expect(retrieved.timeRange).toEqual(range.timeRange);
|
|
167
|
-
});
|
|
168
|
-
it("should retrieve a range by name", async () => {
|
|
169
|
-
const timeRange = TimeStamp.now().spanRange(TimeSpan.seconds(1));
|
|
170
|
-
const range = await client.ranges.create({
|
|
171
|
-
name: "My New Three Second Range",
|
|
172
|
-
timeRange,
|
|
173
|
-
});
|
|
174
|
-
const retrieved = await client.ranges.retrieve([range.name]);
|
|
175
|
-
expect(retrieved.length).toBeGreaterThan(0);
|
|
176
|
-
expect(retrieved[0].name).toEqual(range.name);
|
|
177
|
-
});
|
|
178
|
-
it("should retrieve ranges that overlap with the given time range", async () => {
|
|
179
|
-
const timeRange = TimeStamp.hours(500).spanRange(TimeSpan.seconds(1));
|
|
180
|
-
const range = await client.ranges.create({
|
|
181
|
-
name: "My New One Second Range",
|
|
182
|
-
timeRange,
|
|
183
|
-
});
|
|
184
|
-
const retrieved = await client.ranges.retrieve(timeRange);
|
|
185
|
-
expect(retrieved.length).toBeGreaterThan(0);
|
|
186
|
-
expect(retrieved.map((r) => r.key)).toContain(range.key);
|
|
187
|
-
});
|
|
188
|
-
it("should retrieve ranges by search term", async () => {
|
|
189
|
-
const prefix = `searchable-range-${id.create()}`;
|
|
190
|
-
const timeRange = TimeStamp.now().spanRange(TimeSpan.seconds(1));
|
|
191
|
-
const names = [`${prefix}-1`, `${prefix}-2`];
|
|
192
|
-
await client.ranges.create(names.map((name) => ({ name, timeRange })));
|
|
193
|
-
await expect
|
|
194
|
-
.poll(async () => {
|
|
195
|
-
const results = await client.ranges.retrieve({ searchTerm: prefix });
|
|
196
|
-
return results.map((r) => r.name).sort();
|
|
197
|
-
})
|
|
198
|
-
.toEqual(names);
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
describe("retrieveParent", () => {
|
|
203
|
-
it("should retrieve the parent of a range", async () => {
|
|
204
|
-
const parentRange = await client.ranges.create({
|
|
205
|
-
name: "My New Parent Range",
|
|
206
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
207
|
-
});
|
|
208
|
-
const childRange = await client.ranges.create(
|
|
209
|
-
{
|
|
210
|
-
name: "My New Child Range",
|
|
211
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
212
|
-
},
|
|
213
|
-
{ parent: parentRange.ontologyID },
|
|
214
|
-
);
|
|
215
|
-
const parent = await childRange.retrieveParent();
|
|
216
|
-
expect(parent?.key).toEqual(parentRange.key);
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
describe("KV", () => {
|
|
221
|
-
it("should set, get, and delete a single key", async () => {
|
|
222
|
-
const rng = await client.ranges.create({
|
|
223
|
-
name: "My New One Second Range",
|
|
224
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
225
|
-
});
|
|
226
|
-
await rng.kv.set("foo", "bar");
|
|
227
|
-
const val = await rng.kv.get("foo");
|
|
228
|
-
expect(val).toEqual("bar");
|
|
229
|
-
await rng.kv.delete("foo");
|
|
230
|
-
await expect(async () => await rng.kv.get("foo")).rejects.toThrow(NotFoundError);
|
|
231
|
-
});
|
|
232
|
-
|
|
233
|
-
it("should set and get multiple keys", async () => {
|
|
234
|
-
const rng = await client.ranges.create({
|
|
235
|
-
name: "My New One Second Range",
|
|
236
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
237
|
-
});
|
|
238
|
-
await rng.kv.set({ foo: "bar", baz: "qux" });
|
|
239
|
-
const res = await rng.kv.list();
|
|
240
|
-
expect(res).toEqual({ foo: "bar", baz: "qux" });
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
it("should list all keys", async () => {
|
|
244
|
-
const rng = await client.ranges.create({
|
|
245
|
-
name: "My New One Second Range",
|
|
246
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
247
|
-
});
|
|
248
|
-
await rng.kv.set({ foo: "bar", baz: "qux" });
|
|
249
|
-
const res = await rng.kv.list();
|
|
250
|
-
expect(res).toEqual({ foo: "bar", baz: "qux" });
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
describe("label", () => {
|
|
255
|
-
it("should set and get a label for the range", async () => {
|
|
256
|
-
const rng = await client.ranges.create({
|
|
257
|
-
name: "My New One Second Range",
|
|
258
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
259
|
-
});
|
|
260
|
-
const label = await client.labels.create({
|
|
261
|
-
name: "My New Label",
|
|
262
|
-
color: "#E774D0",
|
|
263
|
-
});
|
|
264
|
-
await rng.addLabel(label.key);
|
|
265
|
-
const newRange = await client.ranges.retrieve({
|
|
266
|
-
keys: [rng.key],
|
|
267
|
-
includeLabels: true,
|
|
268
|
-
});
|
|
269
|
-
expect(newRange[0].labels).toHaveLength(1);
|
|
270
|
-
expect(newRange[0].labels?.[0]).toEqual(label);
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
describe("parent", () => {
|
|
275
|
-
it("should set and get a parent for the range", async () => {
|
|
276
|
-
const parent = await client.ranges.create({
|
|
277
|
-
name: "My New One Second Range",
|
|
278
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
279
|
-
});
|
|
280
|
-
const child = await client.ranges.create({
|
|
281
|
-
name: "My New One Second Range",
|
|
282
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
283
|
-
});
|
|
284
|
-
await client.ontology.addChildren(parent.ontologyID, child.ontologyID);
|
|
285
|
-
const newParent = await client.ranges.retrieve({
|
|
286
|
-
keys: [child.key],
|
|
287
|
-
includeParent: true,
|
|
288
|
-
});
|
|
289
|
-
expect(newParent[0].parent).toEqual(parent.payload);
|
|
290
|
-
});
|
|
291
|
-
});
|
|
292
|
-
|
|
293
|
-
describe("Alias", () => {
|
|
294
|
-
describe("set + resolve", () => {
|
|
295
|
-
it("should set and resolve an alias for the range", async () => {
|
|
296
|
-
const ch = await client.channels.create({
|
|
297
|
-
name: id.create(),
|
|
298
|
-
dataType: DataType.FLOAT32,
|
|
299
|
-
virtual: true,
|
|
300
|
-
});
|
|
301
|
-
const rng = await client.ranges.create({
|
|
302
|
-
name: "My New One Second Range",
|
|
303
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
304
|
-
});
|
|
305
|
-
await rng.setAlias(ch.key, "myalias");
|
|
306
|
-
const resolved = await rng.resolveAlias("myalias");
|
|
307
|
-
expect(resolved).toEqual(ch.key);
|
|
308
|
-
});
|
|
309
|
-
});
|
|
310
|
-
describe("deleteAlias", () => {
|
|
311
|
-
it("should remove an alias for the range", async () => {
|
|
312
|
-
const ch = await client.channels.create({
|
|
313
|
-
name: id.create(),
|
|
314
|
-
dataType: DataType.FLOAT32,
|
|
315
|
-
virtual: true,
|
|
316
|
-
});
|
|
317
|
-
const rng = await client.ranges.create({
|
|
318
|
-
name: "My New One Second Range",
|
|
319
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
320
|
-
});
|
|
321
|
-
await rng.setAlias(ch.key, "myalias");
|
|
322
|
-
await rng.deleteAlias(ch.key);
|
|
323
|
-
expect(await rng.resolveAlias("myalias")).toBeUndefined();
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
describe("list", () => {
|
|
327
|
-
it("should list the aliases for the range", async () => {
|
|
328
|
-
const ch = await client.channels.create({
|
|
329
|
-
name: id.create(),
|
|
330
|
-
dataType: DataType.FLOAT32,
|
|
331
|
-
virtual: true,
|
|
332
|
-
});
|
|
333
|
-
const rng = await client.ranges.create({
|
|
334
|
-
name: "My New One Second Range",
|
|
335
|
-
timeRange: TimeStamp.now().spanRange(TimeSpan.seconds(1)),
|
|
336
|
-
});
|
|
337
|
-
await rng.setAlias(ch.key, "myalias");
|
|
338
|
-
const aliases = await rng.listAliases();
|
|
339
|
-
expect(aliases).toEqual({ [ch.key]: "myalias" });
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
});
|
|
343
|
-
});
|