a2a-did 0.1.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 (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +180 -0
  3. package/dist/a2a/constants.d.ts +10 -0
  4. package/dist/a2a/constants.d.ts.map +1 -0
  5. package/dist/a2a/constants.js +10 -0
  6. package/dist/a2a/constants.js.map +1 -0
  7. package/dist/a2a/index.d.ts +23 -0
  8. package/dist/a2a/index.d.ts.map +1 -0
  9. package/dist/a2a/index.js +27 -0
  10. package/dist/a2a/index.js.map +1 -0
  11. package/dist/a2a/resolution.d.ts +20 -0
  12. package/dist/a2a/resolution.d.ts.map +1 -0
  13. package/dist/a2a/resolution.js +55 -0
  14. package/dist/a2a/resolution.js.map +1 -0
  15. package/dist/a2a/signing.d.ts +24 -0
  16. package/dist/a2a/signing.d.ts.map +1 -0
  17. package/dist/a2a/signing.js +31 -0
  18. package/dist/a2a/signing.js.map +1 -0
  19. package/dist/a2a/utils.d.ts +29 -0
  20. package/dist/a2a/utils.d.ts.map +1 -0
  21. package/dist/a2a/utils.js +70 -0
  22. package/dist/a2a/utils.js.map +1 -0
  23. package/dist/a2a/verification.d.ts +42 -0
  24. package/dist/a2a/verification.d.ts.map +1 -0
  25. package/dist/a2a/verification.js +156 -0
  26. package/dist/a2a/verification.js.map +1 -0
  27. package/dist/agent.d.ts +99 -0
  28. package/dist/agent.d.ts.map +1 -0
  29. package/dist/agent.js +149 -0
  30. package/dist/agent.js.map +1 -0
  31. package/dist/did/config-types.d.ts +37 -0
  32. package/dist/did/config-types.d.ts.map +1 -0
  33. package/dist/did/config-types.js +6 -0
  34. package/dist/did/config-types.js.map +1 -0
  35. package/dist/did/document.d.ts +20 -0
  36. package/dist/did/document.d.ts.map +1 -0
  37. package/dist/did/document.js +21 -0
  38. package/dist/did/document.js.map +1 -0
  39. package/dist/did/factory.d.ts +31 -0
  40. package/dist/did/factory.d.ts.map +1 -0
  41. package/dist/did/factory.js +46 -0
  42. package/dist/did/factory.js.map +1 -0
  43. package/dist/did/handlers/ethr-handler.d.ts +62 -0
  44. package/dist/did/handlers/ethr-handler.d.ts.map +1 -0
  45. package/dist/did/handlers/ethr-handler.js +184 -0
  46. package/dist/did/handlers/ethr-handler.js.map +1 -0
  47. package/dist/did/handlers/web-handler.d.ts +73 -0
  48. package/dist/did/handlers/web-handler.d.ts.map +1 -0
  49. package/dist/did/handlers/web-handler.js +170 -0
  50. package/dist/did/handlers/web-handler.js.map +1 -0
  51. package/dist/did/index.d.ts +10 -0
  52. package/dist/did/index.d.ts.map +1 -0
  53. package/dist/did/index.js +15 -0
  54. package/dist/did/index.js.map +1 -0
  55. package/dist/did/resolver.d.ts +85 -0
  56. package/dist/did/resolver.d.ts.map +1 -0
  57. package/dist/did/resolver.js +120 -0
  58. package/dist/did/resolver.js.map +1 -0
  59. package/dist/did/resolvers/ethr.d.ts +74 -0
  60. package/dist/did/resolvers/ethr.d.ts.map +1 -0
  61. package/dist/did/resolvers/ethr.js +67 -0
  62. package/dist/did/resolvers/ethr.js.map +1 -0
  63. package/dist/did/resolvers/index.d.ts +8 -0
  64. package/dist/did/resolvers/index.d.ts.map +1 -0
  65. package/dist/did/resolvers/index.js +8 -0
  66. package/dist/did/resolvers/index.js.map +1 -0
  67. package/dist/did/resolvers/web.d.ts +13 -0
  68. package/dist/did/resolvers/web.d.ts.map +1 -0
  69. package/dist/did/resolvers/web.js +97 -0
  70. package/dist/did/resolvers/web.js.map +1 -0
  71. package/dist/did/service-loader.d.ts +15 -0
  72. package/dist/did/service-loader.d.ts.map +1 -0
  73. package/dist/did/service-loader.js +20 -0
  74. package/dist/did/service-loader.js.map +1 -0
  75. package/dist/did/service.d.ts +99 -0
  76. package/dist/did/service.d.ts.map +1 -0
  77. package/dist/did/service.js +75 -0
  78. package/dist/did/service.js.map +1 -0
  79. package/dist/did/signing.d.ts +19 -0
  80. package/dist/did/signing.d.ts.map +1 -0
  81. package/dist/did/signing.js +37 -0
  82. package/dist/did/signing.js.map +1 -0
  83. package/dist/did/types.d.ts +134 -0
  84. package/dist/did/types.d.ts.map +1 -0
  85. package/dist/did/types.js +2 -0
  86. package/dist/did/types.js.map +1 -0
  87. package/dist/index.d.ts +15 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +17 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/types.d.ts +25 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +2 -0
  94. package/dist/types.js.map +1 -0
  95. package/package.json +70 -0
@@ -0,0 +1,19 @@
1
+ export interface JWSSignature {
2
+ protected: string;
3
+ signature: string;
4
+ }
5
+ export interface SignedPayload<T> {
6
+ payload: T;
7
+ signatures: JWSSignature[];
8
+ }
9
+ /**
10
+ * Sign a payload with a DID using ES256K (secp256k1)
11
+ * @param payload - Data to sign
12
+ * @param did - DID string (e.g., "did:ethr:sepolia:0x...")
13
+ * @param privateKey - Private key (hex string)
14
+ * @returns Signed payload with JWS signatures
15
+ */
16
+ export declare function signWithDID<T extends object>(payload: T, did: string, privateKey: string, keyId?: string): Promise<T & {
17
+ signatures: JWSSignature[];
18
+ }>;
19
+ //# sourceMappingURL=signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../src/did/signing.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,MAAM,EAChD,OAAO,EAAE,CAAC,EACV,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,GAAG;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CA2B7C"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * DID Signing Utilities
3
+ * Provides cryptographic signing operations for DIDs
4
+ */
5
+ import { createJWS, ES256KSigner } from 'did-jwt';
6
+ import * as u8a from 'uint8arrays';
7
+ /**
8
+ * Sign a payload with a DID using ES256K (secp256k1)
9
+ * @param payload - Data to sign
10
+ * @param did - DID string (e.g., "did:ethr:sepolia:0x...")
11
+ * @param privateKey - Private key (hex string)
12
+ * @returns Signed payload with JWS signatures
13
+ */
14
+ export async function signWithDID(payload, did, privateKey, keyId) {
15
+ // Convert hex string to Uint8Array
16
+ const privateKeyBytes = u8a.fromString(privateKey, 'base16');
17
+ // Create ES256K signer
18
+ const signer = ES256KSigner(privateKeyBytes);
19
+ const keyIdValue = keyId ?? `${did}#controller`;
20
+ // Create JWS
21
+ const jws = await createJWS(payload, signer, { alg: 'ES256K', kid: keyIdValue });
22
+ // Parse JWS (format: "header.payload.signature")
23
+ const [protectedHeader, _payload, signature] = jws.split('.');
24
+ if (!protectedHeader || !signature) {
25
+ throw new Error('Invalid JWS format');
26
+ }
27
+ return {
28
+ ...payload,
29
+ signatures: [
30
+ {
31
+ protected: protectedHeader,
32
+ signature,
33
+ },
34
+ ],
35
+ };
36
+ }
37
+ //# sourceMappingURL=signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/did/signing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAYnC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAU,EACV,GAAW,EACX,UAAkB,EAClB,KAAc;IAEd,mCAAmC;IACnC,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE7D,uBAAuB;IACvB,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,KAAK,IAAI,GAAG,GAAG,aAAa,CAAC;IAEhD,aAAa;IACb,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAEjF,iDAAiD;IACjD,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9D,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE;YACV;gBACE,SAAS,EAAE,eAAe;gBAC1B,SAAS;aACV;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * DID Types and Interfaces
3
+ * Extensible design for multiple DID methods (did:web, did:ethr)
4
+ * @module did/types
5
+ */
6
+ import type { Signer } from 'did-jwt';
7
+ /**
8
+ * JSON Web Key (minimal definition for Node.js)
9
+ * @see https://datatracker.ietf.org/doc/html/rfc7517
10
+ */
11
+ export interface JsonWebKey {
12
+ /** Key type (e.g., "EC", "RSA") */
13
+ kty?: string;
14
+ /** Curve name for EC keys (e.g., "secp256k1") */
15
+ crv?: string;
16
+ /** X coordinate for EC keys (base64url encoded) */
17
+ x?: string;
18
+ /** Y coordinate for EC keys (base64url encoded) */
19
+ y?: string;
20
+ /** Private key for EC keys (base64url encoded) */
21
+ d?: string;
22
+ /** Modulus for RSA keys */
23
+ n?: string;
24
+ /** Exponent for RSA keys */
25
+ e?: string;
26
+ /** Key ID */
27
+ kid?: string;
28
+ /** Public key use (e.g., "sig", "enc") */
29
+ use?: string;
30
+ /** Algorithm (e.g., "ES256K") */
31
+ alg?: string;
32
+ }
33
+ /**
34
+ * Verification Method in DID Document
35
+ * @see https://www.w3.org/TR/did-core/#verification-methods
36
+ */
37
+ export interface VerificationMethod {
38
+ /** Verification method ID (e.g., "did:web:example.com#key-1") */
39
+ id: string;
40
+ /** Type of verification method (e.g., "JsonWebKey2020") */
41
+ type: string;
42
+ /** DID of the controller */
43
+ controller: string;
44
+ /** Public key in JWK format */
45
+ publicKeyJwk?: JsonWebKey;
46
+ /** Public key in multibase format */
47
+ publicKeyMultibase?: string;
48
+ }
49
+ /**
50
+ * Service Endpoint in DID Document
51
+ * Used for self-declaration of communication endpoints
52
+ * @see https://www.w3.org/TR/did-core/#services
53
+ */
54
+ export interface ServiceEndpoint {
55
+ /** Service ID (e.g., "did:web:example.com#agent-card") */
56
+ id: string;
57
+ /** Service type (e.g., "A2AAgentCard") */
58
+ type: string;
59
+ /** Service endpoint URL or configuration */
60
+ serviceEndpoint: string | string[] | Record<string, unknown>;
61
+ }
62
+ /**
63
+ * DID Document (W3C DID Core compliant)
64
+ * @see https://www.w3.org/TR/did-core/#core-properties
65
+ */
66
+ export interface DIDDocument {
67
+ /** JSON-LD context */
68
+ '@context': string | string[];
69
+ /** The DID subject */
70
+ id: string;
71
+ /** Controller DID(s) */
72
+ controller?: string | string[];
73
+ /** Verification methods */
74
+ verificationMethod?: VerificationMethod[];
75
+ /** Authentication verification methods */
76
+ authentication?: (string | VerificationMethod)[];
77
+ /** Assertion verification methods */
78
+ assertionMethod?: (string | VerificationMethod)[];
79
+ /** Key agreement verification methods */
80
+ keyAgreement?: (string | VerificationMethod)[];
81
+ /** Service endpoints */
82
+ service?: ServiceEndpoint[];
83
+ }
84
+ /**
85
+ * Options for creating a new DID
86
+ */
87
+ export interface DIDCreateOptions {
88
+ /** Domain for did:web (e.g., "example.com" or "localhost:3001") */
89
+ domain?: string;
90
+ /** Path segments for did:web (e.g., ['agents', 'agent-a']) */
91
+ path?: string[];
92
+ /** Controller DID (e.g., a Human's DID that controls this Agent) */
93
+ controller?: string;
94
+ /** Service endpoints to include in the DID Document */
95
+ services?: ServiceEndpoint[];
96
+ }
97
+ /**
98
+ * Result of creating a new DID identity
99
+ * Contains everything needed to use the DID for signing and verification
100
+ */
101
+ export interface DIDIdentity {
102
+ /** The DID string (e.g., "did:web:example.com:agents:bot-1") */
103
+ did: string;
104
+ /** Key ID for signing (e.g., "did:web:example.com:agents:bot-1#key-1") */
105
+ keyId: string;
106
+ /** Signer function for creating JWS/JWT signatures */
107
+ signer: Signer;
108
+ /**
109
+ * The DID Document (optional)
110
+ * - did:web: Available immediately (locally generated for HTTP serving)
111
+ * - did:ethr: Not available at creation time (resolve via resolveDID() when needed)
112
+ */
113
+ document?: DIDDocument;
114
+ /** Private key bytes (for storage/recovery) */
115
+ privateKey: Uint8Array;
116
+ }
117
+ /**
118
+ * DID Resolution Result
119
+ * @see https://www.w3.org/TR/did-core/#did-resolution
120
+ */
121
+ export interface DIDResolutionResult {
122
+ /** The resolved DID Document, or null if resolution failed */
123
+ didDocument: DIDDocument | null;
124
+ /** Metadata about the DID Document */
125
+ didDocumentMetadata: Record<string, unknown>;
126
+ /** Metadata about the resolution process */
127
+ didResolutionMetadata: {
128
+ /** Error code if resolution failed */
129
+ error?: string;
130
+ /** Error message */
131
+ message?: string;
132
+ };
133
+ }
134
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/did/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/did/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Core package entry point
3
+ * Exports DID-related types, providers, resolvers, and helper utilities
4
+ * for creating and managing decentralized identities
5
+ */
6
+ export * from './did/types.js';
7
+ export * from './did/config-types.js';
8
+ export * from './did/resolver.js';
9
+ export * from './did/factory.js';
10
+ export * from './did/service.js';
11
+ export * from './did/service-loader.js';
12
+ export * from './did/signing.js';
13
+ export * from './did/document.js';
14
+ export * from './a2a/index.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Core package entry point
3
+ * Exports DID-related types, providers, resolvers, and helper utilities
4
+ * for creating and managing decentralized identities
5
+ */
6
+ // DID module
7
+ export * from './did/types.js';
8
+ export * from './did/config-types.js';
9
+ export * from './did/resolver.js';
10
+ export * from './did/factory.js';
11
+ export * from './did/service.js';
12
+ export * from './did/service-loader.js';
13
+ export * from './did/signing.js';
14
+ export * from './did/document.js';
15
+ // A2A integration (DID-based signing and verification)
16
+ export * from './a2a/index.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,uDAAuD;AACvD,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Signed payload in JWS format.
3
+ * @typeParam T - Payload type
4
+ */
5
+ export interface SignedPayload<T = Record<string, unknown>> {
6
+ /** JWS compact serialization */
7
+ jws: string;
8
+ /** Original payload */
9
+ payload: T;
10
+ }
11
+ /**
12
+ * Verification result.
13
+ * @typeParam T - Payload type
14
+ */
15
+ export interface VerificationResult<T = Record<string, unknown>> {
16
+ /** Whether the signature is valid */
17
+ verified: boolean;
18
+ /** Issuer DID (empty if failed) */
19
+ issuer: string;
20
+ /** Verified payload (null if failed) */
21
+ payload: T | null;
22
+ /** Error message (if failed) */
23
+ error?: string;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxD,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,OAAO,EAAE,CAAC,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,qCAAqC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "a2a-did",
3
+ "version": "0.1.0",
4
+ "description": "DID-based authentication for A2A Protocol - Sign and verify agent messages with did:web and did:ethr",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "sideEffects": false,
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "engines": {
16
+ "node": ">=22.0.0"
17
+ },
18
+ "license": "MIT",
19
+ "author": "humuhimi",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/humuhimi/a2a-did.git"
23
+ },
24
+ "homepage": "https://github.com/humuhimi/a2a-did#readme",
25
+ "bugs": {
26
+ "url": "https://github.com/humuhimi/a2a-did/issues"
27
+ },
28
+ "keywords": [
29
+ "a2a",
30
+ "did",
31
+ "agent",
32
+ "authentication",
33
+ "decentralized-identity",
34
+ "did-web",
35
+ "did-ethr",
36
+ "jws",
37
+ "ai-agent"
38
+ ],
39
+ "files": [
40
+ "dist",
41
+ "README.md",
42
+ "LICENSE"
43
+ ],
44
+ "dependencies": {
45
+ "@helia/verified-fetch": "^5.1.1",
46
+ "@noble/secp256k1": "^3.0.0",
47
+ "did-jwt": "^8.0.18",
48
+ "did-resolver": "^4.1.0",
49
+ "ethers": "^6.16.0",
50
+ "ethr-did": "^3.0.38",
51
+ "ethr-did-resolver": "^11.0.5",
52
+ "multiformats": "^13.4.2",
53
+ "uint8arrays": "^5.1.0",
54
+ "web-did-resolver": "^2.0.32"
55
+ },
56
+ "devDependencies": {
57
+ "@types/node": "^25.0.3",
58
+ "@vitest/coverage-v8": "^4.0.16",
59
+ "tsx": "^4.21.0",
60
+ "typescript": "^5.9.3",
61
+ "vitest": "^4.0.16"
62
+ },
63
+ "scripts": {
64
+ "build": "tsc",
65
+ "dev": "tsc --watch",
66
+ "test": "vitest run",
67
+ "test:watch": "vitest",
68
+ "test:coverage": "vitest run --coverage"
69
+ }
70
+ }