@kya-os/mcp-i-core 1.1.14-canary.1 → 1.2.1-canary.1

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 (60) hide show
  1. package/dist/__tests__/utils/mock-providers.d.ts +5 -3
  2. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
  3. package/dist/__tests__/utils/mock-providers.js +23 -12
  4. package/dist/__tests__/utils/mock-providers.js.map +1 -1
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +6 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/providers/base.d.ts +18 -3
  10. package/dist/providers/base.d.ts.map +1 -1
  11. package/dist/providers/base.js +5 -1
  12. package/dist/providers/base.js.map +1 -1
  13. package/dist/providers/memory.d.ts +2 -2
  14. package/dist/providers/memory.d.ts.map +1 -1
  15. package/dist/providers/memory.js +9 -5
  16. package/dist/providers/memory.js.map +1 -1
  17. package/dist/runtime/base.d.ts +26 -1
  18. package/dist/runtime/base.d.ts.map +1 -1
  19. package/dist/runtime/base.js +112 -7
  20. package/dist/runtime/base.js.map +1 -1
  21. package/dist/services/access-control.service.d.ts +21 -0
  22. package/dist/services/access-control.service.d.ts.map +1 -1
  23. package/dist/services/access-control.service.js +333 -9
  24. package/dist/services/access-control.service.js.map +1 -1
  25. package/dist/services/proof-verifier.d.ts +1 -1
  26. package/dist/services/proof-verifier.d.ts.map +1 -1
  27. package/dist/services/proof-verifier.js +15 -14
  28. package/dist/services/proof-verifier.js.map +1 -1
  29. package/dist/services/storage.service.d.ts +116 -0
  30. package/dist/services/storage.service.d.ts.map +1 -0
  31. package/dist/services/storage.service.js +411 -0
  32. package/dist/services/storage.service.js.map +1 -0
  33. package/dist/utils/storage-keys.d.ts +1 -0
  34. package/dist/utils/storage-keys.d.ts.map +1 -1
  35. package/dist/utils/storage-keys.js.map +1 -1
  36. package/package.json +3 -3
  37. package/dist/compliance/schema-verifier-v2.d.ts +0 -110
  38. package/dist/compliance/schema-verifier-v2.d.ts.map +0 -1
  39. package/dist/compliance/schema-verifier-v2.js +0 -510
  40. package/dist/compliance/schema-verifier-v2.js.map +0 -1
  41. package/dist/did/resolver.d.ts +0 -92
  42. package/dist/did/resolver.d.ts.map +0 -1
  43. package/dist/did/resolver.js +0 -203
  44. package/dist/did/resolver.js.map +0 -1
  45. package/dist/proof/proof-engine.d.ts +0 -89
  46. package/dist/proof/proof-engine.d.ts.map +0 -1
  47. package/dist/proof/proof-engine.js +0 -249
  48. package/dist/proof/proof-engine.js.map +0 -1
  49. package/dist/runtime/base-v2.d.ts +0 -117
  50. package/dist/runtime/base-v2.d.ts.map +0 -1
  51. package/dist/runtime/base-v2.js +0 -328
  52. package/dist/runtime/base-v2.js.map +0 -1
  53. package/dist/types/providers.d.ts +0 -142
  54. package/dist/types/providers.d.ts.map +0 -1
  55. package/dist/types/providers.js +0 -43
  56. package/dist/types/providers.js.map +0 -1
  57. package/dist/verification/interfaces.d.ts +0 -125
  58. package/dist/verification/interfaces.d.ts.map +0 -1
  59. package/dist/verification/interfaces.js +0 -101
  60. package/dist/verification/interfaces.js.map +0 -1
