@enbox/dids 0.0.3 → 0.0.5

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 (77) hide show
  1. package/dist/browser.mjs +1 -1
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/index.js +2 -0
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/esm/methods/did-dht-dns.js +455 -0
  6. package/dist/esm/methods/did-dht-dns.js.map +1 -0
  7. package/dist/esm/methods/did-dht-pkarr.js +168 -0
  8. package/dist/esm/methods/did-dht-pkarr.js.map +1 -0
  9. package/dist/esm/methods/did-dht-types.js +116 -0
  10. package/dist/esm/methods/did-dht-types.js.map +1 -0
  11. package/dist/esm/methods/did-dht-utils.js +143 -0
  12. package/dist/esm/methods/did-dht-utils.js.map +1 -0
  13. package/dist/esm/methods/did-dht.js +65 -842
  14. package/dist/esm/methods/did-dht.js.map +1 -1
  15. package/dist/esm/methods/did-ion-utils.js +161 -0
  16. package/dist/esm/methods/did-ion-utils.js.map +1 -0
  17. package/dist/esm/methods/did-ion.js +4 -151
  18. package/dist/esm/methods/did-ion.js.map +1 -1
  19. package/dist/esm/methods/did-jwk.js.map +1 -1
  20. package/dist/esm/methods/did-key-utils.js +235 -0
  21. package/dist/esm/methods/did-key-utils.js.map +1 -0
  22. package/dist/esm/methods/did-key.js +6 -222
  23. package/dist/esm/methods/did-key.js.map +1 -1
  24. package/dist/esm/resolver/resolver-cache-memory.js +77 -0
  25. package/dist/esm/resolver/resolver-cache-memory.js.map +1 -0
  26. package/dist/esm/utils.js +25 -0
  27. package/dist/esm/utils.js.map +1 -1
  28. package/dist/types/bearer-did.d.ts +4 -4
  29. package/dist/types/bearer-did.d.ts.map +1 -1
  30. package/dist/types/index.d.ts +2 -0
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/types/methods/did-dht-dns.d.ts +114 -0
  33. package/dist/types/methods/did-dht-dns.d.ts.map +1 -0
  34. package/dist/types/methods/did-dht-pkarr.d.ts +56 -0
  35. package/dist/types/methods/did-dht-pkarr.d.ts.map +1 -0
  36. package/dist/types/methods/did-dht-types.d.ts +286 -0
  37. package/dist/types/methods/did-dht-types.d.ts.map +1 -0
  38. package/dist/types/methods/did-dht-utils.d.ts +54 -0
  39. package/dist/types/methods/did-dht-utils.d.ts.map +1 -0
  40. package/dist/types/methods/did-dht.d.ts +45 -460
  41. package/dist/types/methods/did-dht.d.ts.map +1 -1
  42. package/dist/types/methods/did-ion-utils.d.ts +86 -0
  43. package/dist/types/methods/did-ion-utils.d.ts.map +1 -0
  44. package/dist/types/methods/did-ion.d.ts +4 -84
  45. package/dist/types/methods/did-ion.d.ts.map +1 -1
  46. package/dist/types/methods/did-jwk.d.ts +4 -4
  47. package/dist/types/methods/did-jwk.d.ts.map +1 -1
  48. package/dist/types/methods/did-key-utils.d.ts +138 -0
  49. package/dist/types/methods/did-key-utils.d.ts.map +1 -0
  50. package/dist/types/methods/did-key.d.ts +6 -127
  51. package/dist/types/methods/did-key.d.ts.map +1 -1
  52. package/dist/types/methods/did-method.d.ts +3 -3
  53. package/dist/types/methods/did-method.d.ts.map +1 -1
  54. package/dist/types/resolver/resolver-cache-memory.d.ts +58 -0
  55. package/dist/types/resolver/resolver-cache-memory.d.ts.map +1 -0
  56. package/dist/types/utils.d.ts +19 -0
  57. package/dist/types/utils.d.ts.map +1 -1
  58. package/dist/utils.js +1 -1
  59. package/dist/utils.js.map +4 -4
  60. package/package.json +11 -13
  61. package/src/bearer-did.ts +4 -4
  62. package/src/index.ts +2 -0
  63. package/src/methods/did-dht-dns.ts +516 -0
  64. package/src/methods/did-dht-pkarr.ts +192 -0
  65. package/src/methods/did-dht-types.ts +316 -0
  66. package/src/methods/did-dht-utils.ts +157 -0
  67. package/src/methods/did-dht.ts +125 -1131
  68. package/src/methods/did-ion-utils.ts +186 -0
  69. package/src/methods/did-ion.ts +16 -185
  70. package/src/methods/did-jwk.ts +4 -4
  71. package/src/methods/did-key-utils.ts +258 -0
  72. package/src/methods/did-key.ts +20 -272
  73. package/src/methods/did-method.ts +3 -3
  74. package/src/resolver/resolver-cache-memory.ts +84 -0
  75. package/src/utils.ts +27 -0
  76. package/dist/browser.js +0 -73
  77. package/dist/browser.js.map +0 -7
