@digitaldefiance/ecies-lib 1.1.23 → 1.1.24

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 (347) hide show
  1. package/README.md +4 -0
  2. package/package.json +13 -33
  3. package/src/constants.ts +474 -0
  4. package/src/email-string.ts +83 -0
  5. package/src/enumerations/ecies-encryption-type.ts +102 -0
  6. package/src/enumerations/ecies-error-type.ts +31 -0
  7. package/src/enumerations/ecies-string-key.ts +108 -0
  8. package/src/enumerations/guid-brand-type.ts +26 -0
  9. package/src/enumerations/guid-error-type.ts +6 -0
  10. package/{dist/enumerations/index.d.ts → src/enumerations/index.ts} +0 -1
  11. package/src/enumerations/invalid-email-type.ts +5 -0
  12. package/src/enumerations/length-encoding-type.ts +6 -0
  13. package/src/enumerations/length-error-type.ts +5 -0
  14. package/src/enumerations/member-error-type.ts +106 -0
  15. package/{dist/enumerations/member-type.d.ts → src/enumerations/member-type.ts} +7 -6
  16. package/src/enumerations/password-login-error-type.ts +4 -0
  17. package/src/enumerations/pbkdf2-error-type.ts +5 -0
  18. package/src/enumerations/pbkdf2-profile.ts +5 -0
  19. package/src/enumerations/secure-storage-error-type.ts +5 -0
  20. package/src/errors/disposed.ts +15 -0
  21. package/src/errors/ecies.ts +34 -0
  22. package/src/errors/guid.ts +34 -0
  23. package/{dist/errors/index.d.ts → src/errors/index.ts} +0 -1
  24. package/src/errors/invalid-email.ts +11 -0
  25. package/src/errors/length.ts +11 -0
  26. package/src/errors/member.ts +12 -0
  27. package/src/errors/pbkdf2.ts +12 -0
  28. package/src/errors/secure-storage.ts +13 -0
  29. package/src/errors/simple-ecies.ts +18 -0
  30. package/src/errors/simple-test-error.ts +6 -0
  31. package/src/guid.ts +800 -0
  32. package/src/i18n-setup.ts +1312 -0
  33. package/{dist/index.d.ts → src/index.ts} +0 -1
  34. package/src/interfaces/checksum-config.ts +4 -0
  35. package/src/interfaces/checksum-consts.ts +13 -0
  36. package/src/interfaces/constants.ts +48 -0
  37. package/src/interfaces/ecies-config.ts +8 -0
  38. package/src/interfaces/ecies-consts.ts +70 -0
  39. package/src/interfaces/ecies-file-service.ts +6 -0
  40. package/src/interfaces/guid.ts +53 -0
  41. package/{dist/interfaces/index.d.ts → src/interfaces/index.ts} +0 -1
  42. package/src/interfaces/library-error.ts +23 -0
  43. package/src/interfaces/member-operational.ts +54 -0
  44. package/{dist/interfaces/member-storage.d.ts → src/interfaces/member-storage.ts} +11 -10
  45. package/{dist/interfaces/member-with-mnemonic.d.ts → src/interfaces/member-with-mnemonic.ts} +3 -3
  46. package/src/interfaces/pbkdf2-config.ts +6 -0
  47. package/src/interfaces/pbkdf2-consts.ts +10 -0
  48. package/src/interfaces/pbkdf2-result.ts +5 -0
  49. package/src/member.ts +429 -0
  50. package/{dist/pbkdf2-profiles.d.ts → src/pbkdf2-profiles.ts} +2 -2
  51. package/src/phone-number.ts +18 -0
  52. package/src/regexes.ts +10 -0
  53. package/src/secure-buffer.ts +183 -0
  54. package/src/secure-string.ts +229 -0
  55. package/src/services/aes-gcm.ts +177 -0
  56. package/src/services/ecies/README.md +147 -0
  57. package/src/services/ecies/crypto-core.ts +180 -0
  58. package/src/services/ecies/example.ts +185 -0
  59. package/src/services/ecies/file.ts +167 -0
  60. package/{dist/services/ecies/index.d.ts → src/services/ecies/index.ts} +3 -1
  61. package/src/services/ecies/integration.ts +241 -0
  62. package/src/services/ecies/interfaces.ts +59 -0
  63. package/src/services/ecies/manual-test.ts +219 -0
  64. package/src/services/ecies/multi-recipient.ts +394 -0
  65. package/src/services/ecies/service.ts +317 -0
  66. package/src/services/ecies/signature.ts +93 -0
  67. package/src/services/ecies/single-recipient.ts +340 -0
  68. package/{dist/services/index.d.ts → src/services/index.ts} +0 -1
  69. package/src/services/password-login.ts +228 -0
  70. package/src/services/pbkdf2.ts +172 -0
  71. package/src/services/xor.ts +65 -0
  72. package/src/types/deep-partial.ts +11 -0
  73. package/{dist/types.d.ts → src/types.ts} +10 -4
  74. package/src/utils.ts +331 -0
  75. package/dist/constants.d.ts +0 -46
  76. package/dist/constants.d.ts.map +0 -1
  77. package/dist/constants.js +0 -358
  78. package/dist/constants.js.map +0 -1
  79. package/dist/email-string.d.ts +0 -42
  80. package/dist/email-string.d.ts.map +0 -1
  81. package/dist/email-string.js +0 -75
  82. package/dist/email-string.js.map +0 -1
  83. package/dist/enumerations/ecies-encryption-type.d.ts +0 -15
  84. package/dist/enumerations/ecies-encryption-type.d.ts.map +0 -1
  85. package/dist/enumerations/ecies-encryption-type.js +0 -71
  86. package/dist/enumerations/ecies-encryption-type.js.map +0 -1
  87. package/dist/enumerations/ecies-error-type.d.ts +0 -32
  88. package/dist/enumerations/ecies-error-type.d.ts.map +0 -1
  89. package/dist/enumerations/ecies-error-type.js +0 -36
  90. package/dist/enumerations/ecies-error-type.js.map +0 -1
  91. package/dist/enumerations/ecies-string-key.d.ts +0 -96
  92. package/dist/enumerations/ecies-string-key.d.ts.map +0 -1
  93. package/dist/enumerations/ecies-string-key.js +0 -105
  94. package/dist/enumerations/ecies-string-key.js.map +0 -1
  95. package/dist/enumerations/guid-brand-type.d.ts +0 -27
  96. package/dist/enumerations/guid-brand-type.d.ts.map +0 -1
  97. package/dist/enumerations/guid-brand-type.js +0 -31
  98. package/dist/enumerations/guid-brand-type.js.map +0 -1
  99. package/dist/enumerations/guid-error-type.d.ts +0 -7
  100. package/dist/enumerations/guid-error-type.d.ts.map +0 -1
  101. package/dist/enumerations/guid-error-type.js +0 -11
  102. package/dist/enumerations/guid-error-type.js.map +0 -1
  103. package/dist/enumerations/index.d.ts.map +0 -1
  104. package/dist/enumerations/index.js +0 -31
  105. package/dist/enumerations/index.js.map +0 -1
  106. package/dist/enumerations/invalid-email-type.d.ts +0 -6
  107. package/dist/enumerations/invalid-email-type.d.ts.map +0 -1
  108. package/dist/enumerations/invalid-email-type.js +0 -10
  109. package/dist/enumerations/invalid-email-type.js.map +0 -1
  110. package/dist/enumerations/length-encoding-type.d.ts +0 -7
  111. package/dist/enumerations/length-encoding-type.d.ts.map +0 -1
  112. package/dist/enumerations/length-encoding-type.js +0 -11
  113. package/dist/enumerations/length-encoding-type.js.map +0 -1
  114. package/dist/enumerations/length-error-type.d.ts +0 -6
  115. package/dist/enumerations/length-error-type.d.ts.map +0 -1
  116. package/dist/enumerations/length-error-type.js +0 -10
  117. package/dist/enumerations/length-error-type.js.map +0 -1
  118. package/dist/enumerations/member-error-type.d.ts +0 -87
  119. package/dist/enumerations/member-error-type.d.ts.map +0 -1
  120. package/dist/enumerations/member-error-type.js +0 -91
  121. package/dist/enumerations/member-error-type.js.map +0 -1
  122. package/dist/enumerations/member-type.d.ts.map +0 -1
  123. package/dist/enumerations/member-type.js +0 -19
  124. package/dist/enumerations/member-type.js.map +0 -1
  125. package/dist/enumerations/password-login-error-type.d.ts +0 -5
  126. package/dist/enumerations/password-login-error-type.d.ts.map +0 -1
  127. package/dist/enumerations/password-login-error-type.js +0 -9
  128. package/dist/enumerations/password-login-error-type.js.map +0 -1
  129. package/dist/enumerations/pbkdf2-error-type.d.ts +0 -6
  130. package/dist/enumerations/pbkdf2-error-type.d.ts.map +0 -1
  131. package/dist/enumerations/pbkdf2-error-type.js +0 -10
  132. package/dist/enumerations/pbkdf2-error-type.js.map +0 -1
  133. package/dist/enumerations/pbkdf2-profile.d.ts +0 -6
  134. package/dist/enumerations/pbkdf2-profile.d.ts.map +0 -1
  135. package/dist/enumerations/pbkdf2-profile.js +0 -10
  136. package/dist/enumerations/pbkdf2-profile.js.map +0 -1
  137. package/dist/enumerations/secure-storage-error-type.d.ts +0 -6
  138. package/dist/enumerations/secure-storage-error-type.d.ts.map +0 -1
  139. package/dist/enumerations/secure-storage-error-type.js +0 -10
  140. package/dist/enumerations/secure-storage-error-type.js.map +0 -1
  141. package/dist/errors/disposed.d.ts +0 -4
  142. package/dist/errors/disposed.d.ts.map +0 -1
  143. package/dist/errors/disposed.js +0 -20
  144. package/dist/errors/disposed.js.map +0 -1
  145. package/dist/errors/ecies.d.ts +0 -7
  146. package/dist/errors/ecies.d.ts.map +0 -1
  147. package/dist/errors/ecies.js +0 -15
  148. package/dist/errors/ecies.js.map +0 -1
  149. package/dist/errors/guid.d.ts +0 -15
  150. package/dist/errors/guid.d.ts.map +0 -1
  151. package/dist/errors/guid.js +0 -26
  152. package/dist/errors/guid.js.map +0 -1
  153. package/dist/errors/index.d.ts.map +0 -1
  154. package/dist/errors/index.js +0 -25
  155. package/dist/errors/index.js.map +0 -1
  156. package/dist/errors/invalid-email.d.ts +0 -7
  157. package/dist/errors/invalid-email.d.ts.map +0 -1
  158. package/dist/errors/invalid-email.js +0 -14
  159. package/dist/errors/invalid-email.js.map +0 -1
  160. package/dist/errors/length.d.ts +0 -7
  161. package/dist/errors/length.d.ts.map +0 -1
  162. package/dist/errors/length.js +0 -14
  163. package/dist/errors/length.js.map +0 -1
  164. package/dist/errors/member.d.ts +0 -7
  165. package/dist/errors/member.d.ts.map +0 -1
  166. package/dist/errors/member.js +0 -14
  167. package/dist/errors/member.js.map +0 -1
  168. package/dist/errors/pbkdf2.d.ts +0 -7
  169. package/dist/errors/pbkdf2.d.ts.map +0 -1
  170. package/dist/errors/pbkdf2.js +0 -14
  171. package/dist/errors/pbkdf2.js.map +0 -1
  172. package/dist/errors/secure-storage.d.ts +0 -7
  173. package/dist/errors/secure-storage.d.ts.map +0 -1
  174. package/dist/errors/secure-storage.js +0 -15
  175. package/dist/errors/secure-storage.js.map +0 -1
  176. package/dist/errors/simple-ecies.d.ts +0 -6
  177. package/dist/errors/simple-ecies.d.ts.map +0 -1
  178. package/dist/errors/simple-ecies.js +0 -15
  179. package/dist/errors/simple-ecies.js.map +0 -1
  180. package/dist/errors/simple-test-error.d.ts +0 -4
  181. package/dist/errors/simple-test-error.d.ts.map +0 -1
  182. package/dist/errors/simple-test-error.js +0 -11
  183. package/dist/errors/simple-test-error.js.map +0 -1
  184. package/dist/guid.d.ts +0 -153
  185. package/dist/guid.d.ts.map +0 -1
  186. package/dist/guid.js +0 -647
  187. package/dist/guid.js.map +0 -1
  188. package/dist/i18n-setup.d.ts +0 -24
  189. package/dist/i18n-setup.d.ts.map +0 -1
  190. package/dist/i18n-setup.js +0 -837
  191. package/dist/i18n-setup.js.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/index.js +0 -32
  194. package/dist/index.js.map +0 -1
  195. package/dist/interfaces/checksum-config.d.ts +0 -5
  196. package/dist/interfaces/checksum-config.d.ts.map +0 -1
  197. package/dist/interfaces/checksum-config.js +0 -3
  198. package/dist/interfaces/checksum-config.js.map +0 -1
  199. package/dist/interfaces/checksum-consts.d.ts +0 -11
  200. package/dist/interfaces/checksum-consts.d.ts.map +0 -1
  201. package/dist/interfaces/checksum-consts.js +0 -3
  202. package/dist/interfaces/checksum-consts.js.map +0 -1
  203. package/dist/interfaces/constants.d.ts +0 -45
  204. package/dist/interfaces/constants.d.ts.map +0 -1
  205. package/dist/interfaces/constants.js +0 -3
  206. package/dist/interfaces/constants.js.map +0 -1
  207. package/dist/interfaces/ecies-config.d.ts +0 -9
  208. package/dist/interfaces/ecies-config.d.ts.map +0 -1
  209. package/dist/interfaces/ecies-config.js +0 -3
  210. package/dist/interfaces/ecies-config.js.map +0 -1
  211. package/dist/interfaces/ecies-consts.d.ts +0 -58
  212. package/dist/interfaces/ecies-consts.d.ts.map +0 -1
  213. package/dist/interfaces/ecies-consts.js +0 -3
  214. package/dist/interfaces/ecies-consts.js.map +0 -1
  215. package/dist/interfaces/ecies-file-service.d.ts +0 -7
  216. package/dist/interfaces/ecies-file-service.d.ts.map +0 -1
  217. package/dist/interfaces/ecies-file-service.js +0 -3
  218. package/dist/interfaces/ecies-file-service.js.map +0 -1
  219. package/dist/interfaces/guid.d.ts +0 -45
  220. package/dist/interfaces/guid.d.ts.map +0 -1
  221. package/dist/interfaces/guid.js +0 -3
  222. package/dist/interfaces/guid.js.map +0 -1
  223. package/dist/interfaces/index.d.ts.map +0 -1
  224. package/dist/interfaces/index.js +0 -30
  225. package/dist/interfaces/index.js.map +0 -1
  226. package/dist/interfaces/library-error.d.ts +0 -23
  227. package/dist/interfaces/library-error.d.ts.map +0 -1
  228. package/dist/interfaces/library-error.js +0 -3
  229. package/dist/interfaces/library-error.js.map +0 -1
  230. package/dist/interfaces/member-operational.d.ts +0 -40
  231. package/dist/interfaces/member-operational.d.ts.map +0 -1
  232. package/dist/interfaces/member-operational.js +0 -3
  233. package/dist/interfaces/member-operational.js.map +0 -1
  234. package/dist/interfaces/member-storage.d.ts.map +0 -1
  235. package/dist/interfaces/member-storage.js +0 -3
  236. package/dist/interfaces/member-storage.js.map +0 -1
  237. package/dist/interfaces/member-with-mnemonic.d.ts.map +0 -1
  238. package/dist/interfaces/member-with-mnemonic.js +0 -3
  239. package/dist/interfaces/member-with-mnemonic.js.map +0 -1
  240. package/dist/interfaces/pbkdf2-config.d.ts +0 -7
  241. package/dist/interfaces/pbkdf2-config.d.ts.map +0 -1
  242. package/dist/interfaces/pbkdf2-config.js +0 -3
  243. package/dist/interfaces/pbkdf2-config.js.map +0 -1
  244. package/dist/interfaces/pbkdf2-consts.d.ts +0 -9
  245. package/dist/interfaces/pbkdf2-consts.d.ts.map +0 -1
  246. package/dist/interfaces/pbkdf2-consts.js +0 -3
  247. package/dist/interfaces/pbkdf2-consts.js.map +0 -1
  248. package/dist/interfaces/pbkdf2-result.d.ts +0 -6
  249. package/dist/interfaces/pbkdf2-result.d.ts.map +0 -1
  250. package/dist/interfaces/pbkdf2-result.js +0 -3
  251. package/dist/interfaces/pbkdf2-result.js.map +0 -1
  252. package/dist/member.d.ts +0 -66
  253. package/dist/member.d.ts.map +0 -1
  254. package/dist/member.js +0 -271
  255. package/dist/member.js.map +0 -1
  256. package/dist/pbkdf2-profiles.d.ts.map +0 -1
  257. package/dist/pbkdf2-profiles.js +0 -3
  258. package/dist/pbkdf2-profiles.js.map +0 -1
  259. package/dist/phone-number.d.ts +0 -6
  260. package/dist/phone-number.d.ts.map +0 -1
  261. package/dist/phone-number.js +0 -22
  262. package/dist/phone-number.js.map +0 -1
  263. package/dist/regexes.d.ts +0 -7
  264. package/dist/regexes.d.ts.map +0 -1
  265. package/dist/regexes.js +0 -10
  266. package/dist/regexes.js.map +0 -1
  267. package/dist/secure-buffer.d.ts +0 -38
  268. package/dist/secure-buffer.d.ts.map +0 -1
  269. package/dist/secure-buffer.js +0 -168
  270. package/dist/secure-buffer.js.map +0 -1
  271. package/dist/secure-string.d.ts +0 -39
  272. package/dist/secure-string.d.ts.map +0 -1
  273. package/dist/secure-string.js +0 -195
  274. package/dist/secure-string.js.map +0 -1
  275. package/dist/services/aes-gcm.d.ts +0 -57
  276. package/dist/services/aes-gcm.d.ts.map +0 -1
  277. package/dist/services/aes-gcm.js +0 -111
  278. package/dist/services/aes-gcm.js.map +0 -1
  279. package/dist/services/ecies/crypto-core.d.ts +0 -51
  280. package/dist/services/ecies/crypto-core.d.ts.map +0 -1
  281. package/dist/services/ecies/crypto-core.js +0 -139
  282. package/dist/services/ecies/crypto-core.js.map +0 -1
  283. package/dist/services/ecies/example.d.ts +0 -25
  284. package/dist/services/ecies/example.d.ts.map +0 -1
  285. package/dist/services/ecies/example.js +0 -128
  286. package/dist/services/ecies/example.js.map +0 -1
  287. package/dist/services/ecies/file.d.ts +0 -18
  288. package/dist/services/ecies/file.d.ts.map +0 -1
  289. package/dist/services/ecies/file.js +0 -110
  290. package/dist/services/ecies/file.js.map +0 -1
  291. package/dist/services/ecies/index.d.ts.map +0 -1
  292. package/dist/services/ecies/index.js +0 -57
  293. package/dist/services/ecies/index.js.map +0 -1
  294. package/dist/services/ecies/integration.d.ts +0 -59
  295. package/dist/services/ecies/integration.d.ts.map +0 -1
  296. package/dist/services/ecies/integration.js +0 -172
  297. package/dist/services/ecies/integration.js.map +0 -1
  298. package/dist/services/ecies/interfaces.d.ts +0 -51
  299. package/dist/services/ecies/interfaces.d.ts.map +0 -1
  300. package/dist/services/ecies/interfaces.js +0 -6
  301. package/dist/services/ecies/interfaces.js.map +0 -1
  302. package/dist/services/ecies/manual-test.d.ts +0 -29
  303. package/dist/services/ecies/manual-test.d.ts.map +0 -1
  304. package/dist/services/ecies/manual-test.js +0 -171
  305. package/dist/services/ecies/manual-test.js.map +0 -1
  306. package/dist/services/ecies/multi-recipient.d.ts +0 -52
  307. package/dist/services/ecies/multi-recipient.d.ts.map +0 -1
  308. package/dist/services/ecies/multi-recipient.js +0 -243
  309. package/dist/services/ecies/multi-recipient.js.map +0 -1
  310. package/dist/services/ecies/service.d.ts +0 -104
  311. package/dist/services/ecies/service.d.ts.map +0 -1
  312. package/dist/services/ecies/service.js +0 -192
  313. package/dist/services/ecies/service.js.map +0 -1
  314. package/dist/services/ecies/signature.d.ts +0 -27
  315. package/dist/services/ecies/signature.d.ts.map +0 -1
  316. package/dist/services/ecies/signature.js +0 -76
  317. package/dist/services/ecies/signature.js.map +0 -1
  318. package/dist/services/ecies/single-recipient.d.ts +0 -46
  319. package/dist/services/ecies/single-recipient.d.ts.map +0 -1
  320. package/dist/services/ecies/single-recipient.js +0 -212
  321. package/dist/services/ecies/single-recipient.js.map +0 -1
  322. package/dist/services/index.d.ts.map +0 -1
  323. package/dist/services/index.js +0 -22
  324. package/dist/services/index.js.map +0 -1
  325. package/dist/services/password-login.d.ts +0 -49
  326. package/dist/services/password-login.d.ts.map +0 -1
  327. package/dist/services/password-login.js +0 -121
  328. package/dist/services/password-login.js.map +0 -1
  329. package/dist/services/pbkdf2.d.ts +0 -56
  330. package/dist/services/pbkdf2.d.ts.map +0 -1
  331. package/dist/services/pbkdf2.js +0 -114
  332. package/dist/services/pbkdf2.js.map +0 -1
  333. package/dist/services/xor.d.ts +0 -37
  334. package/dist/services/xor.d.ts.map +0 -1
  335. package/dist/services/xor.js +0 -67
  336. package/dist/services/xor.js.map +0 -1
  337. package/dist/types/deep-partial.d.ts +0 -4
  338. package/dist/types/deep-partial.d.ts.map +0 -1
  339. package/dist/types/deep-partial.js +0 -3
  340. package/dist/types/deep-partial.js.map +0 -1
  341. package/dist/types.d.ts.map +0 -1
  342. package/dist/types.js +0 -3
  343. package/dist/types.js.map +0 -1
  344. package/dist/utils.d.ts +0 -68
  345. package/dist/utils.d.ts.map +0 -1
  346. package/dist/utils.js +0 -288
  347. package/dist/utils.js.map +0 -1
