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/markup/util/regexp.d.ts
CHANGED
|
@@ -1,21 +1,98 @@
|
|
|
1
1
|
import type { NamedRegExp, NamedRegExpData, PossibleRegExp } from "../../util/regexp.js";
|
|
2
|
+
/**
|
|
3
|
+
* Regular expression source matching block content — the shortest run of any character.
|
|
4
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_CONTENT_REGEXP
|
|
5
|
+
*/
|
|
2
6
|
export declare const BLOCK_CONTENT_REGEXP = "[\\s\\S]*?";
|
|
7
|
+
/**
|
|
8
|
+
* Regular expression source matching block whitespace — any single whitespace character.
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_SPACE_REGEXP
|
|
10
|
+
*/
|
|
3
11
|
export declare const BLOCK_SPACE_REGEXP = "\\s";
|
|
12
|
+
/**
|
|
13
|
+
* Regular expression source matching the start of a block — the start of the string, or one linebreak.
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_START_REGEXP
|
|
15
|
+
*/
|
|
4
16
|
export declare const BLOCK_START_REGEXP = "(?:\\s*\\n|^)";
|
|
17
|
+
/**
|
|
18
|
+
* Regular expression source matching the end of a block — the end of the string, or two linebreaks, with trailing whitespace trimmed.
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_END_REGEXP
|
|
20
|
+
*/
|
|
5
21
|
export declare const BLOCK_END_REGEXP = "\\s*(?:$|\\n\\s*\\n)";
|
|
22
|
+
/**
|
|
23
|
+
* Regular expression source matching line content — the shortest run of any character except newline.
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_CONTENT_REGEXP
|
|
25
|
+
*/
|
|
6
26
|
export declare const LINE_CONTENT_REGEXP = "[^\\n]*?";
|
|
27
|
+
/**
|
|
28
|
+
* Regular expression source matching line whitespace — any single whitespace character except newline.
|
|
29
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_SPACE_REGEXP
|
|
30
|
+
*/
|
|
7
31
|
export declare const LINE_SPACE_REGEXP = "[^\\n\\S]";
|
|
32
|
+
/**
|
|
33
|
+
* Regular expression source matching the start of a line — the start of the string, or one linebreak.
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_START_REGEXP
|
|
35
|
+
*/
|
|
8
36
|
export declare const LINE_START_REGEXP = "(?:\\s*\\n|^)";
|
|
37
|
+
/**
|
|
38
|
+
* Regular expression source matching the end of a line — the end of the string, or one linebreak, with trailing whitespace trimmed.
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_END_REGEXP
|
|
40
|
+
*/
|
|
9
41
|
export declare const LINE_END_REGEXP = "[^\\n\\S]*(?:\\s*\\n|$)";
|
|
42
|
+
/**
|
|
43
|
+
* Regular expression source matching word content — at least one letter or number character.
|
|
44
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/WORD_CONTENT_REGEXP
|
|
45
|
+
*/
|
|
10
46
|
export declare const WORD_CONTENT_REGEXP = "[\\p{L}\\p{N}]+";
|
|
47
|
+
/**
|
|
48
|
+
* Regular expression source matching the start of a word — a zero-width assertion that the previous character is not a letter or number.
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/WORD_START_REGEXP
|
|
50
|
+
*/
|
|
11
51
|
export declare const WORD_START_REGEXP = "(?<![\\p{L}\\p{N}])";
|
|
52
|
+
/**
|
|
53
|
+
* Regular expression source matching the end of a word — a zero-width assertion that the next character is not a letter or number.
|
|
54
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/WORD_END_REGEXP
|
|
55
|
+
*/
|
|
12
56
|
export declare const WORD_END_REGEXP = "(?![\\p{L}\\p{N}])";
|
|
13
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Create a `RegExp` that matches a block of content, wrapped between block-start and block-end boundaries.
|
|
59
|
+
*
|
|
60
|
+
* *Factory for `RegExp`.*
|
|
61
|
+
*
|
|
62
|
+
* @param pattern The content pattern to match between the boundaries (a `NamedRegExp` to type the captured data).
|
|
63
|
+
* @param start The leading boundary pattern (defaults to `BLOCK_START_REGEXP`).
|
|
64
|
+
* @param end The trailing boundary pattern (defaults to `BLOCK_END_REGEXP`).
|
|
65
|
+
* @returns A `RegExp` (a `NamedRegExp<T>` when the content pattern names its capture groups).
|
|
66
|
+
* @example createBlockRegExp("(?<quote>>[\\s\\S]*?)")
|
|
67
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/createBlockRegExp
|
|
68
|
+
*/
|
|
14
69
|
export declare function createBlockRegExp<T extends NamedRegExpData>(pattern: NamedRegExp<T>, start?: PossibleRegExp, end?: PossibleRegExp): NamedRegExp<T>;
|
|
15
70
|
export declare function createBlockRegExp<T extends NamedRegExpData | undefined = undefined>(pattern: PossibleRegExp, start?: PossibleRegExp, end?: PossibleRegExp): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
|
16
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Create a `RegExp` that matches a single line of content, wrapped between line-start and line-end boundaries.
|
|
73
|
+
*
|
|
74
|
+
* *Factory for `RegExp`.*
|
|
75
|
+
*
|
|
76
|
+
* @param pattern The content pattern to match between the boundaries (a `NamedRegExp` to type the captured data).
|
|
77
|
+
* @param start The leading boundary pattern (defaults to `LINE_START_REGEXP`).
|
|
78
|
+
* @param end The trailing boundary pattern (defaults to `LINE_END_REGEXP`).
|
|
79
|
+
* @returns A `RegExp` (a `NamedRegExp<T>` when the content pattern names its capture groups).
|
|
80
|
+
* @example createLineRegExp("(?<prefix>#{1,6})")
|
|
81
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/createLineRegExp
|
|
82
|
+
*/
|
|
17
83
|
export declare function createLineRegExp<T extends NamedRegExpData>(pattern: NamedRegExp<T>, start?: PossibleRegExp, end?: PossibleRegExp): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
|
18
84
|
export declare function createLineRegExp<T extends NamedRegExpData | undefined = undefined>(pattern: PossibleRegExp, start?: PossibleRegExp, end?: PossibleRegExp): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
|
19
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Create a `RegExp` that matches a word of content, wrapped between word-start and word-end boundaries.
|
|
87
|
+
*
|
|
88
|
+
* *Factory for `RegExp`.*
|
|
89
|
+
*
|
|
90
|
+
* @param pattern The content pattern to match between the boundaries (a `NamedRegExp` to type the captured data).
|
|
91
|
+
* @param start The leading boundary pattern (defaults to `WORD_START_REGEXP`).
|
|
92
|
+
* @param end The trailing boundary pattern (defaults to `WORD_END_REGEXP`).
|
|
93
|
+
* @returns A `RegExp` (a `NamedRegExp<T>` when the content pattern names its capture groups).
|
|
94
|
+
* @example createWordRegExp("(?<char>[*_])+")
|
|
95
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/createWordRegExp
|
|
96
|
+
*/
|
|
20
97
|
export declare function createWordRegExp<T extends NamedRegExpData>(pattern: NamedRegExp<T>, start?: PossibleRegExp, end?: PossibleRegExp): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
|
21
98
|
export declare function createWordRegExp<T extends NamedRegExpData | undefined = undefined>(pattern: PossibleRegExp, start?: PossibleRegExp, end?: PossibleRegExp): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
package/markup/util/regexp.js
CHANGED
|
@@ -1,14 +1,58 @@
|
|
|
1
1
|
import { getRegExpSource } from "../../util/regexp.js";
|
|
2
|
+
/**
|
|
3
|
+
* Regular expression source matching block content — the shortest run of any character.
|
|
4
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_CONTENT_REGEXP
|
|
5
|
+
*/
|
|
2
6
|
export const BLOCK_CONTENT_REGEXP = "[\\s\\S]*?"; // Block content (shortest run of any character).
|
|
7
|
+
/**
|
|
8
|
+
* Regular expression source matching block whitespace — any single whitespace character.
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_SPACE_REGEXP
|
|
10
|
+
*/
|
|
3
11
|
export const BLOCK_SPACE_REGEXP = "\\s"; // Block whitespace (run of any whitespace character).
|
|
12
|
+
/**
|
|
13
|
+
* Regular expression source matching the start of a block — the start of the string, or one linebreak.
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_START_REGEXP
|
|
15
|
+
*/
|
|
4
16
|
export const BLOCK_START_REGEXP = "(?:\\s*\\n|^)"; // Start of block (start of string, or one linebreak).
|
|
17
|
+
/**
|
|
18
|
+
* Regular expression source matching the end of a block — the end of the string, or two linebreaks, with trailing whitespace trimmed.
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/BLOCK_END_REGEXP
|
|
20
|
+
*/
|
|
5
21
|
export const BLOCK_END_REGEXP = "\\s*(?:$|\\n\\s*\\n)"; // End of block (end of string, or two linebreaks, trimmed whitespace).
|
|
22
|
+
/**
|
|
23
|
+
* Regular expression source matching line content — the shortest run of any character except newline.
|
|
24
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_CONTENT_REGEXP
|
|
25
|
+
*/
|
|
6
26
|
export const LINE_CONTENT_REGEXP = "[^\\n]*?"; // Line content (shortest run of any character except newline).
|
|
27
|
+
/**
|
|
28
|
+
* Regular expression source matching line whitespace — any single whitespace character except newline.
|
|
29
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_SPACE_REGEXP
|
|
30
|
+
*/
|
|
7
31
|
export const LINE_SPACE_REGEXP = "[^\\n\\S]"; // Line whitespace (run of any whitespace character except newline).
|
|
32
|
+
/**
|
|
33
|
+
* Regular expression source matching the start of a line — the start of the string, or one linebreak.
|
|
34
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_START_REGEXP
|
|
35
|
+
*/
|
|
8
36
|
export const LINE_START_REGEXP = BLOCK_START_REGEXP; // Start of line (start of string, or one linebreak).
|
|
37
|
+
/**
|
|
38
|
+
* Regular expression source matching the end of a line — the end of the string, or one linebreak, with trailing whitespace trimmed.
|
|
39
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/LINE_END_REGEXP
|
|
40
|
+
*/
|
|
9
41
|
export const LINE_END_REGEXP = `${LINE_SPACE_REGEXP}*(?:\\s*\\n|$)`; // End of line (end of string, or one linebreak, trimmed whitespace).
|
|
42
|
+
/**
|
|
43
|
+
* Regular expression source matching word content — at least one letter or number character.
|
|
44
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/WORD_CONTENT_REGEXP
|
|
45
|
+
*/
|
|
10
46
|
export const WORD_CONTENT_REGEXP = "[\\p{L}\\p{N}]+"; // Word content (at least one character that is a letter or number).
|
|
47
|
+
/**
|
|
48
|
+
* Regular expression source matching the start of a word — a zero-width assertion that the previous character is not a letter or number.
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/WORD_START_REGEXP
|
|
50
|
+
*/
|
|
11
51
|
export const WORD_START_REGEXP = "(?<![\\p{L}\\p{N}])"; // Start of word (previous character is not a letter or number).
|
|
52
|
+
/**
|
|
53
|
+
* Regular expression source matching the end of a word — a zero-width assertion that the next character is not a letter or number.
|
|
54
|
+
* @see https://dhoulb.github.io/shelving/markup/util/regexp/WORD_END_REGEXP
|
|
55
|
+
*/
|
|
12
56
|
export const WORD_END_REGEXP = "(?![\\p{L}\\p{N}])"; // End of word (next character is not a letter or number).
|
|
13
57
|
export function createBlockRegExp(content, start = BLOCK_START_REGEXP, end = BLOCK_END_REGEXP) {
|
|
14
58
|
return new RegExp(`${start}${getRegExpSource(content)}${end}`, "u");
|
package/package.json
CHANGED
|
@@ -3,6 +3,11 @@ import type { Endpoint } from "../api/endpoint/Endpoint.js";
|
|
|
3
3
|
import type { APIProvider } from "../api/provider/APIProvider.js";
|
|
4
4
|
import type { EndpointStore } from "../api/store/EndpointStore.js";
|
|
5
5
|
import type { Nullish } from "../util/null.js";
|
|
6
|
+
/**
|
|
7
|
+
* Bundle of hooks and a provider component returned by `createAPIContext()`.
|
|
8
|
+
*
|
|
9
|
+
* @see https://dhoulb.github.io/shelving/react/createAPIContext/APIContext
|
|
10
|
+
*/
|
|
6
11
|
export interface APIContext<P, R> {
|
|
7
12
|
/** Get an `EndpointStore` for the specified endpoint/payload in the current `APIProvider` context. */
|
|
8
13
|
useAPI<PP extends P, RR extends R>(this: void, endpoint: Endpoint<PP, RR>, payload: PP): EndpointStore<PP, RR>;
|
|
@@ -17,6 +22,16 @@ export interface APIContext<P, R> {
|
|
|
17
22
|
* - Allows React elements to call `useAPI()` to access endpoint stores in an API provider.
|
|
18
23
|
* - Each mounted `APIContext` gets its own in-memory store cache.
|
|
19
24
|
*
|
|
25
|
+
* @param provider `APIProvider` the created context resolves endpoint stores against.
|
|
26
|
+
* @returns `APIContext` bundle containing the `useAPI()` hook and the `<APIContext>` wrapper component.
|
|
27
|
+
*
|
|
20
28
|
* @todo Use and integreate our `EndpointCache` functionality and use it in this.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const { useAPI, APIContext } = createAPIContext(provider);
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @see https://dhoulb.github.io/shelving/react/createAPIContext
|
|
21
36
|
*/
|
|
22
37
|
export declare function createAPIContext<P, R>(provider: APIProvider<P, R>): APIContext<P, R>;
|
|
@@ -9,7 +9,17 @@ import { useStore } from "./useStore.js";
|
|
|
9
9
|
* - Allows React elements to call `useAPI()` to access endpoint stores in an API provider.
|
|
10
10
|
* - Each mounted `APIContext` gets its own in-memory store cache.
|
|
11
11
|
*
|
|
12
|
+
* @param provider `APIProvider` the created context resolves endpoint stores against.
|
|
13
|
+
* @returns `APIContext` bundle containing the `useAPI()` hook and the `<APIContext>` wrapper component.
|
|
14
|
+
*
|
|
12
15
|
* @todo Use and integreate our `EndpointCache` functionality and use it in this.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const { useAPI, APIContext } = createAPIContext(provider);
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/react/createAPIContext
|
|
13
23
|
*/
|
|
14
24
|
export function createAPIContext(provider) {
|
|
15
25
|
const CacheContext = createContext(undefined);
|
|
@@ -7,6 +7,11 @@ import type { Data } from "../util/data.js";
|
|
|
7
7
|
import type { Identifier, Item } from "../util/item.js";
|
|
8
8
|
import type { Nullish } from "../util/null.js";
|
|
9
9
|
import type { Query } from "../util/query.js";
|
|
10
|
+
/**
|
|
11
|
+
* Bundle of hooks and a provider component returned by `createDBContext()`.
|
|
12
|
+
*
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/react/createDBContext/DBContext
|
|
14
|
+
*/
|
|
10
15
|
export interface DBContext<I extends Identifier, T extends Data> {
|
|
11
16
|
/** Get an `ItemStore` for the specified collection item in the current `DataProvider` context and subscribe to any changes in it. */
|
|
12
17
|
useItem<II extends I, TT extends T>(collection: Nullish<Collection<string, II, TT>>, //
|
|
@@ -27,5 +32,15 @@ export interface DBContext<I extends Identifier, T extends Data> {
|
|
|
27
32
|
* Create a data context
|
|
28
33
|
* - Allows React elements to call `useItem()` and `useQuery()` to access items/queries in a database provider.
|
|
29
34
|
* - If the database has a `CacheDBProvider` in its chain then in-memory data will be used in the returned stores.
|
|
35
|
+
*
|
|
36
|
+
* @param provider `DBProvider` the created context resolves item and query stores against.
|
|
37
|
+
* @returns `DBContext` bundle containing the `useItem()` and `useQuery()` hooks and the `<DBContext>` wrapper component.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* const { useItem, useQuery, DBContext } = createDBContext(provider);
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @see https://dhoulb.github.io/shelving/react/createDBContext
|
|
30
45
|
*/
|
|
31
46
|
export declare function createDBContext<I extends Identifier, T extends Data>(provider: DBProvider<I, T>): DBContext<I, T>;
|
package/react/createDBContext.js
CHANGED
|
@@ -8,6 +8,16 @@ import { useStore } from "./useStore.js";
|
|
|
8
8
|
* Create a data context
|
|
9
9
|
* - Allows React elements to call `useItem()` and `useQuery()` to access items/queries in a database provider.
|
|
10
10
|
* - If the database has a `CacheDBProvider` in its chain then in-memory data will be used in the returned stores.
|
|
11
|
+
*
|
|
12
|
+
* @param provider `DBProvider` the created context resolves item and query stores against.
|
|
13
|
+
* @returns `DBContext` bundle containing the `useItem()` and `useQuery()` hooks and the `<DBContext>` wrapper component.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const { useItem, useQuery, DBContext } = createDBContext(provider);
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/react/createDBContext
|
|
11
21
|
*/
|
|
12
22
|
export function createDBContext(provider) {
|
|
13
23
|
const CacheContext = createContext(undefined);
|
package/react/useInstance.d.ts
CHANGED
|
@@ -3,5 +3,16 @@ import type { Arguments } from "../util/function.js";
|
|
|
3
3
|
* Use a memoised class instance.
|
|
4
4
|
* - Creates a new instance of `Constructor` using `args`
|
|
5
5
|
* - Returns same instance for as long as `args` is equal to previous `args`.
|
|
6
|
+
*
|
|
7
|
+
* @param Constructor Class to instantiate with `args`.
|
|
8
|
+
* @param args Constructor arguments — a change in `args` constructs a fresh instance.
|
|
9
|
+
* @returns The memoised instance, reconstructed only when `args` changes.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const cache = useInstance(DBCache, provider);
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/react/useInstance
|
|
6
17
|
*/
|
|
7
18
|
export declare function useInstance<T, A extends Arguments = []>(Constructor: new (...a: A) => T, ...args: A): T;
|
package/react/useInstance.js
CHANGED
|
@@ -4,6 +4,17 @@ import { isArrayEqual } from "../util/equal.js";
|
|
|
4
4
|
* Use a memoised class instance.
|
|
5
5
|
* - Creates a new instance of `Constructor` using `args`
|
|
6
6
|
* - Returns same instance for as long as `args` is equal to previous `args`.
|
|
7
|
+
*
|
|
8
|
+
* @param Constructor Class to instantiate with `args`.
|
|
9
|
+
* @param args Constructor arguments — a change in `args` constructs a fresh instance.
|
|
10
|
+
* @returns The memoised instance, reconstructed only when `args` changes.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const cache = useInstance(DBCache, provider);
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/react/useInstance
|
|
7
18
|
*/
|
|
8
19
|
export function useInstance(Constructor, ...args) {
|
|
9
20
|
const _internals = (useRef(undefined).current ??= {
|
package/react/useLazy.d.ts
CHANGED
|
@@ -4,6 +4,17 @@ import { type Lazy } from "../util/lazy.js";
|
|
|
4
4
|
* Use a memoised value with lazy initialisation.
|
|
5
5
|
* - Returns `value` (if not a function) or the result of calling `value(...args)` (if a function).
|
|
6
6
|
* - Returns same `value` for as long as `args` is equal to previous `args`.
|
|
7
|
+
*
|
|
8
|
+
* @param value Value to return, or a function called with `args` to lazily produce it.
|
|
9
|
+
* @param args Arguments passed to `value()` when it is a function — a change in `args` recomputes the value.
|
|
10
|
+
* @returns The memoised value, recomputed only when `args` changes.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const config = useLazy(() => expensiveConfig(id), id);
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @see https://dhoulb.github.io/shelving/react/useLazy
|
|
7
18
|
*/
|
|
8
19
|
export declare function useLazy<T, A extends Arguments = []>(value: (...args: A) => T, ...args: A): T;
|
|
9
20
|
export declare function useLazy<T>(value: T, ...args: Arguments): T;
|
package/react/useMap.d.ts
CHANGED
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Create a mutable Map that persists for the lifetime of the component.
|
|
3
|
+
* - The same `Map` instance is returned on every render; mutations are not reactive (won't trigger a re-render).
|
|
4
|
+
*
|
|
5
|
+
* @returns Stable `Map` instance that lives for the lifetime of the component.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const cache = useMap<string, number>();
|
|
10
|
+
* cache.set("a", 1);
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @see https://dhoulb.github.io/shelving/react/useMap
|
|
14
|
+
*/
|
|
2
15
|
export declare function useMap<K, V>(): Map<K, V>;
|
package/react/useMap.js
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import { useRef } from "react";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Create a mutable Map that persists for the lifetime of the component.
|
|
4
|
+
* - The same `Map` instance is returned on every render; mutations are not reactive (won't trigger a re-render).
|
|
5
|
+
*
|
|
6
|
+
* @returns Stable `Map` instance that lives for the lifetime of the component.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* const cache = useMap<string, number>();
|
|
11
|
+
* cache.set("a", 1);
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/react/useMap
|
|
15
|
+
*/
|
|
3
16
|
export function useMap() {
|
|
4
17
|
return (useRef(undefined).current ??= new Map());
|
|
5
18
|
}
|
package/react/useReduce.d.ts
CHANGED
|
@@ -5,6 +5,18 @@ import type { Arguments } from "../util/function.js";
|
|
|
5
5
|
* - First argument `previous` is either `undefined` (on first render) or the value returned by `reduce()` on the previous render (on subsequent renders).
|
|
6
6
|
* - `reduce()` can implement custom logic to decide whether to return the previous value or a new one.
|
|
7
7
|
* - Returns whatever `reduce()` returns on this render.
|
|
8
|
+
*
|
|
9
|
+
* @param reduce Reducer called on every render with the previous result and `args`; returns this render's value.
|
|
10
|
+
* @param args Additional arguments forwarded to `reduce()` after `previous`.
|
|
11
|
+
* @returns Whatever `reduce()` returned on this render.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* // Keep the highest count ever seen.
|
|
16
|
+
* const max = useReduce((previous = 0, next: number) => Math.max(previous, next), count);
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/react/useReduce
|
|
8
20
|
*/
|
|
9
21
|
export declare function useReduce<T, A extends Arguments = []>(reduce: (previous: T | undefined, ...a: A) => T, ...args: A): T;
|
|
10
22
|
export declare function useReduce<T, A extends Arguments = []>(reduce: (previous: T | undefined, ...a: A) => T | undefined, ...args: A): T | undefined;
|
package/react/useSequence.d.ts
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Subscribe to an async iterable for the lifetime of the component.
|
|
3
|
+
* - Re-renders the component with each value yielded by the sequence.
|
|
3
4
|
*
|
|
4
5
|
* @param sequence An object implementing the `AsyncIterable` interface.
|
|
5
6
|
* - Subscription is recreated every time this value changes.
|
|
6
7
|
* - Memoise this value to persist the subscription for the lifetime of the component.
|
|
8
|
+
* @returns The most recent value yielded by `sequence`, or `undefined` before the first value arrives.
|
|
9
|
+
* @throws unknown Re-throws (during render) any error thrown by the sequence, for an error boundary to catch.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const value = useSequence(myAsyncIterable);
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/react/useSequence
|
|
7
17
|
*/
|
|
8
18
|
export declare function useSequence<T>(sequence?: AsyncIterable<T>): T | undefined;
|
package/react/useSequence.js
CHANGED
|
@@ -2,10 +2,20 @@ import { useEffect, useState } from "react";
|
|
|
2
2
|
import { runSequence } from "../util/sequence.js";
|
|
3
3
|
/**
|
|
4
4
|
* Subscribe to an async iterable for the lifetime of the component.
|
|
5
|
+
* - Re-renders the component with each value yielded by the sequence.
|
|
5
6
|
*
|
|
6
7
|
* @param sequence An object implementing the `AsyncIterable` interface.
|
|
7
8
|
* - Subscription is recreated every time this value changes.
|
|
8
9
|
* - Memoise this value to persist the subscription for the lifetime of the component.
|
|
10
|
+
* @returns The most recent value yielded by `sequence`, or `undefined` before the first value arrives.
|
|
11
|
+
* @throws unknown Re-throws (during render) any error thrown by the sequence, for an error boundary to catch.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const value = useSequence(myAsyncIterable);
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @see https://dhoulb.github.io/shelving/react/useSequence
|
|
9
19
|
*/
|
|
10
20
|
export function useSequence(sequence) {
|
|
11
21
|
const [value, setValue] = useState(undefined);
|
package/react/useStore.d.ts
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import type { AnyStore } from "../store/Store.js";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Subscribe to a Shelving `Store` instance to refresh this component when its value changes.
|
|
4
|
+
* - Re-renders the component whenever the store's value changes for as long as it is mounted.
|
|
5
|
+
* - Pass `undefined` to subscribe to nothing (e.g. for conditional subscriptions).
|
|
6
|
+
*
|
|
7
|
+
* @param store `Store` instance to subscribe to, or `undefined` to subscribe to nothing.
|
|
8
|
+
* @returns The same `store` that was passed in (or `undefined`).
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const store = useStore(myStore);
|
|
13
|
+
* return <>{store.value}</>;
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @see https://dhoulb.github.io/shelving/react/useStore
|
|
17
|
+
*/
|
|
3
18
|
export declare function useStore<T extends AnyStore>(store: T): T;
|
|
4
19
|
export declare function useStore<T extends AnyStore>(store?: T | undefined): T | undefined;
|
|
@@ -2,15 +2,52 @@ import { type AddressData, formatAddress } from "../util/geo.js";
|
|
|
2
2
|
import { DataSchema, type DataSchemaOptions } from "./DataSchema.js";
|
|
3
3
|
export type { AddressData };
|
|
4
4
|
export { formatAddress };
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Allowed options for `AddressSchema`.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/AddressSchemaOptions
|
|
9
|
+
*/
|
|
6
10
|
export interface AddressSchemaOptions extends Omit<DataSchemaOptions<AddressData>, "props"> {
|
|
7
11
|
}
|
|
8
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Schema that validates a postal address.
|
|
14
|
+
*
|
|
15
|
+
* - Validates the `address1`, `address2`, `city`, `state`, `postcode`, and `country` fields as a single `AddressData` object.
|
|
16
|
+
* - Formats validated values into a human-readable address string via `formatAddress()`.
|
|
17
|
+
*
|
|
18
|
+
* @example ADDRESS.validate({ address1: "1 High St", city: "London", postcode: "SW1A 1AA", country: "GB" });
|
|
19
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/AddressSchema
|
|
20
|
+
*/
|
|
9
21
|
export declare class AddressSchema extends DataSchema<AddressData> {
|
|
22
|
+
/**
|
|
23
|
+
* Create a new `AddressSchema`.
|
|
24
|
+
*
|
|
25
|
+
* @param options Options for the schema (inherits `DataSchema` options except `props`, which is fixed to the postal-address fields).
|
|
26
|
+
* @param options.one Singular noun describing one value, used in error messages (defaults to `"address"`).
|
|
27
|
+
* @param options.title Title of the schema, e.g. for a corresponding field (defaults to `"Address"`).
|
|
28
|
+
*/
|
|
10
29
|
constructor({ one, title, ...options }?: AddressSchemaOptions);
|
|
30
|
+
/**
|
|
31
|
+
* Format a validated address into a human-readable string.
|
|
32
|
+
*
|
|
33
|
+
* @param value The valid address data to format.
|
|
34
|
+
* @returns The address formatted as a single display string.
|
|
35
|
+
* @example ADDRESS.format({ address1: "1 High St", city: "London", postcode: "SW1A 1AA", country: "GB" });
|
|
36
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/AddressSchema/format
|
|
37
|
+
*/
|
|
11
38
|
format(value: AddressData): string;
|
|
12
39
|
}
|
|
13
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Valid postal address data.
|
|
42
|
+
*
|
|
43
|
+
* @example ADDRESS.validate({ address1: "1 High St", city: "London", postcode: "SW1A 1AA", country: "GB" });
|
|
44
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/ADDRESS
|
|
45
|
+
*/
|
|
14
46
|
export declare const ADDRESS: AddressSchema;
|
|
15
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Valid postal address data, or `null`
|
|
49
|
+
*
|
|
50
|
+
* @example NULLABLE_ADDRESS.validate(null); // Returns null
|
|
51
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/NULLABLE_ADDRESS
|
|
52
|
+
*/
|
|
16
53
|
export declare const NULLABLE_ADDRESS: import("./NullableSchema.js").NullableSchema<AddressData>;
|
package/schema/AddressSchema.js
CHANGED
|
@@ -12,16 +12,49 @@ const ADDRESS_PROPS = {
|
|
|
12
12
|
postcode: new StringSchema({ title: "Postcode", min: 1, max: 12, case: "upper" }),
|
|
13
13
|
country: COUNTRY,
|
|
14
14
|
};
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Schema that validates a postal address.
|
|
17
|
+
*
|
|
18
|
+
* - Validates the `address1`, `address2`, `city`, `state`, `postcode`, and `country` fields as a single `AddressData` object.
|
|
19
|
+
* - Formats validated values into a human-readable address string via `formatAddress()`.
|
|
20
|
+
*
|
|
21
|
+
* @example ADDRESS.validate({ address1: "1 High St", city: "London", postcode: "SW1A 1AA", country: "GB" });
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/AddressSchema
|
|
23
|
+
*/
|
|
16
24
|
export class AddressSchema extends DataSchema {
|
|
25
|
+
/**
|
|
26
|
+
* Create a new `AddressSchema`.
|
|
27
|
+
*
|
|
28
|
+
* @param options Options for the schema (inherits `DataSchema` options except `props`, which is fixed to the postal-address fields).
|
|
29
|
+
* @param options.one Singular noun describing one value, used in error messages (defaults to `"address"`).
|
|
30
|
+
* @param options.title Title of the schema, e.g. for a corresponding field (defaults to `"Address"`).
|
|
31
|
+
*/
|
|
17
32
|
constructor({ one = "address", title = "Address", ...options } = {}) {
|
|
18
33
|
super({ one, title, props: ADDRESS_PROPS, ...options });
|
|
19
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Format a validated address into a human-readable string.
|
|
37
|
+
*
|
|
38
|
+
* @param value The valid address data to format.
|
|
39
|
+
* @returns The address formatted as a single display string.
|
|
40
|
+
* @example ADDRESS.format({ address1: "1 High St", city: "London", postcode: "SW1A 1AA", country: "GB" });
|
|
41
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/AddressSchema/format
|
|
42
|
+
*/
|
|
20
43
|
format(value) {
|
|
21
44
|
return formatAddress(value);
|
|
22
45
|
}
|
|
23
46
|
}
|
|
24
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Valid postal address data.
|
|
49
|
+
*
|
|
50
|
+
* @example ADDRESS.validate({ address1: "1 High St", city: "London", postcode: "SW1A 1AA", country: "GB" });
|
|
51
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/ADDRESS
|
|
52
|
+
*/
|
|
25
53
|
export const ADDRESS = new AddressSchema({});
|
|
26
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Valid postal address data, or `null`
|
|
56
|
+
*
|
|
57
|
+
* @example NULLABLE_ADDRESS.validate(null); // Returns null
|
|
58
|
+
* @see https://dhoulb.github.io/shelving/schema/AddressSchema/NULLABLE_ADDRESS
|
|
59
|
+
*/
|
|
27
60
|
export const NULLABLE_ADDRESS = NULLABLE(ADDRESS);
|
package/schema/ArraySchema.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import type { ImmutableArray } from "../util/array.js";
|
|
2
2
|
import type { SchemaOptions } from "./Schema.js";
|
|
3
3
|
import { Schema } from "./Schema.js";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Options for `ArraySchema`.
|
|
6
|
+
*
|
|
7
|
+
* - `items` — schema every item in the array must conform to.
|
|
8
|
+
* - `min`/`max` — minimum and maximum number of items.
|
|
9
|
+
* - `unique` — deduplicate the items when set.
|
|
10
|
+
* - `separator` — string or `RegExp` used to split a string input into items.
|
|
11
|
+
*
|
|
12
|
+
* @see https://dhoulb.github.io/shelving/schema/ArraySchema/ArraySchemaOptions
|
|
13
|
+
*/
|
|
5
14
|
export interface ArraySchemaOptions<T> extends SchemaOptions {
|
|
6
15
|
/** The default value */
|
|
7
16
|
readonly value?: ImmutableArray;
|
|
@@ -17,10 +26,10 @@ export interface ArraySchemaOptions<T> extends SchemaOptions {
|
|
|
17
26
|
readonly separator?: string | RegExp;
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
20
|
-
*
|
|
29
|
+
* Schema that validates an array and ensures every item matches a specified item schema.
|
|
21
30
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
31
|
+
* - A string input is split into items using `separator`.
|
|
32
|
+
* - Items are optionally deduplicated (`unique`), then the count is checked against `min` and `max`.
|
|
24
33
|
*
|
|
25
34
|
* @example
|
|
26
35
|
* const schema = new ArraySchema({ min: 1, max: 2, default: [10,11,12], required: true });
|
|
@@ -35,6 +44,8 @@ export interface ArraySchemaOptions<T> extends SchemaOptions {
|
|
|
35
44
|
* const schema = new ArraySchema({ schema: Array });
|
|
36
45
|
* schema.validate(["a", "a"], schema); // Returns ["a", "a"]
|
|
37
46
|
* schema.validate(["a", null], schema); // Throws Invalids({ "1": Invalid('Must be a string') });
|
|
47
|
+
*
|
|
48
|
+
* @see https://dhoulb.github.io/shelving/schema/ArraySchema/ArraySchema
|
|
38
49
|
*/
|
|
39
50
|
export declare class ArraySchema<T> extends Schema<ImmutableArray<T>> {
|
|
40
51
|
readonly value: ImmutableArray<T>;
|
|
@@ -43,9 +54,40 @@ export declare class ArraySchema<T> extends Schema<ImmutableArray<T>> {
|
|
|
43
54
|
readonly min: number;
|
|
44
55
|
readonly max: number;
|
|
45
56
|
readonly separator: string | RegExp;
|
|
57
|
+
/**
|
|
58
|
+
* Create a new `ArraySchema`.
|
|
59
|
+
*
|
|
60
|
+
* @param options Options for the schema, including the `items` schema, `min`/`max` counts, `unique`, and `separator`.
|
|
61
|
+
*/
|
|
46
62
|
constructor({ items, one, many, title, placeholder, unique, min, max, separator, value, ...options }: ArraySchemaOptions<T>);
|
|
63
|
+
/**
|
|
64
|
+
* Validate an unknown value as an array whose items all match the `items` schema.
|
|
65
|
+
*
|
|
66
|
+
* @param unsafeValue The unknown input value to validate; a string is split using `separator` (defaults to this schema's `value`).
|
|
67
|
+
* @returns The valid array with each item validated by the `items` schema.
|
|
68
|
+
* @throws `string` `"Must be array"` if not an array, `"Required"` or `` `Minimum ${min} ${many}` `` if too few items, or `` `Maximum ${max} ${many}` `` if too many.
|
|
69
|
+
* @example schema.validate([1, 2, 3]) // [1, 2, 3]
|
|
70
|
+
* @see https://dhoulb.github.io/shelving/schema/ArraySchema/ArraySchema/validate
|
|
71
|
+
*/
|
|
47
72
|
validate(unsafeValue?: unknown): ImmutableArray<T>;
|
|
73
|
+
/**
|
|
74
|
+
* Format a validated array as a string for display.
|
|
75
|
+
*
|
|
76
|
+
* @param arr The valid array to format.
|
|
77
|
+
* @returns The array's items formatted as a human-readable string.
|
|
78
|
+
* @example schema.format([1, 2, 3]) // "1, 2, 3"
|
|
79
|
+
* @see https://dhoulb.github.io/shelving/schema/ArraySchema/ArraySchema/format
|
|
80
|
+
*/
|
|
48
81
|
format(arr: ImmutableArray<T>): string;
|
|
49
82
|
}
|
|
50
|
-
/**
|
|
51
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Create a schema for a valid array with specified items.
|
|
85
|
+
*
|
|
86
|
+
* *Factory for `ArraySchema`.*
|
|
87
|
+
*
|
|
88
|
+
* @param items Schema every item in the array must conform to.
|
|
89
|
+
* @returns An `ArraySchema` validating arrays of the given item type.
|
|
90
|
+
* @example ARRAY(NUMBER) // ArraySchema<number>
|
|
91
|
+
* @see https://dhoulb.github.io/shelving/schema/ArraySchema/ARRAY
|
|
92
|
+
*/
|
|
93
|
+
export declare function ARRAY<T>(items: Schema<T>): ArraySchema<T>;
|