@@ -1,293 +1,15 @@
1
- import type { AsymmetricKeyConverter, CryptoApi, Jwk, KeyIdentifier, KeyImporterExporter, KmsExportKeyParams, KmsImportKeyParams, Signer } from '@enbox/crypto';
1
+ import type { AsymmetricKeyConverter, Jwk, KeyIdentifier, KeyImporterExporter, KeyManager, KmsExportKeyParams, KmsImportKeyParams, Signer } from '@enbox/crypto';
2
2
  import type { Packet, TxtData } from '@dnsquery/dns-packet';
3
- import type { DidCreateOptions, DidCreateVerificationMethod, DidRegistrationResult } from './did-method.js';
4
- import type { DidDocument, DidResolutionOptions, DidResolutionResult, DidService, DidVerificationMethod } from '../types/did-core.js';
5
- import type { DidMetadata, PortableDid } from '../types/portable-did.js';
3
+ import type { PortableDid } from '../types/portable-did.js';
4
+ import type { DidRegistrationResult } from './did-method.js';
5
+ import type { DidDocument, DidResolutionOptions, DidResolutionResult, DidVerificationMethod } from '../types/did-core.js';
6
6
  import { BearerDid } from '../bearer-did.js';
7
7
  import { DidMethod } from './did-method.js';
