@digitaldefiance/ecies-lib 3.0.8 → 3.7.3

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 (303) hide show
  1. package/README.md +475 -0
  2. package/package.json +4 -3
  3. package/src/builders/ecies-builder.js +5 -9
  4. package/src/builders/ecies-builder.js.map +1 -1
  5. package/src/builders/index.js +2 -5
  6. package/src/builders/index.js.map +1 -1
  7. package/src/builders/member-builder.js +12 -16
  8. package/src/builders/member-builder.js.map +1 -1
  9. package/src/constants.d.ts +14 -0
  10. package/src/constants.d.ts.map +1 -1
  11. package/src/constants.js +150 -74
  12. package/src/constants.js.map +1 -1
  13. package/src/core/errors/crypto-error.js +10 -14
  14. package/src/core/errors/crypto-error.js.map +1 -1
  15. package/src/core/index.js +2 -5
  16. package/src/core/index.js.map +1 -1
  17. package/src/core/types/result.js +1 -5
  18. package/src/core/types/result.js.map +1 -1
  19. package/src/email-string.js +8 -13
  20. package/src/email-string.js.map +1 -1
  21. package/src/enumerations/disposed-error-type.d.ts +12 -0
  22. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  23. package/src/enumerations/disposed-error-type.js +13 -0
  24. package/src/enumerations/disposed-error-type.js.map +1 -0
  25. package/src/enumerations/ecies-encryption-type.js +20 -27
  26. package/src/enumerations/ecies-encryption-type.js.map +1 -1
  27. package/src/enumerations/ecies-error-type.js +2 -5
  28. package/src/enumerations/ecies-error-type.js.map +1 -1
  29. package/src/enumerations/ecies-string-key.d.ts +19 -1
  30. package/src/enumerations/ecies-string-key.d.ts.map +1 -1
  31. package/src/enumerations/ecies-string-key.js +21 -5
  32. package/src/enumerations/ecies-string-key.js.map +1 -1
  33. package/src/enumerations/guid-brand-type.d.ts +27 -0
  34. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  35. package/src/enumerations/guid-brand-type.js +28 -0
  36. package/src/enumerations/guid-brand-type.js.map +1 -0
  37. package/src/enumerations/guid-error-type.d.ts +7 -0
  38. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  39. package/src/enumerations/guid-error-type.js +8 -0
  40. package/src/enumerations/guid-error-type.js.map +1 -0
  41. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  42. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  43. package/src/enumerations/id-provider-error-type.js +44 -0
  44. package/src/enumerations/id-provider-error-type.js.map +1 -0
  45. package/src/enumerations/index.d.ts +3 -0
  46. package/src/enumerations/index.d.ts.map +1 -1
  47. package/src/enumerations/index.js +15 -15
  48. package/src/enumerations/index.js.map +1 -1
  49. package/src/enumerations/invalid-email-type.js +2 -5
  50. package/src/enumerations/invalid-email-type.js.map +1 -1
  51. package/src/enumerations/length-encoding-type.js +2 -5
  52. package/src/enumerations/length-encoding-type.js.map +1 -1
  53. package/src/enumerations/length-error-type.js +2 -5
  54. package/src/enumerations/length-error-type.js.map +1 -1
  55. package/src/enumerations/member-error-type.js +3 -6
  56. package/src/enumerations/member-error-type.js.map +1 -1
  57. package/src/enumerations/member-type.js +3 -6
  58. package/src/enumerations/member-type.js.map +1 -1
  59. package/src/enumerations/password-login-error-type.js +2 -5
  60. package/src/enumerations/password-login-error-type.js.map +1 -1
  61. package/src/enumerations/pbkdf2-error-type.js +2 -5
  62. package/src/enumerations/pbkdf2-error-type.js.map +1 -1
  63. package/src/enumerations/pbkdf2-profile.js +2 -5
  64. package/src/enumerations/pbkdf2-profile.js.map +1 -1
  65. package/src/enumerations/secure-storage-error-type.js +2 -5
  66. package/src/enumerations/secure-storage-error-type.js.map +1 -1
  67. package/src/errors/disposed.d.ts +20 -2
  68. package/src/errors/disposed.d.ts.map +1 -1
  69. package/src/errors/disposed.js +24 -17
  70. package/src/errors/disposed.js.map +1 -1
  71. package/src/errors/ecies.d.ts +46 -1
  72. package/src/errors/ecies.d.ts.map +1 -1
  73. package/src/errors/ecies.js +65 -10
  74. package/src/errors/ecies.js.map +1 -1
  75. package/src/errors/guid.d.ts +44 -0
  76. package/src/errors/guid.d.ts.map +1 -0
  77. package/src/errors/guid.js +81 -0
  78. package/src/errors/guid.js.map +1 -0
  79. package/src/errors/id-provider.d.ts +23 -0
  80. package/src/errors/id-provider.d.ts.map +1 -0
  81. package/src/errors/id-provider.js +29 -0
  82. package/src/errors/id-provider.js.map +1 -0
  83. package/src/errors/index.d.ts +3 -0
  84. package/src/errors/index.d.ts.map +1 -1
  85. package/src/errors/index.js +9 -10
  86. package/src/errors/index.js.map +1 -1
  87. package/src/errors/invalid-email.js +5 -9
  88. package/src/errors/invalid-email.js.map +1 -1
  89. package/src/errors/length.js +5 -9
  90. package/src/errors/length.js.map +1 -1
  91. package/src/errors/member.js +5 -9
  92. package/src/errors/member.js.map +1 -1
  93. package/src/errors/pbkdf2.js +5 -9
  94. package/src/errors/pbkdf2.js.map +1 -1
  95. package/src/errors/secure-storage.js +6 -10
  96. package/src/errors/secure-storage.js.map +1 -1
  97. package/src/errors/simple-ecies.js +6 -10
  98. package/src/errors/simple-ecies.js.map +1 -1
  99. package/src/errors/simple-test-error.js +1 -5
  100. package/src/errors/simple-test-error.js.map +1 -1
  101. package/src/i18n-setup.js +29 -37
  102. package/src/i18n-setup.js.map +1 -1
  103. package/src/index.d.ts +10 -0
  104. package/src/index.d.ts.map +1 -1
  105. package/src/index.js +44 -57
  106. package/src/index.js.map +1 -1
  107. package/src/interfaces/checksum-config.js +1 -2
  108. package/src/interfaces/checksum-consts.js +1 -2
  109. package/src/interfaces/configuration-provenance.d.ts +51 -0
  110. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  111. package/src/interfaces/configuration-provenance.js +23 -0
  112. package/src/interfaces/configuration-provenance.js.map +1 -0
  113. package/src/interfaces/constants.d.ts +27 -1
  114. package/src/interfaces/constants.d.ts.map +1 -1
  115. package/src/interfaces/constants.js +1 -2
  116. package/src/interfaces/ecies-config.js +1 -2
  117. package/src/interfaces/ecies-consts.js +1 -2
  118. package/src/interfaces/ecies-file-service.js +1 -2
  119. package/src/interfaces/encrypted-chunk.js +1 -4
  120. package/src/interfaces/encrypted-chunk.js.map +1 -1
  121. package/src/interfaces/encryption-state.js +1 -4
  122. package/src/interfaces/encryption-state.js.map +1 -1
  123. package/src/interfaces/frontend-member-operational.js +1 -2
  124. package/src/interfaces/guid.d.ts +78 -0
  125. package/src/interfaces/guid.d.ts.map +1 -0
  126. package/src/interfaces/guid.js +2 -0
  127. package/src/interfaces/guid.js.map +1 -0
  128. package/src/interfaces/id-provider.d.ts +83 -0
  129. package/src/interfaces/id-provider.d.ts.map +1 -0
  130. package/src/interfaces/id-provider.js +35 -0
  131. package/src/interfaces/id-provider.js.map +1 -0
  132. package/src/interfaces/index.d.ts +1 -0
  133. package/src/interfaces/index.d.ts.map +1 -1
  134. package/src/interfaces/index.js +13 -15
  135. package/src/interfaces/index.js.map +1 -1
  136. package/src/interfaces/invariant.d.ts +46 -0
  137. package/src/interfaces/invariant.d.ts.map +1 -0
  138. package/src/interfaces/invariant.js +18 -0
  139. package/src/interfaces/invariant.js.map +1 -0
  140. package/src/interfaces/library-error.js +1 -2
  141. package/src/interfaces/member-storage.js +1 -2
  142. package/src/interfaces/member-with-mnemonic.js +1 -2
  143. package/src/interfaces/multi-recipient-chunk.d.ts +36 -12
  144. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -1
  145. package/src/interfaces/multi-recipient-chunk.js +36 -14
  146. package/src/interfaces/multi-recipient-chunk.js.map +1 -1
  147. package/src/interfaces/pbkdf2-config.js +1 -2
  148. package/src/interfaces/pbkdf2-consts.js +1 -2
  149. package/src/interfaces/pbkdf2-result.js +1 -2
  150. package/src/interfaces/stream-config.js +1 -4
  151. package/src/interfaces/stream-config.js.map +1 -1
  152. package/src/interfaces/stream-header.js +1 -4
  153. package/src/interfaces/stream-header.js.map +1 -1
  154. package/src/interfaces/stream-progress.js +1 -2
  155. package/src/lib/crypto-container.js +9 -13
  156. package/src/lib/crypto-container.js.map +1 -1
  157. package/src/lib/guid.d.ts +344 -0
  158. package/src/lib/guid.d.ts.map +1 -0
  159. package/src/lib/guid.js +914 -0
  160. package/src/lib/guid.js.map +1 -0
  161. package/src/lib/id-providers/custom-provider.d.ts +36 -0
  162. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  163. package/src/lib/id-providers/custom-provider.js +71 -0
  164. package/src/lib/id-providers/custom-provider.js.map +1 -0
  165. package/src/lib/id-providers/guidv4-provider.d.ts +46 -0
  166. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  167. package/src/lib/id-providers/guidv4-provider.js +105 -0
  168. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  169. package/src/lib/id-providers/index.d.ts +30 -0
  170. package/src/lib/id-providers/index.d.ts.map +1 -0
  171. package/src/lib/id-providers/index.js +29 -0
  172. package/src/lib/id-providers/index.js.map +1 -0
  173. package/src/lib/id-providers/objectid-provider.d.ts +33 -0
  174. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  175. package/src/lib/id-providers/objectid-provider.js +79 -0
  176. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  177. package/src/lib/id-providers/uuid-provider.d.ts +42 -0
  178. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  179. package/src/lib/id-providers/uuid-provider.js +96 -0
  180. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  181. package/src/lib/index.d.ts +1 -0
  182. package/src/lib/index.d.ts.map +1 -1
  183. package/src/lib/index.js +2 -4
  184. package/src/lib/index.js.map +1 -1
  185. package/src/lib/invariant-validator.d.ts +59 -0
  186. package/src/lib/invariant-validator.d.ts.map +1 -0
  187. package/src/lib/invariant-validator.js +97 -0
  188. package/src/lib/invariant-validator.js.map +1 -0
  189. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  190. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  191. package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
  192. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  193. package/src/lib/invariants/index.d.ts +4 -0
  194. package/src/lib/invariants/index.d.ts.map +1 -0
  195. package/src/lib/invariants/index.js +4 -0
  196. package/src/lib/invariants/index.js.map +1 -0
  197. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  198. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  199. package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
  200. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  201. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  202. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  203. package/src/lib/invariants/recipient-id-consistency.js +31 -0
  204. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  205. package/src/member.js +43 -48
  206. package/src/member.js.map +1 -1
  207. package/src/pbkdf2-profiles.js +1 -2
  208. package/src/phone-number.js +7 -11
  209. package/src/phone-number.js.map +1 -1
  210. package/src/regexes.js +3 -6
  211. package/src/regexes.js.map +1 -1
  212. package/src/secure-buffer.d.ts +17 -1
  213. package/src/secure-buffer.d.ts.map +1 -1
  214. package/src/secure-buffer.js +40 -22
  215. package/src/secure-buffer.js.map +1 -1
  216. package/src/secure-string.js +20 -24
  217. package/src/secure-string.js.map +1 -1
  218. package/src/services/aes-gcm.js +21 -25
  219. package/src/services/aes-gcm.js.map +1 -1
  220. package/src/services/chunk-processor.js +32 -36
  221. package/src/services/chunk-processor.js.map +1 -1
  222. package/src/services/ecies/crypto-core.js +33 -37
  223. package/src/services/ecies/crypto-core.js.map +1 -1
  224. package/src/services/ecies/example.js +37 -44
  225. package/src/services/ecies/example.js.map +1 -1
  226. package/src/services/ecies/file.js +1 -5
  227. package/src/services/ecies/file.js.map +1 -1
  228. package/src/services/ecies/index.js +10 -15
  229. package/src/services/ecies/index.js.map +1 -1
  230. package/src/services/ecies/integration.js +23 -28
  231. package/src/services/ecies/integration.js.map +1 -1
  232. package/src/services/ecies/interfaces.js +1 -2
  233. package/src/services/ecies/interfaces.js.map +1 -1
  234. package/src/services/ecies/manual-test.js +26 -34
  235. package/src/services/ecies/manual-test.js.map +1 -1
  236. package/src/services/ecies/multi-recipient.js +47 -51
  237. package/src/services/ecies/multi-recipient.js.map +1 -1
  238. package/src/services/ecies/service.js +27 -31
  239. package/src/services/ecies/service.js.map +1 -1
  240. package/src/services/ecies/signature.js +9 -13
  241. package/src/services/ecies/signature.js.map +1 -1
  242. package/src/services/ecies/single-recipient.js +42 -46
  243. package/src/services/ecies/single-recipient.js.map +1 -1
  244. package/src/services/encryption-stream.d.ts +3 -1
  245. package/src/services/encryption-stream.d.ts.map +1 -1
  246. package/src/services/encryption-stream.js +46 -48
  247. package/src/services/encryption-stream.js.map +1 -1
  248. package/src/services/index.js +5 -8
  249. package/src/services/index.js.map +1 -1
  250. package/src/services/multi-recipient-processor.d.ts +12 -2
  251. package/src/services/multi-recipient-processor.d.ts.map +1 -1
  252. package/src/services/multi-recipient-processor.js +65 -56
  253. package/src/services/multi-recipient-processor.js.map +1 -1
  254. package/src/services/password-login.js +33 -37
  255. package/src/services/password-login.js.map +1 -1
  256. package/src/services/pbkdf2.js +8 -12
  257. package/src/services/pbkdf2.js.map +1 -1
  258. package/src/services/progress-tracker.js +5 -9
  259. package/src/services/progress-tracker.js.map +1 -1
  260. package/src/services/resumable-encryption.js +24 -28
  261. package/src/services/resumable-encryption.js.map +1 -1
  262. package/src/services/xor.js +1 -5
  263. package/src/services/xor.js.map +1 -1
  264. package/src/test-mocks/index.js +1 -4
  265. package/src/test-mocks/index.js.map +1 -1
  266. package/src/test-mocks/mock-frontend-member.js +20 -24
  267. package/src/test-mocks/mock-frontend-member.js.map +1 -1
  268. package/src/testing.js +1 -4
  269. package/src/testing.js.map +1 -1
  270. package/src/translations/de.d.ts +2 -1
  271. package/src/translations/de.d.ts.map +1 -1
  272. package/src/translations/de.js +190 -170
  273. package/src/translations/de.js.map +1 -1
  274. package/src/translations/en-US.d.ts +2 -1
  275. package/src/translations/en-US.d.ts.map +1 -1
  276. package/src/translations/en-US.js +190 -170
  277. package/src/translations/en-US.js.map +1 -1
  278. package/src/translations/es.d.ts +2 -1
  279. package/src/translations/es.d.ts.map +1 -1
  280. package/src/translations/es.js +190 -170
  281. package/src/translations/es.js.map +1 -1
  282. package/src/translations/fr.d.ts +2 -1
  283. package/src/translations/fr.d.ts.map +1 -1
  284. package/src/translations/fr.js +190 -170
  285. package/src/translations/fr.js.map +1 -1
  286. package/src/translations/ja.d.ts +2 -1
  287. package/src/translations/ja.d.ts.map +1 -1
  288. package/src/translations/ja.js +189 -170
  289. package/src/translations/ja.js.map +1 -1
  290. package/src/translations/uk.d.ts +2 -1
  291. package/src/translations/uk.d.ts.map +1 -1
  292. package/src/translations/uk.js +192 -170
  293. package/src/translations/uk.js.map +1 -1
  294. package/src/translations/zh-cn.d.ts +2 -1
  295. package/src/translations/zh-cn.d.ts.map +1 -1
  296. package/src/translations/zh-cn.js +189 -170
  297. package/src/translations/zh-cn.js.map +1 -1
  298. package/src/types/deep-partial.js +1 -2
  299. package/src/types.d.ts +31 -0
  300. package/src/types.d.ts.map +1 -1
  301. package/src/types.js +1 -2
  302. package/src/utils.js +59 -77
  303. package/src/utils.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guid.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/guid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * Custom ID provider that accepts any fixed byte length.
