@kya-os/mcp 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/LICENSE +21 -0
  3. package/README.md +135 -0
  4. package/dist/auth/handshake.d.ts +119 -0
  5. package/dist/auth/handshake.d.ts.map +1 -0
  6. package/dist/auth/handshake.js +267 -0
  7. package/dist/auth/handshake.js.map +1 -0
  8. package/dist/auth/index.d.ts +3 -0
  9. package/dist/auth/index.d.ts.map +1 -0
  10. package/dist/auth/index.js +2 -0
  11. package/dist/auth/index.js.map +1 -0
  12. package/dist/auth/types.d.ts +31 -0
  13. package/dist/auth/types.d.ts.map +1 -0
  14. package/dist/auth/types.js +7 -0
  15. package/dist/auth/types.js.map +1 -0
  16. package/dist/delegation/audience-validator.d.ts +9 -0
  17. package/dist/delegation/audience-validator.d.ts.map +1 -0
  18. package/dist/delegation/audience-validator.js +17 -0
  19. package/dist/delegation/audience-validator.js.map +1 -0
  20. package/dist/delegation/bitstring.d.ts +37 -0
  21. package/dist/delegation/bitstring.d.ts.map +1 -0
  22. package/dist/delegation/bitstring.js +117 -0
  23. package/dist/delegation/bitstring.js.map +1 -0
  24. package/dist/delegation/cascading-revocation.d.ts +45 -0
  25. package/dist/delegation/cascading-revocation.d.ts.map +1 -0
  26. package/dist/delegation/cascading-revocation.js +150 -0
  27. package/dist/delegation/cascading-revocation.js.map +1 -0
  28. package/dist/delegation/delegation-graph.d.ts +49 -0
  29. package/dist/delegation/delegation-graph.d.ts.map +1 -0
  30. package/dist/delegation/delegation-graph.js +99 -0
  31. package/dist/delegation/delegation-graph.js.map +1 -0
  32. package/dist/delegation/did-key-resolver.d.ts +64 -0
  33. package/dist/delegation/did-key-resolver.d.ts.map +1 -0
  34. package/dist/delegation/did-key-resolver.js +157 -0
  35. package/dist/delegation/did-key-resolver.js.map +1 -0
  36. package/dist/delegation/did-web-resolver.d.ts +83 -0
  37. package/dist/delegation/did-web-resolver.d.ts.map +1 -0
  38. package/dist/delegation/did-web-resolver.js +218 -0
  39. package/dist/delegation/did-web-resolver.js.map +1 -0
  40. package/dist/delegation/index.d.ts +21 -0
  41. package/dist/delegation/index.d.ts.map +1 -0
  42. package/dist/delegation/index.js +21 -0
  43. package/dist/delegation/index.js.map +1 -0
  44. package/dist/delegation/outbound-headers.d.ts +79 -0
  45. package/dist/delegation/outbound-headers.d.ts.map +1 -0
  46. package/dist/delegation/outbound-headers.js +138 -0
  47. package/dist/delegation/outbound-headers.js.map +1 -0
  48. package/dist/delegation/outbound-proof.d.ts +43 -0
  49. package/dist/delegation/outbound-proof.d.ts.map +1 -0
  50. package/dist/delegation/outbound-proof.js +52 -0
  51. package/dist/delegation/outbound-proof.js.map +1 -0
  52. package/dist/delegation/statuslist-manager.d.ts +47 -0
  53. package/dist/delegation/statuslist-manager.d.ts.map +1 -0
  54. package/dist/delegation/statuslist-manager.js +139 -0
  55. package/dist/delegation/statuslist-manager.js.map +1 -0
  56. package/dist/delegation/storage/memory-graph-storage.d.ts +70 -0
  57. package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -0
  58. package/dist/delegation/storage/memory-graph-storage.js +145 -0
  59. package/dist/delegation/storage/memory-graph-storage.js.map +1 -0
  60. package/dist/delegation/storage/memory-statuslist-storage.d.ts +19 -0
  61. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -0
  62. package/dist/delegation/storage/memory-statuslist-storage.js +33 -0
  63. package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -0
  64. package/dist/delegation/utils.d.ts +49 -0
  65. package/dist/delegation/utils.d.ts.map +1 -0
  66. package/dist/delegation/utils.js +131 -0
  67. package/dist/delegation/utils.js.map +1 -0
  68. package/dist/delegation/vc-issuer.d.ts +56 -0
  69. package/dist/delegation/vc-issuer.d.ts.map +1 -0
  70. package/dist/delegation/vc-issuer.js +80 -0
  71. package/dist/delegation/vc-issuer.js.map +1 -0
  72. package/dist/delegation/vc-verifier.d.ts +112 -0
  73. package/dist/delegation/vc-verifier.d.ts.map +1 -0
  74. package/dist/delegation/vc-verifier.js +280 -0
  75. package/dist/delegation/vc-verifier.js.map +1 -0
  76. package/dist/errors.d.ts +42 -0
  77. package/dist/errors.d.ts.map +1 -0
  78. package/dist/errors.js +45 -0
  79. package/dist/errors.js.map +1 -0
  80. package/dist/index.d.ts +47 -0
  81. package/dist/index.d.ts.map +1 -0
  82. package/dist/index.js +56 -0
  83. package/dist/index.js.map +1 -0
  84. package/dist/logging/index.d.ts +2 -0
  85. package/dist/logging/index.d.ts.map +1 -0
  86. package/dist/logging/index.js +2 -0
  87. package/dist/logging/index.js.map +1 -0
  88. package/dist/logging/logger.d.ts +23 -0
  89. package/dist/logging/logger.d.ts.map +1 -0
  90. package/dist/logging/logger.js +82 -0
  91. package/dist/logging/logger.js.map +1 -0
  92. package/dist/middleware/index.d.ts +12 -0
  93. package/dist/middleware/index.d.ts.map +1 -0
  94. package/dist/middleware/index.js +12 -0
  95. package/dist/middleware/index.js.map +1 -0
  96. package/dist/middleware/mcpi-transport.d.ts +39 -0
  97. package/dist/middleware/mcpi-transport.d.ts.map +1 -0
  98. package/dist/middleware/mcpi-transport.js +121 -0
  99. package/dist/middleware/mcpi-transport.js.map +1 -0
  100. package/dist/middleware/with-mcpi-server.d.ts +78 -0
  101. package/dist/middleware/with-mcpi-server.d.ts.map +1 -0
  102. package/dist/middleware/with-mcpi-server.js +109 -0
  103. package/dist/middleware/with-mcpi-server.js.map +1 -0
  104. package/dist/middleware/with-mcpi.d.ts +202 -0
  105. package/dist/middleware/with-mcpi.d.ts.map +1 -0
  106. package/dist/middleware/with-mcpi.js +625 -0
  107. package/dist/middleware/with-mcpi.js.map +1 -0
  108. package/dist/proof/errors.d.ts +49 -0
  109. package/dist/proof/errors.d.ts.map +1 -0
  110. package/dist/proof/errors.js +61 -0
  111. package/dist/proof/errors.js.map +1 -0
  112. package/dist/proof/generator.d.ts +65 -0
  113. package/dist/proof/generator.d.ts.map +1 -0
  114. package/dist/proof/generator.js +163 -0
  115. package/dist/proof/generator.js.map +1 -0
  116. package/dist/proof/index.d.ts +4 -0
  117. package/dist/proof/index.d.ts.map +1 -0
  118. package/dist/proof/index.js +4 -0
  119. package/dist/proof/index.js.map +1 -0
  120. package/dist/proof/verifier.d.ts +108 -0
  121. package/dist/proof/verifier.d.ts.map +1 -0
  122. package/dist/proof/verifier.js +299 -0
  123. package/dist/proof/verifier.js.map +1 -0
  124. package/dist/providers/base.d.ts +64 -0
  125. package/dist/providers/base.d.ts.map +1 -0
  126. package/dist/providers/base.js +19 -0
  127. package/dist/providers/base.js.map +1 -0
  128. package/dist/providers/index.d.ts +4 -0
  129. package/dist/providers/index.d.ts.map +1 -0
  130. package/dist/providers/index.js +4 -0
  131. package/dist/providers/index.js.map +1 -0
  132. package/dist/providers/memory.d.ts +33 -0
  133. package/dist/providers/memory.d.ts.map +1 -0
  134. package/dist/providers/memory.js +102 -0
  135. package/dist/providers/memory.js.map +1 -0
  136. package/dist/providers/node-crypto.d.ts +26 -0
  137. package/dist/providers/node-crypto.d.ts.map +1 -0
  138. package/dist/providers/node-crypto.js +69 -0
  139. package/dist/providers/node-crypto.js.map +1 -0
  140. package/dist/session/index.d.ts +2 -0
  141. package/dist/session/index.d.ts.map +1 -0
  142. package/dist/session/index.js +2 -0
  143. package/dist/session/index.js.map +1 -0
  144. package/dist/session/manager.d.ts +83 -0
  145. package/dist/session/manager.d.ts.map +1 -0
  146. package/dist/session/manager.js +267 -0
  147. package/dist/session/manager.js.map +1 -0
  148. package/dist/types/protocol.d.ts +320 -0
  149. package/dist/types/protocol.d.ts.map +1 -0
  150. package/dist/types/protocol.js +229 -0
  151. package/dist/types/protocol.js.map +1 -0
  152. package/dist/utils/base58.d.ts +31 -0
  153. package/dist/utils/base58.d.ts.map +1 -0
  154. package/dist/utils/base58.js +104 -0
  155. package/dist/utils/base58.js.map +1 -0
  156. package/dist/utils/base64.d.ts +13 -0
  157. package/dist/utils/base64.d.ts.map +1 -0
  158. package/dist/utils/base64.js +99 -0
  159. package/dist/utils/base64.js.map +1 -0
  160. package/dist/utils/crypto-service.d.ts +37 -0
  161. package/dist/utils/crypto-service.d.ts.map +1 -0
  162. package/dist/utils/crypto-service.js +154 -0
  163. package/dist/utils/crypto-service.js.map +1 -0
  164. package/dist/utils/did-helpers.d.ts +168 -0
  165. package/dist/utils/did-helpers.d.ts.map +1 -0
  166. package/dist/utils/did-helpers.js +211 -0
  167. package/dist/utils/did-helpers.js.map +1 -0
  168. package/dist/utils/ed25519-constants.d.ts +18 -0
  169. package/dist/utils/ed25519-constants.d.ts.map +1 -0
  170. package/dist/utils/ed25519-constants.js +21 -0
  171. package/dist/utils/ed25519-constants.js.map +1 -0
  172. package/dist/utils/index.d.ts +5 -0
  173. package/dist/utils/index.d.ts.map +1 -0
  174. package/dist/utils/index.js +5 -0
  175. package/dist/utils/index.js.map +1 -0
  176. package/package.json +115 -0
  177. package/schemas/README.md +117 -0
  178. package/schemas/delegation-credential.json +312 -0
  179. package/schemas/detached-proof.json +97 -0
  180. package/schemas/handshake-request.json +84 -0
  181. package/schemas/handshake-response.json +67 -0
  182. package/schemas/well-known-mcpi.json +176 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * DID:key Resolver