8
- /**
9
- * Represents a BEP44 message, which is used for storing and retrieving data in the Mainline DHT
10
- * network.
11
- *
12
- * A BEP44 message is used primarily in the context of the DID DHT method for publishing and
13
- * resolving DID documents in the DHT network. This type encapsulates the data structure required
14
- * for such operations in accordance with BEP44.
15
- *
16
- * @see {@link https://www.bittorrent.org/beps/bep_0044.html | BEP44}
17
- */
18
- export interface Bep44Message {
19
- /**
20
- * The public key bytes of the Identity Key, which serves as the identifier in the DHT network for
21
- * the corresponding BEP44 message.
22
- */
23
- k: Uint8Array;
24
- /**
25
- * The sequence number of the message, used to ensure the latest version of the data is retrieved
26
- * and updated. It's a monotonically increasing number.
27
- */
28
- seq: number;
29
- /**
30
- * The signature of the message, ensuring the authenticity and integrity of the data. It's
31
- * computed over the bencoded sequence number and value.
32
- */
33
- sig: Uint8Array;
34
- /**
35
- * The actual data being stored or retrieved from the DHT network, typically encoded in a format
36
- * suitable for DNS packet representation of a DID Document.
37
- */
38
- v: Uint8Array;
39
- }
40
- /**
41
- * Options for creating a Decentralized Identifier (DID) using the DID DHT method.
42
- */
43
- export interface DidDhtCreateOptions<TKms> extends DidCreateOptions<TKms> {
44
- /**
45
- * Optionally specify that the DID Subject is also identified by one or more other DIDs or URIs.
46
- *
47
- * A DID subject can have multiple identifiers for different purposes, or at different times.
48
- * The assertion that two or more DIDs (or other types of URI) refer to the same DID subject can
49
- * be made using the `alsoKnownAs` property.
50
- *
51
- * @see {@link https://www.w3.org/TR/did-core/#also-known-as | DID Core Specification, § Also Known As}
52
- *
53
- * @example
54
- * ```ts
55
- * const did = await DidDht.create({
56
- * options: {
57
- * alsoKnownAs: 'did:example:123'
58
- * };
59
- * ```
60
- */
61
- alsoKnownAs?: string[];
62
- /**
63
- * Optionally specify which DID (or DIDs) is authorized to make changes to the DID document.
64
- *
65
- * A DID controller is an entity that is authorized to make changes to a DID document. Typically,
66
- * only the DID Subject (i.e., the value of `id` property in the DID document) is authoritative.
67
- * However, another DID (or DIDs) can be specified as the DID controller, and when doing so, any
68
- * verification methods contained in the DID document for the other DID should be accepted as
69
- * authoritative. In other words, proofs created by the controller DID should be considered
70
- * equivalent to proofs created by the DID Subject.
71
- *
72
- * @see {@link https://www.w3.org/TR/did-core/#did-controller | DID Core Specification, § DID Controller}
73
- *
74
- * @example
75
- * ```ts
76
- * const did = await DidDht.create({
77
- * options: {
78
- * controller: 'did:example:123'
79
- * };
80
- * ```
81
- */
82
- controllers?: string | string[];
83
- /**
84
- * Optional. The URI of a server involved in executing DID method operations. In the context of
85
- * DID creation, the endpoint is expected to be a DID DHT Gateway or Pkarr relay. If not
86
- * specified, a default gateway node is used.
87
- */
88
- gatewayUri?: string;
89
- /**
90
- * Optional. Determines whether the created DID should be published to the DHT network.
91
- *
92
- * If set to `true` or omitted, the DID is publicly discoverable. If `false`, the DID is not
93
- * published and cannot be resolved by others. By default, newly created DIDs are published.
94
- *
95
- * @see {@link https://did-dht.com | DID DHT Method Specification}
96
- *
97
- * @example
98
- * ```ts
99
- * const did = await DidDht.create({
100
- * options: {
101
- * publish: false
102
- * };
103
- * ```
104
- */
105
- publish?: boolean;
106
- /**
107
- * Optional. An array of service endpoints associated with the DID.
108
- *
109
- * Services are used in DID documents to express ways of communicating with the DID subject or
110
- * associated entities. A service can be any type of service the DID subject wants to advertise,
111
- * including decentralized identity management services for further discovery, authentication,
112
- * authorization, or interaction.
113
- *
114
- * @see {@link https://www.w3.org/TR/did-core/#services | DID Core Specification, § Services}
115
- *
116
- * @example
117
- * ```ts
118
- * const did = await DidDht.create({
119
- * options: {
120
- * services: [
121
- * {
122
- * id: 'did:dht:i9xkp8ddcbcg8jwq54ox699wuzxyifsqx4jru45zodqu453ksz6y#dwn',
123
- * type: 'DecentralizedWebNode',
124
- * serviceEndpoint: ['https://example.com/dwn1', 'https://example/dwn2']
125
- * }
126
- * ]
127
- * };
128
- * ```
129
- */
130
- services?: DidService[];
131
- /**
132
- * Optionally specify one or more registered DID DHT types to make the DID discovereable.
133
- *
134
- * Type indexing is an OPTIONAL feature that enables DIDs to become discoverable. DIDs that wish
135
- * to be discoverable and resolveable by type can include one or more types when publishing their
136
- * DID document to a DID DHT Gateway.
137
- *
138
- * The registered DID types are published in the {@link https://did-dht.com/registry/index.html#indexed-types | DID DHT Registry}.
139
- */
140
- types?: (DidDhtRegisteredDidType | keyof typeof DidDhtRegisteredDidType)[];
141
- /**
142
- * Optional. An array of verification methods to be included in the DID document.
143
- *
144
- * By default, a newly created DID DHT document will contain a single Ed25519 verification method,
145
- * also known as the {@link https://did-dht.com/#term:identity-key | Identity Key}. Additional
146
- * verification methods can be added to the DID document using the `verificationMethods` property.
147
- *
148
- * @see {@link https://www.w3.org/TR/did-core/#verification-methods | DID Core Specification, § Verification Methods}
149
- *
150
- * @example
151
- * ```ts
152
- * const did = await DidDht.create({
153
- * options: {
154
- * verificationMethods: [
155
- * {
156
- * algorithm: 'Ed25519',
157
- * purposes: ['authentication', 'assertionMethod']
158
- * },
159
- * {
160
- * algorithm: 'Ed25519',
161
- * id: 'dwn-sig',
162
- * purposes: ['authentication', 'assertionMethod']
163
- * }
164
- * ]
165
- * };
166
- * ```
167
- */
168
- verificationMethods?: DidCreateVerificationMethod<TKms>[];
169
- }
170
- /**
171
- * Proof to used to construct the `_prv._did.` DNS record as described in https://did-dht.com/#rotation to link a DID to a previous DID.
172
- */
173
- export type PreviousDidProof = {
174
- /** The previous DID. */
175
- previousDid: string;
176
- /** The signature signed using the private Identity Key of the previous DID in Base64URL format. */
177
- signature: string;
178
- };
179
- /**
180
- * Represents an optional extension to a DID Document’s DNS packet representation exposed as a
181
- * type index.
182
- *
183
- * Type indexing is an OPTIONAL feature that enables DIDs to become discoverable. DIDs that wish to
184
- * be discoverable and resolveable by type can include one or more types when publishing their DID
185
- * document to a DID DHT Gateway.
186
- *
187
- * The registered DID types are published in the {@link https://did-dht.com/registry/index.html#indexed-types | DID DHT Registry}.
188
- */
189
- export declare enum DidDhtRegisteredDidType {
190
- /**
191
- * Type 0 is reserved for DIDs that do not wish to associate themselves with a specific type but
192
- * wish to make themselves discoverable.
193
- */
194
- Discoverable = 0,
195
- /**
196
- * Organization
197
- * @see {@link https://schema.org/Organization | schema definition}
198
- */
199
- Organization = 1,
200
- /**
201
- * Government Organization
202
- * @see {@link https://schema.org/GovernmentOrganization | schema definition}
203
- */
204
- Government = 2,
205
- /**
206
- * Corporation
207
- * @see {@link https://schema.org/Corporation | schema definition}
208
- */
209
- Corporation = 3,
210
- /**
211
- * Corporation
212
- * @see {@link https://schema.org/Corporation | schema definition}
213
- */
214
- LocalBusiness = 4,
215
- /**
216
- * Software Package
217
- * @see {@link https://schema.org/SoftwareSourceCode | schema definition}
218
- */
219
- SoftwarePackage = 5,
220
- /**
221
- * Web App
222
- * @see {@link https://schema.org/WebApplication | schema definition}
223
- */
224
- WebApp = 6,
225
- /**
226
- * Financial Institution
227
- * @see {@link https://schema.org/FinancialService | schema definition}
228
- */
229
- FinancialInstitution = 7
230
- }
231
- /**
232
- * Enumerates the types of keys that can be used in a DID DHT document.
233
- *
234
- * The DID DHT method supports various cryptographic key types. These key types are essential for
235
- * the creation and management of DIDs and their associated cryptographic operations like signing
236
- * and encryption. The registered key types are published in the DID DHT Registry and each is
237
- * assigned a unique numerical value for use by client and gateway implementations.
238
- *
239
- * The registered key types are published in the {@link https://did-dht.com/registry/index.html#key-type-index | DID DHT Registry}.
240
- */
241
- export declare enum DidDhtRegisteredKeyType {
242
- /**
243
- * Ed25519: A public-key signature system using the EdDSA (Edwards-curve Digital Signature
244
- * Algorithm) and Curve25519.
245
- */
246
- Ed25519 = 0,
247
- /**
248
- * secp256k1: A cryptographic curve used for digital signatures in a range of decentralized
249
- * systems.
250
- */
251
- secp256k1 = 1,
252
- /**
253
- * secp256r1: Also known as P-256 or prime256v1, this curve is used for cryptographic operations
254
- * and is widely supported in various cryptographic libraries and standards.
255
- */
256
- secp256r1 = 2,
257
- /**
258
- * X25519: A public key used for Diffie-Hellman key exchange using Curve25519.
259
- */
260
- X25519 = 3
261
- }
262
- /**
263
- * Maps {@link https://www.w3.org/TR/did-core/#verification-relationships | DID Core Verification Relationship}
264
- * values to the corresponding record name in the DNS packet representation of a DHT DID document.
265
- */
266
- export declare enum DidDhtVerificationRelationship {
267
- /**
268
- * Specifies how the DID subject is expected to be authenticated.
269
- */
270
- authentication = "auth",
271
- /**
272
- * Specifies how the DID subject is expected to express claims, such as for issuing Verifiable
273
- * Credentials.
274
- */
275
- assertionMethod = "asm",
276
- /**
277
- * Specifies a mechanism used by the DID subject to delegate a cryptographic capability to another
278
- * party
279
- */
280
- capabilityDelegation = "del",
281
- /**
282
- * Specifies a verification method used by the DID subject to invoke a cryptographic capability.
283
- */
284
- capabilityInvocation = "inv",
285
- /**
286
- * Specifies how an entity can generate encryption material to communicate confidentially with the
287
- * DID subject.
288
- */
289
- keyAgreement = "agm"
290
- }
8
+ export * from './did-dht-types.js';
9
+ export { pkarrGet, pkarrPut, createBep44PutMessage, parseBep44GetMessage, } from './did-dht-pkarr.js';
10
+ export { AlgorithmToKeyTypeMap, chunkDataIfNeeded, createTxtRecord, DID_DHT_SPECIFICATION_VERSION, DNS_RECORD_TTL, fromDnsPacket, KeyTypeToDefaultAlgorithmMap, parseTxtDataToObject, parseTxtDataToString, PROPERTY_SEPARATOR, toDnsPacket, VALUE_SEPARATOR, } from './did-dht-dns.js';
11
+ export { identifierToIdentityKey, identifierToIdentityKeyBytes, identityKeyToIdentifier, keyConverter, validatePreviousDidProof, } from './did-dht-utils.js';
12
+ import type { Bep44Message, DidDhtCreateOptions, PreviousDidProof } from './did-dht-types.js';
291
13
  /**
292
14
  * The `DidDht` class provides an implementation of the `did:dht` DID method.
293
15
  *
@@ -371,7 +93,7 @@ export declare class DidDht extends DidMethod {
371
93
  * @param params.options - Optional parameters that can be specified when creating a new DID.
372
94
  * @returns A Promise resolving to a {@link BearerDid} object representing the new DID.
373
95
  */
