@astrale-os/kernel-client 0.6.0-beta.8 → 0.6.0-beta.80
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/auth/auth.d.ts +25 -10
- package/dist/auth/auth.js +5 -7
- package/dist/auth/authorization.d.ts +6 -4
- package/dist/auth/authorization.js +25 -6
- package/dist/auth/credential.d.ts +11 -2
- package/dist/auth/credential.js +6 -3
- package/dist/auth/identity.d.ts +6 -9
- package/dist/auth/identity.js +0 -1
- package/dist/auth/index.d.ts +4 -5
- package/dist/auth/index.js +2 -4
- package/dist/auth/register.d.ts +24 -0
- package/dist/auth/register.js +10 -0
- package/dist/client/admission.d.ts +4 -2
- package/dist/client/admission.js +8 -2
- package/dist/client/client.d.ts +4 -3
- package/dist/client/client.js +13 -3
- package/dist/client/credential.d.ts +4 -3
- package/dist/client/credential.js +7 -3
- package/dist/client/index.d.ts +1 -2
- package/dist/client/index.js +1 -2
- package/dist/client/request.d.ts +10 -4
- package/dist/client/request.js +33 -6
- package/dist/client/result.d.ts +3 -4
- package/dist/client/result.js +3 -1
- package/dist/client/routing-control.d.ts +0 -1
- package/dist/client/routing-control.js +0 -1
- package/dist/errors/client-error.d.ts +0 -1
- package/dist/errors/client-error.js +2 -1
- package/dist/errors/exchange-error.d.ts +19 -0
- package/dist/errors/exchange-error.js +9 -0
- package/dist/errors/index.d.ts +8 -7
- package/dist/errors/index.js +8 -7
- package/dist/errors/miss-error.d.ts +0 -1
- package/dist/errors/miss-error.js +0 -1
- package/dist/errors/protocol-error.d.ts +0 -1
- package/dist/errors/protocol-error.js +0 -1
- package/dist/errors/response-error.d.ts +0 -1
- package/dist/errors/response-error.js +0 -1
- package/dist/errors/session-error.d.ts +9 -0
- package/dist/errors/session-error.js +9 -0
- package/dist/errors/stale-route-error.d.ts +0 -1
- package/dist/errors/stale-route-error.js +0 -1
- package/dist/errors/transport-error.d.ts +18 -6
- package/dist/errors/transport-error.js +11 -7
- package/dist/graph/domain/binding.d.ts +22 -0
- package/dist/graph/domain/binding.js +123 -0
- package/dist/graph/domain/domain.typecheck.d.ts +1 -0
- package/dist/graph/domain/domain.typecheck.js +147 -0
- package/dist/graph/domain/index.d.ts +3 -0
- package/dist/graph/domain/index.js +1 -0
- package/dist/graph/domain/model.d.ts +18 -0
- package/dist/graph/domain/model.js +1 -0
- package/dist/graph/domain/page.d.ts +23 -0
- package/dist/graph/domain/page.js +42 -0
- package/dist/graph/domain/project.d.ts +8 -0
- package/dist/graph/domain/project.js +124 -0
- package/dist/graph/domain/provenance.d.ts +6 -0
- package/dist/graph/domain/provenance.js +11 -0
- package/dist/graph/errors.d.ts +2 -3
- package/dist/graph/errors.js +1 -2
- package/dist/graph/expectation.d.ts +3 -0
- package/dist/graph/expectation.js +6 -0
- package/dist/graph/graph.d.ts +12 -8
- package/dist/graph/graph.js +0 -1
- package/dist/graph/index.d.ts +2 -2
- package/dist/graph/index.js +1 -1
- package/dist/graph/mutation.d.ts +2 -4
- package/dist/graph/mutation.js +10 -2
- package/dist/graph/page/index.d.ts +0 -1
- package/dist/graph/page/index.js +0 -1
- package/dist/graph/page/neighbors.d.ts +4 -5
- package/dist/graph/page/neighbors.js +7 -7
- package/dist/graph/page/page.d.ts +5 -2
- package/dist/graph/page/page.js +0 -1
- package/dist/graph/page-contract.d.ts +1 -2
- package/dist/graph/page-contract.js +0 -1
- package/dist/graph/provenance.d.ts +14 -0
- package/dist/graph/provenance.js +42 -0
- package/dist/graph/query.d.ts +3 -1
- package/dist/graph/query.js +33 -13
- package/dist/graph/read.d.ts +3 -4
- package/dist/graph/read.js +6 -5
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/pacer/batcher/batcher.d.ts +0 -1
- package/dist/pacer/batcher/batcher.js +0 -1
- package/dist/pacer/batcher/defaults.d.ts +0 -1
- package/dist/pacer/batcher/defaults.js +0 -1
- package/dist/pacer/batcher/index.d.ts +0 -1
- package/dist/pacer/batcher/index.js +0 -1
- package/dist/pacer/index.d.ts +0 -1
- package/dist/pacer/index.js +0 -1
- package/dist/pacer/limiter/defaults.d.ts +0 -1
- package/dist/pacer/limiter/defaults.js +0 -1
- package/dist/pacer/limiter/index.d.ts +0 -1
- package/dist/pacer/limiter/index.js +0 -1
- package/dist/pacer/limiter/limiter.d.ts +0 -1
- package/dist/pacer/limiter/limiter.js +0 -1
- package/dist/pacer/queue/defaults.d.ts +0 -1
- package/dist/pacer/queue/defaults.js +0 -1
- package/dist/pacer/queue/index.d.ts +0 -1
- package/dist/pacer/queue/index.js +0 -1
- package/dist/pacer/queue/queue.d.ts +0 -1
- package/dist/pacer/queue/queue.js +0 -1
- package/dist/pacer/retry/defaults.d.ts +0 -1
- package/dist/pacer/retry/defaults.js +0 -1
- package/dist/pacer/retry/index.d.ts +0 -1
- package/dist/pacer/retry/index.js +0 -1
- package/dist/pacer/retry/retry.d.ts +0 -1
- package/dist/pacer/retry/retry.js +0 -1
- package/dist/pool/index.d.ts +0 -1
- package/dist/pool/index.js +0 -1
- package/dist/pool/pool.d.ts +0 -1
- package/dist/pool/pool.js +0 -1
- package/dist/pool/target.d.ts +0 -1
- package/dist/pool/target.js +0 -1
- package/dist/schema/admission.d.ts +1 -2
- package/dist/schema/admission.js +0 -1
- package/dist/schema/contracts.d.ts +6 -16
- package/dist/schema/contracts.js +0 -1
- package/dist/schema/index.d.ts +2 -3
- package/dist/schema/index.js +1 -2
- package/dist/schema/introspection.d.ts +1 -2
- package/dist/schema/introspection.js +9 -2
- package/dist/schema/operation.d.ts +0 -1
- package/dist/schema/operation.js +2 -3
- package/dist/schema/schema.d.ts +13 -10
- package/dist/schema/schema.js +83 -11
- package/dist/session/admission.d.ts +6 -0
- package/dist/session/admission.js +59 -0
- package/dist/session/bound.d.ts +48 -0
- package/dist/session/bound.js +110 -0
- package/dist/session/content.d.ts +27 -0
- package/dist/session/content.js +158 -0
- package/dist/session/context/control.d.ts +0 -1
- package/dist/session/context/control.js +0 -1
- package/dist/session/context/index.d.ts +0 -1
- package/dist/session/context/index.js +0 -1
- package/dist/session/context/limits.d.ts +0 -1
- package/dist/session/context/limits.js +0 -1
- package/dist/session/context/operation.d.ts +5 -2
- package/dist/session/context/operation.js +19 -17
- package/dist/session/context/policy.d.ts +0 -1
- package/dist/session/context/policy.js +0 -1
- package/dist/session/credential/index.d.ts +1 -0
- package/dist/session/credential/index.js +1 -0
- package/dist/session/credential/limits.d.ts +12 -0
- package/dist/session/credential/limits.js +12 -0
- package/dist/session/credential/provider.d.ts +56 -0
- package/dist/session/credential/provider.js +236 -0
- package/dist/session/discovery/bundle.d.ts +5 -2
- package/dist/session/discovery/bundle.js +34 -15
- package/dist/session/discovery/discovery.d.ts +4 -2
- package/dist/session/discovery/discovery.js +34 -6
- package/dist/session/discovery/index.d.ts +3 -1
- package/dist/session/discovery/index.js +1 -1
- package/dist/session/discovery/publication.d.ts +0 -1
- package/dist/session/discovery/publication.js +4 -4
- package/dist/session/discovery/snapshot.d.ts +0 -1
- package/dist/session/discovery/snapshot.js +0 -1
- package/dist/session/discovery/transport.d.ts +6 -0
- package/dist/session/discovery/transport.js +13 -0
- package/dist/session/exchange/domain.d.ts +27 -0
- package/dist/session/exchange/domain.js +63 -0
- package/dist/session/exchange/exchange.d.ts +54 -0
- package/dist/session/exchange/exchange.js +58 -0
- package/dist/session/exchange/index.d.ts +5 -0
- package/dist/session/exchange/index.js +5 -0
- package/dist/session/exchange/issuer.d.ts +18 -0
- package/dist/session/exchange/issuer.js +149 -0
- package/dist/session/exchange/limits.d.ts +10 -0
- package/dist/session/exchange/limits.js +10 -0
- package/dist/session/exchange/options.d.ts +29 -0
- package/dist/session/exchange/options.js +57 -0
- package/dist/session/exchange/presentation.d.ts +18 -0
- package/dist/session/exchange/presentation.js +73 -0
- package/dist/session/exchange/source.d.ts +32 -0
- package/dist/session/exchange/source.js +78 -0
- package/dist/session/execution.d.ts +65 -0
- package/dist/session/execution.js +34 -0
- package/dist/session/index.d.ts +9 -4
- package/dist/session/index.js +4 -1
- package/dist/session/reference.d.ts +40 -12
- package/dist/session/reference.js +56 -14
- package/dist/session/routing/auth.d.ts +10 -1
- package/dist/session/routing/auth.js +8 -2
- package/dist/session/routing/cache.d.ts +27 -8
- package/dist/session/routing/cache.js +218 -25
- package/dist/session/routing/dispatch.d.ts +15 -8
- package/dist/session/routing/dispatch.js +121 -48
- package/dist/session/routing/envelope.d.ts +2 -1
- package/dist/session/routing/envelope.js +14 -10
- package/dist/session/routing/index.d.ts +3 -5
- package/dist/session/routing/index.js +2 -3
- package/dist/session/routing/request.d.ts +9 -1
- package/dist/session/routing/request.js +17 -1
- package/dist/session/session.d.ts +41 -8
- package/dist/session/session.js +129 -41
- package/dist/session/session.typecheck.d.ts +0 -1
- package/dist/session/session.typecheck.js +172 -3
- package/dist/session/views/catalog.d.ts +0 -1
- package/dist/session/views/catalog.js +14 -5
- package/dist/session/views/index.d.ts +0 -1
- package/dist/session/views/index.js +0 -1
- package/dist/session/views/resolve.d.ts +0 -1
- package/dist/session/views/resolve.js +0 -1
- package/dist/store/entity-index.d.ts +0 -1
- package/dist/store/entity-index.js +0 -1
- package/dist/store/index.d.ts +0 -1
- package/dist/store/index.js +0 -1
- package/dist/store/memory.d.ts +2 -2
- package/dist/store/memory.js +38 -15
- package/dist/store/mutation.d.ts +1 -2
- package/dist/store/mutation.js +6 -4
- package/dist/store/observe.d.ts +0 -1
- package/dist/store/observe.js +0 -1
- package/dist/store/optimistic.d.ts +0 -1
- package/dist/store/optimistic.js +0 -1
- package/dist/store/query-key.d.ts +2 -2
- package/dist/store/query-key.js +7 -3
- package/dist/store/shape.d.ts +4 -2
- package/dist/store/shape.js +4 -2
- package/dist/store/store.d.ts +2 -4
- package/dist/store/store.js +6 -5
- package/dist/store/store.typecheck.d.ts +0 -1
- package/dist/store/store.typecheck.js +3 -9
- package/dist/transport/auto/decision.d.ts +0 -1
- package/dist/transport/auto/decision.js +0 -1
- package/dist/transport/auto/fallback.d.ts +2 -2
- package/dist/transport/auto/fallback.js +10 -11
- package/dist/transport/auto/index.d.ts +0 -1
- package/dist/transport/auto/index.js +0 -1
- package/dist/transport/auto/transport.d.ts +0 -1
- package/dist/transport/auto/transport.js +5 -6
- package/dist/transport/auto/warning.d.ts +0 -1
- package/dist/transport/auto/warning.js +5 -3
- package/dist/transport/deadline.d.ts +0 -1
- package/dist/transport/deadline.js +0 -1
- package/dist/transport/failure.d.ts +7 -0
- package/dist/transport/failure.js +9 -0
- package/dist/transport/http/byte-stream.d.ts +18 -0
- package/dist/transport/http/byte-stream.js +94 -0
- package/dist/transport/http/index.d.ts +0 -1
- package/dist/transport/http/index.js +0 -1
- package/dist/transport/http/response.d.ts +0 -1
- package/dist/transport/http/response.js +0 -1
- package/dist/transport/http/stream.d.ts +0 -1
- package/dist/transport/http/stream.js +7 -7
- package/dist/transport/http/transport.d.ts +3 -1
- package/dist/transport/http/transport.js +87 -30
- package/dist/transport/index.d.ts +0 -1
- package/dist/transport/index.js +0 -1
- package/dist/transport/transport.d.ts +0 -1
- package/dist/transport/transport.js +0 -1
- package/dist/transport/websocket/connection.d.ts +0 -1
- package/dist/transport/websocket/connection.js +16 -26
- package/dist/transport/websocket/exchange.d.ts +0 -1
- package/dist/transport/websocket/exchange.js +5 -9
- package/dist/transport/websocket/index.d.ts +0 -1
- package/dist/transport/websocket/index.js +0 -1
- package/dist/transport/websocket/transport.d.ts +0 -1
- package/dist/transport/websocket/transport.js +7 -20
- package/package.json +12 -14
- package/dist/auth/auth.d.ts.map +0 -1
- package/dist/auth/auth.js.map +0 -1
- package/dist/auth/authorization.d.ts.map +0 -1
- package/dist/auth/authorization.js.map +0 -1
- package/dist/auth/credential.d.ts.map +0 -1
- package/dist/auth/credential.js.map +0 -1
- package/dist/auth/identity.d.ts.map +0 -1
- package/dist/auth/identity.js.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/auth/index.js.map +0 -1
- package/dist/auth/provision.d.ts +0 -9
- package/dist/auth/provision.d.ts.map +0 -1
- package/dist/auth/provision.js +0 -11
- package/dist/auth/provision.js.map +0 -1
- package/dist/client/admission.d.ts.map +0 -1
- package/dist/client/admission.js.map +0 -1
- package/dist/client/client.d.ts.map +0 -1
- package/dist/client/client.js.map +0 -1
- package/dist/client/credential.d.ts.map +0 -1
- package/dist/client/credential.js.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/request.d.ts.map +0 -1
- package/dist/client/request.js.map +0 -1
- package/dist/client/result.d.ts.map +0 -1
- package/dist/client/result.js.map +0 -1
- package/dist/client/routing-control.d.ts.map +0 -1
- package/dist/client/routing-control.js.map +0 -1
- package/dist/errors/client-error.d.ts.map +0 -1
- package/dist/errors/client-error.js.map +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/miss-error.d.ts.map +0 -1
- package/dist/errors/miss-error.js.map +0 -1
- package/dist/errors/protocol-error.d.ts.map +0 -1
- package/dist/errors/protocol-error.js.map +0 -1
- package/dist/errors/response-error.d.ts.map +0 -1
- package/dist/errors/response-error.js.map +0 -1
- package/dist/errors/stale-route-error.d.ts.map +0 -1
- package/dist/errors/stale-route-error.js.map +0 -1
- package/dist/errors/transport-error.d.ts.map +0 -1
- package/dist/errors/transport-error.js.map +0 -1
- package/dist/graph/errors.d.ts.map +0 -1
- package/dist/graph/errors.js.map +0 -1
- package/dist/graph/graph.d.ts.map +0 -1
- package/dist/graph/graph.js.map +0 -1
- package/dist/graph/index.d.ts.map +0 -1
- package/dist/graph/index.js.map +0 -1
- package/dist/graph/mutation.d.ts.map +0 -1
- package/dist/graph/mutation.js.map +0 -1
- package/dist/graph/page/index.d.ts.map +0 -1
- package/dist/graph/page/index.js.map +0 -1
- package/dist/graph/page/neighbors.d.ts.map +0 -1
- package/dist/graph/page/neighbors.js.map +0 -1
- package/dist/graph/page/page.d.ts.map +0 -1
- package/dist/graph/page/page.js.map +0 -1
- package/dist/graph/page-contract.d.ts.map +0 -1
- package/dist/graph/page-contract.js.map +0 -1
- package/dist/graph/query.d.ts.map +0 -1
- package/dist/graph/query.js.map +0 -1
- package/dist/graph/read.d.ts.map +0 -1
- package/dist/graph/read.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/pacer/batcher/batcher.d.ts.map +0 -1
- package/dist/pacer/batcher/batcher.js.map +0 -1
- package/dist/pacer/batcher/defaults.d.ts.map +0 -1
- package/dist/pacer/batcher/defaults.js.map +0 -1
- package/dist/pacer/batcher/index.d.ts.map +0 -1
- package/dist/pacer/batcher/index.js.map +0 -1
- package/dist/pacer/index.d.ts.map +0 -1
- package/dist/pacer/index.js.map +0 -1
- package/dist/pacer/limiter/defaults.d.ts.map +0 -1
- package/dist/pacer/limiter/defaults.js.map +0 -1
- package/dist/pacer/limiter/index.d.ts.map +0 -1
- package/dist/pacer/limiter/index.js.map +0 -1
- package/dist/pacer/limiter/limiter.d.ts.map +0 -1
- package/dist/pacer/limiter/limiter.js.map +0 -1
- package/dist/pacer/queue/defaults.d.ts.map +0 -1
- package/dist/pacer/queue/defaults.js.map +0 -1
- package/dist/pacer/queue/index.d.ts.map +0 -1
- package/dist/pacer/queue/index.js.map +0 -1
- package/dist/pacer/queue/queue.d.ts.map +0 -1
- package/dist/pacer/queue/queue.js.map +0 -1
- package/dist/pacer/retry/defaults.d.ts.map +0 -1
- package/dist/pacer/retry/defaults.js.map +0 -1
- package/dist/pacer/retry/index.d.ts.map +0 -1
- package/dist/pacer/retry/index.js.map +0 -1
- package/dist/pacer/retry/retry.d.ts.map +0 -1
- package/dist/pacer/retry/retry.js.map +0 -1
- package/dist/pool/index.d.ts.map +0 -1
- package/dist/pool/index.js.map +0 -1
- package/dist/pool/pool.d.ts.map +0 -1
- package/dist/pool/pool.js.map +0 -1
- package/dist/pool/target.d.ts.map +0 -1
- package/dist/pool/target.js.map +0 -1
- package/dist/schema/admission.d.ts.map +0 -1
- package/dist/schema/admission.js.map +0 -1
- package/dist/schema/contracts.d.ts.map +0 -1
- package/dist/schema/contracts.js.map +0 -1
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/introspection.d.ts.map +0 -1
- package/dist/schema/introspection.js.map +0 -1
- package/dist/schema/operation.d.ts.map +0 -1
- package/dist/schema/operation.js.map +0 -1
- package/dist/schema/schema.d.ts.map +0 -1
- package/dist/schema/schema.js.map +0 -1
- package/dist/session/context/control.d.ts.map +0 -1
- package/dist/session/context/control.js.map +0 -1
- package/dist/session/context/index.d.ts.map +0 -1
- package/dist/session/context/index.js.map +0 -1
- package/dist/session/context/limits.d.ts.map +0 -1
- package/dist/session/context/limits.js.map +0 -1
- package/dist/session/context/operation.d.ts.map +0 -1
- package/dist/session/context/operation.js.map +0 -1
- package/dist/session/context/policy.d.ts.map +0 -1
- package/dist/session/context/policy.js.map +0 -1
- package/dist/session/discovery/bundle.d.ts.map +0 -1
- package/dist/session/discovery/bundle.js.map +0 -1
- package/dist/session/discovery/discovery.d.ts.map +0 -1
- package/dist/session/discovery/discovery.js.map +0 -1
- package/dist/session/discovery/index.d.ts.map +0 -1
- package/dist/session/discovery/index.js.map +0 -1
- package/dist/session/discovery/publication.d.ts.map +0 -1
- package/dist/session/discovery/publication.js.map +0 -1
- package/dist/session/discovery/snapshot.d.ts.map +0 -1
- package/dist/session/discovery/snapshot.js.map +0 -1
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js.map +0 -1
- package/dist/session/reference.d.ts.map +0 -1
- package/dist/session/reference.js.map +0 -1
- package/dist/session/routing/auth.d.ts.map +0 -1
- package/dist/session/routing/auth.js.map +0 -1
- package/dist/session/routing/cache.d.ts.map +0 -1
- package/dist/session/routing/cache.js.map +0 -1
- package/dist/session/routing/dispatch.d.ts.map +0 -1
- package/dist/session/routing/dispatch.js.map +0 -1
- package/dist/session/routing/envelope.d.ts.map +0 -1
- package/dist/session/routing/envelope.js.map +0 -1
- package/dist/session/routing/expectation.d.ts +0 -7
- package/dist/session/routing/expectation.d.ts.map +0 -1
- package/dist/session/routing/expectation.js +0 -2
- package/dist/session/routing/expectation.js.map +0 -1
- package/dist/session/routing/index.d.ts.map +0 -1
- package/dist/session/routing/index.js.map +0 -1
- package/dist/session/routing/request.d.ts.map +0 -1
- package/dist/session/routing/request.js.map +0 -1
- package/dist/session/session.d.ts.map +0 -1
- package/dist/session/session.js.map +0 -1
- package/dist/session/session.typecheck.d.ts.map +0 -1
- package/dist/session/session.typecheck.js.map +0 -1
- package/dist/session/views/catalog.d.ts.map +0 -1
- package/dist/session/views/catalog.js.map +0 -1
- package/dist/session/views/index.d.ts.map +0 -1
- package/dist/session/views/index.js.map +0 -1
- package/dist/session/views/resolve.d.ts.map +0 -1
- package/dist/session/views/resolve.js.map +0 -1
- package/dist/store/entity-index.d.ts.map +0 -1
- package/dist/store/entity-index.js.map +0 -1
- package/dist/store/index.d.ts.map +0 -1
- package/dist/store/index.js.map +0 -1
- package/dist/store/memory.d.ts.map +0 -1
- package/dist/store/memory.js.map +0 -1
- package/dist/store/mutation.d.ts.map +0 -1
- package/dist/store/mutation.js.map +0 -1
- package/dist/store/observe.d.ts.map +0 -1
- package/dist/store/observe.js.map +0 -1
- package/dist/store/optimistic.d.ts.map +0 -1
- package/dist/store/optimistic.js.map +0 -1
- package/dist/store/query-key.d.ts.map +0 -1
- package/dist/store/query-key.js.map +0 -1
- package/dist/store/shape.d.ts.map +0 -1
- package/dist/store/shape.js.map +0 -1
- package/dist/store/store.d.ts.map +0 -1
- package/dist/store/store.js.map +0 -1
- package/dist/store/store.typecheck.d.ts.map +0 -1
- package/dist/store/store.typecheck.js.map +0 -1
- package/dist/transport/auto/decision.d.ts.map +0 -1
- package/dist/transport/auto/decision.js.map +0 -1
- package/dist/transport/auto/fallback.d.ts.map +0 -1
- package/dist/transport/auto/fallback.js.map +0 -1
- package/dist/transport/auto/index.d.ts.map +0 -1
- package/dist/transport/auto/index.js.map +0 -1
- package/dist/transport/auto/transport.d.ts.map +0 -1
- package/dist/transport/auto/transport.js.map +0 -1
- package/dist/transport/auto/warning.d.ts.map +0 -1
- package/dist/transport/auto/warning.js.map +0 -1
- package/dist/transport/deadline.d.ts.map +0 -1
- package/dist/transport/deadline.js.map +0 -1
- package/dist/transport/http/index.d.ts.map +0 -1
- package/dist/transport/http/index.js.map +0 -1
- package/dist/transport/http/response.d.ts.map +0 -1
- package/dist/transport/http/response.js.map +0 -1
- package/dist/transport/http/stream.d.ts.map +0 -1
- package/dist/transport/http/stream.js.map +0 -1
- package/dist/transport/http/transport.d.ts.map +0 -1
- package/dist/transport/http/transport.js.map +0 -1
- package/dist/transport/index.d.ts.map +0 -1
- package/dist/transport/index.js.map +0 -1
- package/dist/transport/transport.d.ts.map +0 -1
- package/dist/transport/transport.js.map +0 -1
- package/dist/transport/websocket/connection.d.ts.map +0 -1
- package/dist/transport/websocket/connection.js.map +0 -1
- package/dist/transport/websocket/exchange.d.ts.map +0 -1
- package/dist/transport/websocket/exchange.js.map +0 -1
- package/dist/transport/websocket/index.d.ts.map +0 -1
- package/dist/transport/websocket/index.js.map +0 -1
- package/dist/transport/websocket/transport.d.ts.map +0 -1
- package/dist/transport/websocket/transport.js.map +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { NodeId } from '@astrale-os/kernel-core/graph/node';
|
|
2
|
+
import type { Value } from '@astrale-os/kernel-dsl/value';
|
|
3
|
+
import type { CallableReference } from './reference.js';
|
|
4
|
+
declare const EXECUTION_OUTPUT: unique symbol;
|
|
5
|
+
/**
|
|
6
|
+
* Immediate value of a durable call: the `K.Execution` it created or recovered. `Output` is the
|
|
7
|
+
* handler output of the called declaration, carried only by the type.
|
|
8
|
+
*/
|
|
9
|
+
export interface ExecutionRef<Output = unknown> {
|
|
10
|
+
readonly id: NodeId;
|
|
11
|
+
readonly [EXECUTION_OUTPUT]?: Output;
|
|
12
|
+
}
|
|
13
|
+
export type ExecutionOutcome<Output = unknown> = {
|
|
14
|
+
readonly kind: 'completed';
|
|
15
|
+
readonly value: Output;
|
|
16
|
+
} | {
|
|
17
|
+
readonly kind: 'failed';
|
|
18
|
+
readonly error: {
|
|
19
|
+
readonly code: string;
|
|
20
|
+
readonly message: string;
|
|
21
|
+
readonly family?: string;
|
|
22
|
+
readonly details?: Value;
|
|
23
|
+
};
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: 'cancelled';
|
|
26
|
+
};
|
|
27
|
+
export type ExecutionState = 'pending' | 'running' | 'waiting' | 'paused' | 'completed' | 'failed' | 'cancelled' | 'expired';
|
|
28
|
+
export interface ExecutionStatus<Output = unknown> {
|
|
29
|
+
readonly id: NodeId;
|
|
30
|
+
readonly function: NodeId;
|
|
31
|
+
readonly version: `sha256:${string}`;
|
|
32
|
+
readonly state: ExecutionState;
|
|
33
|
+
readonly createdAt: string;
|
|
34
|
+
readonly outcome?: ExecutionOutcome<Output>;
|
|
35
|
+
}
|
|
36
|
+
type Empty = Readonly<Record<string, never>>;
|
|
37
|
+
type ExecutionLike<Output> = ExecutionRef<Output> | NodeId;
|
|
38
|
+
/**
|
|
39
|
+
* Typed references to the methods of one Execution, for `session.invoke`:
|
|
40
|
+
*
|
|
41
|
+
* ```ts
|
|
42
|
+
* const run = await session.invoke(remind(invoice), { days: 3 })
|
|
43
|
+
* const outcome = await session.invoke(execution.result(run), { waitMs: 10_000 })
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare const execution: Readonly<{
|
|
47
|
+
status: <Output>(target: ExecutionLike<Output>) => CallableReference<Empty, ExecutionStatus<Output>>;
|
|
48
|
+
/** Outcome once terminal; fails `EXECUTION_PENDING` when `waitMs` elapses first. */
|
|
49
|
+
result: <Output>(target: ExecutionLike<Output>) => CallableReference<{
|
|
50
|
+
readonly waitMs?: number;
|
|
51
|
+
}, ExecutionOutcome<Output>>;
|
|
52
|
+
/** Cooperative cancellation; `force` kills without compensation (owner Domain only). */
|
|
53
|
+
cancel: <Output>(target: ExecutionLike<Output>) => CallableReference<{
|
|
54
|
+
readonly force?: boolean;
|
|
55
|
+
}, ExecutionStatus<Output>>;
|
|
56
|
+
/** Resolve a named durable promise once (owner Domain only). */
|
|
57
|
+
signal: (target: ExecutionLike<unknown>) => CallableReference<{
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly value: Value;
|
|
60
|
+
}, Empty>;
|
|
61
|
+
resume: <Output>(target: ExecutionLike<Output>) => CallableReference<Empty, ExecutionStatus<Output>>;
|
|
62
|
+
/** Forget the Execution and stop its run (owner Domain only). */
|
|
63
|
+
delete: (target: ExecutionLike<unknown>) => CallableReference<Empty, Empty>;
|
|
64
|
+
}>;
|
|
65
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/kernel-core/path';
|
|
2
|
+
import { execution as methods } from '@astrale-os/kernel-core/schema/kernel/syscalls/references';
|
|
3
|
+
import { kernelReference } from './reference.js';
|
|
4
|
+
const bound = {
|
|
5
|
+
status: kernelReference(methods.status),
|
|
6
|
+
result: kernelReference(methods.result),
|
|
7
|
+
cancel: kernelReference(methods.cancel),
|
|
8
|
+
signal: kernelReference(methods.signal),
|
|
9
|
+
resume: kernelReference(methods.resume),
|
|
10
|
+
delete: kernelReference(methods.delete),
|
|
11
|
+
};
|
|
12
|
+
function receiver(execution) {
|
|
13
|
+
return Path.id(typeof execution === 'string' ? execution : execution.id);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Typed references to the methods of one Execution, for `session.invoke`:
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* const run = await session.invoke(remind(invoice), { days: 3 })
|
|
20
|
+
* const outcome = await session.invoke(execution.result(run), { waitMs: 10_000 })
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export const execution = Object.freeze({
|
|
24
|
+
status: (target) => bound.status(receiver(target)),
|
|
25
|
+
/** Outcome once terminal; fails `EXECUTION_PENDING` when `waitMs` elapses first. */
|
|
26
|
+
result: (target) => bound.result(receiver(target)),
|
|
27
|
+
/** Cooperative cancellation; `force` kills without compensation (owner Domain only). */
|
|
28
|
+
cancel: (target) => bound.cancel(receiver(target)),
|
|
29
|
+
/** Resolve a named durable promise once (owner Domain only). */
|
|
30
|
+
signal: (target) => bound.signal(receiver(target)),
|
|
31
|
+
resume: (target) => bound.resume(receiver(target)),
|
|
32
|
+
/** Forget the Execution and stop its run (owner Domain only). */
|
|
33
|
+
delete: (target) => bound.delete(receiver(target)),
|
|
34
|
+
});
|
package/dist/session/index.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
export type { SessionControlOptions, SessionPolicy } from './context/index.js';
|
|
2
|
-
export type {
|
|
2
|
+
export type { ContentApi, ContentLocation, ContentUploadOptions, ContentUploadResult, } from './content.js';
|
|
3
|
+
export { bindSession, type BoundClientSession, type BoundSessionControls, type BoundSessionSource, } from './bound.js';
|
|
4
|
+
export { createSessionCredentialProvider, type SessionCredential, type SessionCredentialProvider, type SessionCredentialProviderOptions, type SessionCredentialState, } from './credential/index.js';
|
|
3
5
|
export type { SessionSnapshot } from './discovery/index.js';
|
|
4
|
-
export type {
|
|
6
|
+
export type { SessionExchangeOptions, SessionExchangeRequest } from './exchange/index.js';
|
|
7
|
+
export type { Auth, PersistedRoute, SessionRouteArtifact, SessionRouteStore, SessionAuth, SessionEnvelopeTransport, SessionRequestOptions, SessionRequestOptionsWithBody, } from './routing/index.js';
|
|
5
8
|
export { ClientSession, connect, type ClientSessionOptions, type ConnectOptions, } from './session.js';
|
|
6
|
-
export type { CallableReference, InputOfReference, InstanceCallableReference, OutputOfReference, } from './reference.js';
|
|
9
|
+
export type { CallableReference, InputOfReference, InputModeOfReference, InstanceCallableReference, OutputOfReference, } from './reference.js';
|
|
10
|
+
export { reference } from './reference.js';
|
|
11
|
+
export { execution, type ExecutionOutcome, type ExecutionRef, type ExecutionState, type ExecutionStatus, } from './execution.js';
|
|
7
12
|
export type { ResolvedView, ViewCatalog } from './views/index.js';
|
|
8
|
-
|
|
13
|
+
export type { DomainBinding } from '../graph/domain/index.js';
|
package/dist/session/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
export { bindSession, } from './bound.js';
|
|
2
|
+
export { createSessionCredentialProvider, } from './credential/index.js';
|
|
1
3
|
export { ClientSession, connect, } from './session.js';
|
|
2
|
-
|
|
4
|
+
export { reference } from './reference.js';
|
|
5
|
+
export { execution, } from './execution.js';
|
|
@@ -1,27 +1,55 @@
|
|
|
1
1
|
import type { Path as PathValue, PathLike } from '@astrale-os/kernel-core/path';
|
|
2
|
-
import type {
|
|
2
|
+
import type { CallableInputOf, CallableInputModeOf, CallableOutputOf, CallableResultOf, Domain, ResolvedFunction, ExecutableMethod } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import type { MethodAddress, Revision } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
4
|
+
import type { MeaningFingerprint } from '@astrale-os/kernel-dsl/v1/schema/fingerprint';
|
|
3
5
|
import { type Key as KeyType } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
4
|
-
import type {
|
|
6
|
+
import type { Binary, Input } from '../client/index.js';
|
|
7
|
+
import type { ExecutionRef } from './execution.js';
|
|
5
8
|
declare const REFERENCE_INPUT: unique symbol;
|
|
9
|
+
declare const REFERENCE_INPUT_MODE: unique symbol;
|
|
6
10
|
declare const REFERENCE_OUTPUT: unique symbol;
|
|
7
|
-
export interface CallableReference<InputValue
|
|
11
|
+
export interface CallableReference<InputValue = Input, Output = unknown, InputMode extends 'value' | 'binary' = 'value' | 'binary'> {
|
|
8
12
|
readonly origin: KeyType.Origin;
|
|
9
|
-
|
|
13
|
+
/** @deprecated Informational only; dispatch pins `fingerprint` and revision pinning will be removed. */
|
|
14
|
+
readonly revision?: Revision;
|
|
15
|
+
/** Meaning fingerprint of the callable; a generated reference always carries one. */
|
|
16
|
+
readonly fingerprint?: MeaningFingerprint;
|
|
10
17
|
readonly callable: KeyType.Callable;
|
|
11
18
|
readonly target: PathValue;
|
|
12
|
-
readonly outputMode:
|
|
19
|
+
readonly outputMode: 'value' | 'stream' | 'binary';
|
|
13
20
|
readonly [REFERENCE_INPUT]?: InputValue;
|
|
21
|
+
readonly [REFERENCE_INPUT_MODE]?: InputMode;
|
|
14
22
|
readonly [REFERENCE_OUTPUT]?: Output;
|
|
15
23
|
}
|
|
16
|
-
export interface InstanceCallableReference<InputValue
|
|
24
|
+
export interface InstanceCallableReference<InputValue = Input, Output = unknown> {
|
|
17
25
|
(receiver: PathLike): CallableReference<InputValue, Output>;
|
|
18
26
|
readonly origin: KeyType.Origin;
|
|
19
|
-
readonly revision
|
|
27
|
+
readonly revision?: Revision;
|
|
28
|
+
readonly fingerprint?: MeaningFingerprint;
|
|
20
29
|
readonly callable: KeyType.Callable;
|
|
21
|
-
readonly outputMode:
|
|
30
|
+
readonly outputMode: 'value' | 'stream' | 'binary';
|
|
22
31
|
}
|
|
23
|
-
export type InputOfReference<Reference extends CallableReference
|
|
24
|
-
export type OutputOfReference<Reference extends CallableReference
|
|
25
|
-
export
|
|
32
|
+
export type InputOfReference<Reference extends CallableReference<unknown>> = Reference extends CallableReference<infer InputValue, unknown> ? InputValue : never;
|
|
33
|
+
export type OutputOfReference<Reference extends CallableReference<unknown>> = Reference extends CallableReference<infer _Input, infer Output> ? Output : never;
|
|
34
|
+
export type InputModeOfReference<Reference extends CallableReference<unknown>> = Reference extends CallableReference<infer _Input, infer _Output, infer Mode> ? Mode : never;
|
|
35
|
+
type ReferenceInput<Callable> = unknown extends CallableInputOf<Callable> ? Input : CallableInputOf<Callable>;
|
|
36
|
+
type HandlerOutput<Callable> = unknown extends CallableOutputOf<Callable> ? unknown : CallableResultOf<Callable, Binary>;
|
|
37
|
+
type ReferenceOutput<Callable> = Callable extends {
|
|
38
|
+
readonly execution: {
|
|
39
|
+
readonly durable: true;
|
|
40
|
+
};
|
|
41
|
+
} ? ExecutionRef<HandlerOutput<Callable>> : HandlerOutput<Callable>;
|
|
42
|
+
type ExecutableStaticMethod = ExecutableMethod<unknown, unknown, true>;
|
|
43
|
+
type ExecutableInstanceMethod = ExecutableMethod<unknown, unknown, false>;
|
|
44
|
+
/** Project one exact resolved Function or static Method into a typed Client reference. */
|
|
45
|
+
export declare function reference<const Callable extends ResolvedFunction | ExecutableStaticMethod>(domain: Pick<Domain, 'origin' | 'revision'>, callable: Callable): CallableReference<ReferenceInput<Callable>, ReferenceOutput<Callable>, CallableInputModeOf<Callable>>;
|
|
46
|
+
/** Project one exact resolved instance Method into a receiver-bound typed Client reference. */
|
|
47
|
+
export declare function reference<const Callable extends ExecutableInstanceMethod>(domain: Pick<Domain, 'origin' | 'revision'>, callable: Callable): InstanceCallableReference<ReferenceInput<Callable>, ReferenceOutput<Callable>>;
|
|
48
|
+
/**
|
|
49
|
+
* Reference a Kernel instance Method by its Core coordinate, without a meaning pin, as the Session
|
|
50
|
+
* addresses every Kernel syscall. Loading the Session therefore never resolves the Kernel Schema.
|
|
51
|
+
*/
|
|
52
|
+
export declare function kernelReference(method: MethodAddress): InstanceCallableReference<unknown>;
|
|
53
|
+
export declare function admitReference(input: CallableReference<unknown>): CallableReference<unknown>;
|
|
54
|
+
export declare function matchesCallable(target: PathValue, callable: KeyType.Callable): boolean;
|
|
26
55
|
export {};
|
|
27
|
-
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -1,44 +1,87 @@
|
|
|
1
1
|
import { Path } from '@astrale-os/kernel-core/path';
|
|
2
|
-
import { Key, patterns,
|
|
2
|
+
import { callableAddress, Key, MethodKey, patterns, } from '@astrale-os/kernel-dsl/v1/addressing';
|
|
3
|
+
import { callableFingerprint } from '@astrale-os/kernel-dsl/v1/schema/fingerprint';
|
|
4
|
+
const FINGERPRINT_PATTERN = /^sha256:[0-9a-f]{64}$/u;
|
|
5
|
+
export function reference(domain, callable) {
|
|
6
|
+
if (Key.origin(callable.key) !== domain.origin)
|
|
7
|
+
invalid();
|
|
8
|
+
if ('owner' in callable && !callable.executable)
|
|
9
|
+
invalid();
|
|
10
|
+
const common = Object.freeze({
|
|
11
|
+
origin: domain.origin,
|
|
12
|
+
revision: domain.revision,
|
|
13
|
+
fingerprint: callableFingerprint(callable),
|
|
14
|
+
callable: callable.key,
|
|
15
|
+
outputMode: callable.output.mode,
|
|
16
|
+
});
|
|
17
|
+
if ('owner' in callable && !callable.static) {
|
|
18
|
+
const bind = (receiver) => admitReference({
|
|
19
|
+
...common,
|
|
20
|
+
target: Path.instanceMethod(Path.from(receiver), callable.key),
|
|
21
|
+
});
|
|
22
|
+
return Object.assign(bind, common);
|
|
23
|
+
}
|
|
24
|
+
const target = 'owner' in callable
|
|
25
|
+
? Path.staticMethod(Path.project(callable.owner.ref), callable.name)
|
|
26
|
+
: Path.project(callable.ref);
|
|
27
|
+
return admitReference({ ...common, target });
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reference a Kernel instance Method by its Core coordinate, without a meaning pin, as the Session
|
|
31
|
+
* addresses every Kernel syscall. Loading the Session therefore never resolves the Kernel Schema.
|
|
32
|
+
*/
|
|
33
|
+
export function kernelReference(method) {
|
|
34
|
+
const callable = MethodKey.of(method.owner, method.name);
|
|
35
|
+
const common = Object.freeze({
|
|
36
|
+
origin: Key.origin(callable),
|
|
37
|
+
callable,
|
|
38
|
+
outputMode: 'value',
|
|
39
|
+
});
|
|
40
|
+
const bind = (receiver) => admitReference({ ...common, target: Path.instanceMethod(Path.from(receiver), callable) });
|
|
41
|
+
return Object.assign(bind, common);
|
|
42
|
+
}
|
|
3
43
|
export function admitReference(input) {
|
|
4
44
|
if (input === null || typeof input !== 'object')
|
|
5
45
|
invalid();
|
|
6
46
|
if (typeof input.origin !== 'string' ||
|
|
7
47
|
!patterns.origin.test(input.origin) ||
|
|
8
|
-
|
|
9
|
-
|
|
48
|
+
(input.revision !== undefined &&
|
|
49
|
+
(typeof input.revision !== 'string' || !patterns.revision.test(input.revision))) ||
|
|
10
50
|
typeof input.callable !== 'string' ||
|
|
11
51
|
!Key.is(input.callable) ||
|
|
12
52
|
Key.origin(input.callable) !== input.origin ||
|
|
13
|
-
!['value', 'stream', 'binary'].includes(input.outputMode)
|
|
53
|
+
!['value', 'stream', 'binary'].includes(input.outputMode) ||
|
|
54
|
+
(input.fingerprint !== undefined &&
|
|
55
|
+
(typeof input.fingerprint !== 'string' || !FINGERPRINT_PATTERN.test(input.fingerprint))))
|
|
14
56
|
invalid();
|
|
15
57
|
const target = Path.from(input.target);
|
|
16
58
|
if (!matchesCallable(target, input.callable))
|
|
17
59
|
invalid();
|
|
18
60
|
return Object.freeze({
|
|
19
61
|
origin: input.origin,
|
|
20
|
-
revision: input.revision,
|
|
62
|
+
...(input.revision === undefined ? {} : { revision: input.revision }),
|
|
63
|
+
...(input.fingerprint === undefined ? {} : { fingerprint: input.fingerprint }),
|
|
21
64
|
callable: input.callable,
|
|
22
65
|
target,
|
|
23
66
|
outputMode: input.outputMode,
|
|
24
67
|
});
|
|
25
68
|
}
|
|
26
|
-
function matchesCallable(target, callable) {
|
|
27
|
-
const
|
|
69
|
+
export function matchesCallable(target, callable) {
|
|
70
|
+
const coordinate = callableAddress(callable);
|
|
28
71
|
const { anchor, steps } = target.ast;
|
|
29
72
|
const last = steps.at(-1);
|
|
30
|
-
if (
|
|
31
|
-
if (last?.kind !== 'method' || last.name !==
|
|
73
|
+
if (coordinate.kind === 'method') {
|
|
74
|
+
if (last?.kind !== 'method' || last.name !== coordinate.name)
|
|
32
75
|
return false;
|
|
33
76
|
if (last.dispatch === 'instance')
|
|
34
|
-
return
|
|
77
|
+
return last.class === Key.of(coordinate.owner);
|
|
35
78
|
const owner = steps.at(-2);
|
|
36
79
|
return (anchor.kind === 'domain' &&
|
|
37
80
|
anchor.origin === Key.origin(callable) &&
|
|
38
81
|
steps.length === 2 &&
|
|
39
82
|
owner?.kind === 'projection' &&
|
|
40
|
-
owner.projection.kind ===
|
|
41
|
-
owner.projection.name ===
|
|
83
|
+
owner.projection.kind === 'class' &&
|
|
84
|
+
owner.projection.name === coordinate.owner.name);
|
|
42
85
|
}
|
|
43
86
|
const projection = steps[0];
|
|
44
87
|
return (anchor.kind === 'domain' &&
|
|
@@ -46,9 +89,8 @@ function matchesCallable(target, callable) {
|
|
|
46
89
|
steps.length === 1 &&
|
|
47
90
|
projection?.kind === 'projection' &&
|
|
48
91
|
projection.projection.kind === 'function' &&
|
|
49
|
-
projection.projection.name ===
|
|
92
|
+
projection.projection.name === coordinate.name);
|
|
50
93
|
}
|
|
51
94
|
function invalid() {
|
|
52
95
|
throw new TypeError('Callable reference is invalid.');
|
|
53
96
|
}
|
|
54
|
-
//# sourceMappingURL=reference.js.map
|
|
@@ -9,11 +9,20 @@ export interface SessionAuth {
|
|
|
9
9
|
/** Default TTL for authenticated Calls whose Auth omits a delegation override. */
|
|
10
10
|
readonly ttlSeconds: number;
|
|
11
11
|
resolve(call: invocation.Call, signal: AbortSignal): Auth | Promise<Auth>;
|
|
12
|
+
/**
|
|
13
|
+
* Replace the source credential now, before `resolve` would. A Session asks for it only when a
|
|
14
|
+
* credential it derives from the current source, such as a Domain exchange, could not cover
|
|
15
|
+
* `ttlSeconds`: a derived credential never outlives its source.
|
|
16
|
+
*/
|
|
17
|
+
refresh?(signal: AbortSignal): PromiseLike<unknown> | void;
|
|
12
18
|
}
|
|
13
19
|
export interface EffectiveAuth {
|
|
14
20
|
readonly credential?: string;
|
|
15
21
|
readonly delegate?: invocation.Delegate;
|
|
16
22
|
}
|
|
23
|
+
/** Replace the resolved source authority of one Call before routing partitions and presents it. */
|
|
24
|
+
export interface AuthExchange {
|
|
25
|
+
resolve(call: invocation.Call, auth: EffectiveAuth, operation: SessionOperation): Promise<EffectiveAuth>;
|
|
26
|
+
}
|
|
17
27
|
export declare function admitSessionAuth(input: SessionAuth | undefined): SessionAuth | undefined;
|
|
18
28
|
export declare function resolveAuth(resolver: SessionAuth | undefined, call: invocation.Call, operation: SessionOperation): Promise<EffectiveAuth>;
|
|
19
|
-
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -10,7 +10,14 @@ export function admitSessionAuth(input) {
|
|
|
10
10
|
if (!Number.isSafeInteger(input.ttlSeconds) || input.ttlSeconds < 1) {
|
|
11
11
|
throw new TypeError('Session auth ttlSeconds must be a positive safe integer.');
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
if (input.refresh !== undefined && typeof input.refresh !== 'function') {
|
|
14
|
+
throw new TypeError('Session auth refresh capability is invalid.');
|
|
15
|
+
}
|
|
16
|
+
return Object.freeze({
|
|
17
|
+
ttlSeconds: input.ttlSeconds,
|
|
18
|
+
resolve: input.resolve.bind(input),
|
|
19
|
+
...(input.refresh === undefined ? {} : { refresh: input.refresh.bind(input) }),
|
|
20
|
+
});
|
|
14
21
|
}
|
|
15
22
|
export async function resolveAuth(resolver, call, operation) {
|
|
16
23
|
if (resolver === undefined)
|
|
@@ -37,4 +44,3 @@ export async function resolveAuth(resolver, call, operation) {
|
|
|
37
44
|
: protocol.acceptDelegate(input.delegate);
|
|
38
45
|
return Object.freeze({ credential, delegate });
|
|
39
46
|
}
|
|
40
|
-
//# sourceMappingURL=auth.js.map
|
|
@@ -1,21 +1,40 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { invocation } from '@astrale-os/kernel-protocol';
|
|
2
2
|
import type { EffectiveAuth } from './auth.js';
|
|
3
|
-
import type { SchemaExpectation } from './expectation.js';
|
|
4
3
|
export interface LearnedRoute {
|
|
5
4
|
readonly route: invocation.Route;
|
|
6
5
|
readonly credential?: string;
|
|
7
6
|
readonly expiresAt: number;
|
|
8
7
|
}
|
|
9
|
-
|
|
8
|
+
export interface PersistedRoute extends LearnedRoute {
|
|
9
|
+
/** HMAC over this entry and its exact authority partition. */
|
|
10
|
+
readonly integrity: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SessionRouteArtifact {
|
|
13
|
+
readonly version: 1;
|
|
14
|
+
readonly entries: Readonly<Record<string, PersistedRoute>>;
|
|
15
|
+
}
|
|
16
|
+
/** Caller-owned persistence for confidential route artifacts. */
|
|
17
|
+
export interface SessionRouteStore {
|
|
18
|
+
read(): unknown;
|
|
19
|
+
write(artifact: SessionRouteArtifact): void;
|
|
20
|
+
}
|
|
21
|
+
/** Confidential warm routing state owned by exactly one ClientSession. */
|
|
10
22
|
export declare class RouteCache {
|
|
11
23
|
private readonly maximumAgeMs;
|
|
12
24
|
private readonly maximumSize;
|
|
13
25
|
private readonly entries;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
26
|
+
private readonly keyTokens;
|
|
27
|
+
private readonly store?;
|
|
28
|
+
constructor(maximumAgeMs: number, maximumSize?: number, store?: SessionRouteStore);
|
|
29
|
+
key(source: string, call: invocation.Call, auth: EffectiveAuth): Promise<string>;
|
|
30
|
+
get(key: string, sourceCredential?: string, now?: number): Promise<LearnedRoute | undefined>;
|
|
31
|
+
learn(key: string, route: invocation.Route, credential: string | undefined, sourceCredential?: string, now?: number): Promise<LearnedRoute>;
|
|
18
32
|
delete(key: string): void;
|
|
33
|
+
/** Clear this Session's memory without deleting caller-owned persistent state. */
|
|
19
34
|
clear(): void;
|
|
35
|
+
private invalidate;
|
|
36
|
+
private reserve;
|
|
37
|
+
private restore;
|
|
38
|
+
private restoreInput;
|
|
39
|
+
private persist;
|
|
20
40
|
}
|
|
21
|
-
//# sourceMappingURL=cache.d.ts.map
|