@enbox/dids 0.0.5 → 0.0.6

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.
package/dist/esm/utils.js CHANGED
@@ -305,9 +305,11 @@ export function isDidService(obj) {
305
305
  /**
306
306
  * Checks if a given object is a {@link DwnDidService}.
307
307
  *
308
- * A {@link DwnDidService} is defined as {@link DidService} object with a `type` of
309
- * "DecentralizedWebNode" and `enc` and `sig` properties, where both properties are either strings
310
- * or arrays of strings.
308
+ * A {@link DwnDidService} is defined as a {@link DidService} object with a `type` of
309
+ * `"DecentralizedWebNode"`. The `enc` and `sig` properties are optional they may be present
310
+ * on existing DID documents for backward compatibility, but are not required per the DWN
311
+ * specification. Encryption and signing keys are resolved from the DID document's verification
312
+ * methods, not from the service entry.
311
313
  *
312
314
  * @example
313
315
  * ```ts
@@ -319,33 +321,25 @@ export function isDidService(obj) {
319
321
  * type: 'JsonWebKey2020',
320
322
  * controller: 'did:example:123',
321
323
  * publicKeyJwk: { ... }
322
- * },
323
- * {
324
- * id: 'did:example:123#key-2',
325
- * type: 'JsonWebKey2020',
326
- * controller: 'did:example:123',
327
- * publicKeyJwk: { ... }
328
324
  * }
329
325
  * ],
330
326
  * service: [
331
327
  * {
332
328
  * id: 'did:example:123#dwn',
333
329
  * type: 'DecentralizedWebNode',
334
- * serviceEndpoint: 'https://enbox-dwn.fly.dev',
335
- * enc: 'did:example:123#key-1',
336
- * sig: 'did:example:123#key-2'
330
+ * serviceEndpoint: 'https://enbox-dwn.fly.dev'
337
331
  * }
338
332
  * ]
339
333
  * };
340
334
  *
341
- * if (isDwnService(didDocument.service[0])) {
335
+ * if (isDwnDidService(didDocument.service[0])) {
342
336
  * console.log('The object is a DwnDidService');
343
337
  * } else {
344
338
  * console.log('The object is not a DwnDidService');
345
339
  * }
346
340
  * ```
347
341
  *
348
- * @see {@link https://identity.foundation/decentralized-web-node/spec/ | Decentralized Web Node (DWN) Specification}
342
+ * @see {@link https://github.com/enboxorg/dwn-spec | Enbox DWN Specification}
349
343
  *
350
344
  * @param obj - The object to be checked.
351
345
  * @returns `true` if `obj` is a DwnDidService; otherwise, `false`.
@@ -359,13 +353,15 @@ export function isDwnDidService(obj) {
359
353
  if (obj.type !== 'DecentralizedWebNode') {
360
354
  return false;
361
355
  }
362
- // Validate that the given object has the `enc` and `sig` properties.
363
- if (!('enc' in obj && 'sig' in obj)) {
356
+ // If `enc` or `sig` are present, validate they are strings or arrays of strings.
357
+ const isStringOrStringArray = (prop) => typeof prop === 'string' || Array.isArray(prop) && prop.every(item => typeof item === 'string');
358
+ if ('enc' in obj && obj.enc !== undefined && !isStringOrStringArray(obj.enc)) {
364
359
  return false;
365
360
  }
366
- // Validate that the `enc` and `sig` properties are either strings or arrays of strings.
367
- const isStringOrStringArray = (prop) => typeof prop === 'string' || Array.isArray(prop) && prop.every(item => typeof item === 'string');
368
- return (isStringOrStringArray(obj.enc)) && (isStringOrStringArray(obj.sig));
361
+ if ('sig' in obj && obj.sig !== undefined && !isStringOrStringArray(obj.sig)) {
362
+ return false;
363
+ }
364
+ return true;
369
365
  }
370
366
  /**
371
367
  * Checks if a given object is a DID Verification Method.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -8,37 +8,43 @@ import { DidVerificationRelationship } from './types/did-core.js';
8
8
  * Represents a Decentralized Web Node (DWN) service in a DID Document.
9
9
  *
10
10
  * A DWN DID service is a specialized type of DID service with the `type` set to
11
- * `DecentralizedWebNode`. It includes specific properties `enc` and `sig` that are used to identify
12
- * the public keys that can be used to interact with the DID Subject. The values of these properties
13
- * are strings or arrays of strings containing one or more verification method `id` values present in
14
- * the same DID document. If the `enc` and/or `sig` properties are an array of strings, an entity
15
- * interacting with the DID subject is expected to use the verification methods in the order they
16
- * are listed.
11
+ * `DecentralizedWebNode`. Encryption and signing keys are resolved from the DID document's
12
+ * verification methods, not from the service entry.
13
+ *
14
+ * The `enc` and `sig` properties are optional legacy fields that may be present on existing
15
+ * DID documents for backward compatibility. When present, they contain verification method `id`
16
+ * values that hint at which keys to use for encryption and signing. New implementations should
17
+ * resolve keys from the DID document's verification methods by purpose (`keyAgreement` for
18
+ * encryption, `authentication`/`assertionMethod` for signing).
17
19
  *
18
20
  * @example
19
21
  * ```ts
20
22
  * const service: DwnDidService = {
21
23
  * id: 'did:example:123#dwn',
22
24
  * type: 'DecentralizedWebNode',
23
- * serviceEndpoint: 'https://enbox-dwn.fly.dev',
24
- * enc: 'did:example:123#key-1',
25
- * sig: 'did:example:123#key-2'
25
+ * serviceEndpoint: 'https://enbox-dwn.fly.dev'
26
26
  * }
27
27
  * ```
28
28
  *
29
- * @see {@link https://identity.foundation/decentralized-web-node/spec/ | DIF Decentralized Web Node (DWN) Specification}
29
+ * @see {@link https://github.com/enboxorg/dwn-spec | Enbox DWN Specification}
30
30
  */
31
31
  export interface DwnDidService extends DidService {
32
32
  /**
33
+ * @deprecated Optional legacy field. Resolve encryption keys from the DID document's
34
+ * `keyAgreement` verification methods instead.
35
+ *
33
36
  * One or more verification method `id` values that can be used to encrypt information
34
37
  * intended for the DID subject.
35
38
  */
36
39
  enc?: string | string[];
37
40
  /**
41
+ * @deprecated Optional legacy field. Resolve signing keys from the DID document's
42
+ * `authentication` or `assertionMethod` verification methods instead.
43
+ *
38
44
  * One or more verification method `id` values that will be used by the DID subject to sign data
39
45
  * or by another entity to verify signatures created by the DID subject.
40
46
  */
41
- sig: string | string[];
47
+ sig?: string | string[];
42
48
  }
43
49
  /**
44
50
  * Extracts the fragment part of a Decentralized Identifier (DID) verification method identifier.
@@ -265,9 +271,11 @@ export declare function isDidService(obj: unknown): obj is DidService;
265
271
  /**
266
272
  * Checks if a given object is a {@link DwnDidService}.
267
273
  *
268
- * A {@link DwnDidService} is defined as {@link DidService} object with a `type` of
269
- * "DecentralizedWebNode" and `enc` and `sig` properties, where both properties are either strings
270
- * or arrays of strings.
274
+ * A {@link DwnDidService} is defined as a {@link DidService} object with a `type` of
275
+ * `"DecentralizedWebNode"`. The `enc` and `sig` properties are optional they may be present
276
+ * on existing DID documents for backward compatibility, but are not required per the DWN
277
+ * specification. Encryption and signing keys are resolved from the DID document's verification
278
+ * methods, not from the service entry.
271
279
  *
272
280
  * @example
273
281
  * ```ts
@@ -279,33 +287,25 @@ export declare function isDidService(obj: unknown): obj is DidService;
279
287
  * type: 'JsonWebKey2020',
280
288
  * controller: 'did:example:123',
281
289
  * publicKeyJwk: { ... }
282
- * },
283
- * {
284
- * id: 'did:example:123#key-2',
285
- * type: 'JsonWebKey2020',
286
- * controller: 'did:example:123',
287
- * publicKeyJwk: { ... }
288
290
  * }
289
291
  * ],
290
292
  * service: [
291
293
  * {
292
294
  * id: 'did:example:123#dwn',
293
295
  * type: 'DecentralizedWebNode',
294
- * serviceEndpoint: 'https://enbox-dwn.fly.dev',
295
- * enc: 'did:example:123#key-1',
296
- * sig: 'did:example:123#key-2'
296
+ * serviceEndpoint: 'https://enbox-dwn.fly.dev'
297
297
  * }
298
298
  * ]
299
299
  * };
300
300
  *
301
- * if (isDwnService(didDocument.service[0])) {
301
+ * if (isDwnDidService(didDocument.service[0])) {
302
302
  * console.log('The object is a DwnDidService');
303
303
  * } else {
304
304
  * console.log('The object is not a DwnDidService');
305
305
  * }
306
306
  * ```
307
307
  *
308
- * @see {@link https://identity.foundation/decentralized-web-node/spec/ | Decentralized Web Node (DWN) Specification}
308
+ * @see {@link https://github.com/enboxorg/dwn-spec | Enbox DWN Specification}
309
309
  *
310
310
  * @param obj - The object to be checked.
311
311
  * @returns `true` if `obj` is a DwnDidService; otherwise, `false`.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}