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/store/URLStore.d.ts
CHANGED
|
@@ -3,49 +3,207 @@ import type { AbsolutePath } from "../util/index.js";
|
|
|
3
3
|
import { type PossibleURIParams, type URIParams, type URIScheme } from "../util/uri.js";
|
|
4
4
|
import { type ImmutableURL, type PossibleURL, type URLString } from "../util/url.js";
|
|
5
5
|
import { BusyStore } from "./BusyStore.js";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Store a URL, e.g. `https://top.com/a/b/c`
|
|
8
|
+
* - Accepts any `PossibleURL` as input and normalises it to an `ImmutableURL` (resolved against `this.base`).
|
|
9
|
+
* - Exposes the URL's components (`href`, `origin`, `pathname`, etc.) and helpers to read and mutate its search params.
|
|
10
|
+
*
|
|
11
|
+
* @param url The initial URL value.
|
|
12
|
+
* @param base An optional base URL that relative URLs are resolved against.
|
|
13
|
+
* @example
|
|
14
|
+
* const store = new URLStore("https://top.com/a/b/c");
|
|
15
|
+
* store.setParam("page", 2); // https://top.com/a/b/c?page=2
|
|
16
|
+
* store.isActive("https://top.com/a/b/c?page=2"); // true
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore
|
|
18
|
+
*/
|
|
7
19
|
export declare class URLStore extends BusyStore<ImmutableURL, PossibleURL> {
|
|
20
|
+
/**
|
|
21
|
+
* Base URL that relative URL inputs are resolved against, or `undefined` if none was set.
|
|
22
|
+
*
|
|
23
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/base
|
|
24
|
+
*/
|
|
8
25
|
readonly base: ImmutableURL | undefined;
|
|
9
26
|
constructor(url: PossibleURL, base?: PossibleURL);
|
|
10
27
|
protected _convert(value: PossibleURL, caller: AnyCaller): ImmutableURL;
|
|
11
28
|
protected _equal(a: ImmutableURL, b: ImmutableURL): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Get or set the full URL string (e.g. `https://top.com/a/b/c?x=1`).
|
|
31
|
+
*
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/href
|
|
33
|
+
*/
|
|
12
34
|
get href(): URLString;
|
|
13
35
|
set href(href: URLString);
|
|
36
|
+
/**
|
|
37
|
+
* Get the origin of the URL (e.g. `https://top.com`).
|
|
38
|
+
*
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/origin
|
|
40
|
+
*/
|
|
14
41
|
get origin(): URLString;
|
|
42
|
+
/**
|
|
43
|
+
* Get the protocol/scheme of the URL (e.g. `https:`).
|
|
44
|
+
*
|
|
45
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/protocol
|
|
46
|
+
*/
|
|
15
47
|
get protocol(): URIScheme;
|
|
48
|
+
/**
|
|
49
|
+
* Get the username component of the URL.
|
|
50
|
+
*
|
|
51
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/username
|
|
52
|
+
*/
|
|
16
53
|
get username(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Get the password component of the URL.
|
|
56
|
+
*
|
|
57
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/password
|
|
58
|
+
*/
|
|
17
59
|
get password(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Get the hostname of the URL (e.g. `top.com`).
|
|
62
|
+
*
|
|
63
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/hostname
|
|
64
|
+
*/
|
|
18
65
|
get hostname(): string;
|
|
66
|
+
/**
|
|
67
|
+
* Get the host of the URL including port (e.g. `top.com:8080`).
|
|
68
|
+
*
|
|
69
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/host
|
|
70
|
+
*/
|
|
19
71
|
get host(): string;
|
|
72
|
+
/**
|
|
73
|
+
* Get the port of the URL, or an empty string if none is set.
|
|
74
|
+
*
|
|
75
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/port
|
|
76
|
+
*/
|
|
20
77
|
get port(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Get the absolute pathname of the URL (e.g. `/a/b/c`).
|
|
80
|
+
*
|
|
81
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/pathname
|
|
82
|
+
*/
|
|
21
83
|
get pathname(): AbsolutePath;
|
|
22
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* Get the URL params as a query string (e.g. `?x=1&y=2`).
|
|
86
|
+
*
|
|
87
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/search
|
|
88
|
+
*/
|
|
23
89
|
get search(): string;
|
|
24
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Get the URL params as a dictionary of key/value pairs.
|
|
92
|
+
*
|
|
93
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/params
|
|
94
|
+
*/
|
|
25
95
|
get params(): URIParams;
|
|
26
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Return a single param in this URL, or `undefined` if it could not be found.
|
|
98
|
+
*
|
|
99
|
+
* @param key The name of the param to read.
|
|
100
|
+
* @returns The param value, or `undefined` if it is not present.
|
|
101
|
+
* @example store.getParam("page"); // "2"
|
|
102
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/getParam
|
|
103
|
+
*/
|
|
27
104
|
getParam(key: string): string | undefined;
|
|
28
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* Require a single param in this URL, or throw `RequiredError` if it could not be found.
|
|
107
|
+
*
|
|
108
|
+
* @param key The name of the param to read.
|
|
109
|
+
* @returns The param value.
|
|
110
|
+
* @throws {RequiredError} If the param is not present.
|
|
111
|
+
* @example store.requireParam("page");
|
|
112
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/requireParam
|
|
113
|
+
*/
|
|
29
114
|
requireParam(key: string): string | undefined;
|
|
30
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Set all params in this URL (all current params are cleared first).
|
|
117
|
+
*
|
|
118
|
+
* @param params The complete set of params to set.
|
|
119
|
+
* @returns Nothing.
|
|
120
|
+
* @example store.setParams({ page: 2, sort: "name" });
|
|
121
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParams
|
|
122
|
+
*/
|
|
31
123
|
setParams(params: PossibleURIParams): void;
|
|
32
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* Set a single named param in this URL.
|
|
126
|
+
*
|
|
127
|
+
* @param key The name of the param to set.
|
|
128
|
+
* @param value The new value for the param.
|
|
129
|
+
* @returns Nothing.
|
|
130
|
+
* @example store.setParam("page", 2);
|
|
131
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParam
|
|
132
|
+
*/
|
|
33
133
|
setParam(key: string, value: unknown): void;
|
|
34
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* Update several params in this URL (merged with current params).
|
|
136
|
+
*
|
|
137
|
+
* @param params The set of params to merge in.
|
|
138
|
+
* @returns Nothing.
|
|
139
|
+
* @example store.updateParams({ sort: "name" });
|
|
140
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/updateParams
|
|
141
|
+
*/
|
|
35
142
|
updateParams(params: PossibleURIParams): void;
|
|
36
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* Delete one or more params from this URL.
|
|
145
|
+
*
|
|
146
|
+
* @param key The name of the first param to delete.
|
|
147
|
+
* @param keys Additional param names to delete.
|
|
148
|
+
* @returns Nothing.
|
|
149
|
+
* @example store.deleteParam("page", "sort");
|
|
150
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParam
|
|
151
|
+
*/
|
|
37
152
|
deleteParam(key: string, ...keys: string[]): void;
|
|
38
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Delete one or more params from this URL.
|
|
155
|
+
*
|
|
156
|
+
* @param key The name of the first param to delete.
|
|
157
|
+
* @param keys Additional param names to delete.
|
|
158
|
+
* @returns Nothing.
|
|
159
|
+
* @example store.deleteParams("page", "sort");
|
|
160
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParams
|
|
161
|
+
*/
|
|
39
162
|
deleteParams(key: string, ...keys: string[]): void;
|
|
40
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Clear all params from this URL.
|
|
165
|
+
*
|
|
166
|
+
* @returns Nothing.
|
|
167
|
+
* @example store.clearParams();
|
|
168
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/clearParams
|
|
169
|
+
*/
|
|
41
170
|
clearParams(): void;
|
|
42
|
-
/**
|
|
171
|
+
/**
|
|
172
|
+
* Return the current URL with an additional param (without mutating this store).
|
|
173
|
+
*
|
|
174
|
+
* @param key The name of the param to add.
|
|
175
|
+
* @param value The value for the param.
|
|
176
|
+
* @returns A new `ImmutableURL` with the param applied.
|
|
177
|
+
* @example store.withParam("page", 2);
|
|
178
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParam
|
|
179
|
+
*/
|
|
43
180
|
withParam(key: string, value: unknown): ImmutableURL;
|
|
44
|
-
/**
|
|
181
|
+
/**
|
|
182
|
+
* Return the current URL with additional params (without mutating this store).
|
|
183
|
+
*
|
|
184
|
+
* @param params The params to add.
|
|
185
|
+
* @returns A new `ImmutableURL` with the params applied.
|
|
186
|
+
* @example store.withParams({ page: 2, sort: "name" });
|
|
187
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParams
|
|
188
|
+
*/
|
|
45
189
|
withParams(params: PossibleURIParams): ImmutableURL;
|
|
46
|
-
/**
|
|
190
|
+
/**
|
|
191
|
+
* Return the current URL with one or more params removed (without mutating this store).
|
|
192
|
+
*
|
|
193
|
+
* @param keys The param names to remove.
|
|
194
|
+
* @returns A new `ImmutableURL` with the params removed.
|
|
195
|
+
* @example store.omitParams("page", "sort");
|
|
196
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParams
|
|
197
|
+
*/
|
|
47
198
|
omitParams(...keys: string[]): ImmutableURL;
|
|
48
|
-
/**
|
|
199
|
+
/**
|
|
200
|
+
* Return the current URL with a single param removed (without mutating this store).
|
|
201
|
+
*
|
|
202
|
+
* @param key The param name to remove.
|
|
203
|
+
* @returns A new `ImmutableURL` with the param removed.
|
|
204
|
+
* @example store.omitParam("page");
|
|
205
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParam
|
|
206
|
+
*/
|
|
49
207
|
omitParam(key: string): ImmutableURL;
|
|
50
208
|
/**
|
|
51
209
|
* Is `target` active relative to this store's URL?
|
package/store/URLStore.js
CHANGED
|
@@ -2,8 +2,25 @@ import { getGetter, getSetter } from "../util/class.js";
|
|
|
2
2
|
import { clearURIParams, getURIParam, getURIParams, omitURIParams, requireURIParam, withURIParam, withURIParams, } from "../util/uri.js";
|
|
3
3
|
import { getURL, isURLActive, isURLProud, requireURL } from "../util/url.js";
|
|
4
4
|
import { BusyStore } from "./BusyStore.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Store a URL, e.g. `https://top.com/a/b/c`
|
|
7
|
+
* - Accepts any `PossibleURL` as input and normalises it to an `ImmutableURL` (resolved against `this.base`).
|
|
8
|
+
* - Exposes the URL's components (`href`, `origin`, `pathname`, etc.) and helpers to read and mutate its search params.
|
|
9
|
+
*
|
|
10
|
+
* @param url The initial URL value.
|
|
11
|
+
* @param base An optional base URL that relative URLs are resolved against.
|
|
12
|
+
* @example
|
|
13
|
+
* const store = new URLStore("https://top.com/a/b/c");
|
|
14
|
+
* store.setParam("page", 2); // https://top.com/a/b/c?page=2
|
|
15
|
+
* store.isActive("https://top.com/a/b/c?page=2"); // true
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore
|
|
17
|
+
*/
|
|
6
18
|
export class URLStore extends BusyStore {
|
|
19
|
+
/**
|
|
20
|
+
* Base URL that relative URL inputs are resolved against, or `undefined` if none was set.
|
|
21
|
+
*
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/base
|
|
23
|
+
*/
|
|
7
24
|
base;
|
|
8
25
|
// Override to convert possible URL to URL.
|
|
9
26
|
constructor(url, base) {
|
|
@@ -19,89 +36,230 @@ export class URLStore extends BusyStore {
|
|
|
19
36
|
_equal(a, b) {
|
|
20
37
|
return a.href === b.href;
|
|
21
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Get or set the full URL string (e.g. `https://top.com/a/b/c?x=1`).
|
|
41
|
+
*
|
|
42
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/href
|
|
43
|
+
*/
|
|
22
44
|
get href() {
|
|
23
45
|
return this.value.href;
|
|
24
46
|
}
|
|
25
47
|
set href(href) {
|
|
26
48
|
this.value = href;
|
|
27
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Get the origin of the URL (e.g. `https://top.com`).
|
|
52
|
+
*
|
|
53
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/origin
|
|
54
|
+
*/
|
|
28
55
|
get origin() {
|
|
29
56
|
return this.value.origin;
|
|
30
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the protocol/scheme of the URL (e.g. `https:`).
|
|
60
|
+
*
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/protocol
|
|
62
|
+
*/
|
|
31
63
|
get protocol() {
|
|
32
64
|
return this.value.protocol;
|
|
33
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Get the username component of the URL.
|
|
68
|
+
*
|
|
69
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/username
|
|
70
|
+
*/
|
|
34
71
|
get username() {
|
|
35
72
|
return this.value.username;
|
|
36
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Get the password component of the URL.
|
|
76
|
+
*
|
|
77
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/password
|
|
78
|
+
*/
|
|
37
79
|
get password() {
|
|
38
80
|
return this.value.password;
|
|
39
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Get the hostname of the URL (e.g. `top.com`).
|
|
84
|
+
*
|
|
85
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/hostname
|
|
86
|
+
*/
|
|
40
87
|
get hostname() {
|
|
41
88
|
return this.value.hostname;
|
|
42
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Get the host of the URL including port (e.g. `top.com:8080`).
|
|
92
|
+
*
|
|
93
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/host
|
|
94
|
+
*/
|
|
43
95
|
get host() {
|
|
44
96
|
return this.value.host;
|
|
45
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Get the port of the URL, or an empty string if none is set.
|
|
100
|
+
*
|
|
101
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/port
|
|
102
|
+
*/
|
|
46
103
|
get port() {
|
|
47
104
|
return this.value.port;
|
|
48
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Get the absolute pathname of the URL (e.g. `/a/b/c`).
|
|
108
|
+
*
|
|
109
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/pathname
|
|
110
|
+
*/
|
|
49
111
|
get pathname() {
|
|
50
112
|
return this.value.pathname;
|
|
51
113
|
}
|
|
52
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Get the URL params as a query string (e.g. `?x=1&y=2`).
|
|
116
|
+
*
|
|
117
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/search
|
|
118
|
+
*/
|
|
53
119
|
get search() {
|
|
54
120
|
return this.value.search;
|
|
55
121
|
}
|
|
56
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* Get the URL params as a dictionary of key/value pairs.
|
|
124
|
+
*
|
|
125
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/params
|
|
126
|
+
*/
|
|
57
127
|
get params() {
|
|
58
128
|
return getURIParams(this.value.searchParams, getGetter(this, "params"));
|
|
59
129
|
}
|
|
60
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* Return a single param in this URL, or `undefined` if it could not be found.
|
|
132
|
+
*
|
|
133
|
+
* @param key The name of the param to read.
|
|
134
|
+
* @returns The param value, or `undefined` if it is not present.
|
|
135
|
+
* @example store.getParam("page"); // "2"
|
|
136
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/getParam
|
|
137
|
+
*/
|
|
61
138
|
getParam(key) {
|
|
62
139
|
return getURIParam(this.value.searchParams, key);
|
|
63
140
|
}
|
|
64
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* Require a single param in this URL, or throw `RequiredError` if it could not be found.
|
|
143
|
+
*
|
|
144
|
+
* @param key The name of the param to read.
|
|
145
|
+
* @returns The param value.
|
|
146
|
+
* @throws {RequiredError} If the param is not present.
|
|
147
|
+
* @example store.requireParam("page");
|
|
148
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/requireParam
|
|
149
|
+
*/
|
|
65
150
|
requireParam(key) {
|
|
66
151
|
return requireURIParam(this.value.searchParams, key, getSetter(this, "requireParam"));
|
|
67
152
|
}
|
|
68
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Set all params in this URL (all current params are cleared first).
|
|
155
|
+
*
|
|
156
|
+
* @param params The complete set of params to set.
|
|
157
|
+
* @returns Nothing.
|
|
158
|
+
* @example store.setParams({ page: 2, sort: "name" });
|
|
159
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParams
|
|
160
|
+
*/
|
|
69
161
|
setParams(params) {
|
|
70
162
|
this.value = withURIParams(clearURIParams(this.value, this.setParams), params, this.setParams);
|
|
71
163
|
}
|
|
72
|
-
/**
|
|
164
|
+
/**
|
|
165
|
+
* Set a single named param in this URL.
|
|
166
|
+
*
|
|
167
|
+
* @param key The name of the param to set.
|
|
168
|
+
* @param value The new value for the param.
|
|
169
|
+
* @returns Nothing.
|
|
170
|
+
* @example store.setParam("page", 2);
|
|
171
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/setParam
|
|
172
|
+
*/
|
|
73
173
|
setParam(key, value) {
|
|
74
174
|
this.value = withURIParam(this.value, key, value, this.setParam);
|
|
75
175
|
}
|
|
76
|
-
/**
|
|
176
|
+
/**
|
|
177
|
+
* Update several params in this URL (merged with current params).
|
|
178
|
+
*
|
|
179
|
+
* @param params The set of params to merge in.
|
|
180
|
+
* @returns Nothing.
|
|
181
|
+
* @example store.updateParams({ sort: "name" });
|
|
182
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/updateParams
|
|
183
|
+
*/
|
|
77
184
|
updateParams(params) {
|
|
78
185
|
this.value = withURIParams(this.value, params, this.updateParams);
|
|
79
186
|
}
|
|
80
|
-
/**
|
|
187
|
+
/**
|
|
188
|
+
* Delete one or more params from this URL.
|
|
189
|
+
*
|
|
190
|
+
* @param key The name of the first param to delete.
|
|
191
|
+
* @param keys Additional param names to delete.
|
|
192
|
+
* @returns Nothing.
|
|
193
|
+
* @example store.deleteParam("page", "sort");
|
|
194
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParam
|
|
195
|
+
*/
|
|
81
196
|
deleteParam(key, ...keys) {
|
|
82
197
|
this.value = omitURIParams(this.value, key, ...keys);
|
|
83
198
|
}
|
|
84
|
-
/**
|
|
199
|
+
/**
|
|
200
|
+
* Delete one or more params from this URL.
|
|
201
|
+
*
|
|
202
|
+
* @param key The name of the first param to delete.
|
|
203
|
+
* @param keys Additional param names to delete.
|
|
204
|
+
* @returns Nothing.
|
|
205
|
+
* @example store.deleteParams("page", "sort");
|
|
206
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/deleteParams
|
|
207
|
+
*/
|
|
85
208
|
deleteParams(key, ...keys) {
|
|
86
209
|
this.value = omitURIParams(this.value, key, ...keys);
|
|
87
210
|
}
|
|
88
|
-
/**
|
|
211
|
+
/**
|
|
212
|
+
* Clear all params from this URL.
|
|
213
|
+
*
|
|
214
|
+
* @returns Nothing.
|
|
215
|
+
* @example store.clearParams();
|
|
216
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/clearParams
|
|
217
|
+
*/
|
|
89
218
|
clearParams() {
|
|
90
219
|
this.value = clearURIParams(this.value, this.clearParams);
|
|
91
220
|
}
|
|
92
|
-
/**
|
|
221
|
+
/**
|
|
222
|
+
* Return the current URL with an additional param (without mutating this store).
|
|
223
|
+
*
|
|
224
|
+
* @param key The name of the param to add.
|
|
225
|
+
* @param value The value for the param.
|
|
226
|
+
* @returns A new `ImmutableURL` with the param applied.
|
|
227
|
+
* @example store.withParam("page", 2);
|
|
228
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParam
|
|
229
|
+
*/
|
|
93
230
|
withParam(key, value) {
|
|
94
231
|
return withURIParam(this.value, key, value, this.withParam);
|
|
95
232
|
}
|
|
96
|
-
/**
|
|
233
|
+
/**
|
|
234
|
+
* Return the current URL with additional params (without mutating this store).
|
|
235
|
+
*
|
|
236
|
+
* @param params The params to add.
|
|
237
|
+
* @returns A new `ImmutableURL` with the params applied.
|
|
238
|
+
* @example store.withParams({ page: 2, sort: "name" });
|
|
239
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/withParams
|
|
240
|
+
*/
|
|
97
241
|
withParams(params) {
|
|
98
242
|
return withURIParams(this.value, params, this.withParams);
|
|
99
243
|
}
|
|
100
|
-
/**
|
|
244
|
+
/**
|
|
245
|
+
* Return the current URL with one or more params removed (without mutating this store).
|
|
246
|
+
*
|
|
247
|
+
* @param keys The param names to remove.
|
|
248
|
+
* @returns A new `ImmutableURL` with the params removed.
|
|
249
|
+
* @example store.omitParams("page", "sort");
|
|
250
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParams
|
|
251
|
+
*/
|
|
101
252
|
omitParams(...keys) {
|
|
102
253
|
return omitURIParams(this.value, ...keys);
|
|
103
254
|
}
|
|
104
|
-
/**
|
|
255
|
+
/**
|
|
256
|
+
* Return the current URL with a single param removed (without mutating this store).
|
|
257
|
+
*
|
|
258
|
+
* @param key The param name to remove.
|
|
259
|
+
* @returns A new `ImmutableURL` with the param removed.
|
|
260
|
+
* @example store.omitParam("page");
|
|
261
|
+
* @see https://dhoulb.github.io/shelving/store/URLStore/URLStore/omitParam
|
|
262
|
+
*/
|
|
105
263
|
omitParam(key) {
|
|
106
264
|
return omitURIParams(this.value, key);
|
|
107
265
|
}
|
package/test/basics.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Item } from "../util/item.js";
|
|
2
2
|
import type { ValidatorType } from "../util/validate.js";
|
|
3
|
+
/**
|
|
4
|
+
* Schema for a test "basic" fixture, exercising string, number, choice, array, boolean, and nested-data props.
|
|
5
|
+
*
|
|
6
|
+
* @see https://dhoulb.github.io/shelving/test/basics/BASIC_SCHEMA
|
|
7
|
+
*/
|
|
3
8
|
export declare const BASIC_SCHEMA: import("../schema/DataSchema.js").DataSchema<{
|
|
4
9
|
str: string;
|
|
5
10
|
num: number;
|
|
@@ -14,16 +19,81 @@ export declare const BASIC_SCHEMA: import("../schema/DataSchema.js").DataSchema<
|
|
|
14
19
|
even: /*elided*/ any;
|
|
15
20
|
};
|
|
16
21
|
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Validated data shape of a test basic, inferred from `BASIC_SCHEMA`.
|
|
24
|
+
*
|
|
25
|
+
* @see https://dhoulb.github.io/shelving/test/basics/BasicData
|
|
26
|
+
*/
|
|
17
27
|
export type BasicData = ValidatorType<typeof BASIC_SCHEMA>;
|
|
28
|
+
/**
|
|
29
|
+
* A test basic as a stored `Item` — `BasicData` plus a string `id`.
|
|
30
|
+
*
|
|
31
|
+
* @see https://dhoulb.github.io/shelving/test/basics/BasicItem
|
|
32
|
+
*/
|
|
18
33
|
export type BasicItem = Item<string, BasicData>;
|
|
34
|
+
/**
|
|
35
|
+
* Test basic fixture: `str: "aaa"`, `num: 100`, group `a`, odd.
|
|
36
|
+
*
|
|
37
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic1
|
|
38
|
+
*/
|
|
19
39
|
export declare const basic1: BasicItem;
|
|
40
|
+
/**
|
|
41
|
+
* Test basic fixture: `str: "bbb"`, `num: 200`, group `a`, even.
|
|
42
|
+
*
|
|
43
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic2
|
|
44
|
+
*/
|
|
20
45
|
export declare const basic2: BasicItem;
|
|
46
|
+
/**
|
|
47
|
+
* Test basic fixture: `str: "ccc"`, `num: 300`, group `a`, odd.
|
|
48
|
+
*
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic3
|
|
50
|
+
*/
|
|
21
51
|
export declare const basic3: BasicItem;
|
|
52
|
+
/**
|
|
53
|
+
* Test basic fixture: `str: "ddd"`, `num: 400`, group `b`, even.
|
|
54
|
+
*
|
|
55
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic4
|
|
56
|
+
*/
|
|
22
57
|
export declare const basic4: BasicItem;
|
|
58
|
+
/**
|
|
59
|
+
* Test basic fixture: `str: "eee"`, `num: 500`, group `b`, odd.
|
|
60
|
+
*
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic5
|
|
62
|
+
*/
|
|
23
63
|
export declare const basic5: BasicItem;
|
|
64
|
+
/**
|
|
65
|
+
* Test basic fixture: `str: "fff"`, `num: 600`, group `b`, even.
|
|
66
|
+
*
|
|
67
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic6
|
|
68
|
+
*/
|
|
24
69
|
export declare const basic6: BasicItem;
|
|
70
|
+
/**
|
|
71
|
+
* Test basic fixture: `str: "ggg"`, `num: 700`, group `c`, odd.
|
|
72
|
+
*
|
|
73
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic7
|
|
74
|
+
*/
|
|
25
75
|
export declare const basic7: BasicItem;
|
|
76
|
+
/**
|
|
77
|
+
* Test basic fixture: `str: "hhh"`, `num: 800`, group `c`, even.
|
|
78
|
+
*
|
|
79
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic8
|
|
80
|
+
*/
|
|
26
81
|
export declare const basic8: BasicItem;
|
|
82
|
+
/**
|
|
83
|
+
* Test basic fixture: `str: "iii"`, `num: 900`, group `c`, odd.
|
|
84
|
+
*
|
|
85
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic9
|
|
86
|
+
*/
|
|
27
87
|
export declare const basic9: BasicItem;
|
|
88
|
+
/**
|
|
89
|
+
* Array of all nine test basic fixtures in a deliberately shuffled order, for exercising sort/query behaviour.
|
|
90
|
+
*
|
|
91
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basics
|
|
92
|
+
*/
|
|
28
93
|
export declare const basics: ReadonlyArray<BasicItem>;
|
|
94
|
+
/**
|
|
95
|
+
* Standalone test basic data (no `id`): `str: "zzz"`, `num: 999`, for use as new/unsaved data.
|
|
96
|
+
*
|
|
97
|
+
* @see https://dhoulb.github.io/shelving/test/basics/basic999
|
|
98
|
+
*/
|
|
29
99
|
export declare const basic999: BasicData;
|