@nascentdigital/funnel-core 4.4.4
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/dist/app/AppConfig.d.ts +41 -0
- package/dist/app/AppConfig.js +93 -0
- package/dist/app/BrandConfig.d.ts +13 -0
- package/dist/app/BrandConfig.js +2 -0
- package/dist/app/FeaturesConfig.d.ts +6 -0
- package/dist/app/FeaturesConfig.js +2 -0
- package/dist/app/RegionsConfig.d.ts +43 -0
- package/dist/app/RegionsConfig.js +113 -0
- package/dist/app/UIConfig.d.ts +4 -0
- package/dist/app/UIConfig.js +2 -0
- package/dist/app/index.d.ts +5 -0
- package/dist/app/index.js +21 -0
- package/dist/consent/ConsentCategory.d.ts +12 -0
- package/dist/consent/ConsentCategory.js +28 -0
- package/dist/consent/ConsentService.d.ts +15 -0
- package/dist/consent/ConsentService.js +37 -0
- package/dist/consent/index.d.ts +2 -0
- package/dist/consent/index.js +18 -0
- package/dist/errors/IsometricError.d.ts +19 -0
- package/dist/errors/IsometricError.js +30 -0
- package/dist/errors/IsometricErrorModule.d.ts +11 -0
- package/dist/errors/IsometricErrorModule.js +2 -0
- package/dist/errors/IsometricErrorUtils.d.ts +9 -0
- package/dist/errors/IsometricErrorUtils.js +85 -0
- package/dist/errors/SerializedIsometricError.d.ts +10 -0
- package/dist/errors/SerializedIsometricError.js +15 -0
- package/dist/errors/api/ApiError.d.ts +15 -0
- package/dist/errors/api/ApiError.js +23 -0
- package/dist/errors/api/ApiErrors.d.ts +7 -0
- package/dist/errors/api/ApiErrors.js +67 -0
- package/dist/errors/api/ArgumentError.d.ts +7 -0
- package/dist/errors/api/ArgumentError.js +18 -0
- package/dist/errors/api/ConcurrencyError.d.ts +4 -0
- package/dist/errors/api/ConcurrencyError.js +11 -0
- package/dist/errors/api/ConflictError.d.ts +4 -0
- package/dist/errors/api/ConflictError.js +11 -0
- package/dist/errors/api/DependencyError.d.ts +4 -0
- package/dist/errors/api/DependencyError.js +11 -0
- package/dist/errors/api/IllegalStateError.d.ts +4 -0
- package/dist/errors/api/IllegalStateError.js +11 -0
- package/dist/errors/api/InvalidOperationError.d.ts +4 -0
- package/dist/errors/api/InvalidOperationError.js +11 -0
- package/dist/errors/api/NotAuthenticatedError.d.ts +4 -0
- package/dist/errors/api/NotAuthenticatedError.js +11 -0
- package/dist/errors/api/NotAuthorizedError.d.ts +4 -0
- package/dist/errors/api/NotAuthorizedError.js +11 -0
- package/dist/errors/api/NotAvailableError.d.ts +4 -0
- package/dist/errors/api/NotAvailableError.js +11 -0
- package/dist/errors/api/NotFoundError.d.ts +4 -0
- package/dist/errors/api/NotFoundError.js +11 -0
- package/dist/errors/api/NotImplementedError.d.ts +4 -0
- package/dist/errors/api/NotImplementedError.js +11 -0
- package/dist/errors/api/OfflineError.d.ts +4 -0
- package/dist/errors/api/OfflineError.js +11 -0
- package/dist/errors/api/RangeError.d.ts +4 -0
- package/dist/errors/api/RangeError.js +11 -0
- package/dist/errors/api/ServerError.d.ts +4 -0
- package/dist/errors/api/ServerError.js +11 -0
- package/dist/errors/api/TimeoutError.d.ts +4 -0
- package/dist/errors/api/TimeoutError.js +11 -0
- package/dist/errors/api/index.d.ts +16 -0
- package/dist/errors/api/index.js +32 -0
- package/dist/errors/index.d.ts +5 -0
- package/dist/errors/index.js +26 -0
- package/dist/forms/FormModel.d.ts +47 -0
- package/dist/forms/FormModel.js +149 -0
- package/dist/forms/Forms.d.ts +15 -0
- package/dist/forms/Forms.js +35 -0
- package/dist/forms/IFormService.d.ts +6 -0
- package/dist/forms/IFormService.js +2 -0
- package/dist/forms/TranslateSchema.d.ts +8 -0
- package/dist/forms/TranslateSchema.js +2 -0
- package/dist/forms/index.d.ts +4 -0
- package/dist/forms/index.js +20 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +49 -0
- package/dist/regionalization/Country.d.ts +266 -0
- package/dist/regionalization/Country.js +338 -0
- package/dist/regionalization/Language.d.ts +199 -0
- package/dist/regionalization/Language.js +237 -0
- package/dist/regionalization/Locale.d.ts +28 -0
- package/dist/regionalization/Locale.js +49 -0
- package/dist/regionalization/Localized.d.ts +10 -0
- package/dist/regionalization/Localized.js +36 -0
- package/dist/regionalization/LocalizedCopy.d.ts +9 -0
- package/dist/regionalization/LocalizedCopy.js +26 -0
- package/dist/regionalization/Regionalization.d.ts +50 -0
- package/dist/regionalization/Regionalization.js +260 -0
- package/dist/regionalization/Regions.d.ts +2 -0
- package/dist/regionalization/Regions.js +2 -0
- package/dist/regionalization/index.d.ts +7 -0
- package/dist/regionalization/index.js +23 -0
- package/dist/schema/Asset.d.ts +23 -0
- package/dist/schema/Asset.js +36 -0
- package/dist/schema/AssetScope.d.ts +75 -0
- package/dist/schema/AssetScope.js +146 -0
- package/dist/schema/Block.d.ts +105 -0
- package/dist/schema/Block.js +122 -0
- package/dist/schema/ChangeSet.d.ts +108 -0
- package/dist/schema/ChangeSet.js +187 -0
- package/dist/schema/Collection.d.ts +197 -0
- package/dist/schema/Collection.js +165 -0
- package/dist/schema/CollectionModel.d.ts +30 -0
- package/dist/schema/CollectionModel.js +383 -0
- package/dist/schema/CollectionSnapshot.d.ts +11 -0
- package/dist/schema/CollectionSnapshot.js +12 -0
- package/dist/schema/Fields.d.ts +31 -0
- package/dist/schema/Fields.js +21 -0
- package/dist/schema/Form.d.ts +31 -0
- package/dist/schema/Form.js +23 -0
- package/dist/schema/LinkedCollectionModel.d.ts +9 -0
- package/dist/schema/LinkedCollectionModel.js +19 -0
- package/dist/schema/LinkedData.d.ts +44 -0
- package/dist/schema/LinkedData.js +288 -0
- package/dist/schema/LinkedPageModel.d.ts +11 -0
- package/dist/schema/LinkedPageModel.js +26 -0
- package/dist/schema/Optional.d.ts +23 -0
- package/dist/schema/Optional.js +34 -0
- package/dist/schema/Page.d.ts +299 -0
- package/dist/schema/Page.js +244 -0
- package/dist/schema/PageModel.d.ts +58 -0
- package/dist/schema/PageModel.js +881 -0
- package/dist/schema/PageQuery.d.ts +60 -0
- package/dist/schema/PageQuery.js +116 -0
- package/dist/schema/PageRoute.d.ts +7 -0
- package/dist/schema/PageRoute.js +48 -0
- package/dist/schema/PageSnapshot.d.ts +11 -0
- package/dist/schema/PageSnapshot.js +12 -0
- package/dist/schema/Section.d.ts +71 -0
- package/dist/schema/Section.js +35 -0
- package/dist/schema/Seo.d.ts +13 -0
- package/dist/schema/Seo.js +25 -0
- package/dist/schema/Site.d.ts +40 -0
- package/dist/schema/Site.js +87 -0
- package/dist/schema/SiteModel.d.ts +5 -0
- package/dist/schema/SiteModel.js +10 -0
- package/dist/schema/Tag.d.ts +28 -0
- package/dist/schema/Tag.js +59 -0
- package/dist/schema/TagGroup.d.ts +26 -0
- package/dist/schema/TagGroup.js +64 -0
- package/dist/schema/field/Field.d.ts +179 -0
- package/dist/schema/field/Field.js +309 -0
- package/dist/schema/field/base/AssetField.d.ts +148 -0
- package/dist/schema/field/base/AssetField.js +206 -0
- package/dist/schema/field/base/BooleanField.d.ts +21 -0
- package/dist/schema/field/base/BooleanField.js +38 -0
- package/dist/schema/field/base/CollectionField.d.ts +34 -0
- package/dist/schema/field/base/CollectionField.js +85 -0
- package/dist/schema/field/base/DateField.d.ts +21 -0
- package/dist/schema/field/base/DateField.js +37 -0
- package/dist/schema/field/base/DynamicPagesField.d.ts +36 -0
- package/dist/schema/field/base/DynamicPagesField.js +50 -0
- package/dist/schema/field/base/EmbeddedVideoField.d.ts +45 -0
- package/dist/schema/field/base/EmbeddedVideoField.js +176 -0
- package/dist/schema/field/base/EnumField.d.ts +40 -0
- package/dist/schema/field/base/EnumField.js +131 -0
- package/dist/schema/field/base/FormField.d.ts +25 -0
- package/dist/schema/field/base/FormField.js +48 -0
- package/dist/schema/field/base/LinkField.d.ts +103 -0
- package/dist/schema/field/base/LinkField.js +201 -0
- package/dist/schema/field/base/PageField.d.ts +46 -0
- package/dist/schema/field/base/PageField.js +83 -0
- package/dist/schema/field/base/RichTextField.d.ts +71 -0
- package/dist/schema/field/base/RichTextField.js +196 -0
- package/dist/schema/field/base/TextField.d.ts +33 -0
- package/dist/schema/field/base/TextField.js +86 -0
- package/dist/schema/field/base/TimestampField.d.ts +25 -0
- package/dist/schema/field/base/TimestampField.js +41 -0
- package/dist/schema/field/base/index.d.ts +13 -0
- package/dist/schema/field/base/index.js +29 -0
- package/dist/schema/field/composite/ListField.d.ts +47 -0
- package/dist/schema/field/composite/ListField.js +107 -0
- package/dist/schema/field/composite/ObjectField.d.ts +56 -0
- package/dist/schema/field/composite/ObjectField.js +19 -0
- package/dist/schema/field/composite/index.d.ts +2 -0
- package/dist/schema/field/composite/index.js +18 -0
- package/dist/schema/field/index.d.ts +3 -0
- package/dist/schema/field/index.js +19 -0
- package/dist/schema/index.d.ts +25 -0
- package/dist/schema/index.js +41 -0
- package/dist/services/EventBus.d.ts +17 -0
- package/dist/services/EventBus.js +37 -0
- package/dist/services/humanVerification/IHumanVerification.d.ts +8 -0
- package/dist/services/humanVerification/IHumanVerification.js +2 -0
- package/dist/services/humanVerification/index.d.ts +1 -0
- package/dist/services/humanVerification/index.js +17 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.js +19 -0
- package/dist/services/leadGen/Contact.d.ts +40 -0
- package/dist/services/leadGen/Contact.js +38 -0
- package/dist/services/leadGen/ILeadGen.d.ts +16 -0
- package/dist/services/leadGen/ILeadGen.js +2 -0
- package/dist/services/leadGen/index.d.ts +2 -0
- package/dist/services/leadGen/index.js +18 -0
- package/dist/types/BoxedValue.d.ts +3 -0
- package/dist/types/BoxedValue.js +2 -0
- package/dist/types/Callback.d.ts +9 -0
- package/dist/types/Callback.js +2 -0
- package/dist/types/DateString.d.ts +35 -0
- package/dist/types/DateString.js +172 -0
- package/dist/types/FilterConditionally.d.ts +3 -0
- package/dist/types/FilterConditionally.js +2 -0
- package/dist/types/MaybeConditionalValue.d.ts +8 -0
- package/dist/types/MaybeConditionalValue.js +12 -0
- package/dist/types/Ordinal.d.ts +17 -0
- package/dist/types/Ordinal.js +38 -0
- package/dist/types/OverridableStringUnion.d.ts +2 -0
- package/dist/types/OverridableStringUnion.js +2 -0
- package/dist/types/PartialBy.d.ts +1 -0
- package/dist/types/PartialBy.js +2 -0
- package/dist/types/PickData.d.ts +6 -0
- package/dist/types/PickData.js +2 -0
- package/dist/types/Provider.d.ts +4 -0
- package/dist/types/Provider.js +2 -0
- package/dist/types/RequiredBy.d.ts +1 -0
- package/dist/types/RequiredBy.js +2 -0
- package/dist/types/Result.d.ts +16 -0
- package/dist/types/Result.js +2 -0
- package/dist/types/Timestamp.d.ts +17 -0
- package/dist/types/Timestamp.js +57 -0
- package/dist/types/Transform.d.ts +4 -0
- package/dist/types/Transform.js +2 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.js +30 -0
- package/dist/ui/Accessible.d.ts +5 -0
- package/dist/ui/Accessible.js +15 -0
- package/dist/ui/BlockThemes.d.ts +19 -0
- package/dist/ui/BlockThemes.js +29 -0
- package/dist/ui/ColorMode.d.ts +12 -0
- package/dist/ui/ColorMode.js +49 -0
- package/dist/ui/File.d.ts +43 -0
- package/dist/ui/File.js +55 -0
- package/dist/ui/FileType.d.ts +8 -0
- package/dist/ui/FileType.js +48 -0
- package/dist/ui/ImageSource.d.ts +12 -0
- package/dist/ui/ImageSource.js +48 -0
- package/dist/ui/MimeType.d.ts +28 -0
- package/dist/ui/MimeType.js +110 -0
- package/dist/ui/Placement.d.ts +21 -0
- package/dist/ui/Placement.js +135 -0
- package/dist/ui/Position.d.ts +6 -0
- package/dist/ui/Position.js +42 -0
- package/dist/ui/Selector.d.ts +6 -0
- package/dist/ui/Selector.js +23 -0
- package/dist/ui/SemanticColor.d.ts +8 -0
- package/dist/ui/SemanticColor.js +237 -0
- package/dist/ui/Visual.d.ts +24 -0
- package/dist/ui/Visual.js +66 -0
- package/dist/ui/block-layout/BlockLayout.d.ts +99 -0
- package/dist/ui/block-layout/BlockLayout.js +286 -0
- package/dist/ui/block-layout/index.d.ts +1 -0
- package/dist/ui/block-layout/index.js +17 -0
- package/dist/ui/browser/BlurHasher.d.ts +13 -0
- package/dist/ui/browser/BlurHasher.js +76 -0
- package/dist/ui/browser/Browser.d.ts +107 -0
- package/dist/ui/browser/Browser.js +313 -0
- package/dist/ui/browser/ImageProxy.d.ts +30 -0
- package/dist/ui/browser/ImageProxy.js +132 -0
- package/dist/ui/browser/InputEvent.d.ts +13 -0
- package/dist/ui/browser/InputEvent.js +2 -0
- package/dist/ui/browser/SVGProxy.d.ts +9 -0
- package/dist/ui/browser/SVGProxy.js +59 -0
- package/dist/ui/browser/VideoProxy.d.ts +42 -0
- package/dist/ui/browser/VideoProxy.js +235 -0
- package/dist/ui/browser/index.d.ts +6 -0
- package/dist/ui/browser/index.js +22 -0
- package/dist/ui/fields/Field.d.ts +80 -0
- package/dist/ui/fields/Field.js +298 -0
- package/dist/ui/fields/FieldList.d.ts +80 -0
- package/dist/ui/fields/FieldList.js +421 -0
- package/dist/ui/fields/FieldListValidator.d.ts +9 -0
- package/dist/ui/fields/FieldListValidator.js +37 -0
- package/dist/ui/fields/FieldModel.d.ts +15 -0
- package/dist/ui/fields/FieldModel.js +28 -0
- package/dist/ui/fields/FieldSerializer.d.ts +13 -0
- package/dist/ui/fields/FieldSerializer.js +71 -0
- package/dist/ui/fields/FieldValidator.d.ts +19 -0
- package/dist/ui/fields/FieldValidator.js +98 -0
- package/dist/ui/fields/ObjectField.d.ts +75 -0
- package/dist/ui/fields/ObjectField.js +288 -0
- package/dist/ui/fields/errors.json +44 -0
- package/dist/ui/fields/index.d.ts +7 -0
- package/dist/ui/fields/index.js +23 -0
- package/dist/ui/fields/validators/AssetValidator.d.ts +9 -0
- package/dist/ui/fields/validators/AssetValidator.js +25 -0
- package/dist/ui/fields/validators/DateValidator.d.ts +9 -0
- package/dist/ui/fields/validators/DateValidator.js +41 -0
- package/dist/ui/fields/validators/EnumValidator.d.ts +10 -0
- package/dist/ui/fields/validators/EnumValidator.js +77 -0
- package/dist/ui/fields/validators/GenericValidator.d.ts +6 -0
- package/dist/ui/fields/validators/GenericValidator.js +22 -0
- package/dist/ui/fields/validators/LinkValidator.d.ts +9 -0
- package/dist/ui/fields/validators/LinkValidator.js +146 -0
- package/dist/ui/fields/validators/RichTextValidator.d.ts +6 -0
- package/dist/ui/fields/validators/RichTextValidator.js +35 -0
- package/dist/ui/fields/validators/TextValidator.d.ts +10 -0
- package/dist/ui/fields/validators/TextValidator.js +138 -0
- package/dist/ui/fields/validators/TimestampValidator.d.ts +9 -0
- package/dist/ui/fields/validators/TimestampValidator.js +41 -0
- package/dist/ui/fields/validators/ValidatorHelper.d.ts +23 -0
- package/dist/ui/fields/validators/ValidatorHelper.js +55 -0
- package/dist/ui/fields/validators/index.d.ts +8 -0
- package/dist/ui/fields/validators/index.js +24 -0
- package/dist/ui/geometry/AspectRatio.d.ts +27 -0
- package/dist/ui/geometry/AspectRatio.js +77 -0
- package/dist/ui/geometry/Bounds.d.ts +4 -0
- package/dist/ui/geometry/Bounds.js +11 -0
- package/dist/ui/geometry/Frame.d.ts +3 -0
- package/dist/ui/geometry/Frame.js +2 -0
- package/dist/ui/geometry/Insets.d.ts +14 -0
- package/dist/ui/geometry/Insets.js +14 -0
- package/dist/ui/geometry/PixelSize.d.ts +1 -0
- package/dist/ui/geometry/PixelSize.js +2 -0
- package/dist/ui/geometry/Point.d.ts +7 -0
- package/dist/ui/geometry/Point.js +15 -0
- package/dist/ui/geometry/Rect.d.ts +19 -0
- package/dist/ui/geometry/Rect.js +68 -0
- package/dist/ui/geometry/ScreenSize.d.ts +1 -0
- package/dist/ui/geometry/ScreenSize.js +2 -0
- package/dist/ui/geometry/Size.d.ts +7 -0
- package/dist/ui/geometry/Size.js +9 -0
- package/dist/ui/geometry/index.d.ts +9 -0
- package/dist/ui/geometry/index.js +25 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.js +34 -0
- package/dist/ui/responsive/Breakpoint.d.ts +8 -0
- package/dist/ui/responsive/Breakpoint.js +24 -0
- package/dist/ui/responsive/BreakpointObserver.d.ts +16 -0
- package/dist/ui/responsive/BreakpointObserver.js +104 -0
- package/dist/ui/responsive/Breakpoints.d.ts +5 -0
- package/dist/ui/responsive/Breakpoints.js +15 -0
- package/dist/ui/responsive/ResponsiveValue.d.ts +7 -0
- package/dist/ui/responsive/ResponsiveValue.js +26 -0
- package/dist/ui/responsive/index.d.ts +4 -0
- package/dist/ui/responsive/index.js +20 -0
- package/dist/ui/richtext/LexicalUtils.d.ts +31 -0
- package/dist/ui/richtext/LexicalUtils.js +314 -0
- package/dist/ui/richtext/StyledTextNode.d.ts +33 -0
- package/dist/ui/richtext/StyledTextNode.js +101 -0
- package/dist/ui/richtext/index.d.ts +2 -0
- package/dist/ui/richtext/index.js +18 -0
- package/dist/utils/ArrayUtils.d.ts +17 -0
- package/dist/utils/ArrayUtils.js +66 -0
- package/dist/utils/ByteSize.d.ts +19 -0
- package/dist/utils/ByteSize.js +33 -0
- package/dist/utils/DateUtils.d.ts +15 -0
- package/dist/utils/DateUtils.js +100 -0
- package/dist/utils/Deferral.d.ts +28 -0
- package/dist/utils/Deferral.js +107 -0
- package/dist/utils/Duration.d.ts +7 -0
- package/dist/utils/Duration.js +35 -0
- package/dist/utils/Fn.d.ts +14 -0
- package/dist/utils/Fn.js +52 -0
- package/dist/utils/ObjectUtils.d.ts +89 -0
- package/dist/utils/ObjectUtils.js +159 -0
- package/dist/utils/Random.d.ts +15 -0
- package/dist/utils/Random.js +72 -0
- package/dist/utils/StringUtils.d.ts +10 -0
- package/dist/utils/StringUtils.js +51 -0
- package/dist/utils/UrlUtils.d.ts +22 -0
- package/dist/utils/UrlUtils.js +119 -0
- package/dist/utils/Value.d.ts +23 -0
- package/dist/utils/Value.js +122 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.js +28 -0
- package/dist/utils/isDefined.d.ts +1 -0
- package/dist/utils/isDefined.js +6 -0
- package/package.json +64 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Tagged } from 'type-fest';
|
|
2
|
+
import { Field } from './Field';
|
|
3
|
+
import { AssetValidator, DateValidator, EnumValidator, GenericValidator, LinkValidator, RichTextValidator, TextValidator, TimestampValidator } from './validators';
|
|
4
|
+
export type FieldValidator = TextValidator | RichTextValidator | EnumValidator | DateValidator | TimestampValidator | LinkValidator | AssetValidator | GenericValidator;
|
|
5
|
+
export declare namespace FieldValidator {
|
|
6
|
+
type Error = {
|
|
7
|
+
id: Error.Id;
|
|
8
|
+
critical: boolean;
|
|
9
|
+
visual: boolean;
|
|
10
|
+
message: string;
|
|
11
|
+
};
|
|
12
|
+
namespace Error {
|
|
13
|
+
type Id = Tagged<string, 'FieldValidator.Error'>;
|
|
14
|
+
type Level = 'none' | 'critical' | 'all';
|
|
15
|
+
function filter(error: Error, level: Level): boolean;
|
|
16
|
+
function mostRelevant(errors: ReadonlyArray<Error>): Error | undefined;
|
|
17
|
+
}
|
|
18
|
+
function create(field: Field): FieldValidator;
|
|
19
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FieldValidator = void 0;
|
|
37
|
+
const Schema = __importStar(require("../../schema"));
|
|
38
|
+
const validators_1 = require("./validators");
|
|
39
|
+
// extension
|
|
40
|
+
var FieldValidator;
|
|
41
|
+
(function (FieldValidator) {
|
|
42
|
+
let Error;
|
|
43
|
+
(function (Error) {
|
|
44
|
+
// helpers
|
|
45
|
+
function filter(error, level) {
|
|
46
|
+
switch (level) {
|
|
47
|
+
case 'none':
|
|
48
|
+
return false;
|
|
49
|
+
case 'critical':
|
|
50
|
+
return error.critical;
|
|
51
|
+
default:
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
Error.filter = filter;
|
|
56
|
+
function mostRelevant(errors) {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
// skip if there are no errors
|
|
59
|
+
if (errors.length === 0) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
// get required, empty, or fallback
|
|
63
|
+
return (_b = (_a = errors.find(error => error.id === 'required')) !== null && _a !== void 0 ? _a : errors.find(error => error.id === 'empty')) !== null && _b !== void 0 ? _b : errors[0];
|
|
64
|
+
}
|
|
65
|
+
Error.mostRelevant = mostRelevant;
|
|
66
|
+
})(Error = FieldValidator.Error || (FieldValidator.Error = {}));
|
|
67
|
+
// methods
|
|
68
|
+
function create(field) {
|
|
69
|
+
// create validator for each schema type
|
|
70
|
+
const { schema } = field;
|
|
71
|
+
if (schema instanceof Schema.TextField) {
|
|
72
|
+
return new validators_1.TextValidator(schema, field);
|
|
73
|
+
}
|
|
74
|
+
else if (schema instanceof Schema.RichTextField) {
|
|
75
|
+
return new validators_1.RichTextValidator();
|
|
76
|
+
}
|
|
77
|
+
else if (schema instanceof Schema.EnumField) {
|
|
78
|
+
return new validators_1.EnumValidator(schema, field);
|
|
79
|
+
}
|
|
80
|
+
else if (schema instanceof Schema.DateField) {
|
|
81
|
+
return new validators_1.DateValidator(schema);
|
|
82
|
+
}
|
|
83
|
+
else if (schema instanceof Schema.TimestampField) {
|
|
84
|
+
return new validators_1.TimestampValidator(schema);
|
|
85
|
+
}
|
|
86
|
+
else if (schema instanceof Schema.LinkField) {
|
|
87
|
+
return new validators_1.LinkValidator(schema);
|
|
88
|
+
}
|
|
89
|
+
else if (schema instanceof Schema.AssetField) {
|
|
90
|
+
return new validators_1.AssetValidator(schema);
|
|
91
|
+
}
|
|
92
|
+
// otherwise, return a no-op validator (does nothing)
|
|
93
|
+
else {
|
|
94
|
+
return new validators_1.GenericValidator();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
FieldValidator.create = create;
|
|
98
|
+
})(FieldValidator || (exports.FieldValidator = FieldValidator = {}));
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import * as Schema from '../../schema';
|
|
3
|
+
import { EventBus } from '../../services';
|
|
4
|
+
import { Field } from './Field';
|
|
5
|
+
import { FieldList } from './FieldList';
|
|
6
|
+
import { FieldModel } from './FieldModel';
|
|
7
|
+
import { FieldValidator } from './FieldValidator';
|
|
8
|
+
export declare class ObjectField {
|
|
9
|
+
readonly schema: Schema.ObjectField;
|
|
10
|
+
readonly id: string;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly required: boolean;
|
|
13
|
+
readonly publishedValue: ObjectField.Value | undefined;
|
|
14
|
+
private readonly eventBus;
|
|
15
|
+
private readonly _content;
|
|
16
|
+
private readonly _fields;
|
|
17
|
+
private _initialValue;
|
|
18
|
+
private _optIn?;
|
|
19
|
+
private _optOut?;
|
|
20
|
+
constructor(args: ObjectField.ConstructorArgs);
|
|
21
|
+
get events$(): Observable<FieldModel.Event>;
|
|
22
|
+
get initialValue(): ObjectField.Value | undefined;
|
|
23
|
+
get exists(): boolean;
|
|
24
|
+
get isNew(): boolean;
|
|
25
|
+
get valid(): boolean;
|
|
26
|
+
get error(): FieldValidator.Error | undefined;
|
|
27
|
+
get errors(): FieldValidator.Error[];
|
|
28
|
+
get content(): Readonly<ObjectField.Fields>;
|
|
29
|
+
get fields(): readonly ObjectField.FieldsValues[];
|
|
30
|
+
get hasValue(): boolean;
|
|
31
|
+
get value(): ObjectField.Value;
|
|
32
|
+
set value(value: ObjectField.Value);
|
|
33
|
+
get modified(): boolean;
|
|
34
|
+
get changed(): boolean;
|
|
35
|
+
get preview(): ObjectField.Preview;
|
|
36
|
+
get optedOut(): boolean;
|
|
37
|
+
get canOptOut(): boolean;
|
|
38
|
+
optIn(): void;
|
|
39
|
+
optOut(): void;
|
|
40
|
+
get shouldFocus(): boolean;
|
|
41
|
+
didFocus(): boolean;
|
|
42
|
+
getString(key: string | undefined): string | undefined;
|
|
43
|
+
reset(initialValue?: ObjectField.Value | null): void;
|
|
44
|
+
clone(): ObjectField;
|
|
45
|
+
private raiseEvent;
|
|
46
|
+
static forSchema(schema: Schema.ObjectField): ObjectField;
|
|
47
|
+
}
|
|
48
|
+
export declare namespace ObjectField {
|
|
49
|
+
type ConstructorArgs = {
|
|
50
|
+
eventBus: EventBus;
|
|
51
|
+
schema: Schema.ObjectField;
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
publishedValue?: Value;
|
|
55
|
+
initialValue?: Value;
|
|
56
|
+
required: boolean;
|
|
57
|
+
};
|
|
58
|
+
type Value = Schema.Field.Data<Schema.ObjectField>;
|
|
59
|
+
type Fields = Record<string, FieldsValues>;
|
|
60
|
+
type FieldsValues = Field | FieldList | ObjectField;
|
|
61
|
+
type Data = Record<string, Schema.Field.Data<Schema.ObjectField.Content.Type>>;
|
|
62
|
+
type Preview = {
|
|
63
|
+
title: Field<Schema.TextField | Schema.RichTextField>;
|
|
64
|
+
subtitle?: Field<Schema.TextField | Schema.RichTextField>;
|
|
65
|
+
visual?: Field<Schema.AssetField>;
|
|
66
|
+
};
|
|
67
|
+
interface Event extends EventBus.Event<'ObjectField', Event.Type> {
|
|
68
|
+
field: ObjectField;
|
|
69
|
+
}
|
|
70
|
+
namespace Event {
|
|
71
|
+
type Type = 'changed';
|
|
72
|
+
function filter(event: EventBus.Event): event is Event;
|
|
73
|
+
function create(event: EventBus.Args<Event>): Event;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObjectField = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const services_1 = require("../../services");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const Field_1 = require("./Field");
|
|
8
|
+
const FieldList_1 = require("./FieldList");
|
|
9
|
+
const FieldModel_1 = require("./FieldModel");
|
|
10
|
+
const FieldValidator_1 = require("./FieldValidator");
|
|
11
|
+
// class
|
|
12
|
+
class ObjectField {
|
|
13
|
+
constructor(args) {
|
|
14
|
+
// initialize instance variables
|
|
15
|
+
this.eventBus = args.eventBus;
|
|
16
|
+
this.schema = args.schema;
|
|
17
|
+
this._content = deserializeFields(args);
|
|
18
|
+
this._fields = Object.values(this._content);
|
|
19
|
+
this.id = args.id;
|
|
20
|
+
this.name = args.name;
|
|
21
|
+
this.required = args.required;
|
|
22
|
+
this.publishedValue = args.publishedValue;
|
|
23
|
+
this._initialValue = args.initialValue;
|
|
24
|
+
}
|
|
25
|
+
get events$() {
|
|
26
|
+
return this.eventBus.events$.pipe((0, rxjs_1.filter)(e => (ObjectField.Event.filter(e) && e.field === this)
|
|
27
|
+
|| (FieldModel_1.FieldModel.Event.filter(e) && this._fields.includes(e.field))));
|
|
28
|
+
}
|
|
29
|
+
get initialValue() {
|
|
30
|
+
return this._initialValue;
|
|
31
|
+
}
|
|
32
|
+
get exists() {
|
|
33
|
+
const { _initialValue, _optIn = false, _optOut = false, schema: { required } } = this;
|
|
34
|
+
return (_initialValue !== undefined && !_optOut) || required || _optIn;
|
|
35
|
+
}
|
|
36
|
+
get isNew() {
|
|
37
|
+
const { exists, _initialValue } = this;
|
|
38
|
+
return exists && (_initialValue === undefined
|
|
39
|
+
|| utils_1.Value.equals(_initialValue.value, {}));
|
|
40
|
+
}
|
|
41
|
+
get valid() {
|
|
42
|
+
return this.errors.length === 0;
|
|
43
|
+
}
|
|
44
|
+
get error() {
|
|
45
|
+
return FieldValidator_1.FieldValidator.Error.mostRelevant(this.errors);
|
|
46
|
+
}
|
|
47
|
+
get errors() {
|
|
48
|
+
// no errors if not existing and not required
|
|
49
|
+
const { required, exists, _fields } = this;
|
|
50
|
+
if (!required && !exists) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
// otherwise return errors
|
|
54
|
+
else {
|
|
55
|
+
return _fields.flatMap(field => field.errors);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
get content() {
|
|
59
|
+
return this._content;
|
|
60
|
+
}
|
|
61
|
+
get fields() {
|
|
62
|
+
return this._fields;
|
|
63
|
+
}
|
|
64
|
+
get hasValue() {
|
|
65
|
+
return this._fields.some(field => field.hasValue);
|
|
66
|
+
}
|
|
67
|
+
get value() {
|
|
68
|
+
// reduce value from fields
|
|
69
|
+
return {
|
|
70
|
+
type: 'object',
|
|
71
|
+
value: this._fields.reduce((values, { id, value }) => {
|
|
72
|
+
// bind value if it's set
|
|
73
|
+
if (value !== undefined) {
|
|
74
|
+
values[id] = value;
|
|
75
|
+
}
|
|
76
|
+
// keep reducing
|
|
77
|
+
return values;
|
|
78
|
+
}, {})
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
set value(value) {
|
|
82
|
+
var _a;
|
|
83
|
+
// update values
|
|
84
|
+
const values = (_a = value.value) !== null && _a !== void 0 ? _a : {};
|
|
85
|
+
Object.entries(this._content).forEach(([key, field]) => {
|
|
86
|
+
if (field instanceof ObjectField) {
|
|
87
|
+
field.value = values[key];
|
|
88
|
+
}
|
|
89
|
+
else if (field instanceof FieldList_1.FieldList) {
|
|
90
|
+
field.value = values[key];
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
field.value = values[key];
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
get modified() {
|
|
98
|
+
// modified if opted in/our
|
|
99
|
+
const { required, exists, _optIn, _optOut } = this;
|
|
100
|
+
if (_optIn || _optOut) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
// don't check if it isn't created (assume not modified)
|
|
104
|
+
else if (!required && !exists) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// or compare values (deep comparison)
|
|
108
|
+
else {
|
|
109
|
+
return !utils_1.Value.equals(this.value, this._initialValue);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
get changed() {
|
|
113
|
+
const { value, publishedValue } = this;
|
|
114
|
+
return !utils_1.Value.equals(value, publishedValue);
|
|
115
|
+
}
|
|
116
|
+
get preview() {
|
|
117
|
+
// determine fields to lookup
|
|
118
|
+
const { schema: { preview: previewSpec }, content } = this;
|
|
119
|
+
// return preview
|
|
120
|
+
return {
|
|
121
|
+
title: content[previewSpec.title],
|
|
122
|
+
subtitle: previewSpec.subtitle ? content[previewSpec.subtitle] : undefined,
|
|
123
|
+
visual: previewSpec.visual ? content[previewSpec.visual] : undefined
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
get optedOut() {
|
|
127
|
+
var _a;
|
|
128
|
+
return (_a = this._optOut) !== null && _a !== void 0 ? _a : false;
|
|
129
|
+
}
|
|
130
|
+
get canOptOut() {
|
|
131
|
+
return !this.schema.required;
|
|
132
|
+
}
|
|
133
|
+
optIn() {
|
|
134
|
+
// skip if required
|
|
135
|
+
const { schema } = this;
|
|
136
|
+
if (schema.required) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// set opt-in flag
|
|
140
|
+
this._optIn = true;
|
|
141
|
+
this._optOut = false;
|
|
142
|
+
this.raiseEvent('changed');
|
|
143
|
+
}
|
|
144
|
+
optOut() {
|
|
145
|
+
// skip if required
|
|
146
|
+
const { schema } = this;
|
|
147
|
+
if (schema.required) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// set opt-out flag
|
|
151
|
+
this._optIn = false;
|
|
152
|
+
this._optOut = true;
|
|
153
|
+
this.reset(null);
|
|
154
|
+
}
|
|
155
|
+
get shouldFocus() {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
didFocus() {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
getString(key) {
|
|
162
|
+
// skip if key isn't defined
|
|
163
|
+
if (!key) {
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
// skip if item is missing
|
|
167
|
+
const { content } = this;
|
|
168
|
+
const field = content[key];
|
|
169
|
+
if (!field) {
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
// return value based on type
|
|
173
|
+
const { value: data } = field;
|
|
174
|
+
switch (data === null || data === void 0 ? void 0 : data.type) {
|
|
175
|
+
case 'text':
|
|
176
|
+
case 'enum':
|
|
177
|
+
return data.value;
|
|
178
|
+
default:
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
reset(initialValue) {
|
|
183
|
+
var _a;
|
|
184
|
+
if (initialValue !== undefined) {
|
|
185
|
+
this._initialValue = initialValue !== null && initialValue !== void 0 ? initialValue : undefined;
|
|
186
|
+
// re-bind new initial values
|
|
187
|
+
const values = (_a = initialValue === null || initialValue === void 0 ? void 0 : initialValue.value) !== null && _a !== void 0 ? _a : {};
|
|
188
|
+
Object.entries(this._content).forEach(([key, field]) => {
|
|
189
|
+
var _a, _b, _c;
|
|
190
|
+
if (field instanceof ObjectField) {
|
|
191
|
+
field.reset((_a = values[key]) !== null && _a !== void 0 ? _a : null);
|
|
192
|
+
}
|
|
193
|
+
else if (field instanceof FieldList_1.FieldList) {
|
|
194
|
+
field.reset((_b = values[key]) !== null && _b !== void 0 ? _b : null);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
field.reset((_c = values[key]) !== null && _c !== void 0 ? _c : null);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
// reset each field if there's no initial value
|
|
202
|
+
else {
|
|
203
|
+
this._fields.forEach(field => field.reset());
|
|
204
|
+
}
|
|
205
|
+
// raise final change
|
|
206
|
+
this.raiseEvent('changed');
|
|
207
|
+
}
|
|
208
|
+
clone() {
|
|
209
|
+
return new ObjectField({
|
|
210
|
+
eventBus: this.eventBus,
|
|
211
|
+
schema: this.schema,
|
|
212
|
+
id: this.id,
|
|
213
|
+
name: this.name,
|
|
214
|
+
publishedValue: this.publishedValue,
|
|
215
|
+
initialValue: this._initialValue,
|
|
216
|
+
required: this.required
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
raiseEvent(type) {
|
|
220
|
+
this.eventBus.publish(ObjectField.Event.create({ type, field: this }));
|
|
221
|
+
}
|
|
222
|
+
static forSchema(schema) {
|
|
223
|
+
return new ObjectField({
|
|
224
|
+
eventBus: new services_1.EventBus(),
|
|
225
|
+
schema,
|
|
226
|
+
id: utils_1.Value.uuid(),
|
|
227
|
+
name: schema.name,
|
|
228
|
+
required: true
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.ObjectField = ObjectField;
|
|
233
|
+
// extension
|
|
234
|
+
(function (ObjectField) {
|
|
235
|
+
let Event;
|
|
236
|
+
(function (Event) {
|
|
237
|
+
// methods
|
|
238
|
+
function filter(event) {
|
|
239
|
+
return event.domain === 'ObjectField';
|
|
240
|
+
}
|
|
241
|
+
Event.filter = filter;
|
|
242
|
+
function create(event) {
|
|
243
|
+
return services_1.EventBus.createEvent(Object.assign({ domain: 'ObjectField' }, event));
|
|
244
|
+
}
|
|
245
|
+
Event.create = create;
|
|
246
|
+
})(Event = ObjectField.Event || (ObjectField.Event = {}));
|
|
247
|
+
})(ObjectField || (exports.ObjectField = ObjectField = {}));
|
|
248
|
+
function deserializeFields({ eventBus, schema, initialValue }) {
|
|
249
|
+
var _a;
|
|
250
|
+
// TODO: should we add a published value?!
|
|
251
|
+
// create fields for each object entry
|
|
252
|
+
const initialValues = (_a = initialValue === null || initialValue === void 0 ? void 0 : initialValue.value) !== null && _a !== void 0 ? _a : {};
|
|
253
|
+
return Object.entries(schema.content).reduce((fields, [id, fieldSchemaMaybe]) => {
|
|
254
|
+
// create field
|
|
255
|
+
const fieldSchema = fieldSchemaMaybe.unwrap();
|
|
256
|
+
switch (fieldSchema.type) {
|
|
257
|
+
// map simple fields
|
|
258
|
+
case 'text':
|
|
259
|
+
case 'richtext':
|
|
260
|
+
case 'enum':
|
|
261
|
+
case 'boolean':
|
|
262
|
+
case 'link':
|
|
263
|
+
case 'asset':
|
|
264
|
+
fields[id] = new Field_1.Field({
|
|
265
|
+
eventBus,
|
|
266
|
+
schema: fieldSchema,
|
|
267
|
+
id,
|
|
268
|
+
name: fieldSchema.name,
|
|
269
|
+
initialValue: initialValues[id],
|
|
270
|
+
required: fieldSchema.required
|
|
271
|
+
});
|
|
272
|
+
break;
|
|
273
|
+
// map lists
|
|
274
|
+
case 'list':
|
|
275
|
+
fields[id] = new FieldList_1.FieldList({
|
|
276
|
+
eventBus,
|
|
277
|
+
schema: fieldSchema,
|
|
278
|
+
id,
|
|
279
|
+
name: fieldSchema.name,
|
|
280
|
+
initialValue: initialValues[id],
|
|
281
|
+
required: fieldSchema.required
|
|
282
|
+
});
|
|
283
|
+
break;
|
|
284
|
+
}
|
|
285
|
+
// keep reducing
|
|
286
|
+
return fields;
|
|
287
|
+
}, {});
|
|
288
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"en": {
|
|
3
|
+
"required": "${label} is required",
|
|
4
|
+
"minLength": "${label} needs least ${minLength} characters",
|
|
5
|
+
"maxLength": "${label} cannot exceed ${maxLength} characters",
|
|
6
|
+
"empty": "${label} is required",
|
|
7
|
+
"exact": "Please enter \"${exact}\"",
|
|
8
|
+
"email": "${label} is an invalid format",
|
|
9
|
+
"phone": "${label} is an invalid format",
|
|
10
|
+
"url": "${label} is not a valid URL",
|
|
11
|
+
"uri": "${label} must be a URL, email, or phone number",
|
|
12
|
+
"regex": "${label} is not valid",
|
|
13
|
+
"regex.password": "Needs at least 1 digit, uppercase, lowercase, and special character",
|
|
14
|
+
"array.min": "${label} needs at least ${min} elements",
|
|
15
|
+
"array.max": "${label} cannot exceed ${max} elements",
|
|
16
|
+
"date": "${label} is not a valid date",
|
|
17
|
+
"date.minDate": "${label} cannot be before ${minDate}",
|
|
18
|
+
"date.maxDate": "${label} cannot be after ${maxDate}",
|
|
19
|
+
"timestamp": "${label} is not a valid date/time",
|
|
20
|
+
"timestamp.minTime": "${label} cannot be before ${minTime}",
|
|
21
|
+
"timestamp.maxTime": "${label} cannot be after ${maxTime}"
|
|
22
|
+
},
|
|
23
|
+
"fr": {
|
|
24
|
+
"required": "${label} is required",
|
|
25
|
+
"minLength": "${label} needs least ${minLength} characters",
|
|
26
|
+
"maxLength": "${label} cannot exceed ${maxLength} characters",
|
|
27
|
+
"empty": "${label} is required",
|
|
28
|
+
"exact": "Please enter \"${exact}\"",
|
|
29
|
+
"email": "${label} is an invalid format",
|
|
30
|
+
"phone": "${label} is an invalid format",
|
|
31
|
+
"url": "${label} is not a valid URL",
|
|
32
|
+
"uri": "${label} must be a URL, email, or phone number",
|
|
33
|
+
"regex": "${label} is not valid",
|
|
34
|
+
"regex.password": "Needs at least 1 digit, uppercase, lowercase, and special character",
|
|
35
|
+
"array.min": "${label} needs at least ${min} elements",
|
|
36
|
+
"array.max": "${label} cannot exceed ${max} elements",
|
|
37
|
+
"date": "${label} is not a valid date",
|
|
38
|
+
"date.minDate": "${label} cannot be before ${minDate}",
|
|
39
|
+
"date.maxDate": "${label} cannot be after ${maxDate}",
|
|
40
|
+
"timestamp": "${label} is not a valid date/time",
|
|
41
|
+
"timestamp.minTime": "${label} cannot be before ${minTime}",
|
|
42
|
+
"timestamp.maxTime": "${label} cannot be after ${maxTime}"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./Field"), exports);
|
|
18
|
+
__exportStar(require("./FieldList"), exports);
|
|
19
|
+
__exportStar(require("./FieldListValidator"), exports);
|
|
20
|
+
__exportStar(require("./FieldModel"), exports);
|
|
21
|
+
__exportStar(require("./FieldSerializer"), exports);
|
|
22
|
+
__exportStar(require("./FieldValidator"), exports);
|
|
23
|
+
__exportStar(require("./ObjectField"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AssetField } from '../../../schema/field/base/AssetField';
|
|
2
|
+
import { Field as FieldModel } from '../Field';
|
|
3
|
+
import type { FieldValidator } from '../FieldValidator';
|
|
4
|
+
export declare class AssetValidator {
|
|
5
|
+
readonly schema: AssetField;
|
|
6
|
+
constructor(schema: AssetField);
|
|
7
|
+
filter(errors: ReadonlyArray<FieldValidator.Error>, level: FieldValidator.Error.Level): ReadonlyArray<FieldValidator.Error>;
|
|
8
|
+
validate(field: FieldModel, rawValue: any): FieldValidator.Error[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AssetValidator = void 0;
|
|
4
|
+
const ValidatorHelper_1 = require("./ValidatorHelper");
|
|
5
|
+
// class
|
|
6
|
+
class AssetValidator {
|
|
7
|
+
constructor(schema) {
|
|
8
|
+
this.schema = schema;
|
|
9
|
+
}
|
|
10
|
+
filter(errors, level) {
|
|
11
|
+
return ValidatorHelper_1.ValidatorHelper.filterErrors(errors, level);
|
|
12
|
+
}
|
|
13
|
+
validate(field, rawValue) {
|
|
14
|
+
// handle case where unset (fail if not optional)
|
|
15
|
+
const data = rawValue;
|
|
16
|
+
if (!data || !data.value) {
|
|
17
|
+
return field.required
|
|
18
|
+
? [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'required', value: data })]
|
|
19
|
+
: [];
|
|
20
|
+
}
|
|
21
|
+
// return errors
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.AssetValidator = AssetValidator;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DateField } from '../../../schema/field/base/DateField';
|
|
2
|
+
import type { Field as FieldModel } from '../Field';
|
|
3
|
+
import type { FieldValidator } from '../FieldValidator';
|
|
4
|
+
export declare class DateValidator {
|
|
5
|
+
readonly schema: DateField;
|
|
6
|
+
constructor(schema: DateField);
|
|
7
|
+
filter(errors: ReadonlyArray<FieldValidator.Error>, level: FieldValidator.Error.Level): ReadonlyArray<FieldValidator.Error>;
|
|
8
|
+
validate(field: FieldModel, rawData: any): FieldValidator.Error[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateValidator = void 0;
|
|
4
|
+
const DateString_1 = require("../../../types/DateString");
|
|
5
|
+
const ValidatorHelper_1 = require("./ValidatorHelper");
|
|
6
|
+
// class
|
|
7
|
+
class DateValidator {
|
|
8
|
+
constructor(schema) {
|
|
9
|
+
this.schema = schema;
|
|
10
|
+
}
|
|
11
|
+
filter(errors, level) {
|
|
12
|
+
return ValidatorHelper_1.ValidatorHelper.filterErrors(errors, level);
|
|
13
|
+
}
|
|
14
|
+
validate(field, rawData) {
|
|
15
|
+
// handle case where unset (fail if not optional)
|
|
16
|
+
const data = rawData;
|
|
17
|
+
if (!data || !data.value) {
|
|
18
|
+
return field.required
|
|
19
|
+
? [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'required', value: data })]
|
|
20
|
+
: [];
|
|
21
|
+
}
|
|
22
|
+
// fail if invalid format
|
|
23
|
+
const { value } = data;
|
|
24
|
+
if (!DateString_1.DateString.filter(value)) {
|
|
25
|
+
return [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'date', critical: true, value })];
|
|
26
|
+
}
|
|
27
|
+
// or fail if minDate is violated
|
|
28
|
+
const { minDate, maxDate } = this.schema;
|
|
29
|
+
if (minDate && DateString_1.DateString.isBefore(value, minDate)) {
|
|
30
|
+
return [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'date.minDate', critical: true, value })];
|
|
31
|
+
}
|
|
32
|
+
else if (maxDate && DateString_1.DateString.isBefore(value, maxDate)) {
|
|
33
|
+
return [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'date.maxDate', critical: true, value })];
|
|
34
|
+
}
|
|
35
|
+
// otherwise, transform errors
|
|
36
|
+
else {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.DateValidator = DateValidator;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { EnumField } from '../../../schema/field/base/EnumField';
|
|
2
|
+
import type { Field as FieldModel } from '../Field';
|
|
3
|
+
import type { FieldValidator } from '../FieldValidator';
|
|
4
|
+
export declare class EnumValidator {
|
|
5
|
+
readonly schema: EnumField;
|
|
6
|
+
private readonly _zod;
|
|
7
|
+
constructor(schema: EnumField, field: FieldModel);
|
|
8
|
+
filter(errors: ReadonlyArray<FieldValidator.Error>, level: FieldValidator.Error.Level): ReadonlyArray<FieldValidator.Error>;
|
|
9
|
+
validate(field: FieldModel, rawData: any): FieldValidator.Error[];
|
|
10
|
+
}
|