@digitaldefiance/node-ecies-lib 4.4.1 → 4.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/package.json +11 -7
  4. package/src/builders/ecies-builder.ts +27 -0
  5. package/src/builders/{index.d.ts → index.ts} +0 -1
  6. package/src/builders/member-builder.ts +158 -0
  7. package/src/constants.ts +251 -0
  8. package/src/core/errors/crypto-error.ts +10 -0
  9. package/src/core/{index.d.ts → index.ts} +0 -1
  10. package/src/core/types/result.ts +3 -0
  11. package/src/enumerations/index.ts +2 -0
  12. package/src/enumerations/pbkdf2-profile.ts +8 -0
  13. package/src/i18n/ecies-i18n-factory.ts +111 -0
  14. package/src/i18n/{index.d.ts → index.ts} +3 -1
  15. package/src/i18n/node-ecies-i18n-setup.ts +56 -0
  16. package/src/i18n/node-keys.ts +69 -0
  17. package/src/i18n/translations/de.ts +54 -0
  18. package/src/i18n/translations/en-GB.ts +83 -0
  19. package/src/i18n/translations/en-US.ts +88 -0
  20. package/src/i18n/translations/es.ts +54 -0
  21. package/src/i18n/translations/fr.ts +54 -0
  22. package/src/i18n/translations/{index.d.ts → index.ts} +0 -1
  23. package/src/i18n/translations/ja.ts +54 -0
  24. package/src/i18n/translations/uk.ts +54 -0
  25. package/src/i18n/translations/zh-cn.ts +54 -0
  26. package/src/{index.d.ts → index.ts} +5 -1
  27. package/src/interfaces/authenticated-cipher.ts +10 -0
  28. package/src/interfaces/authenticated-decipher.ts +9 -0
  29. package/src/interfaces/backend-member-operational.ts +75 -0
  30. package/src/interfaces/checksum-config.ts +4 -0
  31. package/src/interfaces/checksum-consts.ts +13 -0
  32. package/src/interfaces/constants.ts +54 -0
  33. package/src/interfaces/ecies-consts.ts +99 -0
  34. package/src/interfaces/encrypted-chunk.ts +12 -0
  35. package/src/interfaces/encryption-consts.ts +10 -0
  36. package/src/interfaces/{index.d.ts → index.ts} +0 -1
  37. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +7 -0
  38. package/src/interfaces/keyring-consts.ts +5 -0
  39. package/src/interfaces/{member-with-mnemonic.d.ts → member-with-mnemonic.ts} +3 -3
  40. package/src/interfaces/member.ts +76 -0
  41. package/src/interfaces/{multi-encrypted-message.d.ts → multi-encrypted-message.ts} +5 -5
  42. package/src/interfaces/multi-encrypted-parsed-header.ts +28 -0
  43. package/src/interfaces/multi-recipient-chunk.ts +35 -0
  44. package/src/interfaces/{pbkdf-profiles.d.ts → pbkdf-profiles.ts} +2 -2
  45. package/src/interfaces/pbkdf2-result.ts +5 -0
  46. package/src/interfaces/signing-key-private-key-info.ts +12 -0
  47. package/src/interfaces/{simple-keypair-buffer.d.ts → simple-keypair-buffer.ts} +3 -3
  48. package/src/interfaces/{simple-keypair.d.ts → simple-keypair.ts} +3 -3
  49. package/src/interfaces/simple-public-key-only-buffer.ts +3 -0
  50. package/src/interfaces/simple-public-key-only.ts +3 -0
  51. package/src/interfaces/single-encrypted-parsed-header.ts +35 -0
  52. package/src/interfaces/stream-config.ts +9 -0
  53. package/src/interfaces/stream-progress.ts +7 -0
  54. package/src/interfaces/{wallet-seed.d.ts → wallet-seed.ts} +3 -3
  55. package/src/interfaces/wrapped-key-consts.ts +6 -0
  56. package/src/lib/crypto-container.ts +32 -0
  57. package/src/lib/{index.d.ts → index.ts} +0 -1
  58. package/src/lib/invariant-validator.ts +124 -0
  59. package/src/lib/invariants/{index.d.ts → index.ts} +2 -2
  60. package/src/lib/invariants/recipient-id-consistency.ts +77 -0
  61. package/src/member.ts +511 -0
  62. package/src/services/aes-gcm.ts +260 -0
  63. package/src/services/chunk-processor.ts +47 -0
  64. package/src/services/ecies/crypto-core.ts +319 -0
  65. package/src/services/ecies/file.ts +171 -0
  66. package/src/services/ecies/{index.d.ts → index.ts} +0 -1
  67. package/src/services/ecies/multi-recipient.ts +782 -0
  68. package/src/services/ecies/service.ts +316 -0
  69. package/src/services/ecies/signature.ts +91 -0
  70. package/src/services/ecies/single-recipient.ts +743 -0
  71. package/src/services/ecies/utilities.ts +128 -0
  72. package/src/services/encryption-stream.ts +432 -0
  73. package/src/services/{index.d.ts → index.ts} +0 -1
  74. package/src/services/multi-recipient-processor.ts +505 -0
  75. package/src/services/pbkdf2.ts +304 -0
  76. package/src/services/progress-tracker.ts +43 -0
  77. package/src/test-mocks/index.ts +1 -0
  78. package/src/test-mocks/mock-backend-member.ts +195 -0
  79. package/src/testing.ts +2 -0
  80. package/src/types/id-guards.ts +91 -0
  81. package/src/types/index.ts +1 -0
  82. package/src/{types.d.ts → types.ts} +28 -9
  83. package/src/utils.ts +124 -0
  84. package/src/builders/ecies-builder.d.ts +0 -11
  85. package/src/builders/ecies-builder.d.ts.map +0 -1
  86. package/src/builders/ecies-builder.js +0 -26
  87. package/src/builders/ecies-builder.js.map +0 -1
  88. package/src/builders/index.d.ts.map +0 -1
  89. package/src/builders/index.js +0 -6
  90. package/src/builders/index.js.map +0 -1
  91. package/src/builders/member-builder.d.ts +0 -47
  92. package/src/builders/member-builder.d.ts.map +0 -1
  93. package/src/builders/member-builder.js +0 -99
  94. package/src/builders/member-builder.js.map +0 -1
  95. package/src/constants.d.ts +0 -38
  96. package/src/constants.d.ts.map +0 -1
  97. package/src/constants.js +0 -183
  98. package/src/constants.js.map +0 -1
  99. package/src/core/errors/crypto-error.d.ts +0 -6
  100. package/src/core/errors/crypto-error.d.ts.map +0 -1
  101. package/src/core/errors/crypto-error.js +0 -15
  102. package/src/core/errors/crypto-error.js.map +0 -1
  103. package/src/core/index.d.ts.map +0 -1
  104. package/src/core/index.js +0 -6
  105. package/src/core/index.js.map +0 -1
  106. package/src/core/types/result.d.ts +0 -8
  107. package/src/core/types/result.d.ts.map +0 -1
  108. package/src/core/types/result.js +0 -3
  109. package/src/core/types/result.js.map +0 -1
  110. package/src/enumerations/index.d.ts +0 -2
  111. package/src/enumerations/index.d.ts.map +0 -1
  112. package/src/enumerations/index.js +0 -5
  113. package/src/enumerations/index.js.map +0 -1
  114. package/src/enumerations/pbkdf2-profile.d.ts +0 -9
  115. package/src/enumerations/pbkdf2-profile.d.ts.map +0 -1
  116. package/src/enumerations/pbkdf2-profile.js +0 -13
  117. package/src/enumerations/pbkdf2-profile.js.map +0 -1
  118. package/src/i18n/ecies-i18n-factory.d.ts +0 -28
  119. package/src/i18n/ecies-i18n-factory.d.ts.map +0 -1
  120. package/src/i18n/ecies-i18n-factory.js +0 -89
  121. package/src/i18n/ecies-i18n-factory.js.map +0 -1
  122. package/src/i18n/index.d.ts.map +0 -1
  123. package/src/i18n/index.js +0 -8
  124. package/src/i18n/index.js.map +0 -1
  125. package/src/i18n/node-ecies-i18n-setup.d.ts +0 -5
  126. package/src/i18n/node-ecies-i18n-setup.d.ts.map +0 -1
  127. package/src/i18n/node-ecies-i18n-setup.js +0 -46
  128. package/src/i18n/node-ecies-i18n-setup.js.map +0 -1
  129. package/src/i18n/node-keys.d.ts +0 -57
  130. package/src/i18n/node-keys.d.ts.map +0 -1
  131. package/src/i18n/node-keys.js +0 -67
  132. package/src/i18n/node-keys.js.map +0 -1
  133. package/src/i18n/translations/de.d.ts +0 -3
  134. package/src/i18n/translations/de.d.ts.map +0 -1
  135. package/src/i18n/translations/de.js +0 -57
  136. package/src/i18n/translations/de.js.map +0 -1
  137. package/src/i18n/translations/en-GB.d.ts +0 -3
  138. package/src/i18n/translations/en-GB.d.ts.map +0 -1
  139. package/src/i18n/translations/en-GB.js +0 -61
  140. package/src/i18n/translations/en-GB.js.map +0 -1
  141. package/src/i18n/translations/en-US.d.ts +0 -6
  142. package/src/i18n/translations/en-US.d.ts.map +0 -1
  143. package/src/i18n/translations/en-US.js +0 -65
  144. package/src/i18n/translations/en-US.js.map +0 -1
  145. package/src/i18n/translations/es.d.ts +0 -3
  146. package/src/i18n/translations/es.d.ts.map +0 -1
  147. package/src/i18n/translations/es.js +0 -57
  148. package/src/i18n/translations/es.js.map +0 -1
  149. package/src/i18n/translations/fr.d.ts +0 -3
  150. package/src/i18n/translations/fr.d.ts.map +0 -1
  151. package/src/i18n/translations/fr.js +0 -57
  152. package/src/i18n/translations/fr.js.map +0 -1
  153. package/src/i18n/translations/index.d.ts.map +0 -1
  154. package/src/i18n/translations/index.js +0 -20
  155. package/src/i18n/translations/index.js.map +0 -1
  156. package/src/i18n/translations/ja.d.ts +0 -3
  157. package/src/i18n/translations/ja.d.ts.map +0 -1
  158. package/src/i18n/translations/ja.js +0 -57
  159. package/src/i18n/translations/ja.js.map +0 -1
  160. package/src/i18n/translations/uk.d.ts +0 -3
  161. package/src/i18n/translations/uk.d.ts.map +0 -1
  162. package/src/i18n/translations/uk.js +0 -57
  163. package/src/i18n/translations/uk.js.map +0 -1
  164. package/src/i18n/translations/zh-cn.d.ts +0 -3
  165. package/src/i18n/translations/zh-cn.d.ts.map +0 -1
  166. package/src/i18n/translations/zh-cn.js +0 -57
  167. package/src/i18n/translations/zh-cn.js.map +0 -1
  168. package/src/index.d.ts.map +0 -1
  169. package/src/index.js +0 -31
  170. package/src/index.js.map +0 -1
  171. package/src/interfaces/authenticated-cipher.d.ts +0 -12
  172. package/src/interfaces/authenticated-cipher.d.ts.map +0 -1
  173. package/src/interfaces/authenticated-cipher.js +0 -3
  174. package/src/interfaces/authenticated-cipher.js.map +0 -1
  175. package/src/interfaces/authenticated-decipher.d.ts +0 -11
  176. package/src/interfaces/authenticated-decipher.d.ts.map +0 -1
  177. package/src/interfaces/authenticated-decipher.js +0 -3
  178. package/src/interfaces/authenticated-decipher.js.map +0 -1
  179. package/src/interfaces/backend-member-operational.d.ts +0 -48
  180. package/src/interfaces/backend-member-operational.d.ts.map +0 -1
  181. package/src/interfaces/backend-member-operational.js +0 -3
  182. package/src/interfaces/backend-member-operational.js.map +0 -1
  183. package/src/interfaces/checksum-config.d.ts +0 -5
  184. package/src/interfaces/checksum-config.d.ts.map +0 -1
  185. package/src/interfaces/checksum-config.js +0 -3
  186. package/src/interfaces/checksum-config.js.map +0 -1
  187. package/src/interfaces/checksum-consts.d.ts +0 -11
  188. package/src/interfaces/checksum-consts.d.ts.map +0 -1
  189. package/src/interfaces/checksum-consts.js +0 -3
  190. package/src/interfaces/checksum-consts.js.map +0 -1
  191. package/src/interfaces/constants.d.ts +0 -52
  192. package/src/interfaces/constants.d.ts.map +0 -1
  193. package/src/interfaces/constants.js +0 -3
  194. package/src/interfaces/constants.js.map +0 -1
  195. package/src/interfaces/ecies-consts.d.ts +0 -88
  196. package/src/interfaces/ecies-consts.d.ts.map +0 -1
  197. package/src/interfaces/ecies-consts.js +0 -3
  198. package/src/interfaces/ecies-consts.js.map +0 -1
  199. package/src/interfaces/encrypted-chunk.d.ts +0 -12
  200. package/src/interfaces/encrypted-chunk.d.ts.map +0 -1
  201. package/src/interfaces/encrypted-chunk.js +0 -3
  202. package/src/interfaces/encrypted-chunk.js.map +0 -1
  203. package/src/interfaces/encryption-consts.d.ts +0 -11
  204. package/src/interfaces/encryption-consts.d.ts.map +0 -1
  205. package/src/interfaces/encryption-consts.js +0 -3
  206. package/src/interfaces/encryption-consts.js.map +0 -1
  207. package/src/interfaces/index.d.ts.map +0 -1
  208. package/src/interfaces/index.js +0 -30
  209. package/src/interfaces/index.js.map +0 -1
  210. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +0 -6
  211. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +0 -1
  212. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +0 -3
  213. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +0 -1
  214. package/src/interfaces/keyring-consts.d.ts +0 -6
  215. package/src/interfaces/keyring-consts.d.ts.map +0 -1
  216. package/src/interfaces/keyring-consts.js +0 -3
  217. package/src/interfaces/keyring-consts.js.map +0 -1
  218. package/src/interfaces/member-with-mnemonic.d.ts.map +0 -1
  219. package/src/interfaces/member-with-mnemonic.js +0 -3
  220. package/src/interfaces/member-with-mnemonic.js.map +0 -1
  221. package/src/interfaces/member.d.ts +0 -47
  222. package/src/interfaces/member.d.ts.map +0 -1
  223. package/src/interfaces/member.js +0 -3
  224. package/src/interfaces/member.js.map +0 -1
  225. package/src/interfaces/multi-encrypted-message.d.ts.map +0 -1
  226. package/src/interfaces/multi-encrypted-message.js +0 -3
  227. package/src/interfaces/multi-encrypted-message.js.map +0 -1
  228. package/src/interfaces/multi-encrypted-parsed-header.d.ts +0 -27
  229. package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +0 -1
  230. package/src/interfaces/multi-encrypted-parsed-header.js +0 -3
  231. package/src/interfaces/multi-encrypted-parsed-header.js.map +0 -1
  232. package/src/interfaces/multi-recipient-chunk.d.ts +0 -26
  233. package/src/interfaces/multi-recipient-chunk.d.ts.map +0 -1
  234. package/src/interfaces/multi-recipient-chunk.js +0 -13
  235. package/src/interfaces/multi-recipient-chunk.js.map +0 -1
  236. package/src/interfaces/pbkdf-profiles.d.ts.map +0 -1
  237. package/src/interfaces/pbkdf-profiles.js +0 -3
  238. package/src/interfaces/pbkdf-profiles.js.map +0 -1
  239. package/src/interfaces/pbkdf2-result.d.ts +0 -6
  240. package/src/interfaces/pbkdf2-result.d.ts.map +0 -1
  241. package/src/interfaces/pbkdf2-result.js +0 -3
  242. package/src/interfaces/pbkdf2-result.js.map +0 -1
  243. package/src/interfaces/signing-key-private-key-info.d.ts +0 -11
  244. package/src/interfaces/signing-key-private-key-info.d.ts.map +0 -1
  245. package/src/interfaces/signing-key-private-key-info.js +0 -3
  246. package/src/interfaces/signing-key-private-key-info.js.map +0 -1
  247. package/src/interfaces/simple-keypair-buffer.d.ts.map +0 -1
  248. package/src/interfaces/simple-keypair-buffer.js +0 -3
  249. package/src/interfaces/simple-keypair-buffer.js.map +0 -1
  250. package/src/interfaces/simple-keypair.d.ts.map +0 -1
  251. package/src/interfaces/simple-keypair.js +0 -3
  252. package/src/interfaces/simple-keypair.js.map +0 -1
  253. package/src/interfaces/simple-public-key-only-buffer.d.ts +0 -4
  254. package/src/interfaces/simple-public-key-only-buffer.d.ts.map +0 -1
  255. package/src/interfaces/simple-public-key-only-buffer.js +0 -3
  256. package/src/interfaces/simple-public-key-only-buffer.js.map +0 -1
  257. package/src/interfaces/simple-public-key-only.d.ts +0 -4
  258. package/src/interfaces/simple-public-key-only.d.ts.map +0 -1
  259. package/src/interfaces/simple-public-key-only.js +0 -3
  260. package/src/interfaces/simple-public-key-only.js.map +0 -1
  261. package/src/interfaces/single-encrypted-parsed-header.d.ts +0 -35
  262. package/src/interfaces/single-encrypted-parsed-header.d.ts.map +0 -1
  263. package/src/interfaces/single-encrypted-parsed-header.js +0 -3
  264. package/src/interfaces/single-encrypted-parsed-header.js.map +0 -1
  265. package/src/interfaces/stream-config.d.ts +0 -6
  266. package/src/interfaces/stream-config.d.ts.map +0 -1
  267. package/src/interfaces/stream-config.js +0 -8
  268. package/src/interfaces/stream-config.js.map +0 -1
  269. package/src/interfaces/stream-progress.d.ts +0 -8
  270. package/src/interfaces/stream-progress.d.ts.map +0 -1
  271. package/src/interfaces/stream-progress.js +0 -3
  272. package/src/interfaces/stream-progress.js.map +0 -1
  273. package/src/interfaces/wallet-seed.d.ts.map +0 -1
  274. package/src/interfaces/wallet-seed.js +0 -3
  275. package/src/interfaces/wallet-seed.js.map +0 -1
  276. package/src/interfaces/wrapped-key-consts.d.ts +0 -7
  277. package/src/interfaces/wrapped-key-consts.d.ts.map +0 -1
  278. package/src/interfaces/wrapped-key-consts.js +0 -3
  279. package/src/interfaces/wrapped-key-consts.js.map +0 -1
  280. package/src/lib/crypto-container.d.ts +0 -13
  281. package/src/lib/crypto-container.d.ts.map +0 -1
  282. package/src/lib/crypto-container.js +0 -29
  283. package/src/lib/crypto-container.js.map +0 -1
  284. package/src/lib/index.d.ts.map +0 -1
  285. package/src/lib/index.js +0 -7
  286. package/src/lib/index.js.map +0 -1
  287. package/src/lib/invariant-validator.d.ts +0 -62
  288. package/src/lib/invariant-validator.d.ts.map +0 -1
  289. package/src/lib/invariant-validator.js +0 -108
  290. package/src/lib/invariant-validator.js.map +0 -1
  291. package/src/lib/invariants/index.d.ts.map +0 -1
  292. package/src/lib/invariants/index.js +0 -12
  293. package/src/lib/invariants/index.js.map +0 -1
  294. package/src/lib/invariants/recipient-id-consistency.d.ts +0 -22
  295. package/src/lib/invariants/recipient-id-consistency.d.ts.map +0 -1
  296. package/src/lib/invariants/recipient-id-consistency.js +0 -62
  297. package/src/lib/invariants/recipient-id-consistency.js.map +0 -1
  298. package/src/member.d.ts +0 -81
  299. package/src/member.d.ts.map +0 -1
  300. package/src/member.js +0 -285
  301. package/src/member.js.map +0 -1
  302. package/src/services/aes-gcm.d.ts +0 -66
  303. package/src/services/aes-gcm.d.ts.map +0 -1
  304. package/src/services/aes-gcm.js +0 -158
  305. package/src/services/aes-gcm.js.map +0 -1
  306. package/src/services/chunk-processor.d.ts +0 -15
  307. package/src/services/chunk-processor.d.ts.map +0 -1
  308. package/src/services/chunk-processor.js +0 -36
  309. package/src/services/chunk-processor.js.map +0 -1
  310. package/src/services/ecies/crypto-core.d.ts +0 -104
  311. package/src/services/ecies/crypto-core.d.ts.map +0 -1
  312. package/src/services/ecies/crypto-core.js +0 -237
  313. package/src/services/ecies/crypto-core.js.map +0 -1
  314. package/src/services/ecies/file.d.ts +0 -30
  315. package/src/services/ecies/file.d.ts.map +0 -1
  316. package/src/services/ecies/file.js +0 -112
  317. package/src/services/ecies/file.js.map +0 -1
  318. package/src/services/ecies/index.d.ts.map +0 -1
  319. package/src/services/ecies/index.js +0 -11
  320. package/src/services/ecies/index.js.map +0 -1
  321. package/src/services/ecies/multi-recipient.d.ts +0 -84
  322. package/src/services/ecies/multi-recipient.d.ts.map +0 -1
  323. package/src/services/ecies/multi-recipient.js +0 -496
  324. package/src/services/ecies/multi-recipient.js.map +0 -1
  325. package/src/services/ecies/service.d.ts +0 -69
  326. package/src/services/ecies/service.d.ts.map +0 -1
  327. package/src/services/ecies/service.js +0 -144
  328. package/src/services/ecies/service.js.map +0 -1
  329. package/src/services/ecies/signature.d.ts +0 -38
  330. package/src/services/ecies/signature.d.ts.map +0 -1
  331. package/src/services/ecies/signature.js +0 -69
  332. package/src/services/ecies/signature.js.map +0 -1
  333. package/src/services/ecies/single-recipient.d.ts +0 -83
  334. package/src/services/ecies/single-recipient.d.ts.map +0 -1
  335. package/src/services/ecies/single-recipient.js +0 -447
  336. package/src/services/ecies/single-recipient.js.map +0 -1
  337. package/src/services/ecies/utilities.d.ts +0 -33
  338. package/src/services/ecies/utilities.d.ts.map +0 -1
  339. package/src/services/ecies/utilities.js +0 -91
  340. package/src/services/ecies/utilities.js.map +0 -1
  341. package/src/services/encryption-stream.d.ts +0 -33
  342. package/src/services/encryption-stream.d.ts.map +0 -1
  343. package/src/services/encryption-stream.js +0 -207
  344. package/src/services/encryption-stream.js.map +0 -1
  345. package/src/services/index.d.ts.map +0 -1
  346. package/src/services/index.js +0 -11
  347. package/src/services/index.js.map +0 -1
  348. package/src/services/multi-recipient-processor.d.ts +0 -72
  349. package/src/services/multi-recipient-processor.d.ts.map +0 -1
  350. package/src/services/multi-recipient-processor.js +0 -322
  351. package/src/services/multi-recipient-processor.js.map +0 -1
  352. package/src/services/pbkdf2.d.ts +0 -105
  353. package/src/services/pbkdf2.d.ts.map +0 -1
  354. package/src/services/pbkdf2.js +0 -189
  355. package/src/services/pbkdf2.js.map +0 -1
  356. package/src/services/progress-tracker.d.ts +0 -9
  357. package/src/services/progress-tracker.d.ts.map +0 -1
  358. package/src/services/progress-tracker.js +0 -41
  359. package/src/services/progress-tracker.js.map +0 -1
  360. package/src/test-mocks/index.d.ts +0 -2
  361. package/src/test-mocks/index.d.ts.map +0 -1
  362. package/src/test-mocks/index.js +0 -5
  363. package/src/test-mocks/index.js.map +0 -1
  364. package/src/test-mocks/mock-backend-member.d.ts +0 -71
  365. package/src/test-mocks/mock-backend-member.d.ts.map +0 -1
  366. package/src/test-mocks/mock-backend-member.js +0 -133
  367. package/src/test-mocks/mock-backend-member.js.map +0 -1
  368. package/src/testing.d.ts +0 -2
  369. package/src/testing.d.ts.map +0 -1
  370. package/src/testing.js +0 -6
  371. package/src/testing.js.map +0 -1
  372. package/src/types/id-guards.d.ts +0 -39
  373. package/src/types/id-guards.d.ts.map +0 -1
  374. package/src/types/id-guards.js +0 -91
  375. package/src/types/id-guards.js.map +0 -1
  376. package/src/types/index.d.ts +0 -2
  377. package/src/types/index.d.ts.map +0 -1
  378. package/src/types/index.js +0 -5
  379. package/src/types/index.js.map +0 -1
  380. package/src/types.d.ts.map +0 -1
  381. package/src/types.js +0 -6
  382. package/src/types.js.map +0 -1
  383. package/src/utils.d.ts +0 -11
  384. package/src/utils.d.ts.map +0 -1
  385. package/src/utils.js +0 -82
  386. package/src/utils.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ export interface IStreamConfig {
2
+ chunkSize: number;
3
+ includeChecksums: boolean;
4
+ }
5
+
6
+ export const DEFAULT_STREAM_CONFIG: IStreamConfig = {
7
+ chunkSize: 65536, // 64KB
8
+ includeChecksums: false,
9
+ };
@@ -0,0 +1,7 @@
1
+ export interface IStreamProgress {
2
+ processedBytes: number;
3
+ totalBytes: number;
4
+ percentComplete: number;
5
+ throughputBytesPerSec: number;
6
+ estimatedTimeRemainingMs: number;
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { SecureBuffer } from '@digitaldefiance/ecies-lib';
2
2
  import { Wallet } from '@ethereumjs/wallet';
3
+
3
4
  export interface IWalletSeed {
4
- wallet: Wallet;
5
- seed: SecureBuffer;
5
+ wallet: Wallet;
6
+ seed: SecureBuffer;
6
7
  }
7
- //# sourceMappingURL=wallet-seed.d.ts.map
@@ -0,0 +1,6 @@
1
+ export interface IWrappedKeyConsts {
2
+ SALT_SIZE: number;
3
+ IV_SIZE: number;
4
+ MASTER_KEY_SIZE: number;
5
+ MIN_ITERATIONS: number;
6
+ }
@@ -0,0 +1,32 @@
1
+ import { ECIESService } from '../services/ecies';
2
+ import { Pbkdf2Service } from '../services/pbkdf2';
3
+ import { AESGCMService } from '../services/aes-gcm';
4
+ import { IConstants } from '../interfaces/constants';
5
+ import { Constants } from '../constants';
6
+
7
+ export enum CryptoServiceKey {
8
+ ECIES = 'ecies',
9
+ PBKDF2 = 'pbkdf2',
10
+ AES_GCM = 'aes-gcm',
11
+ }
12
+
13
+ export class CryptoContainer {
14
+ private services = new Map<CryptoServiceKey, unknown>();
15
+
16
+ private constructor(config: IConstants) {
17
+ this.services.set(CryptoServiceKey.ECIES, new ECIESService(undefined, config.ECIES));
18
+ this.services.set(
19
+ CryptoServiceKey.PBKDF2,
20
+ new Pbkdf2Service(config.PBKDF2_PROFILES, config.ECIES, config.PBKDF2)
21
+ );
22
+ this.services.set(CryptoServiceKey.AES_GCM, new AESGCMService(config));
23
+ }
24
+
25
+ static create(config: IConstants = Constants): CryptoContainer {
26
+ return new CryptoContainer(config);
27
+ }
28
+
29
+ get<T>(key: CryptoServiceKey): T {
30
+ return this.services.get(key) as T;
31
+ }
32
+ }
@@ -1,4 +1,3 @@
1
1
  export * from './crypto-container';
2
2
  export * from './invariant-validator';
3
3
  export * from './invariants';
4
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,124 @@
1
+ import {
2
+ InvariantValidator as BaseInvariantValidator,
3
+ IInvariant
4
+ } from '@digitaldefiance/ecies-lib';
5
+ import { TranslatableGenericError } from '@digitaldefiance/i18n-lib';
6
+ import { IConstants } from '../interfaces/constants';
7
+ import { RecipientIdConsistencyInvariant } from './invariants/recipient-id-consistency';
8
+ import { NodeEciesStringKey, NodeEciesComponentId } from '../i18n/node-keys';
9
+ import { getNodeEciesI18nEngine } from '../i18n/node-ecies-i18n-setup';
10
+
11
+ /**
12
+ * Node.js-specific invariant validator.
13
+ *
14
+ * Extends the base ecies-lib validator with Node.js-specific invariants.
15
+ * Validates configuration consistency to prevent bugs like the 12 vs 32-byte
16
+ * recipient ID discrepancy.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import { InvariantValidator } from '@digitaldefiance/node-ecies-lib';
21
+ * import { MyCustomInvariant } from './my-invariants';
22
+ *
23
+ * // Register a custom invariant
24
+ * InvariantValidator.registerInvariant(new MyCustomInvariant());
25
+ *
26
+ * // Validate configuration
27
+ * InvariantValidator.validateAll(config); // throws if any invariant fails
28
+ * ```
29
+ */
30
+ export class InvariantValidator {
31
+ /**
32
+ * Node-specific invariants registered by default.
33
+ */
34
+ private static readonly NODE_DEFAULT_INVARIANTS: IInvariant[] = [
35
+ new RecipientIdConsistencyInvariant(),
36
+ ];
37
+
38
+ private static customInvariants: IInvariant[] = [];
39
+
40
+ /**
41
+ * Register a custom invariant to be checked during validation.
42
+ *
43
+ * @param invariant - The invariant to register
44
+ */
45
+ static registerInvariant(invariant: IInvariant): void {
46
+ this.customInvariants.push(invariant);
47
+ // Also register with base validator for consistency
48
+ BaseInvariantValidator.registerInvariant(invariant);
49
+ }
50
+
51
+ /**
52
+ * Unregister a custom invariant by name.
53
+ *
54
+ * @param name - The name of the invariant to unregister
55
+ * @returns true if the invariant was found and removed, false otherwise
56
+ */
57
+ static unregisterInvariant(name: string): boolean {
58
+ const index = this.customInvariants.findIndex((inv) => inv.name === name);
59
+ if (index === -1) {
60
+ return false;
61
+ }
62
+ this.customInvariants.splice(index, 1);
63
+ return true;
64
+ }
65
+
66
+ /**
67
+ * Get all registered invariants (default + custom).
68
+ */
69
+ static getAllInvariants(): readonly IInvariant[] {
70
+ return [...this.NODE_DEFAULT_INVARIANTS, ...this.customInvariants];
71
+ }
72
+
73
+ /**
74
+ * Validate all registered invariants against a configuration.
75
+ *
76
+ * This checks both:
77
+ * - Base ecies-lib invariants (via BaseInvariantValidator)
78
+ * - Node-specific invariants
79
+ *
80
+ * @param config - The configuration to validate
81
+ * @throws Error if any invariant check fails
82
+ */
83
+ static validateAll(config: IConstants): void {
84
+ const failures: string[] = [];
85
+
86
+ // First, validate base ecies-lib invariants, excluding the one we are replacing
87
+ const baseInvariants = BaseInvariantValidator.getAllInvariants();
88
+ for (const invariant of baseInvariants) {
89
+ if (invariant.name === 'RecipientIdConsistency') {
90
+ continue;
91
+ }
92
+ if (!invariant.check(config)) {
93
+ failures.push(invariant.errorMessage(config));
94
+ }
95
+ }
96
+
97
+ // Then validate Node-specific invariants
98
+ for (const invariant of this.getAllInvariants()) {
99
+ if (!invariant.check(config)) {
100
+ failures.push(invariant.errorMessage(config));
101
+ }
102
+ }
103
+
104
+ if (failures.length > 0) {
105
+ const engine = getNodeEciesI18nEngine();
106
+ throw TranslatableGenericError.withEngine(
107
+ engine,
108
+ NodeEciesComponentId,
109
+ NodeEciesStringKey.Error_Invariant_ConfigurationValidationFailedTemplate,
110
+ { failures: failures.join('\n\n') },
111
+ undefined,
112
+ { invariantCount: failures.length }
113
+ );
114
+ }
115
+ }
116
+
117
+ /**
118
+ * Clear all custom invariants.
119
+ * Default invariants are not affected.
120
+ */
121
+ static clearCustomInvariants(): void {
122
+ this.customInvariants = [];
123
+ }
124
+ }
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Node.js-specific invariants for configuration validation.
3
- *
3
+ *
4
4
  * These invariants extend and complement the base ecies-lib invariants
5
5
  * with Node.js-specific validation rules.
6
6
  */
7
+
7
8
  export { RecipientIdConsistencyInvariant } from './recipient-id-consistency';
8
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,77 @@
1
+ import { BaseInvariant } from '@digitaldefiance/ecies-lib';
2
+ import { IConstants } from '../../interfaces/constants';
3
+ import { NodeEciesStringKey } from '../../i18n/node-keys';
4
+ import { getNodeEciesTranslation } from '../../i18n/ecies-i18n-factory';
5
+
6
+ /**
7
+ * Node.js-specific recipient ID consistency invariant.
8
+ *
9
+ * Extends the base ecies-lib invariant to also validate node-specific
10
+ * ENCRYPTION.RECIPIENT_ID_SIZE constant.
11
+ *
12
+ * This invariant would have caught the 12 vs 32 byte discrepancy.
13
+ *
14
+ * Checks:
15
+ * - MEMBER_ID_LENGTH === idProvider.byteLength
16
+ * - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
17
+ * - ENCRYPTION.RECIPIENT_ID_SIZE === idProvider.byteLength (Node-specific)
18
+ * - All values must be in sync
19
+ */
20
+ export class RecipientIdConsistencyInvariant extends BaseInvariant {
21
+ constructor() {
22
+ super(
23
+ 'NodeRecipientIdConsistency',
24
+ 'All recipient ID size configurations must match the ID provider byte length (including Node-specific ENCRYPTION constant)'
25
+ );
26
+ }
27
+
28
+ check(config: IConstants): boolean {
29
+ const baseChecks =
30
+ config.MEMBER_ID_LENGTH === config.idProvider.byteLength &&
31
+ config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE === config.idProvider.byteLength;
32
+
33
+ // ENCRYPTION is node-specific and may not exist in all configs
34
+ if (config.ENCRYPTION && 'RECIPIENT_ID_SIZE' in config.ENCRYPTION) {
35
+ return baseChecks && config.ENCRYPTION.RECIPIENT_ID_SIZE === config.idProvider.byteLength;
36
+ }
37
+
38
+ return baseChecks;
39
+ }
40
+
41
+ errorMessage(config: IConstants): string {
42
+ const issues: string[] = [];
43
+
44
+ if (config.MEMBER_ID_LENGTH !== config.idProvider.byteLength) {
45
+ issues.push(
46
+ getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_MemberIdLengthMismatchTemplate, {
47
+ actual: config.MEMBER_ID_LENGTH,
48
+ expected: config.idProvider.byteLength,
49
+ })
50
+ );
51
+ }
52
+
53
+ if (config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
54
+ issues.push(
55
+ getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_EciesMultipleRecipientIdSizeMismatchTemplate, {
56
+ actual: config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE,
57
+ expected: config.idProvider.byteLength,
58
+ })
59
+ );
60
+ }
61
+
62
+ if (config.ENCRYPTION && 'RECIPIENT_ID_SIZE' in config.ENCRYPTION) {
63
+ if (config.ENCRYPTION.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
64
+ issues.push(
65
+ getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_EncryptionRecipientIdSizeMismatchTemplate, {
66
+ actual: config.ENCRYPTION.RECIPIENT_ID_SIZE,
67
+ expected: config.idProvider.byteLength,
68
+ })
69
+ );
70
+ }
71
+ }
72
+
73
+ return getNodeEciesTranslation(NodeEciesStringKey.Error_Invariant_NodeRecipientIdConsistency_FailedTemplate, {
74
+ issues: issues.join('\n '),
75
+ });
76
+ }
77
+ }