@kya-os/mcp-i-core 1.1.10 → 1.1.12

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 (58) hide show
  1. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
  2. package/dist/__tests__/utils/mock-providers.js +16 -4
  3. package/dist/__tests__/utils/mock-providers.js.map +1 -1
  4. package/dist/cache/tool-protection-cache.d.ts.map +1 -1
  5. package/dist/cache/tool-protection-cache.js +4 -0
  6. package/dist/cache/tool-protection-cache.js.map +1 -1
  7. package/dist/compliance/schema-verifier-v2.d.ts +110 -0
  8. package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
  9. package/dist/compliance/schema-verifier-v2.js +510 -0
  10. package/dist/compliance/schema-verifier-v2.js.map +1 -0
  11. package/dist/config/remote-config.d.ts +69 -0
  12. package/dist/config/remote-config.d.ts.map +1 -0
  13. package/dist/config/remote-config.js +107 -0
  14. package/dist/config/remote-config.js.map +1 -0
  15. package/dist/config.d.ts +182 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +145 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/did/resolver.d.ts +92 -0
  20. package/dist/did/resolver.d.ts.map +1 -0
  21. package/dist/did/resolver.js +203 -0
  22. package/dist/did/resolver.js.map +1 -0
  23. package/dist/identity/user-did-manager.d.ts +106 -0
  24. package/dist/identity/user-did-manager.d.ts.map +1 -0
  25. package/dist/identity/user-did-manager.js +190 -0
  26. package/dist/identity/user-did-manager.js.map +1 -0
  27. package/dist/index.d.ts +2 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/proof/proof-engine.d.ts +89 -0
  32. package/dist/proof/proof-engine.d.ts.map +1 -0
  33. package/dist/proof/proof-engine.js +249 -0
  34. package/dist/proof/proof-engine.js.map +1 -0
  35. package/dist/runtime/base-v2.d.ts +117 -0
  36. package/dist/runtime/base-v2.d.ts.map +1 -0
  37. package/dist/runtime/base-v2.js +328 -0
  38. package/dist/runtime/base-v2.js.map +1 -0
  39. package/dist/runtime/base.d.ts +28 -31
  40. package/dist/runtime/base.d.ts.map +1 -1
  41. package/dist/runtime/base.js +214 -69
  42. package/dist/runtime/base.js.map +1 -1
  43. package/dist/services/tool-protection.service.d.ts.map +1 -1
  44. package/dist/services/tool-protection.service.js +60 -11
  45. package/dist/services/tool-protection.service.js.map +1 -1
  46. package/dist/types/providers.d.ts +142 -0
  47. package/dist/types/providers.d.ts.map +1 -0
  48. package/dist/types/providers.js +43 -0
  49. package/dist/types/providers.js.map +1 -0
  50. package/dist/types/tool-protection.d.ts +22 -22
  51. package/dist/types/tool-protection.d.ts.map +1 -1
  52. package/dist/types/tool-protection.js +12 -5
  53. package/dist/types/tool-protection.js.map +1 -1
  54. package/dist/verification/interfaces.d.ts +125 -0
  55. package/dist/verification/interfaces.d.ts.map +1 -0
  56. package/dist/verification/interfaces.js +101 -0
  57. package/dist/verification/interfaces.js.map +1 -0
  58. package/package.json +10 -3
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Remote Configuration Fetching
4
+ *
5
+ * Service for fetching configuration from remote APIs (AgentShield dashboard)
6
+ * with caching support for performance optimization.
7
+ *
8
+ * @module @kya-os/mcp-i-core/config/remote-config
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.fetchRemoteConfig = fetchRemoteConfig;
12
+ const agentshield_api_1 = require("@kya-os/contracts/agentshield-api");
13
+ /**
14
+ * Fetch configuration from remote API (AgentShield dashboard)
15
+ *
16
+ * Attempts to fetch configuration from the AgentShield API with caching support.
17
+ * Falls back gracefully if remote fetch fails.
18
+ *
19
+ * @param options - Remote config options
20
+ * @param cache - Optional cache implementation
21
+ * @returns Configuration object or null if fetch fails
22
+ */
23
+ async function fetchRemoteConfig(options, cache) {
24
+ const { apiUrl, apiKey, projectId, agentDid, cacheTtl = 300000, fetchProvider } = options;
25
+ // Generate cache key
26
+ const cacheKey = projectId
27
+ ? `config:project:${projectId}`
28
+ : agentDid
29
+ ? `config:agent:${agentDid}`
30
+ : null;
31
+ // Try cache first
32
+ if (cache && cacheKey) {
33
+ try {
34
+ const cached = await cache.get(cacheKey);
35
+ if (cached) {
36
+ try {
37
+ const parsed = JSON.parse(cached);
38
+ if (parsed.expiresAt > Date.now()) {
39
+ return parsed.config;
40
+ }
41
+ }
42
+ catch {
43
+ // Invalid cache entry, continue to fetch
44
+ }
45
+ }
46
+ }
47
+ catch (error) {
48
+ // Cache read failed, continue to fetch
49
+ console.warn('[RemoteConfig] Cache read failed:', error);
50
+ }
51
+ }
52
+ // Fetch from API
53
+ try {
54
+ // Build API URL
55
+ let url;
56
+ if (projectId) {
57
+ // Use project-scoped endpoint (preferred)
58
+ url = `${apiUrl}${agentshield_api_1.AGENTSHIELD_ENDPOINTS.CONFIG(projectId)}`;
59
+ }
60
+ else if (agentDid) {
61
+ // Use agent-scoped endpoint
62
+ url = `${apiUrl}/api/v1/bouncer/config?agent_did=${encodeURIComponent(agentDid)}`;
63
+ }
64
+ else {
65
+ console.warn('[RemoteConfig] Neither projectId nor agentDid provided');
66
+ return null;
67
+ }
68
+ const response = await fetchProvider(url, {
69
+ headers: {
70
+ 'Authorization': `Bearer ${apiKey}`,
71
+ 'Content-Type': 'application/json'
72
+ }
73
+ });
74
+ if (!response.ok) {
75
+ console.warn(`[RemoteConfig] API returned ${response.status}: ${response.statusText}`);
76
+ return null;
77
+ }
78
+ const data = await response.json();
79
+ // Extract config from API response
80
+ // API response format: { success: boolean, data: { config: MCPIConfig } }
81
+ const responseData = data;
82
+ const config = responseData.config || responseData.data?.config || (responseData.success ? responseData.data : null);
83
+ if (!config) {
84
+ console.warn('[RemoteConfig] No config found in API response');
85
+ return null;
86
+ }
87
+ // Cache the result
88
+ if (cache && cacheKey) {
89
+ try {
90
+ await cache.set(cacheKey, JSON.stringify({
91
+ config,
92
+ expiresAt: Date.now() + cacheTtl
93
+ }), cacheTtl);
94
+ }
95
+ catch (error) {
96
+ // Cache write failed, but we got the config so continue
97
+ console.warn('[RemoteConfig] Cache write failed:', error);
98
+ }
99
+ }
100
+ return config;
101
+ }
102
+ catch (error) {
103
+ console.warn('[RemoteConfig] Failed to fetch config:', error);
104
+ return null;
105
+ }
106
+ }
107
+ //# sourceMappingURL=remote-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/config/remote-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Provider-based Runtime Configuration
3
+ *
4
+ * Core configuration for MCP-I runtime using the provider pattern.
5
+ * This is the foundation for all platform-specific implementations.
6
+ *
7
+ * @module @kya-os/mcp-i-core/config
8
+ */
9
+ import type { MCPIBaseConfig, RuntimeIdentityConfig, ProofingConfig, DelegationConfig, ToolProtectionSourceConfig } from '@kya-os/contracts/config';
10
+ import type { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider } from './providers/base';
11
+ import type { ToolProtectionService } from './services/tool-protection.service';
12
+ /**
13
+ * Provider-based runtime configuration
14
+ *
15
+ * This configuration is used internally by MCPIRuntimeBase and provides
16
+ * the foundation for all platform-specific implementations. It uses the
17
+ * provider pattern for platform abstraction, allowing different implementations
18
+ * for Node.js, Cloudflare Workers, and other environments.
19
+ */
20
+ export interface ProviderRuntimeConfig extends MCPIBaseConfig {
21
+ /**
22
+ * Cryptographic operations provider
23
+ * Handles signing, verification, and key generation
24
+ */
25
+ cryptoProvider: CryptoProvider;
26
+ /**
27
+ * Time operations provider
28
+ * Provides current time and timestamp generation
29
+ */
30
+ clockProvider: ClockProvider;
31
+ /**
32
+ * HTTP fetch operations provider
33
+ * Handles external API calls
34
+ */
35
+ fetchProvider: FetchProvider;
36
+ /**
37
+ * Storage operations provider
38
+ * Handles persistent data storage
39
+ */
40
+ storageProvider: StorageProvider;
41
+ /**
42
+ * Nonce cache provider
43
+ * Handles replay prevention
44
+ */
45
+ nonceCacheProvider: NonceCacheProvider;
46
+ /**
47
+ * Identity management provider
48
+ * Handles agent identity and DID operations
49
+ */
50
+ identityProvider: IdentityProvider;
51
+ /**
52
+ * Session configuration
53
+ * Controls session handling and timeouts
54
+ */
55
+ session?: {
56
+ /**
57
+ * Allowed timestamp skew in seconds
58
+ * @default 120
59
+ */
60
+ timestampSkewSeconds?: number;
61
+ /**
62
+ * Session TTL in minutes
63
+ * @default 30
64
+ */
65
+ ttlMinutes?: number;
66
+ };
67
+ /**
68
+ * Identity configuration (optional)
69
+ * When provided, enables identity features
70
+ */
71
+ identity?: RuntimeIdentityConfig;
72
+ /**
73
+ * Proofing configuration (optional)
74
+ * When provided, enables proof generation
75
+ */
76
+ proofing?: ProofingConfig;
77
+ /**
78
+ * Delegation configuration (optional)
79
+ * When provided, enables delegation verification
80
+ */
81
+ delegation?: DelegationConfig;
82
+ /**
83
+ * Tool protection service (optional)
84
+ * When provided, enables runtime tool protection
85
+ * Note: This is different from tool registry which is compile-time
86
+ */
87
+ toolProtectionService?: ToolProtectionService;
88
+ /**
89
+ * Tool protection source configuration (optional)
90
+ * Alternative to toolProtectionService for configuration-based setup
91
+ */
92
+ toolProtection?: ToolProtectionSourceConfig;
93
+ }
94
+ /**
95
+ * Builder for provider runtime configuration
96
+ * Helps create valid configurations with proper defaults
97
+ */
98
+ export declare class ProviderRuntimeConfigBuilder {
99
+ private config;
100
+ /**
101
+ * Set the providers (required)
102
+ */
103
+ withProviders(providers: {
104
+ cryptoProvider: CryptoProvider;
105
+ clockProvider: ClockProvider;
106
+ fetchProvider: FetchProvider;
107
+ storageProvider: StorageProvider;
108
+ nonceCacheProvider: NonceCacheProvider;
109
+ identityProvider: IdentityProvider;
110
+ }): this;
111
+ /**
112
+ * Set the environment
113
+ */
114
+ withEnvironment(env: 'development' | 'production'): this;
115
+ /**
116
+ * Configure session handling
117
+ */
118
+ withSession(session: {
119
+ timestampSkewSeconds?: number;
120
+ ttlMinutes?: number;
121
+ }): this;
122
+ /**
123
+ * Enable identity features
124
+ */
125
+ withIdentity(identity: RuntimeIdentityConfig): this;
126
+ /**
127
+ * Enable proofing features
128
+ */
129
+ withProofing(proofing: ProofingConfig): this;
130
+ /**
131
+ * Enable delegation features
132
+ */
133
+ withDelegation(delegation: DelegationConfig): this;
134
+ /**
135
+ * Set tool protection service
136
+ */
137
+ withToolProtectionService(service: ToolProtectionService): this;
138
+ /**
139
+ * Set tool protection configuration
140
+ */
141
+ withToolProtection(config: ToolProtectionSourceConfig): this;
142
+ /**
143
+ * Enable audit features
144
+ */
145
+ withAudit(audit: {
146
+ enabled: boolean;
147
+ includeProofHashes?: boolean;
148
+ }): this;
149
+ /**
150
+ * Enable well-known endpoints
151
+ */
152
+ withWellKnown(wellKnown: {
153
+ enabled: boolean;
154
+ serviceName?: string;
155
+ }): this;
156
+ /**
157
+ * Build the configuration
158
+ * Validates that all required providers are set
159
+ */
160
+ build(): ProviderRuntimeConfig;
161
+ }
162
+ /**
163
+ * Re-export base types for convenience
164
+ */
165
+ export type { MCPIBaseConfig, RuntimeIdentityConfig as BaseIdentityConfig, ProofingConfig, DelegationConfig, ToolProtectionSourceConfig } from '@kya-os/contracts/config';
166
+ /**
167
+ * Re-export remote config utilities
168
+ */
169
+ export { fetchRemoteConfig, type RemoteConfigOptions, type RemoteConfigCache } from './config/remote-config';
170
+ /**
171
+ * Create a provider runtime configuration
172
+ * Convenience function for creating configurations
173
+ */
174
+ export declare function createProviderRuntimeConfig(providers: {
175
+ cryptoProvider: CryptoProvider;
176
+ clockProvider: ClockProvider;
177
+ fetchProvider: FetchProvider;
178
+ storageProvider: StorageProvider;
179
+ nonceCacheProvider: NonceCacheProvider;
180
+ identityProvider: IdentityProvider;
181
+ }, options?: Partial<Omit<ProviderRuntimeConfig, keyof typeof providers>>): ProviderRuntimeConfig;
182
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js ADDED
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /**
3
+ * Provider-based Runtime Configuration
4
+ *
5
+ * Core configuration for MCP-I runtime using the provider pattern.
6
+ * This is the foundation for all platform-specific implementations.
7
+ *
8
+ * @module @kya-os/mcp-i-core/config
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.fetchRemoteConfig = exports.ProviderRuntimeConfigBuilder = void 0;
12
+ exports.createProviderRuntimeConfig = createProviderRuntimeConfig;
13
+ /**
14
+ * Builder for provider runtime configuration
15
+ * Helps create valid configurations with proper defaults
16
+ */
17
+ class ProviderRuntimeConfigBuilder {
18
+ config = {
19
+ environment: 'development'
20
+ };
21
+ /**
22
+ * Set the providers (required)
23
+ */
24
+ withProviders(providers) {
25
+ Object.assign(this.config, providers);
26
+ return this;
27
+ }
28
+ /**
29
+ * Set the environment
30
+ */
31
+ withEnvironment(env) {
32
+ this.config.environment = env;
33
+ return this;
34
+ }
35
+ /**
36
+ * Configure session handling
37
+ */
38
+ withSession(session) {
39
+ this.config.session = session;
40
+ return this;
41
+ }
42
+ /**
43
+ * Enable identity features
44
+ */
45
+ withIdentity(identity) {
46
+ this.config.identity = identity;
47
+ return this;
48
+ }
49
+ /**
50
+ * Enable proofing features
51
+ */
52
+ withProofing(proofing) {
53
+ this.config.proofing = proofing;
54
+ return this;
55
+ }
56
+ /**
57
+ * Enable delegation features
58
+ */
59
+ withDelegation(delegation) {
60
+ this.config.delegation = delegation;
61
+ return this;
62
+ }
63
+ /**
64
+ * Set tool protection service
65
+ */
66
+ withToolProtectionService(service) {
67
+ this.config.toolProtectionService = service;
68
+ return this;
69
+ }
70
+ /**
71
+ * Set tool protection configuration
72
+ */
73
+ withToolProtection(config) {
74
+ this.config.toolProtection = config;
75
+ return this;
76
+ }
77
+ /**
78
+ * Enable audit features
79
+ */
80
+ withAudit(audit) {
81
+ this.config.audit = audit;
82
+ return this;
83
+ }
84
+ /**
85
+ * Enable well-known endpoints
86
+ */
87
+ withWellKnown(wellKnown) {
88
+ this.config.wellKnown = wellKnown;
89
+ return this;
90
+ }
91
+ /**
92
+ * Build the configuration
93
+ * Validates that all required providers are set
94
+ */
95
+ build() {
96
+ const required = [
97
+ 'cryptoProvider',
98
+ 'clockProvider',
99
+ 'fetchProvider',
100
+ 'storageProvider',
101
+ 'nonceCacheProvider',
102
+ 'identityProvider'
103
+ ];
104
+ for (const field of required) {
105
+ if (!(field in this.config)) {
106
+ throw new Error(`Missing required provider: ${field}`);
107
+ }
108
+ }
109
+ // Apply defaults
110
+ return {
111
+ environment: 'development',
112
+ session: {
113
+ timestampSkewSeconds: 120,
114
+ ttlMinutes: 30
115
+ },
116
+ ...this.config
117
+ };
118
+ }
119
+ }
120
+ exports.ProviderRuntimeConfigBuilder = ProviderRuntimeConfigBuilder;
121
+ /**
122
+ * Re-export remote config utilities
123
+ */
124
+ var remote_config_1 = require("./config/remote-config");
125
+ Object.defineProperty(exports, "fetchRemoteConfig", { enumerable: true, get: function () { return remote_config_1.fetchRemoteConfig; } });
126
+ /**
127
+ * Create a provider runtime configuration
128
+ * Convenience function for creating configurations
129
+ */
130
+ function createProviderRuntimeConfig(providers, options) {
131
+ return new ProviderRuntimeConfigBuilder()
132
+ .withProviders(providers)
133
+ .withEnvironment(options?.environment || 'development')
134
+ .withSession(options?.session || {})
135
+ .withIdentity(options?.identity || { enabled: false, environment: 'development' })
136
+ .withProofing(options?.proofing || { enabled: false })
137
+ .withDelegation(options?.delegation || {
138
+ enabled: false,
139
+ verifier: { type: 'memory' }
140
+ })
141
+ .withAudit(options?.audit || { enabled: false })
142
+ .withWellKnown(options?.wellKnown || { enabled: true })
143
+ .build();
144
+ }
145
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAqRH,kEAwBC;AAzLD;;;GAGG;AACH,MAAa,4BAA4B;IAC/B,MAAM,GAAmC;QAC/C,WAAW,EAAE,aAAa;KAC3B,CAAC;IAEF;;OAEG;IACH,aAAa,CAAC,SAOb;QACC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,GAAiC;QAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAGX;QACC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAA+B;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAwB;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAA4B;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,yBAAyB,CAAC,OAA8B;QACtD,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,OAAO,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAkC;QACnD,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAGT;QACC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAGb;QACC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,MAAM,QAAQ,GAAG;YACf,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,iBAAiB;YACjB,oBAAoB;YACpB,kBAAkB;SACnB,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,OAAO;YACL,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE;gBACP,oBAAoB,EAAE,GAAG;gBACzB,UAAU,EAAE,EAAE;aACf;YACD,GAAG,IAAI,CAAC,MAAM;SACU,CAAC;IAC7B,CAAC;CACF;AAnID,oEAmIC;AAaD;;GAEG;AACH,wDAIgC;AAH9B,kHAAA,iBAAiB,OAAA;AAKnB;;;GAGG;AACH,SAAgB,2BAA2B,CACzC,SAOC,EACD,OAAsE;IAEtE,OAAO,IAAI,4BAA4B,EAAE;SACtC,aAAa,CAAC,SAAS,CAAC;SACxB,eAAe,CAAC,OAAO,EAAE,WAAW,IAAI,aAAa,CAAC;SACtD,WAAW,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;SACnC,YAAY,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;SACjF,YAAY,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SACrD,cAAc,CAAC,OAAO,EAAE,UAAU,IAAI;QACrC,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC7B,CAAC;SACD,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC/C,aAAa,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACtD,KAAK,EAAE,CAAC;AACb,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * DID Resolver plugin system
3
+ * Supports did:key and did:web out of the box, extensible for other methods
4
+ */
5
+ import { FetchProvider } from "../types/providers";
6
+ /**
7
+ * DID Document structure
8
+ */
9
+ export interface DIDDocument {
10
+ '@context': string[];
11
+ id: string;
12
+ verificationMethod?: VerificationMethod[];
13
+ authentication?: (string | VerificationMethod)[];
14
+ assertionMethod?: (string | VerificationMethod)[];
15
+ keyAgreement?: (string | VerificationMethod)[];
16
+ capabilityInvocation?: (string | VerificationMethod)[];
17
+ capabilityDelegation?: (string | VerificationMethod)[];
18
+ }
19
+ export interface VerificationMethod {
20
+ id: string;
21
+ type: string;
22
+ controller: string;
23
+ publicKeyBase58?: string;
24
+ publicKeyJwk?: any;
25
+ publicKeyMultibase?: string;
26
+ }
27
+ /**
28
+ * DID resolver interface
29
+ */
30
+ export interface DIDResolver {
31
+ /**
32
+ * Check if this resolver can handle the given DID method
33
+ */
34
+ canResolve(did: string): boolean;
35
+ /**
36
+ * Resolve a DID to its document
37
+ */
38
+ resolve(did: string): Promise<DIDDocument>;
39
+ }
40
+ /**
41
+ * did:key resolver (built-in)
42
+ */
43
+ export declare class DIDKeyResolver implements DIDResolver {
44
+ canResolve(did: string): boolean;
45
+ resolve(did: string): Promise<DIDDocument>;
46
+ private decodeMultibase;
47
+ }
48
+ /**
49
+ * did:web resolver (built-in)
50
+ */
51
+ export declare class DIDWebResolver implements DIDResolver {
52
+ private fetchProvider;
53
+ constructor(fetchProvider: FetchProvider);
54
+ canResolve(did: string): boolean;
55
+ resolve(did: string): Promise<DIDDocument>;
56
+ }
57
+ /**
58
+ * Universal DID resolver with plugin support
59
+ */
60
+ export declare class UniversalDIDResolver {
61
+ private resolvers;
62
+ constructor(fetchProvider?: FetchProvider);
63
+ /**
64
+ * Register a DID resolver
65
+ */
66
+ registerResolver(resolver: DIDResolver): void;
67
+ /**
68
+ * Resolve a DID using the appropriate resolver
69
+ */
70
+ resolve(did: string): Promise<DIDDocument>;
71
+ /**
72
+ * Extract public key from DID document
73
+ */
74
+ getPublicKey(did: string, keyId?: string): Promise<string>;
75
+ private decodePublicKey;
76
+ }
77
+ /**
78
+ * Lean DID resolver for edge environments
79
+ */
80
+ export declare class EdgeDIDResolver extends UniversalDIDResolver {
81
+ private cache;
82
+ constructor(cache?: Map<string, DIDDocument>);
83
+ /**
84
+ * Resolve with caching
85
+ */
86
+ resolve(did: string): Promise<DIDDocument>;
87
+ /**
88
+ * Pre-populate cache for known DIDs
89
+ */
90
+ preloadCache(documents: DIDDocument[]): void;
91
+ }
92
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/did/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACjD,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC/C,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACvD,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoChD,OAAO,CAAC,eAAe;CAYxB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IACpC,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA2BjD;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,aAAa,CAAC,EAAE,aAAa;IASzC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI7C;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAWhD;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChE,OAAO,CAAC,eAAe;CAUxB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBAAoB;IAC3C,OAAO,CAAC,KAAK;gBAAL,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAa;IAI/D;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBhD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI;CAK7C"}