@sixb/core 0.1.12 → 0.1.13
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/actions/index.d.ts +2 -2
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +28 -26
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/read-facade.d.ts +14 -16
- package/dist/actions/read-facade.d.ts.map +1 -1
- package/dist/actions/request.d.ts.map +1 -1
- package/dist/actions/run-dispatch.d.ts +2 -0
- package/dist/actions/run-dispatch.d.ts.map +1 -1
- package/dist/actions/types/context.d.ts +18 -31
- package/dist/actions/types/context.d.ts.map +1 -1
- package/dist/actions/types/params.d.ts +2 -1
- package/dist/actions/types/params.d.ts.map +1 -1
- package/dist/actions/worker.js +1 -1
- package/dist/agents/index.js +41 -39
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/streams/index.js +2 -2
- package/dist/agents/streams/internal.js +2 -2
- package/dist/assert-never.d.ts +6 -0
- package/dist/assert-never.d.ts.map +1 -0
- package/dist/auth/client-address.d.ts +3 -0
- package/dist/auth/client-address.d.ts.map +1 -0
- package/dist/auth/csrf.d.ts +5 -1
- package/dist/auth/csrf.d.ts.map +1 -1
- package/dist/auth/index.d.ts +3 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +14 -8
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/runtime.d.ts +58 -41
- package/dist/auth/runtime.d.ts.map +1 -1
- package/dist/auth/session-cache.d.ts +10 -3
- package/dist/auth/session-cache.d.ts.map +1 -1
- package/dist/auth/sessions.d.ts +12 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/strategy.js +1 -1
- package/dist/auth/types.d.ts +8 -15
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/authorization/index.js +3 -3
- package/dist/bootstrap/index.d.ts +1 -1
- package/dist/bootstrap/index.d.ts.map +1 -1
- package/dist/bootstrap/index.js +45 -43
- package/dist/bootstrap/index.js.map +1 -1
- package/dist/bootstrap/ontology-type-manifest.d.ts +8 -0
- package/dist/bootstrap/ontology-type-manifest.d.ts.map +1 -1
- package/dist/{chunk-q5gz3g2j.js → chunk-0321g649.js} +2 -16
- package/dist/{chunk-q5gz3g2j.js.map → chunk-0321g649.js.map} +2 -2
- package/dist/{chunk-e1f1sqba.js → chunk-04h4t2b5.js} +3 -3
- package/dist/{chunk-y3ev53cq.js → chunk-2fv8sajb.js} +2 -2
- package/dist/{chunk-3bnt2wna.js → chunk-2hbhn1ff.js} +1 -1
- package/dist/{chunk-eyjzgav0.js → chunk-3nx8vj5a.js} +6 -4
- package/dist/chunk-3nx8vj5a.js.map +12 -0
- package/dist/{chunk-5tetw4hn.js → chunk-4tnrzqqh.js} +1 -1
- package/dist/{chunk-g50nxqs5.js → chunk-63fp9x3q.js} +63 -20
- package/dist/chunk-63fp9x3q.js.map +20 -0
- package/dist/{chunk-qm535afa.js → chunk-693f3zn8.js} +66 -24
- package/dist/chunk-693f3zn8.js.map +15 -0
- package/dist/{chunk-7zgecwy1.js → chunk-6x0pqh32.js} +12 -1
- package/dist/{chunk-7zgecwy1.js.map → chunk-6x0pqh32.js.map} +3 -3
- package/dist/{chunk-6ma8dvzc.js → chunk-898y24dd.js} +49 -42
- package/dist/chunk-898y24dd.js.map +15 -0
- package/dist/{chunk-7qnvhtcd.js → chunk-91wthfwe.js} +17 -17
- package/dist/{chunk-7qnvhtcd.js.map → chunk-91wthfwe.js.map} +5 -5
- package/dist/chunk-96yw3pwd.js.map +2 -2
- package/dist/{chunk-2cxv584m.js → chunk-9pfw47qx.js} +309 -204
- package/dist/chunk-9pfw47qx.js.map +44 -0
- package/dist/{chunk-4k53sm9e.js → chunk-a0073121.js} +59 -59
- package/dist/{chunk-4k53sm9e.js.map → chunk-a0073121.js.map} +5 -5
- package/dist/{chunk-jjwhy3rs.js → chunk-a69fkrtr.js} +5 -5
- package/dist/{chunk-y1ahv8b7.js → chunk-bdhfn0ww.js} +1 -1
- package/dist/{chunk-4ph94nhd.js → chunk-bep5rrdq.js} +2 -2
- package/dist/{chunk-kept9cdd.js → chunk-bxx3ms5t.js} +1 -1
- package/dist/{chunk-xtfryrfb.js → chunk-cbn96bve.js} +2 -2
- package/dist/{chunk-nzsy3xrp.js → chunk-cvrbhvtr.js} +69 -44
- package/dist/{chunk-nzsy3xrp.js.map → chunk-cvrbhvtr.js.map} +7 -7
- package/dist/{chunk-vsg0g7h9.js → chunk-d8yes9yx.js} +304 -45
- package/dist/chunk-d8yes9yx.js.map +20 -0
- package/dist/{chunk-tg4g4zh0.js → chunk-darm7eeg.js} +9 -9
- package/dist/{chunk-tg4g4zh0.js.map → chunk-darm7eeg.js.map} +3 -3
- package/dist/{chunk-vpxss818.js → chunk-drz59ve0.js} +9 -8
- package/dist/chunk-drz59ve0.js.map +10 -0
- package/dist/{chunk-7c2g3sz9.js → chunk-dsfw1bdr.js} +5 -5
- package/dist/{chunk-7c2g3sz9.js.map → chunk-dsfw1bdr.js.map} +1 -1
- package/dist/{chunk-p6r1ex7t.js → chunk-ffwvdgk1.js} +5 -13
- package/dist/chunk-ffwvdgk1.js.map +10 -0
- package/dist/{chunk-r5zythxp.js → chunk-gbcrz0gr.js} +7 -7
- package/dist/{chunk-ybhz3j9g.js → chunk-gc226ten.js} +104 -148
- package/dist/{chunk-ybhz3j9g.js.map → chunk-gc226ten.js.map} +7 -8
- package/dist/{chunk-3ghw2t5q.js → chunk-gmt22nxx.js} +10 -16
- package/dist/chunk-gmt22nxx.js.map +10 -0
- package/dist/chunk-h89wz928.js +42 -0
- package/dist/chunk-h89wz928.js.map +10 -0
- package/dist/{chunk-hkw8rykk.js → chunk-ht4a7mjg.js} +74 -4
- package/dist/chunk-ht4a7mjg.js.map +15 -0
- package/dist/{chunk-t7dzd1tm.js → chunk-jhyc777j.js} +2 -2
- package/dist/{chunk-xn686q2e.js → chunk-jmwy25mf.js} +75 -57
- package/dist/{chunk-xn686q2e.js.map → chunk-jmwy25mf.js.map} +3 -3
- package/dist/{chunk-f06sf7rr.js → chunk-k4kkp58d.js} +18 -5
- package/dist/chunk-k4kkp58d.js.map +11 -0
- package/dist/{chunk-2h63nrde.js → chunk-ky7zpbtt.js} +5 -7
- package/dist/{chunk-2h63nrde.js.map → chunk-ky7zpbtt.js.map} +3 -4
- package/dist/chunk-m4ehq95f.js +9 -0
- package/dist/chunk-m4ehq95f.js.map +10 -0
- package/dist/{chunk-0mza4xb2.js → chunk-m8zkvep1.js} +2 -2
- package/dist/{chunk-b768c93y.js → chunk-mf6hwpzh.js} +83 -28
- package/dist/{chunk-b768c93y.js.map → chunk-mf6hwpzh.js.map} +5 -5
- package/dist/{chunk-yxb4c62x.js → chunk-mr60an99.js} +3 -2
- package/dist/{chunk-yxb4c62x.js.map → chunk-mr60an99.js.map} +3 -3
- package/dist/chunk-n33e8dz8.js +191 -0
- package/dist/chunk-n33e8dz8.js.map +11 -0
- package/dist/chunk-rdghfsss.js.map +2 -2
- package/dist/{chunk-m7cx05vp.js → chunk-rqtdtm43.js} +126 -59
- package/dist/{chunk-m7cx05vp.js.map → chunk-rqtdtm43.js.map} +13 -12
- package/dist/{chunk-bbaa1fet.js → chunk-rzcjp5m2.js} +7 -3
- package/dist/chunk-rzcjp5m2.js.map +25 -0
- package/dist/{chunk-hzw7yv5g.js → chunk-rzkr70gr.js} +5 -1
- package/dist/{chunk-hzw7yv5g.js.map → chunk-rzkr70gr.js.map} +3 -3
- package/dist/{chunk-sfypc7mk.js → chunk-s24qbp32.js} +4 -4
- package/dist/{chunk-axndsymr.js → chunk-tw03bsmb.js} +2 -2
- package/dist/{chunk-axndsymr.js.map → chunk-tw03bsmb.js.map} +3 -3
- package/dist/{chunk-y0v18c2j.js → chunk-vef6qa14.js} +2 -2
- package/dist/{chunk-gzt6v1ja.js → chunk-vn3yh259.js} +1 -1
- package/dist/{chunk-bg2bs62d.js → chunk-w9bp61e7.js} +5 -5
- package/dist/{chunk-3h7ctayx.js → chunk-xgptywp0.js} +4 -3
- package/dist/chunk-xgptywp0.js.map +11 -0
- package/dist/{chunk-gswwr35f.js → chunk-y487ywrv.js} +4 -4
- package/dist/{chunk-bet1rb9h.js → chunk-y6vnvayj.js} +1 -1
- package/dist/{chunk-x9tmx3fc.js → chunk-ypj2wqtj.js} +3 -6
- package/dist/{chunk-x9tmx3fc.js.map → chunk-ypj2wqtj.js.map} +4 -4
- package/dist/{chunk-g2gezsg5.js → chunk-z9h698s8.js} +1 -1
- package/dist/{chunk-wjffn5m4.js → chunk-zdkcdshk.js} +3 -36
- package/dist/{chunk-wjffn5m4.js.map → chunk-zdkcdshk.js.map} +3 -4
- package/dist/{chunk-bfjv1adk.js → chunk-znw0zvy4.js} +1 -1
- package/dist/edits/types.d.ts +19 -19
- package/dist/edits/types.d.ts.map +1 -1
- package/dist/error-reporting/internal.js +3 -3
- package/dist/errors/catalog.d.ts +4 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/internal.js +1 -1
- package/dist/events/envelope.d.ts +0 -12
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -3
- package/dist/events/service.d.ts +1 -2
- package/dist/events/service.d.ts.map +1 -1
- package/dist/events/toStoredEvent.d.ts +1 -2
- package/dist/events/toStoredEvent.d.ts.map +1 -1
- package/dist/events/types/index.d.ts +2 -1
- package/dist/events/types/index.d.ts.map +1 -1
- package/dist/execution/agent.d.ts +1 -2
- package/dist/execution/agent.d.ts.map +1 -1
- package/dist/execution/agent.js +39 -37
- package/dist/execution/agent.js.map +1 -1
- package/dist/execution/authorized-object-reader.d.ts.map +1 -1
- package/dist/execution/primitive.d.ts +1 -2
- package/dist/execution/primitive.d.ts.map +1 -1
- package/dist/execution/primitive.js +38 -36
- package/dist/execution/primitive.js.map +3 -3
- package/dist/execution/request.d.ts +1 -2
- package/dist/execution/request.d.ts.map +1 -1
- package/dist/execution/request.js +39 -37
- package/dist/execution/request.js.map +3 -3
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +56 -50
- package/dist/index.js.map +1 -1
- package/dist/maintenance/ontology-maintenance.d.ts +11 -1
- package/dist/maintenance/ontology-maintenance.d.ts.map +1 -1
- package/dist/materialization/errors.d.ts +3 -1
- package/dist/materialization/errors.d.ts.map +1 -1
- package/dist/materialization/events.d.ts +27 -2
- package/dist/materialization/events.d.ts.map +1 -1
- package/dist/materializer/edits/commit.d.ts.map +1 -1
- package/dist/materializer/edits/operations.d.ts +2 -1
- package/dist/materializer/edits/operations.d.ts.map +1 -1
- package/dist/materializer/edits/plan.d.ts +2 -2
- package/dist/materializer/edits/plan.d.ts.map +1 -1
- package/dist/materializer/edits/user-refs.d.ts +30 -0
- package/dist/materializer/edits/user-refs.d.ts.map +1 -0
- package/dist/materializer/effective/build-events.d.ts +2 -2
- package/dist/materializer/effective/build-events.d.ts.map +1 -1
- package/dist/materializer/execution/scope.d.ts +11 -3
- package/dist/materializer/execution/scope.d.ts.map +1 -1
- package/dist/materializer/index.js +23 -21
- package/dist/materializer/index.js.map +1 -1
- package/dist/materializer/projections/replacement-plan.d.ts +2 -0
- package/dist/materializer/projections/replacement-plan.d.ts.map +1 -1
- package/dist/materializer/telemetry/plan.d.ts +2 -2
- package/dist/materializer/telemetry/plan.d.ts.map +1 -1
- package/dist/models/execution/index.js +23 -21
- package/dist/models/execution/index.js.map +1 -1
- package/dist/models/index.js +1 -1
- package/dist/objects/execution.d.ts +21 -27
- package/dist/objects/execution.d.ts.map +1 -1
- package/dist/objects/index.js +28 -26
- package/dist/objects/index.js.map +1 -1
- package/dist/objects/query/executor.d.ts.map +1 -1
- package/dist/objects/query/index.js +27 -25
- package/dist/objects/query/index.js.map +1 -1
- package/dist/objects/query/ir.d.ts +8 -1
- package/dist/objects/query/ir.d.ts.map +1 -1
- package/dist/objects/query/scalar-values.d.ts.map +1 -1
- package/dist/objects/query/validate.d.ts.map +1 -1
- package/dist/objects/sdk/object-handle.d.ts +1 -2
- package/dist/objects/sdk/object-handle.d.ts.map +1 -1
- package/dist/objects/sdk/object-set.d.ts +2 -3
- package/dist/objects/sdk/object-set.d.ts.map +1 -1
- package/dist/objects/sdk/query-builder.d.ts +8 -10
- package/dist/objects/sdk/query-builder.d.ts.map +1 -1
- package/dist/objects/sdk/telemetry-channel.d.ts +1 -2
- package/dist/objects/sdk/telemetry-channel.d.ts.map +1 -1
- package/dist/objects/sdk/where.d.ts +2 -3
- package/dist/objects/sdk/where.d.ts.map +1 -1
- package/dist/ontology/builders.d.ts +11 -10
- package/dist/ontology/builders.d.ts.map +1 -1
- package/dist/ontology/index.d.ts +4 -2
- package/dist/ontology/index.d.ts.map +1 -1
- package/dist/ontology/index.js +6 -4
- package/dist/ontology/index.js.map +1 -1
- package/dist/ontology/inference/index.d.ts +34 -22
- package/dist/ontology/inference/index.d.ts.map +1 -1
- package/dist/ontology/internal.d.ts +1 -0
- package/dist/ontology/internal.d.ts.map +1 -1
- package/dist/ontology/internal.js +9 -7
- package/dist/ontology/internal.js.map +1 -1
- package/dist/ontology/primitives.d.ts +38 -0
- package/dist/ontology/primitives.d.ts.map +1 -0
- package/dist/ontology/query-capabilities.d.ts +38 -0
- package/dist/ontology/query-capabilities.d.ts.map +1 -0
- package/dist/ontology/refs.d.ts +23 -2
- package/dist/ontology/refs.d.ts.map +1 -1
- package/dist/ontology/registered.d.ts +16 -0
- package/dist/ontology/registered.d.ts.map +1 -0
- package/dist/ontology/registry.d.ts.map +1 -1
- package/dist/ontology/tokens.d.ts +35 -1
- package/dist/ontology/tokens.d.ts.map +1 -1
- package/dist/ontology/types.d.ts +18 -4
- package/dist/ontology/types.d.ts.map +1 -1
- package/dist/ontology/user-ref.d.ts +35 -0
- package/dist/ontology/user-ref.d.ts.map +1 -0
- package/dist/ontology/validation/definition.d.ts.map +1 -1
- package/dist/ontology/validation/index.d.ts +1 -1
- package/dist/ontology/validation/index.d.ts.map +1 -1
- package/dist/ontology/validation/normalize.d.ts.map +1 -1
- package/dist/ontology/validation/properties.d.ts +6 -1
- package/dist/ontology/validation/properties.d.ts.map +1 -1
- package/dist/ontology/validation/query.d.ts.map +1 -1
- package/dist/ontology/validation/schema.d.ts.map +1 -1
- package/dist/pipelines/index.js +26 -24
- package/dist/pipelines/index.js.map +1 -1
- package/dist/predicates/types.d.ts +53 -3
- package/dist/predicates/types.d.ts.map +1 -1
- package/dist/projections/builders.d.ts +19 -1
- package/dist/projections/builders.d.ts.map +1 -1
- package/dist/projections/internal.js +23 -21
- package/dist/projections/internal.js.map +1 -1
- package/dist/projections/validation.d.ts.map +1 -1
- package/dist/query.js +2 -2
- package/dist/queues/in-memory.d.ts +1 -1
- package/dist/queues/in-memory.d.ts.map +1 -1
- package/dist/runtime/create.d.ts +1 -1
- package/dist/runtime/create.d.ts.map +1 -1
- package/dist/runtime/host.d.ts +5 -5
- package/dist/runtime/host.d.ts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/internal.js +27 -25
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/sixb.d.ts +5 -5
- package/dist/runtime/sixb.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +171 -188
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/sandboxes/index.js +5 -5
- package/dist/sandboxes/sandbox.d.ts +4 -1
- package/dist/sandboxes/sandbox.d.ts.map +1 -1
- package/dist/shared/params/types.d.ts +4 -3
- package/dist/shared/params/types.d.ts.map +1 -1
- package/dist/shared/params/user-refs.d.ts +19 -0
- package/dist/shared/params/user-refs.d.ts.map +1 -0
- package/dist/shares/compiler.d.ts.map +1 -1
- package/dist/shares/internal.js +24 -22
- package/dist/shares/internal.js.map +2 -2
- package/dist/storage/action-runs/failure.js +2 -2
- package/dist/storage/action-runs/types.d.ts +1 -1
- package/dist/storage/action-runs/types.d.ts.map +1 -1
- package/dist/storage/agents/provider.js +1 -1
- package/dist/storage/ai-limits/enforcement.js +2 -2
- package/dist/storage/auth/in-memory/access-tokens.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/auth-storage.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/device-authorizations.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/sessions.d.ts +8 -1
- package/dist/storage/auth/in-memory/sessions.d.ts.map +1 -1
- package/dist/storage/auth/in-memory/shared.d.ts.map +1 -1
- package/dist/storage/auth/index.d.ts +1 -1
- package/dist/storage/auth/index.d.ts.map +1 -1
- package/dist/storage/auth/types.d.ts +62 -13
- package/dist/storage/auth/types.d.ts.map +1 -1
- package/dist/storage/connector-connections/provider.js +1 -1
- package/dist/storage/executions/provider.js +1 -1
- package/dist/storage/file-upload-sessions/in-memory.d.ts +9 -18
- package/dist/storage/file-upload-sessions/in-memory.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts +1 -1
- package/dist/storage/file-upload-sessions/index.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/provider.d.ts +52 -0
- package/dist/storage/file-upload-sessions/provider.d.ts.map +1 -0
- package/dist/storage/file-upload-sessions/provider.js +24 -0
- package/dist/storage/file-upload-sessions/provider.js.map +9 -0
- package/dist/storage/file-upload-sessions/types.d.ts +19 -1
- package/dist/storage/file-upload-sessions/types.d.ts.map +1 -1
- package/dist/storage/file-upload-sessions/utils.d.ts +8 -2
- package/dist/storage/file-upload-sessions/utils.d.ts.map +1 -1
- package/dist/storage/index.d.ts +3 -3
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +29 -25
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/internal.js +11 -9
- package/dist/storage/internal.js.map +1 -1
- package/dist/storage/objects/in-memory/query.d.ts.map +1 -1
- package/dist/storage/ontology/commits.d.ts +6 -2
- package/dist/storage/ontology/commits.d.ts.map +1 -1
- package/dist/storage/ontology/in-memory/materializations.d.ts.map +1 -1
- package/dist/storage/ontology/provider-work.d.ts.map +1 -1
- package/dist/storage/ontology/provider.d.ts +14 -1
- package/dist/storage/ontology/provider.d.ts.map +1 -1
- package/dist/storage/ontology/provider.js +8 -2
- package/dist/storage/ontology/provider.js.map +1 -1
- package/dist/storage/operation-scope.d.ts.map +1 -1
- package/dist/storage/operation-scope.js +1 -1
- package/dist/storage/projection-runs/provider.js +2 -2
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/index.d.ts +1 -1
- package/dist/storage/workflow-interventions/index.d.ts.map +1 -1
- package/dist/storage/workflow-interventions/types.d.ts +5 -8
- package/dist/storage/workflow-interventions/types.d.ts.map +1 -1
- package/dist/storage/workflow-runs/provider.js +8 -8
- package/dist/syncs/index.js +27 -25
- package/dist/syncs/index.js.map +1 -1
- package/dist/testing/action-execution.d.ts +4 -0
- package/dist/testing/action-execution.d.ts.map +1 -1
- package/dist/testing/auth-storage-contract.d.ts.map +1 -1
- package/dist/testing/execution.d.ts +1 -2
- package/dist/testing/execution.d.ts.map +1 -1
- package/dist/testing/file-upload-session-storage-contract.d.ts +12 -0
- package/dist/testing/file-upload-session-storage-contract.d.ts.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1951 -1242
- package/dist/testing/index.js.map +15 -13
- package/dist/testing/materializer-storage-contract.d.ts.map +1 -1
- package/dist/testing/object-query-contract.d.ts.map +1 -1
- package/dist/testing/ontology-contract-fixture.d.ts +8 -0
- package/dist/testing/ontology-contract-fixture.d.ts.map +1 -1
- package/dist/testing/ontology-storage-contract.d.ts.map +1 -1
- package/dist/testing/sandboxes-contract.d.ts.map +1 -1
- package/dist/testing/workflow-intervention-storage-contract.d.ts +8 -0
- package/dist/testing/workflow-intervention-storage-contract.d.ts.map +1 -0
- package/dist/webhooks/internal.js +24 -22
- package/dist/webhooks/internal.js.map +2 -2
- package/dist/webhooks/types.d.ts +2 -2
- package/dist/webhooks/types.d.ts.map +1 -1
- package/dist/workers/index.js +1 -1
- package/dist/workflows/index.js +42 -40
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/run-dispatch.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +2 -2
- package/dist/workflows/types.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/actions/index.ts +0 -3
- package/src/actions/read-facade.ts +102 -62
- package/src/actions/request.ts +13 -0
- package/src/actions/run-dispatch.ts +3 -0
- package/src/actions/types/context.ts +17 -65
- package/src/actions/types/params.ts +2 -1
- package/src/agents/authority.ts +1 -1
- package/src/assert-never.ts +7 -0
- package/src/auth/client-address.ts +12 -0
- package/src/auth/csrf.ts +14 -5
- package/src/auth/index.ts +3 -2
- package/src/auth/runtime.ts +299 -277
- package/src/auth/session-cache.ts +18 -6
- package/src/auth/sessions.ts +30 -0
- package/src/auth/types.ts +7 -17
- package/src/bootstrap/index.ts +1 -0
- package/src/bootstrap/ontology-type-manifest.ts +112 -60
- package/src/edits/types.ts +47 -63
- package/src/errors/catalog.ts +4 -0
- package/src/events/envelope.ts +0 -13
- package/src/events/index.ts +1 -1
- package/src/events/service.ts +1 -11
- package/src/events/toStoredEvent.ts +1 -3
- package/src/events/types/index.ts +1 -1
- package/src/execution/agent.ts +1 -2
- package/src/execution/authorized-object-reader.ts +5 -7
- package/src/execution/primitive.ts +1 -2
- package/src/execution/request.ts +1 -2
- package/src/index.ts +8 -7
- package/src/maintenance/ontology-maintenance.ts +77 -1
- package/src/materialization/errors.ts +2 -0
- package/src/materialization/events.ts +27 -2
- package/src/materializer/README.md +2 -0
- package/src/materializer/edits/commit.ts +21 -12
- package/src/materializer/edits/operations.ts +32 -4
- package/src/materializer/edits/plan.ts +4 -5
- package/src/materializer/edits/user-refs.ts +115 -0
- package/src/materializer/effective/build-events.ts +4 -5
- package/src/materializer/execution/scope.ts +40 -7
- package/src/materializer/projections/replace.ts +2 -0
- package/src/materializer/projections/replacement-plan.ts +4 -0
- package/src/materializer/telemetry/append.ts +4 -12
- package/src/materializer/telemetry/plan.ts +4 -5
- package/src/objects/execution.ts +33 -62
- package/src/objects/query/executor.ts +12 -3
- package/src/objects/query/ir.ts +7 -0
- package/src/objects/query/planner.ts +1 -0
- package/src/objects/query/scalar-values.ts +19 -0
- package/src/objects/query/validate.ts +55 -44
- package/src/objects/sdk/object-handle.ts +8 -8
- package/src/objects/sdk/object-set.ts +8 -15
- package/src/objects/sdk/query-builder.ts +59 -71
- package/src/objects/sdk/telemetry-channel.ts +6 -7
- package/src/objects/sdk/where.ts +6 -13
- package/src/ontology/builders.ts +15 -11
- package/src/ontology/index.ts +4 -0
- package/src/ontology/inference/index.ts +56 -36
- package/src/ontology/internal.ts +1 -0
- package/src/ontology/json-schema.ts +12 -0
- package/src/ontology/primitives.ts +91 -0
- package/src/ontology/query-capabilities.ts +136 -0
- package/src/ontology/refs.ts +33 -6
- package/src/ontology/registered.ts +22 -0
- package/src/ontology/registry.ts +6 -3
- package/src/ontology/tokens.ts +41 -2
- package/src/ontology/types.ts +19 -3
- package/src/ontology/user-ref.ts +120 -0
- package/src/ontology/validation/definition.ts +2 -13
- package/src/ontology/validation/index.ts +1 -0
- package/src/ontology/validation/normalize.ts +39 -3
- package/src/ontology/validation/properties.ts +95 -19
- package/src/ontology/validation/query.ts +11 -42
- package/src/ontology/validation/schema.ts +16 -0
- package/src/predicates/types.ts +43 -33
- package/src/projections/builders.ts +24 -3
- package/src/projections/validation.ts +15 -1
- package/src/runtime/create.ts +2 -2
- package/src/runtime/host.ts +10 -12
- package/src/runtime/index.ts +3 -2
- package/src/runtime/sixb.ts +13 -23
- package/src/runtime/types.ts +277 -479
- package/src/sandboxes/sandbox.ts +4 -1
- package/src/shared/params/types.ts +4 -3
- package/src/shared/params/user-refs.ts +48 -0
- package/src/shares/compiler.ts +6 -16
- package/src/storage/action-runs/types.ts +1 -0
- package/src/storage/auth/in-memory/access-tokens.ts +5 -2
- package/src/storage/auth/in-memory/auth-storage.ts +5 -8
- package/src/storage/auth/in-memory/device-authorizations.ts +0 -2
- package/src/storage/auth/in-memory/sessions.ts +69 -1
- package/src/storage/auth/in-memory/shared.ts +13 -7
- package/src/storage/auth/index.ts +2 -1
- package/src/storage/auth/types.ts +57 -13
- package/src/storage/executions/validation.ts +1 -1
- package/src/storage/file-upload-sessions/in-memory.ts +64 -113
- package/src/storage/file-upload-sessions/index.ts +1 -0
- package/src/storage/file-upload-sessions/provider.ts +258 -0
- package/src/storage/file-upload-sessions/types.ts +20 -1
- package/src/storage/file-upload-sessions/utils.ts +25 -9
- package/src/storage/index.ts +3 -2
- package/src/storage/objects/in-memory/query.ts +13 -3
- package/src/storage/ontology/commits.ts +6 -2
- package/src/storage/ontology/in-memory/materializations.ts +6 -34
- package/src/storage/ontology/provider-header-validation.ts +57 -0
- package/src/storage/ontology/provider-work.ts +15 -3
- package/src/storage/ontology/provider.ts +59 -1
- package/src/storage/operation-scope.ts +1 -0
- package/src/storage/types.ts +0 -1
- package/src/storage/workflow-interventions/index.ts +0 -1
- package/src/storage/workflow-interventions/types.ts +5 -9
- package/src/testing/action-execution.ts +13 -3
- package/src/testing/auth-storage-contract.ts +149 -62
- package/src/testing/execution-storage-contract.ts +1 -2
- package/src/testing/execution.ts +4 -7
- package/src/testing/file-upload-session-storage-contract.ts +335 -0
- package/src/testing/index.ts +8 -0
- package/src/testing/materializer-storage-contract.ts +86 -4
- package/src/testing/object-query-contract.ts +121 -2
- package/src/testing/ontology-contract-fixture.ts +23 -3
- package/src/testing/ontology-storage-contract.ts +58 -0
- package/src/testing/sandboxes-contract.ts +27 -0
- package/src/testing/workflow-intervention-storage-contract.ts +203 -0
- package/src/webhooks/types.ts +2 -2
- package/src/workflows/run-dispatch.ts +12 -1
- package/src/workflows/snapshot.ts +16 -7
- package/src/workflows/types.ts +2 -2
- package/dist/chunk-2cxv584m.js.map +0 -43
- package/dist/chunk-3ghw2t5q.js.map +0 -10
- package/dist/chunk-3h7ctayx.js.map +0 -11
- package/dist/chunk-6ma8dvzc.js.map +0 -15
- package/dist/chunk-bbaa1fet.js.map +0 -25
- package/dist/chunk-eyjzgav0.js.map +0 -12
- package/dist/chunk-f06sf7rr.js.map +0 -11
- package/dist/chunk-g50nxqs5.js.map +0 -18
- package/dist/chunk-hkw8rykk.js.map +0 -15
- package/dist/chunk-p6r1ex7t.js.map +0 -10
- package/dist/chunk-qm535afa.js.map +0 -15
- package/dist/chunk-vpxss818.js.map +0 -10
- package/dist/chunk-vsg0g7h9.js.map +0 -17
- /package/dist/{chunk-e1f1sqba.js.map → chunk-04h4t2b5.js.map} +0 -0
- /package/dist/{chunk-y3ev53cq.js.map → chunk-2fv8sajb.js.map} +0 -0
- /package/dist/{chunk-3bnt2wna.js.map → chunk-2hbhn1ff.js.map} +0 -0
- /package/dist/{chunk-5tetw4hn.js.map → chunk-4tnrzqqh.js.map} +0 -0
- /package/dist/{chunk-jjwhy3rs.js.map → chunk-a69fkrtr.js.map} +0 -0
- /package/dist/{chunk-y1ahv8b7.js.map → chunk-bdhfn0ww.js.map} +0 -0
- /package/dist/{chunk-4ph94nhd.js.map → chunk-bep5rrdq.js.map} +0 -0
- /package/dist/{chunk-kept9cdd.js.map → chunk-bxx3ms5t.js.map} +0 -0
- /package/dist/{chunk-xtfryrfb.js.map → chunk-cbn96bve.js.map} +0 -0
- /package/dist/{chunk-r5zythxp.js.map → chunk-gbcrz0gr.js.map} +0 -0
- /package/dist/{chunk-t7dzd1tm.js.map → chunk-jhyc777j.js.map} +0 -0
- /package/dist/{chunk-0mza4xb2.js.map → chunk-m8zkvep1.js.map} +0 -0
- /package/dist/{chunk-sfypc7mk.js.map → chunk-s24qbp32.js.map} +0 -0
- /package/dist/{chunk-y0v18c2j.js.map → chunk-vef6qa14.js.map} +0 -0
- /package/dist/{chunk-gzt6v1ja.js.map → chunk-vn3yh259.js.map} +0 -0
- /package/dist/{chunk-bg2bs62d.js.map → chunk-w9bp61e7.js.map} +0 -0
- /package/dist/{chunk-gswwr35f.js.map → chunk-y487ywrv.js.map} +0 -0
- /package/dist/{chunk-bet1rb9h.js.map → chunk-y6vnvayj.js.map} +0 -0
- /package/dist/{chunk-g2gezsg5.js.map → chunk-z9h698s8.js.map} +0 -0
- /package/dist/{chunk-bfjv1adk.js.map → chunk-znw0zvy4.js.map} +0 -0
package/src/runtime/types.ts
CHANGED
|
@@ -31,16 +31,21 @@ import type {
|
|
|
31
31
|
ValidatedObjectQuery,
|
|
32
32
|
} from "../objects/query"
|
|
33
33
|
import type { ObjectVectorHandle, VectorProfileName } from "../objects/vectors/types"
|
|
34
|
-
import type { ObjectLinkTargetType, ObjectRef,
|
|
34
|
+
import type { ObjectLinkTargetType, ObjectRef, Property } from "../ontology"
|
|
35
35
|
import type {
|
|
36
|
-
InferObjectProperties,
|
|
37
36
|
InferPropertyUnit,
|
|
38
37
|
InferPropertyValue,
|
|
39
38
|
InferTelemetryBatchProperties,
|
|
40
39
|
InferTelemetryPropertyIds,
|
|
41
40
|
} from "../ontology/inference"
|
|
41
|
+
import type { RegisteredObjectType } from "../ontology/registered"
|
|
42
42
|
import type { OntologyDocumentInput, OntologyRegistry, OntologySource } from "../ontology/registry"
|
|
43
|
-
import type {
|
|
43
|
+
import type {
|
|
44
|
+
LinkToken,
|
|
45
|
+
ObjectTypeProperties,
|
|
46
|
+
ObjectTypeWithPropertyTokens,
|
|
47
|
+
PropertyToken,
|
|
48
|
+
} from "../ontology/tokens"
|
|
44
49
|
import type { Queues } from "../queues"
|
|
45
50
|
import type { ActionRunRecord, ObjectLinkRow, Storage } from "../storage"
|
|
46
51
|
// ── Shared runtime context ──────────────────────────────────
|
|
@@ -91,50 +96,43 @@ export type BatchItemResult<T> =
|
|
|
91
96
|
// Re-export for backward compatibility — canonical definitions live in ontology/registry.ts
|
|
92
97
|
export type { OntologyDocumentInput, OntologySource }
|
|
93
98
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
type
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
? TValueTypes[number]
|
|
106
|
-
: never
|
|
107
|
-
|
|
108
|
-
export type RegisteredObjectType<TOntologySources extends readonly OntologySource[]> =
|
|
109
|
-
ObjectTypeFromSource<TOntologySources[number]>
|
|
110
|
-
|
|
111
|
-
export type RegisteredValueTypes<TOntologySources extends readonly OntologySource[]> =
|
|
112
|
-
readonly ValueTypeFromSource<TOntologySources[number]>[]
|
|
113
|
-
|
|
114
|
-
// A type alias, not an interface: relating two generic-interface
|
|
115
|
-
// instantiations makes TypeScript measure the interface's variance by probing
|
|
116
|
-
// it with marker types, and `InferObjectProperties<marker>` overflows its
|
|
117
|
-
// recursion limits (TS2589) in consumers like `rows.map(...)`. The alias
|
|
118
|
-
// relates structurally, which stays within limits.
|
|
119
|
-
export type TwinObject<TObjectType extends ObjectType, TValueTypes extends readonly ValueType[]> = {
|
|
99
|
+
// ── Rows ────────────────────────────────────────────────────
|
|
100
|
+
//
|
|
101
|
+
// Rows read `properties` from the type inferred where the object type is defined
|
|
102
|
+
// (`ObjectTypeProperties`), never from the schema, so relating two rows — or anything returning
|
|
103
|
+
// them — costs no schema inference. Rows and query builders also declare their variance, so
|
|
104
|
+
// TypeScript never measures it: a measurement that overflows (TS2589) caches the variance it gave
|
|
105
|
+
// up on, under which a plain query once passed for an expanded one.
|
|
106
|
+
|
|
107
|
+
/** One stored object. Covariant: a row of an object type is a row of the loose base type. */
|
|
108
|
+
export type TwinObject<out TObjectType extends ObjectTypeWithPropertyTokens> = {
|
|
120
109
|
primaryId: string
|
|
121
110
|
objectTypeId: TObjectType["id"]
|
|
122
|
-
properties:
|
|
111
|
+
properties: ObjectTypeProperties<TObjectType>
|
|
123
112
|
createdAt: Date
|
|
124
113
|
updatedAt: Date
|
|
125
114
|
}
|
|
126
115
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
properties: InferObjectProperties<TObjectType, TValueTypes>
|
|
134
|
-
createdAt: Date
|
|
135
|
-
updatedAt: Date
|
|
136
|
-
}
|
|
116
|
+
/** A row returned by an object query, before any `.expand(...)`. */
|
|
117
|
+
export type ObjectQueryRow<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
118
|
+
TwinObject<TObjectType> & {
|
|
119
|
+
/** Relevance, present when the query ranks its results (`search`, `vector`). */
|
|
120
|
+
score?: number
|
|
121
|
+
}
|
|
137
122
|
|
|
123
|
+
/**
|
|
124
|
+
* An object attached under a row's `.links` by `.expand(...)`, before any nested expansion. The
|
|
125
|
+
* executor attaches `linkProperties` only when the relationship carries metadata.
|
|
126
|
+
*/
|
|
127
|
+
export type ObjectExpansionRow<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
128
|
+
TwinObject<TObjectType> & {
|
|
129
|
+
linkProperties?: Record<string, unknown>
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Flattens a row built from intersections, so editors show its fields instead of the aliases it was
|
|
134
|
+
* built from. The `& {}` is what makes TypeScript print the fields.
|
|
135
|
+
*/
|
|
138
136
|
type Simplify<T> = { [K in keyof T]: T[K] } & {}
|
|
139
137
|
|
|
140
138
|
export type { ObjectRef }
|
|
@@ -167,43 +165,34 @@ type PropertyById<
|
|
|
167
165
|
type PropertyWhereValue<
|
|
168
166
|
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
169
167
|
TPropertyId extends TObjectType["properties"][number]["id"],
|
|
170
|
-
|
|
171
|
-
> = InferPropertyValue<PropertyById<TObjectType, TPropertyId>, TValueTypes>
|
|
168
|
+
> = InferPropertyValue<PropertyById<TObjectType, TPropertyId>>
|
|
172
169
|
|
|
173
170
|
type PropertyWhereContainsValue<
|
|
174
171
|
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
175
172
|
TPropertyId extends TObjectType["properties"][number]["id"],
|
|
176
|
-
TValueTypes extends readonly ValueType[],
|
|
177
173
|
> =
|
|
178
|
-
NonNullable<PropertyWhereValue<TObjectType, TPropertyId
|
|
174
|
+
NonNullable<PropertyWhereValue<TObjectType, TPropertyId>> extends string
|
|
179
175
|
? string
|
|
180
|
-
: NonNullable<
|
|
181
|
-
PropertyWhereValue<TObjectType, TPropertyId, TValueTypes>
|
|
182
|
-
> extends readonly (infer TItem)[]
|
|
176
|
+
: NonNullable<PropertyWhereValue<TObjectType, TPropertyId>> extends readonly (infer TItem)[]
|
|
183
177
|
? TItem
|
|
184
|
-
: NonNullable<PropertyWhereValue<TObjectType, TPropertyId
|
|
185
|
-
string,
|
|
186
|
-
unknown
|
|
187
|
-
>
|
|
178
|
+
: NonNullable<PropertyWhereValue<TObjectType, TPropertyId>> extends Record<string, unknown>
|
|
188
179
|
? string
|
|
189
180
|
: never
|
|
190
181
|
|
|
191
182
|
type PropertyWhereComparisonClause<
|
|
192
183
|
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
193
184
|
TPropertyId extends TObjectType["properties"][number]["id"],
|
|
194
|
-
TValueTypes extends readonly ValueType[],
|
|
195
185
|
> = Omit<ObjectQueryPredicateComparison, "propertyId" | "value"> & {
|
|
196
186
|
propertyId: TPropertyId
|
|
197
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
187
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
198
188
|
}
|
|
199
189
|
|
|
200
190
|
type PropertyWhereInClause<
|
|
201
191
|
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
202
192
|
TPropertyId extends TObjectType["properties"][number]["id"],
|
|
203
|
-
TValueTypes extends readonly ValueType[],
|
|
204
193
|
> = Omit<ObjectQueryPredicateIn, "propertyId" | "values"> & {
|
|
205
194
|
propertyId: TPropertyId
|
|
206
|
-
values: readonly PropertyWhereValue<TObjectType, TPropertyId
|
|
195
|
+
values: readonly PropertyWhereValue<TObjectType, TPropertyId>[]
|
|
207
196
|
}
|
|
208
197
|
|
|
209
198
|
type PropertyWhereExistsClause<
|
|
@@ -216,49 +205,44 @@ type PropertyWhereExistsClause<
|
|
|
216
205
|
type PropertyWhereContainsClause<
|
|
217
206
|
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
218
207
|
TPropertyId extends TObjectType["properties"][number]["id"],
|
|
219
|
-
TValueTypes extends readonly ValueType[],
|
|
220
208
|
> = Omit<ObjectQueryPredicateContains, "propertyId" | "value"> & {
|
|
221
209
|
propertyId: TPropertyId
|
|
222
|
-
value: PropertyWhereContainsValue<TObjectType, TPropertyId
|
|
210
|
+
value: PropertyWhereContainsValue<TObjectType, TPropertyId>
|
|
223
211
|
}
|
|
224
212
|
|
|
225
213
|
/** Predicate operators exposed on `where` builder properties. */
|
|
226
214
|
type PropertyPredicate<
|
|
227
215
|
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
228
216
|
TPropertyId extends TObjectType["properties"][number]["id"],
|
|
229
|
-
TValueTypes extends readonly ValueType[],
|
|
230
217
|
> = {
|
|
231
218
|
eq(
|
|
232
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
233
|
-
): PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
219
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
220
|
+
): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "eq" }
|
|
234
221
|
neq(
|
|
235
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
236
|
-
): PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
222
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
223
|
+
): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "neq" }
|
|
237
224
|
lt(
|
|
238
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
239
|
-
): PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
225
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
226
|
+
): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "lt" }
|
|
240
227
|
lte(
|
|
241
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
242
|
-
): PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
228
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
229
|
+
): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "lte" }
|
|
243
230
|
gt(
|
|
244
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
245
|
-
): PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
231
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
232
|
+
): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "gt" }
|
|
246
233
|
gte(
|
|
247
|
-
value: PropertyWhereValue<TObjectType, TPropertyId
|
|
248
|
-
): PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
234
|
+
value: PropertyWhereValue<TObjectType, TPropertyId>
|
|
235
|
+
): PropertyWhereComparisonClause<TObjectType, TPropertyId> & { op: "gte" }
|
|
249
236
|
in(
|
|
250
|
-
values: readonly PropertyWhereValue<TObjectType, TPropertyId
|
|
251
|
-
): PropertyWhereInClause<TObjectType, TPropertyId
|
|
237
|
+
values: readonly PropertyWhereValue<TObjectType, TPropertyId>[]
|
|
238
|
+
): PropertyWhereInClause<TObjectType, TPropertyId>
|
|
252
239
|
exists(value?: boolean): PropertyWhereExistsClause<TObjectType, TPropertyId>
|
|
253
240
|
contains(
|
|
254
|
-
value: PropertyWhereContainsValue<TObjectType, TPropertyId
|
|
255
|
-
): PropertyWhereContainsClause<TObjectType, TPropertyId
|
|
241
|
+
value: PropertyWhereContainsValue<TObjectType, TPropertyId>
|
|
242
|
+
): PropertyWhereContainsClause<TObjectType, TPropertyId>
|
|
256
243
|
}
|
|
257
244
|
|
|
258
|
-
type PropertyWhereClause<
|
|
259
|
-
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
260
|
-
TValueTypes extends readonly ValueType[],
|
|
261
|
-
> =
|
|
245
|
+
type PropertyWhereClause<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
262
246
|
HasKnownPropertyIds<TObjectType> extends false
|
|
263
247
|
?
|
|
264
248
|
| ObjectQueryPredicateComparison
|
|
@@ -267,10 +251,10 @@ type PropertyWhereClause<
|
|
|
267
251
|
| ObjectQueryPredicateContains
|
|
268
252
|
: {
|
|
269
253
|
[TPropertyId in TObjectType["properties"][number]["id"]]:
|
|
270
|
-
| PropertyWhereComparisonClause<TObjectType, TPropertyId
|
|
271
|
-
| PropertyWhereInClause<TObjectType, TPropertyId
|
|
254
|
+
| PropertyWhereComparisonClause<TObjectType, TPropertyId>
|
|
255
|
+
| PropertyWhereInClause<TObjectType, TPropertyId>
|
|
272
256
|
| PropertyWhereExistsClause<TObjectType, TPropertyId>
|
|
273
|
-
| PropertyWhereContainsClause<TObjectType, TPropertyId
|
|
257
|
+
| PropertyWhereContainsClause<TObjectType, TPropertyId>
|
|
274
258
|
}[TObjectType["properties"][number]["id"]]
|
|
275
259
|
|
|
276
260
|
/**
|
|
@@ -297,16 +281,13 @@ type HasKnownPropertyIds<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
|
297
281
|
string extends TObjectType["properties"][number]["id"] ? false : true
|
|
298
282
|
|
|
299
283
|
/** Typed ObjectSet where predicate. Serialized shape matches object query IR predicates. */
|
|
300
|
-
export type ObjectWhereClause<
|
|
301
|
-
TObjectType
|
|
302
|
-
TValueTypes extends readonly ValueType[],
|
|
303
|
-
> =
|
|
304
|
-
| PropertyWhereClause<TObjectType, TValueTypes>
|
|
284
|
+
export type ObjectWhereClause<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
285
|
+
| PropertyWhereClause<TObjectType>
|
|
305
286
|
| (Omit<ObjectQueryPredicateGroup, "items"> & {
|
|
306
|
-
items: readonly ObjectWhereClause<TObjectType
|
|
287
|
+
items: readonly ObjectWhereClause<TObjectType>[]
|
|
307
288
|
})
|
|
308
289
|
| (Omit<ObjectQueryPredicateNot, "item"> & {
|
|
309
|
-
item: ObjectWhereClause<TObjectType
|
|
290
|
+
item: ObjectWhereClause<TObjectType>
|
|
310
291
|
})
|
|
311
292
|
|
|
312
293
|
/**
|
|
@@ -314,28 +295,18 @@ export type ObjectWhereClause<
|
|
|
314
295
|
*
|
|
315
296
|
* Example: `(r) => r.p.externalId.eq("RM-101")`
|
|
316
297
|
*/
|
|
317
|
-
export type ObjectWhereBuilder<
|
|
318
|
-
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
319
|
-
TValueTypes extends readonly ValueType[],
|
|
320
|
-
> = {
|
|
298
|
+
export type ObjectWhereBuilder<TObjectType extends ObjectTypeWithPropertyTokens> = {
|
|
321
299
|
p: HasKnownPropertyIds<TObjectType> extends false
|
|
322
300
|
? Record<string, UntypedPropertyPredicate>
|
|
323
301
|
: {
|
|
324
302
|
[TPropertyId in TObjectType["properties"][number]["id"]]: PropertyPredicate<
|
|
325
303
|
TObjectType,
|
|
326
|
-
TPropertyId
|
|
327
|
-
TValueTypes
|
|
304
|
+
TPropertyId
|
|
328
305
|
>
|
|
329
306
|
}
|
|
330
|
-
and(
|
|
331
|
-
|
|
332
|
-
): ObjectWhereClause<TObjectType
|
|
333
|
-
or(
|
|
334
|
-
...items: readonly ObjectWhereClause<TObjectType, TValueTypes>[]
|
|
335
|
-
): ObjectWhereClause<TObjectType, TValueTypes>
|
|
336
|
-
not(
|
|
337
|
-
item: ObjectWhereClause<TObjectType, TValueTypes>
|
|
338
|
-
): ObjectWhereClause<TObjectType, TValueTypes>
|
|
307
|
+
and(...items: readonly ObjectWhereClause<TObjectType>[]): ObjectWhereClause<TObjectType>
|
|
308
|
+
or(...items: readonly ObjectWhereClause<TObjectType>[]): ObjectWhereClause<TObjectType>
|
|
309
|
+
not(item: ObjectWhereClause<TObjectType>): ObjectWhereClause<TObjectType>
|
|
339
310
|
}
|
|
340
311
|
|
|
341
312
|
export type TelemetryPropertyToken<TObjectType extends ObjectTypeWithPropertyTokens> =
|
|
@@ -354,19 +325,16 @@ export type ObjectSetQueryPropertyToken<TObjectType extends ObjectTypeWithProper
|
|
|
354
325
|
* - if property has a semantic type, unit is required
|
|
355
326
|
* - otherwise unit is disallowed
|
|
356
327
|
*/
|
|
357
|
-
type TelemetryUnitField<TToken extends AnyPropertyToken
|
|
328
|
+
type TelemetryUnitField<TToken extends AnyPropertyToken> =
|
|
358
329
|
// If a property does not map to a semantic type, units are disallowed.
|
|
359
|
-
InferPropertyUnit<TToken["property"]
|
|
330
|
+
InferPropertyUnit<TToken["property"]> extends never
|
|
360
331
|
? { unit?: never }
|
|
361
|
-
: { unit: InferPropertyUnit<TToken["property"]
|
|
332
|
+
: { unit: InferPropertyUnit<TToken["property"]> }
|
|
362
333
|
|
|
363
|
-
export type TelemetryAppendInput<
|
|
364
|
-
TToken
|
|
365
|
-
TValueTypes extends readonly ValueType[],
|
|
366
|
-
> = {
|
|
367
|
-
value: InferPropertyValue<TToken["property"], TValueTypes>
|
|
334
|
+
export type TelemetryAppendInput<TToken extends AnyPropertyToken> = {
|
|
335
|
+
value: InferPropertyValue<TToken["property"]>
|
|
368
336
|
at: Date
|
|
369
|
-
} & TelemetryUnitField<TToken
|
|
337
|
+
} & TelemetryUnitField<TToken>
|
|
370
338
|
|
|
371
339
|
export interface TelemetryHistoryInput {
|
|
372
340
|
readonly from?: Date
|
|
@@ -382,14 +350,11 @@ export interface TelemetryHistoryInput {
|
|
|
382
350
|
* same series back, typed through the same token, instead of sending the caller under the typed
|
|
383
351
|
* surface to `sixb.storage.timeseries`.
|
|
384
352
|
*/
|
|
385
|
-
// A type alias
|
|
386
|
-
//
|
|
387
|
-
//
|
|
388
|
-
export type TelemetryChannel<
|
|
389
|
-
TToken
|
|
390
|
-
TValueTypes extends readonly ValueType[],
|
|
391
|
-
> = {
|
|
392
|
-
append(input: TelemetryAppendInput<TToken, TValueTypes>): Promise<void>
|
|
353
|
+
// A type alias, not an interface: `history()` puts `InferPropertyValue` in an output position, and
|
|
354
|
+
// probing a generic interface's variance there overflows TS's recursion limits (TS2589) in consumers
|
|
355
|
+
// as ordinary as `points.map(...)`.
|
|
356
|
+
export type TelemetryChannel<TToken extends AnyPropertyToken> = {
|
|
357
|
+
append(input: TelemetryAppendInput<TToken>): Promise<void>
|
|
393
358
|
/**
|
|
394
359
|
* Points for this series, oldest first unless `order: "desc"`.
|
|
395
360
|
*
|
|
@@ -398,16 +363,16 @@ export type TelemetryChannel<
|
|
|
398
363
|
*
|
|
399
364
|
* The point shape is written inline rather than extracted into a named alias. One more level of
|
|
400
365
|
* alias indirection around `InferPropertyValue` in this output position overflows TS's instantiation
|
|
401
|
-
* depth (TS2589) in consumers as ordinary as `points.map(...)`
|
|
402
|
-
*
|
|
403
|
-
*
|
|
404
|
-
*
|
|
366
|
+
* depth (TS2589) in consumers as ordinary as `points.map(...)`. `unit` is inferred through the
|
|
367
|
+
* same token as `append` writes it, rather than widened to `string`: a read that kept `value`
|
|
368
|
+
* precise and gave up on `unit` would be an arbitrary line, and both are the current ontology's
|
|
369
|
+
* view of a series it validated on write.
|
|
405
370
|
*/
|
|
406
371
|
history(input?: TelemetryHistoryInput): Promise<
|
|
407
372
|
readonly {
|
|
408
|
-
readonly value: InferPropertyValue<TToken["property"]
|
|
373
|
+
readonly value: InferPropertyValue<TToken["property"]>
|
|
409
374
|
readonly at: Date
|
|
410
|
-
readonly unit?: InferPropertyUnit<TToken["property"]
|
|
375
|
+
readonly unit?: InferPropertyUnit<TToken["property"]>
|
|
411
376
|
}[]
|
|
412
377
|
>
|
|
413
378
|
}
|
|
@@ -478,28 +443,55 @@ type LinkTargetObjectTypeId<TLinkToken> =
|
|
|
478
443
|
: never
|
|
479
444
|
: never
|
|
480
445
|
|
|
446
|
+
type ObjectTypeForRegisteredId<
|
|
447
|
+
TObjectTypeId extends string,
|
|
448
|
+
TFallback extends ObjectTypeWithPropertyTokens,
|
|
449
|
+
> = [Extract<RegisteredObjectType, { id: TObjectTypeId }>] extends [never]
|
|
450
|
+
? TFallback
|
|
451
|
+
: Extract<RegisteredObjectType, { id: TObjectTypeId }>
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Resolve an object type named by id, as seen from `TSource`.
|
|
455
|
+
*
|
|
456
|
+
* A self-reference (`link.self(...)`, or traversing one backwards) names the source's own id, so it
|
|
457
|
+
* resolves to the source. Every other id resolves through the generated registry first: a type
|
|
458
|
+
* reached through a link is then the very type the app imports and passes to `objects(...)`, which
|
|
459
|
+
* matters because builders are invariant in their object type. `TFallback` applies when the
|
|
460
|
+
* registry does not know the id — without a manifest, or for a stale one.
|
|
461
|
+
*/
|
|
481
462
|
type ObjectTypeForId<
|
|
482
|
-
|
|
463
|
+
TSource extends ObjectTypeWithPropertyTokens,
|
|
483
464
|
TObjectTypeId extends string,
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
465
|
+
TFallback extends ObjectTypeWithPropertyTokens = ObjectTypeWithPropertyTokens,
|
|
466
|
+
> = [TObjectTypeId] extends [TSource["id"]]
|
|
467
|
+
? [TSource["id"]] extends [TObjectTypeId]
|
|
468
|
+
? TSource
|
|
469
|
+
: ObjectTypeForRegisteredId<TObjectTypeId, TFallback>
|
|
470
|
+
: ObjectTypeForRegisteredId<TObjectTypeId, TFallback>
|
|
487
471
|
|
|
488
472
|
type DirectObjectTypeForLink<TLinkToken> =
|
|
489
473
|
TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue, infer TLink>
|
|
490
474
|
? Extract<ObjectLinkTargetType<TLink>, ObjectTypeWithPropertyTokens>
|
|
491
475
|
: never
|
|
492
476
|
|
|
477
|
+
/**
|
|
478
|
+
* The object type a link token points to: the registered type, else the target `link(id, Target)`
|
|
479
|
+
* captured, else the loose base type.
|
|
480
|
+
*/
|
|
493
481
|
type ObjectTypeForLinkTarget<
|
|
494
|
-
|
|
482
|
+
TSource extends ObjectTypeWithPropertyTokens,
|
|
495
483
|
TLinkToken,
|
|
496
|
-
> =
|
|
497
|
-
|
|
498
|
-
|
|
484
|
+
> = ObjectTypeForId<
|
|
485
|
+
TSource,
|
|
486
|
+
LinkTargetObjectTypeId<TLinkToken>,
|
|
487
|
+
[DirectObjectTypeForLink<TLinkToken>] extends [never]
|
|
488
|
+
? ObjectTypeWithPropertyTokens
|
|
489
|
+
: DirectObjectTypeForLink<TLinkToken>
|
|
490
|
+
>
|
|
499
491
|
|
|
500
492
|
/**
|
|
501
493
|
* True when the target type is a concrete ontology type rather than the degraded
|
|
502
|
-
* generic base.
|
|
494
|
+
* generic base. Registered and direct targets resolve before this point; unresolved
|
|
503
495
|
* id-only refs fall back to the base type, whose property ids are `string`.
|
|
504
496
|
* Instantiating the typed token map over the broad `Property` union there
|
|
505
497
|
* overflows TypeScript (the same reason `UntypedPropertyPredicate` exists). The
|
|
@@ -523,17 +515,12 @@ export type ObjectExpandOptions<TObjectType extends ObjectTypeWithPropertyTokens
|
|
|
523
515
|
orderBy?: readonly ObjectExpansionSort<TObjectType>[]
|
|
524
516
|
}
|
|
525
517
|
|
|
526
|
-
// ── Expansion
|
|
518
|
+
// ── Expansion rows (the typed `.links` map) ─────────────────
|
|
527
519
|
//
|
|
528
|
-
// Each `.expand(link, …)`
|
|
529
|
-
//
|
|
530
|
-
//
|
|
531
|
-
//
|
|
532
|
-
// recursion limits (proven on the real ADN graph): recursion lives ONLY in the
|
|
533
|
-
// lazily-evaluated row types below, never in constraints (which are eager); the
|
|
534
|
-
// builders are type aliases; targets resolve through direct metadata first and
|
|
535
|
-
// the id registry second; and the row is read through a direct conditional
|
|
536
|
-
// `infer` (see `BuiltRow`).
|
|
520
|
+
// A builder carries the row its terminals return. Each `.expand(link, …)` intersects that row with
|
|
521
|
+
// one `.links` entry, typed from the link's resolved target and cardinality; a nested callback
|
|
522
|
+
// returns a builder carrying the child row. The row is covariant, so an expanded query still passes
|
|
523
|
+
// where the plain query is expected.
|
|
537
524
|
|
|
538
525
|
/**
|
|
539
526
|
* Cardinality declared on a link token's underlying link; absent cardinality is
|
|
@@ -550,116 +537,11 @@ type LinkTokenCardinality<TLinkToken> =
|
|
|
550
537
|
type LinkTokenId<TLinkToken> =
|
|
551
538
|
TLinkToken extends LinkToken<string, infer TLinkId, LinkTargetObjectTypeIdValue> ? TLinkId : never
|
|
552
539
|
|
|
553
|
-
type LinkTokenSourceObjectTypeId<TLinkToken> =
|
|
554
|
-
TLinkToken extends LinkToken<infer TObjectTypeId, string, LinkTargetObjectTypeIdValue>
|
|
555
|
-
? TObjectTypeId
|
|
556
|
-
: string
|
|
557
|
-
|
|
558
|
-
type ObjectLinkCardinality<TLink> = TLink extends { cardinality: infer TCardinality extends string }
|
|
559
|
-
? TCardinality
|
|
560
|
-
: "many"
|
|
561
|
-
|
|
562
|
-
type ObjectLinkTarget<TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens, TLink> = [
|
|
563
|
-
Extract<ObjectLinkTargetType<TLink>, ObjectTypeWithPropertyTokens>,
|
|
564
|
-
] extends [never]
|
|
565
|
-
? TLink extends {
|
|
566
|
-
targetObjectTypeId: infer TTargetObjectTypeId extends LinkTargetObjectTypeIdValue
|
|
567
|
-
}
|
|
568
|
-
? ObjectTypeForId<TRegisteredObjectTypes, ResolveTargetTypeId<TTargetObjectTypeId>>
|
|
569
|
-
: ObjectTypeWithPropertyTokens
|
|
570
|
-
: Extract<ObjectLinkTargetType<TLink>, ObjectTypeWithPropertyTokens>
|
|
571
|
-
|
|
572
|
-
type ObjectLinkById<
|
|
573
|
-
TObjectType extends Pick<ObjectType, "links">,
|
|
574
|
-
TLinkId extends string,
|
|
575
|
-
> = Extract<TObjectType["links"][number], { id: TLinkId }>
|
|
576
|
-
|
|
577
|
-
type HasKnownObjectLinkIds<TObjectType extends Pick<ObjectType, "links">> =
|
|
578
|
-
string extends TObjectType["links"][number]["id"] ? false : true
|
|
579
|
-
|
|
580
|
-
/**
|
|
581
|
-
* A branded accumulator entry for one expanded link. Unconstrained on purpose —
|
|
582
|
-
* keeping recursion out of constraints is what avoids TS2589.
|
|
583
|
-
*/
|
|
584
|
-
type ExpansionNode<TLinkToken, TRegisteredObjectTypes, TTarget, TCardinality, TChildren> = {
|
|
585
|
-
readonly __linkToken: TLinkToken
|
|
586
|
-
readonly __registeredObjectTypes: TRegisteredObjectTypes
|
|
587
|
-
readonly __target: TTarget
|
|
588
|
-
readonly __cardinality: TCardinality
|
|
589
|
-
readonly __children: TChildren
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
/** The single-key accumulator contribution of one `.expand(link, …)` call. */
|
|
593
|
-
type ExpansionEntry<
|
|
594
|
-
TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
|
|
595
|
-
TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
|
|
596
|
-
TChild,
|
|
597
|
-
> = {
|
|
598
|
-
[K in TLinkToken["id"]]: ExpansionNode<
|
|
599
|
-
TLinkToken,
|
|
600
|
-
TRegisteredObjectTypes,
|
|
601
|
-
ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
|
|
602
|
-
LinkTokenCardinality<TLinkToken>,
|
|
603
|
-
TChild
|
|
604
|
-
>
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
type ExpansionNodeForSource<TNode, TObjectType extends Pick<ObjectType, "id" | "links">> =
|
|
608
|
-
TNode extends ExpansionNode<
|
|
609
|
-
infer TLinkToken,
|
|
610
|
-
infer TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
|
|
611
|
-
infer TTarget,
|
|
612
|
-
infer TCardinality,
|
|
613
|
-
infer TChildren
|
|
614
|
-
>
|
|
615
|
-
? LinkTokenId<TLinkToken> extends infer TLinkId extends string
|
|
616
|
-
? HasKnownObjectLinkIds<TObjectType> extends true
|
|
617
|
-
? [ObjectLinkById<TObjectType, TLinkId>] extends [never]
|
|
618
|
-
? never
|
|
619
|
-
: ExpansionNode<
|
|
620
|
-
TLinkToken,
|
|
621
|
-
TRegisteredObjectTypes,
|
|
622
|
-
ObjectLinkTarget<TRegisteredObjectTypes, ObjectLinkById<TObjectType, TLinkId>>,
|
|
623
|
-
ObjectLinkCardinality<ObjectLinkById<TObjectType, TLinkId>>,
|
|
624
|
-
TChildren
|
|
625
|
-
>
|
|
626
|
-
: LinkTokenSourceObjectTypeId<TLinkToken> extends TObjectType["id"]
|
|
627
|
-
? ExpansionNode<TLinkToken, TRegisteredObjectTypes, TTarget, TCardinality, TChildren>
|
|
628
|
-
: never
|
|
629
|
-
: never
|
|
630
|
-
: never
|
|
631
|
-
|
|
632
|
-
type ExpansionLinksForSource<TLinks, TObjectType extends Pick<ObjectType, "id" | "links">> = {
|
|
633
|
-
[K in keyof TLinks as [ExpansionNodeForSource<TLinks[K], TObjectType>] extends [never]
|
|
634
|
-
? never
|
|
635
|
-
: K]: ExpansionNodeForSource<TLinks[K], TObjectType>
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
/** Materialize one accumulated expansion entry into its row value. */
|
|
639
|
-
type ExpandedLinkType<TNode, TValueTypes extends readonly ValueType[]> =
|
|
640
|
-
TNode extends ExpansionNode<
|
|
641
|
-
unknown,
|
|
642
|
-
infer TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
|
|
643
|
-
infer TTarget,
|
|
644
|
-
infer TCardinality,
|
|
645
|
-
infer TChildren
|
|
646
|
-
>
|
|
647
|
-
? TCardinality extends "one"
|
|
648
|
-
? ExpandedRowType<TTarget, TChildren, TValueTypes, TRegisteredObjectTypes> | null
|
|
649
|
-
: ExpandedRowType<TTarget, TChildren, TValueTypes, TRegisteredObjectTypes>[]
|
|
650
|
-
: never
|
|
651
|
-
|
|
652
|
-
/**
|
|
653
|
-
* An expanded child row: the target object, optional edge `linkProperties` (the
|
|
654
|
-
* executor attaches it only when the relationship carries metadata), and its own
|
|
655
|
-
* nested `links` (present only when the child was itself expanded). The recursion
|
|
656
|
-
* is confined to this lazily-evaluated position.
|
|
657
|
-
*/
|
|
658
540
|
/**
|
|
659
541
|
* Loud row substituted for a `.expand()` whose target type is MISSING from an
|
|
660
542
|
* otherwise-present ontology manifest (a stale manifest, or a wrong link target
|
|
661
543
|
* id). Reading a real property is then a compile error pointing at the fix,
|
|
662
|
-
* instead of
|
|
544
|
+
* instead of a silent `Record<string, unknown>`. The no-manifest loose
|
|
663
545
|
* default stays graceful — this only fires when the registry is concrete yet the
|
|
664
546
|
* target id is absent, i.e. precision was expected but lost.
|
|
665
547
|
*/
|
|
@@ -671,169 +553,98 @@ type UnresolvedExpansionRow = {
|
|
|
671
553
|
}
|
|
672
554
|
createdAt: Date
|
|
673
555
|
updatedAt: Date
|
|
556
|
+
linkProperties?: Record<string, unknown>
|
|
674
557
|
}
|
|
675
558
|
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
TValueTypes,
|
|
690
|
-
ExpansionLinksForSource<TChildren, TTarget>,
|
|
691
|
-
{ linkProperties?: Record<string, unknown> }
|
|
692
|
-
>
|
|
693
|
-
: // Manifest present but this target id is absent → loud (was silent).
|
|
694
|
-
UnresolvedExpansionRow
|
|
695
|
-
: ExpandedRowForSource<
|
|
696
|
-
TTarget,
|
|
697
|
-
TValueTypes,
|
|
698
|
-
ExpansionLinksForSource<TChildren, TTarget>,
|
|
699
|
-
{ linkProperties?: Record<string, unknown> }
|
|
700
|
-
>
|
|
559
|
+
/**
|
|
560
|
+
* The row an expanded target contributes before its own nested expansions. A polymorphic target
|
|
561
|
+
* (`link(id, [A, B])`) yields a union of rows, discriminated by `objectTypeId`.
|
|
562
|
+
*/
|
|
563
|
+
type ExpandedTargetRow<TTarget extends ObjectTypeWithPropertyTokens> =
|
|
564
|
+
TTarget extends ObjectTypeWithPropertyTokens
|
|
565
|
+
? HasKnownObjectType<TTarget> extends true
|
|
566
|
+
? ObjectExpansionRow<TTarget>
|
|
567
|
+
: // The target degraded to the loose base. Without a manifest that is the expected loose
|
|
568
|
+
// row; with one, the target is missing from it.
|
|
569
|
+
string extends RegisteredObjectType["id"]
|
|
570
|
+
? ObjectExpansionRow<TTarget>
|
|
571
|
+
: UnresolvedExpansionRow
|
|
701
572
|
: never
|
|
702
573
|
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
([keyof TLinks] extends [never]
|
|
712
|
-
? unknown
|
|
713
|
-
: { links: { [K in keyof TLinks]: ExpandedLinkType<TLinks[K], TValueTypes> } })
|
|
714
|
-
>
|
|
574
|
+
/** The `.links` entry one `.expand(link, …)` adds: `Target | null` for `"one"`, else `Target[]`. */
|
|
575
|
+
type ObjectExpansionLinks<TLinkToken, TChildRow> = {
|
|
576
|
+
links: {
|
|
577
|
+
[K in LinkTokenId<TLinkToken>]: LinkTokenCardinality<TLinkToken> extends "one"
|
|
578
|
+
? Simplify<TChildRow> | null
|
|
579
|
+
: Simplify<TChildRow>[]
|
|
580
|
+
}
|
|
581
|
+
}
|
|
715
582
|
|
|
716
583
|
/**
|
|
717
|
-
*
|
|
718
|
-
*
|
|
719
|
-
*
|
|
584
|
+
* Add the `.links` entry of one expansion to `TRow`. Distributes over a polymorphic row, so a
|
|
585
|
+
* nested expansion declared on one member type (`owner.expand(User.l.region)`) only reaches the
|
|
586
|
+
* rows of that type.
|
|
720
587
|
*/
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
> =
|
|
726
|
-
?
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
:
|
|
588
|
+
type WithExpansion<
|
|
589
|
+
TRow,
|
|
590
|
+
TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
|
|
591
|
+
TChildRow,
|
|
592
|
+
> = TRow extends { objectTypeId: infer TObjectTypeId }
|
|
593
|
+
? TLinkToken["objectTypeId"] extends TObjectTypeId
|
|
594
|
+
? TRow & ObjectExpansionLinks<TLinkToken, TChildRow>
|
|
595
|
+
: TRow
|
|
596
|
+
: TRow
|
|
730
597
|
|
|
731
598
|
/**
|
|
732
|
-
*
|
|
733
|
-
*
|
|
734
|
-
* registry so deeper hops stay typed and accumulating `TAccumulated` so the
|
|
735
|
-
* nested `.links` shape is recovered from the callback's return.
|
|
736
|
-
*
|
|
737
|
-
* A type alias (not an interface) so relating two instantiations stays
|
|
738
|
-
* structural — the same discipline `TwinObject` follows to avoid TS2589
|
|
739
|
-
* (see the note above `TwinObject`). The only recursion is in the lazily
|
|
740
|
-
* evaluated return/callback positions.
|
|
599
|
+
* The nested-expansion callback for a link token's resolved target type. `TChildRow`
|
|
600
|
+
* is inferred from the returned builder, recovering the nested `.links` shape.
|
|
741
601
|
*
|
|
742
|
-
*
|
|
743
|
-
*
|
|
744
|
-
*
|
|
745
|
-
* checking, and — crucially — without the self-referential generic instantiation
|
|
746
|
-
* over the broad base type that would otherwise overflow TypeScript.
|
|
602
|
+
* Kept a plain (non-conditional) function type on purpose: wrapping the callback
|
|
603
|
+
* in a `TLinkToken extends … ? … : never` conditional blocks inference of
|
|
604
|
+
* `TChildRow` from the argument, so it would silently fall back to its default.
|
|
747
605
|
*/
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
> =
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
: {
|
|
756
|
-
// Phantom accumulator — never set at runtime. It is the only direct,
|
|
757
|
-
// covariant site `TAccumulated` appears in, so the nested callback's
|
|
758
|
-
// `TChild` is inferable from the returned builder even after the
|
|
759
|
-
// degradation conditional above resolves (which otherwise buries the
|
|
760
|
-
// accumulator inside `expand`'s return and defeats inference).
|
|
761
|
-
readonly __links?: TAccumulated
|
|
762
|
-
expand<
|
|
763
|
-
TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
|
|
764
|
-
TChild = unknown,
|
|
765
|
-
>(
|
|
766
|
-
link: TLinkToken,
|
|
767
|
-
build: ObjectExpandNested<TLinkToken, TRegisteredObjectTypes, TChild>
|
|
768
|
-
): ObjectExpandBuilder<
|
|
769
|
-
TObjectType,
|
|
770
|
-
TRegisteredObjectTypes,
|
|
771
|
-
TAccumulated & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
|
|
772
|
-
>
|
|
773
|
-
expand<
|
|
774
|
-
TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
|
|
775
|
-
TChild = unknown,
|
|
776
|
-
>(
|
|
777
|
-
link: TLinkToken,
|
|
778
|
-
options?: ObjectExpandOptions<
|
|
779
|
-
ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>
|
|
780
|
-
>,
|
|
781
|
-
build?: ObjectExpandNested<TLinkToken, TRegisteredObjectTypes, TChild>
|
|
782
|
-
): ObjectExpandBuilder<
|
|
783
|
-
TObjectType,
|
|
784
|
-
TRegisteredObjectTypes,
|
|
785
|
-
TAccumulated & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
|
|
786
|
-
>
|
|
787
|
-
}
|
|
606
|
+
type ObjectExpandNested<
|
|
607
|
+
TSource extends ObjectTypeWithPropertyTokens,
|
|
608
|
+
TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
|
|
609
|
+
TChildRow,
|
|
610
|
+
> = (
|
|
611
|
+
nested: ObjectExpandBuilder<ObjectTypeForLinkTarget<TSource, TLinkToken>>
|
|
612
|
+
) => ObjectExpandBuilder<ObjectTypeForLinkTarget<TSource, TLinkToken>, TChildRow>
|
|
788
613
|
|
|
789
614
|
/**
|
|
790
|
-
*
|
|
791
|
-
*
|
|
792
|
-
* Nested expansions still run; their shape simply degrades to the loose row.
|
|
615
|
+
* Builder passed to the nested `.expand(..., (e) => …)` callback. Exposes only `expand`; each call
|
|
616
|
+
* adds a `.links` entry to `TRow`, the row this expanded target contributes to its parent.
|
|
793
617
|
*/
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
618
|
+
export interface ObjectExpandBuilder<
|
|
619
|
+
in out TObjectType extends ObjectTypeWithPropertyTokens,
|
|
620
|
+
out TRow = ExpandedTargetRow<TObjectType>,
|
|
621
|
+
> {
|
|
622
|
+
expand<
|
|
623
|
+
TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
|
|
624
|
+
TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
|
|
625
|
+
>(
|
|
626
|
+
link: TLinkToken,
|
|
627
|
+
build: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
|
|
628
|
+
): ObjectExpandBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
|
|
629
|
+
expand<
|
|
630
|
+
TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
|
|
631
|
+
TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
|
|
632
|
+
>(
|
|
633
|
+
link: TLinkToken,
|
|
634
|
+
options?: ObjectExpandOptions<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
|
|
635
|
+
build?: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
|
|
636
|
+
): ObjectExpandBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
|
|
802
637
|
}
|
|
803
638
|
|
|
804
639
|
/**
|
|
805
|
-
*
|
|
806
|
-
* is inferred from the returned builder's accumulator, recovering the nested
|
|
807
|
-
* `.links` shape; on the degraded path the builder collapses and `TChild` stays
|
|
808
|
-
* its `unknown` default.
|
|
640
|
+
* Executable object query rooted at `TObjectType`, returning `TRow` rows.
|
|
809
641
|
*
|
|
810
|
-
*
|
|
811
|
-
* in
|
|
812
|
-
* `TChild` from the argument, so it would silently fall back to `unknown`.
|
|
642
|
+
* Invariant in the object type, whose predicates and tokens it both accepts and produces, and
|
|
643
|
+
* covariant in the row.
|
|
813
644
|
*/
|
|
814
|
-
type ObjectExpandNested<
|
|
815
|
-
TLinkToken extends LinkToken<string, string, LinkTargetObjectTypeIdValue>,
|
|
816
|
-
TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens,
|
|
817
|
-
TChild,
|
|
818
|
-
> = (
|
|
819
|
-
nested: ObjectExpandBuilder<
|
|
820
|
-
ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
|
|
821
|
-
TRegisteredObjectTypes
|
|
822
|
-
>
|
|
823
|
-
) => ObjectExpandBuilder<
|
|
824
|
-
ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
|
|
825
|
-
TRegisteredObjectTypes,
|
|
826
|
-
TChild
|
|
827
|
-
>
|
|
828
|
-
|
|
829
645
|
export interface ObjectQueryBuilder<
|
|
830
|
-
TObjectType extends ObjectTypeWithPropertyTokens,
|
|
831
|
-
|
|
832
|
-
TValueTypes extends readonly ValueType[],
|
|
833
|
-
// Accumulated expansion shape, widened by each `.expand(...)` and materialized
|
|
834
|
-
// into the row's `links` by the `list`/`first` terminals. Empty `{}` until the
|
|
835
|
-
// first expand; `traverse` resets it (the new result type has its own links).
|
|
836
|
-
TLinks = unknown,
|
|
646
|
+
in out TObjectType extends ObjectTypeWithPropertyTokens,
|
|
647
|
+
out TRow = ObjectQueryRow<TObjectType>,
|
|
837
648
|
> {
|
|
838
649
|
/** Normalized provider-neutral query IR. */
|
|
839
650
|
readonly ir: ObjectQuery
|
|
@@ -841,101 +652,76 @@ export interface ObjectQueryBuilder<
|
|
|
841
652
|
/** Add a typed property predicate at the current object type. */
|
|
842
653
|
where(
|
|
843
654
|
where: (
|
|
844
|
-
builder: ObjectWhereBuilder<TObjectType
|
|
845
|
-
) =>
|
|
846
|
-
|
|
847
|
-
| readonly ObjectWhereClause<TObjectType, TValueTypes>[]
|
|
848
|
-
): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
|
|
655
|
+
builder: ObjectWhereBuilder<TObjectType>
|
|
656
|
+
) => ObjectWhereClause<TObjectType> | readonly ObjectWhereClause<TObjectType>[]
|
|
657
|
+
): ObjectQueryBuilder<TObjectType, TRow>
|
|
849
658
|
|
|
850
659
|
/** Search configured text fields at the current object type. */
|
|
851
660
|
search(
|
|
852
661
|
query: string,
|
|
853
662
|
options?: { fields?: readonly ObjectSetQueryPropertyToken<TObjectType>[] }
|
|
854
|
-
): ObjectQueryBuilder<TObjectType,
|
|
663
|
+
): ObjectQueryBuilder<TObjectType, TRow>
|
|
855
664
|
|
|
856
665
|
/** Search a profile; text is embedded server-side with its configured model. */
|
|
857
666
|
vector(
|
|
858
667
|
profile: VectorProfileName<TObjectType>,
|
|
859
668
|
vector: string,
|
|
860
669
|
options: { k: number }
|
|
861
|
-
): ObjectQueryBuilder<TObjectType,
|
|
670
|
+
): ObjectQueryBuilder<TObjectType, TRow>
|
|
862
671
|
|
|
863
672
|
/** Follow an outgoing link and make the linked object type the current result type. */
|
|
864
673
|
traverse<TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>>(
|
|
865
674
|
link: TLinkToken,
|
|
866
675
|
options?: { direction?: "outgoing" }
|
|
867
|
-
): ObjectQueryBuilder<
|
|
868
|
-
ObjectTypeForLinkTarget<TRegisteredObjectTypes, TLinkToken>,
|
|
869
|
-
TRegisteredObjectTypes,
|
|
870
|
-
TValueTypes
|
|
871
|
-
>
|
|
676
|
+
): ObjectQueryBuilder<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>
|
|
872
677
|
|
|
873
678
|
/** Follow an incoming link and make the link source object type the current result type. */
|
|
874
679
|
traverse<TLinkToken extends LinkToken<string, string, TObjectType["id"] | readonly string[]>>(
|
|
875
680
|
link: TLinkToken,
|
|
876
681
|
options: { direction: "incoming" }
|
|
877
|
-
): ObjectQueryBuilder<
|
|
878
|
-
ObjectTypeForId<TRegisteredObjectTypes, TLinkToken["objectTypeId"]>,
|
|
879
|
-
TRegisteredObjectTypes,
|
|
880
|
-
TValueTypes
|
|
881
|
-
>
|
|
682
|
+
): ObjectQueryBuilder<ObjectTypeForId<TObjectType, TLinkToken["objectTypeId"]>>
|
|
882
683
|
|
|
883
684
|
/**
|
|
884
685
|
* Attach an outgoing link's target objects to each row under `.links`, without
|
|
885
686
|
* changing the result type — the additive counterpart to `traverse` (which
|
|
886
687
|
* replaces the set). The callback nests deeper hops.
|
|
887
688
|
*
|
|
888
|
-
* Each call
|
|
889
|
-
*
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
689
|
+
* Each call adds a typed `.links` entry to the rows `list`/`first` return
|
|
690
|
+
* (cardinality `"one"` → `Target | null`, `"many"` → `Target[]`, each carrying
|
|
691
|
+
* optional `linkProperties` and its own nested `.links`). Targets are precise
|
|
692
|
+
* when they are registered or linked directly, and otherwise degrade to the
|
|
693
|
+
* loose base.
|
|
893
694
|
*/
|
|
894
695
|
expand<
|
|
895
696
|
TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
|
|
896
|
-
|
|
697
|
+
TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
|
|
897
698
|
>(
|
|
898
699
|
link: TLinkToken,
|
|
899
|
-
build: ObjectExpandNested<
|
|
900
|
-
): ObjectQueryBuilder<
|
|
901
|
-
TObjectType,
|
|
902
|
-
TRegisteredObjectTypes,
|
|
903
|
-
TValueTypes,
|
|
904
|
-
TLinks & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
|
|
905
|
-
>
|
|
700
|
+
build: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
|
|
701
|
+
): ObjectQueryBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
|
|
906
702
|
expand<
|
|
907
703
|
TLinkToken extends LinkToken<TObjectType["id"], string, LinkTargetObjectTypeIdValue>,
|
|
908
|
-
|
|
704
|
+
TChildRow = ExpandedTargetRow<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
|
|
909
705
|
>(
|
|
910
706
|
link: TLinkToken,
|
|
911
|
-
options?: ObjectExpandOptions<ObjectTypeForLinkTarget<
|
|
912
|
-
build?: ObjectExpandNested<
|
|
913
|
-
): ObjectQueryBuilder<
|
|
914
|
-
TObjectType,
|
|
915
|
-
TRegisteredObjectTypes,
|
|
916
|
-
TValueTypes,
|
|
917
|
-
TLinks & ExpansionEntry<TLinkToken, TRegisteredObjectTypes, TChild>
|
|
918
|
-
>
|
|
707
|
+
options?: ObjectExpandOptions<ObjectTypeForLinkTarget<TObjectType, TLinkToken>>,
|
|
708
|
+
build?: ObjectExpandNested<TObjectType, TLinkToken, TChildRow>
|
|
709
|
+
): ObjectQueryBuilder<TObjectType, WithExpansion<TRow, TLinkToken, TChildRow>>
|
|
919
710
|
|
|
920
711
|
/** Add property ordering at the current object type. */
|
|
921
712
|
orderBy(
|
|
922
713
|
property: ObjectSetQueryPropertyToken<TObjectType>,
|
|
923
714
|
direction?: ObjectQuerySortDirection
|
|
924
|
-
): ObjectQueryBuilder<TObjectType,
|
|
715
|
+
): ObjectQueryBuilder<TObjectType, TRow>
|
|
925
716
|
|
|
926
717
|
/** Add relevance ordering for providers that support ranked search. */
|
|
927
|
-
orderByRelevance(
|
|
928
|
-
direction?: ObjectQuerySortDirection
|
|
929
|
-
): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
|
|
718
|
+
orderByRelevance(direction?: ObjectQuerySortDirection): ObjectQueryBuilder<TObjectType, TRow>
|
|
930
719
|
|
|
931
720
|
/** Bound the result count. */
|
|
932
|
-
limit(limit: number): ObjectQueryBuilder<TObjectType,
|
|
721
|
+
limit(limit: number): ObjectQueryBuilder<TObjectType, TRow>
|
|
933
722
|
|
|
934
723
|
/** Request one page of results. */
|
|
935
|
-
page(input: {
|
|
936
|
-
pageSize: number
|
|
937
|
-
pageToken?: string
|
|
938
|
-
}): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes, TLinks>
|
|
724
|
+
page(input: { pageSize: number; pageToken?: string }): ObjectQueryBuilder<TObjectType, TRow>
|
|
939
725
|
|
|
940
726
|
/** Validate this query against the registered ontology. */
|
|
941
727
|
validate(): ValidatedObjectQuery
|
|
@@ -947,21 +733,15 @@ export interface ObjectQueryBuilder<
|
|
|
947
733
|
formatExplanation(): string
|
|
948
734
|
|
|
949
735
|
/** Execute this query and return matching objects (rows carry `.links` when expanded). */
|
|
950
|
-
list(): Promise<ListResult<
|
|
736
|
+
list(): Promise<ListResult<Simplify<TRow>>>
|
|
951
737
|
list(options: {
|
|
952
738
|
includeTotal: false
|
|
953
739
|
signal?: AbortSignal
|
|
954
|
-
}): Promise<ListResultWithoutTotal<
|
|
955
|
-
list(options: {
|
|
956
|
-
includeTotal?: true
|
|
957
|
-
signal?: AbortSignal
|
|
958
|
-
}): Promise<ListResult<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>>
|
|
740
|
+
}): Promise<ListResultWithoutTotal<Simplify<TRow>>>
|
|
741
|
+
list(options: { includeTotal?: true; signal?: AbortSignal }): Promise<ListResult<Simplify<TRow>>>
|
|
959
742
|
list(
|
|
960
743
|
options?: ObjectQueryListOptions
|
|
961
|
-
): Promise<
|
|
962
|
-
| ListResult<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>
|
|
963
|
-
| ListResultWithoutTotal<ObjectQueryRow<TObjectType, TValueTypes, TLinks>>
|
|
964
|
-
>
|
|
744
|
+
): Promise<ListResult<Simplify<TRow>> | ListResultWithoutTotal<Simplify<TRow>>>
|
|
965
745
|
|
|
966
746
|
/** Count the matching objects without returning rows. */
|
|
967
747
|
count(): Promise<number>
|
|
@@ -973,19 +753,51 @@ export interface ObjectQueryBuilder<
|
|
|
973
753
|
facets(input: readonly ObjectQueryFacetInput<TObjectType>[]): Promise<ObjectQueryFacetResult[]>
|
|
974
754
|
|
|
975
755
|
/** Execute this query with an outer limit of one and return the first object. */
|
|
976
|
-
first(): Promise<
|
|
756
|
+
first(): Promise<Simplify<TRow> | null>
|
|
977
757
|
}
|
|
978
758
|
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
TValueTypes extends readonly ValueType[],
|
|
982
|
-
> {
|
|
983
|
-
vector(profile: VectorProfileName<TObjectType>): ObjectVectorHandle
|
|
759
|
+
/** Reads bound to one object id. */
|
|
760
|
+
export interface ObjectReadByIdHandle<out TObjectType extends ObjectTypeWithPropertyTokens> {
|
|
984
761
|
/** Get the object at this id, or null if it doesn't exist. */
|
|
985
|
-
get(): Promise<TwinObject<TObjectType
|
|
762
|
+
get(): Promise<TwinObject<TObjectType> | null>
|
|
986
763
|
|
|
987
764
|
/** List links from this object, optionally filtered by link token. */
|
|
988
765
|
listLinks(link?: LinkTokenForObjectType<TObjectType>): Promise<readonly ObjectLinkRow[]>
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
/**
|
|
769
|
+
* The reads of an object set, declared once: `sixb.objects(Type)`, a Workflow step's
|
|
770
|
+
* `sixb.objects(Type)` and an Action's `read.objects(Type)` add only their own writes on top.
|
|
771
|
+
*/
|
|
772
|
+
export interface ObjectReadSet<in out TObjectType extends ObjectTypeWithPropertyTokens> {
|
|
773
|
+
/** Get an object by id, or null if it doesn't exist. */
|
|
774
|
+
get(id: string): Promise<TwinObject<TObjectType> | null>
|
|
775
|
+
|
|
776
|
+
/** Build an executable provider-neutral object query rooted at this object type. */
|
|
777
|
+
query(): ObjectQueryBuilder<TObjectType>
|
|
778
|
+
|
|
779
|
+
/** Bind reads to a specific object id. */
|
|
780
|
+
byId(id: string): ObjectReadByIdHandle<TObjectType>
|
|
781
|
+
|
|
782
|
+
/** List stored objects of this type with storage-system filtering and pagination. */
|
|
783
|
+
list(input?: ObjectSetListInput): Promise<ListResult<TwinObject<TObjectType>>>
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Reads objects without writing them.
|
|
788
|
+
*
|
|
789
|
+
* An Action's `read`, a Workflow step's `sixb` and a `Sixb` runtime are all object readers, so a
|
|
790
|
+
* helper that takes an `ObjectReader` works in each of them.
|
|
791
|
+
*/
|
|
792
|
+
export interface ObjectReader {
|
|
793
|
+
objects<const TObjectType extends ObjectTypeWithPropertyTokens>(
|
|
794
|
+
objectType: TObjectType
|
|
795
|
+
): ObjectReadSet<TObjectType>
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
export interface ObjectByIdHandle<TObjectType extends ObjectTypeWithPropertyTokens>
|
|
799
|
+
extends ObjectReadByIdHandle<TObjectType> {
|
|
800
|
+
vector(profile: VectorProfileName<TObjectType>): ObjectVectorHandle
|
|
989
801
|
|
|
990
802
|
/** Create or update a link from the current object to a target object. */
|
|
991
803
|
link<TLinkToken extends LinkTokenForObjectType<TObjectType>>(
|
|
@@ -1053,36 +865,22 @@ export interface ObjectByIdHandle<
|
|
|
1053
865
|
/** Read and write telemetry for one telemetry-mode property token. */
|
|
1054
866
|
telemetry<TToken extends TelemetryPropertyToken<TObjectType>>(
|
|
1055
867
|
property: TToken
|
|
1056
|
-
): TelemetryChannel<TToken
|
|
868
|
+
): TelemetryChannel<TToken>
|
|
1057
869
|
}
|
|
1058
870
|
|
|
1059
|
-
export interface ObjectSet<
|
|
1060
|
-
TObjectType
|
|
1061
|
-
TValueTypes extends readonly ValueType[],
|
|
1062
|
-
TRegisteredObjectTypes extends ObjectTypeWithPropertyTokens = TObjectType,
|
|
1063
|
-
> {
|
|
1064
|
-
/** Get an object by id, or null if it doesn't exist. */
|
|
1065
|
-
get(id: string): Promise<TwinObject<TObjectType, TValueTypes> | null>
|
|
1066
|
-
|
|
871
|
+
export interface ObjectSet<TObjectType extends ObjectTypeWithPropertyTokens>
|
|
872
|
+
extends ObjectReadSet<TObjectType> {
|
|
1067
873
|
/** Upsert object state facts (latest projection). */
|
|
1068
|
-
upsert(input: {
|
|
1069
|
-
properties: InferObjectProperties<TObjectType, TValueTypes>
|
|
1070
|
-
}): Promise<TwinObject<TObjectType, TValueTypes>>
|
|
1071
|
-
|
|
1072
|
-
/** Build an executable provider-neutral object query rooted at this object type. */
|
|
1073
|
-
query(): ObjectQueryBuilder<TObjectType, TRegisteredObjectTypes, TValueTypes>
|
|
874
|
+
upsert(input: { properties: ObjectTypeProperties<TObjectType> }): Promise<TwinObject<TObjectType>>
|
|
1074
875
|
|
|
1075
876
|
/** Bind operations to a specific object id. */
|
|
1076
|
-
byId(id: string): ObjectByIdHandle<TObjectType
|
|
1077
|
-
|
|
1078
|
-
/** List stored objects of this type with storage-system filtering and pagination. */
|
|
1079
|
-
list(input?: ObjectSetListInput): Promise<ListResult<TwinObject<TObjectType, TValueTypes>>>
|
|
877
|
+
byId(id: string): ObjectByIdHandle<TObjectType>
|
|
1080
878
|
|
|
1081
879
|
/** Append telemetry for multiple objects in a single batch. */
|
|
1082
880
|
appendTelemetryBatch(
|
|
1083
881
|
items: readonly {
|
|
1084
882
|
id: string
|
|
1085
|
-
properties: InferTelemetryBatchProperties<TObjectType
|
|
883
|
+
properties: InferTelemetryBatchProperties<TObjectType>
|
|
1086
884
|
at?: Date
|
|
1087
885
|
}[]
|
|
1088
886
|
): Promise<void>
|