@digitaldefiance/ecies-lib 4.4.2 → 4.4.4

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 (589) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +9 -6
  3. package/src/builders/ecies-builder.ts +39 -0
  4. package/src/builders/{index.js → index.ts} +1 -1
  5. package/src/builders/member-builder.ts +155 -0
  6. package/src/constants.ts +609 -0
  7. package/src/core/errors/crypto-error.ts +78 -0
  8. package/src/core/{index.js → index.ts} +1 -1
  9. package/src/core/types/result.ts +19 -0
  10. package/src/email-string.ts +82 -0
  11. package/src/enumerations/disposed-error-type.ts +11 -0
  12. package/src/enumerations/ecies-cipher-suite.ts +4 -0
  13. package/src/enumerations/ecies-encryption-type.ts +41 -0
  14. package/src/enumerations/ecies-error-type.ts +43 -0
  15. package/src/enumerations/ecies-string-key.ts +205 -0
  16. package/src/enumerations/ecies-version.ts +3 -0
  17. package/src/enumerations/guid-brand-type.ts +26 -0
  18. package/src/enumerations/guid-error-type.ts +6 -0
  19. package/src/enumerations/id-provider-error-type.ts +50 -0
  20. package/src/enumerations/{index.js → index.ts} +0 -1
  21. package/src/enumerations/invalid-email-type.ts +5 -0
  22. package/src/enumerations/length-encoding-type.ts +6 -0
  23. package/src/enumerations/length-error-type.ts +5 -0
  24. package/src/enumerations/member-error-type.ts +106 -0
  25. package/src/enumerations/{member-type.d.ts → member-type.ts} +7 -6
  26. package/src/enumerations/password-login-error-type.ts +4 -0
  27. package/src/enumerations/pbkdf2-error-type.ts +5 -0
  28. package/src/enumerations/pbkdf2-profile.ts +5 -0
  29. package/src/enumerations/secure-storage-error-type.ts +5 -0
  30. package/src/errors/disposed.ts +36 -0
  31. package/src/errors/ecies.ts +153 -0
  32. package/src/errors/guid.ts +130 -0
  33. package/src/errors/id-provider.ts +40 -0
  34. package/src/errors/{index.d.ts → index.ts} +0 -1
  35. package/src/errors/invalid-email.ts +23 -0
  36. package/src/errors/length.ts +19 -0
  37. package/src/errors/member.ts +20 -0
  38. package/src/errors/pbkdf2.ts +20 -0
  39. package/src/errors/secure-storage.ts +17 -0
  40. package/src/errors/simple-ecies.ts +21 -0
  41. package/src/errors/simple-test-error.ts +6 -0
  42. package/src/i18n-setup.ts +130 -0
  43. package/src/{index.js → index.ts} +64 -7
  44. package/src/interfaces/checksum-config.ts +4 -0
  45. package/src/interfaces/checksum-consts.ts +13 -0
  46. package/src/interfaces/configuration-provenance.ts +54 -0
  47. package/src/interfaces/constants.ts +75 -0
  48. package/src/interfaces/ecies-config.ts +8 -0
  49. package/src/interfaces/ecies-consts.ts +74 -0
  50. package/src/interfaces/ecies-file-service.ts +6 -0
  51. package/src/interfaces/encrypted-chunk.ts +64 -0
  52. package/src/interfaces/encryption-state.ts +19 -0
  53. package/src/interfaces/frontend-member-operational.ts +77 -0
  54. package/src/interfaces/guid.ts +86 -0
  55. package/src/interfaces/id-provider.ts +152 -0
  56. package/src/interfaces/{index.d.ts → index.ts} +0 -1
  57. package/src/interfaces/invariant.ts +60 -0
  58. package/src/interfaces/library-error.ts +23 -0
  59. package/src/interfaces/{member-storage.d.ts → member-storage.ts} +11 -10
  60. package/src/interfaces/{member-with-mnemonic.d.ts → member-with-mnemonic.ts} +3 -3
  61. package/src/interfaces/member.ts +84 -0
  62. package/src/interfaces/multi-recipient-chunk.ts +61 -0
  63. package/src/interfaces/pbkdf2-config.ts +6 -0
  64. package/src/interfaces/pbkdf2-consts.ts +10 -0
  65. package/src/interfaces/pbkdf2-result.ts +5 -0
  66. package/src/interfaces/stream-config.ts +17 -0
  67. package/src/interfaces/stream-header.ts +34 -0
  68. package/src/interfaces/stream-progress.ts +31 -0
  69. package/src/lib/configuration-provenance-utils.ts +26 -0
  70. package/src/lib/crypto-container.ts +64 -0
  71. package/src/lib/guid.ts +1097 -0
  72. package/src/lib/id-providers/custom-provider.ts +109 -0
  73. package/src/lib/id-providers/guidv4-provider.ts +141 -0
  74. package/src/lib/id-providers/{index.d.ts → index.ts} +6 -5
  75. package/src/lib/id-providers/objectid-provider.ts +125 -0
  76. package/src/lib/id-providers/uuid-provider.ts +133 -0
  77. package/src/lib/{index.js → index.ts} +2 -2
  78. package/src/lib/invariant-validator.ts +133 -0
  79. package/src/lib/invariants/encryption-algorithm-consistency.ts +73 -0
  80. package/src/lib/invariants/{index.js → index.ts} +0 -1
  81. package/src/lib/invariants/pbkdf2-profiles-validity.ts +78 -0
  82. package/src/lib/invariants/recipient-id-consistency.ts +46 -0
  83. package/src/lib/multi-recipient-chunk-utils.ts +63 -0
  84. package/src/member.ts +495 -0
  85. package/src/{pbkdf2-profiles.d.ts → pbkdf2-profiles.ts} +2 -2
  86. package/src/phone-number.ts +18 -0
  87. package/src/regexes.ts +10 -0
  88. package/src/secure-buffer.ts +226 -0
  89. package/src/secure-string.ts +244 -0
  90. package/src/services/aes-gcm.ts +220 -0
  91. package/src/services/chunk-processor.ts +188 -0
  92. package/src/services/ecies/README.md +147 -0
  93. package/src/services/ecies/crypto-core.ts +292 -0
  94. package/src/services/ecies/example.ts +185 -0
  95. package/src/services/ecies/file.ts +167 -0
  96. package/src/services/ecies/{index.js → index.ts} +2 -1
  97. package/src/services/ecies/integration.ts +241 -0
  98. package/src/services/ecies/interfaces.ts +62 -0
  99. package/src/services/ecies/manual-test.ts +219 -0
  100. package/src/services/ecies/multi-recipient.ts +545 -0
  101. package/src/services/ecies/service.ts +370 -0
  102. package/src/services/ecies/signature.ts +93 -0
  103. package/src/services/ecies/single-recipient.ts +476 -0
  104. package/src/services/encryption-stream.ts +435 -0
  105. package/src/services/{index.js → index.ts} +0 -1
  106. package/src/services/multi-recipient-processor.ts +377 -0
  107. package/src/services/password-login.ts +226 -0
  108. package/src/services/pbkdf2.ts +169 -0
  109. package/src/services/progress-tracker.ts +128 -0
  110. package/src/services/resumable-encryption.ts +135 -0
  111. package/src/services/xor.ts +65 -0
  112. package/src/test-mocks/index.ts +1 -0
  113. package/src/test-mocks/mock-frontend-member.ts +276 -0
  114. package/src/{testing.js → testing.ts} +0 -1
  115. package/src/translations/{de.js → de.ts} +112 -56
  116. package/src/translations/{en-US.js → en-US.ts} +116 -58
  117. package/src/translations/{es.js → es.ts} +134 -67
  118. package/src/translations/{fr.js → fr.ts} +129 -64
  119. package/src/translations/{ja.js → ja.ts} +111 -55
  120. package/src/translations/{uk.js → uk.ts} +132 -67
  121. package/src/translations/{zh-cn.js → zh-cn.ts} +60 -29
  122. package/src/types/deep-partial.ts +11 -0
  123. package/src/{types.d.ts → types.ts} +15 -7
  124. package/src/utils/encryption-type-utils.ts +76 -0
  125. package/src/utils.ts +329 -0
  126. package/src/builders/ecies-builder.d.ts +0 -18
  127. package/src/builders/ecies-builder.d.ts.map +0 -1
  128. package/src/builders/ecies-builder.js +0 -30
  129. package/src/builders/ecies-builder.js.map +0 -1
  130. package/src/builders/index.d.ts +0 -6
  131. package/src/builders/index.d.ts.map +0 -1
  132. package/src/builders/index.js.map +0 -1
  133. package/src/builders/member-builder.d.ts +0 -51
  134. package/src/builders/member-builder.d.ts.map +0 -1
  135. package/src/builders/member-builder.js +0 -97
  136. package/src/builders/member-builder.js.map +0 -1
  137. package/src/constants.d.ts +0 -60
  138. package/src/constants.d.ts.map +0 -1
  139. package/src/constants.js +0 -446
  140. package/src/constants.js.map +0 -1
  141. package/src/core/errors/crypto-error.d.ts +0 -34
  142. package/src/core/errors/crypto-error.d.ts.map +0 -1
  143. package/src/core/errors/crypto-error.js +0 -56
  144. package/src/core/errors/crypto-error.js.map +0 -1
  145. package/src/core/index.d.ts +0 -6
  146. package/src/core/index.d.ts.map +0 -1
  147. package/src/core/index.js.map +0 -1
  148. package/src/core/types/result.d.ts +0 -16
  149. package/src/core/types/result.d.ts.map +0 -1
  150. package/src/core/types/result.js +0 -12
  151. package/src/core/types/result.js.map +0 -1
  152. package/src/email-string.d.ts +0 -42
  153. package/src/email-string.d.ts.map +0 -1
  154. package/src/email-string.js +0 -67
  155. package/src/email-string.js.map +0 -1
  156. package/src/enumerations/disposed-error-type.d.ts +0 -12
  157. package/src/enumerations/disposed-error-type.d.ts.map +0 -1
  158. package/src/enumerations/disposed-error-type.js +0 -13
  159. package/src/enumerations/disposed-error-type.js.map +0 -1
  160. package/src/enumerations/ecies-cipher-suite.d.ts +0 -4
  161. package/src/enumerations/ecies-cipher-suite.d.ts.map +0 -1
  162. package/src/enumerations/ecies-cipher-suite.js +0 -6
  163. package/src/enumerations/ecies-cipher-suite.js.map +0 -1
  164. package/src/enumerations/ecies-encryption-type.d.ts +0 -11
  165. package/src/enumerations/ecies-encryption-type.d.ts.map +0 -1
  166. package/src/enumerations/ecies-encryption-type.js +0 -27
  167. package/src/enumerations/ecies-encryption-type.js.map +0 -1
  168. package/src/enumerations/ecies-error-type.d.ts +0 -44
  169. package/src/enumerations/ecies-error-type.d.ts.map +0 -1
  170. package/src/enumerations/ecies-error-type.js +0 -45
  171. package/src/enumerations/ecies-error-type.js.map +0 -1
  172. package/src/enumerations/ecies-string-key.d.ts +0 -192
  173. package/src/enumerations/ecies-string-key.d.ts.map +0 -1
  174. package/src/enumerations/ecies-string-key.js +0 -199
  175. package/src/enumerations/ecies-string-key.js.map +0 -1
  176. package/src/enumerations/ecies-version.d.ts +0 -4
  177. package/src/enumerations/ecies-version.d.ts.map +0 -1
  178. package/src/enumerations/ecies-version.js +0 -5
  179. package/src/enumerations/ecies-version.js.map +0 -1
  180. package/src/enumerations/guid-brand-type.d.ts +0 -27
  181. package/src/enumerations/guid-brand-type.d.ts.map +0 -1
  182. package/src/enumerations/guid-brand-type.js +0 -28
  183. package/src/enumerations/guid-brand-type.js.map +0 -1
  184. package/src/enumerations/guid-error-type.d.ts +0 -7
  185. package/src/enumerations/guid-error-type.d.ts.map +0 -1
  186. package/src/enumerations/guid-error-type.js +0 -8
  187. package/src/enumerations/guid-error-type.js.map +0 -1
  188. package/src/enumerations/id-provider-error-type.d.ts +0 -43
  189. package/src/enumerations/id-provider-error-type.d.ts.map +0 -1
  190. package/src/enumerations/id-provider-error-type.js +0 -44
  191. package/src/enumerations/id-provider-error-type.js.map +0 -1
  192. package/src/enumerations/index.d.ts +0 -18
  193. package/src/enumerations/index.d.ts.map +0 -1
  194. package/src/enumerations/index.js.map +0 -1
  195. package/src/enumerations/invalid-email-type.d.ts +0 -6
  196. package/src/enumerations/invalid-email-type.d.ts.map +0 -1
  197. package/src/enumerations/invalid-email-type.js +0 -7
  198. package/src/enumerations/invalid-email-type.js.map +0 -1
  199. package/src/enumerations/length-encoding-type.d.ts +0 -7
  200. package/src/enumerations/length-encoding-type.d.ts.map +0 -1
  201. package/src/enumerations/length-encoding-type.js +0 -8
  202. package/src/enumerations/length-encoding-type.js.map +0 -1
  203. package/src/enumerations/length-error-type.d.ts +0 -6
  204. package/src/enumerations/length-error-type.d.ts.map +0 -1
  205. package/src/enumerations/length-error-type.js +0 -7
  206. package/src/enumerations/length-error-type.js.map +0 -1
  207. package/src/enumerations/member-error-type.d.ts +0 -87
  208. package/src/enumerations/member-error-type.d.ts.map +0 -1
  209. package/src/enumerations/member-error-type.js +0 -88
  210. package/src/enumerations/member-error-type.js.map +0 -1
  211. package/src/enumerations/member-type.d.ts.map +0 -1
  212. package/src/enumerations/member-type.js +0 -16
  213. package/src/enumerations/member-type.js.map +0 -1
  214. package/src/enumerations/password-login-error-type.d.ts +0 -5
  215. package/src/enumerations/password-login-error-type.d.ts.map +0 -1
  216. package/src/enumerations/password-login-error-type.js +0 -6
  217. package/src/enumerations/password-login-error-type.js.map +0 -1
  218. package/src/enumerations/pbkdf2-error-type.d.ts +0 -6
  219. package/src/enumerations/pbkdf2-error-type.d.ts.map +0 -1
  220. package/src/enumerations/pbkdf2-error-type.js +0 -7
  221. package/src/enumerations/pbkdf2-error-type.js.map +0 -1
  222. package/src/enumerations/pbkdf2-profile.d.ts +0 -6
  223. package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
  224. package/src/enumerations/pbkdf2-profile.js +0 -7
  225. package/src/enumerations/pbkdf2-profile.js.map +0 -1
  226. package/src/enumerations/secure-storage-error-type.d.ts +0 -6
  227. package/src/enumerations/secure-storage-error-type.d.ts.map +0 -1
  228. package/src/enumerations/secure-storage-error-type.js +0 -7
  229. package/src/enumerations/secure-storage-error-type.js.map +0 -1
  230. package/src/errors/disposed.d.ts +0 -22
  231. package/src/errors/disposed.d.ts.map +0 -1
  232. package/src/errors/disposed.js +0 -28
  233. package/src/errors/disposed.js.map +0 -1
  234. package/src/errors/ecies.d.ts +0 -52
  235. package/src/errors/ecies.d.ts.map +0 -1
  236. package/src/errors/ecies.js +0 -78
  237. package/src/errors/ecies.js.map +0 -1
  238. package/src/errors/guid.d.ts +0 -49
  239. package/src/errors/guid.d.ts.map +0 -1
  240. package/src/errors/guid.js +0 -96
  241. package/src/errors/guid.js.map +0 -1
  242. package/src/errors/id-provider.d.ts +0 -23
  243. package/src/errors/id-provider.d.ts.map +0 -1
  244. package/src/errors/id-provider.js +0 -29
  245. package/src/errors/id-provider.js.map +0 -1
  246. package/src/errors/index.d.ts.map +0 -1
  247. package/src/errors/index.js +0 -10
  248. package/src/errors/index.js.map +0 -1
  249. package/src/errors/invalid-email.d.ts +0 -8
  250. package/src/errors/invalid-email.d.ts.map +0 -1
  251. package/src/errors/invalid-email.js +0 -15
  252. package/src/errors/invalid-email.js.map +0 -1
  253. package/src/errors/length.d.ts +0 -7
  254. package/src/errors/length.d.ts.map +0 -1
  255. package/src/errors/length.js +0 -11
  256. package/src/errors/length.js.map +0 -1
  257. package/src/errors/member.d.ts +0 -7
  258. package/src/errors/member.d.ts.map +0 -1
  259. package/src/errors/member.js +0 -11
  260. package/src/errors/member.js.map +0 -1
  261. package/src/errors/pbkdf2.d.ts +0 -7
  262. package/src/errors/pbkdf2.d.ts.map +0 -1
  263. package/src/errors/pbkdf2.js +0 -11
  264. package/src/errors/pbkdf2.js.map +0 -1
  265. package/src/errors/secure-storage.d.ts +0 -7
  266. package/src/errors/secure-storage.d.ts.map +0 -1
  267. package/src/errors/secure-storage.js +0 -12
  268. package/src/errors/secure-storage.js.map +0 -1
  269. package/src/errors/simple-ecies.d.ts +0 -6
  270. package/src/errors/simple-ecies.d.ts.map +0 -1
  271. package/src/errors/simple-ecies.js +0 -12
  272. package/src/errors/simple-ecies.js.map +0 -1
  273. package/src/errors/simple-test-error.d.ts +0 -4
  274. package/src/errors/simple-test-error.d.ts.map +0 -1
  275. package/src/errors/simple-test-error.js +0 -7
  276. package/src/errors/simple-test-error.js.map +0 -1
  277. package/src/i18n-setup.d.ts +0 -32
  278. package/src/i18n-setup.d.ts.map +0 -1
  279. package/src/i18n-setup.js +0 -101
  280. package/src/i18n-setup.js.map +0 -1
  281. package/src/index.d.ts +0 -80
  282. package/src/index.d.ts.map +0 -1
  283. package/src/index.js.map +0 -1
  284. package/src/interfaces/checksum-config.d.ts +0 -5
  285. package/src/interfaces/checksum-config.d.ts.map +0 -1
  286. package/src/interfaces/checksum-config.js +0 -2
  287. package/src/interfaces/checksum-config.js.map +0 -1
  288. package/src/interfaces/checksum-consts.d.ts +0 -11
  289. package/src/interfaces/checksum-consts.d.ts.map +0 -1
  290. package/src/interfaces/checksum-consts.js +0 -2
  291. package/src/interfaces/checksum-consts.js.map +0 -1
  292. package/src/interfaces/configuration-provenance.d.ts +0 -43
  293. package/src/interfaces/configuration-provenance.d.ts.map +0 -1
  294. package/src/interfaces/configuration-provenance.js +0 -3
  295. package/src/interfaces/configuration-provenance.js.map +0 -1
  296. package/src/interfaces/constants.d.ts +0 -70
  297. package/src/interfaces/constants.d.ts.map +0 -1
  298. package/src/interfaces/constants.js +0 -2
  299. package/src/interfaces/constants.js.map +0 -1
  300. package/src/interfaces/ecies-config.d.ts +0 -9
  301. package/src/interfaces/ecies-config.d.ts.map +0 -1
  302. package/src/interfaces/ecies-config.js +0 -2
  303. package/src/interfaces/ecies-config.js.map +0 -1
  304. package/src/interfaces/ecies-consts.d.ts +0 -61
  305. package/src/interfaces/ecies-consts.d.ts.map +0 -1
  306. package/src/interfaces/ecies-consts.js +0 -2
  307. package/src/interfaces/ecies-consts.js.map +0 -1
  308. package/src/interfaces/ecies-file-service.d.ts +0 -7
  309. package/src/interfaces/ecies-file-service.d.ts.map +0 -1
  310. package/src/interfaces/ecies-file-service.js +0 -2
  311. package/src/interfaces/ecies-file-service.js.map +0 -1
  312. package/src/interfaces/encrypted-chunk.d.ts +0 -55
  313. package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
  314. package/src/interfaces/encrypted-chunk.js +0 -12
  315. package/src/interfaces/encrypted-chunk.js.map +0 -1
  316. package/src/interfaces/encryption-state.d.ts +0 -18
  317. package/src/interfaces/encryption-state.d.ts.map +0 -1
  318. package/src/interfaces/encryption-state.js +0 -2
  319. package/src/interfaces/encryption-state.js.map +0 -1
  320. package/src/interfaces/frontend-member-operational.d.ts +0 -51
  321. package/src/interfaces/frontend-member-operational.d.ts.map +0 -1
  322. package/src/interfaces/frontend-member-operational.js +0 -2
  323. package/src/interfaces/frontend-member-operational.js.map +0 -1
  324. package/src/interfaces/guid.d.ts +0 -78
  325. package/src/interfaces/guid.d.ts.map +0 -1
  326. package/src/interfaces/guid.js +0 -2
  327. package/src/interfaces/guid.js.map +0 -1
  328. package/src/interfaces/id-provider.d.ts +0 -107
  329. package/src/interfaces/id-provider.d.ts.map +0 -1
  330. package/src/interfaces/id-provider.js +0 -52
  331. package/src/interfaces/id-provider.js.map +0 -1
  332. package/src/interfaces/index.d.ts.map +0 -1
  333. package/src/interfaces/index.js +0 -13
  334. package/src/interfaces/index.js.map +0 -1
  335. package/src/interfaces/invariant.d.ts +0 -46
  336. package/src/interfaces/invariant.d.ts.map +0 -1
  337. package/src/interfaces/invariant.js +0 -18
  338. package/src/interfaces/invariant.js.map +0 -1
  339. package/src/interfaces/library-error.d.ts +0 -23
  340. package/src/interfaces/library-error.d.ts.map +0 -1
  341. package/src/interfaces/library-error.js +0 -2
  342. package/src/interfaces/library-error.js.map +0 -1
  343. package/src/interfaces/member-storage.d.ts.map +0 -1
  344. package/src/interfaces/member-storage.js +0 -2
  345. package/src/interfaces/member-storage.js.map +0 -1
  346. package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
  347. package/src/interfaces/member-with-mnemonic.js +0 -2
  348. package/src/interfaces/member-with-mnemonic.js.map +0 -1
  349. package/src/interfaces/member.d.ts +0 -55
  350. package/src/interfaces/member.d.ts.map +0 -1
  351. package/src/interfaces/member.js +0 -2
  352. package/src/interfaces/member.js.map +0 -1
  353. package/src/interfaces/multi-recipient-chunk.d.ts +0 -54
  354. package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
  355. package/src/interfaces/multi-recipient-chunk.js +0 -11
  356. package/src/interfaces/multi-recipient-chunk.js.map +0 -1
  357. package/src/interfaces/pbkdf2-config.d.ts +0 -7
  358. package/src/interfaces/pbkdf2-config.d.ts.map +0 -1
  359. package/src/interfaces/pbkdf2-config.js +0 -2
  360. package/src/interfaces/pbkdf2-config.js.map +0 -1
  361. package/src/interfaces/pbkdf2-consts.d.ts +0 -9
  362. package/src/interfaces/pbkdf2-consts.d.ts.map +0 -1
  363. package/src/interfaces/pbkdf2-consts.js +0 -2
  364. package/src/interfaces/pbkdf2-consts.js.map +0 -1
  365. package/src/interfaces/pbkdf2-result.d.ts +0 -6
  366. package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
  367. package/src/interfaces/pbkdf2-result.js +0 -2
  368. package/src/interfaces/pbkdf2-result.js.map +0 -1
  369. package/src/interfaces/stream-config.d.ts +0 -14
  370. package/src/interfaces/stream-config.d.ts.map +0 -1
  371. package/src/interfaces/stream-config.js +0 -8
  372. package/src/interfaces/stream-config.js.map +0 -1
  373. package/src/interfaces/stream-header.d.ts +0 -29
  374. package/src/interfaces/stream-header.d.ts.map +0 -1
  375. package/src/interfaces/stream-header.js +0 -9
  376. package/src/interfaces/stream-header.js.map +0 -1
  377. package/src/interfaces/stream-progress.d.ts +0 -33
  378. package/src/interfaces/stream-progress.d.ts.map +0 -1
  379. package/src/interfaces/stream-progress.js +0 -2
  380. package/src/interfaces/stream-progress.js.map +0 -1
  381. package/src/lib/configuration-provenance-utils.d.ts +0 -11
  382. package/src/lib/configuration-provenance-utils.d.ts.map +0 -1
  383. package/src/lib/configuration-provenance-utils.js +0 -23
  384. package/src/lib/configuration-provenance-utils.js.map +0 -1
  385. package/src/lib/crypto-container.d.ts +0 -25
  386. package/src/lib/crypto-container.d.ts.map +0 -1
  387. package/src/lib/crypto-container.js +0 -46
  388. package/src/lib/crypto-container.js.map +0 -1
  389. package/src/lib/guid.d.ts +0 -344
  390. package/src/lib/guid.d.ts.map +0 -1
  391. package/src/lib/guid.js +0 -914
  392. package/src/lib/guid.js.map +0 -1
  393. package/src/lib/id-providers/custom-provider.d.ts +0 -46
  394. package/src/lib/id-providers/custom-provider.d.ts.map +0 -1
  395. package/src/lib/id-providers/custom-provider.js +0 -85
  396. package/src/lib/id-providers/custom-provider.js.map +0 -1
  397. package/src/lib/id-providers/guidv4-provider.d.ts +0 -56
  398. package/src/lib/id-providers/guidv4-provider.d.ts.map +0 -1
  399. package/src/lib/id-providers/guidv4-provider.js +0 -122
  400. package/src/lib/id-providers/guidv4-provider.js.map +0 -1
  401. package/src/lib/id-providers/index.d.ts.map +0 -1
  402. package/src/lib/id-providers/index.js +0 -29
  403. package/src/lib/id-providers/index.js.map +0 -1
  404. package/src/lib/id-providers/objectid-provider.d.ts +0 -43
  405. package/src/lib/id-providers/objectid-provider.d.ts.map +0 -1
  406. package/src/lib/id-providers/objectid-provider.js +0 -104
  407. package/src/lib/id-providers/objectid-provider.js.map +0 -1
  408. package/src/lib/id-providers/uuid-provider.d.ts +0 -52
  409. package/src/lib/id-providers/uuid-provider.d.ts.map +0 -1
  410. package/src/lib/id-providers/uuid-provider.js +0 -110
  411. package/src/lib/id-providers/uuid-provider.js.map +0 -1
  412. package/src/lib/index.d.ts +0 -6
  413. package/src/lib/index.d.ts.map +0 -1
  414. package/src/lib/index.js.map +0 -1
  415. package/src/lib/invariant-validator.d.ts +0 -59
  416. package/src/lib/invariant-validator.d.ts.map +0 -1
  417. package/src/lib/invariant-validator.js +0 -97
  418. package/src/lib/invariant-validator.js.map +0 -1
  419. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +0 -17
  420. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +0 -1
  421. package/src/lib/invariants/encryption-algorithm-consistency.js +0 -49
  422. package/src/lib/invariants/encryption-algorithm-consistency.js.map +0 -1
  423. package/src/lib/invariants/index.d.ts +0 -4
  424. package/src/lib/invariants/index.d.ts.map +0 -1
  425. package/src/lib/invariants/index.js.map +0 -1
  426. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +0 -16
  427. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +0 -1
  428. package/src/lib/invariants/pbkdf2-profiles-validity.js +0 -58
  429. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +0 -1
  430. package/src/lib/invariants/recipient-id-consistency.d.ts +0 -18
  431. package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
  432. package/src/lib/invariants/recipient-id-consistency.js +0 -31
  433. package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
  434. package/src/lib/multi-recipient-chunk-utils.d.ts +0 -38
  435. package/src/lib/multi-recipient-chunk-utils.d.ts.map +0 -1
  436. package/src/lib/multi-recipient-chunk-utils.js +0 -41
  437. package/src/lib/multi-recipient-chunk-utils.js.map +0 -1
  438. package/src/member.d.ts +0 -92
  439. package/src/member.d.ts.map +0 -1
  440. package/src/member.js +0 -322
  441. package/src/member.js.map +0 -1
  442. package/src/pbkdf2-profiles.d.ts.map +0 -1
  443. package/src/pbkdf2-profiles.js +0 -2
  444. package/src/pbkdf2-profiles.js.map +0 -1
  445. package/src/phone-number.d.ts +0 -6
  446. package/src/phone-number.d.ts.map +0 -1
  447. package/src/phone-number.js +0 -18
  448. package/src/phone-number.js.map +0 -1
  449. package/src/regexes.d.ts +0 -7
  450. package/src/regexes.d.ts.map +0 -1
  451. package/src/regexes.js +0 -7
  452. package/src/regexes.js.map +0 -1
  453. package/src/secure-buffer.d.ts +0 -61
  454. package/src/secure-buffer.d.ts.map +0 -1
  455. package/src/secure-buffer.js +0 -201
  456. package/src/secure-buffer.js.map +0 -1
  457. package/src/secure-string.d.ts +0 -46
  458. package/src/secure-string.d.ts.map +0 -1
  459. package/src/secure-string.js +0 -206
  460. package/src/secure-string.js.map +0 -1
  461. package/src/services/aes-gcm.d.ts +0 -57
  462. package/src/services/aes-gcm.d.ts.map +0 -1
  463. package/src/services/aes-gcm.js +0 -142
  464. package/src/services/aes-gcm.js.map +0 -1
  465. package/src/services/chunk-processor.d.ts +0 -31
  466. package/src/services/chunk-processor.d.ts.map +0 -1
  467. package/src/services/chunk-processor.js +0 -145
  468. package/src/services/chunk-processor.js.map +0 -1
  469. package/src/services/ecies/crypto-core.d.ts +0 -72
  470. package/src/services/ecies/crypto-core.d.ts.map +0 -1
  471. package/src/services/ecies/crypto-core.js +0 -205
  472. package/src/services/ecies/crypto-core.js.map +0 -1
  473. package/src/services/ecies/example.d.ts +0 -25
  474. package/src/services/ecies/example.d.ts.map +0 -1
  475. package/src/services/ecies/example.js +0 -121
  476. package/src/services/ecies/example.js.map +0 -1
  477. package/src/services/ecies/file.d.ts +0 -18
  478. package/src/services/ecies/file.d.ts.map +0 -1
  479. package/src/services/ecies/file.js +0 -106
  480. package/src/services/ecies/file.js.map +0 -1
  481. package/src/services/ecies/index.d.ts +0 -38
  482. package/src/services/ecies/index.d.ts.map +0 -1
  483. package/src/services/ecies/index.js.map +0 -1
  484. package/src/services/ecies/integration.d.ts +0 -59
  485. package/src/services/ecies/integration.d.ts.map +0 -1
  486. package/src/services/ecies/integration.js +0 -167
  487. package/src/services/ecies/integration.js.map +0 -1
  488. package/src/services/ecies/interfaces.d.ts +0 -54
  489. package/src/services/ecies/interfaces.d.ts.map +0 -1
  490. package/src/services/ecies/interfaces.js +0 -5
  491. package/src/services/ecies/interfaces.js.map +0 -1
  492. package/src/services/ecies/manual-test.d.ts +0 -29
  493. package/src/services/ecies/manual-test.d.ts.map +0 -1
  494. package/src/services/ecies/manual-test.js +0 -163
  495. package/src/services/ecies/manual-test.js.map +0 -1
  496. package/src/services/ecies/multi-recipient.d.ts +0 -56
  497. package/src/services/ecies/multi-recipient.d.ts.map +0 -1
  498. package/src/services/ecies/multi-recipient.js +0 -344
  499. package/src/services/ecies/multi-recipient.js.map +0 -1
  500. package/src/services/ecies/service.d.ts +0 -120
  501. package/src/services/ecies/service.d.ts.map +0 -1
  502. package/src/services/ecies/service.js +0 -210
  503. package/src/services/ecies/service.js.map +0 -1
  504. package/src/services/ecies/signature.d.ts +0 -27
  505. package/src/services/ecies/signature.d.ts.map +0 -1
  506. package/src/services/ecies/signature.js +0 -72
  507. package/src/services/ecies/signature.js.map +0 -1
  508. package/src/services/ecies/single-recipient.d.ts +0 -46
  509. package/src/services/ecies/single-recipient.d.ts.map +0 -1
  510. package/src/services/ecies/single-recipient.js +0 -322
  511. package/src/services/ecies/single-recipient.js.map +0 -1
  512. package/src/services/encryption-stream.d.ts +0 -71
  513. package/src/services/encryption-stream.d.ts.map +0 -1
  514. package/src/services/encryption-stream.js +0 -295
  515. package/src/services/encryption-stream.js.map +0 -1
  516. package/src/services/index.d.ts +0 -11
  517. package/src/services/index.d.ts.map +0 -1
  518. package/src/services/index.js.map +0 -1
  519. package/src/services/multi-recipient-processor.d.ts +0 -35
  520. package/src/services/multi-recipient-processor.d.ts.map +0 -1
  521. package/src/services/multi-recipient-processor.js +0 -289
  522. package/src/services/multi-recipient-processor.js.map +0 -1
  523. package/src/services/password-login.d.ts +0 -47
  524. package/src/services/password-login.d.ts.map +0 -1
  525. package/src/services/password-login.js +0 -115
  526. package/src/services/password-login.js.map +0 -1
  527. package/src/services/pbkdf2.d.ts +0 -54
  528. package/src/services/pbkdf2.d.ts.map +0 -1
  529. package/src/services/pbkdf2.js +0 -108
  530. package/src/services/pbkdf2.js.map +0 -1
  531. package/src/services/progress-tracker.d.ts +0 -23
  532. package/src/services/progress-tracker.d.ts.map +0 -1
  533. package/src/services/progress-tracker.js +0 -103
  534. package/src/services/progress-tracker.js.map +0 -1
  535. package/src/services/resumable-encryption.d.ts +0 -19
  536. package/src/services/resumable-encryption.d.ts.map +0 -1
  537. package/src/services/resumable-encryption.js +0 -105
  538. package/src/services/resumable-encryption.js.map +0 -1
  539. package/src/services/xor.d.ts +0 -37
  540. package/src/services/xor.d.ts.map +0 -1
  541. package/src/services/xor.js +0 -63
  542. package/src/services/xor.js.map +0 -1
  543. package/src/test-mocks/index.d.ts +0 -2
  544. package/src/test-mocks/index.d.ts.map +0 -1
  545. package/src/test-mocks/index.js +0 -2
  546. package/src/test-mocks/index.js.map +0 -1
  547. package/src/test-mocks/mock-frontend-member.d.ts +0 -85
  548. package/src/test-mocks/mock-frontend-member.d.ts.map +0 -1
  549. package/src/test-mocks/mock-frontend-member.js +0 -190
  550. package/src/test-mocks/mock-frontend-member.js.map +0 -1
  551. package/src/testing.d.ts +0 -2
  552. package/src/testing.d.ts.map +0 -1
  553. package/src/testing.js.map +0 -1
  554. package/src/translations/de.d.ts +0 -4
  555. package/src/translations/de.d.ts.map +0 -1
  556. package/src/translations/de.js.map +0 -1
  557. package/src/translations/en-US.d.ts +0 -4
  558. package/src/translations/en-US.d.ts.map +0 -1
  559. package/src/translations/en-US.js.map +0 -1
  560. package/src/translations/es.d.ts +0 -4
  561. package/src/translations/es.d.ts.map +0 -1
  562. package/src/translations/es.js.map +0 -1
  563. package/src/translations/fr.d.ts +0 -4
  564. package/src/translations/fr.d.ts.map +0 -1
  565. package/src/translations/fr.js.map +0 -1
  566. package/src/translations/ja.d.ts +0 -4
  567. package/src/translations/ja.d.ts.map +0 -1
  568. package/src/translations/ja.js.map +0 -1
  569. package/src/translations/uk.d.ts +0 -4
  570. package/src/translations/uk.d.ts.map +0 -1
  571. package/src/translations/uk.js.map +0 -1
  572. package/src/translations/zh-cn.d.ts +0 -4
  573. package/src/translations/zh-cn.d.ts.map +0 -1
  574. package/src/translations/zh-cn.js.map +0 -1
  575. package/src/types/deep-partial.d.ts +0 -4
  576. package/src/types/deep-partial.d.ts.map +0 -1
  577. package/src/types/deep-partial.js +0 -2
  578. package/src/types/deep-partial.js.map +0 -1
  579. package/src/types.d.ts.map +0 -1
  580. package/src/types.js +0 -2
  581. package/src/types.js.map +0 -1
  582. package/src/utils/encryption-type-utils.d.ts +0 -29
  583. package/src/utils/encryption-type-utils.d.ts.map +0 -1
  584. package/src/utils/encryption-type-utils.js +0 -61
  585. package/src/utils/encryption-type-utils.js.map +0 -1
  586. package/src/utils.d.ts +0 -68
  587. package/src/utils.d.ts.map +0 -1
  588. package/src/utils.js +0 -273
  589. package/src/utils.js.map +0 -1