@@ -1,172 +0,0 @@
1
- "use strict";
2
- /**
3
- * Integration helpers for using the browser ECIES service with existing web-crypto functionality
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MigrationHelper = exports.EnhancedWebCryptoService = void 0;
7
- const i18n_setup_1 = require("../../i18n-setup");
8
- const utils_1 = require("../../utils");
9
- const service_1 = require("./service");
10
- const enumerations_1 = require("../../enumerations");
11
- /**
12
- * Enhanced web crypto service that uses the new ECIES implementation
13
- */
14
- class EnhancedWebCryptoService {
15
- ecies;
16
- constructor() {
17
- this.ecies = new service_1.ECIESService();
18
- }
19
- /**
20
- * Derive wallet from mnemonic using the new ECIES service
21
- * This replaces the existing walletFromMnemonic method with better browser compatibility
22
- */
23
- async walletFromMnemonic(mnemonic) {
24
- const { wallet, seed } = this.ecies.walletAndSeedFromMnemonic(mnemonic);
25
- return {
26
- wallet,
27
- seed,
28
- };
29
- }
30
- /**
31
- * Decrypt challenge using the new ECIES service
32
- * This provides better compatibility and error handling than the original implementation
33
- */
34
- async decryptChallenge(encryptedHex, privateKey) {
35
- try {
36
- const encryptedData = (0, utils_1.hexToUint8Array)(encryptedHex);
37
- // Try to decrypt using single mode first (most common)
38
- try {
39
- return await this.ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encryptedData);
40
- }
41
- catch {
42
- // Fallback to simple mode
43
- return await this.ecies.decryptSimpleOrSingleWithHeader(true, privateKey, encryptedData);
44
- }
45
- }
46
- catch (error) {
47
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
48
- throw new Error(engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_FailedToDecryptChallengeTemplate, { error: String(error) }));
49
- }
50
- }
51
- /**
52
- * Encrypt data for a recipient
53
- */
54
- async encryptForRecipient(recipientPublicKey, data, useSimpleMode = false) {
55
- const encrypted = await this.ecies.encryptSimpleOrSingle(!useSimpleMode, recipientPublicKey, data);
56
- return (0, utils_1.uint8ArrayToHex)(encrypted);
57
- }
58
- /**
59
- * Sign data with private key
60
- */
61
- signData(privateKey, data) {
62
- const signature = this.ecies.signMessage(privateKey, data);
63
- return (0, utils_1.uint8ArrayToHex)(signature);
64
- }
65
- /**
66
- * Verify signature
67
- */
68
- verifySignature(publicKey, data, signatureHex) {
69
- const signature = (0, utils_1.hexToUint8Array)(signatureHex);
70
- return this.ecies.verifyMessage(publicKey, data, signature);
71
- }
72
- /**
73
- * Generate new mnemonic
74
- */
75
- generateMnemonic() {
76
- return this.ecies.generateNewMnemonic();
77
- }
78
- /**
79
- * Complete client-side challenge verification (enhanced version)
80
- */
81
- async verifyChallengeResponse(encryptedChallenge, mnemonic, systemPublicKeyHex) {
82
- // Derive keys from mnemonic
83
- const { wallet } = await this.walletFromMnemonic(mnemonic);
84
- // Decrypt the challenge
85
- const decryptedPayload = await this.decryptChallenge(encryptedChallenge, wallet.getPrivateKey());
86
- // Extract nonce and signature (assuming 48 bytes payload + signature)
87
- const payload = decryptedPayload.slice(0, 48);
88
- const signature = decryptedPayload.slice(48);
89
- // Convert system public key from hex
90
- const systemPubKey = (0, utils_1.hexToUint8Array)(systemPublicKeyHex);
91
- // Verify system signature
92
- const isValid = this.verifySignature(systemPubKey, payload, (0, utils_1.uint8ArrayToHex)(signature));
93
- if (!isValid) {
94
- const engine = (0, i18n_setup_1.getEciesI18nEngine)();
95
- const error = engine.translate(i18n_setup_1.EciesComponentId, enumerations_1.EciesStringKey.Error_ECIESError_InvalidChallengeSignature);
96
- }
97
- return (0, utils_1.uint8ArrayToHex)(decryptedPayload);
98
- }
99
- }
100
- exports.EnhancedWebCryptoService = EnhancedWebCryptoService;
101
- /**
102
- * Migration helper to transition from old WebCryptoService to new ECIES service
103
- */
104
- class MigrationHelper {
105
- /**
106
- * Test compatibility between old and new implementations
107
- */
108
- static async testCompatibility(mnemonic) {
109
- try {
110
- const ecies = new service_1.ECIESService();
111
- const enhanced = new EnhancedWebCryptoService();
112
- // Test mnemonic validation
113
- let mnemonicValid = false;
114
- try {
115
- ecies.walletAndSeedFromMnemonic(mnemonic);
116
- mnemonicValid = true;
117
- }
118
- catch {
119
- mnemonicValid = false;
120
- }
121
- // Test key derivation
122
- let keysMatch = false;
123
- if (mnemonicValid) {
124
- try {
125
- const { wallet: wallet1 } = ecies.walletAndSeedFromMnemonic(mnemonic);
126
- const { wallet: wallet2 } = await enhanced.walletFromMnemonic(mnemonic);
127
- keysMatch =
128
- (0, utils_1.uint8ArrayToHex)(wallet1.getPrivateKey()) ===
129
- (0, utils_1.uint8ArrayToHex)(wallet2.getPrivateKey());
130
- }
131
- catch {
132
- keysMatch = false;
133
- }
134
- }
135
- // Test encryption roundtrip
136
- let encryptionWorks = false;
137
- if (keysMatch) {
138
- try {
139
- const { wallet } = await enhanced.walletFromMnemonic(mnemonic);
140
- const testMessage = (0, utils_1.stringToUint8Array)('Test message');
141
- const encrypted = await enhanced.encryptForRecipient(wallet.getPublicKey(), testMessage);
142
- const decrypted = await enhanced.decryptChallenge(encrypted, wallet.getPrivateKey());
143
- encryptionWorks =
144
- (0, utils_1.uint8ArrayToString)(testMessage) === (0, utils_1.uint8ArrayToString)(decrypted);
145
- }
146
- catch {
147
- encryptionWorks = false;
148
- }
149
- }
150
- return {
151
- compatible: mnemonicValid && keysMatch && encryptionWorks,
152
- details: {
153
- mnemonicValid,
154
- keysMatch,
155
- encryptionWorks,
156
- },
157
- };
158
- }
159
- catch {
160
- return {
161
- compatible: false,
162
- details: {
163
- mnemonicValid: false,
164
- keysMatch: false,
165
- encryptionWorks: false,
166
- },
167
- };
168
- }
169
- }
170
- }
171
- exports.MigrationHelper = MigrationHelper;
172
- //# sourceMappingURL=integration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration.js","sourceRoot":"","sources":["../../../src/services/ecies/integration.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Browser-compatible ECIES interfaces
3
- */
4
- import { Wallet } from '@ethereumjs/wallet';
5
- import { EciesEncryptionTypeEnum } from '../../enumerations/ecies-encryption-type';
6
- export interface ISimpleKeyPair {
7
- privateKey: Uint8Array;
8
- publicKey: Uint8Array;
9
- }
10
- export interface IWalletSeed {
11
- wallet: Wallet;
12
- seed: Uint8Array;
13
- }
14
- export interface ISingleEncryptedParsedHeader {
15
- encryptionType: EciesEncryptionTypeEnum;
16
- ephemeralPublicKey: Uint8Array;
17
- iv: Uint8Array;
18
- authTag: Uint8Array;
19
- dataLength: number;
20
- headerSize: number;
21
- }
22
- export interface IEncryptionResult {
23
- encryptedData: Uint8Array;
24
- ephemeralPublicKey: Uint8Array;
25
- iv: Uint8Array;
26
- authTag: Uint8Array;
27
- }
28
- export interface IDecryptionResult {
29
- decrypted: Uint8Array;
30
- consumedBytes: number;
31
- }
32
- export interface IMultiRecipient {
33
- id: Uint8Array;
34
- publicKey: Uint8Array;
35
- }
36
- export interface IMultiEncryptedMessage {
37
- dataLength: number;
38
- recipientCount: number;
39
- recipientIds: Uint8Array[];
40
- recipientKeys: Uint8Array[];
41
- encryptedMessage: Uint8Array;
42
- headerSize: number;
43
- }
44
- export interface IMultiEncryptedParsedHeader {
45
- dataLength: number;
46
- recipientCount: number;
47
- recipientIds: Uint8Array[];
48
- recipientKeys: Uint8Array[];
49
- headerSize: number;
50
- }
51
- //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/interfaces.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,uBAAuB,CAAC;IACxC,kBAAkB,EAAE,UAAU,CAAC;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,UAAU,CAAC;IAC1B,kBAAkB,EAAE,UAAU,CAAC;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,UAAU,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- /**
3
- * Browser-compatible ECIES interfaces
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/services/ecies/interfaces.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Simple integration tests for the browser ECIES service
3
- * These tests can be run in the browser console to verify functionality
4
- */
5
- /**
6
- * Test basic encryption/decryption roundtrip
7
- */
8
- export declare function testBasicEncryption(): Promise<boolean>;
9
- /**
10
- * Test simple mode encryption
11
- */
12
- export declare function testSimpleEncryption(): Promise<boolean>;
13
- /**
14
- * Test signature operations
15
- */
16
- export declare function testSignatures(): Promise<boolean>;
17
- /**
18
- * Test mnemonic validation
19
- */
20
- export declare function testMnemonicValidation(): Promise<boolean>;
21
- /**
22
- * Test cross-party encryption (Alice encrypts for Bob)
23
- */
24
- export declare function testCrossPartyEncryption(): Promise<boolean>;
25
- /**
26
- * Run all tests
27
- */
28
- export declare function runAllTests(): Promise<void>;
29
- //# sourceMappingURL=manual-test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manual-test.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/manual-test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAuB5D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAuB7D;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAmBvD;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CA6B/D;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CA4CjE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAuCjD"}
@@ -1,171 +0,0 @@
1
- "use strict";
2
- /**
3
- * Simple integration tests for the browser ECIES service
4
- * These tests can be run in the browser console to verify functionality
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.testBasicEncryption = testBasicEncryption;
8
- exports.testSimpleEncryption = testSimpleEncryption;
9
- exports.testSignatures = testSignatures;
10
- exports.testMnemonicValidation = testMnemonicValidation;
11
- exports.testCrossPartyEncryption = testCrossPartyEncryption;
12
- exports.runAllTests = runAllTests;
13
- const secure_string_1 = require("../../secure-string");
14
- const utils_1 = require("../../utils");
15
- const service_1 = require("./service");
16
- /**
17
- * Test basic encryption/decryption roundtrip
18
- */
19
- async function testBasicEncryption() {
20
- try {
21
- const ecies = new service_1.ECIESService();
22
- const mnemonic = ecies.generateNewMnemonic();
23
- const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
24
- const message = (0, utils_1.stringToUint8Array)('Test message');
25
- const encrypted = await ecies.encryptSimpleOrSingle(false, publicKey, message);
26
- const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, privateKey, encrypted);
27
- return (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
28
- }
29
- catch (error) {
30
- console.error('Basic encryption test failed:', error);
31
- return false;
32
- }
33
- }
34
- /**
35
- * Test simple mode encryption
36
- */
37
- async function testSimpleEncryption() {
38
- try {
39
- const ecies = new service_1.ECIESService();
40
- const mnemonic = ecies.generateNewMnemonic();
41
- const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
42
- const message = (0, utils_1.stringToUint8Array)('Simple test message');
43
- const encrypted = await ecies.encryptSimpleOrSingle(true, publicKey, message);
44
- const decrypted = await ecies.decryptSimpleOrSingleWithHeader(true, privateKey, encrypted);
45
- return (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
46
- }
47
- catch (error) {
48
- console.error('Simple encryption test failed:', error);
49
- return false;
50
- }
51
- }
52
- /**
53
- * Test signature operations
54
- */
55
- async function testSignatures() {
56
- try {
57
- const ecies = new service_1.ECIESService();
58
- const mnemonic = ecies.generateNewMnemonic();
59
- const { privateKey, publicKey } = ecies.mnemonicToSimpleKeyPair(mnemonic);
60
- const message = (0, utils_1.stringToUint8Array)('Message to sign');
61
- const signature = ecies.signMessage(privateKey, message);
62
- const isValid = ecies.verifyMessage(publicKey, message, signature);
63
- // Test with wrong message
64
- const wrongMessage = (0, utils_1.stringToUint8Array)('Wrong message');
65
- const isInvalid = ecies.verifyMessage(publicKey, wrongMessage, signature);
66
- return isValid && !isInvalid;
67
- }
68
- catch (error) {
69
- console.error('Signature test failed:', error);
70
- return false;
71
- }
72
- }
73
- /**
74
- * Test mnemonic validation
75
- */
76
- async function testMnemonicValidation() {
77
- try {
78
- const ecies = new service_1.ECIESService();
79
- // Test valid mnemonic
80
- const validMnemonic = new secure_string_1.SecureString('abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about');
81
- const { wallet: wallet1 } = ecies.walletAndSeedFromMnemonic(validMnemonic);
82
- const { wallet: wallet2 } = ecies.walletAndSeedFromMnemonic(validMnemonic);
83
- // Should produce same keys
84
- const sameKeys = (0, utils_1.uint8ArrayToHex)(wallet1.getPrivateKey()) ===
85
- (0, utils_1.uint8ArrayToHex)(wallet2.getPrivateKey());
86
- // Test invalid mnemonic
87
- try {
88
- ecies.walletAndSeedFromMnemonic(new secure_string_1.SecureString('invalid mnemonic phrase'));
89
- return false; // Should have thrown
90
- }
91
- catch {
92
- return sameKeys; // Expected to throw
93
- }
94
- }
95
- catch (error) {
96
- console.error('Mnemonic validation test failed:', error);
97
- return false;
98
- }
99
- }
100
- /**
101
- * Test cross-party encryption (Alice encrypts for Bob)
102
- */
103
- async function testCrossPartyEncryption() {
104
- try {
105
- const ecies = new service_1.ECIESService();
106
- // Alice generates her keys
107
- const aliceMnemonic = ecies.generateNewMnemonic();
108
- const aliceKeys = ecies.mnemonicToSimpleKeyPair(aliceMnemonic);
109
- // Bob generates his keys
110
- const bobMnemonic = ecies.generateNewMnemonic();
111
- const bobKeys = ecies.mnemonicToSimpleKeyPair(bobMnemonic);
112
- // Alice encrypts a message for Bob
113
- const message = (0, utils_1.stringToUint8Array)('Secret message from Alice to Bob');
114
- const encrypted = await ecies.encryptSimpleOrSingle(false, bobKeys.publicKey, message);
115
- // Bob decrypts the message
116
- const decrypted = await ecies.decryptSimpleOrSingleWithHeader(false, bobKeys.privateKey, encrypted);
117
- // Alice should not be able to decrypt (wrong private key)
118
- try {
119
- await ecies.decryptSimpleOrSingleWithHeader(false, aliceKeys.privateKey, encrypted);
120
- return false; // Should have failed
121
- }
122
- catch {
123
- // Expected to fail
124
- }
125
- return (0, utils_1.uint8ArrayToString)(message) === (0, utils_1.uint8ArrayToString)(decrypted);
126
- }
127
- catch (error) {
128
- console.error('Cross-party encryption test failed:', error);
129
- return false;
130
- }
131
- }
132
- /**
133
- * Run all tests
134
- */
135
- async function runAllTests() {
136
- console.log('Running browser ECIES service tests...\n');
137
- const tests = [
138
- { name: 'Basic Encryption', test: testBasicEncryption },
139
- { name: 'Simple Encryption', test: testSimpleEncryption },
140
- { name: 'Digital Signatures', test: testSignatures },
141
- { name: 'Mnemonic Validation', test: testMnemonicValidation },
142
- { name: 'Cross-Party Encryption', test: testCrossPartyEncryption },
143
- ];
144
- let passed = 0;
145
- let failed = 0;
146
- for (const { name, test } of tests) {
147
- try {
148
- const result = await test();
149
- if (result) {
150
- console.log(`✅ ${name}: PASSED`);
151
- passed++;
152
- }
153
- else {
154
- console.log(`❌ ${name}: FAILED`);
155
- failed++;
156
- }
157
- }
158
- catch (error) {
159
- console.log(`❌ ${name}: ERROR - ${error}`);
160
- failed++;
161
- }
162
- }
163
- console.log(`\nTest Results: ${passed} passed, ${failed} failed`);
164
- if (failed === 0) {
165
- console.log('🎉 All tests passed! The browser ECIES service is working correctly.');
166
- }
167
- else {
168
- console.log('⚠️ Some tests failed. Please check the implementation.');
169
- }
170
- }
171
- //# sourceMappingURL=manual-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manual-test.js","sourceRoot":"","sources":["../../../src/services/ecies/manual-test.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import { IECIESConstants } from '../../interfaces/ecies-consts';
2
- import { IECIESConfig } from '../../interfaces/ecies-config';
3
- import { EciesCryptoCore } from './crypto-core';
4
- import { IMultiEncryptedMessage, IMultiEncryptedParsedHeader, IMultiRecipient } from './interfaces';
5
- /**
6
- * Browser-compatible multi-recipient ECIES encryption/decryption
7
- */
8
- export declare class EciesMultiRecipient {
9
- protected readonly cryptoCore: EciesCryptoCore;
10
- protected readonly eciesConsts: IECIESConstants;
11
- constructor(config: IECIESConfig, eciesParams?: IECIESConstants);
12
- /**
13
- * Get the header size for multi-recipient encryption
14
- */
15
- getHeaderSize(recipientCount: number): number;
16
- /**
17
- * Encrypt a message symmetric key with a public key
18
- * @param receiverPublicKey The public key of the receiver
19
- * @param messageSymmetricKey The message to encrypt
20
- * @returns The encrypted message
21
- */
22
- encryptKey(receiverPublicKey: Uint8Array, messageSymmetricKey: Uint8Array): Promise<Uint8Array>;
23
- /**
24
- * Decrypts symmetric key encrypted with ECIES
25
- * @param privateKey The private key to decrypt the data
26
- * @param encryptedKey The data to decrypt
27
- * @returns The decrypted data buffer
28
- */
29
- decryptKey(privateKey: Uint8Array, encryptedKey: Uint8Array): Promise<Uint8Array>;
30
- /**
31
- * Encrypt a message for multiple recipients
32
- */
33
- encryptMultiple(recipients: IMultiRecipient[], message: Uint8Array, preamble?: Uint8Array): Promise<IMultiEncryptedMessage>;
34
- /**
35
- * Decrypt a multi-recipient message for a specific recipient
36
- */
37
- decryptMultipleForRecipient(encryptedData: IMultiEncryptedMessage, recipientId: Uint8Array, privateKey: Uint8Array): Promise<Uint8Array>;
38
- /**
39
- * Build header for multi-recipient message
40
- */
41
- buildHeader(data: IMultiEncryptedMessage): Uint8Array;
42
- /**
43
- * Parse multi-recipient header
44
- */
45
- parseHeader(data: Uint8Array): IMultiEncryptedParsedHeader;
46
- /**
47
- * Parse complete multi-recipient message
48
- */
49
- parseMessage(data: Uint8Array): IMultiEncryptedMessage;
50
- private arraysEqual;
51
- }
52
- //# sourceMappingURL=multi-recipient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-recipient.d.ts","sourceRoot":"","sources":["../../../src/services/ecies/multi-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EAChB,MAAM,cAAc,CAAC;AAItB;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAEpC,MAAM,EAAE,YAAY,EAAE,WAAW,GAAE,eAAiC;IAKhF;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IASpD;;;;;OAKG;IACU,UAAU,CACrB,iBAAiB,EAAE,UAAU,EAC7B,mBAAmB,EAAE,UAAU,GAC9B,OAAO,CAAC,UAAU,CAAC;IA+BtB;;;;;OAKG;IACU,UAAU,CACrB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;IAoDtB;;OAEG;IACU,eAAe,CAC1B,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,EAAE,UAAU,EACnB,QAAQ,GAAE,UAA8B,GACvC,OAAO,CAAC,sBAAsB,CAAC;IA6DlC;;OAEG;IACU,2BAA2B,CACtC,aAAa,EAAE,sBAAsB,EACrC,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,CAAC;IAyDtB;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,sBAAsB,GAAG,UAAU;IAyC5D;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,2BAA2B;IAuDjE;;OAEG;IACI,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,sBAAsB;IAU7D,OAAO,CAAC,WAAW;CAOpB"}