@digitaldefiance/ecies-lib 3.0.7 → 3.7.2

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 +8 -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 +69 -0
  162. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  163. package/src/lib/id-providers/custom-provider.js +128 -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
package/src/index.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * ECIES Library v2.0 - Modern Architecture
4
3
  *
@@ -9,67 +8,55 @@
9
8
  * - Result pattern
10
9
  * - i18n 2.0 integration
11
10
  */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ENCRYPTION_STATE_VERSION = exports.ResumableEncryption = exports.ProgressTracker = exports.EncryptionStream = exports.ChunkProcessor = exports.ConstantsRegistry = exports.Constants = exports.SecureBuffer = exports.SecureString = exports.EmailString = exports.Pbkdf2ProfileEnum = exports.MemberType = exports.EciesStringKey = exports.EciesComponentId = exports.EciesI18nEngineKey = exports.safeEciesTranslation = exports.getEciesTranslation = exports.resetEciesI18nEngine = exports.getEciesI18nEngine = void 0;
14
- const tslib_1 = require("tslib");
15
11
  // Core v2 exports
16
- tslib_1.__exportStar(require("./core"), exports);
17
- tslib_1.__exportStar(require("./builders"), exports);
18
- tslib_1.__exportStar(require("./lib"), exports);
12
+ export * from './core';
13
+ export * from './builders';
14
+ export * from './lib';
19
15
  // i18n v2
20
- var i18n_setup_1 = require("./i18n-setup");
21
- Object.defineProperty(exports, "getEciesI18nEngine", { enumerable: true, get: function () { return i18n_setup_1.getEciesI18nEngine; } });
22
- Object.defineProperty(exports, "resetEciesI18nEngine", { enumerable: true, get: function () { return i18n_setup_1.resetEciesI18nEngine; } });
23
- Object.defineProperty(exports, "getEciesTranslation", { enumerable: true, get: function () { return i18n_setup_1.getEciesTranslation; } });
24
- Object.defineProperty(exports, "safeEciesTranslation", { enumerable: true, get: function () { return i18n_setup_1.safeEciesTranslation; } });
25
- Object.defineProperty(exports, "EciesI18nEngineKey", { enumerable: true, get: function () { return i18n_setup_1.EciesI18nEngineKey; } });
26
- Object.defineProperty(exports, "EciesComponentId", { enumerable: true, get: function () { return i18n_setup_1.EciesComponentId; } });
16
+ export { getEciesI18nEngine, resetEciesI18nEngine, getEciesTranslation, safeEciesTranslation, EciesI18nEngineKey, EciesComponentId, } from './i18n-setup';
27
17
  // Re-export existing types and enums (unchanged)
28
- var ecies_string_key_1 = require("./enumerations/ecies-string-key");
29
- Object.defineProperty(exports, "EciesStringKey", { enumerable: true, get: function () { return ecies_string_key_1.EciesStringKey; } });
30
- var member_type_1 = require("./enumerations/member-type");
31
- Object.defineProperty(exports, "MemberType", { enumerable: true, get: function () { return member_type_1.MemberType; } });
32
- var pbkdf2_profile_1 = require("./enumerations/pbkdf2-profile");
33
- Object.defineProperty(exports, "Pbkdf2ProfileEnum", { enumerable: true, get: function () { return pbkdf2_profile_1.Pbkdf2ProfileEnum; } });
18
+ export { EciesStringKey } from './enumerations/ecies-string-key';
19
+ export { MemberType } from './enumerations/member-type';
20
+ export { Pbkdf2ProfileEnum } from './enumerations/pbkdf2-profile';
34
21
  // Re-export value objects (unchanged)
35
- var email_string_1 = require("./email-string");
36
- Object.defineProperty(exports, "EmailString", { enumerable: true, get: function () { return email_string_1.EmailString; } });
37
- var secure_string_1 = require("./secure-string");
38
- Object.defineProperty(exports, "SecureString", { enumerable: true, get: function () { return secure_string_1.SecureString; } });
39
- var secure_buffer_1 = require("./secure-buffer");
40
- Object.defineProperty(exports, "SecureBuffer", { enumerable: true, get: function () { return secure_buffer_1.SecureBuffer; } });
22
+ export { EmailString } from './email-string';
23
+ export { SecureString } from './secure-string';
24
+ export { SecureBuffer } from './secure-buffer';
41
25
  // Re-export constants (unchanged)