@@ -8,26 +8,44 @@
8
8
  * - Result pattern
9
9
  * - i18n 2.0 integration
10
10
  */
11
+
11
12
  // Core v2 exports
12
13
  export * from './builders';
13
14
  export * from './core';
14
15
  export * from './lib';
16
+
15
17
  // i18n v2
16
- export { EciesComponentId, EciesI18nEngineKey, getEciesI18nEngine, getEciesTranslation, resetEciesI18nEngine, safeEciesTranslation, } from './i18n-setup';
18
+ export {
19
+ EciesComponentId,
20
+ EciesI18nEngineKey,
21
+ getEciesI18nEngine,
22
+ getEciesTranslation,
23
+ resetEciesI18nEngine,
24
+ safeEciesTranslation,
25
+ } from './i18n-setup';
26
+
17
27
  // Re-export existing types and enums (unchanged)
18
28
  export { EciesStringKey } from './enumerations/ecies-string-key';
19
29
  export { MemberType } from './enumerations/member-type';
20
30
  export { Pbkdf2ProfileEnum } from './enumerations/pbkdf2-profile';
31
+
21
32
  // Re-export value objects (unchanged)
22
33
  export { EmailString } from './email-string';
23
34
  export { SecureBuffer } from './secure-buffer';
24
35
  export { SecureString } from './secure-string';
