shelving 1.236.0 → 1.236.2
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/api/cache/APICache.d.ts +69 -6
- package/api/cache/APICache.js +61 -5
- package/api/cache/EndpointCache.d.ts +75 -7
- package/api/cache/EndpointCache.js +75 -7
- package/api/endpoint/Endpoint.d.ts +141 -25
- package/api/endpoint/Endpoint.js +55 -9
- package/api/endpoint/util.d.ts +28 -6
- package/api/provider/APIProvider.d.ts +58 -14
- package/api/provider/APIProvider.js +24 -2
- package/api/provider/CachedAPIProvider.d.ts +58 -5
- package/api/provider/CachedAPIProvider.js +58 -6
- package/api/provider/ClientAPIProvider.d.ts +80 -4
- package/api/provider/ClientAPIProvider.js +75 -4
- package/api/provider/DebugAPIProvider.d.ts +40 -1
- package/api/provider/DebugAPIProvider.js +40 -1
- package/api/provider/JSONAPIProvider.d.ts +18 -2
- package/api/provider/JSONAPIProvider.js +18 -2
- package/api/provider/LoggingAPIProvider.d.ts +25 -2
- package/api/provider/LoggingAPIProvider.js +25 -2
- package/api/provider/MockAPIProvider.d.ts +72 -1
- package/api/provider/MockAPIProvider.js +60 -4
- package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
- package/api/provider/MockEndpointAPIProvider.js +9 -0
- package/api/provider/ThroughAPIProvider.d.ts +67 -1
- package/api/provider/ThroughAPIProvider.js +67 -1
- package/api/provider/ValidationAPIProvider.d.ts +32 -1
- package/api/provider/ValidationAPIProvider.js +32 -1
- package/api/provider/XMLAPIProvider.d.ts +18 -2
- package/api/provider/XMLAPIProvider.js +18 -2
- package/api/store/EndpointStore.d.ts +24 -1
- package/api/store/EndpointStore.js +24 -1
- package/bun/BunPostgreSQLProvider.d.ts +38 -0
- package/bun/BunPostgreSQLProvider.js +38 -2
- package/cloudflare/CloudflareD1Provider.d.ts +29 -2
- package/cloudflare/CloudflareD1Provider.js +29 -2
- package/cloudflare/CloudflareKVProvider.d.ts +115 -0
- package/cloudflare/CloudflareKVProvider.js +115 -0
- package/cloudflare/types.d.ts +41 -7
- package/db/cache/CollectionCache.d.ts +83 -7
- package/db/cache/CollectionCache.js +83 -7
- package/db/cache/DBCache.d.ts +93 -8
- package/db/cache/DBCache.js +85 -7
- package/db/collection/Collection.d.ts +103 -15
- package/db/collection/Collection.js +58 -6
- package/db/migrate/DBMigrator.d.ts +29 -1
- package/db/migrate/DBMigrator.js +20 -1
- package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
- package/db/migrate/PostgreSQLMigrator.js +8 -1
- package/db/migrate/SQLMigrator.d.ts +63 -4
- package/db/migrate/SQLMigrator.js +51 -1
- package/db/migrate/SQLiteMigrator.d.ts +8 -1
- package/db/migrate/SQLiteMigrator.js +8 -1
- package/db/provider/CacheDBProvider.d.ts +135 -1
- package/db/provider/CacheDBProvider.js +135 -1
- package/db/provider/ChangesDBProvider.d.ts +84 -3
- package/db/provider/ChangesDBProvider.js +77 -2
- package/db/provider/DBProvider.d.ts +148 -1
- package/db/provider/DBProvider.js +51 -1
- package/db/provider/DebugDBProvider.d.ts +118 -1
- package/db/provider/DebugDBProvider.js +118 -1
- package/db/provider/MemoryDBProvider.d.ts +262 -7
- package/db/provider/MemoryDBProvider.js +262 -7
- package/db/provider/MockDBProvider.d.ts +113 -2
- package/db/provider/MockDBProvider.js +106 -1
- package/db/provider/PostgreSQLProvider.d.ts +34 -2
- package/db/provider/PostgreSQLProvider.js +34 -4
- package/db/provider/SQLProvider.d.ts +250 -14
- package/db/provider/SQLProvider.js +237 -13
- package/db/provider/SQLiteProvider.d.ts +41 -1
- package/db/provider/SQLiteProvider.js +41 -4
- package/db/provider/ThroughDBProvider.d.ts +156 -1
- package/db/provider/ThroughDBProvider.js +156 -1
- package/db/provider/ValidationDBProvider.d.ts +120 -1
- package/db/provider/ValidationDBProvider.js +120 -1
- package/db/store/ItemStore.d.ts +38 -2
- package/db/store/ItemStore.js +38 -2
- package/db/store/QueryStore.d.ts +64 -6
- package/db/store/QueryStore.js +64 -6
- package/error/BaseError.d.ts +27 -2
- package/error/BaseError.js +14 -0
- package/error/Errors.d.ts +12 -1
- package/error/Errors.js +12 -1
- package/error/NetworkError.d.ts +13 -1
- package/error/NetworkError.js +13 -1
- package/error/RequestError.d.ts +90 -7
- package/error/RequestError.js +90 -7
- package/error/RequiredError.d.ts +11 -1
- package/error/RequiredError.js +11 -1
- package/error/ResponseError.d.ts +19 -2
- package/error/ResponseError.js +19 -2
- package/error/UnexpectedError.d.ts +14 -1
- package/error/UnexpectedError.js +14 -1
- package/error/UnimplementedError.d.ts +13 -1
- package/error/UnimplementedError.js +13 -1
- package/error/ValueError.d.ts +14 -1
- package/error/ValueError.js +14 -1
- package/extract/DirectoryExtractor.d.ts +35 -1
- package/extract/DirectoryExtractor.js +30 -0
- package/extract/Extractor.d.ts +21 -2
- package/extract/Extractor.js +7 -1
- package/extract/FileExtractor.d.ts +18 -0
- package/extract/FileExtractor.js +18 -0
- package/extract/IndexExtractor.d.ts +36 -1
- package/extract/IndexExtractor.js +31 -0
- package/extract/MarkupExtractor.d.ts +15 -0
- package/extract/MarkupExtractor.js +15 -0
- package/extract/MergingExtractor.d.ts +36 -1
- package/extract/MergingExtractor.js +31 -0
- package/extract/ModuleExtractor.d.ts +25 -1
- package/extract/ModuleExtractor.js +20 -0
- package/extract/PackageExtractor.d.ts +36 -1
- package/extract/PackageExtractor.js +31 -0
- package/extract/ThroughExtractor.d.ts +22 -1
- package/extract/ThroughExtractor.js +22 -1
- package/extract/TypescriptExtractor.d.ts +21 -0
- package/extract/TypescriptExtractor.js +28 -3
- package/firestore/client/FirestoreClientProvider.d.ts +129 -4
- package/firestore/client/FirestoreClientProvider.js +129 -4
- package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
- package/firestore/lite/FirestoreLiteProvider.js +128 -3
- package/firestore/server/FirestoreServerProvider.d.ts +129 -2
- package/firestore/server/FirestoreServerProvider.js +129 -2
- package/markup/MarkupParser.d.ts +57 -10
- package/markup/MarkupParser.js +50 -9
- package/markup/MarkupRule.d.ts +34 -1
- package/markup/Parser.d.ts +18 -0
- package/markup/Parser.js +11 -0
- package/markup/rule/blockquote.d.ts +3 -0
- package/markup/rule/blockquote.js +3 -0
- package/markup/rule/code.d.ts +3 -0
- package/markup/rule/code.js +3 -0
- package/markup/rule/fenced.d.ts +3 -0
- package/markup/rule/fenced.js +3 -0
- package/markup/rule/heading.d.ts +3 -0
- package/markup/rule/heading.js +3 -0
- package/markup/rule/index.d.ts +16 -3
- package/markup/rule/index.js +16 -3
- package/markup/rule/inline.d.ts +4 -1
- package/markup/rule/inline.js +5 -2
- package/markup/rule/linebreak.d.ts +3 -0
- package/markup/rule/linebreak.js +3 -0
- package/markup/rule/link.d.ts +6 -0
- package/markup/rule/link.js +6 -0
- package/markup/rule/ordered.d.ts +3 -0
- package/markup/rule/ordered.js +3 -0
- package/markup/rule/paragraph.d.ts +3 -0
- package/markup/rule/paragraph.js +3 -0
- package/markup/rule/separator.d.ts +3 -0
- package/markup/rule/separator.js +3 -0
- package/markup/rule/table.d.ts +3 -0
- package/markup/rule/table.js +3 -0
- package/markup/rule/unordered.d.ts +3 -0
- package/markup/rule/unordered.js +3 -0
- package/markup/util/regexp.d.ts +80 -3
- package/markup/util/regexp.js +44 -0
- package/package.json +1 -1
- package/react/createAPIContext.d.ts +15 -0
- package/react/createAPIContext.js +10 -0
- package/react/createDBContext.d.ts +15 -0
- package/react/createDBContext.js +10 -0
- package/react/useInstance.d.ts +11 -0
- package/react/useInstance.js +11 -0
- package/react/useLazy.d.ts +11 -0
- package/react/useMap.d.ts +14 -1
- package/react/useMap.js +14 -1
- package/react/useReduce.d.ts +12 -0
- package/react/useSequence.d.ts +10 -0
- package/react/useSequence.js +10 -0
- package/react/useStore.d.ts +16 -1
- package/schema/AddressSchema.d.ts +41 -4
- package/schema/AddressSchema.js +36 -3
- package/schema/ArraySchema.d.ts +48 -6
- package/schema/ArraySchema.js +40 -5
- package/schema/BooleanSchema.d.ts +59 -3
- package/schema/BooleanSchema.js +51 -2
- package/schema/ChoiceSchema.d.ts +61 -7
- package/schema/ChoiceSchema.js +44 -2
- package/schema/ColorSchema.d.ts +41 -8
- package/schema/ColorSchema.js +36 -7
- package/schema/CountrySchema.d.ts +44 -4
- package/schema/CountrySchema.js +39 -3
- package/schema/CurrencyAmountSchema.d.ts +104 -8
- package/schema/CurrencyAmountSchema.js +91 -4
- package/schema/CurrencyCodeSchema.d.ts +56 -4
- package/schema/CurrencyCodeSchema.js +49 -3
- package/schema/DataSchema.d.ts +101 -10
- package/schema/DataSchema.js +87 -8
- package/schema/DateSchema.d.ts +73 -4
- package/schema/DateSchema.js +57 -2
- package/schema/DateTimeSchema.d.ts +40 -3
- package/schema/DateTimeSchema.js +40 -3
- package/schema/DictionarySchema.d.ts +54 -4
- package/schema/DictionarySchema.js +47 -3
- package/schema/EmailSchema.d.ts +34 -3
- package/schema/EmailSchema.js +34 -3
- package/schema/EntitySchema.d.ts +45 -4
- package/schema/EntitySchema.js +38 -3
- package/schema/FileSchema.d.ts +45 -4
- package/schema/FileSchema.js +39 -3
- package/schema/KeySchema.d.ts +32 -3
- package/schema/KeySchema.js +32 -3
- package/schema/NullableSchema.d.ts +64 -4
- package/schema/NullableSchema.js +59 -3
- package/schema/NumberSchema.d.ts +137 -12
- package/schema/NumberSchema.js +127 -11
- package/schema/OptionalSchema.d.ts +61 -4
- package/schema/OptionalSchema.js +56 -4
- package/schema/PasswordSchema.d.ts +37 -1
- package/schema/PasswordSchema.js +32 -1
- package/schema/PhoneSchema.d.ts +40 -4
- package/schema/PhoneSchema.js +35 -3
- package/schema/RequiredSchema.d.ts +39 -3
- package/schema/RequiredSchema.js +41 -3
- package/schema/Schema.d.ts +67 -7
- package/schema/Schema.js +42 -6
- package/schema/SlugSchema.d.ts +37 -5
- package/schema/SlugSchema.js +37 -5
- package/schema/StringSchema.d.ts +124 -19
- package/schema/StringSchema.js +107 -17
- package/schema/ThroughSchema.d.ts +35 -2
- package/schema/ThroughSchema.js +30 -1
- package/schema/TimeSchema.d.ts +43 -3
- package/schema/TimeSchema.js +43 -3
- package/schema/URISchema.d.ts +67 -6
- package/schema/URISchema.js +60 -6
- package/schema/URLSchema.d.ts +69 -6
- package/schema/URLSchema.js +61 -6
- package/schema/UUIDSchema.d.ts +37 -4
- package/schema/UUIDSchema.js +37 -4
- package/sequence/DeferredSequence.d.ts +49 -3
- package/sequence/DeferredSequence.js +39 -3
- package/sequence/InspectSequence.d.ts +59 -5
- package/sequence/InspectSequence.js +59 -5
- package/sequence/LazySequence.d.ts +30 -2
- package/sequence/LazySequence.js +30 -2
- package/sequence/Sequence.d.ts +11 -0
- package/sequence/Sequence.js +10 -0
- package/sequence/ThroughSequence.d.ts +15 -0
- package/sequence/ThroughSequence.js +15 -0
- package/store/ArrayStore.d.ts +74 -11
- package/store/ArrayStore.js +74 -11
- package/store/BooleanStore.d.ts +19 -2
- package/store/BooleanStore.js +19 -2
- package/store/BusyStore.d.ts +13 -1
- package/store/BusyStore.js +13 -1
- package/store/DataStore.d.ts +118 -15
- package/store/DataStore.js +118 -15
- package/store/DictionaryStore.d.ts +66 -8
- package/store/DictionaryStore.js +66 -8
- package/store/FetchStore.d.ts +43 -6
- package/store/FetchStore.js +36 -5
- package/store/PathStore.d.ts +44 -5
- package/store/PathStore.js +44 -5
- package/store/PayloadFetchStore.d.ts +16 -1
- package/store/PayloadFetchStore.js +9 -1
- package/store/Store.d.ts +85 -16
- package/store/Store.js +52 -10
- package/store/URLStore.d.ts +173 -15
- package/store/URLStore.js +173 -15
- package/test/basics.d.ts +70 -0
- package/test/basics.js +60 -0
- package/test/people.d.ts +45 -0
- package/test/people.js +35 -0
- package/test/util.d.ts +30 -3
- package/test/util.js +30 -3
- package/ui/app/App.d.ts +14 -2
- package/ui/app/App.js +9 -2
- package/ui/app/App.tsx +14 -2
- package/ui/block/Address.d.ts +45 -3
- package/ui/block/Address.js +30 -3
- package/ui/block/Address.tsx +46 -3
- package/ui/block/Block.d.ts +23 -1
- package/ui/block/Block.js +13 -1
- package/ui/block/Block.tsx +23 -1
- package/ui/block/Blockquote.d.ts +21 -0
- package/ui/block/Blockquote.js +16 -0
- package/ui/block/Blockquote.tsx +22 -0
- package/ui/block/Caption.d.ts +21 -1
- package/ui/block/Caption.js +16 -1
- package/ui/block/Caption.tsx +22 -1
- package/ui/block/Card.d.ts +6 -0
- package/ui/block/Card.js +1 -0
- package/ui/block/Card.tsx +6 -0
- package/ui/block/Definitions.d.ts +18 -0
- package/ui/block/Definitions.js +13 -0
- package/ui/block/Definitions.tsx +19 -0
- package/ui/block/Divider.d.ts +21 -0
- package/ui/block/Divider.js +16 -0
- package/ui/block/Divider.tsx +22 -0
- package/ui/block/Heading.d.ts +20 -1
- package/ui/block/Heading.js +15 -0
- package/ui/block/Heading.tsx +21 -1
- package/ui/block/Image.d.ts +23 -0
- package/ui/block/Image.js +18 -0
- package/ui/block/Image.tsx +24 -0
- package/ui/block/Label.d.ts +18 -3
- package/ui/block/Label.js +13 -3
- package/ui/block/Label.tsx +18 -3
- package/ui/block/List.d.ts +30 -0
- package/ui/block/List.js +25 -0
- package/ui/block/List.tsx +32 -0
- package/ui/block/Panel.d.ts +13 -1
- package/ui/block/Panel.js +3 -0
- package/ui/block/Panel.tsx +13 -1
- package/ui/block/Paragraph.d.ts +23 -0
- package/ui/block/Paragraph.js +18 -0
- package/ui/block/Paragraph.tsx +24 -0
- package/ui/block/Preformatted.d.ts +20 -0
- package/ui/block/Preformatted.js +15 -0
- package/ui/block/Preformatted.tsx +21 -0
- package/ui/block/Prose.d.ts +14 -1
- package/ui/block/Prose.js +9 -1
- package/ui/block/Prose.tsx +14 -1
- package/ui/block/Section.d.ts +69 -6
- package/ui/block/Section.js +59 -6
- package/ui/block/Section.tsx +70 -6
- package/ui/block/Subheading.d.ts +20 -1
- package/ui/block/Subheading.js +15 -0
- package/ui/block/Subheading.tsx +21 -1
- package/ui/block/Table.d.ts +20 -0
- package/ui/block/Table.js +15 -0
- package/ui/block/Table.tsx +21 -0
- package/ui/block/Title.d.ts +20 -1
- package/ui/block/Title.js +15 -0
- package/ui/block/Title.tsx +21 -1
- package/ui/block/Video.d.ts +50 -3
- package/ui/block/Video.js +30 -3
- package/ui/block/Video.tsx +50 -3
- package/ui/dialog/Dialog.d.ts +28 -1
- package/ui/dialog/Dialog.js +18 -1
- package/ui/dialog/Dialog.tsx +28 -1
- package/ui/dialog/Dialogs.d.ts +53 -6
- package/ui/dialog/Dialogs.js +43 -6
- package/ui/dialog/Dialogs.tsx +53 -6
- package/ui/dialog/Modal.d.ts +13 -0
- package/ui/dialog/Modal.js +8 -0
- package/ui/dialog/Modal.tsx +13 -0
- package/ui/docs/DocumentationButtons.d.ts +5 -1
- package/ui/docs/DocumentationButtons.tsx +5 -1
- package/ui/docs/DocumentationCard.d.ts +6 -1
- package/ui/docs/DocumentationCard.js +6 -1
- package/ui/docs/DocumentationCard.tsx +6 -1
- package/ui/docs/DocumentationKind.d.ts +13 -1
- package/ui/docs/DocumentationKind.js +8 -0
- package/ui/docs/DocumentationKind.tsx +13 -1
- package/ui/docs/DocumentationPage.d.ts +6 -1
- package/ui/docs/DocumentationPage.js +6 -1
- package/ui/docs/DocumentationPage.tsx +6 -1
- package/ui/docs/DocumentationSignatures.d.ts +10 -1
- package/ui/docs/DocumentationSignatures.js +5 -0
- package/ui/docs/DocumentationSignatures.tsx +10 -1
- package/ui/form/ArrayInput.d.ts +15 -0
- package/ui/form/ArrayInput.tsx +15 -0
- package/ui/form/ArrayRadioInputs.d.ts +10 -0
- package/ui/form/ArrayRadioInputs.js +5 -0
- package/ui/form/ArrayRadioInputs.tsx +10 -0
- package/ui/form/Button.d.ts +19 -3
- package/ui/form/Button.js +14 -2
- package/ui/form/Button.tsx +19 -3
- package/ui/form/ButtonInput.d.ts +14 -1
- package/ui/form/ButtonInput.js +9 -1
- package/ui/form/ButtonInput.tsx +14 -1
- package/ui/form/ButtonInputPopover.d.ts +10 -0
- package/ui/form/ButtonInputPopover.js +5 -0
- package/ui/form/ButtonInputPopover.tsx +10 -0
- package/ui/form/ButtonPopover.d.ts +11 -1
- package/ui/form/ButtonPopover.js +6 -1
- package/ui/form/ButtonPopover.tsx +11 -1
- package/ui/form/CheckboxInput.d.ts +14 -1
- package/ui/form/CheckboxInput.js +9 -1
- package/ui/form/CheckboxInput.tsx +14 -1
- package/ui/form/ChoiceRadioInputs.d.ts +10 -0
- package/ui/form/ChoiceRadioInputs.tsx +10 -0
- package/ui/form/Clickable.d.ts +45 -5
- package/ui/form/Clickable.js +30 -3
- package/ui/form/Clickable.tsx +45 -5
- package/ui/form/DataInput.d.ts +14 -0
- package/ui/form/DataInput.tsx +14 -0
- package/ui/form/DateInput.d.ts +14 -0
- package/ui/form/DateInput.js +9 -0
- package/ui/form/DateInput.tsx +14 -0
- package/ui/form/DictionaryInput.d.ts +15 -0
- package/ui/form/DictionaryInput.tsx +15 -0
- package/ui/form/Field.d.ts +5 -0
- package/ui/form/Field.tsx +5 -0
- package/ui/form/FileInput.d.ts +14 -0
- package/ui/form/FileInput.js +9 -0
- package/ui/form/FileInput.tsx +14 -0
- package/ui/form/Form.d.ts +55 -6
- package/ui/form/Form.js +35 -3
- package/ui/form/Form.tsx +55 -6
- package/ui/form/FormContext.d.ts +24 -3
- package/ui/form/FormContext.js +5 -1
- package/ui/form/FormContext.tsx +24 -3
- package/ui/form/FormFields.d.ts +15 -2
- package/ui/form/FormFields.js +15 -2
- package/ui/form/FormFields.tsx +15 -2
- package/ui/form/FormFooter.d.ts +13 -3
- package/ui/form/FormFooter.js +8 -3
- package/ui/form/FormFooter.tsx +13 -3
- package/ui/form/FormInput.d.ts +21 -2
- package/ui/form/FormInput.js +16 -2
- package/ui/form/FormInput.tsx +21 -2
- package/ui/form/FormMessage.d.ts +8 -1
- package/ui/form/FormMessage.js +8 -1
- package/ui/form/FormMessage.tsx +8 -2
- package/ui/form/FormNotice.d.ts +8 -1
- package/ui/form/FormNotice.js +8 -1
- package/ui/form/FormNotice.tsx +8 -2
- package/ui/form/FormNotify.d.ts +8 -1
- package/ui/form/FormNotify.js +8 -1
- package/ui/form/FormNotify.tsx +8 -2
- package/ui/form/FormStore.d.ts +50 -6
- package/ui/form/FormStore.js +50 -6
- package/ui/form/FormStore.tsx +50 -6
- package/ui/form/Input.d.ts +65 -1
- package/ui/form/Input.js +60 -0
- package/ui/form/Input.tsx +77 -1
- package/ui/form/NumberInput.d.ts +14 -0
- package/ui/form/NumberInput.js +9 -0
- package/ui/form/NumberInput.tsx +14 -0
- package/ui/form/OutputInput.d.ts +13 -1
- package/ui/form/OutputInput.js +8 -1
- package/ui/form/OutputInput.tsx +13 -1
- package/ui/form/Popover.d.ts +18 -2
- package/ui/form/Popover.js +8 -2
- package/ui/form/Popover.tsx +18 -2
- package/ui/form/Progress.d.ts +26 -2
- package/ui/form/Progress.js +16 -2
- package/ui/form/Progress.tsx +26 -2
- package/ui/form/QueryInput.d.ts +14 -5
- package/ui/form/QueryInput.js +9 -5
- package/ui/form/QueryInput.tsx +14 -5
- package/ui/form/RadioInput.d.ts +14 -1
- package/ui/form/RadioInput.js +9 -1
- package/ui/form/RadioInput.tsx +14 -1
- package/ui/form/SchemaInput.d.ts +138 -7
- package/ui/form/SchemaInput.js +79 -4
- package/ui/form/SchemaInput.tsx +138 -7
- package/ui/form/SelectInput.d.ts +14 -0
- package/ui/form/SelectInput.tsx +14 -0
- package/ui/form/SubmitButton.d.ts +14 -1
- package/ui/form/SubmitButton.js +9 -1
- package/ui/form/SubmitButton.tsx +14 -1
- package/ui/form/TextInput.d.ts +15 -0
- package/ui/form/TextInput.js +10 -0
- package/ui/form/TextInput.tsx +15 -0
- package/ui/inline/Code.d.ts +29 -0
- package/ui/inline/Code.js +24 -0
- package/ui/inline/Code.tsx +31 -0
- package/ui/inline/Deleted.d.ts +23 -0
- package/ui/inline/Deleted.js +18 -0
- package/ui/inline/Deleted.tsx +24 -0
- package/ui/inline/Emphasis.d.ts +23 -0
- package/ui/inline/Emphasis.js +18 -0
- package/ui/inline/Emphasis.tsx +24 -0
- package/ui/inline/Inserted.d.ts +23 -0
- package/ui/inline/Inserted.js +18 -0
- package/ui/inline/Inserted.tsx +24 -0
- package/ui/inline/Link.d.ts +23 -0
- package/ui/inline/Link.js +18 -0
- package/ui/inline/Link.tsx +24 -0
- package/ui/inline/Mark.d.ts +23 -0
- package/ui/inline/Mark.js +18 -0
- package/ui/inline/Mark.tsx +24 -0
- package/ui/inline/Small.d.ts +23 -0
- package/ui/inline/Small.js +18 -0
- package/ui/inline/Small.tsx +24 -0
- package/ui/inline/Strong.d.ts +23 -0
- package/ui/inline/Strong.js +18 -0
- package/ui/inline/Strong.tsx +24 -0
- package/ui/inline/Subscript.d.ts +23 -0
- package/ui/inline/Subscript.js +18 -0
- package/ui/inline/Subscript.tsx +24 -0
- package/ui/inline/Superscript.d.ts +23 -0
- package/ui/inline/Superscript.js +18 -0
- package/ui/inline/Superscript.tsx +24 -0
- package/ui/inline/When.d.ts +42 -3
- package/ui/inline/When.js +27 -3
- package/ui/inline/When.tsx +42 -3
- package/ui/layout/CenteredLayout.d.ts +12 -1
- package/ui/layout/CenteredLayout.js +7 -1
- package/ui/layout/CenteredLayout.tsx +12 -1
- package/ui/layout/Layout.d.ts +12 -3
- package/ui/layout/Layout.js +12 -3
- package/ui/layout/Layout.ts +12 -3
- package/ui/layout/SidebarLayout.d.ts +12 -0
- package/ui/layout/SidebarLayout.js +7 -0
- package/ui/layout/SidebarLayout.tsx +12 -0
- package/ui/menu/Menu.d.ts +22 -0
- package/ui/menu/Menu.js +12 -0
- package/ui/menu/Menu.tsx +22 -0
- package/ui/misc/Catcher.d.ts +77 -5
- package/ui/misc/Catcher.js +47 -5
- package/ui/misc/Catcher.tsx +77 -5
- package/ui/misc/Loading.d.ts +20 -0
- package/ui/misc/Loading.js +15 -0
- package/ui/misc/Loading.tsx +20 -0
- package/ui/misc/Mapper.d.ts +13 -1
- package/ui/misc/Mapper.js +4 -0
- package/ui/misc/Mapper.tsx +13 -1
- package/ui/misc/Markup.d.ts +9 -1
- package/ui/misc/Markup.js +4 -0
- package/ui/misc/Markup.tsx +9 -1
- package/ui/misc/MetaContext.d.ts +24 -7
- package/ui/misc/MetaContext.js +19 -6
- package/ui/misc/MetaContext.tsx +24 -7
- package/ui/misc/StatusIcon.d.ts +16 -1
- package/ui/misc/StatusIcon.js +11 -1
- package/ui/misc/StatusIcon.tsx +16 -1
- package/ui/misc/Tag.d.ts +21 -0
- package/ui/misc/Tag.js +11 -0
- package/ui/misc/Tag.tsx +21 -0
- package/ui/notice/Message.d.ts +27 -1
- package/ui/notice/Message.js +22 -1
- package/ui/notice/Message.tsx +27 -1
- package/ui/notice/Notice.d.ts +24 -0
- package/ui/notice/Notice.js +19 -0
- package/ui/notice/Notice.tsx +24 -0
- package/ui/notice/NoticeStore.d.ts +30 -2
- package/ui/notice/NoticeStore.js +30 -2
- package/ui/notice/NoticeStore.ts +30 -2
- package/ui/notice/Notices.d.ts +11 -1
- package/ui/notice/Notices.js +6 -1
- package/ui/notice/Notices.tsx +11 -1
- package/ui/notice/NoticesStore.d.ts +23 -3
- package/ui/notice/NoticesStore.js +23 -3
- package/ui/notice/NoticesStore.ts +23 -3
- package/ui/page/HTML.d.ts +13 -2
- package/ui/page/HTML.js +8 -2
- package/ui/page/HTML.tsx +13 -2
- package/ui/page/Head.d.ts +5 -1
- package/ui/page/Head.js +5 -1
- package/ui/page/Head.tsx +5 -1
- package/ui/page/Page.d.ts +12 -1
- package/ui/page/Page.js +7 -1
- package/ui/page/Page.tsx +12 -1
- package/ui/router/Navigation.d.ts +11 -0
- package/ui/router/Navigation.js +6 -0
- package/ui/router/Navigation.tsx +11 -0
- package/ui/router/NavigationContext.d.ts +14 -2
- package/ui/router/NavigationContext.js +14 -2
- package/ui/router/NavigationContext.tsx +14 -2
- package/ui/router/NavigationStore.d.ts +29 -1
- package/ui/router/NavigationStore.js +29 -1
- package/ui/router/NavigationStore.tsx +29 -1
- package/ui/router/Router.d.ts +12 -1
- package/ui/router/Router.js +7 -1
- package/ui/router/Router.tsx +12 -1
- package/ui/router/Routes.d.ts +14 -4
- package/ui/router/Routes.tsx +14 -4
- package/ui/style/Color.d.ts +15 -2
- package/ui/style/Color.js +5 -0
- package/ui/style/Color.tsx +15 -2
- package/ui/style/Flex.d.ts +41 -4
- package/ui/style/Flex.js +26 -3
- package/ui/style/Flex.tsx +41 -4
- package/ui/style/Gap.d.ts +18 -3
- package/ui/style/Gap.js +8 -1
- package/ui/style/Gap.tsx +18 -3
- package/ui/style/Padding.d.ts +18 -3
- package/ui/style/Padding.js +8 -1
- package/ui/style/Padding.tsx +18 -3
- package/ui/style/Scroll.d.ts +36 -1
- package/ui/style/Scroll.js +26 -1
- package/ui/style/Scroll.tsx +37 -1
- package/ui/style/Space.d.ts +18 -3
- package/ui/style/Space.js +8 -1
- package/ui/style/Space.tsx +18 -3
- package/ui/style/Status.d.ts +23 -7
- package/ui/style/Status.js +13 -5
- package/ui/style/Status.tsx +23 -7
- package/ui/style/Tint.d.ts +7 -1
- package/ui/style/Tint.js +7 -1
- package/ui/style/Tint.tsx +7 -1
- package/ui/style/Typography.d.ts +38 -6
- package/ui/style/Typography.js +8 -0
- package/ui/style/Typography.tsx +38 -6
- package/ui/style/Width.d.ts +18 -1
- package/ui/style/Width.js +8 -0
- package/ui/style/Width.tsx +18 -1
- package/ui/transition/CollapseTransition.d.ts +13 -0
- package/ui/transition/CollapseTransition.js +8 -0
- package/ui/transition/CollapseTransition.tsx +13 -0
- package/ui/transition/FadeTransition.d.ts +13 -0
- package/ui/transition/FadeTransition.js +8 -0
- package/ui/transition/FadeTransition.tsx +13 -0
- package/ui/transition/HorizontalTransition.d.ts +13 -0
- package/ui/transition/HorizontalTransition.js +8 -0
- package/ui/transition/HorizontalTransition.tsx +13 -0
- package/ui/transition/Transition.d.ts +12 -4
- package/ui/transition/Transition.js +7 -3
- package/ui/transition/Transition.tsx +12 -4
- package/ui/transition/VerticalTransition.d.ts +13 -0
- package/ui/transition/VerticalTransition.js +8 -0
- package/ui/transition/VerticalTransition.tsx +13 -0
- package/ui/transition/util.d.ts +16 -6
- package/ui/transition/util.js +7 -1
- package/ui/transition/util.tsx +16 -6
- package/ui/tree/TreeApp.d.ts +11 -0
- package/ui/tree/TreeApp.js +6 -0
- package/ui/tree/TreeApp.tsx +11 -0
- package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
- package/ui/tree/TreeBreadcrumbs.js +6 -0
- package/ui/tree/TreeBreadcrumbs.tsx +11 -0
- package/ui/tree/TreeButton.d.ts +9 -1
- package/ui/tree/TreeButton.js +4 -0
- package/ui/tree/TreeButton.tsx +9 -1
- package/ui/tree/TreeCard.d.ts +8 -1
- package/ui/tree/TreeCard.js +8 -1
- package/ui/tree/TreeCard.tsx +8 -1
- package/ui/tree/TreeCards.d.ts +16 -1
- package/ui/tree/TreeCards.js +11 -1
- package/ui/tree/TreeCards.tsx +16 -1
- package/ui/tree/TreeContext.d.ts +18 -1
- package/ui/tree/TreeContext.js +18 -1
- package/ui/tree/TreeContext.tsx +18 -1
- package/ui/tree/TreeMenu.d.ts +28 -1
- package/ui/tree/TreeMenu.js +23 -1
- package/ui/tree/TreeMenu.tsx +28 -1
- package/ui/tree/TreePage.d.ts +6 -0
- package/ui/tree/TreePage.js +6 -0
- package/ui/tree/TreePage.tsx +6 -0
- package/ui/tree/TreeRouter.d.ts +17 -2
- package/ui/tree/TreeRouter.js +12 -2
- package/ui/tree/TreeRouter.tsx +17 -2
- package/ui/tree/TreeSidebar.d.ts +11 -0
- package/ui/tree/TreeSidebar.js +6 -0
- package/ui/tree/TreeSidebar.tsx +11 -0
- package/ui/util/context.d.ts +13 -1
- package/ui/util/context.ts +13 -1
- package/ui/util/css.d.ts +17 -4
- package/ui/util/css.js +5 -1
- package/ui/util/css.ts +17 -4
- package/ui/util/event.d.ts +9 -1
- package/ui/util/event.js +9 -1
- package/ui/util/event.ts +9 -1
- package/ui/util/focus.d.ts +24 -5
- package/ui/util/focus.js +24 -5
- package/ui/util/focus.ts +24 -5
- package/ui/util/meta.d.ts +113 -21
- package/ui/util/meta.js +73 -13
- package/ui/util/meta.ts +113 -21
- package/ui/util/notice.d.ts +98 -10
- package/ui/util/notice.js +93 -9
- package/ui/util/notice.ts +98 -10
- package/ui/util/props.d.ts +10 -2
- package/ui/util/props.ts +10 -2
- package/ui/util/refresh.d.ts +10 -1
- package/ui/util/refresh.js +10 -1
- package/ui/util/refresh.ts +10 -1
- package/ui/util/scroll.d.ts +20 -4
- package/ui/util/scroll.js +20 -4
- package/ui/util/scroll.ts +20 -4
- package/ui/util/state.d.ts +19 -5
- package/ui/util/state.js +19 -5
- package/ui/util/state.ts +19 -5
- package/util/ansi.d.ts +118 -0
- package/util/ansi.js +116 -0
- package/util/array.d.ts +349 -33
- package/util/array.js +284 -27
- package/util/async.d.ts +87 -9
- package/util/async.js +80 -8
- package/util/base64.d.ts +56 -6
- package/util/base64.js +56 -6
- package/util/boolean.d.ts +75 -10
- package/util/boolean.js +75 -10
- package/util/buffer.d.ts +26 -3
- package/util/buffer.js +21 -3
- package/util/bytes.d.ts +42 -4
- package/util/bytes.js +32 -2
- package/util/class.d.ts +59 -8
- package/util/class.js +44 -5
- package/util/color.d.ts +131 -13
- package/util/color.js +126 -12
- package/util/constants.d.ts +132 -19
- package/util/constants.js +132 -19
- package/util/crypto.d.ts +17 -1
- package/util/crypto.js +17 -1
- package/util/currency.d.ts +38 -4
- package/util/currency.js +33 -3
- package/util/data.d.ts +139 -24
- package/util/data.js +39 -5
- package/util/date.d.ts +152 -18
- package/util/date.js +147 -17
- package/util/debug.d.ts +112 -11
- package/util/debug.js +114 -11
- package/util/dictionary.d.ts +205 -24
- package/util/dictionary.js +162 -17
- package/util/diff.d.ts +22 -3
- package/util/diff.js +11 -1
- package/util/dispose.d.ts +74 -2
- package/util/dispose.js +74 -2
- package/util/duration.d.ts +278 -16
- package/util/duration.js +267 -15
- package/util/element.d.ts +59 -6
- package/util/element.js +32 -3
- package/util/entity.d.ts +39 -6
- package/util/entity.js +5 -1
- package/util/entry.d.ts +56 -9
- package/util/entry.js +32 -4
- package/util/env.d.ts +26 -4
- package/util/env.js +26 -4
- package/util/equal.d.ts +181 -17
- package/util/equal.js +181 -17
- package/util/error.d.ts +57 -5
- package/util/error.js +52 -4
- package/util/file.d.ts +30 -7
- package/util/file.js +25 -6
- package/util/filter.d.ts +36 -4
- package/util/filter.js +31 -3
- package/util/focus.d.ts +9 -1
- package/util/focus.js +9 -1
- package/util/format.d.ts +186 -22
- package/util/format.js +135 -14
- package/util/function.d.ts +66 -11
- package/util/function.js +31 -4
- package/util/geo.d.ts +60 -8
- package/util/geo.js +45 -5
- package/util/hash.d.ts +21 -2
- package/util/hash.js +21 -2
- package/util/http.d.ts +134 -19
- package/util/http.js +94 -11
- package/util/hydrate.d.ts +19 -2
- package/util/hydrate.js +12 -1
- package/util/item.d.ts +70 -11
- package/util/item.js +35 -4
- package/util/iterate.d.ts +109 -13
- package/util/iterate.js +86 -10
- package/util/jwt.d.ts +47 -13
- package/util/jwt.js +36 -12
- package/util/lazy.d.ts +9 -6
- package/util/link.d.ts +10 -3
- package/util/link.js +5 -2
- package/util/log.d.ts +26 -3
- package/util/log.js +26 -3
- package/util/map.d.ts +144 -19
- package/util/map.js +101 -11
- package/util/merge.d.ts +23 -1
- package/util/merge.js +6 -0
- package/util/null.d.ts +102 -13
- package/util/null.js +92 -11
- package/util/number.d.ts +125 -8
- package/util/number.js +120 -7
- package/util/object.d.ts +263 -31
- package/util/object.js +154 -17
- package/util/path.d.ts +91 -15
- package/util/path.js +60 -9
- package/util/query.d.ts +78 -9
- package/util/query.js +58 -6
- package/util/random.d.ts +67 -4
- package/util/random.js +67 -4
- package/util/regexp.d.ts +201 -24
- package/util/regexp.js +106 -11
- package/util/sequence.d.ts +66 -8
- package/util/sequence.js +52 -7
- package/util/serialise.d.ts +7 -1
- package/util/serialise.js +7 -1
- package/util/set.d.ts +103 -13
- package/util/set.js +83 -9
- package/util/sort.d.ts +32 -7
- package/util/sort.js +26 -6
- package/util/source.d.ts +28 -3
- package/util/source.js +22 -2
- package/util/start.d.ts +62 -5
- package/util/start.js +47 -2
- package/util/string.d.ts +209 -25
- package/util/string.js +188 -21
- package/util/template.d.ts +58 -9
- package/util/template.js +45 -6
- package/util/timeout.d.ts +35 -11
- package/util/timeout.js +35 -11
- package/util/transform.d.ts +87 -8
- package/util/transform.js +75 -7
- package/util/tree.d.ts +39 -6
- package/util/tree.js +3 -0
- package/util/types.d.ts +8 -2
- package/util/undefined.d.ts +47 -6
- package/util/undefined.js +47 -6
- package/util/units.d.ts +107 -12
- package/util/units.js +97 -12
- package/util/update.d.ts +36 -4
- package/util/update.js +24 -2
- package/util/uri.d.ts +138 -6
- package/util/uri.js +44 -3
- package/util/url.d.ts +152 -7
- package/util/url.js +136 -5
- package/util/uuid.d.ts +28 -3
- package/util/uuid.js +28 -3
- package/util/validate.d.ts +85 -20
- package/util/validate.js +61 -12
- package/util/xml.d.ts +9 -10
- package/util/xml.js +9 -10
package/util/dispose.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ import { type Nullish } from "./null.js";
|
|
|
9
9
|
* - `Nullish` values are skipped (for convenience).
|
|
10
10
|
*
|
|
11
11
|
* @throws {Errors} Error that aggregates all the disposal errors.
|
|
12
|
+
* @example dispose(resource, () => clearTimeout(id)) // disposes both, even if one throws
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/dispose
|
|
12
14
|
*/
|
|
13
15
|
export declare function dispose(...values: Nullish<Disposable | Callback>[]): void;
|
|
14
16
|
/**
|
|
@@ -21,12 +23,27 @@ export declare function dispose(...values: Nullish<Disposable | Callback>[]): vo
|
|
|
21
23
|
*
|
|
22
24
|
* @throws {Errors} Error that aggregates all the disposal errors.
|
|
23
25
|
*
|
|
26
|
+
* @example await awaitDispose(asyncResource, promise, () => cleanup()) // disposes all in parallel
|
|
27
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/awaitDispose
|
|
28
|
+
*
|
|
24
29
|
* @todo Potentially rewrite this to use `AsyncDisposableStack` internally.
|
|
25
30
|
*/
|
|
26
31
|
export declare function awaitDispose(...values: Nullish<AsyncDisposable | Disposable | Callback | Promise<unknown>>[]): Promise<void>;
|
|
27
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Is an unknown value a disposable object?
|
|
34
|
+
*
|
|
35
|
+
* @param v The value to test.
|
|
36
|
+
* @returns `true` if `v` has a `[Symbol.dispose]` method, narrowing its type to `Disposable`.
|
|
37
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/isDisposable
|
|
38
|
+
*/
|
|
28
39
|
export declare function isDisposable(v: unknown): v is Disposable;
|
|
29
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Is an unknown value an async disposable object?
|
|
42
|
+
*
|
|
43
|
+
* @param v The value to test.
|
|
44
|
+
* @returns `true` if `v` has a `[Symbol.asyncDispose]` method, narrowing its type to `AsyncDisposable`.
|
|
45
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/isAsyncDisposable
|
|
46
|
+
*/
|
|
30
47
|
export declare function isAsyncDisposable(v: unknown): v is AsyncDisposable;
|
|
31
48
|
/**
|
|
32
49
|
* Version of `Map` that has disposable values.
|
|
@@ -34,11 +51,43 @@ export declare function isAsyncDisposable(v: unknown): v is AsyncDisposable;
|
|
|
34
51
|
* - Values are disposed when they're deleted from the map.
|
|
35
52
|
* - Values are disposed when all items are cleared.
|
|
36
53
|
* - All items are cleared and their values are disposed when this map itself is disposed.
|
|
54
|
+
*
|
|
55
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap
|
|
37
56
|
*/
|
|
38
57
|
export declare class DisposableMap<K, T extends Disposable> extends Map<K, T> implements Disposable {
|
|
58
|
+
/**
|
|
59
|
+
* Set a key to a value, disposing any previous value stored under that key.
|
|
60
|
+
*
|
|
61
|
+
* @param key The key to set.
|
|
62
|
+
* @param value The disposable value to store.
|
|
63
|
+
* @returns This map, for chaining.
|
|
64
|
+
* @example map.set("a", resource) // disposes the old "a" value if it differs
|
|
65
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/set
|
|
66
|
+
*/
|
|
39
67
|
set(key: K, value: T): this;
|
|
68
|
+
/**
|
|
69
|
+
* Delete a key, disposing its value.
|
|
70
|
+
*
|
|
71
|
+
* @param key The key to delete.
|
|
72
|
+
* @returns `true` if a value existed and was deleted, otherwise `false`.
|
|
73
|
+
* @example map.delete("a") // disposes the "a" value
|
|
74
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/delete
|
|
75
|
+
*/
|
|
40
76
|
delete(key: K): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Clear all items, disposing every value.
|
|
79
|
+
*
|
|
80
|
+
* @returns Nothing.
|
|
81
|
+
* @example map.clear() // disposes every value
|
|
82
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/clear
|
|
83
|
+
*/
|
|
41
84
|
clear(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Dispose this map by clearing all items and disposing their values.
|
|
87
|
+
*
|
|
88
|
+
* @returns Nothing.
|
|
89
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/dispose
|
|
90
|
+
*/
|
|
42
91
|
[Symbol.dispose](): void;
|
|
43
92
|
}
|
|
44
93
|
/**
|
|
@@ -46,9 +95,32 @@ export declare class DisposableMap<K, T extends Disposable> extends Map<K, T> im
|
|
|
46
95
|
* - Values are disposed when they're deleted from the map.
|
|
47
96
|
* - Values are disposed when all items are cleared.
|
|
48
97
|
* - All items are cleared (and disposed) when this map itself is disposed.
|
|
98
|
+
*
|
|
99
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet
|
|
49
100
|
*/
|
|
50
101
|
export declare class DisposableSet<T extends Disposable> extends Set<T> implements Disposable {
|
|
102
|
+
/**
|
|
103
|
+
* Delete an item, disposing it.
|
|
104
|
+
*
|
|
105
|
+
* @param item The item to delete.
|
|
106
|
+
* @returns `true` if the item existed and was deleted, otherwise `false`.
|
|
107
|
+
* @example set.delete(resource) // disposes the item
|
|
108
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet/delete
|
|
109
|
+
*/
|
|
51
110
|
delete(item: T): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Clear all items, disposing each one.
|
|
113
|
+
*
|
|
114
|
+
* @returns Nothing.
|
|
115
|
+
* @example set.clear() // disposes every item
|
|
116
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet/clear
|
|
117
|
+
*/
|
|
52
118
|
clear(): void;
|
|
119
|
+
/**
|
|
120
|
+
* Dispose this set by clearing all items and disposing each one.
|
|
121
|
+
*
|
|
122
|
+
* @returns Nothing.
|
|
123
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet/dispose
|
|
124
|
+
*/
|
|
53
125
|
[Symbol.dispose](): void;
|
|
54
126
|
}
|
package/util/dispose.js
CHANGED
|
@@ -18,6 +18,8 @@ Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose");
|
|
|
18
18
|
* - `Nullish` values are skipped (for convenience).
|
|
19
19
|
*
|
|
20
20
|
* @throws {Errors} Error that aggregates all the disposal errors.
|
|
21
|
+
* @example dispose(resource, () => clearTimeout(id)) // disposes both, even if one throws
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/dispose
|
|
21
23
|
*/
|
|
22
24
|
export function dispose(...values) {
|
|
23
25
|
const errors = [];
|
|
@@ -47,6 +49,9 @@ export function dispose(...values) {
|
|
|
47
49
|
*
|
|
48
50
|
* @throws {Errors} Error that aggregates all the disposal errors.
|
|
49
51
|
*
|
|
52
|
+
* @example await awaitDispose(asyncResource, promise, () => cleanup()) // disposes all in parallel
|
|
53
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/awaitDispose
|
|
54
|
+
*
|
|
50
55
|
* @todo Potentially rewrite this to use `AsyncDisposableStack` internally.
|
|
51
56
|
*/
|
|
52
57
|
export async function awaitDispose(...values) {
|
|
@@ -64,11 +69,23 @@ async function _disposeAsync(value) {
|
|
|
64
69
|
else if (isFunction(value))
|
|
65
70
|
value();
|
|
66
71
|
}
|
|
67
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Is an unknown value a disposable object?
|
|
74
|
+
*
|
|
75
|
+
* @param v The value to test.
|
|
76
|
+
* @returns `true` if `v` has a `[Symbol.dispose]` method, narrowing its type to `Disposable`.
|
|
77
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/isDisposable
|
|
78
|
+
*/
|
|
68
79
|
export function isDisposable(v) {
|
|
69
80
|
return isObject(v) && typeof v[Symbol.dispose] === "function";
|
|
70
81
|
}
|
|
71
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* Is an unknown value an async disposable object?
|
|
84
|
+
*
|
|
85
|
+
* @param v The value to test.
|
|
86
|
+
* @returns `true` if `v` has a `[Symbol.asyncDispose]` method, narrowing its type to `AsyncDisposable`.
|
|
87
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/isAsyncDisposable
|
|
88
|
+
*/
|
|
72
89
|
export function isAsyncDisposable(v) {
|
|
73
90
|
return isObject(v) && typeof v[Symbol.asyncDispose] === "function";
|
|
74
91
|
}
|
|
@@ -78,24 +95,56 @@ export function isAsyncDisposable(v) {
|
|
|
78
95
|
* - Values are disposed when they're deleted from the map.
|
|
79
96
|
* - Values are disposed when all items are cleared.
|
|
80
97
|
* - All items are cleared and their values are disposed when this map itself is disposed.
|
|
98
|
+
*
|
|
99
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap
|
|
81
100
|
*/
|
|
82
101
|
export class DisposableMap extends Map {
|
|
102
|
+
/**
|
|
103
|
+
* Set a key to a value, disposing any previous value stored under that key.
|
|
104
|
+
*
|
|
105
|
+
* @param key The key to set.
|
|
106
|
+
* @param value The disposable value to store.
|
|
107
|
+
* @returns This map, for chaining.
|
|
108
|
+
* @example map.set("a", resource) // disposes the old "a" value if it differs
|
|
109
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/set
|
|
110
|
+
*/
|
|
83
111
|
set(key, value) {
|
|
84
112
|
const previous = this.get(key);
|
|
85
113
|
if (previous && previous !== value)
|
|
86
114
|
dispose(previous);
|
|
87
115
|
return super.set(key, value);
|
|
88
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Delete a key, disposing its value.
|
|
119
|
+
*
|
|
120
|
+
* @param key The key to delete.
|
|
121
|
+
* @returns `true` if a value existed and was deleted, otherwise `false`.
|
|
122
|
+
* @example map.delete("a") // disposes the "a" value
|
|
123
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/delete
|
|
124
|
+
*/
|
|
89
125
|
delete(key) {
|
|
90
126
|
const value = this.get(key);
|
|
91
127
|
if (value)
|
|
92
128
|
dispose(value);
|
|
93
129
|
return super.delete(key);
|
|
94
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Clear all items, disposing every value.
|
|
133
|
+
*
|
|
134
|
+
* @returns Nothing.
|
|
135
|
+
* @example map.clear() // disposes every value
|
|
136
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/clear
|
|
137
|
+
*/
|
|
95
138
|
clear() {
|
|
96
139
|
dispose(...this.values());
|
|
97
140
|
super.clear();
|
|
98
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Dispose this map by clearing all items and disposing their values.
|
|
144
|
+
*
|
|
145
|
+
* @returns Nothing.
|
|
146
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableMap/dispose
|
|
147
|
+
*/
|
|
99
148
|
[Symbol.dispose]() {
|
|
100
149
|
this.clear();
|
|
101
150
|
}
|
|
@@ -105,17 +154,40 @@ export class DisposableMap extends Map {
|
|
|
105
154
|
* - Values are disposed when they're deleted from the map.
|
|
106
155
|
* - Values are disposed when all items are cleared.
|
|
107
156
|
* - All items are cleared (and disposed) when this map itself is disposed.
|
|
157
|
+
*
|
|
158
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet
|
|
108
159
|
*/
|
|
109
160
|
export class DisposableSet extends Set {
|
|
161
|
+
/**
|
|
162
|
+
* Delete an item, disposing it.
|
|
163
|
+
*
|
|
164
|
+
* @param item The item to delete.
|
|
165
|
+
* @returns `true` if the item existed and was deleted, otherwise `false`.
|
|
166
|
+
* @example set.delete(resource) // disposes the item
|
|
167
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet/delete
|
|
168
|
+
*/
|
|
110
169
|
delete(item) {
|
|
111
170
|
if (this.has(item))
|
|
112
171
|
dispose(item);
|
|
113
172
|
return super.delete(item);
|
|
114
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Clear all items, disposing each one.
|
|
176
|
+
*
|
|
177
|
+
* @returns Nothing.
|
|
178
|
+
* @example set.clear() // disposes every item
|
|
179
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet/clear
|
|
180
|
+
*/
|
|
115
181
|
clear() {
|
|
116
182
|
dispose(...this);
|
|
117
183
|
super.clear();
|
|
118
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Dispose this set by clearing all items and disposing each one.
|
|
187
|
+
*
|
|
188
|
+
* @returns Nothing.
|
|
189
|
+
* @see https://dhoulb.github.io/shelving/util/dispose/DisposableSet/dispose
|
|
190
|
+
*/
|
|
119
191
|
[Symbol.dispose]() {
|
|
120
192
|
this.clear();
|
|
121
193
|
}
|
package/util/duration.d.ts
CHANGED
|
@@ -3,101 +3,316 @@ import type { FormatOptions, UnitFormatOptions } from "./format.js";
|
|
|
3
3
|
import type { AnyCaller } from "./function.js";
|
|
4
4
|
import type { MapKey } from "./map.js";
|
|
5
5
|
import { type Unit, UnitList } from "./units.js";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Duration data object keyed by `Intl.DurationFormatUnit`.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/util/duration/DurationData
|
|
10
|
+
*/
|
|
7
11
|
export type DurationData = {
|
|
8
12
|
[K in Intl.DurationFormatUnit]?: number;
|
|
9
13
|
};
|
|
10
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* Get the millisecond difference between two dates.
|
|
16
|
+
*
|
|
17
|
+
* @param from Date the duration is measured from (defaults to now).
|
|
18
|
+
* @param to Date the duration is measured to (defaults to now).
|
|
19
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMilliseconds` itself).
|
|
20
|
+
* @returns Number of milliseconds from `from` to `to` (negative if `to` is before `from`).
|
|
21
|
+
* @throws {RequiredError} If `from` or `to` cannot be converted to a valid date.
|
|
22
|
+
* @example getMilliseconds("2025-01-01", "2025-01-02") // 86400000
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMilliseconds
|
|
24
|
+
*/
|
|
11
25
|
export declare function getMilliseconds(from?: PossibleDate, to?: PossibleDate, caller?: AnyCaller): number;
|
|
12
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Count the various time units between two dates and return a `Duration` format.
|
|
28
|
+
*
|
|
29
|
+
* @param from Date the duration is measured from (defaults to now).
|
|
30
|
+
* @param to Date the duration is measured to (defaults to now).
|
|
31
|
+
* @param caller Function to attribute a thrown error to (defaults to `getDuration` itself).
|
|
32
|
+
* @returns `DurationData` object breaking the span down into years, months, weeks, days, hours, minutes, seconds, and milliseconds.
|
|
33
|
+
* @throws {RequiredError} If `from` or `to` cannot be converted to a valid date.
|
|
34
|
+
* @example getDuration("2025-01-01", "2025-01-02") // { years: 0, months: 0, weeks: 0, days: 1, ... }
|
|
35
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getDuration
|
|
36
|
+
*/
|
|
13
37
|
export declare function getDuration(from?: PossibleDate, to?: PossibleDate, caller?: AnyCaller): DurationData;
|
|
14
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Get the various time units until a certain date.
|
|
40
|
+
*
|
|
41
|
+
* @param target Date the duration counts up to.
|
|
42
|
+
* @param current Date the duration counts from (defaults to now).
|
|
43
|
+
* @param caller Function to attribute a thrown error to (defaults to `getUntil` itself).
|
|
44
|
+
* @returns `DurationData` object for the span from `current` to `target`.
|
|
45
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
46
|
+
* @example getUntil("2099-01-01") // { years: 73, ... }
|
|
47
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getUntil
|
|
48
|
+
*/
|
|
15
49
|
export declare function getUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): DurationData;
|
|
16
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Get the various time units since a certain date.
|
|
52
|
+
*
|
|
53
|
+
* @param target Date the duration counts back from.
|
|
54
|
+
* @param current Date the duration counts to (defaults to now).
|
|
55
|
+
* @param caller Function to attribute a thrown error to (defaults to `getAgo` itself).
|
|
56
|
+
* @returns `DurationData` object for the span from `target` to `current`.
|
|
57
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
58
|
+
* @example getAgo("2000-01-01") // { years: 26, ... }
|
|
59
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getAgo
|
|
60
|
+
*/
|
|
17
61
|
export declare function getAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): DurationData;
|
|
18
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Count the milliseconds until a date.
|
|
64
|
+
*
|
|
65
|
+
* @param target Date to count up to.
|
|
66
|
+
* @param current Date to count from (defaults to now).
|
|
67
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMillisecondsUntil` itself).
|
|
68
|
+
* @returns Number of milliseconds from `current` to `target` (negative if `target` is in the past).
|
|
69
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
70
|
+
* @example getMillisecondsUntil("2099-01-01") // 2303683200000
|
|
71
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMillisecondsUntil
|
|
72
|
+
*/
|
|
19
73
|
export declare function getMillisecondsUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
20
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Count the milliseconds since a date.
|
|
76
|
+
*
|
|
77
|
+
* @param target Date to count back from.
|
|
78
|
+
* @param current Date to count to (defaults to now).
|
|
79
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMillisecondsAgo` itself).
|
|
80
|
+
* @returns Number of milliseconds from `target` to `current` (negative if `target` is in the future).
|
|
81
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
82
|
+
* @example getMillisecondsAgo("2000-01-01") // 833587200000
|
|
83
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMillisecondsAgo
|
|
84
|
+
*/
|
|
21
85
|
export declare function getMillisecondsAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
22
86
|
/**
|
|
23
87
|
* Count the whole seconds until a date.
|
|
24
88
|
* - Rounds to the nearest whole second, i.e. `1 second 499 ms` returns `1`
|
|
89
|
+
*
|
|
90
|
+
* @param target Date to count up to.
|
|
91
|
+
* @param current Date to count from (defaults to now).
|
|
92
|
+
* @param caller Function to attribute a thrown error to (defaults to `getSecondsUntil` itself).
|
|
93
|
+
* @returns Number of whole seconds from `current` to `target` (negative if `target` is in the past).
|
|
94
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
95
|
+
* @example getSecondsUntil(target) // 90
|
|
96
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getSecondsUntil
|
|
25
97
|
*/
|
|
26
98
|
export declare function getSecondsUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
27
99
|
/**
|
|
28
100
|
* Count the whole seconds since a date.
|
|
29
101
|
* - Rounds to the nearest whole second, i.e. `1 second 499 ms` returns `1`
|
|
102
|
+
*
|
|
103
|
+
* @param target Date to count back from.
|
|
104
|
+
* @param current Date to count to (defaults to now).
|
|
105
|
+
* @param caller Function to attribute a thrown error to (defaults to `getSecondsAgo` itself).
|
|
106
|
+
* @returns Number of whole seconds from `target` to `current` (negative if `target` is in the future).
|
|
107
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
108
|
+
* @example getSecondsAgo(target) // 90
|
|
109
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getSecondsAgo
|
|
30
110
|
*/
|
|
31
111
|
export declare function getSecondsAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
32
112
|
/**
|
|
33
113
|
* Count the whole minutes until a date.
|
|
34
114
|
* - Rounds to the nearest whole minute, i.e. `1 min 29 seconds` returns `1`
|
|
115
|
+
*
|
|
116
|
+
* @param target Date to count up to.
|
|
117
|
+
* @param current Date to count from (defaults to now).
|
|
118
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMinutesUntil` itself).
|
|
119
|
+
* @returns Number of whole minutes from `current` to `target` (negative if `target` is in the past).
|
|
120
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
121
|
+
* @example getMinutesUntil(target) // 5
|
|
122
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMinutesUntil
|
|
35
123
|
*/
|
|
36
124
|
export declare function getMinutesUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
37
125
|
/**
|
|
38
126
|
* Count the whole minutes since a date.
|
|
39
127
|
* - Rounds to the nearest whole minute, i.e. `1 min 29 seconds` returns `1`
|
|
128
|
+
*
|
|
129
|
+
* @param target Date to count back from.
|
|
130
|
+
* @param current Date to count to (defaults to now).
|
|
131
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMinutesAgo` itself).
|
|
132
|
+
* @returns Number of whole minutes from `target` to `current` (negative if `target` is in the future).
|
|
133
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
134
|
+
* @example getMinutesAgo(target) // 5
|
|
135
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMinutesAgo
|
|
40
136
|
*/
|
|
41
137
|
export declare function getMinutesAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
42
138
|
/**
|
|
43
139
|
* Count the whole hours until a date.
|
|
44
140
|
* - Rounds to the nearest whole hour, i.e. `1 hour 29 minutes` returns `1`
|
|
141
|
+
*
|
|
142
|
+
* @param target Date to count up to.
|
|
143
|
+
* @param current Date to count from (defaults to now).
|
|
144
|
+
* @param caller Function to attribute a thrown error to (defaults to `getHoursUntil` itself).
|
|
145
|
+
* @returns Number of whole hours from `current` to `target` (negative if `target` is in the past).
|
|
146
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
147
|
+
* @example getHoursUntil(target) // 3
|
|
148
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getHoursUntil
|
|
45
149
|
*/
|
|
46
150
|
export declare function getHoursUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
47
151
|
/**
|
|
48
152
|
* Count the whole hours since a date.
|
|
49
153
|
* - Rounds to the nearest whole hour, i.e. `1 hour 29 minutes` returns `1`
|
|
154
|
+
*
|
|
155
|
+
* @param target Date to count back from.
|
|
156
|
+
* @param current Date to count to (defaults to now).
|
|
157
|
+
* @param caller Function to attribute a thrown error to (defaults to `getHoursAgo` itself).
|
|
158
|
+
* @returns Number of whole hours from `target` to `current` (negative if `target` is in the future).
|
|
159
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
160
|
+
* @example getHoursAgo(target) // 3
|
|
161
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getHoursAgo
|
|
50
162
|
*/
|
|
51
163
|
export declare function getHoursAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
52
164
|
/**
|
|
53
165
|
* Count the calendar days until a date.
|
|
54
166
|
* - e.g. from 23:59 to 00:01 is 1 day, even though it's only 1 minutes.
|
|
167
|
+
*
|
|
168
|
+
* @param target Date to count up to.
|
|
169
|
+
* @param current Date to count from (defaults to now).
|
|
170
|
+
* @param caller Function to attribute a thrown error to (defaults to `getDaysUntil` itself).
|
|
171
|
+
* @returns Number of calendar days from `current` to `target` (negative if `target` is in the past).
|
|
172
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
173
|
+
* @example getDaysUntil(target) // 13
|
|
174
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getDaysUntil
|
|
55
175
|
*/
|
|
56
176
|
export declare function getDaysUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
57
177
|
/**
|
|
58
178
|
* Count the calendar days since a date.
|
|
59
179
|
* - Rounds to the nearest whole days.
|
|
180
|
+
*
|
|
181
|
+
* @param target Date to count back from.
|
|
182
|
+
* @param current Date to count to (defaults to now).
|
|
183
|
+
* @param caller Function to attribute a thrown error to (defaults to `getDaysAgo` itself).
|
|
184
|
+
* @returns Number of calendar days from `target` to `current` (negative if `target` is in the future).
|
|
185
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
186
|
+
* @example getDaysAgo(target) // 13
|
|
187
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getDaysAgo
|
|
60
188
|
*/
|
|
61
189
|
export declare function getDaysAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
62
190
|
/**
|
|
63
191
|
* Count the whole weeks until a date.
|
|
64
192
|
* - Rounds down to the nearest whole week, i.e.
|
|
193
|
+
*
|
|
194
|
+
* @param target Date to count up to.
|
|
195
|
+
* @param current Date to count from (defaults to now).
|
|
196
|
+
* @param caller Function to attribute a thrown error to (defaults to `getWeeksUntil` itself).
|
|
197
|
+
* @returns Number of whole weeks from `current` to `target` (negative if `target` is in the past).
|
|
198
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
199
|
+
* @example getWeeksUntil(target) // 9
|
|
200
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getWeeksUntil
|
|
65
201
|
*/
|
|
66
202
|
export declare function getWeeksUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
67
203
|
/**
|
|
68
204
|
* Count the whole weeks since a date.
|
|
69
205
|
* - Rounds to the nearest whole week.
|
|
206
|
+
*
|
|
207
|
+
* @param target Date to count back from.
|
|
208
|
+
* @param current Date to count to (defaults to now).
|
|
209
|
+
* @param caller Function to attribute a thrown error to (defaults to `getWeeksAgo` itself).
|
|
210
|
+
* @returns Number of whole weeks from `target` to `current` (negative if `target` is in the future).
|
|
211
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
212
|
+
* @example getWeeksAgo(target) // 9
|
|
213
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getWeeksAgo
|
|
70
214
|
*/
|
|
71
215
|
export declare function getWeeksAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
72
216
|
/**
|
|
73
217
|
* Count the calendar months until a date.
|
|
74
218
|
* - e.g. from March 31st to April 1st is 1 month, even though it's only 1 day.
|
|
219
|
+
*
|
|
220
|
+
* @param target Date to count up to.
|
|
221
|
+
* @param current Date to count from (defaults to now).
|
|
222
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMonthsUntil` itself).
|
|
223
|
+
* @returns Number of calendar months from `current` to `target` (negative if `target` is in the past).
|
|
224
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
225
|
+
* @example getMonthsUntil(target) // 14
|
|
226
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMonthsUntil
|
|
75
227
|
*/
|
|
76
228
|
export declare function getMonthsUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
77
229
|
/**
|
|
78
230
|
* Count the calendar months since a date.
|
|
79
231
|
* - e.g. from March 31st to April 1st is 1 month, even though it's only 1 day.
|
|
232
|
+
*
|
|
233
|
+
* @param target Date to count back from.
|
|
234
|
+
* @param current Date to count to (defaults to now).
|
|
235
|
+
* @param caller Function to attribute a thrown error to (defaults to `getMonthsAgo` itself).
|
|
236
|
+
* @returns Number of calendar months from `target` to `current` (negative if `target` is in the future).
|
|
237
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
238
|
+
* @example getMonthsAgo(target) // 14
|
|
239
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getMonthsAgo
|
|
80
240
|
*/
|
|
81
241
|
export declare function getMonthsAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
82
242
|
/**
|
|
83
243
|
* Count the calendar years until a date.
|
|
84
244
|
* - e.g. from December 31st to January 1st is 1 year, even though it's only 1 day.
|
|
245
|
+
*
|
|
246
|
+
* @param target Date to count up to.
|
|
247
|
+
* @param current Date to count from (defaults to now).
|
|
248
|
+
* @param caller Function to attribute a thrown error to (defaults to `getYearsUntil` itself).
|
|
249
|
+
* @returns Number of calendar years from `current` to `target` (negative if `target` is in the past).
|
|
250
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
251
|
+
* @example getYearsUntil(target) // 2
|
|
252
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getYearsUntil
|
|
85
253
|
*/
|
|
86
254
|
export declare function getYearsUntil(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
87
255
|
/**
|
|
88
256
|
* Count the calendar years since a date.
|
|
89
257
|
* - Note this counts calendar years, not 365-day periods.
|
|
90
258
|
* - e.g. from December 31st to January 1st is -1 years, even though it's only 1 day.
|
|
259
|
+
*
|
|
260
|
+
* @param target Date to count back from.
|
|
261
|
+
* @param current Date to count to (defaults to now).
|
|
262
|
+
* @param caller Function to attribute a thrown error to (defaults to `getYearsAgo` itself).
|
|
263
|
+
* @returns Number of calendar years from `target` to `current` (negative if `target` is in the future).
|
|
264
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
265
|
+
* @example getYearsAgo(target) // 2
|
|
266
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getYearsAgo
|
|
91
267
|
*/
|
|
92
268
|
export declare function getYearsAgo(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): number;
|
|
93
|
-
/**
|
|
269
|
+
/**
|
|
270
|
+
* Is a date in the past?
|
|
271
|
+
*
|
|
272
|
+
* @param target Date to test.
|
|
273
|
+
* @param current Date to test against (defaults to now).
|
|
274
|
+
* @param caller Function to attribute a thrown error to (defaults to `isPast` itself).
|
|
275
|
+
* @returns `true` if `target` is before `current`.
|
|
276
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
277
|
+
* @example isPast("2000-01-01") // true
|
|
278
|
+
* @see https://dhoulb.github.io/shelving/util/duration/isPast
|
|
279
|
+
*/
|
|
94
280
|
export declare function isPast(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): boolean;
|
|
95
|
-
/**
|
|
281
|
+
/**
|
|
282
|
+
* Is a date in the future?
|
|
283
|
+
*
|
|
284
|
+
* @param target Date to test.
|
|
285
|
+
* @param current Date to test against (defaults to now).
|
|
286
|
+
* @param caller Function to attribute a thrown error to (defaults to `isFuture` itself).
|
|
287
|
+
* @returns `true` if `target` is after `current`.
|
|
288
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
289
|
+
* @example isFuture("2099-01-01") // true
|
|
290
|
+
* @see https://dhoulb.github.io/shelving/util/duration/isFuture
|
|
291
|
+
*/
|
|
96
292
|
export declare function isFuture(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): boolean;
|
|
97
|
-
/**
|
|
293
|
+
/**
|
|
294
|
+
* Is a date today (taking into account midnight).
|
|
295
|
+
*
|
|
296
|
+
* @param target Date to test.
|
|
297
|
+
* @param current Date to test against (defaults to now).
|
|
298
|
+
* @param caller Function to attribute a thrown error to (defaults to `isToday` itself).
|
|
299
|
+
* @returns `true` if `target` falls on the same calendar day as `current`.
|
|
300
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
301
|
+
* @example isToday(new Date()) // true
|
|
302
|
+
* @see https://dhoulb.github.io/shelving/util/duration/isToday
|
|
303
|
+
*/
|
|
98
304
|
export declare function isToday(target: PossibleDate, current?: PossibleDate, caller?: AnyCaller): boolean;
|
|
99
|
-
/**
|
|
305
|
+
/**
|
|
306
|
+
* List of duration units (`millisecond` through `year`) keyed by unit reference.
|
|
307
|
+
*
|
|
308
|
+
* @see https://dhoulb.github.io/shelving/util/duration/DURATION_UNITS
|
|
309
|
+
*/
|
|
100
310
|
export declare const DURATION_UNITS: UnitList<"day" | "hour" | "millisecond" | "minute" | "month" | "second" | "week" | "year">;
|
|
311
|
+
/**
|
|
312
|
+
* Key for one of the duration units in `DURATION_UNITS`.
|
|
313
|
+
*
|
|
314
|
+
* @see https://dhoulb.github.io/shelving/util/duration/DurationUnitKey
|
|
315
|
+
*/
|
|
101
316
|
export type DurationUnitKey = MapKey<typeof DURATION_UNITS>;
|
|
102
317
|
/**
|
|
103
318
|
* Get a best-fit duration unit based on an amount in milliseconds.
|
|
@@ -109,20 +324,67 @@ export type DurationUnitKey = MapKey<typeof DURATION_UNITS>;
|
|
|
109
324
|
* - Hours will be used for anything 1 hour or more, e.g. `in 23 hours`
|
|
110
325
|
* - Minutes will be used for anything 1 minute or more, e.g. `1 minute ago` or `in 59 minutes`
|
|
111
326
|
* - Seconds will be used for anything 1000 milliseconds or more, e.g. `in 59 seconds`
|
|
327
|
+
*
|
|
328
|
+
* @param ms Amount of time in milliseconds (the sign is ignored, only the magnitude matters).
|
|
329
|
+
* @returns The best-fit `Unit` from `DURATION_UNITS` for the given magnitude.
|
|
330
|
+
* @example getBestDurationUnit(90000).key // "minute"
|
|
331
|
+
* @see https://dhoulb.github.io/shelving/util/duration/getBestDurationUnit
|
|
112
332
|
*/
|
|
113
333
|
export declare function getBestDurationUnit(ms: number): Unit<DurationUnitKey>;
|
|
114
334
|
/**
|
|
115
|
-
*
|
|
116
|
-
* - See `
|
|
335
|
+
* Format a compact best-fit description of when a date happens or happened, e.g. `in 10d` or `2h ago` or `in 1w` or `just now`
|
|
336
|
+
* - See `getBestDurationUnit()` for details on how the best-fit unit is chosen.
|
|
117
337
|
* - But: anything under 30 seconds will show `just now`, which makes more sense in most UIs.
|
|
338
|
+
*
|
|
339
|
+
* @param target Date the duration is measured to.
|
|
340
|
+
* @param current Date the duration is measured from (defaults to now).
|
|
341
|
+
* @param options Formatting options for the chosen duration unit.
|
|
342
|
+
* @param caller Function to attribute a thrown error to (defaults to `formatWhen` itself).
|
|
343
|
+
* @returns Compact string like `in 10d`, `2h ago`, or `just now`.
|
|
344
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
345
|
+
* @example formatWhen("2099-01-01") // "in 73 years"
|
|
346
|
+
* @see https://dhoulb.github.io/shelving/util/duration/formatWhen
|
|
118
347
|
*/
|
|
119
348
|
export declare function formatWhen(target: PossibleDate, current?: PossibleDate, options?: UnitFormatOptions, caller?: AnyCaller): string;
|
|
120
|
-
/**
|
|
349
|
+
/**
|
|
350
|
+
* Format a compact best-fit description of how long until a date, e.g. `10d` or `2h` or `-1w`
|
|
351
|
+
* - See `getBestDurationUnit()` for details on how the best-fit unit is chosen.
|
|
352
|
+
*
|
|
353
|
+
* @param target Date to count up to.
|
|
354
|
+
* @param current Date to count from (defaults to now).
|
|
355
|
+
* @param options Formatting options for the chosen duration unit.
|
|
356
|
+
* @param caller Function to attribute a thrown error to (defaults to `formatUntil` itself).
|
|
357
|
+
* @returns Compact string like `10d` or `2h` (negative if `target` is in the past).
|
|
358
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
359
|
+
* @example formatUntil("2099-01-01") // "73y"
|
|
360
|
+
* @see https://dhoulb.github.io/shelving/util/duration/formatUntil
|
|
361
|
+
*/
|
|
121
362
|
export declare function formatUntil(target: PossibleDate, current?: PossibleDate, options?: UnitFormatOptions, caller?: AnyCaller): string;
|
|
122
|
-
/**
|
|
363
|
+
/**
|
|
364
|
+
* Format a compact best-fit description of how long since a date, e.g. `10d` or `2h` or `-1w`
|
|
365
|
+
* - See `getBestDurationUnit()` for details on how the best-fit unit is chosen.
|
|
366
|
+
*
|
|
367
|
+
* @param target Date to count back from.
|
|
368
|
+
* @param current Date to count to (defaults to now).
|
|
369
|
+
* @param options Formatting options for the chosen duration unit.
|
|
370
|
+
* @param caller Function to attribute a thrown error to (defaults to `formatAgo` itself).
|
|
371
|
+
* @returns Compact string like `10d` or `2h` (negative if `target` is in the future).
|
|
372
|
+
* @throws {RequiredError} If `target` or `current` cannot be converted to a valid date.
|
|
373
|
+
* @example formatAgo("2000-01-01") // "26y"
|
|
374
|
+
* @see https://dhoulb.github.io/shelving/util/duration/formatAgo
|
|
375
|
+
*/
|
|
123
376
|
export declare function formatAgo(target: PossibleDate, current?: PossibleDate, options?: UnitFormatOptions, caller?: AnyCaller): string;
|
|
377
|
+
/** Options for formatting a `DurationData` object with `formatDuration()`. */
|
|
124
378
|
interface DurationFormatOptions extends FormatOptions, Intl.DurationFormatOptions {
|
|
125
379
|
}
|
|
126
|
-
/**
|
|
380
|
+
/**
|
|
381
|
+
* Format a duration as a string, e.g. `1 year, 2 months, 3 days` or `1y 2m 3d`
|
|
382
|
+
*
|
|
383
|
+
* @param duration `DurationData` object to format.
|
|
384
|
+
* @param options Formatting options passed through to `Intl.DurationFormat`.
|
|
385
|
+
* @returns Human-readable string describing the duration.
|
|
386
|
+
* @example formatDuration({ years: 1, months: 2, days: 3 }) // "1 yr, 2 mths, 3 days"
|
|
387
|
+
* @see https://dhoulb.github.io/shelving/util/duration/formatDuration
|
|
388
|
+
*/
|
|
127
389
|
export declare function formatDuration(duration: DurationData, options?: DurationFormatOptions): string;
|
|
128
390
|
export {};
|