@enbox/dids 0.0.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 (104) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/dist/browser.js +77 -0
  4. package/dist/browser.js.map +7 -0
  5. package/dist/browser.mjs +77 -0
  6. package/dist/browser.mjs.map +7 -0
  7. package/dist/cjs/index.js +6303 -0
  8. package/dist/cjs/index.js.map +7 -0
  9. package/dist/cjs/package.json +1 -0
  10. package/dist/cjs/utils.js +245 -0
  11. package/dist/cjs/utils.js.map +7 -0
  12. package/dist/esm/bearer-did.js +201 -0
  13. package/dist/esm/bearer-did.js.map +1 -0
  14. package/dist/esm/did-error.js +62 -0
  15. package/dist/esm/did-error.js.map +1 -0
  16. package/dist/esm/did.js +114 -0
  17. package/dist/esm/did.js.map +1 -0
  18. package/dist/esm/index.js +16 -0
  19. package/dist/esm/index.js.map +1 -0
  20. package/dist/esm/methods/did-dht.js +1241 -0
  21. package/dist/esm/methods/did-dht.js.map +1 -0
  22. package/dist/esm/methods/did-ion.js +570 -0
  23. package/dist/esm/methods/did-ion.js.map +1 -0
  24. package/dist/esm/methods/did-jwk.js +298 -0
  25. package/dist/esm/methods/did-jwk.js.map +1 -0
  26. package/dist/esm/methods/did-key.js +983 -0
  27. package/dist/esm/methods/did-key.js.map +1 -0
  28. package/dist/esm/methods/did-method.js +53 -0
  29. package/dist/esm/methods/did-method.js.map +1 -0
  30. package/dist/esm/methods/did-web.js +83 -0
  31. package/dist/esm/methods/did-web.js.map +1 -0
  32. package/dist/esm/resolver/resolver-cache-level.js +101 -0
  33. package/dist/esm/resolver/resolver-cache-level.js.map +1 -0
  34. package/dist/esm/resolver/resolver-cache-noop.js +24 -0
  35. package/dist/esm/resolver/resolver-cache-noop.js.map +1 -0
  36. package/dist/esm/resolver/universal-resolver.js +187 -0
  37. package/dist/esm/resolver/universal-resolver.js.map +1 -0
  38. package/dist/esm/types/did-core.js +51 -0
  39. package/dist/esm/types/did-core.js.map +1 -0
  40. package/dist/esm/types/did-resolution.js +12 -0
  41. package/dist/esm/types/did-resolution.js.map +1 -0
  42. package/dist/esm/types/multibase.js +2 -0
  43. package/dist/esm/types/multibase.js.map +1 -0
  44. package/dist/esm/types/portable-did.js +2 -0
  45. package/dist/esm/types/portable-did.js.map +1 -0
  46. package/dist/esm/utils.js +458 -0
  47. package/dist/esm/utils.js.map +1 -0
  48. package/dist/types/bearer-did.d.ts +143 -0
  49. package/dist/types/bearer-did.d.ts.map +1 -0
  50. package/dist/types/did-error.d.ts +50 -0
  51. package/dist/types/did-error.d.ts.map +1 -0
  52. package/dist/types/did.d.ts +125 -0
  53. package/dist/types/did.d.ts.map +1 -0
  54. package/dist/types/index.d.ts +18 -0
  55. package/dist/types/index.d.ts.map +1 -0
  56. package/dist/types/methods/did-dht.d.ts +682 -0
  57. package/dist/types/methods/did-dht.d.ts.map +1 -0
  58. package/dist/types/methods/did-ion.d.ts +492 -0
  59. package/dist/types/methods/did-ion.d.ts.map +1 -0
  60. package/dist/types/methods/did-jwk.d.ts +236 -0
  61. package/dist/types/methods/did-jwk.d.ts.map +1 -0
  62. package/dist/types/methods/did-key.d.ts +499 -0
  63. package/dist/types/methods/did-key.d.ts.map +1 -0
  64. package/dist/types/methods/did-method.d.ts +238 -0
  65. package/dist/types/methods/did-method.d.ts.map +1 -0
  66. package/dist/types/methods/did-web.d.ts +37 -0
  67. package/dist/types/methods/did-web.d.ts.map +1 -0
  68. package/dist/types/resolver/resolver-cache-level.d.ts +86 -0
  69. package/dist/types/resolver/resolver-cache-level.d.ts.map +1 -0
  70. package/dist/types/resolver/resolver-cache-noop.d.ts +9 -0
  71. package/dist/types/resolver/resolver-cache-noop.d.ts.map +1 -0
  72. package/dist/types/resolver/universal-resolver.d.ts +109 -0
  73. package/dist/types/resolver/universal-resolver.d.ts.map +1 -0
  74. package/dist/types/types/did-core.d.ts +523 -0
  75. package/dist/types/types/did-core.d.ts.map +1 -0
  76. package/dist/types/types/did-resolution.d.ts +85 -0
  77. package/dist/types/types/did-resolution.d.ts.map +1 -0
  78. package/dist/types/types/multibase.d.ts +28 -0
  79. package/dist/types/types/multibase.d.ts.map +1 -0
  80. package/dist/types/types/portable-did.d.ts +59 -0
  81. package/dist/types/types/portable-did.d.ts.map +1 -0
  82. package/dist/types/utils.d.ts +378 -0
  83. package/dist/types/utils.d.ts.map +1 -0
  84. package/dist/utils.js +28 -0
  85. package/dist/utils.js.map +7 -0
  86. package/package.json +116 -0
  87. package/src/bearer-did.ts +287 -0
  88. package/src/did-error.ts +75 -0
  89. package/src/did.ts +186 -0
  90. package/src/index.ts +21 -0
  91. package/src/methods/did-dht.ts +1637 -0
  92. package/src/methods/did-ion.ts +887 -0
  93. package/src/methods/did-jwk.ts +410 -0
  94. package/src/methods/did-key.ts +1248 -0
  95. package/src/methods/did-method.ts +276 -0
  96. package/src/methods/did-web.ts +96 -0
  97. package/src/resolver/resolver-cache-level.ts +163 -0
  98. package/src/resolver/resolver-cache-noop.ts +26 -0
  99. package/src/resolver/universal-resolver.ts +238 -0
  100. package/src/types/did-core.ts +580 -0
  101. package/src/types/did-resolution.ts +93 -0
  102. package/src/types/multibase.ts +29 -0
  103. package/src/types/portable-did.ts +64 -0
  104. package/src/utils.ts +532 -0