36
+
25
37
  // Re-export constants (unchanged)
26
38
  export { Constants, ConstantsRegistry } from './constants';
39
+ export type { IConstants } from './interfaces';
27
40
  // Also export specific interfaces, types, and enums that are needed
28
41
  export { ECIES, OBJECT_ID_LENGTH, UINT32_MAX, UINT64_SIZE } from './constants';
29
42
  export { EciesCipherSuiteEnum } from './enumerations/ecies-cipher-suite';
30
- export { EciesEncryptionTypeEnum, EciesEncryptionTypeMap, } from './enumerations/ecies-encryption-type';
43
+ export {
44
+ EciesEncryptionTypeEnum,
45
+ EciesEncryptionTypeMap,
46
+ type EciesEncryptionType,
47
+ } from './enumerations/ecies-encryption-type';
48
+
31
49
  // Export utility functions from utils module (moved from enumerations for circular dependency fix)
32
50
  export { ECIESErrorTypeEnum } from './enumerations/ecies-error-type';
33
51
  export { EciesVersionEnum } from './enumerations/ecies-version';
@@ -36,21 +54,55 @@ export { LengthEncodingType } from './enumerations/length-encoding-type';
36
54
  export { MemberErrorType } from './enumerations/member-error-type';
37
55
  export { Pbkdf2ErrorType } from './enumerations/pbkdf2-error-type';
