@cotal-ai/core 0.11.6 → 0.13.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/acls.d.ts +31 -7
- package/dist/acls.d.ts.map +1 -1
- package/dist/acls.js +105 -17
- package/dist/acls.js.map +1 -1
- package/dist/agent-file.js +1 -1
- package/dist/agent-file.js.map +1 -1
- package/dist/auth-provider.d.ts +90 -10
- package/dist/auth-provider.d.ts.map +1 -1
- package/dist/auth-provider.js.map +1 -1
- package/dist/backup-config.d.ts +55 -0
- package/dist/backup-config.d.ts.map +1 -0
- package/dist/backup-config.js +243 -0
- package/dist/backup-config.js.map +1 -0
- package/dist/backup.d.ts +86 -0
- package/dist/backup.d.ts.map +1 -0
- package/dist/backup.js +497 -0
- package/dist/backup.js.map +1 -0
- package/dist/broker-floor.d.ts +34 -0
- package/dist/broker-floor.d.ts.map +1 -0
- package/dist/broker-floor.js +39 -0
- package/dist/broker-floor.js.map +1 -0
- package/dist/canonical.d.ts +24 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +159 -0
- package/dist/canonical.js.map +1 -0
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +8 -1
- package/dist/channels.js.map +1 -1
- package/dist/connector.d.ts +4 -0
- package/dist/connector.d.ts.map +1 -1
- package/dist/endpoint-action.d.ts +424 -0
- package/dist/endpoint-action.d.ts.map +1 -0
- package/dist/endpoint-action.js +910 -0
- package/dist/endpoint-action.js.map +1 -0
- package/dist/endpoint-binding.d.ts +344 -0
- package/dist/endpoint-binding.d.ts.map +1 -0
- package/dist/endpoint-binding.js +753 -0
- package/dist/endpoint-binding.js.map +1 -0
- package/dist/endpoint-checkpoint.d.ts +292 -0
- package/dist/endpoint-checkpoint.d.ts.map +1 -0
- package/dist/endpoint-checkpoint.js +818 -0
- package/dist/endpoint-checkpoint.js.map +1 -0
- package/dist/endpoint-cluster.d.ts +95 -0
- package/dist/endpoint-cluster.d.ts.map +1 -0
- package/dist/endpoint-cluster.js +194 -0
- package/dist/endpoint-cluster.js.map +1 -0
- package/dist/endpoint-contract-store.d.ts +90 -0
- package/dist/endpoint-contract-store.d.ts.map +1 -0
- package/dist/endpoint-contract-store.js +348 -0
- package/dist/endpoint-contract-store.js.map +1 -0
- package/dist/endpoint-envelope.d.ts +165 -0
- package/dist/endpoint-envelope.d.ts.map +1 -0
- package/dist/endpoint-envelope.js +346 -0
- package/dist/endpoint-envelope.js.map +1 -0
- package/dist/endpoint-grants.d.ts +123 -0
- package/dist/endpoint-grants.d.ts.map +1 -0
- package/dist/endpoint-grants.js +215 -0
- package/dist/endpoint-grants.js.map +1 -0
- package/dist/endpoint-guard.d.ts +222 -0
- package/dist/endpoint-guard.d.ts.map +1 -0
- package/dist/endpoint-guard.js +468 -0
- package/dist/endpoint-guard.js.map +1 -0
- package/dist/endpoint-handle.d.ts +176 -0
- package/dist/endpoint-handle.d.ts.map +1 -0
- package/dist/endpoint-handle.js +608 -0
- package/dist/endpoint-handle.js.map +1 -0
- package/dist/endpoint-journal.d.ts +225 -0
- package/dist/endpoint-journal.d.ts.map +1 -0
- package/dist/endpoint-journal.js +431 -0
- package/dist/endpoint-journal.js.map +1 -0
- package/dist/endpoint-receipt.d.ts +225 -0
- package/dist/endpoint-receipt.d.ts.map +1 -0
- package/dist/endpoint-receipt.js +417 -0
- package/dist/endpoint-receipt.js.map +1 -0
- package/dist/endpoint-records.d.ts +243 -0
- package/dist/endpoint-records.d.ts.map +1 -0
- package/dist/endpoint-records.js +591 -0
- package/dist/endpoint-records.js.map +1 -0
- package/dist/endpoint-serve.d.ts +176 -0
- package/dist/endpoint-serve.d.ts.map +1 -0
- package/dist/endpoint-serve.js +446 -0
- package/dist/endpoint-serve.js.map +1 -0
- package/dist/endpoint-service.d.ts +518 -0
- package/dist/endpoint-service.d.ts.map +1 -0
- package/dist/endpoint-service.js +973 -0
- package/dist/endpoint-service.js.map +1 -0
- package/dist/endpoint-session.d.ts +398 -0
- package/dist/endpoint-session.d.ts.map +1 -0
- package/dist/endpoint-session.js +834 -0
- package/dist/endpoint-session.js.map +1 -0
- package/dist/endpoint-signing.d.ts +105 -0
- package/dist/endpoint-signing.d.ts.map +1 -0
- package/dist/endpoint-signing.js +190 -0
- package/dist/endpoint-signing.js.map +1 -0
- package/dist/endpoint-subjects.d.ts +222 -0
- package/dist/endpoint-subjects.d.ts.map +1 -0
- package/dist/endpoint-subjects.js +381 -0
- package/dist/endpoint-subjects.js.map +1 -0
- package/dist/endpoint-supervisor.d.ts +19 -0
- package/dist/endpoint-supervisor.d.ts.map +1 -0
- package/dist/endpoint-supervisor.js +12 -0
- package/dist/endpoint-supervisor.js.map +1 -0
- package/dist/endpoint-traits.d.ts +225 -0
- package/dist/endpoint-traits.d.ts.map +1 -0
- package/dist/endpoint-traits.js +469 -0
- package/dist/endpoint-traits.js.map +1 -0
- package/dist/endpoint-verbs.d.ts +277 -0
- package/dist/endpoint-verbs.d.ts.map +1 -0
- package/dist/endpoint-verbs.js +576 -0
- package/dist/endpoint-verbs.js.map +1 -0
- package/dist/endpoint-virtual.d.ts +308 -0
- package/dist/endpoint-virtual.d.ts.map +1 -0
- package/dist/endpoint-virtual.js +440 -0
- package/dist/endpoint-virtual.js.map +1 -0
- package/dist/endpoint-work.d.ts +304 -0
- package/dist/endpoint-work.d.ts.map +1 -0
- package/dist/endpoint-work.js +728 -0
- package/dist/endpoint-work.js.map +1 -0
- package/dist/endpoint.d.ts +66 -22
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +289 -89
- package/dist/endpoint.js.map +1 -1
- package/dist/evict.d.ts +95 -32
- package/dist/evict.d.ts.map +1 -1
- package/dist/evict.js +193 -3
- package/dist/evict.js.map +1 -1
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -1
- package/dist/lease.d.ts +4 -0
- package/dist/lease.d.ts.map +1 -1
- package/dist/lease.js.map +1 -1
- package/dist/members.d.ts +4 -4
- package/dist/members.d.ts.map +1 -1
- package/dist/members.js +12 -12
- package/dist/members.js.map +1 -1
- package/dist/provision.d.ts +78 -20
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +214 -37
- package/dist/provision.js.map +1 -1
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/safe-pattern.d.ts +33 -0
- package/dist/safe-pattern.d.ts.map +1 -0
- package/dist/safe-pattern.js +486 -0
- package/dist/safe-pattern.js.map +1 -0
- package/dist/schema-profile.d.ts +93 -0
- package/dist/schema-profile.d.ts.map +1 -0
- package/dist/schema-profile.js +284 -0
- package/dist/schema-profile.js.map +1 -0
- package/dist/secret-store.d.ts +46 -0
- package/dist/secret-store.d.ts.map +1 -0
- package/dist/secret-store.js +2 -0
- package/dist/secret-store.js.map +1 -0
- package/dist/space-auth.d.ts +9 -0
- package/dist/space-auth.d.ts.map +1 -0
- package/dist/space-auth.js +126 -0
- package/dist/space-auth.js.map +1 -0
- package/dist/streams.d.ts +14 -10
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +47 -76
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +100 -40
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +136 -60
- package/dist/subjects.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-service.js","sourceRoot":"","sources":["../src/endpoint-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
import type { NatsConnection } from "@nats-io/transport-node";
|
|
2
|
+
import { type AnchorResolver } from "./endpoint-signing.js";
|
|
3
|
+
/** Grant validity ceiling — a session grant is LIVE-class authority (§13.6 "expiry per the
|
|
4
|
+
* handle rules"; it is one-use and epoch-bound on both sides, never sturdy). */
|
|
5
|
+
export declare const SESSION_GRANT_MAX_TTL_MS: number;
|
|
6
|
+
export declare const SESSION_GRANT_MAX_BYTES: number;
|
|
7
|
+
/** The bounded flow window (§13.6: declared in the grant; overflow is `resource-exhausted`). */
|
|
8
|
+
export declare const SESSION_WINDOW_DEFAULT = 64;
|
|
9
|
+
export declare const SESSION_WINDOW_MAX = 1024;
|
|
10
|
+
/** §13.6 "fresh unguessable sessionId": at least 22 base64url chars (≥128 bits) — enforced on
|
|
11
|
+
* CALLER-SUPPLIED ids too, so a short guessable id cannot ride in through the mint arg. */
|
|
12
|
+
export declare const SESSION_ID_MIN_CHARS = 22;
|
|
13
|
+
/** Mint a fresh unguessable sessionId: 32 CSPRNG bytes, base64url (43 chars, within the
|
|
14
|
+
* bounded id-token grammar the subject builder pins). */
|
|
15
|
+
export declare function mintSessionId(): string;
|
|
16
|
+
/** The §13.6/§13.10 session grant: one-use, holder-bound, epoch-pinned on BOTH sides. */
|
|
17
|
+
export interface SessionGrant {
|
|
18
|
+
v: 1;
|
|
19
|
+
sessionId: string;
|
|
20
|
+
space: string;
|
|
21
|
+
endpoint: string;
|
|
22
|
+
/** BOTH rail subjects, explicit in the signed form AND re-derived at verification. */
|
|
23
|
+
subjects: {
|
|
24
|
+
in: string;
|
|
25
|
+
out: string;
|
|
26
|
+
};
|
|
27
|
+
/** The redeeming caller: live authority — bound to lifecycle AND current process epoch. */
|
|
28
|
+
holder: {
|
|
29
|
+
id: string;
|
|
30
|
+
lifecycleUid: string;
|
|
31
|
+
processEpoch: number;
|
|
32
|
+
};
|
|
33
|
+
/** The serving instance the session is pinned to; the epoch rides the subjects too. */
|
|
34
|
+
serving: {
|
|
35
|
+
instanceId: string;
|
|
36
|
+
epoch: number;
|
|
37
|
+
};
|
|
38
|
+
/** Max in-flight (unacknowledged) data frames per direction. */
|
|
39
|
+
window: number;
|
|
40
|
+
iat: number;
|
|
41
|
+
nbf?: number;
|
|
42
|
+
exp: number;
|
|
43
|
+
/** Freshness/anti-replay token for the establishment exchange (the one-use is the ledger
|
|
44
|
+
* create-CAS; the nonce only disambiguates re-issued grants for the same pair). */
|
|
45
|
+
nonce: string;
|
|
46
|
+
/** Signing key (anchor registry, role `sessions`). */
|
|
47
|
+
issuer: {
|
|
48
|
+
keyId: string;
|
|
49
|
+
};
|
|
50
|
+
sig: string;
|
|
51
|
+
}
|
|
52
|
+
/** Everything {@link mintSessionGrant} needs besides the signing key. */
|
|
53
|
+
export interface MintSessionGrantArgs {
|
|
54
|
+
space: string;
|
|
55
|
+
endpoint: string;
|
|
56
|
+
sessionId?: string;
|
|
57
|
+
holder: {
|
|
58
|
+
id: string;
|
|
59
|
+
lifecycleUid: string;
|
|
60
|
+
processEpoch: number;
|
|
61
|
+
};
|
|
62
|
+
serving: {
|
|
63
|
+
instanceId: string;
|
|
64
|
+
epoch: number;
|
|
65
|
+
};
|
|
66
|
+
window?: number;
|
|
67
|
+
ttlMs: number;
|
|
68
|
+
issuerKeyId: string;
|
|
69
|
+
now?: number;
|
|
70
|
+
}
|
|
71
|
+
/** Build + sign a session grant (the serving side's establishment answer). The rail subjects
|
|
72
|
+
* are DERIVED here — the signature pins them; a verifier re-derives and compares. */
|
|
73
|
+
export declare function mintSessionGrant(args: MintSessionGrantArgs, keyPair: {
|
|
74
|
+
sign(input: Uint8Array): Uint8Array;
|
|
75
|
+
}): SessionGrant;
|
|
76
|
+
/** Parse + verify a presented session grant, D28-exact: the signature verifies over the EXACT
|
|
77
|
+
* raw artifact (sig absent), the parsed projection is for semantics only; the anchor is
|
|
78
|
+
* resolved FRESH (role `sessions`, scope ceiling covers the endpoint); the rail subjects are
|
|
79
|
+
* re-derived and compared; currency is checked at `now`. Fail-closed everywhere; every nested
|
|
80
|
+
* object is a CLOSED schema. */
|
|
81
|
+
export declare function verifySessionGrant(raw: unknown, opts: {
|
|
82
|
+
space: string;
|
|
83
|
+
resolveAnchor: AnchorResolver;
|
|
84
|
+
now?: number;
|
|
85
|
+
}): Promise<SessionGrant>;
|
|
86
|
+
export declare const SESSION_TERMINAL_STATES: readonly ["closed", "expired", "superseded", "retired"];
|
|
87
|
+
export type SessionTerminalState = (typeof SESSION_TERMINAL_STATES)[number];
|
|
88
|
+
export type SessionState = "issuing" | "active" | SessionTerminalState;
|
|
89
|
+
/** The durable revocation authority that survives the serving endpoint (§13.6). Both
|
|
90
|
+
* credential ids are recorded FROM CREATION (the `issuing` write), so a crash at any later
|
|
91
|
+
* point leaves a row that names exactly what the sweep must revoke. The row also pins the
|
|
92
|
+
* ENDPOINT: `instanceId` is unique only within `(space, endpoint)`, so a row without the
|
|
93
|
+
* endpoint could not prove WHICH endpoint's serving party is entitled to retrieve/close. */
|
|
94
|
+
export interface SessionLedgerRow {
|
|
95
|
+
sessionId: string;
|
|
96
|
+
/** The serving endpoint name — with `serving.instanceId`/`epoch` this is the full serving
|
|
97
|
+
* identity every serving-party operation authenticates against. */
|
|
98
|
+
endpoint: string;
|
|
99
|
+
serving: {
|
|
100
|
+
instanceId: string;
|
|
101
|
+
epoch: number;
|
|
102
|
+
};
|
|
103
|
+
holder: {
|
|
104
|
+
principal: string;
|
|
105
|
+
lifecycleUid: string;
|
|
106
|
+
};
|
|
107
|
+
/** The WINNING grant's Ed25519 signature — the full verified-artifact identity (it covers
|
|
108
|
+
* window, holder processEpoch, iat/nbf, nonce, issuer, everything signed). The lost-response
|
|
109
|
+
* retry re-releases ONLY when the presenting grant's signature equals this, so a DIFFERENT
|
|
110
|
+
* signed grant that merely reuses the sessionId + the compared coordinate subset can never
|
|
111
|
+
* re-release the winner's credential (§13.6/§13.10). */
|
|
112
|
+
grantSig: string;
|
|
113
|
+
credCaller: string;
|
|
114
|
+
credServing: string;
|
|
115
|
+
/** Per-credential revocation completion (durable), created all-false: set only when that
|
|
116
|
+
* id's revoke SUCCEEDED, so a swallowed revoke failure anywhere is retried by every later
|
|
117
|
+
* sweep pass instead of silently leaking half a pair. */
|
|
118
|
+
revoked: {
|
|
119
|
+
caller: boolean;
|
|
120
|
+
serving: boolean;
|
|
121
|
+
};
|
|
122
|
+
state: SessionState;
|
|
123
|
+
exp: number;
|
|
124
|
+
}
|
|
125
|
+
/** The auth-store key (`session.<sessionId>`, §13.12). */
|
|
126
|
+
export declare function sessionLedgerKey(sessionId: string): string;
|
|
127
|
+
/** The monotonic state grammar: `issuing → active`, `issuing → terminal` (the sweep collecting
|
|
128
|
+
* a crashed half-issue), `active → terminal`. Terminal states never transition. */
|
|
129
|
+
export declare function assertSessionStateTransition(from: SessionState, to: SessionState): void;
|
|
130
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
131
|
+
/** The auth path's durable half: real implementations back this with the auth-store KV
|
|
132
|
+
* (create-only CAS / revision-pinned update); smokes supply a faithful in-memory fake. */
|
|
133
|
+
export interface SessionLedger {
|
|
134
|
+
/** AUTHORITATIVE row read (leader-served, the §13.9 read-service class): the serving
|
|
135
|
+
* retrieval and the holder's post-finalize retry decide on THIS, never on a caller-supplied
|
|
136
|
+
* projection. `undefined` = no row. */
|
|
137
|
+
read(sessionId: string): MaybePromise<SessionLedgerRow | undefined>;
|
|
138
|
+
/** Create-only CAS of the `issuing` row (naming BOTH credential ids). `"exists"` = the
|
|
139
|
+
* one-use is already burned. */
|
|
140
|
+
createIssuing(row: SessionLedgerRow): MaybePromise<"created" | "exists">;
|
|
141
|
+
/** CAS `issuing → active`. `false` = the row moved under us (a close/sweep/barrier raced the
|
|
142
|
+
* finalize; the redemption LOSES and releases nothing). */
|
|
143
|
+
finalizeActive(sessionId: string): MaybePromise<boolean>;
|
|
144
|
+
/** CAS the row to a terminal state (close/expiry/barrier/abandoned redemption). `false` =
|
|
145
|
+
* already terminal (idempotent for the caller's purposes). */
|
|
146
|
+
transitionTerminal(sessionId: string, to: SessionTerminalState): MaybePromise<boolean>;
|
|
147
|
+
/** Durably mark ONE credential id's revocation as COMPLETED. The sweep's terminal-row retry
|
|
148
|
+
* is real only because the row remembers which halves confirmed. */
|
|
149
|
+
markRevoked(sessionId: string, credentialId: string): MaybePromise<void>;
|
|
150
|
+
}
|
|
151
|
+
/** The two per-session credential IDs (the credential-ledger ids revocation names). Allocated
|
|
152
|
+
* BEFORE the one-use `issuing` create, so the row names both from its first durable write and a
|
|
153
|
+
* crash at any later point leaves the sweep able to revoke the whole pair. */
|
|
154
|
+
export interface SessionCredentialIds {
|
|
155
|
+
credCaller: string;
|
|
156
|
+
credServing: string;
|
|
157
|
+
}
|
|
158
|
+
/** One released per-session credential: the id revocation names, the usable creds bytes, and
|
|
159
|
+
* the credential's OWN expiry — which MUST be ≤ the session row's `exp` (the seam validates
|
|
160
|
+
* and fails loud on a hook that mints past the session's life). A credential is authority
|
|
161
|
+
* ONLY once its session row is `active`; nothing releases usable bytes before finalize. */
|
|
162
|
+
export interface SessionCredential {
|
|
163
|
+
id: string;
|
|
164
|
+
creds: string;
|
|
165
|
+
exp: number;
|
|
166
|
+
}
|
|
167
|
+
/** One OBSERVED lifecycle issuance gate (§13.1): the auth-store gate key plus its revision at
|
|
168
|
+
* the observation (a LEADER-SERVED read). The staged credential writes are PINNED to it — a
|
|
169
|
+
* barrier that moves the gate between the observation and the stage makes the pinned write
|
|
170
|
+
* LOSE. This is what makes the two-gate stage→commit ordering testable in core rather than an
|
|
171
|
+
* opaque promise: the pin is data, and an adversarial probe can move the gate under it. */
|
|
172
|
+
export interface LifecycleGatePin {
|
|
173
|
+
key: string;
|
|
174
|
+
revision: number;
|
|
175
|
+
}
|
|
176
|
+
/** The AUTHENTICATED presenter of a redemption — established by the trusted auth path's own
|
|
177
|
+
* connection/exchange (§9/§10), NEVER read from the grant. {@link redeemSession} refuses
|
|
178
|
+
* unless it equals the grant's holder exactly: possession of a leaked grant releases nothing. */
|
|
179
|
+
export interface SessionPresenter {
|
|
180
|
+
id: string;
|
|
181
|
+
lifecycleUid: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Everything {@link redeemSession} needs from the trusted auth path. The LIFECYCLE FENCE is the
|
|
185
|
+
* revision-pinned {@link stagePair} write against both parties' OBSERVED gates (a moved gate
|
|
186
|
+
* makes it LOSE), NOT a boolean read — fresh reads are not fences (§13.1/§13.9). The
|
|
187
|
+
* process-epoch and gate reads ARE fencing/observation reads and MUST be leader-served (the
|
|
188
|
+
* auth bucket `allow_direct=false` → `STREAM.MSG.GET`, per the §13.9 read-service class),
|
|
189
|
+
* never a follower Direct Get. Every hook re-runs FRESH at finalize; a cached answer would
|
|
190
|
+
* reopen the §13.1 window.
|
|
191
|
+
*/
|
|
192
|
+
export interface SessionRedemptionHooks {
|
|
193
|
+
ledger: SessionLedger;
|
|
194
|
+
/** Allocate the two credential-ledger ids for this session (bounded ids, NO usable bytes) so
|
|
195
|
+
* the `issuing` row can name both from its first write. */
|
|
196
|
+
allocateCredentialIds(grant: SessionGrant): MaybePromise<SessionCredentialIds>;
|
|
197
|
+
/** The holder's CURRENT process epoch (leader-served read), or undefined when the lifecycle
|
|
198
|
+
* has no live process. */
|
|
199
|
+
holderProcessEpoch(holder: {
|
|
200
|
+
id: string;
|
|
201
|
+
lifecycleUid: string;
|
|
202
|
+
}): MaybePromise<number | undefined>;
|
|
203
|
+
/** The serving instance's CURRENT epoch (leader-served read), or undefined when it is not
|
|
204
|
+
* registered/live. */
|
|
205
|
+
servingEpoch(endpoint: string, instanceId: string): MaybePromise<number | undefined>;
|
|
206
|
+
/** LEADER-SERVED observation of the HOLDER's lifecycle issuance gate (§13.1). Throws when
|
|
207
|
+
* the gate is gone (the lifecycle is retired). */
|
|
208
|
+
observeHolderGate(holder: {
|
|
209
|
+
id: string;
|
|
210
|
+
lifecycleUid: string;
|
|
211
|
+
}): MaybePromise<LifecycleGatePin>;
|
|
212
|
+
/** LEADER-SERVED observation of the SERVING instance's lifecycle issuance gate. */
|
|
213
|
+
observeServingGate(endpoint: string, instanceId: string): MaybePromise<LifecycleGatePin>;
|
|
214
|
+
/** Stage BOTH per-session credential-ledger rows, each write REVISION-PINNED to its party's
|
|
215
|
+
* observed gate (§13.1): caller = pub `in` + sub `out` EXACT, serving = the reverse. A gate
|
|
216
|
+
* that moved since its observation (a barrier retired the lifecycle) makes the pinned write
|
|
217
|
+
* LOSE — THROW; this is the lifecycle fence, a write loss, never a boolean read. The rows
|
|
218
|
+
* are indexed under each lifecycle (a later-winning barrier enumerates and revokes them),
|
|
219
|
+
* but confer NOTHING and release NO usable bytes until finalize. */
|
|
220
|
+
stagePair(grant: SessionGrant, ids: SessionCredentialIds, pins: {
|
|
221
|
+
holder: LifecycleGatePin;
|
|
222
|
+
serving: LifecycleGatePin;
|
|
223
|
+
}): MaybePromise<void>;
|
|
224
|
+
/** After finalize → `active`, release ONE party's usable credential by id. IDEMPOTENT for
|
|
225
|
+
* the row's lifetime: a repeated release of the same id returns the SAME credential bytes
|
|
226
|
+
* (never a re-mint) — that is the authenticated lost-response retry path for BOTH parties.
|
|
227
|
+
* Safe because every release sits behind exact presenter authentication (holder equality at
|
|
228
|
+
* {@link redeemSession}; full serving identity at {@link retrieveServingCredential}), so a
|
|
229
|
+
* repeat delivers no authority the party does not already hold; revocation (a terminal row)
|
|
230
|
+
* is the authority boundary, not a release count. Per-party sinks: no private material ever
|
|
231
|
+
* crosses between the two parties. */
|
|
232
|
+
releaseCredential(sessionId: string, credentialId: string): MaybePromise<SessionCredential>;
|
|
233
|
+
/** Revoke one staged/released credential by id, IDEMPOTENTLY (re-revoking a dead id
|
|
234
|
+
* succeeds — the sweep's terminal-row retry depends on it). */
|
|
235
|
+
revokeCredential(id: string): MaybePromise<void>;
|
|
236
|
+
now?(): number;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Redeem a VERIFIED session grant (§13.6 finalize-CAS ordering), presented by an AUTHENTICATED
|
|
240
|
+
* presenter. The panel-locked order — no half-issued session is ever usable, a redemption
|
|
241
|
+
* racing a close loses its finalize and releases nothing:
|
|
242
|
+
*
|
|
243
|
+
* 0. the presenter must equal the grant's holder EXACTLY (identity before anything —
|
|
244
|
+
* possession of a leaked grant releases nothing, §13.10 holder-binding);
|
|
245
|
+
* 1. allocate both credential ids (no bytes; bounded, distinct);
|
|
246
|
+
* 2. create-CAS the `issuing` row naming BOTH ids (the one-use — a duplicate loses here,
|
|
247
|
+
* EXCEPT the authenticated holder retrying an active row after a lost response, which
|
|
248
|
+
* re-releases the SAME holder credential);
|
|
249
|
+
* 3. observe both lifecycle issuance gates (leader-served) and stage both credential rows
|
|
250
|
+
* REVISION-PINNED to them (the lifecycle FENCE: a moved gate makes the pinned write lose);
|
|
251
|
+
* 4. fresh-check both process epochs (leader-served reads) AND grant expiry;
|
|
252
|
+
* 5. finalize-CAS `issuing → active` (a racing close/barrier wins here);
|
|
253
|
+
* 6. release ONLY the HOLDER's credential (the serving side retrieves its own separately).
|
|
254
|
+
*
|
|
255
|
+
* The caller passes the output of {@link verifySessionGrant} (signature/anchor/currency already
|
|
256
|
+
* enforced there) plus the presenter its OWN authenticated context established. Returns the
|
|
257
|
+
* HOLDER's credential alone — {@link retrieveServingCredential} delivers the serving side's, so
|
|
258
|
+
* no private material crosses between the two parties. A release failure AFTER finalize leaves
|
|
259
|
+
* the row `active` and throws: the authenticated holder retries this same call and lands on the
|
|
260
|
+
* re-release path (release is idempotent for the row's life), so a transient release outage is
|
|
261
|
+
* recoverable without a half-session.
|
|
262
|
+
*/
|
|
263
|
+
export declare function redeemSession(grant: SessionGrant, presenter: SessionPresenter, hooks: SessionRedemptionHooks): Promise<SessionCredential>;
|
|
264
|
+
/** The serving instance retrieves ITS OWN credential after the session is `active`, through its
|
|
265
|
+
* own authenticated path (never the holder's redemption response — no private material crosses
|
|
266
|
+
* between the two parties, §13.6 per-party release). The presenter is the AUTHENTICATED serving
|
|
267
|
+
* identity (endpoint + instanceId + epoch, established by the auth path's own context); the row
|
|
268
|
+
* is read AUTHORITATIVELY from the ledger, never accepted as a caller-supplied projection.
|
|
269
|
+
* Release is idempotent for the row's life (lost-response retry), behind the exact identity. */
|
|
270
|
+
export declare function retrieveServingCredential(sessionId: string, presenter: {
|
|
271
|
+
endpoint: string;
|
|
272
|
+
instanceId: string;
|
|
273
|
+
epoch: number;
|
|
274
|
+
}, hooks: Pick<SessionRedemptionHooks, "ledger" | "releaseCredential">): Promise<SessionCredential>;
|
|
275
|
+
/** The expiry sweep's per-row decision (the auth path enumerates `session.>` and calls this):
|
|
276
|
+
* an `issuing` or `active` row past its `exp` (plus the caller's margin) transitions
|
|
277
|
+
* `expired` and BOTH credential ids are revoked by name, each MARKED on success. A TERMINAL
|
|
278
|
+
* row with an UNMARKED id is retried — that retry (not a comment) is what makes every
|
|
279
|
+
* swallowed revoke failure in this module safe: the mark is set only by a revoke that
|
|
280
|
+
* succeeded, so half a pair can never quietly outlive its session. Returns whether this pass
|
|
281
|
+
* did work. Fully-collected terminal rows are never touched (retention: rows live at least
|
|
282
|
+
* max session exp + a recovery margin, §13.6). */
|
|
283
|
+
export declare function sweepSessionRow(row: SessionLedgerRow, hooks: Pick<SessionRedemptionHooks, "ledger" | "revokeCredential">, opts: {
|
|
284
|
+
now: number;
|
|
285
|
+
marginMs?: number;
|
|
286
|
+
}): Promise<boolean>;
|
|
287
|
+
/** The composite's own tiny framed protocol; `data` is OPAQUE (any JSON value — binary rides
|
|
288
|
+
* the application's own encoding). `credit`/`close` are CONTROL frames, EXEMPT from the data
|
|
289
|
+
* window (a full data window must never block the credits that reopen it, else instant
|
|
290
|
+
* deadlock). `ack` is an ABSOLUTE cumulative watermark (the sender's contiguous-received count
|
|
291
|
+
* on the OTHER rail): a data frame PIGGYBACKS it, so a lost dedicated credit self-heals on the
|
|
292
|
+
* next reverse data frame, and any deeper loss recovers on the keepalive re-emit; absolute
|
|
293
|
+
* (not delta) so any single credit re-advertises the whole position and a duplicate is
|
|
294
|
+
* harmless. The in-band `close` is advisory (§13.6): revocation authority is the ledger,
|
|
295
|
+
* never this frame. */
|
|
296
|
+
export type SessionFrame = {
|
|
297
|
+
t: "f";
|
|
298
|
+
seq: number;
|
|
299
|
+
data: unknown;
|
|
300
|
+
ack?: number;
|
|
301
|
+
} | {
|
|
302
|
+
t: "credit";
|
|
303
|
+
ack: number;
|
|
304
|
+
} | {
|
|
305
|
+
t: "close";
|
|
306
|
+
};
|
|
307
|
+
export declare function encodeSessionFrame(frame: SessionFrame): Uint8Array;
|
|
308
|
+
/** Fail-loud frame parse (closed schema): a garbled frame is a PROTOCOL error the rail
|
|
309
|
+
* surfaces via `onProtocolError` — never silently skipped, never a crash. */
|
|
310
|
+
export declare function parseSessionFrame(bytes: Uint8Array): SessionFrame;
|
|
311
|
+
/** Which rail each role sends on (§13.6: `in` = caller → endpoint; `out` = the reverse). */
|
|
312
|
+
export type SessionRole = "caller" | "serving";
|
|
313
|
+
export interface SessionRailOpts {
|
|
314
|
+
nc: NatsConnection;
|
|
315
|
+
grant: Pick<SessionGrant, "space" | "endpoint" | "sessionId" | "window"> & {
|
|
316
|
+
serving: {
|
|
317
|
+
epoch: number;
|
|
318
|
+
};
|
|
319
|
+
};
|
|
320
|
+
role: SessionRole;
|
|
321
|
+
/** Delivered in-order for CONTIGUOUS frames, and the application accepts FIRST: the handler
|
|
322
|
+
* may be async — it is AWAITED, and the watermark advances and credit emits only after it
|
|
323
|
+
* RESOLVES, so credit means the receiver's buffer actually freed (back-pressure) and a
|
|
324
|
+
* rejection refuses the frame exactly like a synchronous throw: the rail breaks (`handler`)
|
|
325
|
+
* and the refused frame is neither counted delivered nor credited. Acceptance is SERIALIZED
|
|
326
|
+
* in seq order (one handler in flight; NATS does not serialize callback promises); frames
|
|
327
|
+
* arriving while a handler is pending queue up to the grant WINDOW — past it the rail breaks
|
|
328
|
+
* (`flood`), never an unbounded backlog. A handler wedged forever stalls credit, so the
|
|
329
|
+
* SENDER's window fills and its stall watchdog surfaces the fault. A gap surfaces via
|
|
330
|
+
* onProtocolError("gap"). */
|
|
331
|
+
onData(data: unknown, seq: number): void | Promise<void>;
|
|
332
|
+
/** The peer's advisory close frame arrived (authoritative close is the ledger's). The local
|
|
333
|
+
* subscription and timer are torn down before this fires. */
|
|
334
|
+
onClose?(): void;
|
|
335
|
+
/** The session is broken — close and re-establish. `reason` is one of `garbled-frame` |
|
|
336
|
+
* `gap` | `credit-overrun` | `flood` | `subscription` | `stall` | `handler` | `publish` |
|
|
337
|
+
* `seq-exhausted`. The rail's subscription and timer are torn down before this fires (a
|
|
338
|
+
* broken rail holds no resources). */
|
|
339
|
+
onProtocolError?(reason: string, detail?: unknown): void;
|
|
340
|
+
/** Broker payload ceiling for the SEND preflight (like assertFactFits). Default 1 MiB. */
|
|
341
|
+
maxPayloadBytes?: number;
|
|
342
|
+
/** Keepalive credit re-emit interval (ms): while this side has delivered ANY data and the
|
|
343
|
+
* peer has gone quiet, re-advertise the absolute watermark every tick — including
|
|
344
|
+
* watermarks already advertised, because this side cannot observe whether an emitted
|
|
345
|
+
* credit ARRIVED (gating on "newer than last emitted" turns loss of the advertisement
|
|
346
|
+
* itself into a permanent stall). Absolute acks are idempotent, so the honest recovery is
|
|
347
|
+
* repetition; the cost is one control frame per quiet tick. 0 disables. Default 1000. */
|
|
348
|
+
idleCreditMs?: number;
|
|
349
|
+
/** Sender stall watchdog (ms): if the data window stays full this long with NO ack advance
|
|
350
|
+
* (sustained credit loss or a dead peer), the rail breaks with a DETECTABLE `stall` fault —
|
|
351
|
+
* TIMER-driven, so a sender that stops calling send() still learns its peer is gone; the
|
|
352
|
+
* send path double-checks as a belt. 0 disables. Default 30000. */
|
|
353
|
+
stallTimeoutMs?: number;
|
|
354
|
+
/** Injectable clock (testability); default Date.now. */
|
|
355
|
+
now?: () => number;
|
|
356
|
+
/** Injectable interval timer (testability); defaults to Node setInterval/clearInterval. */
|
|
357
|
+
setIntervalFn?: (fn: () => void, ms: number) => {
|
|
358
|
+
unref?: () => void;
|
|
359
|
+
};
|
|
360
|
+
clearIntervalFn?: (h: unknown) => void;
|
|
361
|
+
}
|
|
362
|
+
export interface SessionRail {
|
|
363
|
+
/** Send one opaque data frame (piggybacking this side's absolute reverse-rail watermark).
|
|
364
|
+
* Throws `resource-exhausted` when the window is full (no buffering, §13.6), `contract-invalid`
|
|
365
|
+
* when the encoded frame exceeds the payload ceiling, and `failed-precondition` once the rail
|
|
366
|
+
* is closed/broken (including a detected stall or a failed publish). Returns the frame's seq. */
|
|
367
|
+
send(data: unknown): number;
|
|
368
|
+
/** Send the advisory close frame and stop the rail locally. Idempotent. */
|
|
369
|
+
close(): void;
|
|
370
|
+
/** In-memory window state (observability + smoke assertions). */
|
|
371
|
+
stats(): {
|
|
372
|
+
sent: number;
|
|
373
|
+
ackedThrough: number;
|
|
374
|
+
delivered: number;
|
|
375
|
+
inFlight: number;
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Open one side of an established session over its two core rails. The credentials the
|
|
380
|
+
* redemption released confine each side to exactly its pub/sub pair; this helper only speaks
|
|
381
|
+
* the framed protocol and enforces the bounded window — it grants nothing.
|
|
382
|
+
*
|
|
383
|
+
* FLOW CONTROL (panel-locked): the data window is bounded and per-direction; control frames
|
|
384
|
+
* (`credit`, `close`) are EXEMPT (a full window never blocks the credits that reopen it).
|
|
385
|
+
* RECEIVE-side acceptance is serialized and the (possibly async) handler AWAITED — credit
|
|
386
|
+
* emits only for frames the application actually accepted — and the pending-frame queue is
|
|
387
|
+
* bounded by the same window (`flood` past it), so neither side ever buffers unboundedly.
|
|
388
|
+
* Credits carry an ABSOLUTE cumulative watermark, PIGGYBACKED on reverse data frames, so a lost
|
|
389
|
+
* dedicated credit self-heals on the next reverse traffic; ANY deeper loss (including loss of
|
|
390
|
+
* already-emitted threshold credits) recovers on the KEEPALIVE re-emit; sustained loss or a
|
|
391
|
+
* dead peer surfaces the TIMER-driven `stall` fault (never a silent hang, even for a sender
|
|
392
|
+
* that stopped calling send). A dropped DATA frame is unrecoverable at this transport (EPS is
|
|
393
|
+
* at-most-once, core-only) and shows as a seq gap the app reacts to — reliability layers
|
|
394
|
+
* inside `data` or uses the journal/checkpoint composites.
|
|
395
|
+
*/
|
|
396
|
+
export declare function openSessionRail(opts: SessionRailOpts): SessionRail;
|
|
397
|
+
export {};
|
|
398
|
+
//# sourceMappingURL=endpoint-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-session.d.ts","sourceRoot":"","sources":["../src/endpoint-session.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AAW5E,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAS/B;iFACiF;AACjF,eAAO,MAAM,wBAAwB,QAAsB,CAAC;AAC5D,eAAO,MAAM,uBAAuB,QAAY,CAAC;AACjD,gGAAgG;AAChG,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC;4FAC4F;AAC5F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;0DAC0D;AAC1D,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAWD,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,CAAC,CAAC;IACL,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,2FAA2F;IAC3F,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,uFAAuF;IACvF,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ;wFACoF;IACpF,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA6BD;sFACsF;AACtF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE;IAAE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAAA;CAAE,GAC/C,YAAY,CAkCd;AAED;;;;iCAIiC;AACjC,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,cAAc,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,OAAO,CAAC,YAAY,CAAC,CA6FvB;AAMD,eAAO,MAAM,uBAAuB,yDAAyE,CAAC;AAE9G,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,oBAAoB,CAAC;AAEvE;;;;6FAI6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB;wEACoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD;;;;6DAIyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB;;8DAE0D;IAC1D,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;oFACoF;AACpF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAQvF;AAID,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC;2FAC2F;AAC3F,MAAM,WAAW,aAAa;IAC5B;;4CAEwC;IACxC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IACpE;qCACiC;IACjC,aAAa,CAAC,GAAG,EAAE,gBAAgB,GAAG,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IACzE;gEAC4D;IAC5D,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACzD;mEAC+D;IAC/D,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACvF;yEACqE;IACrE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED;;+EAE+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;4FAG4F;AAC5F,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;4FAI4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;kGAEkG;AAClG,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,aAAa,CAAC;IACtB;gEAC4D;IAC5D,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC/E;+BAC2B;IAC3B,kBAAkB,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnG;2BACuB;IACvB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrF;uDACmD;IACnD,iBAAiB,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChG,mFAAmF;IACnF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzF;;;;;yEAKqE;IACrE,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC7I;;;;;;;2CAOuC;IACvC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC5F;oEACgE;IAChE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,IAAI,MAAM,CAAC;CAChB;AAgDD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CA+G5B;AAED;;;;;iGAKiG;AACjG,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAClE,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,mBAAmB,CAAC,GAClE,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED;;;;;;;mDAOmD;AACnD,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,kBAAkB,CAAC,EAClE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAAC,OAAO,CAAC,CAwBlB;AAID;;;;;;;;wBAQwB;AACxB,MAAM,MAAM,YAAY,GACpB;IAAE,CAAC,EAAE,GAAG,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,CAAC,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAElE;AAED;8EAC8E;AAC9E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,CA0BjE;AAED,4FAA4F;AAC5F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,cAAc,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC,GAAG;QAAE,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC1G,IAAI,EAAE,WAAW,CAAC;IAClB;;;;;;;;;kCAS8B;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;kEAC8D;IAC9D,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;;2CAGuC;IACvC,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzD,0FAA0F;IAC1F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;8FAK0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;wEAGoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,2FAA2F;IAC3F,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK;QAAE,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IACvE,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B;;;sGAGkG;IAClG,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,KAAK,IAAI,IAAI,CAAC;IACd,iEAAiE;IACjE,KAAK,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CA4OlE"}
|