@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
package/src/table/actions.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { actions } from "@/actions";
|
|
11
11
|
import {
|
|
12
12
|
type Action,
|
|
13
13
|
addCol,
|
|
@@ -23,16 +23,14 @@ import {
|
|
|
23
23
|
} from "@/table/actions.gen";
|
|
24
24
|
import { type Cell } from "@/table/types.gen";
|
|
25
25
|
|
|
26
|
-
// MIN_CELL_DIM is the floor enforced on row and column sizes.
|
|
27
26
|
const MIN_CELL_DIM = 32;
|
|
28
27
|
// BASE_ROW_DIM and BASE_COL_DIM are the defaults used when an action
|
|
29
28
|
// bootstraps the opposing axis on an empty table.
|
|
30
29
|
const BASE_ROW_DIM = 36;
|
|
31
30
|
const BASE_COL_DIM = 72;
|
|
32
31
|
|
|
33
|
-
// deriveCellKey returns the key for the index-th replica of template. Both
|
|
34
|
-
//
|
|
35
|
-
// server.
|
|
32
|
+
// deriveCellKey returns the key for the index-th replica of template. Both reducers run
|
|
33
|
+
// the same scheme so optimistic client state agrees with the server.
|
|
36
34
|
const deriveCellKey = (templateKey: string, index: number): string => {
|
|
37
35
|
const suffix = index.toString(16).padStart(4, "0");
|
|
38
36
|
if (templateKey.length < 36) return `${templateKey}-${suffix}`;
|
|
@@ -49,6 +47,11 @@ const expandTemplate = (template: Cell, count: number): Cell[] =>
|
|
|
49
47
|
}));
|
|
50
48
|
|
|
51
49
|
const handlers: Handlers = {
|
|
50
|
+
create: (state, payload) => {
|
|
51
|
+
Object.assign(state, payload.table);
|
|
52
|
+
return { inverse: [], targets: [payload.table.key] };
|
|
53
|
+
},
|
|
54
|
+
|
|
52
55
|
rename: (state, payload) => {
|
|
53
56
|
const oldName = state.name;
|
|
54
57
|
state.name = payload.name;
|
|
@@ -83,12 +86,12 @@ const handlers: Handlers = {
|
|
|
83
86
|
},
|
|
84
87
|
|
|
85
88
|
removeRow: (state, payload) => {
|
|
86
|
-
if (payload.index >= state.rows.length) return
|
|
87
|
-
const removed =
|
|
89
|
+
if (payload.index >= state.rows.length) return actions.NO_OP_RESULT;
|
|
90
|
+
const removed = actions.snapshotDraft(state.rows[payload.index]);
|
|
88
91
|
const cells: Cell[] = [];
|
|
89
92
|
for (const k of removed.cells) {
|
|
90
93
|
const c = state.cells[k];
|
|
91
|
-
if (c != null) cells.push(
|
|
94
|
+
if (c != null) cells.push(actions.snapshotDraft(c));
|
|
92
95
|
}
|
|
93
96
|
state.rows.splice(payload.index, 1);
|
|
94
97
|
for (const k of removed.cells) delete state.cells[k];
|
|
@@ -123,7 +126,7 @@ const handlers: Handlers = {
|
|
|
123
126
|
},
|
|
124
127
|
|
|
125
128
|
removeCol: (state, payload) => {
|
|
126
|
-
if (payload.index >= state.columns.length) return
|
|
129
|
+
if (payload.index >= state.columns.length) return actions.NO_OP_RESULT;
|
|
127
130
|
const oldSize = state.columns[payload.index].size;
|
|
128
131
|
const removedCells: Cell[] = [];
|
|
129
132
|
state.columns.splice(payload.index, 1);
|
|
@@ -134,7 +137,7 @@ const handlers: Handlers = {
|
|
|
134
137
|
if (payload.index >= state.rows[i].cells.length) continue;
|
|
135
138
|
const k = state.rows[i].cells[payload.index];
|
|
136
139
|
const c = state.cells[k];
|
|
137
|
-
if (c != null) removedCells.push(
|
|
140
|
+
if (c != null) removedCells.push(actions.snapshotDraft(c));
|
|
138
141
|
delete state.cells[k];
|
|
139
142
|
state.rows[i].cells.splice(payload.index, 1);
|
|
140
143
|
}
|
|
@@ -145,7 +148,7 @@ const handlers: Handlers = {
|
|
|
145
148
|
},
|
|
146
149
|
|
|
147
150
|
resizeRow: (state, payload) => {
|
|
148
|
-
if (payload.index >= state.rows.length) return
|
|
151
|
+
if (payload.index >= state.rows.length) return actions.NO_OP_RESULT;
|
|
149
152
|
const oldSize = state.rows[payload.index].size;
|
|
150
153
|
state.rows[payload.index].size = Math.max(payload.size, MIN_CELL_DIM);
|
|
151
154
|
return {
|
|
@@ -155,7 +158,7 @@ const handlers: Handlers = {
|
|
|
155
158
|
},
|
|
156
159
|
|
|
157
160
|
resizeCol: (state, payload) => {
|
|
158
|
-
if (payload.index >= state.columns.length) return
|
|
161
|
+
if (payload.index >= state.columns.length) return actions.NO_OP_RESULT;
|
|
159
162
|
const oldSize = state.columns[payload.index].size;
|
|
160
163
|
state.columns[payload.index].size = Math.max(payload.size, MIN_CELL_DIM);
|
|
161
164
|
const targets = state.rows
|
|
@@ -169,8 +172,8 @@ const handlers: Handlers = {
|
|
|
169
172
|
|
|
170
173
|
setCell: (state, payload) => {
|
|
171
174
|
const existing = state.cells[payload.cell.key];
|
|
172
|
-
if (existing == null) return
|
|
173
|
-
const oldCell =
|
|
175
|
+
if (existing == null) return actions.NO_OP_RESULT;
|
|
176
|
+
const oldCell = actions.snapshotDraft(existing);
|
|
174
177
|
state.cells[payload.cell.key] = payload.cell;
|
|
175
178
|
return {
|
|
176
179
|
inverse: [setCell({ cell: oldCell })],
|
|
@@ -179,7 +182,7 @@ const handlers: Handlers = {
|
|
|
179
182
|
},
|
|
180
183
|
|
|
181
184
|
eraseCells: (state, payload) => {
|
|
182
|
-
if (payload.cells.length === 0) return
|
|
185
|
+
if (payload.cells.length === 0) return actions.NO_OP_RESULT;
|
|
183
186
|
const selected = new Set(payload.cells);
|
|
184
187
|
const rowPosOf = new Map<string, { row: number; col: number }>();
|
|
185
188
|
for (let r = 0; r < state.rows.length; r++) {
|
|
@@ -209,11 +212,11 @@ const handlers: Handlers = {
|
|
|
209
212
|
// unshift the inverse so undo replays it in ascending order.
|
|
210
213
|
for (let i = fullRowIdx.length - 1; i >= 0; i--) {
|
|
211
214
|
const idx = fullRowIdx[i];
|
|
212
|
-
const removed =
|
|
215
|
+
const removed = actions.snapshotDraft(state.rows[idx]);
|
|
213
216
|
const cells: Cell[] = [];
|
|
214
217
|
for (const k of removed.cells) {
|
|
215
218
|
const c = state.cells[k];
|
|
216
|
-
if (c != null) cells.push(
|
|
219
|
+
if (c != null) cells.push(actions.snapshotDraft(c));
|
|
217
220
|
}
|
|
218
221
|
state.rows.splice(idx, 1);
|
|
219
222
|
for (const k of removed.cells) delete state.cells[k];
|
|
@@ -229,7 +232,7 @@ const handlers: Handlers = {
|
|
|
229
232
|
if (idx >= state.rows[r].cells.length) continue;
|
|
230
233
|
const k = state.rows[r].cells[idx];
|
|
231
234
|
const c = state.cells[k];
|
|
232
|
-
if (c != null) removedCells.push(
|
|
235
|
+
if (c != null) removedCells.push(actions.snapshotDraft(c));
|
|
233
236
|
delete state.cells[k];
|
|
234
237
|
state.rows[r].cells.splice(idx, 1);
|
|
235
238
|
}
|
|
@@ -239,7 +242,7 @@ const handlers: Handlers = {
|
|
|
239
242
|
for (const k of selected) {
|
|
240
243
|
const existing = state.cells[k];
|
|
241
244
|
if (existing == null) continue;
|
|
242
|
-
const oldCell =
|
|
245
|
+
const oldCell = actions.snapshotDraft(existing);
|
|
243
246
|
state.cells[k] = {
|
|
244
247
|
key: k,
|
|
245
248
|
variant: payload.template.variant,
|
|
@@ -253,3 +256,25 @@ const handlers: Handlers = {
|
|
|
253
256
|
};
|
|
254
257
|
|
|
255
258
|
export const reduceAll = createReduceAll(handlers);
|
|
259
|
+
|
|
260
|
+
// createOf hands the dispatch controller the document carried by a create
|
|
261
|
+
// action so frames for never-cached documents ingest instead of drop.
|
|
262
|
+
export const createOf = (action: Action) =>
|
|
263
|
+
action.type === "create" ? action.create.table : undefined;
|
|
264
|
+
|
|
265
|
+
// kindOf classifies an action batch for the undoable store's per-kind coalesce window.
|
|
266
|
+
// Continuous resize gestures (a stream of resize_row or resize_col actions) collapse
|
|
267
|
+
// into a single undo step; successive set_cell actions on the same cell coalesce
|
|
268
|
+
// per-cell so typing inside one cell collapses to one undo step but switching cells
|
|
269
|
+
// starts a fresh entry; everything else is treated as a discrete user action.
|
|
270
|
+
export const kindOf = (actions: Action[]): string => {
|
|
271
|
+
if (actions.length === 0) return "default";
|
|
272
|
+
if (actions.every((a) => a.type === "resize_row" || a.type === "resize_col"))
|
|
273
|
+
return "resize";
|
|
274
|
+
if (actions.length === 1) {
|
|
275
|
+
const a = actions[0];
|
|
276
|
+
if (a.type === "set_cell") return `set_cell:${a.setCell.cell.key}`;
|
|
277
|
+
return a.type;
|
|
278
|
+
}
|
|
279
|
+
return "transaction";
|
|
280
|
+
};
|
package/src/table/client.ts
CHANGED
|
@@ -8,73 +8,225 @@
|
|
|
8
8
|
// included in the file licenses/APL.txt.
|
|
9
9
|
|
|
10
10
|
import { type UnaryClient } from "@synnaxlabs/freighter";
|
|
11
|
-
import { array } from "@synnaxlabs/x";
|
|
11
|
+
import { array, type destructor, zod } from "@synnaxlabs/x";
|
|
12
12
|
import { z } from "zod";
|
|
13
13
|
|
|
14
|
-
import {
|
|
15
|
-
import { type
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
14
|
+
import { actions } from "@/actions";
|
|
15
|
+
import { type ontology } from "@/ontology";
|
|
16
|
+
import { project } from "@/project";
|
|
17
|
+
import { query } from "@/query";
|
|
18
|
+
import { createOf, kindOf, reduceAll } from "@/table/actions";
|
|
19
|
+
import {
|
|
20
|
+
type Action,
|
|
21
|
+
dispatchReqZ,
|
|
22
|
+
rename as renameAction,
|
|
23
|
+
scopedActionZ,
|
|
24
|
+
} from "@/table/actions.gen";
|
|
25
|
+
import {
|
|
26
|
+
type Key,
|
|
27
|
+
keyZ,
|
|
28
|
+
type New,
|
|
29
|
+
ontologyID,
|
|
30
|
+
type Table,
|
|
31
|
+
tableZ,
|
|
32
|
+
} from "@/table/types.gen";
|
|
18
33
|
|
|
19
34
|
export const SET_CHANNEL_NAME = "sy_table_set";
|
|
35
|
+
export const DELETE_CHANNEL_NAME = "sy_table_delete";
|
|
20
36
|
|
|
21
|
-
const renameReqZ = z.object({ key: keyZ, name: z.string() });
|
|
22
|
-
|
|
23
|
-
const setDataBodyZ = tableZ.omit({ key: true, name: true });
|
|
24
|
-
export type SetDataBody = z.input<typeof setDataBodyZ>;
|
|
25
|
-
const setDataReqZ = z.object({ key: keyZ, data: setDataBodyZ });
|
|
26
37
|
const deleteReqZ = z.object({ keys: keyZ.array() });
|
|
27
38
|
|
|
28
|
-
const retrieveReqZ = z.object({
|
|
29
|
-
|
|
39
|
+
const retrieveReqZ = z.object({
|
|
40
|
+
keys: keyZ.array(),
|
|
41
|
+
ignoreNotFoundError: z.boolean().optional(),
|
|
42
|
+
});
|
|
43
|
+
const retrieveMultiParamsZ = retrieveReqZ.or(query.keyListZ(keyZ));
|
|
44
|
+
const singleRetrieveParamsZ = z
|
|
30
45
|
.object({ key: keyZ })
|
|
31
46
|
.transform(({ key }) => ({ keys: [key] }));
|
|
32
47
|
|
|
33
|
-
export const
|
|
34
|
-
export type
|
|
35
|
-
export type RetrieveSingleParams = z.input<typeof
|
|
48
|
+
export const retrieveParamsZ = z.union([singleRetrieveParamsZ, retrieveReqZ]);
|
|
49
|
+
export type RetrieveParams = z.input<typeof retrieveParamsZ>;
|
|
50
|
+
export type RetrieveSingleParams = z.input<typeof singleRetrieveParamsZ>;
|
|
36
51
|
export type RetrieveMultipleParams = z.input<typeof retrieveReqZ>;
|
|
37
52
|
|
|
38
|
-
|
|
53
|
+
interface RetrieveRequest extends z.infer<typeof retrieveReqZ> {}
|
|
54
|
+
|
|
55
|
+
const retrieveResZ = z.object({ tables: tableZ.array().default(() => []) });
|
|
39
56
|
|
|
40
|
-
const createReqZ = z.object({
|
|
57
|
+
const createReqZ = z.object({ project: project.keyZ, tables: tableZ.array() });
|
|
41
58
|
const createResZ = z.object({ tables: tableZ.array() });
|
|
42
59
|
|
|
43
60
|
const emptyResZ = z.object({});
|
|
44
61
|
|
|
45
|
-
|
|
46
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Client-side matching for a request: exact for the requested key set, the
|
|
64
|
+
* only field a request carries.
|
|
65
|
+
*/
|
|
66
|
+
const requestFilter = (req: RetrieveRequest): ((t: Table) => boolean) => {
|
|
67
|
+
const keySet = new Set(req.keys);
|
|
68
|
+
return (t) => keySet.has(t.key);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export interface ClientConfig {
|
|
72
|
+
unary: UnaryClient;
|
|
73
|
+
cache: query.Cache;
|
|
74
|
+
ontology: ontology.Client;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export class Client extends query.Retriever<typeof retrieveMultiParamsZ, Key, Table> {
|
|
78
|
+
private readonly cfg: ClientConfig;
|
|
79
|
+
private readonly store: query.Table<Key, Table>;
|
|
80
|
+
private readonly dispatcher: actions.Controller<Key, Table, Action>;
|
|
47
81
|
|
|
48
|
-
constructor(
|
|
49
|
-
|
|
82
|
+
constructor(cfg: ClientConfig) {
|
|
83
|
+
const { cache } = cfg;
|
|
84
|
+
// Dispatch mutates documents server-side, so fetched copies never clobber
|
|
85
|
+
// a doc holding locally replayed edits: the table hydrates if-absent.
|
|
86
|
+
const store = cache.createTable<Key, Table>({
|
|
87
|
+
name: "tables",
|
|
88
|
+
hydrate: "if-absent",
|
|
89
|
+
fetch: async (keys) =>
|
|
90
|
+
await this.execRetrieve({ keys, ignoreNotFoundError: true }),
|
|
91
|
+
listen: [query.createDeleteListener(DELETE_CHANNEL_NAME, keyZ)],
|
|
92
|
+
});
|
|
93
|
+
const dispatcher = new actions.Controller<Key, Table, Action>({
|
|
94
|
+
store,
|
|
95
|
+
onError: cache.onError,
|
|
96
|
+
reduce: reduceAll,
|
|
97
|
+
kindOf,
|
|
98
|
+
createOf,
|
|
99
|
+
});
|
|
100
|
+
cache.listen(dispatcher.listener(SET_CHANNEL_NAME, scopedActionZ));
|
|
101
|
+
super(cache, {
|
|
102
|
+
name: "table",
|
|
103
|
+
table: store,
|
|
104
|
+
request: {
|
|
105
|
+
schema: retrieveMultiParamsZ,
|
|
106
|
+
fetch: async (req) => await this.execRetrieve(req),
|
|
107
|
+
matches: (table, req) => requestFilter(req)(table),
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
this.cfg = cfg;
|
|
111
|
+
this.store = store;
|
|
112
|
+
this.dispatcher = dispatcher;
|
|
50
113
|
}
|
|
51
114
|
|
|
52
|
-
async create(workspace: workspace.Key, table: New): Promise<Table>;
|
|
53
|
-
async create(workspace: workspace.Key, tables: New[]): Promise<Table[]>;
|
|
54
115
|
async create(
|
|
55
|
-
|
|
116
|
+
project: project.Key,
|
|
117
|
+
table: New,
|
|
118
|
+
opts?: query.WriteOptions<Table[]>,
|
|
119
|
+
): Promise<Table>;
|
|
120
|
+
async create(
|
|
121
|
+
project: project.Key,
|
|
122
|
+
tables: New[],
|
|
123
|
+
opts?: query.WriteOptions<Table[]>,
|
|
124
|
+
): Promise<Table[]>;
|
|
125
|
+
async create(
|
|
126
|
+
project: project.Key,
|
|
56
127
|
tables: New | New[],
|
|
128
|
+
opts: query.WriteOptions<Table[]> = {},
|
|
57
129
|
): Promise<Table | Table[]> {
|
|
58
130
|
const isMany = Array.isArray(tables);
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
131
|
+
const optimistic = array
|
|
132
|
+
.toArray(tables)
|
|
133
|
+
.map((t) => zod.parse(tableZ, t, { label: "table" }));
|
|
134
|
+
const res = await query.optimistic({
|
|
135
|
+
rollbacks: [this.store.set(optimistic)],
|
|
136
|
+
onOptimistic: () => opts.onOptimistic?.(optimistic),
|
|
137
|
+
commit: async () =>
|
|
138
|
+
await this.cfg.unary.send(
|
|
139
|
+
"/table/create",
|
|
140
|
+
{ project, tables: optimistic },
|
|
141
|
+
createReqZ,
|
|
142
|
+
createResZ,
|
|
143
|
+
),
|
|
144
|
+
});
|
|
145
|
+
this.store.set(res.tables);
|
|
65
146
|
return isMany ? res.tables : res.tables[0];
|
|
66
147
|
}
|
|
67
148
|
|
|
68
|
-
async rename(key: Key, name: string): Promise<void> {
|
|
69
|
-
|
|
149
|
+
async rename(key: Key, name: string, opts: query.WriteOptions = {}): Promise<void> {
|
|
150
|
+
const rename = () => [
|
|
151
|
+
query.partialUpdate(this.store, key, { name }),
|
|
152
|
+
this.cfg.ontology.cache.renameResource(ontologyID(key), name),
|
|
153
|
+
];
|
|
154
|
+
await query.optimistic({
|
|
155
|
+
rollbacks: rename(),
|
|
156
|
+
onOptimistic: opts.onOptimistic,
|
|
157
|
+
commit: async () => await this.sendDispatch(key, "", [renameAction({ name })]),
|
|
158
|
+
});
|
|
159
|
+
rename();
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Applies actions to the cached table and sends them to the server, recording an
|
|
164
|
+
* undoable entry. Returns false without side effects when the table isn't cached.
|
|
165
|
+
* Rolls back the local apply and rethrows on send failure.
|
|
166
|
+
*/
|
|
167
|
+
async dispatch(
|
|
168
|
+
key: Key,
|
|
169
|
+
actions: Action | Action[],
|
|
170
|
+
opts: actions.Options<Table, Action> = {},
|
|
171
|
+
): Promise<boolean> {
|
|
172
|
+
return await this.dispatcher.dispatch(
|
|
173
|
+
key,
|
|
174
|
+
array.toArray(actions),
|
|
175
|
+
this.dispatchSender(key),
|
|
176
|
+
opts,
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Reverts the table's most recent undoable entry. Returns false when
|
|
182
|
+
* nothing is undoable.
|
|
183
|
+
*/
|
|
184
|
+
async undo(key: Key): Promise<boolean> {
|
|
185
|
+
return await this.dispatcher.undo(key, this.dispatchSender(key));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Re-applies the table's most recently undone entry. Returns false when
|
|
190
|
+
* nothing is redoable.
|
|
191
|
+
*/
|
|
192
|
+
async redo(key: Key): Promise<boolean> {
|
|
193
|
+
return await this.dispatcher.redo(key, this.dispatchSender(key));
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/** Whether the table has a live undo entry. */
|
|
197
|
+
hasUndo(key: Key): boolean {
|
|
198
|
+
return this.dispatcher.hasUndo(key);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** Whether the table has a live redo entry. */
|
|
202
|
+
hasRedo(key: Key): boolean {
|
|
203
|
+
return this.dispatcher.hasRedo(key);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Subscribes to changes in the table's undo/redo stacks. Returns a
|
|
208
|
+
* destructor that unsubscribes.
|
|
209
|
+
*/
|
|
210
|
+
onUndoStateChange(callback: () => void, key?: Key): destructor.Destructor {
|
|
211
|
+
return this.dispatcher.onUndoStateChange(callback, key);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/** Stages actions committed atomically as one undoable entry. */
|
|
215
|
+
beginTransaction(key: Key, kind?: string): actions.Transaction<Action> {
|
|
216
|
+
return this.dispatcher.transaction(key, this.dispatchSender(key), kind);
|
|
70
217
|
}
|
|
71
218
|
|
|
72
|
-
|
|
73
|
-
|
|
219
|
+
private dispatchSender(key: Key): actions.SendDispatch<Action> {
|
|
220
|
+
return async (actions, dispatchKey) =>
|
|
221
|
+
await this.sendDispatch(key, dispatchKey, actions);
|
|
74
222
|
}
|
|
75
223
|
|
|
76
|
-
async
|
|
77
|
-
|
|
224
|
+
private async sendDispatch(
|
|
225
|
+
key: Key,
|
|
226
|
+
dispatchKey: string,
|
|
227
|
+
actions: Action[],
|
|
228
|
+
): Promise<void> {
|
|
229
|
+
await this.cfg.unary.send(
|
|
78
230
|
"/table/dispatch",
|
|
79
231
|
{ key, dispatchKey, actions },
|
|
80
232
|
dispatchReqZ,
|
|
@@ -82,28 +234,40 @@ export class Client {
|
|
|
82
234
|
);
|
|
83
235
|
}
|
|
84
236
|
|
|
85
|
-
async
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
237
|
+
async delete(keys: Key | Key[], opts: query.WriteOptions = {}): Promise<void> {
|
|
238
|
+
const keysArr = array.toArray(keys);
|
|
239
|
+
const drop = () => [
|
|
240
|
+
this.cfg.ontology.cache.deleteRelationships(ontologyID(keysArr)),
|
|
241
|
+
this.store.delete(keysArr),
|
|
242
|
+
];
|
|
243
|
+
await query.optimistic({
|
|
244
|
+
rollbacks: drop(),
|
|
245
|
+
onOptimistic: opts.onOptimistic,
|
|
246
|
+
commit: async () =>
|
|
247
|
+
await this.cfg.unary.send(
|
|
248
|
+
"/table/delete",
|
|
249
|
+
{ keys: keysArr },
|
|
250
|
+
deleteReqZ,
|
|
251
|
+
emptyResZ,
|
|
252
|
+
),
|
|
253
|
+
});
|
|
254
|
+
drop();
|
|
99
255
|
}
|
|
100
256
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
257
|
+
/** Subscribes to every table delete delivered to the cache. */
|
|
258
|
+
onDelete(handler: (key: Key) => void): destructor.Destructor {
|
|
259
|
+
return this.store.subscribe((event) => {
|
|
260
|
+
if (event.variant === "delete") handler(event.key);
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
private async execRetrieve(params: RetrieveMultipleParams): Promise<Table[]> {
|
|
265
|
+
const res = await this.cfg.unary.send(
|
|
266
|
+
"/table/retrieve",
|
|
267
|
+
params,
|
|
268
|
+
retrieveReqZ,
|
|
269
|
+
retrieveResZ,
|
|
107
270
|
);
|
|
271
|
+
return res.tables;
|
|
108
272
|
}
|
|
109
273
|
}
|
package/src/table/types.gen.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
// Code generated by Oracle. DO NOT EDIT.
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { caseconv, record, uuid } from "@synnaxlabs/x";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
|
|
15
15
|
import { ontology } from "@/ontology";
|
|
@@ -20,17 +20,15 @@ export const cellZ = z.object({
|
|
|
20
20
|
key: z.string(),
|
|
21
21
|
/**
|
|
22
22
|
* variant is the cell variant identifier (e.g. "text", "value"). The variant
|
|
23
|
-
* determines the shape of props and which Pluto cell component renders
|
|
24
|
-
* the cell.
|
|
23
|
+
* determines the shape of props and which Pluto cell component renders the cell.
|
|
25
24
|
*/
|
|
26
25
|
variant: z.string(),
|
|
27
26
|
/**
|
|
28
|
-
* props is the variant-specific cell configuration. The shape is determined
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* migration.
|
|
27
|
+
* props is the variant-specific cell configuration. The shape is determined by the
|
|
28
|
+
* variant; the wire format intentionally stores it as an opaque record so new
|
|
29
|
+
* variants can be added without a schema migration.
|
|
32
30
|
*/
|
|
33
|
-
props: caseconv.preserveCase(record.
|
|
31
|
+
props: caseconv.preserveCase(record.unknownZ().default(() => ({}))),
|
|
34
32
|
});
|
|
35
33
|
export interface Cell extends z.infer<typeof cellZ> {}
|
|
36
34
|
|
|
@@ -39,10 +37,13 @@ export const rowZ = z.object({
|
|
|
39
37
|
/** size is the height of the row in pixels. */
|
|
40
38
|
size: z.number(),
|
|
41
39
|
/**
|
|
42
|
-
* cells is the ordered list of cell keys in this row from left to right.
|
|
43
|
-
*
|
|
40
|
+
* cells is the ordered list of cell keys in this row from left to right. Each key
|
|
41
|
+
* points at an entry in the table's cells map.
|
|
44
42
|
*/
|
|
45
|
-
cells:
|
|
43
|
+
cells: z
|
|
44
|
+
.string()
|
|
45
|
+
.array()
|
|
46
|
+
.default(() => []),
|
|
46
47
|
});
|
|
47
48
|
export interface Row extends z.infer<typeof rowZ> {}
|
|
48
49
|
|
|
@@ -60,36 +61,28 @@ export const cellTemplateZ = cellZ.omit({ key: true });
|
|
|
60
61
|
export interface CellTemplate extends z.infer<typeof cellTemplateZ> {}
|
|
61
62
|
|
|
62
63
|
/**
|
|
63
|
-
* Table is a tabular data display component for viewing structured telemetry
|
|
64
|
-
*
|
|
65
|
-
*
|
|
64
|
+
* Table is a tabular data display component for viewing structured telemetry data.
|
|
65
|
+
* Tables support multiple columns, channel data sources, and customizable formatting
|
|
66
|
+
* options.
|
|
66
67
|
*/
|
|
67
68
|
export const tableZ = z.object({
|
|
68
69
|
/** key is the unique identifier for this table. */
|
|
69
|
-
key: keyZ,
|
|
70
|
+
key: keyZ.default(uuid.create),
|
|
70
71
|
/** name is a human-readable name for the table. */
|
|
71
|
-
name: z.string(),
|
|
72
|
+
name: z.string().min(1, "name is required"),
|
|
72
73
|
/** rows are the table rows in display order, top to bottom. */
|
|
73
|
-
rows: array.
|
|
74
|
+
rows: rowZ.array().default(() => []),
|
|
74
75
|
/** columns are the table columns in display order, left to right. */
|
|
75
|
-
columns: array.
|
|
76
|
+
columns: columnZ.array().default(() => []),
|
|
76
77
|
/**
|
|
77
|
-
* cells contains all cells in the table, keyed by cell key. Cell positions
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* edit.
|
|
78
|
+
* cells contains all cells in the table, keyed by cell key. Cell positions are
|
|
79
|
+
* derived from rows[*].cells[*] references; cells not referenced by any row are
|
|
80
|
+
* orphaned and will be pruned on the next structural edit.
|
|
81
81
|
*/
|
|
82
|
-
cells: caseconv.preserveCase(record
|
|
82
|
+
cells: caseconv.preserveCase(z.record(z.string(), cellZ).default(() => ({}))),
|
|
83
83
|
});
|
|
84
84
|
export interface Table extends z.infer<typeof tableZ> {}
|
|
85
|
-
|
|
86
|
-
export const newZ = tableZ.partial({
|
|
87
|
-
key: true,
|
|
88
|
-
rows: true,
|
|
89
|
-
columns: true,
|
|
90
|
-
cells: true,
|
|
91
|
-
});
|
|
92
|
-
export interface New extends z.input<typeof newZ> {}
|
|
85
|
+
export interface New extends z.input<typeof tableZ> {}
|
|
93
86
|
|
|
94
87
|
export const ontologyID = ontology.createIDFactory<Key>("table");
|
|
95
88
|
export const TYPE_ONTOLOGY_ID = ontologyID("");
|