38
56
  export { ECIESError } from './errors/ecies';
39
- export { getLengthEncodingTypeForLength, getLengthEncodingTypeFromValue, getLengthForLengthType, } from './utils';
40
- export { encryptionTypeEnumToType, encryptionTypeToString, ensureEciesEncryptionTypeEnum, validateEciesEncryptionTypeEnum, } from './utils/encryption-type-utils';
57
+ export type {
58
+ IECIESConfig,
59
+ IECIESConstants,
60
+ IMemberStorageData,
61
+ IPBkdf2Consts,
62
+ IPbkdf2Config,
63
+ } from './interfaces';
64
+ export type { HexString } from './types';
65
+ export {
66
+ getLengthEncodingTypeForLength,
67
+ getLengthEncodingTypeFromValue,
68
+ getLengthForLengthType,
69
+ } from './utils';
70
+ export {
71
+ encryptionTypeEnumToType,
72
+ encryptionTypeToString,
73
+ ensureEciesEncryptionTypeEnum,
74
+ validateEciesEncryptionTypeEnum,
75
+ } from './utils/encryption-type-utils';
76
+
41
77
  // ID Provider system
42
78
  export { BaseIdProvider } from './interfaces/id-provider';
79
+ export type { IIdProvider } from './interfaces/id-provider';
43
80
  export * from './lib/id-providers';
