@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
|
@@ -9,4 +9,3 @@ export type ViewCatalogAdmission = (input: unknown) => ViewCatalog;
|
|
|
9
9
|
* its heterogeneous installed-Publication projection.
|
|
10
10
|
*/
|
|
11
11
|
export declare function resolveViewsFor(invoke: ViewInvoker, admitCatalog: ViewCatalogAdmission, target: PathLike, operation: SessionOperation): Promise<ViewCatalog>;
|
|
12
|
-
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -11,4 +11,3 @@ export async function resolveViewsFor(invoke, admitCatalog, target, operation) {
|
|
|
11
11
|
const targetView = Path.staticMethod(owner, view.resolve.name);
|
|
12
12
|
return admitCatalog(await invoke(call(targetView, { target: path }), operation));
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=resolve.js.map
|
package/dist/store/index.d.ts
CHANGED
package/dist/store/index.js
CHANGED
package/dist/store/memory.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { QueryAST } from '@astrale-os/kernel-core/graph/query';
|
|
2
|
+
import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
|
|
2
3
|
import type { QueryPageRequest } from '../graph/index.js';
|
|
3
4
|
import type { GraphApi } from '../graph/index.js';
|
|
4
5
|
import type { StoreQueryResponse, StoreReadOptions, StoreSnapshot } from './store.js';
|
|
@@ -24,7 +25,7 @@ export declare class GraphMemory {
|
|
|
24
25
|
private readonly pending;
|
|
25
26
|
private active;
|
|
26
27
|
constructor(options: GraphMemoryOptions);
|
|
27
|
-
ensure(key: string, ast: QueryAST, page: QueryPageRequest): QueryShape;
|
|
28
|
+
ensure(key: string, ast: QueryAST, page: QueryPageRequest, expected: readonly DomainDependency[] | undefined): QueryShape;
|
|
28
29
|
get(key: string): QueryShape | undefined;
|
|
29
30
|
read(shape: QueryShape, options: StoreReadOptions): Promise<StoreQueryResponse>;
|
|
30
31
|
snapshot(shape: QueryShape | undefined): StoreSnapshot;
|
|
@@ -46,4 +47,3 @@ export declare class GraphMemory {
|
|
|
46
47
|
private drain;
|
|
47
48
|
private report;
|
|
48
49
|
}
|
|
49
|
-
//# sourceMappingURL=memory.d.ts.map
|
package/dist/store/memory.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { encodeEdgeKey } from '@astrale-os/kernel-core/graph/edge';
|
|
2
2
|
import { ClientError } from '../errors/index.js';
|
|
3
|
+
import { retainDerivedQueryProvenance } from '../graph/provenance.js';
|
|
3
4
|
import { edgeIdentity, EntityIndex } from './entity-index.js';
|
|
4
5
|
import { OptimisticOverlay } from './optimistic.js';
|
|
5
6
|
import { COLD_SNAPSHOT, QueryShape } from './shape.js';
|
|
@@ -13,7 +14,7 @@ export class GraphMemory {
|
|
|
13
14
|
constructor(options) {
|
|
14
15
|
this.options = options;
|
|
15
16
|
}
|
|
16
|
-
ensure(key, ast, page) {
|
|
17
|
+
ensure(key, ast, page, expected) {
|
|
17
18
|
const existing = this.shapes.get(key);
|
|
18
19
|
const now = this.options.now();
|
|
19
20
|
if (existing !== undefined) {
|
|
@@ -26,7 +27,7 @@ export class GraphMemory {
|
|
|
26
27
|
if (this.shapes.size >= this.options.maximumShapes) {
|
|
27
28
|
throw new ClientError('GraphStore shape capacity is exhausted by observed or in-flight queries.');
|
|
28
29
|
}
|
|
29
|
-
const shape = new QueryShape(key, ast, page, now);
|
|
30
|
+
const shape = new QueryShape(key, ast, page, expected, now);
|
|
30
31
|
shape.releasedAt = now;
|
|
31
32
|
this.shapes.set(key, shape);
|
|
32
33
|
return shape;
|
|
@@ -50,10 +51,15 @@ export class GraphMemory {
|
|
|
50
51
|
return observeRead(shape.inflight, options, this.options.lifecycle);
|
|
51
52
|
}
|
|
52
53
|
const prior = shape.response;
|
|
54
|
+
const invalidation = shape.invalidation;
|
|
53
55
|
this.publish(shape, prior === undefined ? 'loading' : this.overlay.hasAny() ? 'optimistic' : 'refreshing');
|
|
54
56
|
const inflight = this.schedule(async () => {
|
|
55
|
-
const result = await this.options.graph.query(shape.ast, queryOptions(shape.page, this.options.lifecycle));
|
|
57
|
+
const result = await this.options.graph.query(shape.ast, queryOptions(shape.page, this.options.lifecycle, shape.expected));
|
|
56
58
|
this.options.requireOpen();
|
|
59
|
+
if (shape.invalidation !== invalidation) {
|
|
60
|
+
this.publish(shape, prior === undefined ? 'cold' : this.overlay.hasAny() ? 'optimistic' : 'stale');
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
57
63
|
const integration = this.entities.integrate(result.result);
|
|
58
64
|
shape.references = integration.references;
|
|
59
65
|
shape.confirmed = result;
|
|
@@ -81,8 +87,14 @@ export class GraphMemory {
|
|
|
81
87
|
throw error;
|
|
82
88
|
})
|
|
83
89
|
.finally(() => {
|
|
84
|
-
if (shape.inflight
|
|
85
|
-
|
|
90
|
+
if (shape.inflight !== inflight)
|
|
91
|
+
return;
|
|
92
|
+
shape.inflight = undefined;
|
|
93
|
+
if (shape.invalidation !== invalidation &&
|
|
94
|
+
shape.observed &&
|
|
95
|
+
!this.options.lifecycle.aborted) {
|
|
96
|
+
void this.read(shape, { page: shape.page }).catch((error) => this.report(error));
|
|
97
|
+
}
|
|
86
98
|
});
|
|
87
99
|
shape.inflight = inflight;
|
|
88
100
|
return observeRead(inflight, options, this.options.lifecycle);
|
|
@@ -104,6 +116,7 @@ export class GraphMemory {
|
|
|
104
116
|
invalidate(shape) {
|
|
105
117
|
this.options.requireOpen();
|
|
106
118
|
for (const candidate of shape === undefined ? this.shapes.values() : [shape]) {
|
|
119
|
+
candidate.invalidation += 1;
|
|
107
120
|
if (candidate.response === undefined)
|
|
108
121
|
continue;
|
|
109
122
|
this.publish(candidate, this.overlay.hasAny() ? 'optimistic' : 'stale');
|
|
@@ -182,10 +195,11 @@ export class GraphMemory {
|
|
|
182
195
|
this.pending.shift()?.reject(error);
|
|
183
196
|
}
|
|
184
197
|
materialize(template, references) {
|
|
185
|
-
|
|
198
|
+
const response = Object.freeze({
|
|
186
199
|
result: this.materializeResult(template.result, references),
|
|
187
200
|
page: template.page,
|
|
188
201
|
});
|
|
202
|
+
return retainDerivedQueryProvenance(template, response);
|
|
189
203
|
}
|
|
190
204
|
materializeResult(template, references) {
|
|
191
205
|
if (template.kind === 'nodes') {
|
|
@@ -196,8 +210,9 @@ export class GraphMemory {
|
|
|
196
210
|
continue;
|
|
197
211
|
}
|
|
198
212
|
const node = this.overlay.node(projection.value.id, this.entities);
|
|
199
|
-
if (node !== undefined)
|
|
200
|
-
nodes.push(Object.freeze({ kind: 'value', value: node }));
|
|
213
|
+
if (node !== undefined) {
|
|
214
|
+
nodes.push(Object.freeze({ kind: 'value', value: materializeNode(node) }));
|
|
215
|
+
}
|
|
201
216
|
}
|
|
202
217
|
return Object.freeze({
|
|
203
218
|
kind: 'nodes',
|
|
@@ -213,7 +228,7 @@ export class GraphMemory {
|
|
|
213
228
|
const value = this.entities.edge(edgeIdentity(item.edge.value));
|
|
214
229
|
return value === undefined
|
|
215
230
|
? undefined
|
|
216
|
-
: Object.freeze({ kind: 'value', value });
|
|
231
|
+
: Object.freeze({ kind: 'value', value: materializeEdge(value) });
|
|
217
232
|
})();
|
|
218
233
|
const source = item.source.kind === 'reference'
|
|
219
234
|
? item.source
|
|
@@ -221,7 +236,7 @@ export class GraphMemory {
|
|
|
221
236
|
const value = this.overlay.node(item.source.value.id, this.entities);
|
|
222
237
|
return value === undefined
|
|
223
238
|
? undefined
|
|
224
|
-
: Object.freeze({ kind: 'value', value });
|
|
239
|
+
: Object.freeze({ kind: 'value', value: materializeNode(value) });
|
|
225
240
|
})();
|
|
226
241
|
const target = item.target.kind === 'reference'
|
|
227
242
|
? item.target
|
|
@@ -229,7 +244,7 @@ export class GraphMemory {
|
|
|
229
244
|
const value = this.overlay.node(item.target.value.id, this.entities);
|
|
230
245
|
return value === undefined
|
|
231
246
|
? undefined
|
|
232
|
-
: Object.freeze({ kind: 'value', value });
|
|
247
|
+
: Object.freeze({ kind: 'value', value: materializeNode(value) });
|
|
233
248
|
})();
|
|
234
249
|
if (edge !== undefined && source !== undefined && target !== undefined) {
|
|
235
250
|
edges.push(Object.freeze({ edge, source, target }));
|
|
@@ -242,11 +257,13 @@ export class GraphMemory {
|
|
|
242
257
|
}
|
|
243
258
|
const nodes = references.nodes
|
|
244
259
|
.map((id) => this.overlay.node(id, this.entities))
|
|
245
|
-
.filter((node) => node !== undefined)
|
|
260
|
+
.filter((node) => node !== undefined)
|
|
261
|
+
.map(materializeNode);
|
|
246
262
|
const visibleNodeIds = new Set(nodes.map(({ id }) => id));
|
|
247
263
|
const edges = references.edges
|
|
248
264
|
.map((key) => this.entities.edge(key))
|
|
249
|
-
.filter((edge) => edge !== undefined && visibleNodeIds.has(edge.source) && visibleNodeIds.has(edge.target))
|
|
265
|
+
.filter((edge) => edge !== undefined && visibleNodeIds.has(edge.source) && visibleNodeIds.has(edge.target))
|
|
266
|
+
.map(materializeEdge);
|
|
250
267
|
const graph = Object.freeze({ nodes: Object.freeze(nodes), edges: Object.freeze(edges) });
|
|
251
268
|
const selection = materializeSelection(template.selection, visibleNodeIds, edges);
|
|
252
269
|
return selection.kind === 'node'
|
|
@@ -297,6 +314,12 @@ export class GraphMemory {
|
|
|
297
314
|
}
|
|
298
315
|
}
|
|
299
316
|
}
|
|
317
|
+
function materializeNode(value) {
|
|
318
|
+
return Object.freeze({ ...value });
|
|
319
|
+
}
|
|
320
|
+
function materializeEdge(value) {
|
|
321
|
+
return Object.freeze({ ...value });
|
|
322
|
+
}
|
|
300
323
|
function materializeSelection(selection, visibleNodes, visibleEdges) {
|
|
301
324
|
if (selection.kind === 'node') {
|
|
302
325
|
return Object.freeze({
|
|
@@ -310,10 +333,11 @@ function materializeSelection(selection, visibleNodes, visibleEdges) {
|
|
|
310
333
|
keys: Object.freeze(selection.keys.filter((key) => edges.has(encodeEdgeKey(key)))),
|
|
311
334
|
});
|
|
312
335
|
}
|
|
313
|
-
function queryOptions(page, lifecycle) {
|
|
336
|
+
function queryOptions(page, lifecycle, expected) {
|
|
314
337
|
return Object.freeze({
|
|
315
338
|
signal: lifecycle,
|
|
316
339
|
page,
|
|
340
|
+
...(expected === undefined ? {} : { expected }),
|
|
317
341
|
});
|
|
318
342
|
}
|
|
319
343
|
function observeRead(pending, options, lifecycle) {
|
|
@@ -394,4 +418,3 @@ function sameSnapshot(left, right) {
|
|
|
394
418
|
}
|
|
395
419
|
return left.state !== 'failed' || right.state !== 'failed' || left.error === right.error;
|
|
396
420
|
}
|
|
397
|
-
//# sourceMappingURL=memory.js.map
|
package/dist/store/mutation.d.ts
CHANGED
|
@@ -2,5 +2,4 @@ import type { MutationAST as MutationASTValue, MutationInput, MutationResult } f
|
|
|
2
2
|
import type { GraphApi, MutationAuthor } from '../graph/index.js';
|
|
3
3
|
import type { GraphMemory } from './memory.js';
|
|
4
4
|
import type { StoreMutationOptions } from './store.js';
|
|
5
|
-
export declare function mutateStore(graph: GraphApi, memory: GraphMemory, input: MutationAuthor | MutationASTValue | MutationInput, options?: StoreMutationOptions): Promise<MutationResult>;
|
|
6
|
-
//# sourceMappingURL=mutation.d.ts.map
|
|
5
|
+
export declare function mutateStore(graph: GraphApi, memory: GraphMemory, lifecycle: AbortSignal, input: MutationAuthor | MutationASTValue | MutationInput, options?: StoreMutationOptions): Promise<MutationResult>;
|
package/dist/store/mutation.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MutationAST } from '@astrale-os/kernel-core/graph/mutate';
|
|
2
|
-
export async function mutateStore(graph, memory, input, options = {}) {
|
|
2
|
+
export async function mutateStore(graph, memory, lifecycle, input, options = {}) {
|
|
3
3
|
if (options === null || typeof options !== 'object') {
|
|
4
4
|
throw new TypeError('Store mutation options are invalid.');
|
|
5
5
|
}
|
|
@@ -11,12 +11,15 @@ export async function mutateStore(graph, memory, input, options = {}) {
|
|
|
11
11
|
: 'format' in input
|
|
12
12
|
? MutationAST.decode(input)
|
|
13
13
|
: MutationAST.create(input);
|
|
14
|
+
const { optimistic: _optimistic, signal: callerSignal, ...request } = options;
|
|
15
|
+
const signal = callerSignal === undefined ? lifecycle : AbortSignal.any([lifecycle, callerSignal]);
|
|
16
|
+
signal.throwIfAborted();
|
|
14
17
|
const transaction = options.optimistic === false ? undefined : memory.overlay.add(ast);
|
|
15
18
|
if (transaction !== undefined)
|
|
16
19
|
memory.optimistic();
|
|
17
|
-
const { optimistic: _optimistic, ...request } = options;
|
|
18
20
|
try {
|
|
19
|
-
|
|
21
|
+
signal.throwIfAborted();
|
|
22
|
+
const result = await graph.mutate(ast, { ...request, signal });
|
|
20
23
|
if (transaction !== undefined) {
|
|
21
24
|
memory.overlay.delete(transaction);
|
|
22
25
|
memory.settleOptimistic();
|
|
@@ -32,4 +35,3 @@ export async function mutateStore(graph, memory, input, options = {}) {
|
|
|
32
35
|
throw error;
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
|
-
//# sourceMappingURL=mutation.js.map
|
package/dist/store/observe.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { StoreQuery, StoreReadOptions, StoreSnapshot } from './store.js';
|
|
2
2
|
import type { GraphStore } from './store.js';
|
|
3
3
|
export declare function observeStore<Query extends StoreQuery>(store: GraphStore, query: Query, listener: (snapshot: StoreSnapshot<Query>) => void, options: StoreReadOptions): () => void;
|
|
4
|
-
//# sourceMappingURL=observe.d.ts.map
|
package/dist/store/observe.js
CHANGED
package/dist/store/optimistic.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { QueryAST as QueryASTValue } from '@astrale-os/kernel-core/graph/query';
|
|
2
|
+
import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
|
|
2
3
|
import type { QueryPageRequest } from '../graph/index.js';
|
|
3
4
|
export declare function admitQuery(input: QueryASTValue): QueryASTValue;
|
|
4
5
|
export declare function admitPage(input: QueryPageRequest): QueryPageRequest;
|
|
5
|
-
export declare function queryKey(ast: QueryASTValue, page: QueryPageRequest): string;
|
|
6
|
-
//# sourceMappingURL=query-key.d.ts.map
|
|
6
|
+
export declare function queryKey(ast: QueryASTValue, page: QueryPageRequest, expected: readonly DomainDependency[] | undefined): string;
|
package/dist/store/query-key.js
CHANGED
|
@@ -17,7 +17,11 @@ export function admitPage(input) {
|
|
|
17
17
|
...(input.after === undefined ? {} : { after: input.after }),
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
export function queryKey(ast, page) {
|
|
21
|
-
return JSON.stringify([
|
|
20
|
+
export function queryKey(ast, page, expected) {
|
|
21
|
+
return JSON.stringify([
|
|
22
|
+
QueryAST.fingerprint(ast),
|
|
23
|
+
page.size,
|
|
24
|
+
page.after ?? null,
|
|
25
|
+
expected ?? null,
|
|
26
|
+
]);
|
|
22
27
|
}
|
|
23
|
-
//# sourceMappingURL=query-key.js.map
|
package/dist/store/shape.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { NodeId } from '@astrale-os/kernel-core/graph/node';
|
|
2
2
|
import type { QueryAST } from '@astrale-os/kernel-core/graph/query';
|
|
3
|
+
import type { DomainDependency } from '@astrale-os/kernel-dsl/v1/schema';
|
|
3
4
|
import type { QueryPageRequest } from '../graph/index.js';
|
|
4
5
|
import type { FactReferences } from './entity-index.js';
|
|
5
6
|
import type { StoreQueryResponse, StoreSnapshot } from './store.js';
|
|
@@ -8,19 +9,20 @@ export declare class QueryShape {
|
|
|
8
9
|
readonly key: string;
|
|
9
10
|
readonly ast: QueryAST;
|
|
10
11
|
readonly page: QueryPageRequest;
|
|
12
|
+
readonly expected: readonly DomainDependency[] | undefined;
|
|
11
13
|
readonly listeners: Set<() => void>;
|
|
12
14
|
state: ShapeState;
|
|
13
15
|
confirmed?: StoreQueryResponse;
|
|
14
16
|
response?: StoreQueryResponse;
|
|
15
17
|
references?: FactReferences;
|
|
16
18
|
inflight?: Promise<StoreQueryResponse>;
|
|
19
|
+
invalidation: number;
|
|
17
20
|
releasedAt?: number;
|
|
18
21
|
accessedAt: number;
|
|
19
22
|
refreshedAt?: number;
|
|
20
23
|
snapshot: StoreSnapshot;
|
|
21
|
-
constructor(key: string, ast: QueryAST, page: QueryPageRequest, now: number);
|
|
24
|
+
constructor(key: string, ast: QueryAST, page: QueryPageRequest, expected: readonly DomainDependency[] | undefined, now: number);
|
|
22
25
|
get observed(): boolean;
|
|
23
26
|
referencesAny(nodes: ReadonlySet<NodeId>, edges: ReadonlySet<string>): boolean;
|
|
24
27
|
}
|
|
25
28
|
export declare const COLD_SNAPSHOT: StoreSnapshot;
|
|
26
|
-
//# sourceMappingURL=shape.d.ts.map
|
package/dist/store/shape.js
CHANGED
|
@@ -2,20 +2,23 @@ export class QueryShape {
|
|
|
2
2
|
key;
|
|
3
3
|
ast;
|
|
4
4
|
page;
|
|
5
|
+
expected;
|
|
5
6
|
listeners = new Set();
|
|
6
7
|
state = 'cold';
|
|
7
8
|
confirmed;
|
|
8
9
|
response;
|
|
9
10
|
references;
|
|
10
11
|
inflight;
|
|
12
|
+
invalidation = 0;
|
|
11
13
|
releasedAt;
|
|
12
14
|
accessedAt;
|
|
13
15
|
refreshedAt;
|
|
14
16
|
snapshot = COLD_SNAPSHOT;
|
|
15
|
-
constructor(key, ast, page, now) {
|
|
17
|
+
constructor(key, ast, page, expected, now) {
|
|
16
18
|
this.key = key;
|
|
17
19
|
this.ast = ast;
|
|
18
20
|
this.page = page;
|
|
21
|
+
this.expected = expected;
|
|
19
22
|
this.accessedAt = now;
|
|
20
23
|
}
|
|
21
24
|
get observed() {
|
|
@@ -27,4 +30,3 @@ export class QueryShape {
|
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
export const COLD_SNAPSHOT = Object.freeze({ state: 'cold' });
|
|
30
|
-
//# sourceMappingURL=shape.js.map
|
package/dist/store/store.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import type { MutationAST, MutationInput, MutationResult } from '@astrale-os/kernel-core/graph/mutate';
|
|
2
2
|
import type { QueryAST, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
|
|
3
3
|
import type { QueryResponse } from '../graph/index.js';
|
|
4
|
-
import type { GraphApi, GraphQueryOptions, MutationAuthor } from '../graph/index.js';
|
|
5
|
-
import type { RequestOptions } from '../transport/index.js';
|
|
4
|
+
import type { GraphApi, GraphMutationOptions, GraphQueryOptions, MutationAuthor } from '../graph/index.js';
|
|
6
5
|
export type StoreQuery = QueryAST;
|
|
7
6
|
export type StoreQueryResponse<Query extends StoreQuery = StoreQuery> = QueryResponse<QueryResultFor<Query>>;
|
|
8
7
|
export interface StoreReadOptions extends GraphQueryOptions {
|
|
9
8
|
readonly freshness?: 'cached' | 'refresh';
|
|
10
9
|
}
|
|
11
|
-
export interface StoreMutationOptions extends
|
|
10
|
+
export interface StoreMutationOptions extends GraphMutationOptions {
|
|
12
11
|
readonly optimistic?: boolean;
|
|
13
12
|
}
|
|
14
13
|
export type StoreSnapshot<Query extends StoreQuery = StoreQuery> = {
|
|
@@ -66,4 +65,3 @@ export declare class GraphStore {
|
|
|
66
65
|
private identity;
|
|
67
66
|
private requireOpen;
|
|
68
67
|
}
|
|
69
|
-
//# sourceMappingURL=store.d.ts.map
|
package/dist/store/store.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ClientError } from '../errors/index.js';
|
|
2
|
+
import { captureExpected } from '../graph/expectation.js';
|
|
2
3
|
import { GraphMemory } from './memory.js';
|
|
3
4
|
import { mutateStore } from './mutation.js';
|
|
4
5
|
import { observeStore } from './observe.js';
|
|
@@ -75,7 +76,7 @@ export class GraphStore {
|
|
|
75
76
|
}
|
|
76
77
|
mutate(input, options) {
|
|
77
78
|
this.requireOpen();
|
|
78
|
-
return mutateStore(this.graph, this.memory, input, options);
|
|
79
|
+
return mutateStore(this.graph, this.memory, this.lifecycle.signal, input, options);
|
|
79
80
|
}
|
|
80
81
|
invalidate(query, options) {
|
|
81
82
|
this.requireOpen();
|
|
@@ -105,7 +106,7 @@ export class GraphStore {
|
|
|
105
106
|
const identity = this.identity(query, options);
|
|
106
107
|
return {
|
|
107
108
|
...identity,
|
|
108
|
-
shape: this.memory.ensure(identity.key, identity.ast, identity.page),
|
|
109
|
+
shape: this.memory.ensure(identity.key, identity.ast, identity.page, identity.expected),
|
|
109
110
|
options: options,
|
|
110
111
|
};
|
|
111
112
|
}
|
|
@@ -121,6 +122,7 @@ export class GraphStore {
|
|
|
121
122
|
throw new TypeError('Store freshness option is invalid.');
|
|
122
123
|
}
|
|
123
124
|
const page = admitPage(options.page);
|
|
125
|
+
const expected = captureExpected(options.expected);
|
|
124
126
|
if (options.timeoutMs !== undefined &&
|
|
125
127
|
(!Number.isSafeInteger(options.timeoutMs) ||
|
|
126
128
|
options.timeoutMs < 1 ||
|
|
@@ -128,8 +130,8 @@ export class GraphStore {
|
|
|
128
130
|
throw new TypeError('Store read timeoutMs must be a positive platform integer.');
|
|
129
131
|
}
|
|
130
132
|
const ast = admitQuery(query);
|
|
131
|
-
const key = queryKey(ast, page);
|
|
132
|
-
return { key, ast, page };
|
|
133
|
+
const key = queryKey(ast, page, expected);
|
|
134
|
+
return { key, ast, page, expected };
|
|
133
135
|
}
|
|
134
136
|
requireOpen() {
|
|
135
137
|
if (this.closed)
|
|
@@ -142,4 +144,3 @@ function positive(input, label) {
|
|
|
142
144
|
}
|
|
143
145
|
return input;
|
|
144
146
|
}
|
|
145
|
-
//# sourceMappingURL=store.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Query } from '../graph/index.js';
|
|
2
2
|
const options = { page: { size: 32 } };
|
|
3
|
-
const nodeGraph = Query.from({
|
|
4
|
-
const nodeProjection = Query.from({
|
|
3
|
+
const nodeGraph = Query.from({ nodes: [path] }).select({ kind: 'graph' });
|
|
4
|
+
const nodeProjection = Query.from({ nodes: [path] }).select({
|
|
5
5
|
kind: 'nodes',
|
|
6
6
|
projection: { kind: 'reference' },
|
|
7
7
|
});
|
|
8
|
-
const edgeSource = Query.from({
|
|
8
|
+
const edgeSource = Query.from({ edges: [edge] });
|
|
9
9
|
const edgeProjection = edgeSource.select({
|
|
10
10
|
kind: 'edges',
|
|
11
11
|
projection: { edge: 'reference', source: 'value', target: 'reference' },
|
|
@@ -13,9 +13,6 @@ const edgeProjection = edgeSource.select({
|
|
|
13
13
|
const read = store.read(nodeGraph, options);
|
|
14
14
|
const peek = store.peek(nodeProjection, options);
|
|
15
15
|
const snapshot = store.getSnapshot(edgeProjection, options);
|
|
16
|
-
// @ts-expect-error ready is the successful local snapshot state; fresh is retired.
|
|
17
|
-
const retiredFreshSnapshot = { state: 'fresh' };
|
|
18
|
-
void retiredFreshSnapshot;
|
|
19
16
|
store.subscribe(nodeGraph, () => undefined, options);
|
|
20
17
|
store.observe(nodeProjection, (value) => {
|
|
21
18
|
if ('response' in value && value.response !== undefined) {
|
|
@@ -35,7 +32,4 @@ store.subscribe(nodeGraph, () => undefined);
|
|
|
35
32
|
store.getSnapshot(nodeGraph);
|
|
36
33
|
// @ts-expect-error Query-page identity is required for observations.
|
|
37
34
|
store.observe(nodeGraph, () => undefined);
|
|
38
|
-
// @ts-expect-error watch is reserved for a future remote-liveness protocol.
|
|
39
|
-
store.watch(nodeGraph, () => undefined, options);
|
|
40
35
|
void {};
|
|
41
|
-
//# sourceMappingURL=store.typecheck.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NodePath } from '@astrale-os/kernel-core/path';
|
|
1
2
|
import type { RequestOptions, TransportRequest } from '../index.js';
|
|
2
3
|
import { TransportError } from '../../errors/index.js';
|
|
3
4
|
/** One invocation-owned total timeout budget shared by selection and fallback. */
|
|
@@ -13,5 +14,4 @@ export declare class InvocationBudget {
|
|
|
13
14
|
private remaining;
|
|
14
15
|
}
|
|
15
16
|
export declare function mayFallback(error: unknown): error is TransportError;
|
|
16
|
-
export declare function warningTarget(input: TransportRequest):
|
|
17
|
-
//# sourceMappingURL=fallback.d.ts.map
|
|
17
|
+
export declare function warningTarget(input: TransportRequest): NodePath;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { targetPath } from '@astrale-os/kernel-core/callable';
|
|
1
2
|
import { TransportError } from '../../errors/index.js';
|
|
3
|
+
import { invocationFailure } from '../failure.js';
|
|
2
4
|
import { positiveInteger } from '../index.js';
|
|
3
5
|
const MAXIMUM_TIMEOUT_MS = 2_147_483_647;
|
|
4
6
|
/** One invocation-owned total timeout budget shared by selection and fallback. */
|
|
@@ -33,10 +35,7 @@ export class InvocationBudget {
|
|
|
33
35
|
let timer;
|
|
34
36
|
let abort;
|
|
35
37
|
const interrupted = new Promise((_resolve, reject) => {
|
|
36
|
-
timer = setTimeout(() => reject(
|
|
37
|
-
phase: 'timeout',
|
|
38
|
-
delivery: 'not-sent',
|
|
39
|
-
})), remaining);
|
|
38
|
+
timer = setTimeout(() => reject(invocationFailure('Automatic transport decision exceeded its timeout.', 'timeout')), remaining);
|
|
40
39
|
if (this.input?.signal) {
|
|
41
40
|
abort = () => reject(abortReason(this.input.signal));
|
|
42
41
|
this.input.signal.addEventListener('abort', abort, { once: true });
|
|
@@ -55,23 +54,23 @@ export class InvocationBudget {
|
|
|
55
54
|
remaining() {
|
|
56
55
|
const remaining = Math.min(MAXIMUM_TIMEOUT_MS, this.timeoutMs - (Date.now() - this.started));
|
|
57
56
|
if (remaining < 1) {
|
|
58
|
-
throw
|
|
59
|
-
phase: 'timeout',
|
|
60
|
-
delivery: 'not-sent',
|
|
61
|
-
});
|
|
57
|
+
throw invocationFailure('Automatic transport invocation exceeded its timeout.', 'timeout');
|
|
62
58
|
}
|
|
63
59
|
return remaining;
|
|
64
60
|
}
|
|
65
61
|
}
|
|
66
62
|
export function mayFallback(error) {
|
|
67
|
-
return error instanceof TransportError &&
|
|
63
|
+
return (error instanceof TransportError &&
|
|
64
|
+
error.context.kind === 'invocation' &&
|
|
65
|
+
error.context.delivery === 'not-sent' &&
|
|
66
|
+
error.phase !== 'closed' &&
|
|
67
|
+
error.phase !== 'timeout');
|
|
68
68
|
}
|
|
69
69
|
export function warningTarget(input) {
|
|
70
|
-
return input.call.target;
|
|
70
|
+
return targetPath(input.call.target);
|
|
71
71
|
}
|
|
72
72
|
function abortReason(signal) {
|
|
73
73
|
return signal.reason instanceof Error
|
|
74
74
|
? signal.reason
|
|
75
75
|
: new Error(signal.reason === undefined ? 'request was cancelled' : String(signal.reason));
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=fallback.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TransportError } from '../../errors/index.js';
|
|
2
|
+
import { invocationFailure } from '../failure.js';
|
|
2
3
|
import { HttpTransport } from '../http/index.js';
|
|
3
4
|
import { positiveInteger } from '../index.js';
|
|
4
5
|
import { WebSocketTransport } from '../websocket/index.js';
|
|
@@ -104,7 +105,9 @@ export class AutoTransport {
|
|
|
104
105
|
this.decision.release();
|
|
105
106
|
throw error;
|
|
106
107
|
}
|
|
107
|
-
if (error instanceof TransportError &&
|
|
108
|
+
if (error instanceof TransportError &&
|
|
109
|
+
error.context.kind === 'invocation' &&
|
|
110
|
+
error.context.delivery === 'unknown') {
|
|
108
111
|
this.decision.demote();
|
|
109
112
|
throw error;
|
|
110
113
|
}
|
|
@@ -132,10 +135,6 @@ export class AutoTransport {
|
|
|
132
135
|
requireOpen() {
|
|
133
136
|
if (!this.closed)
|
|
134
137
|
return;
|
|
135
|
-
throw
|
|
136
|
-
phase: 'closed',
|
|
137
|
-
delivery: 'not-sent',
|
|
138
|
-
});
|
|
138
|
+
throw invocationFailure('AutoTransport is closed.', 'closed');
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
//# sourceMappingURL=transport.js.map
|
|
@@ -11,4 +11,3 @@ export interface ClientWarning {
|
|
|
11
11
|
}
|
|
12
12
|
export declare function formatClientWarning(warning: ClientWarning): string;
|
|
13
13
|
export declare function emitWarning(warning: ClientWarning, observer: ((warning: ClientWarning) => void) | undefined): void;
|
|
14
|
-
//# sourceMappingURL=warning.d.ts.map
|
|
@@ -9,11 +9,13 @@ export function emitWarning(warning, observer) {
|
|
|
9
9
|
try {
|
|
10
10
|
if (observer)
|
|
11
11
|
observer(warning);
|
|
12
|
-
else
|
|
13
|
-
globalThis
|
|
12
|
+
else {
|
|
13
|
+
const runtimeConsole = globalThis
|
|
14
|
+
.console;
|
|
15
|
+
runtimeConsole?.warn(formatClientWarning(warning));
|
|
16
|
+
}
|
|
14
17
|
}
|
|
15
18
|
catch {
|
|
16
19
|
// Warning observation cannot change invocation settlement.
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
|
-
//# sourceMappingURL=warning.js.map
|
|
@@ -9,4 +9,3 @@ export declare function controlledSignal(parent: AbortSignal | undefined, timeou
|
|
|
9
9
|
export declare function positiveInteger(input: number, label: string): number;
|
|
10
10
|
export declare function requireLive(control: ControlledSignal): void;
|
|
11
11
|
export declare function asError(value: unknown): Error;
|
|
12
|
-
//# sourceMappingURL=deadline.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TransportError, type InvocationTransportErrorOptions } from '../errors/index.js';
|
|
2
|
+
type InvocationFailureEvidence = Omit<InvocationTransportErrorOptions, 'delivery' | 'phase'> & {
|
|
3
|
+
readonly delivery?: InvocationTransportErrorOptions['delivery'];
|
|
4
|
+
};
|
|
5
|
+
/** Create invocation transport evidence with the common not-sent default. */
|
|
6
|
+
export declare function invocationFailure(message: string, phase: InvocationTransportErrorOptions['phase'], evidence?: InvocationFailureEvidence): TransportError;
|
|
7
|
+
export {};
|