@digitaldefiance/ecies-lib 4.4.13 → 4.4.15

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 (597) hide show
  1. package/package.json +5 -4
  2. package/src/builders/ecies-builder.d.ts +18 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +34 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/{index.ts → index.d.ts} +1 -1
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/index.js +9 -0
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +51 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +101 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +60 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +457 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +34 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +60 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/{index.ts → index.d.ts} +1 -1
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/index.js +9 -0
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +16 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +16 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/email-string.d.ts +42 -0
  31. package/src/email-string.d.ts.map +1 -0
  32. package/src/email-string.js +72 -0
  33. package/src/email-string.js.map +1 -0
  34. package/src/enumerations/disposed-error-type.d.ts +12 -0
  35. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  36. package/src/enumerations/disposed-error-type.js +16 -0
  37. package/src/enumerations/disposed-error-type.js.map +1 -0
  38. package/src/enumerations/ecies-cipher-suite.d.ts +4 -0
  39. package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -0
  40. package/src/enumerations/ecies-cipher-suite.js +9 -0
  41. package/src/enumerations/ecies-cipher-suite.js.map +1 -0
  42. package/src/enumerations/ecies-encryption-type.d.ts +11 -0
  43. package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
  44. package/src/enumerations/ecies-encryption-type.js +30 -0
  45. package/src/enumerations/ecies-encryption-type.js.map +1 -0
  46. package/src/enumerations/ecies-error-type.d.ts +44 -0
  47. package/src/enumerations/ecies-error-type.d.ts.map +1 -0
  48. package/src/enumerations/ecies-error-type.js +48 -0
  49. package/src/enumerations/ecies-error-type.js.map +1 -0
  50. package/src/enumerations/ecies-string-key.d.ts +192 -0
  51. package/src/enumerations/ecies-string-key.d.ts.map +1 -0
  52. package/src/enumerations/ecies-string-key.js +202 -0
  53. package/src/enumerations/ecies-string-key.js.map +1 -0
  54. package/src/enumerations/ecies-version.d.ts +4 -0
  55. package/src/enumerations/ecies-version.d.ts.map +1 -0
  56. package/src/enumerations/ecies-version.js +8 -0
  57. package/src/enumerations/ecies-version.js.map +1 -0
  58. package/src/enumerations/guid-brand-type.d.ts +27 -0
  59. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  60. package/src/enumerations/guid-brand-type.js +31 -0
  61. package/src/enumerations/guid-brand-type.js.map +1 -0
  62. package/src/enumerations/guid-error-type.d.ts +7 -0
  63. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  64. package/src/enumerations/guid-error-type.js +11 -0
  65. package/src/enumerations/guid-error-type.js.map +1 -0
  66. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  67. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  68. package/src/enumerations/id-provider-error-type.js +47 -0
  69. package/src/enumerations/id-provider-error-type.js.map +1 -0
  70. package/src/enumerations/{index.ts → index.d.ts} +1 -0
  71. package/src/enumerations/index.d.ts.map +1 -0
  72. package/src/enumerations/index.js +21 -0
  73. package/src/enumerations/index.js.map +1 -0
  74. package/src/enumerations/invalid-email-type.d.ts +6 -0
  75. package/src/enumerations/invalid-email-type.d.ts.map +1 -0
  76. package/src/enumerations/invalid-email-type.js +10 -0
  77. package/src/enumerations/invalid-email-type.js.map +1 -0
  78. package/src/enumerations/length-encoding-type.d.ts +7 -0
  79. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  80. package/src/enumerations/length-encoding-type.js +11 -0
  81. package/src/enumerations/length-encoding-type.js.map +1 -0
  82. package/src/enumerations/length-error-type.d.ts +6 -0
  83. package/src/enumerations/length-error-type.d.ts.map +1 -0
  84. package/src/enumerations/length-error-type.js +10 -0
  85. package/src/enumerations/length-error-type.js.map +1 -0
  86. package/src/enumerations/member-error-type.d.ts +87 -0
  87. package/src/enumerations/member-error-type.d.ts.map +1 -0
  88. package/src/enumerations/member-error-type.js +91 -0
  89. package/src/enumerations/member-error-type.js.map +1 -0
  90. package/src/enumerations/{member-type.ts → member-type.d.ts} +6 -7
  91. package/src/enumerations/member-type.d.ts.map +1 -0
  92. package/src/enumerations/member-type.js +19 -0
  93. package/src/enumerations/member-type.js.map +1 -0
  94. package/src/enumerations/password-login-error-type.d.ts +5 -0
  95. package/src/enumerations/password-login-error-type.d.ts.map +1 -0
  96. package/src/enumerations/password-login-error-type.js +9 -0
  97. package/src/enumerations/password-login-error-type.js.map +1 -0
  98. package/src/enumerations/pbkdf2-error-type.d.ts +6 -0
  99. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  100. package/src/enumerations/pbkdf2-error-type.js +10 -0
  101. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  102. package/src/enumerations/pbkdf2-profile.d.ts +6 -0
  103. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  104. package/src/enumerations/pbkdf2-profile.js +10 -0
  105. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  106. package/src/enumerations/secure-storage-error-type.d.ts +6 -0
  107. package/src/enumerations/secure-storage-error-type.d.ts.map +1 -0
  108. package/src/enumerations/secure-storage-error-type.js +10 -0
  109. package/src/enumerations/secure-storage-error-type.js.map +1 -0
  110. package/src/errors/disposed.d.ts +22 -0
  111. package/src/errors/disposed.d.ts.map +1 -0
  112. package/src/errors/disposed.js +32 -0
  113. package/src/errors/disposed.js.map +1 -0
  114. package/src/errors/ecies.d.ts +52 -0
  115. package/src/errors/ecies.d.ts.map +1 -0
  116. package/src/errors/ecies.js +82 -0
  117. package/src/errors/ecies.js.map +1 -0
  118. package/src/errors/guid.d.ts +49 -0
  119. package/src/errors/guid.d.ts.map +1 -0
  120. package/src/errors/guid.js +100 -0
  121. package/src/errors/guid.js.map +1 -0
  122. package/src/errors/id-provider.d.ts +23 -0
  123. package/src/errors/id-provider.d.ts.map +1 -0
  124. package/src/errors/id-provider.js +33 -0
  125. package/src/errors/id-provider.js.map +1 -0
  126. package/src/errors/{index.ts → index.d.ts} +1 -0
  127. package/src/errors/index.d.ts.map +1 -0
  128. package/src/errors/index.js +13 -0
  129. package/src/errors/index.js.map +1 -0
  130. package/src/errors/invalid-email.d.ts +8 -0
  131. package/src/errors/invalid-email.d.ts.map +1 -0
  132. package/src/errors/invalid-email.js +19 -0
  133. package/src/errors/invalid-email.js.map +1 -0
  134. package/src/errors/length.d.ts +7 -0
  135. package/src/errors/length.d.ts.map +1 -0
  136. package/src/errors/length.js +15 -0
  137. package/src/errors/length.js.map +1 -0
  138. package/src/errors/member.d.ts +7 -0
  139. package/src/errors/member.d.ts.map +1 -0
  140. package/src/errors/member.js +15 -0
  141. package/src/errors/member.js.map +1 -0
  142. package/src/errors/pbkdf2.d.ts +7 -0
  143. package/src/errors/pbkdf2.d.ts.map +1 -0
  144. package/src/errors/pbkdf2.js +15 -0
  145. package/src/errors/pbkdf2.js.map +1 -0
  146. package/src/errors/secure-storage.d.ts +7 -0
  147. package/src/errors/secure-storage.d.ts.map +1 -0
  148. package/src/errors/secure-storage.js +16 -0
  149. package/src/errors/secure-storage.js.map +1 -0
  150. package/src/errors/simple-ecies.d.ts +6 -0
  151. package/src/errors/simple-ecies.d.ts.map +1 -0
  152. package/src/errors/simple-ecies.js +16 -0
  153. package/src/errors/simple-ecies.js.map +1 -0
  154. package/src/errors/simple-test-error.d.ts +4 -0
  155. package/src/errors/simple-test-error.d.ts.map +1 -0
  156. package/src/errors/simple-test-error.js +11 -0
  157. package/src/errors/simple-test-error.js.map +1 -0
  158. package/src/i18n-setup.d.ts +32 -0
  159. package/src/i18n-setup.d.ts.map +1 -0
  160. package/src/i18n-setup.js +109 -0
  161. package/src/i18n-setup.js.map +1 -0
  162. package/src/{index.ts → index.d.ts} +12 -72
  163. package/src/index.d.ts.map +1 -0
  164. package/src/index.js +146 -0
  165. package/src/index.js.map +1 -0
  166. package/src/interfaces/checksum-config.d.ts +5 -0
  167. package/src/interfaces/checksum-config.d.ts.map +1 -0
  168. package/src/interfaces/checksum-config.js +3 -0
  169. package/src/interfaces/checksum-config.js.map +1 -0
  170. package/src/interfaces/checksum-consts.d.ts +11 -0
  171. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  172. package/src/interfaces/checksum-consts.js +3 -0
  173. package/src/interfaces/checksum-consts.js.map +1 -0
  174. package/src/interfaces/configuration-provenance.d.ts +43 -0
  175. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  176. package/src/interfaces/configuration-provenance.js +8 -0
  177. package/src/interfaces/configuration-provenance.js.map +1 -0
  178. package/src/interfaces/constants.d.ts +70 -0
  179. package/src/interfaces/constants.d.ts.map +1 -0
  180. package/src/interfaces/constants.js +3 -0
  181. package/src/interfaces/constants.js.map +1 -0
  182. package/src/interfaces/ecies-config.d.ts +9 -0
  183. package/src/interfaces/ecies-config.d.ts.map +1 -0
  184. package/src/interfaces/ecies-config.js +3 -0
  185. package/src/interfaces/ecies-config.js.map +1 -0
  186. package/src/interfaces/ecies-consts.d.ts +61 -0
  187. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  188. package/src/interfaces/ecies-consts.js +3 -0
  189. package/src/interfaces/ecies-consts.js.map +1 -0
  190. package/src/interfaces/ecies-file-service.d.ts +7 -0
  191. package/src/interfaces/ecies-file-service.d.ts.map +1 -0
  192. package/src/interfaces/ecies-file-service.js +3 -0
  193. package/src/interfaces/ecies-file-service.js.map +1 -0
  194. package/src/interfaces/encrypted-chunk.d.ts +55 -0
  195. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  196. package/src/interfaces/encrypted-chunk.js +15 -0
  197. package/src/interfaces/encrypted-chunk.js.map +1 -0
  198. package/src/interfaces/encryption-state.d.ts +18 -0
  199. package/src/interfaces/encryption-state.d.ts.map +1 -0
  200. package/src/interfaces/encryption-state.js +5 -0
  201. package/src/interfaces/encryption-state.js.map +1 -0
  202. package/src/interfaces/frontend-member-operational.d.ts +51 -0
  203. package/src/interfaces/frontend-member-operational.d.ts.map +1 -0
  204. package/src/interfaces/frontend-member-operational.js +3 -0
  205. package/src/interfaces/frontend-member-operational.js.map +1 -0
  206. package/src/interfaces/guid.d.ts +78 -0
  207. package/src/interfaces/guid.d.ts.map +1 -0
  208. package/src/interfaces/guid.js +3 -0
  209. package/src/interfaces/guid.js.map +1 -0
  210. package/src/interfaces/id-provider.d.ts +107 -0
  211. package/src/interfaces/id-provider.d.ts.map +1 -0
  212. package/src/interfaces/id-provider.js +56 -0
  213. package/src/interfaces/id-provider.js.map +1 -0
  214. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  215. package/src/interfaces/index.d.ts.map +1 -0
  216. package/src/interfaces/index.js +16 -0
  217. package/src/interfaces/index.js.map +1 -0
  218. package/src/interfaces/invariant.d.ts +46 -0
  219. package/src/interfaces/invariant.d.ts.map +1 -0
  220. package/src/interfaces/invariant.js +22 -0
  221. package/src/interfaces/invariant.js.map +1 -0
  222. package/src/interfaces/library-error.d.ts +23 -0
  223. package/src/interfaces/library-error.d.ts.map +1 -0
  224. package/src/interfaces/library-error.js +3 -0
  225. package/src/interfaces/library-error.js.map +1 -0
  226. package/src/interfaces/{member-storage.ts → member-storage.d.ts} +10 -11
  227. package/src/interfaces/member-storage.d.ts.map +1 -0
  228. package/src/interfaces/member-storage.js +3 -0
  229. package/src/interfaces/member-storage.js.map +1 -0
  230. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  231. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  232. package/src/interfaces/member-with-mnemonic.js +3 -0
  233. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  234. package/src/interfaces/member.d.ts +55 -0
  235. package/src/interfaces/member.d.ts.map +1 -0
  236. package/src/interfaces/member.js +3 -0
  237. package/src/interfaces/member.js.map +1 -0
  238. package/src/interfaces/multi-recipient-chunk.d.ts +54 -0
  239. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  240. package/src/interfaces/multi-recipient-chunk.js +16 -0
  241. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  242. package/src/interfaces/pbkdf2-config.d.ts +7 -0
  243. package/src/interfaces/pbkdf2-config.d.ts.map +1 -0
  244. package/src/interfaces/pbkdf2-config.js +3 -0
  245. package/src/interfaces/pbkdf2-config.js.map +1 -0
  246. package/src/interfaces/pbkdf2-consts.d.ts +9 -0
  247. package/src/interfaces/pbkdf2-consts.d.ts.map +1 -0
  248. package/src/interfaces/pbkdf2-consts.js +3 -0
  249. package/src/interfaces/pbkdf2-consts.js.map +1 -0
  250. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  251. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  252. package/src/interfaces/pbkdf2-result.js +3 -0
  253. package/src/interfaces/pbkdf2-result.js.map +1 -0
  254. package/src/interfaces/stream-config.d.ts +14 -0
  255. package/src/interfaces/stream-config.d.ts.map +1 -0
  256. package/src/interfaces/stream-config.js +11 -0
  257. package/src/interfaces/stream-config.js.map +1 -0
  258. package/src/interfaces/stream-header.d.ts +29 -0
  259. package/src/interfaces/stream-header.d.ts.map +1 -0
  260. package/src/interfaces/stream-header.js +12 -0
  261. package/src/interfaces/stream-header.js.map +1 -0
  262. package/src/interfaces/stream-progress.d.ts +33 -0
  263. package/src/interfaces/stream-progress.d.ts.map +1 -0
  264. package/src/interfaces/stream-progress.js +3 -0
  265. package/src/interfaces/stream-progress.js.map +1 -0
  266. package/src/lib/configuration-provenance-utils.d.ts +11 -0
  267. package/src/lib/configuration-provenance-utils.d.ts.map +1 -0
  268. package/src/lib/configuration-provenance-utils.js +30 -0
  269. package/src/lib/configuration-provenance-utils.js.map +1 -0
  270. package/src/lib/crypto-container.d.ts +25 -0
  271. package/src/lib/crypto-container.d.ts.map +1 -0
  272. package/src/lib/crypto-container.js +50 -0
  273. package/src/lib/crypto-container.js.map +1 -0
  274. package/src/lib/guid.d.ts +344 -0
  275. package/src/lib/guid.d.ts.map +1 -0
  276. package/src/lib/guid.js +919 -0
  277. package/src/lib/guid.js.map +1 -0
  278. package/src/lib/id-providers/custom-provider.d.ts +46 -0
  279. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  280. package/src/lib/id-providers/custom-provider.js +89 -0
  281. package/src/lib/id-providers/custom-provider.js.map +1 -0
  282. package/src/lib/id-providers/guidv4-provider.d.ts +56 -0
  283. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  284. package/src/lib/id-providers/guidv4-provider.js +126 -0
  285. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  286. package/src/lib/id-providers/{index.ts → index.d.ts} +5 -6
  287. package/src/lib/id-providers/index.d.ts.map +1 -0
  288. package/src/lib/id-providers/index.js +37 -0
  289. package/src/lib/id-providers/index.js.map +1 -0
  290. package/src/lib/id-providers/objectid-provider.d.ts +43 -0
  291. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  292. package/src/lib/id-providers/objectid-provider.js +108 -0
  293. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  294. package/src/lib/id-providers/uuid-provider.d.ts +52 -0
  295. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  296. package/src/lib/id-providers/uuid-provider.js +114 -0
  297. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  298. package/src/lib/{index.ts → index.d.ts} +2 -2
  299. package/src/lib/index.d.ts.map +1 -0
  300. package/src/lib/index.js +9 -0
  301. package/src/lib/index.js.map +1 -0
  302. package/src/lib/invariant-validator.d.ts +59 -0
  303. package/src/lib/invariant-validator.d.ts.map +1 -0
  304. package/src/lib/invariant-validator.js +101 -0
  305. package/src/lib/invariant-validator.js.map +1 -0
  306. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  307. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  308. package/src/lib/invariants/encryption-algorithm-consistency.js +53 -0
  309. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  310. package/src/lib/invariants/{index.ts → index.d.ts} +1 -0
  311. package/src/lib/invariants/index.d.ts.map +1 -0
  312. package/src/lib/invariants/index.js +7 -0
  313. package/src/lib/invariants/index.js.map +1 -0
  314. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  315. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  316. package/src/lib/invariants/pbkdf2-profiles-validity.js +62 -0
  317. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  318. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  319. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  320. package/src/lib/invariants/recipient-id-consistency.js +35 -0
  321. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  322. package/src/lib/multi-recipient-chunk-utils.d.ts +38 -0
  323. package/src/lib/multi-recipient-chunk-utils.d.ts.map +1 -0
  324. package/src/lib/multi-recipient-chunk-utils.js +45 -0
  325. package/src/lib/multi-recipient-chunk-utils.js.map +1 -0
  326. package/src/member.d.ts +92 -0
  327. package/src/member.d.ts.map +1 -0
  328. package/src/member.js +327 -0
  329. package/src/member.js.map +1 -0
  330. package/src/{pbkdf2-profiles.ts → pbkdf2-profiles.d.ts} +2 -2
  331. package/src/pbkdf2-profiles.d.ts.map +1 -0
  332. package/src/pbkdf2-profiles.js +3 -0
  333. package/src/pbkdf2-profiles.js.map +1 -0
  334. package/src/phone-number.d.ts +6 -0
  335. package/src/phone-number.d.ts.map +1 -0
  336. package/src/phone-number.js +22 -0
  337. package/src/phone-number.js.map +1 -0
  338. package/src/regexes.d.ts +7 -0
  339. package/src/regexes.d.ts.map +1 -0
  340. package/src/regexes.js +10 -0
  341. package/src/regexes.js.map +1 -0
  342. package/src/secure-buffer.d.ts +61 -0
  343. package/src/secure-buffer.d.ts.map +1 -0
  344. package/src/secure-buffer.js +205 -0
  345. package/src/secure-buffer.js.map +1 -0
  346. package/src/secure-string.d.ts +46 -0
  347. package/src/secure-string.d.ts.map +1 -0
  348. package/src/secure-string.js +210 -0
  349. package/src/secure-string.js.map +1 -0
  350. package/src/services/aes-gcm.d.ts +57 -0
  351. package/src/services/aes-gcm.d.ts.map +1 -0
  352. package/src/services/aes-gcm.js +146 -0
  353. package/src/services/aes-gcm.js.map +1 -0
  354. package/src/services/chunk-processor.d.ts +31 -0
  355. package/src/services/chunk-processor.d.ts.map +1 -0
  356. package/src/services/chunk-processor.js +149 -0
  357. package/src/services/chunk-processor.js.map +1 -0
  358. package/src/services/ecies/crypto-core.d.ts +72 -0
  359. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  360. package/src/services/ecies/crypto-core.js +209 -0
  361. package/src/services/ecies/crypto-core.js.map +1 -0
  362. package/src/services/ecies/example.d.ts +25 -0
  363. package/src/services/ecies/example.d.ts.map +1 -0
  364. package/src/services/ecies/example.js +128 -0
  365. package/src/services/ecies/example.js.map +1 -0
  366. package/src/services/ecies/file.d.ts +18 -0
  367. package/src/services/ecies/file.d.ts.map +1 -0
  368. package/src/services/ecies/file.js +110 -0
  369. package/src/services/ecies/file.js.map +1 -0
  370. package/src/services/ecies/{index.ts → index.d.ts} +1 -3
  371. package/src/services/ecies/index.d.ts.map +1 -0
  372. package/src/services/ecies/index.js +44 -0
  373. package/src/services/ecies/index.js.map +1 -0
  374. package/src/services/ecies/integration.d.ts +59 -0
  375. package/src/services/ecies/integration.d.ts.map +1 -0
  376. package/src/services/ecies/integration.js +172 -0
  377. package/src/services/ecies/integration.js.map +1 -0
  378. package/src/services/ecies/interfaces.d.ts +54 -0
  379. package/src/services/ecies/interfaces.d.ts.map +1 -0
  380. package/src/services/ecies/interfaces.js +6 -0
  381. package/src/services/ecies/interfaces.js.map +1 -0
  382. package/src/services/ecies/manual-test.d.ts +29 -0
  383. package/src/services/ecies/manual-test.d.ts.map +1 -0
  384. package/src/services/ecies/manual-test.js +171 -0
  385. package/src/services/ecies/manual-test.js.map +1 -0
  386. package/src/services/ecies/multi-recipient.d.ts +56 -0
  387. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  388. package/src/services/ecies/multi-recipient.js +348 -0
  389. package/src/services/ecies/multi-recipient.js.map +1 -0
  390. package/src/services/ecies/service.d.ts +120 -0
  391. package/src/services/ecies/service.d.ts.map +1 -0
  392. package/src/services/ecies/service.js +214 -0
  393. package/src/services/ecies/service.js.map +1 -0
  394. package/src/services/ecies/signature.d.ts +27 -0
  395. package/src/services/ecies/signature.d.ts.map +1 -0
  396. package/src/services/ecies/signature.js +76 -0
  397. package/src/services/ecies/signature.js.map +1 -0
  398. package/src/services/ecies/single-recipient.d.ts +46 -0
  399. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  400. package/src/services/ecies/single-recipient.js +326 -0
  401. package/src/services/ecies/single-recipient.js.map +1 -0
  402. package/src/services/encryption-stream.d.ts +71 -0
  403. package/src/services/encryption-stream.d.ts.map +1 -0
  404. package/src/services/encryption-stream.js +299 -0
  405. package/src/services/encryption-stream.js.map +1 -0
  406. package/src/services/{index.ts → index.d.ts} +1 -0
  407. package/src/services/index.d.ts.map +1 -0
  408. package/src/services/index.js +14 -0
  409. package/src/services/index.js.map +1 -0
  410. package/src/services/multi-recipient-processor.d.ts +35 -0
  411. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  412. package/src/services/multi-recipient-processor.js +293 -0
  413. package/src/services/multi-recipient-processor.js.map +1 -0
  414. package/src/services/password-login.d.ts +47 -0
  415. package/src/services/password-login.d.ts.map +1 -0
  416. package/src/services/password-login.js +119 -0
  417. package/src/services/password-login.js.map +1 -0
  418. package/src/services/pbkdf2.d.ts +54 -0
  419. package/src/services/pbkdf2.d.ts.map +1 -0
  420. package/src/services/pbkdf2.js +112 -0
  421. package/src/services/pbkdf2.js.map +1 -0
  422. package/src/services/progress-tracker.d.ts +23 -0
  423. package/src/services/progress-tracker.d.ts.map +1 -0
  424. package/src/services/progress-tracker.js +107 -0
  425. package/src/services/progress-tracker.js.map +1 -0
  426. package/src/services/resumable-encryption.d.ts +19 -0
  427. package/src/services/resumable-encryption.d.ts.map +1 -0
  428. package/src/services/resumable-encryption.js +109 -0
  429. package/src/services/resumable-encryption.js.map +1 -0
  430. package/src/services/xor.d.ts +37 -0
  431. package/src/services/xor.d.ts.map +1 -0
  432. package/src/services/xor.js +67 -0
  433. package/src/services/xor.js.map +1 -0
  434. package/src/test-mocks/index.d.ts +2 -0
  435. package/src/test-mocks/index.d.ts.map +1 -0
  436. package/src/test-mocks/index.js +5 -0
  437. package/src/test-mocks/index.js.map +1 -0
  438. package/src/test-mocks/mock-frontend-member.d.ts +85 -0
  439. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -0
  440. package/src/test-mocks/mock-frontend-member.js +194 -0
  441. package/src/test-mocks/mock-frontend-member.js.map +1 -0
  442. package/src/testing.d.ts +2 -0
  443. package/src/testing.d.ts.map +1 -0
  444. package/src/testing.js +6 -0
  445. package/src/testing.js.map +1 -0
  446. package/src/translations/de.d.ts +4 -0
  447. package/src/translations/de.d.ts.map +1 -0
  448. package/src/translations/de.js +207 -0
  449. package/src/translations/de.js.map +1 -0
  450. package/src/translations/en-US.d.ts +4 -0
  451. package/src/translations/en-US.d.ts.map +1 -0
  452. package/src/translations/en-US.js +207 -0
  453. package/src/translations/en-US.js.map +1 -0
  454. package/src/translations/es.d.ts +4 -0
  455. package/src/translations/es.d.ts.map +1 -0
  456. package/src/translations/es.js +207 -0
  457. package/src/translations/es.js.map +1 -0
  458. package/src/translations/fr.d.ts +4 -0
  459. package/src/translations/fr.d.ts.map +1 -0
  460. package/src/translations/fr.js +207 -0
  461. package/src/translations/fr.js.map +1 -0
  462. package/src/translations/ja.d.ts +4 -0
  463. package/src/translations/ja.d.ts.map +1 -0
  464. package/src/translations/ja.js +206 -0
  465. package/src/translations/ja.js.map +1 -0
  466. package/src/translations/uk.d.ts +4 -0
  467. package/src/translations/uk.d.ts.map +1 -0
  468. package/src/translations/uk.js +209 -0
  469. package/src/translations/uk.js.map +1 -0
  470. package/src/translations/zh-cn.d.ts +4 -0
  471. package/src/translations/zh-cn.d.ts.map +1 -0
  472. package/src/translations/zh-cn.js +206 -0
  473. package/src/translations/zh-cn.js.map +1 -0
  474. package/src/types/deep-partial.d.ts +4 -0
  475. package/src/types/deep-partial.d.ts.map +1 -0
  476. package/src/types/deep-partial.js +3 -0
  477. package/src/types/deep-partial.js.map +1 -0
  478. package/src/{types.ts → types.d.ts} +7 -15
  479. package/src/types.d.ts.map +1 -0
  480. package/src/types.js +3 -0
  481. package/src/types.js.map +1 -0
  482. package/src/utils/encryption-type-utils.d.ts +29 -0
  483. package/src/utils/encryption-type-utils.d.ts.map +1 -0
  484. package/src/utils/encryption-type-utils.js +67 -0
  485. package/src/utils/encryption-type-utils.js.map +1 -0
  486. package/src/utils.d.ts +68 -0
  487. package/src/utils.d.ts.map +1 -0
  488. package/src/utils.js +291 -0
  489. package/src/utils.js.map +1 -0
  490. package/LICENSE +0 -21
  491. package/src/builders/ecies-builder.ts +0 -39
  492. package/src/builders/member-builder.ts +0 -155
  493. package/src/constants.ts +0 -609
  494. package/src/core/errors/crypto-error.ts +0 -78
  495. package/src/core/types/result.ts +0 -19
  496. package/src/email-string.ts +0 -82
  497. package/src/enumerations/disposed-error-type.ts +0 -11
  498. package/src/enumerations/ecies-cipher-suite.ts +0 -4
  499. package/src/enumerations/ecies-encryption-type.ts +0 -41
  500. package/src/enumerations/ecies-error-type.ts +0 -43
  501. package/src/enumerations/ecies-string-key.ts +0 -205
  502. package/src/enumerations/ecies-version.ts +0 -3
  503. package/src/enumerations/guid-brand-type.ts +0 -26
  504. package/src/enumerations/guid-error-type.ts +0 -6
  505. package/src/enumerations/id-provider-error-type.ts +0 -50
  506. package/src/enumerations/invalid-email-type.ts +0 -5
  507. package/src/enumerations/length-encoding-type.ts +0 -6
  508. package/src/enumerations/length-error-type.ts +0 -5
  509. package/src/enumerations/member-error-type.ts +0 -106
  510. package/src/enumerations/password-login-error-type.ts +0 -4
  511. package/src/enumerations/pbkdf2-error-type.ts +0 -5
  512. package/src/enumerations/pbkdf2-profile.ts +0 -5
  513. package/src/enumerations/secure-storage-error-type.ts +0 -5
  514. package/src/errors/disposed.ts +0 -36
  515. package/src/errors/ecies.ts +0 -153
  516. package/src/errors/guid.ts +0 -130
  517. package/src/errors/id-provider.ts +0 -40
  518. package/src/errors/invalid-email.ts +0 -23
  519. package/src/errors/length.ts +0 -19
  520. package/src/errors/member.ts +0 -20
  521. package/src/errors/pbkdf2.ts +0 -20
  522. package/src/errors/secure-storage.ts +0 -17
  523. package/src/errors/simple-ecies.ts +0 -21
  524. package/src/errors/simple-test-error.ts +0 -6
  525. package/src/i18n-setup.ts +0 -130
  526. package/src/interfaces/checksum-config.ts +0 -4
  527. package/src/interfaces/checksum-consts.ts +0 -13
  528. package/src/interfaces/configuration-provenance.ts +0 -54
  529. package/src/interfaces/constants.ts +0 -75
  530. package/src/interfaces/ecies-config.ts +0 -8
  531. package/src/interfaces/ecies-consts.ts +0 -76
  532. package/src/interfaces/ecies-file-service.ts +0 -6
  533. package/src/interfaces/encrypted-chunk.ts +0 -64
  534. package/src/interfaces/encryption-state.ts +0 -19
  535. package/src/interfaces/frontend-member-operational.ts +0 -77
  536. package/src/interfaces/guid.ts +0 -86
  537. package/src/interfaces/id-provider.ts +0 -152
  538. package/src/interfaces/invariant.ts +0 -60
  539. package/src/interfaces/library-error.ts +0 -23
  540. package/src/interfaces/member.ts +0 -84
  541. package/src/interfaces/multi-recipient-chunk.ts +0 -61
  542. package/src/interfaces/pbkdf2-config.ts +0 -6
  543. package/src/interfaces/pbkdf2-consts.ts +0 -10
  544. package/src/interfaces/pbkdf2-result.ts +0 -5
  545. package/src/interfaces/stream-config.ts +0 -17
  546. package/src/interfaces/stream-header.ts +0 -34
  547. package/src/interfaces/stream-progress.ts +0 -31
  548. package/src/lib/configuration-provenance-utils.ts +0 -29
  549. package/src/lib/crypto-container.ts +0 -64
  550. package/src/lib/guid.ts +0 -1097
  551. package/src/lib/id-providers/custom-provider.ts +0 -109
  552. package/src/lib/id-providers/guidv4-provider.ts +0 -141
  553. package/src/lib/id-providers/objectid-provider.ts +0 -125
  554. package/src/lib/id-providers/uuid-provider.ts +0 -133
  555. package/src/lib/invariant-validator.ts +0 -133
  556. package/src/lib/invariants/encryption-algorithm-consistency.ts +0 -73
  557. package/src/lib/invariants/pbkdf2-profiles-validity.ts +0 -78
  558. package/src/lib/invariants/recipient-id-consistency.ts +0 -46
  559. package/src/lib/multi-recipient-chunk-utils.ts +0 -63
  560. package/src/member.ts +0 -495
  561. package/src/phone-number.ts +0 -18
  562. package/src/regexes.ts +0 -10
  563. package/src/secure-buffer.ts +0 -226
  564. package/src/secure-string.ts +0 -244
  565. package/src/services/aes-gcm.ts +0 -220
  566. package/src/services/chunk-processor.ts +0 -188
  567. package/src/services/ecies/README.md +0 -147
  568. package/src/services/ecies/crypto-core.ts +0 -292
  569. package/src/services/ecies/example.ts +0 -185
  570. package/src/services/ecies/file.ts +0 -167
  571. package/src/services/ecies/integration.ts +0 -241
  572. package/src/services/ecies/interfaces.ts +0 -62
  573. package/src/services/ecies/manual-test.ts +0 -219
  574. package/src/services/ecies/multi-recipient.ts +0 -545
  575. package/src/services/ecies/service.ts +0 -370
  576. package/src/services/ecies/signature.ts +0 -93
  577. package/src/services/ecies/single-recipient.ts +0 -476
  578. package/src/services/encryption-stream.ts +0 -435
  579. package/src/services/multi-recipient-processor.ts +0 -377
  580. package/src/services/password-login.ts +0 -226
  581. package/src/services/pbkdf2.ts +0 -169
  582. package/src/services/progress-tracker.ts +0 -128
  583. package/src/services/resumable-encryption.ts +0 -135
  584. package/src/services/xor.ts +0 -65
  585. package/src/test-mocks/index.ts +0 -1
  586. package/src/test-mocks/mock-frontend-member.ts +0 -276
  587. package/src/testing.ts +0 -2
  588. package/src/translations/de.ts +0 -260
  589. package/src/translations/en-US.ts +0 -262
  590. package/src/translations/es.ts +0 -271
  591. package/src/translations/fr.ts +0 -269
  592. package/src/translations/ja.ts +0 -259
  593. package/src/translations/uk.ts +0 -271
  594. package/src/translations/zh-cn.ts +0 -234
  595. package/src/types/deep-partial.ts +0 -11
  596. package/src/utils/encryption-type-utils.ts +0 -76
  597. package/src/utils.ts +0 -329
