@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,241 @@
|
|
|
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 {
|
|
11
|
+
errors,
|
|
12
|
+
id,
|
|
13
|
+
narrow,
|
|
14
|
+
type optional,
|
|
15
|
+
primitive,
|
|
16
|
+
record,
|
|
17
|
+
TimeStamp,
|
|
18
|
+
} from "@synnaxlabs/x";
|
|
19
|
+
import { z } from "zod";
|
|
20
|
+
|
|
21
|
+
import { type Status, type Variant } from "@/status/types.gen";
|
|
22
|
+
|
|
23
|
+
// Input type for creating statuses - uses conditional typing for optional details
|
|
24
|
+
type Base<V extends Variant> = {
|
|
25
|
+
key: string;
|
|
26
|
+
name: string;
|
|
27
|
+
variant: V;
|
|
28
|
+
message: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
time: TimeStamp;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/** A status before it is stamped with a key, a time, and a name. */
|
|
34
|
+
export type Crude<
|
|
35
|
+
DetailsSchema extends z.ZodType = z.ZodNever,
|
|
36
|
+
V extends Variant = Variant,
|
|
37
|
+
> = optional.Optional<Base<V>, "key" | "time" | "name"> &
|
|
38
|
+
([DetailsSchema] extends [z.ZodNever] ? {} : { details: z.output<DetailsSchema> });
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Interface that errors may optionally implement to provide richer rendering when
|
|
42
|
+
* passed to {@link fromException}. Implementers return a partial {@link Crude} spec
|
|
43
|
+
* whose fields override the defaults derived from the underlying `Error`. This is a
|
|
44
|
+
* duck-typed contract: `fromException` checks for the presence of a `toStatus` method
|
|
45
|
+
* via the `in` operator, so there is no need to import this interface to use it.
|
|
46
|
+
*/
|
|
47
|
+
export interface Custom {
|
|
48
|
+
toStatus(): Partial<Crude<z.ZodRecord, "error">>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const customReturnZ = z.object({
|
|
52
|
+
message: z.string().optional(),
|
|
53
|
+
description: z.string().optional(),
|
|
54
|
+
details: record.unknownZ().optional(),
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const safeToStatus = (exc: unknown): z.infer<typeof customReturnZ> | undefined => {
|
|
58
|
+
if (
|
|
59
|
+
exc == null ||
|
|
60
|
+
typeof exc !== "object" ||
|
|
61
|
+
!("toStatus" in exc) ||
|
|
62
|
+
typeof exc.toStatus !== "function"
|
|
63
|
+
)
|
|
64
|
+
return undefined;
|
|
65
|
+
let raw: unknown;
|
|
66
|
+
try {
|
|
67
|
+
raw = exc.toStatus();
|
|
68
|
+
} catch {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const parsed = customReturnZ.safeParse(raw);
|
|
72
|
+
return parsed.success ? parsed.data : undefined;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/** Details a status built by {@link fromException} carries. */
|
|
76
|
+
export const exceptionDetailsSchema = z
|
|
77
|
+
.object({
|
|
78
|
+
stack: z.string(),
|
|
79
|
+
error: z.instanceof(Error),
|
|
80
|
+
})
|
|
81
|
+
.and(record.unknownZ());
|
|
82
|
+
|
|
83
|
+
/** Flattens an error's cause chain into one readable line. */
|
|
84
|
+
const causeChain = (err: Error): string | undefined => {
|
|
85
|
+
const parts: string[] = [];
|
|
86
|
+
let cause: unknown = err.cause;
|
|
87
|
+
for (let i = 0; i < 8 && cause instanceof Error; i++) {
|
|
88
|
+
if (cause.message.length > 0) parts.push(cause.message);
|
|
89
|
+
cause = cause.cause;
|
|
90
|
+
}
|
|
91
|
+
if (parts.length === 0) return undefined;
|
|
92
|
+
return parts.join(": ");
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Turns any thrown value into an error status, flattening its cause chain into the
|
|
97
|
+
* description and keeping the error and its stack in the details.
|
|
98
|
+
*/
|
|
99
|
+
export const fromException = (
|
|
100
|
+
exc: unknown,
|
|
101
|
+
message?: string,
|
|
102
|
+
): Status<typeof exceptionDetailsSchema, z.ZodLiteral<"error">> => {
|
|
103
|
+
const err = errors.fromUnknown(exc);
|
|
104
|
+
const detail = causeChain(err);
|
|
105
|
+
const crude: Crude<typeof exceptionDetailsSchema, "error"> = {
|
|
106
|
+
variant: "error",
|
|
107
|
+
message: message ?? err.message,
|
|
108
|
+
description:
|
|
109
|
+
message != null
|
|
110
|
+
? [err.message, detail].filter((part) => part != null).join(": ")
|
|
111
|
+
: detail,
|
|
112
|
+
details: { stack: err.stack ?? "", error: err },
|
|
113
|
+
};
|
|
114
|
+
// Probe the original (pre-coercion) value so a non-Error throwable with a custom
|
|
115
|
+
// `toStatus()` method still contributes its status fields.
|
|
116
|
+
const custom = safeToStatus(exc);
|
|
117
|
+
if (custom != null) {
|
|
118
|
+
if (message != null && custom.message != null)
|
|
119
|
+
crude.message = `${message}: ${custom.message}`;
|
|
120
|
+
else if (custom.message != null) crude.message = custom.message;
|
|
121
|
+
if (custom.description != null) crude.description = custom.description;
|
|
122
|
+
if (custom.details != null && crude.details != null)
|
|
123
|
+
crude.details = { ...crude.details, ...custom.details };
|
|
124
|
+
}
|
|
125
|
+
return create<typeof exceptionDetailsSchema, "error">(crude);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Converts an exception-shaped status (one built via {@link fromException}) back into a
|
|
130
|
+
* thrown-shaped {@link Error}. The returned error carries the status's wrapped message,
|
|
131
|
+
* copies `name` and `stack` from the inner error preserved on `details.error`, and
|
|
132
|
+
* stashes the full status on `cause` for callers that need the rich shape. Use this
|
|
133
|
+
* when bridging the status pipeline back into a context that expects a real Error —
|
|
134
|
+
* typically before `throw`-ing across an error boundary.
|
|
135
|
+
*/
|
|
136
|
+
export const toError = (
|
|
137
|
+
s: Status<typeof exceptionDetailsSchema, z.ZodLiteral<"error">>,
|
|
138
|
+
): Error => {
|
|
139
|
+
const inner = s.details.error;
|
|
140
|
+
const err = new Error(s.message, { cause: s });
|
|
141
|
+
err.name = inner.name;
|
|
142
|
+
err.stack = inner.stack;
|
|
143
|
+
return err;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
/** Stamps a {@link Crude} status with a fresh key and the current time. */
|
|
147
|
+
export const create = <
|
|
148
|
+
DetailsSchema extends z.ZodType = z.ZodNever,
|
|
149
|
+
V extends Variant = Variant,
|
|
150
|
+
>(
|
|
151
|
+
spec: Crude<DetailsSchema, V>,
|
|
152
|
+
): Status<DetailsSchema, z.ZodType<V>> =>
|
|
153
|
+
({
|
|
154
|
+
key: id.create(),
|
|
155
|
+
time: TimeStamp.now(),
|
|
156
|
+
name: "",
|
|
157
|
+
...spec,
|
|
158
|
+
description: spec.description ?? "",
|
|
159
|
+
}) as Status<DetailsSchema, z.ZodType<V>>;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Reads the details of a status whose schema is not statically known, as when
|
|
163
|
+
* scanning the generically-typed status table for rows belonging to a domain.
|
|
164
|
+
* @returns The details, or undefined when the status carries none.
|
|
165
|
+
*/
|
|
166
|
+
export const detailsOf = (status: Status): record.Unknown | undefined =>
|
|
167
|
+
(status as { details?: record.Unknown }).details;
|
|
168
|
+
|
|
169
|
+
/** @returns the variant when it is one of the kept ones, else undefined. */
|
|
170
|
+
export const keepVariants = (
|
|
171
|
+
variant?: Variant,
|
|
172
|
+
keep: Variant | Variant[] = [],
|
|
173
|
+
): Variant | undefined => {
|
|
174
|
+
if (variant == null) return undefined;
|
|
175
|
+
if (Array.isArray(keep)) {
|
|
176
|
+
if (keep.includes(variant)) return variant;
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
return keep === variant ? variant : undefined;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
/** @returns the variant unless it is one of the removed ones. */
|
|
183
|
+
export const removeVariants = (
|
|
184
|
+
variant?: Variant,
|
|
185
|
+
remove: Variant | Variant[] = [],
|
|
186
|
+
): Variant | undefined => {
|
|
187
|
+
if (variant == null) return undefined;
|
|
188
|
+
if (Array.isArray(remove)) {
|
|
189
|
+
if (remove.includes(variant)) return undefined;
|
|
190
|
+
return variant;
|
|
191
|
+
}
|
|
192
|
+
return remove === variant ? undefined : variant;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/** Options for {@link toString}. */
|
|
196
|
+
export interface ToStringOptions {
|
|
197
|
+
includeTimestamp?: boolean;
|
|
198
|
+
includeName?: boolean;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const DEFAULT_TO_STRING_OPTIONS: ToStringOptions = {
|
|
202
|
+
includeTimestamp: false,
|
|
203
|
+
includeName: true,
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
const renderDescription = (description: string): string => {
|
|
207
|
+
if (description.includes("\n")) return `Description:\n${description}`;
|
|
208
|
+
try {
|
|
209
|
+
const parsed = JSON.parse(description);
|
|
210
|
+
return `Description:\n${JSON.stringify(parsed, null, 2)}`;
|
|
211
|
+
} catch {
|
|
212
|
+
return `Description: ${description}`;
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
/** Renders a status as readable text, pretty-printing a JSON description. */
|
|
217
|
+
export const toString = <Details extends z.ZodType = z.ZodNever>(
|
|
218
|
+
stat: Status<Details>,
|
|
219
|
+
options: ToStringOptions = {},
|
|
220
|
+
): string => {
|
|
221
|
+
const opts = { ...DEFAULT_TO_STRING_OPTIONS, ...options };
|
|
222
|
+
const parts: string[] = [];
|
|
223
|
+
let header = stat.variant.toUpperCase();
|
|
224
|
+
if (opts.includeName && primitive.isNonZero(stat.name)) header += ` [${stat.name}]`;
|
|
225
|
+
header += `: ${stat.message}`;
|
|
226
|
+
if (opts.includeTimestamp) header += ` (${stat.time.toString("dateTime", "local")})`;
|
|
227
|
+
parts.push(header);
|
|
228
|
+
if (primitive.isNonZero(stat.description))
|
|
229
|
+
parts.push(renderDescription(stat.description));
|
|
230
|
+
if ("details" in stat && narrow.isObject(stat.details)) {
|
|
231
|
+
const details = stat.details as Record<string, unknown>;
|
|
232
|
+
if ("stack" in details && typeof details.stack === "string" && details.stack !== "")
|
|
233
|
+
parts.push(`Stack Trace:\n${details.stack}`);
|
|
234
|
+
const extraDetails = Object.fromEntries(
|
|
235
|
+
Object.entries(details).filter(([k]) => k !== "stack" && k !== "error"),
|
|
236
|
+
);
|
|
237
|
+
if (Object.keys(extraDetails).length > 0)
|
|
238
|
+
parts.push(`Details:\n${JSON.stringify(extraDetails, null, 2)}`);
|
|
239
|
+
}
|
|
240
|
+
return parts.join("\n\n");
|
|
241
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// Copyright 2026 Synnax Labs, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Use of this software is governed by the Business Source License included in the file
|
|
4
|
+
// licenses/BSL.txt.
|
|
5
|
+
//
|
|
6
|
+
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
7
|
+
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
|
+
// included in the file licenses/APL.txt.
|
|
9
|
+
|
|
10
|
+
// Code generated by Oracle. DO NOT EDIT.
|
|
11
|
+
|
|
12
|
+
import { id, type optional, telem, TimeStamp, zod } from "@synnaxlabs/x";
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
|
|
15
|
+
import { label } from "@/label";
|
|
16
|
+
|
|
17
|
+
export const VARIANTS = [
|
|
18
|
+
"success",
|
|
19
|
+
"info",
|
|
20
|
+
"warning",
|
|
21
|
+
"error",
|
|
22
|
+
"loading",
|
|
23
|
+
"disabled",
|
|
24
|
+
] as const;
|
|
25
|
+
export const variantZ = z.enum(VARIANTS);
|
|
26
|
+
export const successVariantZ = z.literal("success");
|
|
27
|
+
export const infoVariantZ = z.literal("info");
|
|
28
|
+
export const warningVariantZ = z.literal("warning");
|
|
29
|
+
export const errorVariantZ = z.literal("error");
|
|
30
|
+
export const loadingVariantZ = z.literal("loading");
|
|
31
|
+
export const disabledVariantZ = z.literal("disabled");
|
|
32
|
+
export type Variant = z.infer<typeof variantZ>;
|
|
33
|
+
|
|
34
|
+
export const keyZ = z.string();
|
|
35
|
+
export type Key = z.infer<typeof keyZ>;
|
|
36
|
+
|
|
37
|
+
export interface StatusSchemas<
|
|
38
|
+
Details extends z.ZodType = z.ZodType,
|
|
39
|
+
V extends z.ZodType<Variant> = z.ZodType<Variant>,
|
|
40
|
+
> {
|
|
41
|
+
details: Details;
|
|
42
|
+
v: V;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type StatusZodObject<
|
|
46
|
+
Details extends z.ZodType = z.ZodNever,
|
|
47
|
+
V extends z.ZodType<Variant> = typeof variantZ,
|
|
48
|
+
> = z.ZodObject<{
|
|
49
|
+
key: z.ZodDefault<typeof keyZ>;
|
|
50
|
+
name: z.ZodDefault<z.ZodString>;
|
|
51
|
+
variant: V;
|
|
52
|
+
message: z.ZodString;
|
|
53
|
+
description: z.ZodDefault<z.ZodString>;
|
|
54
|
+
time: z.ZodDefault<typeof telem.timeStampZ>;
|
|
55
|
+
labels: ReturnType<typeof zod.nullToUndefined<z.ZodArray<typeof label.labelZ>>>;
|
|
56
|
+
details: [Details] extends [z.ZodNever] ? z.ZodOptional<z.ZodUnknown> : Details;
|
|
57
|
+
}>;
|
|
58
|
+
|
|
59
|
+
export interface StatusZFunction {
|
|
60
|
+
<
|
|
61
|
+
Details extends z.ZodType = z.ZodNever,
|
|
62
|
+
V extends z.ZodType<Variant> = typeof variantZ,
|
|
63
|
+
>(args: {
|
|
64
|
+
details?: Details;
|
|
65
|
+
v?: V;
|
|
66
|
+
}): StatusZodObject<Details, V>;
|
|
67
|
+
<
|
|
68
|
+
Details extends z.ZodType = z.ZodNever,
|
|
69
|
+
V extends z.ZodType<Variant> = typeof variantZ,
|
|
70
|
+
>(
|
|
71
|
+
args?: Partial<StatusSchemas<Details, V>>,
|
|
72
|
+
): StatusZodObject<Details, V>;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const statusZ: StatusZFunction = <
|
|
76
|
+
Details extends z.ZodType,
|
|
77
|
+
V extends z.ZodType<Variant>,
|
|
78
|
+
>({ details, v }: Partial<StatusSchemas<Details, V>> = {}) =>
|
|
79
|
+
z.object({
|
|
80
|
+
key: keyZ.default(id.create),
|
|
81
|
+
name: z.string().default(""),
|
|
82
|
+
variant: v ?? variantZ,
|
|
83
|
+
message: z.string(),
|
|
84
|
+
description: z.string().default(""),
|
|
85
|
+
time: telem.timeStampZ.default(() => TimeStamp.now()),
|
|
86
|
+
details: details ?? z.unknown().optional(),
|
|
87
|
+
labels: zod.nullToUndefined(label.labelZ.array()),
|
|
88
|
+
});
|
|
89
|
+
export type Status<
|
|
90
|
+
Details extends z.ZodType = z.ZodNever,
|
|
91
|
+
V extends z.ZodType<Variant> = typeof variantZ,
|
|
92
|
+
> = {
|
|
93
|
+
key: Key;
|
|
94
|
+
name: string;
|
|
95
|
+
variant: z.infer<V>;
|
|
96
|
+
message: string;
|
|
97
|
+
description: string;
|
|
98
|
+
time: telem.TimeStamp;
|
|
99
|
+
labels?: label.Label[];
|
|
100
|
+
} & ([Details] extends [z.ZodNever] ? {} : { details: z.infer<Details> });
|
|
101
|
+
export type New<
|
|
102
|
+
Details extends z.ZodType = z.ZodNever,
|
|
103
|
+
V extends z.ZodType<Variant> = typeof variantZ,
|
|
104
|
+
> = Omit<
|
|
105
|
+
optional.Optional<Status<Details, V>, "key" | "name" | "description" | "time">,
|
|
106
|
+
"details"
|
|
107
|
+
> &
|
|
108
|
+
([Details] extends [z.ZodNever] ? {} : { details: z.input<Details> });
|
package/src/table/actions.gen.ts
CHANGED
|
@@ -8,12 +8,22 @@
|
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
10
|
// Code generated by Oracle. DO NOT EDIT.
|
|
11
|
-
import {
|
|
11
|
+
import { zod } from "@synnaxlabs/x";
|
|
12
12
|
import { type Draft } from "immer";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
|
|
15
15
|
import { actions } from "@/actions";
|
|
16
|
-
import { cellTemplateZ, cellZ, keyZ, type Table } from "@/table/types.gen";
|
|
16
|
+
import { cellTemplateZ, cellZ, keyZ, type Table, tableZ } from "@/table/types.gen";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create replaces the document with the given created state. Emitted by the Core on
|
|
20
|
+
* create so remote caches ingest new documents; clients never dispatch it.
|
|
21
|
+
*/
|
|
22
|
+
export const createPayloadZ = z.object({
|
|
23
|
+
table: tableZ,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export type CreatePayload = z.infer<typeof createPayloadZ>;
|
|
17
27
|
|
|
18
28
|
/** Rename renames the table. */
|
|
19
29
|
export const renamePayloadZ = z.object({
|
|
@@ -25,33 +35,28 @@ export type RenamePayload = z.infer<typeof renamePayloadZ>;
|
|
|
25
35
|
/**
|
|
26
36
|
* AddRow inserts a row at the given index. Three flows:
|
|
27
37
|
*
|
|
28
|
-
* 1. User gesture with cell_template against a non-empty table:
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* non-empty): use cells as-is. If the original RemoveRow had
|
|
35
|
-
* stripped the table down to no columns, the explicit cells
|
|
36
|
-
* trigger the same column-bootstrap as flow 2.
|
|
38
|
+
* 1. User gesture with cell_template against a non-empty table: replicate the template
|
|
39
|
+
* once per existing column. 2. User gesture with cell_template against a fully-empty
|
|
40
|
+
* table: seed a 1x1 grid (one template replica plus one default-sized column). 3. Undo
|
|
41
|
+
* replay of RemoveRow (cell_template is null, cells is non-empty): use cells as-is. If
|
|
42
|
+
* the original RemoveRow had stripped the table down to no columns, the explicit cells
|
|
43
|
+
* trigger the same column-bootstrap as flow 2.
|
|
37
44
|
*
|
|
38
|
-
* Derived replica keys come from the template's key with the last
|
|
39
|
-
*
|
|
40
|
-
* indices clamp to the end.
|
|
45
|
+
* Derived replica keys come from the template's key with the last four hex digits
|
|
46
|
+
* replaced by the column index. Out-of-range indices clamp to the end.
|
|
41
47
|
*/
|
|
42
48
|
export const addRowPayloadZ = z.object({
|
|
43
49
|
index: z.uint32(),
|
|
44
50
|
size: z.number(),
|
|
45
|
-
cells: array.
|
|
51
|
+
cells: cellZ.array().default(() => []),
|
|
46
52
|
cellTemplate: cellZ.optional(),
|
|
47
53
|
});
|
|
48
54
|
|
|
49
55
|
export type AddRowPayload = z.infer<typeof addRowPayloadZ>;
|
|
50
56
|
|
|
51
57
|
/**
|
|
52
|
-
* RemoveRow removes the row at the given index. All cells referenced by the
|
|
53
|
-
*
|
|
54
|
-
* index is out of range.
|
|
58
|
+
* RemoveRow removes the row at the given index. All cells referenced by the removed row
|
|
59
|
+
* are also dropped from the cells map. No-op if the index is out of range.
|
|
55
60
|
*/
|
|
56
61
|
export const removeRowPayloadZ = z.object({
|
|
57
62
|
index: z.uint32(),
|
|
@@ -62,35 +67,30 @@ export type RemoveRowPayload = z.infer<typeof removeRowPayloadZ>;
|
|
|
62
67
|
/**
|
|
63
68
|
* AddCol inserts a column at the given index. Three flows:
|
|
64
69
|
*
|
|
65
|
-
* 1. User gesture with cell_template against a non-empty table:
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* non-empty): use cells as-is. If the original RemoveCol had
|
|
72
|
-
* stripped the table down to no rows, the explicit cells
|
|
73
|
-
* trigger the same row-bootstrap as flow 2.
|
|
70
|
+
* 1. User gesture with cell_template against a non-empty table: replicate the template
|
|
71
|
+
* once per existing row. 2. User gesture with cell_template against a fully-empty
|
|
72
|
+
* table: seed a 1x1 grid (one template replica plus one default-sized row). 3. Undo
|
|
73
|
+
* replay of RemoveCol (cell_template is null, cells is non-empty): use cells as-is. If
|
|
74
|
+
* the original RemoveCol had stripped the table down to no rows, the explicit cells
|
|
75
|
+
* trigger the same row-bootstrap as flow 2.
|
|
74
76
|
*
|
|
75
|
-
* Derived replica keys come from the template's key with the last
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* referenced by any row. Out-of-range indices clamp to the end of
|
|
77
|
+
* Derived replica keys come from the template's key with the last four hex digits
|
|
78
|
+
* replaced by the row index. Cells whose row index exceeds the row count are added to
|
|
79
|
+
* the cells map but not referenced by any row. Out-of-range indices clamp to the end of
|
|
79
80
|
* every row's cells list.
|
|
80
81
|
*/
|
|
81
82
|
export const addColPayloadZ = z.object({
|
|
82
83
|
index: z.uint32(),
|
|
83
84
|
size: z.number(),
|
|
84
|
-
cells: array.
|
|
85
|
+
cells: cellZ.array().default(() => []),
|
|
85
86
|
cellTemplate: cellZ.optional(),
|
|
86
87
|
});
|
|
87
88
|
|
|
88
89
|
export type AddColPayload = z.infer<typeof addColPayloadZ>;
|
|
89
90
|
|
|
90
91
|
/**
|
|
91
|
-
* RemoveCol removes the column at the given index. All cells in that column
|
|
92
|
-
*
|
|
93
|
-
* index is out of range.
|
|
92
|
+
* RemoveCol removes the column at the given index. All cells in that column (across
|
|
93
|
+
* every row) are dropped from the cells map. No-op if the index is out of range.
|
|
94
94
|
*/
|
|
95
95
|
export const removeColPayloadZ = z.object({
|
|
96
96
|
index: z.uint32(),
|
|
@@ -106,7 +106,9 @@ export const resizeRowPayloadZ = z.object({
|
|
|
106
106
|
|
|
107
107
|
export type ResizeRowPayload = z.infer<typeof resizeRowPayloadZ>;
|
|
108
108
|
|
|
109
|
-
/**
|
|
109
|
+
/**
|
|
110
|
+
* ResizeCol resizes the column at the given index. No-op if the index is out of range.
|
|
111
|
+
*/
|
|
110
112
|
export const resizeColPayloadZ = z.object({
|
|
111
113
|
index: z.uint32(),
|
|
112
114
|
size: z.number(),
|
|
@@ -115,8 +117,8 @@ export const resizeColPayloadZ = z.object({
|
|
|
115
117
|
export type ResizeColPayload = z.infer<typeof resizeColPayloadZ>;
|
|
116
118
|
|
|
117
119
|
/**
|
|
118
|
-
* SetCell replaces the cell at cell.key with the provided value. No-op if
|
|
119
|
-
*
|
|
120
|
+
* SetCell replaces the cell at cell.key with the provided value. No-op if no cell with
|
|
121
|
+
* that key exists in the table.
|
|
120
122
|
*/
|
|
121
123
|
export const setCellPayloadZ = z.object({
|
|
122
124
|
cell: cellZ,
|
|
@@ -125,21 +127,24 @@ export const setCellPayloadZ = z.object({
|
|
|
125
127
|
export type SetCellPayload = z.infer<typeof setCellPayloadZ>;
|
|
126
128
|
|
|
127
129
|
/**
|
|
128
|
-
* EraseCells erases the cells whose keys are in cells. Any row whose every
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* cells map are silently skipped.
|
|
130
|
+
* EraseCells erases the cells whose keys are in cells. Any row whose every cell is in
|
|
131
|
+
* the selection is removed entirely; same for columns. Cells that survive that
|
|
132
|
+
* row/column removal have their variant and props replaced with the template's, keeping
|
|
133
|
+
* their original keys. Cells in the selection whose keys are not in the table's cells
|
|
134
|
+
* map are silently skipped.
|
|
134
135
|
*/
|
|
135
136
|
export const eraseCellsPayloadZ = z.object({
|
|
136
|
-
cells:
|
|
137
|
+
cells: z
|
|
138
|
+
.string()
|
|
139
|
+
.array()
|
|
140
|
+
.default(() => []),
|
|
137
141
|
template: cellTemplateZ,
|
|
138
142
|
});
|
|
139
143
|
|
|
140
144
|
export type EraseCellsPayload = z.infer<typeof eraseCellsPayloadZ>;
|
|
141
145
|
|
|
142
146
|
export const actionZ = z.discriminatedUnion("type", [
|
|
147
|
+
z.object({ type: z.literal("create"), create: createPayloadZ }),
|
|
143
148
|
z.object({ type: z.literal("rename"), rename: renamePayloadZ }),
|
|
144
149
|
z.object({ type: z.literal("add_row"), addRow: addRowPayloadZ }),
|
|
145
150
|
z.object({ type: z.literal("remove_row"), removeRow: removeRowPayloadZ }),
|
|
@@ -153,49 +158,74 @@ export const actionZ = z.discriminatedUnion("type", [
|
|
|
153
158
|
|
|
154
159
|
export type Action = z.infer<typeof actionZ>;
|
|
155
160
|
|
|
156
|
-
export const
|
|
161
|
+
export const create = (payload: z.input<typeof createPayloadZ>): Action => ({
|
|
162
|
+
type: "create",
|
|
163
|
+
create: zod.parse(createPayloadZ, payload, {
|
|
164
|
+
label: "table create action payload",
|
|
165
|
+
}),
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
export const rename = (payload: z.input<typeof renamePayloadZ>): Action => ({
|
|
157
169
|
type: "rename",
|
|
158
|
-
rename: payload,
|
|
170
|
+
rename: zod.parse(renamePayloadZ, payload, {
|
|
171
|
+
label: "table rename action payload",
|
|
172
|
+
}),
|
|
159
173
|
});
|
|
160
174
|
|
|
161
|
-
export const addRow = (payload:
|
|
175
|
+
export const addRow = (payload: z.input<typeof addRowPayloadZ>): Action => ({
|
|
162
176
|
type: "add_row",
|
|
163
|
-
addRow: payload,
|
|
177
|
+
addRow: zod.parse(addRowPayloadZ, payload, {
|
|
178
|
+
label: "table add_row action payload",
|
|
179
|
+
}),
|
|
164
180
|
});
|
|
165
181
|
|
|
166
|
-
export const removeRow = (payload:
|
|
182
|
+
export const removeRow = (payload: z.input<typeof removeRowPayloadZ>): Action => ({
|
|
167
183
|
type: "remove_row",
|
|
168
|
-
removeRow: payload,
|
|
184
|
+
removeRow: zod.parse(removeRowPayloadZ, payload, {
|
|
185
|
+
label: "table remove_row action payload",
|
|
186
|
+
}),
|
|
169
187
|
});
|
|
170
188
|
|
|
171
|
-
export const addCol = (payload:
|
|
189
|
+
export const addCol = (payload: z.input<typeof addColPayloadZ>): Action => ({
|
|
172
190
|
type: "add_col",
|
|
173
|
-
addCol: payload,
|
|
191
|
+
addCol: zod.parse(addColPayloadZ, payload, {
|
|
192
|
+
label: "table add_col action payload",
|
|
193
|
+
}),
|
|
174
194
|
});
|
|
175
195
|
|
|
176
|
-
export const removeCol = (payload:
|
|
196
|
+
export const removeCol = (payload: z.input<typeof removeColPayloadZ>): Action => ({
|
|
177
197
|
type: "remove_col",
|
|
178
|
-
removeCol: payload,
|
|
198
|
+
removeCol: zod.parse(removeColPayloadZ, payload, {
|
|
199
|
+
label: "table remove_col action payload",
|
|
200
|
+
}),
|
|
179
201
|
});
|
|
180
202
|
|
|
181
|
-
export const resizeRow = (payload:
|
|
203
|
+
export const resizeRow = (payload: z.input<typeof resizeRowPayloadZ>): Action => ({
|
|
182
204
|
type: "resize_row",
|
|
183
|
-
resizeRow: payload,
|
|
205
|
+
resizeRow: zod.parse(resizeRowPayloadZ, payload, {
|
|
206
|
+
label: "table resize_row action payload",
|
|
207
|
+
}),
|
|
184
208
|
});
|
|
185
209
|
|
|
186
|
-
export const resizeCol = (payload:
|
|
210
|
+
export const resizeCol = (payload: z.input<typeof resizeColPayloadZ>): Action => ({
|
|
187
211
|
type: "resize_col",
|
|
188
|
-
resizeCol: payload,
|
|
212
|
+
resizeCol: zod.parse(resizeColPayloadZ, payload, {
|
|
213
|
+
label: "table resize_col action payload",
|
|
214
|
+
}),
|
|
189
215
|
});
|
|
190
216
|
|
|
191
|
-
export const setCell = (payload:
|
|
217
|
+
export const setCell = (payload: z.input<typeof setCellPayloadZ>): Action => ({
|
|
192
218
|
type: "set_cell",
|
|
193
|
-
setCell: payload,
|
|
219
|
+
setCell: zod.parse(setCellPayloadZ, payload, {
|
|
220
|
+
label: "table set_cell action payload",
|
|
221
|
+
}),
|
|
194
222
|
});
|
|
195
223
|
|
|
196
|
-
export const eraseCells = (payload:
|
|
224
|
+
export const eraseCells = (payload: z.input<typeof eraseCellsPayloadZ>): Action => ({
|
|
197
225
|
type: "erase_cells",
|
|
198
|
-
eraseCells: payload,
|
|
226
|
+
eraseCells: zod.parse(eraseCellsPayloadZ, payload, {
|
|
227
|
+
label: "table erase_cells action payload",
|
|
228
|
+
}),
|
|
199
229
|
});
|
|
200
230
|
|
|
201
231
|
export type HandlerResult = actions.HandlerResult<Action>;
|
|
@@ -203,6 +233,7 @@ export type HandlerResult = actions.HandlerResult<Action>;
|
|
|
203
233
|
export type ReduceAllResult = actions.ReduceAllResult<Table, Action>;
|
|
204
234
|
|
|
205
235
|
export interface Handlers {
|
|
236
|
+
create: (state: Draft<Table>, payload: CreatePayload) => HandlerResult;
|
|
206
237
|
rename: (state: Draft<Table>, payload: RenamePayload) => HandlerResult;
|
|
207
238
|
addRow: (state: Draft<Table>, payload: AddRowPayload) => HandlerResult;
|
|
208
239
|
removeRow: (state: Draft<Table>, payload: RemoveRowPayload) => HandlerResult;
|
|
@@ -217,6 +248,8 @@ export interface Handlers {
|
|
|
217
248
|
export const createReduceAll = (handlers: Handlers) =>
|
|
218
249
|
actions.createReduceAll<Table, Action>((state, action) => {
|
|
219
250
|
switch (action.type) {
|
|
251
|
+
case "create":
|
|
252
|
+
return handlers.create(state, action.create);
|
|
220
253
|
case "rename":
|
|
221
254
|
return handlers.rename(state, action.rename);
|
|
222
255
|
case "add_row":
|