@digitaldefiance/ecies-lib 4.4.13 → 4.4.14

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/package.json +6 -4
  2. package/src/builders/ecies-builder.d.ts +18 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +30 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/index.d.ts +6 -0
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/{index.ts → index.js} +1 -1
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +51 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +97 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +60 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +446 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +34 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +56 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/index.d.ts +6 -0
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/{index.ts → index.js} +1 -1
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +16 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +12 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/email-string.d.ts +42 -0
  31. package/src/email-string.d.ts.map +1 -0
  32. package/src/email-string.js +67 -0
  33. package/src/email-string.js.map +1 -0
  34. package/src/enumerations/disposed-error-type.d.ts +12 -0
  35. package/src/enumerations/disposed-error-type.d.ts.map +1 -0
  36. package/src/enumerations/disposed-error-type.js +13 -0
  37. package/src/enumerations/disposed-error-type.js.map +1 -0
  38. package/src/enumerations/ecies-cipher-suite.d.ts +4 -0
  39. package/src/enumerations/ecies-cipher-suite.d.ts.map +1 -0
  40. package/src/enumerations/ecies-cipher-suite.js +6 -0
  41. package/src/enumerations/ecies-cipher-suite.js.map +1 -0
  42. package/src/enumerations/ecies-encryption-type.d.ts +11 -0
  43. package/src/enumerations/ecies-encryption-type.d.ts.map +1 -0
  44. package/src/enumerations/ecies-encryption-type.js +27 -0
  45. package/src/enumerations/ecies-encryption-type.js.map +1 -0
  46. package/src/enumerations/ecies-error-type.d.ts +44 -0
  47. package/src/enumerations/ecies-error-type.d.ts.map +1 -0
  48. package/src/enumerations/ecies-error-type.js +45 -0
  49. package/src/enumerations/ecies-error-type.js.map +1 -0
  50. package/src/enumerations/ecies-string-key.d.ts +192 -0
  51. package/src/enumerations/ecies-string-key.d.ts.map +1 -0
  52. package/src/enumerations/ecies-string-key.js +199 -0
  53. package/src/enumerations/ecies-string-key.js.map +1 -0
  54. package/src/enumerations/ecies-version.d.ts +4 -0
  55. package/src/enumerations/ecies-version.d.ts.map +1 -0
  56. package/src/enumerations/ecies-version.js +5 -0
  57. package/src/enumerations/ecies-version.js.map +1 -0
  58. package/src/enumerations/guid-brand-type.d.ts +27 -0
  59. package/src/enumerations/guid-brand-type.d.ts.map +1 -0
  60. package/src/enumerations/guid-brand-type.js +28 -0
  61. package/src/enumerations/guid-brand-type.js.map +1 -0
  62. package/src/enumerations/guid-error-type.d.ts +7 -0
  63. package/src/enumerations/guid-error-type.d.ts.map +1 -0
  64. package/src/enumerations/guid-error-type.js +8 -0
  65. package/src/enumerations/guid-error-type.js.map +1 -0
  66. package/src/enumerations/id-provider-error-type.d.ts +43 -0
  67. package/src/enumerations/id-provider-error-type.d.ts.map +1 -0
  68. package/src/enumerations/id-provider-error-type.js +44 -0
  69. package/src/enumerations/id-provider-error-type.js.map +1 -0
  70. package/src/enumerations/index.d.ts +18 -0
  71. package/src/enumerations/index.d.ts.map +1 -0
  72. package/src/enumerations/{index.ts → index.js} +1 -0
  73. package/src/enumerations/index.js.map +1 -0
  74. package/src/enumerations/invalid-email-type.d.ts +6 -0
  75. package/src/enumerations/invalid-email-type.d.ts.map +1 -0
  76. package/src/enumerations/invalid-email-type.js +7 -0
  77. package/src/enumerations/invalid-email-type.js.map +1 -0
  78. package/src/enumerations/length-encoding-type.d.ts +7 -0
  79. package/src/enumerations/length-encoding-type.d.ts.map +1 -0
  80. package/src/enumerations/length-encoding-type.js +8 -0
  81. package/src/enumerations/length-encoding-type.js.map +1 -0
  82. package/src/enumerations/length-error-type.d.ts +6 -0
  83. package/src/enumerations/length-error-type.d.ts.map +1 -0
  84. package/src/enumerations/length-error-type.js +7 -0
  85. package/src/enumerations/length-error-type.js.map +1 -0
  86. package/src/enumerations/member-error-type.d.ts +87 -0
  87. package/src/enumerations/member-error-type.d.ts.map +1 -0
  88. package/src/enumerations/member-error-type.js +88 -0
  89. package/src/enumerations/member-error-type.js.map +1 -0
  90. package/src/enumerations/{member-type.ts → member-type.d.ts} +6 -7
  91. package/src/enumerations/member-type.d.ts.map +1 -0
  92. package/src/enumerations/member-type.js +16 -0
  93. package/src/enumerations/member-type.js.map +1 -0
  94. package/src/enumerations/password-login-error-type.d.ts +5 -0
  95. package/src/enumerations/password-login-error-type.d.ts.map +1 -0
  96. package/src/enumerations/password-login-error-type.js +6 -0
  97. package/src/enumerations/password-login-error-type.js.map +1 -0
  98. package/src/enumerations/pbkdf2-error-type.d.ts +6 -0
  99. package/src/enumerations/pbkdf2-error-type.d.ts.map +1 -0
  100. package/src/enumerations/pbkdf2-error-type.js +7 -0
  101. package/src/enumerations/pbkdf2-error-type.js.map +1 -0
  102. package/src/enumerations/pbkdf2-profile.d.ts +6 -0
  103. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  104. package/src/enumerations/pbkdf2-profile.js +7 -0
  105. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  106. package/src/enumerations/secure-storage-error-type.d.ts +6 -0
  107. package/src/enumerations/secure-storage-error-type.d.ts.map +1 -0
  108. package/src/enumerations/secure-storage-error-type.js +7 -0
  109. package/src/enumerations/secure-storage-error-type.js.map +1 -0
  110. package/src/errors/disposed.d.ts +22 -0
  111. package/src/errors/disposed.d.ts.map +1 -0
  112. package/src/errors/disposed.js +28 -0
  113. package/src/errors/disposed.js.map +1 -0
  114. package/src/errors/ecies.d.ts +52 -0
  115. package/src/errors/ecies.d.ts.map +1 -0
  116. package/src/errors/ecies.js +78 -0
  117. package/src/errors/ecies.js.map +1 -0
  118. package/src/errors/guid.d.ts +49 -0
  119. package/src/errors/guid.d.ts.map +1 -0
  120. package/src/errors/guid.js +96 -0
  121. package/src/errors/guid.js.map +1 -0
  122. package/src/errors/id-provider.d.ts +23 -0
  123. package/src/errors/id-provider.d.ts.map +1 -0
  124. package/src/errors/id-provider.js +29 -0
  125. package/src/errors/id-provider.js.map +1 -0
  126. package/src/errors/{index.ts → index.d.ts} +1 -0
  127. package/src/errors/index.d.ts.map +1 -0
  128. package/src/errors/index.js +10 -0
  129. package/src/errors/index.js.map +1 -0
  130. package/src/errors/invalid-email.d.ts +8 -0
  131. package/src/errors/invalid-email.d.ts.map +1 -0
  132. package/src/errors/invalid-email.js +15 -0
  133. package/src/errors/invalid-email.js.map +1 -0
  134. package/src/errors/length.d.ts +7 -0
  135. package/src/errors/length.d.ts.map +1 -0
  136. package/src/errors/length.js +11 -0
  137. package/src/errors/length.js.map +1 -0
  138. package/src/errors/member.d.ts +7 -0
  139. package/src/errors/member.d.ts.map +1 -0
  140. package/src/errors/member.js +11 -0
  141. package/src/errors/member.js.map +1 -0
  142. package/src/errors/pbkdf2.d.ts +7 -0
  143. package/src/errors/pbkdf2.d.ts.map +1 -0
  144. package/src/errors/pbkdf2.js +11 -0
  145. package/src/errors/pbkdf2.js.map +1 -0
  146. package/src/errors/secure-storage.d.ts +7 -0
  147. package/src/errors/secure-storage.d.ts.map +1 -0
  148. package/src/errors/secure-storage.js +12 -0
  149. package/src/errors/secure-storage.js.map +1 -0
  150. package/src/errors/simple-ecies.d.ts +6 -0
  151. package/src/errors/simple-ecies.d.ts.map +1 -0
  152. package/src/errors/simple-ecies.js +12 -0
  153. package/src/errors/simple-ecies.js.map +1 -0
  154. package/src/errors/simple-test-error.d.ts +4 -0
  155. package/src/errors/simple-test-error.d.ts.map +1 -0
  156. package/src/errors/simple-test-error.js +7 -0
  157. package/src/errors/simple-test-error.js.map +1 -0
  158. package/src/i18n-setup.d.ts +32 -0
  159. package/src/i18n-setup.d.ts.map +1 -0
  160. package/src/i18n-setup.js +101 -0
  161. package/src/i18n-setup.js.map +1 -0
  162. package/src/index.d.ts +80 -0
  163. package/src/index.d.ts.map +1 -0
  164. package/src/{index.ts → index.js} +7 -64
  165. package/src/index.js.map +1 -0
  166. package/src/interfaces/checksum-config.d.ts +5 -0
  167. package/src/interfaces/checksum-config.d.ts.map +1 -0
  168. package/src/interfaces/checksum-config.js +2 -0
  169. package/src/interfaces/checksum-config.js.map +1 -0
  170. package/src/interfaces/checksum-consts.d.ts +11 -0
  171. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  172. package/src/interfaces/checksum-consts.js +2 -0
  173. package/src/interfaces/checksum-consts.js.map +1 -0
  174. package/src/interfaces/configuration-provenance.d.ts +43 -0
  175. package/src/interfaces/configuration-provenance.d.ts.map +1 -0
  176. package/src/interfaces/configuration-provenance.js +3 -0
  177. package/src/interfaces/configuration-provenance.js.map +1 -0
  178. package/src/interfaces/constants.d.ts +70 -0
  179. package/src/interfaces/constants.d.ts.map +1 -0
  180. package/src/interfaces/constants.js +2 -0
  181. package/src/interfaces/constants.js.map +1 -0
  182. package/src/interfaces/ecies-config.d.ts +9 -0
  183. package/src/interfaces/ecies-config.d.ts.map +1 -0
  184. package/src/interfaces/ecies-config.js +2 -0
  185. package/src/interfaces/ecies-config.js.map +1 -0
  186. package/src/interfaces/ecies-consts.d.ts +61 -0
  187. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  188. package/src/interfaces/ecies-consts.js +2 -0
  189. package/src/interfaces/ecies-consts.js.map +1 -0
  190. package/src/interfaces/ecies-file-service.d.ts +7 -0
  191. package/src/interfaces/ecies-file-service.d.ts.map +1 -0
  192. package/src/interfaces/ecies-file-service.js +2 -0
  193. package/src/interfaces/ecies-file-service.js.map +1 -0
  194. package/src/interfaces/encrypted-chunk.d.ts +55 -0
  195. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  196. package/src/interfaces/encrypted-chunk.js +12 -0
  197. package/src/interfaces/encrypted-chunk.js.map +1 -0
  198. package/src/interfaces/encryption-state.d.ts +18 -0
  199. package/src/interfaces/encryption-state.d.ts.map +1 -0
  200. package/src/interfaces/encryption-state.js +2 -0
  201. package/src/interfaces/encryption-state.js.map +1 -0
  202. package/src/interfaces/frontend-member-operational.d.ts +51 -0
  203. package/src/interfaces/frontend-member-operational.d.ts.map +1 -0
  204. package/src/interfaces/frontend-member-operational.js +2 -0
  205. package/src/interfaces/frontend-member-operational.js.map +1 -0
  206. package/src/interfaces/guid.d.ts +78 -0
  207. package/src/interfaces/guid.d.ts.map +1 -0
  208. package/src/interfaces/guid.js +2 -0
  209. package/src/interfaces/guid.js.map +1 -0
  210. package/src/interfaces/id-provider.d.ts +107 -0
  211. package/src/interfaces/id-provider.d.ts.map +1 -0
  212. package/src/interfaces/id-provider.js +52 -0
  213. package/src/interfaces/id-provider.js.map +1 -0
  214. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  215. package/src/interfaces/index.d.ts.map +1 -0
  216. package/src/interfaces/index.js +13 -0
  217. package/src/interfaces/index.js.map +1 -0
  218. package/src/interfaces/invariant.d.ts +46 -0
  219. package/src/interfaces/invariant.d.ts.map +1 -0
  220. package/src/interfaces/invariant.js +18 -0
  221. package/src/interfaces/invariant.js.map +1 -0
  222. package/src/interfaces/library-error.d.ts +23 -0
  223. package/src/interfaces/library-error.d.ts.map +1 -0
  224. package/src/interfaces/library-error.js +2 -0
  225. package/src/interfaces/library-error.js.map +1 -0
  226. package/src/interfaces/{member-storage.ts → member-storage.d.ts} +10 -11
  227. package/src/interfaces/member-storage.d.ts.map +1 -0
  228. package/src/interfaces/member-storage.js +2 -0
  229. package/src/interfaces/member-storage.js.map +1 -0
  230. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  231. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  232. package/src/interfaces/member-with-mnemonic.js +2 -0
  233. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  234. package/src/interfaces/member.d.ts +55 -0
  235. package/src/interfaces/member.d.ts.map +1 -0
  236. package/src/interfaces/member.js +2 -0
  237. package/src/interfaces/member.js.map +1 -0
  238. package/src/interfaces/multi-recipient-chunk.d.ts +54 -0
  239. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  240. package/src/interfaces/multi-recipient-chunk.js +11 -0
  241. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  242. package/src/interfaces/pbkdf2-config.d.ts +7 -0
  243. package/src/interfaces/pbkdf2-config.d.ts.map +1 -0
  244. package/src/interfaces/pbkdf2-config.js +2 -0
  245. package/src/interfaces/pbkdf2-config.js.map +1 -0
  246. package/src/interfaces/pbkdf2-consts.d.ts +9 -0
  247. package/src/interfaces/pbkdf2-consts.d.ts.map +1 -0
  248. package/src/interfaces/pbkdf2-consts.js +2 -0
  249. package/src/interfaces/pbkdf2-consts.js.map +1 -0
  250. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  251. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  252. package/src/interfaces/pbkdf2-result.js +2 -0
  253. package/src/interfaces/pbkdf2-result.js.map +1 -0
  254. package/src/interfaces/stream-config.d.ts +14 -0
  255. package/src/interfaces/stream-config.d.ts.map +1 -0
  256. package/src/interfaces/stream-config.js +8 -0
  257. package/src/interfaces/stream-config.js.map +1 -0
  258. package/src/interfaces/stream-header.d.ts +29 -0
  259. package/src/interfaces/stream-header.d.ts.map +1 -0
  260. package/src/interfaces/stream-header.js +9 -0
  261. package/src/interfaces/stream-header.js.map +1 -0
  262. package/src/interfaces/stream-progress.d.ts +33 -0
  263. package/src/interfaces/stream-progress.d.ts.map +1 -0
  264. package/src/interfaces/stream-progress.js +2 -0
  265. package/src/interfaces/stream-progress.js.map +1 -0
  266. package/src/lib/configuration-provenance-utils.d.ts +11 -0
  267. package/src/lib/configuration-provenance-utils.d.ts.map +1 -0
  268. package/src/lib/configuration-provenance-utils.js +26 -0
  269. package/src/lib/configuration-provenance-utils.js.map +1 -0
  270. package/src/lib/crypto-container.d.ts +25 -0
  271. package/src/lib/crypto-container.d.ts.map +1 -0
  272. package/src/lib/crypto-container.js +46 -0
  273. package/src/lib/crypto-container.js.map +1 -0
  274. package/src/lib/guid.d.ts +344 -0
  275. package/src/lib/guid.d.ts.map +1 -0
  276. package/src/lib/guid.js +914 -0
  277. package/src/lib/guid.js.map +1 -0
  278. package/src/lib/id-providers/custom-provider.d.ts +46 -0
  279. package/src/lib/id-providers/custom-provider.d.ts.map +1 -0
  280. package/src/lib/id-providers/custom-provider.js +85 -0
  281. package/src/lib/id-providers/custom-provider.js.map +1 -0
  282. package/src/lib/id-providers/guidv4-provider.d.ts +56 -0
  283. package/src/lib/id-providers/guidv4-provider.d.ts.map +1 -0
  284. package/src/lib/id-providers/guidv4-provider.js +122 -0
  285. package/src/lib/id-providers/guidv4-provider.js.map +1 -0
  286. package/src/lib/id-providers/{index.ts → index.d.ts} +5 -6
  287. package/src/lib/id-providers/index.d.ts.map +1 -0
  288. package/src/lib/id-providers/index.js +29 -0
  289. package/src/lib/id-providers/index.js.map +1 -0
  290. package/src/lib/id-providers/objectid-provider.d.ts +43 -0
  291. package/src/lib/id-providers/objectid-provider.d.ts.map +1 -0
  292. package/src/lib/id-providers/objectid-provider.js +104 -0
  293. package/src/lib/id-providers/objectid-provider.js.map +1 -0
  294. package/src/lib/id-providers/uuid-provider.d.ts +52 -0
  295. package/src/lib/id-providers/uuid-provider.d.ts.map +1 -0
  296. package/src/lib/id-providers/uuid-provider.js +110 -0
  297. package/src/lib/id-providers/uuid-provider.js.map +1 -0
  298. package/src/lib/index.d.ts +6 -0
  299. package/src/lib/index.d.ts.map +1 -0
  300. package/src/lib/{index.ts → index.js} +2 -2
  301. package/src/lib/index.js.map +1 -0
  302. package/src/lib/invariant-validator.d.ts +59 -0
  303. package/src/lib/invariant-validator.d.ts.map +1 -0
  304. package/src/lib/invariant-validator.js +97 -0
  305. package/src/lib/invariant-validator.js.map +1 -0
  306. package/src/lib/invariants/encryption-algorithm-consistency.d.ts +17 -0
  307. package/src/lib/invariants/encryption-algorithm-consistency.d.ts.map +1 -0
  308. package/src/lib/invariants/encryption-algorithm-consistency.js +49 -0
  309. package/src/lib/invariants/encryption-algorithm-consistency.js.map +1 -0
  310. package/src/lib/invariants/index.d.ts +4 -0
  311. package/src/lib/invariants/index.d.ts.map +1 -0
  312. package/src/lib/invariants/{index.ts → index.js} +1 -0
  313. package/src/lib/invariants/index.js.map +1 -0
  314. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts +16 -0
  315. package/src/lib/invariants/pbkdf2-profiles-validity.d.ts.map +1 -0
  316. package/src/lib/invariants/pbkdf2-profiles-validity.js +58 -0
  317. package/src/lib/invariants/pbkdf2-profiles-validity.js.map +1 -0
  318. package/src/lib/invariants/recipient-id-consistency.d.ts +18 -0
  319. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  320. package/src/lib/invariants/recipient-id-consistency.js +31 -0
  321. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  322. package/src/lib/multi-recipient-chunk-utils.d.ts +38 -0
  323. package/src/lib/multi-recipient-chunk-utils.d.ts.map +1 -0
  324. package/src/lib/multi-recipient-chunk-utils.js +41 -0
  325. package/src/lib/multi-recipient-chunk-utils.js.map +1 -0
  326. package/src/member.d.ts +92 -0
  327. package/src/member.d.ts.map +1 -0
  328. package/src/member.js +322 -0
  329. package/src/member.js.map +1 -0
  330. package/src/{pbkdf2-profiles.ts → pbkdf2-profiles.d.ts} +2 -2
  331. package/src/pbkdf2-profiles.d.ts.map +1 -0
  332. package/src/pbkdf2-profiles.js +2 -0
  333. package/src/pbkdf2-profiles.js.map +1 -0
  334. package/src/phone-number.d.ts +6 -0
  335. package/src/phone-number.d.ts.map +1 -0
  336. package/src/phone-number.js +18 -0
  337. package/src/phone-number.js.map +1 -0
  338. package/src/regexes.d.ts +7 -0
  339. package/src/regexes.d.ts.map +1 -0
  340. package/src/regexes.js +7 -0
  341. package/src/regexes.js.map +1 -0
  342. package/src/secure-buffer.d.ts +61 -0
  343. package/src/secure-buffer.d.ts.map +1 -0
  344. package/src/secure-buffer.js +201 -0
  345. package/src/secure-buffer.js.map +1 -0
  346. package/src/secure-string.d.ts +46 -0
  347. package/src/secure-string.d.ts.map +1 -0
  348. package/src/secure-string.js +206 -0
  349. package/src/secure-string.js.map +1 -0
  350. package/src/services/aes-gcm.d.ts +57 -0
  351. package/src/services/aes-gcm.d.ts.map +1 -0
  352. package/src/services/aes-gcm.js +142 -0
  353. package/src/services/aes-gcm.js.map +1 -0
  354. package/src/services/chunk-processor.d.ts +31 -0
  355. package/src/services/chunk-processor.d.ts.map +1 -0
  356. package/src/services/chunk-processor.js +145 -0
  357. package/src/services/chunk-processor.js.map +1 -0
  358. package/src/services/ecies/crypto-core.d.ts +72 -0
  359. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  360. package/src/services/ecies/crypto-core.js +205 -0
  361. package/src/services/ecies/crypto-core.js.map +1 -0
  362. package/src/services/ecies/example.d.ts +25 -0
  363. package/src/services/ecies/example.d.ts.map +1 -0
  364. package/src/services/ecies/example.js +121 -0
  365. package/src/services/ecies/example.js.map +1 -0
  366. package/src/services/ecies/file.d.ts +18 -0
  367. package/src/services/ecies/file.d.ts.map +1 -0
  368. package/src/services/ecies/file.js +106 -0
  369. package/src/services/ecies/file.js.map +1 -0
  370. package/src/services/ecies/index.d.ts +38 -0
  371. package/src/services/ecies/index.d.ts.map +1 -0
  372. package/src/services/ecies/{index.ts → index.js} +1 -2
  373. package/src/services/ecies/index.js.map +1 -0
  374. package/src/services/ecies/integration.d.ts +59 -0
  375. package/src/services/ecies/integration.d.ts.map +1 -0
  376. package/src/services/ecies/integration.js +167 -0
  377. package/src/services/ecies/integration.js.map +1 -0
  378. package/src/services/ecies/interfaces.d.ts +54 -0
  379. package/src/services/ecies/interfaces.d.ts.map +1 -0
  380. package/src/services/ecies/interfaces.js +5 -0
  381. package/src/services/ecies/interfaces.js.map +1 -0
  382. package/src/services/ecies/manual-test.d.ts +29 -0
  383. package/src/services/ecies/manual-test.d.ts.map +1 -0
  384. package/src/services/ecies/manual-test.js +163 -0
  385. package/src/services/ecies/manual-test.js.map +1 -0
  386. package/src/services/ecies/multi-recipient.d.ts +56 -0
  387. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  388. package/src/services/ecies/multi-recipient.js +344 -0
  389. package/src/services/ecies/multi-recipient.js.map +1 -0
  390. package/src/services/ecies/service.d.ts +120 -0
  391. package/src/services/ecies/service.d.ts.map +1 -0
  392. package/src/services/ecies/service.js +210 -0
  393. package/src/services/ecies/service.js.map +1 -0
  394. package/src/services/ecies/signature.d.ts +27 -0
  395. package/src/services/ecies/signature.d.ts.map +1 -0
  396. package/src/services/ecies/signature.js +72 -0
  397. package/src/services/ecies/signature.js.map +1 -0
  398. package/src/services/ecies/single-recipient.d.ts +46 -0
  399. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  400. package/src/services/ecies/single-recipient.js +322 -0
  401. package/src/services/ecies/single-recipient.js.map +1 -0
  402. package/src/services/encryption-stream.d.ts +71 -0
  403. package/src/services/encryption-stream.d.ts.map +1 -0
  404. package/src/services/encryption-stream.js +295 -0
  405. package/src/services/encryption-stream.js.map +1 -0
  406. package/src/services/index.d.ts +11 -0
  407. package/src/services/index.d.ts.map +1 -0
  408. package/src/services/{index.ts → index.js} +1 -0
  409. package/src/services/index.js.map +1 -0
  410. package/src/services/multi-recipient-processor.d.ts +35 -0
  411. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  412. package/src/services/multi-recipient-processor.js +289 -0
  413. package/src/services/multi-recipient-processor.js.map +1 -0
  414. package/src/services/password-login.d.ts +47 -0
  415. package/src/services/password-login.d.ts.map +1 -0
  416. package/src/services/password-login.js +115 -0
  417. package/src/services/password-login.js.map +1 -0
  418. package/src/services/pbkdf2.d.ts +54 -0
  419. package/src/services/pbkdf2.d.ts.map +1 -0
  420. package/src/services/pbkdf2.js +108 -0
  421. package/src/services/pbkdf2.js.map +1 -0
  422. package/src/services/progress-tracker.d.ts +23 -0
  423. package/src/services/progress-tracker.d.ts.map +1 -0
  424. package/src/services/progress-tracker.js +103 -0
  425. package/src/services/progress-tracker.js.map +1 -0
  426. package/src/services/resumable-encryption.d.ts +19 -0
  427. package/src/services/resumable-encryption.d.ts.map +1 -0
  428. package/src/services/resumable-encryption.js +105 -0
  429. package/src/services/resumable-encryption.js.map +1 -0
  430. package/src/services/xor.d.ts +37 -0
  431. package/src/services/xor.d.ts.map +1 -0
  432. package/src/services/xor.js +63 -0
  433. package/src/services/xor.js.map +1 -0
  434. package/src/test-mocks/index.d.ts +2 -0
  435. package/src/test-mocks/index.d.ts.map +1 -0
  436. package/src/test-mocks/index.js +2 -0
  437. package/src/test-mocks/index.js.map +1 -0
  438. package/src/test-mocks/mock-frontend-member.d.ts +85 -0
  439. package/src/test-mocks/mock-frontend-member.d.ts.map +1 -0
  440. package/src/test-mocks/mock-frontend-member.js +190 -0
  441. package/src/test-mocks/mock-frontend-member.js.map +1 -0
  442. package/src/testing.d.ts +2 -0
  443. package/src/testing.d.ts.map +1 -0
  444. package/src/{testing.ts → testing.js} +1 -0
  445. package/src/testing.js.map +1 -0
  446. package/src/translations/de.d.ts +4 -0
  447. package/src/translations/de.d.ts.map +1 -0
  448. package/src/translations/{de.ts → de.js} +56 -112
  449. package/src/translations/de.js.map +1 -0
  450. package/src/translations/en-US.d.ts +4 -0
  451. package/src/translations/en-US.d.ts.map +1 -0
  452. package/src/translations/{en-US.ts → en-US.js} +58 -116
  453. package/src/translations/en-US.js.map +1 -0
  454. package/src/translations/es.d.ts +4 -0
  455. package/src/translations/es.d.ts.map +1 -0
  456. package/src/translations/{es.ts → es.js} +67 -134
  457. package/src/translations/es.js.map +1 -0
  458. package/src/translations/fr.d.ts +4 -0
  459. package/src/translations/fr.d.ts.map +1 -0
  460. package/src/translations/{fr.ts → fr.js} +64 -129
  461. package/src/translations/fr.js.map +1 -0
  462. package/src/translations/ja.d.ts +4 -0
  463. package/src/translations/ja.d.ts.map +1 -0
  464. package/src/translations/{ja.ts → ja.js} +55 -111
  465. package/src/translations/ja.js.map +1 -0
  466. package/src/translations/uk.d.ts +4 -0
  467. package/src/translations/uk.d.ts.map +1 -0
  468. package/src/translations/{uk.ts → uk.js} +67 -132
  469. package/src/translations/uk.js.map +1 -0
  470. package/src/translations/zh-cn.d.ts +4 -0
  471. package/src/translations/zh-cn.d.ts.map +1 -0
  472. package/src/translations/{zh-cn.ts → zh-cn.js} +29 -60
  473. package/src/translations/zh-cn.js.map +1 -0
  474. package/src/types/deep-partial.d.ts +4 -0
  475. package/src/types/deep-partial.d.ts.map +1 -0
  476. package/src/types/deep-partial.js +2 -0
  477. package/src/types/deep-partial.js.map +1 -0
  478. package/src/{types.ts → types.d.ts} +7 -15
  479. package/src/types.d.ts.map +1 -0
  480. package/src/types.js +2 -0
  481. package/src/types.js.map +1 -0
  482. package/src/utils/encryption-type-utils.d.ts +29 -0
  483. package/src/utils/encryption-type-utils.d.ts.map +1 -0
  484. package/src/utils/encryption-type-utils.js +61 -0
  485. package/src/utils/encryption-type-utils.js.map +1 -0
  486. package/src/utils.d.ts +68 -0
  487. package/src/utils.d.ts.map +1 -0
  488. package/src/utils.js +273 -0
  489. package/src/utils.js.map +1 -0
  490. package/LICENSE +0 -21
  491. package/src/builders/ecies-builder.ts +0 -39
  492. package/src/builders/member-builder.ts +0 -155
  493. package/src/constants.ts +0 -609
  494. package/src/core/errors/crypto-error.ts +0 -78
  495. package/src/core/types/result.ts +0 -19
  496. package/src/email-string.ts +0 -82
  497. package/src/enumerations/disposed-error-type.ts +0 -11
  498. package/src/enumerations/ecies-cipher-suite.ts +0 -4
  499. package/src/enumerations/ecies-encryption-type.ts +0 -41
  500. package/src/enumerations/ecies-error-type.ts +0 -43
  501. package/src/enumerations/ecies-string-key.ts +0 -205
  502. package/src/enumerations/ecies-version.ts +0 -3
  503. package/src/enumerations/guid-brand-type.ts +0 -26
  504. package/src/enumerations/guid-error-type.ts +0 -6
  505. package/src/enumerations/id-provider-error-type.ts +0 -50
  506. package/src/enumerations/invalid-email-type.ts +0 -5
  507. package/src/enumerations/length-encoding-type.ts +0 -6
  508. package/src/enumerations/length-error-type.ts +0 -5
  509. package/src/enumerations/member-error-type.ts +0 -106
  510. package/src/enumerations/password-login-error-type.ts +0 -4
  511. package/src/enumerations/pbkdf2-error-type.ts +0 -5
  512. package/src/enumerations/pbkdf2-profile.ts +0 -5
  513. package/src/enumerations/secure-storage-error-type.ts +0 -5
  514. package/src/errors/disposed.ts +0 -36
  515. package/src/errors/ecies.ts +0 -153
  516. package/src/errors/guid.ts +0 -130
  517. package/src/errors/id-provider.ts +0 -40
  518. package/src/errors/invalid-email.ts +0 -23
  519. package/src/errors/length.ts +0 -19
  520. package/src/errors/member.ts +0 -20
  521. package/src/errors/pbkdf2.ts +0 -20
  522. package/src/errors/secure-storage.ts +0 -17
  523. package/src/errors/simple-ecies.ts +0 -21
  524. package/src/errors/simple-test-error.ts +0 -6
  525. package/src/i18n-setup.ts +0 -130
  526. package/src/interfaces/checksum-config.ts +0 -4
  527. package/src/interfaces/checksum-consts.ts +0 -13
  528. package/src/interfaces/configuration-provenance.ts +0 -54
  529. package/src/interfaces/constants.ts +0 -75
  530. package/src/interfaces/ecies-config.ts +0 -8
  531. package/src/interfaces/ecies-consts.ts +0 -76
  532. package/src/interfaces/ecies-file-service.ts +0 -6
  533. package/src/interfaces/encrypted-chunk.ts +0 -64
  534. package/src/interfaces/encryption-state.ts +0 -19
  535. package/src/interfaces/frontend-member-operational.ts +0 -77
  536. package/src/interfaces/guid.ts +0 -86
  537. package/src/interfaces/id-provider.ts +0 -152
  538. package/src/interfaces/invariant.ts +0 -60
  539. package/src/interfaces/library-error.ts +0 -23
  540. package/src/interfaces/member.ts +0 -84
  541. package/src/interfaces/multi-recipient-chunk.ts +0 -61
  542. package/src/interfaces/pbkdf2-config.ts +0 -6
  543. package/src/interfaces/pbkdf2-consts.ts +0 -10
  544. package/src/interfaces/pbkdf2-result.ts +0 -5
  545. package/src/interfaces/stream-config.ts +0 -17
  546. package/src/interfaces/stream-header.ts +0 -34
  547. package/src/interfaces/stream-progress.ts +0 -31
  548. package/src/lib/configuration-provenance-utils.ts +0 -29
  549. package/src/lib/crypto-container.ts +0 -64
  550. package/src/lib/guid.ts +0 -1097
  551. package/src/lib/id-providers/custom-provider.ts +0 -109
  552. package/src/lib/id-providers/guidv4-provider.ts +0 -141
  553. package/src/lib/id-providers/objectid-provider.ts +0 -125
  554. package/src/lib/id-providers/uuid-provider.ts +0 -133
  555. package/src/lib/invariant-validator.ts +0 -133
  556. package/src/lib/invariants/encryption-algorithm-consistency.ts +0 -73
  557. package/src/lib/invariants/pbkdf2-profiles-validity.ts +0 -78
  558. package/src/lib/invariants/recipient-id-consistency.ts +0 -46
  559. package/src/lib/multi-recipient-chunk-utils.ts +0 -63
  560. package/src/member.ts +0 -495
  561. package/src/phone-number.ts +0 -18
  562. package/src/regexes.ts +0 -10
  563. package/src/secure-buffer.ts +0 -226
  564. package/src/secure-string.ts +0 -244
  565. package/src/services/aes-gcm.ts +0 -220
  566. package/src/services/chunk-processor.ts +0 -188
  567. package/src/services/ecies/README.md +0 -147
  568. package/src/services/ecies/crypto-core.ts +0 -292
  569. package/src/services/ecies/example.ts +0 -185
  570. package/src/services/ecies/file.ts +0 -167
  571. package/src/services/ecies/integration.ts +0 -241
  572. package/src/services/ecies/interfaces.ts +0 -62
  573. package/src/services/ecies/manual-test.ts +0 -219
  574. package/src/services/ecies/multi-recipient.ts +0 -545
  575. package/src/services/ecies/service.ts +0 -370
  576. package/src/services/ecies/signature.ts +0 -93
  577. package/src/services/ecies/single-recipient.ts +0 -476
  578. package/src/services/encryption-stream.ts +0 -435
  579. package/src/services/multi-recipient-processor.ts +0 -377
  580. package/src/services/password-login.ts +0 -226
  581. package/src/services/pbkdf2.ts +0 -169
  582. package/src/services/progress-tracker.ts +0 -128
  583. package/src/services/resumable-encryption.ts +0 -135
  584. package/src/services/xor.ts +0 -65
  585. package/src/test-mocks/index.ts +0 -1
  586. package/src/test-mocks/mock-frontend-member.ts +0 -276
  587. package/src/types/deep-partial.ts +0 -11
  588. package/src/utils/encryption-type-utils.ts +0 -76
  589. package/src/utils.ts +0 -329
