@kya-os/mcp-i-core 1.3.10-canary.clientinfo.20251126124133 → 1.3.11

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 (90) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/.turbo/turbo-build.log +1 -1
  3. package/.turbo/turbo-test$colon$coverage.log +3419 -3072
  4. package/.turbo/turbo-test.log +1805 -1680
  5. package/coverage/coverage-final.json +59 -56
  6. package/dist/config/remote-config.d.ts +51 -0
  7. package/dist/config/remote-config.d.ts.map +1 -1
  8. package/dist/config/remote-config.js +74 -0
  9. package/dist/config/remote-config.js.map +1 -1
  10. package/dist/config.d.ts +1 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +4 -1
  13. package/dist/config.js.map +1 -1
  14. package/dist/delegation/did-key-resolver.d.ts +64 -0
  15. package/dist/delegation/did-key-resolver.d.ts.map +1 -0
  16. package/dist/delegation/did-key-resolver.js +159 -0
  17. package/dist/delegation/did-key-resolver.js.map +1 -0
  18. package/dist/delegation/utils.d.ts +76 -0
  19. package/dist/delegation/utils.d.ts.map +1 -1
  20. package/dist/delegation/utils.js +117 -0
  21. package/dist/delegation/utils.js.map +1 -1
  22. package/dist/identity/idp-token-resolver.d.ts +17 -1
  23. package/dist/identity/idp-token-resolver.d.ts.map +1 -1
  24. package/dist/identity/idp-token-resolver.js +34 -6
  25. package/dist/identity/idp-token-resolver.js.map +1 -1
  26. package/dist/identity/idp-token-storage.interface.d.ts +38 -7
  27. package/dist/identity/idp-token-storage.interface.d.ts.map +1 -1
  28. package/dist/identity/idp-token-storage.interface.js +2 -0
  29. package/dist/identity/idp-token-storage.interface.js.map +1 -1
  30. package/dist/identity/user-did-manager.d.ts +95 -12
  31. package/dist/identity/user-did-manager.d.ts.map +1 -1
  32. package/dist/identity/user-did-manager.js +107 -25
  33. package/dist/identity/user-did-manager.js.map +1 -1
  34. package/dist/index.d.ts +6 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +24 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/runtime/base.d.ts +25 -8
  39. package/dist/runtime/base.d.ts.map +1 -1
  40. package/dist/runtime/base.js +74 -21
  41. package/dist/runtime/base.js.map +1 -1
  42. package/dist/services/session-registration.service.d.ts.map +1 -1
  43. package/dist/services/session-registration.service.js +10 -90
  44. package/dist/services/session-registration.service.js.map +1 -1
  45. package/dist/services/tool-context-builder.d.ts +18 -1
  46. package/dist/services/tool-context-builder.d.ts.map +1 -1
  47. package/dist/services/tool-context-builder.js +63 -10
  48. package/dist/services/tool-context-builder.js.map +1 -1
  49. package/dist/services/tool-protection.service.d.ts +6 -3
  50. package/dist/services/tool-protection.service.d.ts.map +1 -1
  51. package/dist/services/tool-protection.service.js +89 -34
  52. package/dist/services/tool-protection.service.js.map +1 -1
  53. package/dist/utils/base58.d.ts +31 -0
  54. package/dist/utils/base58.d.ts.map +1 -0
  55. package/dist/utils/base58.js +103 -0
  56. package/dist/utils/base58.js.map +1 -0
  57. package/dist/utils/did-helpers.d.ts +33 -0
  58. package/dist/utils/did-helpers.d.ts.map +1 -1
  59. package/dist/utils/did-helpers.js +53 -0
  60. package/dist/utils/did-helpers.js.map +1 -1
  61. package/package.json +3 -3
  62. package/src/__tests__/identity/user-did-manager.test.ts +64 -45
  63. package/src/__tests__/integration/full-flow.test.ts +23 -10
  64. package/src/__tests__/runtime/base-extensions.test.ts +23 -21
  65. package/src/__tests__/runtime/proof-client-did.test.ts +19 -18
  66. package/src/__tests__/services/agentshield-integration.test.ts +10 -3
  67. package/src/__tests__/services/tool-protection-merged-config.test.ts +485 -0
  68. package/src/__tests__/services/tool-protection.service.test.ts +18 -11
  69. package/src/config/__tests__/merged-config.spec.ts +445 -0
  70. package/src/config/remote-config.ts +90 -0
  71. package/src/config.ts +3 -0
  72. package/src/delegation/__tests__/did-key-resolver.test.ts +265 -0
  73. package/src/delegation/__tests__/vc-issuer.test.ts +1 -1
  74. package/src/delegation/did-key-resolver.ts +179 -0
  75. package/src/delegation/utils.ts +179 -0
  76. package/src/identity/idp-token-resolver.ts +41 -7
  77. package/src/identity/idp-token-storage.interface.ts +42 -7
  78. package/src/identity/user-did-manager.ts +185 -29
  79. package/src/index.ts +42 -3
  80. package/src/runtime/base.ts +84 -21
  81. package/src/services/session-registration.service.ts +26 -121
  82. package/src/services/tool-context-builder.ts +75 -10
  83. package/src/services/tool-protection.service.ts +176 -88
  84. package/src/utils/__tests__/did-helpers.test.ts +55 -0
  85. package/src/utils/base58.ts +109 -0
  86. package/src/utils/did-helpers.ts +60 -0
  87. package/dist/__tests__/utils/mock-providers.d.ts +0 -103
  88. package/dist/__tests__/utils/mock-providers.d.ts.map +0 -1
  89. package/dist/__tests__/utils/mock-providers.js +0 -293
  90. package/dist/__tests__/utils/mock-providers.js.map +0 -1