package/src/constants.ts DELETED
@@ -1,609 +0,0 @@
1
- import { ECIESErrorTypeEnum, EciesStringKey } from './enumerations';
2
- import { Pbkdf2ProfileEnum } from './enumerations/pbkdf2-profile';
3
- import { ECIESError } from './errors/ecies';
4
- import { EciesComponentId, getEciesI18nEngine } from './i18n-setup';
5
- import type { IChecksumConsts } from './interfaces/checksum-consts';
6
- import type { IConfigurationProvenance } from './interfaces/configuration-provenance';
7
- import {
8
- calculateConfigChecksum,
9
- captureCreationStack,
10
- } from './interfaces/configuration-provenance';
11
- import type { IConstants } from './interfaces/constants';
12
- import type { IECIESConstants } from './interfaces/ecies-consts';
13
- import type { IPBkdf2Consts } from './interfaces/pbkdf2-consts';
14
- import { ObjectIdProvider } from './lib/id-providers/objectid-provider';
15
- import { InvariantValidator } from './lib/invariant-validator';
16
- import type { Pbkdf2Profiles } from './pbkdf2-profiles';
17
- import { MNEMONIC_REGEX, PASSWORD_REGEX } from './regexes';
18
- import type { DeepPartial } from './types/deep-partial';
19
-
20
- export const UINT8_SIZE: number = 1 as const;
21
- export const UINT16_SIZE: number = 2 as const;
22
- export const UINT16_MAX: number = 65535 as const;
23
- export const UINT32_SIZE: number = 4 as const;
24
- export const UINT32_MAX: number = 4294967295 as const;
25
- export const UINT64_SIZE: number = 8 as const;
26
- export const UINT64_MAX: bigint = 18446744073709551615n as const;
27
- export const OBJECT_ID_LENGTH: number = 12 as const;
28
-
29
- if (OBJECT_ID_LENGTH !== 12) {
30
- console.warn(
31
- 'ObjectID length may have changed, breaking encryption',
32
- OBJECT_ID_LENGTH,
33
- );
34
- }
35
-
36
- /**
37
- * Constants for checksum operations
38
- * These values are critical for data integrity and MUST NOT be changed
39
- * in an already established system as it will break all existing checksums.
40
- */
41
- export const CHECKSUM: IChecksumConsts = Object.freeze({
42
- /** Default hash bits for SHA3 */
43
- SHA3_DEFAULT_HASH_BITS: 512 as const,
44
-
45
- /** Length of a SHA3 checksum buffer in bytes */
46
- SHA3_BUFFER_LENGTH: 64 as const,
47
-
48
- /** algorithm to use for checksum */
49
- ALGORITHM: 'sha3-512' as const,
50
-
51
- /** encoding to use for checksum */
52
- ENCODING: 'hex' as const,
53
- } as const);
54
-
55
- export const PBKDF2: IPBkdf2Consts = Object.freeze({
56
- ALGORITHM: 'SHA-256' as const,
57
- SALT_BYTES: 32 as const,
58
- /**
59
- * Number of pbkdf2 iterations per second when hashing a password.
60
- * This is the high-security default for user login operations.
61
- */
62
- ITERATIONS_PER_SECOND: 1304000 as const,
63
- } as const);
64
-
65
- export const PBKDF2_PROFILES: Pbkdf2Profiles = Object.freeze({
66
- [Pbkdf2ProfileEnum.BROWSER_PASSWORD]: Object.freeze({
67
- hashBytes: 32 as const,
68
- saltBytes: 64 as const,
69
- iterations: 2000000 as const,
70
- algorithm: 'SHA-512' as const,
71
- } as const),
72
- [Pbkdf2ProfileEnum.HIGH_SECURITY]: Object.freeze({
73
- hashBytes: 64 as const,
74
- saltBytes: 32 as const,
75
- iterations: 5000000 as const,
76
- algorithm: 'SHA-256' as const,
77
- } as const),
78
- [Pbkdf2ProfileEnum.TEST_FAST]: Object.freeze({
79
- hashBytes: 32 as const,
80
- saltBytes: 64 as const,
81
- iterations: 1000 as const,
82
- algorithm: 'SHA-512' as const,
83
- } as const),
84
- } as const);
85
-
86
- const ECIES_SYMMETRIC_KEY_SIZE = 32 as const;
87
- const ECIES_PUBLIC_KEY_LENGTH = 33 as const;
88
- const ECIES_RAW_PUBLIC_KEY_LENGTH = 32 as const;
89
- const ECIES_IV_SIZE = 12 as const;
90
- const ECIES_AUTH_TAG_SIZE = 16 as const;
91
- const ECIES_MULTIPLE_RECIPIENT_ID_SIZE = 12 as const;
92
- const ECIES_VERSION_SIZE = 1 as const;
93
- const ECIES_CIPHER_SUITE_SIZE = 1 as const;
94
-
95
- // Define the expected value for SIMPLE.FIXED_OVERHEAD_SIZE
96
- const expectedSimpleOverhead =
97
- ECIES_VERSION_SIZE +
98
- ECIES_CIPHER_SUITE_SIZE +
99
- UINT8_SIZE +
100
- ECIES_PUBLIC_KEY_LENGTH +
101
- ECIES_IV_SIZE +
102
- ECIES_AUTH_TAG_SIZE;
103
-
104
- // Define the expected value for MULTIPLE.FIXED_OVERHEAD_SIZE
105
- // Includes: version (1) + cipher suite (1) + type (1) + public key (33) + IV (16) + auth tag (16) = 68 (no CRC, AES-GCM provides authentication)
106
- const expectedMultipleOverhead =
107
- ECIES_VERSION_SIZE +
108
- ECIES_CIPHER_SUITE_SIZE +
109
- UINT8_SIZE +
110
- ECIES_PUBLIC_KEY_LENGTH +
111
- ECIES_IV_SIZE +
112
- ECIES_AUTH_TAG_SIZE;
113
-
114
- // Update ENCRYPTED_KEY_SIZE to match Simple encryption (no CRC)
115
- // Now only contains IV + Tag + EncryptedSymKey (Public Key is moved to global header)
116
- const expectedMultipleEncryptedKeySize =
117
- ECIES_IV_SIZE + ECIES_AUTH_TAG_SIZE + ECIES_SYMMETRIC_KEY_SIZE;
118
-
119
- export const ECIES: IECIESConstants = Object.freeze({
120
- /** The elliptic curve to use for all ECDSA operations */
121
- CURVE_NAME: 'secp256k1' as const,
122
-
123
- /** The primary key derivation path for HD wallets */
124
- PRIMARY_KEY_DERIVATION_PATH: "m/44'/60'/0'/0/0" as const,
125
-
126
- SYMMETRIC_ALGORITHM_CONFIGURATION: 'aes-256-gcm' as const,
127
-
128
- /** Length of ECDSA signatures in bytes */
129
- SIGNATURE_SIZE: 64 as const,
130
-
131
- /** Length of raw public keys in bytes (without 0x04 prefix) */
132
- RAW_PUBLIC_KEY_LENGTH: ECIES_RAW_PUBLIC_KEY_LENGTH,
133
-
134
- /** Length of public keys in bytes (with 0x02/0x03 prefix) */
135
- PUBLIC_KEY_LENGTH: ECIES_PUBLIC_KEY_LENGTH,
136
-
137
- PUBLIC_KEY_MAGIC: 0x02 as const, // Compressed keys start with 0x02 or 0x03
138
-
139
- /** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
140
- MNEMONIC_STRENGTH: 256 as const,
141
-
142
- /** Symmetric encryption algorithm configuration */
143
- SYMMETRIC: Object.freeze({
144
- ALGORITHM: 'aes' as const,
145
- MODE: 'gcm' as const,
146
- KEY_BITS: 256 as const,
147
- KEY_SIZE: ECIES_SYMMETRIC_KEY_SIZE, // KEY_BITS / 8
148
- } as const),
149
-
150
- IV_SIZE: ECIES_IV_SIZE,
151
- AUTH_TAG_SIZE: ECIES_AUTH_TAG_SIZE,
152
- MAX_RAW_DATA_SIZE: 9007199254740991 as const, // 2^53 - 1 (max safe integer for JS)
153
-
154
- VERSION_SIZE: ECIES_VERSION_SIZE,
155
- CIPHER_SUITE_SIZE: ECIES_CIPHER_SUITE_SIZE,
156
- ENCRYPTION_TYPE_SIZE: 1 as const,
157
-
158
- /**
159
- * Message encrypts without data length or crc
160
- */
161
- SIMPLE: Object.freeze({
162
- FIXED_OVERHEAD_SIZE: expectedSimpleOverhead, // version (1) + cipher suite (1) + type (1) + public key (33) + IV (16) + auth tag (16)
163
- DATA_LENGTH_SIZE: 0 as const,
164
- } as const),
165
-
166
- /**
167
- * Message encrypts with data length but no CRC (AES-GCM provides authentication)
168
- */
169
- SINGLE: Object.freeze({
170
- FIXED_OVERHEAD_SIZE: expectedSimpleOverhead + 8, // version (1) + cipher suite (1) + type (1) + public key (33) + IV (16) + auth tag (16) + data length (8)
171
- DATA_LENGTH_SIZE: 8,
172
- } as const),
173
-
174
- /**
175
- * Message encrypts for multiple recipients
176
- */
177
- MULTIPLE: Object.freeze({
178
- FIXED_OVERHEAD_SIZE: expectedMultipleOverhead, // version (1) + cipher suite (1) + type (1) + public key (33) + IV (16) + auth tag (16)
179
- ENCRYPTED_KEY_SIZE: expectedMultipleEncryptedKeySize, // 64
180
- MAX_RECIPIENTS: 65535,
181
- RECIPIENT_ID_SIZE: ECIES_MULTIPLE_RECIPIENT_ID_SIZE,
182
- RECIPIENT_COUNT_SIZE: 2,
183
- DATA_LENGTH_SIZE: 8,
184
- } as const),
185
-
186
- ENCRYPTION_TYPE: Object.freeze({
187
- SIMPLE: 33 as const,
188
- SINGLE: 66 as const,
189
- MULTIPLE: 99 as const,
190
- } as const),
191
- });
192
-
193
- /**
194
- * Default ID provider instance (singleton).
195
- * Uses MongoDB ObjectID format (12 bytes).
196
- */
197
- const DEFAULT_ID_PROVIDER = new ObjectIdProvider();
198
-
199
- export const Constants: IConstants = Object.freeze({
200
- UINT8_SIZE: UINT8_SIZE,
201
- UINT16_SIZE: UINT16_SIZE,
202
- UINT16_MAX: UINT16_MAX,
203
- UINT32_SIZE: UINT32_SIZE,
204
- UINT32_MAX: UINT32_MAX,
205
- UINT64_SIZE: UINT64_SIZE,
206
- UINT64_MAX: UINT64_MAX,
207
- HEX_RADIX: 16 as const,
208
- MEMBER_ID_LENGTH: DEFAULT_ID_PROVIDER.byteLength,
209
- OBJECT_ID_LENGTH: OBJECT_ID_LENGTH,
210
- idProvider: DEFAULT_ID_PROVIDER,
211
- CHECKSUM: CHECKSUM,
212
- ECIES: ECIES,
213
- PBKDF2: PBKDF2,
214
- PBKDF2_PROFILES: PBKDF2_PROFILES,
215
- /**
216
- * Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
217
- */
218
- BcryptRounds: 10 as const,
219
- /**
220
- * Minimum password length
221
- */
222
- PasswordMinLength: 8 as const,
223
- /**
224
- * The regular expression for valid passwords.
225
- */
226
- PasswordRegex: PASSWORD_REGEX,
227
- /**
228
- * The regular expression for valid mnemonic phrases.
229
- * BIP39 - supports 12, 15, 18, 21, or 24 word mnemonics
230
- */
231
- MnemonicRegex: MNEMONIC_REGEX,
232
- /**
233
- * Matches a 64-character hexadecimal string (SHA-256).
234
- */
235
- MnemonicHmacRegex: /^[a-f0-9]{64}$/,
236
- } as const);
237
-
238
- export type ConfigurationKey = string | symbol;
239
-
240
- const DEFAULT_CONFIGURATION_KEY: ConfigurationKey = Symbol.for(
241
- 'digitaldefiance.ecies.constants.default',
242
- );
243
-
244
- function isPlainObject(value: unknown): value is Record<string, unknown> {
245
- if (value === null) {
246
- return false;
247
- }
248
- if (typeof value !== 'object') {
249
- return false;
250
- }
251
- if (Array.isArray(value)) {
252
- return false;
253
- }
254
- if (value instanceof RegExp || value instanceof Date) {
255
- return false;
256
- }
257
- return Object.getPrototypeOf(value) === Object.prototype;
258
- }
259
-
260
- function deepClone<T>(input: T): T {
261
- if (input === null || input === undefined) {
262
- return input;
263
- }
264
-
265
- if (typeof input !== 'object') {
266
- return input;
267
- }
268
-
269
- if (Array.isArray(input)) {
270
- return input.map((item) => deepClone(item)) as T;
271
- }
272
-
273
- if (input instanceof RegExp) {
274
- return new RegExp(input.source, input.flags) as T;
275
- }
276
-
277
- if (input instanceof Date) {
278
- return new Date(input.getTime()) as T;
279
- }
280
-
281
- if (isPlainObject(input)) {
282
- const result: Record<string, unknown> = {};
283
- for (const [key, value] of Object.entries(input)) {
284
- result[key] = deepClone(value);
285
- }
286
- return result as T;
287
- }
288
-
289
- return input;
290
- }
291
-
292
- function applyOverrides<T>(target: T, overrides?: DeepPartial<T>): T {
293
- if (!overrides) {
294
- return target;
295
- }
296
-
297
- for (const [key, overrideValue] of Object.entries(overrides)) {
298
- const typedKey = key as keyof T;
299
- if (overrideValue === undefined) {
300
- continue;
301
- }
302
-
303
- const currentValue = target[typedKey];
304
-
305
- if (isPlainObject(currentValue) && isPlainObject(overrideValue)) {
306
- (target as Record<string, unknown>)[typedKey as string] = applyOverrides(
307
- currentValue,
308
- overrideValue as DeepPartial<typeof currentValue>,
309
- );
310
- } else {
311
- (target as Record<string, unknown>)[typedKey as string] =
312
- deepClone(overrideValue);
313
- }
314
- }
315
-
316
- return target;
317
- }
318
-
319
- function deepFreeze<T>(value: T): T {
320
- if (value === null || typeof value !== 'object') {
321
- return value;
322
- }
323
- if (Object.isFrozen(value)) {
324
- return value;
325
- }
326
-
327
- Object.freeze(value);
328
-
329
- for (const property of Object.getOwnPropertyNames(value)) {
330
- const nestedValue = (value as Record<string, unknown>)[property];
331
- if (nestedValue && typeof nestedValue === 'object') {
332
- deepFreeze(nestedValue);
333
- }
334
- }
335
-
336
- return value;
337
- }
338
-
339
- function computeMultipleEncryptedKeySize(ecies: IECIESConstants): number {
340
- return ecies.IV_SIZE + ecies.AUTH_TAG_SIZE + ecies.SYMMETRIC.KEY_SIZE;
341
- }
342
-
343
- function validateConstants(config: IConstants): void {
344
- const checksum = config.CHECKSUM;
345
- const ecies = config.ECIES;
346
-
347
- if (
348
- checksum.SHA3_BUFFER_LENGTH !== checksum.SHA3_DEFAULT_HASH_BITS / 8 ||
349
- checksum.SHA3_BUFFER_LENGTH !== checksum.SHA3_DEFAULT_HASH_BITS / 8
350
- ) {
351
- const engine = getEciesI18nEngine();
352
- throw new Error(
353
- engine.translate(
354
- EciesComponentId,
355
- EciesStringKey.Error_ECIESError_InvalidChecksumConstants,
356
- ),
357
- );
358
- }
359
-
360
- const expectedEncryptedKeySize = computeMultipleEncryptedKeySize(ecies);
361
- if (ecies.MULTIPLE.ENCRYPTED_KEY_SIZE !== expectedEncryptedKeySize) {
362
- throw new ECIESError(
363
- ECIESErrorTypeEnum.InvalidECIESMultipleEncryptedKeySize,
364
- );
365
- }
366
-
367
- if (ecies.PUBLIC_KEY_LENGTH !== ecies.RAW_PUBLIC_KEY_LENGTH + 1) {
368
- throw new ECIESError(ECIESErrorTypeEnum.InvalidECIESPublicKeyLength);
369
- }
370
-
371
- if (ecies.MULTIPLE.RECIPIENT_COUNT_SIZE !== UINT16_SIZE) {
372
- throw new ECIESError(
373
- ECIESErrorTypeEnum.InvalidECIESMultipleRecipientCountSize,
374
- );
375
- }
376
-
377
- if (ecies.MULTIPLE.DATA_LENGTH_SIZE !== UINT64_SIZE) {
378
- throw new ECIESError(ECIESErrorTypeEnum.InvalidECIESMultipleDataLengthSize);
379
- }
380
-
381
- // Validate ID provider is present and valid
382
- if (!config.idProvider) {
383
- throw new Error('ID provider is required in constants configuration');
384
- }
385
-
386
- if (
387
- typeof config.idProvider.byteLength !== 'number' ||
388
- config.idProvider.byteLength < 1 ||
389
- config.idProvider.byteLength > 255
390
- ) {
391
- throw new Error(
392
- `Invalid ID provider byteLength: ${config.idProvider.byteLength}. Must be between 1 and 255.`,
393
- );
394
- }
395
-
396
- // Validate MEMBER_ID_LENGTH matches ID provider
397
- if (config.MEMBER_ID_LENGTH !== config.idProvider.byteLength) {
398
- throw new Error(
399
- `MEMBER_ID_LENGTH (${config.MEMBER_ID_LENGTH}) must match idProvider.byteLength (${config.idProvider.byteLength})`,
400
- );
401
- }
402
-
403
- // NOTE: We now validate against idProvider.byteLength instead of OBJECT_ID_LENGTH
404
- // This allows for flexible ID sizes (12 bytes for ObjectID, 16 for GUID, 32 for legacy, etc.)
405
- if (ecies.MULTIPLE.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
406
- throw new ECIESError(
407
- ECIESErrorTypeEnum.InvalidECIESMultipleRecipientIdSize,
408
- );
409
- }
410
- }
411
-
412
- validateConstants(Constants);
413
-
414
- const configurationRegistry = new Map<ConfigurationKey, IConstants>();
415
- configurationRegistry.set(DEFAULT_CONFIGURATION_KEY, Constants);
416
-
417
- // Provenance tracking
418
- const provenanceRegistry = new Map<
419
- ConfigurationKey,
420
- IConfigurationProvenance
421
- >();
422
- provenanceRegistry.set(DEFAULT_CONFIGURATION_KEY, {
423
- baseConfigKey: 'none',
424
- overrides: {},
425
- timestamp: new Date(),
426
- source: 'default',
427
- checksum: calculateConfigChecksum(Constants),
428
- description: 'Built-in default configuration',
429
- });
430
-
431
- function isFullConstantsConfig(value: unknown): value is IConstants {
432
- if (!isPlainObject(value)) {
433
- return false;
434
- }
435
- const candidate = value as Partial<IConstants>;
436
- return (
437
- candidate.CHECKSUM !== undefined &&
438
- candidate.ECIES !== undefined &&
439
- candidate.PBKDF2 !== undefined &&
440
- candidate.PBKDF2_PROFILES !== undefined &&
441
- candidate.idProvider !== undefined
442
- );
443
- }
444
-
445
- export function createRuntimeConfiguration(
446
- overrides?: DeepPartial<IConstants>,
447
- base: IConstants = Constants,
448
- ): IConstants {
449
- const merged = deepClone(base);
450
- applyOverrides(merged, overrides);
451
-
452
- // Auto-sync MEMBER_ID_LENGTH with idProvider.byteLength if provider changed
453
- if (merged.idProvider && merged.idProvider !== base.idProvider) {
454
- merged.MEMBER_ID_LENGTH = merged.idProvider.byteLength;
455
- }
456
-
457
- // Auto-sync ECIES.MULTIPLE.RECIPIENT_ID_SIZE with idProvider.byteLength if provider changed
458
- if (merged.idProvider && merged.idProvider !== base.idProvider) {
459
- merged.ECIES = {
460
- ...merged.ECIES,
461
- MULTIPLE: {
462
- ...merged.ECIES.MULTIPLE,
463
- RECIPIENT_ID_SIZE: merged.idProvider.byteLength,
464
- },
465
- };
466
- }
467
-
468
- // Validate individual properties
469
- validateConstants(merged);
470
-
471
- // Validate all invariants (relationships between properties)
472
- InvariantValidator.validateAll(merged);
473
-
474
- return deepFreeze(merged);
475
- }
476
-
477
- export class ConstantsRegistry {
478
- public static readonly DEFAULT_KEY = DEFAULT_CONFIGURATION_KEY;
479
-
480
- public static listKeys(): ConfigurationKey[] {
481
- return Array.from(configurationRegistry.keys());
482
- }
483
-
484
- public static has(key: ConfigurationKey): boolean {
485
- return configurationRegistry.has(key);
486
- }
487
-
488
- public static get(
489
- key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
490
- ): IConstants {
491
- return (
492
- configurationRegistry.get(key) ??
493
- configurationRegistry.get(DEFAULT_CONFIGURATION_KEY)!
494
- );
495
- }
496
-
497
- /**
498
- * Get provenance information for a configuration
499
- */
500
- public static getProvenance(
501
- key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
502
- ): IConfigurationProvenance | undefined {
503
- return provenanceRegistry.get(key);
504
- }
505
-
506
- /**
507
- * List all configurations with their provenance
508
- */
509
- public static listWithProvenance(): Array<{
510
- key: ConfigurationKey;
511
- config: IConstants;
512
- provenance?: IConfigurationProvenance;
513
- }> {
514
- return Array.from(configurationRegistry.entries()).map(([key, config]) => ({
515
- key,
516
- config,
517
- provenance: provenanceRegistry.get(key),
518
- }));
519
- }
520
-
521
- public static create(
522
- overrides?: DeepPartial<IConstants>,
523
- baseKey: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
524
- ): IConstants {
525
- const baseConfig = ConstantsRegistry.get(baseKey);
526
- return createRuntimeConfiguration(overrides, baseConfig);
527
- }
528
-
529
- public static register(
530
- key: ConfigurationKey,
531
- configOrOverrides?: DeepPartial<IConstants> | IConstants,
532
- options?: { baseKey?: ConfigurationKey; description?: string },
533
- ): IConstants {
534
- if (key === DEFAULT_CONFIGURATION_KEY) {
535
- const engine = getEciesI18nEngine();
536
- throw new Error(
537
- engine.translate(
538
- EciesComponentId,
539
- EciesStringKey.Error_ECIESError_CannotOverwriteDefaultConfiguration,
540
- ),
541
- );
542
- }
543
-
544
- const baseKey = options?.baseKey ?? DEFAULT_CONFIGURATION_KEY;
545
- const baseConfig = ConstantsRegistry.get(baseKey);
546
-
547
- const isFullConfig = isFullConstantsConfig(configOrOverrides);
548
- const configuration = isFullConfig
549
- ? createRuntimeConfiguration(undefined, configOrOverrides)
550
- : createRuntimeConfiguration(configOrOverrides, baseConfig);
551
-
552
- // Track provenance
553
- const provenance: IConfigurationProvenance = {
554
- baseConfigKey: typeof baseKey === 'symbol' ? baseKey.toString() : baseKey,
555
- overrides: isFullConfig ? {} : configOrOverrides ?? {},
556
- timestamp: new Date(),
557
- source: isFullConfig ? 'custom' : 'runtime',
558
- checksum: calculateConfigChecksum(configuration),
559
- description: options?.description,
560
- creationStack: captureCreationStack(),
561
- };
562
-
563
- configurationRegistry.set(key, configuration);
564
- provenanceRegistry.set(key, provenance);
565
- return configuration;
566
- }
567
-
568
- public static unregister(key: ConfigurationKey): boolean {
569
- if (key === DEFAULT_CONFIGURATION_KEY) {
570
- return false;
571
- }
572
- provenanceRegistry.delete(key);
573
- return configurationRegistry.delete(key);
574
- }
575
-
576
- public static clear(): void {
577
- const defaultProvenance = provenanceRegistry.get(DEFAULT_CONFIGURATION_KEY);
578
- configurationRegistry.clear();
579
- provenanceRegistry.clear();
580
- configurationRegistry.set(DEFAULT_CONFIGURATION_KEY, Constants);
581
- if (defaultProvenance) {
582
- provenanceRegistry.set(DEFAULT_CONFIGURATION_KEY, defaultProvenance);
583
- }
584
- }
585
- }
586
-
587
- export function getRuntimeConfiguration(
588
- key: ConfigurationKey = DEFAULT_CONFIGURATION_KEY,
589
- ): IConstants {
590
- return ConstantsRegistry.get(key);
591
- }
592
-
593
- export function registerRuntimeConfiguration(
594
- key: ConfigurationKey,
595
- configOrOverrides?: DeepPartial<IConstants> | IConstants,
596
- options?: { baseKey?: ConfigurationKey },
597
- ): IConstants {
598
- return ConstantsRegistry.register(key, configOrOverrides, options);
599
- }
600
-
601
- export function unregisterRuntimeConfiguration(key: ConfigurationKey): boolean {
602
- return ConstantsRegistry.unregister(key);
603
- }
604
-
605
- export function clearRuntimeConfigurations(): void {
606
- ConstantsRegistry.clear();
607
- }
608
-
609
- export { MNEMONIC_REGEX, PASSWORD_REGEX } from './regexes';
@@ -1,78 +0,0 @@
1
- /**
2
- * Unified error class for all crypto operations
3
- * Consolidates ECIESError, MemberError, Pbkdf2Error, etc.
4
- */
5
-
6
- import { EciesStringKey } from '../../enumerations/ecies-string-key';
7
- import { EciesComponentId, getEciesI18nEngine } from '../../i18n-setup';
8
-
9
- export enum CryptoErrorCode {
10
- // ECIES Errors
11
- DECRYPTION_FAILED = 'DECRYPTION_FAILED',
12
- INVALID_KEY_SIZE = 'INVALID_KEY_SIZE',
13
- INVALID_ENCRYPTION_TYPE = 'INVALID_ENCRYPTION_TYPE',
14
- INVALID_PUBLIC_KEY = 'INVALID_PUBLIC_KEY',
15
- RECIPIENT_NOT_FOUND = 'RECIPIENT_NOT_FOUND',
16
- TOO_MANY_RECIPIENTS = 'TOO_MANY_RECIPIENTS',
17
-
18
- // Member Errors
19
- MISSING_MEMBER_NAME = 'MISSING_MEMBER_NAME',
20
- INVALID_EMAIL = 'INVALID_EMAIL',
21
- WALLET_NOT_LOADED = 'WALLET_NOT_LOADED',
22
- INVALID_MNEMONIC = 'INVALID_MNEMONIC',
23
-
24
- // PBKDF2 Errors
25
- INVALID_PROFILE = 'INVALID_PROFILE',
26
- INVALID_SALT_LENGTH = 'INVALID_SALT_LENGTH',
27
- INVALID_HASH_LENGTH = 'INVALID_HASH_LENGTH',
28
-
29
- // Storage Errors
30
- VALUE_IS_NULL = 'VALUE_IS_NULL',
31
- CHECKSUM_MISMATCH = 'CHECKSUM_MISMATCH',
32
-
33
- // Password Login Errors
34
- PASSWORD_LOGIN_NOT_SETUP = 'PASSWORD_LOGIN_NOT_SETUP',
35
- FAILED_TO_STORE_LOGIN_DATA = 'FAILED_TO_STORE_LOGIN_DATA',
36
- }
37
-
38
- export class CryptoError extends Error {
39
- constructor(
40
- public readonly code: CryptoErrorCode,
41
- public readonly stringKey: EciesStringKey,
42
- public override readonly metadata?: Record<string, string | number>,
43
- ) {
44
- const engine = getEciesI18nEngine();
45
- const message = engine.translate(EciesComponentId, stringKey, metadata);
46
- super(message);
47
- this.name = 'CryptoError';
48
- Object.setPrototypeOf(this, CryptoError.prototype);
49
- }
50
-
51
- static decryptionFailed(
52
- metadata?: Record<string, string | number>,
53
- ): CryptoError {
54
- return new CryptoError(
55
- CryptoErrorCode.DECRYPTION_FAILED,
56
- EciesStringKey.Error_ECIESError_DecryptionFailed,
57
- metadata,
58
- );
59
- }
60
-
61
- static invalidProfile(
62
- metadata?: Record<string, string | number>,
63
- ): CryptoError {
64
- return new CryptoError(
65
- CryptoErrorCode.INVALID_PROFILE,
66
- EciesStringKey.Error_Pbkdf2Error_InvalidProfile,
67
- metadata,
68
- );
69
- }
70
-
71
- static invalidEmail(metadata?: Record<string, string | number>): CryptoError {
72
- return new CryptoError(
73
- CryptoErrorCode.INVALID_EMAIL,
74
- EciesStringKey.Error_MemberError_InvalidEmail,
75
- metadata,
76
- );
77
- }
78
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Result pattern for better error handling
3
- */
4
-
5
- import { CryptoError } from '../errors/crypto-error';
6
-
7
- export type CryptoResult<T> =
8
- | { success: true; data: T }
9
- | { success: false; error: CryptoError };
10
-
11
- export class ResultBuilder {
12
- static success<T>(data: T): CryptoResult<T> {
13
- return { success: true, data };
14
- }
15
-
16
- static failure<T>(error: CryptoError): CryptoResult<T> {
17
- return { success: false, error };
18
- }
19
- }