@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,248 @@
1
+ import { abstractMethodFail } from '../assert';
2
+
3
+ /**
4
+ * @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
5
+ * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
6
+ * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
7
+ */
8
+
9
+ /**
10
+ * A field of date-time, such as month-of-year or hour-of-minute.
11
+ *
12
+ * Date and time is expressed using fields which partition the time-line into something
13
+ * meaningful for humans. Implementations of this interface represent those fields.
14
+ *
15
+ * The most commonly used units are defined in {@link ChronoField}.
16
+ * Further fields are supplied in {@link IsoFields}, {@link WeekFields} and {@link JulianFields}.
17
+ * Fields can also be written by application code by implementing this interface.
18
+ *
19
+ * The field works using double dispatch. Client code calls methods on a date-time like
20
+ * {@link LocalDateTime} which check if the field is a {@link ChronoField}.
21
+ * If it is, then the date-time must handle it.
22
+ * Otherwise, the method call is re-dispatched to the matching method in this interface.
23
+ *
24
+ * @interface
25
+ */
26
+ export class TemporalField {
27
+ /**
28
+ * Checks if this field represents a component of a date.
29
+ *
30
+ * @return {boolean} `true` if it is a component of a date, `false` otherwise.
31
+ */
32
+ isDateBased() {
33
+ abstractMethodFail('isDateBased');
34
+ }
35
+
36
+ /**
37
+ * Checks if this field represents a component of a time.
38
+ *
39
+ * @return {boolean} `true` if it is a component of a time, `false` otherwise.
40
+ */
41
+ isTimeBased() {
42
+ abstractMethodFail('isTimeBased');
43
+ }
44
+
45
+ /**
46
+ * Gets the unit that the field is measured in.
47
+ *
48
+ * The unit of the field is the period that varies within the range.
49
+ * For example, in the field 'MonthOfYear', the unit is 'Months'.
50
+ * See also {@link rangeUnit}.
51
+ *
52
+ * @return {TemporalUnit} the period unit defining the base unit of the field.
53
+ */
54
+ baseUnit() {
55
+ abstractMethodFail('baseUnit');
56
+ }
57
+
58
+ /**
59
+ * Gets the range that the field is bound by.
60
+ *
61
+ * The range of the field is the period that the field varies within.
62
+ * For example, in the field 'MonthOfYear', the range is 'Years'.
63
+ * See also {@link baseUnit}.
64
+ *
65
+ * The range is never null. For example, the 'Year' field is shorthand for
66
+ * 'YearOfForever'. It therefore has a unit of 'Years' and a range of 'Forever'.
67
+ *
68
+ * @return {TemporalUnit} the period unit defining the range of the field.
69
+ */
70
+ rangeUnit() {
71
+ abstractMethodFail('rangeUnit');
72
+ }
73
+
74
+ /**
75
+ * Gets the range of valid values for the field.
76
+ *
77
+ * All fields can be expressed as an integer.
78
+ * This method returns an object that describes the valid range for that value.
79
+ * This method is generally only applicable to the ISO-8601 calendar system.
80
+ *
81
+ * Note that the result only describes the minimum and maximum valid values
82
+ * and it is important not to read too much into them. For example, there
83
+ * could be values within the range that are invalid for the field.
84
+ *
85
+ * @return {ValueRange} the range of valid values for the field.
86
+ */
87
+ range() {
88
+ abstractMethodFail('range');
89
+ }
90
+
91
+ /**
92
+ * Get the range of valid values for this field using the temporal object to
93
+ * refine the result.
94
+ *
95
+ * This uses the temporal object to find the range of valid values for the field.
96
+ * This is similar to {@link range}, however this method refines the result
97
+ * using the temporal. For example, if the field is {@link DAY_OF_MONTH} the
98
+ * {@link range} method is not accurate as there are four possible month lengths,
99
+ * 28, 29, 30 and 31 days. Using this method with a date allows the range to be
100
+ * accurate, returning just one of those four options.
101
+ *
102
+ * There are two equivalent ways of using this method.
103
+ * The first is to invoke this method directly.
104
+ * The second is to use {@link TemporalAccessor#range}:
105
+ * <pre>
106
+ * // these two lines are equivalent, but the second approach is recommended
107
+ * temporal = thisField.rangeRefinedBy(temporal);
108
+ * temporal = temporal.range(thisField);
109
+ * </pre>
110
+ * It is recommended to use the second approach, {@link range},
111
+ * as it is a lot clearer to read in code.
112
+ *
113
+ * Implementations should perform any queries or calculations using the fields
114
+ * available in {@link ChronoField}.
115
+ * If the field is not supported a {@link DateTimeException} must be thrown.
116
+ *
117
+ * @param {!TemporalAccessor} temporal the temporal object used to refine the result.
118
+ * @return {ValueRange} the range of valid values for this field.
119
+ * @throws {DateTimeException} if the range for the field cannot be obtained.
120
+ *
121
+ */
122
+ // eslint-disable-next-line no-unused-vars
123
+ rangeRefinedBy(temporal) {
124
+ abstractMethodFail('rangeRefinedBy');
125
+ }
126
+
127
+ /**
128
+ * Gets the value of this field from the specified temporal object.
129
+ *
130
+ * This queries the temporal object for the value of this field.
131
+ *
132
+ * There are two equivalent ways of using this method.
133
+ * The first is to invoke this method directly.
134
+ * The second is to use {@link TemporalAccessor#get}:
135
+ * <pre>
136
+ * // these two lines are equivalent, but the second approach is recommended
137
+ * temporal = thisField.getFrom(temporal);
138
+ * temporal = temporal.get(thisField);
139
+ * </pre>
140
+ * It is recommended to use the second approach, as it is a lot clearer to read in code.
141
+ *
142
+ * Implementations should perform any queries or calculations using the fields
143
+ * available in {@link ChronoField}.
144
+ * If the field is not supported a {@link DateTimeException} must be thrown.
145
+ *
146
+ * @param {!TemporalAccesor} temporal the temporal object to query.
147
+ * @return {number} the value of this field.
148
+ * @throws {DateTimeException} if a value for the field cannot be obtained.
149
+ */
150
+ // eslint-disable-next-line no-unused-vars
151
+ getFrom(temporal) {
152
+ abstractMethodFail('getFrom');
153
+ }
154
+
155
+ /**
156
+ * Returns a copy of the specified temporal object with the value of this field set.
157
+ *
158
+ * This returns a new temporal object based on the specified one with the value for
159
+ * this field changed. For example, on a {@link LocalDate}, this could be used to
160
+ * set the year, month or day-of-month.
161
+ * The returned object has the same observable type as the specified object.
162
+ *
163
+ * In some cases, changing a field is not fully defined. For example, if the target object is
164
+ * a date representing the 31st January, then changing the month to February would be unclear.
165
+ * In cases like this, the implementation is responsible for resolving the result.
166
+ * Typically it will choose the previous valid date, which would be the last valid
167
+ * day of February in this example.
168
+ *
169
+ * There are two equivalent ways of using this method.
170
+ * The first is to invoke this method directly.
171
+ * The second is to use {@link Temporal#with}:
172
+ * <pre>
173
+ * // these two lines are equivalent, but the second approach is recommended
174
+ * temporal = thisField.adjustInto(temporal);
175
+ * temporal = temporal.with(thisField);
176
+ * </pre>
177
+ * It is recommended to use the second approach, `with(temporal)`,
178
+ * as it is a lot clearer to read in code.
179
+ *
180
+ * Implementations should perform any queries or calculations using the fields
181
+ * available in {@link ChronoField}.
182
+ * If the field is not supported a {@link DateTimeException} must be thrown.
183
+ *
184
+ * Implementations must not alter the specified temporal object.
185
+ * Instead, an adjusted copy of the original must be returned.
186
+ * This provides equivalent, safe behavior for immutable and mutable implementations.
187
+ *
188
+ * @param {!Temporal} temporal the temporal object to adjust.
189
+ * @param {!number} newValue the new value of the field.
190
+ * @return {Temporal} the adjusted temporal object.
191
+ * @throws {DateTimeException} if the field cannot be set.
192
+ */
193
+ // eslint-disable-next-line no-unused-vars
194
+ adjustInto(temporal, newValue) {
195
+ abstractMethodFail('adjustInto');
196
+ }
197
+
198
+ /**
199
+ * Checks if this field is supported by the temporal object.
200
+ *
201
+ * This determines whether the temporal accessor supports this field.
202
+ * If this returns false, the the temporal cannot be queried for this field.
203
+ *
204
+ * There are two equivalent ways of using this method.
205
+ * The first is to invoke this method directly.
206
+ * The second is to use {@link TemporalAccessor#isSupported}:
207
+ * <pre>
208
+ * // these two lines are equivalent, but the second approach is recommended
209
+ * temporal = thisField.isSupportedBy(temporal);
210
+ * temporal = temporal.isSupported(thisField);
211
+ * </pre>
212
+ * It is recommended to use the second approach, `isSupported(temporal)`,
213
+ * as it is a lot clearer to read in code.
214
+ *
215
+ * Implementations should determine whether they are supported using the fields
216
+ * available in {@link ChronoField}.
217
+ *
218
+ * @param {!TemporalAccesor} temporal the temporal object to query.
219
+ * @return {boolean} `true` if the date-time can be queried for this field, `false` if not.
220
+ */
221
+ // eslint-disable-next-line no-unused-vars
222
+ isSupportedBy(temporal) {
223
+ abstractMethodFail('isSupportedBy');
224
+ }
225
+
226
+ /**
227
+ * @return {string}
228
+ */
229
+ displayName(/* TODO: locale */) {
230
+ abstractMethodFail('displayName');
231
+ }
232
+
233
+ /**
234
+ * @param {*} other
235
+ * @returns {boolean}
236
+ */
237
+ // eslint-disable-next-line no-unused-vars
238
+ equals(other) {
239
+ abstractMethodFail('equals');
240
+ }
241
+
242
+ /**
243
+ * @returns {string}
244
+ */
245
+ name() {
246
+ abstractMethodFail('name');
247
+ }
248
+ }
@@ -0,0 +1,223 @@
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
+ * Common implementations of {@link TemporalQuery}.
9
+ *
10
+ * This class provides common implementations of {@link TemporalQuery}.
11
+ * These queries are primarily used as optimizations, allowing the internals
12
+ * of other objects to be extracted effectively. Note that application code
13
+ * can also use the {@link from} method on most temporal
14
+ * objects as a method reference matching the query interface, such as
15
+ * {@link LocalDate::from} and {@link ZoneId::from}.
16
+ *
17
+ * There are two equivalent ways of using a {@link TemporalQuery}.
18
+ * The first is to invoke the method on the interface directly.
19
+ * The second is to use {@link TemporalAccessor#query}:
20
+ * <pre>
21
+ * // these two lines are equivalent, but the second approach is recommended
22
+ * dateTime = query.queryFrom(dateTime);
23
+ * dateTime = dateTime.query(query);
24
+ * </pre>
25
+ * It is recommended to use the second approach, {@link query},
26
+ * as it is a lot clearer to read in code.
27
+ *
28
+ */
29
+ export class TemporalQueries {
30
+
31
+ /**
32
+ * A strict query for the {@link ZoneId}.
33
+ *
34
+ * This queries a {@link TemporalAccessor} for the zone.
35
+ * The zone is only returned if the date-time conceptually contains a {@link ZoneId}.
36
+ * It will not be returned if the date-time only conceptually has an {@link ZoneOffset}.
37
+ * Thus a {@link ZonedDateTime} will return the result of
38
+ * {@link getZone}, but an {@link OffsetDateTime} will
39
+ * return null.
40
+ *
41
+ * In most cases, applications should use {@link ZONE} as this query is too strict.
42
+ *
43
+ * The result from JDK classes implementing {@link TemporalAccessor} is as follows:
44
+ * * * {@link LocalDate} returns null
45
+ * * {@link LocalTime} returns null
46
+ * * {@link LocalDateTime} returns null
47
+ * * {@link ZonedDateTime} returns the associated zone
48
+ * * {@link OffsetTime} returns null
49
+ * * {@link OffsetDateTime} returns null
50
+ * * {@link ChronoLocalDate} returns null
51
+ * * {@link ChronoLocalDateTime} returns null
52
+ * * {@link ChronoZonedDateTime} returns the associated zone
53
+ * * {@link Era} returns null
54
+ * * {@link DayOfWeek} returns null
55
+ * * {@link Month} returns null
56
+ * * {@link Year} returns null
57
+ * * {@link YearMonth} returns null
58
+ * * {@link MonthDay} returns null
59
+ * * {@link ZoneOffset} returns null
60
+ * * {@link Instant} returns null
61
+ *
62
+ * @return a query that can obtain the zone ID of a temporal, not null
63
+ */
64
+ static zoneId() {
65
+ return TemporalQueries.ZONE_ID;
66
+ }
67
+
68
+ /**
69
+ * A query for the {@link Chronology}.
70
+ *
71
+ * This queries a {@link TemporalAccessor} for the chronology.
72
+ * If the target {@link TemporalAccessor} represents a date, or part of a date,
73
+ * then it should return the chronology that the date is expressed in.
74
+ * As a result of this definition, objects only representing time, such as
75
+ * {@link LocalTime}, will return null.
76
+ *
77
+ * The result from js-joda classes implementing {@link TemporalAccessor} is as follows:
78
+ *
79
+ * * {@link LocalDate} returns * {@link IsoChronology.INSTANCE}
80
+ * * {@link LocalTime} returns null (does not represent a date)
81
+ * * {@link LocalDateTime} returns * {@link IsoChronology.INSTANCE}
82
+ * * {@link ZonedDateTime} returns * {@link IsoChronology.INSTANCE}
83
+ * * {@link OffsetTime} returns null (does not represent a date)
84
+ * * {@link OffsetDateTime} returns * {@link IsoChronology.INSTANCE}
85
+ * * {@link ChronoLocalDate} returns the associated chronology
86
+ * * {@link ChronoLocalDateTime} returns the associated chronology
87
+ * * {@link ChronoZonedDateTime} returns the associated chronology
88
+ * * {@link Era} returns the associated chronology
89
+ * * {@link DayOfWeek} returns null (shared across chronologies)
90
+ * * {@link Month} returns * {@link IsoChronology.INSTANCE}
91
+ * * {@link Year} returns * {@link IsoChronology.INSTANCE}
92
+ * * {@link YearMonth} returns * {@link IsoChronology.INSTANCE}
93
+ * * {@link MonthDay} returns null * {@link IsoChronology.INSTANCE}
94
+ * * {@link ZoneOffset} returns null (does not represent a date)
95
+ * * {@link Instant} returns null (does not represent a date)
96
+ *
97
+ * The method {@link Chronology#from} can be used as a
98
+ * {@link TemporalQuery}
99
+ * That method is equivalent to this query, except that it throws an
100
+ * exception if a chronology cannot be obtained.
101
+ *
102
+ * @return {TemporalQuery} a query that can obtain the chronology of a temporal, not null
103
+ */
104
+ static chronology() {
105
+ return TemporalQueries.CHRONO;
106
+ }
107
+
108
+ /**
109
+ * A query for the smallest supported unit.
110
+ *
111
+ * This queries a {@link TemporalAccessor} for the time precision.
112
+ * If the target {@link TemporalAccessor} represents a consistent or complete date-time,
113
+ * date or time then this must return the smallest precision actually supported.
114
+ * Note that fields such as {@link NANO_OF_DAY} and {@link NANO_OF_SECOND}
115
+ * are defined to always return ignoring the precision, thus this is the only
116
+ * way to find the actual smallest supported unit.
117
+ * For example, were {@link GregorianCalendar} to implement {@link TemporalAccessor}
118
+ * it would return a precision of {@link MILLIS}.
119
+ *
120
+ * The result from js-joda classes implementing {@link TemporalAccessor} is as follows:
121
+ *
122
+ * {@link LocalDate} returns {@link DAYS}
123
+ * {@link LocalTime} returns {@link NANOS}
124
+ * {@link LocalDateTime} returns {@link NANOS}
125
+ * {@link ZonedDateTime} returns {@link NANOS}
126
+ * {@link OffsetTime} returns {@link NANOS}
127
+ * {@link OffsetDateTime} returns {@link NANOS}
128
+ * {@link ChronoLocalDate} returns {@link DAYS}
129
+ * {@link ChronoLocalDateTime} returns {@link NANOS}
130
+ * {@link ChronoZonedDateTime} returns {@link NANOS}
131
+ * {@link Era} returns {@link ERAS}
132
+ * {@link DayOfWeek} returns {@link DAYS}
133
+ * {@link Month} returns {@link MONTHS}
134
+ * {@link Year} returns {@link YEARS}
135
+ * {@link YearMonth} returns {@link MONTHS}
136
+ * {@link MonthDay} returns null (does not represent a complete date or time)
137
+ * {@link ZoneOffset} returns null (does not represent a date or time)
138
+ * {@link Instant} returns {@link NANOS}
139
+ *
140
+ * @return a query that can obtain the precision of a temporal, not null
141
+ */
142
+ static precision() {
143
+ return TemporalQueries.PRECISION;
144
+ }
145
+
146
+ /**
147
+ * A lenient query for the {@link ZoneId}, falling back to the {@link ZoneOffset}.
148
+ *
149
+ * This queries a {@link TemporalAccessor} for the zone.
150
+ * It first tries to obtain the zone, using {@link zoneId}.
151
+ * If that is not found it tries to obtain the {@link offset}.
152
+ *
153
+ * In most cases, applications should use this query rather than {@link zoneId}.
154
+ *
155
+ * This query examines the {@link ChronoField#OFFSET_SECONDS}
156
+ * field and uses it to create a {@link ZoneOffset}.
157
+ *
158
+ * The method {@link ZoneId#from} can be used as a
159
+ * {@link TemporalQuery} via a method reference, {@link ZoneId::from}.
160
+ * That method is equivalent to this query, except that it throws an
161
+ * exception if a zone cannot be obtained.
162
+ *
163
+ * @return a query that can obtain the zone ID or offset of a temporal, not null
164
+ */
165
+ static zone() {
166
+ return TemporalQueries.ZONE;
167
+ }
168
+
169
+ /**
170
+ * A query for {@link ZoneOffset} returning null if not found.
171
+ *
172
+ * This returns a {@link TemporalQuery} that can be used to query a temporal
173
+ * object for the offset. The query will return null if the temporal
174
+ * object cannot supply an offset.
175
+ *
176
+ * The query implementation examines the {@link ChronoField#OFFSET_SECONDS}
177
+ * field and uses it to create a {@link ZoneOffset}.
178
+ *
179
+ * The method {@link java.time.ZoneOffset#from} can be used as a
180
+ * {@link TemporalQuery} via a method reference, {@link ZoneOffset::from}.
181
+ * This query and {@link ZoneOffset::from} will return the same result if the
182
+ * temporal object contains an offset. If the temporal object does not contain
183
+ * an offset, then the method reference will throw an exception, whereas this
184
+ * query will return null.
185
+ *
186
+ * @return a query that can obtain the offset of a temporal, not null
187
+ */
188
+ static offset() {
189
+ return TemporalQueries.OFFSET;
190
+ }
191
+
192
+ /**
193
+ * A query for {@link LocalDate} returning null if not found.
194
+ *
195
+ * This returns a {@link TemporalQuery} that can be used to query a temporal
196
+ * object for the local date. The query will return null if the temporal
197
+ * object cannot supply a local date.
198
+ *
199
+ * The query implementation examines the {@link ChronoField#EPOCH_DAY}
200
+ * field and uses it to create a {@link LocalDate}.
201
+ *
202
+ * @return a query that can obtain the date of a temporal, not null
203
+ */
204
+ static localDate() {
205
+ return TemporalQueries.LOCAL_DATE;
206
+ }
207
+
208
+ /**
209
+ * A query for {@link LocalTime} returning null if not found.
210
+ *
211
+ * This returns a {@link TemporalQuery} that can be used to query a temporal
212
+ * object for the local time. The query will return null if the temporal
213
+ * object cannot supply a local time.
214
+ *
215
+ * The query implementation examines the {@link ChronoField#NANO_OF_DAY}
216
+ * field and uses it to create a {@link LocalTime}.
217
+ *
218
+ * @return a query that can obtain the time of a temporal, not null
219
+ */
220
+ static localTime() {
221
+ return TemporalQueries.LOCAL_TIME;
222
+ }
223
+ }
@@ -0,0 +1,77 @@
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 {ChronoField} from './ChronoField';
8
+ import {createTemporalQuery} from './TemporalQuery';
9
+ import {TemporalQueries} from './TemporalQueries';
10
+
11
+ import {LocalDate} from '../LocalDate';
12
+ import {LocalTime} from '../LocalTime';
13
+ import {ZoneOffset} from '../ZoneOffset';
14
+
15
+
16
+ export function _init() {
17
+ //-----------------------------------------------------------------------
18
+ /**
19
+ * A strict query for the {@link ZoneId}.
20
+ */
21
+ TemporalQueries.ZONE_ID = createTemporalQuery('ZONE_ID', (temporal) => {
22
+ return temporal.query(TemporalQueries.ZONE_ID);
23
+ });
24
+
25
+ /**
26
+ * A query for the {@link Chronology}.
27
+ */
28
+ TemporalQueries.CHRONO = createTemporalQuery('CHRONO', (temporal) => {
29
+ return temporal.query(TemporalQueries.CHRONO);
30
+ });
31
+
32
+ /**
33
+ * A query for the smallest supported unit.
34
+ */
35
+ TemporalQueries.PRECISION = createTemporalQuery('PRECISION', (temporal) => {
36
+ return temporal.query(TemporalQueries.PRECISION);
37
+ });
38
+
39
+ //-----------------------------------------------------------------------
40
+ /**
41
+ * A query for {@link ZoneOffset} returning null if not found.
42
+ */
43
+ TemporalQueries.OFFSET = createTemporalQuery('OFFSET', (temporal) => {
44
+ if (temporal.isSupported(ChronoField.OFFSET_SECONDS)) {
45
+ return ZoneOffset.ofTotalSeconds(temporal.get(ChronoField.OFFSET_SECONDS));
46
+ }
47
+ return null;
48
+ });
49
+
50
+ /**
51
+ * A lenient query for the {@link ZoneId}, falling back to the {@link ZoneOffset}.
52
+ */
53
+ TemporalQueries.ZONE = createTemporalQuery('ZONE', (temporal) => {
54
+ const zone = temporal.query(TemporalQueries.ZONE_ID);
55
+ return (zone != null ? zone : temporal.query(TemporalQueries.OFFSET));
56
+ });
57
+
58
+ /**
59
+ * A query for {@link LocalDate} returning null if not found.
60
+ */
61
+ TemporalQueries.LOCAL_DATE = createTemporalQuery('LOCAL_DATE', (temporal) => {
62
+ if (temporal.isSupported(ChronoField.EPOCH_DAY)) {
63
+ return LocalDate.ofEpochDay(temporal.getLong(ChronoField.EPOCH_DAY));
64
+ }
65
+ return null;
66
+ });
67
+
68
+ /**
69
+ * A query for {@link LocalTime} returning null if not found.
70
+ */
71
+ TemporalQueries.LOCAL_TIME = createTemporalQuery('LOCAL_TIME', (temporal) => {
72
+ if (temporal.isSupported(ChronoField.NANO_OF_DAY)) {
73
+ return LocalTime.ofNanoOfDay(temporal.getLong(ChronoField.NANO_OF_DAY));
74
+ }
75
+ return null;
76
+ });
77
+ }
@@ -0,0 +1,107 @@
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 {abstractMethodFail} from '../assert';
8
+ import {Enum} from '../Enum';
9
+
10
+
11
+ /**
12
+ * Strategy for querying a temporal object.
13
+ *
14
+ * Queries are a key tool for extracting information from temporal objects.
15
+ * They exist to externalize the process of querying, permitting different
16
+ * approaches, as per the strategy design pattern.
17
+ * Examples might be a query that checks if the date is the day before February 29th
18
+ * in a leap year, or calculates the number of days to your next birthday.
19
+ *
20
+ * The {@link TemporalField} interface provides another mechanism for querying
21
+ * temporal objects. That interface is limited to returning a `long`.
22
+ * By contrast, queries can return any type.
23
+ *
24
+ * There are two equivalent ways of using a {@link TemporalQuery}.
25
+ * The first is to invoke the method on this interface directly.
26
+ * The second is to use {@link TemporalAccessor#query}:
27
+ * <pre>
28
+ * // these two lines are equivalent, but the second approach is recommended
29
+ * temporal = thisQuery.queryFrom(temporal);
30
+ * temporal = temporal.query(thisQuery);
31
+ * </pre>
32
+ * It is recommended to use the second approach, {@link query},
33
+ * as it is a lot clearer to read in code.
34
+ *
35
+ * The most common implementations are method references, such as
36
+ * {@link LocalDate::from} and {@link ZoneId::from}.
37
+ * Further implementations are on {@link TemporalQueries}.
38
+ * Queries may also be defined by applications.
39
+ *
40
+ * ### Specification for implementors
41
+ *
42
+ * This interface places no restrictions on the mutability of implementations,
43
+ * however immutability is strongly recommended.
44
+ *
45
+ * @interface
46
+ */
47
+ export class TemporalQuery extends Enum {
48
+ /**
49
+ * Queries the specified temporal object.
50
+ *
51
+ * This queries the specified temporal object to return an object using the logic
52
+ * encapsulated in the implementing class.
53
+ * Examples might be a query that checks if the date is the day before February 29th
54
+ * in a leap year, or calculates the number of days to your next birthday.
55
+ *
56
+ * There are two equivalent ways of using this method.
57
+ * The first is to invoke this method directly.
58
+ * The second is to use {@link TemporalAccessor#query}:
59
+ * <pre>
60
+ * // these two lines are equivalent, but the second approach is recommended
61
+ * temporal = thisQuery.queryFrom(temporal);
62
+ * temporal = temporal.query(thisQuery);
63
+ * </pre>
64
+ * It is recommended to use the second approach, {@link query},
65
+ * as it is a lot clearer to read in code.
66
+ *
67
+ * ### Specification for implementors
68
+ *
69
+ * The implementation must take the input object and query it.
70
+ * The implementation defines the logic of the query and is responsible for
71
+ * documenting that logic.
72
+ * It may use any method on {@link TemporalAccessor} to determine the result.
73
+ * The input object must not be altered.
74
+ *
75
+ * The input temporal object may be in a calendar system other than ISO.
76
+ * Implementations may choose to document compatibility with other calendar systems,
77
+ * or reject non-ISO temporal objects by querying the chronology (see {@link TemporalQueries#chronology}).
78
+ *
79
+ * This method may be called from multiple threads in parallel.
80
+ * It must be thread-safe when invoked.
81
+ *
82
+ * @param {TemporalAccessor} temporal the temporal object to query, not null
83
+ * @return the queried value, may return null to indicate not found
84
+ * @throws DateTimeException if unable to query
85
+ * @throws ArithmeticException if numeric overflow occurs
86
+ */
87
+ // eslint-disable-next-line no-unused-vars
88
+ queryFrom(temporal){
89
+ abstractMethodFail('queryFrom');
90
+ }
91
+
92
+ }
93
+
94
+ /**
95
+ * Factory to create something similar to the JSR-310 {TemporalQuery} interface, takes a function and returns a new TemporalQuery object that presents that function
96
+ * as the queryFrom() function.
97
+ * @param name for the underlying Enum
98
+ * @param queryFromFunction
99
+ */
100
+ export function createTemporalQuery(name, queryFromFunction) {
101
+ class ExtendedTemporalQuery extends TemporalQuery {
102
+
103
+ }
104
+
105
+ ExtendedTemporalQuery.prototype.queryFrom = queryFromFunction;
106
+ return new ExtendedTemporalQuery(name);
107
+ }