374
- static create<TKms extends CryptoApi | undefined = undefined>({ keyManager, options }?: {
96
+ static create<TKms extends KeyManager | undefined = undefined>({ keyManager, options }?: {
375
97
  keyManager?: TKms;
376
98
  options?: DidDhtCreateOptions<TKms>;
377
99
  }): Promise<BearerDid>;
@@ -402,7 +124,7 @@ export declare class DidDht extends DidMethod {
402
124
  * manager.
403
125
  */
404
126
  static import({ portableDid, keyManager }: {
405
- keyManager?: CryptoApi & KeyImporterExporter<KmsImportKeyParams, KeyIdentifier, KmsExportKeyParams>;
127
+ keyManager?: KeyManager & KeyImporterExporter<KmsImportKeyParams, KeyIdentifier, KmsExportKeyParams>;
406
128
  portableDid: PortableDid;
407
129
  }): Promise<BearerDid>;
408
130
  /**
@@ -423,33 +145,10 @@ export declare class DidDht extends DidMethod {
423
145
  /**
424
146
  * Publishes a DID to the DHT, making it publicly discoverable and resolvable.
425
147
  *
426
- * This method handles the publication of a DID Document associated with a `did:dht` DID to the
427
- * Mainline DHT network. The publication process involves storing the DID Document in Mainline DHT
428
- * via a Pkarr relay server.
429
- *
430
- * @remarks
431
- * - This method is typically invoked automatically during the creation of a new DID unless the
432
- * `publish` option is set to `false`.
433
- * - For existing, unpublished DIDs, it can be used to publish the DID Document to Mainline DHT.
434
- * - The method relies on the specified Pkarr relay server to interface with the DHT network.
435
- *
436
- * @example
437
- * ```ts
438
- * // Generate a new DID and keys but explicitly disable publishing.
439
- * const did = await DidDht.create({ options: { publish: false } });
440
- * // Publish the DID to the DHT.
441
- * const registrationResult = await DidDht.publish({ did });
442
- * // `registrationResult.didDocumentMetadata.published` is true if the DID was successfully published.
443
- * ```
444
- *
445
148
  * @param params - The parameters for the `publish` operation.
446
149
  * @param params.did - The `BearerDid` object representing the DID to be published.
447
- * @param params.gatewayUri - Optional. The URI of a server involved in executing DID method
448
- * operations. In the context of publishing, the endpoint is expected
449
- * to be a DID DHT Gateway or Pkarr Relay. If not specified, a default
450
- * gateway node is used.
451
- * @returns A promise that resolves to a {@link DidRegistrationResult} object that contains
452
- * the result of registering the DID with a DID DHT Gateway or Pkarr relay.
150
+ * @param params.gatewayUri - Optional. The URI of a DID DHT Gateway or Pkarr Relay.
151
+ * @returns A promise that resolves to a {@link DidRegistrationResult} object.
453
152
  */
454
153
  static publish({ did, gatewayUri }: {
455
154
  did: BearerDid;
@@ -458,25 +157,9 @@ export declare class DidDht extends DidMethod {
458
157
  /**
459
158
  * Resolves a `did:dht` identifier to its corresponding DID document.
460
159
  *
461
- * This method performs the resolution of a `did:dht` DID, retrieving its DID Document from the
462
- * Mainline DHT network. The process involves querying the DHT network via a Pkarr relay server to
463
- * retrieve the DID Document that corresponds to the given DID identifier.
464
- *
465
- * @remarks
466
- * - If a `gatewayUri` option is not specified, a default Pkarr relay is used to access the DHT
467
- * network.
468
- * - It decodes the DID identifier and retrieves the associated DID Document and metadata.
469
- * - In case of resolution failure, appropriate error information is returned.
470
- *
471
- * @example
472
- * ```ts
473
- * const resolutionResult = await DidDht.resolve('did:dht:example');
474
- * ```
475
- *
476
160
  * @param didUri - The DID to be resolved.
477
161
  * @param options - Optional parameters for resolving the DID. Unused by this DID method.
478
- * @returns A Promise resolving to a {@link DidResolutionResult} object representing the result of
479
- * the resolution.
162
+ * @returns A Promise resolving to a {@link DidResolutionResult} object.
480
163
  */
481
164
  static resolve(didUri: string, options?: DidResolutionOptions): Promise<DidResolutionResult>;
482
165
  }
@@ -485,7 +168,8 @@ export declare class DidDht extends DidMethod {
485
168
  * Mainline DHT in support of DID DHT method create, resolve, update, and deactivate operations.
486
169
  *
487
170
  * This class includes methods for retrieving and publishing DID documents to and from the DHT,
488
- * using DNS packet encoding and DID DHT Gateway or Pkarr Relay servers.
171
+ * using DNS packet encoding and DID DHT Gateway or Pkarr Relay servers. Methods delegate to
172
+ * standalone functions extracted into focused modules.
489
173
  */
490
174
  export declare class DidDhtDocument {
491
175
  /**
@@ -494,8 +178,7 @@ export declare class DidDhtDocument {
494
178
  * @param params - The parameters for the get operation.
495
179
  * @param params.didUri - The DID URI containing the Identity Key.
496
180
  * @param params.gatewayUri - The DID DHT Gateway or Pkarr Relay URI.
497
- * @returns A Promise resolving to a {@link DidResolutionResult} object containing the DID
498
- * document and its metadata.
181
+ * @returns A Promise resolving to a {@link DidResolutionResult} object.
499
182
  */
500
183
  static get({ didUri, gatewayUri }: {
501
184
  didUri: string;
@@ -507,65 +190,28 @@ export declare class DidDhtDocument {
507
190
  * @param params - The parameters to use when publishing the DID document to the DHT network.
508
191
  * @param params.did - The DID object whose DID document will be published.
509
192
  * @param params.gatewayUri - The DID DHT Gateway or Pkarr Relay URI.
510
- * @returns A promise that resolves to a {@link DidRegistrationResult} object that contains
511
- * the result of registering the DID with a DID DHT Gateway or Pkarr relay.
193
+ * @returns A promise that resolves to a {@link DidRegistrationResult} object.
512
194
  */
513
195
  static put({ did, gatewayUri }: {
514
196
  did: BearerDid;
515
197
  gatewayUri: string;
516
198
  }): Promise<DidRegistrationResult>;
517
- /**
518
- * Retrieves a signed BEP44 message from a DID DHT Gateway or Pkarr Relay server.
519
- *
520
- * @see {@link https://github.com/Nuhvi/pkarr/blob/main/design/relays.md | Pkarr Relay design}
521
- *
522
- * @param params
523
- * @param params.gatewayUri - The DID DHT Gateway or Pkarr Relay URI.
524
- * @param params.publicKeyBytes - The public key bytes of the Identity Key, z-base-32 encoded.
525
- * @returns A promise resolving to a BEP44 message containing the signed DNS packet.
526
- */
199
+ /** Delegates to {@link pkarrGet} from `did-dht-pkarr.js`. */
527
200
  private static pkarrGet;
528
- /**
529
- * Publishes a signed BEP44 message to a DID DHT Gateway or Pkarr Relay server.
530
- *
531
- * @see {@link https://github.com/Nuhvi/pkarr/blob/main/design/relays.md | Pkarr Relay design}
532
- *
533
- * @param params - The parameters to use when publishing a signed BEP44 message to a Pkarr relay server.
534
- * @param params.gatewayUri - The DID DHT Gateway or Pkarr Relay URI.
535
- * @param params.bep44Message - The BEP44 message to be published, containing the signed DNS packet.
536
- * @returns A promise resolving to `true` if the message was successfully published, otherwise `false`.
537
- */
201
+ /** Delegates to {@link pkarrPut} from `did-dht-pkarr.js`. */
538
202
  private static pkarrPut;
539
- /**
540
- * Converts a DNS packet to a DID document according to the DID DHT specification.
541
- *
542
- * @see {@link https://did-dht.com/#dids-as-dns-records | DID DHT Specification, § DIDs as DNS Records}
543
- *
544
- * @param params - The parameters to use when converting a DNS packet to a DID document.
545
- * @param params.didUri - The DID URI of the DID document.
546
- * @param params.dnsPacket - The DNS packet to convert to a DID document.
547
- * @returns A Promise resolving to a {@link DidResolutionResult} object containing the DID
548
- * document and its metadata.
549
- */
550
- static fromDnsPacket({ didUri, dnsPacket }: {
203
+ /** Delegates to {@link fromDnsPacket} from `did-dht-dns.js`. */
204
+ static fromDnsPacket(params: {
551
205
  didUri: string;
552
206
  dnsPacket: Packet;
553
207
  }): Promise<DidResolutionResult>;
554
- /**
555
- * Converts a DID document to a DNS packet according to the DID DHT specification.
556
- *
557
- * @see {@link https://did-dht.com/#dids-as-dns-records | DID DHT Specification, § DIDs as DNS Records}
558
- *
559
- * @param params - The parameters to use when converting a DID document to a DNS packet.
560
- * @param params.didDocument - The DID document to convert to a DNS packet.
561
- * @param params.didMetadata - The DID metadata to include in the DNS packet.
562
- * @param params.authoritativeGatewayUris - The URIs of the Authoritative Gateways to generate NS records from.
563
- * @param params.previousDidProof - The signature proof that this DID is linked to the given previous DID.
564
- * @returns A promise that resolves to a DNS packet.
565
- */
566
- static toDnsPacket({ didDocument, didMetadata, authoritativeGatewayUris, previousDidProof }: {
208
+ /** Delegates to {@link toDnsPacket} from `did-dht-dns.js`. */
209
+ static toDnsPacket(params: {
567
210
  didDocument: DidDocument;
568
- didMetadata: DidMetadata;
211
+ didMetadata: {
212
+ published?: boolean;
213
+ types?: (number | string)[];
214
+ };
569
215
  authoritativeGatewayUris?: string[];
570
216
  previousDidProof?: PreviousDidProof;
571
217
  }): Promise<Packet>;
@@ -579,104 +225,43 @@ export declare class DidDhtDocument {
579
225
  }
580
226
  /**
581
227
  * The `DidDhtUtils` class provides utility functions to support operations in the DID DHT method.
582
- * This includes functions for creating and parsing BEP44 messages, handling identity keys, and
583
- * converting between different formats and representations.
228
+ * Methods delegate to standalone functions extracted into focused modules for backward compatibility.
584
229
  */
585
230
  export declare class DidDhtUtils {
586
- /**
587
- * Creates a BEP44 put message, which is used to publish a DID document to the DHT network.
588
- *
589
- * @param params - The parameters to use when creating the BEP44 put message
590
- * @param params.dnsPacket - The DNS packet to encode in the BEP44 message.
591
- * @param params.publicKeyBytes - The public key bytes of the Identity Key.
592
- * @param params.signer - Signer that can sign and verify data using the Identity Key.
593
- * @returns A promise that resolves to a BEP44 put message.
594
- */
595
- static createBep44PutMessage({ dnsPacket, publicKeyBytes, signer }: {
231
+ /** Delegates to {@link createBep44PutMessage} from `did-dht-pkarr.js`. */
232
+ static createBep44PutMessage(params: {
596
233
  dnsPacket: Packet;
597
234
  publicKeyBytes: Uint8Array;
598
235
  signer: Signer;
599
236
  }): Promise<Bep44Message>;
600
- /**
601
- * Converts a DID URI to a JSON Web Key (JWK) representing the Identity Key.
602
- *
603
- * @param params - The parameters to use for the conversion.
604
- * @param params.didUri - The DID URI containing the Identity Key.
605
- * @returns A promise that resolves to a JWK representing the Identity Key.
606
- */
607
- static identifierToIdentityKey({ didUri }: {
237
+ /** Delegates to {@link identifierToIdentityKey} from `did-dht-utils.js`. */
238
+ static identifierToIdentityKey(params: {
608
239
  didUri: string;
609
240
  }): Promise<Jwk>;
610
- /**
611
- * Converts a DID URI to the byte array representation of the Identity Key.
612
- *
613
- * @param params - The parameters to use for the conversion.
614
- * @param params.didUri - The DID URI containing the Identity Key.
615
- * @returns A byte array representation of the Identity Key.
616
- */
617
- static identifierToIdentityKeyBytes({ didUri }: {
241
+ /** Delegates to {@link identifierToIdentityKeyBytes} from `did-dht-utils.js`. */
242
+ static identifierToIdentityKeyBytes(params: {
618
243
  didUri: string;
619
244
  }): Uint8Array;
620
- /**
621
- * Encodes a DID DHT Identity Key into a DID identifier.
622
- *
623
- * This method first z-base-32 encodes the Identity Key. The resulting string is prefixed with
624
- * `did:dht:` to form the DID identifier.
625
- *
626
- * @param params - The parameters to use for the conversion.
627
- * @param params.identityKey The Identity Key from which the DID identifier is computed.
628
- * @returns A promise that resolves to a string containing the DID identifier.
629
- */
630
- static identityKeyToIdentifier({ identityKey }: {
245
+ /** Delegates to {@link identityKeyToIdentifier} from `did-dht-utils.js`. */
246
+ static identityKeyToIdentifier(params: {
631
247
  identityKey: Jwk;
632
248
  }): Promise<string>;
633
- /**
634
- * Returns the appropriate key converter for the specified cryptographic curve.
635
- *
636
- * @param curve - The cryptographic curve to use for the key conversion.
637
- * @returns An `AsymmetricKeyConverter` for the specified curve.
638
- */
249
+ /** Delegates to {@link keyConverter} from `did-dht-utils.js`. */
639
250
  static keyConverter(curve: string): AsymmetricKeyConverter;
640
- /**
641
- * Parses and verifies a BEP44 Get message, converting it to a DNS packet.
642
- *
643
- * @param params - The parameters to use when verifying and parsing the BEP44 Get response message.
644
- * @param params.bep44Message - The BEP44 message to verify and parse.
645
- * @returns A promise that resolves to a DNS packet.
646
- */
647
- static parseBep44GetMessage({ bep44Message }: {
251
+ /** Delegates to {@link parseBep44GetMessage} from `did-dht-pkarr.js`. */
252
+ static parseBep44GetMessage(params: {
648
253
  bep44Message: Bep44Message;
649
254
  }): Promise<Packet>;
650
- /**
651
- * Decodes and parses the data value of a DNS TXT record into a key-value object.
652
- *
653
- * @param txtData - The data value of a DNS TXT record.
654
- * @returns An object containing the key/value pairs of the TXT record data.
655
- */
255
+ /** Delegates to {@link parseTxtDataToObject} from `did-dht-dns.js`. */
656
256
  static parseTxtDataToObject(txtData: TxtData): Record<string, string>;
657
- /**
658
- * Decodes and parses the data value of a DNS TXT record into a string.
659
- *
660
- * @param txtData - The data value of a DNS TXT record.
661
- * @returns A string representation of the TXT record data.
662
- */
257
+ /** Delegates to {@link parseTxtDataToString} from `did-dht-dns.js`. */
663
258
  static parseTxtDataToString(txtData: TxtData): string;
664
- /**
665
- * Validates the proof of previous DID given.
666
- *
667
- * @param params - The parameters to validate the previous DID proof.
668
- * @param params.newDid - The new DID that the previous DID is linking to.
669
- * @param params.previousDidProof - The proof of the previous DID, containing the previous DID and signature signed by the previous DID.
670
- */
671
- static validatePreviousDidProof({ newDid, previousDidProof }: {
259
+ /** Delegates to {@link validatePreviousDidProof} from `did-dht-utils.js`. */
260
+ static validatePreviousDidProof(params: {
672
261
  newDid: string;
673
262
  previousDidProof: PreviousDidProof;
674
263
  }): Promise<void>;
675
- /**
676
- * Splits a string into chunks of length 255 if the string exceeds length 255.
677
- * @param data - The string to split into chunks.
678
- * @returns The original string if its length is less than or equal to 255, otherwise an array of chunked strings.
679
- */
264
+ /** Delegates to {@link chunkDataIfNeeded} from `did-dht-dns.js`. */
680
265
  static chunkDataIfNeeded(data: string): string | string[];
681
266
  }
682
267
  //# sourceMappingURL=did-dht.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"did-dht.d.ts","sourceRoot":"","sources":["../../../src/methods/did-dht.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did-dht.d.ts","sourceRoot":"","sources":["../../../src/methods/did-dht.ts"],"names":[],"mappings":"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"}