@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.
- package/LICENSE +28 -0
- package/README.md +707 -0
- package/dist/application/app.d.ts +138 -0
- package/dist/application/app.js +654 -0
- package/dist/application/operations.d.ts +9 -0
- package/dist/application/operations.js +96 -0
- package/dist/cli/cli.d.ts +1 -0
- package/dist/cli/cli.js +460 -0
- package/dist/cli/help.d.ts +4 -0
- package/dist/cli/help.js +49 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.js +13 -0
- package/dist/cli/onboarding.d.ts +14 -0
- package/dist/cli/onboarding.js +144 -0
- package/dist/cli/output.d.ts +2 -0
- package/dist/cli/output.js +231 -0
- package/dist/cli/terminal.d.ts +6 -0
- package/dist/cli/terminal.js +92 -0
- package/dist/cli/update-check.d.ts +1 -0
- package/dist/cli/update-check.js +12 -0
- package/dist/cli/updates.d.ts +2 -0
- package/dist/cli/updates.js +98 -0
- package/dist/core.d.ts +14 -0
- package/dist/core.js +14 -0
- package/dist/doctor/credential-probe.d.ts +7 -0
- package/dist/doctor/credential-probe.js +49 -0
- package/dist/doctor/doctor.d.ts +4 -0
- package/dist/doctor/doctor.js +213 -0
- package/dist/doctor/keyring.d.ts +7 -0
- package/dist/doctor/keyring.js +150 -0
- package/dist/doctor/profile.d.ts +19 -0
- package/dist/doctor/profile.js +73 -0
- package/dist/doctor/types.d.ts +40 -0
- package/dist/doctor/types.js +1 -0
- package/dist/domain/amount.d.ts +6 -0
- package/dist/domain/amount.js +27 -0
- package/dist/domain/errors.d.ts +10 -0
- package/dist/domain/errors.js +16 -0
- package/dist/labels/directory.d.ts +87 -0
- package/dist/labels/directory.js +140 -0
- package/dist/labels/personal.d.ts +17 -0
- package/dist/labels/personal.js +56 -0
- package/dist/labels/presentation.d.ts +154 -0
- package/dist/labels/presentation.js +90 -0
- package/dist/network/reader.d.ts +31 -0
- package/dist/network/reader.js +370 -0
- package/dist/network/retry.d.ts +7 -0
- package/dist/network/retry.js +53 -0
- package/dist/network/work.d.ts +3 -0
- package/dist/network/work.js +66 -0
- package/dist/pricing/market.d.ts +29 -0
- package/dist/pricing/market.js +150 -0
- package/dist/pricing/terms.d.ts +6 -0
- package/dist/pricing/terms.js +12 -0
- package/dist/spending/destination.d.ts +16 -0
- package/dist/spending/destination.js +42 -0
- package/dist/spending/journal.d.ts +28 -0
- package/dist/spending/journal.js +69 -0
- package/dist/spending/ledger.d.ts +118 -0
- package/dist/spending/ledger.js +444 -0
- package/dist/spending/payments.d.ts +67 -0
- package/dist/spending/payments.js +424 -0
- package/dist/spending/pool.d.ts +13 -0
- package/dist/spending/pool.js +38 -0
- package/dist/spending/reconcile.d.ts +18 -0
- package/dist/spending/reconcile.js +64 -0
- package/dist/storage/profiles.d.ts +13 -0
- package/dist/storage/profiles.js +86 -0
- package/dist/storage/secrets.d.ts +16 -0
- package/dist/storage/secrets.js +104 -0
- package/dist/storage/state.d.ts +32 -0
- package/dist/storage/state.js +255 -0
- package/dist/wallet/auto-receive.d.ts +57 -0
- package/dist/wallet/auto-receive.js +140 -0
- package/dist/wallet/defaults.d.ts +3 -0
- package/dist/wallet/defaults.js +26 -0
- package/dist/wallet/signing.d.ts +17 -0
- package/dist/wallet/signing.js +128 -0
- package/dist/wallet/types.d.ts +65 -0
- package/dist/wallet/types.js +1 -0
- package/dist/wallet/work.d.ts +29 -0
- package/dist/wallet/work.js +154 -0
- package/dist/watches/manager.d.ts +75 -0
- package/dist/watches/manager.js +197 -0
- package/node_modules/@attocash/commons-core/Kotlin-DateTime-library-kotlinx-datetime.mjs +6678 -0
- package/node_modules/@attocash/commons-core/Kotlin-DateTime-library-kotlinx-datetime.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/LICENSE +28 -0
- package/node_modules/@attocash/commons-core/README.md +118 -0
- package/node_modules/@attocash/commons-core/commons-commons-core.d.mts +1036 -0
- package/node_modules/@attocash/commons-core/commons-commons-core.mjs +7701 -0
- package/node_modules/@attocash/commons-core/commons-commons-core.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/kotlin-kotlin-stdlib.mjs +17681 -0
- package/node_modules/@attocash/commons-core/kotlin-kotlin-stdlib.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/kotlin_org_jetbrains_kotlin_kotlin_dom_api_compat.mjs +4 -0
- package/node_modules/@attocash/commons-core/kotlin_org_jetbrains_kotlin_kotlin_dom_api_compat.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-bytestring.mjs +209 -0
- package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-bytestring.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-core.mjs +2284 -0
- package/node_modules/@attocash/commons-core/kotlinx-io-kotlinx-io-core.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-core.mjs +6042 -0
- package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-core.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
- package/node_modules/@attocash/commons-core/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-core/package.json +27 -0
- package/node_modules/@attocash/commons-node/LICENSE +28 -0
- package/node_modules/@attocash/commons-node/README.md +92 -0
- package/node_modules/@attocash/commons-node/commons-commons-node.d.mts +255 -0
- package/node_modules/@attocash/commons-node/commons-commons-node.mjs +2977 -0
- package/node_modules/@attocash/commons-node/commons-commons-node.mjs.map +1 -0
- package/node_modules/@attocash/commons-node/kotlin-logging.mjs +432 -0
- package/node_modules/@attocash/commons-node/kotlin-logging.mjs.map +1 -0
- package/node_modules/@attocash/commons-node/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
- package/node_modules/@attocash/commons-node/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-node/package.json +29 -0
- package/node_modules/@attocash/commons-node-remote/LICENSE +28 -0
- package/node_modules/@attocash/commons-node-remote/README.md +61 -0
- package/node_modules/@attocash/commons-node-remote/commons-commons-node-remote.d.mts +122 -0
- package/node_modules/@attocash/commons-node-remote/commons-commons-node-remote.mjs +1810 -0
- package/node_modules/@attocash/commons-node-remote/commons-commons-node-remote.mjs.map +1 -0
- package/node_modules/@attocash/commons-node-remote/kotlin-logging.mjs +432 -0
- package/node_modules/@attocash/commons-node-remote/kotlin-logging.mjs.map +1 -0
- package/node_modules/@attocash/commons-node-remote/kotlinx-browser.mjs +8 -0
- package/node_modules/@attocash/commons-node-remote/kotlinx-browser.mjs.map +1 -0
- package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs +4 -0
- package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs.map +1 -0
- package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
- package/node_modules/@attocash/commons-node-remote/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-node-remote/package.json +31 -0
- package/node_modules/@attocash/commons-transport/LICENSE +28 -0
- package/node_modules/@attocash/commons-transport/README.md +5 -0
- package/node_modules/@attocash/commons-transport/commons-commons-transport.d.mts +64 -0
- package/node_modules/@attocash/commons-transport/commons-commons-transport.mjs +249 -0
- package/node_modules/@attocash/commons-transport/commons-commons-transport.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/kotlinx-atomicfu.mjs +263 -0
- package/node_modules/@attocash/commons-transport/kotlinx-atomicfu.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/kotlinx-browser.mjs +8 -0
- package/node_modules/@attocash/commons-transport/kotlinx-browser.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/kotlinx-coroutines-core.mjs +11604 -0
- package/node_modules/@attocash/commons-transport/kotlinx-coroutines-core.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json-io.mjs +4 -0
- package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json-io.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
- package/node_modules/@attocash/commons-transport/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-client-content-negotiation.mjs +499 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-client-content-negotiation.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-client-core.mjs +6456 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-client-core.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-events.mjs +83 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-events.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-http-cio.mjs +1714 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-http-cio.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-http.mjs +3197 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-http.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-io.mjs +2290 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-io.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx-json.mjs +46 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx.mjs +482 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-serialization-kotlinx.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-serialization.mjs +165 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-serialization.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-sse.mjs +4 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-sse.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-utils.mjs +3222 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-utils.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-websocket-serialization.mjs +4 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-websocket-serialization.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-websockets.mjs +1485 -0
- package/node_modules/@attocash/commons-transport/ktor-ktor-websockets.mjs.map +1 -0
- package/node_modules/@attocash/commons-transport/package.json +29 -0
- package/node_modules/@attocash/commons-worker/LICENSE +28 -0
- package/node_modules/@attocash/commons-worker/README.md +48 -0
- package/node_modules/@attocash/commons-worker/commons-commons-worker.d.mts +73 -0
- package/node_modules/@attocash/commons-worker/commons-commons-worker.mjs +702 -0
- package/node_modules/@attocash/commons-worker/commons-commons-worker.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker/kotlin-logging.mjs +432 -0
- package/node_modules/@attocash/commons-worker/kotlin-logging.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
- package/node_modules/@attocash/commons-worker/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker/package.json +29 -0
- package/node_modules/@attocash/commons-worker-remote/LICENSE +28 -0
- package/node_modules/@attocash/commons-worker-remote/README.md +60 -0
- package/node_modules/@attocash/commons-worker-remote/commons-commons-worker-remote.d.mts +93 -0
- package/node_modules/@attocash/commons-worker-remote/commons-commons-worker-remote.mjs +289 -0
- package/node_modules/@attocash/commons-worker-remote/commons-commons-worker-remote.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker-remote/kotlin-logging.mjs +432 -0
- package/node_modules/@attocash/commons-worker-remote/kotlin-logging.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker-remote/kotlinx-browser.mjs +8 -0
- package/node_modules/@attocash/commons-worker-remote/kotlinx-browser.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs +4 -0
- package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json-io.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json.mjs +5294 -0
- package/node_modules/@attocash/commons-worker-remote/kotlinx-serialization-kotlinx-serialization-json.mjs.map +1 -0
- package/node_modules/@attocash/commons-worker-remote/package.json +31 -0
- package/node_modules/@js-joda/core/CHANGELOG.md +363 -0
- package/node_modules/@js-joda/core/CheatSheet.md +947 -0
- package/node_modules/@js-joda/core/LICENSE +34 -0
- package/node_modules/@js-joda/core/README.md +155 -0
- package/node_modules/@js-joda/core/bower.json +21 -0
- package/node_modules/@js-joda/core/dist/js-joda.d.ts +2452 -0
- package/node_modules/@js-joda/core/dist/js-joda.esm.js +13564 -0
- package/node_modules/@js-joda/core/dist/js-joda.flow.js +949 -0
- package/node_modules/@js-joda/core/dist/js-joda.js +13630 -0
- package/node_modules/@js-joda/core/dist/js-joda.js.map +1 -0
- package/node_modules/@js-joda/core/dist/js-joda.min.js +5 -0
- package/node_modules/@js-joda/core/package.json +76 -0
- package/node_modules/@js-joda/core/src/Clock.js +330 -0
- package/node_modules/@js-joda/core/src/DayOfWeek.js +451 -0
- package/node_modules/@js-joda/core/src/Duration.js +1205 -0
- package/node_modules/@js-joda/core/src/Enum.js +30 -0
- package/node_modules/@js-joda/core/src/Instant.js +1012 -0
- package/node_modules/@js-joda/core/src/LocalDate.js +1703 -0
- package/node_modules/@js-joda/core/src/LocalDateTime.js +1686 -0
- package/node_modules/@js-joda/core/src/LocalTime.js +1415 -0
- package/node_modules/@js-joda/core/src/MathUtil.js +236 -0
- package/node_modules/@js-joda/core/src/Month.js +600 -0
- package/node_modules/@js-joda/core/src/MonthDay.js +730 -0
- package/node_modules/@js-joda/core/src/OffsetDateTime.js +757 -0
- package/node_modules/@js-joda/core/src/OffsetTime.js +621 -0
- package/node_modules/@js-joda/core/src/Period.js +933 -0
- package/node_modules/@js-joda/core/src/StringUtil.js +43 -0
- package/node_modules/@js-joda/core/src/Year.js +1015 -0
- package/node_modules/@js-joda/core/src/YearConstants.js +21 -0
- package/node_modules/@js-joda/core/src/YearMonth.js +1096 -0
- package/node_modules/@js-joda/core/src/ZoneId.js +236 -0
- package/node_modules/@js-joda/core/src/ZoneIdFactory.js +201 -0
- package/node_modules/@js-joda/core/src/ZoneOffset.js +486 -0
- package/node_modules/@js-joda/core/src/ZoneRegion.js +72 -0
- package/node_modules/@js-joda/core/src/ZonedDateTime.js +2007 -0
- package/node_modules/@js-joda/core/src/_init.js +68 -0
- package/node_modules/@js-joda/core/src/assert.js +33 -0
- package/node_modules/@js-joda/core/src/chrono/ChronoLocalDate.js +230 -0
- package/node_modules/@js-joda/core/src/chrono/ChronoLocalDateTime.js +130 -0
- package/node_modules/@js-joda/core/src/chrono/ChronoZonedDateTime.js +194 -0
- package/node_modules/@js-joda/core/src/chrono/IsoChronology.js +235 -0
- package/node_modules/@js-joda/core/src/convert.js +83 -0
- package/node_modules/@js-joda/core/src/errors.js +54 -0
- package/node_modules/@js-joda/core/src/format/DateTimeBuilder.js +535 -0
- package/node_modules/@js-joda/core/src/format/DateTimeFormatter.js +728 -0
- package/node_modules/@js-joda/core/src/format/DateTimeFormatterBuilder.js +1545 -0
- package/node_modules/@js-joda/core/src/format/DateTimeParseContext.js +297 -0
- package/node_modules/@js-joda/core/src/format/DateTimePrintContext.js +138 -0
- package/node_modules/@js-joda/core/src/format/DecimalStyle.js +113 -0
- package/node_modules/@js-joda/core/src/format/EnumMap.js +70 -0
- package/node_modules/@js-joda/core/src/format/ParsePosition.js +31 -0
- package/node_modules/@js-joda/core/src/format/ResolverStyle.js +93 -0
- package/node_modules/@js-joda/core/src/format/SignStyle.js +38 -0
- package/node_modules/@js-joda/core/src/format/StringBuilder.js +47 -0
- package/node_modules/@js-joda/core/src/format/TextStyle.js +114 -0
- package/node_modules/@js-joda/core/src/format/parser/CharLiteralPrinterParser.js +46 -0
- package/node_modules/@js-joda/core/src/format/parser/CompositePrinterParser.js +89 -0
- package/node_modules/@js-joda/core/src/format/parser/FractionPrinterParser.js +162 -0
- package/node_modules/@js-joda/core/src/format/parser/NumberPrinterParser.js +367 -0
- package/node_modules/@js-joda/core/src/format/parser/OffsetIdPrinterParser.js +177 -0
- package/node_modules/@js-joda/core/src/format/parser/PadPrinterParserDecorator.js +81 -0
- package/node_modules/@js-joda/core/src/format/parser/SettingsParser.js +44 -0
- package/node_modules/@js-joda/core/src/format/parser/StringLiteralPrinterParser.js +39 -0
- package/node_modules/@js-joda/core/src/format/parser/ZoneIdPrinterParser.js +218 -0
- package/node_modules/@js-joda/core/src/js-joda.js +210 -0
- package/node_modules/@js-joda/core/src/license-preamble.js +3 -0
- package/node_modules/@js-joda/core/src/temporal/ChronoField.js +470 -0
- package/node_modules/@js-joda/core/src/temporal/ChronoUnit.js +310 -0
- package/node_modules/@js-joda/core/src/temporal/DefaultInterfaceTemporal.js +118 -0
- package/node_modules/@js-joda/core/src/temporal/IsoFields.js +859 -0
- package/node_modules/@js-joda/core/src/temporal/NativeJsTemporal.js +105 -0
- package/node_modules/@js-joda/core/src/temporal/Temporal.js +346 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalAccessor.js +125 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalAdjuster.js +92 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalAdjusters.js +464 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalAmount.js +166 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalField.js +248 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalQueries.js +223 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalQueriesFactory.js +77 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalQuery.js +107 -0
- package/node_modules/@js-joda/core/src/temporal/TemporalUnit.js +179 -0
- package/node_modules/@js-joda/core/src/temporal/ValueRange.js +257 -0
- package/node_modules/@js-joda/core/src/use.js +20 -0
- package/node_modules/@js-joda/core/src/zone/SystemDefaultZoneId.js +31 -0
- package/node_modules/@js-joda/core/src/zone/SystemDefaultZoneRules.js +162 -0
- package/node_modules/@js-joda/core/src/zone/ZoneOffsetTransition.js +289 -0
- package/node_modules/@js-joda/core/src/zone/ZoneRules.js +464 -0
- package/node_modules/@js-joda/core/src/zone/ZoneRulesProvider.js +36 -0
- package/node_modules/@noble/hashes/LICENSE +21 -0
- package/node_modules/@noble/hashes/README.md +563 -0
- package/node_modules/@noble/hashes/_blake.d.ts +21 -0
- package/node_modules/@noble/hashes/_blake.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_blake.js +52 -0
- package/node_modules/@noble/hashes/_blake.js.map +1 -0
- package/node_modules/@noble/hashes/_md.d.ts +99 -0
- package/node_modules/@noble/hashes/_md.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_md.js +202 -0
- package/node_modules/@noble/hashes/_md.js.map +1 -0
- package/node_modules/@noble/hashes/_u64.d.ts +63 -0
- package/node_modules/@noble/hashes/_u64.d.ts.map +1 -0
- package/node_modules/@noble/hashes/_u64.js +84 -0
- package/node_modules/@noble/hashes/_u64.js.map +1 -0
- package/node_modules/@noble/hashes/argon2.d.ts +112 -0
- package/node_modules/@noble/hashes/argon2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/argon2.js +517 -0
- package/node_modules/@noble/hashes/argon2.js.map +1 -0
- package/node_modules/@noble/hashes/blake1.d.ts +156 -0
- package/node_modules/@noble/hashes/blake1.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake1.js +560 -0
- package/node_modules/@noble/hashes/blake1.js.map +1 -0
- package/node_modules/@noble/hashes/blake2.d.ts +184 -0
- package/node_modules/@noble/hashes/blake2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake2.js +501 -0
- package/node_modules/@noble/hashes/blake2.js.map +1 -0
- package/node_modules/@noble/hashes/blake3.d.ts +68 -0
- package/node_modules/@noble/hashes/blake3.d.ts.map +1 -0
- package/node_modules/@noble/hashes/blake3.js +284 -0
- package/node_modules/@noble/hashes/blake3.js.map +1 -0
- package/node_modules/@noble/hashes/eskdf.d.ts +92 -0
- package/node_modules/@noble/hashes/eskdf.d.ts.map +1 -0
- package/node_modules/@noble/hashes/eskdf.js +218 -0
- package/node_modules/@noble/hashes/eskdf.js.map +1 -0
- package/node_modules/@noble/hashes/hkdf.d.ts +64 -0
- package/node_modules/@noble/hashes/hkdf.d.ts.map +1 -0
- package/node_modules/@noble/hashes/hkdf.js +120 -0
- package/node_modules/@noble/hashes/hkdf.js.map +1 -0
- package/node_modules/@noble/hashes/hmac.d.ts +47 -0
- package/node_modules/@noble/hashes/hmac.d.ts.map +1 -0
- package/node_modules/@noble/hashes/hmac.js +93 -0
- package/node_modules/@noble/hashes/hmac.js.map +1 -0
- package/node_modules/@noble/hashes/index.d.ts +2 -0
- package/node_modules/@noble/hashes/index.d.ts.map +1 -0
- package/node_modules/@noble/hashes/index.js +35 -0
- package/node_modules/@noble/hashes/index.js.map +1 -0
- package/node_modules/@noble/hashes/legacy.d.ts +102 -0
- package/node_modules/@noble/hashes/legacy.d.ts.map +1 -0
- package/node_modules/@noble/hashes/legacy.js +327 -0
- package/node_modules/@noble/hashes/legacy.js.map +1 -0
- package/node_modules/@noble/hashes/package.json +97 -0
- package/node_modules/@noble/hashes/pbkdf2.d.ts +56 -0
- package/node_modules/@noble/hashes/pbkdf2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/pbkdf2.js +135 -0
- package/node_modules/@noble/hashes/pbkdf2.js.map +1 -0
- package/node_modules/@noble/hashes/scrypt.d.ts +65 -0
- package/node_modules/@noble/hashes/scrypt.d.ts.map +1 -0
- package/node_modules/@noble/hashes/scrypt.js +257 -0
- package/node_modules/@noble/hashes/scrypt.js.map +1 -0
- package/node_modules/@noble/hashes/sha2.d.ts +249 -0
- package/node_modules/@noble/hashes/sha2.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha2.js +458 -0
- package/node_modules/@noble/hashes/sha2.js.map +1 -0
- package/node_modules/@noble/hashes/sha3-addons.d.ts +461 -0
- package/node_modules/@noble/hashes/sha3-addons.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha3-addons.js +783 -0
- package/node_modules/@noble/hashes/sha3-addons.js.map +1 -0
- package/node_modules/@noble/hashes/sha3.d.ts +199 -0
- package/node_modules/@noble/hashes/sha3.d.ts.map +1 -0
- package/node_modules/@noble/hashes/sha3.js +431 -0
- package/node_modules/@noble/hashes/sha3.js.map +1 -0
- package/node_modules/@noble/hashes/src/_blake.ts +57 -0
- package/node_modules/@noble/hashes/src/_md.ts +222 -0
- package/node_modules/@noble/hashes/src/_u64.ts +117 -0
- package/node_modules/@noble/hashes/src/argon2.ts +667 -0
- package/node_modules/@noble/hashes/src/blake1.ts +614 -0
- package/node_modules/@noble/hashes/src/blake2.ts +582 -0
- package/node_modules/@noble/hashes/src/blake3.ts +317 -0
- package/node_modules/@noble/hashes/src/eskdf.ts +259 -0
- package/node_modules/@noble/hashes/src/hkdf.ts +133 -0
- package/node_modules/@noble/hashes/src/hmac.ts +126 -0
- package/node_modules/@noble/hashes/src/index.ts +33 -0
- package/node_modules/@noble/hashes/src/legacy.ts +339 -0
- package/node_modules/@noble/hashes/src/pbkdf2.ts +175 -0
- package/node_modules/@noble/hashes/src/scrypt.ts +315 -0
- package/node_modules/@noble/hashes/src/sha2.ts +530 -0
- package/node_modules/@noble/hashes/src/sha3-addons.ts +983 -0
- package/node_modules/@noble/hashes/src/sha3.ts +485 -0
- package/node_modules/@noble/hashes/src/utils.ts +848 -0
- package/node_modules/@noble/hashes/src/webcrypto.ts +239 -0
- package/node_modules/@noble/hashes/utils.d.ts +519 -0
- package/node_modules/@noble/hashes/utils.d.ts.map +1 -0
- package/node_modules/@noble/hashes/utils.js +578 -0
- package/node_modules/@noble/hashes/utils.js.map +1 -0
- package/node_modules/@noble/hashes/webcrypto.d.ts +120 -0
- package/node_modules/@noble/hashes/webcrypto.d.ts.map +1 -0
- package/node_modules/@noble/hashes/webcrypto.js +165 -0
- package/node_modules/@noble/hashes/webcrypto.js.map +1 -0
- package/node_modules/ws/LICENSE +20 -0
- package/node_modules/ws/README.md +548 -0
- package/node_modules/ws/browser.js +8 -0
- package/node_modules/ws/index.js +22 -0
- package/node_modules/ws/lib/buffer-util.js +131 -0
- package/node_modules/ws/lib/constants.js +19 -0
- package/node_modules/ws/lib/event-target.js +292 -0
- package/node_modules/ws/lib/extension.js +203 -0
- package/node_modules/ws/lib/limiter.js +55 -0
- package/node_modules/ws/lib/permessage-deflate.js +530 -0
- package/node_modules/ws/lib/receiver.js +743 -0
- package/node_modules/ws/lib/sender.js +607 -0
- package/node_modules/ws/lib/stream.js +161 -0
- package/node_modules/ws/lib/subprotocol.js +62 -0
- package/node_modules/ws/lib/validation.js +152 -0
- package/node_modules/ws/lib/websocket-server.js +562 -0
- package/node_modules/ws/lib/websocket.js +1407 -0
- package/node_modules/ws/package.json +74 -0
- package/node_modules/ws/wrapper.mjs +21 -0
- 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
|
+
}
|