@webiny/api-headless-cms 6.2.0 → 6.3.0-beta.1

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.
Files changed (73) hide show
  1. package/crud/AccessControl/README.md +1 -1
  2. package/export/types.js.map +1 -1
  3. package/extensions/entryHooks/OnEntryBeforeCreate.d.ts +1 -1
  4. package/features/contentEntry/ContentEntriesFeature.d.ts +4 -1
  5. package/features/contentEntry/ContentEntryTraverser/feature.d.ts +4 -1
  6. package/features/contentEntry/CreateEntry/feature.d.ts +4 -1
  7. package/features/contentEntry/CreateEntryRevisionFrom/feature.d.ts +4 -1
  8. package/features/contentEntry/DeleteEntry/feature.d.ts +4 -1
  9. package/features/contentEntry/DeleteEntryRevision/feature.d.ts +4 -1
  10. package/features/contentEntry/DeleteMultipleEntries/feature.d.ts +4 -1
  11. package/features/contentEntry/GetEntriesByIds/feature.d.ts +4 -1
  12. package/features/contentEntry/GetEntry/feature.d.ts +4 -1
  13. package/features/contentEntry/GetEntryById/feature.d.ts +4 -1
  14. package/features/contentEntry/GetLatestEntriesByIds/feature.d.ts +4 -1
  15. package/features/contentEntry/GetLatestRevisionByEntryId/feature.d.ts +4 -1
  16. package/features/contentEntry/GetPreviousRevisionByEntryId/feature.d.ts +4 -1
  17. package/features/contentEntry/GetPublishedEntriesByIds/feature.d.ts +4 -1
  18. package/features/contentEntry/GetPublishedRevisionByEntryId/feature.d.ts +4 -1
  19. package/features/contentEntry/GetRevisionById/feature.d.ts +4 -1
  20. package/features/contentEntry/GetRevisionsByEntryId/feature.d.ts +4 -1
  21. package/features/contentEntry/GetSingletonEntry/feature.d.ts +4 -1
  22. package/features/contentEntry/GetUniqueFieldValues/feature.d.ts +4 -1
  23. package/features/contentEntry/ListEntries/feature.d.ts +4 -1
  24. package/features/contentEntry/MoveEntry/feature.d.ts +4 -1
  25. package/features/contentEntry/PublishEntry/feature.d.ts +4 -1
  26. package/features/contentEntry/RepublishEntry/feature.d.ts +4 -1
  27. package/features/contentEntry/RestoreEntryFromBin/feature.d.ts +4 -1
  28. package/features/contentEntry/UnpublishEntry/feature.d.ts +4 -1
  29. package/features/contentEntry/UpdateEntry/feature.d.ts +4 -1
  30. package/features/contentEntry/UpdateSingletonEntry/feature.d.ts +4 -1
  31. package/features/contentEntry/ValidateEntry/feature.d.ts +4 -1
  32. package/features/contentModel/ContentModelFeature.d.ts +4 -1
  33. package/features/contentModel/CreateModel/feature.d.ts +4 -1
  34. package/features/contentModel/CreateModelFrom/feature.d.ts +4 -1
  35. package/features/contentModel/DeleteModel/feature.d.ts +4 -1
  36. package/features/contentModel/GetModel/feature.d.ts +4 -1
  37. package/features/contentModel/ListModels/feature.d.ts +4 -1
  38. package/features/contentModel/ModelToAstConverter/feature.d.ts +4 -1
  39. package/features/contentModel/UpdateModel/feature.d.ts +4 -1
  40. package/features/contentModelGroup/ContentModelGroupFeature.d.ts +4 -1
  41. package/features/contentModelGroup/CreateGroup/feature.d.ts +4 -1
  42. package/features/contentModelGroup/DeleteGroup/feature.d.ts +4 -1
  43. package/features/contentModelGroup/GetGroup/feature.d.ts +4 -1
  44. package/features/contentModelGroup/ListGroups/feature.d.ts +4 -1
  45. package/features/contentModelGroup/UpdateGroup/feature.d.ts +4 -1
  46. package/features/graphql/feature.d.ts +4 -1
  47. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -1
  48. package/features/installer/feature.d.ts +4 -1
  49. package/features/modelBuilder/feature.d.ts +4 -1
  50. package/features/modelBuilder/fields/BooleanFieldType.d.ts +2 -4
  51. package/features/modelBuilder/fields/BooleanFieldType.js.map +1 -1
  52. package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
  53. package/features/modelBuilder/fields/DateTimeFieldType.js.map +1 -1
  54. package/features/modelBuilder/fields/LongTextFieldType.js.map +1 -1
  55. package/features/modelBuilder/fields/NumberFieldType.js.map +1 -1
  56. package/features/modelBuilder/fields/RefFieldType.js.map +1 -1
  57. package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
  58. package/features/sortMapper/feature.d.ts +4 -1
  59. package/features/storage/feature.d.ts +4 -1
  60. package/features/storage/fields/LongTextStorageTransform.js.map +1 -1
  61. package/features/validation/feature.d.ts +4 -1
  62. package/features/whereMapper/feature.d.ts +4 -1
  63. package/graphql/schema/contentEntries.js +1 -1
  64. package/graphql/schema/contentEntries.js.map +1 -1
  65. package/graphql/schema/createManageSDL.js +1 -1
  66. package/graphql/schema/createManageSDL.js.map +1 -1
  67. package/graphql/schema/createSingularSDL.js +1 -1
  68. package/graphql/schema/createSingularSDL.js.map +1 -1
  69. package/package.json +22 -22
  70. package/plugins/CmsModelPlugin.js.map +1 -1
  71. package/types/types.js.map +1 -1
  72. package/utils/converters/types.js.map +1 -1
  73. package/utils/createModelField.js.map +1 -1