@@ -0,0 +1,125 @@
1
+ /**
2
+ * The `Did` class represents a Decentralized Identifier (DID) Uniform Resource Identifier (URI).
3
+ *
4
+ * This class provides a method for parsing a DID URI string into its component parts, as well as a
5
+ * method for serializing a DID URI object into a string.
6
+ *
7
+ * A DID URI is composed of the following components:
8
+ * - scheme
9
+ * - method
10
+ * - id
11
+ * - path
12
+ * - query
13
+ * - fragment
14
+ * - params
15
+ *
16
+ * @see {@link https://www.w3.org/TR/did-core/#did-syntax | DID Core Specification, § DID Syntax}
17
+ */
18
+ export declare class Did {
19
+ /** Regular expression pattern for matching the method component of a DID URI. */
20
+ static readonly METHOD_PATTERN = "([a-z0-9]+)";
21
+ /** Regular expression pattern for matching percent-encoded characters in a method identifier. */
22
+ static readonly PCT_ENCODED_PATTERN = "(?:%[0-9a-fA-F]{2})";
23
+ /** Regular expression pattern for matching the characters allowed in a method identifier. */
24
+ static readonly ID_CHAR_PATTERN: string;
25
+ /** Regular expression pattern for matching the method identifier component of a DID URI. */
26
+ static readonly METHOD_ID_PATTERN: string;
27
+ /** Regular expression pattern for matching the path component of a DID URI. */
28
+ static readonly PATH_PATTERN = "(/[^#?]*)?";
29
+ /** Regular expression pattern for matching the query component of a DID URI. */
30
+ static readonly QUERY_PATTERN = "([?][^#]*)?";
31
+ /** Regular expression pattern for matching the fragment component of a DID URI. */
32
+ static readonly FRAGMENT_PATTERN = "(#.*)?";
33
+ /** Regular expression pattern for matching all of the components of a DID URI. */
34
+ static readonly DID_URI_PATTERN: RegExp;
35
+ /**
36
+ * A string representation of the DID.
37
+ *
38
+ * A DID is a URI composed of three parts: the scheme `did:`, a method identifier, and a unique,
39
+ * method-specific identifier specified by the DID method.
40
+ *
41
+ * @example
42
+ * did:dht:h4d3ixkwt6q5a455tucw7j14jmqyghdtbr6cpiz6on5oxj5bpr3o
43
+ */
44
+ uri: string;
45
+ /**
46
+ * The name of the DID method.
47
+ *
48
+ * Examples of DID method names are `dht`, `jwk`, and `web`, among others.
49
+ */
50
+ method: string;
51
+ /**
52
+ * The DID method identifier.
53
+ *
54
+ * @example
55
+ * h4d3ixkwt6q5a455tucw7j14jmqyghdtbr6cpiz6on5oxj5bpr3o
56
+ */
57
+ id: string;
58
+ /**
59
+ * Optional path component of the DID URI.
60
+ *
61
+ * @example
62
+ * did:web:tbd.website/path
63
+ */
64
+ path?: string;
65
+ /**
66
+ * Optional query component of the DID URI.
67
+ *
68
+ * @example
69
+ * did:web:tbd.website?versionId=1
70
+ */
71
+ query?: string;
72
+ /**
73
+ * Optional fragment component of the DID URI.
74
+ *
75
+ * @example
76
+ * did:web:tbd.website#key-1
77
+ */
78
+ fragment?: string;
79
+ /**
80
+ * Optional query parameters in the DID URI.
81
+ *
82
+ * @example
83
+ * did:web:tbd.website?service=files&relativeRef=/whitepaper.pdf
84
+ */
85
+ params?: Record<string, string>;
86
+ /**
87
+ * Constructs a new `Did` instance from individual components.
88
+ *
89
+ * @param params - An object containing the parameters to be included in the DID URI.
90
+ * @param params.method - The name of the DID method.
91
+ * @param params.id - The DID method identifier.
92
+ * @param params.path - Optional. The path component of the DID URI.
93
+ * @param params.query - Optional. The query component of the DID URI.
94
+ * @param params.fragment - Optional. The fragment component of the DID URI.
95
+ * @param params.params - Optional. The query parameters in the DID URI.
96
+ */
97
+ constructor({ method, id, path, query, fragment, params }: {
98
+ method: string;
99
+ id: string;
100
+ path?: string;
101
+ query?: string;
102
+ fragment?: string;
103
+ params?: Record<string, string>;
104
+ });
105
+ /**
106
+ * Parses a DID URI string into its individual components.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * const did = Did.parse('did:example:123?service=agent&relativeRef=/credentials#degree');
111
+ *
112
+ * console.log(did.uri) // Output: 'did:example:123'
113
+ * console.log(did.method) // Output: 'example'
114
+ * console.log(did.id) // Output: '123'
115
+ * console.log(did.query) // Output: 'service=agent&relativeRef=/credentials'
116
+ * console.log(did.fragment) // Output: 'degree'
117
+ * console.log(did.params) // Output: { service: 'agent', relativeRef: '/credentials' }
118
+ * ```
119
+ *
120
+ * @params didUri - The DID URI string to be parsed.
121
+ * @returns A `Did` object representing the parsed DID URI, or `null` if the input string is not a valid DID URI.
122
+ */
123
+ static parse(didUri: string): Did | null;
124
+ }
125
+ //# sourceMappingURL=did.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../../src/did.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,GAAG;IACd,iFAAiF;IACjF,MAAM,CAAC,QAAQ,CAAC,cAAc,iBAAiB;IAC/C,iGAAiG;IACjG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,yBAAyB;IAC5D,6FAA6F;IAC7F,MAAM,CAAC,QAAQ,CAAC,eAAe,SAAmD;IAClF,4FAA4F;IAC5F,MAAM,CAAC,QAAQ,CAAC,iBAAiB,SAA8D;IAC/F,+EAA+E;IAC/E,MAAM,CAAC,QAAQ,CAAC,YAAY,gBAAgB;IAC5C,gFAAgF;IAChF,MAAM,CAAC,QAAQ,CAAC,aAAa,iBAAiB;IAC9C,mFAAmF;IACnF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,YAAY;IAC5C,kFAAkF;IAClF,MAAM,CAAC,QAAQ,CAAC,eAAe,SAE7B;IAEF;;;;;;;;OAQG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;UAKM;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;UAKM;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;QAKI;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC;;;;;;;;;;OAUG;gBACS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;QACzD,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAChC;IAUD;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;CA4CzC"}
@@ -0,0 +1,18 @@
1
+ export * from './types/did-core.js';
2
+ export * from './types/did-resolution.js';
3
+ export type * from './types/multibase.js';
4
+ export type * from './types/portable-did.js';
5
+ export * from './did.js';
6
+ export * from './did-error.js';
7
+ export * from './bearer-did.js';
8
+ export * from './methods/did-dht.js';
9
+ export * from './methods/did-ion.js';
10
+ export * from './methods/did-jwk.js';
11
+ export * from './methods/did-key.js';
12
+ export * from './methods/did-method.js';
13
+ export * from './methods/did-web.js';
14
+ export * from './resolver/resolver-cache-level.js';
15
+ export * from './resolver/resolver-cache-noop.js';
16
+ export * from './resolver/universal-resolver.js';
17
+ export * as utils from './utils.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,yBAAyB,CAAC;AAE7C,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AAErC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}