@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 @@
1
+ {"version":3,"file":"sha3-addons.js","sourceRoot":"","sources":["src/sha3-addons.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ import { type CHash, type CHashXOF, type Hash, type HashXOF, type TArg, type TRet } from './utils.ts';
2
+ /**
3
+ * `keccakf1600` internal permutation, additionally allows adjusting the round count.
4
+ * @param s - 5x5 Keccak state encoded as 25 lanes split into 50 uint32 words
5
+ * in this file's local little-endian lane-word order
6
+ * @param rounds - number of rounds to execute
7
+ * @throws If `rounds` is outside the supported `1..24` range. {@link Error}
8
+ * @example
9
+ * Permute a Keccak state with the default 24 rounds.
10
+ * ```ts
11
+ * keccakP(new Uint32Array(50));
12
+ * ```
13
+ */
14
+ export declare function keccakP(s: TArg<Uint32Array>, rounds?: number): void;
15
+ /**
16
+ * Keccak sponge function.
17
+ * @param blockLen - absorb/squeeze rate in bytes
18
+ * @param suffix - domain separation suffix byte
19
+ * @param outputLen - default digest length in bytes. This base sponge only
20
+ * requires a non-negative integer; wrappers that need positive output
21
+ * lengths must enforce that themselves.
22
+ * @param enableXOF - whether XOF output is allowed
23
+ * @param rounds - number of Keccak-f rounds
24
+ * @example
25
+ * Build a sponge state, absorb bytes, then finalize a digest.
26
+ * ```ts
27
+ * const hash = new Keccak(136, 0x06, 32);
28
+ * hash.update(new Uint8Array([1, 2, 3]));
29
+ * hash.digest();
30
+ * ```
31
+ */
32
+ export declare class Keccak implements Hash<Keccak>, HashXOF<Keccak> {
33
+ protected state: Uint8Array;
34
+ protected pos: number;
35
+ protected posOut: number;
36
+ protected finished: boolean;
37
+ protected state32: Uint32Array;
38
+ protected destroyed: boolean;
39
+ blockLen: number;
40
+ suffix: number;
41
+ outputLen: number;
42
+ canXOF: boolean;
43
+ protected enableXOF: boolean;
44
+ protected rounds: number;
45
+ constructor(blockLen: number, suffix: number, outputLen: number, enableXOF?: boolean, rounds?: number);
46
+ clone(): Keccak;
47
+ protected keccak(): void;
48
+ update(data: TArg<Uint8Array>): this;
49
+ protected finish(): void;
50
+ protected writeInto(out: TArg<Uint8Array>): TRet<Uint8Array>;
51
+ xofInto(out: TArg<Uint8Array>): TRet<Uint8Array>;
52
+ xof(bytes: number): TRet<Uint8Array>;
53
+ digestInto(out: TArg<Uint8Array>): void;
54
+ digest(): TRet<Uint8Array>;
55
+ destroy(): void;
56
+ _cloneInto(to?: Keccak): Keccak;
57
+ }
58
+ /**
59
+ * SHA3-224 hash function.
60
+ * @param msg - message bytes to hash
61
+ * @returns Digest bytes.
62
+ * @example
63
+ * Hash a message with SHA3-224.
64
+ * ```ts
65
+ * sha3_224(new Uint8Array([97, 98, 99]));
66
+ * ```
67
+ */
68
+ export declare const sha3_224: TRet<CHash>;
69
+ /**
70
+ * SHA3-256 hash function. Different from keccak-256.
71
+ * @param msg - message bytes to hash
72
+ * @returns Digest bytes.
73
+ * @example
74
+ * Hash a message with SHA3-256.
75
+ * ```ts
76
+ * sha3_256(new Uint8Array([97, 98, 99]));
77
+ * ```
78
+ */
79
+ export declare const sha3_256: TRet<CHash>;
80
+ /**
81
+ * SHA3-384 hash function.
82
+ * @param msg - message bytes to hash
83
+ * @returns Digest bytes.
84
+ * @example
85
+ * Hash a message with SHA3-384.
86
+ * ```ts
87
+ * sha3_384(new Uint8Array([97, 98, 99]));
88
+ * ```
89
+ */
90
+ export declare const sha3_384: TRet<CHash>;
91
+ /**
92
+ * SHA3-512 hash function.
93
+ * @param msg - message bytes to hash
94
+ * @returns Digest bytes.
95
+ * @example
96
+ * Hash a message with SHA3-512.
97
+ * ```ts
98
+ * sha3_512(new Uint8Array([97, 98, 99]));
99
+ * ```
100
+ */
101
+ export declare const sha3_512: TRet<CHash>;
102
+ /**
103
+ * Keccak-224 hash function.
104
+ * @param msg - message bytes to hash
105
+ * @returns Digest bytes.
106
+ * @example
107
+ * Hash a message with Keccak-224.
108
+ * ```ts
109
+ * keccak_224(new Uint8Array([97, 98, 99]));
110
+ * ```
111
+ */
112
+ export declare const keccak_224: TRet<CHash>;
113
+ /**
114
+ * Keccak-256 hash function. Different from SHA3-256.
115
+ * @param msg - message bytes to hash
116
+ * @returns Digest bytes.
117
+ * @example
118
+ * Hash a message with Keccak-256.
119
+ * ```ts
120
+ * keccak_256(new Uint8Array([97, 98, 99]));
121
+ * ```
122
+ */
123
+ export declare const keccak_256: TRet<CHash>;
124
+ /**
125
+ * Keccak-384 hash function.
126
+ * @param msg - message bytes to hash
127
+ * @returns Digest bytes.
128
+ * @example
129
+ * Hash a message with Keccak-384.
130
+ * ```ts
131
+ * keccak_384(new Uint8Array([97, 98, 99]));
132
+ * ```
133
+ */
134
+ export declare const keccak_384: TRet<CHash>;
135
+ /**
136
+ * Keccak-512 hash function.
137
+ * @param msg - message bytes to hash
138
+ * @returns Digest bytes.
139
+ * @example
140
+ * Hash a message with Keccak-512.
141
+ * ```ts
142
+ * keccak_512(new Uint8Array([97, 98, 99]));
143
+ * ```
144
+ */
145
+ export declare const keccak_512: TRet<CHash>;
146
+ /** Options for SHAKE XOF. */
147
+ export type ShakeOpts = {
148
+ /** Desired number of output bytes. */
149
+ dkLen?: number;
150
+ };
151
+ /**
152
+ * SHAKE128 XOF with 128-bit security and a 16-byte default output.
153
+ * @param msg - message bytes to hash
154
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
155
+ * @returns Digest bytes.
156
+ * @example
157
+ * Hash a message with SHAKE128.
158
+ * ```ts
159
+ * shake128(new Uint8Array([97, 98, 99]), { dkLen: 32 });
160
+ * ```
161
+ */
162
+ export declare const shake128: TRet<CHashXOF<Keccak, ShakeOpts>>;
163
+ /**
164
+ * SHAKE256 XOF with 256-bit security and a 32-byte default output.
165
+ * @param msg - message bytes to hash
166
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
167
+ * @returns Digest bytes.
168
+ * @example
169
+ * Hash a message with SHAKE256.
170
+ * ```ts
171
+ * shake256(new Uint8Array([97, 98, 99]), { dkLen: 64 });
172
+ * ```
173
+ */
174
+ export declare const shake256: TRet<CHashXOF<Keccak, ShakeOpts>>;
175
+ /**
176
+ * SHAKE128 XOF with 256-bit output (NIST version).
177
+ * @param msg - message bytes to hash
178
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
179
+ * @returns Digest bytes.
180
+ * @example
181
+ * Hash a message with SHAKE128 using a 32-byte default output.
182
+ * ```ts
183
+ * shake128_32(new Uint8Array([97, 98, 99]), { dkLen: 32 });
184
+ * ```
185
+ */
186
+ export declare const shake128_32: TRet<CHashXOF<Keccak, ShakeOpts>>;
187
+ /**
188
+ * SHAKE256 XOF with 512-bit output (NIST version).
189
+ * @param msg - message bytes to hash
190
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
191
+ * @returns Digest bytes.
192
+ * @example
193
+ * Hash a message with SHAKE256 using a 64-byte default output.
194
+ * ```ts
195
+ * shake256_64(new Uint8Array([97, 98, 99]), { dkLen: 64 });
196
+ * ```
197
+ */
198
+ export declare const shake256_64: TRet<CHashXOF<Keccak, ShakeOpts>>;
199
+ //# sourceMappingURL=sha3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha3.d.ts","sourceRoot":"","sources":["src/sha3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,431 @@
1
+ /**
2
+ * SHA3 (keccak) hash function, based on a new "Sponge function" design.
3
+ * Different from older hashes, the internal state is bigger than output size.
4
+ *
5
+ * Check out
6
+ * {@link https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf | FIPS-202},
7
+ * {@link https://keccak.team/keccak.html | Website}, and
8
+ * {@link https://crypto.stackexchange.com/q/15727 | the differences between
9
+ * SHA-3 and Keccak}.
10
+ *
11
+ * Check out `sha3-addons` module for cSHAKE, k12, and others.
12
+ * @module
13
+ */
14
+ import { rotlBH, rotlBL, rotlSH, rotlSL, split } from "./_u64.js";
15
+ // prettier-ignore
16
+ import { abytes, aexists, anumber, aoutput, clean, createHasher, oidNist, swap32IfBE, u32 } from "./utils.js";
17
+ // No __PURE__ annotations in sha3 header:
18
+ // EVERYTHING is in fact used on every export.
19
+ // Various per round constants calculations
20
+ const _0n = BigInt(0);
21
+ const _1n = BigInt(1);
22
+ const _2n = BigInt(2);
23
+ const _7n = BigInt(7);
24
+ const _256n = BigInt(256);
25
+ // FIPS 202 Algorithm 5 rc(): when the outgoing bit is 1, the 8-bit LFSR xors
26
+ // taps 0, 4, 5, and 6, which compresses to the feedback mask `0x71`.
27
+ const _0x71n = BigInt(0x71);
28
+ const SHA3_PI = [];
29
+ const SHA3_ROTL = [];
30
+ const _SHA3_IOTA = []; // no pure annotation: var is always used
31
+ for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
32
+ // Pi
33
+ [x, y] = [y, (2 * x + 3 * y) % 5];
34
+ SHA3_PI.push(2 * (5 * y + x));
35
+ // Rotational
36
+ SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);
37
+ // Iota
38
+ let t = _0n;
39
+ for (let j = 0; j < 7; j++) {
40
+ R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;
41
+ if (R & _2n)
42
+ t ^= _1n << ((_1n << BigInt(j)) - _1n);
43
+ }
44
+ _SHA3_IOTA.push(t);
45
+ }
46
+ const IOTAS = split(_SHA3_IOTA, true);
47
+ // `split(..., true)` keeps the local little-endian lane-word layout used by
48
+ // `state32`, so these `H` / `L` tables follow the file's first-word /
49
+ // second-word lane slots rather than `_u64.ts`'s usual high/low naming.
50
+ const SHA3_IOTA_H = IOTAS[0];
51
+ const SHA3_IOTA_L = IOTAS[1];
52
+ // Left rotation (without 0, 32, 64)
53
+ const rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));
54
+ const rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));
55
+ /**
56
+ * `keccakf1600` internal permutation, additionally allows adjusting the round count.
57
+ * @param s - 5x5 Keccak state encoded as 25 lanes split into 50 uint32 words
58
+ * in this file's local little-endian lane-word order
59
+ * @param rounds - number of rounds to execute
60
+ * @throws If `rounds` is outside the supported `1..24` range. {@link Error}
61
+ * @example
62
+ * Permute a Keccak state with the default 24 rounds.
63
+ * ```ts
64
+ * keccakP(new Uint32Array(50));
65
+ * ```
66
+ */
67
+ export function keccakP(s, rounds = 24) {
68
+ anumber(rounds, 'rounds');
69
+ // This implementation precomputes only the standard Keccak-f[1600] 24-round Iota table.
70
+ if (rounds < 1 || rounds > 24)
71
+ throw new Error('"rounds" expected integer 1..24');
72
+ const B = new Uint32Array(5 * 2);
73
+ // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)
74
+ for (let round = 24 - rounds; round < 24; round++) {
75
+ // Theta θ
76
+ for (let x = 0; x < 10; x++)
77
+ B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];
78
+ for (let x = 0; x < 10; x += 2) {
79
+ const idx1 = (x + 8) % 10;
80
+ const idx0 = (x + 2) % 10;
81
+ const B0 = B[idx0];
82
+ const B1 = B[idx0 + 1];
83
+ const Th = rotlH(B0, B1, 1) ^ B[idx1];
84
+ const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];
85
+ for (let y = 0; y < 50; y += 10) {
86
+ s[x + y] ^= Th;
87
+ s[x + y + 1] ^= Tl;
88
+ }
89
+ }
90
+ // Rho (ρ) and Pi (π)
91
+ let curH = s[2];
92
+ let curL = s[3];
93
+ for (let t = 0; t < 24; t++) {
94
+ const shift = SHA3_ROTL[t];
95
+ const Th = rotlH(curH, curL, shift);
96
+ const Tl = rotlL(curH, curL, shift);
97
+ const PI = SHA3_PI[t];
98
+ curH = s[PI];
99
+ curL = s[PI + 1];
100
+ s[PI] = Th;
101
+ s[PI + 1] = Tl;
102
+ }
103
+ // Chi (χ)
104
+ // Same as:
105
+ // for (let x = 0; x < 10; x++) B[x] = s[y + x];
106
+ // for (let x = 0; x < 10; x++) s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];
107
+ for (let y = 0; y < 50; y += 10) {
108
+ const b0 = s[y], b1 = s[y + 1], b2 = s[y + 2], b3 = s[y + 3];
109
+ s[y] ^= ~s[y + 2] & s[y + 4];
110
+ s[y + 1] ^= ~s[y + 3] & s[y + 5];
111
+ s[y + 2] ^= ~s[y + 4] & s[y + 6];
112
+ s[y + 3] ^= ~s[y + 5] & s[y + 7];
113
+ s[y + 4] ^= ~s[y + 6] & s[y + 8];
114
+ s[y + 5] ^= ~s[y + 7] & s[y + 9];
115
+ s[y + 6] ^= ~s[y + 8] & b0;
116
+ s[y + 7] ^= ~s[y + 9] & b1;
117
+ s[y + 8] ^= ~b0 & b2;
118
+ s[y + 9] ^= ~b1 & b3;
119
+ }
120
+ // Iota (ι)
121
+ s[0] ^= SHA3_IOTA_H[round];
122
+ s[1] ^= SHA3_IOTA_L[round];
123
+ }
124
+ clean(B);
125
+ }
126
+ /**
127
+ * Keccak sponge function.
128
+ * @param blockLen - absorb/squeeze rate in bytes
129
+ * @param suffix - domain separation suffix byte
130
+ * @param outputLen - default digest length in bytes. This base sponge only
131
+ * requires a non-negative integer; wrappers that need positive output
132
+ * lengths must enforce that themselves.
133
+ * @param enableXOF - whether XOF output is allowed
134
+ * @param rounds - number of Keccak-f rounds
135
+ * @example
136
+ * Build a sponge state, absorb bytes, then finalize a digest.
137
+ * ```ts
138
+ * const hash = new Keccak(136, 0x06, 32);
139
+ * hash.update(new Uint8Array([1, 2, 3]));
140
+ * hash.digest();
141
+ * ```
142
+ */
143
+ export class Keccak {
144
+ state;
145
+ pos = 0;
146
+ posOut = 0;
147
+ finished = false;
148
+ state32;
149
+ destroyed = false;
150
+ blockLen;
151
+ suffix;
152
+ outputLen;
153
+ canXOF;
154
+ enableXOF = false;
155
+ rounds;
156
+ // NOTE: we accept arguments in bytes instead of bits here.
157
+ constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
158
+ this.blockLen = blockLen;
159
+ this.suffix = suffix;
160
+ this.outputLen = outputLen;
161
+ this.enableXOF = enableXOF;
162
+ this.canXOF = enableXOF;
163
+ this.rounds = rounds;
164
+ // Can be passed from user as dkLen
165
+ anumber(outputLen, 'outputLen');
166
+ // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes
167
+ // 0 < blockLen < 200
168
+ if (!(0 < blockLen && blockLen < 200))
169
+ throw new Error('only keccak-f1600 function is supported');
170
+ this.state = new Uint8Array(200);
171
+ this.state32 = u32(this.state);
172
+ }
173
+ clone() {
174
+ return this._cloneInto();
175
+ }
176
+ keccak() {
177
+ swap32IfBE(this.state32);
178
+ keccakP(this.state32, this.rounds);
179
+ swap32IfBE(this.state32);
180
+ this.posOut = 0;
181
+ this.pos = 0;
182
+ }
183
+ update(data) {
184
+ aexists(this);
185
+ abytes(data);
186
+ const { blockLen, state } = this;
187
+ const len = data.length;
188
+ for (let pos = 0; pos < len;) {
189
+ const take = Math.min(blockLen - this.pos, len - pos);
190
+ for (let i = 0; i < take; i++)
191
+ state[this.pos++] ^= data[pos++];
192
+ if (this.pos === blockLen)
193
+ this.keccak();
194
+ }
195
+ return this;
196
+ }
197
+ finish() {
198
+ if (this.finished)
199
+ return;
200
+ this.finished = true;
201
+ const { state, suffix, pos, blockLen } = this;
202
+ // FIPS 202 appends the SHA3/SHAKE domain-separation suffix before pad10*1.
203
+ // These byte values already include the first padding bit, while the
204
+ // final `0x80` below supplies the closing `1` bit in the last rate byte.
205
+ state[pos] ^= suffix;
206
+ // If that combined suffix lands in the last rate byte and already sets
207
+ // bit 7, absorb it first so the final pad10*1 bit can be xored into a
208
+ // fresh block.
209
+ if ((suffix & 0x80) !== 0 && pos === blockLen - 1)
210
+ this.keccak();
211
+ state[blockLen - 1] ^= 0x80;
212
+ this.keccak();
213
+ }
214
+ writeInto(out) {
215
+ aexists(this, false);
216
+ abytes(out);
217
+ this.finish();
218
+ const bufferOut = this.state;
219
+ const { blockLen } = this;
220
+ for (let pos = 0, len = out.length; pos < len;) {
221
+ if (this.posOut >= blockLen)
222
+ this.keccak();
223
+ const take = Math.min(blockLen - this.posOut, len - pos);
224
+ out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);
225
+ this.posOut += take;
226
+ pos += take;
227
+ }
228
+ return out;
229
+ }
230
+ xofInto(out) {
231
+ // Plain SHA3/Keccak usage with XOF is probably a mistake, but this base
232
+ // class is also reused by SHAKE/cSHAKE/KMAC/TupleHash/ParallelHash/
233
+ // TurboSHAKE/KangarooTwelve wrappers that intentionally enable XOF.
234
+ if (!this.enableXOF)
235
+ throw new Error('XOF is not possible for this instance');
236
+ return this.writeInto(out);
237
+ }
238
+ xof(bytes) {
239
+ anumber(bytes);
240
+ return this.xofInto(new Uint8Array(bytes));
241
+ }
242
+ digestInto(out) {
243
+ aoutput(out, this);
244
+ if (this.finished)
245
+ throw new Error('digest() was already called');
246
+ // `aoutput(...)` allows oversized buffers; digestInto() must fill only the advertised digest.
247
+ this.writeInto(out.subarray(0, this.outputLen));
248
+ this.destroy();
249
+ }
250
+ digest() {
251
+ const out = new Uint8Array(this.outputLen);
252
+ this.digestInto(out);
253
+ return out;
254
+ }
255
+ destroy() {
256
+ this.destroyed = true;
257
+ clean(this.state);
258
+ }
259
+ _cloneInto(to) {
260
+ const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
261
+ to ||= new Keccak(blockLen, suffix, outputLen, enableXOF, rounds);
262
+ // Reused destinations can come from a different rate/capacity variant, so clone must rewrite
263
+ // the sponge geometry as well as the state words.
264
+ to.blockLen = blockLen;
265
+ to.state32.set(this.state32);
266
+ to.pos = this.pos;
267
+ to.posOut = this.posOut;
268
+ to.finished = this.finished;
269
+ to.rounds = rounds;
270
+ // Suffix can change in cSHAKE
271
+ to.suffix = suffix;
272
+ to.outputLen = outputLen;
273
+ to.enableXOF = enableXOF;
274
+ // Clones must preserve the public capability bit too; `_KMAC` reuses this path and deep clone
275
+ // tests compare instance fields directly, so leaving `canXOF` behind makes the clone lie.
276
+ to.canXOF = this.canXOF;
277
+ to.destroyed = this.destroyed;
278
+ return to;
279
+ }
280
+ }
281
+ const genKeccak = (suffix, blockLen, outputLen, info = {}) => createHasher(() => new Keccak(blockLen, suffix, outputLen), info);
282
+ /**
283
+ * SHA3-224 hash function.
284
+ * @param msg - message bytes to hash
285
+ * @returns Digest bytes.
286
+ * @example
287
+ * Hash a message with SHA3-224.
288
+ * ```ts
289
+ * sha3_224(new Uint8Array([97, 98, 99]));
290
+ * ```
291
+ */
292
+ export const sha3_224 = /* @__PURE__ */ genKeccak(0x06, 144, 28,
293
+ /* @__PURE__ */ oidNist(0x07));
294
+ /**
295
+ * SHA3-256 hash function. Different from keccak-256.
296
+ * @param msg - message bytes to hash
297
+ * @returns Digest bytes.
298
+ * @example
299
+ * Hash a message with SHA3-256.
300
+ * ```ts
301
+ * sha3_256(new Uint8Array([97, 98, 99]));
302
+ * ```
303
+ */
304
+ export const sha3_256 = /* @__PURE__ */ genKeccak(0x06, 136, 32,
305
+ /* @__PURE__ */ oidNist(0x08));
306
+ /**
307
+ * SHA3-384 hash function.
308
+ * @param msg - message bytes to hash
309
+ * @returns Digest bytes.
310
+ * @example
311
+ * Hash a message with SHA3-384.
312
+ * ```ts
313
+ * sha3_384(new Uint8Array([97, 98, 99]));
314
+ * ```
315
+ */
316
+ export const sha3_384 = /* @__PURE__ */ genKeccak(0x06, 104, 48,
317
+ /* @__PURE__ */ oidNist(0x09));
318
+ /**
319
+ * SHA3-512 hash function.
320
+ * @param msg - message bytes to hash
321
+ * @returns Digest bytes.
322
+ * @example
323
+ * Hash a message with SHA3-512.
324
+ * ```ts
325
+ * sha3_512(new Uint8Array([97, 98, 99]));
326
+ * ```
327
+ */
328
+ export const sha3_512 = /* @__PURE__ */ genKeccak(0x06, 72, 64,
329
+ /* @__PURE__ */ oidNist(0x0a));
330
+ /**
331
+ * Keccak-224 hash function.
332
+ * @param msg - message bytes to hash
333
+ * @returns Digest bytes.
334
+ * @example
335
+ * Hash a message with Keccak-224.
336
+ * ```ts
337
+ * keccak_224(new Uint8Array([97, 98, 99]));
338
+ * ```
339
+ */
340
+ export const keccak_224 = /* @__PURE__ */ genKeccak(0x01, 144, 28);
341
+ /**
342
+ * Keccak-256 hash function. Different from SHA3-256.
343
+ * @param msg - message bytes to hash
344
+ * @returns Digest bytes.
345
+ * @example
346
+ * Hash a message with Keccak-256.
347
+ * ```ts
348
+ * keccak_256(new Uint8Array([97, 98, 99]));
349
+ * ```
350
+ */
351
+ export const keccak_256 = /* @__PURE__ */ genKeccak(0x01, 136, 32);
352
+ /**
353
+ * Keccak-384 hash function.
354
+ * @param msg - message bytes to hash
355
+ * @returns Digest bytes.
356
+ * @example
357
+ * Hash a message with Keccak-384.
358
+ * ```ts
359
+ * keccak_384(new Uint8Array([97, 98, 99]));
360
+ * ```
361
+ */
362
+ export const keccak_384 = /* @__PURE__ */ genKeccak(0x01, 104, 48);
363
+ /**
364
+ * Keccak-512 hash function.
365
+ * @param msg - message bytes to hash
366
+ * @returns Digest bytes.
367
+ * @example
368
+ * Hash a message with Keccak-512.
369
+ * ```ts
370
+ * keccak_512(new Uint8Array([97, 98, 99]));
371
+ * ```
372
+ */
373
+ export const keccak_512 = /* @__PURE__ */ genKeccak(0x01, 72, 64);
374
+ const genShake = (suffix, blockLen, outputLen, info = {}) => createHasher((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true), info);
375
+ /**
376
+ * SHAKE128 XOF with 128-bit security and a 16-byte default output.
377
+ * @param msg - message bytes to hash
378
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
379
+ * @returns Digest bytes.
380
+ * @example
381
+ * Hash a message with SHAKE128.
382
+ * ```ts
383
+ * shake128(new Uint8Array([97, 98, 99]), { dkLen: 32 });
384
+ * ```
385
+ */
386
+ export const shake128 =
387
+ /* @__PURE__ */
388
+ genShake(0x1f, 168, 16, /* @__PURE__ */ oidNist(0x0b));
389
+ /**
390
+ * SHAKE256 XOF with 256-bit security and a 32-byte default output.
391
+ * @param msg - message bytes to hash
392
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
393
+ * @returns Digest bytes.
394
+ * @example
395
+ * Hash a message with SHAKE256.
396
+ * ```ts
397
+ * shake256(new Uint8Array([97, 98, 99]), { dkLen: 64 });
398
+ * ```
399
+ */
400
+ export const shake256 =
401
+ /* @__PURE__ */
402
+ genShake(0x1f, 136, 32, /* @__PURE__ */ oidNist(0x0c));
403
+ /**
404
+ * SHAKE128 XOF with 256-bit output (NIST version).
405
+ * @param msg - message bytes to hash
406
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
407
+ * @returns Digest bytes.
408
+ * @example
409
+ * Hash a message with SHAKE128 using a 32-byte default output.
410
+ * ```ts
411
+ * shake128_32(new Uint8Array([97, 98, 99]), { dkLen: 32 });
412
+ * ```
413
+ */
414
+ export const shake128_32 =
415
+ /* @__PURE__ */
416
+ genShake(0x1f, 168, 32, /* @__PURE__ */ oidNist(0x0b));
417
+ /**
418
+ * SHAKE256 XOF with 512-bit output (NIST version).
419
+ * @param msg - message bytes to hash
420
+ * @param opts - Optional output-length override. See {@link ShakeOpts}.
421
+ * @returns Digest bytes.
422
+ * @example
423
+ * Hash a message with SHAKE256 using a 64-byte default output.
424
+ * ```ts
425
+ * shake256_64(new Uint8Array([97, 98, 99]), { dkLen: 64 });
426
+ * ```
427
+ */
428
+ export const shake256_64 =
429
+ /* @__PURE__ */
430
+ genShake(0x1f, 136, 64, /* @__PURE__ */ oidNist(0x0c));
431
+ //# sourceMappingURL=sha3.js.map