42
- var constants_1 = require("./constants");
43
- Object.defineProperty(exports, "Constants", { enumerable: true, get: function () { return constants_1.Constants; } });
44
- Object.defineProperty(exports, "ConstantsRegistry", { enumerable: true, get: function () { return constants_1.ConstantsRegistry; } });
26
+ export { Constants, ConstantsRegistry } from './constants';
27
+ // ID Provider system
28
+ export * from './lib/id-providers';
29
+ export { BaseIdProvider } from './interfaces/id-provider';
30
+ // Invariant validation system
31
+ export { InvariantValidator } from './lib/invariant-validator';
32
+ export { BaseInvariant } from './interfaces/invariant';
33
+ export * from './lib/invariants';
34
+ // Configuration helpers
35
+ export { createRuntimeConfiguration, registerRuntimeConfiguration, unregisterRuntimeConfiguration, clearRuntimeConfigurations, getRuntimeConfiguration, } from './constants';
36
+ export { calculateConfigChecksum, captureCreationStack } from './interfaces/configuration-provenance';
45
37
  // Note: Existing services will be re-exported once migrated to v2
46
38
  // For now, import from main index.ts for backward compatibility
47
- tslib_1.__exportStar(require("./constants"), exports);
48
- tslib_1.__exportStar(require("./email-string"), exports);
49
- tslib_1.__exportStar(require("./enumerations"), exports);
50
- tslib_1.__exportStar(require("./errors"), exports);
51
- tslib_1.__exportStar(require("./i18n-setup"), exports);
52
- tslib_1.__exportStar(require("./interfaces"), exports);
53
- tslib_1.__exportStar(require("./interfaces/stream-config"), exports);
54
- tslib_1.__exportStar(require("./interfaces/encrypted-chunk"), exports);
55
- tslib_1.__exportStar(require("./interfaces/stream-progress"), exports);
56
- tslib_1.__exportStar(require("./interfaces/stream-header"), exports);
57
- tslib_1.__exportStar(require("./member"), exports);
58
- tslib_1.__exportStar(require("./pbkdf2-profiles"), exports);
59
- tslib_1.__exportStar(require("./phone-number"), exports);
60
- tslib_1.__exportStar(require("./secure-buffer"), exports);
61
- tslib_1.__exportStar(require("./secure-string"), exports);
62
- tslib_1.__exportStar(require("./services"), exports);
63
- var chunk_processor_1 = require("./services/chunk-processor");
64
- Object.defineProperty(exports, "ChunkProcessor", { enumerable: true, get: function () { return chunk_processor_1.ChunkProcessor; } });
65
- var encryption_stream_1 = require("./services/encryption-stream");
66
- Object.defineProperty(exports, "EncryptionStream", { enumerable: true, get: function () { return encryption_stream_1.EncryptionStream; } });
67
- var progress_tracker_1 = require("./services/progress-tracker");
68
- Object.defineProperty(exports, "ProgressTracker", { enumerable: true, get: function () { return progress_tracker_1.ProgressTracker; } });
69
- var resumable_encryption_1 = require("./services/resumable-encryption");
70
- Object.defineProperty(exports, "ResumableEncryption", { enumerable: true, get: function () { return resumable_encryption_1.ResumableEncryption; } });
71
- var encryption_state_1 = require("./interfaces/encryption-state");
72
- Object.defineProperty(exports, "ENCRYPTION_STATE_VERSION", { enumerable: true, get: function () { return encryption_state_1.ENCRYPTION_STATE_VERSION; } });
73
- tslib_1.__exportStar(require("./types"), exports);
74
- tslib_1.__exportStar(require("./utils"), exports);
39
+ export * from './constants';
40
+ export * from './email-string';
41
+ export * from './enumerations';
42
+ export * from './errors';
43
+ export * from './i18n-setup';
44
+ export * from './interfaces';
45
+ export * from './interfaces/stream-config';
46
+ export * from './interfaces/encrypted-chunk';
47
+ export * from './interfaces/stream-progress';
48
+ export * from './interfaces/stream-header';
49
+ export * from './member';
50
+ export * from './pbkdf2-profiles';
51
+ export * from './phone-number';
52
+ export * from './secure-buffer';
53
+ export * from './secure-string';
54
+ export * from './services';
55
+ export { ChunkProcessor } from './services/chunk-processor';
56
+ export { EncryptionStream } from './services/encryption-stream';
57
+ export { ProgressTracker } from './services/progress-tracker';
58
+ export { ResumableEncryption } from './services/resumable-encryption';
59
+ export { ENCRYPTION_STATE_VERSION } from './interfaces/encryption-state';
60
+ export * from './types';
61
+ export * from './utils';
75
62
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;AAEH,kBAAkB;AAClB,iDAAuB;AACvB,qDAA2B;AAC3B,gDAAsB;AAEtB,UAAU;AACV,2CAOsB;AANpB,gHAAA,kBAAkB,OAAA;AAClB,kHAAA,oBAAoB,OAAA;AACpB,iHAAA,mBAAmB,OAAA;AACnB,kHAAA,oBAAoB,OAAA;AACpB,gHAAA,kBAAkB,OAAA;AAClB,8GAAA,gBAAgB,OAAA;AAGlB,iDAAiD;AACjD,oEAAiE;AAAxD,kHAAA,cAAc,OAAA;AACvB,0DAAwD;AAA/C,yGAAA,UAAU,OAAA;AACnB,gEAAkE;AAAzD,mHAAA,iBAAiB,OAAA;AAE1B,sCAAsC;AACtC,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,kCAAkC;AAClC,yCAA2D;AAAlD,sGAAA,SAAS,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAGrC,kEAAkE;AAClE,gEAAgE;AAEhE,sDAA4B;AAC5B,yDAA+B;AAC/B,yDAA+B;AAC/B,mDAAyB;AACzB,uDAA6B;AAC7B,uDAA6B;AAC7B,qEAA2C;AAC3C,uEAA6C;AAC7C,uEAA6C;AAC7C,qEAA2C;AAC3C,mDAAyB;AACzB,4DAAkC;AAClC,yDAA+B;AAC/B,0DAAgC;AAChC,0DAAgC;AAChC,qDAA2B;AAC3B,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,gEAA8D;AAArD,mHAAA,eAAe,OAAA;AACxB,wEAAsE;AAA7D,2HAAA,mBAAmB,OAAA;AAO5B,kEAAyE;AAAhE,4HAAA,wBAAwB,OAAA;AACjC,kDAAwB;AACxB,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-ecies-lib/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kBAAkB;AAClB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AAEtB,UAAU;AACV,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,iDAAiD;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAG3D,qBAAqB;AACrB,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,cAAc,kBAAkB,CAAC;AAEjC,wBAAwB;AACxB,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAEtG,kEAAkE;AAClE,gEAAgE;AAEhE,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAOtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=checksum-config.js.map
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=checksum-consts.js.map
@@ -0,0 +1,51 @@
1
+ import { IConstants } from './constants';
2
+ import { DeepPartial } from '../types/deep-partial';
3
+ /**
4
+ * Provenance information for a configuration.
5
+ * Tracks who created it, when, and what modifications were made.
6
+ */
7
+ export interface IConfigurationProvenance {
8
+ /**
9
+ * The base configuration key this was derived from
10
+ */
11
+ readonly baseConfigKey: string;
12
+ /**
13
+ * Overrides applied to the base configuration
14
+ */
15
+ readonly overrides: DeepPartial<IConstants>;
16
+ /**
17
+ * When this configuration was created
18
+ */
19
+ readonly timestamp: Date;
20
+ /**
21
+ * Source of the configuration
22
+ * - 'default': The built-in Constants
23
+ * - 'runtime': Created via createRuntimeConfiguration
24
+ * - 'custom': User-provided full configuration
25
+ */
26
+ readonly source: 'default' | 'runtime' | 'custom';
27
+ /**
28
+ * SHA-256 checksum of the final configuration
29
+ * Useful for verifying configuration hasn't been tampered with
30
+ */
31
+ readonly checksum: string;
32
+ /**
33
+ * Optional description or notes about this configuration
34
+ */
35
+ readonly description?: string;
36
+ /**
37
+ * Stack trace showing where the configuration was created
38
+ * Useful for debugging unexpected configurations
39
+ */
40
+ readonly creationStack?: string;
41
+ }
42
+ /**
43
+ * Calculates a checksum for a configuration object.
44
+ * Uses SHA-256 of JSON representation.
45
+ */
46
+ export declare function calculateConfigChecksum(config: IConstants): string;
47
+ /**
48
+ * Captures a stack trace for provenance tracking
49
+ */
50
+ export declare function captureCreationStack(): string;
51
+ //# sourceMappingURL=configuration-provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-provenance.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/configuration-provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAElD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAKlE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C"}
@@ -0,0 +1,23 @@
1
+ import { createHash } from 'crypto';
2
+ /**
3
+ * Calculates a checksum for a configuration object.
4
+ * Uses SHA-256 of JSON representation.
5
+ */
6
+ export function calculateConfigChecksum(config) {
7
+ // Create a stable JSON representation with BigInt support
8
+ const replacer = (key, value) => (typeof value === 'bigint' ? value.toString() : value);
9
+ const stable = JSON.stringify(config, replacer);
10
+ return createHash('sha256').update(stable).digest('hex');
11
+ }
12
+ /**
13
+ * Captures a stack trace for provenance tracking
14
+ */
15
+ export function captureCreationStack() {
16
+ const stack = new Error().stack;
17
+ if (!stack)
18
+ return 'stack unavailable';
19
+ // Remove the first two lines (Error message and this function)
20
+ const lines = stack.split('\n').slice(2);
21
+ return lines.join('\n');
22
+ }
23
+ //# sourceMappingURL=configuration-provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuration-provenance.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/configuration-provenance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAgDpC;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACxD,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,mBAAmB,CAAC;IAEvC,+DAA+D;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -2,6 +2,7 @@ import { Pbkdf2Profiles } from '../pbkdf2-profiles';
2
2
  import { IChecksumConsts } from './checksum-consts';