@@ -1,203 +0,0 @@
1
- "use strict";
2
- /**
3
- * DID Resolver plugin system
4
- * Supports did:key and did:web out of the box, extensible for other methods
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.EdgeDIDResolver = exports.UniversalDIDResolver = exports.DIDWebResolver = exports.DIDKeyResolver = void 0;
8
- /**
9
- * did:key resolver (built-in)
10
- */
11
- class DIDKeyResolver {
12
- canResolve(did) {
13
- return did.startsWith('did:key:');
14
- }
15
- async resolve(did) {
16
- // Extract the multibase key
17
- const multibaseKey = did.substring('did:key:'.length);
18
- // Decode multibase (z-base58)
19
- const keyBytes = this.decodeMultibase(multibaseKey);
20
- // Extract codec and key material
21
- const codec = keyBytes[0] << 8 | keyBytes[1];
22
- const publicKey = keyBytes.slice(2);
23
- // Ed25519 codec is 0xed01
24
- if (codec !== 0xed01) {
25
- throw new Error(`Unsupported key type: ${codec.toString(16)}`);
26
- }
27
- // Create DID document
28
- return {
29
- '@context': [
30
- 'https://www.w3.org/ns/did/v1',
31
- 'https://w3id.org/security/suites/ed25519-2020/v1'
32
- ],
33
- id: did,
34
- verificationMethod: [{
35
- id: `${did}#${multibaseKey}`,
36
- type: 'Ed25519VerificationKey2020',
37
- controller: did,
38
- publicKeyMultibase: multibaseKey
39
- }],
40
- authentication: [`${did}#${multibaseKey}`],
41
- assertionMethod: [`${did}#${multibaseKey}`],
42
- capabilityInvocation: [`${did}#${multibaseKey}`],
43
- capabilityDelegation: [`${did}#${multibaseKey}`]
44
- };
45
- }
46
- decodeMultibase(multibase) {
47
- // Remove 'z' prefix (z-base58)
48
- if (!multibase.startsWith('z')) {
49
- throw new Error('Invalid multibase encoding');
50
- }
51
- // Base58 decode (simplified - in production use a proper library)
52
- const base58 = multibase.substring(1);
53
- // This is a simplified implementation
54
- // In production, use a proper base58 decoding library
55
- return Buffer.from(base58, 'base64'); // Placeholder
56
- }
57
- }
58
- exports.DIDKeyResolver = DIDKeyResolver;
59
- /**
60
- * did:web resolver (built-in)
61
- */
62
- class DIDWebResolver {
63
- fetchProvider;
64
- constructor(fetchProvider) {
65
- this.fetchProvider = fetchProvider;
66
- }
67
- canResolve(did) {
68
- return did.startsWith('did:web:');
69
- }
70
- async resolve(did) {
71
- // Extract domain and path from DID
72
- const parts = did.substring('did:web:'.length).split(':');
73
- const domain = parts[0];
74
- const path = parts.slice(1).join('/');
75
- // Construct URL
76
- const url = path
77
- ? `https://${domain}/${path}/did.json`
78
- : `https://${domain}/.well-known/did.json`;
79
- // Fetch DID document
80
- const response = await this.fetchProvider.fetch(url);
81
- if (!response.ok) {
82
- throw new Error(`Failed to resolve ${did}: ${response.statusText}`);
83
- }
84
- const document = await response.json();
85
- // Validate document
86
- if (!document['@context'] || document.id !== did) {
87
- throw new Error('Invalid DID document');
88
- }
89
- return document;
90
- }
91
- }
92
- exports.DIDWebResolver = DIDWebResolver;
93
- /**
94
- * Universal DID resolver with plugin support
95
- */
96
- class UniversalDIDResolver {
97
- resolvers = [];
98
- constructor(fetchProvider) {
99
- // Register built-in resolvers
100
- this.registerResolver(new DIDKeyResolver());
101
- if (fetchProvider) {
102
- this.registerResolver(new DIDWebResolver(fetchProvider));
103
- }
104
- }
105
- /**
106
- * Register a DID resolver
107
- */
108
- registerResolver(resolver) {
109
- this.resolvers.push(resolver);
110
- }
111
- /**
112
- * Resolve a DID using the appropriate resolver
113
- */
114
- async resolve(did) {
115
- // Find appropriate resolver
116
- const resolver = this.resolvers.find(r => r.canResolve(did));
117
- if (!resolver) {
118
- throw new Error(`No resolver available for DID method: ${did.split(':')[1]}`);
119
- }
120
- return resolver.resolve(did);
121
- }
122
- /**
123
- * Extract public key from DID document
124
- */
125
- async getPublicKey(did, keyId) {
126
- const document = await this.resolve(did);
127
- // Find verification method
128
- let method;
129
- if (keyId) {
130
- method = document.verificationMethod?.find(m => m.id === keyId);
131
- }
132
- else {
133
- // Use first verification method
134
- method = document.verificationMethod?.[0];
135
- }
136
- if (!method) {
137
- throw new Error(`No verification method found for ${did}`);
138
- }
139
- // Extract public key
140
- if (method.publicKeyMultibase) {
141
- // Decode multibase key
142
- return this.decodePublicKey(method.publicKeyMultibase);
143
- }
144
- else if (method.publicKeyBase58) {
145
- // Decode base58 key
146
- return Buffer.from(method.publicKeyBase58, 'base64').toString('base64');
147
- }
148
- else if (method.publicKeyJwk) {
149
- // Extract from JWK
150
- return Buffer.from(method.publicKeyJwk.x, 'base64url').toString('base64');
151
- }
152
- throw new Error('No supported public key format found');
153
- }
154
- decodePublicKey(multibase) {
155
- // Simplified - extract Ed25519 public key from multibase
156
- // In production, use proper multibase/multicodec decoding
157
- if (multibase.startsWith('z')) {
158
- // z-base58 encoded
159
- // This is a placeholder - use proper decoding
160
- return Buffer.from(multibase.substring(1), 'base64').toString('base64');
161
- }
162
- throw new Error('Unsupported multibase encoding');
163
- }
164
- }
165
- exports.UniversalDIDResolver = UniversalDIDResolver;
166
- /**
167
- * Lean DID resolver for edge environments
168
- */
169
- class EdgeDIDResolver extends UniversalDIDResolver {
170
- cache;
171
- constructor(cache = new Map()) {
172
- super(); // Only register did:key (no network needed)
173
- this.cache = cache;
174
- }
175
- /**
176
- * Resolve with caching
177
- */
178
- async resolve(did) {
179
- // Check cache first
180
- if (this.cache.has(did)) {
181
- return this.cache.get(did);
182
- }
183
- // Resolve and cache
184
- const document = await super.resolve(did);
185
- this.cache.set(did, document);
186
- // Limit cache size
187
- if (this.cache.size > 100) {
188
- const firstKey = this.cache.keys().next().value;
189
- this.cache.delete(firstKey);
190
- }
191
- return document;
192
- }
193
- /**
194
- * Pre-populate cache for known DIDs
195
- */
196
- preloadCache(documents) {
197
- for (const doc of documents) {
198
- this.cache.set(doc.id, doc);
199
- }
200
- }
201
- }
202
- exports.EdgeDIDResolver = EdgeDIDResolver;
203
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/did/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- /**
2
- * ProofEngine abstraction for multiple proof formats
3
- * Supports JWT-VC, Data Integrity (Ed25519Signature2020), and JWS
4
- */
5
- import { CryptoProvider } from "../types/providers";
6
- export interface ProofFormat {
7
- type: 'JWT-VC' | 'DataIntegrity' | 'JWS' | 'DetachedJWS';
8
- algorithm: string;
9
- }
10
- export interface ProofOptions {
11
- format: ProofFormat;
12
- canonicalize?: boolean;
13
- includeMeta?: boolean;
14
- }
15
- export interface VerificationResult {
16
- valid: boolean;
17
- format: ProofFormat;
18
- errors?: string[];
19
- metadata?: any;
20
- }
21
- /**
22
- * Abstract proof engine for creating and verifying proofs
23
- */
24
- export declare abstract class ProofEngine {
25
- protected crypto: CryptoProvider;
26
- constructor(crypto: CryptoProvider);
27
- /**
28
- * Create a proof for data in the specified format
29
- */
30
- abstract createProof(data: any, privateKey: string, options: ProofOptions): Promise<any>;
31
- /**
32
- * Verify a proof
33
- */
34
- abstract verifyProof(data: any, proof: any, publicKey: string, options: ProofOptions): Promise<VerificationResult>;
35
- /**
36
- * Canonicalize data (JCS - RFC 8785)
37
- */
38
- abstract canonicalize(data: any): string;
39
- /**
40
- * Get supported proof formats
41
- */
42
- abstract getSupportedFormats(): ProofFormat[];
43
- }
44
- /**
45
- * Default proof engine implementation
46
- */
47
- export declare class DefaultProofEngine extends ProofEngine {
48
- /**
49
- * Create a proof based on format
50
- */
51
- createProof(data: any, privateKey: string, options: ProofOptions): Promise<any>;
52
- /**
53
- * Verify a proof based on format
54
- */
55
- verifyProof(data: any, proof: any, publicKey: string, options: ProofOptions): Promise<VerificationResult>;
56
- /**
57
- * Create detached JWS proof
58
- */
59
- private createDetachedJWS;
60
- /**
61
- * Verify detached JWS proof
62
- */
63
- private verifyDetachedJWS;
64
- /**
65
- * Create Data Integrity proof (Ed25519Signature2020)
66
- */
67
- private createDataIntegrityProof;
68
- /**
69
- * Verify Data Integrity proof
70
- */
71
- private verifyDataIntegrityProof;
72
- /**
73
- * Create JWT-VC
74
- */
75
- private createJWTVC;
76
- /**
77
- * Verify JWT-VC
78
- */
79
- private verifyJWTVC;
80
- /**
81
- * Canonicalize JSON (JCS - RFC 8785)
82
- */
83
- canonicalize(obj: any): string;
84
- /**
85
- * Get supported formats
86
- */
87
- getSupportedFormats(): ProofFormat[];
88
- }
89
- //# sourceMappingURL=proof-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proof-engine.d.ts","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,eAAe,GAAG,KAAK,GAAG,aAAa,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,8BAAsB,WAAW;IACnB,SAAS,CAAC,MAAM,EAAE,cAAc;gBAAtB,MAAM,EAAE,cAAc;IAE5C;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAExC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,IAAI,WAAW,EAAE;CAC9C;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC;IAgBf;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAyB9B;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;YACW,iBAAiB;IAgC/B;;OAEG;YACW,wBAAwB;IA0BtC;;OAEG;YACW,wBAAwB;IA4BtC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;YACW,WAAW;IAoDzB;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAqB9B;;OAEG;IACH,mBAAmB,IAAI,WAAW,EAAE;CAOrC"}
@@ -1,249 +0,0 @@
1
- "use strict";
2
- /**
3
- * ProofEngine abstraction for multiple proof formats
4
- * Supports JWT-VC, Data Integrity (Ed25519Signature2020), and JWS
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.DefaultProofEngine = exports.ProofEngine = void 0;
8
- /**
9
- * Abstract proof engine for creating and verifying proofs
10
- */
11
- class ProofEngine {
12
- crypto;
13
- constructor(crypto) {
14
- this.crypto = crypto;
15
- }
16
- }
17
- exports.ProofEngine = ProofEngine;
18
- /**
19
- * Default proof engine implementation
20
- */
21
- class DefaultProofEngine extends ProofEngine {
22
- /**
23
- * Create a proof based on format
24
- */
25
- async createProof(data, privateKey, options) {
26
- const canonical = options.canonicalize ? this.canonicalize(data) : JSON.stringify(data);
27
- const dataBytes = new TextEncoder().encode(canonical);
28
- switch (options.format.type) {
29
- case 'DetachedJWS':
30
- return this.createDetachedJWS(dataBytes, privateKey, options);
31
- case 'DataIntegrity':
32
- return this.createDataIntegrityProof(data, privateKey, options);
33
- case 'JWT-VC':
34
- return this.createJWTVC(data, privateKey, options);
35
- default:
36
- throw new Error(`Unsupported proof format: ${options.format.type}`);
37
- }
38
- }
39
- /**
40
- * Verify a proof based on format
41
- */
42
- async verifyProof(data, proof, publicKey, options) {
43
- try {
44
- switch (options.format.type) {
45
- case 'DetachedJWS':
46
- return this.verifyDetachedJWS(data, proof, publicKey, options);
47
- case 'DataIntegrity':
48
- return this.verifyDataIntegrityProof(data, proof, publicKey, options);
49
- case 'JWT-VC':
50
- return this.verifyJWTVC(proof, publicKey, options);
51
- default:
52
- return {
53
- valid: false,
54
- format: options.format,
55
- errors: [`Unsupported proof format: ${options.format.type}`]
56
- };
57
- }
58
- }
59
- catch (error) {
60
- return {
61
- valid: false,
62
- format: options.format,
63
- errors: [error instanceof Error ? error.message : String(error)]
64
- };
65
- }
66
- }
67
- /**
68
- * Create detached JWS proof
69
- */
70
- async createDetachedJWS(data, privateKey, options) {
71
- // Create signature
72
- const signature = await this.crypto.sign(data, privateKey);
73
- // Create hash for reference
74
- const hash = await this.crypto.hash(data);
75
- return {
76
- format: 'DetachedJWS',
77
- signature: Buffer.from(signature).toString('base64url'),
78
- hash: Buffer.from(hash).toString('base64'),
79
- algorithm: options.format.algorithm || 'Ed25519'
80
- };
81
- }
82
- /**
83
- * Verify detached JWS proof
84
- */
85
- async verifyDetachedJWS(data, proof, publicKey, options) {
86
- const canonical = options.canonicalize ? this.canonicalize(data) : JSON.stringify(data);
87
- const dataBytes = new TextEncoder().encode(canonical);
88
- // Verify hash matches
89
- const hash = await this.crypto.hash(dataBytes);
90
- const hashBase64 = Buffer.from(hash).toString('base64');
91
- if (hashBase64 !== proof.hash) {
92
- return {
93
- valid: false,
94
- format: options.format,
95
- errors: ['Hash mismatch']
96
- };
97
- }
98
- // Verify signature
99
- const signatureBytes = Buffer.from(proof.signature, 'base64url');
100
- const valid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
101
- return {
102
- valid,
103
- format: options.format,
104
- metadata: { hash: hashBase64 }
105
- };
106
- }
107
- /**
108
- * Create Data Integrity proof (Ed25519Signature2020)
109
- */
110
- async createDataIntegrityProof(data, privateKey, options) {
111
- const proof = {
112
- type: 'Ed25519Signature2020',
113
- created: new Date().toISOString(),
114
- verificationMethod: '', // Will be set by runtime
115
- proofPurpose: 'assertionMethod'
116
- };
117
- // Canonicalize document + proof
118
- const docWithProof = { ...data, proof };
119
- const canonical = this.canonicalize(docWithProof);
120
- const dataBytes = new TextEncoder().encode(canonical);
121
- // Sign
122
- const signature = await this.crypto.sign(dataBytes, privateKey);
123
- return {
124
- ...proof,
125
- proofValue: Buffer.from(signature).toString('base64')
126
- };
127
- }
128
- /**
129
- * Verify Data Integrity proof
130
- */
131
- async verifyDataIntegrityProof(data, proof, publicKey, options) {
132
- // Remove proofValue for verification
133
- const { proofValue, ...proofWithoutValue } = proof;
134
- const docWithProof = { ...data, proof: proofWithoutValue };
135
- // Canonicalize
136
- const canonical = this.canonicalize(docWithProof);
137
- const dataBytes = new TextEncoder().encode(canonical);
138
- // Verify signature
139
- const signatureBytes = Buffer.from(proofValue, 'base64');
140
- const valid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
141
- return {
142
- valid,
143
- format: options.format,
144
- metadata: {
145
- created: proof.created,
146
- type: proof.type
147
- }
148
- };
149
- }
150
- /**
151
- * Create JWT-VC
152
- */
153
- async createJWTVC(data, privateKey, options) {
154
- // Create JWT header
155
- const header = {
156
- alg: 'EdDSA',
157
- typ: 'JWT'
158
- };
159
- // Create payload
160
- const payload = {
161
- vc: data,
162
- iat: Math.floor(Date.now() / 1000),
163
- exp: Math.floor(Date.now() / 1000) + 3600 // 1 hour
164
- };
165
- // Encode parts
166
- const headerB64 = Buffer.from(JSON.stringify(header)).toString('base64url');
167
- const payloadB64 = Buffer.from(JSON.stringify(payload)).toString('base64url');
168
- // Sign
169
- const message = `${headerB64}.${payloadB64}`;
170
- const signature = await this.crypto.sign(new TextEncoder().encode(message), privateKey);
171
- return `${message}.${Buffer.from(signature).toString('base64url')}`;
172
- }
173
- /**
174
- * Verify JWT-VC
175
- */
176
- async verifyJWTVC(jwt, publicKey, options) {
177
- const parts = jwt.split('.');
178
- if (parts.length !== 3) {
179
- return {
180
- valid: false,
181
- format: options.format,
182
- errors: ['Invalid JWT format']
183
- };
184
- }
185
- const [headerB64, payloadB64, signatureB64] = parts;
186
- // Verify signature
187
- const message = `${headerB64}.${payloadB64}`;
188
- const signature = Buffer.from(signatureB64, 'base64url');
189
- const valid = await this.crypto.verify(new TextEncoder().encode(message), signature, publicKey);
190
- if (!valid) {
191
- return {
192
- valid: false,
193
- format: options.format,
194
- errors: ['Invalid signature']
195
- };
196
- }
197
- // Decode and check expiry
198
- const payload = JSON.parse(Buffer.from(payloadB64, 'base64url').toString());
199
- const now = Math.floor(Date.now() / 1000);
200
- if (payload.exp && payload.exp < now) {
201
- return {
202
- valid: false,
203
- format: options.format,
204
- errors: ['JWT expired']
205
- };
206
- }
207
- return {
208
- valid: true,
209
- format: options.format,
210
- metadata: payload
211
- };
212
- }
213
- /**
214
- * Canonicalize JSON (JCS - RFC 8785)
215
- */
216
- canonicalize(obj) {
217
- if (obj === null)
218
- return 'null';
219
- if (typeof obj === 'boolean')
220
- return obj.toString();
221
- if (typeof obj === 'number')
222
- return JSON.stringify(obj);
223
- if (typeof obj === 'string')
224
- return JSON.stringify(obj);
225
- if (Array.isArray(obj)) {
226
- return '[' + obj.map(item => this.canonicalize(item)).join(',') + ']';
227
- }
228
- if (typeof obj === 'object') {
229
- const keys = Object.keys(obj).sort();
230
- const pairs = keys.map(key => {
231
- return JSON.stringify(key) + ':' + this.canonicalize(obj[key]);
232
- });
233
- return '{' + pairs.join(',') + '}';
234
- }
235
- throw new Error('Unsupported type for canonicalization');
236
- }
237
- /**
238
- * Get supported formats
239
- */
240
- getSupportedFormats() {
241
- return [
242
- { type: 'DetachedJWS', algorithm: 'Ed25519' },
243
- { type: 'DataIntegrity', algorithm: 'Ed25519Signature2020' },
244
- { type: 'JWT-VC', algorithm: 'EdDSA' }
245
- ];
246
- }
247
- }
248
- exports.DefaultProofEngine = DefaultProofEngine;
249
- //# sourceMappingURL=proof-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proof-engine.js","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"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"}