@synnaxlabs/client 0.56.2 → 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
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
export * as node from "@/node/types.gen";
|
package/src/ontology/client.ts
CHANGED
|
@@ -8,22 +8,40 @@
|
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
10
|
import { type UnaryClient } from "@synnaxlabs/freighter";
|
|
11
|
-
import {
|
|
11
|
+
import { deep, type destructor, primitive } from "@synnaxlabs/x";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
|
|
14
|
-
import {
|
|
14
|
+
import { NotFoundError } from "@/errors";
|
|
15
15
|
import {
|
|
16
16
|
type ID,
|
|
17
|
+
idsEqual,
|
|
17
18
|
idToString,
|
|
18
19
|
idZ,
|
|
20
|
+
oppositeRelationshipDirection,
|
|
21
|
+
PARENT_OF_RELATIONSHIP_TYPE,
|
|
22
|
+
parseID,
|
|
19
23
|
parseIDs,
|
|
24
|
+
type Relationship,
|
|
25
|
+
type RelationshipDirection,
|
|
26
|
+
relationshipToString,
|
|
27
|
+
relationshipZ,
|
|
20
28
|
type Resource,
|
|
29
|
+
type ResourceType,
|
|
21
30
|
resourceTypeZ,
|
|
22
31
|
resourceZ,
|
|
32
|
+
stringIDZ,
|
|
23
33
|
} from "@/ontology/payload";
|
|
34
|
+
import {
|
|
35
|
+
Cache,
|
|
36
|
+
RELATIONSHIP_DELETE_CHANNEL_NAME,
|
|
37
|
+
RELATIONSHIP_SET_CHANNEL_NAME,
|
|
38
|
+
RESOURCE_DELETE_CHANNEL_NAME,
|
|
39
|
+
RESOURCE_SET_CHANNEL_NAME,
|
|
40
|
+
} from "@/ontology/store";
|
|
24
41
|
import { Writer } from "@/ontology/writer";
|
|
42
|
+
import { query } from "@/query";
|
|
25
43
|
|
|
26
|
-
const
|
|
44
|
+
const wireReqZ = z.object({
|
|
27
45
|
ids: idZ.array().optional(),
|
|
28
46
|
children: z.boolean().optional(),
|
|
29
47
|
parents: z.boolean().optional(),
|
|
@@ -32,148 +50,439 @@ const retrieveReqZ = z.object({
|
|
|
32
50
|
searchTerm: z.string().optional(),
|
|
33
51
|
limit: z.int().optional(),
|
|
34
52
|
offset: z.int().optional(),
|
|
53
|
+
ignoreNotFoundError: z.boolean().optional(),
|
|
35
54
|
});
|
|
36
|
-
|
|
55
|
+
/** Everything an ontology retrieval can filter on. */
|
|
56
|
+
export interface RetrieveRequest extends z.infer<typeof wireReqZ> {}
|
|
37
57
|
|
|
58
|
+
/** The filters a retrieval accepts alongside its IDs. */
|
|
38
59
|
export interface RetrieveOptions extends Pick<
|
|
39
60
|
RetrieveRequest,
|
|
40
|
-
"excludeFieldData" | "types"
|
|
61
|
+
"excludeFieldData" | "types"
|
|
41
62
|
> {}
|
|
42
63
|
|
|
43
64
|
const retrieveResZ = z.object({ resources: resourceZ.array() });
|
|
44
65
|
|
|
45
|
-
|
|
46
|
-
|
|
66
|
+
const parentRel = (from: ID, to: ID): Relationship => ({
|
|
67
|
+
from,
|
|
68
|
+
type: PARENT_OF_RELATIONSHIP_TYPE,
|
|
69
|
+
to,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
/** A retrieve request with IDs normalized to stable, sorted strings. */
|
|
73
|
+
type NormalizedRequest = {
|
|
74
|
+
ids?: string[];
|
|
75
|
+
excludeFieldData?: boolean;
|
|
76
|
+
types?: ResourceType[];
|
|
77
|
+
searchTerm?: string;
|
|
78
|
+
limit?: number;
|
|
79
|
+
offset?: number;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/** Request key for children/parents listings of a set of resources. */
|
|
83
|
+
type DependentRequest = {
|
|
84
|
+
ids: string[];
|
|
85
|
+
types?: ResourceType[];
|
|
86
|
+
searchTerm?: string;
|
|
87
|
+
offset?: number;
|
|
88
|
+
limit?: number;
|
|
89
|
+
excludeFieldData?: boolean;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/** Query addressing the children or parents of a set of resources. */
|
|
93
|
+
export type DependentParams = {
|
|
94
|
+
ids: ID | ID[];
|
|
95
|
+
types?: ResourceType[];
|
|
96
|
+
searchTerm?: string;
|
|
97
|
+
offset?: number;
|
|
98
|
+
limit?: number;
|
|
99
|
+
excludeFieldData?: boolean;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const DEPENDENT_SERVER_FIELDS = ["searchTerm", "limit", "offset"] as const;
|
|
103
|
+
|
|
104
|
+
const normalizeIDs = (ids: ID | ID[]): string[] =>
|
|
105
|
+
[...new Set(idToString(parseIDs(ids)))].sort();
|
|
106
|
+
|
|
107
|
+
const normalizeDependents = (
|
|
108
|
+
ids: ID | ID[],
|
|
109
|
+
options?: Omit<DependentParams, "ids">,
|
|
110
|
+
): DependentRequest => {
|
|
111
|
+
const out: DependentRequest = { ids: normalizeIDs(ids) };
|
|
112
|
+
const { types, searchTerm, offset, limit, excludeFieldData } = options ?? {};
|
|
113
|
+
if (types != null) out.types = [...types].sort();
|
|
114
|
+
if (searchTerm != null) out.searchTerm = searchTerm;
|
|
115
|
+
if (offset != null) out.offset = offset;
|
|
116
|
+
if (limit != null) out.limit = limit;
|
|
117
|
+
if (excludeFieldData != null) out.excludeFieldData = excludeFieldData;
|
|
118
|
+
return out;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const retrieveRequestZ = z
|
|
122
|
+
.object({
|
|
123
|
+
ids: idZ.array().optional(),
|
|
124
|
+
excludeFieldData: z.boolean().optional(),
|
|
125
|
+
types: resourceTypeZ.array().optional(),
|
|
126
|
+
searchTerm: z.string().optional(),
|
|
127
|
+
limit: z.int().optional(),
|
|
128
|
+
offset: z.int().optional(),
|
|
129
|
+
})
|
|
130
|
+
.transform((req): NormalizedRequest => {
|
|
131
|
+
const out: NormalizedRequest = {};
|
|
132
|
+
if (req.ids != null) out.ids = normalizeIDs(req.ids);
|
|
133
|
+
if (req.excludeFieldData != null) out.excludeFieldData = req.excludeFieldData;
|
|
134
|
+
if (req.types != null) out.types = [...req.types].sort();
|
|
135
|
+
if (req.searchTerm != null) out.searchTerm = req.searchTerm;
|
|
136
|
+
if (req.limit != null) out.limit = req.limit;
|
|
137
|
+
if (req.offset != null) out.offset = req.offset;
|
|
138
|
+
return out;
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
/** Resources are addressed by `ids`, so a bare key list is that shorthand. */
|
|
142
|
+
const retrieveMultiParamsZ = retrieveRequestZ.or(
|
|
143
|
+
idZ.array().transform((ids): NormalizedRequest => ({ ids: normalizeIDs(ids) })),
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
/** Params for an ontology retrieval. A bare ID array is shorthand for `{ ids }`. */
|
|
147
|
+
export type RetrieveParams = z.input<typeof retrieveRequestZ>;
|
|
148
|
+
|
|
149
|
+
const singleParamsZ = z
|
|
150
|
+
.union([z.strictObject({ type: resourceTypeZ, key: z.string() }), stringIDZ])
|
|
151
|
+
.transform((id) => idToString(id));
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Client-side matching for a request: exact for id and type sets. Server-computed
|
|
155
|
+
* shapes (search, limit/offset) never reach this filter; they refetch instead.
|
|
156
|
+
*/
|
|
157
|
+
const requestFilter = (req: NormalizedRequest): ((r: Resource) => boolean) => {
|
|
158
|
+
const idSet = primitive.isNonZero(req.ids) ? new Set(req.ids) : undefined;
|
|
159
|
+
const typeSet = primitive.isNonZero(req.types) ? new Set(req.types) : undefined;
|
|
160
|
+
return (r) => {
|
|
161
|
+
if (idSet != null && !idSet.has(r.key)) return false;
|
|
162
|
+
if (typeSet != null && !typeSet.has(r.id.type)) return false;
|
|
163
|
+
return true;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
/** Config for {@link Client}. */
|
|
168
|
+
export interface ClientConfig {
|
|
169
|
+
unary: UnaryClient;
|
|
170
|
+
cache: query.Cache;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Reads the ontology on a Core: the resources and the relationships that join them.
|
|
175
|
+
* Reach it through `client.ontology`. Reads are served from a cache that a change
|
|
176
|
+
* stream keeps current.
|
|
177
|
+
*/
|
|
178
|
+
export class Client extends query.Retriever<
|
|
179
|
+
typeof retrieveMultiParamsZ,
|
|
180
|
+
string,
|
|
181
|
+
Resource,
|
|
182
|
+
Resource,
|
|
183
|
+
z.input<typeof singleParamsZ>
|
|
184
|
+
> {
|
|
47
185
|
readonly type: string = "ontology";
|
|
48
|
-
|
|
186
|
+
/** Read surface of the ontology record tables. */
|
|
187
|
+
readonly cache: Cache;
|
|
188
|
+
/** Cached read surface for the children of a set of resources. */
|
|
189
|
+
readonly children: query.Retrieves<DependentParams, Resource[]>;
|
|
190
|
+
/** Cached read surface for the parents of a set of resources. */
|
|
191
|
+
readonly parents: query.Retrieves<DependentParams, Resource[]>;
|
|
192
|
+
private readonly cfg: ClientConfig;
|
|
49
193
|
private readonly writer: Writer;
|
|
50
194
|
|
|
51
|
-
constructor(
|
|
52
|
-
|
|
195
|
+
constructor(cfg: ClientConfig) {
|
|
196
|
+
const { unary, cache } = cfg;
|
|
197
|
+
const relationships = cache.createTable<string, Relationship>({
|
|
198
|
+
name: "relationships",
|
|
199
|
+
equal: (a, b) =>
|
|
200
|
+
idsEqual(a.from, b.from) && idsEqual(a.to, b.to) && a.type === b.type,
|
|
201
|
+
listen: [
|
|
202
|
+
query.createSetListener(RELATIONSHIP_SET_CHANNEL_NAME, relationshipZ, {
|
|
203
|
+
key: (changed) => relationshipToString(changed),
|
|
204
|
+
}),
|
|
205
|
+
query.createDeleteListener(RELATIONSHIP_DELETE_CHANNEL_NAME, relationshipZ, {
|
|
206
|
+
key: (changed) => relationshipToString(changed),
|
|
207
|
+
}),
|
|
208
|
+
],
|
|
209
|
+
});
|
|
210
|
+
const resources = cache.createTable<string, Resource>({
|
|
211
|
+
name: "resources",
|
|
212
|
+
equal: (a, b) => deep.equal(a, b),
|
|
213
|
+
// Fetches bypass the query cache: sibling domain deletes never write
|
|
214
|
+
// through to the resource store, so cached entries may be stale.
|
|
215
|
+
fetch: async (keys) =>
|
|
216
|
+
await this.execRetrieve({ ids: parseIDs(keys), ignoreNotFoundError: true }),
|
|
217
|
+
listen: [
|
|
218
|
+
query.createSetListener(RESOURCE_SET_CHANNEL_NAME, resourceZ, {
|
|
219
|
+
value: (changed, prev) => (prev == null ? changed : { ...prev, ...changed }),
|
|
220
|
+
}),
|
|
221
|
+
// The store is keyed by the full "type:key" string, not the bare key.
|
|
222
|
+
query.createDeleteListener(RESOURCE_DELETE_CHANNEL_NAME, idZ, {
|
|
223
|
+
key: (changed) => idToString(changed),
|
|
224
|
+
}),
|
|
225
|
+
],
|
|
226
|
+
});
|
|
227
|
+
const single = cache.queries<string, Resource, string, Resource>({
|
|
228
|
+
name: "resource",
|
|
229
|
+
table: resources,
|
|
230
|
+
fetch: async (q) => [(await this.fetchSingle(q)).key],
|
|
231
|
+
compose: (records) => records[0],
|
|
232
|
+
keyOf: (q) => q,
|
|
233
|
+
single: true,
|
|
234
|
+
});
|
|
235
|
+
super(cache, {
|
|
236
|
+
name: "resource",
|
|
237
|
+
table: resources,
|
|
238
|
+
request: {
|
|
239
|
+
schema: retrieveMultiParamsZ,
|
|
240
|
+
fetch: async (req) => await this.fetchRequest(req),
|
|
241
|
+
matches: (resource, req) => requestFilter(req)(resource),
|
|
242
|
+
},
|
|
243
|
+
single: { schema: singleParamsZ, space: single },
|
|
244
|
+
});
|
|
245
|
+
this.cfg = cfg;
|
|
53
246
|
this.writer = new Writer(unary);
|
|
247
|
+
this.cache = new Cache(relationships, resources);
|
|
248
|
+
this.children = this.dependentSurface(cache, "children", "to");
|
|
249
|
+
this.parents = this.dependentSurface(cache, "parents", "from");
|
|
54
250
|
}
|
|
55
251
|
|
|
56
252
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* @param options - Additional options for the retrieval.
|
|
60
|
-
* @param options.excludeFieldData - Whether to exclude the field data of the resource
|
|
61
|
-
* in the results.
|
|
62
|
-
* @returns The resource with the given ID.
|
|
63
|
-
* @throws {QueryError} If no resource is found with the given ID.
|
|
253
|
+
* Reads the resources the params address. The ID-array form remains for migration
|
|
254
|
+
* only: query with `{ ids }`, `children.retrieve`, or `parents.retrieve` instead.
|
|
64
255
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* @returns The resources with the given IDs.
|
|
75
|
-
* @throws {QueryError} If no resource is found with any of the given IDs.
|
|
76
|
-
*/
|
|
77
|
-
async retrieve(ids: ID[], options?: RetrieveOptions): Promise<Resource[]>;
|
|
78
|
-
|
|
79
|
-
async retrieve(params: RetrieveRequest): Promise<Resource[]>;
|
|
80
|
-
|
|
256
|
+
retrieve(
|
|
257
|
+
ids: Array<ID | string>,
|
|
258
|
+
options?: RetrieveOptions & { children?: boolean; parents?: boolean },
|
|
259
|
+
): Promise<Resource[]>;
|
|
260
|
+
retrieve(
|
|
261
|
+
params: string | z.input<typeof singleParamsZ>,
|
|
262
|
+
options?: query.FetchOptions,
|
|
263
|
+
): Promise<Resource>;
|
|
264
|
+
retrieve(params: RetrieveParams, options?: query.FetchOptions): Promise<Resource[]>;
|
|
81
265
|
async retrieve(
|
|
82
|
-
|
|
83
|
-
|
|
266
|
+
params:
|
|
267
|
+
Array<ID | string> | string | z.input<typeof singleParamsZ> | RetrieveParams,
|
|
268
|
+
options?:
|
|
269
|
+
| query.FetchOptions
|
|
270
|
+
| (RetrieveOptions & { children?: boolean; parents?: boolean }),
|
|
84
271
|
): Promise<Resource | Resource[]> {
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
);
|
|
96
|
-
|
|
272
|
+
if (Array.isArray(params)) {
|
|
273
|
+
const ids = parseIDs(params);
|
|
274
|
+
const {
|
|
275
|
+
children = false,
|
|
276
|
+
parents = false,
|
|
277
|
+
...rest
|
|
278
|
+
} = (options ?? {}) as RetrieveOptions & {
|
|
279
|
+
children?: boolean;
|
|
280
|
+
parents?: boolean;
|
|
281
|
+
};
|
|
282
|
+
if (children) return await this.children.retrieve({ ids, ...rest });
|
|
283
|
+
if (parents) return await this.parents.retrieve({ ids, ...rest });
|
|
284
|
+
return await super.retrieve({ ids, ...rest });
|
|
285
|
+
}
|
|
286
|
+
return await super.retrieve(
|
|
287
|
+
params as z.input<typeof singleParamsZ>,
|
|
288
|
+
options as query.FetchOptions,
|
|
289
|
+
);
|
|
97
290
|
}
|
|
98
291
|
|
|
99
|
-
/**
|
|
100
|
-
* Retrieves the children of the resources with the given IDs.
|
|
101
|
-
* @param ids - The IDs of the resources whose children to retrieve.
|
|
102
|
-
* @param options - Additional options for the retrieval.
|
|
103
|
-
* the results.
|
|
104
|
-
* @returns The children of the resources with the given IDs.
|
|
105
|
-
*/
|
|
292
|
+
/** Migration-only alias for `children.retrieve({ ids })`. */
|
|
106
293
|
async retrieveChildren(
|
|
107
294
|
ids: ID | ID[],
|
|
108
295
|
options?: RetrieveOptions,
|
|
109
296
|
): Promise<Resource[]> {
|
|
110
|
-
return await this.
|
|
111
|
-
ids: array.toArray(ids),
|
|
112
|
-
children: true,
|
|
113
|
-
...options,
|
|
114
|
-
});
|
|
297
|
+
return await this.children.retrieve({ ids, ...options });
|
|
115
298
|
}
|
|
116
299
|
|
|
117
|
-
/**
|
|
118
|
-
* Retrieves the parents of the resources with the given IDs.
|
|
119
|
-
*
|
|
120
|
-
* @param ids - the IDs of the resources whose parents to retrieve
|
|
121
|
-
* @param options - additional options for the retrieval
|
|
122
|
-
* @param options.excludeFieldData - whether to exclude the field data of the parents
|
|
123
|
-
* in the results
|
|
124
|
-
* @returns the parents of the resources with the given IDs
|
|
125
|
-
*/
|
|
300
|
+
/** Migration-only alias for `parents.retrieve({ ids })`. */
|
|
126
301
|
async retrieveParents(
|
|
127
302
|
ids: ID | ID[],
|
|
128
303
|
options?: RetrieveOptions,
|
|
129
304
|
): Promise<Resource[]> {
|
|
130
|
-
return await this.
|
|
131
|
-
ids: array.toArray(ids),
|
|
132
|
-
parents: true,
|
|
133
|
-
...options,
|
|
134
|
-
});
|
|
305
|
+
return await this.parents.retrieve({ ids, ...options });
|
|
135
306
|
}
|
|
136
307
|
|
|
137
|
-
/**
|
|
138
|
-
* Adds children to a resource in the ontology.
|
|
139
|
-
* @param id - The ID of the resource to add children to.
|
|
140
|
-
* @param children - The IDs of the children to add.
|
|
141
|
-
*/
|
|
308
|
+
/** Adds children to a resource in the ontology. */
|
|
142
309
|
async addChildren(id: ID, ...children: ID[]): Promise<void> {
|
|
143
|
-
|
|
310
|
+
await this.writer.addChildren(id, ...children);
|
|
311
|
+
children.forEach((child) => {
|
|
312
|
+
const rel = parentRel(id, child);
|
|
313
|
+
this.cache.relationships.set(relationshipToString(rel), rel);
|
|
314
|
+
});
|
|
144
315
|
}
|
|
145
316
|
|
|
146
|
-
/**
|
|
147
|
-
* Removes children from a resource in the ontology.
|
|
148
|
-
* @param id - The ID of the resource to remove children from.
|
|
149
|
-
* @param children - The IDs of the children to remove.
|
|
150
|
-
*/
|
|
317
|
+
/** Removes children from a resource in the ontology. */
|
|
151
318
|
async removeChildren(id: ID, ...children: ID[]): Promise<void> {
|
|
152
|
-
|
|
319
|
+
await this.writer.removeChildren(id, ...children);
|
|
320
|
+
children.forEach((child) =>
|
|
321
|
+
this.cache.relationships.delete(relationshipToString(parentRel(id, child))),
|
|
322
|
+
);
|
|
153
323
|
}
|
|
154
324
|
|
|
155
|
-
/**
|
|
156
|
-
* Moves children from one resource to another in the ontology.
|
|
157
|
-
* @param from - The ID of the resource to move children from.
|
|
158
|
-
* @param to - The ID of the resource to move children to.
|
|
159
|
-
* @param children - The IDs of the children to move.
|
|
160
|
-
*/
|
|
325
|
+
/** Moves children from one resource to another in the ontology. */
|
|
161
326
|
async moveChildren(from: ID, to: ID, ...children: ID[]): Promise<void> {
|
|
162
|
-
|
|
327
|
+
const move = (): destructor.Destructor[] => {
|
|
328
|
+
const deletions = children.map((child) =>
|
|
329
|
+
this.cache.relationships.delete(relationshipToString(parentRel(from, child))),
|
|
330
|
+
);
|
|
331
|
+
const insertions = children.map((child) => {
|
|
332
|
+
const rel = parentRel(to, child);
|
|
333
|
+
return this.cache.relationships.set(relationshipToString(rel), rel);
|
|
334
|
+
});
|
|
335
|
+
return [...deletions, ...insertions];
|
|
336
|
+
};
|
|
337
|
+
await query.optimistic({
|
|
338
|
+
rollbacks: move(),
|
|
339
|
+
commit: async () => await this.writer.moveChildren(from, to, ...children),
|
|
340
|
+
});
|
|
341
|
+
move();
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/** Subscribes to every resource set delivered to the cache. */
|
|
345
|
+
onResourceSet(handler: (resource: Resource) => void): destructor.Destructor {
|
|
346
|
+
return this.cache.resources.subscribe((event) => {
|
|
347
|
+
if (event.variant === "set") handler(event.value);
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/** Subscribes to every resource delete delivered to the cache. */
|
|
352
|
+
onResourceDelete(handler: (id: ID) => void): destructor.Destructor {
|
|
353
|
+
return this.cache.resources.subscribe((event) => {
|
|
354
|
+
if (event.variant === "delete") handler(parseID(event.key));
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/** Subscribes to every relationship set delivered to the cache. */
|
|
359
|
+
onRelationshipSet(handler: (rel: Relationship) => void): destructor.Destructor {
|
|
360
|
+
return this.cache.relationships.subscribe((event) => {
|
|
361
|
+
if (event.variant === "set") handler(event.value);
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/** Subscribes to every relationship delete delivered to the cache. */
|
|
366
|
+
onRelationshipDelete(handler: (rel: Relationship) => void): destructor.Destructor {
|
|
367
|
+
return this.cache.relationships.subscribe((event) => {
|
|
368
|
+
if (event.variant === "delete") handler(relationshipZ.parse(event.key));
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/** Merges a fetched resource with cached field data it may lack. */
|
|
373
|
+
private mergeFieldData(r: Resource): Resource {
|
|
374
|
+
const p = this.cache.resources.get(r.key);
|
|
375
|
+
return p == null ? r : { ...r, data: r.data ?? p.data };
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
private writeResources(resources: Resource[]): void {
|
|
379
|
+
this.cache.resources.set(resources.map((r) => this.mergeFieldData(r)));
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// Resources are deleted through other domain clients whose write-through
|
|
383
|
+
// never reaches the resource store, so fetches always hit the network
|
|
384
|
+
// rather than serving a possibly stale cached entry.
|
|
385
|
+
private async fetchSingle(q: string): Promise<Resource> {
|
|
386
|
+
const resources = await this.execRetrieve({
|
|
387
|
+
ids: [parseID(q)],
|
|
388
|
+
});
|
|
389
|
+
if (resources.length === 0)
|
|
390
|
+
throw new NotFoundError(`No resource found with ID ${q}`);
|
|
391
|
+
this.writeResources(resources);
|
|
392
|
+
return resources[0];
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
private async fetchRequest(req: NormalizedRequest): Promise<Resource[]> {
|
|
396
|
+
const { ids, ...rest } = req;
|
|
397
|
+
const resources = await this.execRetrieve(
|
|
398
|
+
ids == null ? rest : { ids: parseIDs(ids), ...rest },
|
|
399
|
+
);
|
|
400
|
+
return resources.map((r) => this.mergeFieldData(r));
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
private async fetchDependents(
|
|
404
|
+
q: DependentRequest,
|
|
405
|
+
direction: RelationshipDirection,
|
|
406
|
+
): Promise<Resource[]> {
|
|
407
|
+
const { ids, ...rest } = q;
|
|
408
|
+
const resources = await this.execRetrieve({
|
|
409
|
+
ids: parseIDs(ids),
|
|
410
|
+
children: direction === "to",
|
|
411
|
+
parents: direction === "from",
|
|
412
|
+
...rest,
|
|
413
|
+
});
|
|
414
|
+
this.writeResources(resources);
|
|
415
|
+
// Multi-anchor answers can't attribute members to an anchor, so only
|
|
416
|
+
// single-anchor queries write relationships through.
|
|
417
|
+
if (ids.length === 1) {
|
|
418
|
+
const anchor = parseID(ids[0]);
|
|
419
|
+
resources.forEach(({ id }) => {
|
|
420
|
+
const rel = direction === "to" ? parentRel(anchor, id) : parentRel(id, anchor);
|
|
421
|
+
this.cache.relationships.set(relationshipToString(rel), rel);
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
return resources;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
private dependentSurface(
|
|
428
|
+
cache: query.Cache,
|
|
429
|
+
name: string,
|
|
430
|
+
direction: RelationshipDirection,
|
|
431
|
+
): query.Retrieves<DependentParams, Resource[]> {
|
|
432
|
+
const anchor = oppositeRelationshipDirection(direction);
|
|
433
|
+
const space = cache.queries<DependentRequest, Resource[], string, Resource>({
|
|
434
|
+
name,
|
|
435
|
+
table: this.cache.resources,
|
|
436
|
+
fetch: async (q) => (await this.fetchDependents(q, direction)).map((r) => r.key),
|
|
437
|
+
compose: (records) => records,
|
|
438
|
+
matches: (resource, q) => this.isDependent(resource, q, direction),
|
|
439
|
+
serverFields: DEPENDENT_SERVER_FIELDS,
|
|
440
|
+
watch: [
|
|
441
|
+
query.watch(this.cache.relationships, (event, q: DependentRequest) => {
|
|
442
|
+
const rel =
|
|
443
|
+
event.variant === "set" ? event.value : relationshipZ.parse(event.key);
|
|
444
|
+
if (rel.type !== PARENT_OF_RELATIONSHIP_TYPE) return null;
|
|
445
|
+
if (!q.ids.includes(idToString(rel[anchor]))) return null;
|
|
446
|
+
if (q.types != null && !q.types.includes(rel[direction].type)) return null;
|
|
447
|
+
return [idToString(rel[direction])];
|
|
448
|
+
}),
|
|
449
|
+
],
|
|
450
|
+
});
|
|
451
|
+
return {
|
|
452
|
+
retrieve: async ({ ids, ...options }, opts) =>
|
|
453
|
+
await space.retrieve(normalizeDependents(ids, options), opts),
|
|
454
|
+
onChange: ({ ids, ...options }, handler) =>
|
|
455
|
+
space.onChange(normalizeDependents(ids, options), handler),
|
|
456
|
+
getCached: ({ ids, ...options }) =>
|
|
457
|
+
space.getCached(normalizeDependents(ids, options)),
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
/** Whether a cached relationship makes the resource a dependent of the query. */
|
|
462
|
+
private isDependent(
|
|
463
|
+
resource: Resource,
|
|
464
|
+
q: DependentRequest,
|
|
465
|
+
direction: RelationshipDirection,
|
|
466
|
+
): boolean {
|
|
467
|
+
if (q.types != null && !q.types.includes(resource.id.type)) return false;
|
|
468
|
+
const anchor = oppositeRelationshipDirection(direction);
|
|
469
|
+
return (
|
|
470
|
+
this.cache.relationships.get(
|
|
471
|
+
(rel) =>
|
|
472
|
+
rel.type === PARENT_OF_RELATIONSHIP_TYPE &&
|
|
473
|
+
q.ids.includes(idToString(rel[anchor])) &&
|
|
474
|
+
idsEqual(rel[direction], resource.id),
|
|
475
|
+
).length > 0
|
|
476
|
+
);
|
|
163
477
|
}
|
|
164
478
|
|
|
165
479
|
private async execRetrieve(request: RetrieveRequest): Promise<Resource[]> {
|
|
166
|
-
const { resources } = await this.
|
|
480
|
+
const { resources } = await this.cfg.unary.send(
|
|
167
481
|
"/ontology/retrieve",
|
|
168
482
|
request,
|
|
169
|
-
|
|
483
|
+
wireReqZ,
|
|
170
484
|
retrieveResZ,
|
|
171
485
|
);
|
|
172
486
|
return resources;
|
|
173
487
|
}
|
|
174
488
|
}
|
|
175
|
-
|
|
176
|
-
export const RESOURCE_SET_CHANNEL_NAME = "sy_ontology_resource_set";
|
|
177
|
-
export const RESOURCE_DELETE_CHANNEL_NAME = "sy_ontology_resource_delete";
|
|
178
|
-
export const RELATIONSHIP_SET_CHANNEL_NAME = "sy_ontology_relationship_set";
|
|
179
|
-
export const RELATIONSHIP_DELETE_CHANNEL_NAME = "sy_ontology_relationship_delete";
|
package/src/ontology/external.ts
CHANGED
|
@@ -9,3 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
export * from "@/ontology/client";
|
|
11
11
|
export * from "@/ontology/payload";
|
|
12
|
+
export {
|
|
13
|
+
Cache,
|
|
14
|
+
RELATIONSHIP_DELETE_CHANNEL_NAME,
|
|
15
|
+
RELATIONSHIP_SET_CHANNEL_NAME,
|
|
16
|
+
RESOURCE_DELETE_CHANNEL_NAME,
|
|
17
|
+
RESOURCE_SET_CHANNEL_NAME,
|
|
18
|
+
} from "@/ontology/store";
|