@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
|
@@ -1,173 +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 { Series } from "@synnaxlabs/client";
|
|
11
|
-
|
|
12
|
-
// Construct a series from an array of numbers. In this case, the series will
|
|
13
|
-
// automatically be of type float64.
|
|
14
|
-
let series = new Series([1, 2, 3, 4, 5]);
|
|
15
|
-
|
|
16
|
-
// Construct a series from an array of numbers, but this time we specify the type
|
|
17
|
-
// explicitly.
|
|
18
|
-
series = new Series({ data: [1, 2, 3, 4, 5], dataType: "float32" });
|
|
19
|
-
|
|
20
|
-
// Construct a series from an array of strings. In this case, the series will
|
|
21
|
-
// automatically be of type string.
|
|
22
|
-
series = new Series(["apple", "banana", "cherry"]);
|
|
23
|
-
|
|
24
|
-
// Construct a series from a Float32Array. This is the most efficient way to construct a
|
|
25
|
-
// series from a large amount of data.
|
|
26
|
-
series = new Series(new Float32Array([1, 2, 3, 4, 5]));
|
|
27
|
-
|
|
28
|
-
// Construct a series from a JSON object. This is useful when you have a series that has
|
|
29
|
-
// been serialized to JSON.
|
|
30
|
-
series = new Series([{ red: "cherry" }, { yellow: "banana" }, { orange: "orange" }]);
|
|
31
|
-
|
|
32
|
-
series = new Series([1, "a", 3, "b", 5]);
|
|
33
|
-
|
|
34
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
35
|
-
|
|
36
|
-
console.log(series.at(0)); // 1
|
|
37
|
-
console.log(series.at(-1)); // 5
|
|
38
|
-
|
|
39
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
40
|
-
// Is it a number? Is it a string? Who knows?
|
|
41
|
-
let v = series.at(0);
|
|
42
|
-
|
|
43
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
44
|
-
let easierSeries = series.as("number");
|
|
45
|
-
// Now we have a guarantee that this is a series of numbers.
|
|
46
|
-
v = easierSeries.at(0);
|
|
47
|
-
console.log(v);
|
|
48
|
-
|
|
49
|
-
series = new Series({ data: [1, 2, 3, 4, 5], dataType: "int8" });
|
|
50
|
-
const ta = series.data;
|
|
51
|
-
console.log(ta); // Int8Array [ 1, 2, 3, 4, 5 ]
|
|
52
|
-
|
|
53
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
54
|
-
let jsArray = [...series];
|
|
55
|
-
console.log(jsArray); // [ 1, 2, 3, 4, 5 ]
|
|
56
|
-
const jsArray2 = Array.from(series);
|
|
57
|
-
console.log(jsArray2); // [ 1, 2, 3, 4, 5 ]
|
|
58
|
-
|
|
59
|
-
series = new Series([{ red: "cherry", yellow: "banana", orange: "orange" }]);
|
|
60
|
-
jsArray = [...series];
|
|
61
|
-
console.log(jsArray); // [ { red: 'cherry', yellow: 'banana', orange: 'orange' } ]
|
|
62
|
-
|
|
63
|
-
import { TimeRange, TimeSpan, TimeStamp } from "@synnaxlabs/client";
|
|
64
|
-
|
|
65
|
-
const start = TimeStamp.now();
|
|
66
|
-
|
|
67
|
-
const tr = new TimeRange(start, start.add(TimeSpan.seconds(5)));
|
|
68
|
-
|
|
69
|
-
series = new Series({
|
|
70
|
-
data: [1, 2, 3, 4, 5],
|
|
71
|
-
dataType: "float64",
|
|
72
|
-
timeRange: tr,
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
76
|
-
console.log(series.length); // 5
|
|
77
|
-
|
|
78
|
-
const stringSeries = new Series(["apple", "banana", "cherry"]);
|
|
79
|
-
console.log(stringSeries.length); // 3
|
|
80
|
-
|
|
81
|
-
import { DataType } from "@synnaxlabs/client";
|
|
82
|
-
|
|
83
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
84
|
-
console.log(series.dataType.toString()); // "float64"
|
|
85
|
-
console.log(series.dataType.equals(DataType.FLOAT64)); // true
|
|
86
|
-
|
|
87
|
-
series = new Series([1, 2, 3, 4, 5]);
|
|
88
|
-
console.log(series.max); // 5
|
|
89
|
-
console.log(series.min); // 1
|
|
90
|
-
console.log(series.bounds); // { lower: 1, upper: 5 }
|
|
91
|
-
|
|
92
|
-
import { Frame } from "@synnaxlabs/client";
|
|
93
|
-
|
|
94
|
-
// Construct a frame for the given channel names.
|
|
95
|
-
let frame = new Frame({
|
|
96
|
-
channel1: new Series([1, 2, 3, 4, 5]),
|
|
97
|
-
channel2: new Series([5, 4, 3, 2, 1]),
|
|
98
|
-
channel3: new Series([1, 1, 1, 1, 1]),
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
// Construct a frame for the given channel keys
|
|
102
|
-
frame = new Frame({
|
|
103
|
-
1: new Series([1, 2, 3, 4, 5]),
|
|
104
|
-
2: new Series([5, 4, 3, 2, 1]),
|
|
105
|
-
// Notice that series do not need to be the same length.
|
|
106
|
-
3: new Series([1, 1, 1]),
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
// Construct a frame from a map
|
|
110
|
-
frame = new Frame(
|
|
111
|
-
new Map([
|
|
112
|
-
["channel1", new Series([1, 2, 3, 4, 5])],
|
|
113
|
-
["channel2", new Series([5, 4, 3, 2, 1])],
|
|
114
|
-
["channel3", new Series([1, 1, 1, 1, 1])],
|
|
115
|
-
]),
|
|
116
|
-
);
|
|
117
|
-
|
|
118
|
-
// Or from an array of keys and series
|
|
119
|
-
frame = new Frame(
|
|
120
|
-
["channel1", "channel2", "channel3"],
|
|
121
|
-
[
|
|
122
|
-
new Series([1, 2, 3, 4, 5]),
|
|
123
|
-
new Series([5, 4, 3, 2, 1]),
|
|
124
|
-
new Series([1, 1, 1, 1, 1]),
|
|
125
|
-
],
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
// Or construct a frame with multiple series for a single channel
|
|
129
|
-
frame = new Frame({
|
|
130
|
-
channel1: [
|
|
131
|
-
new Series([1, 2, 3, 4, 5]),
|
|
132
|
-
new Series([5, 4, 3, 2, 1]),
|
|
133
|
-
new Series([1, 1, 1, 1, 1]),
|
|
134
|
-
],
|
|
135
|
-
channel2: [new Series([1, 2, 3, 4, 5])],
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
frame = new Frame({
|
|
139
|
-
channel1: [new Series([1, 2]), new Series([3, 4, 5])],
|
|
140
|
-
channel2: new Series([5, 4, 3, 2, 1]),
|
|
141
|
-
channel3: new Series([1, 1, 1, 1, 1]),
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
const multiSeries = frame.get("channel1");
|
|
145
|
-
// Access a value
|
|
146
|
-
console.log(multiSeries.at(0)); // 1
|
|
147
|
-
|
|
148
|
-
// Access a value from a specific series
|
|
149
|
-
console.log(multiSeries.series[0].at(0)); // 1
|
|
150
|
-
|
|
151
|
-
// Construct a Javascript array from the MultiSeries
|
|
152
|
-
jsArray = [...multiSeries];
|
|
153
|
-
console.log(jsArray); // [ 1, 2, 3, 4, 5 ]
|
|
154
|
-
|
|
155
|
-
frame = new Frame({
|
|
156
|
-
channel1: new Series([1, 2, 3, 4, 5]),
|
|
157
|
-
channel2: new Series([5, 4, 3, 2, 1]),
|
|
158
|
-
channel3: new Series([1, 1]),
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
let obj = frame.at(3);
|
|
162
|
-
console.log(obj); // { channel1: 1, channel2: 5, channel3: undefined }
|
|
163
|
-
|
|
164
|
-
frame = new Frame({
|
|
165
|
-
channel1: new Series([1, 2, 3, 4, 5]),
|
|
166
|
-
channel2: new Series([5, 4, 3, 2, 1]),
|
|
167
|
-
channel3: new Series([1, 1]),
|
|
168
|
-
});
|
|
169
|
-
try {
|
|
170
|
-
obj = frame.at(3, true); // Throws an error
|
|
171
|
-
} catch (e) {
|
|
172
|
-
console.log(e.message); // no value at index
|
|
173
|
-
}
|
|
@@ -1,50 +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 { Synnax } from "@synnaxlabs/client";
|
|
11
|
-
|
|
12
|
-
// This example demonstrates how to stream live data from a channel in Synnax.
|
|
13
|
-
// Live-streaming is useful for real-time data processing and analysis, and is an
|
|
14
|
-
// integral part of Synnax's control sequence and data streaming capabilities.
|
|
15
|
-
|
|
16
|
-
// This example is meant to be used in conjunction with the stream_write.js example, and
|
|
17
|
-
// assumes that example is running in a separate terminal.
|
|
18
|
-
|
|
19
|
-
// Connect to a locally running, insecure Synnax cluster. If your connection parameters
|
|
20
|
-
// are different, enter them here.
|
|
21
|
-
const client = new Synnax({
|
|
22
|
-
host: "localhost",
|
|
23
|
-
port: 9090,
|
|
24
|
-
username: "synnax",
|
|
25
|
-
password: "seldon",
|
|
26
|
-
secure: false,
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
// We can just specify the names of the channels we'd like to stream from.
|
|
30
|
-
const read_from = [
|
|
31
|
-
"stream_write_example_time",
|
|
32
|
-
"stream_write_example_data_1",
|
|
33
|
-
"stream_write_example_data_2",
|
|
34
|
-
];
|
|
35
|
-
|
|
36
|
-
const streamer = await client.openStreamer(read_from);
|
|
37
|
-
|
|
38
|
-
// It's very important that we close the streamer when we're done with it to release
|
|
39
|
-
// network connections and other resources, so we wrap the streaming loop in a
|
|
40
|
-
// try-finally block.
|
|
41
|
-
try {
|
|
42
|
-
// Loop through the frames in the streamer. Each iteration will block until a new
|
|
43
|
-
// frame is available, and then we'll just print out the last sample for each
|
|
44
|
-
// channel in the frame.
|
|
45
|
-
for await (const frame of streamer) console.log(frame.at(-1));
|
|
46
|
-
} finally {
|
|
47
|
-
streamer.close();
|
|
48
|
-
// Close the client when we're done with it.
|
|
49
|
-
client.close();
|
|
50
|
-
}
|
|
@@ -1,87 +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
|
-
// This example demonstrates how to write data to an index channel and its corresponding
|
|
11
|
-
// data channel in Synnax in a streaming fashion. Streaming data is ideal for live
|
|
12
|
-
// applications (such as data acquisition from a sensor) or for very large datasets that
|
|
13
|
-
// cannot be written all at once.
|
|
14
|
-
|
|
15
|
-
import { Rate, Synnax, TimeStamp } from "@synnaxlabs/client";
|
|
16
|
-
|
|
17
|
-
// Connect to a locally running, insecure Synnax cluster. If your connection parameters
|
|
18
|
-
// are different, enter them here.
|
|
19
|
-
const client = new Synnax({
|
|
20
|
-
host: "localhost",
|
|
21
|
-
port: 9090,
|
|
22
|
-
username: "synnax",
|
|
23
|
-
password: "seldon",
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
// Create an index channel that will be used to store our timestamps.
|
|
27
|
-
const timeChannel = await client.channels.create(
|
|
28
|
-
{
|
|
29
|
-
name: "stream_write_example_time",
|
|
30
|
-
isIndex: true,
|
|
31
|
-
dataType: "timestamp",
|
|
32
|
-
},
|
|
33
|
-
{ retrieveIfNameExists: true },
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
// Create a data channel that will be used to store our fake sensor data.
|
|
37
|
-
const dataChannel1 = await client.channels.create(
|
|
38
|
-
{
|
|
39
|
-
name: "stream_write_example_data_1",
|
|
40
|
-
dataType: "float32",
|
|
41
|
-
index: timeChannel.key,
|
|
42
|
-
},
|
|
43
|
-
{ retrieveIfNameExists: true },
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
const dataChannel2 = await client.channels.create(
|
|
47
|
-
{
|
|
48
|
-
name: "stream_write_example_data_2",
|
|
49
|
-
dataType: "int32",
|
|
50
|
-
index: timeChannel.key,
|
|
51
|
-
},
|
|
52
|
-
{ retrieveIfNameExists: true },
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
// We'll start our write at the current time. This timestamps should be the same as or
|
|
56
|
-
// just before the first timestamp we write.
|
|
57
|
-
const start = TimeStamp.now();
|
|
58
|
-
|
|
59
|
-
// Set a rough rate of 25 Hz. This won't be exact because we're sleeping for a fixed
|
|
60
|
-
// amount of time, but it's close enough for demonstration purposes.
|
|
61
|
-
const roughRate = Rate.hz(25);
|
|
62
|
-
|
|
63
|
-
const writer = await client.openWriter({
|
|
64
|
-
start,
|
|
65
|
-
channels: [timeChannel.key, dataChannel1.key, dataChannel2.key],
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
try {
|
|
69
|
-
let i = 0;
|
|
70
|
-
while (true) {
|
|
71
|
-
await new Promise((resolve) => setTimeout(resolve, roughRate.period.milliseconds));
|
|
72
|
-
i++;
|
|
73
|
-
const timestamp = TimeStamp.now();
|
|
74
|
-
const data1 = Math.sin(i / 10);
|
|
75
|
-
const data2 = i % 2;
|
|
76
|
-
await writer.write({
|
|
77
|
-
[timeChannel.key]: timestamp,
|
|
78
|
-
[dataChannel1.key]: data1,
|
|
79
|
-
[dataChannel2.key]: data2,
|
|
80
|
-
});
|
|
81
|
-
if (i % 60 == 0) console.log(`Writing sample ${i} at ${timestamp.toISOString()}`);
|
|
82
|
-
}
|
|
83
|
-
} finally {
|
|
84
|
-
// Close the writer and the client when you are done
|
|
85
|
-
await writer.close();
|
|
86
|
-
client.close();
|
|
87
|
-
}
|
|
@@ -1,188 +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 { access } from "@/access";
|
|
13
|
-
import { type ontology } from "@/ontology";
|
|
14
|
-
|
|
15
|
-
const id = (type: ontology.ResourceType, key: string): ontology.ID => ({ type, key });
|
|
16
|
-
|
|
17
|
-
const policy = (
|
|
18
|
-
objects: ontology.ID[],
|
|
19
|
-
actions: access.Action[],
|
|
20
|
-
key = crypto.randomUUID(),
|
|
21
|
-
): access.policy.Policy => ({ key, name: "test", objects, actions, internal: false });
|
|
22
|
-
|
|
23
|
-
describe("allowRequest", () => {
|
|
24
|
-
describe("single object", () => {
|
|
25
|
-
it("should allow when policy has exact match", () => {
|
|
26
|
-
const policies = [policy([id("channel", "1")], ["retrieve"])];
|
|
27
|
-
const allowed = access.allowRequest(
|
|
28
|
-
{
|
|
29
|
-
subject: id("user", "u1"),
|
|
30
|
-
action: "retrieve",
|
|
31
|
-
objects: id("channel", "1"),
|
|
32
|
-
},
|
|
33
|
-
policies,
|
|
34
|
-
);
|
|
35
|
-
expect(allowed).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
it("should allow when policy has type-level match (empty key)", () => {
|
|
39
|
-
const policies = [policy([id("channel", "")], ["retrieve"])];
|
|
40
|
-
const allowed = access.allowRequest(
|
|
41
|
-
{
|
|
42
|
-
subject: id("user", "u1"),
|
|
43
|
-
action: "retrieve",
|
|
44
|
-
objects: id("channel", "42"),
|
|
45
|
-
},
|
|
46
|
-
policies,
|
|
47
|
-
);
|
|
48
|
-
expect(allowed).toBe(true);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it("should deny when no policy matches", () => {
|
|
52
|
-
const policies = [policy([id("channel", "1")], ["retrieve"])];
|
|
53
|
-
const allowed = access.allowRequest(
|
|
54
|
-
{
|
|
55
|
-
subject: id("user", "u1"),
|
|
56
|
-
action: "retrieve",
|
|
57
|
-
objects: id("channel", "2"),
|
|
58
|
-
},
|
|
59
|
-
policies,
|
|
60
|
-
);
|
|
61
|
-
expect(allowed).toBe(false);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it("should deny when action not allowed", () => {
|
|
65
|
-
const policies = [policy([id("channel", "1")], ["retrieve"])];
|
|
66
|
-
const allowed = access.allowRequest(
|
|
67
|
-
{
|
|
68
|
-
subject: id("user", "u1"),
|
|
69
|
-
action: "delete",
|
|
70
|
-
objects: id("channel", "1"),
|
|
71
|
-
},
|
|
72
|
-
policies,
|
|
73
|
-
);
|
|
74
|
-
expect(allowed).toBe(false);
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
it("should deny when type does not match", () => {
|
|
78
|
-
const policies = [policy([id("channel", "1")], ["retrieve"])];
|
|
79
|
-
const allowed = access.allowRequest(
|
|
80
|
-
{
|
|
81
|
-
subject: id("user", "u1"),
|
|
82
|
-
action: "retrieve",
|
|
83
|
-
objects: id("device", "1"),
|
|
84
|
-
},
|
|
85
|
-
policies,
|
|
86
|
-
);
|
|
87
|
-
expect(allowed).toBe(false);
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
describe("multiple objects", () => {
|
|
92
|
-
it("should allow when all objects are covered", () => {
|
|
93
|
-
const policies = [policy([id("channel", "1"), id("channel", "2")], ["retrieve"])];
|
|
94
|
-
const allowed = access.allowRequest(
|
|
95
|
-
{
|
|
96
|
-
subject: id("user", "u1"),
|
|
97
|
-
action: "retrieve",
|
|
98
|
-
objects: [id("channel", "1"), id("channel", "2")],
|
|
99
|
-
},
|
|
100
|
-
policies,
|
|
101
|
-
);
|
|
102
|
-
expect(allowed).toBe(true);
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
it("should deny when some objects are not covered", () => {
|
|
106
|
-
const policies = [policy([id("channel", "1")], ["retrieve"])];
|
|
107
|
-
const allowed = access.allowRequest(
|
|
108
|
-
{
|
|
109
|
-
subject: id("user", "u1"),
|
|
110
|
-
action: "retrieve",
|
|
111
|
-
objects: [id("channel", "1"), id("channel", "2")],
|
|
112
|
-
},
|
|
113
|
-
policies,
|
|
114
|
-
);
|
|
115
|
-
expect(allowed).toBe(false);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
it("should allow all objects with type-level policy", () => {
|
|
119
|
-
const policies = [policy([id("channel", "")], ["retrieve"])];
|
|
120
|
-
const allowed = access.allowRequest(
|
|
121
|
-
{
|
|
122
|
-
subject: id("user", "u1"),
|
|
123
|
-
action: "retrieve",
|
|
124
|
-
objects: [id("channel", "1"), id("channel", "2"), id("channel", "99")],
|
|
125
|
-
},
|
|
126
|
-
policies,
|
|
127
|
-
);
|
|
128
|
-
expect(allowed).toBe(true);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
describe("multiple policies", () => {
|
|
133
|
-
it("should allow when different policies cover different objects", () => {
|
|
134
|
-
const policies = [
|
|
135
|
-
policy([id("channel", "1")], ["retrieve"]),
|
|
136
|
-
policy([id("channel", "2")], ["retrieve"]),
|
|
137
|
-
];
|
|
138
|
-
const allowed = access.allowRequest(
|
|
139
|
-
{
|
|
140
|
-
subject: id("user", "u1"),
|
|
141
|
-
action: "retrieve",
|
|
142
|
-
objects: [id("channel", "1"), id("channel", "2")],
|
|
143
|
-
},
|
|
144
|
-
policies,
|
|
145
|
-
);
|
|
146
|
-
expect(allowed).toBe(true);
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
it("should allow when one policy covers object and another has different action", () => {
|
|
150
|
-
const policies = [
|
|
151
|
-
policy([id("channel", "1")], ["delete"]),
|
|
152
|
-
policy([id("channel", "1")], ["retrieve"]),
|
|
153
|
-
];
|
|
154
|
-
const allowed = access.allowRequest(
|
|
155
|
-
{
|
|
156
|
-
subject: id("user", "u1"),
|
|
157
|
-
action: "retrieve",
|
|
158
|
-
objects: id("channel", "1"),
|
|
159
|
-
},
|
|
160
|
-
policies,
|
|
161
|
-
);
|
|
162
|
-
expect(allowed).toBe(true);
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
describe("edge cases", () => {
|
|
167
|
-
it("should deny with empty policies", () => {
|
|
168
|
-
const allowed = access.allowRequest(
|
|
169
|
-
{
|
|
170
|
-
subject: id("user", "u1"),
|
|
171
|
-
action: "retrieve",
|
|
172
|
-
objects: id("channel", "1"),
|
|
173
|
-
},
|
|
174
|
-
[],
|
|
175
|
-
);
|
|
176
|
-
expect(allowed).toBe(false);
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
it("should allow with empty objects", () => {
|
|
180
|
-
const policies = [policy([id("channel", "1")], ["retrieve"])];
|
|
181
|
-
const allowed = access.allowRequest(
|
|
182
|
-
{ subject: id("user", "u1"), action: "retrieve", objects: [] },
|
|
183
|
-
policies,
|
|
184
|
-
);
|
|
185
|
-
expect(allowed).toBe(true);
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
});
|
|
@@ -1,147 +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 { policy } from "@/access/policy";
|
|
13
|
-
import { AuthError, NotFoundError } from "@/errors";
|
|
14
|
-
import { createTestClientWithPolicy } from "@/testutil/access";
|
|
15
|
-
import { createTestClient } from "@/testutil/client";
|
|
16
|
-
|
|
17
|
-
const client = createTestClient();
|
|
18
|
-
|
|
19
|
-
describe("policy", () => {
|
|
20
|
-
describe("retrieve", () => {
|
|
21
|
-
it("should filter by internal flag when retrieving policies", async () => {
|
|
22
|
-
// Create a non-internal policy
|
|
23
|
-
const created = await client.access.policies.create({
|
|
24
|
-
name: "test-non-internal",
|
|
25
|
-
objects: [],
|
|
26
|
-
actions: ["retrieve"],
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
// Retrieve only internal policies (built-in system policies)
|
|
30
|
-
const internalPolicies = await client.access.policies.retrieve({
|
|
31
|
-
internal: true,
|
|
32
|
-
});
|
|
33
|
-
expect(internalPolicies.length).toBeGreaterThan(0);
|
|
34
|
-
expect(internalPolicies.every((p) => p.internal === true)).toBe(true);
|
|
35
|
-
expect(internalPolicies.find((p) => p.key === created.key)).toBeUndefined();
|
|
36
|
-
|
|
37
|
-
// Retrieve only non-internal policies
|
|
38
|
-
const nonInternalPolicies = await client.access.policies.retrieve({
|
|
39
|
-
internal: false,
|
|
40
|
-
});
|
|
41
|
-
expect(nonInternalPolicies.every((p) => p.internal !== true)).toBe(true);
|
|
42
|
-
expect(nonInternalPolicies.find((p) => p.key === created.key)).toBeDefined();
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
describe("access control", () => {
|
|
47
|
-
it("should deny access when no matching policy exists", async () => {
|
|
48
|
-
// Create a user with no policy for retrieving policies
|
|
49
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
50
|
-
name: "test",
|
|
51
|
-
objects: [],
|
|
52
|
-
actions: [],
|
|
53
|
-
});
|
|
54
|
-
const randomPolicy = await client.access.policies.create({
|
|
55
|
-
name: "test",
|
|
56
|
-
objects: [],
|
|
57
|
-
actions: ["retrieve"],
|
|
58
|
-
});
|
|
59
|
-
await expect(
|
|
60
|
-
userClient.access.policies.retrieve({ key: randomPolicy.key }),
|
|
61
|
-
).rejects.toThrow(AuthError);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
it("should allow the caller to retrieve policies with the correct policy", async () => {
|
|
65
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
66
|
-
name: "test",
|
|
67
|
-
objects: [policy.ontologyID("")],
|
|
68
|
-
actions: ["retrieve"],
|
|
69
|
-
});
|
|
70
|
-
const randomPolicy = await client.access.policies.create({
|
|
71
|
-
name: "test",
|
|
72
|
-
objects: [],
|
|
73
|
-
actions: ["retrieve"],
|
|
74
|
-
});
|
|
75
|
-
const retrieved = await userClient.access.policies.retrieve({
|
|
76
|
-
key: randomPolicy.key,
|
|
77
|
-
});
|
|
78
|
-
expect(retrieved.key).toBe(randomPolicy.key);
|
|
79
|
-
expect(retrieved.name).toBe(randomPolicy.name);
|
|
80
|
-
expect(retrieved.objects).toEqual(randomPolicy.objects);
|
|
81
|
-
expect(retrieved.actions).toEqual(randomPolicy.actions);
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
it("should allow the caller to create policies with the correct policy", async () => {
|
|
85
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
86
|
-
name: "test",
|
|
87
|
-
objects: [policy.ontologyID("")],
|
|
88
|
-
actions: ["create"],
|
|
89
|
-
});
|
|
90
|
-
await userClient.access.policies.create({
|
|
91
|
-
name: "test",
|
|
92
|
-
objects: [],
|
|
93
|
-
actions: ["retrieve"],
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it("should deny access when no create policy exists", async () => {
|
|
98
|
-
// Create a user with no create policy for policies
|
|
99
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
100
|
-
name: "test",
|
|
101
|
-
objects: [policy.ontologyID("")],
|
|
102
|
-
actions: ["retrieve"],
|
|
103
|
-
});
|
|
104
|
-
await expect(
|
|
105
|
-
userClient.access.policies.create({
|
|
106
|
-
name: "test",
|
|
107
|
-
objects: [],
|
|
108
|
-
actions: ["retrieve"],
|
|
109
|
-
}),
|
|
110
|
-
).rejects.toThrow(AuthError);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
it("should allow the caller to delete policies with the correct policy", async () => {
|
|
114
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
115
|
-
name: "test",
|
|
116
|
-
objects: [policy.ontologyID("")],
|
|
117
|
-
actions: ["delete"],
|
|
118
|
-
});
|
|
119
|
-
const randomPolicy = await client.access.policies.create({
|
|
120
|
-
name: "test",
|
|
121
|
-
objects: [],
|
|
122
|
-
actions: ["retrieve"],
|
|
123
|
-
});
|
|
124
|
-
await userClient.access.policies.delete(randomPolicy.key);
|
|
125
|
-
await expect(
|
|
126
|
-
userClient.access.policies.retrieve({ key: randomPolicy.key }),
|
|
127
|
-
).rejects.toThrow(NotFoundError);
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
it("should deny access when no delete policy exists", async () => {
|
|
131
|
-
// Create a user with no delete policy for policies
|
|
132
|
-
const userClient = await createTestClientWithPolicy(client, {
|
|
133
|
-
name: "test",
|
|
134
|
-
objects: [policy.ontologyID("")],
|
|
135
|
-
actions: ["retrieve"],
|
|
136
|
-
});
|
|
137
|
-
const randomPolicy = await client.access.policies.create({
|
|
138
|
-
name: "test",
|
|
139
|
-
objects: [],
|
|
140
|
-
actions: ["retrieve"],
|
|
141
|
-
});
|
|
142
|
-
await expect(userClient.access.policies.delete(randomPolicy.key)).rejects.toThrow(
|
|
143
|
-
AuthError,
|
|
144
|
-
);
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
});
|