@kya-os/mcp 1.20.0 → 1.21.1
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/CHANGELOG.md +65 -0
- package/README.md +1 -1
- package/dist/card/revocation.d.ts +6 -6
- package/dist/card/revocation.js +3 -12
- package/dist/card/revocation.js.map +1 -1
- package/dist/delegation/bitstring.d.ts +41 -6
- package/dist/delegation/bitstring.js +36 -21
- package/dist/delegation/bitstring.js.map +1 -1
- package/dist/delegation/index.d.ts +1 -0
- package/dist/delegation/index.js +1 -0
- package/dist/delegation/index.js.map +1 -1
- package/dist/delegation/statuslist-manager.d.ts +20 -4
- package/dist/delegation/statuslist-manager.js +16 -0
- package/dist/delegation/statuslist-manager.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/with-kya-os.delegation-gate.js +2 -2
- package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.deps.d.ts +3 -2
- package/dist/middleware/with-kya-os.helpers.d.ts +5 -0
- package/dist/middleware/with-kya-os.helpers.js +5 -0
- package/dist/middleware/with-kya-os.helpers.js.map +1 -1
- package/dist/middleware/with-kya-os.outcome.js +1 -3
- package/dist/middleware/with-kya-os.outcome.js.map +1 -1
- package/dist/middleware/with-kya-os.policy-gate.js +30 -19
- package/dist/middleware/with-kya-os.policy-gate.js.map +1 -1
- package/dist/middleware/with-kya-os.session.js +6 -17
- package/dist/middleware/with-kya-os.session.js.map +1 -1
- package/dist/middleware/with-kya-os.types.d.ts +6 -2
- package/dist/utils/statuslist-bits.d.ts +15 -0
- package/dist/utils/statuslist-bits.js +44 -6
- package/dist/utils/statuslist-bits.js.map +1 -1
- package/dist/utils/statuslist-gzip.d.ts +18 -0
- package/dist/utils/statuslist-gzip.js +45 -0
- package/dist/utils/statuslist-gzip.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,71 @@ Versioning: https://semver.org/spec/v2.0.0.html
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.21.1] - 2026-10-22
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Signed denials and challenges now verify when the call carried other
|
|
15
|
+
KYA-OS control arguments.** A delegation-gate denial (an invalid, revoked
|
|
16
|
+
or insufficient delegation, or a failed holder binding) hashed its request
|
|
17
|
+
with only `_kyaos_delegation` removed, so a call that also carried
|
|
18
|
+
`_kyaos_proof` or `_kyaos_approvals` got a proof whose `requestHash` matched
|
|
19
|
+
no shape a client or auditor holds. A `needs_authorization` challenge to a
|
|
20
|
+
call that sent `_kyaos_delegation: null` together with another control
|
|
21
|
+
argument had the same fault, and so did a policy-gate denial or
|
|
22
|
+
re-challenge on a resume that carried a custom `approvalsArgKey`. Outcome
|
|
23
|
+
proofs now hash the request as SPEC §7.3 describes, with every `_kyaos*`
|
|
24
|
+
argument removed. Proofs issued before this fix stay unverifiable.
|
|
25
|
+
- **An approved call on a resume with a custom `approvalsArgKey` now
|
|
26
|
+
verifies.** The policy gate removed that key from the arguments it handed
|
|
27
|
+
its handler, so a handler wrapped in `wrapWithProof` signed a request the
|
|
28
|
+
client never sent. The gate now removes only the `_kyaos*` arguments: a
|
|
29
|
+
custom key outside that prefix reaches the handler as the ordinary
|
|
30
|
+
argument SPEC §7.3 classifies it as. A gate built with a custom
|
|
31
|
+
`approvalsArgKey` logs a warning saying so, and that a `_kyaos`-prefixed
|
|
32
|
+
custom key does not survive `wrapWithDelegation`.
|
|
33
|
+
|
|
34
|
+
## [1.21.0] - 2026-10-21
|
|
35
|
+
|
|
36
|
+
### Upgrading
|
|
37
|
+
|
|
38
|
+
- **A status-list manager given a compressor that does not GZIP now throws
|
|
39
|
+
instead of publishing.** Status-list readers accept only GZIP, so such a
|
|
40
|
+
list read as revoked for every credential it covered. A decompressor that
|
|
41
|
+
hands back its input unchanged now makes every read throw, where it read
|
|
42
|
+
the GZIP header as status bits. Drop the compressor and decompressor
|
|
43
|
+
arguments to use the shipped codec, or pass `statusListGzipCodec`. A list
|
|
44
|
+
already stored without GZIP, such as one published with the pass-through
|
|
45
|
+
pair the status-list example used, can no longer be read or updated:
|
|
46
|
+
reissue it, and the credentials it covers, with the codec.
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- **`statusListGzipCodec`, a GZIP codec for status lists.** One object is
|
|
51
|
+
both the `CompressionFunction` and the `DecompressionFunction` that
|
|
52
|
+
`StatusList2021Manager` and `BitstringManager` take. It loads `node:zlib`
|
|
53
|
+
on first use, so a bundle that injects its own codec does not pull it in,
|
|
54
|
+
and bounds inflation to the 16 MiB status-list cap. The Entity Card
|
|
55
|
+
revocation checker uses it as its default `decompress`.
|
|
56
|
+
- **The compressor and decompressor of `StatusList2021Manager`,
|
|
57
|
+
`createStatusListManager`, `BitstringManager` (its constructor, `decode`
|
|
58
|
+
and `fromSetBits`) and `isIndexSet` are optional** and default to
|
|
59
|
+
`statusListGzipCodec`.
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- **`StatusList2021Manager` could publish status lists that every other
|
|
64
|
+
reader took as revoked.** The manager required a compressor and
|
|
65
|
+
decompressor, the package shipped none, and its example passed a pair that
|
|
66
|
+
did not compress, so the lists it published were not GZIP and the Entity
|
|
67
|
+
Card revocation checker reported every entry revoked. Publishing now
|
|
68
|
+
refuses a list that is not GZIP, and the example uses the shipped codec.
|
|
69
|
+
- **A pass-through decompressor read revoked entries as live.** Reading a
|
|
70
|
+
GZIP list without inflating it took the GZIP header as status bits, which
|
|
71
|
+
left the first three entries clear whatever the issuer had set. Reading a
|
|
72
|
+
payload that is not GZIP, or one the decompressor returns unchanged, now
|
|
73
|
+
throws, on the delegation and Entity Card paths alike. Fixes #254.
|
|
74
|
+
|
|
10
75
|
## [1.20.0] - 2026-10-13
|
|
11
76
|
|
|
12
77
|
1.19.0 was tagged but never published to npm; its changes (listed under
|
package/README.md
CHANGED
|
@@ -308,7 +308,7 @@ The server is operated by a maintainer on pinned releases; this repo does not de
|
|
|
308
308
|
| **Entity Card** | Typed, DID-anchored identity: fluent `card()` builder, `requireProof` per-request holder-of-key guard, CIMD OAuth on-ramp (`client_id` ⇄ `did:web`, MCP's default client auth), and `withKyaOsCard` projections that embed into MCP `server.json` / Server Cards (draft SEP-2127), A2A AgentCards, and NANDA AgentFacts |
|
|
309
309
|
| **Signed proofs** | Detached JWS over JCS-canonicalized request/response hashes |
|
|
310
310
|
| **Delegation credentials** | W3C Verifiable Credentials with scope constraints, rooted at a Responsible Party |
|
|
311
|
-
| **Revocation** | StatusList2021 bitstring with cascading revocation |
|
|
311
|
+
| **Revocation** | StatusList2021 bitstring with cascading revocation; lists are GZIP-compressed by the shipped `statusListGzipCodec`, the manager's default |
|
|
312
312
|
| **Replay prevention** | Nonce-based handshake with timestamp skew validation |
|
|
313
313
|
| **Verifiable auditability** | Typed producer events, authoritative atomic recorder, signed chain receipts, RFC 9162 checkpoints, independent observation, encrypted evidence references, replay bundles, and offline CLI |
|
|
314
314
|
| **Extensible** | Bring your own KMS, HSM, atomic nonce provider, or DID method |
|
|
@@ -84,12 +84,12 @@ export interface RevocationCheckerDeps {
|
|
|
84
84
|
*/
|
|
85
85
|
verifyStatusList?: StatusListProofVerifier;
|
|
86
86
|
/**
|
|
87
|
-
* Injectable GZIP inflation seam ({@link Decompress}). DEFAULT = `
|
|
88
|
-
* to the 16 MiB
|
|
89
|
-
* THROWS mid-inflation ⇒ fail-closed, never allocating the whole payload). Non-Node
|
|
90
|
-
* inject a `DecompressionStream`-based impl; when they do,
|
|
91
|
-
*
|
|
92
|
-
*
|
|
87
|
+
* Injectable GZIP inflation seam ({@link Decompress}). DEFAULT = `statusListGzipCodec.decompress`,
|
|
88
|
+
* which loads `node:zlib` on first use and bounds inflation to the 16 MiB cap (so a decompression
|
|
89
|
+
* bomb THROWS mid-inflation ⇒ fail-closed, never allocating the whole payload). Non-Node
|
|
90
|
+
* runtimes inject a `DecompressionStream`-based impl; when they do, `node:zlib` is never loaded.
|
|
91
|
+
* An injected impl SHOULD bound its own output — {@link decodeStatusList} still applies the cap
|
|
92
|
+
* as a post-inflation backstop regardless.
|
|
93
93
|
*/
|
|
94
94
|
decompress?: Decompress;
|
|
95
95
|
}
|
package/dist/card/revocation.js
CHANGED
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { isRecord } from '../utils/guards.js';
|
|
31
31
|
import { assertStatusPurpose } from '../utils/statuslist-purpose.js';
|
|
32
|
-
import {
|
|
32
|
+
import { decodeStatusListPayload, parseStatusListIndex, readStatusBit, } from '../utils/statuslist-bits.js';
|
|
33
|
+
import { statusListGzipCodec } from '../utils/statuslist-gzip.js';
|
|
33
34
|
/** The `statusPurpose` this checker evaluates by default (revocation, not suspension). */
|
|
34
35
|
export const STATUS_PURPOSE_REVOCATION = 'revocation';
|
|
35
36
|
/** Fail-closed verdict: status indeterminate ⇒ treat as revoked AND not fresh. */
|
|
@@ -42,7 +43,7 @@ const FAIL_CLOSED = { revoked: true, fresh: false };
|
|
|
42
43
|
export function createRevocationChecker(deps) {
|
|
43
44
|
const clock = deps.now ?? (() => Date.now());
|
|
44
45
|
const wantedPurpose = deps.statusPurpose ?? STATUS_PURPOSE_REVOCATION;
|
|
45
|
-
const decompress = deps.decompress ??
|
|
46
|
+
const decompress = deps.decompress ?? statusListGzipCodec.decompress;
|
|
46
47
|
return async function check(entry) {
|
|
47
48
|
try {
|
|
48
49
|
const credential = await fetchStatusList(entry.statusListCredential, deps.fetch);
|
|
@@ -105,16 +106,6 @@ function statusListSubject(credential) {
|
|
|
105
106
|
throw new Error('revocation: status-list has no credentialSubject');
|
|
106
107
|
return subject;
|
|
107
108
|
}
|
|
108
|
-
/**
|
|
109
|
-
* DEFAULT {@link Decompress}: `node:zlib` `gunzipSync` bounded to {@link MAX_STATUS_LIST_BYTES}
|
|
110
|
-
* so an oversized inflation THROWS mid-stream (fail-closed) instead of allocating the whole bomb.
|
|
111
|
-
* Pulled in via a DYNAMIC `import('node:zlib')` — only when no `decompress` was injected — so a
|
|
112
|
-
* Workers / Deno / browser bundle that supplies its own seam keeps `node:zlib` out of the graph.
|
|
113
|
-
*/
|
|
114
|
-
async function defaultNodeGunzip(bytes) {
|
|
115
|
-
const { gunzipSync } = await import('node:zlib');
|
|
116
|
-
return new Uint8Array(gunzipSync(bytes, { maxOutputLength: MAX_STATUS_LIST_BYTES }));
|
|
117
|
-
}
|
|
118
109
|
/**
|
|
119
110
|
* Inflate the multibase / GZIP `encodedList` into the raw status bitstring bytes via the shared
|
|
120
111
|
* `decodeStatusListPayload` primitive (strip + decode + POST-inflation 16 MiB backstop): the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/card/revocation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"revocation.js","sourceRoot":"","sources":["../../src/card/revocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,20 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Related Spec: W3C Bitstring Status List v1.0 (successor to StatusList2021)
|
|
15
15
|
*/
|
|
16
|
+
/**
|
|
17
|
+
* Compresses a status bitstring for publication. MUST produce GZIP: it is the
|
|
18
|
+
* only compression a status-list reader accepts, and `encode()` throws on
|
|
19
|
+
* anything else. {@link statusListGzipCodec} is the shipped implementation
|
|
20
|
+
* and the default.
|
|
21
|
+
*/
|
|
16
22
|
export interface CompressionFunction {
|
|
17
23
|
compress(data: Uint8Array): Promise<Uint8Array>;
|
|
18
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Inflates a GZIP status-list payload. MUST reject input that is not GZIP;
|
|
27
|
+
* a decoder throws when it returns its input unchanged. {@link statusListGzipCodec}
|
|
28
|
+
* is the shipped implementation and the default.
|
|
29
|
+
*/
|
|
19
30
|
export interface DecompressionFunction {
|
|
20
31
|
decompress(data: Uint8Array): Promise<Uint8Array>;
|
|
21
32
|
}
|
|
@@ -23,22 +34,46 @@ export declare class BitstringManager {
|
|
|
23
34
|
private compressor;
|
|
24
35
|
private bits;
|
|
25
36
|
private size;
|
|
26
|
-
|
|
37
|
+
/**
|
|
38
|
+
* @param compressor - GZIP-compresses the bitstring on `encode()`. Defaults
|
|
39
|
+
* to {@link statusListGzipCodec}; `encode()` throws on output that is not GZIP.
|
|
40
|
+
* @param _decompressor - Accepted for signature symmetry with `decode()` and
|
|
41
|
+
* `fromSetBits()`, and for back-compat. The instance never decompresses:
|
|
42
|
+
* `decode()` inflates before construction, so nothing is stored.
|
|
43
|
+
*/
|
|
44
|
+
constructor(size: number, compressor?: CompressionFunction, _decompressor?: DecompressionFunction);
|
|
27
45
|
setBit(index: number, value: boolean): void;
|
|
28
46
|
getBit(index: number): boolean;
|
|
29
47
|
getSetBits(): number[];
|
|
30
48
|
encode(): Promise<string>;
|
|
31
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Decode an `encodedList` into a manager.
|
|
51
|
+
*
|
|
52
|
+
* @param compressor - Used by the returned manager's `encode()`. Defaults to
|
|
53
|
+
* {@link statusListGzipCodec}.
|
|
54
|
+
* @param decompressor - Inflates the GZIP payload. Defaults to
|
|
55
|
+
* {@link statusListGzipCodec}; decoding throws on a payload that is not
|
|
56
|
+
* GZIP and on a decompressor that returns its input unchanged.
|
|
57
|
+
*/
|
|
58
|
+
static decode(encodedList: string, compressor?: CompressionFunction, decompressor?: DecompressionFunction): Promise<BitstringManager>;
|
|
32
59
|
getRawBits(): Uint8Array;
|
|
33
60
|
getSize(): number;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
61
|
+
/**
|
|
62
|
+
* A manager of `size` entries with `setBits` set.
|
|
63
|
+
*
|
|
64
|
+
* @param compressor - Used by `encode()`. Defaults to {@link statusListGzipCodec}.
|
|
65
|
+
* @param decompressor - Accepted for symmetry with `decode()`; unused.
|
|
66
|
+
*/
|
|
67
|
+
static fromSetBits(size: number, setBits: number[], compressor?: CompressionFunction, decompressor?: DecompressionFunction): BitstringManager;
|
|
37
68
|
}
|
|
38
69
|
/**
|
|
39
70
|
* Read one status bit straight off an `encodedList` (decode + bounded inflate +
|
|
40
71
|
* MSB-first read via `utils/statuslist-bits`). Fail-CLOSED: an out-of-range or
|
|
41
72
|
* NaN index cannot be proven clear, so `readStatusBit` throws rather than
|
|
42
73
|
* reading as "not set".
|
|
74
|
+
*
|
|
75
|
+
* @param decompressor - Inflates the GZIP payload. Defaults to
|
|
76
|
+
* {@link statusListGzipCodec}; reading throws on a payload that is not GZIP
|
|
77
|
+
* and on a decompressor that returns its input unchanged.
|
|
43
78
|
*/
|
|
44
|
-
export declare function isIndexSet(encodedList: string, index: number, decompressor
|
|
79
|
+
export declare function isIndexSet(encodedList: string, index: number, decompressor?: DecompressionFunction): Promise<boolean>;
|
|
@@ -13,16 +13,24 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Related Spec: W3C Bitstring Status List v1.0 (successor to StatusList2021)
|
|
15
15
|
*/
|
|
16
|
-
import {
|
|
16
|
+
import { decodeStatusListPayload, encodeStatusListPayload, readStatusBit, } from '../utils/statuslist-bits.js';
|
|
17
|
+
import { statusListGzipCodec } from '../utils/statuslist-gzip.js';
|
|
18
|
+
/** Inflate an `encodedList` to its raw bitstring, with the shipped GZIP codec by default. */
|
|
19
|
+
function inflate(encodedList, decompressor = statusListGzipCodec) {
|
|
20
|
+
return decodeStatusListPayload(encodedList, (bytes) => decompressor.decompress(bytes));
|
|
21
|
+
}
|
|
17
22
|
export class BitstringManager {
|
|
18
23
|
compressor;
|
|
19
24
|
bits;
|
|
20
25
|
size;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
/**
|
|
27
|
+
* @param compressor - GZIP-compresses the bitstring on `encode()`. Defaults
|
|
28
|
+
* to {@link statusListGzipCodec}; `encode()` throws on output that is not GZIP.
|
|
29
|
+
* @param _decompressor - Accepted for signature symmetry with `decode()` and
|
|
30
|
+
* `fromSetBits()`, and for back-compat. The instance never decompresses:
|
|
31
|
+
* `decode()` inflates before construction, so nothing is stored.
|
|
32
|
+
*/
|
|
33
|
+
constructor(size, compressor = statusListGzipCodec, _decompressor) {
|
|
26
34
|
this.compressor = compressor;
|
|
27
35
|
this.size = size;
|
|
28
36
|
const byteCount = Math.ceil(size / 8);
|
|
@@ -63,11 +71,19 @@ export class BitstringManager {
|
|
|
63
71
|
return setBits;
|
|
64
72
|
}
|
|
65
73
|
async encode() {
|
|
66
|
-
|
|
67
|
-
return MULTIBASE_BASE64URL + this.base64urlEncode(compressed);
|
|
74
|
+
return encodeStatusListPayload(this.bits, (bytes) => this.compressor.compress(bytes));
|
|
68
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Decode an `encodedList` into a manager.
|
|
78
|
+
*
|
|
79
|
+
* @param compressor - Used by the returned manager's `encode()`. Defaults to
|
|
80
|
+
* {@link statusListGzipCodec}.
|
|
81
|
+
* @param decompressor - Inflates the GZIP payload. Defaults to
|
|
82
|
+
* {@link statusListGzipCodec}; decoding throws on a payload that is not
|
|
83
|
+
* GZIP and on a decompressor that returns its input unchanged.
|
|
84
|
+
*/
|
|
69
85
|
static async decode(encodedList, compressor, decompressor) {
|
|
70
|
-
const decompressed = await
|
|
86
|
+
const decompressed = await inflate(encodedList, decompressor);
|
|
71
87
|
const size = decompressed.length * 8;
|
|
72
88
|
const manager = new BitstringManager(size, compressor, decompressor);
|
|
73
89
|
manager.bits = decompressed;
|
|
@@ -79,16 +95,12 @@ export class BitstringManager {
|
|
|
79
95
|
getSize() {
|
|
80
96
|
return this.size;
|
|
81
97
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
.map((byte) => String.fromCharCode(byte))
|
|
89
|
-
.join('');
|
|
90
|
-
return btoa(binary);
|
|
91
|
-
}
|
|
98
|
+
/**
|
|
99
|
+
* A manager of `size` entries with `setBits` set.
|
|
100
|
+
*
|
|
101
|
+
* @param compressor - Used by `encode()`. Defaults to {@link statusListGzipCodec}.
|
|
102
|
+
* @param decompressor - Accepted for symmetry with `decode()`; unused.
|
|
103
|
+
*/
|
|
92
104
|
static fromSetBits(size, setBits, compressor, decompressor) {
|
|
93
105
|
const manager = new BitstringManager(size, compressor, decompressor);
|
|
94
106
|
for (const index of setBits) {
|
|
@@ -102,9 +114,12 @@ export class BitstringManager {
|
|
|
102
114
|
* MSB-first read via `utils/statuslist-bits`). Fail-CLOSED: an out-of-range or
|
|
103
115
|
* NaN index cannot be proven clear, so `readStatusBit` throws rather than
|
|
104
116
|
* reading as "not set".
|
|
117
|
+
*
|
|
118
|
+
* @param decompressor - Inflates the GZIP payload. Defaults to
|
|
119
|
+
* {@link statusListGzipCodec}; reading throws on a payload that is not GZIP
|
|
120
|
+
* and on a decompressor that returns its input unchanged.
|
|
105
121
|
*/
|
|
106
122
|
export async function isIndexSet(encodedList, index, decompressor) {
|
|
107
|
-
|
|
108
|
-
return readStatusBit(decompressed, index);
|
|
123
|
+
return readStatusBit(await inflate(encodedList, decompressor), index);
|
|
109
124
|
}
|
|
110
125
|
//# sourceMappingURL=bitstring.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitstring.js","sourceRoot":"","sources":["../../src/delegation/bitstring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"bitstring.js","sourceRoot":"","sources":["../../src/delegation/bitstring.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export * from './status-cache.js';
|
|
|
10
10
|
export * from './verification-method-key.js';
|
|
11
11
|
export * from './vc-jwt-verify.js';
|
|
12
12
|
export * from './bitstring.js';
|
|
13
|
+
export { statusListGzipCodec } from '../utils/statuslist-gzip.js';
|
|
13
14
|
export * from './statuslist-manager.js';
|
|
14
15
|
export * from './delegation-graph.js';
|
|
15
16
|
export * from './cascading-revocation.js';
|
package/dist/delegation/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from './status-cache.js';
|
|
|
10
10
|
export * from './verification-method-key.js';
|
|
11
11
|
export * from './vc-jwt-verify.js';
|
|
12
12
|
export * from './bitstring.js';
|
|
13
|
+
export { statusListGzipCodec } from '../utils/statuslist-gzip.js';
|
|
13
14
|
export * from './statuslist-manager.js';
|
|
14
15
|
export * from './delegation-graph.js';
|
|
15
16
|
export * from './cascading-revocation.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAGjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delegation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAGjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -26,8 +26,8 @@ export declare class StatusList2021Manager {
|
|
|
26
26
|
private storage;
|
|
27
27
|
private identity;
|
|
28
28
|
private signingFunction;
|
|
29
|
-
private compressor
|
|
30
|
-
private decompressor
|
|
29
|
+
private compressor?;
|
|
30
|
+
private decompressor?;
|
|
31
31
|
private statusListBaseUrl;
|
|
32
32
|
private defaultListSize;
|
|
33
33
|
/**
|
|
@@ -36,7 +36,18 @@ export declare class StatusList2021Manager {
|
|
|
36
36
|
* bit with a stale copy.
|
|
37
37
|
*/
|
|
38
38
|
private updateLocks;
|
|
39
|
-
|
|
39
|
+
/**
|
|
40
|
+
* @param compressor - GZIP-compresses the bitstring of every list this
|
|
41
|
+
* manager publishes. Defaults to `statusListGzipCodec` (through
|
|
42
|
+
* {@link BitstringManager}). Status-list readers accept only GZIP, so a
|
|
43
|
+
* list published without it would read as revoked everywhere; publishing
|
|
44
|
+
* throws instead.
|
|
45
|
+
* @param decompressor - Inflates the GZIP lists this manager reads. Defaults
|
|
46
|
+
* to `statusListGzipCodec` (through {@link BitstringManager}). Reading
|
|
47
|
+
* throws on a list that is not GZIP and on a decompressor that returns its
|
|
48
|
+
* input unchanged.
|
|
49
|
+
*/
|
|
50
|
+
constructor(storage: StatusListStorageProvider, identity: StatusListIdentityProvider, signingFunction: VCSigningFunction, compressor?: CompressionFunction | undefined, decompressor?: DecompressionFunction | undefined, options?: {
|
|
40
51
|
statusListBaseUrl?: string;
|
|
41
52
|
defaultListSize?: number;
|
|
42
53
|
});
|
|
@@ -62,7 +73,12 @@ export declare class StatusList2021Manager {
|
|
|
62
73
|
getStatusListBaseUrl(): string;
|
|
63
74
|
getDefaultListSize(): number;
|
|
64
75
|
}
|
|
65
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Build a {@link StatusList2021Manager}. `compressor` and `decompressor`
|
|
78
|
+
* default to `statusListGzipCodec`; when supplied they MUST GZIP and
|
|
79
|
+
* inflate GZIP, as the manager's constructor documents.
|
|
80
|
+
*/
|
|
81
|
+
export declare function createStatusListManager(storage: StatusListStorageProvider, identity: StatusListIdentityProvider, signingFunction: VCSigningFunction, compressor?: CompressionFunction, decompressor?: DecompressionFunction, options?: {
|
|
66
82
|
statusListBaseUrl?: string;
|
|
67
83
|
defaultListSize?: number;
|
|
68
84
|
}): StatusList2021Manager;
|
|
@@ -23,6 +23,17 @@ export class StatusList2021Manager {
|
|
|
23
23
|
* bit with a stale copy.
|
|
24
24
|
*/
|
|
25
25
|
updateLocks = new Map();
|
|
26
|
+
/**
|
|
27
|
+
* @param compressor - GZIP-compresses the bitstring of every list this
|
|
28
|
+
* manager publishes. Defaults to `statusListGzipCodec` (through
|
|
29
|
+
* {@link BitstringManager}). Status-list readers accept only GZIP, so a
|
|
30
|
+
* list published without it would read as revoked everywhere; publishing
|
|
31
|
+
* throws instead.
|
|
32
|
+
* @param decompressor - Inflates the GZIP lists this manager reads. Defaults
|
|
33
|
+
* to `statusListGzipCodec` (through {@link BitstringManager}). Reading
|
|
34
|
+
* throws on a list that is not GZIP and on a decompressor that returns its
|
|
35
|
+
* input unchanged.
|
|
36
|
+
*/
|
|
26
37
|
constructor(storage, identity, signingFunction, compressor, decompressor, options) {
|
|
27
38
|
this.storage = storage;
|
|
28
39
|
this.identity = identity;
|
|
@@ -167,6 +178,11 @@ export class StatusList2021Manager {
|
|
|
167
178
|
return this.defaultListSize;
|
|
168
179
|
}
|
|
169
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Build a {@link StatusList2021Manager}. `compressor` and `decompressor`
|
|
183
|
+
* default to `statusListGzipCodec`; when supplied they MUST GZIP and
|
|
184
|
+
* inflate GZIP, as the manager's constructor documents.
|
|
185
|
+
*/
|
|
170
186
|
export function createStatusListManager(storage, identity, signingFunction, compressor, decompressor, options) {
|
|
171
187
|
return new StatusList2021Manager(storage, identity, signingFunction, compressor, decompressor, options);
|
|
172
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statuslist-manager.js","sourceRoot":"","sources":["../../src/delegation/statuslist-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,gBAAgB,EAAwD,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAsBrE,MAAM,OAAO,qBAAqB;
|
|
1
|
+
{"version":3,"file":"statuslist-manager.js","sourceRoot":"","sources":["../../src/delegation/statuslist-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export { DelegationGraphManager, createDelegationGraph, type DelegationNode, typ
|
|
|
24
24
|
export { StatusList2021Manager, createStatusListManager, type StatusListStorageProvider, type StatusListIdentityProvider, } from './delegation/statuslist-manager.js';
|
|
25
25
|
export { CascadingRevocationManager, createCascadingRevocationManager, type RevocationEvent, type RevocationHook, type CascadingRevocationOptions, } from './delegation/cascading-revocation.js';
|
|
26
26
|
export { BitstringManager, isIndexSet, type CompressionFunction, type DecompressionFunction, } from './delegation/bitstring.js';
|
|
27
|
+
export { statusListGzipCodec } from './utils/statuslist-gzip.js';
|
|
27
28
|
export { verifyDelegationAudience, } from './delegation/audience-validator.js';
|
|
28
29
|
export { buildDelegationProofJWT, buildChainString, type DelegationProofOptions, type Ed25519PrivateJWK, } from './delegation/outbound-proof.js';
|
|
29
30
|
export { buildOutboundDelegationHeaders, OUTBOUND_HEADER_NAMES, type OutboundDelegationContext, type OutboundDelegationHeaders, } from './delegation/outbound-headers.js';
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,7 @@ export { DelegationGraphManager, createDelegationGraph, } from './delegation/del
|
|
|
26
26
|
export { StatusList2021Manager, createStatusListManager, } from './delegation/statuslist-manager.js';
|
|
27
27
|
export { CascadingRevocationManager, createCascadingRevocationManager, } from './delegation/cascading-revocation.js';
|
|
28
28
|
export { BitstringManager, isIndexSet, } from './delegation/bitstring.js';
|
|
29
|
+
export { statusListGzipCodec } from './utils/statuslist-gzip.js';
|
|
29
30
|
export { verifyDelegationAudience, } from './delegation/audience-validator.js';
|
|
30
31
|
export { buildDelegationProofJWT, buildChainString, } from './delegation/outbound-proof.js';
|
|
31
32
|
export { buildOutboundDelegationHeaders, OUTBOUND_HEADER_NAMES, } from './delegation/outbound-headers.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { scopeSatisfies } from "../delegation/scope-matcher.js";
|
|
|
11
11
|
import { getDelegationScopes } from "../delegation/chain-enforcement.js";
|
|
12
12
|
import { logger } from "../logging/index.js";
|
|
13
13
|
import { KYA_OS_ERROR_CODES } from "../errors.js";
|
|
14
|
-
import { sanitizeForMessage, withoutControlArgs } from "./with-kya-os.helpers.js";
|
|
14
|
+
import { DEFAULT_APPROVALS_KEY, sanitizeForMessage, withoutControlArgs } from "./with-kya-os.helpers.js";
|
|
15
15
|
import { canonicalizeJsonBytes } from "../utils/canonical-json.js";
|
|
16
16
|
const MAX_AUDIT_REFERENCE_LENGTH = 256;
|
|
17
17
|
/** Extract only a bounded string from an untrusted credential-shaped value. */
|
|
@@ -46,7 +46,7 @@ function rejectedDelegationRef(value) {
|
|
|
46
46
|
* control argument, so they travel on in the call context instead.
|
|
47
47
|
*/
|
|
48
48
|
function forwardedApprovals(args) {
|
|
49
|
-
const approvals = args[
|
|
49
|
+
const approvals = args[DEFAULT_APPROVALS_KEY];
|
|
50
50
|
return approvals === undefined ? {} : { approvals };
|
|
51
51
|
}
|
|
52
52
|
export function createDelegationGate(deps, wiring) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-kya-os.delegation-gate.js","sourceRoot":"","sources":["../../src/middleware/with-kya-os.delegation-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQlD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"with-kya-os.delegation-gate.js","sourceRoot":"","sources":["../../src/middleware/with-kya-os.delegation-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,9 +21,10 @@ import type { KyaOsAuthorizationOutcome, KyaOsConfig, KyaOsDelegationConfig, Kya
|
|
|
21
21
|
* `proveOutcome`, so it is typed here as the shared internal contract between
|
|
22
22
|
* them. A `needs_authorization` proof binds the response (its content under
|
|
23
23
|
* the body profile, its envelope under the envelope profile); denial and
|
|
24
|
-
* step-up proofs bind none (SPEC §7.4).
|
|
24
|
+
* step-up proofs bind none (SPEC §7.4). `args` are the call's arguments as
|
|
25
|
+
* sent; the proof binds them without the `_kyaos*` control arguments.
|
|
25
26
|
*/
|
|
26
|
-
export type AttachOutcomeProof = (response: KyaOsToolResult, toolName: string, args: Record<string, unknown>, sessionId: string | undefined, reason: string, outcome?: KyaOsAuthorizationOutcome
|
|
27
|
+
export type AttachOutcomeProof = (response: KyaOsToolResult, toolName: string, args: Record<string, unknown>, sessionId: string | undefined, reason: string, outcome?: KyaOsAuthorizationOutcome) => Promise<KyaOsToolResult>;
|
|
27
28
|
/**
|
|
28
29
|
* Refuse, by throwing, a wrapped call whose proof could not be made. A proof
|
|
29
30
|
* is made where the result is sent, so every wrapper calls this on entry,
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* of `./with-kya-os.ts` so the factory module stays focused on wiring. No shared
|
|
6
6
|
* mutable state, no I/O — safe to unit test in isolation.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* The argument that carries approval grants by default, and the one
|
|
10
|
+
* `wrapWithDelegation` forwards to a composed policy gate in the call context.
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_APPROVALS_KEY = "_kyaos_approvals";
|
|
8
13
|
/**
|
|
9
14
|
* `args` without the reserved `_kyaos*` control arguments: the call as its
|
|
10
15
|
* handler sees it, and as a gate's request hash binds it.
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { getDelegationScopes } from "../delegation/chain-enforcement.js";
|
|
9
9
|
import { isKyaOsControlArg } from "../proof/covered-request.js";
|
|
10
|
+
/**
|
|
11
|
+
* The argument that carries approval grants by default, and the one
|
|
12
|
+
* `wrapWithDelegation` forwards to a composed policy gate in the call context.
|
|
13
|
+
*/
|
|
14
|
+
export const DEFAULT_APPROVALS_KEY = "_kyaos_approvals";
|
|
10
15
|
/**
|
|
11
16
|
* `args` without the reserved `_kyaos*` control arguments: the call as its
|
|
12
17
|
* handler sees it, and as a gate's request hash binds it.
|