@astrale-os/kernel-client 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/batch.d.ts +26 -0
- package/dist/client/batch.d.ts.map +1 -0
- package/dist/client/batch.js +8 -0
- package/dist/client/batch.js.map +1 -0
- package/dist/client/bound.d.ts +27 -0
- package/dist/client/bound.d.ts.map +1 -0
- package/dist/client/bound.js +14 -0
- package/dist/client/bound.js.map +1 -0
- package/dist/client/client.d.ts +93 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +393 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/config.d.ts +112 -0
- package/dist/client/config.d.ts.map +1 -0
- package/dist/client/config.js +10 -0
- package/dist/client/config.js.map +1 -0
- package/dist/client/fn-map.d.ts +61 -0
- package/dist/client/fn-map.d.ts.map +1 -0
- package/dist/client/fn-map.js +2 -0
- package/dist/client/fn-map.js.map +1 -0
- package/dist/client/freeze.d.ts +32 -0
- package/dist/client/freeze.d.ts.map +1 -0
- package/dist/client/freeze.js +42 -0
- package/dist/client/freeze.js.map +1 -0
- package/dist/client/hooks.d.ts +49 -0
- package/dist/client/hooks.d.ts.map +1 -0
- package/dist/client/hooks.js +2 -0
- package/dist/client/hooks.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -0
- package/dist/delegation/cache.d.ts +133 -0
- package/dist/delegation/cache.d.ts.map +1 -0
- package/dist/delegation/cache.js +258 -0
- package/dist/delegation/cache.js.map +1 -0
- package/dist/delegation/errors.d.ts +44 -0
- package/dist/delegation/errors.d.ts.map +1 -0
- package/dist/delegation/errors.js +62 -0
- package/dist/delegation/errors.js.map +1 -0
- package/dist/delegation/index.d.ts +6 -0
- package/dist/delegation/index.d.ts.map +1 -0
- package/dist/delegation/index.js +4 -0
- package/dist/delegation/index.js.map +1 -0
- package/dist/delegation/policy.d.ts +175 -0
- package/dist/delegation/policy.d.ts.map +1 -0
- package/dist/delegation/policy.js +109 -0
- package/dist/delegation/policy.js.map +1 -0
- package/dist/errors/errors.d.ts +103 -0
- package/dist/errors/errors.d.ts.map +1 -0
- package/dist/errors/errors.js +170 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/errors/index.d.ts +4 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +3 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/session-error.d.ts +21 -0
- package/dist/errors/session-error.d.ts.map +1 -0
- package/dist/errors/session-error.js +25 -0
- package/dist/errors/session-error.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/pacer/batcher.d.ts +11 -0
- package/dist/pacer/batcher.d.ts.map +1 -0
- package/dist/pacer/batcher.js +15 -0
- package/dist/pacer/batcher.js.map +1 -0
- package/dist/pacer/defaults.d.ts +18 -0
- package/dist/pacer/defaults.d.ts.map +1 -0
- package/dist/pacer/defaults.js +18 -0
- package/dist/pacer/defaults.js.map +1 -0
- package/dist/pacer/index.d.ts +10 -0
- package/dist/pacer/index.d.ts.map +1 -0
- package/dist/pacer/index.js +11 -0
- package/dist/pacer/index.js.map +1 -0
- package/dist/pacer/queue.d.ts +11 -0
- package/dist/pacer/queue.d.ts.map +1 -0
- package/dist/pacer/queue.js +15 -0
- package/dist/pacer/queue.js.map +1 -0
- package/dist/pacer/rate-limiter.d.ts +11 -0
- package/dist/pacer/rate-limiter.d.ts.map +1 -0
- package/dist/pacer/rate-limiter.js +15 -0
- package/dist/pacer/rate-limiter.js.map +1 -0
- package/dist/pacer/retry.d.ts +14 -0
- package/dist/pacer/retry.d.ts.map +1 -0
- package/dist/pacer/retry.js +50 -0
- package/dist/pacer/retry.js.map +1 -0
- package/dist/persistence/index.d.ts +3 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +2 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/persistence.d.ts +52 -0
- package/dist/persistence/persistence.d.ts.map +1 -0
- package/dist/persistence/persistence.js +32 -0
- package/dist/persistence/persistence.js.map +1 -0
- package/dist/pool/errors.d.ts +13 -0
- package/dist/pool/errors.d.ts.map +1 -0
- package/dist/pool/errors.js +16 -0
- package/dist/pool/errors.js.map +1 -0
- package/dist/pool/index.d.ts +4 -0
- package/dist/pool/index.d.ts.map +1 -0
- package/dist/pool/index.js +3 -0
- package/dist/pool/index.js.map +1 -0
- package/dist/pool/pool.d.ts +63 -0
- package/dist/pool/pool.d.ts.map +1 -0
- package/dist/pool/pool.js +87 -0
- package/dist/pool/pool.js.map +1 -0
- package/dist/redirect/errors.d.ts +45 -0
- package/dist/redirect/errors.d.ts.map +1 -0
- package/dist/redirect/errors.js +52 -0
- package/dist/redirect/errors.js.map +1 -0
- package/dist/redirect/index.d.ts +4 -0
- package/dist/redirect/index.d.ts.map +1 -0
- package/dist/redirect/index.js +3 -0
- package/dist/redirect/index.js.map +1 -0
- package/dist/redirect/policy.d.ts +79 -0
- package/dist/redirect/policy.d.ts.map +1 -0
- package/dist/redirect/policy.js +69 -0
- package/dist/redirect/policy.js.map +1 -0
- package/dist/schema/call-args.d.ts +6 -0
- package/dist/schema/call-args.d.ts.map +1 -0
- package/dist/schema/call-args.js +21 -0
- package/dist/schema/call-args.js.map +1 -0
- package/dist/schema/class-proxy.d.ts +8 -0
- package/dist/schema/class-proxy.d.ts.map +1 -0
- package/dist/schema/class-proxy.js +38 -0
- package/dist/schema/class-proxy.js.map +1 -0
- package/dist/schema/extract.d.ts +9 -0
- package/dist/schema/extract.d.ts.map +1 -0
- package/dist/schema/extract.js +16 -0
- package/dist/schema/extract.js.map +1 -0
- package/dist/schema/from-entries.d.ts +12 -0
- package/dist/schema/from-entries.d.ts.map +1 -0
- package/dist/schema/from-entries.js +39 -0
- package/dist/schema/from-entries.js.map +1 -0
- package/dist/schema/index.d.ts +11 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +9 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/node-proxy.d.ts +9 -0
- package/dist/schema/node-proxy.d.ts.map +1 -0
- package/dist/schema/node-proxy.js +32 -0
- package/dist/schema/node-proxy.js.map +1 -0
- package/dist/schema/proxy-types.d.ts +112 -0
- package/dist/schema/proxy-types.d.ts.map +1 -0
- package/dist/schema/proxy-types.js +2 -0
- package/dist/schema/proxy-types.js.map +1 -0
- package/dist/schema/registry.d.ts +51 -0
- package/dist/schema/registry.d.ts.map +1 -0
- package/dist/schema/registry.js +111 -0
- package/dist/schema/registry.js.map +1 -0
- package/dist/schema/resolve.d.ts +26 -0
- package/dist/schema/resolve.d.ts.map +1 -0
- package/dist/schema/resolve.js +27 -0
- package/dist/schema/resolve.js.map +1 -0
- package/dist/schema/typed-client.d.ts +10 -0
- package/dist/schema/typed-client.d.ts.map +1 -0
- package/dist/schema/typed-client.js +26 -0
- package/dist/schema/typed-client.js.map +1 -0
- package/dist/schema/types.d.ts +9 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +2 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/session/bound.d.ts +11 -0
- package/dist/session/bound.d.ts.map +1 -0
- package/dist/session/bound.js +24 -0
- package/dist/session/bound.js.map +1 -0
- package/dist/session/client-session.d.ts +61 -0
- package/dist/session/client-session.d.ts.map +1 -0
- package/dist/session/client-session.js +635 -0
- package/dist/session/client-session.js.map +1 -0
- package/dist/session/config.d.ts +157 -0
- package/dist/session/config.d.ts.map +1 -0
- package/dist/session/config.js +2 -0
- package/dist/session/config.js.map +1 -0
- package/dist/session/errors/index.d.ts +6 -0
- package/dist/session/errors/index.d.ts.map +1 -0
- package/dist/session/errors/index.js +8 -0
- package/dist/session/errors/index.js.map +1 -0
- package/dist/session/errors/session-errors.d.ts +52 -0
- package/dist/session/errors/session-errors.d.ts.map +1 -0
- package/dist/session/errors/session-errors.js +70 -0
- package/dist/session/errors/session-errors.js.map +1 -0
- package/dist/session/forward.d.ts +14 -0
- package/dist/session/forward.d.ts.map +1 -0
- package/dist/session/forward.js +44 -0
- package/dist/session/forward.js.map +1 -0
- package/dist/session/helpers.d.ts +23 -0
- package/dist/session/helpers.d.ts.map +1 -0
- package/dist/session/helpers.js +56 -0
- package/dist/session/helpers.js.map +1 -0
- package/dist/session/hooks.d.ts +140 -0
- package/dist/session/hooks.d.ts.map +1 -0
- package/dist/session/hooks.js +2 -0
- package/dist/session/hooks.js.map +1 -0
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +3 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/types.d.ts +38 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +2 -0
- package/dist/session/types.js.map +1 -0
- package/dist/transport/binary.d.ts +15 -0
- package/dist/transport/binary.d.ts.map +1 -0
- package/dist/transport/binary.js +2 -0
- package/dist/transport/binary.js.map +1 -0
- package/dist/transport/contract.d.ts +58 -0
- package/dist/transport/contract.d.ts.map +1 -0
- package/dist/transport/contract.js +11 -0
- package/dist/transport/contract.js.map +1 -0
- package/dist/transport/fetch.d.ts +28 -0
- package/dist/transport/fetch.d.ts.map +1 -0
- package/dist/transport/fetch.js +74 -0
- package/dist/transport/fetch.js.map +1 -0
- package/dist/transport/http-envelope.d.ts +49 -0
- package/dist/transport/http-envelope.d.ts.map +1 -0
- package/dist/transport/http-envelope.js +405 -0
- package/dist/transport/http-envelope.js.map +1 -0
- package/dist/transport/http-routed.d.ts +61 -0
- package/dist/transport/http-routed.d.ts.map +1 -0
- package/dist/transport/http-routed.js +409 -0
- package/dist/transport/http-routed.js.map +1 -0
- package/dist/transport/index.d.ts +8 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +6 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/request-id.d.ts +9 -0
- package/dist/transport/request-id.d.ts.map +1 -0
- package/dist/transport/request-id.js +12 -0
- package/dist/transport/request-id.js.map +1 -0
- package/dist/transport/ws-envelope.d.ts +74 -0
- package/dist/transport/ws-envelope.d.ts.map +1 -0
- package/dist/transport/ws-envelope.js +560 -0
- package/dist/transport/ws-envelope.js.map +1 -0
- package/dist/util/race-signal.d.ts +12 -0
- package/dist/util/race-signal.d.ts.map +1 -0
- package/dist/util/race-signal.js +34 -0
- package/dist/util/race-signal.js.map +1 -0
- package/dist/wire/controller.d.ts +38 -0
- package/dist/wire/controller.d.ts.map +1 -0
- package/dist/wire/controller.js +38 -0
- package/dist/wire/controller.js.map +1 -0
- package/dist/wire/index.d.ts +7 -0
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/index.js +4 -0
- package/dist/wire/index.js.map +1 -0
- package/dist/wire/meta.d.ts +81 -0
- package/dist/wire/meta.d.ts.map +1 -0
- package/dist/wire/meta.js +44 -0
- package/dist/wire/meta.js.map +1 -0
- package/dist/wire/sse.d.ts +67 -0
- package/dist/wire/sse.d.ts.map +1 -0
- package/dist/wire/sse.js +170 -0
- package/dist/wire/sse.js.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import type { CredentialInput } from '@astrale-os/kernel-core';
|
|
2
|
+
import type { SelfIdentityExpr, UnresolvedIdentityExpr } from '@astrale-os/kernel-core/expression';
|
|
3
|
+
import type { ClientLogger, Protocol, CallTransport } from '../client/config';
|
|
4
|
+
import type { FnMap } from '../client/fn-map';
|
|
5
|
+
import type { DelegationCache, DelegationCacheConfig } from '../delegation/cache';
|
|
6
|
+
import type { DelegationPolicy } from '../delegation/policy';
|
|
7
|
+
import type { SchemaPersistence } from '../persistence/persistence';
|
|
8
|
+
import type { ClientPool, ClientPoolConfig } from '../pool/pool';
|
|
9
|
+
import type { RedirectPolicy } from '../redirect/policy';
|
|
10
|
+
import type { SchemaRegistry } from '../schema/registry';
|
|
11
|
+
import type { FunctionSchema } from '../schema/types';
|
|
12
|
+
import type { ClientSessionHooks } from './hooks';
|
|
13
|
+
/**
|
|
14
|
+
* Picker shape — either a static credential, a sync function, or an
|
|
15
|
+
* async function. `typeof identity === 'function'` is the discriminator.
|
|
16
|
+
* ClientSession calls the function on every `session.call` that doesn't override
|
|
17
|
+
* via `opts.credential`.
|
|
18
|
+
*/
|
|
19
|
+
export type IdentityInput = CredentialInput | (() => CredentialInput | Promise<CredentialInput>) | (() => undefined | Promise<undefined>);
|
|
20
|
+
export type ClientSessionConfig<M extends FnMap = FnMap> = {
|
|
21
|
+
/** Default kernel URL used when `ClientSessionCallOptions.url` is absent — mandatory (§4.3). */
|
|
22
|
+
default: string;
|
|
23
|
+
/**
|
|
24
|
+
* Identity picker. Accepts a function (sync or async), a static
|
|
25
|
+
* credential value (for per-invocation tools), or `undefined`
|
|
26
|
+
* (callers must supply `opts.credential` on every call).
|
|
27
|
+
*/
|
|
28
|
+
identity?: IdentityInput;
|
|
29
|
+
/**
|
|
30
|
+
* Redirect policy. If `undefined`, every redirect is followed
|
|
31
|
+
* (equivalent to `allowAllPolicy()`). Consumers who want to gate
|
|
32
|
+
* redirects pass `allowlistPolicy` / `promptPolicy` / `strictPolicy`.
|
|
33
|
+
*/
|
|
34
|
+
redirect?: RedirectPolicy;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum redirect hops (default 3). The (maxHops+1)-th hop throws
|
|
37
|
+
* `HopLimitExceededError`. Per-call override via `ClientSessionCallOptions.maxHops`.
|
|
38
|
+
*/
|
|
39
|
+
maxHops?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Delegation cache. If `undefined`, cross-audience dispatches (direct-dial
|
|
42
|
+
* to non-default, redirect to non-default) dispatch with the base credential —
|
|
43
|
+
* the kernel likely rejects, and a plain `AuthenticationError` surfaces.
|
|
44
|
+
*/
|
|
45
|
+
delegation?: DelegationCacheConfig | DelegationCache;
|
|
46
|
+
/**
|
|
47
|
+
* Delegation policy — audience + scope derivation + consent. When
|
|
48
|
+
* `undefined`, ClientSession uses `allowAllDelegations({ default: config.default })`
|
|
49
|
+
* which returns `origin` for any target whose origin differs from the
|
|
50
|
+
* default's origin, and implicitly allows all mints.
|
|
51
|
+
*/
|
|
52
|
+
delegationPolicy?: DelegationPolicy;
|
|
53
|
+
/**
|
|
54
|
+
* Client pool. Always present internally (§4.4). If `undefined`, ClientSession
|
|
55
|
+
* constructs a default `ClientPool` with `maxSize: 32` and a default
|
|
56
|
+
* `clientFactory` that constructs `KernelClient` bound to the shared
|
|
57
|
+
* `SchemaRegistry`.
|
|
58
|
+
*/
|
|
59
|
+
pool?: ClientPoolConfig<M> | ClientPool<M>;
|
|
60
|
+
/**
|
|
61
|
+
* Custom `fetch` forwarded to the default `clientFactory`'s `KernelClient`s
|
|
62
|
+
* — the wire-layer shim seam. Use it to wrap requests (e.g. a same-origin
|
|
63
|
+
* wrapper that adds `credentials:'include'` and refresh-on-401 for a
|
|
64
|
+
* cookie-fronted SPA). Ignored when a custom `pool`/`clientFactory` is
|
|
65
|
+
* supplied (those own their own wiring). Default: global fetch.
|
|
66
|
+
*/
|
|
67
|
+
fetch?: typeof fetch;
|
|
68
|
+
/**
|
|
69
|
+
* Schema persistence adapter. If `undefined`, the registry lives
|
|
70
|
+
* in-memory for the ClientSession's lifetime.
|
|
71
|
+
*/
|
|
72
|
+
schemaStore?: SchemaPersistence;
|
|
73
|
+
/**
|
|
74
|
+
* Preloaded schemas OR an external `SchemaRegistry`. Precedence with
|
|
75
|
+
* `schemaStore` pinned in §7.3.
|
|
76
|
+
*/
|
|
77
|
+
schema?: FunctionSchema[] | SchemaRegistry;
|
|
78
|
+
/** Orchestration-level hooks, composed with but not wrapping ClientHooks (§12.1). */
|
|
79
|
+
hooks?: ClientSessionHooks;
|
|
80
|
+
/** Logger for hook-failure diagnostics and orchestration-internal warnings. */
|
|
81
|
+
logger?: ClientLogger;
|
|
82
|
+
};
|
|
83
|
+
export type ClientSessionCallOptions = {
|
|
84
|
+
/** Per-call timeout override (ms). Applies to every hop independently. */
|
|
85
|
+
timeout?: number;
|
|
86
|
+
/** Abort signal — propagates to every hop of a redirect follow chain. */
|
|
87
|
+
signal?: AbortSignal;
|
|
88
|
+
/** Class context for instance-method schema resolution (same as client). */
|
|
89
|
+
class?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Per-call URL override. Redirect follow-ups use the redirection's
|
|
92
|
+
* URL, NOT this override.
|
|
93
|
+
*/
|
|
94
|
+
url?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Per-call transport override (`'http' | 'ws'`). Hop-1 only; subsequent
|
|
97
|
+
* hops pick their transport from the schema of the new target.
|
|
98
|
+
*/
|
|
99
|
+
transport?: CallTransport;
|
|
100
|
+
/**
|
|
101
|
+
* Per-call protocol override (`'envelope' | 'auto'`). `'auto'` uses
|
|
102
|
+
* the schema's `RouteBinding` when present and the transport is HTTP,
|
|
103
|
+
* else envelope. Hop-1 only.
|
|
104
|
+
*/
|
|
105
|
+
protocol?: Protocol;
|
|
106
|
+
/**
|
|
107
|
+
* Caller-provided correlation id. If absent, ClientSession generates one and
|
|
108
|
+
* threads it through every hop, hook ctx, and thrown error.
|
|
109
|
+
*/
|
|
110
|
+
correlationId?: string;
|
|
111
|
+
/**
|
|
112
|
+
* Per-call credential override. Skips the picker for this call only.
|
|
113
|
+
*/
|
|
114
|
+
credential?: CredentialInput;
|
|
115
|
+
/**
|
|
116
|
+
* Per-call delegation-expression override. When the call's target
|
|
117
|
+
* requires a delegation (§11.4), this `UnresolvedIdentityExpr` is passed
|
|
118
|
+
* to the mint instead of `DelegationPolicy.delegationFor`'s output.
|
|
119
|
+
* `undefined` = defer to policy; the kernel-core builder exports
|
|
120
|
+
* `scopedSelf(scopes)` for the common "narrow self-delegation" case.
|
|
121
|
+
*/
|
|
122
|
+
delegation?: UnresolvedIdentityExpr;
|
|
123
|
+
/**
|
|
124
|
+
* Per-call attestation override. Carried into the mint's outer envelope
|
|
125
|
+
* unchanged. `undefined` = defer to `DelegationPolicy.attestationFor`;
|
|
126
|
+
* if that is also absent, the mint omits the attestation param and the
|
|
127
|
+
* kernel adapter defaults it to `{ kind: 'identity', self: true }`.
|
|
128
|
+
*/
|
|
129
|
+
attestation?: SelfIdentityExpr;
|
|
130
|
+
/**
|
|
131
|
+
* Per-call delegation bypass. When `true`, ClientSession skips the entire
|
|
132
|
+
* pre-dispatch delegation block (§8.1 step ④) — `audienceFor` is NOT
|
|
133
|
+
* called, no mint fires, no policy consent runs. The base credential
|
|
134
|
+
* (`opts.credential` or the picker) dispatches as-is on every hop.
|
|
135
|
+
*
|
|
136
|
+
* Use when the host holds a credential it knows is valid for the target
|
|
137
|
+
* audience (external bearer, pre-minted delegation, test fixture)
|
|
138
|
+
* without the policy wrapping it in another delegation. `opts.delegation`
|
|
139
|
+
* / `opts.attestation` are ignored when this is `true` — the bypass is
|
|
140
|
+
* total.
|
|
141
|
+
*/
|
|
142
|
+
skipDelegation?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Per-call hop cap override. `0` = refuse any redirect. `N >= 1` =
|
|
145
|
+
* follow up to N. `undefined` = use `ClientSessionConfig.maxHops`.
|
|
146
|
+
*/
|
|
147
|
+
maxHops?: number;
|
|
148
|
+
/**
|
|
149
|
+
* Target-of-call ref for instance-method dispatch (e.g. `@<nodeId>`
|
|
150
|
+
* or `/path/to/node`). Forwarded as `KernelRequest.self` on the
|
|
151
|
+
* outbound envelope — sibling of params, never merged into them.
|
|
152
|
+
* Set by the CLI when rewriting `@<id>::method` and propagated
|
|
153
|
+
* across redirect hops via `CallRedirection.self`.
|
|
154
|
+
*/
|
|
155
|
+
self?: string;
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/session/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/session/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { IdentityPickerError, PersistenceLoadFailedError, RegistryWriteFailedError, SchemaOwnershipConflictError, UnresolvedIdentityError, } from './session-errors';
|
|
2
|
+
export { ClientSessionError } from '../../errors/session-error';
|
|
3
|
+
export { DelegationMintError, DelegationPolicyError, DelegationRefusedError, } from '../../delegation/errors';
|
|
4
|
+
export { PoolClosedError } from '../../pool/errors';
|
|
5
|
+
export { HopLimitExceededError, RedirectPolicyError, RedirectRefusedError, } from '../../redirect/errors';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/session/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { IdentityPickerError, PersistenceLoadFailedError, RegistryWriteFailedError, SchemaOwnershipConflictError, UnresolvedIdentityError, } from './session-errors';
|
|
2
|
+
// Re-exports so consumers catching every ClientSession-thrown shape have one
|
|
3
|
+
// import surface — each still ships from its owning subpath.
|
|
4
|
+
export { ClientSessionError } from '../../errors/session-error';
|
|
5
|
+
export { DelegationMintError, DelegationPolicyError, DelegationRefusedError, } from '../../delegation/errors';
|
|
6
|
+
export { PoolClosedError } from '../../pool/errors';
|
|
7
|
+
export { HopLimitExceededError, RedirectPolicyError, RedirectRefusedError, } from '../../redirect/errors';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,kBAAkB,CAAA;AAEzB,6EAA6E;AAC7E,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ClientSessionError } from '../../errors/session-error';
|
|
2
|
+
/**
|
|
3
|
+
* No credential could be resolved for a call.
|
|
4
|
+
*
|
|
5
|
+
* Thrown when `ClientSessionCallOptions.credential` is absent, the identity
|
|
6
|
+
* picker returned `undefined`, or the bound-view captured credential is
|
|
7
|
+
* unresolvable.
|
|
8
|
+
*/
|
|
9
|
+
export declare class UnresolvedIdentityError extends ClientSessionError {
|
|
10
|
+
constructor(message?: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The identity picker function threw.
|
|
14
|
+
*
|
|
15
|
+
* Wraps the original error as `cause`. Consumers that want to surface
|
|
16
|
+
* a sign-in prompt typically switch on `UnresolvedIdentityError` and
|
|
17
|
+
* this class together.
|
|
18
|
+
*/
|
|
19
|
+
export declare class IdentityPickerError extends ClientSessionError {
|
|
20
|
+
constructor(options?: ErrorOptions);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A schema learned on redirect was rejected by the registry's
|
|
24
|
+
* contract-drift check.
|
|
25
|
+
*
|
|
26
|
+
* Wraps the registry's error as `cause`. The current hop's schema
|
|
27
|
+
* disagrees with a previously-registered shape for the same ref —
|
|
28
|
+
* either a misconfigured kernel or an incompatible version.
|
|
29
|
+
*/
|
|
30
|
+
export declare class RegistryWriteFailedError extends ClientSessionError {
|
|
31
|
+
readonly ref: string;
|
|
32
|
+
constructor(ref: string, options?: ErrorOptions);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Caller passed both a pre-built `SchemaRegistry` and a `SchemaPersistence`
|
|
36
|
+
* adapter. ClientSession refuses to wire persistence onto a caller-owned registry
|
|
37
|
+
* to avoid double-writes or ordering corruption — wire persistence yourself
|
|
38
|
+
* or let ClientSession construct the registry.
|
|
39
|
+
*/
|
|
40
|
+
export declare class SchemaOwnershipConflictError extends ClientSessionError {
|
|
41
|
+
constructor();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* `SchemaPersistence.load()` threw during ClientSession construction.
|
|
45
|
+
*
|
|
46
|
+
* Wraps the adapter's error as `cause`. ClientSession aborts construction
|
|
47
|
+
* rather than proceed with a half-loaded registry.
|
|
48
|
+
*/
|
|
49
|
+
export declare class PersistenceLoadFailedError extends ClientSessionError {
|
|
50
|
+
constructor(options?: ErrorOptions);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=session-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-errors.d.ts","sourceRoot":"","sources":["../../../src/session/errors/session-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,kBAAkB;IAC7D,YAAY,OAAO,SAAyC,EAG3D;CACF;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,YAAY,OAAO,CAAC,EAAE,YAAY,EAGjC;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;aAE5C,GAAG,EAAE,MAAM;IAD7B,YACkB,GAAG,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,cAQC;CACF;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,kBAAkB;IAChE,YAAY,OAAO,CAAC,EAAE,YAAY,EAGjC;CACF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { ClientSessionError } from '../../errors/session-error';
|
|
2
|
+
/**
|
|
3
|
+
* No credential could be resolved for a call.
|
|
4
|
+
*
|
|
5
|
+
* Thrown when `ClientSessionCallOptions.credential` is absent, the identity
|
|
6
|
+
* picker returned `undefined`, or the bound-view captured credential is
|
|
7
|
+
* unresolvable.
|
|
8
|
+
*/
|
|
9
|
+
export class UnresolvedIdentityError extends ClientSessionError {
|
|
10
|
+
constructor(message = 'No credential resolved for this call') {
|
|
11
|
+
super(message, 'IDENTITY_UNRESOLVED');
|
|
12
|
+
this.name = 'UnresolvedIdentityError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The identity picker function threw.
|
|
17
|
+
*
|
|
18
|
+
* Wraps the original error as `cause`. Consumers that want to surface
|
|
19
|
+
* a sign-in prompt typically switch on `UnresolvedIdentityError` and
|
|
20
|
+
* this class together.
|
|
21
|
+
*/
|
|
22
|
+
export class IdentityPickerError extends ClientSessionError {
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super('Identity picker threw', 'IDENTITY_PICKER_THREW', options);
|
|
25
|
+
this.name = 'IdentityPickerError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A schema learned on redirect was rejected by the registry's
|
|
30
|
+
* contract-drift check.
|
|
31
|
+
*
|
|
32
|
+
* Wraps the registry's error as `cause`. The current hop's schema
|
|
33
|
+
* disagrees with a previously-registered shape for the same ref —
|
|
34
|
+
* either a misconfigured kernel or an incompatible version.
|
|
35
|
+
*/
|
|
36
|
+
export class RegistryWriteFailedError extends ClientSessionError {
|
|
37
|
+
ref;
|
|
38
|
+
constructor(ref, options) {
|
|
39
|
+
super(`Registry write failed for "${ref}"`, 'REGISTRY_WRITE_FAILED', options);
|
|
40
|
+
this.ref = ref;
|
|
41
|
+
this.name = 'RegistryWriteFailedError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Caller passed both a pre-built `SchemaRegistry` and a `SchemaPersistence`
|
|
46
|
+
* adapter. ClientSession refuses to wire persistence onto a caller-owned registry
|
|
47
|
+
* to avoid double-writes or ordering corruption — wire persistence yourself
|
|
48
|
+
* or let ClientSession construct the registry.
|
|
49
|
+
*/
|
|
50
|
+
export class SchemaOwnershipConflictError extends ClientSessionError {
|
|
51
|
+
constructor() {
|
|
52
|
+
super('ClientSessionConfig.schema (SchemaRegistry) is incompatible with ClientSessionConfig.schemaStore. ' +
|
|
53
|
+
'Pass only the registry and wire persistence yourself, or pass only schemaStore + ' +
|
|
54
|
+
'let ClientSession construct the registry.', 'SCHEMA_OWNERSHIP_CONFLICT');
|
|
55
|
+
this.name = 'SchemaOwnershipConflictError';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* `SchemaPersistence.load()` threw during ClientSession construction.
|
|
60
|
+
*
|
|
61
|
+
* Wraps the adapter's error as `cause`. ClientSession aborts construction
|
|
62
|
+
* rather than proceed with a half-loaded registry.
|
|
63
|
+
*/
|
|
64
|
+
export class PersistenceLoadFailedError extends ClientSessionError {
|
|
65
|
+
constructor(options) {
|
|
66
|
+
super('SchemaPersistence.load() threw', 'PERSISTENCE_LOAD_FAILED', options);
|
|
67
|
+
this.name = 'PersistenceLoadFailedError';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=session-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-errors.js","sourceRoot":"","sources":["../../../src/session/errors/session-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,OAAO,uBAAwB,SAAQ,kBAAkB;IAC7D,YAAY,OAAO,GAAG,sCAAsC;QAC1D,KAAK,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,mBAAoB,SAAQ,kBAAkB;IACzD,YAAY,OAAsB;QAChC,KAAK,CAAC,uBAAuB,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAE5C,GAAG;IADrB,YACkB,GAAW,EAC3B,OAAsB;QAEtB,KAAK,CAAC,8BAA8B,GAAG,GAAG,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAA;mBAH7D,GAAG;QAInB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,4BAA6B,SAAQ,kBAAkB;IAClE;QACE,KAAK,CACH,oGAAoG;YAClG,mFAAmF;YACnF,2CAA2C,EAC7C,2BAA2B,CAC5B,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAA;IAC5C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,0BAA2B,SAAQ,kBAAkB;IAChE,YAAY,OAAsB;QAChC,KAAK,CAAC,gCAAgC,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAA;QAC3E,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CallOptions } from '../client/config';
|
|
2
|
+
import type { ClientSessionCallOptions } from './config';
|
|
3
|
+
/**
|
|
4
|
+
* Assemble the `CallOptions` forwarded to `client.send` for one hop.
|
|
5
|
+
* Per-hop fields (timeout/signal/class/self) forward every hop. The `url` is
|
|
6
|
+
* hop-specific: hop 0 uses the caller's `opts.url`; redirect follow-ups use
|
|
7
|
+
* `redirectTarget` (the URL the kernel redirected to), so the per-request URL
|
|
8
|
+
* builder retargets verbatim instead of falling back to the schema binding.
|
|
9
|
+
* transport/protocol stay hop-0-only — follow-ups pick them from the new
|
|
10
|
+
* target's schema. `credential`, `maxHops`, `correlationId` are consumed by
|
|
11
|
+
* ClientSession itself and not forwarded here.
|
|
12
|
+
*/
|
|
13
|
+
export declare function forwardedFor(opts: ClientSessionCallOptions | undefined, hopIndex: number, redirectTarget?: string): CallOptions;
|
|
14
|
+
//# sourceMappingURL=forward.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forward.d.ts","sourceRoot":"","sources":["../../src/session/forward.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAExD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,wBAAwB,GAAG,SAAS,EAC1C,QAAQ,EAAE,MAAM,EAChB,cAAc,CAAC,EAAE,MAAM,GACtB,WAAW,CA0Bb"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assemble the `CallOptions` forwarded to `client.send` for one hop.
|
|
3
|
+
* Per-hop fields (timeout/signal/class/self) forward every hop. The `url` is
|
|
4
|
+
* hop-specific: hop 0 uses the caller's `opts.url`; redirect follow-ups use
|
|
5
|
+
* `redirectTarget` (the URL the kernel redirected to), so the per-request URL
|
|
6
|
+
* builder retargets verbatim instead of falling back to the schema binding.
|
|
7
|
+
* transport/protocol stay hop-0-only — follow-ups pick them from the new
|
|
8
|
+
* target's schema. `credential`, `maxHops`, `correlationId` are consumed by
|
|
9
|
+
* ClientSession itself and not forwarded here.
|
|
10
|
+
*/
|
|
11
|
+
export function forwardedFor(opts, hopIndex, redirectTarget) {
|
|
12
|
+
const out = {};
|
|
13
|
+
if (!opts) {
|
|
14
|
+
// No caller opts, but a redirect follow-up still needs its target on the wire.
|
|
15
|
+
if (hopIndex > 0 && redirectTarget !== undefined)
|
|
16
|
+
out.url = redirectTarget;
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
if (opts.timeout !== undefined)
|
|
20
|
+
out.timeout = opts.timeout;
|
|
21
|
+
if (opts.signal !== undefined)
|
|
22
|
+
out.signal = opts.signal;
|
|
23
|
+
if (opts.class !== undefined)
|
|
24
|
+
out.class = opts.class;
|
|
25
|
+
// `self` forwards every hop; `redirection.self` replaces it on follow.
|
|
26
|
+
if (opts.self !== undefined)
|
|
27
|
+
out.self = opts.self;
|
|
28
|
+
if (hopIndex === 0) {
|
|
29
|
+
if (opts.url !== undefined)
|
|
30
|
+
out.url = opts.url;
|
|
31
|
+
if (opts.transport !== undefined)
|
|
32
|
+
out.transport = opts.transport;
|
|
33
|
+
if (opts.protocol !== undefined)
|
|
34
|
+
out.protocol = opts.protocol;
|
|
35
|
+
}
|
|
36
|
+
else if (redirectTarget !== undefined) {
|
|
37
|
+
// Redirect-resolved endpoint (path + placeholders intact) → dial verbatim.
|
|
38
|
+
// http-envelope `targetFor` only appends a trailing slash to a server root
|
|
39
|
+
// (the kernel envelope, hop 0); a worker route URL must be dialed as-is.
|
|
40
|
+
out.url = redirectTarget;
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=forward.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forward.js","sourceRoot":"","sources":["../../src/session/forward.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,IAA0C,EAC1C,QAAgB,EAChB,cAAuB;IAEvB,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,+EAA+E;QAC/E,IAAI,QAAQ,GAAG,CAAC,IAAI,cAAc,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,GAAG,cAAc,CAAA;QAC1E,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IACvD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACpD,uEAAuE;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAEjD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAC9C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAChE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC/D,CAAC;SAAM,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACxC,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,GAAG,CAAC,GAAG,GAAG,cAAc,CAAA;IAC1B,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CallRedirection } from '@astrale-os/kernel-api';
|
|
2
|
+
import type { ClientSessionErrorCtx } from './hooks';
|
|
3
|
+
/**
|
|
4
|
+
* Unwrap a successful `SendResult` / `SendStreamResult` / `SendBinaryResult`
|
|
5
|
+
* to the post-orchestration shape ClientSession hands back to the caller. Redirect
|
|
6
|
+
* results are handled on the dispatch loop; passing one here is a bug.
|
|
7
|
+
*/
|
|
8
|
+
export declare function unwrapResult(result: {
|
|
9
|
+
kind: 'value' | 'stream' | 'binary' | 'redirect';
|
|
10
|
+
value?: unknown;
|
|
11
|
+
chunks?: unknown;
|
|
12
|
+
response?: unknown;
|
|
13
|
+
redirection?: CallRedirection;
|
|
14
|
+
}): unknown;
|
|
15
|
+
export declare function freezeHops<T>(arr: readonly T[]): ReadonlyArray<T>;
|
|
16
|
+
/** Non-cryptographic correlation id; `sh-` prefix disambiguates from caller-supplied cids. */
|
|
17
|
+
export declare function generateCid(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Map an error to a `ClientSessionErrorCtx.context`. Specific subclasses first,
|
|
20
|
+
* `ClientSessionError` catch-all next, wire `'transport'` last.
|
|
21
|
+
*/
|
|
22
|
+
export declare function classifyError(err: unknown): ClientSessionErrorCtx['context'];
|
|
23
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/session/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAiBpD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAA;IAChD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B,GAAG,OAAO,CAWV;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAEjE;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAY5E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { DelegationMintError, DelegationPolicyError, DelegationRefusedError, } from '../delegation/errors';
|
|
2
|
+
import { ClientSessionError } from '../errors/session-error';
|
|
3
|
+
import { PoolClosedError } from '../pool/errors';
|
|
4
|
+
import { RedirectPolicyError } from '../redirect/errors';
|
|
5
|
+
import { IdentityPickerError, PersistenceLoadFailedError, RegistryWriteFailedError, UnresolvedIdentityError, } from './errors/session-errors';
|
|
6
|
+
/**
|
|
7
|
+
* Unwrap a successful `SendResult` / `SendStreamResult` / `SendBinaryResult`
|
|
8
|
+
* to the post-orchestration shape ClientSession hands back to the caller. Redirect
|
|
9
|
+
* results are handled on the dispatch loop; passing one here is a bug.
|
|
10
|
+
*/
|
|
11
|
+
export function unwrapResult(result) {
|
|
12
|
+
switch (result.kind) {
|
|
13
|
+
case 'value':
|
|
14
|
+
return result.value;
|
|
15
|
+
case 'stream':
|
|
16
|
+
return result.chunks;
|
|
17
|
+
case 'binary':
|
|
18
|
+
return result.response;
|
|
19
|
+
case 'redirect':
|
|
20
|
+
throw new Error('Unreachable: redirect passed to unwrapResult');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function freezeHops(arr) {
|
|
24
|
+
return Object.freeze([...arr]);
|
|
25
|
+
}
|
|
26
|
+
/** Non-cryptographic correlation id; `sh-` prefix disambiguates from caller-supplied cids. */
|
|
27
|
+
export function generateCid() {
|
|
28
|
+
const r = Math.random().toString(36).slice(2, 10);
|
|
29
|
+
return `sh-${Date.now().toString(36)}-${r}`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Map an error to a `ClientSessionErrorCtx.context`. Specific subclasses first,
|
|
33
|
+
* `ClientSessionError` catch-all next, wire `'transport'` last.
|
|
34
|
+
*/
|
|
35
|
+
export function classifyError(err) {
|
|
36
|
+
if (err instanceof RegistryWriteFailedError)
|
|
37
|
+
return 'registry';
|
|
38
|
+
if (err instanceof PersistenceLoadFailedError)
|
|
39
|
+
return 'persistence.load';
|
|
40
|
+
if (err instanceof RedirectPolicyError)
|
|
41
|
+
return 'redirect.policy';
|
|
42
|
+
if (err instanceof DelegationPolicyError)
|
|
43
|
+
return 'delegation.policy';
|
|
44
|
+
if (err instanceof DelegationMintError)
|
|
45
|
+
return 'delegation.mint';
|
|
46
|
+
if (err instanceof DelegationRefusedError)
|
|
47
|
+
return 'delegation.refused';
|
|
48
|
+
if (err instanceof UnresolvedIdentityError || err instanceof IdentityPickerError)
|
|
49
|
+
return 'identity';
|
|
50
|
+
if (err instanceof PoolClosedError)
|
|
51
|
+
return 'session';
|
|
52
|
+
if (err instanceof ClientSessionError)
|
|
53
|
+
return 'session';
|
|
54
|
+
return 'transport';
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/session/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA;AAEhC;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAM5B;IACC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,OAAO;YACV,OAAO,MAAM,CAAC,KAAK,CAAA;QACrB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,CAAA;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,QAAQ,CAAA;QACxB,KAAK,UAAU;YACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACnE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,GAAiB;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;AAChC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjD,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,YAAY,wBAAwB;QAAE,OAAO,UAAU,CAAA;IAC9D,IAAI,GAAG,YAAY,0BAA0B;QAAE,OAAO,kBAAkB,CAAA;IACxE,IAAI,GAAG,YAAY,mBAAmB;QAAE,OAAO,iBAAiB,CAAA;IAChE,IAAI,GAAG,YAAY,qBAAqB;QAAE,OAAO,mBAAmB,CAAA;IACpE,IAAI,GAAG,YAAY,mBAAmB;QAAE,OAAO,iBAAiB,CAAA;IAChE,IAAI,GAAG,YAAY,sBAAsB;QAAE,OAAO,oBAAoB,CAAA;IACtE,IAAI,GAAG,YAAY,uBAAuB,IAAI,GAAG,YAAY,mBAAmB;QAC9E,OAAO,UAAU,CAAA;IACnB,IAAI,GAAG,YAAY,eAAe;QAAE,OAAO,SAAS,CAAA;IACpD,IAAI,GAAG,YAAY,kBAAkB;QAAE,OAAO,SAAS,CAAA;IACvD,OAAO,WAAW,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { CallRedirection } from '@astrale-os/kernel-api';
|
|
2
|
+
import type { CredentialInput } from '@astrale-os/kernel-core';
|
|
3
|
+
import type { SelfIdentityExpr, UnresolvedIdentityExpr } from '@astrale-os/kernel-core/expression';
|
|
4
|
+
import type { FunctionSchema } from '../schema/types';
|
|
5
|
+
/** Hop record ClientSession threads through every ctx type. */
|
|
6
|
+
export type ClientSessionHop = {
|
|
7
|
+
url: string;
|
|
8
|
+
at: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Ctx for the entry of a top-level `session.call`. Fields are captured
|
|
12
|
+
* *before* any wire I/O — `credential` is the baseCred resolved from
|
|
13
|
+
* the picker or `opts.credential`, not the per-hop delegation.
|
|
14
|
+
*/
|
|
15
|
+
export type BeforeCallCtx = {
|
|
16
|
+
method: string;
|
|
17
|
+
params: unknown;
|
|
18
|
+
credential: CredentialInput;
|
|
19
|
+
/** Initial target — may not equal default if `opts.url` was used. */
|
|
20
|
+
url: string;
|
|
21
|
+
correlationId: string;
|
|
22
|
+
maxHops: number;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Ctx for a successful `session.call`. `result` is the unwrapped value
|
|
26
|
+
* the caller received; `hops` is the full chain.
|
|
27
|
+
*/
|
|
28
|
+
export type AfterCallCtx = BeforeCallCtx & {
|
|
29
|
+
result: unknown;
|
|
30
|
+
hops: ReadonlyArray<ClientSessionHop>;
|
|
31
|
+
/** Wall-clock ms from `onBeforeCall` firing to this hook firing. */
|
|
32
|
+
durationMs: number;
|
|
33
|
+
};
|
|
34
|
+
/** Ctx for a followed redirect hop transition. */
|
|
35
|
+
export type RedirectFollowCtx = BeforeCallCtx & {
|
|
36
|
+
/** 0-based hop index being departed. */
|
|
37
|
+
fromHop: number;
|
|
38
|
+
fromUrl: string;
|
|
39
|
+
toUrl: string;
|
|
40
|
+
redirection: CallRedirection;
|
|
41
|
+
/** Present if `redirection.schema` was saved to the registry. */
|
|
42
|
+
schemaLearned?: FunctionSchema;
|
|
43
|
+
/** True if a fresh mint happened for this hop (cache miss). */
|
|
44
|
+
delegationMinted: boolean;
|
|
45
|
+
};
|
|
46
|
+
/** Ctx for a refused redirect — symmetric with `RedirectFollowCtx`. */
|
|
47
|
+
export type RedirectRefusedCtx = BeforeCallCtx & {
|
|
48
|
+
fromUrl: string;
|
|
49
|
+
redirection: CallRedirection;
|
|
50
|
+
/** From `RedirectPolicy.decide({ follow: false, reason })`. */
|
|
51
|
+
reason: string;
|
|
52
|
+
};
|
|
53
|
+
/** Ctx for a refused delegation (policy.decide returned `{ allow: false }`). */
|
|
54
|
+
export type DelegationRefusedCtx = BeforeCallCtx & {
|
|
55
|
+
/** URL the delegation would have targeted. */
|
|
56
|
+
target: string;
|
|
57
|
+
/** Audience derived by `DelegationPolicy.audienceFor`. */
|
|
58
|
+
audience: string;
|
|
59
|
+
/** Expression the mint would have carried (pre-refine per §9.3.1). */
|
|
60
|
+
delegation: UnresolvedIdentityExpr;
|
|
61
|
+
/** Outer-envelope attestation the mint would have carried, if any. */
|
|
62
|
+
attestation?: SelfIdentityExpr;
|
|
63
|
+
/** From `DelegationPolicy.decide({ allow: false, reason })`. */
|
|
64
|
+
reason: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Ctx for a fresh delegation mint. Does NOT extend `BeforeCallCtx` —
|
|
68
|
+
* a mint can coalesce across N triggering calls, so single-cid fields
|
|
69
|
+
* would lie; see `triggeringCorrelationIds`.
|
|
70
|
+
*
|
|
71
|
+
* `delegation` / `attestation` are post-refine (what was actually minted
|
|
72
|
+
* and keyed in the cache), not the originals from `delegationFor`.
|
|
73
|
+
*/
|
|
74
|
+
export type DelegationMintCtx = {
|
|
75
|
+
audience: string;
|
|
76
|
+
/** The `UnresolvedIdentityExpr` the mint actually carried. */
|
|
77
|
+
delegation: UnresolvedIdentityExpr;
|
|
78
|
+
/** The `SelfIdentityExpr` the mint actually carried, if any. */
|
|
79
|
+
attestation?: SelfIdentityExpr;
|
|
80
|
+
/**
|
|
81
|
+
* Correlation id(s) of the call(s) waiting on this mint. When
|
|
82
|
+
* multiple concurrent callers share one mint, every waiter's id
|
|
83
|
+
* appears. First element is the triggering call; remaining elements
|
|
84
|
+
* are callers that joined before resolution.
|
|
85
|
+
*
|
|
86
|
+
* Cross-session limitation: when two ClientSessions share one
|
|
87
|
+
* `DelegationCache` and one of them drives the mint while the other
|
|
88
|
+
* joins the in-flight promise, only the driving ClientSession's waiters
|
|
89
|
+
* appear here. The joining ClientSession's `triggeringCorrelationIds` is
|
|
90
|
+
* empty for that mint. Callers needing mint-correlation across
|
|
91
|
+
* shared caches observe it through the owning ClientSession's hook.
|
|
92
|
+
*/
|
|
93
|
+
triggeringCorrelationIds: readonly string[];
|
|
94
|
+
/**
|
|
95
|
+
* Method name of the triggering call — quick filtering helper;
|
|
96
|
+
* per-correlationId methods can be tracked separately.
|
|
97
|
+
*/
|
|
98
|
+
triggeringMethod: string;
|
|
99
|
+
/** Wall-clock ms the mint took. */
|
|
100
|
+
durationMs: number;
|
|
101
|
+
/** TTL (seconds) of the minted credential. */
|
|
102
|
+
ttl: number;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Ctx for any error thrown from ClientSession. `context` triages the error
|
|
106
|
+
* source without stack parsing.
|
|
107
|
+
*/
|
|
108
|
+
export type ClientSessionErrorCtx = BeforeCallCtx & {
|
|
109
|
+
error: Error;
|
|
110
|
+
hops: ReadonlyArray<ClientSessionHop>;
|
|
111
|
+
context: 'transport' | 'redirect.policy' | 'delegation.policy' | 'delegation.mint' | 'delegation.refused' | 'identity' | 'registry' | 'persistence.load' | 'persistence.save' | 'session';
|
|
112
|
+
};
|
|
113
|
+
/** Ctx for `session.signal` dispatch — fire-and-forget, no result. */
|
|
114
|
+
export type AfterSignalCtx = {
|
|
115
|
+
method: string;
|
|
116
|
+
params: unknown;
|
|
117
|
+
url: string;
|
|
118
|
+
correlationId: string;
|
|
119
|
+
dispatchedAt: number;
|
|
120
|
+
};
|
|
121
|
+
/** Orchestration-layer hook surface. `ClientHooks` still fires per hop. */
|
|
122
|
+
export type ClientSessionHooks = {
|
|
123
|
+
/** Fires once per top-level `session.call`/`stream`/`binary` (NOT per hop). */
|
|
124
|
+
onBeforeCall?: (ctx: BeforeCallCtx) => void | Promise<void>;
|
|
125
|
+
/** Fires once per successful top-level call, after final-hop unwrap. */
|
|
126
|
+
onAfterCall?: (ctx: AfterCallCtx) => void | Promise<void>;
|
|
127
|
+
/** Fires once per redirect actually followed. */
|
|
128
|
+
onRedirectFollow?: (ctx: RedirectFollowCtx) => void | Promise<void>;
|
|
129
|
+
/** Fires once per refused redirect (before the throw). */
|
|
130
|
+
onRedirectRefused?: (ctx: RedirectRefusedCtx) => void | Promise<void>;
|
|
131
|
+
/** Fires once per delegation mint (cache miss). */
|
|
132
|
+
onDelegationMint?: (ctx: DelegationMintCtx) => void | Promise<void>;
|
|
133
|
+
/** Fires once per refused delegation (before the throw). */
|
|
134
|
+
onDelegationRefused?: (ctx: DelegationRefusedCtx) => void | Promise<void>;
|
|
135
|
+
/** Fires on every error thrown from ClientSession. */
|
|
136
|
+
onError?: (ctx: ClientSessionErrorCtx) => void | Promise<void>;
|
|
137
|
+
/** Fires on `session.signal` dispatch. */
|
|
138
|
+
onAfterSignal?: (ctx: AfterSignalCtx) => void | Promise<void>;
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/session/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/session/hooks.ts"],"names":[],"mappings":""}
|