44
81
  export { ObjectIdProvider } from './lib/id-providers/objectid-provider';
82
+
45
83
  // Invariant validation system
46
84
  export { BaseInvariant } from './interfaces/invariant';
85
+ export type { IInvariant } from './interfaces/invariant';
47
86
  export { InvariantValidator } from './lib/invariant-validator';
48
87
  export * from './lib/invariants';
88
+
49
89
  // Configuration helpers
50
- export { clearRuntimeConfigurations, createRuntimeConfiguration, getRuntimeConfiguration, registerRuntimeConfiguration, unregisterRuntimeConfiguration, } from './constants';
51
- export { calculateConfigChecksum, captureCreationStack, } from './interfaces/configuration-provenance';
90
+ export {
91
+ clearRuntimeConfigurations,
92
+ createRuntimeConfiguration,
93
+ getRuntimeConfiguration,
94
+ registerRuntimeConfiguration,
95
+ unregisterRuntimeConfiguration,
96
+ } from './constants';
97
+ export {
98
+ calculateConfigChecksum,
99
+ captureCreationStack,
100
+ } from './interfaces/configuration-provenance';
101
+ export type { IConfigurationProvenance } from './interfaces/configuration-provenance';
102
+
52
103
  // Note: Existing services will be re-exported once migrated to v2
