@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
package/src/testing.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- // Test utilities entry point - import from '@digitaldefiance/node-ecies-lib/testing'
5
- tslib_1.__exportStar(require("./test-mocks"), exports);
6
- //# sourceMappingURL=testing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/testing.ts"],"names":[],"mappings":";;;AAAA,qFAAqF;AACrF,uDAA6B"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Type guards and converters for ID types
3
- * Used to safely convert between Buffer and Uint8Array without unsafe type casts
4
- */
5
- /**
6
- * Type guard to check if a value is a Buffer
7
- * @param value - The value to check
8
- * @returns True if the value is a Buffer
9
- */
10
- export declare function isBuffer(value: unknown): value is Buffer;
11
- /**
12
- * Type guard to check if a value is a Uint8Array
13
- * @param value - The value to check
14
- * @returns True if the value is a Uint8Array
15
- */
16
- export declare function isUint8Array(value: unknown): value is Uint8Array;
17
- /**
18
- * Safely converts an ID value to Buffer
19
- * @param id - The ID to convert (Buffer, Uint8Array, or string)
20
- * @returns The ID as a Buffer
21
- * @throws Error if the ID type is not supported
22
- */
23
- export declare function toBuffer(id: Buffer | Uint8Array | string): Buffer;
24
- /**
25
- * Safely converts an ID value to Uint8Array
26
- * @param id - The ID to convert (Buffer, Uint8Array, or string)
27
- * @returns The ID as a Uint8Array
28
- * @throws Error if the ID type is not supported
29
- */
30
- export declare function toUint8Array(id: Buffer | Uint8Array | string): Uint8Array;
31
- /**
32
- * Generic ID converter that can convert between Buffer, Uint8Array, and string
33
- * @param id - The ID to convert
34
- * @param toType - The target type ('Buffer', 'Uint8Array', or 'string')
35
- * @returns The converted ID
36
- * @throws Error if the conversion is not supported
37
- */
38
- export declare function convertId<T extends 'Buffer' | 'Uint8Array' | 'string'>(id: Buffer | Uint8Array | string, toType: T): T extends 'Buffer' ? Buffer : T extends 'Uint8Array' ? Uint8Array : string;
39
- //# sourceMappingURL=id-guards.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-guards.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/types/id-guards.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAWjE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAWzE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,QAAQ,GAAG,YAAY,GAAG,QAAQ,EACpE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAChC,MAAM,EAAE,CAAC,GACR,CAAC,SAAS,QAAQ,GAAG,MAAM,GAAG,CAAC,SAAS,YAAY,GAAG,UAAU,GAAG,MAAM,CAmB5E"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- /**
3
- * Type guards and converters for ID types
4
- * Used to safely convert between Buffer and Uint8Array without unsafe type casts
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.isBuffer = isBuffer;
8
- exports.isUint8Array = isUint8Array;
9
- exports.toBuffer = toBuffer;
10
- exports.toUint8Array = toUint8Array;
11
- exports.convertId = convertId;
12
- /**
13
- * Type guard to check if a value is a Buffer
14
- * @param value - The value to check
15
- * @returns True if the value is a Buffer
16
- */
17
- function isBuffer(value) {
18
- return Buffer.isBuffer(value);
19
- }
20
- /**
21
- * Type guard to check if a value is a Uint8Array
22
- * @param value - The value to check
23
- * @returns True if the value is a Uint8Array
24
- */
25
- function isUint8Array(value) {
26
- return value instanceof Uint8Array;
27
- }
28
- /**
29
- * Safely converts an ID value to Buffer
30
- * @param id - The ID to convert (Buffer, Uint8Array, or string)
31
- * @returns The ID as a Buffer
32
- * @throws Error if the ID type is not supported
33
- */
34
- function toBuffer(id) {
35
- if (isBuffer(id)) {
36
- return id;
37
- }
38
- if (isUint8Array(id)) {
39
- return Buffer.from(id);
40
- }
41
- if (typeof id === 'string') {
42
- return Buffer.from(id, 'hex');
43
- }
44
- throw new Error(`Cannot convert ID of type ${typeof id} to Buffer`);
45
- }
46
- /**
47
- * Safely converts an ID value to Uint8Array
48
- * @param id - The ID to convert (Buffer, Uint8Array, or string)
49
- * @returns The ID as a Uint8Array
50
- * @throws Error if the ID type is not supported
51
- */
52
- function toUint8Array(id) {
53
- if (isUint8Array(id)) {
54
- return id;
55
- }
56
- if (isBuffer(id)) {
57
- return new Uint8Array(id);
58
- }
59
- if (typeof id === 'string') {
60
- return new Uint8Array(Buffer.from(id, 'hex'));
61
- }
62
- throw new Error(`Cannot convert ID of type ${typeof id} to Uint8Array`);
63
- }
64
- /**
65
- * Generic ID converter that can convert between Buffer, Uint8Array, and string
66
- * @param id - The ID to convert
67
- * @param toType - The target type ('Buffer', 'Uint8Array', or 'string')
68
- * @returns The converted ID
69
- * @throws Error if the conversion is not supported
70
- */
71
- function convertId(id, toType) {
72
- if (toType === 'Buffer') {
73
- return toBuffer(id);
74
- }
75
- if (toType === 'Uint8Array') {
76
- return toUint8Array(id);
77
- }
78
- if (toType === 'string') {
79
- if (typeof id === 'string') {
80
- return id;
81
- }
82
- if (isBuffer(id)) {
83
- return id.toString('hex');
84
- }
85
- if (isUint8Array(id)) {
86
- return Buffer.from(id).toString('hex');
87
- }
88
- }
89
- throw new Error(`Cannot convert ID to type ${toType}`);
90
- }
91
- //# sourceMappingURL=id-guards.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id-guards.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/types/id-guards.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAOH,4BAEC;AAOD,oCAEC;AAQD,4BAWC;AAQD,oCAWC;AASD,8BAsBC;AArFD;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,UAAU,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,EAAgC;IACvD,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,EAAgC;IAC3D,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CACvB,EAAgC,EAChC,MAAS;IAET,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,EAAE,CAAQ,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,EAAE,CAAQ,CAAC;IACjC,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAS,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAQ,CAAC;QACnC,CAAC;QACD,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAQ,CAAC;QAChD,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './id-guards';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./id-guards"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-ecies-lib/src/types/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,uCAAuC,EAAE,MAAM,2DAA2D,CAAC;AACpH,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAExF,MAAM,MAAM,sCAAsC,GAAG,KAAK,CACxD,uCAAuC,EACvC,wCAAwC,CACzC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAC1C,yBAAyB,EACzB,0BAA0B,CAC3B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,KAAK,CACrC,oBAAoB,EACpB,qBAAqB,CACtB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CACrC,oBAAoB,EACpB,qBAAqB,CACtB,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,0BAA0B,EAC1B,2BAA2B,CAC5B,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,GACjC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAChC,QAAQ,IAAI,MAAM,CAAC;IACnB,KAAK,IAAI,MAAM,CAAC;CACjB,CAAC;AAGF,cAAc,mBAAmB,CAAC"}
package/src/types.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- // Export ID type guards and converters
5
- tslib_1.__exportStar(require("./types/id-guards"), exports);
6
- //# sourceMappingURL=types.js.map
package/src/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/types.ts"],"names":[],"mappings":";;;AA2CA,uCAAuC;AACvC,4DAAkC"}
package/src/utils.d.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * Encodes the length of the data in the buffer
3
- * @param buffer The buffer to encode
4
- * @returns The encoded buffer
5
- */
6
- export declare function lengthEncodeData(buffer: Buffer): Buffer;
7
- export declare function decodeLengthEncodedData(buffer: Buffer): {
8
- data: Buffer;
9
- totalLength: number;
10
- };
11
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/utils.ts"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAuBvD;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAmEA"}
package/src/utils.js DELETED
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lengthEncodeData = lengthEncodeData;
4
- exports.decodeLengthEncodedData = decodeLengthEncodedData;
5
- const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
6
- const ecies_i18n_factory_1 = require("./i18n/ecies-i18n-factory");
7
- /**
8
- * Custom error class for length encoding errors
9
- */
10
- class LengthEncodingError extends Error {
11
- constructor(message) {
12
- super(message);
13
- this.name = 'LengthEncodingError';
14
- }
15
- }
16
- /**
17
- * Encodes the length of the data in the buffer
18
- * @param buffer The buffer to encode
19
- * @returns The encoded buffer
20
- */
21
- function lengthEncodeData(buffer) {
22
- const lengthType = (0, ecies_lib_1.getLengthEncodingTypeForLength)(buffer.length);
23
- const lengthTypeSize = (0, ecies_lib_1.getLengthForLengthType)(lengthType);
24
- const result = Buffer.alloc(1 + lengthTypeSize + buffer.length);
25
- result.writeUInt8(lengthType, 0);
26
- switch (lengthType) {
27
- case ecies_lib_1.LengthEncodingType.UInt8:
28
- result.writeUInt8(buffer.length, 1);
29
- break;
30
- case ecies_lib_1.LengthEncodingType.UInt16:
31
- result.writeUInt16BE(buffer.length, 1);
32
- break;
33
- case ecies_lib_1.LengthEncodingType.UInt32:
34
- result.writeUInt32BE(buffer.length, 1);
35
- break;
36
- case ecies_lib_1.LengthEncodingType.UInt64:
37
- result.writeBigUInt64BE(BigInt(buffer.length), 1);
38
- break;
39
- }
40
- buffer.copy(result, 1 + lengthTypeSize);
41
- return result;
42
- }
43
- function decodeLengthEncodedData(buffer) {
44
- const pluginEngine = (0, ecies_i18n_factory_1.getEciesPluginI18nEngine)();
45
- if (buffer.length < 1) {
46
- throw new RangeError(pluginEngine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_BufferIsTooShort));
47
- }
48
- const lengthType = (0, ecies_lib_1.getLengthEncodingTypeFromValue)(buffer.readUint8(0));
49
- const lengthTypeSize = (0, ecies_lib_1.getLengthForLengthType)(lengthType);
50
- if (buffer.length < 1 + lengthTypeSize) {
51
- throw new RangeError(pluginEngine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_BufferIsTooShortToReadFullLengthValue));
52
- }
53
- let length;
54
- switch (lengthType) {
55
- case ecies_lib_1.LengthEncodingType.UInt8:
56
- length = buffer.readUint8(1);
57
- break;
58
- case ecies_lib_1.LengthEncodingType.UInt16:
59
- length = buffer.readUint16BE(1);
60
- break;
61
- case ecies_lib_1.LengthEncodingType.UInt32:
62
- length = buffer.readUint32BE(1);
63
- break;
64
- case ecies_lib_1.LengthEncodingType.UInt64:
65
- length = buffer.readBigUInt64BE(1);
66
- if (Number(length) > Number.MAX_SAFE_INTEGER) {
67
- throw new RangeError(pluginEngine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_LengthExceedsMaximumSafeInteger));
68
- }
69
- break;
70
- default:
71
- throw new LengthEncodingError((0, ecies_i18n_factory_1.getNodeEciesTranslation)(ecies_i18n_factory_1.NodeEciesStringKey.Error_LengthError_LengthIsInvalidType));
72
- }
73
- const totalLength = 1 + lengthTypeSize + Number(length);
74
- if (totalLength > buffer.length) {
75
- throw new RangeError(pluginEngine.translate(ecies_i18n_factory_1.NodeEciesComponentId, ecies_i18n_factory_1.NodeEciesStringKey.Error_BufferIsTooShortForDeclaredDataLength));
76
- }
77
- return {
78
- data: buffer.subarray(1 + lengthTypeSize, totalLength),
79
- totalLength,
80
- };
81
- }
82
- //# sourceMappingURL=utils.js.map
package/src/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-ecies-lib/src/utils.ts"],"names":[],"mappings":"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"}