@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,93 @@
1
+ /*
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
4
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
5
+ */
6
+
7
+ import {Enum} from '../Enum';
8
+
9
+ /**
10
+ * Enumeration of different ways to resolve dates and times.
11
+ *
12
+ * Parsing a text string occurs in two phases.
13
+ * Phase 1 is a basic text parse according to the fields added to the builder.
14
+ * Phase 2 resolves the parsed field-value pairs into date and/or time objects.
15
+ * This style is used to control how phase 2, resolving, happens.
16
+ *
17
+ * ### Static properties of Class {@link DateTimeFormatter}
18
+ *
19
+ * ResolverStyle.STRICT = new ResolverStyle('STRICT');
20
+ *
21
+ * Style to resolve dates and times strictly.
22
+ *
23
+ * Using strict resolution will ensure that all parsed values are within
24
+ * the outer range of valid values for the field. Individual fields may
25
+ * be further processed for strictness.
26
+ *
27
+ * For example, resolving year-month and day-of-month in the ISO calendar
28
+ * system using strict mode will ensure that the day-of-month is valid
29
+ * for the year-month, rejecting invalid values.
30
+ *
31
+ * ResolverStyle.SMART = new ResolverStyle('SMART');
32
+ *
33
+ * Style to resolve dates and times in a smart, or intelligent, manner.
34
+ *
35
+ * Using smart resolution will perform the sensible default for each
36
+ * field, which may be the same as strict, the same as lenient, or a third
37
+ * behavior. Individual fields will interpret this differently.
38
+ *
39
+ * For example, resolving year-month and day-of-month in the ISO calendar
40
+ * system using smart mode will ensure that the day-of-month is from
41
+ * 1 to 31, converting any value beyond the last valid day-of-month to be
42
+ * the last valid day-of-month.
43
+ *
44
+ * ResolverStyle.LENIENT = new ResolverStyle('LENIENT');
45
+ *
46
+ * Style to resolve dates and times leniently.
47
+ *
48
+ * Using lenient resolution will resolve the values in an appropriate
49
+ * lenient manner. Individual fields will interpret this differently.
50
+ *
51
+ * For example, lenient mode allows the month in the ISO calendar system
52
+ * to be outside the range 1 to 12.
53
+ * For example, month 15 is treated as being 3 months after month 12.
54
+ *
55
+ */
56
+ export class ResolverStyle extends Enum {}
57
+
58
+ /**
59
+ * Style to resolve dates and times strictly.
60
+ *
61
+ * Using strict resolution will ensure that all parsed values are within
62
+ * the outer range of valid values for the field. Individual fields may
63
+ * be further processed for strictness.
64
+ *
65
+ * For example, resolving year-month and day-of-month in the ISO calendar
66
+ * system using strict mode will ensure that the day-of-month is valid
67
+ * for the year-month, rejecting invalid values.
68
+ */
69
+ ResolverStyle.STRICT = new ResolverStyle('STRICT');
70
+ /**
71
+ * Style to resolve dates and times in a smart, or intelligent, manner.
72
+ *
73
+ * Using smart resolution will perform the sensible default for each
74
+ * field, which may be the same as strict, the same as lenient, or a third
75
+ * behavior. Individual fields will interpret this differently.
76
+ *
77
+ * For example, resolving year-month and day-of-month in the ISO calendar
78
+ * system using smart mode will ensure that the day-of-month is from
79
+ * 1 to 31, converting any value beyond the last valid day-of-month to be
80
+ * the last valid day-of-month.
81
+ */
82
+ ResolverStyle.SMART = new ResolverStyle('SMART');
83
+ /**
84
+ * Style to resolve dates and times leniently.
85
+ *
86
+ * Using lenient resolution will resolve the values in an appropriate
87
+ * lenient manner. Individual fields will interpret this differently.
88
+ *
89
+ * For example, lenient mode allows the month in the ISO calendar system
90
+ * to be outside the range 1 to 12.
91
+ * For example, month 15 is treated as being 3 months after month 12.
92
+ */
93
+ ResolverStyle.LENIENT = new ResolverStyle('LENIENT');
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
4
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
5
+ */
6
+
7
+ import {Enum} from '../Enum';
8
+
9
+ export class SignStyle extends Enum{
10
+ /**
11
+ * Parse helper.
12
+ *
13
+ * @param positive true if positive sign parsed, false for negative sign
14
+ * @param strict true if strict, false if lenient
15
+ * @param fixedWidth true if fixed width, false if not
16
+ * @return true if valid
17
+ */
18
+ parse(positive, strict, fixedWidth){
19
+ switch (this) {
20
+ case SignStyle.NORMAL: // NORMAL
21
+ // valid if negative or (positive and lenient)
22
+ return !positive || !strict;
23
+ case SignStyle.ALWAYS: // ALWAYS
24
+ case SignStyle.EXCEEDS_PAD: // EXCEEDS_PAD
25
+ return true;
26
+ default:
27
+ // valid if lenient and not fixed width
28
+ return !strict && !fixedWidth;
29
+ }
30
+
31
+ }
32
+ }
33
+
34
+ SignStyle.NORMAL = new SignStyle('NORMAL');
35
+ SignStyle.NEVER = new SignStyle('NEVER');
36
+ SignStyle.ALWAYS = new SignStyle('ALWAYS');
37
+ SignStyle.EXCEEDS_PAD = new SignStyle('EXCEEDS_PAD');
38
+ SignStyle.NOT_NEGATIVE = new SignStyle('NOT_NEGATIVE');
@@ -0,0 +1,47 @@
1
+ /*
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
4
+ */
5
+
6
+ /**
7
+ * @private
8
+ */
9
+ export class StringBuilder {
10
+ constructor(){
11
+ this._str = '';
12
+ }
13
+
14
+ append(str){
15
+ this._str += str;
16
+ return this;
17
+ }
18
+
19
+ appendChar(str){
20
+ this._str += str[0];
21
+ return this;
22
+ }
23
+
24
+ insert(offset, str){
25
+ this._str = this._str.slice(0, offset) + str + this._str.slice(offset);
26
+ return this;
27
+ }
28
+
29
+ replace(start, end, str){
30
+ this._str = this._str.slice(0, start) + str + this._str.slice(end);
31
+ return this;
32
+ }
33
+
34
+ length(){
35
+ return this._str.length;
36
+ }
37
+
38
+ setLength(length){
39
+ this._str = this._str.slice(0, length);
40
+ return this;
41
+ }
42
+
43
+
44
+ toString() {
45
+ return this._str;
46
+ }
47
+ }
@@ -0,0 +1,114 @@
1
+ /*
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
4
+ */
5
+
6
+ import {Enum} from '../Enum';
7
+
8
+ /**
9
+ * Enumeration of the style of text formatting and parsing.
10
+ *
11
+ * Text styles define three sizes for the formatted text - 'full', 'short' and 'narrow'.
12
+ * Each of these three sizes is available in both 'standard' and 'stand-alone' variations.
13
+ *
14
+ * The difference between the three sizes is obvious in most languages.
15
+ * For example, in English the 'full' month is 'January', the 'short' month is 'Jan'
16
+ * and the 'narrow' month is 'J'. Note that the narrow size is often not unique.
17
+ * For example, 'January', 'June' and 'July' all have the 'narrow' text 'J'.
18
+ *
19
+ * The difference between the 'standard' and 'stand-alone' forms is trickier to describe
20
+ * as there is no difference in English. However, in other languages there is a difference
21
+ * in the word used when the text is used alone, as opposed to in a complete date.
22
+ * For example, the word used for a month when used alone in a date picker is different
23
+ * to the word used for month in association with a day and year in a date.
24
+ *
25
+ * ### Specification for implementors
26
+ *
27
+ * This is immutable and thread-safe enum.
28
+ */
29
+ export class TextStyle extends Enum {
30
+ /**
31
+ * Checks if the style is stand-alone.
32
+ *
33
+ * @return {boolean} true if the style is stand-alone
34
+ */
35
+ isStandalone() {
36
+ switch (this) {
37
+ case TextStyle.FULL_STANDALONE:
38
+ case TextStyle.SHORT_STANDALONE:
39
+ case TextStyle.NARROW_STANDALONE:
40
+ return true;
41
+ default:
42
+ return false;
43
+ }
44
+ }
45
+
46
+ /**
47
+ * Converts the style to the equivalent stand-alone style.
48
+ *
49
+ * @return {TextStyle} the matching stand-alone style
50
+ */
51
+ asStandalone() {
52
+ switch (this) {
53
+ case TextStyle.FULL:
54
+ return TextStyle.FULL_STANDALONE;
55
+ case TextStyle.SHORT:
56
+ return TextStyle.SHORT_STANDALONE;
57
+ case TextStyle.NARROW:
58
+ return TextStyle.NARROW_STANDALONE;
59
+ default:
60
+ // all others are already standalone
61
+ return this;
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Converts the style to the equivalent normal style.
67
+ *
68
+ * @return {TextStyle} the matching normal style
69
+ */
70
+ asNormal() {
71
+ switch (this) {
72
+ case TextStyle.FULL_STANDALONE:
73
+ return TextStyle.FULL;
74
+ case TextStyle.SHORT_STANDALONE:
75
+ return TextStyle.SHORT;
76
+ case TextStyle.NARROW_STANDALONE:
77
+ return TextStyle.NARROW;
78
+ default:
79
+ // all others are already normal
80
+ return this;
81
+ }
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Full text, typically the full description.
87
+ * For example, day-of-week Monday might output "Monday".
88
+ */
89
+ TextStyle.FULL = new TextStyle('FULL');
90
+ /**
91
+ * Full text for stand-alone use, typically the full description.
92
+ * For example, day-of-week Monday might output "Monday".
93
+ */
94
+ TextStyle.FULL_STANDALONE = new TextStyle('FULL_STANDALONE');
95
+ /**
96
+ * Short text, typically an abbreviation.
97
+ * For example, day-of-week Monday might output "Mon".
98
+ */
99
+ TextStyle.SHORT = new TextStyle('SHORT');
100
+ /**
101
+ * Short text for stand-alone use, typically an abbreviation.
102
+ * For example, day-of-week Monday might output "Mon".
103
+ */
104
+ TextStyle.SHORT_STANDALONE = new TextStyle('SHORT_STANDALONE');
105
+ /**
106
+ * Narrow text, typically a single letter.
107
+ * For example, day-of-week Monday might output "M".
108
+ */
109
+ TextStyle.NARROW = new TextStyle('NARROW');
110
+ /**
111
+ * Narrow text for stand-alone use, typically a single letter.
112
+ * For example, day-of-week Monday might output "M".
113
+ */
114
+ TextStyle.NARROW_STANDALONE = new TextStyle('NARROW_STANDALONE');
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
4
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
5
+ */
6
+
7
+ import {IllegalArgumentException} from '../../errors';
8
+
9
+ /**
10
+ * Prints or parses a char literal.
11
+ * @private
12
+ */
13
+ export class CharLiteralPrinterParser {
14
+
15
+ constructor(literal) {
16
+ if (literal.length > 1) {
17
+ throw new IllegalArgumentException('invalid literal, too long: "' + literal + '"');
18
+ }
19
+ this._literal = literal;
20
+ }
21
+
22
+ print(context, buf) {
23
+ buf.append(this._literal);
24
+ return true;
25
+ }
26
+
27
+ parse(context, text, position) {
28
+ const length = text.length;
29
+ if (position === length) {
30
+ return ~position;
31
+ }
32
+ const ch = text.charAt(position);
33
+ if (context.charEquals(this._literal, ch) === false) {
34
+ return ~position;
35
+ }
36
+ return position + this._literal.length;
37
+ }
38
+
39
+ toString() {
40
+ if (this._literal === '\'') {
41
+ return "''";
42
+ }
43
+ return "'" + this._literal + "'";
44
+ }
45
+ }
46
+
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
4
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
5
+ */
6
+
7
+ /**
8
+ * @private
9
+ */
10
+ export class CompositePrinterParser {
11
+
12
+ constructor(printerParsers, optional) {
13
+ this._printerParsers = printerParsers;
14
+ this._optional = optional;
15
+ }
16
+
17
+ /**
18
+ * Returns a copy of this printer-parser with the optional flag changed.
19
+ *
20
+ * @param {boolean} optional the optional flag to set in the copy
21
+ * @return {CompositePrinterParser} the new printer-parser, not null
22
+ */
23
+ withOptional(optional) {
24
+ if (optional === this._optional) {
25
+ return this;
26
+ }
27
+ return new CompositePrinterParser(this._printerParsers, optional);
28
+ }
29
+
30
+ print(context, buf) {
31
+ const length = buf.length();
32
+ if (this._optional) {
33
+ context.startOptional();
34
+ }
35
+ try {
36
+ for (let i=0; i<this._printerParsers.length; i++) {
37
+ const pp = this._printerParsers[i];
38
+ if (pp.print(context, buf) === false) {
39
+ buf.setLength(length); // reset buffer
40
+ return true;
41
+ }
42
+ }
43
+ } finally {
44
+ if (this._optional) {
45
+ context.endOptional();
46
+ }
47
+ }
48
+ return true;
49
+ }
50
+
51
+ parse(context, text, position) {
52
+ if (this._optional) {
53
+ context.startOptional();
54
+ let pos = position;
55
+ for (let i=0; i<this._printerParsers.length; i++) {
56
+ const pp = this._printerParsers[i];
57
+ pos = pp.parse(context, text, pos);
58
+ if (pos < 0) {
59
+ context.endOptional(false);
60
+ return position; // return original position
61
+ }
62
+ }
63
+ context.endOptional(true);
64
+ return pos;
65
+ } else {
66
+ for (let i=0; i<this._printerParsers.length; i++) {
67
+ const pp = this._printerParsers[i];
68
+ position = pp.parse(context, text, position);
69
+ if (position < 0) {
70
+ break;
71
+ }
72
+ }
73
+ return position;
74
+ }
75
+ }
76
+
77
+ toString() {
78
+ let buf = '';
79
+ if (this._printerParsers != null) {
80
+ buf += this._optional ? '[' : '(';
81
+ for (let i=0; i<this._printerParsers.length; i++) {
82
+ const pp = this._printerParsers[i];
83
+ buf += pp.toString();
84
+ }
85
+ buf += this._optional ? ']' : ')';
86
+ }
87
+ return buf;
88
+ }
89
+ }
@@ -0,0 +1,162 @@
1
+ /**
2
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
3
+ * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
4
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
5
+ */
6
+
7
+ import {requireNonNull} from '../../assert';
8
+ import {IllegalArgumentException} from '../../errors';
9
+ import {MathUtil} from '../../MathUtil';
10
+
11
+ /**
12
+ * TODO optimize FractionPrinterParser, fix documentation
13
+ *
14
+ * Prints and parses a numeric date-time field with optional padding.
15
+ * @private
16
+ */
17
+ export class FractionPrinterParser {
18
+
19
+ /**
20
+ * Constructor.
21
+ *
22
+ * @param {TemporalField} field the field to output, not null
23
+ * @param {Number} minWidth the minimum width to output, from 0 to 9
24
+ * @param {Number} maxWidth the maximum width to output, from 0 to 9
25
+ * @param {boolean} decimalPoint whether to output the localized decimal point symbol
26
+ */
27
+ constructor(field, minWidth, maxWidth, decimalPoint) {
28
+ requireNonNull(field, 'field');
29
+ if (field.range().isFixed() === false) {
30
+ throw new IllegalArgumentException('Field must have a fixed set of values: ' + field);
31
+ }
32
+ if (minWidth < 0 || minWidth > 9) {
33
+ throw new IllegalArgumentException('Minimum width must be from 0 to 9 inclusive but was ' + minWidth);
34
+ }
35
+ if (maxWidth < 1 || maxWidth > 9) {
36
+ throw new IllegalArgumentException('Maximum width must be from 1 to 9 inclusive but was ' + maxWidth);
37
+ }
38
+ if (maxWidth < minWidth) {
39
+ throw new IllegalArgumentException('Maximum width must exceed or equal the minimum width but ' +
40
+ maxWidth + ' < ' + minWidth);
41
+ }
42
+ this.field = field;
43
+ this.minWidth = minWidth;
44
+ this.maxWidth = maxWidth;
45
+ this.decimalPoint = decimalPoint;
46
+ }
47
+
48
+ print(context, buf) {
49
+ const value = context.getValue(this.field);
50
+ if (value === null) {
51
+ return false;
52
+ }
53
+ const symbols = context.symbols();
54
+ if (value === 0) { // scale is zero if value is zero
55
+ if (this.minWidth > 0) {
56
+ if (this.decimalPoint) {
57
+ buf.append(symbols.decimalSeparator());
58
+ }
59
+ for (let i = 0; i < this.minWidth; i++) {
60
+ buf.append(symbols.zeroDigit());
61
+ }
62
+ }
63
+ } else {
64
+ let fraction = this.convertToFraction(value, symbols.zeroDigit());
65
+ const outputScale = Math.min(Math.max(fraction.length, this.minWidth), this.maxWidth);
66
+ fraction = fraction.substr(0, outputScale);
67
+ if(fraction * 1 > 0 ) {
68
+ while (fraction.length > this.minWidth && fraction[fraction.length - 1] === '0') {
69
+ fraction = fraction.substr(0, fraction.length - 1);
70
+ }
71
+ }
72
+ let str = fraction;
73
+ str = symbols.convertNumberToI18N(str);
74
+ if (this.decimalPoint) {
75
+ buf.append(symbols.decimalSeparator());
76
+ }
77
+ buf.append(str);
78
+ }
79
+ return true;
80
+ }
81
+
82
+ parse(context, text, position) {
83
+ const effectiveMin = (context.isStrict() ? this.minWidth : 0);
84
+ const effectiveMax = (context.isStrict() ? this.maxWidth : 9);
85
+ const length = text.length;
86
+ if (position === length) {
87
+ // valid if whole field is optional, invalid if minimum width
88
+ return (effectiveMin > 0 ? ~position : position);
89
+ }
90
+ if (this.decimalPoint) {
91
+ if (text[position] !== context.symbols().decimalSeparator()) {
92
+ // valid if whole field is optional, invalid if minimum width
93
+ return (effectiveMin > 0 ? ~position : position);
94
+ }
95
+ position++;
96
+ }
97
+ const minEndPos = position + effectiveMin;
98
+ if (minEndPos > length) {
99
+ return ~position; // need at least min width digits
100
+ }
101
+ const maxEndPos = Math.min(position + effectiveMax, length);
102
+ let total = 0; // can use int because we are only parsing up to 9 digits
103
+ let pos = position;
104
+ while (pos < maxEndPos) {
105
+ const ch = text.charAt(pos++);
106
+ const digit = context.symbols().convertToDigit(ch);
107
+ if (digit < 0) {
108
+ if (pos < minEndPos) {
109
+ return ~position; // need at least min width digits
110
+ }
111
+ pos--;
112
+ break;
113
+ }
114
+ total = total * 10 + digit;
115
+ }
116
+ const moveLeft = pos - position;
117
+ const scale = Math.pow(10, moveLeft);
118
+ const value = this.convertFromFraction(total, scale);
119
+ return context.setParsedField(this.field, value, position, pos);
120
+ }
121
+
122
+ /**
123
+ *
124
+ * @param {Number} value the value to convert, must be valid for this rule
125
+ * @param {String} zeroDigit the character for zero
126
+ * @return {String} the value as a fraction within the range, from 0 to 1, not null
127
+ */
128
+ convertToFraction(value, zeroDigit) {
129
+ const range = this.field.range();
130
+ range.checkValidValue(value, this.field);
131
+ const _min = range.minimum();
132
+ const _range = range.maximum() - _min + 1;
133
+ const _value = value - _min;
134
+ const _scaled = MathUtil.intDiv((_value * 1000000000), _range);
135
+ let fraction = '' + _scaled;
136
+ while(fraction.length < 9){
137
+ fraction = zeroDigit + fraction;
138
+ }
139
+ return fraction;
140
+ }
141
+
142
+ /**
143
+ *
144
+ * @param {Number} total the fraction to convert, not null
145
+ * @param {Number} scale the scale, not null
146
+ * @return {Number} the value of the field, valid for this rule
147
+ * @throws DateTimeException if the value cannot be converted
148
+ */
149
+ convertFromFraction(total, scale) {
150
+ const range = this.field.range();
151
+ const _min = range.minimum();
152
+ const _range = range.maximum() - _min + 1;
153
+ const _value = MathUtil.intDiv((total * _range), scale);
154
+ return _value;
155
+ }
156
+
157
+ toString() {
158
+ const decimal = (this.decimalPoint ? ',DecimalPoint' : '');
159
+ return 'Fraction(' + this.field + ',' + this.minWidth + ',' + this.maxWidth + decimal + ')';
160
+ }
161
+ }
162
+