@digitaldefiance/node-ecies-lib 4.4.9 → 4.4.12

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 (385) hide show
  1. package/package.json +6 -5
  2. package/src/builders/ecies-builder.d.ts +11 -0
  3. package/src/builders/ecies-builder.d.ts.map +1 -0
  4. package/src/builders/ecies-builder.js +26 -0
  5. package/src/builders/ecies-builder.js.map +1 -0
  6. package/src/builders/{index.ts → index.d.ts} +1 -0
  7. package/src/builders/index.d.ts.map +1 -0
  8. package/src/builders/index.js +6 -0
  9. package/src/builders/index.js.map +1 -0
  10. package/src/builders/member-builder.d.ts +47 -0
  11. package/src/builders/member-builder.d.ts.map +1 -0
  12. package/src/builders/member-builder.js +99 -0
  13. package/src/builders/member-builder.js.map +1 -0
  14. package/src/constants.d.ts +38 -0
  15. package/src/constants.d.ts.map +1 -0
  16. package/src/constants.js +191 -0
  17. package/src/constants.js.map +1 -0
  18. package/src/core/errors/crypto-error.d.ts +6 -0
  19. package/src/core/errors/crypto-error.d.ts.map +1 -0
  20. package/src/core/errors/crypto-error.js +15 -0
  21. package/src/core/errors/crypto-error.js.map +1 -0
  22. package/src/core/{index.ts → index.d.ts} +1 -0
  23. package/src/core/index.d.ts.map +1 -0
  24. package/src/core/index.js +6 -0
  25. package/src/core/index.js.map +1 -0
  26. package/src/core/types/result.d.ts +8 -0
  27. package/src/core/types/result.d.ts.map +1 -0
  28. package/src/core/types/result.js +3 -0
  29. package/src/core/types/result.js.map +1 -0
  30. package/src/enumerations/index.d.ts +2 -0
  31. package/src/enumerations/index.d.ts.map +1 -0
  32. package/src/enumerations/index.js +5 -0
  33. package/src/enumerations/index.js.map +1 -0
  34. package/src/enumerations/pbkdf2-profile.d.ts +9 -0
  35. package/src/enumerations/pbkdf2-profile.d.ts.map +1 -0
  36. package/src/enumerations/pbkdf2-profile.js +13 -0
  37. package/src/enumerations/pbkdf2-profile.js.map +1 -0
  38. package/src/i18n/ecies-i18n-factory.d.ts +28 -0
  39. package/src/i18n/ecies-i18n-factory.d.ts.map +1 -0
  40. package/src/i18n/ecies-i18n-factory.js +89 -0
  41. package/src/i18n/ecies-i18n-factory.js.map +1 -0
  42. package/src/i18n/{index.ts → index.d.ts} +1 -3
  43. package/src/i18n/index.d.ts.map +1 -0
  44. package/src/i18n/index.js +8 -0
  45. package/src/i18n/index.js.map +1 -0
  46. package/src/i18n/node-ecies-i18n-setup.d.ts +5 -0
  47. package/src/i18n/node-ecies-i18n-setup.d.ts.map +1 -0
  48. package/src/i18n/node-ecies-i18n-setup.js +46 -0
  49. package/src/i18n/node-ecies-i18n-setup.js.map +1 -0
  50. package/src/i18n/node-keys.d.ts +57 -0
  51. package/src/i18n/node-keys.d.ts.map +1 -0
  52. package/src/i18n/node-keys.js +67 -0
  53. package/src/i18n/node-keys.js.map +1 -0
  54. package/src/i18n/translations/de.d.ts +3 -0
  55. package/src/i18n/translations/de.d.ts.map +1 -0
  56. package/src/i18n/translations/de.js +57 -0
  57. package/src/i18n/translations/de.js.map +1 -0
  58. package/src/i18n/translations/en-GB.d.ts +3 -0
  59. package/src/i18n/translations/en-GB.d.ts.map +1 -0
  60. package/src/i18n/translations/en-GB.js +61 -0
  61. package/src/i18n/translations/en-GB.js.map +1 -0
  62. package/src/i18n/translations/en-US.d.ts +6 -0
  63. package/src/i18n/translations/en-US.d.ts.map +1 -0
  64. package/src/i18n/translations/en-US.js +65 -0
  65. package/src/i18n/translations/en-US.js.map +1 -0
  66. package/src/i18n/translations/es.d.ts +3 -0
  67. package/src/i18n/translations/es.d.ts.map +1 -0
  68. package/src/i18n/translations/es.js +57 -0
  69. package/src/i18n/translations/es.js.map +1 -0
  70. package/src/i18n/translations/fr.d.ts +3 -0
  71. package/src/i18n/translations/fr.d.ts.map +1 -0
  72. package/src/i18n/translations/fr.js +57 -0
  73. package/src/i18n/translations/fr.js.map +1 -0
  74. package/src/i18n/translations/{index.ts → index.d.ts} +1 -0
  75. package/src/i18n/translations/index.d.ts.map +1 -0
  76. package/src/i18n/translations/index.js +20 -0
  77. package/src/i18n/translations/index.js.map +1 -0
  78. package/src/i18n/translations/ja.d.ts +3 -0
  79. package/src/i18n/translations/ja.d.ts.map +1 -0
  80. package/src/i18n/translations/ja.js +57 -0
  81. package/src/i18n/translations/ja.js.map +1 -0
  82. package/src/i18n/translations/uk.d.ts +3 -0
  83. package/src/i18n/translations/uk.d.ts.map +1 -0
  84. package/src/i18n/translations/uk.js +57 -0
  85. package/src/i18n/translations/uk.js.map +1 -0
  86. package/src/i18n/translations/zh-cn.d.ts +3 -0
  87. package/src/i18n/translations/zh-cn.d.ts.map +1 -0
  88. package/src/i18n/translations/zh-cn.js +57 -0
  89. package/src/i18n/translations/zh-cn.js.map +1 -0
  90. package/src/{index.ts → index.d.ts} +1 -5
  91. package/src/index.d.ts.map +1 -0
  92. package/src/index.js +31 -0
  93. package/src/index.js.map +1 -0
  94. package/src/interfaces/authenticated-cipher.d.ts +12 -0
  95. package/src/interfaces/authenticated-cipher.d.ts.map +1 -0
  96. package/src/interfaces/authenticated-cipher.js +3 -0
  97. package/src/interfaces/authenticated-cipher.js.map +1 -0
  98. package/src/interfaces/authenticated-decipher.d.ts +11 -0
  99. package/src/interfaces/authenticated-decipher.d.ts.map +1 -0
  100. package/src/interfaces/authenticated-decipher.js +3 -0
  101. package/src/interfaces/authenticated-decipher.js.map +1 -0
  102. package/src/interfaces/backend-member-operational.d.ts +48 -0
  103. package/src/interfaces/backend-member-operational.d.ts.map +1 -0
  104. package/src/interfaces/backend-member-operational.js +3 -0
  105. package/src/interfaces/backend-member-operational.js.map +1 -0
  106. package/src/interfaces/checksum-config.d.ts +5 -0
  107. package/src/interfaces/checksum-config.d.ts.map +1 -0
  108. package/src/interfaces/checksum-config.js +3 -0
  109. package/src/interfaces/checksum-config.js.map +1 -0
  110. package/src/interfaces/checksum-consts.d.ts +11 -0
  111. package/src/interfaces/checksum-consts.d.ts.map +1 -0
  112. package/src/interfaces/checksum-consts.js +3 -0
  113. package/src/interfaces/checksum-consts.js.map +1 -0
  114. package/src/interfaces/constants.d.ts +52 -0
  115. package/src/interfaces/constants.d.ts.map +1 -0
  116. package/src/interfaces/constants.js +3 -0
  117. package/src/interfaces/constants.js.map +1 -0
  118. package/src/interfaces/ecies-consts.d.ts +88 -0
  119. package/src/interfaces/ecies-consts.d.ts.map +1 -0
  120. package/src/interfaces/ecies-consts.js +3 -0
  121. package/src/interfaces/ecies-consts.js.map +1 -0
  122. package/src/interfaces/encrypted-chunk.d.ts +12 -0
  123. package/src/interfaces/encrypted-chunk.d.ts.map +1 -0
  124. package/src/interfaces/encrypted-chunk.js +3 -0
  125. package/src/interfaces/encrypted-chunk.js.map +1 -0
  126. package/src/interfaces/encryption-consts.d.ts +11 -0
  127. package/src/interfaces/encryption-consts.d.ts.map +1 -0
  128. package/src/interfaces/encryption-consts.js +3 -0
  129. package/src/interfaces/encryption-consts.js.map +1 -0
  130. package/src/interfaces/{index.ts → index.d.ts} +1 -0
  131. package/src/interfaces/index.d.ts.map +1 -0
  132. package/src/interfaces/index.js +30 -0
  133. package/src/interfaces/index.js.map +1 -0
  134. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts +6 -0
  135. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.d.ts.map +1 -0
  136. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js +3 -0
  137. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.js.map +1 -0
  138. package/src/interfaces/keyring-consts.d.ts +6 -0
  139. package/src/interfaces/keyring-consts.d.ts.map +1 -0
  140. package/src/interfaces/keyring-consts.js +3 -0
  141. package/src/interfaces/keyring-consts.js.map +1 -0
  142. package/src/interfaces/{member-with-mnemonic.ts → member-with-mnemonic.d.ts} +3 -3
  143. package/src/interfaces/member-with-mnemonic.d.ts.map +1 -0
  144. package/src/interfaces/member-with-mnemonic.js +3 -0
  145. package/src/interfaces/member-with-mnemonic.js.map +1 -0
  146. package/src/interfaces/member.d.ts +47 -0
  147. package/src/interfaces/member.d.ts.map +1 -0
  148. package/src/interfaces/member.js +3 -0
  149. package/src/interfaces/member.js.map +1 -0
  150. package/src/interfaces/{multi-encrypted-message.ts → multi-encrypted-message.d.ts} +5 -5
  151. package/src/interfaces/multi-encrypted-message.d.ts.map +1 -0
  152. package/src/interfaces/multi-encrypted-message.js +3 -0
  153. package/src/interfaces/multi-encrypted-message.js.map +1 -0
  154. package/src/interfaces/multi-encrypted-parsed-header.d.ts +27 -0
  155. package/src/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
  156. package/src/interfaces/multi-encrypted-parsed-header.js +3 -0
  157. package/src/interfaces/multi-encrypted-parsed-header.js.map +1 -0
  158. package/src/interfaces/multi-recipient-chunk.d.ts +26 -0
  159. package/src/interfaces/multi-recipient-chunk.d.ts.map +1 -0
  160. package/src/interfaces/multi-recipient-chunk.js +13 -0
  161. package/src/interfaces/multi-recipient-chunk.js.map +1 -0
  162. package/src/interfaces/{pbkdf-profiles.ts → pbkdf-profiles.d.ts} +2 -2
  163. package/src/interfaces/pbkdf-profiles.d.ts.map +1 -0
  164. package/src/interfaces/pbkdf-profiles.js +3 -0
  165. package/src/interfaces/pbkdf-profiles.js.map +1 -0
  166. package/src/interfaces/pbkdf2-result.d.ts +6 -0
  167. package/src/interfaces/pbkdf2-result.d.ts.map +1 -0
  168. package/src/interfaces/pbkdf2-result.js +3 -0
  169. package/src/interfaces/pbkdf2-result.js.map +1 -0
  170. package/src/interfaces/signing-key-private-key-info.d.ts +11 -0
  171. package/src/interfaces/signing-key-private-key-info.d.ts.map +1 -0
  172. package/src/interfaces/signing-key-private-key-info.js +3 -0
  173. package/src/interfaces/signing-key-private-key-info.js.map +1 -0
  174. package/src/interfaces/{simple-keypair-buffer.ts → simple-keypair-buffer.d.ts} +3 -3
  175. package/src/interfaces/simple-keypair-buffer.d.ts.map +1 -0
  176. package/src/interfaces/simple-keypair-buffer.js +3 -0
  177. package/src/interfaces/simple-keypair-buffer.js.map +1 -0
  178. package/src/interfaces/{simple-keypair.ts → simple-keypair.d.ts} +3 -3
  179. package/src/interfaces/simple-keypair.d.ts.map +1 -0
  180. package/src/interfaces/simple-keypair.js +3 -0
  181. package/src/interfaces/simple-keypair.js.map +1 -0
  182. package/src/interfaces/simple-public-key-only-buffer.d.ts +4 -0
  183. package/src/interfaces/simple-public-key-only-buffer.d.ts.map +1 -0
  184. package/src/interfaces/simple-public-key-only-buffer.js +3 -0
  185. package/src/interfaces/simple-public-key-only-buffer.js.map +1 -0
  186. package/src/interfaces/simple-public-key-only.d.ts +4 -0
  187. package/src/interfaces/simple-public-key-only.d.ts.map +1 -0
  188. package/src/interfaces/simple-public-key-only.js +3 -0
  189. package/src/interfaces/simple-public-key-only.js.map +1 -0
  190. package/src/interfaces/single-encrypted-parsed-header.d.ts +35 -0
  191. package/src/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
  192. package/src/interfaces/single-encrypted-parsed-header.js +3 -0
  193. package/src/interfaces/single-encrypted-parsed-header.js.map +1 -0
  194. package/src/interfaces/stream-config.d.ts +6 -0
  195. package/src/interfaces/stream-config.d.ts.map +1 -0
  196. package/src/interfaces/stream-config.js +8 -0
  197. package/src/interfaces/stream-config.js.map +1 -0
  198. package/src/interfaces/stream-progress.d.ts +8 -0
  199. package/src/interfaces/stream-progress.d.ts.map +1 -0
  200. package/src/interfaces/stream-progress.js +3 -0
  201. package/src/interfaces/stream-progress.js.map +1 -0
  202. package/src/interfaces/{wallet-seed.ts → wallet-seed.d.ts} +3 -3
  203. package/src/interfaces/wallet-seed.d.ts.map +1 -0
  204. package/src/interfaces/wallet-seed.js +3 -0
  205. package/src/interfaces/wallet-seed.js.map +1 -0
  206. package/src/interfaces/wrapped-key-consts.d.ts +7 -0
  207. package/src/interfaces/wrapped-key-consts.d.ts.map +1 -0
  208. package/src/interfaces/wrapped-key-consts.js +3 -0
  209. package/src/interfaces/wrapped-key-consts.js.map +1 -0
  210. package/src/lib/crypto-container.d.ts +13 -0
  211. package/src/lib/crypto-container.d.ts.map +1 -0
  212. package/src/lib/crypto-container.js +29 -0
  213. package/src/lib/crypto-container.js.map +1 -0
  214. package/src/lib/{index.ts → index.d.ts} +1 -0
  215. package/src/lib/index.d.ts.map +1 -0
  216. package/src/lib/index.js +7 -0
  217. package/src/lib/index.js.map +1 -0
  218. package/src/lib/invariant-validator.d.ts +62 -0
  219. package/src/lib/invariant-validator.d.ts.map +1 -0
  220. package/src/lib/invariant-validator.js +108 -0
  221. package/src/lib/invariant-validator.js.map +1 -0
  222. package/src/lib/invariants/{index.ts → index.d.ts} +2 -2
  223. package/src/lib/invariants/index.d.ts.map +1 -0
  224. package/src/lib/invariants/index.js +12 -0
  225. package/src/lib/invariants/index.js.map +1 -0
  226. package/src/lib/invariants/recipient-id-consistency.d.ts +22 -0
  227. package/src/lib/invariants/recipient-id-consistency.d.ts.map +1 -0
  228. package/src/lib/invariants/recipient-id-consistency.js +62 -0
  229. package/src/lib/invariants/recipient-id-consistency.js.map +1 -0
  230. package/src/member.d.ts +81 -0
  231. package/src/member.d.ts.map +1 -0
  232. package/src/member.js +285 -0
  233. package/src/member.js.map +1 -0
  234. package/src/services/aes-gcm.d.ts +66 -0
  235. package/src/services/aes-gcm.d.ts.map +1 -0
  236. package/src/services/aes-gcm.js +158 -0
  237. package/src/services/aes-gcm.js.map +1 -0
  238. package/src/services/chunk-processor.d.ts +15 -0
  239. package/src/services/chunk-processor.d.ts.map +1 -0
  240. package/src/services/chunk-processor.js +36 -0
  241. package/src/services/chunk-processor.js.map +1 -0
  242. package/src/services/ecies/crypto-core.d.ts +104 -0
  243. package/src/services/ecies/crypto-core.d.ts.map +1 -0
  244. package/src/services/ecies/crypto-core.js +237 -0
  245. package/src/services/ecies/crypto-core.js.map +1 -0
  246. package/src/services/ecies/file.d.ts +30 -0
  247. package/src/services/ecies/file.d.ts.map +1 -0
  248. package/src/services/ecies/file.js +112 -0
  249. package/src/services/ecies/file.js.map +1 -0
  250. package/src/services/ecies/{index.ts → index.d.ts} +1 -0
  251. package/src/services/ecies/index.d.ts.map +1 -0
  252. package/src/services/ecies/index.js +11 -0
  253. package/src/services/ecies/index.js.map +1 -0
  254. package/src/services/ecies/multi-recipient.d.ts +84 -0
  255. package/src/services/ecies/multi-recipient.d.ts.map +1 -0
  256. package/src/services/ecies/multi-recipient.js +496 -0
  257. package/src/services/ecies/multi-recipient.js.map +1 -0
  258. package/src/services/ecies/service.d.ts +69 -0
  259. package/src/services/ecies/service.d.ts.map +1 -0
  260. package/src/services/ecies/service.js +144 -0
  261. package/src/services/ecies/service.js.map +1 -0
  262. package/src/services/ecies/signature.d.ts +38 -0
  263. package/src/services/ecies/signature.d.ts.map +1 -0
  264. package/src/services/ecies/signature.js +69 -0
  265. package/src/services/ecies/signature.js.map +1 -0
  266. package/src/services/ecies/single-recipient.d.ts +83 -0
  267. package/src/services/ecies/single-recipient.d.ts.map +1 -0
  268. package/src/services/ecies/single-recipient.js +447 -0
  269. package/src/services/ecies/single-recipient.js.map +1 -0
  270. package/src/services/ecies/utilities.d.ts +33 -0
  271. package/src/services/ecies/utilities.d.ts.map +1 -0
  272. package/src/services/ecies/utilities.js +91 -0
  273. package/src/services/ecies/utilities.js.map +1 -0
  274. package/src/services/encryption-stream.d.ts +33 -0
  275. package/src/services/encryption-stream.d.ts.map +1 -0
  276. package/src/services/encryption-stream.js +207 -0
  277. package/src/services/encryption-stream.js.map +1 -0
  278. package/src/services/{index.ts → index.d.ts} +1 -0
  279. package/src/services/index.d.ts.map +1 -0
  280. package/src/services/index.js +11 -0
  281. package/src/services/index.js.map +1 -0
  282. package/src/services/multi-recipient-processor.d.ts +72 -0
  283. package/src/services/multi-recipient-processor.d.ts.map +1 -0
  284. package/src/services/multi-recipient-processor.js +322 -0
  285. package/src/services/multi-recipient-processor.js.map +1 -0
  286. package/src/services/pbkdf2.d.ts +105 -0
  287. package/src/services/pbkdf2.d.ts.map +1 -0
  288. package/src/services/pbkdf2.js +189 -0
  289. package/src/services/pbkdf2.js.map +1 -0
  290. package/src/services/progress-tracker.d.ts +9 -0
  291. package/src/services/progress-tracker.d.ts.map +1 -0
  292. package/src/services/progress-tracker.js +41 -0
  293. package/src/services/progress-tracker.js.map +1 -0
  294. package/src/test-mocks/index.d.ts +2 -0
  295. package/src/test-mocks/index.d.ts.map +1 -0
  296. package/src/test-mocks/index.js +5 -0
  297. package/src/test-mocks/index.js.map +1 -0
  298. package/src/test-mocks/mock-backend-member.d.ts +71 -0
  299. package/src/test-mocks/mock-backend-member.d.ts.map +1 -0
  300. package/src/test-mocks/mock-backend-member.js +133 -0
  301. package/src/test-mocks/mock-backend-member.js.map +1 -0
  302. package/src/testing.d.ts +2 -0
  303. package/src/testing.d.ts.map +1 -0
  304. package/src/testing.js +6 -0
  305. package/src/testing.js.map +1 -0
  306. package/src/types/id-guards.d.ts +39 -0
  307. package/src/types/id-guards.d.ts.map +1 -0
  308. package/src/types/id-guards.js +91 -0
  309. package/src/types/id-guards.js.map +1 -0
  310. package/src/types/index.d.ts +2 -0
  311. package/src/types/index.d.ts.map +1 -0
  312. package/src/types/index.js +5 -0
  313. package/src/types/index.js.map +1 -0
  314. package/src/{types.ts → types.d.ts} +9 -28
  315. package/src/types.d.ts.map +1 -0
  316. package/src/types.js +6 -0
  317. package/src/types.js.map +1 -0
  318. package/src/utils.d.ts +11 -0
  319. package/src/utils.d.ts.map +1 -0
  320. package/src/utils.js +82 -0
  321. package/src/utils.js.map +1 -0
  322. package/LICENSE +0 -21
  323. package/src/builders/ecies-builder.ts +0 -27
  324. package/src/builders/member-builder.ts +0 -158
  325. package/src/constants.ts +0 -251
  326. package/src/core/errors/crypto-error.ts +0 -10
  327. package/src/core/types/result.ts +0 -3
  328. package/src/enumerations/index.ts +0 -2
  329. package/src/enumerations/pbkdf2-profile.ts +0 -8
  330. package/src/i18n/ecies-i18n-factory.ts +0 -111
  331. package/src/i18n/node-ecies-i18n-setup.ts +0 -56
  332. package/src/i18n/node-keys.ts +0 -69
  333. package/src/i18n/translations/de.ts +0 -54
  334. package/src/i18n/translations/en-GB.ts +0 -83
  335. package/src/i18n/translations/en-US.ts +0 -88
  336. package/src/i18n/translations/es.ts +0 -54
  337. package/src/i18n/translations/fr.ts +0 -54
  338. package/src/i18n/translations/ja.ts +0 -54
  339. package/src/i18n/translations/uk.ts +0 -54
  340. package/src/i18n/translations/zh-cn.ts +0 -54
  341. package/src/interfaces/authenticated-cipher.ts +0 -10
  342. package/src/interfaces/authenticated-decipher.ts +0 -9
  343. package/src/interfaces/backend-member-operational.ts +0 -75
  344. package/src/interfaces/checksum-config.ts +0 -4
  345. package/src/interfaces/checksum-consts.ts +0 -13
  346. package/src/interfaces/constants.ts +0 -54
  347. package/src/interfaces/ecies-consts.ts +0 -99
  348. package/src/interfaces/encrypted-chunk.ts +0 -12
  349. package/src/interfaces/encryption-consts.ts +0 -10
  350. package/src/interfaces/keypair-buffer-with-un-encrypted-private-key.ts +0 -7
  351. package/src/interfaces/keyring-consts.ts +0 -5
  352. package/src/interfaces/member.ts +0 -76
  353. package/src/interfaces/multi-encrypted-parsed-header.ts +0 -28
  354. package/src/interfaces/multi-recipient-chunk.ts +0 -35
  355. package/src/interfaces/pbkdf2-result.ts +0 -5
  356. package/src/interfaces/signing-key-private-key-info.ts +0 -12
  357. package/src/interfaces/simple-public-key-only-buffer.ts +0 -3
  358. package/src/interfaces/simple-public-key-only.ts +0 -3
  359. package/src/interfaces/single-encrypted-parsed-header.ts +0 -35
  360. package/src/interfaces/stream-config.ts +0 -9
  361. package/src/interfaces/stream-progress.ts +0 -7
  362. package/src/interfaces/wrapped-key-consts.ts +0 -6
  363. package/src/lib/crypto-container.ts +0 -32
  364. package/src/lib/invariant-validator.ts +0 -124
  365. package/src/lib/invariants/recipient-id-consistency.ts +0 -77
  366. package/src/member.ts +0 -511
  367. package/src/services/aes-gcm.ts +0 -260
  368. package/src/services/chunk-processor.ts +0 -47
  369. package/src/services/ecies/crypto-core.ts +0 -319
  370. package/src/services/ecies/file.ts +0 -171
  371. package/src/services/ecies/multi-recipient.ts +0 -782
  372. package/src/services/ecies/service.ts +0 -316
  373. package/src/services/ecies/signature.ts +0 -91
  374. package/src/services/ecies/single-recipient.ts +0 -743
  375. package/src/services/ecies/utilities.ts +0 -128
  376. package/src/services/encryption-stream.ts +0 -432
  377. package/src/services/multi-recipient-processor.ts +0 -505
  378. package/src/services/pbkdf2.ts +0 -304
  379. package/src/services/progress-tracker.ts +0 -43
  380. package/src/test-mocks/index.ts +0 -1
  381. package/src/test-mocks/mock-backend-member.ts +0 -195
  382. package/src/testing.ts +0 -2
  383. package/src/types/id-guards.ts +0 -91
  384. package/src/types/index.ts +0 -1
  385. package/src/utils.ts +0 -124
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ECIESService = void 0;
4
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
+ // Import all the modular components
6
+ const constants_1 = require("../../constants");
7
+ const crypto_core_1 = require("./crypto-core");
8
+ const multi_recipient_1 = require("./multi-recipient");
9
+ const signature_1 = require("./signature");
10
+ const single_recipient_1 = require("./single-recipient");
11
+ const utilities_1 = require("./utilities");
12
+ /**
13
+ * Unified ECIES service that integrates all the modular components
14
+ */
15
+ class ECIESService {
16
+ _config;
17
+ cryptoCore;
18
+ signature;
19
+ singleRecipient;
20
+ multiRecipient;
21
+ utilities;
22
+ constructor(config, eciesParams = constants_1.Constants.ECIES) {
23
+ const actualConfig = config || {};
24
+ const eciesConsts = eciesParams || constants_1.Constants.ECIES;
25
+ this._config = {
26
+ ...config,
27
+ curveName: eciesConsts.CURVE_NAME,
28
+ primaryKeyDerivationPath: eciesConsts.PRIMARY_KEY_DERIVATION_PATH,
29
+ mnemonicStrength: eciesConsts.MNEMONIC_STRENGTH,
30
+ symmetricAlgorithm: eciesConsts.SYMMETRIC.ALGORITHM,
31
+ symmetricKeyBits: eciesConsts.SYMMETRIC.KEY_BITS,
32
+ symmetricKeyMode: eciesConsts.SYMMETRIC.MODE,
33
+ ...actualConfig,
34
+ };
35
+ // Initialize all components
36
+ this.cryptoCore = new crypto_core_1.EciesCryptoCore(this._config, eciesParams);
37
+ this.signature = new signature_1.EciesSignature(this.cryptoCore);
38
+ this.singleRecipient = new single_recipient_1.EciesSingleRecipientCore(this._config);
39
+ this.multiRecipient = new multi_recipient_1.EciesMultiRecipient(this.cryptoCore);
40
+ this.utilities = new utilities_1.EciesUtilities();
41
+ }
42
+ get core() {
43
+ return this.cryptoCore;
44
+ }
45
+ get config() {
46
+ return this._config;
47
+ }
48
+ /**
49
+ * The name of the elliptic curve used for ECIES encryption/decryption
50
+ */
51
+ get curveName() {
52
+ return this._config.curveName;
53
+ }
54
+ // === Key Management Methods ===
55
+ generateNewMnemonic() {
56
+ return this.cryptoCore.generateNewMnemonic();
57
+ }
58
+ walletFromSeed(seed) {
59
+ return this.cryptoCore.walletFromSeed(seed);
60
+ }
61
+ walletAndSeedFromMnemonic(mnemonic) {
62
+ return this.cryptoCore.walletAndSeedFromMnemonic(mnemonic);
63
+ }
64
+ walletToSimpleKeyPairBuffer(wallet) {
65
+ return this.cryptoCore.walletToSimpleKeyPairBuffer(wallet);
66
+ }
67
+ seedToSimpleKeyPairBuffer(seed) {
68
+ return this.cryptoCore.seedToSimpleKeyPairBuffer(seed);
69
+ }
70
+ mnemonicToSimpleKeyPairBuffer(mnemonic) {
71
+ return this.cryptoCore.mnemonicToSimpleKeyPairBuffer(mnemonic);
72
+ }
73
+ mnemonicToSimpleKeyPair(mnemonic) {
74
+ return this.mnemonicToSimpleKeyPairBuffer(mnemonic);
75
+ }
76
+ // === Core Encryption/Decryption Methods ===
77
+ encryptSimpleOrSingle(encryptSimple, receiverPublicKey, message, preamble = Buffer.alloc(0)) {
78
+ return this.singleRecipient.encrypt(encryptSimple, receiverPublicKey, message, preamble);
79
+ }
80
+ parseSingleEncryptedHeader(encryptionType, data, preambleSize = 0, options) {
81
+ const { header } = this.singleRecipient.parseEncryptedMessage(encryptionType, data, preambleSize, options);
82
+ return header;
83
+ }
84
+ decryptSimpleOrSingleWithHeader(decryptSimple, privateKey, encryptedData, preambleSize = 0, options) {
85
+ return this.singleRecipient.decryptWithHeader(decryptSimple
86
+ ? ecies_lib_1.EciesEncryptionTypeEnum.Simple
87
+ : ecies_lib_1.EciesEncryptionTypeEnum.Single, privateKey, encryptedData, preambleSize, options);
88
+ }
89
+ decryptSimpleOrSingleWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize = 0, options) {
90
+ return this.singleRecipient.decryptWithHeaderEx(encryptionType, privateKey, encryptedData, preambleSize, options);
91
+ }
92
+ decryptSingleWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted, aad) {
93
+ const decrypted = this.singleRecipient.decryptWithComponents(privateKey, ephemeralPublicKey, iv, authTag, encrypted, aad);
94
+ // Return an object with a 'decrypted' property for compatibility with existing code
95
+ return { decrypted, ciphertextLength: encrypted.length };
96
+ }
97
+ // === Signature Methods ===
98
+ signMessage(privateKey, data) {
99
+ return this.signature.signMessage(privateKey, data);
100
+ }
101
+ verifyMessage(publicKey, data, signature) {
102
+ return this.signature.verifyMessage(publicKey, data, signature);
103
+ }
104
+ signatureStringToSignatureBuffer(signatureString) {
105
+ return this.signature.signatureStringToSignatureBuffer(signatureString);
106
+ }
107
+ signatureBufferToSignatureString(signatureBuffer) {
108
+ return this.signature.signatureBufferToSignatureString(signatureBuffer);
109
+ }
110
+ // === Multi-Recipient Methods ===
111
+ async encryptMultiple(recipients, message, preamble) {
112
+ return this.multiRecipient.encryptMultiple(recipients, message, preamble);
113
+ }
114
+ decryptMultipleECIEForRecipient(encryptedData, recipient) {
115
+ return this.multiRecipient.decryptMultipleECIEForRecipient(encryptedData, recipient);
116
+ }
117
+ calculateECIESMultipleRecipientOverhead(recipientCount, includeMessageOverhead) {
118
+ return this.multiRecipient.calculateECIESMultipleRecipientOverhead(recipientCount, includeMessageOverhead);
119
+ }
120
+ buildECIESMultipleRecipientHeader(data) {
121
+ return this.multiRecipient.buildECIESMultipleRecipientHeader(data);
122
+ }
123
+ parseMultiEncryptedHeader(data) {
124
+ return this.multiRecipient.parseMultiEncryptedHeader(data);
125
+ }
126
+ parseMultiEncryptedBuffer(data) {
127
+ return this.multiRecipient.parseMultiEncryptedBuffer(data);
128
+ }
129
+ // === Utility Methods ===
130
+ computeEncryptedLengthFromDataLength(dataLength, encryptionMode, recipientCount) {
131
+ return this.utilities.computeEncryptedLengthFromDataLength(dataLength, encryptionMode, recipientCount);
132
+ }
133
+ computeDecryptedLengthFromEncryptedDataLength(encryptedDataLength, padding) {
134
+ return this.utilities.computeDecryptedLengthFromEncryptedDataLength(encryptedDataLength, padding);
135
+ }
136
+ encrypt(encryptionType, recipient, message, preamble) {
137
+ if (encryptionType === 'multiple') {
138
+ throw new Error((0, ecies_lib_1.getEciesI18nEngine)().translate(ecies_lib_1.EciesComponentId, ecies_lib_1.EciesStringKey.Error_ECIESError_MultipleEncryptionTypeNotSupportedInSingleRecipientMode));
139
+ }
140
+ return this.singleRecipient.encrypt(encryptionType === 'simple', recipient.publicKey, message, preamble);
141
+ }
142
+ }
143
+ exports.ECIESService = ECIESService;
144
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { HexString } from '@digitaldefiance/ecies-lib';
2
+ import { SignatureBuffer, SignatureString } from '../../types';
3
+ import { EciesCryptoCore } from './crypto-core';
4
+ /**
5
+ * Signature-related functions for ECIES
6
+ */
7
+ export declare class EciesSignature {
8
+ private readonly cryptoCore;
9
+ constructor(cryptoCore: EciesCryptoCore);
10
+ /**
11
+ * Signs arbitrary binary data with the given private key.
12
+ * @param privateKey The private key to sign the message with.
13
+ * @param data The data to sign.
14
+ * @returns The signature (64 bytes: r + s).
15
+ */
16
+ signMessage(privateKey: Buffer, data: Buffer): SignatureBuffer;
17
+ /**
18
+ * Verifies arbitrary binary data with the given public key.
19
+ * @param publicKey The public key to verify the message with.
20
+ * @param data The data to verify.
21
+ * @param signature The signature to verify (64 bytes: r + s).
22
+ * @returns True if the signature is valid, false otherwise.
23
+ */
24
+ verifyMessage(publicKey: Buffer, data: Buffer, signature: SignatureBuffer): boolean;
25
+ /**
26
+ * Converts a signature string to a signature buffer.
27
+ * @param signatureString - The signature string to convert.
28
+ * @returns The signature buffer.
29
+ */
30
+ signatureStringToSignatureBuffer(signatureString: HexString): SignatureBuffer;
31
+ /**
32
+ * Converts a signature buffer to a signature string.
33
+ * @param signatureBuffer - The signature buffer to convert.
34
+ * @returns The signature string.
35
+ */
36
+ signatureBufferToSignatureString(signatureBuffer: SignatureBuffer): SignatureString;
37
+ }
38
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EACV,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;gBAEjC,UAAU,EAAE,eAAe;IAIvC;;;;;OAKG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe;IASrE;;;;;;OAMG;IACI,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,GACzB,OAAO;IAsBV;;;;OAIG;IACI,gCAAgC,CACrC,eAAe,EAAE,SAAS,GACzB,eAAe;IAIlB;;;;OAIG;IACI,gCAAgC,CACrC,eAAe,EAAE,eAAe,GAC/B,eAAe;CAGnB"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EciesSignature = void 0;
4
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
5
+ const secp256k1_js_1 = require("@noble/curves/secp256k1.js");
6
+ const sha2_js_1 = require("@noble/hashes/sha2.js");
7
+ const ecies_i18n_factory_1 = require("../../i18n/ecies-i18n-factory");
8
+ /**
9
+ * Signature-related functions for ECIES
10
+ */
11
+ class EciesSignature {
12
+ cryptoCore;
13
+ constructor(cryptoCore) {
14
+ this.cryptoCore = cryptoCore;
15
+ }
16
+ /**
17
+ * Signs arbitrary binary data with the given private key.
18
+ * @param privateKey The private key to sign the message with.
19
+ * @param data The data to sign.
20
+ * @returns The signature (64 bytes: r + s).
21
+ */
22
+ signMessage(privateKey, data) {
23
+ const hash = (0, sha2_js_1.sha256)(data);
24
+ const signature = secp256k1_js_1.secp256k1.sign(hash, privateKey, {
25
+ format: 'compact',
26
+ extraEntropy: false,
27
+ });
28
+ return Buffer.from(signature);
29
+ }
30
+ /**
31
+ * Verifies arbitrary binary data with the given public key.
32
+ * @param publicKey The public key to verify the message with.
33
+ * @param data The data to verify.
34
+ * @param signature The signature to verify (64 bytes: r + s).
35
+ * @returns True if the signature is valid, false otherwise.
36
+ */
37
+ verifyMessage(publicKey, data, signature) {
38
+ if (signature.length !== 64) {
39
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidSignature, (0, ecies_i18n_factory_1.createEciesTranslationEngine)());
40
+ }
41
+ // Normalize and validate the public key
42
+ try {
43
+ publicKey = this.cryptoCore.normalizePublicKey(publicKey);
44
+ }
45
+ catch {
46
+ throw new ecies_lib_1.ECIESError(ecies_lib_1.ECIESErrorTypeEnum.InvalidSenderPublicKey, (0, ecies_i18n_factory_1.createEciesTranslationEngine)());
47
+ }
48
+ const hash = (0, sha2_js_1.sha256)(data);
49
+ return secp256k1_js_1.secp256k1.verify(signature, hash, publicKey);
50
+ }
51
+ /**
52
+ * Converts a signature string to a signature buffer.
53
+ * @param signatureString - The signature string to convert.
54
+ * @returns The signature buffer.
55
+ */
56
+ signatureStringToSignatureBuffer(signatureString) {
57
+ return Buffer.from(signatureString, 'hex');
58
+ }
59
+ /**
60
+ * Converts a signature buffer to a signature string.
61
+ * @param signatureBuffer - The signature buffer to convert.
62
+ * @returns The signature string.
63
+ */
64
+ signatureBufferToSignatureString(signatureBuffer) {
65
+ return signatureBuffer.toString('hex');
66
+ }
67
+ }
68
+ exports.EciesSignature = EciesSignature;
69
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/signature.ts"],"names":[],"mappings":";;;AAAA,0DAIoC;AACpC,6DAAuD;AACvD,mDAA+C;AAC/C,sEAA6E;AAI7E;;GAEG;AACH,MAAa,cAAc;IACR,UAAU,CAAkB;IAE7C,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,UAAkB,EAAE,IAAY;QACjD,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAG,wBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YACjD,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAoB,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,SAAiB,EACjB,IAAY,EACZ,SAA0B;QAE1B,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,sBAAU,CAClB,8BAAkB,CAAC,gBAAgB,EACnC,IAAA,iDAA4B,GAAE,CAC/B,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,sBAAU,CAClB,8BAAkB,CAAC,sBAAsB,EACzC,IAAA,iDAA4B,GAAE,CAC/B,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,wBAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACI,gCAAgC,CACrC,eAA0B;QAE1B,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAoB,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACI,gCAAgC,CACrC,eAAgC;QAEhC,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAoB,CAAC;IAC5D,CAAC;CACF;AA5ED,wCA4EC"}
@@ -0,0 +1,83 @@
1
+ import { EciesEncryptionType, EciesEncryptionTypeEnum, IECIESConfig } from '@digitaldefiance/ecies-lib';
2
+ import { ISingleEncryptedParsedHeader } from '../../interfaces/single-encrypted-parsed-header';
3
+ import { EciesCryptoCore } from './crypto-core';
4
+ export declare class EciesSingleRecipientCore {
5
+ protected readonly cryptoCore: EciesCryptoCore;
6
+ protected readonly config: IECIESConfig;
7
+ constructor(config: IECIESConfig);
8
+ /**
9
+ * Get the size of the header for a given encryption type
10
+ * @param encryptionType The encryption type (single, simple, etc.)
11
+ * @returns
12
+ */
13
+ getHeaderSize(encryptionType: EciesEncryptionType): number;
14
+ /**
15
+ * Encrypt a message with a public key
16
+ * @param encryptSimple Whether to simple encrypt (without crc, length)
17
+ * @param receiverPublicKey The public key of the receiver
18
+ * @param message The message to encrypt
19
+ * @param preamble Optional preamble to prepend to the encrypted message
20
+ * @param options Optional encryption options
21
+ * @param options.recipientCount The number of recipients for multiple encryption mode
22
+ * @returns The encrypted message
23
+ */
24
+ encrypt(encryptSimple: boolean, receiverPublicKey: Buffer, message: Buffer, preamble?: Buffer): Buffer;
25
+ /**
26
+ * Parse the header from encrypted data
27
+ * @param encryptionType The type of encryption (single, simple, etc.) or undefined if not known
28
+ * @param data The encrypted data
29
+ * @param preambleSize The size of the preamble, if any
30
+ * @param options Optional parsing options
31
+ * @param options.dataLength The expected length of the data
32
+ * @returns The parsed header components
33
+ */
34
+ parseEncryptedMessage(encryptionType: EciesEncryptionTypeEnum | undefined, data: Buffer, preambleSize?: number, options?: {
35
+ dataLength?: number;
36
+ }): {
37
+ header: ISingleEncryptedParsedHeader;
38
+ data: Buffer;
39
+ remainder: Buffer;
40
+ };
41
+ /**
42
+ * Decrypts data encrypted with ECIES using a header
43
+ * This method maintains backward compatibility with the original implementation
44
+ * by returning just the Buffer. For detailed information, use decryptSingleWithHeaderEx
45
+ * @param encryptionType The type of encryption (single, simple, etc.)
46
+ * @param privateKey The private key to decrypt the data
47
+ * @param encryptedData The data to decrypt
48
+ * @param preambleSize The size of the preamble, if any
49
+ * @param options Optional decryption options
50
+ * @param options.dataLength The expected length of the data
51
+ * @returns The decrypted data buffer
52
+ */
53
+ decryptWithHeader(encryptionType: EciesEncryptionTypeEnum | undefined, privateKey: Buffer, encryptedData: Buffer, preambleSize?: number, options?: {
54
+ dataLength?: number;
55
+ }): Buffer;
56
+ /**
57
+ * Extended version of decryptSingleWithHeader that provides more detailed information
58
+ * @param encryptionType The type of encryption (single, simple, etc.)
59
+ * @param privateKey The private key to decrypt the data
60
+ * @param encryptedData The data to decrypt
61
+ * @param preambleSize The size of the preamble, if any
62
+ * @param options Optional decryption options
63
+ * @param options.dataLength The expected length of the data
64
+ * @returns The decrypted data and the number of bytes consumed from the input buffer
65
+ */
66
+ decryptWithHeaderEx(encryptionType: EciesEncryptionTypeEnum | undefined, privateKey: Buffer, encryptedData: Buffer, preambleSize?: number, options?: {
67
+ dataLength?: number;
68
+ }): {
69
+ decrypted: Buffer;
70
+ consumedBytes: number;
71
+ };
72
+ /**
73
+ * Decrypts data encrypted with ECIES using components
74
+ * @param privateKey The private key to decrypt the data
75
+ * @param ephemeralPublicKey The ephemeral public key used to encrypt the data
76
+ * @param iv The initialization vector used to encrypt the data
77
+ * @param authTag The authentication tag used to encrypt the data
78
+ * @param encrypted The encrypted data
79
+ * @returns The decrypted data
80
+ */
81
+ decryptWithComponents(privateKey: Buffer, ephemeralPublicKey: Buffer, iv: Buffer, authTag: Buffer, encrypted: Buffer, aad?: Buffer): Buffer;
82
+ }
83
+ //# sourceMappingURL=single-recipient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-recipient.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-node-ecies-lib/src/services/ecies/single-recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,uBAAuB,EAOvB,YAAY,EAGb,MAAM,4BAA4B,CAAC;AASpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,wBAAwB;IACnC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IAC/C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAE5B,MAAM,EAAE,YAAY;IAKhC;;;;OAIG;IACI,aAAa,CAAC,cAAc,EAAE,mBAAmB,GAAG,MAAM;IAWjE;;;;;;;;;OASG;IACI,OAAO,CACZ,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAwB,GACjC,MAAM;IAsKT;;;;;;;;OAQG;IACI,qBAAqB,CAC1B,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,IAAI,EAAE,MAAM,EACZ,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA;QAAE,MAAM,EAAE,4BAA4B,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAyN5E;;;;;;;;;;;OAWG;IACI,iBAAiB,CACtB,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,MAAM;IA0BT;;;;;;;;;OASG;IACI,mBAAmB,CACxB,cAAc,EAAE,uBAAuB,GAAG,SAAS,EACnD,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,YAAY,GAAE,MAAU,EACxB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE;IA+D/C;;;;;;;;OAQG;IACI,qBAAqB,CAC1B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,MAAM;CAuIV"}