@kya-os/mcp 1.7.0 → 1.9.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/CHANGELOG.md +69 -0
- package/README.md +219 -3
- package/dist/card/build.d.ts +41 -0
- package/dist/card/build.d.ts.map +1 -0
- package/dist/card/build.js +47 -0
- package/dist/card/build.js.map +1 -0
- package/dist/card/builder.d.ts +99 -0
- package/dist/card/builder.d.ts.map +1 -0
- package/dist/card/builder.js +147 -0
- package/dist/card/builder.js.map +1 -0
- package/dist/card/cimd.d.ts +92 -0
- package/dist/card/cimd.d.ts.map +1 -0
- package/dist/card/cimd.js +225 -0
- package/dist/card/cimd.js.map +1 -0
- package/dist/card/delegation.d.ts +145 -0
- package/dist/card/delegation.d.ts.map +1 -0
- package/dist/card/delegation.js +293 -0
- package/dist/card/delegation.js.map +1 -0
- package/dist/card/emit.d.ts +133 -0
- package/dist/card/emit.d.ts.map +1 -0
- package/dist/card/emit.js +127 -0
- package/dist/card/emit.js.map +1 -0
- package/dist/card/index.d.ts +43 -0
- package/dist/card/index.d.ts.map +1 -0
- package/dist/card/index.js +46 -0
- package/dist/card/index.js.map +1 -0
- package/dist/card/middleware.d.ts +112 -0
- package/dist/card/middleware.d.ts.map +1 -0
- package/dist/card/middleware.js +121 -0
- package/dist/card/middleware.js.map +1 -0
- package/dist/card/proof/build.d.ts +22 -0
- package/dist/card/proof/build.d.ts.map +1 -0
- package/dist/card/proof/build.js +55 -0
- package/dist/card/proof/build.js.map +1 -0
- package/dist/card/proof/canonical.d.ts +66 -0
- package/dist/card/proof/canonical.d.ts.map +1 -0
- package/dist/card/proof/canonical.js +131 -0
- package/dist/card/proof/canonical.js.map +1 -0
- package/dist/card/proof/http-sig.d.ts +69 -0
- package/dist/card/proof/http-sig.d.ts.map +1 -0
- package/dist/card/proof/http-sig.js +101 -0
- package/dist/card/proof/http-sig.js.map +1 -0
- package/dist/card/proof/index.d.ts +25 -0
- package/dist/card/proof/index.d.ts.map +1 -0
- package/dist/card/proof/index.js +25 -0
- package/dist/card/proof/index.js.map +1 -0
- package/dist/card/proof/nonce-cache.d.ts +67 -0
- package/dist/card/proof/nonce-cache.d.ts.map +1 -0
- package/dist/card/proof/nonce-cache.js +88 -0
- package/dist/card/proof/nonce-cache.js.map +1 -0
- package/dist/card/proof/signer.d.ts +32 -0
- package/dist/card/proof/signer.d.ts.map +1 -0
- package/dist/card/proof/signer.js +59 -0
- package/dist/card/proof/signer.js.map +1 -0
- package/dist/card/proof/types.d.ts +219 -0
- package/dist/card/proof/types.d.ts.map +1 -0
- package/dist/card/proof/types.js +87 -0
- package/dist/card/proof/types.js.map +1 -0
- package/dist/card/proof/verify.d.ts +27 -0
- package/dist/card/proof/verify.d.ts.map +1 -0
- package/dist/card/proof/verify.js +236 -0
- package/dist/card/proof/verify.js.map +1 -0
- package/dist/card/resolve.d.ts +97 -0
- package/dist/card/resolve.d.ts.map +1 -0
- package/dist/card/resolve.js +223 -0
- package/dist/card/resolve.js.map +1 -0
- package/dist/card/revocation.d.ts +96 -0
- package/dist/card/revocation.d.ts.map +1 -0
- package/dist/card/revocation.js +190 -0
- package/dist/card/revocation.js.map +1 -0
- package/dist/card/schema.d.ts +177 -0
- package/dist/card/schema.d.ts.map +1 -0
- package/dist/card/schema.js +119 -0
- package/dist/card/schema.js.map +1 -0
- package/dist/card/verify.d.ts +144 -0
- package/dist/card/verify.d.ts.map +1 -0
- package/dist/card/verify.js +132 -0
- package/dist/card/verify.js.map +1 -0
- package/dist/delegation/bitstring.d.ts +9 -7
- package/dist/delegation/bitstring.d.ts.map +1 -1
- package/dist/delegation/bitstring.js +70 -37
- package/dist/delegation/bitstring.js.map +1 -1
- package/dist/delegation/did-linkage.d.ts +23 -0
- package/dist/delegation/did-linkage.d.ts.map +1 -0
- package/dist/delegation/did-linkage.js +57 -0
- package/dist/delegation/did-linkage.js.map +1 -0
- package/dist/delegation/did-resolver-registry.d.ts +7 -0
- package/dist/delegation/did-resolver-registry.d.ts.map +1 -0
- package/dist/delegation/did-resolver-registry.js +20 -0
- package/dist/delegation/did-resolver-registry.js.map +1 -0
- package/dist/delegation/did-web-resolver.d.ts +29 -18
- package/dist/delegation/did-web-resolver.d.ts.map +1 -1
- package/dist/delegation/did-web-resolver.js +65 -35
- package/dist/delegation/did-web-resolver.js.map +1 -1
- package/dist/delegation/index.d.ts +3 -0
- package/dist/delegation/index.d.ts.map +1 -1
- package/dist/delegation/index.js +3 -0
- package/dist/delegation/index.js.map +1 -1
- package/dist/delegation/statuslist-manager.d.ts.map +1 -1
- package/dist/delegation/statuslist-manager.js +16 -1
- package/dist/delegation/statuslist-manager.js.map +1 -1
- package/dist/delegation/vc-jwt-verify.d.ts +61 -0
- package/dist/delegation/vc-jwt-verify.d.ts.map +1 -0
- package/dist/delegation/vc-jwt-verify.js +131 -0
- package/dist/delegation/vc-jwt-verify.js.map +1 -0
- package/dist/delegation/vc-verification-checks.d.ts +50 -0
- package/dist/delegation/vc-verification-checks.d.ts.map +1 -0
- package/dist/delegation/vc-verification-checks.js +212 -0
- package/dist/delegation/vc-verification-checks.js.map +1 -0
- package/dist/delegation/vc-verifier.d.ts +24 -61
- package/dist/delegation/vc-verifier.d.ts.map +1 -1
- package/dist/delegation/vc-verifier.js +57 -180
- package/dist/delegation/vc-verifier.js.map +1 -1
- package/dist/delegation/vc-verifier.types.d.ts +88 -0
- package/dist/delegation/vc-verifier.types.d.ts.map +1 -0
- package/dist/delegation/vc-verifier.types.js +9 -0
- package/dist/delegation/vc-verifier.types.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/cheqd/dlr.d.ts +44 -0
- package/dist/integrations/cheqd/dlr.d.ts.map +1 -0
- package/dist/integrations/cheqd/dlr.js +86 -0
- package/dist/integrations/cheqd/dlr.js.map +1 -0
- package/dist/integrations/cheqd/index.d.ts +5 -0
- package/dist/integrations/cheqd/index.d.ts.map +1 -0
- package/dist/integrations/cheqd/index.js +5 -0
- package/dist/integrations/cheqd/index.js.map +1 -0
- package/dist/integrations/cheqd/linkage.d.ts +20 -0
- package/dist/integrations/cheqd/linkage.d.ts.map +1 -0
- package/dist/integrations/cheqd/linkage.js +32 -0
- package/dist/integrations/cheqd/linkage.js.map +1 -0
- package/dist/integrations/cheqd/registrar.d.ts +85 -0
- package/dist/integrations/cheqd/registrar.d.ts.map +1 -0
- package/dist/integrations/cheqd/registrar.js +304 -0
- package/dist/integrations/cheqd/registrar.js.map +1 -0
- package/dist/integrations/cheqd/resolver.d.ts +38 -0
- package/dist/integrations/cheqd/resolver.d.ts.map +1 -0
- package/dist/integrations/cheqd/resolver.js +156 -0
- package/dist/integrations/cheqd/resolver.js.map +1 -0
- package/dist/middleware/index.d.ts +2 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +5 -0
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/with-kya-os.config-types.d.ts +139 -0
- package/dist/middleware/with-kya-os.config-types.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.config-types.js +9 -0
- package/dist/middleware/with-kya-os.config-types.js.map +1 -0
- package/dist/middleware/with-kya-os.d.ts +3 -267
- package/dist/middleware/with-kya-os.d.ts.map +1 -1
- package/dist/middleware/with-kya-os.delegation-gate.d.ts +19 -0
- package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.delegation-gate.js +175 -0
- package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -0
- package/dist/middleware/with-kya-os.delegation-verify.d.ts +51 -0
- package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.delegation-verify.js +165 -0
- package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -0
- package/dist/middleware/with-kya-os.deps.d.ts +40 -0
- package/dist/middleware/with-kya-os.deps.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.deps.js +9 -0
- package/dist/middleware/with-kya-os.deps.js.map +1 -0
- package/dist/middleware/with-kya-os.grants.d.ts +30 -0
- package/dist/middleware/with-kya-os.grants.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.grants.js +145 -0
- package/dist/middleware/with-kya-os.grants.js.map +1 -0
- package/dist/middleware/with-kya-os.helpers.d.ts +24 -0
- package/dist/middleware/with-kya-os.helpers.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.helpers.js +57 -0
- package/dist/middleware/with-kya-os.helpers.js.map +1 -0
- package/dist/middleware/with-kya-os.js +45 -891
- package/dist/middleware/with-kya-os.js.map +1 -1
- package/dist/middleware/with-kya-os.policy-gate.d.ts +16 -0
- package/dist/middleware/with-kya-os.policy-gate.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.policy-gate.js +98 -0
- package/dist/middleware/with-kya-os.policy-gate.js.map +1 -0
- package/dist/middleware/with-kya-os.protocol.d.ts +29 -0
- package/dist/middleware/with-kya-os.protocol.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.protocol.js +121 -0
- package/dist/middleware/with-kya-os.protocol.js.map +1 -0
- package/dist/middleware/with-kya-os.session.d.ts +32 -0
- package/dist/middleware/with-kya-os.session.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.session.js +201 -0
- package/dist/middleware/with-kya-os.session.js.map +1 -0
- package/dist/middleware/with-kya-os.types.d.ts +178 -0
- package/dist/middleware/with-kya-os.types.d.ts.map +1 -0
- package/dist/middleware/with-kya-os.types.js +13 -0
- package/dist/middleware/with-kya-os.types.js.map +1 -0
- package/dist/providers/runtime-fetch.d.ts +8 -0
- package/dist/providers/runtime-fetch.d.ts.map +1 -1
- package/dist/providers/runtime-fetch.js +17 -0
- package/dist/providers/runtime-fetch.js.map +1 -1
- package/dist/providers/web-crypto.d.ts.map +1 -1
- package/dist/providers/web-crypto.js +15 -7
- package/dist/providers/web-crypto.js.map +1 -1
- package/dist/utils/guards.d.ts +2 -0
- package/dist/utils/guards.d.ts.map +1 -0
- package/dist/utils/guards.js +4 -0
- package/dist/utils/guards.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ip-classifier.d.ts +12 -0
- package/dist/utils/ip-classifier.d.ts.map +1 -0
- package/dist/utils/ip-classifier.js +153 -0
- package/dist/utils/ip-classifier.js.map +1 -0
- package/dist/utils/safe-fetch-transports.d.ts +40 -0
- package/dist/utils/safe-fetch-transports.d.ts.map +1 -0
- package/dist/utils/safe-fetch-transports.js +121 -0
- package/dist/utils/safe-fetch-transports.js.map +1 -0
- package/dist/utils/safe-fetch-types.d.ts +66 -0
- package/dist/utils/safe-fetch-types.d.ts.map +1 -0
- package/dist/utils/safe-fetch-types.js +10 -0
- package/dist/utils/safe-fetch-types.js.map +1 -0
- package/dist/utils/safe-fetch.d.ts +40 -0
- package/dist/utils/safe-fetch.d.ts.map +1 -0
- package/dist/utils/safe-fetch.js +188 -0
- package/dist/utils/safe-fetch.js.map +1 -0
- package/dist/utils/statuslist-purpose.d.ts +12 -0
- package/dist/utils/statuslist-purpose.d.ts.map +1 -0
- package/dist/utils/statuslist-purpose.js +19 -0
- package/dist/utils/statuslist-purpose.js.map +1 -0
- package/dist/utils/url.d.ts +2 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +8 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +25 -5
- package/schemas/README.md +2 -1
- package/schemas/card-delegation-credential.json +239 -0
- package/schemas/kya-os-card.schema.json +284 -0
|
@@ -8,60 +8,15 @@
|
|
|
8
8
|
* Stage 2: Parallel advanced checks (signature, status)
|
|
9
9
|
* Stage 3: Combined results
|
|
10
10
|
*
|
|
11
|
+
* The stateless checks live in `./vc-verification-checks.ts`; the shapes in
|
|
12
|
+
* `./vc-verifier.types.ts` (re-exported below). This class owns orchestration
|
|
13
|
+
* and the per-instance result cache.
|
|
14
|
+
*
|
|
11
15
|
* Related Spec: KYA-OS §4.3, W3C VC Data Model 1.1
|
|
12
16
|
*/
|
|
13
|
-
import type { DelegationCredential
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
reason?: string;
|
|
17
|
-
stage: "basic" | "signature" | "status" | "complete";
|
|
18
|
-
cached?: boolean;
|
|
19
|
-
metrics?: {
|
|
20
|
-
basicCheckMs?: number;
|
|
21
|
-
signatureCheckMs?: number;
|
|
22
|
-
statusCheckMs?: number;
|
|
23
|
-
totalMs: number;
|
|
24
|
-
};
|
|
25
|
-
checks?: {
|
|
26
|
-
basicValid?: boolean;
|
|
27
|
-
signatureValid?: boolean;
|
|
28
|
-
statusValid?: boolean;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
export interface VerifyDelegationVCOptions {
|
|
32
|
-
skipCache?: boolean;
|
|
33
|
-
skipSignature?: boolean;
|
|
34
|
-
skipStatus?: boolean;
|
|
35
|
-
didResolver?: DIDResolver;
|
|
36
|
-
statusListResolver?: StatusListResolver;
|
|
37
|
-
}
|
|
38
|
-
export interface DIDResolver {
|
|
39
|
-
resolve(did: string): Promise<DIDDocument | null>;
|
|
40
|
-
}
|
|
41
|
-
export interface DIDDocument {
|
|
42
|
-
'@context'?: string | string[];
|
|
43
|
-
id: string;
|
|
44
|
-
verificationMethod?: VerificationMethod[];
|
|
45
|
-
authentication?: (string | VerificationMethod)[];
|
|
46
|
-
assertionMethod?: (string | VerificationMethod)[];
|
|
47
|
-
}
|
|
48
|
-
export interface VerificationMethod {
|
|
49
|
-
id: string;
|
|
50
|
-
type: string;
|
|
51
|
-
controller: string;
|
|
52
|
-
publicKeyJwk?: unknown;
|
|
53
|
-
publicKeyBase58?: string;
|
|
54
|
-
publicKeyMultibase?: string;
|
|
55
|
-
}
|
|
56
|
-
export interface StatusListResolver {
|
|
57
|
-
checkStatus(status: CredentialStatus): Promise<boolean>;
|
|
58
|
-
}
|
|
59
|
-
export interface SignatureVerificationFunction {
|
|
60
|
-
(vc: DelegationCredential, publicKeyJwk: unknown): Promise<{
|
|
61
|
-
valid: boolean;
|
|
62
|
-
reason?: string;
|
|
63
|
-
}>;
|
|
64
|
-
}
|
|
17
|
+
import type { DelegationCredential } from "../types/protocol.js";
|
|
18
|
+
import type { DelegationVCVerificationResult, VerifyDelegationVCOptions, DIDResolver, StatusListResolver, SignatureVerificationFunction } from "./vc-verifier.types.js";
|
|
19
|
+
export * from "./vc-verifier.types.js";
|
|
65
20
|
export declare class DelegationCredentialVerifier {
|
|
66
21
|
private didResolver?;
|
|
67
22
|
private statusListResolver?;
|
|
@@ -95,17 +50,25 @@ export declare class DelegationCredentialVerifier {
|
|
|
95
50
|
* @returns Verification result with validity, reason, stage reached, and metrics
|
|
96
51
|
*/
|
|
97
52
|
verifyDelegationCredential(vc: DelegationCredential, options?: VerifyDelegationVCOptions): Promise<DelegationVCVerificationResult>;
|
|
98
|
-
private validateBasicProperties;
|
|
99
53
|
/**
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
54
|
+
* Verify a delegation credential presented as a compact VC-JWT — the JWT
|
|
55
|
+
* serialization (W3C VC Data Model 1.1 §6.3.1), the form browser wallets
|
|
56
|
+
* mint, where the JWS envelope signature over `header.payload` IS the proof.
|
|
57
|
+
*
|
|
58
|
+
* Parses the token, runs the same fast basic checks on the extracted
|
|
59
|
+
* credential (minus the embedded-`proof` requirement — the envelope is the
|
|
60
|
+
* proof), then verifies that envelope signature and the credential status in
|
|
61
|
+
* parallel. Same result shape, cache, and metrics as
|
|
62
|
+
* {@link verifyDelegationCredential}.
|
|
63
|
+
*/
|
|
64
|
+
verifyDelegationJwt(jwt: string, options?: VerifyDelegationVCOptions): Promise<DelegationVCVerificationResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Await the parallel signature + status checks, fold them into the final
|
|
67
|
+
* result via {@link combineVerificationResult}, and cache a valid one. Shared
|
|
68
|
+
* by the Data Integrity and VC-JWT paths; both reach here only after
|
|
69
|
+
* `validateBasicProperties` has passed.
|
|
104
70
|
*/
|
|
105
|
-
private
|
|
106
|
-
private verifySignature;
|
|
107
|
-
private checkCredentialStatus;
|
|
108
|
-
private findVerificationMethod;
|
|
71
|
+
private finalizeVerification;
|
|
109
72
|
private getFromCache;
|
|
110
73
|
private setInCache;
|
|
111
74
|
clearCache(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-verifier.d.ts","sourceRoot":"","sources":["../../src/delegation/vc-verifier.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vc-verifier.d.ts","sourceRoot":"","sources":["../../src/delegation/vc-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EACV,8BAA8B,EAC9B,yBAAyB,EACzB,WAAW,EACX,kBAAkB,EAElB,6BAA6B,EAC9B,MAAM,wBAAwB,CAAC;AAehC,cAAc,wBAAwB,CAAC;AAEvC,qBAAa,4BAA4B;IACvC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAC,CAAgC;IAC1D,OAAO,CAAC,KAAK,CAGT;IACJ,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAS;IACzB;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,CAAC,EAAE;QACpB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;QAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,2CAA2C;QAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAQD;;;;;;;;;;OAUG;IACG,0BAA0B,CAC9B,EAAE,EAAE,oBAAoB,EACxB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,8BAA8B,CAAC;IAiE1C;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,8BAA8B,CAAC;IA6C1C;;;;;OAKG;YACW,oBAAoB;IA8BlC,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,UAAU;IAgBlB,UAAU,IAAI,IAAI;IAKlB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAOlC;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACjD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,4BAA4B,CAE/B"}
|
|
@@ -8,15 +8,17 @@
|
|
|
8
8
|
* Stage 2: Parallel advanced checks (signature, status)
|
|
9
9
|
* Stage 3: Combined results
|
|
10
10
|
*
|
|
11
|
+
* The stateless checks live in `./vc-verification-checks.ts`; the shapes in
|
|
12
|
+
* `./vc-verifier.types.ts` (re-exported below). This class owns orchestration
|
|
13
|
+
* and the per-instance result cache.
|
|
14
|
+
*
|
|
11
15
|
* Related Spec: KYA-OS §4.3, W3C VC Data Model 1.1
|
|
12
16
|
*/
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
const DELEGATION_SUBJECT_KEYS = ["id", "delegation"];
|
|
17
|
+
import { validateBasicProperties, verifySignature, checkCredentialStatus, combineVerificationResult, } from "./vc-verification-checks.js";
|
|
18
|
+
import { verifyVcJwtSignature, prepareVcJwtCredential, } from "./vc-jwt-verify.js";
|
|
19
|
+
// Re-export the shared type surface so existing imports of DIDResolver /
|
|
20
|
+
// SignatureVerificationFunction / StatusListResolver / … are unchanged.
|
|
21
|
+
export * from "./vc-verifier.types.js";
|
|
20
22
|
export class DelegationCredentialVerifier {
|
|
21
23
|
didResolver;
|
|
22
24
|
statusListResolver;
|
|
@@ -57,7 +59,7 @@ export class DelegationCredentialVerifier {
|
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
const basicCheckStart = Date.now();
|
|
60
|
-
const basicValidation =
|
|
62
|
+
const basicValidation = validateBasicProperties(vc);
|
|
61
63
|
const basicCheckMs = Date.now() - basicCheckStart;
|
|
62
64
|
if (!basicValidation.valid) {
|
|
63
65
|
const result = {
|
|
@@ -75,195 +77,70 @@ export class DelegationCredentialVerifier {
|
|
|
75
77
|
return result;
|
|
76
78
|
}
|
|
77
79
|
const signaturePromise = !options.skipSignature
|
|
78
|
-
?
|
|
80
|
+
? verifySignature(vc, options.didResolver || this.didResolver, this.signatureVerifier)
|
|
79
81
|
: Promise.resolve({
|
|
80
82
|
valid: true,
|
|
81
83
|
durationMs: 0,
|
|
82
84
|
});
|
|
83
85
|
const statusPromise = !options.skipStatus && vc.credentialStatus
|
|
84
|
-
?
|
|
86
|
+
? checkCredentialStatus(vc.credentialStatus, options.statusListResolver || this.statusListResolver)
|
|
85
87
|
: Promise.resolve({
|
|
86
88
|
valid: true,
|
|
87
89
|
durationMs: 0,
|
|
88
90
|
});
|
|
89
|
-
|
|
90
|
-
signaturePromise,
|
|
91
|
-
statusPromise,
|
|
92
|
-
]);
|
|
93
|
-
const signatureCheckMs = signatureResult.durationMs || 0;
|
|
94
|
-
const statusCheckMs = statusResult.durationMs || 0;
|
|
95
|
-
const allValid = basicValidation.valid && signatureResult.valid && statusResult.valid;
|
|
96
|
-
const result = {
|
|
97
|
-
valid: allValid,
|
|
98
|
-
reason: !allValid
|
|
99
|
-
? signatureResult.reason || statusResult.reason || "Unknown failure"
|
|
100
|
-
: undefined,
|
|
101
|
-
stage: "complete",
|
|
102
|
-
metrics: {
|
|
103
|
-
basicCheckMs,
|
|
104
|
-
signatureCheckMs,
|
|
105
|
-
statusCheckMs,
|
|
106
|
-
totalMs: Date.now() - startTime,
|
|
107
|
-
},
|
|
108
|
-
checks: {
|
|
109
|
-
basicValid: basicValidation.valid,
|
|
110
|
-
signatureValid: signatureResult.valid,
|
|
111
|
-
statusValid: statusResult.valid,
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
if (result.valid && vc.id) {
|
|
115
|
-
this.setInCache(vc.id, result);
|
|
116
|
-
}
|
|
117
|
-
return result;
|
|
118
|
-
}
|
|
119
|
-
validateBasicProperties(vc) {
|
|
120
|
-
const schemaValidation = validateDelegationCredential(vc);
|
|
121
|
-
if (!schemaValidation.success) {
|
|
122
|
-
return {
|
|
123
|
-
valid: false,
|
|
124
|
-
reason: `Schema validation failed: ${schemaValidation.error?.message}`,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
if (isDelegationCredentialExpired(vc)) {
|
|
128
|
-
return { valid: false, reason: "Delegation credential expired" };
|
|
129
|
-
}
|
|
130
|
-
if (isDelegationCredentialNotYetValid(vc)) {
|
|
131
|
-
return { valid: false, reason: "Delegation credential not yet valid" };
|
|
132
|
-
}
|
|
133
|
-
const delegation = vc.credentialSubject.delegation;
|
|
134
|
-
if (delegation.status === "revoked") {
|
|
135
|
-
return { valid: false, reason: "Delegation status is revoked" };
|
|
136
|
-
}
|
|
137
|
-
if (delegation.status === "expired") {
|
|
138
|
-
return { valid: false, reason: "Delegation status is expired" };
|
|
139
|
-
}
|
|
140
|
-
if (!delegation.issuerDid || !delegation.subjectDid) {
|
|
141
|
-
return { valid: false, reason: "Missing issuer or subject DID" };
|
|
142
|
-
}
|
|
143
|
-
if (!vc.proof) {
|
|
144
|
-
return { valid: false, reason: "Missing proof" };
|
|
145
|
-
}
|
|
146
|
-
const subjectShape = this.validateSubjectShape(vc);
|
|
147
|
-
if (!subjectShape.valid) {
|
|
148
|
-
return subjectShape;
|
|
149
|
-
}
|
|
150
|
-
return { valid: true };
|
|
91
|
+
return this.finalizeVerification(vc, signaturePromise, statusPromise, basicCheckMs, startTime);
|
|
151
92
|
}
|
|
152
93
|
/**
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
94
|
+
* Verify a delegation credential presented as a compact VC-JWT — the JWT
|
|
95
|
+
* serialization (W3C VC Data Model 1.1 §6.3.1), the form browser wallets
|
|
96
|
+
* mint, where the JWS envelope signature over `header.payload` IS the proof.
|
|
97
|
+
*
|
|
98
|
+
* Parses the token, runs the same fast basic checks on the extracted
|
|
99
|
+
* credential (minus the embedded-`proof` requirement — the envelope is the
|
|
100
|
+
* proof), then verifies that envelope signature and the credential status in
|
|
101
|
+
* parallel. Same result shape, cache, and metrics as
|
|
102
|
+
* {@link verifyDelegationCredential}.
|
|
157
103
|
*/
|
|
158
|
-
|
|
159
|
-
const extraneous = Object.keys(vc.credentialSubject).filter((key) => !DELEGATION_SUBJECT_KEYS.includes(key));
|
|
160
|
-
if (extraneous.length === 0) {
|
|
161
|
-
return { valid: true };
|
|
162
|
-
}
|
|
163
|
-
return {
|
|
164
|
-
valid: false,
|
|
165
|
-
reason: `credentialSubject contains non-delegation field(s): ${extraneous.join(", ")}. ` +
|
|
166
|
-
`A DelegationCredential subject MUST carry only 'id' and 'delegation' (KYA-OS §11.6).`,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
async verifySignature(vc, didResolver) {
|
|
104
|
+
async verifyDelegationJwt(jwt, options = {}) {
|
|
170
105
|
const startTime = Date.now();
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
return {
|
|
175
|
-
valid: false,
|
|
176
|
-
reason: "No DID resolver or signature verifier configured — signature cannot be verified",
|
|
177
|
-
durationMs: Date.now() - startTime,
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
const didDoc = await didResolver.resolve(issuerDid);
|
|
181
|
-
if (!didDoc) {
|
|
182
|
-
return {
|
|
183
|
-
valid: false,
|
|
184
|
-
reason: `Could not resolve issuer DID: ${issuerDid}`,
|
|
185
|
-
durationMs: Date.now() - startTime,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
if (!vc.proof) {
|
|
189
|
-
return {
|
|
190
|
-
valid: false,
|
|
191
|
-
reason: "Proof is missing",
|
|
192
|
-
durationMs: Date.now() - startTime,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
const verificationMethodId = vc.proof["verificationMethod"];
|
|
196
|
-
if (!verificationMethodId) {
|
|
197
|
-
return {
|
|
198
|
-
valid: false,
|
|
199
|
-
reason: "Proof missing verificationMethod",
|
|
200
|
-
durationMs: Date.now() - startTime,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
const verificationMethod = this.findVerificationMethod(didDoc, verificationMethodId);
|
|
204
|
-
if (!verificationMethod) {
|
|
205
|
-
return {
|
|
206
|
-
valid: false,
|
|
207
|
-
reason: `Verification method ${verificationMethodId} not found`,
|
|
208
|
-
durationMs: Date.now() - startTime,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
const publicKeyJwk = verificationMethod.publicKeyJwk;
|
|
212
|
-
if (!publicKeyJwk) {
|
|
213
|
-
return {
|
|
214
|
-
valid: false,
|
|
215
|
-
reason: "Verification method missing publicKeyJwk",
|
|
216
|
-
durationMs: Date.now() - startTime,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
const verificationResult = await this.signatureVerifier(vc, publicKeyJwk);
|
|
220
|
-
return {
|
|
221
|
-
valid: verificationResult.valid,
|
|
222
|
-
reason: verificationResult.reason,
|
|
223
|
-
durationMs: Date.now() - startTime,
|
|
224
|
-
};
|
|
106
|
+
const prepared = prepareVcJwtCredential(jwt, startTime);
|
|
107
|
+
if ("failure" in prepared) {
|
|
108
|
+
return prepared.failure;
|
|
225
109
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
async checkCredentialStatus(status, statusListResolver) {
|
|
235
|
-
const startTime = Date.now();
|
|
236
|
-
try {
|
|
237
|
-
if (!statusListResolver) {
|
|
238
|
-
return {
|
|
239
|
-
valid: false,
|
|
240
|
-
reason: "Credential has credentialStatus but no status list resolver is configured — cannot verify revocation status",
|
|
241
|
-
durationMs: Date.now() - startTime,
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
const isRevoked = await statusListResolver.checkStatus(status);
|
|
245
|
-
if (isRevoked) {
|
|
246
|
-
return {
|
|
247
|
-
valid: false,
|
|
248
|
-
reason: `Credential revoked via StatusList2021 (${status.statusPurpose})`,
|
|
249
|
-
durationMs: Date.now() - startTime,
|
|
250
|
-
};
|
|
110
|
+
const { vc, issuerDid, kid, basicCheckMs } = prepared;
|
|
111
|
+
if (!options.skipCache) {
|
|
112
|
+
const cached = this.getFromCache(vc.id || "");
|
|
113
|
+
if (cached) {
|
|
114
|
+
return { ...cached, cached: true };
|
|
251
115
|
}
|
|
252
|
-
return {
|
|
253
|
-
valid: true,
|
|
254
|
-
durationMs: Date.now() - startTime,
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
catch (error) {
|
|
258
|
-
return {
|
|
259
|
-
valid: false,
|
|
260
|
-
reason: `Status check error: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
261
|
-
durationMs: Date.now() - startTime,
|
|
262
|
-
};
|
|
263
116
|
}
|
|
117
|
+
const signaturePromise = !options.skipSignature
|
|
118
|
+
? verifyVcJwtSignature(jwt, issuerDid, kid, options.didResolver || this.didResolver)
|
|
119
|
+
: Promise.resolve({ valid: true, durationMs: 0 });
|
|
120
|
+
const statusPromise = !options.skipStatus && vc.credentialStatus
|
|
121
|
+
? checkCredentialStatus(vc.credentialStatus, options.statusListResolver || this.statusListResolver)
|
|
122
|
+
: Promise.resolve({
|
|
123
|
+
valid: true,
|
|
124
|
+
durationMs: 0,
|
|
125
|
+
});
|
|
126
|
+
return this.finalizeVerification(vc, signaturePromise, statusPromise, basicCheckMs, startTime);
|
|
264
127
|
}
|
|
265
|
-
|
|
266
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Await the parallel signature + status checks, fold them into the final
|
|
130
|
+
* result via {@link combineVerificationResult}, and cache a valid one. Shared
|
|
131
|
+
* by the Data Integrity and VC-JWT paths; both reach here only after
|
|
132
|
+
* `validateBasicProperties` has passed.
|
|
133
|
+
*/
|
|
134
|
+
async finalizeVerification(vc, signaturePromise, statusPromise, basicCheckMs, startTime) {
|
|
135
|
+
const [signatureResult, statusResult] = await Promise.all([
|
|
136
|
+
signaturePromise,
|
|
137
|
+
statusPromise,
|
|
138
|
+
]);
|
|
139
|
+
const result = combineVerificationResult(signatureResult, statusResult, basicCheckMs, startTime);
|
|
140
|
+
if (result.valid && vc.id) {
|
|
141
|
+
this.setInCache(vc.id, result);
|
|
142
|
+
}
|
|
143
|
+
return result;
|
|
267
144
|
}
|
|
268
145
|
getFromCache(id) {
|
|
269
146
|
const entry = this.cache.get(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vc-verifier.js","sourceRoot":"","sources":["../../src/delegation/vc-verifier.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vc-verifier.js","sourceRoot":"","sources":["../../src/delegation/vc-verifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Credential Verifier — shared types.
|
|
3
|
+
*
|
|
4
|
+
* The result/option/resolver shapes for the verifier + its stateless check
|
|
5
|
+
* functions. Re-exported from `./vc-verifier.ts`, so existing imports of
|
|
6
|
+
* `DIDResolver` / `SignatureVerificationFunction` / … are unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import type { CredentialStatus } from "../types/protocol.js";
|
|
9
|
+
/**
|
|
10
|
+
* Machine-readable outcome of the credential-status check. Both values still
|
|
11
|
+
* DENY (fail-closed) — the label only tells the consumer *why*, so retry vs
|
|
12
|
+
* re-consent can be decided:
|
|
13
|
+
* - `revoked`: the status bit is set — a settled deny. Re-consent required.
|
|
14
|
+
* - `status_unresolvable`: the status could not be read (resolver missing,
|
|
15
|
+
* threw, or infra unavailable). Deny now, but the credential may still be
|
|
16
|
+
* good; safe to retry once status resolution recovers.
|
|
17
|
+
*/
|
|
18
|
+
export type StatusOutcome = "revoked" | "status_unresolvable";
|
|
19
|
+
export interface DelegationVCVerificationResult {
|
|
20
|
+
valid: boolean;
|
|
21
|
+
reason?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Present only when a status check produced a deny. Distinguishes a settled
|
|
24
|
+
* `revoked` from a transient `status_unresolvable` without weakening
|
|
25
|
+
* fail-closed — both still deny (see {@link StatusOutcome}).
|
|
26
|
+
*/
|
|
27
|
+
statusOutcome?: StatusOutcome;
|
|
28
|
+
stage: "basic" | "signature" | "status" | "complete";
|
|
29
|
+
cached?: boolean;
|
|
30
|
+
metrics?: {
|
|
31
|
+
basicCheckMs?: number;
|
|
32
|
+
signatureCheckMs?: number;
|
|
33
|
+
statusCheckMs?: number;
|
|
34
|
+
totalMs: number;
|
|
35
|
+
};
|
|
36
|
+
checks?: {
|
|
37
|
+
basicValid?: boolean;
|
|
38
|
+
signatureValid?: boolean;
|
|
39
|
+
statusValid?: boolean;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface VerifyDelegationVCOptions {
|
|
43
|
+
skipCache?: boolean;
|
|
44
|
+
skipSignature?: boolean;
|
|
45
|
+
skipStatus?: boolean;
|
|
46
|
+
didResolver?: DIDResolver;
|
|
47
|
+
statusListResolver?: StatusListResolver;
|
|
48
|
+
}
|
|
49
|
+
export interface DIDResolver {
|
|
50
|
+
resolve(did: string): Promise<DIDDocument | null>;
|
|
51
|
+
}
|
|
52
|
+
export interface DIDDocument {
|
|
53
|
+
'@context'?: string | string[];
|
|
54
|
+
id: string;
|
|
55
|
+
alsoKnownAs?: string[];
|
|
56
|
+
verificationMethod?: VerificationMethod[];
|
|
57
|
+
authentication?: (string | VerificationMethod)[];
|
|
58
|
+
assertionMethod?: (string | VerificationMethod)[];
|
|
59
|
+
}
|
|
60
|
+
export interface VerificationMethod {
|
|
61
|
+
id: string;
|
|
62
|
+
type: string;
|
|
63
|
+
controller: string;
|
|
64
|
+
publicKeyJwk?: unknown;
|
|
65
|
+
publicKeyBase58?: string;
|
|
66
|
+
publicKeyMultibase?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface StatusListResolver {
|
|
69
|
+
checkStatus(status: CredentialStatus): Promise<boolean>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Internal result of a credential-status check. `outcome` is set on every
|
|
73
|
+
* deny (see {@link StatusOutcome}); it is surfaced as
|
|
74
|
+
* `DelegationVCVerificationResult.statusOutcome`.
|
|
75
|
+
*/
|
|
76
|
+
export interface StatusCheckResult {
|
|
77
|
+
valid: boolean;
|
|
78
|
+
reason?: string;
|
|
79
|
+
outcome?: StatusOutcome;
|
|
80
|
+
durationMs?: number;
|
|
81
|
+
}
|
|
82
|
+
export interface SignatureVerificationFunction {
|
|
83
|
+
(vc: import("../types/protocol.js").DelegationCredential, publicKeyJwk: unknown): Promise<{
|
|
84
|
+
valid: boolean;
|
|
85
|
+
reason?: string;
|
|
86
|
+
}>;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=vc-verifier.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vc-verifier.types.d.ts","sourceRoot":"","sources":["../../src/delegation/vc-verifier.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,qBAAqB,CAAC;AAE9D,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACjD,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,CACE,EAAE,EAAE,OAAO,sBAAsB,EAAE,oBAAoB,EACvD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC;QACT,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Credential Verifier — shared types.
|
|
3
|
+
*
|
|
4
|
+
* The result/option/resolver shapes for the verifier + its stateless check
|
|
5
|
+
* functions. Re-exported from `./vc-verifier.ts`, so existing imports of
|
|
6
|
+
* `DIDResolver` / `SignatureVerificationFunction` / … are unchanged.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=vc-verifier.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vc-verifier.types.js","sourceRoot":"","sources":["../../src/delegation/vc-verifier.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export { base64urlEncodeFromBytes, base64urlDecodeToBytes, bytesToBase64, base64
|
|
|
19
19
|
export type { DelegationConstraints, DelegationRecord, DelegationCredential, DelegationStatus, CredentialStatus, StatusList2021Credential, Proof, HandshakeRequest, SessionContext, NonceCache, MCPClientInfo, MCPClientSessionInfo, SessionIdentityState, DetachedProof, ProofMeta, CanonicalHashes, AuditRecord, AuditContext, AuditEventContext, NeedsAuthorizationError, NeedsApprovalError, AuthorizationDisplay, CrispBudget, CrispScope, } from './types/protocol.js';
|
|
20
20
|
export { wrapDelegationAsVC, extractDelegationFromVC, isDelegationCredentialExpired, isDelegationCredentialNotYetValid, validateDelegationCredential, validateDetachedProof, createNeedsAuthorizationError, isNeedsAuthorizationError, createNeedsApprovalError, isNeedsApprovalError, DELEGATION_CREDENTIAL_CONTEXT, DEFAULT_SESSION_TTL_MINUTES, DEFAULT_TIMESTAMP_SKEW_SECONDS, NONCE_LENGTH_BYTES, AUTH_NONCE_TTL_MS, ANON_NONCE_TTL_MS, type MetaPolicy, } from './types/protocol.js';
|
|
21
21
|
export { DelegationCredentialIssuer, createDelegationIssuer, type IssueDelegationOptions, type VCSigningFunction, type IdentityProvider as DelegationIdentityProvider, } from './delegation/vc-issuer.js';
|
|
22
|
-
export { DelegationCredentialVerifier, createDelegationVerifier, type DelegationVCVerificationResult, type VerifyDelegationVCOptions, type DIDResolver, type DIDDocument, type VerificationMethod, type StatusListResolver, type SignatureVerificationFunction, } from './delegation/vc-verifier.js';
|
|
22
|
+
export { DelegationCredentialVerifier, createDelegationVerifier, type DelegationVCVerificationResult, type StatusOutcome, type VerifyDelegationVCOptions, type DIDResolver, type DIDDocument, type VerificationMethod, type StatusListResolver, type SignatureVerificationFunction, } from './delegation/vc-verifier.js';
|
|
23
23
|
export { DelegationGraphManager, createDelegationGraph, type DelegationNode, type DelegationGraphStorageProvider, } from './delegation/delegation-graph.js';
|
|
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';
|
|
@@ -33,6 +33,8 @@ export { MemoryStatusListStorage } from './delegation/storage/memory-statuslist-
|
|
|
33
33
|
export { MemoryDelegationGraphStorage } from './delegation/storage/memory-graph-storage.js';
|
|
34
34
|
export { createDidKeyResolver, resolveDidKeySync, isEd25519DidKey, extractPublicKeyFromDidKey, publicKeyToJwk, } from './delegation/did-key-resolver.js';
|
|
35
35
|
export { DidWebResolver, createDidWebResolver, isDidWeb, parseDidWeb, didWebToUrl, buildDidWebDocument, type BuildDidWebDocumentOptions, } from './delegation/did-web-resolver.js';
|
|
36
|
+
export { verifyDidLinkage, type DidLinkageVerificationResult, type VerifyDidLinkageOptions, } from './delegation/did-linkage.js';
|
|
37
|
+
export { buildDidResolverRegistry, type DIDResolverFactory, type DIDResolverRegistry, type DIDResolverRegistryEntry, } from './delegation/did-resolver-registry.js';
|
|
36
38
|
export { base58Encode, base58Decode, isValidBase58, } from './utils/base58.js';
|
|
37
39
|
export { isValidDid, getDidMethod, normalizeDid, compareDids, getServerDid, extractAgentId, extractAgentSlug, generateDidKeyFromBytes, generateDidKeyFromBase64, didKeyFragment, } from './utils/did-helpers.js';
|
|
38
40
|
export { verifyOrHints, hasSensitiveScopes, MemoryResumeTokenStore, type AuthHandshakeConfig, type VerifyOrHintsResult, type AgentReputation, type ResumeTokenStore, type UnknownAgentPolicy, type DelegationVerifier, type VerifyDelegationResult, } from './auth/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,EACL,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,eAAe,EACf,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,IAAI,0BAA0B,GACpD,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,GACnC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,8BAA8B,GACpC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,0BAA0B,GAChC,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,wBAAwB,GACzB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAE5F,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,cAAc,GACf,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,GAC7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,4BAA4B,EAC5B,KAAK,0BAA0B,GAChC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,yBAAyB,GAC/B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,QAAQ,EACb,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEvF,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,KAAK,EACV,KAAK,uBAAuB,GAC7B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,6BAA6B,GACnC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,SAAS,EACT,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EACL,UAAU,EACV,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,MAAM,EACN,0BAA0B,EAC1B,KAAK,MAAM,EACX,KAAK,KAAK,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,8 @@ export { MemoryStatusListStorage } from './delegation/storage/memory-statuslist-
|
|
|
35
35
|
export { MemoryDelegationGraphStorage } from './delegation/storage/memory-graph-storage.js';
|
|
36
36
|
export { createDidKeyResolver, resolveDidKeySync, isEd25519DidKey, extractPublicKeyFromDidKey, publicKeyToJwk, } from './delegation/did-key-resolver.js';
|
|
37
37
|
export { DidWebResolver, createDidWebResolver, isDidWeb, parseDidWeb, didWebToUrl, buildDidWebDocument, } from './delegation/did-web-resolver.js';
|
|
38
|
+
export { verifyDidLinkage, } from './delegation/did-linkage.js';
|
|
39
|
+
export { buildDidResolverRegistry, } from './delegation/did-resolver-registry.js';
|
|
38
40
|
// Utils
|
|
39
41
|
export { base58Encode, base58Decode, isValidBase58, } from './utils/base58.js';
|
|
40
42
|
export { isValidDid, getDidMethod, normalizeDid, compareDids, getServerDid, extractAgentId, extractAgentSlug, generateDidKeyFromBytes, generateDidKeyFromBase64, didKeyFragment, } from './utils/did-helpers.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAGjB,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,aAAa,GACd,MAAM,mBAAmB,CAAC;AA8B3B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,8BAA8B,EAC9B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAElB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GAIvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|