53
104
  // For now, import from main index.ts for backward compatibility
105
+
54
106
  export * from './constants';
55
107
  export * from './email-string';
56
108
  export * from './enumerations';
@@ -59,6 +111,7 @@ export * from './i18n-setup';
59
111
  export * from './interfaces';
60
112
  export * from './interfaces/encrypted-chunk';
61
113
  export { ENCRYPTION_STATE_VERSION } from './interfaces/encryption-state';
114
+ export type { IEncryptionState } from './interfaces/encryption-state';
62
115
  export * from './interfaces/stream-config';
63
116
  export * from './interfaces/stream-header';
64
117
  export * from './interfaces/stream-progress';
@@ -73,11 +126,15 @@ export { ChunkProcessor } from './services/chunk-processor';
73
126
  export { EciesCryptoCore } from './services/ecies/crypto-core';
74
127
  export { ECIESService } from './services/ecies/service';
75
128
  export { EncryptionStream } from './services/encryption-stream';
129
+ export type {
130
+ IDecryptStreamOptions,
131
+ IEncryptStreamOptions,
132
+ } from './services/encryption-stream';
76
133
  export { PasswordLoginService } from './services/password-login';
77
134
  export { Pbkdf2Service } from './services/pbkdf2';
78
135
  export { ProgressTracker } from './services/progress-tracker';
79
136
  export { ResumableEncryption } from './services/resumable-encryption';
137
+ export type { IResumableOptions } from './services/resumable-encryption';
80
138
  export * from './types';
81
139
  export * from './utils';
82
140
  export { hexToUint8Array, uint8ArrayToHex } from './utils';
