@digitaldefiance/ecies-lib 4.4.11 → 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 -74
  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
@@ -1,54 +0,0 @@
1
- import type { DeepPartial } from '../types/deep-partial';
2
- import type { IConstants } from './constants';
3
-
4
- /**
5
- * Provenance information for a configuration.
6
- * Tracks who created it, when, and what modifications were made.
7
- */
8
- export interface IConfigurationProvenance {
9
- /**
10
- * The base configuration key this was derived from
11
- */
12
- readonly baseConfigKey: string;
13
-
14
- /**
15
- * Overrides applied to the base configuration
16
- */
17
- readonly overrides: DeepPartial<IConstants>;
18
-
19
- /**
20
- * When this configuration was created
21
- */
22
- readonly timestamp: Date;
23
-
24
- /**
25
- * Source of the configuration
26
- * - 'default': The built-in Constants
27
- * - 'runtime': Created via createRuntimeConfiguration
28
- * - 'custom': User-provided full configuration
29
- */
30
- readonly source: 'default' | 'runtime' | 'custom';
31
-
32
- /**
33
- * SHA-256 checksum of the final configuration
34
- * Useful for verifying configuration hasn't been tampered with
35
- */
36
- readonly checksum: string;
37
-
38
- /**
39
- * Optional description or notes about this configuration
40
- */
41
- readonly description?: string;
42
-
43
- /**
44
- * Stack trace showing where the configuration was created
45
- * Useful for debugging unexpected configurations
46
- */
47
- readonly creationStack?: string;
48
- }
49
-
50
- // Re-export utility functions from lib
51
- export {
52
- calculateConfigChecksum,
53
- captureCreationStack,
54
- } from '../lib/configuration-provenance-utils';
@@ -1,75 +0,0 @@
1
- import type { Pbkdf2Profiles } from '../pbkdf2-profiles';
2
- import type { IChecksumConsts } from './checksum-consts';
3
- import type { IECIESConstants } from './ecies-consts';
4
- import type { IIdProvider } from './id-provider';
5
- import type { IPBkdf2Consts } from './pbkdf2-consts';
6
-
7
- export interface IConstants {
8
- UINT8_SIZE: number;
9
- UINT16_SIZE: number;
10
- UINT16_MAX: number;
11
- UINT32_SIZE: number;
12
- UINT32_MAX: number;
13
- UINT64_SIZE: number;
14
- UINT64_MAX: bigint;
15
- HEX_RADIX: number;
16
-
17
- /**
18
- * The length of user IDs in the system.
19
- * This is dynamically determined by the configured ID provider.
20
- * @deprecated Use idProvider.byteLength instead for direct access
21
- */
22
- MEMBER_ID_LENGTH: number;
23
-
24
- /**
25
- * The length of a raw object ID (not the hex string representation).
26
- * Standard MongoDB ObjectID is 12 bytes.
27
- * @deprecated Use idProvider.byteLength instead for direct access
28
- */
29
- OBJECT_ID_LENGTH: number;
30
-
31
- /**
32
- * ID provider for recipient identification in multi-recipient encryption.
33
- * This determines the format and size of recipient IDs used throughout the system.
34
- *
35
- * Default: ObjectIdProvider (12 bytes, MongoDB compatible)
36
- *
37
- * @example
38
- * ```typescript
39
- * import { GuidV4Provider } from './lib/id-providers';
40
- *
41
- * // Use GUIDs instead of ObjectIDs
42
- * const config = createRuntimeConfiguration({
43
- * idProvider: new GuidV4Provider()
44
- * });
45
- * ```
46
- */
47
- idProvider: IIdProvider;
48
-
49
- CHECKSUM: IChecksumConsts;
50
- ECIES: IECIESConstants;
51
- PBKDF2: IPBkdf2Consts;
52
- PBKDF2_PROFILES: Pbkdf2Profiles;
53
-
54
- /**
55
- * Number of rounds for bcrypt hashing. Higher values increase security but also consume more CPU resources.
56
- */
57
- BcryptRounds: number;
58
- /**
59
- * Minimum password length
60
- */
61
- PasswordMinLength: number;
62
- /**
63
- * The regular expression for valid passwords.
64
- */
65
- PasswordRegex: RegExp;
66
- /**
67
- * The regular expression for valid mnemonic phrases.
68
- * BIP39
69
- */
70
- MnemonicRegex: RegExp;
71
- /**
72
- * The regular expression for valid HMAC keys.
73
- */
74
- MnemonicHmacRegex: RegExp;
75
- }
@@ -1,8 +0,0 @@
1
- export interface IECIESConfig {
2
- curveName: string;
3
- primaryKeyDerivationPath: string;
4
- mnemonicStrength: number;
5
- symmetricAlgorithm: string;
6
- symmetricKeyBits: number;
7
- symmetricKeyMode: string;
8
- }
@@ -1,74 +0,0 @@
1
- import { CipherGCMTypes } from 'crypto';
2
- export interface IECIESConstants {
3
- /** The elliptic curve to use for all ECDSA operations */
4
- CURVE_NAME: string;
5
-
6
- /** The primary key derivation path for HD wallets */
7
- PRIMARY_KEY_DERIVATION_PATH: string;
8
-
9
- SYMMETRIC_ALGORITHM_CONFIGURATION: CipherGCMTypes;
10
-
11
- /** Length of ECDSA signatures in bytes */
12
- SIGNATURE_SIZE: number;
13
-
14
- /** Length of raw public keys in bytes (without 0x04 prefix) */
15
- RAW_PUBLIC_KEY_LENGTH: number;
16
-
17
- /** Length of public keys in bytes (with 0x04 prefix) */
18
- PUBLIC_KEY_LENGTH: number;
19
-
20
- PUBLIC_KEY_MAGIC: number;
21
-
22
- /** Mnemonic strength in bits. This will produce a 32-bit key for ECDSA */
23
- MNEMONIC_STRENGTH: number;
24
-
25
- /** Symmetric encryption algorithm configuration */
26
- SYMMETRIC: {
27
- ALGORITHM: string;
28
- MODE: string;
29
- KEY_BITS: number;
30
- KEY_SIZE: number; // KEY_BITS / 8
31
- };
32
-
33
- IV_SIZE: number;
34
- AUTH_TAG_SIZE: number;
35
- MAX_RAW_DATA_SIZE: number; // 2^53 - 1 (max safe integer for JS)
36
-
37
- VERSION_SIZE: number;
38
- CIPHER_SUITE_SIZE: number;
39
- ENCRYPTION_TYPE_SIZE: number;
40
-
41
- /**
42
- * Message encrypts without data length or crc
43
- */
44
- SIMPLE: {
45
- FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16)
46
- DATA_LENGTH_SIZE: number;
47
- };
48
-
49
- /**
50
- * Message encrypts like single but with data Length and crc
51
- */
52
- SINGLE: {
53
- FIXED_OVERHEAD_SIZE: number; // type (1) + public key (65) + IV (16) + auth tag (16) + data length (8) + crc16 (2)
54
- DATA_LENGTH_SIZE: number;
55
- };
56
-
57
- /**
58
- * Message encrypts for multiple recipients
59
- */
60
- MULTIPLE: {
61
- FIXED_OVERHEAD_SIZE: number;
62
- ENCRYPTED_KEY_SIZE: number;
63
- MAX_RECIPIENTS: number;
64
- RECIPIENT_ID_SIZE: number;
65
- RECIPIENT_COUNT_SIZE: number;
66
- DATA_LENGTH_SIZE: number;
67
- };
68
-
69
- ENCRYPTION_TYPE: {
70
- SIMPLE: number;
71
- SINGLE: number;
72
- MULTIPLE: number;
73
- };
74
- }
@@ -1,6 +0,0 @@
1
- export interface IEciesFileService {
2
- encryptFile(file: File, recipientPublicKey: Uint8Array): Promise<Uint8Array>;
3
- decryptFile(encryptedData: Uint8Array): Promise<Uint8Array>;
4
- downloadEncryptedFile(encryptedData: Uint8Array, filename: string): void;
5
- downloadDecryptedFile(decryptedData: Uint8Array, filename: string): void;
6
- }
@@ -1,64 +0,0 @@
1
- /**
2
- * Metadata for an encrypted chunk
3
- */
4
- export interface IChunkMetadata {
5
- /** Original size before encryption */
6
- originalSize: number;
7
- /** Size after encryption */
8
- encryptedSize: number;
9
- /** Timestamp when chunk was encrypted */
10
- timestamp: number;
11
- /** Optional SHA-256 checksum of original data */
12
- checksum?: Uint8Array;
13
- }
14
-
15
- /**
16
- * Represents a single encrypted chunk in a stream
17
- */
18
- export interface IEncryptedChunk {
19
- /** Chunk sequence number (0-based) */
20
- index: number;
21
- /** Encrypted chunk data */
22
- data: Uint8Array;
23
- /** Whether this is the final chunk */
24
- isLast: boolean;
25
- /** Chunk metadata */
26
- metadata?: IChunkMetadata;
27
- }
28
-
29
- /**
30
- * Chunk header structure (32 bytes fixed)
31
- */
32
- export interface IChunkHeader {
33
- /** Magic bytes: 0x45434945 ("ECIE") */
34
- magic: number;
35
- /** Version: 0x0001 */
36
- version: number;
37
- /** Chunk index */
38
- index: number;
39
- /** Original size */
40
- originalSize: number;
41
- /** Encrypted size */
42
- encryptedSize: number;
43
- /** Flags (bit 0: isLast, bit 1: hasChecksum) */
44
- flags: number;
45
- }
46
-
47
- /**
48
- * Constants for chunk format
49
- */
50
- export const CHUNK_CONSTANTS: {
51
- readonly MAGIC: 0x45434945;
52
- readonly VERSION: 0x0001;
53
- readonly HEADER_SIZE: 32;
54
- readonly FLAG_IS_LAST: 0x01;
55
- readonly FLAG_HAS_CHECKSUM: 0x02;
56
- readonly CHECKSUM_SIZE: 32;
57
- } = {
58
- MAGIC: 0x45434945, // "ECIE"
59
- VERSION: 0x0001,
60
- HEADER_SIZE: 32,
61
- FLAG_IS_LAST: 0x01,
62
- FLAG_HAS_CHECKSUM: 0x02,
63
- CHECKSUM_SIZE: 32, // SHA-256
64
- } as const;
@@ -1,19 +0,0 @@
1
- import type { EciesEncryptionTypeEnum } from '../enumerations/ecies-encryption-type';
2
-
3
- /**
4
- * Serializable encryption state for resumption
5
- */
6
- export interface IEncryptionState {
7
- version: number;
8
- chunkIndex: number;
9
- bytesProcessed: number;
10
- totalBytes?: number;
11
- publicKey: string; // hex
12
- encryptionType: EciesEncryptionTypeEnum;
13
- chunkSize: number;
14
- includeChecksums: boolean;
15
- timestamp: number;
16
- hmac?: string; // hex SHA-256 HMAC for integrity
17
- }
18
-
19
- export const ENCRYPTION_STATE_VERSION: number = 1;
@@ -1,77 +0,0 @@
1
- import type { Wallet } from '@ethereumjs/wallet';
2
- import type { EmailString } from '../email-string';
3
- import type MemberType from '../enumerations/member-type';
4
- import type { SecureBuffer } from '../secure-buffer';
5
- import type { SecureString } from '../secure-string';
6
- import type { SignatureUint8Array } from '../types';
7
- import type { IECIESConstants } from './ecies-consts';
8
- import type { IEncryptedChunk } from './encrypted-chunk';
9
- import type { ProgressCallback } from './stream-progress';
10
-
11
- /**
12
- * Operational interface for member - defines getters and methods
13
- */
14
- export interface IFrontendMemberOperational<
15
- TID = Uint8Array,
16
- TData = Uint8Array,
17
- TSignature = SignatureUint8Array,
18
- > {
19
- // Required getters
20
- get id(): TID;
21
- get type(): MemberType;
22
- get name(): string;
23
- get email(): EmailString;
24
- get publicKey(): Uint8Array;
25
- get creatorId(): TID;
26
- get dateCreated(): Date;
27
- get dateUpdated(): Date;
28
-
29
- // Optional private data getters
30
- get privateKey(): SecureBuffer | undefined;
31
- get wallet(): Wallet | undefined;
32
-
33
- // State getters
34
- get hasPrivateKey(): boolean;
35
-
36
- // Methods
37
- sign(data: TData): TSignature;
38
- verify(signature: TSignature, data: TData): boolean;
39
- encryptData(
40
- data: string | TData,
41
- recipientPublicKey?: Uint8Array,
42
- ): Promise<TData>;
43
- decryptData(encryptedData: TData): Promise<TData>;
44
- toJson(): string;
45
- dispose(): void;
46
-
47
- // Streaming methods
48
- encryptDataStream(
49
- source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
50
- options?: {
51
- recipientPublicKey?: Uint8Array;
52
- onProgress?: ProgressCallback;
53
- signal?: AbortSignal;
54
- },
55
- ): AsyncGenerator<IEncryptedChunk, void, unknown>;
56
-
57
- decryptDataStream(
58
- source: AsyncIterable<Uint8Array> | ReadableStream<Uint8Array>,
59
- options?: {
60
- onProgress?: ProgressCallback;
61
- signal?: AbortSignal;
62
- },
63
- ): AsyncGenerator<Uint8Array, void, unknown>;
64
-
65
- // Private key management
66
- loadWallet(mnemonic: SecureString, eciesParams?: IECIESConstants): void;
67
- unloadPrivateKey(): void;
68
- unloadWallet(): void;
69
- unloadWalletAndPrivateKey(): void;
70
- }
71
-
72
- /**
73
- * Extended operational interface for test members
74
- */
75
- export interface ITestMemberOperational extends IFrontendMemberOperational {
76
- get mnemonic(): SecureString | undefined;
77
- }
@@ -1,86 +0,0 @@
1
- import {
2
- Base64Guid,
3
- BigIntGuid,
4
- // prettier-ignore
5
- FullHexGuid,
6
- RawGuidBuffer,
7
- ShortHexGuid,
8
- } from '../types';
9
-
10
- export interface IGuidV4 {
11
- /**
12
- * Returns the GUID as a raw buffer.
13
- */
14
- get asRawGuidBuffer(): RawGuidBuffer;
15
- /**
16
- * Returns the GUID as a full hex string.
17
- */
18
- get asFullHexGuid(): FullHexGuid;
19
- /**
20
- * Returns the GUID as a Uint8Array.
21
- */
22
- get asUint8Array(): Uint8Array;
23
- /**
24
- * Returns the GUID as a short hex string.
25
- */
26
- get asShortHexGuid(): ShortHexGuid;
27
- /**
28
- * Returns the GUID as a BigInt.
29
- */
30
- get asBigIntGuid(): BigIntGuid;
31
- /**
32
- * Returns the GUID as a Base64 string.
33
- */
34
- get asBase64Guid(): Base64Guid;
35
-
36
- /**
37
- * Returns the GUID as a base64 string
38
- */
39
- serialize(): string;
40
- /**
41
- * Returns the GUID as a JSON string
42
- */
43
- toJson(): string;
44
- /**
45
- * Returns the GUID as a Base64 string
46
- */
47
- toString(): Base64Guid;
48
- /**
49
- * Compares this GUID to another GUID
50
- * @param other The GUID to compare to (can be null/undefined)
51
- * @param constantTime Use constant-time comparison to prevent timing attacks
52
- */
53
- equals(other: IGuidV4 | null | undefined, constantTime?: boolean): boolean;
54
- /**
55
- * Creates a new GuidV4 instance with the same value as this one.
56
- * @returns A new GuidV4 instance with identical value
57
- */
58
- clone(): IGuidV4;
59
- /**
60
- * Returns the hash code for this GUID based on its buffer content.
61
- * Useful for using GUIDs as Map/Set keys.
62
- * @returns A numeric hash code
63
- */
64
- hashCode(): number;
65
- /**
66
- * Checks if this GUID is empty (all zeros).
67
- * @returns True if the GUID is all zeros, false otherwise
68
- */
69
- isEmpty(): boolean;
70
- /**
71
- * Extracts the RFC 4122 version from the GUID.
72
- * @returns The version number (1-5) or undefined
73
- */
74
- getVersion(): number | undefined;
75
- /**
76
- * Validates that this GUID is a proper v4 GUID according to RFC 4122.
77
- * @returns True if valid v4 GUID or boundary value, false otherwise
78
- */
79
- isValidV4(): boolean;
80
- /**
81
- * Compares two GUIDs for ordering.
82
- * @param other The other GUID to compare to
83
- * @returns -1 if this < other, 0 if equal, 1 if this > other
84
- */
85
- compareTo(other: IGuidV4): number;
86
- }
@@ -1,152 +0,0 @@
1
- /**
2
- * Interface for ID providers that supply recipient identifiers.
3
- * This allows the library to support various ID formats (ObjectID, GUID, UUID, custom).
4
- */
5
- export interface IIdProvider {
6
- /**
7
- * The fixed byte length of IDs produced by this provider.
8
- * This determines the size of recipient ID fields in encrypted messages.
9
- */
10
- readonly byteLength: number;
11
-
12
- /**
13
- * A human-readable name for this ID provider type.
14
- * Examples: 'ObjectID', 'GUIDv4', 'UUIDv4', 'Custom'
15
- */
16
- readonly name: string;
17
-
18
- /**
19
- * Generate a new random ID.
20
- * @returns A newly generated ID as a Uint8Array of length `byteLength`
21
- */
22
- generate(): Uint8Array;
23
-
24
- /**
25
- * Validate that a given buffer is a properly formatted ID for this provider.
26
- * This should check length, format constraints, and any version bits if applicable.
27
- * @param id The ID buffer to validate
28
- * @returns True if the ID is valid for this provider, false otherwise
29
- */
30
- validate(id: Uint8Array): boolean;
31
-
32
- /**
33
- * Serialize an ID buffer to a human-readable string representation.
34
- * Examples: hex string, base64, ObjectID hex, UUID format with dashes
35
- * @param id The ID buffer to serialize
36
- * @returns A string representation of the ID
37
- * @throws Error if the ID is invalid
38
- */
39
- serialize(id: Uint8Array): string;
40
-
41
- /**
42
- * Deserialize a string representation back to an ID buffer.
43
- * This is the inverse of `serialize`.
44
- * @param str The string representation of the ID
45
- * @returns The ID as a Uint8Array of length `byteLength`
46
- * @throws Error if the string is not a valid representation
47
- */
48
- deserialize(str: string): Uint8Array;
49
-
50
- /**
51
- * Compare two IDs for equality.
52
- * Default implementation uses constant-time comparison.
53
- * @param a First ID
54
- * @param b Second ID
55
- * @returns True if IDs are equal, false otherwise
56
- */
57
- equals(a: Uint8Array, b: Uint8Array): boolean;
58
-
59
- /**
60
- * Clone an ID buffer.
61
- * Default implementation creates a defensive copy.
62
- * @param id The ID to clone
63
- * @returns A new Uint8Array with the same contents
64
- */
65
- clone(id: Uint8Array): Uint8Array;
66
-
67
- /**
68
- * Convert an ID of unknown type to a string representation.
69
- * This is useful when dealing with generic IDs that might be Uint8Array, string, or other types.
70
- * @param id The ID to convert
71
- * @returns A string representation of the ID
72
- */
73
- idToString(id: unknown): string;
74
-
75
- /**
76
- * Convert a string representation of an ID back to an ID buffer.
77
- * This is an alias for `deserialize` to provide symmetry with `idToString`.
78
- * @param str The string representation of the ID
79
- * @returns The ID as a Uint8Array of length `byteLength`
80
- */
81
- idFromString(str: string): Uint8Array;
82
- }
83
-
84
- /**
85
- * Base class for ID providers with common utility methods.
86
- */
87
- export abstract class BaseIdProvider implements IIdProvider {
88
- abstract readonly byteLength: number;
89
- abstract readonly name: string;
90
-
91
- abstract generate(): Uint8Array;
92
- abstract validate(id: Uint8Array): boolean;
93
- abstract serialize(id: Uint8Array): string;
94
- abstract deserialize(str: string): Uint8Array;
95
-
96
- /**
97
- * Convert an ID of unknown type to a string representation.
98
- * Default implementation handles Uint8Array using serialize(), and falls back to String().
99
- */
100
- idToString(id: unknown): string {
101
- if (id instanceof Uint8Array) {
102
- return this.serialize(id);
103
- }
104
- return String(id);
105
- }
106
-
107
- /**
108
- * Convert a string representation of an ID back to an ID buffer.
109
- * Default implementation delegates to `deserialize`.
110
- */
111
- idFromString(str: string): Uint8Array {
112
- return this.deserialize(str);
113
- }
114
-
115
- /**
116
- * Constant-time comparison to prevent timing attacks.
117
- */
118
- equals(a: Uint8Array, b: Uint8Array): boolean {
119
- if (a.length !== b.length) {
120
- return false;
121
- }
122
-
123
- let diff = 0;
124
- for (let i = 0; i < a.length; i++) {
125
- diff |= a[i] ^ b[i];
126
- }
127
- return diff === 0;
128
- }
129
-
130
- /**
131
- * Create a defensive copy of an ID.
132
- */
133
- clone(id: Uint8Array): Uint8Array {
134
- return new Uint8Array(id);
135
- }
136
-
137
- /**
138
- * Validate ID length matches expected byte length.
139
- */
140
- protected validateLength(id: Uint8Array, context: string): void {
141
- if (id.length !== this.byteLength) {
142
- const { IdProviderError } = require('../errors/id-provider');
143
- const { IdProviderErrorType } = require('../enumerations/id-provider-error-type');
144
- throw new IdProviderError(
145
- IdProviderErrorType.InvalidLength,
146
- undefined,
147
- undefined,
148
- { context, expected: this.byteLength, actual: id.length }
149
- );
150
- }
151
- }
152
- }
@@ -1,60 +0,0 @@
1
- import type { IConstants } from './constants';
2
-
3
- /**
4
- * An invariant is a relationship between configuration values that must always hold true.
5
- * Unlike simple property validation, invariants check consistency across multiple related values.
6
- *
7
- * Example: MEMBER_ID_LENGTH must equal idProvider.byteLength
8
- *
9
- * Invariants help catch configuration errors that simple property validation would miss,
10
- * such as the 12 vs 32 byte discrepancy we encountered.
11
- */
12
- export interface IInvariant {
13
- /**
14
- * Unique name for this invariant (used in error messages)
15
- */
16
- readonly name: string;
17
-
18
- /**
19
- * Human-readable description of what this invariant validates
20
- */
21
- readonly description: string;
22
-
23
- /**
24
- * Check if the invariant holds for the given configuration
25
- * @returns true if invariant is satisfied, false otherwise
26
- */
27
- check(config: IConstants): boolean;
28
-
29
- /**
30
- * Generate a detailed error message explaining why the invariant failed
31
- * @param config The configuration that failed validation
32
- * @returns Error message with actual vs expected values
33
- */
34
- errorMessage(config: IConstants): string;
35
- }
36
-
37
- /**
38
- * Base class for invariants with common utilities
39
- */
40
- export abstract class BaseInvariant implements IInvariant {
41
- constructor(
42
- public readonly name: string,
43
- public readonly description: string,
44
- ) {}
45
-
46
- abstract check(config: IConstants): boolean;
47
- abstract errorMessage(config: IConstants): string;
48
-
49
- /**
50
- * Helper to format error messages consistently
51
- */
52
- protected formatError(
53
- property1: string,
54
- value1: unknown,
55
- property2: string,
56
- value2: unknown,
57
- ): string {
58
- return `Invariant '${this.name}' failed: ${property1} (${value1}) must equal ${property2} (${value2})`;
59
- }
60
- }