3
+ *
4
+ * Resolves did:key DIDs to DID Documents with verification methods.
5
+ * Supports Ed25519 keys (multicodec prefix 0xed01).
6
+ *
7
+ * did:key format: did:key:z<multibase-base58btc(<multicodec-prefix><public-key>)>
8
+ *
9
+ * For Ed25519:
10
+ * - Multicodec prefix: 0xed 0x01
11
+ * - Public key: 32 bytes
12
+ * - Multibase prefix: 'z' (base58btc)
13
+ *
14
+ * @see https://w3c-ccg.github.io/did-method-key/
15
+ */
16
+ import type { DIDResolver, DIDDocument } from './vc-verifier.js';
17
+ /**
18
+ * Check if a DID is a valid did:key with Ed25519 key
19
+ *
20
+ * Ed25519 keys in did:key start with 'z6Mk' after the method prefix.
21
+ * The 'z' is the multibase prefix for base58btc, and '6Mk' is the
22
+ * base58-encoded prefix for Ed25519 (0xed 0x01).
23
+ *
24
+ * @param did - The DID to check
25
+ * @returns true if it's a valid did:key with Ed25519 key
26
+ */
27
+ export declare function isEd25519DidKey(did: string): boolean;
28
+ /**
29
+ * Extract the public key bytes from a did:key DID
30
+ *
31
+ * @param did - The did:key DID
32
+ * @returns Public key bytes or null if invalid
33
+ */
34
+ export declare function extractPublicKeyFromDidKey(did: string): Uint8Array | null;
35
+ /**
36
+ * Convert Ed25519 public key bytes to JWK format
37
+ *
38
+ * @param publicKeyBytes - 32-byte Ed25519 public key
39
+ * @returns JWK object
40
+ */
41
+ export declare function publicKeyToJwk(publicKeyBytes: Uint8Array): {
42
+ kty: string;
43
+ crv: string;
44
+ x: string;
45
+ };
46
+ /**
47
+ * Create a DID:key resolver
48
+ *
49
+ * Returns a DIDResolver that can resolve did:key DIDs to DID Documents.
50
+ * Currently supports only Ed25519 keys.
51
+ *
52
+ * @returns DIDResolver implementation for did:key
53
+ */
54
+ export declare function createDidKeyResolver(): DIDResolver;
55
+ /**
56
+ * Resolve a did:key DID synchronously
57
+ *
58
+ * Convenience function for cases where async is not needed.
59
+ *
60
+ * @param did - The did:key DID to resolve
61
+ * @returns DID Document or null if invalid
62
+ */
63
+ export declare function resolveDidKeySync(did: string): DIDDocument | null;
64
+ //# sourceMappingURL=did-key-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-key-resolver.d.ts","sourceRoot":"","sources":["../../src/delegation/did-key-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AASrF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8BzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,UAAU,GAAG;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACX,CAMA;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAwClD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA6BjE"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * DID:key Resolver
3
+ *
4
+ * Resolves did:key DIDs to DID Documents with verification methods.
5
+ * Supports Ed25519 keys (multicodec prefix 0xed01).
6
+ *
7
+ * did:key format: did:key:z<multibase-base58btc(<multicodec-prefix><public-key>)>
8
+ *
9
+ * For Ed25519:
10
+ * - Multicodec prefix: 0xed 0x01
11
+ * - Public key: 32 bytes
12
+ * - Multibase prefix: 'z' (base58btc)
13
+ *
14
+ * @see https://w3c-ccg.github.io/did-method-key/
15
+ */
16
+ import { base58Decode } from '../utils/base58.js';
17
+ import { didKeyFragment } from '../utils/did-helpers.js';
18
+ import { base64urlEncodeFromBytes } from '../utils/base64.js';
19
+ import { logger } from '../logging/index.js';
20
+ /** Ed25519 multicodec prefix (0xed 0x01) */
21
+ const ED25519_MULTICODEC_PREFIX = new Uint8Array([0xed, 0x01]);
22
+ /** Ed25519 public key length */
23
+ const ED25519_PUBLIC_KEY_LENGTH = 32;
24
+ /**
25
+ * Check if a DID is a valid did:key with Ed25519 key
26
+ *
27
+ * Ed25519 keys in did:key start with 'z6Mk' after the method prefix.
28
+ * The 'z' is the multibase prefix for base58btc, and '6Mk' is the
29
+ * base58-encoded prefix for Ed25519 (0xed 0x01).
30
+ *
31
+ * @param did - The DID to check
32
+ * @returns true if it's a valid did:key with Ed25519 key
33
+ */
34
+ export function isEd25519DidKey(did) {
35
+ return did.startsWith('did:key:z6Mk');
36
+ }
37
+ /**
38
+ * Extract the public key bytes from a did:key DID
39
+ *
40
+ * @param did - The did:key DID
41
+ * @returns Public key bytes or null if invalid
42
+ */
43
+ export function extractPublicKeyFromDidKey(did) {
44
+ if (!did.startsWith('did:key:z')) {
45
+ return null;
46
+ }
47
+ try {
48
+ // Extract the multibase-encoded part (after 'did:key:')
49
+ const multibaseKey = did.replace('did:key:', '');
50
+ // Remove the 'z' multibase prefix (base58btc)
51
+ const base58Encoded = multibaseKey.slice(1);
52
+ // Decode from base58
53
+ const multicodecBytes = base58Decode(base58Encoded);
54
+ // Check for Ed25519 multicodec prefix (0xed 0x01)
55
+ if (multicodecBytes.length < ED25519_MULTICODEC_PREFIX.length + ED25519_PUBLIC_KEY_LENGTH ||
56
+ multicodecBytes[0] !== ED25519_MULTICODEC_PREFIX[0] ||
57
+ multicodecBytes[1] !== ED25519_MULTICODEC_PREFIX[1]) {
58
+ return null;
59
+ }
60
+ // Extract the public key (bytes after the prefix)
61
+ return multicodecBytes.slice(ED25519_MULTICODEC_PREFIX.length);
62
+ }
63
+ catch (error) {
64
+ logger.debug('Failed to extract public key from did:key', error);
65
+ return null;
66
+ }
67
+ }
68
+ /**
69
+ * Convert Ed25519 public key bytes to JWK format
70
+ *
71
+ * @param publicKeyBytes - 32-byte Ed25519 public key
72
+ * @returns JWK object
73
+ */
74
+ export function publicKeyToJwk(publicKeyBytes) {
75
+ return {
76
+ kty: 'OKP',
77
+ crv: 'Ed25519',
78
+ x: base64urlEncodeFromBytes(publicKeyBytes),
79
+ };
80
+ }
81
+ /**
82
+ * Create a DID:key resolver
83
+ *
84
+ * Returns a DIDResolver that can resolve did:key DIDs to DID Documents.
85
+ * Currently supports only Ed25519 keys.
86
+ *
87
+ * @returns DIDResolver implementation for did:key
88
+ */
89
+ export function createDidKeyResolver() {
90
+ return {
91
+ resolve: async (did) => {
92
+ // Check if it's a did:key with Ed25519
93
+ if (!isEd25519DidKey(did)) {
94
+ return null;
95
+ }
96
+ // Extract the public key
97
+ const publicKeyBytes = extractPublicKeyFromDidKey(did);
98
+ if (!publicKeyBytes) {
99
+ return null;
100
+ }
101
+ // Convert to JWK
102
+ const publicKeyJwk = publicKeyToJwk(publicKeyBytes);
103
+ // Get the multibase-encoded key for publicKeyMultibase
104
+ const multibaseKey = did.replace('did:key:', '');
105
+ // Construct the verification method
106
+ const fragment = didKeyFragment(did);
107
+ const verificationMethod = {
108
+ id: `${did}#${fragment}`,
109
+ type: 'Ed25519VerificationKey2020',
110
+ controller: did,
111
+ publicKeyJwk,
112
+ publicKeyMultibase: multibaseKey,
113
+ };
114
+ // Construct and return the DID Document
115
+ return {
116
+ id: did,
117
+ verificationMethod: [verificationMethod],
118
+ authentication: [`${did}#${fragment}`],
119
+ assertionMethod: [`${did}#${fragment}`],
120
+ };
121
+ },
122
+ };
123
+ }
124
+ /**
125
+ * Resolve a did:key DID synchronously
126
+ *
127
+ * Convenience function for cases where async is not needed.
128
+ *
129
+ * @param did - The did:key DID to resolve
130
+ * @returns DID Document or null if invalid
131
+ */
132
+ export function resolveDidKeySync(did) {
133
+ if (!isEd25519DidKey(did)) {
134
+ return null;
135
+ }
136
+ const publicKeyBytes = extractPublicKeyFromDidKey(did);
137
+ if (!publicKeyBytes) {
138
+ return null;
139
+ }
140
+ const publicKeyJwk = publicKeyToJwk(publicKeyBytes);
141
+ const multibaseKey = did.replace('did:key:', '');
142
+ const fragment = didKeyFragment(did);
143
+ const verificationMethod = {
144
+ id: `${did}#${fragment}`,
145
+ type: 'Ed25519VerificationKey2020',
146
+ controller: did,
147
+ publicKeyJwk,
148
+ publicKeyMultibase: multibaseKey,
149
+ };
150
+ return {
151
+ id: did,
152
+ verificationMethod: [verificationMethod],
153
+ authentication: [`${did}#${fragment}`],
154
+ assertionMethod: [`${did}#${fragment}`],
155
+ };
156
+ }
157
+ //# sourceMappingURL=did-key-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-key-resolver.js","sourceRoot":"","sources":["../../src/delegation/did-key-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,4CAA4C;AAC5C,MAAM,yBAAyB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE/D,gCAAgC;AAChC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACpD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,wDAAwD;QACxD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEjD,8CAA8C;QAC9C,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE5C,qBAAqB;QACrB,MAAM,eAAe,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAEpD,kDAAkD;QAClD,IACE,eAAe,CAAC,MAAM,GAAG,yBAAyB,CAAC,MAAM,GAAG,yBAAyB;YACrF,eAAe,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC;YACnD,eAAe,CAAC,CAAC,CAAC,KAAK,yBAAyB,CAAC,CAAC,CAAC,EACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kDAAkD;QAClD,OAAO,eAAe,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,cAA0B;IAKvD,OAAO;QACL,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,SAAS;QACd,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,GAAW,EAA+B,EAAE;YAC1D,uCAAuC;YACvC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,yBAAyB;YACzB,MAAM,cAAc,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,iBAAiB;YACjB,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;YAEpD,uDAAuD;YACvD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAEjD,oCAAoC;YACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAErC,MAAM,kBAAkB,GAAuB;gBAC7C,EAAE,EAAE,GAAG,GAAG,IAAI,QAAQ,EAAE;gBACxB,IAAI,EAAE,4BAA4B;gBAClC,UAAU,EAAE,GAAG;gBACf,YAAY;gBACZ,kBAAkB,EAAE,YAAY;aACjC,CAAC;YAEF,wCAAwC;YACxC,OAAO;gBACL,EAAE,EAAE,GAAG;gBACP,kBAAkB,EAAE,CAAC,kBAAkB,CAAC;gBACxC,cAAc,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACtC,eAAe,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;aACxC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,cAAc,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,kBAAkB,GAAuB;QAC7C,EAAE,EAAE,GAAG,GAAG,IAAI,QAAQ,EAAE;QACxB,IAAI,EAAE,4BAA4B;QAClC,UAAU,EAAE,GAAG;QACf,YAAY;QACZ,kBAAkB,EAAE,YAAY;KACjC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,GAAG;QACP,kBAAkB,EAAE,CAAC,kBAAkB,CAAC;QACxC,cAAc,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;QACtC,eAAe,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * DID:web Resolver
3
+ *
4
+ * Resolves did:web DIDs by fetching /.well-known/did.json from the domain.
5
+ * Supports both root domain DIDs and path-based DIDs.
6
+ *
7
+ * Examples:
8
+ * did:web:example.com → https://example.com/.well-known/did.json
9
+ * did:web:example.com:agents:bot1 → https://example.com/agents/bot1/did.json
10
+ *
11
+ * @see https://w3c-ccg.github.io/did-method-web/
12
+ */
13
+ import type { FetchProvider } from '../providers/base.js';
14
+ import type { DIDResolver, DIDDocument } from './vc-verifier.js';
15
+ /**
16
+ * Parsed components of a did:web DID
17
+ */
18
+ interface ParsedDidWeb {
19
+ domain: string;
20
+ path: string[];
21
+ }
22
+ /**
23
+ * Check if a DID is a did:web DID
24
+ *
25
+ * @param did - The DID to check
26
+ * @returns true if it's a did:web DID
27
+ */
28
+ export declare function isDidWeb(did: string): boolean;
29
+ /**
30
+ * Parse a did:web DID into its components
31
+ *
32
+ * @param did - The did:web DID to parse
33
+ * @returns Parsed components or null if invalid
34
+ */
35
+ export declare function parseDidWeb(did: string): ParsedDidWeb | null;
36
+ /**
37
+ * Convert a did:web DID to its resolution URL
38
+ *
39
+ * did:web:example.com → https://example.com/.well-known/did.json
40
+ * did:web:example.com:path:to:doc → https://example.com/path/to/doc/did.json
41
+ *
42
+ * @param did - The did:web DID
43
+ * @returns The resolution URL or null if invalid
44
+ */
45
+ export declare function didWebToUrl(did: string): string | null;
46
+ /**
47
+ * DID:web resolver implementation
48
+ */
49
+ export declare class DidWebResolver implements DIDResolver {
50
+ private fetchProvider;
51
+ private cache;
52
+ private cacheTtl;
53
+ constructor(fetchProvider: FetchProvider, options?: {
54
+ cacheTtl?: number;
55
+ });
56
+ /**
57
+ * Resolve a did:web DID to its DID Document
58
+ *
59
+ * @param did - The did:web DID to resolve
60
+ * @returns The DID Document or null if resolution fails
61
+ */
62
+ resolve(did: string): Promise<DIDDocument | null>;
63
+ /**
64
+ * Clear the resolution cache
65
+ */
66
+ clearCache(): void;
67
+ /**
68
+ * Clear a specific entry from the cache
69
+ */
70
+ clearCacheEntry(did: string): void;
71
+ }
72
+ /**
73
+ * Create a did:web resolver with the given fetch provider
74
+ *
75
+ * @param fetchProvider - Provider for making HTTP requests
76
+ * @param options - Optional configuration
77
+ * @returns DIDResolver implementation for did:web
78
+ */
79
+ export declare function createDidWebResolver(fetchProvider: FetchProvider, options?: {
80
+ cacheTtl?: number;
81
+ }): DIDResolver;
82
+ export {};
83
+ //# sourceMappingURL=did-web-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-web-resolver.d.ts","sourceRoot":"","sources":["../../src/delegation/did-web-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AAGrF;;GAEG;AACH,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AA0DD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA0B5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsBtD;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAA4D;IACzE,OAAO,CAAC,QAAQ,CAAS;gBAEb,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAMzE;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAgEvD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGnC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,WAAW,CAEb"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * DID:web Resolver
3
+ *
4
+ * Resolves did:web DIDs by fetching /.well-known/did.json from the domain.
5
+ * Supports both root domain DIDs and path-based DIDs.
6
+ *
7
+ * Examples:
8
+ * did:web:example.com → https://example.com/.well-known/did.json
9
+ * did:web:example.com:agents:bot1 → https://example.com/agents/bot1/did.json
10
+ *
11
+ * @see https://w3c-ccg.github.io/did-method-web/
12
+ */
13
+ import { logger } from '../logging/index.js';
14
+ /**
15
+ * Type guard for checking if value is a valid DID Document structure
16
+ */
17
+ function isValidDIDDocument(value) {
18
+ if (typeof value !== 'object' || value === null) {
19
+ return false;
20
+ }
21
+ const doc = value;
22
+ // id is required and must be a string
23
+ if (typeof doc['id'] !== 'string' || doc['id'].length === 0) {
24
+ return false;
25
+ }
26
+ // verificationMethod is optional but if present must be an array
27
+ if (doc['verificationMethod'] !== undefined) {
28
+ if (!Array.isArray(doc['verificationMethod'])) {
29
+ return false;
30
+ }
31
+ // Each verification method must have required fields
32
+ for (const vm of doc['verificationMethod']) {
33
+ if (!isValidVerificationMethod(vm)) {
34
+ return false;
35
+ }
36
+ }
37
+ }
38
+ return true;
39
+ }
40
+ /**
41
+ * Type guard for checking if value is a valid VerificationMethod
42
+ */
43
+ function isValidVerificationMethod(value) {
44
+ if (typeof value !== 'object' || value === null) {
45
+ return false;
46
+ }
47
+ const vm = value;
48
+ // id, type, and controller are required strings
49
+ if (typeof vm['id'] !== 'string' || vm['id'].length === 0) {
50
+ return false;
51
+ }
52
+ if (typeof vm['type'] !== 'string' || vm['type'].length === 0) {
53
+ return false;
54
+ }
55
+ if (typeof vm['controller'] !== 'string' || vm['controller'].length === 0) {
56
+ return false;
57
+ }
58
+ return true;
59
+ }
60
+ /**
61
+ * Check if a DID is a did:web DID
62
+ *
63
+ * @param did - The DID to check
64
+ * @returns true if it's a did:web DID
65
+ */
66
+ export function isDidWeb(did) {
67
+ return did.startsWith('did:web:');
68
+ }
69
+ /**
70
+ * Parse a did:web DID into its components
71
+ *
72
+ * @param did - The did:web DID to parse
73
+ * @returns Parsed components or null if invalid
74
+ */
75
+ export function parseDidWeb(did) {
76
+ if (!isDidWeb(did)) {
77
+ return null;
78
+ }
79
+ // Remove the 'did:web:' prefix
80
+ const remainder = did.slice(8);
81
+ if (remainder.length === 0) {
82
+ return null;
83
+ }
84
+ // Split by ':' to get domain and path components
85
+ const parts = remainder.split(':');
86
+ // First part is the domain (URL-decoded)
87
+ const domain = decodeURIComponent(parts[0]);
88
+ if (domain.length === 0) {
89
+ return null;
90
+ }
91
+ // Remaining parts form the path
92
+ const path = parts.slice(1).map((p) => decodeURIComponent(p));
93
+ return { domain, path };
94
+ }
95
+ /**
96
+ * Convert a did:web DID to its resolution URL
97
+ *
98
+ * did:web:example.com → https://example.com/.well-known/did.json
99
+ * did:web:example.com:path:to:doc → https://example.com/path/to/doc/did.json
100
+ *
101
+ * @param did - The did:web DID
102
+ * @returns The resolution URL or null if invalid
103
+ */
104
+ export function didWebToUrl(did) {
105
+ const parsed = parseDidWeb(did);
106
+ if (!parsed) {
107
+ return null;
108
+ }
109
+ const { domain, path } = parsed;
110
+ // Build the URL
111
+ // Note: did:web specification requires HTTPS
112
+ let url = `https://${domain}`;
113
+ if (path.length === 0) {
114
+ // Root domain: use /.well-known/did.json
115
+ url += '/.well-known/did.json';
116
+ }
117
+ else {
118
+ // Path-based: use /path/to/resource/did.json
119
+ url += '/' + path.join('/') + '/did.json';
120
+ }
121
+ return url;
122
+ }
123
+ /**
124
+ * DID:web resolver implementation
125
+ */
126
+ export class DidWebResolver {
127
+ fetchProvider;
128
+ cache;
129
+ cacheTtl;
130
+ constructor(fetchProvider, options) {
131
+ this.fetchProvider = fetchProvider;
132
+ this.cache = new Map();
133
+ this.cacheTtl = options?.cacheTtl ?? 300_000; // 5 minutes default
134
+ }
135
+ /**
136
+ * Resolve a did:web DID to its DID Document
137
+ *
138
+ * @param did - The did:web DID to resolve
139
+ * @returns The DID Document or null if resolution fails
140
+ */
141
+ async resolve(did) {
142
+ // Check if it's a did:web
143
+ if (!isDidWeb(did)) {
144
+ return null;
145
+ }
146
+ // Check cache
147
+ const cached = this.cache.get(did);
148
+ if (cached && Date.now() < cached.expiresAt) {
149
+ return cached.document;
150
+ }
151
+ // Convert to URL
152
+ const url = didWebToUrl(did);
153
+ if (!url) {
154
+ logger.warn(`[DidWebResolver] Invalid did:web format: ${did}`);
155
+ return null;
156
+ }
157
+ try {
158
+ // Fetch the DID document
159
+ const response = await this.fetchProvider.fetch(url);
160
+ if (!response.ok) {
161
+ logger.warn(`[DidWebResolver] HTTP ${response.status} fetching ${url}`);
162
+ return null;
163
+ }
164
+ // Parse JSON
165
+ let json;
166
+ try {
167
+ json = await response.json();
168
+ }
169
+ catch {
170
+ logger.warn(`[DidWebResolver] Invalid JSON from ${url}`);
171
+ return null;
172
+ }
173
+ // Validate structure
174
+ if (!isValidDIDDocument(json)) {
175
+ logger.warn(`[DidWebResolver] Invalid DID Document structure from ${url}`);
176
+ return null;
177
+ }
178
+ // Verify the id matches the DID
179
+ if (json.id !== did) {
180
+ logger.warn(`[DidWebResolver] DID Document id mismatch: expected ${did}, got ${json.id}`);
181
+ return null;
182
+ }
183
+ // Cache the result
184
+ this.cache.set(did, {
185
+ document: json,
186
+ expiresAt: Date.now() + this.cacheTtl,
187
+ });
188
+ return json;
189
+ }
190
+ catch (error) {
191
+ logger.warn(`[DidWebResolver] Error resolving ${did}: ${error instanceof Error ? error.message : 'Unknown error'}`);
192
+ return null;
193
+ }
194
+ }
195
+ /**
196
+ * Clear the resolution cache
197
+ */
198
+ clearCache() {
199
+ this.cache.clear();
200
+ }
201
+ /**
202
+ * Clear a specific entry from the cache
203
+ */
204
+ clearCacheEntry(did) {
205
+ this.cache.delete(did);
206
+ }
207
+ }
208
+ /**
209
+ * Create a did:web resolver with the given fetch provider
210
+ *
211
+ * @param fetchProvider - Provider for making HTTP requests
212
+ * @param options - Optional configuration
213
+ * @returns DIDResolver implementation for did:web
214
+ */
215
+ export function createDidWebResolver(fetchProvider, options) {
216
+ return new DidWebResolver(fetchProvider, options);
217
+ }
218
+ //# sourceMappingURL=did-web-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did-web-resolver.js","sourceRoot":"","sources":["../../src/delegation/did-web-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Delegation Module Exports (Platform-Agnostic)
3
+ *
4
+ * W3C VC-based delegation issuance and verification.
5
+ * Platform-specific adapters (Node.js, Cloudflare) provide signing/verification functions.
6
+ */
7
+ export * from './vc-issuer.js';
8
+ export * from './vc-verifier.js';
9
+ export * from './bitstring.js';
10
+ export * from './statuslist-manager.js';
11
+ export * from './delegation-graph.js';
12
+ export * from './cascading-revocation.js';
13
+ export * from './utils.js';
14
+ export * from './outbound-proof.js';
15
+ export * from './outbound-headers.js';
16
+ export * from './audience-validator.js';
17
+ export { createDidKeyResolver, resolveDidKeySync, isEd25519DidKey, extractPublicKeyFromDidKey, publicKeyToJwk, } from './did-key-resolver.js';
18
+ export { DidWebResolver, createDidWebResolver, isDidWeb, parseDidWeb, didWebToUrl, } from './did-web-resolver.js';
19
+ export { MemoryStatusListStorage } from './storage/memory-statuslist-storage.js';
20
+ export { MemoryDelegationGraphStorage } from './storage/memory-graph-storage.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegation/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,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,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,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Delegation Module Exports (Platform-Agnostic)
3
+ *
4
+ * W3C VC-based delegation issuance and verification.
5
+ * Platform-specific adapters (Node.js, Cloudflare) provide signing/verification functions.
6
+ */
7
+ export * from './vc-issuer.js';
8
+ export * from './vc-verifier.js';
9
+ export * from './bitstring.js';
10
+ export * from './statuslist-manager.js';
11
+ export * from './delegation-graph.js';
12
+ export * from './cascading-revocation.js';
13
+ export * from './utils.js';
14
+ export * from './outbound-proof.js';
15
+ export * from './outbound-headers.js';
16
+ export * from './audience-validator.js';
17
+ export { createDidKeyResolver, resolveDidKeySync, isEd25519DidKey, extractPublicKeyFromDidKey, publicKeyToJwk, } from './did-key-resolver.js';
18
+ export { DidWebResolver, createDidWebResolver, isDidWeb, parseDidWeb, didWebToUrl, } from './did-web-resolver.js';
19
+ export { MemoryStatusListStorage } from './storage/memory-statuslist-storage.js';
20
+ export { MemoryDelegationGraphStorage } from './storage/memory-graph-storage.js';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,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,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,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC"}