@astrale-os/kernel-client 0.6.0-beta.1 → 0.6.0-beta.3
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 +1 -1
- package/dist/auth/auth.d.ts.map +1 -1
- package/dist/auth/credential.d.ts +1 -1
- package/dist/auth/credential.d.ts.map +1 -1
- package/dist/auth/credential.js.map +1 -1
- package/dist/auth/identity.js.map +1 -1
- package/dist/auth/provision.js.map +1 -1
- package/dist/client/admission.d.ts.map +1 -1
- package/dist/client/admission.js.map +1 -1
- package/dist/client/client.d.ts +7 -4
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +13 -4
- package/dist/client/client.js.map +1 -1
- package/dist/client/credential.d.ts +4 -4
- package/dist/client/credential.d.ts.map +1 -1
- package/dist/client/credential.js.map +1 -1
- package/dist/client/index.d.ts +2 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/request.d.ts +5 -2
- package/dist/client/request.d.ts.map +1 -1
- package/dist/client/request.js +19 -1
- package/dist/client/request.js.map +1 -1
- package/dist/client/result.d.ts +35 -4
- package/dist/client/result.d.ts.map +1 -1
- package/dist/client/result.js +3 -3
- package/dist/client/result.js.map +1 -1
- package/dist/client/routing-control.d.ts +3 -3
- package/dist/client/routing-control.d.ts.map +1 -1
- package/dist/client/routing-control.js +4 -4
- package/dist/client/routing-control.js.map +1 -1
- package/dist/domain/binding.d.ts +5 -6
- package/dist/domain/binding.d.ts.map +1 -1
- package/dist/domain/binding.js +35 -16
- package/dist/domain/binding.js.map +1 -1
- package/dist/domain/callable.d.ts +7 -5
- package/dist/domain/callable.d.ts.map +1 -1
- package/dist/domain/callable.js +12 -8
- package/dist/domain/callable.js.map +1 -1
- package/dist/domain/domain.typecheck.js +6 -6
- package/dist/domain/domain.typecheck.js.map +1 -1
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +1 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/miss-error.d.ts +3 -1
- package/dist/errors/miss-error.d.ts.map +1 -1
- package/dist/errors/miss-error.js +3 -1
- package/dist/errors/miss-error.js.map +1 -1
- package/dist/errors/protocol-error.d.ts +6 -1
- package/dist/errors/protocol-error.d.ts.map +1 -1
- package/dist/errors/protocol-error.js +2 -0
- package/dist/errors/protocol-error.js.map +1 -1
- package/dist/errors/response-error.d.ts +3 -2
- package/dist/errors/response-error.d.ts.map +1 -1
- package/dist/errors/response-error.js +3 -1
- package/dist/errors/response-error.js.map +1 -1
- package/dist/errors/stale-route-error.d.ts +3 -2
- package/dist/errors/stale-route-error.d.ts.map +1 -1
- package/dist/errors/stale-route-error.js +3 -1
- package/dist/errors/stale-route-error.js.map +1 -1
- package/dist/errors/transport-error.d.ts +3 -0
- package/dist/errors/transport-error.d.ts.map +1 -1
- package/dist/errors/transport-error.js +2 -0
- package/dist/errors/transport-error.js.map +1 -1
- package/dist/graph/graph.d.ts +2 -3
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/index.d.ts +1 -0
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/mutation.js.map +1 -1
- package/dist/graph/page/page.d.ts +1 -1
- package/dist/graph/page/page.d.ts.map +1 -1
- package/dist/graph/page-contract.d.ts +14 -0
- package/dist/graph/page-contract.d.ts.map +1 -0
- package/dist/graph/page-contract.js +2 -0
- package/dist/graph/page-contract.js.map +1 -0
- package/dist/graph/query.d.ts +1 -1
- package/dist/graph/query.d.ts.map +1 -1
- package/dist/graph/query.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/admission.d.ts +10 -0
- package/dist/schema/admission.d.ts.map +1 -0
- package/dist/schema/admission.js +23 -0
- package/dist/schema/admission.js.map +1 -0
- package/dist/schema/contracts.d.ts +22 -0
- package/dist/schema/contracts.d.ts.map +1 -0
- package/dist/schema/contracts.js +2 -0
- package/dist/schema/contracts.js.map +1 -0
- package/dist/schema/index.d.ts +4 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +3 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/introspection.d.ts +6 -0
- package/dist/schema/introspection.d.ts.map +1 -0
- package/dist/schema/introspection.js +16 -0
- package/dist/schema/introspection.js.map +1 -0
- package/dist/schema/operation.d.ts +6 -0
- package/dist/schema/operation.d.ts.map +1 -0
- package/dist/schema/operation.js +10 -0
- package/dist/schema/operation.js.map +1 -0
- package/dist/schema/schema.d.ts +20 -0
- package/dist/schema/schema.d.ts.map +1 -0
- package/dist/schema/schema.js +43 -0
- package/dist/schema/schema.js.map +1 -0
- package/dist/session/context/index.d.ts +1 -1
- package/dist/session/context/index.d.ts.map +1 -1
- package/dist/session/context/index.js +1 -1
- package/dist/session/context/index.js.map +1 -1
- package/dist/session/context/policy.d.ts +3 -1
- package/dist/session/context/policy.d.ts.map +1 -1
- package/dist/session/context/policy.js +12 -5
- package/dist/session/context/policy.js.map +1 -1
- package/dist/session/discovery/bundle.js +6 -6
- package/dist/session/discovery/bundle.js.map +1 -1
- package/dist/session/discovery/discovery.d.ts +3 -10
- package/dist/session/discovery/discovery.d.ts.map +1 -1
- package/dist/session/discovery/discovery.js +6 -19
- package/dist/session/discovery/discovery.js.map +1 -1
- package/dist/session/discovery/index.d.ts +3 -6
- package/dist/session/discovery/index.d.ts.map +1 -1
- package/dist/session/discovery/index.js +2 -1
- package/dist/session/discovery/index.js.map +1 -1
- package/dist/session/discovery/publication.d.ts +7 -5
- package/dist/session/discovery/publication.d.ts.map +1 -1
- package/dist/session/discovery/publication.js +19 -21
- package/dist/session/discovery/publication.js.map +1 -1
- package/dist/session/discovery/snapshot.d.ts +3 -2
- package/dist/session/discovery/snapshot.d.ts.map +1 -1
- package/dist/session/discovery/snapshot.js +2 -2
- package/dist/session/discovery/snapshot.js.map +1 -1
- package/dist/session/index.d.ts +3 -2
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +1 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/routing/auth.d.ts.map +1 -1
- package/dist/session/routing/auth.js +1 -4
- package/dist/session/routing/auth.js.map +1 -1
- package/dist/session/routing/bound.d.ts +7 -0
- package/dist/session/routing/bound.d.ts.map +1 -0
- package/dist/session/routing/bound.js +2 -0
- package/dist/session/routing/bound.js.map +1 -0
- package/dist/session/routing/cache.d.ts +2 -1
- package/dist/session/routing/cache.d.ts.map +1 -1
- package/dist/session/routing/cache.js +20 -3
- package/dist/session/routing/cache.js.map +1 -1
- package/dist/session/routing/dispatch.d.ts +5 -5
- package/dist/session/routing/dispatch.d.ts.map +1 -1
- package/dist/session/routing/dispatch.js +57 -17
- package/dist/session/routing/dispatch.js.map +1 -1
- package/dist/session/routing/index.d.ts +1 -0
- package/dist/session/routing/index.d.ts.map +1 -1
- package/dist/session/routing/index.js.map +1 -1
- package/dist/session/session.d.ts +19 -14
- package/dist/session/session.d.ts.map +1 -1
- package/dist/session/session.js +51 -9
- package/dist/session/session.js.map +1 -1
- package/dist/session/views/resolve.d.ts +1 -2
- package/dist/session/views/resolve.d.ts.map +1 -1
- package/dist/session/views/resolve.js.map +1 -1
- package/dist/store/memory.d.ts +1 -1
- package/dist/store/memory.d.ts.map +1 -1
- package/dist/store/memory.js.map +1 -1
- package/dist/store/query-key.d.ts +1 -1
- package/dist/store/query-key.d.ts.map +1 -1
- package/dist/store/query-key.js.map +1 -1
- package/dist/store/shape.d.ts +1 -1
- package/dist/store/shape.d.ts.map +1 -1
- package/dist/store/store.d.ts +1 -1
- package/dist/store/store.d.ts.map +1 -1
- package/dist/transport/http/stream.d.ts +4 -3
- package/dist/transport/http/stream.d.ts.map +1 -1
- package/dist/transport/http/stream.js +25 -8
- package/dist/transport/http/stream.js.map +1 -1
- package/dist/transport/http/transport.d.ts.map +1 -1
- package/dist/transport/http/transport.js +40 -29
- package/dist/transport/http/transport.js.map +1 -1
- package/dist/transport/transport.d.ts +7 -1
- package/dist/transport/transport.d.ts.map +1 -1
- package/dist/transport/websocket/connection.d.ts +1 -1
- package/dist/transport/websocket/connection.d.ts.map +1 -1
- package/dist/transport/websocket/connection.js +9 -9
- package/dist/transport/websocket/connection.js.map +1 -1
- package/dist/transport/websocket/exchange.d.ts +6 -5
- package/dist/transport/websocket/exchange.d.ts.map +1 -1
- package/dist/transport/websocket/exchange.js +44 -28
- package/dist/transport/websocket/exchange.js.map +1 -1
- package/dist/transport/websocket/transport.js +1 -1
- package/dist/transport/websocket/transport.js.map +1 -1
- package/package.json +11 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../graph/page/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACf,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../graph/page/page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACf,MAAM,qCAAqC,CAAA;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE1E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAE9B,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAE5B,OAAO,CAAC,OAAO,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;QAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;QAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAChF;AAED,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAA;AAE7D,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAChC;AACD,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,SAAS,QAAQ,EAC7C,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAElD,KAAK,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAA;AAEhE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,GACX,QAAQ,CAiDV"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { QueryResult } from '@astrale-os/kernel-core/graph/query';
|
|
2
|
+
/** Caller-selected bounds and continuation for one graph query page. */
|
|
3
|
+
export interface QueryPageRequest {
|
|
4
|
+
readonly size: number;
|
|
5
|
+
readonly after?: string;
|
|
6
|
+
}
|
|
7
|
+
/** Admitted graph result and its optional opaque continuation. */
|
|
8
|
+
export interface QueryResponse<Result extends QueryResult = QueryResult> {
|
|
9
|
+
readonly result: Result;
|
|
10
|
+
readonly page: {
|
|
11
|
+
readonly next?: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=page-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-contract.d.ts","sourceRoot":"","sources":["../../graph/page-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAEtE,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,WAAW,GAAG,WAAW;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-contract.js","sourceRoot":"","sources":["../../graph/page-contract.ts"],"names":[],"mappings":""}
|
package/dist/graph/query.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { QueryAST as QueryASTValue, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
|
|
2
|
-
import type { QueryResponse } from '@astrale-os/kernel-ports/query';
|
|
3
2
|
import type { GraphCall, GraphQueryOptions } from './graph.js';
|
|
3
|
+
import type { QueryResponse } from './page-contract.js';
|
|
4
4
|
export declare function queryGraph<Query extends QueryASTValue>(call: GraphCall, input: Query, options: GraphQueryOptions): Promise<QueryResponse<QueryResultFor<Query>>>;
|
|
5
5
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../graph/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../graph/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAOpG,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAMvD,wBAAsB,UAAU,CAAC,KAAK,SAAS,aAAa,EAC1D,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAS/C"}
|
package/dist/graph/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../graph/query.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../graph/query.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { Client, call, type AuthenticatedClient, type Call, type ClientDispatchOptions, type ClientOptions, type RemoteCredential, } from './client/index.js';
|
|
2
|
-
export { ClientError, MissError, ProtocolError, ResponseError, StaleRouteError, TransportError, type TransportDelivery, type TransportErrorOptions, type TransportPhase, } from './errors/index.js';
|
|
1
|
+
export { Client, call, type AuthenticatedClient, type Call, type ClientDispatchOptions, type ClientOptions, type Binary, type BinaryResponse, type Input, type RemoteCredential, type Result, type Stream, type StreamResult, type ValueResult, } from './client/index.js';
|
|
2
|
+
export { ClientError, MissError, ProtocolError, type ProtocolErrorOptions, ResponseError, StaleRouteError, TransportError, type TransportDelivery, type TransportErrorOptions, type TransportPhase, } from './errors/index.js';
|
|
3
3
|
export { type RequestOptions, type MissControl, type StaleControl, type Transport, type TransportRequest, type TransportResult, } from './transport/index.js';
|
|
4
4
|
export { HttpTransport, type Fetch, type HttpTransportOptions } from './transport/http/index.js';
|
|
5
5
|
export { WebSocketTransport, type WebSocketConstructor, type WebSocketTransportOptions, } from './transport/websocket/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,IAAI,EACJ,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,IAAI,EACJ,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,SAAS,EACT,aAAa,EACb,KAAK,oBAAoB,EACzB,aAAa,EACb,eAAe,EACf,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChG,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,IAAI,GAaL,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,WAAW,EACX,SAAS,EACT,aAAa,EAEb,aAAa,EACb,eAAe,EACf,cAAc,GAIf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAON,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAyC,MAAM,2BAA2B,CAAA;AAChG,OAAO,EACL,kBAAkB,GAGnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,aAAa,EACb,mBAAmB,GAGpB,MAAM,2BAA2B,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { schema as dslSchema } from '@astrale-os/kernel-dsl/v1';
|
|
2
|
+
/** Admit one value result against the exact Kernel syscall declaration that owns it. */
|
|
3
|
+
interface ValueSyscall {
|
|
4
|
+
readonly declaration: {
|
|
5
|
+
readonly output: dslSchema.CallableOutput;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare function acceptOutput<T>(owner: ValueSyscall, input: unknown): T;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=admission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../schema/admission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAOpE,wFAAwF;AACxF,UAAU,YAAY;IACpB,QAAQ,CAAC,WAAW,EAAE;QACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,CAAA;KAC1C,CAAA;CACF;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAetE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { KernelSchema } from '@astrale-os/kernel-core/schema';
|
|
2
|
+
import { schema } from '@astrale-os/kernel-dsl/v1';
|
|
3
|
+
import * as portable from '@astrale-os/kernel-dsl/value';
|
|
4
|
+
export function acceptOutput(owner, input) {
|
|
5
|
+
if (owner.declaration.output.mode !== 'value') {
|
|
6
|
+
throw new TypeError('Schema Client expected a value-producing Kernel syscall.');
|
|
7
|
+
}
|
|
8
|
+
const value = portable.accept(input);
|
|
9
|
+
const diagnostics = schema.values.validate(KernelSchema, owner.declaration.output.schema, value, '/output');
|
|
10
|
+
if (diagnostics.length > 0) {
|
|
11
|
+
throw new TypeError(`Kernel returned an invalid Schema result: ${diagnostics[0].message}`);
|
|
12
|
+
}
|
|
13
|
+
return freeze(value);
|
|
14
|
+
}
|
|
15
|
+
function freeze(input) {
|
|
16
|
+
if (input !== null && typeof input === 'object' && !Object.isFrozen(input)) {
|
|
17
|
+
for (const value of Object.values(input))
|
|
18
|
+
freeze(value);
|
|
19
|
+
Object.freeze(input);
|
|
20
|
+
}
|
|
21
|
+
return input;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=admission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admission.js","sourceRoot":"","sources":["../../schema/admission.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AASxD,MAAM,UAAU,YAAY,CAAI,KAAmB,EAAE,KAAc;IACjE,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;IACjF,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAU,CAAA;IAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CACxC,YAAY,EACZ,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAC/B,KAAK,EACL,SAAS,CACV,CAAA;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,6CAA6C,WAAW,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAM,CAAA;AAC3B,CAAC;AAED,SAAS,MAAM,CAAkB,KAAQ;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { InputOf, OutputOf } from '@astrale-os/kernel-core/domain';
|
|
2
|
+
import type { syscalls } from '@astrale-os/kernel-core/schema';
|
|
3
|
+
import type { installation } from '@astrale-os/kernel-core/schema';
|
|
4
|
+
export type OperationId = installation.OperationId;
|
|
5
|
+
/** Canonical caller input accepted by the Kernel install syscall. */
|
|
6
|
+
export type InstallRequest = Omit<InputOf<(typeof syscalls.install)['callable']>, 'operation'> & {
|
|
7
|
+
readonly operation: OperationId;
|
|
8
|
+
};
|
|
9
|
+
/** Admitted terminal install receipt returned by the Kernel. */
|
|
10
|
+
export type InstallReceipt = Omit<OutputOf<(typeof syscalls.install)['callable']>, 'operation'> & {
|
|
11
|
+
readonly operation: OperationId;
|
|
12
|
+
};
|
|
13
|
+
/** Canonical caller input accepted by the Kernel uninstall syscall. */
|
|
14
|
+
export type UninstallRequest = Omit<InputOf<(typeof syscalls.uninstall)['callable']>, 'operation'> & {
|
|
15
|
+
readonly operation: OperationId;
|
|
16
|
+
};
|
|
17
|
+
/** Admitted terminal uninstall receipt returned by the Kernel. */
|
|
18
|
+
export type UninstallReceipt = Omit<OutputOf<(typeof syscalls.uninstall)['callable']>, 'operation'> & {
|
|
19
|
+
readonly operation: OperationId;
|
|
20
|
+
};
|
|
21
|
+
export type DesiredInstallation = InstallRequest['domains'][number];
|
|
22
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../schema/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAA;AAElD,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG;IAC/F,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAChC,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG;IAChG,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAChC,CAAA;AAED,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,EAChD,WAAW,CACZ,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAAE,CAAA;AAEvC,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,EACjD,WAAW,CACZ,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;CAAE,CAAA;AAEvC,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../schema/contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createSchema, type SchemaApi, type SchemaCall, type SchemaOptions, type ReadyInstallation, } from './schema.js';
|
|
2
|
+
export { acceptOperationId, createOperationId } from './operation.js';
|
|
3
|
+
export type { DesiredInstallation, InstallReceipt, InstallRequest, OperationId, UninstallReceipt, UninstallRequest, } from './contracts.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAErE,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAKb,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { introspection as language } from '@astrale-os/kernel-core/schema';
|
|
2
|
+
import type { schema as protocol } from '@astrale-os/kernel-protocol';
|
|
3
|
+
import type { RequestOptions } from '../transport/index.js';
|
|
4
|
+
import type { SchemaCall, SchemaOptions } from './schema.js';
|
|
5
|
+
export declare function introspect<InputType extends language.Introspection>(invoke: SchemaCall, limits: SchemaOptions, request: InputType, options?: RequestOptions): Promise<protocol.installation.introspection.ResultFor<InputType>>;
|
|
6
|
+
//# sourceMappingURL=introspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../schema/introspection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAM5D,wBAAsB,UAAU,CAAC,SAAS,SAAS,QAAQ,CAAC,aAAa,EACvE,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CASnE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/kernel-core/path';
|
|
2
|
+
import { syscalls } from '@astrale-os/kernel-core/schema';
|
|
3
|
+
import { schema } from '@astrale-os/kernel-protocol';
|
|
4
|
+
import { call } from '../client/index.js';
|
|
5
|
+
const INTROSPECT_PATH = Path.project(syscalls.introspect.ref).raw;
|
|
6
|
+
export async function introspect(invoke, limits, request, options) {
|
|
7
|
+
const result = await invoke(call(INTROSPECT_PATH, request), options);
|
|
8
|
+
if (result.kind !== 'binary') {
|
|
9
|
+
throw new TypeError('Schema introspection returned a non-binary result.');
|
|
10
|
+
}
|
|
11
|
+
if (result.value.mediaType !== schema.installation.introspection.MEDIA_TYPE) {
|
|
12
|
+
throw new TypeError('Schema introspection returned an unsupported media type.');
|
|
13
|
+
}
|
|
14
|
+
return schema.installation.introspection.decode(request, result.value.body, limits);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=introspection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.js","sourceRoot":"","sources":["../../schema/introspection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAMpD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAEzC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;AAEjE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAkB,EAClB,MAAqB,EACrB,OAAkB,EAClB,OAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAA2B,CAAC,EAAE,OAAO,CAAC,CAAA;IACxF,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAA;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAC5E,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAA;IACjF,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACrF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { OperationId } from './contracts.js';
|
|
2
|
+
/** Accept one canonical lowercase RFC 9562 UUIDv4 operation identity. */
|
|
3
|
+
export declare function acceptOperationId(input: unknown): OperationId;
|
|
4
|
+
/** Allocate one cryptographically generated operation identity for a new lifecycle request. */
|
|
5
|
+
export declare function createOperationId(): OperationId;
|
|
6
|
+
//# sourceMappingURL=operation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../schema/operation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAE7D;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { installation } from '@astrale-os/kernel-core/schema';
|
|
2
|
+
/** Accept one canonical lowercase RFC 9562 UUIDv4 operation identity. */
|
|
3
|
+
export function acceptOperationId(input) {
|
|
4
|
+
return installation.acceptOperationId(input);
|
|
5
|
+
}
|
|
6
|
+
/** Allocate one cryptographically generated operation identity for a new lifecycle request. */
|
|
7
|
+
export function createOperationId() {
|
|
8
|
+
return acceptOperationId(globalThis.crypto.randomUUID());
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=operation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../schema/operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAI7D,yEAAyE;AACzE,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;AAC9C,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB;IAC/B,OAAO,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;AAC1D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { introspection } from '@astrale-os/kernel-core/schema';
|
|
2
|
+
import type { schema as protocolSchema } from '@astrale-os/kernel-protocol';
|
|
3
|
+
import type { Call, Result } from '../client/index.js';
|
|
4
|
+
import type { RequestOptions } from '../transport/index.js';
|
|
5
|
+
import type { InstallReceipt, InstallRequest, UninstallReceipt, UninstallRequest } from './contracts.js';
|
|
6
|
+
export type SchemaCall = (call: Call, options?: RequestOptions) => Promise<Result>;
|
|
7
|
+
export interface SchemaOptions extends protocolSchema.installation.introspection.Limits {
|
|
8
|
+
}
|
|
9
|
+
export type ReadyInstallation = protocolSchema.installation.introspection.Installation & {
|
|
10
|
+
readonly state: 'ready';
|
|
11
|
+
readonly readiness: protocolSchema.installation.introspection.Digest;
|
|
12
|
+
};
|
|
13
|
+
export interface SchemaApi {
|
|
14
|
+
install(request: InstallRequest, options?: RequestOptions): Promise<InstallReceipt>;
|
|
15
|
+
uninstall(request: UninstallRequest, options?: RequestOptions): Promise<UninstallReceipt>;
|
|
16
|
+
introspect<Input extends introspection.Introspection>(request: Input, options?: RequestOptions): Promise<protocolSchema.installation.introspection.ResultFor<Input>>;
|
|
17
|
+
}
|
|
18
|
+
/** Bind the canonical Schema lifecycle syscalls to one caller-scoped value-call capability. */
|
|
19
|
+
export declare function createSchema(call: SchemaCall, limits: SchemaOptions): SchemaApi;
|
|
20
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../schema/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAK3E,OAAO,KAAK,EAAE,IAAI,EAAS,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AAMvB,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAElF,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM;CAAG;AAE1F,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,GAAG;IACvF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAA;CACrE,CAAA;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACnF,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzF,UAAU,CAAC,KAAK,SAAS,aAAa,CAAC,aAAa,EAClD,OAAO,EAAE,KAAK,EACd,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;CACvE;AAKD,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS,CAuB/E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Path } from '@astrale-os/kernel-core/path';
|
|
2
|
+
import { syscalls } from '@astrale-os/kernel-core/schema';
|
|
3
|
+
import { call as invocation } from '../client/index.js';
|
|
4
|
+
import { acceptOutput } from './admission.js';
|
|
5
|
+
import { introspect as inspect } from './introspection.js';
|
|
6
|
+
const INSTALL_PATH = Path.project(syscalls.install.ref).raw;
|
|
7
|
+
const UNINSTALL_PATH = Path.project(syscalls.uninstall.ref).raw;
|
|
8
|
+
/** Bind the canonical Schema lifecycle syscalls to one caller-scoped value-call capability. */
|
|
9
|
+
export function createSchema(call, limits) {
|
|
10
|
+
if (typeof call !== 'function')
|
|
11
|
+
throw new TypeError('Schema call capability is invalid.');
|
|
12
|
+
const admittedLimits = admitLimits(limits);
|
|
13
|
+
return Object.freeze({
|
|
14
|
+
async install(request, options) {
|
|
15
|
+
const output = value(await call(invocation(INSTALL_PATH, request), options));
|
|
16
|
+
return acceptOutput(syscalls.install, output);
|
|
17
|
+
},
|
|
18
|
+
async uninstall(request, options) {
|
|
19
|
+
const output = value(await call(invocation(UNINSTALL_PATH, request), options));
|
|
20
|
+
return acceptOutput(syscalls.uninstall, output);
|
|
21
|
+
},
|
|
22
|
+
async introspect(request, options) {
|
|
23
|
+
return inspect(call, admittedLimits, request, options);
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function value(result) {
|
|
28
|
+
if (result.kind !== 'value')
|
|
29
|
+
throw new TypeError('Schema syscall returned a non-value result.');
|
|
30
|
+
return result.value;
|
|
31
|
+
}
|
|
32
|
+
function admitLimits(input) {
|
|
33
|
+
if (input === null ||
|
|
34
|
+
typeof input !== 'object' ||
|
|
35
|
+
!Number.isSafeInteger(input.maximumPublicationBytes) ||
|
|
36
|
+
input.maximumPublicationBytes < 1 ||
|
|
37
|
+
!Number.isSafeInteger(input.maximumBundleBytes) ||
|
|
38
|
+
input.maximumBundleBytes < 1) {
|
|
39
|
+
throw new TypeError('Schema introspection limits are invalid.');
|
|
40
|
+
}
|
|
41
|
+
return Object.freeze({ ...input });
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../schema/schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAWzD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAoB1D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;AAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;AAE/D,+FAA+F;AAC/F,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,MAAqB;IAClE,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,OAAwB;YAC7D,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAA2B,CAAC,EAAE,OAAO,CAAC,CAC3E,CAAA;YACD,OAAO,YAAY,CAAiB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/D,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,OAAyB,EAAE,OAAwB;YACjE,MAAM,MAAM,GAAG,KAAK,CAClB,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,OAA2B,CAAC,EAAE,OAAO,CAAC,CAC7E,CAAA;YACD,OAAO,YAAY,CAAmB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACnE,CAAC;QACD,KAAK,CAAC,UAAU,CACd,OAAc,EACd,OAAwB;YAExB,OAAO,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACxD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,MAAc;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;IAC/F,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC;AAED,SAAS,WAAW,CAAC,KAAoB;IACvC,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACpD,KAAK,CAAC,uBAAuB,GAAG,CAAC;QACjC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC/C,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAC5B,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { admitControlOptions, type SessionControlOptions } from './control.js';
|
|
2
2
|
export { DEFAULT_MAXIMUM_BUNDLE_BYTES, DEFAULT_MAXIMUM_PUBLICATION_BYTES, DEFAULT_MAXIMUM_RESPONSE_BYTES, DEFAULT_MAXIMUM_ROUTES, DEFAULT_TIMEOUT_MS, platformDuration, positive, } from './limits.js';
|
|
3
3
|
export { createSessionOperation, runSessionOperation, sessionTransportOptions, type SessionOperation, } from './operation.js';
|
|
4
|
-
export { admitPolicy, allowEndpoint,
|
|
4
|
+
export { admitKernel, admitPolicy, allowEndpoint, kernelInvocationEndpoint, type SessionPolicy, } from './policy.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../session/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../session/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { admitControlOptions } from './control.js';
|
|
2
2
|
export { DEFAULT_MAXIMUM_BUNDLE_BYTES, DEFAULT_MAXIMUM_PUBLICATION_BYTES, DEFAULT_MAXIMUM_RESPONSE_BYTES, DEFAULT_MAXIMUM_ROUTES, DEFAULT_TIMEOUT_MS, platformDuration, positive, } from './limits.js';
|
|
3
3
|
export { createSessionOperation, runSessionOperation, sessionTransportOptions, } from './operation.js';
|
|
4
|
-
export { admitPolicy, allowEndpoint,
|
|
4
|
+
export { admitKernel, admitPolicy, allowEndpoint, kernelInvocationEndpoint, } from './policy.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../session/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA8B,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,gBAAgB,CAAA;AACvB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../session/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAA8B,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,8BAA8B,EAC9B,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,GACT,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,wBAAwB,GAEzB,MAAM,aAAa,CAAA"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
1
2
|
export interface SessionPolicy {
|
|
2
3
|
readonly maximumRouteAgeMs: number;
|
|
3
4
|
readonly allowEndpoint?: (url: string) => boolean;
|
|
4
5
|
readonly allowInsecureHttp?: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare function admitPolicy(input: SessionPolicy): Readonly<SessionPolicy>;
|
|
7
|
-
export declare function
|
|
8
|
+
export declare function admitKernel(input: string, insecure: boolean): IssuerId;
|
|
9
|
+
export declare function kernelInvocationEndpoint(input: IssuerId): string;
|
|
8
10
|
export declare function websocketEndpoint(input: string, insecure: boolean): string;
|
|
9
11
|
export declare function allowEndpoint(url: string, policy: Readonly<SessionPolicy>): void;
|
|
10
12
|
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../session/context/policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../session/context/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAO5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;IACjD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CACrC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAezE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAmBtE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAgB1E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAahF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { issuer } from '@astrale-os/kernel-core/auth';
|
|
1
2
|
import { ClientError } from '../../errors/index.js';
|
|
2
3
|
import { positive } from './limits.js';
|
|
3
4
|
export function admitPolicy(input) {
|
|
@@ -16,21 +17,27 @@ export function admitPolicy(input) {
|
|
|
16
17
|
...(input.allowInsecureHttp === true ? { allowInsecureHttp: true } : {}),
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
|
-
export function
|
|
20
|
+
export function admitKernel(input, insecure) {
|
|
20
21
|
let url;
|
|
22
|
+
let admitted;
|
|
21
23
|
try {
|
|
22
|
-
|
|
24
|
+
admitted = issuer.accept(input);
|
|
25
|
+
url = new URL(admitted);
|
|
23
26
|
}
|
|
24
27
|
catch (cause) {
|
|
25
|
-
throw new TypeError('Session
|
|
28
|
+
throw new TypeError('Session Kernel issuer is invalid.', { cause });
|
|
26
29
|
}
|
|
27
30
|
if (url.username !== '' ||
|
|
28
31
|
url.password !== '' ||
|
|
29
32
|
url.hash !== '' ||
|
|
33
|
+
url.search !== '' ||
|
|
30
34
|
(url.protocol !== 'https:' && !(insecure && url.protocol === 'http:'))) {
|
|
31
|
-
throw new TypeError('Session
|
|
35
|
+
throw new TypeError('Session Kernel issuer is invalid.');
|
|
32
36
|
}
|
|
33
|
-
return
|
|
37
|
+
return admitted;
|
|
38
|
+
}
|
|
39
|
+
export function kernelInvocationEndpoint(input) {
|
|
40
|
+
return `${input}/invoke`;
|
|
34
41
|
}
|
|
35
42
|
export function websocketEndpoint(input, insecure) {
|
|
36
43
|
let url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../session/context/policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../session/context/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,28 +22,28 @@ export class BundleDiscovery {
|
|
|
22
22
|
this.bundles.clear();
|
|
23
23
|
}
|
|
24
24
|
async fetch(publication, operation) {
|
|
25
|
-
if (publication.schema.bundle.size > this.options.maximumBytes) {
|
|
25
|
+
if (publication.schema.bundle.ref.size > this.options.maximumBytes) {
|
|
26
26
|
throw new ClientError('Bundle artifact exceeds its byte limit.');
|
|
27
27
|
}
|
|
28
28
|
const href = publication.schema.bundle.href;
|
|
29
29
|
allowEndpoint(href, this.options.policy);
|
|
30
30
|
const response = await runSessionOperation(operation, (signal) => this.options.fetch(href, {
|
|
31
|
-
headers: { accept: publication.schema.bundle.mediaType },
|
|
31
|
+
headers: { accept: publication.schema.bundle.ref.mediaType },
|
|
32
32
|
redirect: 'manual',
|
|
33
33
|
signal,
|
|
34
34
|
}));
|
|
35
35
|
requireExactResponse(response, href, 'Bundle retrieval');
|
|
36
36
|
if (!response.ok)
|
|
37
37
|
throw new ClientError(`Bundle retrieval returned HTTP ${response.status}.`);
|
|
38
|
-
if (response.headers.get('content-type') !== publication.schema.bundle.mediaType) {
|
|
38
|
+
if (response.headers.get('content-type') !== publication.schema.bundle.ref.mediaType) {
|
|
39
39
|
throw new ClientError('Bundle artifact media type differs from its descriptor.');
|
|
40
40
|
}
|
|
41
41
|
const etag = response.headers.get('etag');
|
|
42
|
-
if (etag !== null && etag !== `"${publication.schema.bundle.digest}"`) {
|
|
42
|
+
if (etag !== null && etag !== `"${publication.schema.bundle.ref.digest}"`) {
|
|
43
43
|
throw new ClientError('Bundle response ETag differs from its descriptor.');
|
|
44
44
|
}
|
|
45
|
-
const bytes = await runSessionOperation(operation, (signal) => boundedResponse(response, publication.schema.bundle.size, signal));
|
|
46
|
-
if (bytes.byteLength !== publication.schema.bundle.size) {
|
|
45
|
+
const bytes = await runSessionOperation(operation, (signal) => boundedResponse(response, publication.schema.bundle.ref.size, signal));
|
|
46
|
+
if (bytes.byteLength !== publication.schema.bundle.ref.size) {
|
|
47
47
|
throw new ClientError('Bundle artifact size differs from its descriptor.');
|
|
48
48
|
}
|
|
49
49
|
return publicationCodec.decodeBundle(publication, bytes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../session/discovery/bundle.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAK7E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAQxE,MAAM,OAAO,eAAe;IAGG,OAAO;IAFnB,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE3D,YAA6B,OAA+B;uBAA/B,OAAO;IAA2B,CAAC;IAEhE,KAAK,CAAC,GAAG,CACP,WAAoC,EACpC,SAA2B;QAE3B,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QAC3C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAA;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC/B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAEO,KAAK,CAAC,KAAK,CACjB,WAAoC,EACpC,SAA2B;QAE3B,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../session/discovery/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { publication } from '@astrale-os/kernel-protocol';
|
|
1
|
+
import type { IssuerId } from '@astrale-os/kernel-core/auth';
|
|
3
2
|
import type { SessionOperation, SessionPolicy } from '../context/index.js';
|
|
4
3
|
import type { BundleDiscovery } from './bundle.js';
|
|
5
4
|
import type { PublicationDiscovery } from './publication.js';
|
|
6
5
|
import type { SessionSnapshot } from './snapshot.js';
|
|
7
|
-
export interface DiscoveredSource {
|
|
8
|
-
readonly publication: publication.Publication;
|
|
9
|
-
readonly bundle: bundle.Bundle;
|
|
10
|
-
}
|
|
11
6
|
export declare class SessionDiscovery {
|
|
12
|
-
readonly
|
|
7
|
+
readonly kernel: IssuerId;
|
|
13
8
|
private readonly policy;
|
|
14
9
|
private readonly publications;
|
|
15
10
|
private readonly bundles;
|
|
@@ -17,10 +12,8 @@ export declare class SessionDiscovery {
|
|
|
17
12
|
private readonly acquisitionOperation;
|
|
18
13
|
private retained?;
|
|
19
14
|
private flight?;
|
|
20
|
-
constructor(
|
|
15
|
+
constructor(kernel: IssuerId, policy: Readonly<SessionPolicy>, publications: PublicationDiscovery, bundles: BundleDiscovery, requireOpen: () => void, acquisitionOperation: () => SessionOperation);
|
|
21
16
|
snapshot(operation: SessionOperation): Promise<SessionSnapshot>;
|
|
22
|
-
discover(url: string, operation: SessionOperation): Promise<DiscoveredSource>;
|
|
23
|
-
invalidate(url: string): void;
|
|
24
17
|
clear(): void;
|
|
25
18
|
private acquireSnapshot;
|
|
26
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../session/discovery/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../session/discovery/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAMpD,qBAAa,gBAAgB;IAKzB,QAAQ,CAAC,MAAM,EAAE,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IATvC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,MAAM,CAAC,CAA0B;IAEzC,YACW,MAAM,EAAE,QAAQ,EACR,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/B,YAAY,EAAE,oBAAoB,EAClC,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,MAAM,IAAI,EACvB,oBAAoB,EAAE,MAAM,gBAAgB,EAC3D;IAEJ,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAY9D;IAED,KAAK,IAAI,IAAI,CAIZ;YAEa,eAAe;CAY9B"}
|
|
@@ -2,7 +2,7 @@ import { runSessionOperation } from '../context/index.js';
|
|
|
2
2
|
import { rootViewCatalog } from '../views/index.js';
|
|
3
3
|
import { createSessionSnapshot } from './snapshot.js';
|
|
4
4
|
export class SessionDiscovery {
|
|
5
|
-
|
|
5
|
+
kernel;
|
|
6
6
|
policy;
|
|
7
7
|
publications;
|
|
8
8
|
bundles;
|
|
@@ -10,8 +10,8 @@ export class SessionDiscovery {
|
|
|
10
10
|
acquisitionOperation;
|
|
11
11
|
retained;
|
|
12
12
|
flight;
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
13
|
+
constructor(kernel, policy, publications, bundles, requireOpen, acquisitionOperation) {
|
|
14
|
+
this.kernel = kernel;
|
|
15
15
|
this.policy = policy;
|
|
16
16
|
this.publications = publications;
|
|
17
17
|
this.bundles = bundles;
|
|
@@ -33,27 +33,14 @@ export class SessionDiscovery {
|
|
|
33
33
|
.catch(() => undefined);
|
|
34
34
|
return runSessionOperation(operation, () => flight);
|
|
35
35
|
}
|
|
36
|
-
async discover(url, operation) {
|
|
37
|
-
this.requireOpen();
|
|
38
|
-
const publication = await this.publications.get(url, operation);
|
|
39
|
-
const artifact = await this.bundles.get(publication, operation);
|
|
40
|
-
this.requireOpen();
|
|
41
|
-
return Object.freeze({ publication, bundle: artifact });
|
|
42
|
-
}
|
|
43
|
-
invalidate(url) {
|
|
44
|
-
this.publications.invalidate(url);
|
|
45
|
-
this.bundles.clear();
|
|
46
|
-
if (new URL(url).origin === new URL(this.url).origin)
|
|
47
|
-
this.retained = undefined;
|
|
48
|
-
}
|
|
49
36
|
clear() {
|
|
50
37
|
this.publications.invalidate();
|
|
51
38
|
this.bundles.clear();
|
|
52
39
|
this.retained = undefined;
|
|
53
40
|
}
|
|
54
41
|
async acquireSnapshot(operation) {
|
|
55
|
-
const previous = this.publications.current(
|
|
56
|
-
const publication = await this.publications.revalidate(
|
|
42
|
+
const previous = this.publications.current();
|
|
43
|
+
const publication = await this.publications.revalidate(operation);
|
|
57
44
|
if (previous !== undefined && previous.etag !== publication.etag)
|
|
58
45
|
this.bundles.clear();
|
|
59
46
|
const artifact = await this.bundles.get(publication, operation);
|
|
@@ -61,7 +48,7 @@ export class SessionDiscovery {
|
|
|
61
48
|
if (this.retained?.publication.etag === publication.etag)
|
|
62
49
|
return this.retained;
|
|
63
50
|
const views = rootViewCatalog(publication, artifact, this.policy);
|
|
64
|
-
const snapshot = createSessionSnapshot(this.
|
|
51
|
+
const snapshot = createSessionSnapshot(this.kernel, publication, artifact, views);
|
|
65
52
|
this.retained = snapshot;
|
|
66
53
|
return snapshot;
|
|
67
54
|
}
|