@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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DID:cheqd Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves did:cheqd DIDs through an explicitly configured resolver endpoint.
|
|
5
|
+
* The resolver accepts both Universal Resolver-style DID Resolution Results
|
|
6
|
+
* (`{ didDocument: ... }`) and raw DID Documents.
|
|
7
|
+
*/
|
|
8
|
+
import type { FetchProvider } from '../../providers/base.js';
|
|
9
|
+
import type { DIDResolverFactory } from '../../delegation/did-resolver-registry.js';
|
|
10
|
+
import type { DIDDocument, DIDResolver } from '../../delegation/vc-verifier.js';
|
|
11
|
+
export type DidCheqdNetwork = 'mainnet' | 'testnet';
|
|
12
|
+
export interface ParsedDidCheqd {
|
|
13
|
+
network: DidCheqdNetwork;
|
|
14
|
+
uniqueId: string;
|
|
15
|
+
}
|
|
16
|
+
export interface DidCheqdResolverOptions {
|
|
17
|
+
resolverUrl: string;
|
|
18
|
+
cacheTtl?: number;
|
|
19
|
+
headers?: Record<string, string> | (() => Promise<Record<string, string>>);
|
|
20
|
+
}
|
|
21
|
+
export declare function isDidCheqd(did: string): boolean;
|
|
22
|
+
export declare function parseDidCheqd(did: string): ParsedDidCheqd | null;
|
|
23
|
+
export declare class DidCheqdResolver implements DIDResolver {
|
|
24
|
+
private readonly fetchProvider;
|
|
25
|
+
private readonly resolverUrl;
|
|
26
|
+
private readonly cache;
|
|
27
|
+
private readonly cacheTtl;
|
|
28
|
+
private readonly headers?;
|
|
29
|
+
constructor(fetchProvider: FetchProvider, options: DidCheqdResolverOptions);
|
|
30
|
+
resolve(did: string): Promise<DIDDocument | null>;
|
|
31
|
+
clearCache(): void;
|
|
32
|
+
clearCacheEntry(did: string): void;
|
|
33
|
+
private resolveHeaders;
|
|
34
|
+
}
|
|
35
|
+
export declare function createDidCheqdResolver(fetchProvider: FetchProvider, options: DidCheqdResolverOptions): DIDResolver;
|
|
36
|
+
export declare function cheqdResolver(options: DidCheqdResolverOptions): DIDResolverFactory;
|
|
37
|
+
export declare function didCheqdToResolverUrl(did: string, resolverUrl: string): string;
|
|
38
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/integrations/cheqd/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,iCAAiC,CAAC;AAIpG,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC5E;AAMD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAehE;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4D;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAmE;gBAEhF,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB;IAQpE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyDvD,UAAU,IAAI,IAAI;IAIlB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;YAIpB,cAAc;CAM7B;AAED,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,uBAAuB,GAC/B,WAAW,CAEb;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,uBAAuB,GAAG,kBAAkB,CAElF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAS9E"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DID:cheqd Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves did:cheqd DIDs through an explicitly configured resolver endpoint.
|
|
5
|
+
* The resolver accepts both Universal Resolver-style DID Resolution Results
|
|
6
|
+
* (`{ didDocument: ... }`) and raw DID Documents.
|
|
7
|
+
*/
|
|
8
|
+
import { logger } from '../../logging/index.js';
|
|
9
|
+
import { isRecord, stripTrailingSlashes } from '../../utils/index.js';
|
|
10
|
+
export function isDidCheqd(did) {
|
|
11
|
+
return did.startsWith('did:cheqd:');
|
|
12
|
+
}
|
|
13
|
+
export function parseDidCheqd(did) {
|
|
14
|
+
const match = /^did:cheqd:(mainnet|testnet):([^/?#]+)$/.exec(did);
|
|
15
|
+
if (!match) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const uniqueId = match[2] ?? '';
|
|
19
|
+
if (uniqueId.length === 0) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
network: match[1],
|
|
24
|
+
uniqueId,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export class DidCheqdResolver {
|
|
28
|
+
fetchProvider;
|
|
29
|
+
resolverUrl;
|
|
30
|
+
cache;
|
|
31
|
+
cacheTtl;
|
|
32
|
+
headers;
|
|
33
|
+
constructor(fetchProvider, options) {
|
|
34
|
+
this.fetchProvider = fetchProvider;
|
|
35
|
+
this.resolverUrl = options.resolverUrl;
|
|
36
|
+
this.cacheTtl = options.cacheTtl ?? 300_000;
|
|
37
|
+
this.headers = options.headers;
|
|
38
|
+
this.cache = new Map();
|
|
39
|
+
}
|
|
40
|
+
async resolve(did) {
|
|
41
|
+
if (!parseDidCheqd(did)) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const cached = this.cache.get(did);
|
|
45
|
+
if (cached && Date.now() < cached.expiresAt) {
|
|
46
|
+
return cached.document;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const response = await this.fetchProvider.fetch(didCheqdToResolverUrl(did, this.resolverUrl), {
|
|
50
|
+
method: 'GET',
|
|
51
|
+
headers: await this.resolveHeaders(),
|
|
52
|
+
});
|
|
53
|
+
if (!response.ok) {
|
|
54
|
+
logger.warn(`[DidCheqdResolver] HTTP ${response.status} resolving ${did}`);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
let json;
|
|
58
|
+
try {
|
|
59
|
+
json = await response.json();
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
logger.warn(`[DidCheqdResolver] Invalid JSON resolving ${did}`);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const document = extractDidDocument(json);
|
|
66
|
+
if (!document || !isValidDIDDocument(document)) {
|
|
67
|
+
logger.warn(`[DidCheqdResolver] Invalid DID Document resolving ${did}`);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
if (document.id !== did) {
|
|
71
|
+
logger.warn(`[DidCheqdResolver] DID Document id mismatch: expected ${did}, got ${document.id}`);
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
this.cache.set(did, {
|
|
75
|
+
document,
|
|
76
|
+
expiresAt: Date.now() + this.cacheTtl,
|
|
77
|
+
});
|
|
78
|
+
return document;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
logger.warn(`[DidCheqdResolver] Error resolving ${did}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
clearCache() {
|
|
86
|
+
this.cache.clear();
|
|
87
|
+
}
|
|
88
|
+
clearCacheEntry(did) {
|
|
89
|
+
this.cache.delete(did);
|
|
90
|
+
}
|
|
91
|
+
async resolveHeaders() {
|
|
92
|
+
if (!this.headers) {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
return typeof this.headers === 'function' ? this.headers() : this.headers;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export function createDidCheqdResolver(fetchProvider, options) {
|
|
99
|
+
return new DidCheqdResolver(fetchProvider, options);
|
|
100
|
+
}
|
|
101
|
+
export function cheqdResolver(options) {
|
|
102
|
+
return (fetchProvider) => createDidCheqdResolver(fetchProvider, options);
|
|
103
|
+
}
|
|
104
|
+
export function didCheqdToResolverUrl(did, resolverUrl) {
|
|
105
|
+
const base = stripTrailingSlashes(resolverUrl);
|
|
106
|
+
if (base.includes('{did}')) {
|
|
107
|
+
return base.replace('{did}', did);
|
|
108
|
+
}
|
|
109
|
+
if (base.endsWith('/1.0/identifiers')) {
|
|
110
|
+
return `${base}/${did}`;
|
|
111
|
+
}
|
|
112
|
+
return `${base}/1.0/identifiers/${did}`;
|
|
113
|
+
}
|
|
114
|
+
function extractDidDocument(value) {
|
|
115
|
+
if (isRecord(value) && value['didDocument'] !== undefined) {
|
|
116
|
+
return value.didDocument;
|
|
117
|
+
}
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
function isValidDIDDocument(value) {
|
|
121
|
+
if (!isRecord(value)) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
if (typeof value['id'] !== 'string' || value['id'].length === 0) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
if (value['alsoKnownAs'] !== undefined && !isStringArray(value['alsoKnownAs'])) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
if (value['verificationMethod'] !== undefined) {
|
|
131
|
+
if (!Array.isArray(value['verificationMethod'])) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
for (const method of value['verificationMethod']) {
|
|
135
|
+
if (!isValidVerificationMethod(method)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
function isValidVerificationMethod(value) {
|
|
143
|
+
if (!isRecord(value)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
return (typeof value['id'] === 'string' &&
|
|
147
|
+
value['id'].length > 0 &&
|
|
148
|
+
typeof value['type'] === 'string' &&
|
|
149
|
+
value['type'].length > 0 &&
|
|
150
|
+
typeof value['controller'] === 'string' &&
|
|
151
|
+
value['controller'].length > 0);
|
|
152
|
+
}
|
|
153
|
+
function isStringArray(value) {
|
|
154
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === 'string');
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,6 @@
|
|
|
9
9
|
export { createKyaOsMiddleware, type KyaOsConfig, type KyaOsDelegationConfig, type KyaOsIdentityConfig, type KyaOsMiddleware, type KyaOsToolDefinition, type KyaOsToolHandler, type KyaOsServer, } from './with-kya-os.js';
|
|
10
10
|
export { withKyaOs, generateIdentity, type WithKyaOsOptions, } from './with-kya-os-server.js';
|
|
11
11
|
export { createKyaOsTransport, type Transport, type JSONRPCMessage, } from './kya-os-transport.js';
|
|
12
|
+
export { card, CardBuilder, type CardBuilderInit, type AccountableToOptions, type VcInput, } from '../card/builder.js';
|
|
13
|
+
export { withKyaOsCard, requireProof, readCardProof, type KyaOsCardMount, type ServerJsonLike, type DidDocumentLike, type ProofGuard, type ProofGateResult, type ProofGateError, type ProofGateCode, type RequireProofOptions, type MinProofLevel, } from '../card/middleware.js';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,IAAI,EACJ,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,OAAO,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAC"}
|
package/dist/middleware/index.js
CHANGED
|
@@ -9,4 +9,9 @@
|
|
|
9
9
|
export { createKyaOsMiddleware, } from './with-kya-os.js';
|
|
10
10
|
export { withKyaOs, generateIdentity, } from './with-kya-os-server.js';
|
|
11
11
|
export { createKyaOsTransport, } from './kya-os-transport.js';
|
|
12
|
+
// Entity Card DevX surface — the 10-minute adoption path. The fluent `card()` builder and the
|
|
13
|
+
// `withKyaOsCard` / `requireProof` wrappers hide the RFC 9421/9449/8785 machinery behind
|
|
14
|
+
// ergonomics (see `src/card/builder.ts` + `src/card/middleware.ts`).
|
|
15
|
+
export { card, CardBuilder, } from '../card/builder.js';
|
|
16
|
+
export { withKyaOsCard, requireProof, readCardProof, } from '../card/middleware.js';
|
|
12
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,GAQtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,qBAAqB,GAQtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,SAAS,EACT,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAE/B,8FAA8F;AAC9F,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,IAAI,EACJ,WAAW,GAIZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,GAUd,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KYA-OS Middleware — configuration input types.
|
|
3
|
+
*
|
|
4
|
+
* The identity / session / delegation configuration a caller passes to
|
|
5
|
+
* `withKyaOs` / `createKyaOsMiddleware`. Split from the API-surface types
|
|
6
|
+
* (`./with-kya-os.types.ts`), which re-exports these so importers are unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import type { FetchProvider, NonceCacheProvider } from "../providers/base.js";
|
|
9
|
+
import type { AuditLogProvider } from "../providers/audit-log.js";
|
|
10
|
+
import type { GrantStore } from "../providers/grant-store.js";
|
|
11
|
+
import type { SessionConfig } from "../session/manager.js";
|
|
12
|
+
import type { DIDResolver, StatusListResolver } from "../delegation/vc-verifier.js";
|
|
13
|
+
import type { DIDResolverRegistry } from "../delegation/did-resolver-registry.js";
|
|
14
|
+
import type { RevocationChecker } from "../delegation/chain-enforcement.js";
|
|
15
|
+
import type { DelegationCredential } from "../types/protocol.js";
|
|
16
|
+
export interface KyaOsIdentityConfig {
|
|
17
|
+
did: string;
|
|
18
|
+
kid: string;
|
|
19
|
+
privateKey: string;
|
|
20
|
+
publicKey: string;
|
|
21
|
+
agentName?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const KYA_OS_ACTIONS: readonly ["handshake", "identity", "reputation"];
|
|
24
|
+
export type KyaOsAction = (typeof KYA_OS_ACTIONS)[number];
|
|
25
|
+
export interface KyaOsDelegationConfig {
|
|
26
|
+
/**
|
|
27
|
+
* Optional custom DID resolver. If it returns null, middleware falls back to
|
|
28
|
+
* built-in did:key resolution and fetch-backed did:web resolution.
|
|
29
|
+
*/
|
|
30
|
+
didResolver?: DIDResolver;
|
|
31
|
+
/**
|
|
32
|
+
* Optional fetch provider used for did:web resolution.
|
|
33
|
+
* If omitted, middleware falls back to the runtime global fetch when available.
|
|
34
|
+
*/
|
|
35
|
+
fetchProvider?: FetchProvider;
|
|
36
|
+
/**
|
|
37
|
+
* Optional DID method resolver registry. Entries are keyed by DID method
|
|
38
|
+
* (for example, "cheqd") and are checked before the built-in did:key and
|
|
39
|
+
* did:web fallback. Factory entries receive the active fetch provider.
|
|
40
|
+
*/
|
|
41
|
+
didResolvers?: DIDResolverRegistry;
|
|
42
|
+
/**
|
|
43
|
+
* Resolver for StatusList2021 checks. Credentials with credentialStatus are
|
|
44
|
+
* rejected when no resolver is configured.
|
|
45
|
+
*/
|
|
46
|
+
statusListResolver?: StatusListResolver;
|
|
47
|
+
/**
|
|
48
|
+
* Resolve ancestor credentials for a delegated chain. The returned array may
|
|
49
|
+
* contain only ancestors (root -> parent) or the full chain (root -> leaf).
|
|
50
|
+
*/
|
|
51
|
+
resolveDelegationChain?: (leafCredential: DelegationCredential) => Promise<DelegationCredential[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Graph-backed ancestor-revocation check. When provided, the chain walk also
|
|
54
|
+
* verifies the leaf is not revoked via a cascade-revoked ANCESTOR — caught
|
|
55
|
+
* independently of how `resolveDelegationChain` hydrated the chain (it walks
|
|
56
|
+
* the delegation graph + StatusList). `CascadingRevocationManager` is the
|
|
57
|
+
* reference adapter. Omit to keep the prior per-credential-status behavior.
|
|
58
|
+
*/
|
|
59
|
+
revocationChecker?: RevocationChecker;
|
|
60
|
+
/**
|
|
61
|
+
* Holder-of-key enforcement for inbound calls (spec §11.8). A valid delegation
|
|
62
|
+
* is a *bearer* credential; holder binding additionally requires the caller to
|
|
63
|
+
* present a per-request proof (`_kyaos_proof`) signed by the delegation
|
|
64
|
+
* SUBJECT's key, closing theft-replay for the key-bearing population.
|
|
65
|
+
*
|
|
66
|
+
* - `'off'` (default): no holder-binding check — current behavior, unchanged.
|
|
67
|
+
* - `'warn'`: check and log failures (missing/unbound proof), but still allow.
|
|
68
|
+
* - `'enforce'`: reject calls whose proof is missing or does not bind the
|
|
69
|
+
* subject. **Breaking for callers that don't yet send `_kyaos_proof`** — opt
|
|
70
|
+
* in only once your agents mint request proofs.
|
|
71
|
+
*
|
|
72
|
+
* Scope is did:key subjects (the DID encodes the key). did:web and other
|
|
73
|
+
* subjects are deferred to cnf-based binding (phase 2) and logged, never
|
|
74
|
+
* rejected — so enabling `'enforce'` never breaks did:web traffic.
|
|
75
|
+
*/
|
|
76
|
+
holderBinding?: "off" | "warn" | "enforce";
|
|
77
|
+
}
|
|
78
|
+
export interface KyaOsConfig {
|
|
79
|
+
/** Agent identity (DID + key material) */
|
|
80
|
+
identity: KyaOsIdentityConfig;
|
|
81
|
+
/** Session configuration overrides */
|
|
82
|
+
session?: Omit<SessionConfig, "nonceCache">;
|
|
83
|
+
/**
|
|
84
|
+
* Replay-protection store, shared by the session handshake AND inbound holder
|
|
85
|
+
* binding so both draw on one nonce namespace. Defaults to an in-memory store
|
|
86
|
+
* (single-process only); inject a Redis / Durable Object / KV-backed
|
|
87
|
+
* {@link NonceCacheProvider} for multi-instance deployments. Set here, not on
|
|
88
|
+
* `session`, so there is exactly one cache and the two cannot diverge.
|
|
89
|
+
*/
|
|
90
|
+
nonceCache?: NonceCacheProvider;
|
|
91
|
+
/**
|
|
92
|
+
* Durable store for approved authorization grants, enabling the no-paste
|
|
93
|
+
* retry: an agent that already obtained a grant can call again — even on a
|
|
94
|
+
* fresh instance with empty memory, or after a restart — without re-pasting
|
|
95
|
+
* the delegation. Defaults to an in-memory {@link MemoryGrantStore}
|
|
96
|
+
* (single-process only); inject a Redis / Durable Object / DB-backed
|
|
97
|
+
* {@link GrantStore} for multi-instance deployments. Mirrors `nonceCache?`.
|
|
98
|
+
*
|
|
99
|
+
* For the no-paste retry to actually RESOLVE a bound grant, the call must be
|
|
100
|
+
* resolvable: either holder binding is `'enforce'` and the agent presents a
|
|
101
|
+
* per-request `_kyaos_proof` (agent-anchored `getByAgent`), or the client
|
|
102
|
+
* threads its `sessionId` (session-bearer `getBySession`). A grant that would
|
|
103
|
+
* be unresolvable — holder binding `'off'` with no threaded `sessionId` — is
|
|
104
|
+
* NOT bound (it would only orphan a store row); such flows achieve durability
|
|
105
|
+
* by re-presenting the delegation instead.
|
|
106
|
+
*/
|
|
107
|
+
grantStore?: GrantStore;
|
|
108
|
+
/**
|
|
109
|
+
* Whether to ALSO emit the detached proof under the legacy bare `_meta.proof`
|
|
110
|
+
* key (in addition to the namespaced `org.kya-os/proof`). The value is
|
|
111
|
+
* identical under both keys and `_meta` is excluded from the response hash
|
|
112
|
+
* (§7.6), so the mirror never affects signatures or verification.
|
|
113
|
+
*
|
|
114
|
+
* Default `true` — a transition aid so pre-1.1 clients that still read bare
|
|
115
|
+
* `proof` keep working. Set `false` once your clients read the namespaced key
|
|
116
|
+
* (the examples do this for a clean single-key Inspector view).
|
|
117
|
+
*
|
|
118
|
+
* Stays ON by default for the whole 1.x line (a pre-1.1 reader of bare
|
|
119
|
+
* `_meta.proof` would otherwise silently get no proof); the legacy mirror is
|
|
120
|
+
* dropped at 2.0.
|
|
121
|
+
*/
|
|
122
|
+
emitLegacyProofKey?: boolean;
|
|
123
|
+
/** Delegation verification overrides */
|
|
124
|
+
delegation?: KyaOsDelegationConfig;
|
|
125
|
+
/**
|
|
126
|
+
* When true, automatically creates a session on the first tool call
|
|
127
|
+
* if no session exists. Useful for demos and development where
|
|
128
|
+
* MCP clients don't support the `_kyaos` handshake flow.
|
|
129
|
+
* In production, KYA-OS-aware runtimes should execute handshake before tool calls.
|
|
130
|
+
*/
|
|
131
|
+
autoSession?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Sink for retaining audit records of verified tool calls. Defaults to a
|
|
134
|
+
* no-op; supply an {@link AuditLogProvider} (e.g. a durable, append-only
|
|
135
|
+
* implementation) to capture an audit trail.
|
|
136
|
+
*/
|
|
137
|
+
auditLog?: AuditLogProvider;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=with-kya-os.config-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-kya-os.config-types.d.ts","sourceRoot":"","sources":["../../src/middleware/with-kya-os.config-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,kDAAmD,CAAC;AAC/E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;OAIG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,CACvB,cAAc,EAAE,oBAAoB,KACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACrC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;;;;;;;;;OAeG;IACH,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,sCAAsC;IACtC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC5C;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wCAAwC;IACxC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KYA-OS Middleware — configuration input types.
|
|
3
|
+
*
|
|
4
|
+
* The identity / session / delegation configuration a caller passes to
|
|
5
|
+
* `withKyaOs` / `createKyaOsMiddleware`. Split from the API-surface types
|
|
6
|
+
* (`./with-kya-os.types.ts`), which re-exports these so importers are unchanged.
|
|
7
|
+
*/
|
|
8
|
+
export const KYA_OS_ACTIONS = ["handshake", "identity", "reputation"];
|
|
9
|
+
//# sourceMappingURL=with-kya-os.config-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-kya-os.config-types.js","sourceRoot":"","sources":["../../src/middleware/with-kya-os.config-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC"}
|