@@ -0,0 +1,52 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ /**
3
+ * ID provider for standard RFC 4122 UUIDs (16 bytes).
4
+ *
5
+ * Uses the 'uuid' npm package for UUID generation and validation.
6
+ * Serialization uses the standard UUID format with dashes (36 characters).
7
+ *
8
+ * This is functionally similar to GuidV4Provider but uses standard UUID
9
+ * string formatting (with dashes) instead of base64.
10
+ */
11
+ export declare class UuidProvider extends BaseIdProvider {
12
+ readonly byteLength = 16;
13
+ readonly name = "UUID";
14
+ /**
15
+ * Generate a new random UUIDv4.
16
+ */
17
+ generate(): Uint8Array;
18
+ /**
19
+ * Validate a UUID buffer.
20
+ * Checks length and RFC 4122 compliance.
21
+ */
22
+ validate(id: Uint8Array): boolean;
23
+ /**
24
+ * Serialize UUID to standard format with dashes (36 characters).
25
+ * Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
26
+ */
27
+ serialize(id: Uint8Array): string;
28
+ /**
29
+ * Deserialize a UUID string (with or without dashes) to buffer.
30
+ */
31
+ deserialize(str: string): Uint8Array;
32
+ /**
33
+ * Extract the version from a UUID buffer.
34
+ * Should return 4 for v4 UUIDs.
35
+ */
36
+ getVersion(id: Uint8Array): number | undefined;
37
+ /**
38
+ * Check if a UUID is the nil UUID (all zeros).
39
+ */
40
+ isNil(id: Uint8Array): boolean;
41
+ /**
42
+ * Convert an ID of unknown type to a string representation.
43
+ * Delegates to base implementation.
44
+ */
45
+ idToString(id: unknown): string;
46
+ /**
47
+ * Convert a string representation of an ID back to an ID buffer.
48
+ * Delegates to deserialize.
49
+ */
50
+ idFromString(str: string): Uint8Array;
51
+ }
52
+ //# sourceMappingURL=uuid-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/uuid-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,cAAc;IAC9C,QAAQ,CAAC,UAAU,MAAM;IACzB,QAAQ,CAAC,IAAI,UAAU;IAEvB;;OAEG;IACH,QAAQ,IAAI,UAAU;IAMtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAcjC;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAWjC;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IA4BpC;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAQ9C;;OAEG;IACH,KAAK,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO;IAW9B;;;OAGG;IACM,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;IAIxC;;;OAGG;IACM,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CAG/C"}
@@ -0,0 +1,110 @@
1
+ import { BaseIdProvider } from '../../interfaces/id-provider';
2
+ import { v4 as uuidv4, validate as uuidValidate, parse as uuidParse } from 'uuid';
3
+ import { IdProviderError } from '../../errors/id-provider';
4
+ import { IdProviderErrorType } from '../../enumerations/id-provider-error-type';
5
+ /**
6
+ * ID provider for standard RFC 4122 UUIDs (16 bytes).
7
+ *
8
+ * Uses the 'uuid' npm package for UUID generation and validation.
9
+ * Serialization uses the standard UUID format with dashes (36 characters).
10
+ *
11
+ * This is functionally similar to GuidV4Provider but uses standard UUID
12
+ * string formatting (with dashes) instead of base64.
13
+ */
14
+ export class UuidProvider extends BaseIdProvider {
15
+ byteLength = 16;
16
+ name = 'UUID';
17
+ /**
18
+ * Generate a new random UUIDv4.
19
+ */
20
+ generate() {
21
+ const buffer = new Uint8Array(16);
22
+ uuidv4(undefined, buffer);
23
+ return buffer;
24
+ }
25
+ /**
26
+ * Validate a UUID buffer.
27
+ * Checks length and RFC 4122 compliance.
28
+ */
29
+ validate(id) {
30
+ if (id.length !== this.byteLength) {
31
+ return false;
32
+ }
33
+ try {
34
+ // Convert to string and validate
35
+ const str = this.serialize(id);
36
+ return uuidValidate(str);
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ /**
43
+ * Serialize UUID to standard format with dashes (36 characters).
44
+ * Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
45
+ */
46
+ serialize(id) {
47
+ this.validateLength(id, 'UuidProvider.serialize');
48
+ const hex = Array.from(id)
49
+ .map(b => b.toString(16).padStart(2, '0'))
50
+ .join('');
51
+ // Insert dashes at proper positions
52
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
53
+ }
54
+ /**
55
+ * Deserialize a UUID string (with or without dashes) to buffer.
56
+ */
57
+ deserialize(str) {
58
+ if (typeof str !== 'string') {
59
+ throw new IdProviderError(IdProviderErrorType.InputMustBeString);
60
+ }
61
+ // Validate format
62
+ if (!uuidValidate(str)) {
63
+ throw new IdProviderError(IdProviderErrorType.InvalidUuidFormat, undefined, undefined, { input: str });
64
+ }
65
+ try {
66
+ const buffer = uuidParse(str);
67
+ return buffer;
68
+ }
69
+ catch (error) {
70
+ throw new IdProviderError(IdProviderErrorType.ParseFailed, { cause: error instanceof Error ? error : undefined }, undefined, { input: str, message: error instanceof Error ? error.message : String(error) });
71
+ }
72
+ }
73
+ /**
74
+ * Extract the version from a UUID buffer.
75
+ * Should return 4 for v4 UUIDs.
76
+ */
77
+ getVersion(id) {
78
+ this.validateLength(id, 'UuidProvider.getVersion');
79
+ // Version is in the most significant 4 bits of byte 6
80
+ const versionByte = id[6];
81
+ return (versionByte >> 4) & 0x0F;
82
+ }
83
+ /**
84
+ * Check if a UUID is the nil UUID (all zeros).
85
+ */
86
+ isNil(id) {
87
+ this.validateLength(id, 'UuidProvider.isNil');
88
+ for (let i = 0; i < id.length; i++) {
89
+ if (id[i] !== 0) {
90
+ return false;
91
+ }
92
+ }
93
+ return true;
94
+ }
95
+ /**
96
+ * Convert an ID of unknown type to a string representation.
97
+ * Delegates to base implementation.
98
+ */
99
+ idToString(id) {
100
+ return super.idToString(id);
101
+ }
102
+ /**
103
+ * Convert a string representation of an ID back to an ID buffer.
104
+ * Delegates to deserialize.
105
+ */
106
+ idFromString(str) {
107
+ return this.deserialize(str);
108
+ }
109
+ }
110
+ //# sourceMappingURL=uuid-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid-provider.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/id-providers/uuid-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Library exports for v2 architecture
3
+ */
4
+ export * from './crypto-container';
5
+ export * from './guid';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Library exports for v2 architecture
3
3
  */
4
-
5
4
  export * from './crypto-container';
6
- export * from './guid';
5
+ export * from './guid';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { IConstants } from '../interfaces/constants';
2
+ import { IInvariant } from '../interfaces/invariant';
3
+ /**
4
+ * Validates all configuration invariants.
5
+ *
6
+ * This class maintains a registry of all invariants and validates them
7
+ * whenever a configuration is created or modified.
8
+ *
9
+ * Adding new invariants is easy - just:
10
+ * 1. Create a class implementing IInvariant
11
+ * 2. Add it to the DEFAULT_INVARIANTS array
12
+ * 3. Tests will automatically validate it
13
+ */
14
+ export declare class InvariantValidator {
15
+ /**
16
+ * Default invariants that are always checked
17
+ */
18
+ private static readonly DEFAULT_INVARIANTS;
19
+ /**
20
+ * Custom invariants registered at runtime
21
+ */
22
+ private static customInvariants;
23
+ /**
24
+ * Register a custom invariant to be checked alongside default invariants
25
+ */
26
+ static registerInvariant(invariant: IInvariant): void;
27
+ /**
28
+ * Clear all custom invariants (useful for testing)
29
+ */
30
+ static clearCustomInvariants(): void;
31
+ /**
32
+ * Get all invariants (default + custom)
33
+ */
34
+ static getAllInvariants(): readonly IInvariant[];
35
+ /**
36
+ * Validate all invariants for a given configuration
37
+ *
38
+ * @param config The configuration to validate
39
+ * @throws Error if any invariant fails
40
+ */
41
+ static validateAll(config: IConstants): void;
42
+ /**
43
+ * Check a single invariant
44
+ *
45
+ * @param config The configuration to validate
46
+ * @param invariantName Name of the invariant to check
47
+ * @returns true if invariant passes, false otherwise
48
+ */
49
+ static checkInvariant(config: IConstants, invariantName: string): boolean;
50
+ /**
51
+ * Get failure details for a specific invariant
52
+ *
53
+ * @param config The configuration to validate
54
+ * @param invariantName Name of the invariant to check
55
+ * @returns Error message if invariant fails, null if it passes
56
+ */
57
+ static getFailureDetails(config: IConstants, invariantName: string): string | null;
58
+ }
59
+ //# sourceMappingURL=invariant-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant-validator.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariant-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAIxC;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAoB;IAEnD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAIrD;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI,IAAI;IAIpC;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,SAAS,UAAU,EAAE;IAIhD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAuB5C;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAgBzE;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAenF"}
@@ -0,0 +1,97 @@
1
+ import { RecipientIdConsistencyInvariant, Pbkdf2ProfilesValidityInvariant, EncryptionAlgorithmConsistencyInvariant, } from './invariants';
2
+ import { EciesComponentId, getEciesI18nEngine } from '../i18n-setup';
3
+ import { EciesStringKey } from '../enumerations/ecies-string-key';
4
+ import { TranslatableGenericError } from '@digitaldefiance/i18n-lib';
5
+ /**
6
+ * Validates all configuration invariants.
7
+ *
8
+ * This class maintains a registry of all invariants and validates them
9
+ * whenever a configuration is created or modified.
10
+ *
11
+ * Adding new invariants is easy - just:
12
+ * 1. Create a class implementing IInvariant
13
+ * 2. Add it to the DEFAULT_INVARIANTS array
14
+ * 3. Tests will automatically validate it
15
+ */
16
+ export class InvariantValidator {
17
+ /**
18
+ * Default invariants that are always checked
19
+ */
20
+ static DEFAULT_INVARIANTS = [
21
+ new RecipientIdConsistencyInvariant(),
22
+ new Pbkdf2ProfilesValidityInvariant(),
23
+ new EncryptionAlgorithmConsistencyInvariant(),
24
+ ];
25
+ /**
26
+ * Custom invariants registered at runtime
27
+ */
28
+ static customInvariants = [];
29
+ /**
30
+ * Register a custom invariant to be checked alongside default invariants
31
+ */
32
+ static registerInvariant(invariant) {
33
+ this.customInvariants.push(invariant);
34
+ }
35
+ /**
36
+ * Clear all custom invariants (useful for testing)
37
+ */
38
+ static clearCustomInvariants() {
39
+ this.customInvariants = [];
40
+ }
41
+ /**
42
+ * Get all invariants (default + custom)
43
+ */
44
+ static getAllInvariants() {
45
+ return [...this.DEFAULT_INVARIANTS, ...this.customInvariants];
46
+ }
47
+ /**
48
+ * Validate all invariants for a given configuration
49
+ *
50
+ * @param config The configuration to validate
51
+ * @throws Error if any invariant fails
52
+ */
53
+ static validateAll(config) {
54
+ const allInvariants = this.getAllInvariants();
55
+ const failures = [];
56
+ for (const invariant of allInvariants) {
57
+ if (!invariant.check(config)) {
58
+ failures.push(invariant.errorMessage(config));
59
+ }
60
+ }
61
+ if (failures.length > 0) {
62
+ const engine = getEciesI18nEngine();
63
+ throw TranslatableGenericError.withEngine(engine, EciesComponentId, EciesStringKey.Error_Invariant_ConfigurationValidationFailedMultipleTemplate, { count: failures.length, failures: failures.join('\n\n') }, undefined, { invariantCount: failures.length });
64
+ }
65
+ }
66
+ /**
67
+ * Check a single invariant
68
+ *
69
+ * @param config The configuration to validate
70
+ * @param invariantName Name of the invariant to check
71
+ * @returns true if invariant passes, false otherwise
72
+ */
73
+ static checkInvariant(config, invariantName) {
74
+ const invariant = this.getAllInvariants().find(i => i.name === invariantName);
75
+ if (!invariant) {
76
+ const engine = getEciesI18nEngine();
77
+ throw TranslatableGenericError.withEngine(engine, EciesComponentId, EciesStringKey.Error_Invariant_UnknownInvariantTemplate, { name: invariantName }, undefined, { invariantName });
78
+ }
79
+ return invariant.check(config);
80
+ }
81
+ /**
82
+ * Get failure details for a specific invariant
83
+ *
84
+ * @param config The configuration to validate
85
+ * @param invariantName Name of the invariant to check
86
+ * @returns Error message if invariant fails, null if it passes
87
+ */
88
+ static getFailureDetails(config, invariantName) {
89
+ const invariant = this.getAllInvariants().find(i => i.name === invariantName);
90
+ if (!invariant) {
91
+ const engine = getEciesI18nEngine();
92
+ throw TranslatableGenericError.withEngine(engine, EciesComponentId, EciesStringKey.Error_Invariant_UnknownInvariantTemplate, { name: invariantName }, undefined, { invariantName });
93
+ }
94
+ return invariant.check(config) ? null : invariant.errorMessage(config);
95
+ }
96
+ }
97
+ //# sourceMappingURL=invariant-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant-validator.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariant-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { IConstants } from '../../interfaces/constants';
2
+ import { BaseInvariant } from '../../interfaces/invariant';
3
+ /**
4
+ * Validates that encryption algorithm parameters are consistent.
5
+ *
6
+ * Checks:
7
+ * - Symmetric key size matches the algorithm (AES-256 = 32 bytes)
8
+ * - Curve name is supported
9
+ * - Key derivation path is valid
10
+ */
11
+ export declare class EncryptionAlgorithmConsistencyInvariant extends BaseInvariant {
12
+ private static readonly SUPPORTED_CURVES;
13
+ constructor();
14
+ check(config: IConstants): boolean;
15
+ errorMessage(config: IConstants): string;
16
+ }
17
+ //# sourceMappingURL=encryption-algorithm-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-algorithm-consistency.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/encryption-algorithm-consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;GAOG;AACH,qBAAa,uCAAwC,SAAQ,aAAa;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKtC;;IASF,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAqBlC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAyBzC"}
@@ -0,0 +1,49 @@
1
+ import { BaseInvariant } from '../../interfaces/invariant';
2
+ /**
3
+ * Validates that encryption algorithm parameters are consistent.
4
+ *
5
+ * Checks:
6
+ * - Symmetric key size matches the algorithm (AES-256 = 32 bytes)
7
+ * - Curve name is supported
8
+ * - Key derivation path is valid
9
+ */
10
+ export class EncryptionAlgorithmConsistencyInvariant extends BaseInvariant {
11
+ static SUPPORTED_CURVES = [
12
+ 'secp256k1',
13
+ 'p256',
14
+ 'p384',
15
+ 'p521',
16
+ ];
17
+ constructor() {
18
+ super('EncryptionAlgorithmConsistency', 'Encryption algorithm parameters must be consistent');
19
+ }
20
+ check(config) {
21
+ // AES-256 requires 32-byte keys
22
+ if (config.ECIES.SYMMETRIC.KEY_SIZE !== 32) {
23
+ return false;
24
+ }
25
+ // Check curve is supported
26
+ if (!EncryptionAlgorithmConsistencyInvariant.SUPPORTED_CURVES.includes(config.ECIES.CURVE_NAME)) {
27
+ return false;
28
+ }
29
+ // Key derivation path should be valid BIP32 path
30
+ if (!config.ECIES.PRIMARY_KEY_DERIVATION_PATH.startsWith('m/')) {
31
+ return false;
32
+ }
33
+ return true;
34
+ }
35
+ errorMessage(config) {
36
+ const issues = [];
37
+ if (config.ECIES.SYMMETRIC.KEY_SIZE !== 32) {
38
+ issues.push(`SYMMETRIC.KEY_SIZE (${config.ECIES.SYMMETRIC.KEY_SIZE}) must be 32 for AES-256`);
39
+ }
40
+ if (!EncryptionAlgorithmConsistencyInvariant.SUPPORTED_CURVES.includes(config.ECIES.CURVE_NAME)) {
41
+ issues.push(`CURVE_NAME (${config.ECIES.CURVE_NAME}) must be one of: ${EncryptionAlgorithmConsistencyInvariant.SUPPORTED_CURVES.join(', ')}`);
42
+ }
43
+ if (!config.ECIES.PRIMARY_KEY_DERIVATION_PATH.startsWith('m/')) {
44
+ issues.push(`PRIMARY_KEY_DERIVATION_PATH (${config.ECIES.PRIMARY_KEY_DERIVATION_PATH}) must be a valid BIP32 path starting with 'm/'`);
45
+ }
46
+ return `Invariant '${this.name}' failed:\n ${issues.join('\n ')}`;
47
+ }
48
+ }
49
+ //# sourceMappingURL=encryption-algorithm-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption-algorithm-consistency.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/encryption-algorithm-consistency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,OAAO,uCAAwC,SAAQ,aAAa;IAChE,MAAM,CAAU,gBAAgB,GAAG;QACzC,WAAW;QACX,MAAM;QACN,MAAM;QACN,MAAM;KACP,CAAC;IAEF;QACE,KAAK,CACH,gCAAgC,EAChC,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,gCAAgC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,uCAAuC,CAAC,gBAAgB,CAAC,QAAQ,CACpE,MAAM,CAAC,KAAK,CAAC,UAAU,CACxB,EAAE,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CACT,uBAAuB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,0BAA0B,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,uCAAuC,CAAC,gBAAgB,CAAC,QAAQ,CACpE,MAAM,CAAC,KAAK,CAAC,UAAU,CACxB,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CACT,eAAe,MAAM,CAAC,KAAK,CAAC,UAAU,qBAAqB,uCAAuC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjI,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CACT,gCAAgC,MAAM,CAAC,KAAK,CAAC,2BAA2B,iDAAiD,CAC1H,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './recipient-id-consistency';
2
+ export * from './pbkdf2-profiles-validity';
3
+ export * from './encryption-algorithm-consistency';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './recipient-id-consistency';
2
2
  export * from './pbkdf2-profiles-validity';
3
3
  export * from './encryption-algorithm-consistency';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { IConstants } from '../../interfaces/constants';
2
+ import { BaseInvariant } from '../../interfaces/invariant';
3
+ /**
4
+ * Validates that PBKDF2 profiles have sensible parameters.
5
+ *
6
+ * Checks:
7
+ * - iterations > 0 and not too low (security risk)
8
+ * - saltBytes > 0 and reasonable
9
+ * - hashBytes > 0 and matches expected hash output
10
+ */
11
+ export declare class Pbkdf2ProfilesValidityInvariant extends BaseInvariant {
12
+ constructor();
13
+ check(config: IConstants): boolean;
14
+ errorMessage(config: IConstants): string;
15
+ }
16
+ //# sourceMappingURL=pbkdf2-profiles-validity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2-profiles-validity.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/pbkdf2-profiles-validity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D;;;;;;;GAOG;AACH,qBAAa,+BAAgC,SAAQ,aAAa;;IAQhE,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IA2BlC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CA8BzC"}
@@ -0,0 +1,58 @@
1
+ import { BaseInvariant } from '../../interfaces/invariant';
2
+ import { Pbkdf2ProfileEnum } from '../../enumerations/pbkdf2-profile';
3
+ /**
4
+ * Validates that PBKDF2 profiles have sensible parameters.
5
+ *
6
+ * Checks:
7
+ * - iterations > 0 and not too low (security risk)
8
+ * - saltBytes > 0 and reasonable
9
+ * - hashBytes > 0 and matches expected hash output
10
+ */
11
+ export class Pbkdf2ProfilesValidityInvariant extends BaseInvariant {
12
+ constructor() {
13
+ super('Pbkdf2ProfilesValidity', 'PBKDF2 profiles must have valid cryptographic parameters');
14
+ }
15
+ check(config) {
16
+ const profiles = [
17
+ config.PBKDF2_PROFILES[Pbkdf2ProfileEnum.BROWSER_PASSWORD],
18
+ config.PBKDF2_PROFILES[Pbkdf2ProfileEnum.HIGH_SECURITY],
19
+ config.PBKDF2_PROFILES[Pbkdf2ProfileEnum.TEST_FAST],
20
+ ];
21
+ for (const profile of profiles) {
22
+ // iterations must be positive and reasonable
23
+ if (profile.iterations < 1000 || profile.iterations > 10_000_000) {
24
+ return false;
25
+ }
26
+ // saltBytes must be at least 16 bytes (128 bits)
27
+ if (profile.saltBytes < 16 || profile.saltBytes > 256) {
28
+ return false;
29
+ }
30
+ // hashBytes must be positive and reasonable for sha256
31
+ if (profile.hashBytes < 16 || profile.hashBytes > 64) {
32
+ return false;
33
+ }
34
+ }
35
+ return true;
36
+ }
37
+ errorMessage(config) {
38
+ const issues = [];
39
+ const profileTests = [
40
+ { name: 'BROWSER_PASSWORD', profile: config.PBKDF2_PROFILES[Pbkdf2ProfileEnum.BROWSER_PASSWORD] },
41
+ { name: 'HIGH_SECURITY', profile: config.PBKDF2_PROFILES[Pbkdf2ProfileEnum.HIGH_SECURITY] },
42
+ { name: 'TEST_FAST', profile: config.PBKDF2_PROFILES[Pbkdf2ProfileEnum.TEST_FAST] },
43
+ ];
44
+ for (const { name, profile } of profileTests) {
45
+ if (profile.iterations < 1000 || profile.iterations > 10_000_000) {
46
+ issues.push(`${name}.iterations (${profile.iterations}) must be between 1000 and 10,000,000`);
47
+ }
48
+ if (profile.saltBytes < 16 || profile.saltBytes > 256) {
49
+ issues.push(`${name}.saltBytes (${profile.saltBytes}) must be between 16 and 256`);
50
+ }
51
+ if (profile.hashBytes < 16 || profile.hashBytes > 64) {
52
+ issues.push(`${name}.hashBytes (${profile.hashBytes}) must be between 16 and 64`);
53
+ }
54
+ }
55
+ return `Invariant '${this.name}' failed:\n ${issues.join('\n ')}`;
56
+ }
57
+ }
58
+ //# sourceMappingURL=pbkdf2-profiles-validity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2-profiles-validity.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/pbkdf2-profiles-validity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE;;;;;;;GAOG;AACH,MAAM,OAAO,+BAAgC,SAAQ,aAAa;IAChE;QACE,KAAK,CACH,wBAAwB,EACxB,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,MAAM,QAAQ,GAAG;YACf,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC;YACvD,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC;SACpD,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,6CAA6C;YAC7C,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,iDAAiD;YACjD,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,uDAAuD;YACvD,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG;YACnB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE;YACjG,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;YAC3F,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;SACpF,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBACjE,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,gBAAgB,OAAO,CAAC,UAAU,uCAAuC,CACjF,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,eAAe,OAAO,CAAC,SAAS,8BAA8B,CACtE,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;gBACrD,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,eAAe,OAAO,CAAC,SAAS,6BAA6B,CACrE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,cAAc,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { IConstants } from '../../interfaces/constants';
2
+ import { BaseInvariant } from '../../interfaces/invariant';
3
+ /**
4
+ * Validates that all recipient ID size configurations are consistent.
5
+ *
6
+ * This invariant would have caught the 12 vs 32 byte discrepancy.
7
+ *
8
+ * Checks:
9
+ * - MEMBER_ID_LENGTH === idProvider.byteLength
10
+ * - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
11
+ * - All three values must be in sync
12
+ */
13
+ export declare class RecipientIdConsistencyInvariant extends BaseInvariant {
14
+ constructor();
15
+ check(config: IConstants): boolean;
16
+ errorMessage(config: IConstants): string;
17
+ }
18
+ //# sourceMappingURL=recipient-id-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient-id-consistency.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/recipient-id-consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,+BAAgC,SAAQ,aAAa;;IAQhE,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAOlC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAiBzC"}
@@ -0,0 +1,31 @@
1
+ import { BaseInvariant } from '../../interfaces/invariant';
2
+ /**
3
+ * Validates that all recipient ID size configurations are consistent.
4
+ *
5
+ * This invariant would have caught the 12 vs 32 byte discrepancy.
6
+ *
7
+ * Checks:
8
+ * - MEMBER_ID_LENGTH === idProvider.byteLength
9
+ * - ECIES.MULTIPLE.RECIPIENT_ID_SIZE === idProvider.byteLength
10
+ * - All three values must be in sync
11
+ */
12
+ export class RecipientIdConsistencyInvariant extends BaseInvariant {
13
+ constructor() {
14
+ super('RecipientIdConsistency', 'All recipient ID size configurations must match the ID provider byte length');
15
+ }
16
+ check(config) {
17
+ return (config.MEMBER_ID_LENGTH === config.idProvider.byteLength &&
18
+ config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE === config.idProvider.byteLength);
19
+ }
20
+ errorMessage(config) {
21
+ const issues = [];
22
+ if (config.MEMBER_ID_LENGTH !== config.idProvider.byteLength) {
23
+ issues.push(`MEMBER_ID_LENGTH (${config.MEMBER_ID_LENGTH}) !== idProvider.byteLength (${config.idProvider.byteLength})`);
24
+ }
25
+ if (config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE !== config.idProvider.byteLength) {
26
+ issues.push(`ECIES.MULTIPLE.RECIPIENT_ID_SIZE (${config.ECIES.MULTIPLE.RECIPIENT_ID_SIZE}) !== idProvider.byteLength (${config.idProvider.byteLength})`);
27
+ }
28
+ return `Invariant '${this.name}' failed:\n ${issues.join('\n ')}`;
29
+ }
30
+ }
31
+ //# sourceMappingURL=recipient-id-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient-id-consistency.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-ecies-lib/src/lib/invariants/recipient-id-consistency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,OAAO,+BAAgC,SAAQ,aAAa;IAChE;QACE,KAAK,CACH,wBAAwB,EACxB,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAkB;QACtB,OAAO,CACL,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU;YACxD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,CACzE,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CACT,qBAAqB,MAAM,CAAC,gBAAgB,gCAAgC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAC5G,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,KAAK,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7E,MAAM,CAAC,IAAI,CACT,qCAAqC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,gCAAgC,MAAM,CAAC,UAAU,CAAC,UAAU,GAAG,CAC5I,CAAC;QACJ,CAAC;QAED,OAAO,cAAc,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;CACF"}