4
+ *
5
+ * Use this when you need a non-standard ID size or custom validation logic.
6
+ * For standard formats, prefer ObjectIdProvider, GuidV4Provider, or UuidProvider.
7
+ *
8
+ * Example:
9
+ * ```typescript
10
+ * // 20-byte SHA-1 hash as recipient ID
11
+ * const provider = new CustomIdProvider(20, 'SHA1Hash');
12
+ * ```
13
+ */
14
+ export declare class CustomIdProvider extends BaseIdProvider {
15
+ readonly byteLength: number;
16
+ readonly name: string;
17
+ constructor(byteLength: number, name?: string);
18
+ /**
19
+ * Generate a new random ID of the specified byte length.
20
+ */
21
+ generate(): Uint8Array;
22
+ /**
23
+ * Validate an ID buffer.
24
+ * Only checks length - override this method for custom validation.
25
+ */
26
+ validate(id: Uint8Array): boolean;
27
+ /**
28
+ * Serialize to hexadecimal string.
29
+ */
30
+ serialize(id: Uint8Array): string;
31
+ /**
32
+ * Deserialize a hexadecimal string to buffer.
33
+ */
34
+ deserialize(str: string): Uint8Array;
35
+ }
36
+ //# sourceMappingURL=custom-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/custom-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,UAAU,EAAE,MAAM,EAAE,IAAI,SAAW;IAgB/C;;OAEG;IACH,QAAQ,IAAI,UAAU;IAItB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAIjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAQjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CA0BrC"}
@@ -0,0 +1,71 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { randomBytes } from 'crypto';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * Custom ID provider that accepts any fixed byte length.
7
+ *
8
+ * Use this when you need a non-standard ID size or custom validation logic.
9
+ * For standard formats, prefer ObjectIdProvider, GuidV4Provider, or UuidProvider.
10
+ *
11
+ * Example:
12
+ * ```typescript
13
+ * // 20-byte SHA-1 hash as recipient ID
14
+ * const provider = new CustomIdProvider(20, 'SHA1Hash');
15
+ * ```
16
+ */
17
+ export class CustomIdProvider extends BaseIdProvider {
18
+ byteLength;
19
+ name;
20
+ constructor(byteLength, name = 'Custom') {
21
+ super();
22
+ if (!Number.isInteger(byteLength) || byteLength < 1 || byteLength > 255) {
23
+ throw new IdProviderError(IdProviderErrorType.InvalidByteLengthParameter, undefined, undefined, { value: byteLength });
24
+ }
25
+ this.byteLength = byteLength;
26
+ this.name = name;
27
+ }
28
+ /**
29
+ * Generate a new random ID of the specified byte length.
30
+ */
31
+ generate() {
32
+ return randomBytes(this.byteLength);
33
+ }
34
+ /**
35
+ * Validate an ID buffer.
36
+ * Only checks length - override this method for custom validation.
37
+ */
38
+ validate(id) {
39
+ return id.length === this.byteLength;
40
+ }
41
+ /**
42
+ * Serialize to hexadecimal string.
43
+ */
44
+ serialize(id) {
45
+ this.validateLength(id, `${this.name}.serialize`);
46
+ return Array.from(id)
47
+ .map(b => b.toString(16).padStart(2, '0'))
48
+ .join('');
49
+ }
50
+ /**
51
+ * Deserialize a hexadecimal string to buffer.
52
+ */
53
+ deserialize(str) {
54
+ if (typeof str !== 'string') {
55
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
56
+ }
57
+ const expectedLength = this.byteLength * 2;
58
+ if (str.length !== expectedLength) {
59
+ throw new IdProviderError(IdProviderErrorType.InvalidStringLength, undefined, undefined, { expected: expectedLength, actual: str.length });
60
+ }
61
+ if (!/^[0-9a-fA-F]+$/.test(str)) {
62
+ throw new IdProviderError(IdProviderErrorType.InvalidCharacters);
63
+ }
64
+ const buffer = new Uint8Array(this.byteLength);
65
+ for (let i = 0; i < this.byteLength; i++) {
66
+ buffer[i] = parseInt(str.substr(i * 2, 2), 16);
67
+ }
68
+ return buffer;
69
+ }
70
+ }
71
+ //# sourceMappingURL=custom-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/custom-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IACzC,UAAU,CAAS;IACnB,IAAI,CAAS;IAEtB,YAAY,UAAkB,EAAE,IAAI,GAAG,QAAQ;QAC7C,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACxE,MAAM,IAAI,eAAe,CACvB,mBAAmB,CAAC,0BAA0B,EAC9C,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,EAAc;QACrB,OAAO,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,EAAc;QACtB,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;QAElD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,GAAW;QACrB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CACvB,mBAAmB,CAAC,mBAAmB,EACvC,SAAS,EACT,SAAS,EACT,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CACjD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for GUIDv4 (16 bytes raw, 24 bytes base64).
4
+ *
5
+ * Uses the GuidV4 class which provides RFC 4122 compliant v4 GUIDs.
6
+ * The raw binary representation is 16 bytes (128 bits).
7
+ *
8
+ * Serialization uses base64 for compactness (24 characters vs 36 for hex with dashes).
9
+ */
10
+ export declare class GuidV4Provider extends BaseIdProvider {
11
+ readonly byteLength = 16;
12
+ readonly name = "GUIDv4";
13
+ /**
14
+ * Generate a new random GUIDv4.
15
+ */
16
+ generate(): Uint8Array;
17
+ /**
18
+ * Validate a GUID buffer.
19
+ * Checks length and RFC 4122 v4 compliance.
20
+ */
21
+ validate(id: Uint8Array): boolean;
22
+ /**
23
+ * Serialize GUID to base64 string (24 characters).
24
+ */
25
+ serialize(id: Uint8Array): string;
26
+ /**
27
+ * Deserialize a base64 or hex GUID string to buffer.
28
+ * Accepts multiple formats: base64 (24 chars), short hex (32 chars), full hex (36 chars).
29
+ */
30
+ deserialize(str: string): Uint8Array;
31
+ /**
32
+ * Create a GUID from a namespace and name (v5 - SHA-1 based).
33
+ * Useful for deterministic GUIDs.
34
+ */
35
+ fromNamespace(namespace: string, name: string): Uint8Array;
36
+ /**
37
+ * Get the GUID version from a buffer.
38
+ * Should return 4 for valid v4 GUIDs.
39
+ */
40
+ getVersion(id: Uint8Array): number | undefined;
41
+ /**
42
+ * Check if a GUID is the empty/nil GUID (all zeros).
43
+ */
44
+ isEmpty(id: Uint8Array): boolean;
45
+ }
46
+ //# sourceMappingURL=guidv4-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidv4-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/guidv4-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,YAAY;IAEzB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAKtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAcjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAgBjC;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAkBpC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAK1D;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAW9C;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;CAUjC"}
@@ -0,0 +1,105 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { GuidV4 } from '../guid';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * ID provider for GUIDv4 (16 bytes raw, 24 bytes base64).
7
+ *
8
+ * Uses the GuidV4 class which provides RFC 4122 compliant v4 GUIDs.
9
+ * The raw binary representation is 16 bytes (128 bits).
10
+ *
11
+ * Serialization uses base64 for compactness (24 characters vs 36 for hex with dashes).
12
+ */
13
+ export class GuidV4Provider extends BaseIdProvider {
14
+ byteLength = 16;
15
+ name = 'GUIDv4';
16
+ /**
17
+ * Generate a new random GUIDv4.
18
+ */
19
+ generate() {
20
+ const guid = GuidV4.generate();
21
+ return guid.asRawGuidBufferUnsafe;
22
+ }
23
+ /**
24
+ * Validate a GUID buffer.
25
+ * Checks length and RFC 4122 v4 compliance.
26
+ */
27
+ validate(id) {
28
+ if (id.length !== this.byteLength) {
29
+ return false;
30
+ }
31
+ try {
32
+ // Convert to GuidV4 and validate
33
+ const guid = new GuidV4(Buffer.from(id));
34
+ return guid.isValidV4();
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ /**
41
+ * Serialize GUID to base64 string (24 characters).
42
+ */
43
+ serialize(id) {
44
+ this.validateLength(id, 'GuidV4Provider.serialize');
45
+ try {
46
+ const guid = new GuidV4(Buffer.from(id));
47
+ return guid.asBase64Guid;
48
+ }
49
+ catch (error) {
50
+ throw new IdProviderError(IdProviderErrorType.InvalidGuidBuffer, { cause: error instanceof Error ? error : undefined }, undefined, { message: error instanceof Error ? error.message : String(error) });
51
+ }
52
+ }
53
+ /**
54
+ * Deserialize a base64 or hex GUID string to buffer.
55
+ * Accepts multiple formats: base64 (24 chars), short hex (32 chars), full hex (36 chars).
56
+ */
57
+ deserialize(str) {
58
+ if (typeof str !== 'string') {
59
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
60
+ }
61
+ try {
62
+ const guid = GuidV4.parse(str);
63
+ return guid.asRawGuidBufferUnsafe;
64
+ }
65
+ catch (error) {
66
+ throw new IdProviderError(IdProviderErrorType.ParseFailed, { cause: error instanceof Error ? error : undefined }, undefined, { input: str, message: error instanceof Error ? error.message : String(error) });
67
+ }
68
+ }
69
+ /**
70
+ * Create a GUID from a namespace and name (v5 - SHA-1 based).
71
+ * Useful for deterministic GUIDs.
72
+ */
73
+ fromNamespace(namespace, name) {
74
+ const guid = GuidV4.v5(name, namespace);
75
+ return guid.asRawGuidBufferUnsafe;
76
+ }
77
+ /**
78
+ * Get the GUID version from a buffer.
79
+ * Should return 4 for valid v4 GUIDs.
80
+ */
81
+ getVersion(id) {
82
+ this.validateLength(id, 'GuidV4Provider.getVersion');
83
+ try {
84
+ const guid = new GuidV4(Buffer.from(id));
85
+ return guid.getVersion();
86
+ }
87
+ catch {
88
+ return undefined;
89
+ }
90
+ }
91
+ /**
92
+ * Check if a GUID is the empty/nil GUID (all zeros).
93
+ */
94
+ isEmpty(id) {
95
+ this.validateLength(id, 'GuidV4Provider.isEmpty');
96
+ try {
97
+ const guid = new GuidV4(Buffer.from(id));
98
+ return guid.isEmpty();
99
+ }
100
+ catch {
101
+ return false;
102
+ }
103
+ }
104
+ }
105
+ //# sourceMappingURL=guidv4-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidv4-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/guidv4-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ID Providers for recipient identification in multi-recipient encryption.
3
+ *
4
+ * The library supports multiple ID formats to accommodate different use cases:
5
+ * - ObjectID: MongoDB/BSON ObjectID (12 bytes)
6
+ * - GUIDv4: RFC 4122 v4 GUID (16 bytes, base64 serialization)
7
+ * - UUID: RFC 4122 v4 UUID (16 bytes, standard format with dashes)
8
+ * - Legacy32Byte: Backward compatible 32-byte IDs (deprecated)
9
+ * - Custom: User-defined byte length and validation
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { ObjectIdProvider, GuidV4Provider } from './lib/id-providers';
14
+ *
15
+ * // Use MongoDB ObjectIDs (12 bytes)
16
+ * const objectIdProvider = new ObjectIdProvider();
17
+ * const id = objectIdProvider.generate();
18
+ *
19
+ * // Use GUIDs (16 bytes)
20
+ * const guidProvider = new GuidV4Provider();
21
+ * const guid = guidProvider.generate();
22
+ * ```
23
+ */
24
+ export { ObjectIdProvider } from './objectid-provider';
25
+ export { GuidV4Provider } from './guidv4-provider';
26
+ export { UuidProvider } from './uuid-provider';
27
+ export { CustomIdProvider } from './custom-provider';
28
+ export type { IIdProvider } from '../../interfaces/id-provider';
29
+ export { BaseIdProvider } from '../../interfaces/id-provider';
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * ID Providers for recipient identification in multi-recipient encryption.
3
+ *
4
+ * The library supports multiple ID formats to accommodate different use cases:
5
+ * - ObjectID: MongoDB/BSON ObjectID (12 bytes)
6
+ * - GUIDv4: RFC 4122 v4 GUID (16 bytes, base64 serialization)
7
+ * - UUID: RFC 4122 v4 UUID (16 bytes, standard format with dashes)
8
+ * - Legacy32Byte: Backward compatible 32-byte IDs (deprecated)
9
+ * - Custom: User-defined byte length and validation
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { ObjectIdProvider, GuidV4Provider } from './lib/id-providers';
14
+ *
15
+ * // Use MongoDB ObjectIDs (12 bytes)
16
+ * const objectIdProvider = new ObjectIdProvider();
17
+ * const id = objectIdProvider.generate();
18
+ *
19
+ * // Use GUIDs (16 bytes)
20
+ * const guidProvider = new GuidV4Provider();
21
+ * const guid = guidProvider.generate();
22
+ * ```
23
+ */
24
+ export { ObjectIdProvider } from './objectid-provider';
25
+ export { GuidV4Provider } from './guidv4-provider';
26
+ export { UuidProvider } from './uuid-provider';
27
+ export { CustomIdProvider } from './custom-provider';
28
+ export { BaseIdProvider } from '../../interfaces/id-provider';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for MongoDB/BSON ObjectIDs (12 bytes).
4
+ *
5
+ * Format: 4-byte timestamp + 5-byte random + 3-byte counter
6
+ * This matches the MongoDB ObjectID specification.
7
+ *
8
+ * @see https://docs.mongodb.com/manual/reference/method/ObjectId/
9
+ */
10
+ export declare class ObjectIdProvider extends BaseIdProvider {
11
+ readonly byteLength = 12;
12
+ readonly name = "ObjectID";
13
+ constructor();
14
+ /**
15
+ * Generate a new MongoDB-style ObjectID.
16
+ * Format: [timestamp:4][random:5][counter:3]
17
+ */
18
+ generate(): Uint8Array;
19
+ /**
20
+ * Validate an ObjectID buffer.
21
+ * Checks length and ensures it's not all zeros (invalid ObjectID).
22
+ */
23
+ validate(id: Uint8Array): boolean;
24
+ /**
25
+ * Serialize ObjectID to 24-character hex string (MongoDB standard).
26
+ */
27
+ serialize(id: Uint8Array): string;
28
+ /**
29
+ * Deserialize a 24-character hex string to ObjectID buffer.
30
+ */
31
+ deserialize(str: string): Uint8Array;
32
+ }
33
+ //# sourceMappingURL=objectid-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectid-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/objectid-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,cAAc;;IAM3B;;;OAGG;IACH,QAAQ,IAAI,UAAU;IAOtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAiBjC;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAQjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CA6BrC"}
@@ -0,0 +1,79 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { ObjectId } from 'bson';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * ID provider for MongoDB/BSON ObjectIDs (12 bytes).
7
+ *
8
+ * Format: 4-byte timestamp + 5-byte random + 3-byte counter
9
+ * This matches the MongoDB ObjectID specification.
10
+ *
11
+ * @see https://docs.mongodb.com/manual/reference/method/ObjectId/
12
+ */
13
+ export class ObjectIdProvider extends BaseIdProvider {
14
+ byteLength = 12;
15
+ name = 'ObjectID';
16
+ constructor() {
17
+ super();
18
+ }
19
+ /**
20
+ * Generate a new MongoDB-style ObjectID.
21
+ * Format: [timestamp:4][random:5][counter:3]
22
+ */
23
+ generate() {
24
+ const buffer = new Uint8Array(12);
25
+ const objectId = new ObjectId();
26
+ buffer.set(objectId.id, 0);
27
+ return buffer;
28
+ }
29
+ /**
30
+ * Validate an ObjectID buffer.
31
+ * Checks length and ensures it's not all zeros (invalid ObjectID).
32
+ */
33
+ validate(id) {
34
+ if (id.length !== this.byteLength) {
35
+ return false;
36
+ }
37
+ // Check if all bytes are zero (invalid ObjectID)
38
+ let allZeros = true;
39
+ for (let i = 0; i < id.length; i++) {
40
+ if (id[i] !== 0) {
41
+ allZeros = false;
42
+ break;
43
+ }
44
+ }
45
+ return !allZeros;
46
+ }
47
+ /**
48
+ * Serialize ObjectID to 24-character hex string (MongoDB standard).
49
+ */
50
+ serialize(id) {
51
+ this.validateLength(id, 'ObjectIdProvider.serialize');
52
+ return Array.from(id)
53
+ .map(b => b.toString(16).padStart(2, '0'))
54
+ .join('');
55
+ }
56
+ /**
57
+ * Deserialize a 24-character hex string to ObjectID buffer.
58
+ */
59
+ deserialize(str) {
60
+ if (typeof str !== 'string') {
61
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
62
+ }
63
+ if (str.length !== 24) {
64
+ throw new IdProviderError(IdProviderErrorType.InvalidStringLength, undefined, undefined, { expected: 24, actual: str.length });
65
+ }
66
+ if (!/^[0-9a-fA-F]{24}$/.test(str)) {
67
+ throw new IdProviderError(IdProviderErrorType.InvalidCharacters);
68
+ }
69
+ const buffer = new Uint8Array(12);
70
+ for (let i = 0; i < 12; i++) {
71
+ buffer[i] = parseInt(str.substr(i * 2, 2), 16);
72
+ }
73
+ if (!this.validate(buffer)) {
74
+ throw new IdProviderError(IdProviderErrorType.InvalidDeserializedId);
75
+ }
76
+ return buffer;
77
+ }
78
+ }
79
+ //# sourceMappingURL=objectid-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectid-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/objectid-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for standard RFC 4122 UUIDs (16 bytes).
4
+ *
5
+ * Uses the 'uuid' npm package for UUID generation and validation.
6
+ * Serialization uses the standard UUID format with dashes (36 characters).
7
+ *
8
+ * This is functionally similar to GuidV4Provider but uses standard UUID
9
+ * string formatting (with dashes) instead of base64.
10
+ */
11
+ export declare class UuidProvider extends BaseIdProvider {
12
+ readonly byteLength = 16;
13
+ readonly name = "UUID";
14
+ /**
15
+ * Generate a new random UUIDv4.
16
+ */
17
+ generate(): Uint8Array;
18
+ /**
19
+ * Validate a UUID buffer.
20
+ * Checks length and RFC 4122 compliance.
21
+ */
22
+ validate(id: Uint8Array): boolean;
23
+ /**
24
+ * Serialize UUID to standard format with dashes (36 characters).
25
+ * Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
26
+ */
27
+ serialize(id: Uint8Array): string;
28
+ /**
29
+ * Deserialize a UUID string (with or without dashes) to buffer.
30
+ */
31
+ deserialize(str: string): Uint8Array;
32
+ /**
33
+ * Extract the version from a UUID buffer.
34
+ * Should return 4 for v4 UUIDs.
35
+ */
36
+ getVersion(id: Uint8Array): number | undefined;
37
+ /**
38
+ * Check if a UUID is the nil UUID (all zeros).
39
+ */
40
+ isNil(id: Uint8Array): boolean;
41
+ }
42
+ //# sourceMappingURL=uuid-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/uuid-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,UAAU;IAEvB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAMtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAcjC;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAWjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IA4BpC;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAQ9C;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;CAU/B"}