shelving 1.236.0 → 1.236.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/cache/APICache.d.ts +69 -6
- package/api/cache/APICache.js +61 -5
- package/api/cache/EndpointCache.d.ts +75 -7
- package/api/cache/EndpointCache.js +75 -7
- package/api/endpoint/Endpoint.d.ts +141 -25
- package/api/endpoint/Endpoint.js +55 -9
- package/api/endpoint/util.d.ts +28 -6
- package/api/provider/APIProvider.d.ts +58 -14
- package/api/provider/APIProvider.js +24 -2
- package/api/provider/CachedAPIProvider.d.ts +58 -5
- package/api/provider/CachedAPIProvider.js +58 -6
- package/api/provider/ClientAPIProvider.d.ts +80 -4
- package/api/provider/ClientAPIProvider.js +75 -4
- package/api/provider/DebugAPIProvider.d.ts +40 -1
- package/api/provider/DebugAPIProvider.js +40 -1
- package/api/provider/JSONAPIProvider.d.ts +18 -2
- package/api/provider/JSONAPIProvider.js +18 -2
- package/api/provider/LoggingAPIProvider.d.ts +25 -2
- package/api/provider/LoggingAPIProvider.js +25 -2
- package/api/provider/MockAPIProvider.d.ts +72 -1
- package/api/provider/MockAPIProvider.js +60 -4
- package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
- package/api/provider/MockEndpointAPIProvider.js +9 -0
- package/api/provider/ThroughAPIProvider.d.ts +67 -1
- package/api/provider/ThroughAPIProvider.js +67 -1
- package/api/provider/ValidationAPIProvider.d.ts +32 -1
- package/api/provider/ValidationAPIProvider.js +32 -1
- package/api/provider/XMLAPIProvider.d.ts +18 -2
- package/api/provider/XMLAPIProvider.js +18 -2
- package/api/store/EndpointStore.d.ts +24 -1
- package/api/store/EndpointStore.js +24 -1
- package/bun/BunPostgreSQLProvider.d.ts +38 -0
- package/bun/BunPostgreSQLProvider.js +38 -2
- package/cloudflare/CloudflareD1Provider.d.ts +29 -2
- package/cloudflare/CloudflareD1Provider.js +29 -2
- package/cloudflare/CloudflareKVProvider.d.ts +115 -0
- package/cloudflare/CloudflareKVProvider.js +115 -0
- package/cloudflare/types.d.ts +41 -7
- package/db/cache/CollectionCache.d.ts +83 -7
- package/db/cache/CollectionCache.js +83 -7
- package/db/cache/DBCache.d.ts +93 -8
- package/db/cache/DBCache.js +85 -7
- package/db/collection/Collection.d.ts +103 -15
- package/db/collection/Collection.js +58 -6
- package/db/migrate/DBMigrator.d.ts +29 -1
- package/db/migrate/DBMigrator.js +20 -1
- package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
- package/db/migrate/PostgreSQLMigrator.js +8 -1
- package/db/migrate/SQLMigrator.d.ts +63 -4
- package/db/migrate/SQLMigrator.js +51 -1
- package/db/migrate/SQLiteMigrator.d.ts +8 -1
- package/db/migrate/SQLiteMigrator.js +8 -1
- package/db/provider/CacheDBProvider.d.ts +135 -1
- package/db/provider/CacheDBProvider.js +135 -1
- package/db/provider/ChangesDBProvider.d.ts +84 -3
- package/db/provider/ChangesDBProvider.js +77 -2
- package/db/provider/DBProvider.d.ts +148 -1
- package/db/provider/DBProvider.js +51 -1
- package/db/provider/DebugDBProvider.d.ts +118 -1
- package/db/provider/DebugDBProvider.js +118 -1
- package/db/provider/MemoryDBProvider.d.ts +262 -7
- package/db/provider/MemoryDBProvider.js +262 -7
- package/db/provider/MockDBProvider.d.ts +113 -2
- package/db/provider/MockDBProvider.js +106 -1
- package/db/provider/PostgreSQLProvider.d.ts +34 -2
- package/db/provider/PostgreSQLProvider.js +34 -4
- package/db/provider/SQLProvider.d.ts +250 -14
- package/db/provider/SQLProvider.js +237 -13
- package/db/provider/SQLiteProvider.d.ts +41 -1
- package/db/provider/SQLiteProvider.js +41 -4
- package/db/provider/ThroughDBProvider.d.ts +156 -1
- package/db/provider/ThroughDBProvider.js +156 -1
- package/db/provider/ValidationDBProvider.d.ts +120 -1
- package/db/provider/ValidationDBProvider.js +120 -1
- package/db/store/ItemStore.d.ts +38 -2
- package/db/store/ItemStore.js +38 -2
- package/db/store/QueryStore.d.ts +64 -6
- package/db/store/QueryStore.js +64 -6
- package/error/BaseError.d.ts +27 -2
- package/error/BaseError.js +14 -0
- package/error/Errors.d.ts +12 -1
- package/error/Errors.js +12 -1
- package/error/NetworkError.d.ts +13 -1
- package/error/NetworkError.js +13 -1
- package/error/RequestError.d.ts +90 -7
- package/error/RequestError.js +90 -7
- package/error/RequiredError.d.ts +11 -1
- package/error/RequiredError.js +11 -1
- package/error/ResponseError.d.ts +19 -2
- package/error/ResponseError.js +19 -2
- package/error/UnexpectedError.d.ts +14 -1
- package/error/UnexpectedError.js +14 -1
- package/error/UnimplementedError.d.ts +13 -1
- package/error/UnimplementedError.js +13 -1
- package/error/ValueError.d.ts +14 -1
- package/error/ValueError.js +14 -1
- package/extract/DirectoryExtractor.d.ts +35 -1
- package/extract/DirectoryExtractor.js +30 -0
- package/extract/Extractor.d.ts +21 -2
- package/extract/Extractor.js +7 -1
- package/extract/FileExtractor.d.ts +18 -0
- package/extract/FileExtractor.js +18 -0
- package/extract/IndexExtractor.d.ts +36 -1
- package/extract/IndexExtractor.js +31 -0
- package/extract/MarkupExtractor.d.ts +15 -0
- package/extract/MarkupExtractor.js +15 -0
- package/extract/MergingExtractor.d.ts +36 -1
- package/extract/MergingExtractor.js +31 -0
- package/extract/ModuleExtractor.d.ts +25 -1
- package/extract/ModuleExtractor.js +20 -0
- package/extract/PackageExtractor.d.ts +36 -1
- package/extract/PackageExtractor.js +31 -0
- package/extract/ThroughExtractor.d.ts +22 -1
- package/extract/ThroughExtractor.js +22 -1
- package/extract/TypescriptExtractor.d.ts +21 -0
- package/extract/TypescriptExtractor.js +28 -3
- package/firestore/client/FirestoreClientProvider.d.ts +129 -4
- package/firestore/client/FirestoreClientProvider.js +129 -4
- package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
- package/firestore/lite/FirestoreLiteProvider.js +128 -3
- package/firestore/server/FirestoreServerProvider.d.ts +129 -2
- package/firestore/server/FirestoreServerProvider.js +129 -2
- package/markup/MarkupParser.d.ts +57 -10
- package/markup/MarkupParser.js +50 -9
- package/markup/MarkupRule.d.ts +34 -1
- package/markup/Parser.d.ts +18 -0
- package/markup/Parser.js +11 -0
- package/markup/rule/blockquote.d.ts +3 -0
- package/markup/rule/blockquote.js +3 -0
- package/markup/rule/code.d.ts +3 -0
- package/markup/rule/code.js +3 -0
- package/markup/rule/fenced.d.ts +3 -0
- package/markup/rule/fenced.js +3 -0
- package/markup/rule/heading.d.ts +3 -0
- package/markup/rule/heading.js +3 -0
- package/markup/rule/index.d.ts +16 -3
- package/markup/rule/index.js +16 -3
- package/markup/rule/inline.d.ts +4 -1
- package/markup/rule/inline.js +5 -2
- package/markup/rule/linebreak.d.ts +3 -0
- package/markup/rule/linebreak.js +3 -0
- package/markup/rule/link.d.ts +6 -0
- package/markup/rule/link.js +6 -0
- package/markup/rule/ordered.d.ts +3 -0
- package/markup/rule/ordered.js +3 -0
- package/markup/rule/paragraph.d.ts +3 -0
- package/markup/rule/paragraph.js +3 -0
- package/markup/rule/separator.d.ts +3 -0
- package/markup/rule/separator.js +3 -0
- package/markup/rule/table.d.ts +3 -0
- package/markup/rule/table.js +3 -0
- package/markup/rule/unordered.d.ts +3 -0
- package/markup/rule/unordered.js +3 -0
- package/markup/util/regexp.d.ts +80 -3
- package/markup/util/regexp.js +44 -0
- package/package.json +1 -1
- package/react/createAPIContext.d.ts +15 -0
- package/react/createAPIContext.js +10 -0
- package/react/createDBContext.d.ts +15 -0
- package/react/createDBContext.js +10 -0
- package/react/useInstance.d.ts +11 -0
- package/react/useInstance.js +11 -0
- package/react/useLazy.d.ts +11 -0
- package/react/useMap.d.ts +14 -1
- package/react/useMap.js +14 -1
- package/react/useReduce.d.ts +12 -0
- package/react/useSequence.d.ts +10 -0
- package/react/useSequence.js +10 -0
- package/react/useStore.d.ts +16 -1
- package/schema/AddressSchema.d.ts +41 -4
- package/schema/AddressSchema.js +36 -3
- package/schema/ArraySchema.d.ts +48 -6
- package/schema/ArraySchema.js +40 -5
- package/schema/BooleanSchema.d.ts +59 -3
- package/schema/BooleanSchema.js +51 -2
- package/schema/ChoiceSchema.d.ts +61 -7
- package/schema/ChoiceSchema.js +44 -2
- package/schema/ColorSchema.d.ts +41 -8
- package/schema/ColorSchema.js +36 -7
- package/schema/CountrySchema.d.ts +44 -4
- package/schema/CountrySchema.js +39 -3
- package/schema/CurrencyAmountSchema.d.ts +104 -8
- package/schema/CurrencyAmountSchema.js +91 -4
- package/schema/CurrencyCodeSchema.d.ts +56 -4
- package/schema/CurrencyCodeSchema.js +49 -3
- package/schema/DataSchema.d.ts +101 -10
- package/schema/DataSchema.js +87 -8
- package/schema/DateSchema.d.ts +73 -4
- package/schema/DateSchema.js +57 -2
- package/schema/DateTimeSchema.d.ts +40 -3
- package/schema/DateTimeSchema.js +40 -3
- package/schema/DictionarySchema.d.ts +54 -4
- package/schema/DictionarySchema.js +47 -3
- package/schema/EmailSchema.d.ts +34 -3
- package/schema/EmailSchema.js +34 -3
- package/schema/EntitySchema.d.ts +45 -4
- package/schema/EntitySchema.js +38 -3
- package/schema/FileSchema.d.ts +45 -4
- package/schema/FileSchema.js +39 -3
- package/schema/KeySchema.d.ts +32 -3
- package/schema/KeySchema.js +32 -3
- package/schema/NullableSchema.d.ts +64 -4
- package/schema/NullableSchema.js +59 -3
- package/schema/NumberSchema.d.ts +137 -12
- package/schema/NumberSchema.js +127 -11
- package/schema/OptionalSchema.d.ts +61 -4
- package/schema/OptionalSchema.js +56 -4
- package/schema/PasswordSchema.d.ts +37 -1
- package/schema/PasswordSchema.js +32 -1
- package/schema/PhoneSchema.d.ts +40 -4
- package/schema/PhoneSchema.js +35 -3
- package/schema/RequiredSchema.d.ts +39 -3
- package/schema/RequiredSchema.js +41 -3
- package/schema/Schema.d.ts +67 -7
- package/schema/Schema.js +42 -6
- package/schema/SlugSchema.d.ts +37 -5
- package/schema/SlugSchema.js +37 -5
- package/schema/StringSchema.d.ts +124 -19
- package/schema/StringSchema.js +107 -17
- package/schema/ThroughSchema.d.ts +35 -2
- package/schema/ThroughSchema.js +30 -1
- package/schema/TimeSchema.d.ts +43 -3
- package/schema/TimeSchema.js +43 -3
- package/schema/URISchema.d.ts +67 -6
- package/schema/URISchema.js +60 -6
- package/schema/URLSchema.d.ts +69 -6
- package/schema/URLSchema.js +61 -6
- package/schema/UUIDSchema.d.ts +37 -4
- package/schema/UUIDSchema.js +37 -4
- package/sequence/DeferredSequence.d.ts +49 -3
- package/sequence/DeferredSequence.js +39 -3
- package/sequence/InspectSequence.d.ts +59 -5
- package/sequence/InspectSequence.js +59 -5
- package/sequence/LazySequence.d.ts +30 -2
- package/sequence/LazySequence.js +30 -2
- package/sequence/Sequence.d.ts +11 -0
- package/sequence/Sequence.js +10 -0
- package/sequence/ThroughSequence.d.ts +15 -0
- package/sequence/ThroughSequence.js +15 -0
- package/store/ArrayStore.d.ts +74 -11
- package/store/ArrayStore.js +74 -11
- package/store/BooleanStore.d.ts +19 -2
- package/store/BooleanStore.js +19 -2
- package/store/BusyStore.d.ts +13 -1
- package/store/BusyStore.js +13 -1
- package/store/DataStore.d.ts +118 -15
- package/store/DataStore.js +118 -15
- package/store/DictionaryStore.d.ts +66 -8
- package/store/DictionaryStore.js +66 -8
- package/store/FetchStore.d.ts +43 -6
- package/store/FetchStore.js +36 -5
- package/store/PathStore.d.ts +44 -5
- package/store/PathStore.js +44 -5
- package/store/PayloadFetchStore.d.ts +16 -1
- package/store/PayloadFetchStore.js +9 -1
- package/store/Store.d.ts +85 -16
- package/store/Store.js +52 -10
- package/store/URLStore.d.ts +173 -15
- package/store/URLStore.js +173 -15
- package/test/basics.d.ts +70 -0
- package/test/basics.js +60 -0
- package/test/people.d.ts +45 -0
- package/test/people.js +35 -0
- package/test/util.d.ts +30 -3
- package/test/util.js +30 -3
- package/ui/app/App.d.ts +14 -2
- package/ui/app/App.js +9 -2
- package/ui/app/App.tsx +14 -2
- package/ui/block/Address.d.ts +45 -3
- package/ui/block/Address.js +30 -3
- package/ui/block/Address.tsx +46 -3
- package/ui/block/Block.d.ts +23 -1
- package/ui/block/Block.js +13 -1
- package/ui/block/Block.tsx +23 -1
- package/ui/block/Blockquote.d.ts +21 -0
- package/ui/block/Blockquote.js +16 -0
- package/ui/block/Blockquote.tsx +22 -0
- package/ui/block/Caption.d.ts +21 -1
- package/ui/block/Caption.js +16 -1
- package/ui/block/Caption.tsx +22 -1
- package/ui/block/Card.d.ts +6 -0
- package/ui/block/Card.js +1 -0
- package/ui/block/Card.tsx +6 -0
- package/ui/block/Definitions.d.ts +18 -0
- package/ui/block/Definitions.js +13 -0
- package/ui/block/Definitions.tsx +19 -0
- package/ui/block/Divider.d.ts +21 -0
- package/ui/block/Divider.js +16 -0
- package/ui/block/Divider.tsx +22 -0
- package/ui/block/Heading.d.ts +20 -1
- package/ui/block/Heading.js +15 -0
- package/ui/block/Heading.tsx +21 -1
- package/ui/block/Image.d.ts +23 -0
- package/ui/block/Image.js +18 -0
- package/ui/block/Image.tsx +24 -0
- package/ui/block/Label.d.ts +18 -3
- package/ui/block/Label.js +13 -3
- package/ui/block/Label.tsx +18 -3
- package/ui/block/List.d.ts +30 -0
- package/ui/block/List.js +25 -0
- package/ui/block/List.tsx +32 -0
- package/ui/block/Panel.d.ts +13 -1
- package/ui/block/Panel.js +3 -0
- package/ui/block/Panel.tsx +13 -1
- package/ui/block/Paragraph.d.ts +23 -0
- package/ui/block/Paragraph.js +18 -0
- package/ui/block/Paragraph.tsx +24 -0
- package/ui/block/Preformatted.d.ts +20 -0
- package/ui/block/Preformatted.js +15 -0
- package/ui/block/Preformatted.tsx +21 -0
- package/ui/block/Prose.d.ts +14 -1
- package/ui/block/Prose.js +9 -1
- package/ui/block/Prose.tsx +14 -1
- package/ui/block/Section.d.ts +69 -6
- package/ui/block/Section.js +59 -6
- package/ui/block/Section.tsx +70 -6
- package/ui/block/Subheading.d.ts +20 -1
- package/ui/block/Subheading.js +15 -0
- package/ui/block/Subheading.tsx +21 -1
- package/ui/block/Table.d.ts +20 -0
- package/ui/block/Table.js +15 -0
- package/ui/block/Table.tsx +21 -0
- package/ui/block/Title.d.ts +20 -1
- package/ui/block/Title.js +15 -0
- package/ui/block/Title.tsx +21 -1
- package/ui/block/Video.d.ts +50 -3
- package/ui/block/Video.js +30 -3
- package/ui/block/Video.tsx +50 -3
- package/ui/dialog/Dialog.d.ts +28 -1
- package/ui/dialog/Dialog.js +18 -1
- package/ui/dialog/Dialog.tsx +28 -1
- package/ui/dialog/Dialogs.d.ts +53 -6
- package/ui/dialog/Dialogs.js +43 -6
- package/ui/dialog/Dialogs.tsx +53 -6
- package/ui/dialog/Modal.d.ts +13 -0
- package/ui/dialog/Modal.js +8 -0
- package/ui/dialog/Modal.tsx +13 -0
- package/ui/docs/DocumentationButtons.d.ts +5 -1
- package/ui/docs/DocumentationButtons.tsx +5 -1
- package/ui/docs/DocumentationCard.d.ts +6 -1
- package/ui/docs/DocumentationCard.js +6 -1
- package/ui/docs/DocumentationCard.tsx +6 -1
- package/ui/docs/DocumentationKind.d.ts +13 -1
- package/ui/docs/DocumentationKind.js +8 -0
- package/ui/docs/DocumentationKind.tsx +13 -1
- package/ui/docs/DocumentationPage.d.ts +6 -1
- package/ui/docs/DocumentationPage.js +6 -1
- package/ui/docs/DocumentationPage.tsx +6 -1
- package/ui/docs/DocumentationSignatures.d.ts +10 -1
- package/ui/docs/DocumentationSignatures.js +5 -0
- package/ui/docs/DocumentationSignatures.tsx +10 -1
- package/ui/form/ArrayInput.d.ts +15 -0
- package/ui/form/ArrayInput.tsx +15 -0
- package/ui/form/ArrayRadioInputs.d.ts +10 -0
- package/ui/form/ArrayRadioInputs.js +5 -0
- package/ui/form/ArrayRadioInputs.tsx +10 -0
- package/ui/form/Button.d.ts +19 -3
- package/ui/form/Button.js +14 -2
- package/ui/form/Button.tsx +19 -3
- package/ui/form/ButtonInput.d.ts +14 -1
- package/ui/form/ButtonInput.js +9 -1
- package/ui/form/ButtonInput.tsx +14 -1
- package/ui/form/ButtonInputPopover.d.ts +10 -0
- package/ui/form/ButtonInputPopover.js +5 -0
- package/ui/form/ButtonInputPopover.tsx +10 -0
- package/ui/form/ButtonPopover.d.ts +11 -1
- package/ui/form/ButtonPopover.js +6 -1
- package/ui/form/ButtonPopover.tsx +11 -1
- package/ui/form/CheckboxInput.d.ts +14 -1
- package/ui/form/CheckboxInput.js +9 -1
- package/ui/form/CheckboxInput.tsx +14 -1
- package/ui/form/ChoiceRadioInputs.d.ts +10 -0
- package/ui/form/ChoiceRadioInputs.tsx +10 -0
- package/ui/form/Clickable.d.ts +45 -5
- package/ui/form/Clickable.js +30 -3
- package/ui/form/Clickable.tsx +45 -5
- package/ui/form/DataInput.d.ts +14 -0
- package/ui/form/DataInput.tsx +14 -0
- package/ui/form/DateInput.d.ts +14 -0
- package/ui/form/DateInput.js +9 -0
- package/ui/form/DateInput.tsx +14 -0
- package/ui/form/DictionaryInput.d.ts +15 -0
- package/ui/form/DictionaryInput.tsx +15 -0
- package/ui/form/Field.d.ts +5 -0
- package/ui/form/Field.tsx +5 -0
- package/ui/form/FileInput.d.ts +14 -0
- package/ui/form/FileInput.js +9 -0
- package/ui/form/FileInput.tsx +14 -0
- package/ui/form/Form.d.ts +55 -6
- package/ui/form/Form.js +35 -3
- package/ui/form/Form.tsx +55 -6
- package/ui/form/FormContext.d.ts +24 -3
- package/ui/form/FormContext.js +5 -1
- package/ui/form/FormContext.tsx +24 -3
- package/ui/form/FormFields.d.ts +15 -2
- package/ui/form/FormFields.js +15 -2
- package/ui/form/FormFields.tsx +15 -2
- package/ui/form/FormFooter.d.ts +13 -3
- package/ui/form/FormFooter.js +8 -3
- package/ui/form/FormFooter.tsx +13 -3
- package/ui/form/FormInput.d.ts +21 -2
- package/ui/form/FormInput.js +16 -2
- package/ui/form/FormInput.tsx +21 -2
- package/ui/form/FormMessage.d.ts +8 -1
- package/ui/form/FormMessage.js +8 -1
- package/ui/form/FormMessage.tsx +8 -2
- package/ui/form/FormNotice.d.ts +8 -1
- package/ui/form/FormNotice.js +8 -1
- package/ui/form/FormNotice.tsx +8 -2
- package/ui/form/FormNotify.d.ts +8 -1
- package/ui/form/FormNotify.js +8 -1
- package/ui/form/FormNotify.tsx +8 -2
- package/ui/form/FormStore.d.ts +50 -6
- package/ui/form/FormStore.js +50 -6
- package/ui/form/FormStore.tsx +50 -6
- package/ui/form/Input.d.ts +65 -1
- package/ui/form/Input.js +60 -0
- package/ui/form/Input.tsx +77 -1
- package/ui/form/NumberInput.d.ts +14 -0
- package/ui/form/NumberInput.js +9 -0
- package/ui/form/NumberInput.tsx +14 -0
- package/ui/form/OutputInput.d.ts +13 -1
- package/ui/form/OutputInput.js +8 -1
- package/ui/form/OutputInput.tsx +13 -1
- package/ui/form/Popover.d.ts +18 -2
- package/ui/form/Popover.js +8 -2
- package/ui/form/Popover.tsx +18 -2
- package/ui/form/Progress.d.ts +26 -2
- package/ui/form/Progress.js +16 -2
- package/ui/form/Progress.tsx +26 -2
- package/ui/form/QueryInput.d.ts +14 -5
- package/ui/form/QueryInput.js +9 -5
- package/ui/form/QueryInput.tsx +14 -5
- package/ui/form/RadioInput.d.ts +14 -1
- package/ui/form/RadioInput.js +9 -1
- package/ui/form/RadioInput.tsx +14 -1
- package/ui/form/SchemaInput.d.ts +138 -7
- package/ui/form/SchemaInput.js +79 -4
- package/ui/form/SchemaInput.tsx +138 -7
- package/ui/form/SelectInput.d.ts +14 -0
- package/ui/form/SelectInput.tsx +14 -0
- package/ui/form/SubmitButton.d.ts +14 -1
- package/ui/form/SubmitButton.js +9 -1
- package/ui/form/SubmitButton.tsx +14 -1
- package/ui/form/TextInput.d.ts +15 -0
- package/ui/form/TextInput.js +10 -0
- package/ui/form/TextInput.tsx +15 -0
- package/ui/inline/Code.d.ts +29 -0
- package/ui/inline/Code.js +24 -0
- package/ui/inline/Code.tsx +31 -0
- package/ui/inline/Deleted.d.ts +23 -0
- package/ui/inline/Deleted.js +18 -0
- package/ui/inline/Deleted.tsx +24 -0
- package/ui/inline/Emphasis.d.ts +23 -0
- package/ui/inline/Emphasis.js +18 -0
- package/ui/inline/Emphasis.tsx +24 -0
- package/ui/inline/Inserted.d.ts +23 -0
- package/ui/inline/Inserted.js +18 -0
- package/ui/inline/Inserted.tsx +24 -0
- package/ui/inline/Link.d.ts +23 -0
- package/ui/inline/Link.js +18 -0
- package/ui/inline/Link.tsx +24 -0
- package/ui/inline/Mark.d.ts +23 -0
- package/ui/inline/Mark.js +18 -0
- package/ui/inline/Mark.tsx +24 -0
- package/ui/inline/Small.d.ts +23 -0
- package/ui/inline/Small.js +18 -0
- package/ui/inline/Small.tsx +24 -0
- package/ui/inline/Strong.d.ts +23 -0
- package/ui/inline/Strong.js +18 -0
- package/ui/inline/Strong.tsx +24 -0
- package/ui/inline/Subscript.d.ts +23 -0
- package/ui/inline/Subscript.js +18 -0
- package/ui/inline/Subscript.tsx +24 -0
- package/ui/inline/Superscript.d.ts +23 -0
- package/ui/inline/Superscript.js +18 -0
- package/ui/inline/Superscript.tsx +24 -0
- package/ui/inline/When.d.ts +42 -3
- package/ui/inline/When.js +27 -3
- package/ui/inline/When.tsx +42 -3
- package/ui/layout/CenteredLayout.d.ts +12 -1
- package/ui/layout/CenteredLayout.js +7 -1
- package/ui/layout/CenteredLayout.tsx +12 -1
- package/ui/layout/Layout.d.ts +12 -3
- package/ui/layout/Layout.js +12 -3
- package/ui/layout/Layout.ts +12 -3
- package/ui/layout/SidebarLayout.d.ts +12 -0
- package/ui/layout/SidebarLayout.js +7 -0
- package/ui/layout/SidebarLayout.tsx +12 -0
- package/ui/menu/Menu.d.ts +22 -0
- package/ui/menu/Menu.js +12 -0
- package/ui/menu/Menu.tsx +22 -0
- package/ui/misc/Catcher.d.ts +77 -5
- package/ui/misc/Catcher.js +47 -5
- package/ui/misc/Catcher.tsx +77 -5
- package/ui/misc/Loading.d.ts +20 -0
- package/ui/misc/Loading.js +15 -0
- package/ui/misc/Loading.tsx +20 -0
- package/ui/misc/Mapper.d.ts +13 -1
- package/ui/misc/Mapper.js +4 -0
- package/ui/misc/Mapper.tsx +13 -1
- package/ui/misc/Markup.d.ts +9 -1
- package/ui/misc/Markup.js +4 -0
- package/ui/misc/Markup.tsx +9 -1
- package/ui/misc/MetaContext.d.ts +24 -7
- package/ui/misc/MetaContext.js +19 -6
- package/ui/misc/MetaContext.tsx +24 -7
- package/ui/misc/StatusIcon.d.ts +16 -1
- package/ui/misc/StatusIcon.js +11 -1
- package/ui/misc/StatusIcon.tsx +16 -1
- package/ui/misc/Tag.d.ts +21 -0
- package/ui/misc/Tag.js +11 -0
- package/ui/misc/Tag.tsx +21 -0
- package/ui/notice/Message.d.ts +27 -1
- package/ui/notice/Message.js +22 -1
- package/ui/notice/Message.tsx +27 -1
- package/ui/notice/Notice.d.ts +24 -0
- package/ui/notice/Notice.js +19 -0
- package/ui/notice/Notice.tsx +24 -0
- package/ui/notice/NoticeStore.d.ts +30 -2
- package/ui/notice/NoticeStore.js +30 -2
- package/ui/notice/NoticeStore.ts +30 -2
- package/ui/notice/Notices.d.ts +11 -1
- package/ui/notice/Notices.js +6 -1
- package/ui/notice/Notices.tsx +11 -1
- package/ui/notice/NoticesStore.d.ts +23 -3
- package/ui/notice/NoticesStore.js +23 -3
- package/ui/notice/NoticesStore.ts +23 -3
- package/ui/page/HTML.d.ts +13 -2
- package/ui/page/HTML.js +8 -2
- package/ui/page/HTML.tsx +13 -2
- package/ui/page/Head.d.ts +5 -1
- package/ui/page/Head.js +5 -1
- package/ui/page/Head.tsx +5 -1
- package/ui/page/Page.d.ts +12 -1
- package/ui/page/Page.js +7 -1
- package/ui/page/Page.tsx +12 -1
- package/ui/router/Navigation.d.ts +11 -0
- package/ui/router/Navigation.js +6 -0
- package/ui/router/Navigation.tsx +11 -0
- package/ui/router/NavigationContext.d.ts +14 -2
- package/ui/router/NavigationContext.js +14 -2
- package/ui/router/NavigationContext.tsx +14 -2
- package/ui/router/NavigationStore.d.ts +29 -1
- package/ui/router/NavigationStore.js +29 -1
- package/ui/router/NavigationStore.tsx +29 -1
- package/ui/router/Router.d.ts +12 -1
- package/ui/router/Router.js +7 -1
- package/ui/router/Router.tsx +12 -1
- package/ui/router/Routes.d.ts +14 -4
- package/ui/router/Routes.tsx +14 -4
- package/ui/style/Color.d.ts +15 -2
- package/ui/style/Color.js +5 -0
- package/ui/style/Color.tsx +15 -2
- package/ui/style/Flex.d.ts +41 -4
- package/ui/style/Flex.js +26 -3
- package/ui/style/Flex.tsx +41 -4
- package/ui/style/Gap.d.ts +18 -3
- package/ui/style/Gap.js +8 -1
- package/ui/style/Gap.tsx +18 -3
- package/ui/style/Padding.d.ts +18 -3
- package/ui/style/Padding.js +8 -1
- package/ui/style/Padding.tsx +18 -3
- package/ui/style/Scroll.d.ts +36 -1
- package/ui/style/Scroll.js +26 -1
- package/ui/style/Scroll.tsx +37 -1
- package/ui/style/Space.d.ts +18 -3
- package/ui/style/Space.js +8 -1
- package/ui/style/Space.tsx +18 -3
- package/ui/style/Status.d.ts +23 -7
- package/ui/style/Status.js +13 -5
- package/ui/style/Status.tsx +23 -7
- package/ui/style/Tint.d.ts +7 -1
- package/ui/style/Tint.js +7 -1
- package/ui/style/Tint.tsx +7 -1
- package/ui/style/Typography.d.ts +38 -6
- package/ui/style/Typography.js +8 -0
- package/ui/style/Typography.tsx +38 -6
- package/ui/style/Width.d.ts +18 -1
- package/ui/style/Width.js +8 -0
- package/ui/style/Width.tsx +18 -1
- package/ui/transition/CollapseTransition.d.ts +13 -0
- package/ui/transition/CollapseTransition.js +8 -0
- package/ui/transition/CollapseTransition.tsx +13 -0
- package/ui/transition/FadeTransition.d.ts +13 -0
- package/ui/transition/FadeTransition.js +8 -0
- package/ui/transition/FadeTransition.tsx +13 -0
- package/ui/transition/HorizontalTransition.d.ts +13 -0
- package/ui/transition/HorizontalTransition.js +8 -0
- package/ui/transition/HorizontalTransition.tsx +13 -0
- package/ui/transition/Transition.d.ts +12 -4
- package/ui/transition/Transition.js +7 -3
- package/ui/transition/Transition.tsx +12 -4
- package/ui/transition/VerticalTransition.d.ts +13 -0
- package/ui/transition/VerticalTransition.js +8 -0
- package/ui/transition/VerticalTransition.tsx +13 -0
- package/ui/transition/util.d.ts +16 -6
- package/ui/transition/util.js +7 -1
- package/ui/transition/util.tsx +16 -6
- package/ui/tree/TreeApp.d.ts +11 -0
- package/ui/tree/TreeApp.js +6 -0
- package/ui/tree/TreeApp.tsx +11 -0
- package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
- package/ui/tree/TreeBreadcrumbs.js +6 -0
- package/ui/tree/TreeBreadcrumbs.tsx +11 -0
- package/ui/tree/TreeButton.d.ts +9 -1
- package/ui/tree/TreeButton.js +4 -0
- package/ui/tree/TreeButton.tsx +9 -1
- package/ui/tree/TreeCard.d.ts +8 -1
- package/ui/tree/TreeCard.js +8 -1
- package/ui/tree/TreeCard.tsx +8 -1
- package/ui/tree/TreeCards.d.ts +16 -1
- package/ui/tree/TreeCards.js +11 -1
- package/ui/tree/TreeCards.tsx +16 -1
- package/ui/tree/TreeContext.d.ts +18 -1
- package/ui/tree/TreeContext.js +18 -1
- package/ui/tree/TreeContext.tsx +18 -1
- package/ui/tree/TreeMenu.d.ts +28 -1
- package/ui/tree/TreeMenu.js +23 -1
- package/ui/tree/TreeMenu.tsx +28 -1
- package/ui/tree/TreePage.d.ts +6 -0
- package/ui/tree/TreePage.js +6 -0
- package/ui/tree/TreePage.tsx +6 -0
- package/ui/tree/TreeRouter.d.ts +17 -2
- package/ui/tree/TreeRouter.js +12 -2
- package/ui/tree/TreeRouter.tsx +17 -2
- package/ui/tree/TreeSidebar.d.ts +11 -0
- package/ui/tree/TreeSidebar.js +6 -0
- package/ui/tree/TreeSidebar.tsx +11 -0
- package/ui/util/context.d.ts +13 -1
- package/ui/util/context.ts +13 -1
- package/ui/util/css.d.ts +17 -4
- package/ui/util/css.js +5 -1
- package/ui/util/css.ts +17 -4
- package/ui/util/event.d.ts +9 -1
- package/ui/util/event.js +9 -1
- package/ui/util/event.ts +9 -1
- package/ui/util/focus.d.ts +24 -5
- package/ui/util/focus.js +24 -5
- package/ui/util/focus.ts +24 -5
- package/ui/util/meta.d.ts +113 -21
- package/ui/util/meta.js +73 -13
- package/ui/util/meta.ts +113 -21
- package/ui/util/notice.d.ts +98 -10
- package/ui/util/notice.js +93 -9
- package/ui/util/notice.ts +98 -10
- package/ui/util/props.d.ts +10 -2
- package/ui/util/props.ts +10 -2
- package/ui/util/refresh.d.ts +10 -1
- package/ui/util/refresh.js +10 -1
- package/ui/util/refresh.ts +10 -1
- package/ui/util/scroll.d.ts +20 -4
- package/ui/util/scroll.js +20 -4
- package/ui/util/scroll.ts +20 -4
- package/ui/util/state.d.ts +19 -5
- package/ui/util/state.js +19 -5
- package/ui/util/state.ts +19 -5
- package/util/ansi.d.ts +118 -0
- package/util/ansi.js +116 -0
- package/util/array.d.ts +349 -33
- package/util/array.js +284 -27
- package/util/async.d.ts +87 -9
- package/util/async.js +80 -8
- package/util/base64.d.ts +56 -6
- package/util/base64.js +56 -6
- package/util/boolean.d.ts +75 -10
- package/util/boolean.js +75 -10
- package/util/buffer.d.ts +26 -3
- package/util/buffer.js +21 -3
- package/util/bytes.d.ts +42 -4
- package/util/bytes.js +32 -2
- package/util/class.d.ts +59 -8
- package/util/class.js +44 -5
- package/util/color.d.ts +131 -13
- package/util/color.js +126 -12
- package/util/constants.d.ts +132 -19
- package/util/constants.js +132 -19
- package/util/crypto.d.ts +17 -1
- package/util/crypto.js +17 -1
- package/util/currency.d.ts +38 -4
- package/util/currency.js +33 -3
- package/util/data.d.ts +139 -24
- package/util/data.js +39 -5
- package/util/date.d.ts +152 -18
- package/util/date.js +147 -17
- package/util/debug.d.ts +112 -11
- package/util/debug.js +114 -11
- package/util/dictionary.d.ts +205 -24
- package/util/dictionary.js +162 -17
- package/util/diff.d.ts +22 -3
- package/util/diff.js +11 -1
- package/util/dispose.d.ts +74 -2
- package/util/dispose.js +74 -2
- package/util/duration.d.ts +278 -16
- package/util/duration.js +267 -15
- package/util/element.d.ts +59 -6
- package/util/element.js +32 -3
- package/util/entity.d.ts +39 -6
- package/util/entity.js +5 -1
- package/util/entry.d.ts +56 -9
- package/util/entry.js +32 -4
- package/util/env.d.ts +26 -4
- package/util/env.js +26 -4
- package/util/equal.d.ts +181 -17
- package/util/equal.js +181 -17
- package/util/error.d.ts +57 -5
- package/util/error.js +52 -4
- package/util/file.d.ts +30 -7
- package/util/file.js +25 -6
- package/util/filter.d.ts +36 -4
- package/util/filter.js +31 -3
- package/util/focus.d.ts +9 -1
- package/util/focus.js +9 -1
- package/util/format.d.ts +186 -22
- package/util/format.js +135 -14
- package/util/function.d.ts +66 -11
- package/util/function.js +31 -4
- package/util/geo.d.ts +60 -8
- package/util/geo.js +45 -5
- package/util/hash.d.ts +21 -2
- package/util/hash.js +21 -2
- package/util/http.d.ts +134 -19
- package/util/http.js +94 -11
- package/util/hydrate.d.ts +19 -2
- package/util/hydrate.js +12 -1
- package/util/item.d.ts +70 -11
- package/util/item.js +35 -4
- package/util/iterate.d.ts +109 -13
- package/util/iterate.js +86 -10
- package/util/jwt.d.ts +47 -13
- package/util/jwt.js +36 -12
- package/util/lazy.d.ts +9 -6
- package/util/link.d.ts +10 -3
- package/util/link.js +5 -2
- package/util/log.d.ts +26 -3
- package/util/log.js +26 -3
- package/util/map.d.ts +144 -19
- package/util/map.js +101 -11
- package/util/merge.d.ts +23 -1
- package/util/merge.js +6 -0
- package/util/null.d.ts +102 -13
- package/util/null.js +92 -11
- package/util/number.d.ts +125 -8
- package/util/number.js +120 -7
- package/util/object.d.ts +263 -31
- package/util/object.js +154 -17
- package/util/path.d.ts +91 -15
- package/util/path.js +60 -9
- package/util/query.d.ts +78 -9
- package/util/query.js +58 -6
- package/util/random.d.ts +67 -4
- package/util/random.js +67 -4
- package/util/regexp.d.ts +201 -24
- package/util/regexp.js +106 -11
- package/util/sequence.d.ts +66 -8
- package/util/sequence.js +52 -7
- package/util/serialise.d.ts +7 -1
- package/util/serialise.js +7 -1
- package/util/set.d.ts +103 -13
- package/util/set.js +83 -9
- package/util/sort.d.ts +32 -7
- package/util/sort.js +26 -6
- package/util/source.d.ts +28 -3
- package/util/source.js +22 -2
- package/util/start.d.ts +62 -5
- package/util/start.js +47 -2
- package/util/string.d.ts +209 -25
- package/util/string.js +188 -21
- package/util/template.d.ts +58 -9
- package/util/template.js +45 -6
- package/util/timeout.d.ts +35 -11
- package/util/timeout.js +35 -11
- package/util/transform.d.ts +87 -8
- package/util/transform.js +75 -7
- package/util/tree.d.ts +39 -6
- package/util/tree.js +3 -0
- package/util/types.d.ts +8 -2
- package/util/undefined.d.ts +47 -6
- package/util/undefined.js +47 -6
- package/util/units.d.ts +107 -12
- package/util/units.js +97 -12
- package/util/update.d.ts +36 -4
- package/util/update.js +24 -2
- package/util/uri.d.ts +138 -6
- package/util/uri.js +44 -3
- package/util/url.d.ts +152 -7
- package/util/url.js +136 -5
- package/util/uuid.d.ts +28 -3
- package/util/uuid.js +28 -3
- package/util/validate.d.ts +85 -20
- package/util/validate.js +61 -12
- package/util/xml.d.ts +9 -10
- package/util/xml.js +9 -10
package/util/random.js
CHANGED
|
@@ -1,9 +1,37 @@
|
|
|
1
1
|
import { requireDefined } from "./undefined.js";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Generate a random integer between two numbers (inclusive).
|
|
4
|
+
*
|
|
5
|
+
* @param min Lowest possible integer to return — defaults to `Number.MIN_SAFE_INTEGER`.
|
|
6
|
+
* @param max Highest possible integer to return — defaults to `Number.MAX_SAFE_INTEGER`.
|
|
7
|
+
* @returns Random integer in the range `min` to `max` (inclusive).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const dice = getRandom(1, 6); // e.g. `4`
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/util/random/getRandom
|
|
15
|
+
*/
|
|
3
16
|
export function getRandom(min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {
|
|
4
17
|
return Math.round(Math.random() * (max - min) + min);
|
|
5
18
|
}
|
|
6
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Get a random integer that is anything except an existing number.
|
|
21
|
+
* - Repeatedly draws a random integer until it differs from `existing`.
|
|
22
|
+
*
|
|
23
|
+
* @param existing Number that must not be returned.
|
|
24
|
+
* @param min Lowest possible integer to return — defaults to `Number.MIN_SAFE_INTEGER`.
|
|
25
|
+
* @param max Highest possible integer to return — defaults to `Number.MAX_SAFE_INTEGER`.
|
|
26
|
+
* @returns Random integer in the range `min` to `max` that is not equal to `existing`.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const next = getRandomExcept(current, 1, 6); // any of `1`–`6` except `current`
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @see https://dhoulb.github.io/shelving/util/random/getRandomExcept
|
|
34
|
+
*/
|
|
7
35
|
export function getRandomExcept(existing, min, max) {
|
|
8
36
|
let num;
|
|
9
37
|
do
|
|
@@ -16,6 +44,16 @@ export function getRandomExcept(existing, min, max) {
|
|
|
16
44
|
* - Not designed to be cryptographically random!
|
|
17
45
|
* - Will probably clash — if you're making a random ID, check for existence of the record before saving.
|
|
18
46
|
* - Designed to be semi-readable, doesn't use capital letters or `i` or `o` or `l` or `u`
|
|
47
|
+
*
|
|
48
|
+
* @param length Number of characters in the returned key — defaults to `12`.
|
|
49
|
+
* @returns Random string of `length` lowercase alphanumeric characters.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const id = getRandomKey(); // e.g. `xs23r34hhsdx`
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @see https://dhoulb.github.io/shelving/util/random/getRandomKey
|
|
19
57
|
*/
|
|
20
58
|
export function getRandomKey(length = 12) {
|
|
21
59
|
return Array.from({ length }, getRandomKeyCharacter).join("");
|
|
@@ -24,11 +62,36 @@ const KEY_CHARS = "0123456789abcdefghjkmnpqrstvwxyz";
|
|
|
24
62
|
function getRandomKeyCharacter() {
|
|
25
63
|
return getRandomCharacter(KEY_CHARS);
|
|
26
64
|
}
|
|
27
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Get a random character from a string.
|
|
67
|
+
*
|
|
68
|
+
* @param str String to pick a character from.
|
|
69
|
+
* @returns Single character chosen at random from `str`.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* const letter = getRandomCharacter("abcde"); // e.g. `"c"`
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @see https://dhoulb.github.io/shelving/util/random/getRandomCharacter
|
|
77
|
+
*/
|
|
28
78
|
export function getRandomCharacter(str) {
|
|
29
79
|
return str[getRandom(0, str.length - 1)];
|
|
30
80
|
}
|
|
31
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* Get a random item from an array.
|
|
83
|
+
*
|
|
84
|
+
* @param arr Array to pick an item from.
|
|
85
|
+
* @returns Single item chosen at random from `arr`.
|
|
86
|
+
* @throws RequiredError If the chosen item is undefined (e.g. the array is empty).
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* const item = getRandomItem(["a", "b", "c"]); // e.g. `"b"`
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @see https://dhoulb.github.io/shelving/util/random/getRandomItem
|
|
94
|
+
*/
|
|
32
95
|
export function getRandomItem(arr) {
|
|
33
96
|
return requireDefined(arr[getRandom(0, arr.length - 1)]);
|
|
34
97
|
}
|
package/util/regexp.d.ts
CHANGED
|
@@ -1,48 +1,150 @@
|
|
|
1
1
|
import { type ImmutableArray } from "./array.js";
|
|
2
2
|
import { type Nullish } from "./null.js";
|
|
3
3
|
import type { NotString } from "./string.js";
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* A thing that a string can be matched against.
|
|
6
|
+
* - Either a `RegExp` instance, or a `string` that is matched using `===` equality.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/Matchable
|
|
9
|
+
*/
|
|
5
10
|
export type Matchable = string | RegExp;
|
|
6
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* A list of things that strings can be matched against.
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/Matchables
|
|
15
|
+
*/
|
|
7
16
|
export type Matchables = ImmutableArray<Nullish<Matchable>>;
|
|
8
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Regular expression that always matches everything.
|
|
19
|
+
*
|
|
20
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/ALWAYS_REGEXP
|
|
21
|
+
*/
|
|
9
22
|
export declare const ALWAYS_REGEXP: RegExp;
|
|
10
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Regular expression that never matches anything.
|
|
25
|
+
*
|
|
26
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/NEVER_REGEXP
|
|
27
|
+
*/
|
|
11
28
|
export declare const NEVER_REGEXP: RegExp;
|
|
12
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Things that can be converted to a regular expression.
|
|
31
|
+
* - Either a `RegExp` instance, or a `string` source for a regular expression.
|
|
32
|
+
*
|
|
33
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/PossibleRegExp
|
|
34
|
+
*/
|
|
13
35
|
export type PossibleRegExp = string | RegExp;
|
|
14
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Is an unknown value a `RegExp` instance?
|
|
38
|
+
*
|
|
39
|
+
* @param value The value to test.
|
|
40
|
+
* @returns `true` if `value` is a `RegExp` instance, narrowing its type.
|
|
41
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/isRegExp
|
|
42
|
+
*/
|
|
15
43
|
export declare function isRegExp(value: unknown): value is RegExp;
|
|
16
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Assert that an unknown value is a `RegExp` instance.
|
|
46
|
+
*
|
|
47
|
+
* @param value The value to assert.
|
|
48
|
+
* @throws {RequiredError} If `value` is not a `RegExp` instance.
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/assertRegExp
|
|
50
|
+
*/
|
|
17
51
|
export declare function assertRegExp(value: unknown): asserts value is RegExp;
|
|
18
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Convert a possible regular expression into a `RegExp` instance.
|
|
54
|
+
* - If `pattern` is a `string` a new `RegExp` is created from it, otherwise it is returned as-is.
|
|
55
|
+
*
|
|
56
|
+
* @param pattern The regular expression or string source to convert.
|
|
57
|
+
* @param flags The flags to use when creating a `RegExp` from a string source.
|
|
58
|
+
* @returns The corresponding `RegExp` instance.
|
|
59
|
+
* @example
|
|
60
|
+
* getRegExp("abc", "i"); // /abc/i
|
|
61
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/getRegExp
|
|
62
|
+
*/
|
|
19
63
|
export declare function getRegExp<T extends NamedRegExpData>(pattern: NamedRegExp<T>, flags?: string): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
|
20
64
|
export declare function getRegExp<T extends NamedRegExpData | undefined = undefined>(pattern: PossibleRegExp, flags?: string): T extends NamedRegExpData ? NamedRegExp<T> : RegExp;
|
|
21
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Convert a regular expression to its string source.
|
|
67
|
+
* - If `regexp` is a `string` it is returned as-is, otherwise its `.source` is returned.
|
|
68
|
+
*
|
|
69
|
+
* @param regexp The regular expression or string source to read.
|
|
70
|
+
* @returns The string source of the regular expression.
|
|
71
|
+
* @example
|
|
72
|
+
* getRegExpSource(/abc/); // "abc"
|
|
73
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/getRegExpSource
|
|
74
|
+
*/
|
|
22
75
|
export declare function getRegExpSource(regexp: PossibleRegExp): string;
|
|
23
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Escape special characters in a string regular expression.
|
|
78
|
+
* - Escapes any characters that have special meaning in a regular expression so the string matches literally.
|
|
79
|
+
*
|
|
80
|
+
* @param pattern The string to escape.
|
|
81
|
+
* @returns The escaped string, safe to use as a literal regular expression source.
|
|
82
|
+
* @example
|
|
83
|
+
* escapeRegExp("a.b"); // "a\\.b"
|
|
84
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/escapeRegExp
|
|
85
|
+
*/
|
|
24
86
|
export declare function escapeRegExp(pattern: string): string;
|
|
25
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* Create a regular expression that matches any one of a list of other expressions.
|
|
89
|
+
* - If the list is empty the returned expression matches nothing (`NEVER_REGEXP`).
|
|
90
|
+
*
|
|
91
|
+
* @param patterns The regular expressions or string sources to combine.
|
|
92
|
+
* @param flags The flags to use when creating the combined `RegExp`.
|
|
93
|
+
* @returns A `RegExp` that matches if any of the provided expressions match.
|
|
94
|
+
* @example
|
|
95
|
+
* createRegExpAny(["abc", "def"]); // /(?:abc)|(?:def)/
|
|
96
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAny
|
|
97
|
+
*/
|
|
26
98
|
export declare function createRegExpAny(patterns: Iterable<PossibleRegExp> & NotString, flags?: string): RegExp;
|
|
27
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* Create a regular expression that matches all of a list of other expressions.
|
|
101
|
+
* - If the list is empty the returned expression matches everything (`ALWAYS_REGEXP`).
|
|
102
|
+
*
|
|
103
|
+
* @param patterns The regular expressions or string sources to combine.
|
|
104
|
+
* @param flags The flags to use when creating the combined `RegExp`.
|
|
105
|
+
* @returns A `RegExp` that matches only if all of the provided expressions match.
|
|
106
|
+
* @example
|
|
107
|
+
* createRegExpAll(["abc", "def"]); // /^(?=.*?(?:abc))(?=.*?(?:def))/
|
|
108
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAll
|
|
109
|
+
*/
|
|
28
110
|
export declare function createRegExpAll(patterns: Iterable<PossibleRegExp> & NotString, flags?: string): RegExp;
|
|
29
|
-
/**
|
|
111
|
+
/**
|
|
112
|
+
* Regular expression match array whose full match is a specific string format.
|
|
113
|
+
*
|
|
114
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/TypedRegExpExecArray
|
|
115
|
+
*/
|
|
30
116
|
export interface TypedRegExpExecArray<T extends string = string> extends RegExpExecArray {
|
|
31
117
|
0: T;
|
|
32
118
|
}
|
|
33
|
-
/**
|
|
119
|
+
/**
|
|
120
|
+
* Regular expression that matches a specific string format.
|
|
121
|
+
*
|
|
122
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/TypedRegExp
|
|
123
|
+
*/
|
|
34
124
|
export interface TypedRegExp<T extends string = string> extends RegExp {
|
|
35
125
|
exec(input: string): TypedRegExpExecArray<T> | null;
|
|
36
126
|
}
|
|
37
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Set of named match groups from a regular expression.
|
|
129
|
+
*
|
|
130
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/NamedRegExpData
|
|
131
|
+
*/
|
|
38
132
|
export type NamedRegExpData = {
|
|
39
133
|
[named: string]: string;
|
|
40
134
|
};
|
|
41
|
-
/**
|
|
135
|
+
/**
|
|
136
|
+
* Regular expression match array that contains the specified named groups.
|
|
137
|
+
*
|
|
138
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/NamedRegExpExecArray
|
|
139
|
+
*/
|
|
42
140
|
export interface NamedRegExpExecArray<T extends NamedRegExpData = NamedRegExpData> extends RegExpExecArray {
|
|
43
141
|
groups: T;
|
|
44
142
|
}
|
|
45
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* Regular expression that contains the specified named capture groups.
|
|
145
|
+
*
|
|
146
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/NamedRegExp
|
|
147
|
+
*/
|
|
46
148
|
export interface NamedRegExp<T extends NamedRegExpData = NamedRegExpData> extends RegExp {
|
|
47
149
|
exec(input: string): NamedRegExpExecArray<T> | null;
|
|
48
150
|
}
|
|
@@ -55,6 +157,9 @@ export interface NamedRegExp<T extends NamedRegExpData = NamedRegExpData> extend
|
|
|
55
157
|
* - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
56
158
|
* - If `regexp` is a `string` it is simply tested against the string using `===` equality.
|
|
57
159
|
* @returns `true` if the string matches the regular expression, otherwise `false`.
|
|
160
|
+
* @example
|
|
161
|
+
* isMatch("abc", /b/); // true
|
|
162
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/isMatch
|
|
58
163
|
*/
|
|
59
164
|
export declare function isMatch(str: string, regexp: Matchable): boolean;
|
|
60
165
|
/**
|
|
@@ -65,34 +170,106 @@ export declare function isMatch(str: string, regexp: Matchable): boolean;
|
|
|
65
170
|
* @param regexp Regular expression to test against the string.
|
|
66
171
|
* - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
67
172
|
* - If `regexp` is a `string` it is simply tested against the string using `!==` equality.
|
|
68
|
-
* @returns `true` if the string
|
|
173
|
+
* @returns `true` if the string does not match the regular expression, otherwise `false`.
|
|
174
|
+
* @example
|
|
175
|
+
* notMatch("abc", /z/); // true
|
|
176
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/notMatch
|
|
69
177
|
*/
|
|
70
178
|
export declare function notMatch(str: string, regexp: Matchable): boolean;
|
|
71
179
|
/**
|
|
72
180
|
* All of the provided regular expressions match the string.
|
|
73
181
|
*
|
|
182
|
+
* @param str String to test against the regular expressions.
|
|
74
183
|
* @param regexps - Regular expressions to match against the string.
|
|
75
184
|
* - If empty the function returns `true` (since all zero of the provided regexps match everything).
|
|
76
185
|
* - If a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
77
186
|
* - If a `string` it is simply tested against the string using `===` equality.
|
|
78
187
|
* - If `null` or `undefined` it is ignored.
|
|
188
|
+
* @returns `true` if every provided regular expression matches the string, otherwise `false`.
|
|
189
|
+
* @example
|
|
190
|
+
* allMatch("abc", /a/, /b/); // true
|
|
191
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/allMatch
|
|
79
192
|
*/
|
|
80
193
|
export declare function allMatch(str: string, ...regexps: Matchables): boolean;
|
|
81
|
-
/**
|
|
194
|
+
/**
|
|
195
|
+
* At least one of the provided regular expressions matches the string.
|
|
196
|
+
*
|
|
197
|
+
* @param str String to test against the regular expressions.
|
|
198
|
+
* @param regexps - Regular expressions to match against the string.
|
|
199
|
+
* - If empty the function returns `false` (since none of zero provided regexps can match).
|
|
200
|
+
* - If a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
201
|
+
* - If a `string` it is simply tested against the string using `===` equality.
|
|
202
|
+
* - If `null` or `undefined` it is ignored.
|
|
203
|
+
* @returns `true` if at least one provided regular expression matches the string, otherwise `false`.
|
|
204
|
+
* @example
|
|
205
|
+
* anyMatch("abc", /z/, /b/); // true
|
|
206
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/anyMatch
|
|
207
|
+
*/
|
|
82
208
|
export declare function anyMatch(str: string, ...regexps: Matchables): boolean;
|
|
83
|
-
/**
|
|
209
|
+
/**
|
|
210
|
+
* None of the provided regular expressions match the string.
|
|
211
|
+
*
|
|
212
|
+
* @param str String to test against the regular expressions.
|
|
213
|
+
* @param regexps - Regular expressions to match against the string.
|
|
214
|
+
* - If empty the function returns `false` (since the empty list of regexps matches everything).
|
|
215
|
+
* - If a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
216
|
+
* - If a `string` it is simply tested against the string using `===` equality.
|
|
217
|
+
* - If `null` or `undefined` it is ignored.
|
|
218
|
+
* @returns `true` if none of the provided regular expressions match the string, otherwise `false`.
|
|
219
|
+
* @example
|
|
220
|
+
* noneMatch("abc", /x/, /y/); // true
|
|
221
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/noneMatch
|
|
222
|
+
*/
|
|
84
223
|
export declare function noneMatch(str: string, ...regexps: Matchables): boolean;
|
|
85
|
-
/**
|
|
224
|
+
/**
|
|
225
|
+
* Get an optional regular expression match, or `undefined` if no match could be made.
|
|
226
|
+
*
|
|
227
|
+
* @param str String to match against the regular expression.
|
|
228
|
+
* @param regexp Regular expression to match against the string.
|
|
229
|
+
* @returns The match array, or `undefined` if the string did not match.
|
|
230
|
+
* @example
|
|
231
|
+
* getMatch("abc", /b/); // ["b"]
|
|
232
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/getMatch
|
|
233
|
+
*/
|
|
86
234
|
export declare function getMatch<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): NamedRegExpExecArray<T> | undefined;
|
|
87
235
|
export declare function getMatch<T extends string>(str: string, regexp: TypedRegExp<T>): TypedRegExpExecArray<T> | undefined;
|
|
88
236
|
export declare function getMatch(str: string, regexp: RegExp): RegExpExecArray | undefined;
|
|
89
|
-
/**
|
|
237
|
+
/**
|
|
238
|
+
* Get a required regular expression match, or throw `ValueError` if no match could be made.
|
|
239
|
+
*
|
|
240
|
+
* @param str String to match against the regular expression.
|
|
241
|
+
* @param regexp Regular expression to match against the string.
|
|
242
|
+
* @returns The match array.
|
|
243
|
+
* @throws {ValueError} If the string did not match the regular expression.
|
|
244
|
+
* @example
|
|
245
|
+
* requireMatch("abc", /b/); // ["b"]
|
|
246
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/requireMatch
|
|
247
|
+
*/
|
|
90
248
|
export declare function requireMatch<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): NamedRegExpExecArray<T>;
|
|
91
249
|
export declare function requireMatch<T extends string>(str: string, regexp: TypedRegExp<T>): TypedRegExpExecArray<T>;
|
|
92
250
|
export declare function requireMatch(str: string, regexp: RegExp): RegExpExecArray;
|
|
93
|
-
/**
|
|
251
|
+
/**
|
|
252
|
+
* Get the named groups of an optional regular expression match, or `undefined` if no match could be made.
|
|
253
|
+
*
|
|
254
|
+
* @param str String to match against the regular expression.
|
|
255
|
+
* @param regexp Regular expression to match against the string.
|
|
256
|
+
* @returns The set of named match groups, or `undefined` if the string did not match.
|
|
257
|
+
* @example
|
|
258
|
+
* getMatchGroups("abc", /(?<first>a)/); // { first: "a" }
|
|
259
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/getMatchGroups
|
|
260
|
+
*/
|
|
94
261
|
export declare function getMatchGroups<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): T | undefined;
|
|
95
262
|
export declare function getMatchGroups(str: string, regexp: RegExp): NamedRegExpData | undefined;
|
|
96
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* Get the named groups of a required regular expression match, or throw `ValueError` if no match could be made.
|
|
265
|
+
*
|
|
266
|
+
* @param str String to match against the regular expression.
|
|
267
|
+
* @param regexp Regular expression to match against the string.
|
|
268
|
+
* @returns The set of named match groups.
|
|
269
|
+
* @throws {ValueError} If the string did not match the regular expression.
|
|
270
|
+
* @example
|
|
271
|
+
* requireMatchGroups("abc", /(?<first>a)/); // { first: "a" }
|
|
272
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/requireMatchGroups
|
|
273
|
+
*/
|
|
97
274
|
export declare function requireMatchGroups<T extends NamedRegExpData>(str: string, regexp: NamedRegExp<T>): T;
|
|
98
275
|
export declare function requireMatchGroups(str: string, regexp: RegExp): NamedRegExpData;
|
package/util/regexp.js
CHANGED
|
@@ -2,15 +2,35 @@ import { RequiredError } from "../error/RequiredError.js";
|
|
|
2
2
|
import { ValueError } from "../error/ValueError.js";
|
|
3
3
|
import { requireArray } from "./array.js";
|
|
4
4
|
import { isNullish } from "./null.js";
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Regular expression that always matches everything.
|
|
7
|
+
*
|
|
8
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/ALWAYS_REGEXP
|
|
9
|
+
*/
|
|
6
10
|
export const ALWAYS_REGEXP = /^.*$/;
|
|
7
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Regular expression that never matches anything.
|
|
13
|
+
*
|
|
14
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/NEVER_REGEXP
|
|
15
|
+
*/
|
|
8
16
|
export const NEVER_REGEXP = /^(?=a)a/;
|
|
9
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Is an unknown value a `RegExp` instance?
|
|
19
|
+
*
|
|
20
|
+
* @param value The value to test.
|
|
21
|
+
* @returns `true` if `value` is a `RegExp` instance, narrowing its type.
|
|
22
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/isRegExp
|
|
23
|
+
*/
|
|
10
24
|
export function isRegExp(value) {
|
|
11
25
|
return value instanceof RegExp;
|
|
12
26
|
}
|
|
13
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* Assert that an unknown value is a `RegExp` instance.
|
|
29
|
+
*
|
|
30
|
+
* @param value The value to assert.
|
|
31
|
+
* @throws {RequiredError} If `value` is not a `RegExp` instance.
|
|
32
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/assertRegExp
|
|
33
|
+
*/
|
|
14
34
|
export function assertRegExp(value) {
|
|
15
35
|
if (!(value instanceof RegExp))
|
|
16
36
|
throw new RequiredError("Must be regular expression", { received: value, caller: assertRegExp });
|
|
@@ -18,16 +38,44 @@ export function assertRegExp(value) {
|
|
|
18
38
|
export function getRegExp(pattern, flags) {
|
|
19
39
|
return typeof pattern === "string" ? new RegExp(pattern, flags) : pattern;
|
|
20
40
|
}
|
|
21
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Convert a regular expression to its string source.
|
|
43
|
+
* - If `regexp` is a `string` it is returned as-is, otherwise its `.source` is returned.
|
|
44
|
+
*
|
|
45
|
+
* @param regexp The regular expression or string source to read.
|
|
46
|
+
* @returns The string source of the regular expression.
|
|
47
|
+
* @example
|
|
48
|
+
* getRegExpSource(/abc/); // "abc"
|
|
49
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/getRegExpSource
|
|
50
|
+
*/
|
|
22
51
|
export function getRegExpSource(regexp) {
|
|
23
52
|
return typeof regexp === "string" ? regexp : regexp.source;
|
|
24
53
|
}
|
|
25
|
-
/**
|
|
54
|
+
/**
|
|
55
|
+
* Escape special characters in a string regular expression.
|
|
56
|
+
* - Escapes any characters that have special meaning in a regular expression so the string matches literally.
|
|
57
|
+
*
|
|
58
|
+
* @param pattern The string to escape.
|
|
59
|
+
* @returns The escaped string, safe to use as a literal regular expression source.
|
|
60
|
+
* @example
|
|
61
|
+
* escapeRegExp("a.b"); // "a\\.b"
|
|
62
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/escapeRegExp
|
|
63
|
+
*/
|
|
26
64
|
export function escapeRegExp(pattern) {
|
|
27
65
|
return pattern.replace(REPLACE_ESCAPED, "\\$&");
|
|
28
66
|
}
|
|
29
67
|
const REPLACE_ESCAPED = /[-[\]/{}()*+?.\\^$|]/g;
|
|
30
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* Create a regular expression that matches any one of a list of other expressions.
|
|
70
|
+
* - If the list is empty the returned expression matches nothing (`NEVER_REGEXP`).
|
|
71
|
+
*
|
|
72
|
+
* @param patterns The regular expressions or string sources to combine.
|
|
73
|
+
* @param flags The flags to use when creating the combined `RegExp`.
|
|
74
|
+
* @returns A `RegExp` that matches if any of the provided expressions match.
|
|
75
|
+
* @example
|
|
76
|
+
* createRegExpAny(["abc", "def"]); // /(?:abc)|(?:def)/
|
|
77
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAny
|
|
78
|
+
*/
|
|
31
79
|
export function createRegExpAny(patterns, flags) {
|
|
32
80
|
const arr = requireArray(patterns).filter(Boolean);
|
|
33
81
|
// If there are no patterns to match against then _no_ string can ever match against any of nothing.
|
|
@@ -36,7 +84,17 @@ export function createRegExpAny(patterns, flags) {
|
|
|
36
84
|
// Create RegExp using multiple joined matches like `(?:AAA)|(?:BBB)`
|
|
37
85
|
return new RegExp(`(?:${requireArray(patterns).map(getRegExpSource).join(")|(?:")})`, flags);
|
|
38
86
|
}
|
|
39
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* Create a regular expression that matches all of a list of other expressions.
|
|
89
|
+
* - If the list is empty the returned expression matches everything (`ALWAYS_REGEXP`).
|
|
90
|
+
*
|
|
91
|
+
* @param patterns The regular expressions or string sources to combine.
|
|
92
|
+
* @param flags The flags to use when creating the combined `RegExp`.
|
|
93
|
+
* @returns A `RegExp` that matches only if all of the provided expressions match.
|
|
94
|
+
* @example
|
|
95
|
+
* createRegExpAll(["abc", "def"]); // /^(?=.*?(?:abc))(?=.*?(?:def))/
|
|
96
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/createRegExpAll
|
|
97
|
+
*/
|
|
40
98
|
export function createRegExpAll(patterns, flags) {
|
|
41
99
|
const arr = requireArray(patterns).filter(Boolean);
|
|
42
100
|
// If there are no patterns to match against then _every_ string will match against the entire list of nothing.
|
|
@@ -54,6 +112,9 @@ export function createRegExpAll(patterns, flags) {
|
|
|
54
112
|
* - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
55
113
|
* - If `regexp` is a `string` it is simply tested against the string using `===` equality.
|
|
56
114
|
* @returns `true` if the string matches the regular expression, otherwise `false`.
|
|
115
|
+
* @example
|
|
116
|
+
* isMatch("abc", /b/); // true
|
|
117
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/isMatch
|
|
57
118
|
*/
|
|
58
119
|
export function isMatch(str, regexp) {
|
|
59
120
|
return typeof regexp === "string" ? regexp === str : regexp.test(str);
|
|
@@ -66,7 +127,10 @@ export function isMatch(str, regexp) {
|
|
|
66
127
|
* @param regexp Regular expression to test against the string.
|
|
67
128
|
* - If `regexp` is a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
68
129
|
* - If `regexp` is a `string` it is simply tested against the string using `!==` equality.
|
|
69
|
-
* @returns `true` if the string
|
|
130
|
+
* @returns `true` if the string does not match the regular expression, otherwise `false`.
|
|
131
|
+
* @example
|
|
132
|
+
* notMatch("abc", /z/); // true
|
|
133
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/notMatch
|
|
70
134
|
*/
|
|
71
135
|
export function notMatch(str, regexp) {
|
|
72
136
|
return !isMatch(str, regexp);
|
|
@@ -74,11 +138,16 @@ export function notMatch(str, regexp) {
|
|
|
74
138
|
/**
|
|
75
139
|
* All of the provided regular expressions match the string.
|
|
76
140
|
*
|
|
141
|
+
* @param str String to test against the regular expressions.
|
|
77
142
|
* @param regexps - Regular expressions to match against the string.
|
|
78
143
|
* - If empty the function returns `true` (since all zero of the provided regexps match everything).
|
|
79
144
|
* - If a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
80
145
|
* - If a `string` it is simply tested against the string using `===` equality.
|
|
81
146
|
* - If `null` or `undefined` it is ignored.
|
|
147
|
+
* @returns `true` if every provided regular expression matches the string, otherwise `false`.
|
|
148
|
+
* @example
|
|
149
|
+
* allMatch("abc", /a/, /b/); // true
|
|
150
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/allMatch
|
|
82
151
|
*/
|
|
83
152
|
export function allMatch(str, ...regexps) {
|
|
84
153
|
for (const x of regexps) {
|
|
@@ -89,7 +158,20 @@ export function allMatch(str, ...regexps) {
|
|
|
89
158
|
}
|
|
90
159
|
return true;
|
|
91
160
|
}
|
|
92
|
-
/**
|
|
161
|
+
/**
|
|
162
|
+
* At least one of the provided regular expressions matches the string.
|
|
163
|
+
*
|
|
164
|
+
* @param str String to test against the regular expressions.
|
|
165
|
+
* @param regexps - Regular expressions to match against the string.
|
|
166
|
+
* - If empty the function returns `false` (since none of zero provided regexps can match).
|
|
167
|
+
* - If a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
168
|
+
* - If a `string` it is simply tested against the string using `===` equality.
|
|
169
|
+
* - If `null` or `undefined` it is ignored.
|
|
170
|
+
* @returns `true` if at least one provided regular expression matches the string, otherwise `false`.
|
|
171
|
+
* @example
|
|
172
|
+
* anyMatch("abc", /z/, /b/); // true
|
|
173
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/anyMatch
|
|
174
|
+
*/
|
|
93
175
|
export function anyMatch(str, ...regexps) {
|
|
94
176
|
for (const x of regexps) {
|
|
95
177
|
if (isNullish(x))
|
|
@@ -99,7 +181,20 @@ export function anyMatch(str, ...regexps) {
|
|
|
99
181
|
}
|
|
100
182
|
return false;
|
|
101
183
|
}
|
|
102
|
-
/**
|
|
184
|
+
/**
|
|
185
|
+
* None of the provided regular expressions match the string.
|
|
186
|
+
*
|
|
187
|
+
* @param str String to test against the regular expressions.
|
|
188
|
+
* @param regexps - Regular expressions to match against the string.
|
|
189
|
+
* - If empty the function returns `false` (since the empty list of regexps matches everything).
|
|
190
|
+
* - If a `RegExp` it is tested against the string using `RegExp.test()`.
|
|
191
|
+
* - If a `string` it is simply tested against the string using `===` equality.
|
|
192
|
+
* - If `null` or `undefined` it is ignored.
|
|
193
|
+
* @returns `true` if none of the provided regular expressions match the string, otherwise `false`.
|
|
194
|
+
* @example
|
|
195
|
+
* noneMatch("abc", /x/, /y/); // true
|
|
196
|
+
* @see https://dhoulb.github.io/shelving/util/regexp/noneMatch
|
|
197
|
+
*/
|
|
103
198
|
export function noneMatch(str, ...regexps) {
|
|
104
199
|
return !allMatch(str, ...regexps);
|
|
105
200
|
}
|