83
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ export interface IChecksumConfig {
2
+ algorithm: string;
3
+ encoding: 'hex' | 'base64';
4
+ }
@@ -0,0 +1,13 @@
1
+ export interface IChecksumConsts {
2
+ /** Default hash bits for SHA3 */
3
+ SHA3_DEFAULT_HASH_BITS: number;
4
+
5
+ /** Length of a SHA3 checksum buffer in bytes */
6
+ SHA3_BUFFER_LENGTH: number;
7
+
8
+ /** Algorithm name for checksums */
9
+ ALGORITHM: string;
10
+
11
+ /** Encoding for checksums */
12
+ ENCODING: 'hex' | 'base64';
13
+ }
@@ -0,0 +1,54 @@
1
+ import type { DeepPartial } from '../types/deep-partial';
2
+ import type { IConstants } from './constants';
3
+
4
+ /**
5
+ * Provenance information for a configuration.
6
+ * Tracks who created it, when, and what modifications were made.
7
+ */
8
+ export interface IConfigurationProvenance {
9
+ /**
10
+ * The base configuration key this was derived from
11
+ */
12
+ readonly baseConfigKey: string;
13
+
14
+ /**
15
+ * Overrides applied to the base configuration
16
+ */
17
+ readonly overrides: DeepPartial<IConstants>;
18
+
19
+ /**
20
+ * When this configuration was created
21
+ */
22
+ readonly timestamp: Date;
23
+
24
+ /**
25
+ * Source of the configuration
26
+ * - 'default': The built-in Constants
27
+ * - 'runtime': Created via createRuntimeConfiguration
28
+ * - 'custom': User-provided full configuration
29
+ */
30
+ readonly source: 'default' | 'runtime' | 'custom';
31
+
32
+ /**
33
+ * SHA-256 checksum of the final configuration
34
+ * Useful for verifying configuration hasn't been tampered with
35
+ */
36
+ readonly checksum: string;
37
+
38
+ /**
39
+ * Optional description or notes about this configuration
40
+ */
41
+ readonly description?: string;
42
+
43
+ /**
44
+ * Stack trace showing where the configuration was created
45
+ * Useful for debugging unexpected configurations
46
+ */
47
+ readonly creationStack?: string;
48
+ }
49
+
50
+ // Re-export utility functions from lib
51
+ export {
52
+ calculateConfigChecksum,
53
+ captureCreationStack,
54
+ } from '../lib/configuration-provenance-utils';
@@ -0,0 +1,75 @@
1
+ import type { Pbkdf2Profiles } from '../pbkdf2-profiles';
2
+ import type { IChecksumConsts } from './checksum-consts';
3
+ import type { IECIESConstants } from './ecies-consts';
4
+ import type { IIdProvider } from './id-provider';
5
+ import type { IPBkdf2Consts } from './pbkdf2-consts';
6
+
7
+ export interface IConstants {
8
+ UINT8_SIZE: number;
9
+ UINT16_SIZE: number;
10
+ UINT16_MAX: number;
11
+ UINT32_SIZE: number;
12
+ UINT32_MAX: number;
13
+ UINT64_SIZE: number;
14
+ UINT64_MAX: bigint;
15
+ HEX_RADIX: number;
16
+
17
+ /**
18
+ * The length of user IDs in the system.
19
+ * This is dynamically determined by the configured ID provider.
20
+ * @deprecated Use idProvider.byteLength instead for direct access
21
+ */
22
+ MEMBER_ID_LENGTH: number;
23
+
24
+ /**
25
+ * The length of a raw object ID (not the hex string representation).
26
+ * Standard MongoDB ObjectID is 12 bytes.
27
+ * @deprecated Use idProvider.byteLength instead for direct access
28
+ */
29
+ OBJECT_ID_LENGTH: number;
30
+
31
+ /**
32
+ * ID provider for recipient identification in multi-recipient encryption.
33
+ * This determines the format and size of recipient IDs used throughout the system.
34
+ *
35
+ * Default: ObjectIdProvider (12 bytes, MongoDB compatible)
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import { GuidV4Provider } from './lib/id-providers';
40
+ *
41
+ * // Use GUIDs instead of ObjectIDs
42
+ * const config = createRuntimeConfiguration({
43
+ * idProvider: new GuidV4Provider()
44
+ * });
45
+ * ```
46
+ */
47
+ idProvider: IIdProvider;
48
+
49
+ CHECKSUM: IChecksumConsts;
50
+ ECIES: IECIESConstants;
51
+ PBKDF2: IPBkdf2Consts;
52
+ PBKDF2_PROFILES: Pbkdf2Profiles;
53
+
54
+ /**
55
+ * Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
56
+ */
57
+ BcryptRounds: number;
58
+ /**
59
+ * Minimum password length
60
+ */
61
+ PasswordMinLength: number;
62
+ /**
63
+ * The regular expression for valid passwords.
64
+ */
65
+ PasswordRegex: RegExp;
66
+ /**
67
+ * The regular expression for valid mnemonic phrases.
68
+ * BIP39
69
+ */
70
+ MnemonicRegex: RegExp;
71
+ /**
72
+ * The regular expression for valid HMAC keys.
73
+ */
74
+ MnemonicHmacRegex: RegExp;
75
+ }
@@ -0,0 +1,8 @@
1
+ export interface IECIESConfig {
2
+ curveName: string;
3
+ primaryKeyDerivationPath: string;
4
+ mnemonicStrength: number;
5
+ symmetricAlgorithm: string;
6
+ symmetricKeyBits: number;
7
+ symmetricKeyMode: string;
8
+ }
@@ -0,0 +1,74 @@
1
+ import { CipherGCMTypes } from 'crypto';
2
+ export interface IECIESConstants {
3
+ /** The elliptic curve to use for all ECDSA operations */
4
+ CURVE_NAME: string;
5
+
6
+ /** The primary key derivation path for HD wallets */
7
+ PRIMARY_KEY_DERIVATION_PATH: string;
8
+
9
+ SYMMETRIC_ALGORITHM_CONFIGURATION: CipherGCMTypes;
10
+
11
+ /** Length of ECDSA signatures in bytes */
12
+ SIGNATURE_SIZE: number;
13
+
14
+ /** Length of raw public keys in bytes (without 0x04 prefix) */
15
+ RAW_PUBLIC_KEY_LENGTH: number;
16
+
17
+ /** Length of public keys in bytes (with 0x04 prefix) */
18
+ PUBLIC_KEY_LENGTH: number;
19
+
20
+ PUBLIC_KEY_MAGIC: number;
21
+
22
+ /** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
23
+ MNEMONIC_STRENGTH: number;
24
+
25
+ /** Symmetric encryption algorithm configuration */
26
+ SYMMETRIC: {
27
+ ALGORITHM: string;
28
+ MODE: string;
29
+ KEY_BITS: number;
30
+ KEY_SIZE: number; // KEY_BITS / 8
31
+ };
32
+
33
+ IV_SIZE: number;
34
+ AUTH_TAG_SIZE: number;
35
+ MAX_RAW_DATA_SIZE: number; // 2^53 - 1 (max safe integer for JS)
36
+
37
+ VERSION_SIZE: number;
38
+ CIPHER_SUITE_SIZE: number;
39
+ ENCRYPTION_TYPE_SIZE: number;
40
+
41
+ /**
42
+ * Message encrypts without data length or crc
43
+ */
44
+ SIMPLE: {
45
+ FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16)
46
+ DATA_LENGTH_SIZE: number;
47
+ };
48
+
49
+ /**
50
+ * Message encrypts like single but with data Length and crc
51
+ */
52
+ SINGLE: {
53
+ FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16) + data length (8) + crc16 (2)
54
+ DATA_LENGTH_SIZE: number;
55
+ };
56
+
57
+ /**
58
+ * Message encrypts for multiple recipients
59
+ */
60
+ MULTIPLE: {
61
+ FIXED_OVERHEAD_SIZE: number;
62
+ ENCRYPTED_KEY_SIZE: number;
63
+ MAX_RECIPIENTS: number;
64
+ RECIPIENT_ID_SIZE: number;
65
+ RECIPIENT_COUNT_SIZE: number;
66
+ DATA_LENGTH_SIZE: number;
67
+ };
68
+
69
+ ENCRYPTION_TYPE: {
70
+ SIMPLE: number;
71
+ SINGLE: number;
72
+ MULTIPLE: number;
73
+ };
74
+ }
@@ -0,0 +1,6 @@
1
+ export interface IEciesFileService {
2
+ encryptFile(file: File, recipientPublicKey: Uint8Array): Promise<Uint8Array>;
3
+ decryptFile(encryptedData: Uint8Array): Promise<Uint8Array>;
4
+ downloadEncryptedFile(encryptedData: Uint8Array, filename: string): void;
5
+ downloadDecryptedFile(decryptedData: Uint8Array, filename: string): void;
6
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Metadata for an encrypted chunk
3
+ */
4
+ export interface IChunkMetadata {
5
+ /** Original size before encryption */
6
+ originalSize: number;
7
+ /** Size after encryption */
8
+ encryptedSize: number;
9
+ /** Timestamp when chunk was encrypted */
10
+ timestamp: number;
11
+ /** Optional SHA-256 checksum of original data */
12
+ checksum?: Uint8Array;
13
+ }
14
+
15
+ /**
16
+ * Represents a single encrypted chunk in a stream
17
+ */
18
+ export interface IEncryptedChunk {
19
+ /** Chunk sequence number (0-based) */
20
+ index: number;
21
+ /** Encrypted chunk data */
22
+ data: Uint8Array;
23
+ /** Whether this is the final chunk */
24
+ isLast: boolean;
25
+ /** Chunk metadata */
26
+ metadata?: IChunkMetadata;
27
+ }
28
+
29
+ /**
30
+ * Chunk header structure (32 bytes fixed)
31
+ */
32
+ export interface IChunkHeader {
33
+ /** Magic bytes: 0x45434945 ("ECIE") */
34
+ magic: number;
35
+ /** Version: 0x0001 */
36
+ version: number;
37
+ /** Chunk index */
38
+ index: number;
39
+ /** Original size */
40
+ originalSize: number;
41
+ /** Encrypted size */
42
+ encryptedSize: number;
43
+ /** Flags (bit 0: isLast, bit 1: hasChecksum) */
44
+ flags: number;
45
+ }
46
+
47
+ /**
48
+ * Constants for chunk format
49
+ */
50
+ export const CHUNK_CONSTANTS: {
51
+ readonly MAGIC: 0x45434945;
52
+ readonly VERSION: 0x0001;
53
+ readonly HEADER_SIZE: 32;
54
+ readonly FLAG_IS_LAST: 0x01;
55
+ readonly FLAG_HAS_CHECKSUM: 0x02;
56
+ readonly CHECKSUM_SIZE: 32;
57
+ } = {
58
+ MAGIC: 0x45434945, // "ECIE"
59
+ VERSION: 0x0001,
60
+ HEADER_SIZE: 32,
61
+ FLAG_IS_LAST: 0x01,
62
+ FLAG_HAS_CHECKSUM: 0x02,
63
+ CHECKSUM_SIZE: 32, // SHA-256
64
+ } as const;
@@ -0,0 +1,19 @@
1
+ import type { EciesEncryptionTypeEnum } from '../enumerations/ecies-encryption-type';
2
+
3
+ /**
4
+ * Serializable encryption state for resumption
5
+ */
6
+ export interface IEncryptionState {
7
+ version: number;
8
+ chunkIndex: number;
9
+ bytesProcessed: number;
10
+ totalBytes?: number;
11
+ publicKey: string; // hex
12
+ encryptionType: EciesEncryptionTypeEnum;
13
+ chunkSize: number;
14
+ includeChecksums: boolean;
15
+ timestamp: number;
16
+ hmac?: string; // hex SHA-256 HMAC for integrity
17
+ }
18
+
19
+ export const ENCRYPTION_STATE_VERSION: number = 1;
@@ -0,0 +1,77 @@
1
+ import type { Wallet } from '@ethereumjs/wallet';
2
+ import type { EmailString } from '../email-string';
3
+ import type MemberType from '../enumerations/member-type';
4
+ import type { SecureBuffer } from '../secure-buffer';
5
+ import type { SecureString } from '../secure-string';
6
+ import type { SignatureUint8Array } from '../types';
7
+ import type { IECIESConstants } from './ecies-consts';
8
+ import type { IEncryptedChunk } from './encrypted-chunk';
9
+ import type { ProgressCallback } from './stream-progress';
10
+
11
+ /**
12
+ * Operational interface for member - defines getters and methods
13
+ */
14
+ export interface IFrontendMemberOperational<
15
+ TID = Uint8Array,
16
+ TData = Uint8Array,
17
+ TSignature = SignatureUint8Array,
18
+ > {
19
+ // Required getters
20
+ get id(): TID;
21
+ get type(): MemberType;
22
+ get name(): string;
23
+ get email(): EmailString;
24
+ get publicKey(): Uint8Array;
25
+ get creatorId(): TID;
26
+ get dateCreated(): Date;
27
+ get dateUpdated(): Date;
28
+
29
+ // Optional private data getters
30
+ get privateKey(): SecureBuffer | undefined;
31
+ get wallet(): Wallet | undefined;
32
+
33
+ // State getters
34
+ get hasPrivateKey(): boolean;
35
+
36
+ // Methods
37
+ sign(data: TData): TSignature;
38
+ verify(signature: TSignature, data: TData): boolean;
39
+ encryptData(
40
+ data: string | TData,
41
+ recipientPublicKey?: Uint8Array,
42
+ ): Promise<TData>;
43
+ decryptData(encryptedData: TData): Promise<TData>;
44
+ toJson(): string;
45
+ dispose(): void;
46
+
47
+ // Streaming methods
48
+ encryptDataStream(
49
+ source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
50
+ options?: {
51
+ recipientPublicKey?: Uint8Array;
52
+ onProgress?: ProgressCallback;
53
+ signal?: AbortSignal;
54
+ },
55
+ ): AsyncGenerator<IEncryptedChunk, void, unknown>;
56
+
57
+ decryptDataStream(
58
+ source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
59
+ options?: {
60
+ onProgress?: ProgressCallback;
61
+ signal?: AbortSignal;
62
+ },
63
+ ): AsyncGenerator<Uint8Array, void, unknown>;
64
+
65
+ // Private key management
66
+ loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
67
+ unloadPrivateKey(): void;
68
+ unloadWallet(): void;
69
+ unloadWalletAndPrivateKey(): void;
70
+ }
71
+
72
+ /**
73
+ * Extended operational interface for test members
74
+ */
75
+ export interface ITestMemberOperational extends IFrontendMemberOperational {
76
+ get mnemonic(): SecureString | undefined;
77
+ }
@@ -0,0 +1,86 @@
1
+ import {
2
+ Base64Guid,
3
+ BigIntGuid,
4
+ // prettier-ignore
5
+ FullHexGuid,
6
+ RawGuidBuffer,
7
+ ShortHexGuid,
8
+ } from '../types';
9
+
10
+ export interface IGuidV4 {
11
+ /**
12
+ * Returns the GUID as a raw buffer.
13
+ */
14
+ get asRawGuidBuffer(): RawGuidBuffer;
15
+ /**
16
+ * Returns the GUID as a full hex string.
17
+ */
18
+ get asFullHexGuid(): FullHexGuid;
19
+ /**
20
+ * Returns the GUID as a Uint8Array.
21
+ */
22
+ get asUint8Array(): Uint8Array;
23
+ /**
24
+ * Returns the GUID as a short hex string.
25
+ */
26
+ get asShortHexGuid(): ShortHexGuid;
27
+ /**
28
+ * Returns the GUID as a BigInt.
29
+ */
30
+ get asBigIntGuid(): BigIntGuid;
31
+ /**
32
+ * Returns the GUID as a Base64 string.
33
+ */
34
+ get asBase64Guid(): Base64Guid;
35
+
36
+ /**
37
+ * Returns the GUID as a base64 string
38
+ */
39
+ serialize(): string;
40
+ /**
41
+ * Returns the GUID as a JSON string
42
+ */
43
+ toJson(): string;
44
+ /**
45
+ * Returns the GUID as a Base64 string
46
+ */
47
+ toString(): Base64Guid;
48
+ /**
49
+ * Compares this GUID to another GUID
50
+ * @param other The GUID to compare to (can be null/undefined)
51
+ * @param constantTime Use constant-time comparison to prevent timing attacks
52
+ */
53
+ equals(other: IGuidV4 | null | undefined, constantTime?: boolean): boolean;
54
+ /**
55
+ * Creates a new GuidV4 instance with the same value as this one.
56
+ * @returns A new GuidV4 instance with identical value
57
+ */
58
+ clone(): IGuidV4;
59
+ /**
60
+ * Returns the hash code for this GUID based on its buffer content.
61
+ * Useful for using GUIDs as Map/Set keys.
62
+ * @returns A numeric hash code
63
+ */
64
+ hashCode(): number;
65
+ /**
66
+ * Checks if this GUID is empty (all zeros).
67
+ * @returns True if the GUID is all zeros, false otherwise
68
+ */
69
+ isEmpty(): boolean;
70
+ /**
71
+ * Extracts the RFC 4122 version from the GUID.
72
+ * @returns The version number (1-5) or undefined
73
+ */
74
+ getVersion(): number | undefined;
75
+ /**
76
+ * Validates that this GUID is a proper v4 GUID according to RFC 4122.
77
+ * @returns True if valid v4 GUID or boundary value, false otherwise
78
+ */
79
+ isValidV4(): boolean;
80
+ /**
81
+ * Compares two GUIDs for ordering.
82
+ * @param other The other GUID to compare to
83
+ * @returns -1 if this < other, 0 if equal, 1 if this > other
84
+ */
85
+ compareTo(other: IGuidV4): number;
86
+ }