@attocash/cli 0.1.0

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 (400) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +707 -0
  3. package/dist/application/app.d.ts +138 -0
  4. package/dist/application/app.js +654 -0
  5. package/dist/application/operations.d.ts +9 -0
  6. package/dist/application/operations.js +96 -0
  7. package/dist/cli/cli.d.ts +1 -0
  8. package/dist/cli/cli.js +460 -0
  9. package/dist/cli/help.d.ts +4 -0
  10. package/dist/cli/help.js +49 -0
  11. package/dist/cli/main.d.ts +2 -0
  12. package/dist/cli/main.js +13 -0
  13. package/dist/cli/onboarding.d.ts +14 -0
  14. package/dist/cli/onboarding.js +144 -0
  15. package/dist/cli/output.d.ts +2 -0
  16. package/dist/cli/output.js +231 -0
  17. package/dist/cli/terminal.d.ts +6 -0
  18. package/dist/cli/terminal.js +92 -0
  19. package/dist/cli/update-check.d.ts +1 -0
  20. package/dist/cli/update-check.js +12 -0
  21. package/dist/cli/updates.d.ts +2 -0
  22. package/dist/cli/updates.js +98 -0
  23. package/dist/core.d.ts +14 -0
  24. package/dist/core.js +14 -0
  25. package/dist/doctor/credential-probe.d.ts +7 -0
  26. package/dist/doctor/credential-probe.js +49 -0
  27. package/dist/doctor/doctor.d.ts +4 -0
  28. package/dist/doctor/doctor.js +213 -0
  29. package/dist/doctor/keyring.d.ts +7 -0
  30. package/dist/doctor/keyring.js +150 -0
  31. package/dist/doctor/profile.d.ts +19 -0
  32. package/dist/doctor/profile.js +73 -0
  33. package/dist/doctor/types.d.ts +40 -0
  34. package/dist/doctor/types.js +1 -0
  35. package/dist/domain/amount.d.ts +6 -0
  36. package/dist/domain/amount.js +27 -0
  37. package/dist/domain/errors.d.ts +10 -0
  38. package/dist/domain/errors.js +16 -0
  39. package/dist/labels/directory.d.ts +87 -0
  40. package/dist/labels/directory.js +140 -0
  41. package/dist/labels/personal.d.ts +17 -0
  42. package/dist/labels/personal.js +56 -0
  43. package/dist/labels/presentation.d.ts +154 -0
  44. package/dist/labels/presentation.js +90 -0
  45. package/dist/network/reader.d.ts +31 -0
  46. package/dist/network/reader.js +370 -0
  47. package/dist/network/retry.d.ts +7 -0
  48. package/dist/network/retry.js +53 -0
  49. package/dist/network/work.d.ts +3 -0
  50. package/dist/network/work.js +66 -0
  51. package/dist/pricing/market.d.ts +29 -0
  52. package/dist/pricing/market.js +150 -0
  53. package/dist/pricing/terms.d.ts +6 -0
  54. package/dist/pricing/terms.js +12 -0
  55. package/dist/spending/destination.d.ts +16 -0
  56. package/dist/spending/destination.js +42 -0
  57. package/dist/spending/journal.d.ts +28 -0
  58. package/dist/spending/journal.js +69 -0
  59. package/dist/spending/ledger.d.ts +118 -0
  60. package/dist/spending/ledger.js +444 -0
  61. package/dist/spending/payments.d.ts +67 -0
  62. package/dist/spending/payments.js +424 -0
  63. package/dist/spending/pool.d.ts +13 -0
  64. package/dist/spending/pool.js +38 -0
  65. package/dist/spending/reconcile.d.ts +18 -0
  66. package/dist/spending/reconcile.js +64 -0
  67. package/dist/storage/profiles.d.ts +13 -0
  68. package/dist/storage/profiles.js +86 -0
  69. package/dist/storage/secrets.d.ts +16 -0
  70. package/dist/storage/secrets.js +104 -0
  71. package/dist/storage/state.d.ts +32 -0
  72. package/dist/storage/state.js +255 -0
  73. package/dist/wallet/auto-receive.d.ts +57 -0
  74. package/dist/wallet/auto-receive.js +140 -0
  75. package/dist/wallet/defaults.d.ts +3 -0
  76. package/dist/wallet/defaults.js +26 -0
  77. package/dist/wallet/signing.d.ts +17 -0
  78. package/dist/wallet/signing.js +128 -0
  79. package/dist/wallet/types.d.ts +65 -0
  80. package/dist/wallet/types.js +1 -0
  81. package/dist/wallet/work.d.ts +29 -0
  82. package/dist/wallet/work.js +154 -0
  83. package/dist/watches/manager.d.ts +75 -0
  84. package/dist/watches/manager.js +197 -0
  85. package/node_modules/@attocash/commons-core/Kotlin-DateTime-library-kotlinx-datetime.mjs +6678 -0
  86. package/node_modules/@attocash/commons-core/Kotlin-DateTime-library-kotlinx-datetime.mjs.map +1 -0
  87. package/node_modules/@attocash/commons-core/LICENSE +28 -0
  88. package/node_modules/@attocash/commons-core/README.md +118 -0
  89. package/node_modules/@attocash/commons-core/commons-commons-core.d.mts +1036 -0
  90. package/node_modules/@attocash/commons-core/commons-commons-core.mjs +7701 -0
  91. package/node_modules/@attocash/commons-core/commons-commons-core.mjs.map +1 -0
  92. package/node_modules/@attocash/commons-core/kotlin-kotlin-stdlib.mjs +17681 -0
  93. package/node_modules/@attocash/commons-core/kotlin-kotlin-stdlib.mjs.map +1 -0
  94. package/node_modules/@attocash/commons-core/kotlin_org_jetbrains_kotlin_kotlin_dom_api_compat.mjs +4 -0
  95. package/node_modules/@attocash/commons-core/kotlin_org_jetbrains_kotlin_kotlin_dom_api_compat.mjs.map +1 -0
  96. package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-bytestring.mjs +209 -0
  97. package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-bytestring.mjs.map +1 -0
  98. package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-core.mjs +2284 -0
  99. package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-core.mjs.map +1 -0
  100. package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-core.mjs +6042 -0
  101. package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-core.mjs.map +1 -0
  102. package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
  103. package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
  104. package/node_modules/@attocash/commons-core/package.json +27 -0
  105. package/node_modules/@attocash/commons-node/LICENSE +28 -0
  106. package/node_modules/@attocash/commons-node/README.md +92 -0
  107. package/node_modules/@attocash/commons-node/commons-commons-node.d.mts +255 -0
  108. package/node_modules/@attocash/commons-node/commons-commons-node.mjs +2977 -0
  109. package/node_modules/@attocash/commons-node/commons-commons-node.mjs.map +1 -0
  110. package/node_modules/@attocash/commons-node/kotlin-logging.mjs +432 -0
  111. package/node_modules/@attocash/commons-node/kotlin-logging.mjs.map +1 -0
  112. package/node_modules/@attocash/commons-node/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
  113. package/node_modules/@attocash/commons-node/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
  114. package/node_modules/@attocash/commons-node/package.json +29 -0
  115. package/node_modules/@attocash/commons-node-remote/LICENSE +28 -0
  116. package/node_modules/@attocash/commons-node-remote/README.md +61 -0
  117. package/node_modules/@attocash/commons-node-remote/commons-commons-node-remote.d.mts +122 -0
  118. package/node_modules/@attocash/commons-node-remote/commons-commons-node-remote.mjs +1810 -0
  119. package/node_modules/@attocash/commons-node-remote/commons-commons-node-remote.mjs.map +1 -0
  120. package/node_modules/@attocash/commons-node-remote/kotlin-logging.mjs +432 -0
  121. package/node_modules/@attocash/commons-node-remote/kotlin-logging.mjs.map +1 -0
  122. package/node_modules/@attocash/commons-node-remote/kotlinx-browser.mjs +8 -0
  123. package/node_modules/@attocash/commons-node-remote/kotlinx-browser.mjs.map +1 -0
  124. package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs +4 -0
  125. package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs.map +1 -0
  126. package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
  127. package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
  128. package/node_modules/@attocash/commons-node-remote/package.json +31 -0
  129. package/node_modules/@attocash/commons-transport/LICENSE +28 -0
  130. package/node_modules/@attocash/commons-transport/README.md +5 -0
  131. package/node_modules/@attocash/commons-transport/commons-commons-transport.d.mts +64 -0
  132. package/node_modules/@attocash/commons-transport/commons-commons-transport.mjs +249 -0
  133. package/node_modules/@attocash/commons-transport/commons-commons-transport.mjs.map +1 -0
  134. package/node_modules/@attocash/commons-transport/kotlinx-atomicfu.mjs +263 -0
  135. package/node_modules/@attocash/commons-transport/kotlinx-atomicfu.mjs.map +1 -0
  136. package/node_modules/@attocash/commons-transport/kotlinx-browser.mjs +8 -0
  137. package/node_modules/@attocash/commons-transport/kotlinx-browser.mjs.map +1 -0
  138. package/node_modules/@attocash/commons-transport/kotlinx-coroutines-core.mjs +11604 -0
  139. package/node_modules/@attocash/commons-transport/kotlinx-coroutines-core.mjs.map +1 -0
  140. package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json-io.mjs +4 -0
  141. package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json-io.mjs.map +1 -0
  142. package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
  143. package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
  144. package/node_modules/@attocash/commons-transport/ktor-ktor-client-content-negotiation.mjs +499 -0
  145. package/node_modules/@attocash/commons-transport/ktor-ktor-client-content-negotiation.mjs.map +1 -0
  146. package/node_modules/@attocash/commons-transport/ktor-ktor-client-core.mjs +6456 -0
  147. package/node_modules/@attocash/commons-transport/ktor-ktor-client-core.mjs.map +1 -0
  148. package/node_modules/@attocash/commons-transport/ktor-ktor-events.mjs +83 -0
  149. package/node_modules/@attocash/commons-transport/ktor-ktor-events.mjs.map +1 -0
  150. package/node_modules/@attocash/commons-transport/ktor-ktor-http-cio.mjs +1714 -0
  151. package/node_modules/@attocash/commons-transport/ktor-ktor-http-cio.mjs.map +1 -0
  152. package/node_modules/@attocash/commons-transport/ktor-ktor-http.mjs +3197 -0
  153. package/node_modules/@attocash/commons-transport/ktor-ktor-http.mjs.map +1 -0
  154. package/node_modules/@attocash/commons-transport/ktor-ktor-io.mjs +2290 -0
  155. package/node_modules/@attocash/commons-transport/ktor-ktor-io.mjs.map +1 -0
  156. package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx-json.mjs +46 -0
  157. package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx-json.mjs.map +1 -0
  158. package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx.mjs +482 -0
  159. package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx.mjs.map +1 -0
  160. package/node_modules/@attocash/commons-transport/ktor-ktor-serialization.mjs +165 -0
  161. package/node_modules/@attocash/commons-transport/ktor-ktor-serialization.mjs.map +1 -0
  162. package/node_modules/@attocash/commons-transport/ktor-ktor-sse.mjs +4 -0
  163. package/node_modules/@attocash/commons-transport/ktor-ktor-sse.mjs.map +1 -0
  164. package/node_modules/@attocash/commons-transport/ktor-ktor-utils.mjs +3222 -0
  165. package/node_modules/@attocash/commons-transport/ktor-ktor-utils.mjs.map +1 -0
  166. package/node_modules/@attocash/commons-transport/ktor-ktor-websocket-serialization.mjs +4 -0
  167. package/node_modules/@attocash/commons-transport/ktor-ktor-websocket-serialization.mjs.map +1 -0
  168. package/node_modules/@attocash/commons-transport/ktor-ktor-websockets.mjs +1485 -0
  169. package/node_modules/@attocash/commons-transport/ktor-ktor-websockets.mjs.map +1 -0
  170. package/node_modules/@attocash/commons-transport/package.json +29 -0
  171. package/node_modules/@attocash/commons-worker/LICENSE +28 -0
  172. package/node_modules/@attocash/commons-worker/README.md +48 -0
  173. package/node_modules/@attocash/commons-worker/commons-commons-worker.d.mts +73 -0
  174. package/node_modules/@attocash/commons-worker/commons-commons-worker.mjs +702 -0
  175. package/node_modules/@attocash/commons-worker/commons-commons-worker.mjs.map +1 -0
  176. package/node_modules/@attocash/commons-worker/kotlin-logging.mjs +432 -0
  177. package/node_modules/@attocash/commons-worker/kotlin-logging.mjs.map +1 -0
  178. package/node_modules/@attocash/commons-worker/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
  179. package/node_modules/@attocash/commons-worker/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
  180. package/node_modules/@attocash/commons-worker/package.json +29 -0
  181. package/node_modules/@attocash/commons-worker-remote/LICENSE +28 -0
  182. package/node_modules/@attocash/commons-worker-remote/README.md +60 -0
  183. package/node_modules/@attocash/commons-worker-remote/commons-commons-worker-remote.d.mts +93 -0
  184. package/node_modules/@attocash/commons-worker-remote/commons-commons-worker-remote.mjs +289 -0
  185. package/node_modules/@attocash/commons-worker-remote/commons-commons-worker-remote.mjs.map +1 -0
  186. package/node_modules/@attocash/commons-worker-remote/kotlin-logging.mjs +432 -0
  187. package/node_modules/@attocash/commons-worker-remote/kotlin-logging.mjs.map +1 -0
  188. package/node_modules/@attocash/commons-worker-remote/kotlinx-browser.mjs +8 -0
  189. package/node_modules/@attocash/commons-worker-remote/kotlinx-browser.mjs.map +1 -0
  190. package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs +4 -0
  191. package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs.map +1 -0
  192. package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
  193. package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
  194. package/node_modules/@attocash/commons-worker-remote/package.json +31 -0
  195. package/node_modules/@js-joda/core/CHANGELOG.md +363 -0
  196. package/node_modules/@js-joda/core/CheatSheet.md +947 -0
  197. package/node_modules/@js-joda/core/LICENSE +34 -0
  198. package/node_modules/@js-joda/core/README.md +155 -0
  199. package/node_modules/@js-joda/core/bower.json +21 -0
  200. package/node_modules/@js-joda/core/dist/js-joda.d.ts +2452 -0
  201. package/node_modules/@js-joda/core/dist/js-joda.esm.js +13564 -0
  202. package/node_modules/@js-joda/core/dist/js-joda.flow.js +949 -0
  203. package/node_modules/@js-joda/core/dist/js-joda.js +13630 -0
  204. package/node_modules/@js-joda/core/dist/js-joda.js.map +1 -0
  205. package/node_modules/@js-joda/core/dist/js-joda.min.js +5 -0
  206. package/node_modules/@js-joda/core/package.json +76 -0
  207. package/node_modules/@js-joda/core/src/Clock.js +330 -0
  208. package/node_modules/@js-joda/core/src/DayOfWeek.js +451 -0
  209. package/node_modules/@js-joda/core/src/Duration.js +1205 -0
  210. package/node_modules/@js-joda/core/src/Enum.js +30 -0
  211. package/node_modules/@js-joda/core/src/Instant.js +1012 -0
  212. package/node_modules/@js-joda/core/src/LocalDate.js +1703 -0
  213. package/node_modules/@js-joda/core/src/LocalDateTime.js +1686 -0
  214. package/node_modules/@js-joda/core/src/LocalTime.js +1415 -0
  215. package/node_modules/@js-joda/core/src/MathUtil.js +236 -0
  216. package/node_modules/@js-joda/core/src/Month.js +600 -0
  217. package/node_modules/@js-joda/core/src/MonthDay.js +730 -0
  218. package/node_modules/@js-joda/core/src/OffsetDateTime.js +757 -0
  219. package/node_modules/@js-joda/core/src/OffsetTime.js +621 -0
  220. package/node_modules/@js-joda/core/src/Period.js +933 -0
  221. package/node_modules/@js-joda/core/src/StringUtil.js +43 -0
  222. package/node_modules/@js-joda/core/src/Year.js +1015 -0
  223. package/node_modules/@js-joda/core/src/YearConstants.js +21 -0
  224. package/node_modules/@js-joda/core/src/YearMonth.js +1096 -0
  225. package/node_modules/@js-joda/core/src/ZoneId.js +236 -0
  226. package/node_modules/@js-joda/core/src/ZoneIdFactory.js +201 -0
  227. package/node_modules/@js-joda/core/src/ZoneOffset.js +486 -0
  228. package/node_modules/@js-joda/core/src/ZoneRegion.js +72 -0
  229. package/node_modules/@js-joda/core/src/ZonedDateTime.js +2007 -0
  230. package/node_modules/@js-joda/core/src/_init.js +68 -0
  231. package/node_modules/@js-joda/core/src/assert.js +33 -0
  232. package/node_modules/@js-joda/core/src/chrono/ChronoLocalDate.js +230 -0
  233. package/node_modules/@js-joda/core/src/chrono/ChronoLocalDateTime.js +130 -0
  234. package/node_modules/@js-joda/core/src/chrono/ChronoZonedDateTime.js +194 -0
  235. package/node_modules/@js-joda/core/src/chrono/IsoChronology.js +235 -0
  236. package/node_modules/@js-joda/core/src/convert.js +83 -0
  237. package/node_modules/@js-joda/core/src/errors.js +54 -0
  238. package/node_modules/@js-joda/core/src/format/DateTimeBuilder.js +535 -0
  239. package/node_modules/@js-joda/core/src/format/DateTimeFormatter.js +728 -0
  240. package/node_modules/@js-joda/core/src/format/DateTimeFormatterBuilder.js +1545 -0
  241. package/node_modules/@js-joda/core/src/format/DateTimeParseContext.js +297 -0
  242. package/node_modules/@js-joda/core/src/format/DateTimePrintContext.js +138 -0
  243. package/node_modules/@js-joda/core/src/format/DecimalStyle.js +113 -0
  244. package/node_modules/@js-joda/core/src/format/EnumMap.js +70 -0
  245. package/node_modules/@js-joda/core/src/format/ParsePosition.js +31 -0
  246. package/node_modules/@js-joda/core/src/format/ResolverStyle.js +93 -0
  247. package/node_modules/@js-joda/core/src/format/SignStyle.js +38 -0
  248. package/node_modules/@js-joda/core/src/format/StringBuilder.js +47 -0
  249. package/node_modules/@js-joda/core/src/format/TextStyle.js +114 -0
  250. package/node_modules/@js-joda/core/src/format/parser/CharLiteralPrinterParser.js +46 -0
  251. package/node_modules/@js-joda/core/src/format/parser/CompositePrinterParser.js +89 -0
  252. package/node_modules/@js-joda/core/src/format/parser/FractionPrinterParser.js +162 -0
  253. package/node_modules/@js-joda/core/src/format/parser/NumberPrinterParser.js +367 -0
  254. package/node_modules/@js-joda/core/src/format/parser/OffsetIdPrinterParser.js +177 -0
  255. package/node_modules/@js-joda/core/src/format/parser/PadPrinterParserDecorator.js +81 -0
  256. package/node_modules/@js-joda/core/src/format/parser/SettingsParser.js +44 -0
  257. package/node_modules/@js-joda/core/src/format/parser/StringLiteralPrinterParser.js +39 -0
  258. package/node_modules/@js-joda/core/src/format/parser/ZoneIdPrinterParser.js +218 -0
  259. package/node_modules/@js-joda/core/src/js-joda.js +210 -0
  260. package/node_modules/@js-joda/core/src/license-preamble.js +3 -0
  261. package/node_modules/@js-joda/core/src/temporal/ChronoField.js +470 -0
  262. package/node_modules/@js-joda/core/src/temporal/ChronoUnit.js +310 -0
  263. package/node_modules/@js-joda/core/src/temporal/DefaultInterfaceTemporal.js +118 -0
  264. package/node_modules/@js-joda/core/src/temporal/IsoFields.js +859 -0
  265. package/node_modules/@js-joda/core/src/temporal/NativeJsTemporal.js +105 -0
  266. package/node_modules/@js-joda/core/src/temporal/Temporal.js +346 -0
  267. package/node_modules/@js-joda/core/src/temporal/TemporalAccessor.js +125 -0
  268. package/node_modules/@js-joda/core/src/temporal/TemporalAdjuster.js +92 -0
  269. package/node_modules/@js-joda/core/src/temporal/TemporalAdjusters.js +464 -0
  270. package/node_modules/@js-joda/core/src/temporal/TemporalAmount.js +166 -0
  271. package/node_modules/@js-joda/core/src/temporal/TemporalField.js +248 -0
  272. package/node_modules/@js-joda/core/src/temporal/TemporalQueries.js +223 -0
  273. package/node_modules/@js-joda/core/src/temporal/TemporalQueriesFactory.js +77 -0
  274. package/node_modules/@js-joda/core/src/temporal/TemporalQuery.js +107 -0
  275. package/node_modules/@js-joda/core/src/temporal/TemporalUnit.js +179 -0
  276. package/node_modules/@js-joda/core/src/temporal/ValueRange.js +257 -0
  277. package/node_modules/@js-joda/core/src/use.js +20 -0
  278. package/node_modules/@js-joda/core/src/zone/SystemDefaultZoneId.js +31 -0
  279. package/node_modules/@js-joda/core/src/zone/SystemDefaultZoneRules.js +162 -0
  280. package/node_modules/@js-joda/core/src/zone/ZoneOffsetTransition.js +289 -0
  281. package/node_modules/@js-joda/core/src/zone/ZoneRules.js +464 -0
  282. package/node_modules/@js-joda/core/src/zone/ZoneRulesProvider.js +36 -0
  283. package/node_modules/@noble/hashes/LICENSE +21 -0
  284. package/node_modules/@noble/hashes/README.md +563 -0
  285. package/node_modules/@noble/hashes/_blake.d.ts +21 -0
  286. package/node_modules/@noble/hashes/_blake.d.ts.map +1 -0
  287. package/node_modules/@noble/hashes/_blake.js +52 -0
  288. package/node_modules/@noble/hashes/_blake.js.map +1 -0
  289. package/node_modules/@noble/hashes/_md.d.ts +99 -0
  290. package/node_modules/@noble/hashes/_md.d.ts.map +1 -0
  291. package/node_modules/@noble/hashes/_md.js +202 -0
  292. package/node_modules/@noble/hashes/_md.js.map +1 -0
  293. package/node_modules/@noble/hashes/_u64.d.ts +63 -0
  294. package/node_modules/@noble/hashes/_u64.d.ts.map +1 -0
  295. package/node_modules/@noble/hashes/_u64.js +84 -0
  296. package/node_modules/@noble/hashes/_u64.js.map +1 -0
  297. package/node_modules/@noble/hashes/argon2.d.ts +112 -0
  298. package/node_modules/@noble/hashes/argon2.d.ts.map +1 -0
  299. package/node_modules/@noble/hashes/argon2.js +517 -0
  300. package/node_modules/@noble/hashes/argon2.js.map +1 -0
  301. package/node_modules/@noble/hashes/blake1.d.ts +156 -0
  302. package/node_modules/@noble/hashes/blake1.d.ts.map +1 -0
  303. package/node_modules/@noble/hashes/blake1.js +560 -0
  304. package/node_modules/@noble/hashes/blake1.js.map +1 -0
  305. package/node_modules/@noble/hashes/blake2.d.ts +184 -0
  306. package/node_modules/@noble/hashes/blake2.d.ts.map +1 -0
  307. package/node_modules/@noble/hashes/blake2.js +501 -0
  308. package/node_modules/@noble/hashes/blake2.js.map +1 -0
  309. package/node_modules/@noble/hashes/blake3.d.ts +68 -0
  310. package/node_modules/@noble/hashes/blake3.d.ts.map +1 -0
  311. package/node_modules/@noble/hashes/blake3.js +284 -0
  312. package/node_modules/@noble/hashes/blake3.js.map +1 -0
  313. package/node_modules/@noble/hashes/eskdf.d.ts +92 -0
  314. package/node_modules/@noble/hashes/eskdf.d.ts.map +1 -0
  315. package/node_modules/@noble/hashes/eskdf.js +218 -0
  316. package/node_modules/@noble/hashes/eskdf.js.map +1 -0
  317. package/node_modules/@noble/hashes/hkdf.d.ts +64 -0
  318. package/node_modules/@noble/hashes/hkdf.d.ts.map +1 -0
  319. package/node_modules/@noble/hashes/hkdf.js +120 -0
  320. package/node_modules/@noble/hashes/hkdf.js.map +1 -0
  321. package/node_modules/@noble/hashes/hmac.d.ts +47 -0
  322. package/node_modules/@noble/hashes/hmac.d.ts.map +1 -0
  323. package/node_modules/@noble/hashes/hmac.js +93 -0
  324. package/node_modules/@noble/hashes/hmac.js.map +1 -0
  325. package/node_modules/@noble/hashes/index.d.ts +2 -0
  326. package/node_modules/@noble/hashes/index.d.ts.map +1 -0
  327. package/node_modules/@noble/hashes/index.js +35 -0
  328. package/node_modules/@noble/hashes/index.js.map +1 -0
  329. package/node_modules/@noble/hashes/legacy.d.ts +102 -0
  330. package/node_modules/@noble/hashes/legacy.d.ts.map +1 -0
  331. package/node_modules/@noble/hashes/legacy.js +327 -0
  332. package/node_modules/@noble/hashes/legacy.js.map +1 -0
  333. package/node_modules/@noble/hashes/package.json +97 -0
  334. package/node_modules/@noble/hashes/pbkdf2.d.ts +56 -0
  335. package/node_modules/@noble/hashes/pbkdf2.d.ts.map +1 -0
  336. package/node_modules/@noble/hashes/pbkdf2.js +135 -0
  337. package/node_modules/@noble/hashes/pbkdf2.js.map +1 -0
  338. package/node_modules/@noble/hashes/scrypt.d.ts +65 -0
  339. package/node_modules/@noble/hashes/scrypt.d.ts.map +1 -0
  340. package/node_modules/@noble/hashes/scrypt.js +257 -0
  341. package/node_modules/@noble/hashes/scrypt.js.map +1 -0
  342. package/node_modules/@noble/hashes/sha2.d.ts +249 -0
  343. package/node_modules/@noble/hashes/sha2.d.ts.map +1 -0
  344. package/node_modules/@noble/hashes/sha2.js +458 -0
  345. package/node_modules/@noble/hashes/sha2.js.map +1 -0
  346. package/node_modules/@noble/hashes/sha3-addons.d.ts +461 -0
  347. package/node_modules/@noble/hashes/sha3-addons.d.ts.map +1 -0
  348. package/node_modules/@noble/hashes/sha3-addons.js +783 -0
  349. package/node_modules/@noble/hashes/sha3-addons.js.map +1 -0
  350. package/node_modules/@noble/hashes/sha3.d.ts +199 -0
  351. package/node_modules/@noble/hashes/sha3.d.ts.map +1 -0
  352. package/node_modules/@noble/hashes/sha3.js +431 -0
  353. package/node_modules/@noble/hashes/sha3.js.map +1 -0
  354. package/node_modules/@noble/hashes/src/_blake.ts +57 -0
  355. package/node_modules/@noble/hashes/src/_md.ts +222 -0
  356. package/node_modules/@noble/hashes/src/_u64.ts +117 -0
  357. package/node_modules/@noble/hashes/src/argon2.ts +667 -0
  358. package/node_modules/@noble/hashes/src/blake1.ts +614 -0
  359. package/node_modules/@noble/hashes/src/blake2.ts +582 -0
  360. package/node_modules/@noble/hashes/src/blake3.ts +317 -0
  361. package/node_modules/@noble/hashes/src/eskdf.ts +259 -0
  362. package/node_modules/@noble/hashes/src/hkdf.ts +133 -0
  363. package/node_modules/@noble/hashes/src/hmac.ts +126 -0
  364. package/node_modules/@noble/hashes/src/index.ts +33 -0
  365. package/node_modules/@noble/hashes/src/legacy.ts +339 -0
  366. package/node_modules/@noble/hashes/src/pbkdf2.ts +175 -0
  367. package/node_modules/@noble/hashes/src/scrypt.ts +315 -0
  368. package/node_modules/@noble/hashes/src/sha2.ts +530 -0
  369. package/node_modules/@noble/hashes/src/sha3-addons.ts +983 -0
  370. package/node_modules/@noble/hashes/src/sha3.ts +485 -0
  371. package/node_modules/@noble/hashes/src/utils.ts +848 -0
  372. package/node_modules/@noble/hashes/src/webcrypto.ts +239 -0
  373. package/node_modules/@noble/hashes/utils.d.ts +519 -0
  374. package/node_modules/@noble/hashes/utils.d.ts.map +1 -0
  375. package/node_modules/@noble/hashes/utils.js +578 -0
  376. package/node_modules/@noble/hashes/utils.js.map +1 -0
  377. package/node_modules/@noble/hashes/webcrypto.d.ts +120 -0
  378. package/node_modules/@noble/hashes/webcrypto.d.ts.map +1 -0
  379. package/node_modules/@noble/hashes/webcrypto.js +165 -0
  380. package/node_modules/@noble/hashes/webcrypto.js.map +1 -0
  381. package/node_modules/ws/LICENSE +20 -0
  382. package/node_modules/ws/README.md +548 -0
  383. package/node_modules/ws/browser.js +8 -0
  384. package/node_modules/ws/index.js +22 -0
  385. package/node_modules/ws/lib/buffer-util.js +131 -0
  386. package/node_modules/ws/lib/constants.js +19 -0
  387. package/node_modules/ws/lib/event-target.js +292 -0
  388. package/node_modules/ws/lib/extension.js +203 -0
  389. package/node_modules/ws/lib/limiter.js +55 -0
  390. package/node_modules/ws/lib/permessage-deflate.js +530 -0
  391. package/node_modules/ws/lib/receiver.js +743 -0
  392. package/node_modules/ws/lib/sender.js +607 -0
  393. package/node_modules/ws/lib/stream.js +161 -0
  394. package/node_modules/ws/lib/subprotocol.js +62 -0
  395. package/node_modules/ws/lib/validation.js +152 -0
  396. package/node_modules/ws/lib/websocket-server.js +562 -0
  397. package/node_modules/ws/lib/websocket.js +1407 -0
  398. package/node_modules/ws/package.json +74 -0
  399. package/node_modules/ws/wrapper.mjs +21 -0
  400. package/package.json +53 -0