@@ -7,6 +7,7 @@
7
7
  * @module @kya-os/mcp-i-core/config/remote-config
8
8
  */
9
9
  import type { MCPIConfig } from '@kya-os/contracts/config';
10
+ import type { ToolProtection, ToolProtectionMap } from '@kya-os/contracts/tool-protection';
10
11
  /**
11
12
  * Options for fetching remote configuration
12
13
  */
@@ -66,4 +67,54 @@ export interface RemoteConfigCache {
66
67
  * @returns Configuration object or null if fetch fails
67
68
  */
68
69
  export declare function fetchRemoteConfig(options: RemoteConfigOptions, cache?: RemoteConfigCache): Promise<MCPIConfig | null>;
70
+ /**
71
+ * Get tool protection for a specific tool from a merged config
72
+ *
73
+ * This helper function extracts tool protection from a merged config response.
74
+ * It handles both the new format (toolProtection.tools) and returns null
75
+ * for unprotected or unknown tools.
76
+ *
77
+ * @param config - Merged config object (must have toolProtection.tools)
78
+ * @param toolName - Name of the tool to look up
79
+ * @returns Tool protection or null if tool not protected or not found
80
+ *
81
+ * @since 1.6.0
82
+ */
83
+ export declare function getToolProtection(config: {
84
+ toolProtection?: {
85
+ tools?: ToolProtectionMap;
86
+ };
87
+ }, toolName: string): ToolProtection | null;
88
+ /**
89
+ * Extract tool protections map from merged config
90
+ *
91
+ * This helper function extracts the tool protections map from a merged config.
92
+ * Returns an empty object if no tools are found.
93
+ *
94
+ * @param config - Config object that may contain toolProtection.tools
95
+ * @returns Tool protection map or empty object
96
+ *
97
+ * @since 1.6.0
98
+ */
99
+ export declare function extractToolProtections(config: {
100
+ toolProtection?: {
101
+ tools?: ToolProtectionMap;
102
+ };
103
+ } | null | undefined): ToolProtectionMap;
104
+ /**
105
+ * Check if config has embedded tool protections
106
+ *
107
+ * Utility to check if a config response is in the new merged format
108
+ * with embedded tool protections.
109
+ *
110
+ * @param config - Config object to check
111
+ * @returns True if config has embedded tools, false otherwise
112
+ *
113
+ * @since 1.6.0
114
+ */
115
+ export declare function hasMergedToolProtections(config: unknown): config is {
116
+ toolProtection: {
117
+ tools: ToolProtectionMap;
118
+ };
119
+ };
69
120
  //# sourceMappingURL=remote-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-config.d.ts","sourceRoot":"","sources":["../../src/config/remote-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA2F5B"}
1
+ {"version":3,"file":"remote-config.d.ts","sourceRoot":"","sources":["../../src/config/remote-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA2F5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE;IAAE,cAAc,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAA;CAAE,EAC1D,QAAQ,EAAE,MAAM,GACf,cAAc,GAAG,IAAI,CAqBvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE;IAAE,cAAc,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC5E,iBAAiB,CAKnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI;IAAE,cAAc,EAAE;QAAE,KAAK,EAAE,iBAAiB,CAAA;KAAE,CAAA;CAAE,CAc5D"}
@@ -9,6 +9,9 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.fetchRemoteConfig = fetchRemoteConfig;
12
+ exports.getToolProtection = getToolProtection;
13
+ exports.extractToolProtections = extractToolProtections;
14
+ exports.hasMergedToolProtections = hasMergedToolProtections;
12
15
  const agentshield_api_1 = require("@kya-os/contracts/agentshield-api");
13
16
  /**
14
17
  * Fetch configuration from remote API (AgentShield dashboard)
@@ -104,4 +107,75 @@ async function fetchRemoteConfig(options, cache) {
104
107
  return null;
105
108
  }
106
109
  }
110
+ /**
111
+ * Get tool protection for a specific tool from a merged config
112
+ *
113
+ * This helper function extracts tool protection from a merged config response.
114
+ * It handles both the new format (toolProtection.tools) and returns null
115
+ * for unprotected or unknown tools.
116
+ *
117
+ * @param config - Merged config object (must have toolProtection.tools)
118
+ * @param toolName - Name of the tool to look up
119
+ * @returns Tool protection or null if tool not protected or not found
120
+ *
121
+ * @since 1.6.0
122
+ */
123
+ function getToolProtection(config, toolName) {
124
+ const tools = config?.toolProtection?.tools;
125
+ if (!tools) {
126
+ return null;
127
+ }
128
+ // Check for specific tool protection first
129
+ let protection = tools[toolName];
130
+ // Fall back to wildcard protection if specific tool not found
131
+ if (!protection && tools['*']) {
132
+ protection = tools['*'];
133
+ }
134
+ // Return null for unprotected tools (requiresDelegation: false) or unknown tools
135
+ if (!protection || !protection.requiresDelegation) {
136
+ return null;
137
+ }
138
+ return protection;
139
+ }
140
+ /**
141
+ * Extract tool protections map from merged config
142
+ *
143
+ * This helper function extracts the tool protections map from a merged config.
144
+ * Returns an empty object if no tools are found.
145
+ *
146
+ * @param config - Config object that may contain toolProtection.tools
147
+ * @returns Tool protection map or empty object
148
+ *
149
+ * @since 1.6.0
150
+ */
151
+ function extractToolProtections(config) {
152
+ if (!config?.toolProtection?.tools) {
153
+ return {};
154
+ }
155
+ return config.toolProtection.tools;
156
+ }
157
+ /**
158
+ * Check if config has embedded tool protections
159
+ *
160
+ * Utility to check if a config response is in the new merged format
161
+ * with embedded tool protections.
162
+ *
163
+ * @param config - Config object to check
164
+ * @returns True if config has embedded tools, false otherwise
165
+ *
166
+ * @since 1.6.0
167
+ */
168
+ function hasMergedToolProtections(config) {
169
+ if (!config || typeof config !== 'object') {
170
+ return false;
171
+ }
172
+ const c = config;
173
+ return (c.toolProtection !== undefined &&
174
+ typeof c.toolProtection === 'object' &&
175
+ c.toolProtection !== null &&
176
+ 'tools' in c.toolProtection &&
177
+ typeof c.toolProtection.tools === 'object' &&
178
+ c.toolProtection.tools !== null // typeof null === 'object' in JS
179
+ );
180
+ }
107
181
  //# sourceMappingURL=remote-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/config/remote-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/config/remote-config.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -166,7 +166,7 @@ export type { MCPIBaseConfig, RuntimeIdentityConfig as BaseIdentityConfig, Proof
166
166
  /**
167
167
  * Re-export remote config utilities
168
168
  */
169
- export { fetchRemoteConfig, type RemoteConfigOptions, type RemoteConfigCache } from './config/remote-config';
169
+ export { fetchRemoteConfig, getToolProtection, extractToolProtections, hasMergedToolProtections, type RemoteConfigOptions, type RemoteConfigCache } from './config/remote-config';
170
170
  /**
171
171
  * Create a provider runtime configuration
172
172
  * Convenience function for creating configurations
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * @module @kya-os/mcp-i-core/config
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.fetchRemoteConfig = exports.ProviderRuntimeConfigBuilder = void 0;
11
+ exports.hasMergedToolProtections = exports.extractToolProtections = exports.getToolProtection = exports.fetchRemoteConfig = exports.ProviderRuntimeConfigBuilder = void 0;
12
12
  exports.createProviderRuntimeConfig = createProviderRuntimeConfig;
13
13
  /**
14
14
  * Builder for provider runtime configuration
@@ -123,6 +123,9 @@ exports.ProviderRuntimeConfigBuilder = ProviderRuntimeConfigBuilder;
123
123
  */
124
124
  var remote_config_1 = require("./config/remote-config");
125
125
  Object.defineProperty(exports, "fetchRemoteConfig", { enumerable: true, get: function () { return remote_config_1.fetchRemoteConfig; } });
126
+ Object.defineProperty(exports, "getToolProtection", { enumerable: true, get: function () { return remote_config_1.getToolProtection; } });
127
+ Object.defineProperty(exports, "extractToolProtections", { enumerable: true, get: function () { return remote_config_1.extractToolProtections; } });
128
+ Object.defineProperty(exports, "hasMergedToolProtections", { enumerable: true, get: function () { return remote_config_1.hasMergedToolProtections; } });
126
129
  /**
127
130
  * Create a provider runtime configuration
128
131
  * Convenience function for creating configurations
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -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';
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;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAC;AAQlF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA6BzE;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,CAsClD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA2BjE"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ /**
3
+ * DID:key Resolver
4
+ *
5
+ * Resolves did:key DIDs to DID Documents with verification methods.
6
+ * Supports Ed25519 keys (multicodec prefix 0xed01).
7
+ *
8
+ * did:key format: did:key:z<multibase-base58btc(<multicodec-prefix><public-key>)>
9
+ *
10
+ * For Ed25519:
11
+ * - Multicodec prefix: 0xed 0x01
12
+ * - Public key: 32 bytes
13
+ * - Multibase prefix: 'z' (base58btc)
14
+ *
15
+ * @see https://w3c-ccg.github.io/did-method-key/
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.isEd25519DidKey = isEd25519DidKey;
19
+ exports.extractPublicKeyFromDidKey = extractPublicKeyFromDidKey;
20
+ exports.publicKeyToJwk = publicKeyToJwk;
21
+ exports.createDidKeyResolver = createDidKeyResolver;
22
+ exports.resolveDidKeySync = resolveDidKeySync;
23
+ const base58_1 = require("../utils/base58");
24
+ const base64_1 = require("../utils/base64");
25
+ /** Ed25519 multicodec prefix (0xed 0x01) */
26
+ const ED25519_MULTICODEC_PREFIX = new Uint8Array([0xed, 0x01]);
27
+ /** Ed25519 public key length */
28
+ const ED25519_PUBLIC_KEY_LENGTH = 32;
29
+ /**
30
+ * Check if a DID is a valid did:key with Ed25519 key
31
+ *
32
+ * Ed25519 keys in did:key start with 'z6Mk' after the method prefix.
33
+ * The 'z' is the multibase prefix for base58btc, and '6Mk' is the
34
+ * base58-encoded prefix for Ed25519 (0xed 0x01).
35
+ *
36
+ * @param did - The DID to check
37
+ * @returns true if it's a valid did:key with Ed25519 key
38
+ */
39
+ function isEd25519DidKey(did) {
40
+ return did.startsWith('did:key:z6Mk');
41
+ }
42
+ /**
43
+ * Extract the public key bytes from a did:key DID
44
+ *
45
+ * @param did - The did:key DID
46
+ * @returns Public key bytes or null if invalid
47
+ */
48
+ function extractPublicKeyFromDidKey(did) {
49
+ if (!did.startsWith('did:key:z')) {
50
+ return null;
51
+ }
52
+ try {
53
+ // Extract the multibase-encoded part (after 'did:key:')
54
+ const multibaseKey = did.replace('did:key:', '');
55
+ // Remove the 'z' multibase prefix (base58btc)
56
+ const base58Encoded = multibaseKey.slice(1);
57
+ // Decode from base58
58
+ const multicodecBytes = (0, base58_1.base58Decode)(base58Encoded);
59
+ // Check for Ed25519 multicodec prefix (0xed 0x01)
60
+ if (multicodecBytes.length < ED25519_MULTICODEC_PREFIX.length + ED25519_PUBLIC_KEY_LENGTH ||
61
+ multicodecBytes[0] !== ED25519_MULTICODEC_PREFIX[0] ||
62
+ multicodecBytes[1] !== ED25519_MULTICODEC_PREFIX[1]) {
63
+ return null;
64
+ }
65
+ // Extract the public key (bytes after the prefix)
66
+ return multicodecBytes.slice(ED25519_MULTICODEC_PREFIX.length);
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ /**
73
+ * Convert Ed25519 public key bytes to JWK format
74
+ *
75
+ * @param publicKeyBytes - 32-byte Ed25519 public key
76
+ * @returns JWK object
77
+ */
78
+ function publicKeyToJwk(publicKeyBytes) {
79
+ return {
80
+ kty: 'OKP',
81
+ crv: 'Ed25519',
82
+ x: (0, base64_1.base64urlEncodeFromBytes)(publicKeyBytes),
83
+ };
84
+ }
85
+ /**
86
+ * Create a DID:key resolver
87
+ *
88
+ * Returns a DIDResolver that can resolve did:key DIDs to DID Documents.
89
+ * Currently supports only Ed25519 keys.
90
+ *
91
+ * @returns DIDResolver implementation for did:key
92
+ */
93
+ function createDidKeyResolver() {
94
+ return {
95
+ resolve: async (did) => {
96
+ // Check if it's a did:key with Ed25519
97
+ if (!isEd25519DidKey(did)) {
98
+ return null;
99
+ }
100
+ // Extract the public key
101
+ const publicKeyBytes = extractPublicKeyFromDidKey(did);
102
+ if (!publicKeyBytes) {
103
+ return null;
104
+ }
105
+ // Convert to JWK
106
+ const publicKeyJwk = publicKeyToJwk(publicKeyBytes);
107
+ // Get the multibase-encoded key for publicKeyMultibase
108
+ const multibaseKey = did.replace('did:key:', '');
109
+ // Construct the verification method
110
+ const verificationMethod = {
111
+ id: `${did}#keys-1`,
112
+ type: 'Ed25519VerificationKey2020',
113
+ controller: did,
114
+ publicKeyJwk,
115
+ publicKeyMultibase: multibaseKey,
116
+ };
117
+ // Construct and return the DID Document
118
+ return {
119
+ id: did,
120
+ verificationMethod: [verificationMethod],
121
+ authentication: [`${did}#keys-1`],
122
+ assertionMethod: [`${did}#keys-1`],
123
+ };
124
+ },
125
+ };
126
+ }
127
+ /**
128
+ * Resolve a did:key DID synchronously
129
+ *
130
+ * Convenience function for cases where async is not needed.
131
+ *
132
+ * @param did - The did:key DID to resolve
133
+ * @returns DID Document or null if invalid
134
+ */
135
+ function resolveDidKeySync(did) {
136
+ if (!isEd25519DidKey(did)) {
137
+ return null;
138
+ }
139
+ const publicKeyBytes = extractPublicKeyFromDidKey(did);
140
+ if (!publicKeyBytes) {
141
+ return null;
142
+ }
143
+ const publicKeyJwk = publicKeyToJwk(publicKeyBytes);
144
+ const multibaseKey = did.replace('did:key:', '');
145
+ const verificationMethod = {
146
+ id: `${did}#keys-1`,
147
+ type: 'Ed25519VerificationKey2020',
148
+ controller: did,
149
+ publicKeyJwk,
150
+ publicKeyMultibase: multibaseKey,
151
+ };
152
+ return {
153
+ id: did,
154
+ verificationMethod: [verificationMethod],
155
+ authentication: [`${did}#keys-1`],
156
+ assertionMethod: [`${did}#keys-1`],
157
+ };
158
+ }
159
+ //# 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":"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"}
@@ -16,4 +16,80 @@
16
16
  * @returns Canonical JSON string
17
17
  */
18
18
  export declare function canonicalizeJSON(obj: any): string;
19
+ /**
20
+ * JWT Header for EdDSA (Ed25519) signed credentials
21
+ */
22
+ export interface VCJWTHeader {
23
+ alg: 'EdDSA';
24
+ typ: 'JWT';
25
+ kid?: string;
26
+ }
27
+ /**
28
+ * VC-JWT Payload structure
29
+ *
30
+ * Per W3C VC-JWT spec, the VC is embedded in the JWT claims.
31
+ * Standard claims (iss, sub, exp, iat, jti) are derived from the VC.
32
+ */
33
+ export interface VCJWTPayload {
34
+ /** Issuer DID (from vc.issuer) */
35
+ iss: string;
36
+ /** Subject DID (from vc.credentialSubject.id) */
37
+ sub?: string;
38
+ /** Expiration time (from vc.expirationDate) */
39
+ exp?: number;
40
+ /** Issued at time (from vc.issuanceDate) */
41
+ iat?: number;
42
+ /** JWT ID (from vc.id) */
43
+ jti?: string;
44
+ /** The complete VC (without proof) */
45
+ vc: Record<string, unknown>;
46
+ }
47
+ /**
48
+ * Options for encoding a VC as JWT
49
+ */
50
+ export interface EncodeVCAsJWTOptions {
51
+ /** Key ID for the JWT header */
52
+ keyId?: string;
53
+ }
54
+ /**
55
+ * Create unsigned JWT parts (header + payload) for a VC
56
+ *
57
+ * Prepares the VC for signing by extracting standard claims and
58
+ * encoding the header and payload as base64url strings.
59
+ *
60
+ * @param vc - The Verifiable Credential (without proof)
61
+ * @param options - Encoding options
62
+ * @returns Object with encoded parts and signing input
63
+ */
64
+ export declare function createUnsignedVCJWT(vc: Record<string, unknown>, options?: EncodeVCAsJWTOptions): {
65
+ header: VCJWTHeader;
66
+ payload: VCJWTPayload;
67
+ encodedHeader: string;
68
+ encodedPayload: string;
69
+ signingInput: string;
70
+ };
71
+ /**
72
+ * Complete a JWT with a signature
73
+ *
74
+ * Takes the signing input and a base64url-encoded signature to create the final JWT.
75
+ *
76
+ * @param signingInput - The header.payload string that was signed
77
+ * @param signature - Base64url-encoded signature
78
+ * @returns Complete JWT string (header.payload.signature)
79
+ */
80
+ export declare function completeVCJWT(signingInput: string, signature: string): string;
81
+ /**
82
+ * Parse a VC-JWT and extract the VC
83
+ *
84
+ * Does NOT verify the signature - use with a verification function.
85
+ *
86
+ * @param jwt - The JWT string
87
+ * @returns Parsed JWT parts
88
+ */
89
+ export declare function parseVCJWT(jwt: string): {
90
+ header: VCJWTHeader;
91
+ payload: VCJWTPayload;
92
+ signature: string;
93
+ signingInput: string;
94
+ } | null;
19
95
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/delegation/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAuBjD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/delegation/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAuBjD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,OAAO,GAAE,oBAAyB,GACjC;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAoDA;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,IAAI,CAuBP"}