@@ -44,4 +44,4 @@ When choosing "Only models created by the user" access scope via the `cms.conten
44
44
 
45
45
  <img src="./models-own.png">
46
46
 
47
- Note that only the entry publishing actions-related permissions are not automatically set here. They need to be defined when defining the role explicitly.
47
+ Note that only the entry publishing actions-related permissions are not automatically set here. They need to be defined when defining the role explicitly.
@@ -1 +1 @@
1
- {"version":3,"names":["CmsImportAction"],"sources":["types.ts"],"sourcesContent":["import type { CmsGroup, CmsModel } from \"~/types/index.js\";\n\nexport interface CmsImportError {\n message: string;\n code: string | null;\n data?: Record<string, any> | null;\n stack?: any;\n}\n\nexport enum CmsImportAction {\n CREATE = \"create\",\n UPDATE = \"update\",\n CODE = \"code\",\n NONE = \"none\"\n}\n/**\n * Structure export - groups and models.\n */\n\nexport interface HeadlessCmsExportStructureParams {\n models?: string[];\n}\n\nexport type SanitizedCmsGroup = Pick<CmsGroup, \"id\" | \"name\" | \"slug\" | \"description\" | \"icon\">;\n\nexport interface SanitizedCmsModel\n extends Pick<\n CmsModel,\n | \"modelId\"\n | \"fields\"\n | \"titleFieldId\"\n | \"descriptionFieldId\"\n | \"imageFieldId\"\n | \"layout\"\n | \"icon\"\n | \"singularApiName\"\n | \"pluralApiName\"\n | \"name\"\n | \"description\"\n | \"tags\"\n > {\n group: string;\n}\n\nexport interface HeadlessCmsExportStructureResponse {\n groups: SanitizedCmsGroup[];\n models: SanitizedCmsModel[];\n}\n\nexport interface HeadlessCmsExportStructure {\n (params: HeadlessCmsExportStructureParams): Promise<HeadlessCmsExportStructureResponse>;\n}\n\nexport interface HeadlessCmsImportStructureParamsDataModel\n extends Omit<Partial<CmsModel>, \"group\"> {\n group?: string;\n}\n\nexport interface CmsImportStructureParamsData {\n groups: Partial<CmsGroup>[];\n models: HeadlessCmsImportStructureParamsDataModel[];\n}\n\nexport interface HeadlessCmsImportStructureParams {\n data: CmsImportStructureParamsData;\n}\n\nexport interface HeadlessCmsImportValidateParams {\n data: CmsImportStructureParamsData;\n}\n\nexport interface CmsGroupImportResult {\n action: CmsImportAction;\n group: Partial<Pick<CmsGroup, \"id\" | \"name\">>;\n error?: CmsImportError;\n imported: boolean;\n}\n\nexport interface CmsModelImportResult {\n action: CmsImportAction;\n model: Partial<Pick<CmsModel, \"modelId\" | \"name\">> & {\n group: string;\n };\n related?: string[] | null;\n error?: CmsImportError;\n imported: boolean;\n}\n\nexport interface HeadlessCmsImportStructureResponse {\n groups: CmsGroupImportResult[];\n models: CmsModelImportResult[];\n message?: string | null;\n error?: string;\n}\n\nexport interface HeadlessCmsImportStructure {\n (params: HeadlessCmsImportStructureParams): Promise<HeadlessCmsImportStructureResponse>;\n}\n\nexport interface ValidCmsGroupResult {\n group: CmsGroup;\n action: CmsImportAction;\n target?: string;\n error?: never;\n}\n\nexport interface InvalidCmsGroupResult {\n group: CmsGroup;\n action: CmsImportAction;\n target?: never;\n error: CmsImportError;\n}\n\nexport interface ValidatedCmsModel extends Omit<CmsModel, \"group\"> {\n group: string;\n}\nexport interface ValidCmsModelResult {\n model: ValidatedCmsModel;\n related: string[];\n action: CmsImportAction;\n error?: never;\n}\n\nexport interface InvalidCmsModelResult {\n model: ValidatedCmsModel;\n action: CmsImportAction;\n error: CmsImportError;\n}\n\nexport type ValidatedCmsGroupResult = ValidCmsGroupResult | InvalidCmsGroupResult;\nexport type ValidatedCmsModelResult = ValidCmsModelResult | InvalidCmsModelResult;\n\nexport interface HeadlessCmsImportValidateResponse {\n groups: ValidatedCmsGroupResult[];\n models: ValidatedCmsModelResult[];\n message: string;\n}\n\nexport interface HeadlessCmsImportValidate {\n (params: HeadlessCmsImportValidateParams): Promise<HeadlessCmsImportValidateResponse>;\n}\n\n/**\n * Interface for the main context interface.\n */\nexport interface HeadlessCmsExport {\n structure: HeadlessCmsExportStructure;\n}\n\nexport interface HeadlessCmsImport {\n validate: HeadlessCmsImportValidate;\n structure: HeadlessCmsImportStructure;\n}\n"],"mappings":"AASA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAM3B;AACA;AACA;;AA6HA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["CmsImportAction"],"sources":["types.ts"],"sourcesContent":["import type { CmsGroup, CmsModel } from \"~/types/index.js\";\n\nexport interface CmsImportError {\n message: string;\n code: string | null;\n data?: Record<string, any> | null;\n stack?: any;\n}\n\nexport enum CmsImportAction {\n CREATE = \"create\",\n UPDATE = \"update\",\n CODE = \"code\",\n NONE = \"none\"\n}\n/**\n * Structure export - groups and models.\n */\n\nexport interface HeadlessCmsExportStructureParams {\n models?: string[];\n}\n\nexport type SanitizedCmsGroup = Pick<CmsGroup, \"id\" | \"name\" | \"slug\" | \"description\" | \"icon\">;\n\nexport interface SanitizedCmsModel extends Pick<\n CmsModel,\n | \"modelId\"\n | \"fields\"\n | \"titleFieldId\"\n | \"descriptionFieldId\"\n | \"imageFieldId\"\n | \"layout\"\n | \"icon\"\n | \"singularApiName\"\n | \"pluralApiName\"\n | \"name\"\n | \"description\"\n | \"tags\"\n> {\n group: string;\n}\n\nexport interface HeadlessCmsExportStructureResponse {\n groups: SanitizedCmsGroup[];\n models: SanitizedCmsModel[];\n}\n\nexport interface HeadlessCmsExportStructure {\n (params: HeadlessCmsExportStructureParams): Promise<HeadlessCmsExportStructureResponse>;\n}\n\nexport interface HeadlessCmsImportStructureParamsDataModel extends Omit<\n Partial<CmsModel>,\n \"group\"\n> {\n group?: string;\n}\n\nexport interface CmsImportStructureParamsData {\n groups: Partial<CmsGroup>[];\n models: HeadlessCmsImportStructureParamsDataModel[];\n}\n\nexport interface HeadlessCmsImportStructureParams {\n data: CmsImportStructureParamsData;\n}\n\nexport interface HeadlessCmsImportValidateParams {\n data: CmsImportStructureParamsData;\n}\n\nexport interface CmsGroupImportResult {\n action: CmsImportAction;\n group: Partial<Pick<CmsGroup, \"id\" | \"name\">>;\n error?: CmsImportError;\n imported: boolean;\n}\n\nexport interface CmsModelImportResult {\n action: CmsImportAction;\n model: Partial<Pick<CmsModel, \"modelId\" | \"name\">> & {\n group: string;\n };\n related?: string[] | null;\n error?: CmsImportError;\n imported: boolean;\n}\n\nexport interface HeadlessCmsImportStructureResponse {\n groups: CmsGroupImportResult[];\n models: CmsModelImportResult[];\n message?: string | null;\n error?: string;\n}\n\nexport interface HeadlessCmsImportStructure {\n (params: HeadlessCmsImportStructureParams): Promise<HeadlessCmsImportStructureResponse>;\n}\n\nexport interface ValidCmsGroupResult {\n group: CmsGroup;\n action: CmsImportAction;\n target?: string;\n error?: never;\n}\n\nexport interface InvalidCmsGroupResult {\n group: CmsGroup;\n action: CmsImportAction;\n target?: never;\n error: CmsImportError;\n}\n\nexport interface ValidatedCmsModel extends Omit<CmsModel, \"group\"> {\n group: string;\n}\nexport interface ValidCmsModelResult {\n model: ValidatedCmsModel;\n related: string[];\n action: CmsImportAction;\n error?: never;\n}\n\nexport interface InvalidCmsModelResult {\n model: ValidatedCmsModel;\n action: CmsImportAction;\n error: CmsImportError;\n}\n\nexport type ValidatedCmsGroupResult = ValidCmsGroupResult | InvalidCmsGroupResult;\nexport type ValidatedCmsModelResult = ValidCmsModelResult | InvalidCmsModelResult;\n\nexport interface HeadlessCmsImportValidateResponse {\n groups: ValidatedCmsGroupResult[];\n models: ValidatedCmsModelResult[];\n message: string;\n}\n\nexport interface HeadlessCmsImportValidate {\n (params: HeadlessCmsImportValidateParams): Promise<HeadlessCmsImportValidateResponse>;\n}\n\n/**\n * Interface for the main context interface.\n */\nexport interface HeadlessCmsExport {\n structure: HeadlessCmsExportStructure;\n}\n\nexport interface HeadlessCmsImport {\n validate: HeadlessCmsImportValidate;\n structure: HeadlessCmsImportStructure;\n}\n"],"mappings":"AASA,WAAYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAM3B;AACA;AACA;;AA8HA;AACA;AACA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import { z } from "zod";
2
- export declare const OnEntryBeforeCreate: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
2
+ export declare const OnEntryBeforeCreate: import("@webiny/project/defineExtension").ExtensionComponent<z.ZodObject<{
3
3
  src: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
4
  }, z.core.$strip>>;
@@ -1 +1,4 @@
1
- export declare const ContentEntriesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ContentEntriesFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const ContentEntryTraverserFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ContentEntryTraverserFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -6,4 +6,7 @@
6
6
  * - Repository for persistence
7
7
  * - Events for extensibility
8
8
  */
9
- export declare const CreateEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
9
+ export declare const CreateEntryFeature: {
10
+ name: string;
11
+ register(container: import("@webiny/di").Container): void;
12
+ };
@@ -1 +1,4 @@
1
- export declare const CreateEntryRevisionFromFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CreateEntryRevisionFromFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const DeleteEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const DeleteEntryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const DeleteEntryRevisionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const DeleteEntryRevisionFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const DeleteMultipleEntriesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const DeleteMultipleEntriesFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetEntriesByIdsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetEntriesByIdsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetEntryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetEntryByIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetEntryByIdFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetLatestEntriesByIdsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetLatestEntriesByIdsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetLatestRevisionByEntryIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetLatestRevisionByEntryIdFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetPreviousRevisionByEntryIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetPreviousRevisionByEntryIdFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const GetPublishedEntriesByIdsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetPublishedEntriesByIdsFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -5,4 +5,7 @@
5
5
  * - Use case for orchestration
6
6
  * - Repository for data fetching
7
7
  */
8
- export declare const GetPublishedRevisionByEntryIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
8
+ export declare const GetPublishedRevisionByEntryIdFeature: {
9
+ name: string;
10
+ register(container: import("@webiny/di").Container): void;
11
+ };
@@ -6,4 +6,7 @@
6
6
  * - Repository for data fetching
7
7
  * - NotDeleted decorator to filter deleted entries
8
8
  */
9
- export declare const GetRevisionByIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
9
+ export declare const GetRevisionByIdFeature: {
10
+ name: string;
11
+ register(container: import("@webiny/di").Container): void;
12
+ };
@@ -1 +1,4 @@
1
- export declare const GetRevisionsByEntryIdFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetRevisionsByEntryIdFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for getting singleton entries.
5
5
  * Creates the entry if it doesn't exist.
6
6
  */
7
- export declare const GetSingletonEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const GetSingletonEntryFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -1 +1,4 @@
1
- export declare const GetUniqueFieldValuesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GetUniqueFieldValuesFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const ListEntriesFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ListEntriesFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const MoveEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const MoveEntryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const PublishEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const PublishEntryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const RepublishEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const RepublishEntryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const RestoreEntryFromBinFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const RestoreEntryFromBinFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -6,4 +6,7 @@
6
6
  * - Repository for persistence
7
7
  * - Events for extensibility
8
8
  */
9
- export declare const UnpublishEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
9
+ export declare const UnpublishEntryFeature: {
10
+ name: string;
11
+ register(container: import("@webiny/di").Container): void;
12
+ };
@@ -6,4 +6,7 @@
6
6
  * - Repository for persistence
7
7
  * - Events for extensibility
8
8
  */
9
- export declare const UpdateEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
9
+ export declare const UpdateEntryFeature: {
10
+ name: string;
11
+ register(container: import("@webiny/di").Container): void;
12
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for updating singleton entries.
5
5
  * Gets the entry (creating if needed) then updates it.
6
6
  */
7
- export declare const UpdateSingletonEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const UpdateSingletonEntryFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -1 +1,4 @@
1
- export declare const ValidateEntryFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ValidateEntryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const ContentModelFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;
1
+ export declare const ContentModelFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for creating new content models.
5
5
  * All validation (modelId generation, domain rules, uniqueness) is handled by the repository.
6
6
  */
7
- export declare const CreateModelFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const CreateModelFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for cloning/copying existing content models.
5
5
  * All validation (modelId generation, domain rules, uniqueness) is handled by the repository.
6
6
  */
7
- export declare const CreateModelFromFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const CreateModelFromFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for deleting content models.
5
5
  * Includes entry cleanup for singleton models and validation for regular models.
6
6
  */
7
- export declare const DeleteModelFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const DeleteModelFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for retrieving a single content model by ID.
5
5
  * Includes caching, plugin model support, and access control filtering.
6
6
  */
7
- export declare const GetModelFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const GetModelFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -5,4 +5,7 @@
5
5
  * Includes caching, plugin model support, access control filtering,
6
6
  * and options to include/exclude private models and plugin models.
7
7
  */
8
- export declare const ListModelsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
8
+ export declare const ListModelsFeature: {
9
+ name: string;
10
+ register(container: import("@webiny/di").Container): void;
11
+ };
@@ -1 +1,4 @@
1
- export declare const ModelToAstConverterFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ModelToAstConverterFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for updating existing content models.
5
5
  * All validation (API name uniqueness, field validation) is handled by the repository.
6
6
  */
7
- export declare const UpdateModelFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const UpdateModelFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -1 +1,4 @@
1
- export declare const ContentModelGroupFeature: import("@webiny/feature/api/createFeature").FeatureDefinition<unknown>;
1
+ export declare const ContentModelGroupFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for creating new content model groups.
5
5
  * Includes validation, slug generation, and plugin conflict checks.
6
6
  */
7
- export declare const CreateGroupFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const CreateGroupFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for deleting content model groups.
5
5
  * Prevents deletion of plugin-based groups and groups with models.
6
6
  */
7
- export declare const DeleteGroupFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const DeleteGroupFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for retrieving a single content model group by ID.
5
5
  * Uses GroupCache (registered elsewhere) for fetching groups.
6
6
  */
7
- export declare const GetGroupFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const GetGroupFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for retrieving all content model groups.
5
5
  * Uses GroupCache (registered elsewhere) for fetching groups.
6
6
  */
7
- export declare const ListGroupsFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const ListGroupsFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -4,4 +4,7 @@
4
4
  * Provides functionality for updating existing content model groups.
5
5
  * Prevents updates to plugin-based groups.
6
6
  */
7
- export declare const UpdateGroupFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
7
+ export declare const UpdateGroupFeature: {
8
+ name: string;
9
+ register(container: import("@webiny/di").Container): void;
10
+ };
@@ -1 +1,4 @@
1
- export declare const GraphQLFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const GraphQLFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1 @@
1
- {"version":3,"names":["createAbstraction","CmsModelFieldToGraphQL"],"sources":["CmsModelFieldToGraphQL.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { GraphQLFieldResolver, Resolvers } from \"@webiny/handler-graphql/types.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/handler-graphql/types.js\";\nimport type { CmsModelField, CmsModelFieldType } from \"~/types/modelField.js\";\nimport type { CmsModel } from \"~/types/model.js\";\nimport type { CmsModelFieldDefinition } from \"~/types/types.js\";\nimport type { CmsContext } from \"~/types/types.js\";\n\nexport interface ValidateChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> {\n fields: TField[];\n originalFields: TField[];\n}\n\nexport interface ValidateChildFieldsValidate {\n (params: ValidateChildFieldsValidateParams): void;\n}\n\nexport interface ValidateChildFieldsParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n originalField?: TField;\n validate: ValidateChildFieldsValidate;\n}\n\nexport interface ValidateChildFields<TField extends CmsModelField = CmsModelField> {\n (params: ValidateChildFieldsParams<TField>): void;\n}\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { GetCmsModelFieldAst } from \"~/types/modelAst.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"./CmsModelFieldToGraphQLRegistry.js\";\n\nexport interface CreateTypeFieldParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateGetFiltersParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n}\n\nexport interface CreateListFiltersParams<TField extends CmsModelField = CmsModelField> {\n model: Pick<CmsModel, \"singularApiName\">;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateResolverParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n graphQLType: string;\n field: TField;\n createFieldResolvers: any;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport type ResolverResult =\n | GraphQLFieldResolver\n | {\n resolver: GraphQLFieldResolver | null;\n typeResolvers: Resolvers<CmsContext>;\n }\n | false;\n\nexport interface CreateSchemaParams {\n models: CmsModel[];\n}\n\nexport interface NormalizeInputParams<TField extends CmsModelField = CmsModelField> {\n model: CmsModel;\n field: TField;\n input: GenericRecord<string> | Array<GenericRecord<string>>;\n}\n\nexport interface ICmsFieldReadApi<TField extends CmsModelField = CmsModelField> {\n createTypeField(params: CreateTypeFieldParams<TField>): CmsModelFieldDefinition | string | null;\n createGetFilters?(params: CreateGetFiltersParams<TField>): string;\n createListFilters?(params: CreateListFiltersParams<TField>): string;\n createResolver?(params: CreateResolverParams<TField>): ResolverResult;\n createSchema?(params: CreateSchemaParams): GraphQLSchemaDefinition<CmsContext>;\n}\n\nexport interface ICmsFieldManageApi<TField extends CmsModelField = CmsModelField>\n extends ICmsFieldReadApi<TField> {\n createInputField(\n params: CreateTypeFieldParams<TField>\n ): CmsModelFieldDefinition | string | null;\n normalizeInput?<T>(params: NormalizeInputParams<TField>): Promise<T>;\n}\n\nexport interface ICmsModelFieldToGraphQL<TField extends CmsModelField = CmsModelField> {\n /* Metadata. */\n readonly fieldType: CmsModelFieldType;\n readonly isSearchable: boolean;\n readonly isSortable: boolean;\n readonly isFullTextSearchable: boolean;\n\n /* API surfaces. */\n readonly read: ICmsFieldReadApi<TField>;\n readonly manage: ICmsFieldManageApi<TField>;\n getReadApi(): ICmsFieldReadApi<TField>;\n getManageApi(): ICmsFieldManageApi<TField>;\n\n /* Validation & AST. */\n validateChildFields?: ValidateChildFields<TField>;\n getFieldAst?: GetCmsModelFieldAst<TField>;\n}\n\nexport const CmsModelFieldToGraphQL = createAbstraction<ICmsModelFieldToGraphQL>(\n \"Cms/GraphQL/Schema/ModelField\"\n);\n\nexport namespace CmsModelFieldToGraphQL {\n export type Interface = ICmsModelFieldToGraphQL;\n export type ReadApi<TField extends CmsModelField = CmsModelField> = ICmsFieldReadApi<TField>;\n export type ManageApi<TField extends CmsModelField = CmsModelField> =\n ICmsFieldManageApi<TField>;\n export type TypeFieldParams<TField extends CmsModelField = CmsModelField> =\n CreateTypeFieldParams<TField>;\n export type GetFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateGetFiltersParams<TField>;\n export type ListFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateListFiltersParams<TField>;\n export type ResolverParams<TField extends CmsModelField = CmsModelField> =\n CreateResolverParams<TField>;\n export type SchemaParams = CreateSchemaParams;\n export type InputNormalizeParams<TField extends CmsModelField = CmsModelField> =\n NormalizeInputParams<TField>;\n export type Resolver = ResolverResult;\n export type ChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> =\n ValidateChildFieldsParams<TField>;\n export type ChildFieldsValidate<TField extends CmsModelField = CmsModelField> =\n ValidateChildFields<TField>;\n export type ChildFieldsValidateValidate = ValidateChildFieldsValidate;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AA4GvD,OAAO,MAAMC,sBAAsB,GAAGD,iBAAiB,CACnD,+BACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAbstraction","CmsModelFieldToGraphQL"],"sources":["CmsModelFieldToGraphQL.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { GraphQLFieldResolver, Resolvers } from \"@webiny/handler-graphql/types.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/handler-graphql/types.js\";\nimport type { CmsModelField, CmsModelFieldType } from \"~/types/modelField.js\";\nimport type { CmsModel } from \"~/types/model.js\";\nimport type { CmsModelFieldDefinition } from \"~/types/types.js\";\nimport type { CmsContext } from \"~/types/types.js\";\n\nexport interface ValidateChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> {\n fields: TField[];\n originalFields: TField[];\n}\n\nexport interface ValidateChildFieldsValidate {\n (params: ValidateChildFieldsValidateParams): void;\n}\n\nexport interface ValidateChildFieldsParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n originalField?: TField;\n validate: ValidateChildFieldsValidate;\n}\n\nexport interface ValidateChildFields<TField extends CmsModelField = CmsModelField> {\n (params: ValidateChildFieldsParams<TField>): void;\n}\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { GetCmsModelFieldAst } from \"~/types/modelAst.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"./CmsModelFieldToGraphQLRegistry.js\";\n\nexport interface CreateTypeFieldParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateGetFiltersParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n}\n\nexport interface CreateListFiltersParams<TField extends CmsModelField = CmsModelField> {\n model: Pick<CmsModel, \"singularApiName\">;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateResolverParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n graphQLType: string;\n field: TField;\n createFieldResolvers: any;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport type ResolverResult =\n | GraphQLFieldResolver\n | {\n resolver: GraphQLFieldResolver | null;\n typeResolvers: Resolvers<CmsContext>;\n }\n | false;\n\nexport interface CreateSchemaParams {\n models: CmsModel[];\n}\n\nexport interface NormalizeInputParams<TField extends CmsModelField = CmsModelField> {\n model: CmsModel;\n field: TField;\n input: GenericRecord<string> | Array<GenericRecord<string>>;\n}\n\nexport interface ICmsFieldReadApi<TField extends CmsModelField = CmsModelField> {\n createTypeField(params: CreateTypeFieldParams<TField>): CmsModelFieldDefinition | string | null;\n createGetFilters?(params: CreateGetFiltersParams<TField>): string;\n createListFilters?(params: CreateListFiltersParams<TField>): string;\n createResolver?(params: CreateResolverParams<TField>): ResolverResult;\n createSchema?(params: CreateSchemaParams): GraphQLSchemaDefinition<CmsContext>;\n}\n\nexport interface ICmsFieldManageApi<\n TField extends CmsModelField = CmsModelField\n> extends ICmsFieldReadApi<TField> {\n createInputField(\n params: CreateTypeFieldParams<TField>\n ): CmsModelFieldDefinition | string | null;\n normalizeInput?<T>(params: NormalizeInputParams<TField>): Promise<T>;\n}\n\nexport interface ICmsModelFieldToGraphQL<TField extends CmsModelField = CmsModelField> {\n /* Metadata. */\n readonly fieldType: CmsModelFieldType;\n readonly isSearchable: boolean;\n readonly isSortable: boolean;\n readonly isFullTextSearchable: boolean;\n\n /* API surfaces. */\n readonly read: ICmsFieldReadApi<TField>;\n readonly manage: ICmsFieldManageApi<TField>;\n getReadApi(): ICmsFieldReadApi<TField>;\n getManageApi(): ICmsFieldManageApi<TField>;\n\n /* Validation & AST. */\n validateChildFields?: ValidateChildFields<TField>;\n getFieldAst?: GetCmsModelFieldAst<TField>;\n}\n\nexport const CmsModelFieldToGraphQL = createAbstraction<ICmsModelFieldToGraphQL>(\n \"Cms/GraphQL/Schema/ModelField\"\n);\n\nexport namespace CmsModelFieldToGraphQL {\n export type Interface = ICmsModelFieldToGraphQL;\n export type ReadApi<TField extends CmsModelField = CmsModelField> = ICmsFieldReadApi<TField>;\n export type ManageApi<TField extends CmsModelField = CmsModelField> =\n ICmsFieldManageApi<TField>;\n export type TypeFieldParams<TField extends CmsModelField = CmsModelField> =\n CreateTypeFieldParams<TField>;\n export type GetFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateGetFiltersParams<TField>;\n export type ListFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateListFiltersParams<TField>;\n export type ResolverParams<TField extends CmsModelField = CmsModelField> =\n CreateResolverParams<TField>;\n export type SchemaParams = CreateSchemaParams;\n export type InputNormalizeParams<TField extends CmsModelField = CmsModelField> =\n NormalizeInputParams<TField>;\n export type Resolver = ResolverResult;\n export type ChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> =\n ValidateChildFieldsParams<TField>;\n export type ChildFieldsValidate<TField extends CmsModelField = CmsModelField> =\n ValidateChildFields<TField>;\n export type ChildFieldsValidateValidate = ValidateChildFieldsValidate;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AA6GvD,OAAO,MAAMC,sBAAsB,GAAGD,iBAAiB,CACnD,+BACJ,CAAC","ignoreList":[]}
@@ -1 +1,4 @@
1
- export declare const CmsInstallerFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const CmsInstallerFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -1 +1,4 @@
1
- export declare const ModelBuilderFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
1
+ export declare const ModelBuilderFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -11,10 +11,8 @@ export declare const BooleanFieldType: typeof BooleanFieldTypeFactory & {
11
11
  __abstraction: import("@webiny/di").Abstraction<IFieldTypeFactory>;
12
12
  };
13
13
  declare module "../abstractions.js" {
14
- namespace FieldBuilderRegistry {
15
- interface Interface {
16
- boolean(): IBooleanFieldBuilder;
17
- }
14
+ interface IFieldBuilderRegistry {
15
+ boolean(): IBooleanFieldBuilder;
18
16
  }
19
17
  }
20
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["FieldType","DataFieldBuilder","BooleanFieldBuilder","constructor","defaultValue","value","config","settings","BooleanFieldTypeFactory","type","create","BooleanFieldType","createImplementation","implementation","dependencies"],"sources":["BooleanFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { DataFieldBuilder } from \"./FieldBuilder.js\";\n\nexport interface IBooleanFieldBuilder extends DataFieldBuilder<\"boolean\"> {\n defaultValue(value: boolean): this;\n}\n\nclass BooleanFieldBuilder extends DataFieldBuilder<\"boolean\"> implements IBooleanFieldBuilder {\n public constructor() {\n super(\"boolean\");\n }\n\n override defaultValue(value: boolean): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.defaultValue = value;\n return this;\n }\n}\n\nclass BooleanFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"boolean\";\n\n create(): IBooleanFieldBuilder {\n return new BooleanFieldBuilder();\n }\n}\n\nexport const BooleanFieldType = FieldType.createImplementation({\n implementation: BooleanFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n namespace FieldBuilderRegistry {\n interface Interface {\n boolean(): IBooleanFieldBuilder;\n }\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,gBAAgB;AAMzB,MAAMC,mBAAmB,SAASD,gBAAgB,CAA4C;EACnFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,SAAS,CAAC;EACpB;EAESC,YAAYA,CAACC,KAAc,EAAQ;IACxC,IAAI,CAACC,MAAM,CAACC,QAAQ,GAAG,IAAI,CAACD,MAAM,CAACC,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACD,MAAM,CAACC,QAAQ,CAACH,YAAY,GAAGC,KAAK;IACzC,OAAO,IAAI;EACf;AACJ;AAEA,MAAMG,uBAAuB,CAA8B;EAC9CC,IAAI,GAAG,SAAS;EAEzBC,MAAMA,CAAA,EAAyB;IAC3B,OAAO,IAAIR,mBAAmB,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMS,gBAAgB,GAAGX,SAAS,CAACY,oBAAoB,CAAC;EAC3DC,cAAc,EAAEL,uBAAuB;EACvCM,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
1
+ {"version":3,"names":["FieldType","DataFieldBuilder","BooleanFieldBuilder","constructor","defaultValue","value","config","settings","BooleanFieldTypeFactory","type","create","BooleanFieldType","createImplementation","implementation","dependencies"],"sources":["BooleanFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { DataFieldBuilder } from \"./FieldBuilder.js\";\n\nexport interface IBooleanFieldBuilder extends DataFieldBuilder<\"boolean\"> {\n defaultValue(value: boolean): this;\n}\n\nclass BooleanFieldBuilder extends DataFieldBuilder<\"boolean\"> implements IBooleanFieldBuilder {\n public constructor() {\n super(\"boolean\");\n }\n\n override defaultValue(value: boolean): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.defaultValue = value;\n return this;\n }\n}\n\nclass BooleanFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"boolean\";\n\n create(): IBooleanFieldBuilder {\n return new BooleanFieldBuilder();\n }\n}\n\nexport const BooleanFieldType = FieldType.createImplementation({\n implementation: BooleanFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n boolean(): IBooleanFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,gBAAgB;AAMzB,MAAMC,mBAAmB,SAASD,gBAAgB,CAA4C;EACnFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,SAAS,CAAC;EACpB;EAESC,YAAYA,CAACC,KAAc,EAAQ;IACxC,IAAI,CAACC,MAAM,CAACC,QAAQ,GAAG,IAAI,CAACD,MAAM,CAACC,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACD,MAAM,CAACC,QAAQ,CAACH,YAAY,GAAGC,KAAK;IACzC,OAAO,IAAI;EACf;AACJ;AAEA,MAAMG,uBAAuB,CAA8B;EAC9CC,IAAI,GAAG,SAAS;EAEzBC,MAAMA,CAAA,EAAyB;IAC3B,OAAO,IAAIR,mBAAmB,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMS,gBAAgB,GAAGX,SAAS,CAACY,oBAAoB,CAAC;EAC3DC,cAAc,EAAEL,uBAAuB;EACvCM,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["camelCase","getBaseFieldType","BaseFieldBuilder","rendererNameMap","switch","checkboxes","dateTimeInput","dateTimeInputs","dynamicZone","hidden","lexicalEditor","lexicalEditors","textarea","textareas","numberInput","numberInputs","objectAccordionSingle","objectAccordionMultiple","passthrough","radioButtons","refDialogSingle","refDialogMultiple","refAutocompleteSingle","refAutocompleteMultiple","refCheckboxes","refRadioButtons","dropdown","tags","textInput","textInputs","file","files","uiSeparator","uiAlert","uiTabs","resolveRendererName","name","DataFieldBuilder","constructor","type","label","config","validation","listValidation","list","predefinedValues","enabled","values","help","placeholder","description","note","renderer","settings","text","storageId","id","_storageId","split","pop","defaultValue","value","listMinLength","message","listMaxLength","push","args","build","fieldId","_fieldId","baseType","field"],"sources":["DataFieldBuilder.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase.js\";\nimport type {\n CmsModelField,\n CmsModelFieldPredefinedValues,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { BaseFieldBuilder, type DataFieldBuildResult } from \"./BaseFieldBuilder.js\";\n\nexport interface FieldBuilderConfig\n extends Omit<CmsModelField, \"id\" | \"fieldId\" | \"storageId\" | \"type\"> {\n _storageId?: string;\n _fieldId?: string;\n description?: string | null;\n note?: string | null;\n}\n\n/**\n * Augmentable renderer registry. Each entry maps a renderer name to its applicable field type(s) and settings.\n */\nexport interface IFieldRendererRegistry {\n switch: {\n fieldType: \"boolean\";\n settings: undefined;\n };\n checkboxes: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n dateTimeInput: {\n fieldType: \"datetime\";\n settings: undefined;\n };\n dateTimeInputs: {\n fieldType: \"datetime\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n dynamicZone: {\n fieldType: \"dynamicZone\";\n settings?: {\n open?: boolean;\n };\n };\n hidden: {\n fieldType: string;\n settings: undefined;\n };\n lexicalEditor: {\n fieldType: \"rich-text\";\n settings: undefined;\n };\n lexicalEditors: {\n fieldType: \"rich-text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n textarea: {\n fieldType: \"long-text\";\n settings: undefined;\n };\n textareas: {\n fieldType: \"long-text\";\n settings: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n numberInput: {\n fieldType: \"number\";\n settings: undefined;\n };\n numberInputs: {\n fieldType: \"number\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n objectAccordionSingle: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n };\n };\n objectAccordionMultiple: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n passthrough: {\n fieldType: string;\n settings: undefined;\n };\n radioButtons: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n refDialogSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refDialogMultiple: {\n fieldType: \"ref\";\n settings?: {\n newItemPosition?: \"first\" | \"last\";\n };\n };\n refAutocompleteSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refAutocompleteMultiple: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refCheckboxes: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refRadioButtons: {\n fieldType: \"ref\";\n settings: undefined;\n };\n dropdown: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n tags: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInput: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInputs: {\n fieldType: \"text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n file: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n files: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n uiSeparator: {\n fieldType: \"ui\";\n settings: undefined;\n };\n uiAlert: {\n fieldType: \"ui\";\n settings: {\n type: \"info\" | \"success\" | \"warning\" | \"danger\";\n };\n };\n uiTabs: {\n fieldType: \"ui\";\n settings: undefined;\n };\n}\n\n/**\n * Maps camelCase renderer names (used in the builder API) to the\n * kebab-case names expected by the frontend renderer registry.\n */\nconst rendererNameMap: Record<keyof IFieldRendererRegistry, string> = {\n switch: \"boolean-input\",\n checkboxes: \"checkboxes\",\n dateTimeInput: \"date-time-input\",\n dateTimeInputs: \"date-time-inputs\",\n dynamicZone: \"dynamicZone\",\n hidden: \"hidden\",\n lexicalEditor: \"lexical-text-input\",\n lexicalEditors: \"lexical-text-inputs\",\n textarea: \"long-text-text-area\",\n textareas: \"long-text-inputs\",\n numberInput: \"number-input\",\n numberInputs: \"number-inputs\",\n objectAccordionSingle: \"object-accordion\",\n objectAccordionMultiple: \"objects-accordion\",\n passthrough: \"passthrough\",\n radioButtons: \"radio-buttons\",\n refDialogSingle: \"ref-advanced-single\",\n refDialogMultiple: \"ref-advanced-multiple\",\n refAutocompleteSingle: \"ref-input\",\n refAutocompleteMultiple: \"ref-inputs\",\n refCheckboxes: \"ref-simple-multiple\",\n refRadioButtons: \"ref-simple-single\",\n dropdown: \"select-box\",\n tags: \"tags\",\n textInput: \"text-input\",\n textInputs: \"text-inputs\",\n file: \"file-input\",\n files: \"file-inputs\",\n uiSeparator: \"uiSeparator\",\n uiAlert: \"uiAlert\",\n uiTabs: \"uiTabs\"\n};\n\n/**\n * Resolves a camelCase renderer name to the kebab-case name used by the frontend.\n */\nfunction resolveRendererName(name: string): string {\n return rendererNameMap[name as keyof IFieldRendererRegistry] ?? name;\n}\n\n/**\n * Extracts renderer names valid for the given field type.\n * When TType is a broad `string`, all renderer names are returned.\n */\nexport type FieldRendererName<TType extends string = string> = string extends TType\n ? keyof IFieldRendererRegistry & string\n : {\n [K in keyof IFieldRendererRegistry]: TType extends IFieldRendererRegistry[K][\"fieldType\"]\n ? K\n : never;\n }[keyof IFieldRendererRegistry] &\n string;\n\nexport type FieldRendererSettings<TName extends string> = TName extends keyof IFieldRendererRegistry\n ? IFieldRendererRegistry[TName][\"settings\"]\n : Record<string, any> | undefined;\n\n/**\n * DataFieldBuilder class for data fields that produce CmsModelField instances.\n * Provides storageId, list, validation, renderer, and other data-field methods.\n */\nexport class DataFieldBuilder<TType extends string = string> extends BaseFieldBuilder<TType> {\n protected override config: FieldBuilderConfig;\n\n public constructor(type: TType, label?: string) {\n super(type, label);\n this.config = {\n label: label || \"\",\n validation: [],\n listValidation: [],\n list: false,\n predefinedValues: {\n enabled: false,\n values: []\n },\n help: null,\n placeholder: null,\n description: null,\n note: null,\n renderer: null,\n settings: {},\n tags: []\n };\n }\n\n placeholder(text: string): this {\n this.config.placeholder = text;\n return this;\n }\n\n storageId(id: string): this {\n // We do not allow developers to specify the field type!\n this.config._storageId = id.split(\"@\").pop();\n return this;\n }\n\n defaultValue(value: any): this {\n this.config.settings = { ...this.config.settings, defaultValue: value };\n return this;\n }\n\n list(): this {\n this.config.list = true;\n return this as this;\n }\n\n tags(tags: string[]): this {\n this.config.tags = tags;\n return this;\n }\n\n /**\n * List validators - these methods are available after calling list()\n */\n listMinLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"minLength\",\n message: message || `At least ${value} item(s) required.`,\n settings: { value }\n });\n }\n\n listMaxLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"maxLength\",\n message: message || `At most ${value} item(s) allowed.`,\n settings: { value }\n });\n }\n\n /**\n * Add a validation rule to this field.\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected validation(validation: CmsModelFieldValidation): this {\n this.config.validation = this.config.validation || [];\n this.config.validation.push(validation);\n return this;\n }\n\n /**\n * Add a list validation rule to this field (for list fields).\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected listValidation(validation: CmsModelFieldValidation): this {\n this.config.listValidation = this.config.listValidation || [];\n this.config.listValidation.push(validation);\n return this;\n }\n\n predefinedValues(values: CmsModelFieldPredefinedValues[\"values\"]): this {\n this.config.predefinedValues = {\n enabled: true,\n values\n };\n return this;\n }\n\n renderer<TName extends FieldRendererName<TType>>(\n name: TName,\n ...args: undefined extends FieldRendererSettings<TName>\n ? [settings?: FieldRendererSettings<TName>]\n : FieldRendererSettings<TName> extends undefined\n ? []\n : [settings: FieldRendererSettings<TName>]\n ): this {\n this.config.renderer = {\n name: resolveRendererName(name),\n settings: args[0] ?? null\n };\n return this;\n }\n\n settings(settings: Record<string, any>): this {\n this.config.settings = { ...this.config.settings, ...settings };\n return this;\n }\n\n /**\n * Build the final CmsModelField\n * @internal\n */\n build(): DataFieldBuildResult {\n const fieldId = this.config._fieldId || camelCase(this.config.label);\n const baseType = getBaseFieldType({\n type: this.type\n });\n const storageId = `${baseType}@${this.config._storageId ?? fieldId}`;\n\n return {\n type: \"data\",\n field: {\n id: fieldId,\n fieldId,\n storageId,\n type: this.type,\n label: this.config.label,\n validation: this.config.validation || [],\n listValidation: this.config.listValidation || [],\n list: this.config.list || false,\n predefinedValues: this.config.predefinedValues || {\n enabled: false,\n values: []\n },\n help: this.config.help || null,\n placeholder: this.config.placeholder || null,\n description: this.config.description || null,\n note: this.config.note || null,\n renderer: this.config.renderer || null,\n settings: this.config.settings || {},\n tags: this.config.tags || []\n }\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["camelCase","getBaseFieldType","BaseFieldBuilder","rendererNameMap","switch","checkboxes","dateTimeInput","dateTimeInputs","dynamicZone","hidden","lexicalEditor","lexicalEditors","textarea","textareas","numberInput","numberInputs","objectAccordionSingle","objectAccordionMultiple","passthrough","radioButtons","refDialogSingle","refDialogMultiple","refAutocompleteSingle","refAutocompleteMultiple","refCheckboxes","refRadioButtons","dropdown","tags","textInput","textInputs","file","files","uiSeparator","uiAlert","uiTabs","resolveRendererName","name","DataFieldBuilder","constructor","type","label","config","validation","listValidation","list","predefinedValues","enabled","values","help","placeholder","description","note","renderer","settings","text","storageId","id","_storageId","split","pop","defaultValue","value","listMinLength","message","listMaxLength","push","args","build","fieldId","_fieldId","baseType","field"],"sources":["DataFieldBuilder.ts"],"sourcesContent":["import camelCase from \"lodash/camelCase.js\";\nimport type {\n CmsModelField,\n CmsModelFieldPredefinedValues,\n CmsModelFieldValidation\n} from \"~/types/index.js\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType.js\";\nimport { BaseFieldBuilder, type DataFieldBuildResult } from \"./BaseFieldBuilder.js\";\n\nexport interface FieldBuilderConfig extends Omit<\n CmsModelField,\n \"id\" | \"fieldId\" | \"storageId\" | \"type\"\n> {\n _storageId?: string;\n _fieldId?: string;\n description?: string | null;\n note?: string | null;\n}\n\n/**\n * Augmentable renderer registry. Each entry maps a renderer name to its applicable field type(s) and settings.\n */\nexport interface IFieldRendererRegistry {\n switch: {\n fieldType: \"boolean\";\n settings: undefined;\n };\n checkboxes: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n dateTimeInput: {\n fieldType: \"datetime\";\n settings: undefined;\n };\n dateTimeInputs: {\n fieldType: \"datetime\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n dynamicZone: {\n fieldType: \"dynamicZone\";\n settings?: {\n open?: boolean;\n };\n };\n hidden: {\n fieldType: string;\n settings: undefined;\n };\n lexicalEditor: {\n fieldType: \"rich-text\";\n settings: undefined;\n };\n lexicalEditors: {\n fieldType: \"rich-text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n textarea: {\n fieldType: \"long-text\";\n settings: undefined;\n };\n textareas: {\n fieldType: \"long-text\";\n settings: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n numberInput: {\n fieldType: \"number\";\n settings: undefined;\n };\n numberInputs: {\n fieldType: \"number\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n objectAccordionSingle: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n };\n };\n objectAccordionMultiple: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n passthrough: {\n fieldType: string;\n settings: undefined;\n };\n radioButtons: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n refDialogSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refDialogMultiple: {\n fieldType: \"ref\";\n settings?: {\n newItemPosition?: \"first\" | \"last\";\n };\n };\n refAutocompleteSingle: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refAutocompleteMultiple: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refCheckboxes: {\n fieldType: \"ref\";\n settings: undefined;\n };\n refRadioButtons: {\n fieldType: \"ref\";\n settings: undefined;\n };\n dropdown: {\n fieldType: \"text\" | \"number\";\n settings: undefined;\n };\n tags: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInput: {\n fieldType: \"text\";\n settings: undefined;\n };\n textInputs: {\n fieldType: \"text\";\n settings?: {\n multiValue?: {\n addValueButtonLabel?: string;\n };\n };\n };\n file: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n files: {\n fieldType: \"file\";\n settings?: {\n imagesOnly?: boolean;\n };\n };\n uiSeparator: {\n fieldType: \"ui\";\n settings: undefined;\n };\n uiAlert: {\n fieldType: \"ui\";\n settings: {\n type: \"info\" | \"success\" | \"warning\" | \"danger\";\n };\n };\n uiTabs: {\n fieldType: \"ui\";\n settings: undefined;\n };\n}\n\n/**\n * Maps camelCase renderer names (used in the builder API) to the\n * kebab-case names expected by the frontend renderer registry.\n */\nconst rendererNameMap: Record<keyof IFieldRendererRegistry, string> = {\n switch: \"boolean-input\",\n checkboxes: \"checkboxes\",\n dateTimeInput: \"date-time-input\",\n dateTimeInputs: \"date-time-inputs\",\n dynamicZone: \"dynamicZone\",\n hidden: \"hidden\",\n lexicalEditor: \"lexical-text-input\",\n lexicalEditors: \"lexical-text-inputs\",\n textarea: \"long-text-text-area\",\n textareas: \"long-text-inputs\",\n numberInput: \"number-input\",\n numberInputs: \"number-inputs\",\n objectAccordionSingle: \"object-accordion\",\n objectAccordionMultiple: \"objects-accordion\",\n passthrough: \"passthrough\",\n radioButtons: \"radio-buttons\",\n refDialogSingle: \"ref-advanced-single\",\n refDialogMultiple: \"ref-advanced-multiple\",\n refAutocompleteSingle: \"ref-input\",\n refAutocompleteMultiple: \"ref-inputs\",\n refCheckboxes: \"ref-simple-multiple\",\n refRadioButtons: \"ref-simple-single\",\n dropdown: \"select-box\",\n tags: \"tags\",\n textInput: \"text-input\",\n textInputs: \"text-inputs\",\n file: \"file-input\",\n files: \"file-inputs\",\n uiSeparator: \"uiSeparator\",\n uiAlert: \"uiAlert\",\n uiTabs: \"uiTabs\"\n};\n\n/**\n * Resolves a camelCase renderer name to the kebab-case name used by the frontend.\n */\nfunction resolveRendererName(name: string): string {\n return rendererNameMap[name as keyof IFieldRendererRegistry] ?? name;\n}\n\n/**\n * Extracts renderer names valid for the given field type.\n * When TType is a broad `string`, all renderer names are returned.\n */\nexport type FieldRendererName<TType extends string = string> = string extends TType\n ? keyof IFieldRendererRegistry & string\n : {\n [K in keyof IFieldRendererRegistry]: TType extends IFieldRendererRegistry[K][\"fieldType\"]\n ? K\n : never;\n }[keyof IFieldRendererRegistry] &\n string;\n\nexport type FieldRendererSettings<TName extends string> = TName extends keyof IFieldRendererRegistry\n ? IFieldRendererRegistry[TName][\"settings\"]\n : Record<string, any> | undefined;\n\n/**\n * DataFieldBuilder class for data fields that produce CmsModelField instances.\n * Provides storageId, list, validation, renderer, and other data-field methods.\n */\nexport class DataFieldBuilder<TType extends string = string> extends BaseFieldBuilder<TType> {\n protected override config: FieldBuilderConfig;\n\n public constructor(type: TType, label?: string) {\n super(type, label);\n this.config = {\n label: label || \"\",\n validation: [],\n listValidation: [],\n list: false,\n predefinedValues: {\n enabled: false,\n values: []\n },\n help: null,\n placeholder: null,\n description: null,\n note: null,\n renderer: null,\n settings: {},\n tags: []\n };\n }\n\n placeholder(text: string): this {\n this.config.placeholder = text;\n return this;\n }\n\n storageId(id: string): this {\n // We do not allow developers to specify the field type!\n this.config._storageId = id.split(\"@\").pop();\n return this;\n }\n\n defaultValue(value: any): this {\n this.config.settings = { ...this.config.settings, defaultValue: value };\n return this;\n }\n\n list(): this {\n this.config.list = true;\n return this as this;\n }\n\n tags(tags: string[]): this {\n this.config.tags = tags;\n return this;\n }\n\n /**\n * List validators - these methods are available after calling list()\n */\n listMinLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"minLength\",\n message: message || `At least ${value} item(s) required.`,\n settings: { value }\n });\n }\n\n listMaxLength(value: number, message?: string): this {\n return this.listValidation({\n name: \"maxLength\",\n message: message || `At most ${value} item(s) allowed.`,\n settings: { value }\n });\n }\n\n /**\n * Add a validation rule to this field.\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected validation(validation: CmsModelFieldValidation): this {\n this.config.validation = this.config.validation || [];\n this.config.validation.push(validation);\n return this;\n }\n\n /**\n * Add a list validation rule to this field (for list fields).\n * This method is protected and should only be used by field-specific validator methods.\n * @internal\n */\n protected listValidation(validation: CmsModelFieldValidation): this {\n this.config.listValidation = this.config.listValidation || [];\n this.config.listValidation.push(validation);\n return this;\n }\n\n predefinedValues(values: CmsModelFieldPredefinedValues[\"values\"]): this {\n this.config.predefinedValues = {\n enabled: true,\n values\n };\n return this;\n }\n\n renderer<TName extends FieldRendererName<TType>>(\n name: TName,\n ...args: undefined extends FieldRendererSettings<TName>\n ? [settings?: FieldRendererSettings<TName>]\n : FieldRendererSettings<TName> extends undefined\n ? []\n : [settings: FieldRendererSettings<TName>]\n ): this {\n this.config.renderer = {\n name: resolveRendererName(name),\n settings: args[0] ?? null\n };\n return this;\n }\n\n settings(settings: Record<string, any>): this {\n this.config.settings = { ...this.config.settings, ...settings };\n return this;\n }\n\n /**\n * Build the final CmsModelField\n * @internal\n */\n build(): DataFieldBuildResult {\n const fieldId = this.config._fieldId || camelCase(this.config.label);\n const baseType = getBaseFieldType({\n type: this.type\n });\n const storageId = `${baseType}@${this.config._storageId ?? fieldId}`;\n\n return {\n type: \"data\",\n field: {\n id: fieldId,\n fieldId,\n storageId,\n type: this.type,\n label: this.config.label,\n validation: this.config.validation || [],\n listValidation: this.config.listValidation || [],\n list: this.config.list || false,\n predefinedValues: this.config.predefinedValues || {\n enabled: false,\n values: []\n },\n help: this.config.help || null,\n placeholder: this.config.placeholder || null,\n description: this.config.description || null,\n note: this.config.note || null,\n renderer: this.config.renderer || null,\n settings: this.config.settings || {},\n tags: this.config.tags || []\n }\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["FieldType","DataFieldBuilder","DateTimeFieldBuilder","constructor","required","message","validation","name","settings","dateTimeType","type","config","dateOnly","timeOnly","withTimezone","withoutTimezone","dateGte","value","dateLte","DateTimeFieldTypeFactory","create","DateTimeFieldType","createImplementation","implementation","dependencies"],"sources":["DateTimeFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { DataFieldBuilder } from \"./FieldBuilder.js\";\nimport { RequiredValidator, DateGteValidator, DateLteValidator } from \"./fieldTypeValidator.js\";\n\nexport type DateTimeType = \"date\" | \"time\" | \"dateTimeWithTimezone\" | \"dateTimeWithoutTimezone\";\n\nexport interface IDateTimeFieldBuilder\n extends DataFieldBuilder<\"datetime\">,\n RequiredValidator,\n DateGteValidator,\n DateLteValidator {\n dateTimeType(type: DateTimeType): this;\n dateOnly(): this;\n timeOnly(): this;\n withTimezone(): this;\n withoutTimezone(): this;\n}\n\nclass DateTimeFieldBuilder extends DataFieldBuilder<\"datetime\"> implements IDateTimeFieldBuilder {\n public constructor() {\n super(\"datetime\");\n }\n\n required(message?: string): this {\n return this.validation({\n name: \"required\",\n message: message || \"Value is required.\",\n settings: {}\n });\n }\n\n dateTimeType(type: DateTimeType): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.type = type;\n return this;\n }\n\n dateOnly(): this {\n return this.dateTimeType(\"date\");\n }\n\n timeOnly(): this {\n return this.dateTimeType(\"time\");\n }\n\n withTimezone(): this {\n return this.dateTimeType(\"dateTimeWithTimezone\");\n }\n\n withoutTimezone(): this {\n return this.dateTimeType(\"dateTimeWithoutTimezone\");\n }\n\n dateGte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateGte\",\n message: message || \"Date/time is earlier than the provided one.\",\n settings: { value, type }\n });\n }\n\n dateLte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateLte\",\n message: message || \"Date/time is later than the provided one.\",\n settings: { value, type }\n });\n }\n}\n\nclass DateTimeFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"datetime\";\n\n create(): IDateTimeFieldBuilder {\n return new DateTimeFieldBuilder();\n }\n}\n\nexport const DateTimeFieldType = FieldType.createImplementation({\n implementation: DateTimeFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n datetime(): IDateTimeFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,gBAAgB;AAiBzB,MAAMC,oBAAoB,SAASD,gBAAgB,CAA8C;EACtFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,UAAU,CAAC;EACrB;EAEAC,QAAQA,CAACC,OAAgB,EAAQ;IAC7B,OAAO,IAAI,CAACC,UAAU,CAAC;MACnBC,IAAI,EAAE,UAAU;MAChBF,OAAO,EAAEA,OAAO,IAAI,oBAAoB;MACxCG,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EAEAC,YAAYA,CAACC,IAAkB,EAAQ;IACnC,IAAI,CAACC,MAAM,CAACH,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACG,MAAM,CAACH,QAAQ,CAACE,IAAI,GAAGA,IAAI;IAChC,OAAO,IAAI;EACf;EAEAE,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACH,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAI,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACJ,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAK,YAAYA,CAAA,EAAS;IACjB,OAAO,IAAI,CAACL,YAAY,CAAC,sBAAsB,CAAC;EACpD;EAEAM,eAAeA,CAAA,EAAS;IACpB,OAAO,IAAI,CAACN,YAAY,CAAC,yBAAyB,CAAC;EACvD;EAEAO,OAAOA,CAACC,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,6CAA6C;MACjEG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;EAEAQ,OAAOA,CAACD,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,2CAA2C;MAC/DG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;AACJ;AAEA,MAAMS,wBAAwB,CAA8B;EAC/CT,IAAI,GAAG,UAAU;EAE1BU,MAAMA,CAAA,EAA0B;IAC5B,OAAO,IAAIlB,oBAAoB,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMmB,iBAAiB,GAAGrB,SAAS,CAACsB,oBAAoB,CAAC;EAC5DC,cAAc,EAAEJ,wBAAwB;EACxCK,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}
1
+ {"version":3,"names":["FieldType","DataFieldBuilder","DateTimeFieldBuilder","constructor","required","message","validation","name","settings","dateTimeType","type","config","dateOnly","timeOnly","withTimezone","withoutTimezone","dateGte","value","dateLte","DateTimeFieldTypeFactory","create","DateTimeFieldType","createImplementation","implementation","dependencies"],"sources":["DateTimeFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"./abstractions.js\";\nimport { DataFieldBuilder } from \"./FieldBuilder.js\";\nimport { RequiredValidator, DateGteValidator, DateLteValidator } from \"./fieldTypeValidator.js\";\n\nexport type DateTimeType = \"date\" | \"time\" | \"dateTimeWithTimezone\" | \"dateTimeWithoutTimezone\";\n\nexport interface IDateTimeFieldBuilder\n extends DataFieldBuilder<\"datetime\">, RequiredValidator, DateGteValidator, DateLteValidator {\n dateTimeType(type: DateTimeType): this;\n dateOnly(): this;\n timeOnly(): this;\n withTimezone(): this;\n withoutTimezone(): this;\n}\n\nclass DateTimeFieldBuilder extends DataFieldBuilder<\"datetime\"> implements IDateTimeFieldBuilder {\n public constructor() {\n super(\"datetime\");\n }\n\n required(message?: string): this {\n return this.validation({\n name: \"required\",\n message: message || \"Value is required.\",\n settings: {}\n });\n }\n\n dateTimeType(type: DateTimeType): this {\n this.config.settings = this.config.settings || {};\n this.config.settings.type = type;\n return this;\n }\n\n dateOnly(): this {\n return this.dateTimeType(\"date\");\n }\n\n timeOnly(): this {\n return this.dateTimeType(\"time\");\n }\n\n withTimezone(): this {\n return this.dateTimeType(\"dateTimeWithTimezone\");\n }\n\n withoutTimezone(): this {\n return this.dateTimeType(\"dateTimeWithoutTimezone\");\n }\n\n dateGte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateGte\",\n message: message || \"Date/time is earlier than the provided one.\",\n settings: { value, type }\n });\n }\n\n dateLte(value: string, message?: string): this {\n const type = this.config.settings?.type || \"date\";\n return this.validation({\n name: \"dateLte\",\n message: message || \"Date/time is later than the provided one.\",\n settings: { value, type }\n });\n }\n}\n\nclass DateTimeFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"datetime\";\n\n create(): IDateTimeFieldBuilder {\n return new DateTimeFieldBuilder();\n }\n}\n\nexport const DateTimeFieldType = FieldType.createImplementation({\n implementation: DateTimeFieldTypeFactory,\n dependencies: []\n});\n\n// Module augmentation for TypeScript autocomplete\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n datetime(): IDateTimeFieldBuilder;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,gBAAgB;AAczB,MAAMC,oBAAoB,SAASD,gBAAgB,CAA8C;EACtFE,WAAWA,CAAA,EAAG;IACjB,KAAK,CAAC,UAAU,CAAC;EACrB;EAEAC,QAAQA,CAACC,OAAgB,EAAQ;IAC7B,OAAO,IAAI,CAACC,UAAU,CAAC;MACnBC,IAAI,EAAE,UAAU;MAChBF,OAAO,EAAEA,OAAO,IAAI,oBAAoB;MACxCG,QAAQ,EAAE,CAAC;IACf,CAAC,CAAC;EACN;EAEAC,YAAYA,CAACC,IAAkB,EAAQ;IACnC,IAAI,CAACC,MAAM,CAACH,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACH,QAAQ,IAAI,CAAC,CAAC;IACjD,IAAI,CAACG,MAAM,CAACH,QAAQ,CAACE,IAAI,GAAGA,IAAI;IAChC,OAAO,IAAI;EACf;EAEAE,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACH,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAI,QAAQA,CAAA,EAAS;IACb,OAAO,IAAI,CAACJ,YAAY,CAAC,MAAM,CAAC;EACpC;EAEAK,YAAYA,CAAA,EAAS;IACjB,OAAO,IAAI,CAACL,YAAY,CAAC,sBAAsB,CAAC;EACpD;EAEAM,eAAeA,CAAA,EAAS;IACpB,OAAO,IAAI,CAACN,YAAY,CAAC,yBAAyB,CAAC;EACvD;EAEAO,OAAOA,CAACC,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,6CAA6C;MACjEG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;EAEAQ,OAAOA,CAACD,KAAa,EAAEZ,OAAgB,EAAQ;IAC3C,MAAMK,IAAI,GAAG,IAAI,CAACC,MAAM,CAACH,QAAQ,EAAEE,IAAI,IAAI,MAAM;IACjD,OAAO,IAAI,CAACJ,UAAU,CAAC;MACnBC,IAAI,EAAE,SAAS;MACfF,OAAO,EAAEA,OAAO,IAAI,2CAA2C;MAC/DG,QAAQ,EAAE;QAAES,KAAK;QAAEP;MAAK;IAC5B,CAAC,CAAC;EACN;AACJ;AAEA,MAAMS,wBAAwB,CAA8B;EAC/CT,IAAI,GAAG,UAAU;EAE1BU,MAAMA,CAAA,EAA0B;IAC5B,OAAO,IAAIlB,oBAAoB,CAAC,CAAC;EACrC;AACJ;AAEA,OAAO,MAAMmB,iBAAiB,GAAGrB,SAAS,CAACsB,oBAAoB,CAAC;EAC5DC,cAAc,EAAEJ,wBAAwB;EACxCK,YAAY,EAAE;AAClB,CAAC,CAAC;;AAEF","ignoreList":[]}