@@ -0,0 +1,184 @@
1
+ import { type CHash, type Hash, type TArg, type TRet } from './utils.ts';
2
+ /**
3
+ * Blake hash options.
4
+ * `dkLen` is output length. `key` is used in MAC mode. `salt` is used in
5
+ * KDF mode.
6
+ */
7
+ export type Blake2Opts = {
8
+ /** Desired digest length in bytes. RFC 7693 uses 1..64 for blake2b and 1..32 for blake2s. */
9
+ dkLen?: number;
10
+ /** Optional MAC key. */
11
+ key?: Uint8Array;
12
+ /** Optional salt mixed into initialization. */
13
+ salt?: Uint8Array;
14
+ /** Optional personalization bytes. */
15
+ personalization?: Uint8Array;
16
+ };
17
+ /** Internal base class for BLAKE2. */
18
+ export declare abstract class _BLAKE2<T extends _BLAKE2<T>> implements Hash<T> {
19
+ protected abstract compress(msg: Uint32Array, offset: number, isLast: boolean): void;
20
+ protected abstract get(): number[];
21
+ protected abstract set(...args: number[]): void;
22
+ abstract destroy(): void;
23
+ protected buffer: Uint8Array;
24
+ protected buffer32: Uint32Array;
25
+ protected finished: boolean;
26
+ protected destroyed: boolean;
27
+ protected length: number;
28
+ protected pos: number;
29
+ readonly blockLen: number;
30
+ readonly outputLen: number;
31
+ readonly canXOF: boolean;
32
+ constructor(blockLen: number, outputLen: number);
33
+ update(data: TArg<Uint8Array>): this;
34
+ digestInto(out: TArg<Uint8Array>): void;
35
+ digest(): TRet<Uint8Array>;
36
+ _cloneInto(to?: T): T;
37
+ clone(): T;
38
+ }
39
+ /** Internal blake2b hash class with state stored as LE u32 low/high halves. */
40
+ export declare class _BLAKE2b extends _BLAKE2<_BLAKE2b> {
41
+ private v0l;
42
+ private v0h;
43
+ private v1l;
44
+ private v1h;
45
+ private v2l;
46
+ private v2h;
47
+ private v3l;
48
+ private v3h;
49
+ private v4l;
50
+ private v4h;
51
+ private v5l;
52
+ private v5h;
53
+ private v6l;
54
+ private v6h;
55
+ private v7l;
56
+ private v7h;
57
+ constructor(opts?: Blake2Opts);
58
+ protected get(): [
59
+ number,
60
+ number,
61
+ number,
62
+ number,
63
+ number,
64
+ number,
65
+ number,
66
+ number,
67
+ number,
68
+ number,
69
+ number,
70
+ number,
71
+ number,
72
+ number,
73
+ number,
74
+ number
75
+ ];
76
+ protected set(v0l: number, v0h: number, v1l: number, v1h: number, v2l: number, v2h: number, v3l: number, v3h: number, v4l: number, v4h: number, v5l: number, v5h: number, v6l: number, v6h: number, v7l: number, v7h: number): void;
77
+ protected compress(msg: Uint32Array, offset: number, isLast: boolean): void;
78
+ destroy(): void;
79
+ }
80
+ /**
81
+ * Blake2b hash function. 64-bit. 1.5x slower than blake2s in JS.
82
+ * @param msg - message that would be hashed
83
+ * @param opts - Optional output, MAC, salt, and personalization settings.
84
+ * `dkLen` must be 1..64 bytes; `salt` and `personalization`, if present,
85
+ * must be 16 bytes each. See {@link Blake2Opts}.
86
+ * @returns Digest bytes.
87
+ * @example
88
+ * Hash a message with Blake2b.
89
+ * ```ts
90
+ * blake2b(new Uint8Array([97, 98, 99]));
91
+ * ```
92
+ */
93
+ export declare const blake2b: TRet<CHash<_BLAKE2b, Blake2Opts>>;
94
+ /** Internal type, 16 numbers. */
95
+ export type _Num16 = {
96
+ v0: number;
97
+ v1: number;
98
+ v2: number;
99
+ v3: number;
100
+ v4: number;
101
+ v5: number;
102
+ v6: number;
103
+ v7: number;
104
+ v8: number;
105
+ v9: number;
106
+ v10: number;
107
+ v11: number;
108
+ v12: number;
109
+ v13: number;
110
+ v14: number;
111
+ v15: number;
112
+ };
113
+ /**
114
+ * BLAKE2-compress core method.
115
+ * Runs only the round function over a caller-supplied local vector; callers initialize `v0..v15`
116
+ * and apply the final `h[i] ^= v[i] ^ v[i + 8]` fold themselves.
117
+ * @param s - flattened sigma schedule bytes
118
+ * @param offset - starting word offset inside `msg`, not a byte offset
119
+ * @param msg - message words
120
+ * @param rounds - round count to execute
121
+ * @param v0 - state word 0
122
+ * @param v1 - state word 1
123
+ * @param v2 - state word 2
124
+ * @param v3 - state word 3
125
+ * @param v4 - state word 4
126
+ * @param v5 - state word 5
127
+ * @param v6 - state word 6
128
+ * @param v7 - state word 7
129
+ * @param v8 - state word 8
130
+ * @param v9 - state word 9
131
+ * @param v10 - state word 10
132
+ * @param v11 - state word 11
133
+ * @param v12 - state word 12
134
+ * @param v13 - state word 13
135
+ * @param v14 - state word 14
136
+ * @param v15 - state word 15
137
+ * @returns Updated compression state words.
138
+ * @example
139
+ * Run the BLAKE2 compression core on zeroed state and message words.
140
+ * ```ts
141
+ * import { compress } from '@noble/hashes/blake2.js';
142
+ * const state = compress(
143
+ * new Uint8Array(16),
144
+ * 0,
145
+ * new Uint32Array(16),
146
+ * 1,
147
+ * 0, 0, 0, 0, 0, 0, 0, 0,
148
+ * 0, 0, 0, 0, 0, 0, 0, 0
149
+ * );
150
+ * state.v0;
151
+ * ```
152
+ */
153
+ export declare function compress(s: TArg<Uint8Array>, offset: number, msg: TArg<Uint32Array>, rounds: number, v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number, v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number): _Num16;
154
+ /** Internal blake2s hash class. */
155
+ export declare class _BLAKE2s extends _BLAKE2<_BLAKE2s> {
156
+ private v0;
157
+ private v1;
158
+ private v2;
159
+ private v3;
160
+ private v4;
161
+ private v5;
162
+ private v6;
163
+ private v7;
164
+ constructor(opts?: Blake2Opts);
165
+ protected get(): [number, number, number, number, number, number, number, number];
166
+ protected set(v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number): void;
167
+ protected compress(msg: Uint32Array, offset: number, isLast: boolean): void;
168
+ destroy(): void;
169
+ }
170
+ /**
171
+ * Blake2s hash function. Focuses on 8-bit to 32-bit platforms. 1.5x faster than blake2b in JS.
172
+ * @param msg - message that would be hashed
173
+ * @param opts - Optional output, MAC, salt, and personalization settings.
174
+ * `dkLen` must be 1..32 bytes; `salt` and `personalization`, if present,
175
+ * must be 8 bytes each. See {@link Blake2Opts}.
176
+ * @returns Digest bytes.
177
+ * @example
178
+ * Hash a message with Blake2s.
179
+ * ```ts
180
+ * blake2s(new Uint8Array([97, 98, 99]));
181
+ * ```
182
+ */
183
+ export declare const blake2s: TRet<CHash<_BLAKE2s, Blake2Opts>>;
184
+ //# sourceMappingURL=blake2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blake2.d.ts","sourceRoot":"","sources":["src/blake2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,501 @@
1
+ /**
2
+ * blake2b (64-bit) & blake2s (8 to 32-bit) hash functions.
3
+ * b could have been faster, but there is no fast u64 in js, so s is 1.5x faster.
4
+ * @module
5
+ */
6
+ import { BSIGMA, G1s, G2s } from "./_blake.js";
7
+ import { SHA256_IV } from "./_md.js";
8
+ import * as u64 from "./_u64.js";
9
+ // prettier-ignore
10
+ import { abytes, aexists, anumber, aoutput, clean, createHasher, swap32IfBE, swap8IfBE, u32 } from "./utils.js";
11
+ // Same IV words as `SHA512_IV`, but endian-swapped into LE u32 low/high halves
12
+ // for the BLAKE2b u64 helpers below.
13
+ const B2B_IV = /* @__PURE__ */ Uint32Array.from([
14
+ 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,
15
+ 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19,
16
+ ]);
17
+ // Shared synchronous BLAKE2b work vector as LE u32 low/high halves.
18
+ const BBUF = /* @__PURE__ */ new Uint32Array(32);
19
+ // BLAKE2b G mix split into two half-rounds over LE u32 low/high limbs.
20
+ function G1b(a, b, c, d, msg, x) {
21
+ // NOTE: V is LE here
22
+ const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore
23
+ let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore
24
+ let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore
25
+ let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore
26
+ let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore
27
+ // v[a] = (v[a] + v[b] + x) | 0;
28
+ let ll = u64.add3L(Al, Bl, Xl);
29
+ Ah = u64.add3H(ll, Ah, Bh, Xh);
30
+ Al = ll | 0;
31
+ // v[d] = rotr(v[d] ^ v[a], 32)
32
+ ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });
33
+ ({ Dh, Dl } = { Dh: u64.rotr32H(Dh, Dl), Dl: u64.rotr32L(Dh, Dl) });
34
+ // v[c] = (v[c] + v[d]) | 0;
35
+ ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));
36
+ // v[b] = rotr(v[b] ^ v[c], 24)
37
+ ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });
38
+ ({ Bh, Bl } = { Bh: u64.rotrSH(Bh, Bl, 24), Bl: u64.rotrSL(Bh, Bl, 24) });
39
+ ((BBUF[2 * a] = Al), (BBUF[2 * a + 1] = Ah));
40
+ ((BBUF[2 * b] = Bl), (BBUF[2 * b + 1] = Bh));
41
+ ((BBUF[2 * c] = Cl), (BBUF[2 * c + 1] = Ch));
42
+ ((BBUF[2 * d] = Dl), (BBUF[2 * d + 1] = Dh));
43
+ }
44
+ // Second half-round of the same LE-limb BLAKE2b G mix; `x` is the message word offset.
45
+ function G2b(a, b, c, d, msg, x) {
46
+ // NOTE: V is LE here
47
+ const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore
48
+ let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore
49
+ let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore
50
+ let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore
51
+ let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore
52
+ // v[a] = (v[a] + v[b] + x) | 0;
53
+ let ll = u64.add3L(Al, Bl, Xl);
54
+ Ah = u64.add3H(ll, Ah, Bh, Xh);
55
+ Al = ll | 0;
56
+ // v[d] = rotr(v[d] ^ v[a], 16)
57
+ ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });
58
+ ({ Dh, Dl } = { Dh: u64.rotrSH(Dh, Dl, 16), Dl: u64.rotrSL(Dh, Dl, 16) });
59
+ // v[c] = (v[c] + v[d]) | 0;
60
+ ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));
61
+ // v[b] = rotr(v[b] ^ v[c], 63)
62
+ ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });
63
+ ({ Bh, Bl } = { Bh: u64.rotrBH(Bh, Bl, 63), Bl: u64.rotrBL(Bh, Bl, 63) });
64
+ ((BBUF[2 * a] = Al), (BBUF[2 * a + 1] = Ah));
65
+ ((BBUF[2 * b] = Bl), (BBUF[2 * b + 1] = Bh));
66
+ ((BBUF[2 * c] = Cl), (BBUF[2 * c + 1] = Ch));
67
+ ((BBUF[2 * d] = Dl), (BBUF[2 * d + 1] = Dh));
68
+ }
69
+ function checkBlake2Opts(outputLen, opts = {}, keyLen, saltLen, persLen) {
70
+ anumber(keyLen);
71
+ // RFC 7693 §2.1 requires digest length nn in 1..keyLen.
72
+ if (outputLen <= 0 || outputLen > keyLen)
73
+ throw new Error('outputLen bigger than keyLen');
74
+ const { key, salt, personalization } = opts;
75
+ // This API uses `undefined` for the RFC 7693 `kk = 0` case, so a provided key must be non-empty.
76
+ if (key !== undefined && (key.length < 1 || key.length > keyLen))
77
+ throw new Error('"key" expected to be undefined or of length=1..' + keyLen);
78
+ if (salt !== undefined)
79
+ abytes(salt, saltLen, 'salt');
80
+ if (personalization !== undefined)
81
+ abytes(personalization, persLen, 'personalization');
82
+ }
83
+ /** Internal base class for BLAKE2. */
84
+ export class _BLAKE2 {
85
+ buffer;
86
+ buffer32;
87
+ finished = false;
88
+ destroyed = false;
89
+ length = 0;
90
+ pos = 0;
91
+ blockLen;
92
+ outputLen;
93
+ canXOF = false;
94
+ constructor(blockLen, outputLen) {
95
+ anumber(blockLen);
96
+ anumber(outputLen);
97
+ this.blockLen = blockLen;
98
+ this.outputLen = outputLen;
99
+ this.buffer = new Uint8Array(blockLen);
100
+ this.buffer32 = u32(this.buffer);
101
+ }
102
+ update(data) {
103
+ aexists(this);
104
+ abytes(data);
105
+ // Main difference with other hashes: there is flag for last block,
106
+ // so we cannot process current block before we know that there
107
+ // is the next one. This significantly complicates logic and reduces ability
108
+ // to do zero-copy processing
109
+ const { blockLen, buffer, buffer32 } = this;
110
+ const len = data.length;
111
+ const offset = data.byteOffset;
112
+ const buf = data.buffer;
113
+ for (let pos = 0; pos < len;) {
114
+ // If buffer is full and we still have input (don't process last block, same as blake2s)
115
+ if (this.pos === blockLen) {
116
+ swap32IfBE(buffer32);
117
+ this.compress(buffer32, 0, false);
118
+ swap32IfBE(buffer32);
119
+ this.pos = 0;
120
+ }
121
+ const take = Math.min(blockLen - this.pos, len - pos);
122
+ const dataOffset = offset + pos;
123
+ // Zero-copy only for full, 4-byte-aligned, non-final blocks.
124
+ if (take === blockLen && !(dataOffset % 4) && pos + take < len) {
125
+ const data32 = new Uint32Array(buf, dataOffset, Math.floor((len - pos) / 4));
126
+ swap32IfBE(data32);
127
+ for (let pos32 = 0; pos + blockLen < len; pos32 += buffer32.length, pos += blockLen) {
128
+ this.length += blockLen;
129
+ this.compress(data32, pos32, false);
130
+ }
131
+ swap32IfBE(data32);
132
+ continue;
133
+ }
134
+ buffer.set(data.subarray(pos, pos + take), this.pos);
135
+ this.pos += take;
136
+ this.length += take;
137
+ pos += take;
138
+ }
139
+ return this;
140
+ }
141
+ digestInto(out) {
142
+ aexists(this);
143
+ aoutput(out, this);
144
+ const { pos, buffer32 } = this;
145
+ this.finished = true;
146
+ // Padding
147
+ clean(this.buffer.subarray(pos));
148
+ swap32IfBE(buffer32);
149
+ this.compress(buffer32, 0, true);
150
+ swap32IfBE(buffer32);
151
+ // Reject unaligned views explicitly instead of hiding them behind a full scratch copy.
152
+ if (out.byteOffset & 3)
153
+ throw new RangeError('"digestInto() output" expected 4-byte aligned byteOffset, got ' + out.byteOffset);
154
+ const state = this.get();
155
+ const out32 = u32(out);
156
+ const full = Math.floor(this.outputLen / 4);
157
+ for (let i = 0; i < full; i++)
158
+ out32[i] = swap8IfBE(state[i]);
159
+ const tail = this.outputLen % 4;
160
+ if (!tail)
161
+ return;
162
+ const off = full * 4;
163
+ const word = state[full];
164
+ for (let i = 0; i < tail; i++)
165
+ out[off + i] = word >>> (8 * i);
166
+ }
167
+ digest() {
168
+ const { buffer, outputLen } = this;
169
+ this.digestInto(buffer);
170
+ // Return a copy so callers do not alias the instance scratch buffer used during finalization.
171
+ const res = buffer.slice(0, outputLen);
172
+ this.destroy();
173
+ return res;
174
+ }
175
+ _cloneInto(to) {
176
+ const { buffer, length, finished, destroyed, outputLen, pos } = this;
177
+ // Recreate only `dkLen`; key/salt/personalization are already absorbed into the copied state.
178
+ to ||= new this.constructor({ dkLen: outputLen });
179
+ to.set(...this.get());
180
+ to.buffer.set(buffer);
181
+ to.destroyed = destroyed;
182
+ to.finished = finished;
183
+ to.length = length;
184
+ to.pos = pos;
185
+ // @ts-ignore
186
+ to.outputLen = outputLen;
187
+ return to;
188
+ }
189
+ clone() {
190
+ return this._cloneInto();
191
+ }
192
+ }
193
+ /** Internal blake2b hash class with state stored as LE u32 low/high halves. */
194
+ export class _BLAKE2b extends _BLAKE2 {
195
+ // Same IV words as SHA-512 / BLAKE2b, encoded as LE u32 low/high halves.
196
+ v0l = B2B_IV[0] | 0;
197
+ v0h = B2B_IV[1] | 0;
198
+ v1l = B2B_IV[2] | 0;
199
+ v1h = B2B_IV[3] | 0;
200
+ v2l = B2B_IV[4] | 0;
201
+ v2h = B2B_IV[5] | 0;
202
+ v3l = B2B_IV[6] | 0;
203
+ v3h = B2B_IV[7] | 0;
204
+ v4l = B2B_IV[8] | 0;
205
+ v4h = B2B_IV[9] | 0;
206
+ v5l = B2B_IV[10] | 0;
207
+ v5h = B2B_IV[11] | 0;
208
+ v6l = B2B_IV[12] | 0;
209
+ v6h = B2B_IV[13] | 0;
210
+ v7l = B2B_IV[14] | 0;
211
+ v7h = B2B_IV[15] | 0;
212
+ constructor(opts = {}) {
213
+ const olen = opts.dkLen === undefined ? 64 : opts.dkLen;
214
+ super(128, olen);
215
+ checkBlake2Opts(olen, opts, 64, 16, 16);
216
+ let { key, personalization, salt } = opts;
217
+ let keyLength = 0;
218
+ if (key !== undefined) {
219
+ abytes(key, undefined, 'key');
220
+ keyLength = key.length;
221
+ }
222
+ // RFC 7693 §2.5: xor `p[0] = 0x0101kknn` into the low 32 bits of `h[0]`;
223
+ // the high 32 bits stay at `IV[0]`.
224
+ this.v0l ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);
225
+ if (salt !== undefined) {
226
+ abytes(salt, undefined, 'salt');
227
+ const slt = u32(salt);
228
+ this.v4l ^= swap8IfBE(slt[0]);
229
+ this.v4h ^= swap8IfBE(slt[1]);
230
+ this.v5l ^= swap8IfBE(slt[2]);
231
+ this.v5h ^= swap8IfBE(slt[3]);
232
+ }
233
+ if (personalization !== undefined) {
234
+ abytes(personalization, undefined, 'personalization');
235
+ const pers = u32(personalization);
236
+ this.v6l ^= swap8IfBE(pers[0]);
237
+ this.v6h ^= swap8IfBE(pers[1]);
238
+ this.v7l ^= swap8IfBE(pers[2]);
239
+ this.v7h ^= swap8IfBE(pers[3]);
240
+ }
241
+ if (key !== undefined) {
242
+ // Pad to blockLen and update
243
+ const tmp = new Uint8Array(this.blockLen);
244
+ tmp.set(key);
245
+ this.update(tmp);
246
+ }
247
+ }
248
+ // prettier-ignore
249
+ get() {
250
+ let { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this;
251
+ return [v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h];
252
+ }
253
+ // prettier-ignore
254
+ set(v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h) {
255
+ this.v0l = v0l | 0;
256
+ this.v0h = v0h | 0;
257
+ this.v1l = v1l | 0;
258
+ this.v1h = v1h | 0;
259
+ this.v2l = v2l | 0;
260
+ this.v2h = v2h | 0;
261
+ this.v3l = v3l | 0;
262
+ this.v3h = v3h | 0;
263
+ this.v4l = v4l | 0;
264
+ this.v4h = v4h | 0;
265
+ this.v5l = v5l | 0;
266
+ this.v5h = v5h | 0;
267
+ this.v6l = v6l | 0;
268
+ this.v6h = v6h | 0;
269
+ this.v7l = v7l | 0;
270
+ this.v7h = v7h | 0;
271
+ }
272
+ compress(msg, offset, isLast) {
273
+ this.get().forEach((v, i) => (BBUF[i] = v)); // First half from state.
274
+ BBUF.set(B2B_IV, 16); // Second half from IV.
275
+ let { h, l } = u64.fromBig(BigInt(this.length));
276
+ BBUF[24] = B2B_IV[8] ^ l; // Low word of the offset.
277
+ BBUF[25] = B2B_IV[9] ^ h; // High word.
278
+ // Invert all bits for last block
279
+ if (isLast) {
280
+ BBUF[28] = ~BBUF[28];
281
+ BBUF[29] = ~BBUF[29];
282
+ }
283
+ let j = 0;
284
+ const s = BSIGMA;
285
+ // SIGMA selects 64-bit message words; multiply by 2 because `msg` stores
286
+ // each word as [low32, high32].
287
+ for (let i = 0; i < 12; i++) {
288
+ G1b(0, 4, 8, 12, msg, offset + 2 * s[j++]);
289
+ G2b(0, 4, 8, 12, msg, offset + 2 * s[j++]);
290
+ G1b(1, 5, 9, 13, msg, offset + 2 * s[j++]);
291
+ G2b(1, 5, 9, 13, msg, offset + 2 * s[j++]);
292
+ G1b(2, 6, 10, 14, msg, offset + 2 * s[j++]);
293
+ G2b(2, 6, 10, 14, msg, offset + 2 * s[j++]);
294
+ G1b(3, 7, 11, 15, msg, offset + 2 * s[j++]);
295
+ G2b(3, 7, 11, 15, msg, offset + 2 * s[j++]);
296
+ G1b(0, 5, 10, 15, msg, offset + 2 * s[j++]);
297
+ G2b(0, 5, 10, 15, msg, offset + 2 * s[j++]);
298
+ G1b(1, 6, 11, 12, msg, offset + 2 * s[j++]);
299
+ G2b(1, 6, 11, 12, msg, offset + 2 * s[j++]);
300
+ G1b(2, 7, 8, 13, msg, offset + 2 * s[j++]);
301
+ G2b(2, 7, 8, 13, msg, offset + 2 * s[j++]);
302
+ G1b(3, 4, 9, 14, msg, offset + 2 * s[j++]);
303
+ G2b(3, 4, 9, 14, msg, offset + 2 * s[j++]);
304
+ }
305
+ this.v0l ^= BBUF[0] ^ BBUF[16];
306
+ this.v0h ^= BBUF[1] ^ BBUF[17];
307
+ this.v1l ^= BBUF[2] ^ BBUF[18];
308
+ this.v1h ^= BBUF[3] ^ BBUF[19];
309
+ this.v2l ^= BBUF[4] ^ BBUF[20];
310
+ this.v2h ^= BBUF[5] ^ BBUF[21];
311
+ this.v3l ^= BBUF[6] ^ BBUF[22];
312
+ this.v3h ^= BBUF[7] ^ BBUF[23];
313
+ this.v4l ^= BBUF[8] ^ BBUF[24];
314
+ this.v4h ^= BBUF[9] ^ BBUF[25];
315
+ this.v5l ^= BBUF[10] ^ BBUF[26];
316
+ this.v5h ^= BBUF[11] ^ BBUF[27];
317
+ this.v6l ^= BBUF[12] ^ BBUF[28];
318
+ this.v6h ^= BBUF[13] ^ BBUF[29];
319
+ this.v7l ^= BBUF[14] ^ BBUF[30];
320
+ this.v7h ^= BBUF[15] ^ BBUF[31];
321
+ clean(BBUF);
322
+ }
323
+ destroy() {
324
+ this.destroyed = true;
325
+ clean(this.buffer32);
326
+ this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
327
+ }
328
+ }
329
+ /**
330
+ * Blake2b hash function. 64-bit. 1.5x slower than blake2s in JS.
331
+ * @param msg - message that would be hashed
332
+ * @param opts - Optional output, MAC, salt, and personalization settings.
333
+ * `dkLen` must be 1..64 bytes; `salt` and `personalization`, if present,
334
+ * must be 16 bytes each. See {@link Blake2Opts}.
335
+ * @returns Digest bytes.
336
+ * @example
337
+ * Hash a message with Blake2b.
338
+ * ```ts
339
+ * blake2b(new Uint8Array([97, 98, 99]));
340
+ * ```
341
+ */
342
+ export const blake2b = /* @__PURE__ */ createHasher((opts) => new _BLAKE2b(opts));
343
+ /**
344
+ * BLAKE2-compress core method.
345
+ * Runs only the round function over a caller-supplied local vector; callers initialize `v0..v15`
346
+ * and apply the final `h[i] ^= v[i] ^ v[i + 8]` fold themselves.
347
+ * @param s - flattened sigma schedule bytes
348
+ * @param offset - starting word offset inside `msg`, not a byte offset
349
+ * @param msg - message words
350
+ * @param rounds - round count to execute
351
+ * @param v0 - state word 0
352
+ * @param v1 - state word 1
353
+ * @param v2 - state word 2
354
+ * @param v3 - state word 3
355
+ * @param v4 - state word 4
356
+ * @param v5 - state word 5
357
+ * @param v6 - state word 6
358
+ * @param v7 - state word 7
359
+ * @param v8 - state word 8
360
+ * @param v9 - state word 9
361
+ * @param v10 - state word 10
362
+ * @param v11 - state word 11
363
+ * @param v12 - state word 12
364
+ * @param v13 - state word 13
365
+ * @param v14 - state word 14
366
+ * @param v15 - state word 15
367
+ * @returns Updated compression state words.
368
+ * @example
369
+ * Run the BLAKE2 compression core on zeroed state and message words.
370
+ * ```ts
371
+ * import { compress } from '@noble/hashes/blake2.js';
372
+ * const state = compress(
373
+ * new Uint8Array(16),
374
+ * 0,
375
+ * new Uint32Array(16),
376
+ * 1,
377
+ * 0, 0, 0, 0, 0, 0, 0, 0,
378
+ * 0, 0, 0, 0, 0, 0, 0, 0
379
+ * );
380
+ * state.v0;
381
+ * ```
382
+ */
383
+ // prettier-ignore
384
+ export function compress(s, offset, msg, rounds, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) {
385
+ let j = 0;
386
+ for (let i = 0; i < rounds; i++) {
387
+ ({ a: v0, b: v4, c: v8, d: v12 } = G1s(v0, v4, v8, v12, msg[offset + s[j++]]));
388
+ ({ a: v0, b: v4, c: v8, d: v12 } = G2s(v0, v4, v8, v12, msg[offset + s[j++]]));
389
+ ({ a: v1, b: v5, c: v9, d: v13 } = G1s(v1, v5, v9, v13, msg[offset + s[j++]]));
390
+ ({ a: v1, b: v5, c: v9, d: v13 } = G2s(v1, v5, v9, v13, msg[offset + s[j++]]));
391
+ ({ a: v2, b: v6, c: v10, d: v14 } = G1s(v2, v6, v10, v14, msg[offset + s[j++]]));
392
+ ({ a: v2, b: v6, c: v10, d: v14 } = G2s(v2, v6, v10, v14, msg[offset + s[j++]]));
393
+ ({ a: v3, b: v7, c: v11, d: v15 } = G1s(v3, v7, v11, v15, msg[offset + s[j++]]));
394
+ ({ a: v3, b: v7, c: v11, d: v15 } = G2s(v3, v7, v11, v15, msg[offset + s[j++]]));
395
+ ({ a: v0, b: v5, c: v10, d: v15 } = G1s(v0, v5, v10, v15, msg[offset + s[j++]]));
396
+ ({ a: v0, b: v5, c: v10, d: v15 } = G2s(v0, v5, v10, v15, msg[offset + s[j++]]));
397
+ ({ a: v1, b: v6, c: v11, d: v12 } = G1s(v1, v6, v11, v12, msg[offset + s[j++]]));
398
+ ({ a: v1, b: v6, c: v11, d: v12 } = G2s(v1, v6, v11, v12, msg[offset + s[j++]]));
399
+ ({ a: v2, b: v7, c: v8, d: v13 } = G1s(v2, v7, v8, v13, msg[offset + s[j++]]));
400
+ ({ a: v2, b: v7, c: v8, d: v13 } = G2s(v2, v7, v8, v13, msg[offset + s[j++]]));
401
+ ({ a: v3, b: v4, c: v9, d: v14 } = G1s(v3, v4, v9, v14, msg[offset + s[j++]]));
402
+ ({ a: v3, b: v4, c: v9, d: v14 } = G2s(v3, v4, v9, v14, msg[offset + s[j++]]));
403
+ }
404
+ return { v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 };
405
+ }
406
+ // Blake2s reuses the SHA-256 IV words as-is.
407
+ const B2S_IV = /* @__PURE__ */ SHA256_IV.slice();
408
+ /** Internal blake2s hash class. */
409
+ export class _BLAKE2s extends _BLAKE2 {
410
+ // Internal state, same as SHA-256
411
+ v0 = B2S_IV[0] | 0;
412
+ v1 = B2S_IV[1] | 0;
413
+ v2 = B2S_IV[2] | 0;
414
+ v3 = B2S_IV[3] | 0;
415
+ v4 = B2S_IV[4] | 0;
416
+ v5 = B2S_IV[5] | 0;
417
+ v6 = B2S_IV[6] | 0;
418
+ v7 = B2S_IV[7] | 0;
419
+ constructor(opts = {}) {
420
+ const olen = opts.dkLen === undefined ? 32 : opts.dkLen;
421
+ super(64, olen);
422
+ checkBlake2Opts(olen, opts, 32, 8, 8);
423
+ let { key, personalization, salt } = opts;
424
+ let keyLength = 0;
425
+ if (key !== undefined) {
426
+ abytes(key, undefined, 'key');
427
+ keyLength = key.length;
428
+ }
429
+ // RFC 7693 §2.5: xor `p[0] = 0x0101kknn` directly into `h[0]`, since
430
+ // BLAKE2s stores each state word as one `u32`.
431
+ this.v0 ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);
432
+ if (salt !== undefined) {
433
+ abytes(salt, undefined, 'salt');
434
+ const slt = u32(salt);
435
+ this.v4 ^= swap8IfBE(slt[0]);
436
+ this.v5 ^= swap8IfBE(slt[1]);
437
+ }
438
+ if (personalization !== undefined) {
439
+ abytes(personalization, undefined, 'personalization');
440
+ const pers = u32(personalization);
441
+ this.v6 ^= swap8IfBE(pers[0]);
442
+ this.v7 ^= swap8IfBE(pers[1]);
443
+ }
444
+ if (key !== undefined) {
445
+ // Pad to blockLen and update
446
+ const tmp = new Uint8Array(this.blockLen);
447
+ tmp.set(key);
448
+ this.update(tmp);
449
+ }
450
+ }
451
+ get() {
452
+ const { v0, v1, v2, v3, v4, v5, v6, v7 } = this;
453
+ return [v0, v1, v2, v3, v4, v5, v6, v7];
454
+ }
455
+ // prettier-ignore
456
+ set(v0, v1, v2, v3, v4, v5, v6, v7) {
457
+ this.v0 = v0 | 0;
458
+ this.v1 = v1 | 0;
459
+ this.v2 = v2 | 0;
460
+ this.v3 = v3 | 0;
461
+ this.v4 = v4 | 0;
462
+ this.v5 = v5 | 0;
463
+ this.v6 = v6 | 0;
464
+ this.v7 = v7 | 0;
465
+ }
466
+ compress(msg, offset, isLast) {
467
+ const { h, l } = u64.fromBig(BigInt(this.length));
468
+ // Seed v8..v15 from the IV, xor the low/high 32-bit byte counter into
469
+ // v12/v13, and invert v14 on the final block.
470
+ // prettier-ignore
471
+ const { v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 } = compress(BSIGMA, offset, msg, 10, this.v0, this.v1, this.v2, this.v3, this.v4, this.v5, this.v6, this.v7, B2S_IV[0], B2S_IV[1], B2S_IV[2], B2S_IV[3], l ^ B2S_IV[4], h ^ B2S_IV[5], isLast ? ~B2S_IV[6] : B2S_IV[6], B2S_IV[7]);
472
+ this.v0 ^= v0 ^ v8;
473
+ this.v1 ^= v1 ^ v9;
474
+ this.v2 ^= v2 ^ v10;
475
+ this.v3 ^= v3 ^ v11;
476
+ this.v4 ^= v4 ^ v12;
477
+ this.v5 ^= v5 ^ v13;
478
+ this.v6 ^= v6 ^ v14;
479
+ this.v7 ^= v7 ^ v15;
480
+ }
481
+ destroy() {
482
+ this.destroyed = true;
483
+ clean(this.buffer32);
484
+ this.set(0, 0, 0, 0, 0, 0, 0, 0);
485
+ }
486
+ }
487
+ /**
488
+ * Blake2s hash function. Focuses on 8-bit to 32-bit platforms. 1.5x faster than blake2b in JS.
489
+ * @param msg - message that would be hashed
490
+ * @param opts - Optional output, MAC, salt, and personalization settings.
491
+ * `dkLen` must be 1..32 bytes; `salt` and `personalization`, if present,
492
+ * must be 8 bytes each. See {@link Blake2Opts}.
493
+ * @returns Digest bytes.
494
+ * @example
495
+ * Hash a message with Blake2s.
496
+ * ```ts
497
+ * blake2s(new Uint8Array([97, 98, 99]));
498
+ * ```
499
+ */
500
+ export const blake2s = /* @__PURE__ */ createHasher((opts) => new _BLAKE2s(opts));
501
+ //# sourceMappingURL=blake2.js.map