3
3
  import { IECIESConstants } from './ecies-consts';
4
4
  import { IPBkdf2Consts } from './pbkdf2-consts';
5
+ import { IIdProvider } from './id-provider';
5
6
  export interface IConstants {
6
7
  UINT8_SIZE: number;
7
8
  UINT16_SIZE: number;
@@ -12,9 +13,34 @@ export interface IConstants {
12
13
  UINT64_MAX: bigint;
13
14
  HEX_RADIX: number;
14
15
  /**
15
- * The length of a raw object ID (not the hex string representation)
16
+ * The length of user IDs in the system.
17
+ * This is dynamically determined by the configured ID provider.
18
+ * @deprecated Use idProvider.byteLength instead for direct access
19
+ */
20
+ MEMBER_ID_LENGTH: number;
21
+ /**
22
+ * The length of a raw object ID (not the hex string representation).
23
+ * Standard MongoDB ObjectID is 12 bytes.
24
+ * @deprecated Use idProvider.byteLength instead for direct access
16
25
  */
17
26
  OBJECT_ID_LENGTH: number;
27
+ /**
28
+ * ID provider for recipient identification in multi-recipient encryption.
29
+ * This determines the format and size of recipient IDs used throughout the system.
30
+ *
31
+ * Default: ObjectIdProvider (12 bytes, MongoDB compatible)
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * import { GuidV4Provider } from './lib/id-providers';
36
+ *
37
+ * // Use GUIDs instead of ObjectIDs
38
+ * const config = createRuntimeConfiguration({
39
+ * idProvider: new GuidV4Provider()
40
+ * });
41
+ * ```
42
+ */
43
+ idProvider: IIdProvider;
18
44
  CHECKSUM: IChecksumConsts;
19
45
  ECIES: IECIESConstants;
20
46
  PBKDF2: IPBkdf2Consts;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,UAAU,EAAE,WAAW,CAAC;IAExB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,eAAe,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=constants.js.map
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=ecies-config.js.map
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=ecies-consts.js.map
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=ecies-file-service.js.map
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CHUNK_CONSTANTS = void 0;
4
1
  /**
5
2
  * Constants for chunk format
6
3
  */
7
- exports.CHUNK_CONSTANTS = {
4
+ export const CHUNK_CONSTANTS = {
8
5
  MAGIC: 0x45434945, // "ECIE"
9
6
  VERSION: 0x0001,
10
7
  HEADER_SIZE: 32,
@@ -1 +1 @@
1
- {"version":3,"file":"encrypted-chunk.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encrypted-chunk.ts"],"names":[],"mappings":";;;AA8CA;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B,KAAK,EAAE,UAAU,EAAE,SAAS;IAC5B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,EAAE,EAAE,UAAU;CACrB,CAAC"}
1
+ {"version":3,"file":"encrypted-chunk.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encrypted-chunk.ts"],"names":[],"mappings":"AA8CA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,UAAU,EAAE,SAAS;IAC5B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,EAAE,EAAE,UAAU;CACrB,CAAC"}
@@ -1,5 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ENCRYPTION_STATE_VERSION = void 0;
4
- exports.ENCRYPTION_STATE_VERSION = 1;
1
+ export const ENCRYPTION_STATE_VERSION = 1;
5
2
  //# sourceMappingURL=encryption-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption-state.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encryption-state.ts"],"names":[],"mappings":";;;AAkBa,QAAA,wBAAwB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"encryption-state.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/encryption-state.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC"}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=frontend-member-operational.js.map
@@ -0,0 +1,78 @@
1
+ import { Base64Guid, BigIntGuid, FullHexGuid, RawGuidBuffer, ShortHexGuid } from '../types';
2
+ export interface IGuidV4 {
3
+ /**
4
+ * Returns the GUID as a raw buffer.
5
+ */
6
+ get asRawGuidBuffer(): RawGuidBuffer;
7
+ /**
8
+ * Returns the GUID as a full hex string.
9
+ */
10
+ get asFullHexGuid(): FullHexGuid;
11
+ /**
12
+ * Returns the GUID as a Uint8Array.
13
+ */
14
+ get asUint8Array(): Uint8Array;
15
+ /**
16
+ * Returns the GUID as a short hex string.
17
+ */
18
+ get asShortHexGuid(): ShortHexGuid;
19
+ /**
20
+ * Returns the GUID as a BigInt.
21
+ */
22
+ get asBigIntGuid(): BigIntGuid;
23
+ /**
24
+ * Returns the GUID as a Base64 string.
25
+ */
26
+ get asBase64Guid(): Base64Guid;
27
+ /**
28
+ * Returns the GUID as a base64 string
29
+ */
30
+ serialize(): string;
31
+ /**
32
+ * Returns the GUID as a JSON string
33
+ */
34
+ toJson(): string;
35
+ /**
36
+ * Returns the GUID as a Base64 string
37
+ */
38
+ toString(): Base64Guid;
39
+ /**
40
+ * Compares this GUID to another GUID
41
+ * @param other The GUID to compare to (can be null/undefined)
42
+ * @param constantTime Use constant-time comparison to prevent timing attacks
43
+ */
44
+ equals(other: IGuidV4 | null | undefined, constantTime?: boolean): boolean;
45
+ /**
46
+ * Creates a new GuidV4 instance with the same value as this one.
47
+ * @returns A new GuidV4 instance with identical value
48
+ */
49
+ clone(): IGuidV4;
50
+ /**
51
+ * Returns the hash code for this GUID based on its buffer content.
52
+ * Useful for using GUIDs as Map/Set keys.
53
+ * @returns A numeric hash code
54
+ */
55
+ hashCode(): number;
56
+ /**
57
+ * Checks if this GUID is empty (all zeros).
58
+ * @returns True if the GUID is all zeros, false otherwise
59
+ */
60
+ isEmpty(): boolean;
61
+ /**
62
+ * Extracts the RFC 4122 version from the GUID.
63
+ * @returns The version number (1-5) or undefined
64
+ */
65
+ getVersion(): number | undefined;
66
+ /**
67
+ * Validates that this GUID is a proper v4 GUID according to RFC 4122.
68
+ * @returns True if valid v4 GUID or boundary value, false otherwise
69
+ */
70
+ isValidV4(): boolean;
71
+ /**
72
+ * Compares two GUIDs for ordering.
73
+ * @param other The other GUID to compare to
74
+ * @returns -1 if this < other, 0 if equal, 1 if this > other
75
+ */
76
+ compareTo(other: IGuidV4): number;
77
+ }
78
+ //# sourceMappingURL=guid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guid.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/guid.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EAEV,WAAW,EACX,aAAa,EACb,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,IAAI,eAAe,IAAI,aAAa,CAAC;IACrC;;OAEG;IACH,IAAI,aAAa,IAAI,WAAW,CAAC;IACjC;;OAEG;IACH,IAAI,YAAY,IAAI,UAAU,CAAC;IAC/B;;OAEG;IACH,IAAI,cAAc,IAAI,YAAY,CAAC;IACnC;;OAEG;IACH,IAAI,YAAY,IAAI,UAAU,CAAC;IAC/B;;OAEG;IACH,IAAI,YAAY,IAAI,UAAU,CAAC;IAE/B;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,IAAI,UAAU,CAAC;IACvB;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3E;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC;IACjB;;;;OAIG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC;IACnB;;;OAGG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=guid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guid.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/guid.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Interface for ID providers that supply recipient identifiers.
3
+ * This allows the library to support various ID formats (ObjectID, GUID, UUID, custom).
4
+ */
5
+ export interface IIdProvider {
6
+ /**
7
+ * The fixed byte length of IDs produced by this provider.
8
+ * This determines the size of recipient ID fields in encrypted messages.
9
+ */
10
+ readonly byteLength: number;
11
+ /**
12
+ * A human-readable name for this ID provider type.
13
+ * Examples: 'ObjectID', 'GUIDv4', 'UUIDv4', 'Custom'
14
+ */
15
+ readonly name: string;
16
+ /**
17
+ * Generate a new random ID.
18
+ * @returns A newly generated ID as a Uint8Array of length `byteLength`
19
+ */
20
+ generate(): Uint8Array;
21
+ /**
22
+ * Validate that a given buffer is a properly formatted ID for this provider.
23
+ * This should check length, format constraints, and any version bits if applicable.
24
+ * @param id The ID buffer to validate
25
+ * @returns True if the ID is valid for this provider, false otherwise
26
+ */
27
+ validate(id: Uint8Array): boolean;
28
+ /**
29
+ * Serialize an ID buffer to a human-readable string representation.
30
+ * Examples: hex string, base64, ObjectID hex, UUID format with dashes
31
+ * @param id The ID buffer to serialize
32
+ * @returns A string representation of the ID
33
+ * @throws Error if the ID is invalid
34
+ */
35
+ serialize(id: Uint8Array): string;
36
+ /**
37
+ * Deserialize a string representation back to an ID buffer.
38
+ * This is the inverse of `serialize`.
39
+ * @param str The string representation of the ID
40
+ * @returns The ID as a Uint8Array of length `byteLength`
41
+ * @throws Error if the string is not a valid representation
42
+ */
43
+ deserialize(str: string): Uint8Array;
44
+ /**
45
+ * Compare two IDs for equality.
46
+ * Default implementation uses constant-time comparison.
47
+ * @param a First ID
48
+ * @param b Second ID
49
+ * @returns True if IDs are equal, false otherwise
50
+ */
51
+ equals(a: Uint8Array, b: Uint8Array): boolean;
52
+ /**
53
+ * Clone an ID buffer.
54
+ * Default implementation creates a defensive copy.
55
+ * @param id The ID to clone
56
+ * @returns A new Uint8Array with the same contents
57
+ */
58
+ clone(id: Uint8Array): Uint8Array;
59
+ }
60
+ /**
61
+ * Base class for ID providers with common utility methods.
62
+ */
63
+ export declare abstract class BaseIdProvider implements IIdProvider {
64
+ abstract readonly byteLength: number;
65
+ abstract readonly name: string;
66
+ abstract generate(): Uint8Array;
67
+ abstract validate(id: Uint8Array): boolean;
68
+ abstract serialize(id: Uint8Array): string;
69
+ abstract deserialize(str: string): Uint8Array;
70
+ /**
71
+ * Constant-time comparison to prevent timing attacks.
72
+ */
73
+ equals(a: Uint8Array, b: Uint8Array): boolean;
74
+ /**
75
+ * Create a defensive copy of an ID.
76
+ */
77
+ clone(id: Uint8Array): Uint8Array;
78
+ /**
79
+ * Validate ID length matches expected byte length.
80
+ */
81
+ protected validateLength(id: Uint8Array, context: string): void;
82
+ }
83
+ //# sourceMappingURL=id-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-provider.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/id-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,IAAI,UAAU,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC;IAElC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAAC;IAElC;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;IAErC;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAE9C;;;;;OAKG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAAC;CACnC;AAED;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IACzD,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,QAAQ,IAAI,UAAU;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAC1C,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAE7C;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO;IAY7C;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU;IAIjC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAYhE"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Base class for ID providers with common utility methods.
3
+ */
4
+ export class BaseIdProvider {
5
+ /**
6
+ * Constant-time comparison to prevent timing attacks.
7
+ */
8
+ equals(a, b) {
9
+ if (a.length !== b.length) {
10
+ return false;
11
+ }
12
+ let diff = 0;
13
+ for (let i = 0; i < a.length; i++) {
14
+ diff |= a[i] ^ b[i];
15
+ }
16
+ return diff === 0;
17
+ }
18
+ /**
19
+ * Create a defensive copy of an ID.
20
+ */
21
+ clone(id) {
22
+ return new Uint8Array(id);
23
+ }
24
+ /**
25
+ * Validate ID length matches expected byte length.
26
+ */
27
+ validateLength(id, context) {
28
+ if (id.length !== this.byteLength) {
29
+ const { IdProviderError } = require('../errors/id-provider');
30
+ const { IdProviderErrorType } = require('../enumerations/id-provider-error-type');
31
+ throw new IdProviderError(IdProviderErrorType.InvalidLength, undefined, undefined, { context, expected: this.byteLength, actual: id.length });
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=id-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-provider.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/id-provider.ts"],"names":[],"mappings":"AAmEA;;GAEG;AACH,MAAM,OAAgB,cAAc;IASlC;;OAEG;IACH,MAAM,CAAC,CAAa,EAAE,CAAa;QACjC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,EAAc;QAClB,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,EAAc,EAAE,OAAe;QACtD,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,wCAAwC,CAAC,CAAC;YAClF,MAAM,IAAI,eAAe,CACvB,mBAAmB,CAAC,aAAa,EACjC,SAAS,EACT,SAAS,EACT,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -5,6 +5,7 @@ export * from './ecies-config';
5
5
  export * from './ecies-consts';
6
6
  export * from './ecies-file-service';
7
7
  export * from './frontend-member-operational';
8
+ export * from './guid';
8
9
  export * from './member-storage';
9
10
  export * from './member-with-mnemonic';
10
11
  export * from './pbkdf2-config';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AAErC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./checksum-config"), exports);
5
- tslib_1.__exportStar(require("./checksum-consts"), exports);
6
- tslib_1.__exportStar(require("./constants"), exports);
7
- tslib_1.__exportStar(require("./ecies-config"), exports);
8
- tslib_1.__exportStar(require("./ecies-consts"), exports);
9
- tslib_1.__exportStar(require("./ecies-file-service"), exports);
10
- tslib_1.__exportStar(require("./frontend-member-operational"), exports);
11
- tslib_1.__exportStar(require("./member-storage"), exports);
12
- tslib_1.__exportStar(require("./member-with-mnemonic"), exports);
13
- tslib_1.__exportStar(require("./pbkdf2-config"), exports);
14
- tslib_1.__exportStar(require("./pbkdf2-consts"), exports);
15
- tslib_1.__exportStar(require("./pbkdf2-result"), exports);
1
+ export * from './checksum-config';
2
+ export * from './checksum-consts';
3
+ export * from './constants';
4
+ export * from './ecies-config';
5
+ export * from './ecies-consts';
6
+ export * from './ecies-file-service';
7
+ export * from './frontend-member-operational';
8
+ export * from './guid';
9
+ export * from './member-storage';
10
+ export * from './member-with-mnemonic';
11
+ export * from './pbkdf2-config';
12
+ export * from './pbkdf2-consts';
13
+ export * from './pbkdf2-result';
16
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,4DAAkC;AAClC,sDAA4B;AAC5B,yDAA+B;AAC/B,yDAA+B;AAC/B,+DAAqC;AAErC,wEAA8C;AAC9C,2DAAiC;AACjC,iEAAuC;AACvC,0DAAgC;AAChC,0DAAgC;AAChC,0DAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}