@webiny/api-headless-cms 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.a9593f74dd
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/constants.d.ts +31 -0
- package/constants.js +51 -2
- package/constants.js.map +1 -1
- package/context.js +50 -45
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +3 -1
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.js +3 -1
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.js +3 -1
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
- package/crud/contentEntry/entryDataFactories/index.js +95 -0
- package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
- package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
- package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +4 -2
- package/crud/contentEntry/entryDataValidation.js +223 -45
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +17 -10
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
- package/crud/contentEntry/referenceFieldsMapping.js +134 -111
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +5 -4
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +1 -4
- package/crud/contentEntry.crud.js +295 -466
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +1 -1
- package/crud/contentModel/beforeCreate.js +11 -9
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.js +3 -1
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +1 -1
- package/crud/contentModel/beforeUpdate.js +3 -6
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.js +3 -1
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
- package/crud/contentModel/contentModelManagerFactory.js +3 -1
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +3 -1
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.js +3 -1
- package/crud/contentModel/defaultFields.js.map +1 -1
- package/crud/contentModel/ensureTypeTag.d.ts +5 -0
- package/crud/contentModel/ensureTypeTag.js +21 -0
- package/crud/contentModel/ensureTypeTag.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.js +4 -2
- package/crud/contentModel/fields/descriptionField.js.map +1 -1
- package/crud/contentModel/fields/imageField.js +6 -8
- package/crud/contentModel/fields/imageField.js.map +1 -1
- package/crud/contentModel/fields/titleField.js +4 -2
- package/crud/contentModel/fields/titleField.js.map +1 -1
- package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
- package/crud/contentModel/listModelsFromDatabase.js +38 -0
- package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
- package/crud/contentModel/validate/endingAllowed.js +3 -1
- package/crud/contentModel/validate/endingAllowed.js.map +1 -1
- package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
- package/crud/contentModel/validate/modelId.js +3 -1
- package/crud/contentModel/validate/modelId.js.map +1 -1
- package/crud/contentModel/validate/pluralApiName.js +3 -1
- package/crud/contentModel/validate/pluralApiName.js.map +1 -1
- package/crud/contentModel/validate/singularApiName.js +3 -1
- package/crud/contentModel/validate/singularApiName.js.map +1 -1
- package/crud/contentModel/validateModel.js +3 -1
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.js +7 -6
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +531 -210
- package/crud/contentModel/validation.js +71 -11
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.js +137 -182
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
- package/crud/contentModelGroup/beforeCreate.js +15 -1
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +3 -1
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.js +3 -1
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
- package/crud/contentModelGroup/validation.d.ts +9 -6
- package/crud/contentModelGroup/validation.js +5 -2
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.d.ts +1 -1
- package/crud/contentModelGroup.crud.js +113 -112
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/system.crud.js +8 -11
- package/crud/system.crud.js.map +1 -1
- package/export/crud/exporting.d.ts +3 -0
- package/export/crud/exporting.js +49 -0
- package/export/crud/exporting.js.map +1 -0
- package/export/crud/importing.d.ts +3 -0
- package/export/crud/importing.js +79 -0
- package/export/crud/importing.js.map +1 -0
- package/export/crud/imports/importData.d.ts +14 -0
- package/export/crud/imports/importData.js +52 -0
- package/export/crud/imports/importData.js.map +1 -0
- package/export/crud/imports/importGroups.d.ts +8 -0
- package/export/crud/imports/importGroups.js +104 -0
- package/export/crud/imports/importGroups.js.map +1 -0
- package/export/crud/imports/importModels.d.ts +8 -0
- package/export/crud/imports/importModels.js +136 -0
- package/export/crud/imports/importModels.js.map +1 -0
- package/export/crud/imports/validateGroups.d.ts +8 -0
- package/export/crud/imports/validateGroups.js +112 -0
- package/export/crud/imports/validateGroups.js.map +1 -0
- package/export/crud/imports/validateInput.d.ts +19 -0
- package/export/crud/imports/validateInput.js +55 -0
- package/export/crud/imports/validateInput.js.map +1 -0
- package/export/crud/imports/validateModels.d.ts +12 -0
- package/export/crud/imports/validateModels.js +203 -0
- package/export/crud/imports/validateModels.js.map +1 -0
- package/export/crud/index.d.ts +4 -0
- package/export/crud/index.js +15 -0
- package/export/crud/index.js.map +1 -0
- package/export/crud/sanitize.d.ts +4 -0
- package/export/crud/sanitize.js +35 -0
- package/export/crud/sanitize.js.map +1 -0
- package/export/graphql/index.d.ts +3 -0
- package/export/graphql/index.js +188 -0
- package/export/graphql/index.js.map +1 -0
- package/export/index.d.ts +2 -0
- package/export/index.js +29 -0
- package/export/index.js.map +1 -0
- package/export/types.d.ts +113 -0
- package/export/types.js +22 -0
- package/export/types.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.js +3 -1
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.js +7 -1
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.js +3 -1
- package/graphql/checkEndpointAccess.js.map +1 -1
- package/graphql/createExecutableSchema.js +3 -1
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/createRequestBody.js +3 -1
- package/graphql/createRequestBody.js.map +1 -1
- package/graphql/formatErrorPayload.js +3 -1
- package/graphql/formatErrorPayload.js.map +1 -1
- package/graphql/generateSchema.js +3 -1
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/getSchema.d.ts +0 -1
- package/graphql/getSchema.js +34 -18
- package/graphql/getSchema.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +3 -1
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.js +3 -5
- package/graphql/handleRequest.js.map +1 -1
- package/graphql/index.d.ts +1 -1
- package/graphql/index.js +4 -2
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +9 -8
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +2 -3
- package/graphql/schema/baseSchema.js +64 -2
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +51 -18
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +5 -2
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +10 -10
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +14 -12
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createFieldTypePluginRecords.js +3 -1
- package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
- package/graphql/schema/createManageResolvers.js +13 -10
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +37 -19
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +7 -6
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +7 -6
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.js +12 -5
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +4 -2
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +4 -2
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +3 -1
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveMove.js +7 -10
- package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +3 -1
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +6 -5
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +3 -1
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/schemaPlugins.js +3 -1
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +3 -1
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.js +3 -1
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.js +5 -5
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +42 -19
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
- package/graphqlFields/dynamicZone/index.js +3 -1
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.js +3 -1
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.d.ts +0 -1
- package/graphqlFields/helpers.js +6 -18
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.js +5 -2
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/json.d.ts +2 -0
- package/graphqlFields/json.js +49 -0
- package/graphqlFields/json.js.map +1 -0
- package/graphqlFields/longText.js +14 -3
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +3 -1
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +24 -44
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +28 -16
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
- package/graphqlFields/richText/richTextResolver.d.ts +7 -0
- package/graphqlFields/richText/richTextResolver.js +39 -0
- package/graphqlFields/richText/richTextResolver.js.map +1 -0
- package/graphqlFields/richText.js +11 -3
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/text.js +3 -1
- package/graphqlFields/text.js.map +1 -1
- package/htmlRenderer/LexicalRenderer.d.ts +5 -0
- package/htmlRenderer/LexicalRenderer.js +28 -0
- package/htmlRenderer/LexicalRenderer.js.map +1 -0
- package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
- package/index.d.ts +2 -1
- package/index.js +20 -5
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +3 -5
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/index.js +3 -1
- package/modelManager/index.js.map +1 -1
- package/package.json +27 -26
- package/parameters/context.js +4 -2
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +7 -6
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +3 -1
- package/parameters/index.js.map +1 -1
- package/parameters/manual.js +9 -4
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +4 -3
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
- package/plugins/CmsGroupPlugin.d.ts +6 -3
- package/plugins/CmsGroupPlugin.js +8 -6
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +5 -4
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +6 -4
- package/plugins/CmsModelPlugin.js +56 -27
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +7 -4
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
- package/plugins/CmsRichTextRendererPlugin.js +28 -0
- package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
- package/plugins/StorageOperationsCmsModelPlugin.js +5 -6
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +2 -2
- package/plugins/StorageTransformPlugin.js +3 -4
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +1 -0
- package/plugins/index.js +14 -1
- package/plugins/index.js.map +1 -1
- package/storage/default.js +3 -1
- package/storage/default.js.map +1 -1
- package/storage/index.d.ts +1 -0
- package/storage/index.js +15 -0
- package/storage/index.js.map +1 -0
- package/storage/json.d.ts +2 -0
- package/storage/json.js +27 -0
- package/storage/json.js.map +1 -0
- package/storage/object.js +8 -8
- package/storage/object.js.map +1 -1
- package/types.d.ts +300 -260
- package/types.js +9 -20
- package/types.js.map +1 -1
- package/utils/access.d.ts +9 -0
- package/utils/access.js +26 -0
- package/utils/access.js.map +1 -0
- package/utils/caching/Cache.d.ts +2 -0
- package/utils/caching/Cache.js +51 -0
- package/utils/caching/Cache.js.map +1 -0
- package/utils/caching/CacheKey.d.ts +2 -0
- package/utils/caching/CacheKey.js +40 -0
- package/utils/caching/CacheKey.js.map +1 -0
- package/utils/caching/index.d.ts +2 -0
- package/utils/caching/index.js +29 -0
- package/utils/caching/index.js.map +1 -0
- package/utils/caching/types.d.ts +11 -0
- package/utils/caching/types.js +7 -0
- package/utils/caching/types.js.map +1 -0
- package/utils/converters/Converter.js +4 -5
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +13 -7
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +11 -4
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.js +6 -1
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.js +3 -1
- package/utils/createTypeName.js.map +1 -1
- package/utils/date.d.ts +10 -0
- package/utils/date.js +36 -0
- package/utils/date.js.map +1 -0
- package/utils/entryStorage.d.ts +4 -4
- package/utils/entryStorage.js +6 -4
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +9 -8
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.js +3 -1
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.js +3 -1
- package/utils/getEntryDescription.js.map +1 -1
- package/utils/getEntryImage.js +3 -1
- package/utils/getEntryImage.js.map +1 -1
- package/utils/getEntryTitle.js +3 -1
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
- package/utils/getSchemaFromFieldPlugins.js +22 -4
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/identity.d.ts +2 -0
- package/utils/identity.js +20 -0
- package/utils/identity.js.map +1 -0
- package/utils/incrementEntryIdVersion.js +3 -1
- package/utils/incrementEntryIdVersion.js.map +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +18 -0
- package/utils/index.js.map +1 -0
- package/utils/permissions/EntriesPermissions.js +3 -1
- package/utils/permissions/EntriesPermissions.js.map +1 -1
- package/utils/permissions/ModelGroupsPermissions.d.ts +3 -5
- package/utils/permissions/ModelGroupsPermissions.js +8 -6
- package/utils/permissions/ModelGroupsPermissions.js.map +1 -1
- package/utils/permissions/ModelsPermissions.d.ts +9 -7
- package/utils/permissions/ModelsPermissions.js +5 -6
- package/utils/permissions/ModelsPermissions.js.map +1 -1
- package/utils/renderFields.js +3 -1
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +5 -4
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.js +3 -1
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +12 -4
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.js +5 -2
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +3 -1
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.js +3 -1
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +3 -1
- package/validators/dateLte.js.map +1 -1
- package/validators/gte.js +4 -3
- package/validators/gte.js.map +1 -1
- package/validators/in.js +4 -3
- package/validators/in.js.map +1 -1
- package/validators/index.js +4 -3
- package/validators/index.js.map +1 -1
- package/validators/lte.js +4 -3
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +4 -3
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +4 -3
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +5 -3
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.js +3 -1
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.js +3 -1
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.js +3 -1
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +3 -1
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.js +3 -1
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +3 -1
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.js +3 -1
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.js +3 -1
- package/validators/required.js.map +1 -1
- package/validators/timeGte.js +4 -3
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +4 -3
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.js +4 -2
- package/validators/unique.js.map +1 -1
- package/crud/contentModel/afterCreate.d.ts +0 -8
- package/crud/contentModel/afterCreate.js +0 -16
- package/crud/contentModel/afterCreate.js.map +0 -1
- package/crud/contentModel/afterCreateFrom.d.ts +0 -8
- package/crud/contentModel/afterCreateFrom.js +0 -16
- package/crud/contentModel/afterCreateFrom.js.map +0 -1
- package/crud/contentModel/afterDelete.d.ts +0 -8
- package/crud/contentModel/afterDelete.js +0 -16
- package/crud/contentModel/afterDelete.js.map +0 -1
- package/crud/contentModel/afterUpdate.d.ts +0 -8
- package/crud/contentModel/afterUpdate.js +0 -16
- package/crud/contentModel/afterUpdate.js.map +0 -1
- package/crud/contentModel/validateLayout.d.ts +0 -2
- package/crud/contentModel/validateLayout.js +0 -28
- package/crud/contentModel/validateLayout.js.map +0 -1
- package/crud/settings.crud.d.ts +0 -12
- package/crud/settings.crud.js +0 -62
- package/crud/settings.crud.js.map +0 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
- package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
- package/utils/permissions/SettingsPermissions.d.ts +0 -4
- package/utils/permissions/SettingsPermissions.js +0 -9
- package/utils/permissions/SettingsPermissions.js.map +0 -1
- package/validators/dynamicZone.d.ts +0 -2
- package/validators/dynamicZone.js +0 -20
- package/validators/dynamicZone.js.map +0 -1
package/constants.d.ts
CHANGED
|
@@ -1 +1,32 @@
|
|
|
1
|
+
import { CmsIdentity } from "./types";
|
|
1
2
|
export declare const ROOT_FOLDER = "root";
|
|
3
|
+
export declare const ENTRY_META_FIELDS: readonly ["createdOn", "modifiedOn", "savedOn", "firstPublishedOn", "lastPublishedOn", "createdBy", "modifiedBy", "savedBy", "firstPublishedBy", "lastPublishedBy", "revisionCreatedOn", "revisionModifiedOn", "revisionSavedOn", "revisionFirstPublishedOn", "revisionLastPublishedOn", "revisionCreatedBy", "revisionModifiedBy", "revisionSavedBy", "revisionFirstPublishedBy", "revisionLastPublishedBy"];
|
|
4
|
+
export declare type EntryMetaFieldName = (typeof ENTRY_META_FIELDS)[number];
|
|
5
|
+
export interface RecordWithEntryMetaFields {
|
|
6
|
+
revisionCreatedOn: string;
|
|
7
|
+
revisionSavedOn: string;
|
|
8
|
+
revisionModifiedOn: string | null;
|
|
9
|
+
revisionFirstPublishedOn: string | null;
|
|
10
|
+
revisionLastPublishedOn: string | null;
|
|
11
|
+
revisionCreatedBy: CmsIdentity;
|
|
12
|
+
revisionSavedBy: CmsIdentity;
|
|
13
|
+
revisionModifiedBy: CmsIdentity | null;
|
|
14
|
+
revisionFirstPublishedBy: CmsIdentity | null;
|
|
15
|
+
revisionLastPublishedBy: CmsIdentity | null;
|
|
16
|
+
createdOn: string;
|
|
17
|
+
savedOn: string;
|
|
18
|
+
modifiedOn: string | null;
|
|
19
|
+
firstPublishedOn: string | null;
|
|
20
|
+
lastPublishedOn: string | null;
|
|
21
|
+
createdBy: CmsIdentity;
|
|
22
|
+
savedBy: CmsIdentity;
|
|
23
|
+
modifiedBy: CmsIdentity | null;
|
|
24
|
+
firstPublishedBy: CmsIdentity | null;
|
|
25
|
+
lastPublishedBy: CmsIdentity | null;
|
|
26
|
+
}
|
|
27
|
+
export declare const pickEntryMetaFields: (object: Partial<RecordWithEntryMetaFields>, filter?: ((fieldName: EntryMetaFieldName | string) => boolean) | undefined) => Partial<RecordWithEntryMetaFields>;
|
|
28
|
+
export declare const isNullableEntryMetaField: (fieldName: EntryMetaFieldName) => boolean;
|
|
29
|
+
export declare const isDateTimeEntryMetaField: (fieldName: EntryMetaFieldName) => boolean;
|
|
30
|
+
export declare const isIdentityEntryMetaField: (fieldName: EntryMetaFieldName) => boolean;
|
|
31
|
+
export declare const isRevisionEntryMetaField: (fieldName: string) => boolean;
|
|
32
|
+
export declare const isEntryLevelEntryMetaField: (fieldName: string) => boolean;
|
package/constants.js
CHANGED
|
@@ -3,6 +3,55 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ROOT_FOLDER = void 0;
|
|
6
|
+
exports.pickEntryMetaFields = exports.isRevisionEntryMetaField = exports.isNullableEntryMetaField = exports.isIdentityEntryMetaField = exports.isEntryLevelEntryMetaField = exports.isDateTimeEntryMetaField = exports.ROOT_FOLDER = exports.ENTRY_META_FIELDS = void 0;
|
|
7
7
|
const ROOT_FOLDER = "root";
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
// Content entries - xOn and xBy meta fields.
|
|
10
|
+
exports.ROOT_FOLDER = ROOT_FOLDER;
|
|
11
|
+
const ENTRY_META_FIELDS = [
|
|
12
|
+
// Entry-level meta fields.
|
|
13
|
+
"createdOn", "modifiedOn", "savedOn", "firstPublishedOn", "lastPublishedOn", "createdBy", "modifiedBy", "savedBy", "firstPublishedBy", "lastPublishedBy",
|
|
14
|
+
// Revision-level meta fields.
|
|
15
|
+
"revisionCreatedOn", "revisionModifiedOn", "revisionSavedOn", "revisionFirstPublishedOn", "revisionLastPublishedOn", "revisionCreatedBy", "revisionModifiedBy", "revisionSavedBy", "revisionFirstPublishedBy", "revisionLastPublishedBy"];
|
|
16
|
+
exports.ENTRY_META_FIELDS = ENTRY_META_FIELDS;
|
|
17
|
+
const pickEntryMetaFields = (object, filter) => {
|
|
18
|
+
const pickedEntryMetaFields = {};
|
|
19
|
+
for (const entryMetaFieldName of ENTRY_META_FIELDS) {
|
|
20
|
+
if (entryMetaFieldName in object) {
|
|
21
|
+
const mustPick = !filter || filter(entryMetaFieldName);
|
|
22
|
+
if (mustPick) {
|
|
23
|
+
Object.assign(pickedEntryMetaFields, {
|
|
24
|
+
[entryMetaFieldName]: object[entryMetaFieldName]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return pickedEntryMetaFields;
|
|
30
|
+
};
|
|
31
|
+
exports.pickEntryMetaFields = pickEntryMetaFields;
|
|
32
|
+
const isNullableEntryMetaField = fieldName => {
|
|
33
|
+
// Only modifiedX and publishedX fields are nullable.
|
|
34
|
+
const lcFieldName = fieldName.toLowerCase();
|
|
35
|
+
return lcFieldName.includes("modified") || lcFieldName.includes("published");
|
|
36
|
+
};
|
|
37
|
+
exports.isNullableEntryMetaField = isNullableEntryMetaField;
|
|
38
|
+
const isDateTimeEntryMetaField = fieldName => {
|
|
39
|
+
// Only field ending with "On" are date/time fields.
|
|
40
|
+
return fieldName.endsWith("On");
|
|
41
|
+
};
|
|
42
|
+
exports.isDateTimeEntryMetaField = isDateTimeEntryMetaField;
|
|
43
|
+
const isIdentityEntryMetaField = fieldName => {
|
|
44
|
+
// Only field ending with "On" are date/time fields.
|
|
45
|
+
return fieldName.endsWith("By");
|
|
46
|
+
};
|
|
47
|
+
exports.isIdentityEntryMetaField = isIdentityEntryMetaField;
|
|
48
|
+
const isRevisionEntryMetaField = fieldName => {
|
|
49
|
+
return ENTRY_META_FIELDS.includes(fieldName) && fieldName.startsWith("revision");
|
|
50
|
+
};
|
|
51
|
+
exports.isRevisionEntryMetaField = isRevisionEntryMetaField;
|
|
52
|
+
const isEntryLevelEntryMetaField = fieldName => {
|
|
53
|
+
return ENTRY_META_FIELDS.includes(fieldName) && !fieldName.startsWith("revision");
|
|
54
|
+
};
|
|
55
|
+
exports.isEntryLevelEntryMetaField = isEntryLevelEntryMetaField;
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=constants.js.map
|
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ROOT_FOLDER"],"sources":["constants.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["ROOT_FOLDER","exports","ENTRY_META_FIELDS","pickEntryMetaFields","object","filter","pickedEntryMetaFields","entryMetaFieldName","mustPick","Object","assign","isNullableEntryMetaField","fieldName","lcFieldName","toLowerCase","includes","isDateTimeEntryMetaField","endsWith","isIdentityEntryMetaField","isRevisionEntryMetaField","startsWith","isEntryLevelEntryMetaField"],"sources":["constants.ts"],"sourcesContent":["import { CmsIdentity } from \"~/types\";\n\nexport const ROOT_FOLDER = \"root\";\n\n// Content entries - xOn and xBy meta fields.\nexport const ENTRY_META_FIELDS = [\n // Entry-level meta fields.\n \"createdOn\",\n \"modifiedOn\",\n \"savedOn\",\n \"firstPublishedOn\",\n \"lastPublishedOn\",\n \"createdBy\",\n \"modifiedBy\",\n \"savedBy\",\n \"firstPublishedBy\",\n \"lastPublishedBy\",\n\n // Revision-level meta fields.\n \"revisionCreatedOn\",\n \"revisionModifiedOn\",\n \"revisionSavedOn\",\n \"revisionFirstPublishedOn\",\n \"revisionLastPublishedOn\",\n \"revisionCreatedBy\",\n \"revisionModifiedBy\",\n \"revisionSavedBy\",\n \"revisionFirstPublishedBy\",\n \"revisionLastPublishedBy\"\n] as const;\n\nexport type EntryMetaFieldName = (typeof ENTRY_META_FIELDS)[number];\n\nexport interface RecordWithEntryMetaFields {\n revisionCreatedOn: string;\n revisionSavedOn: string;\n revisionModifiedOn: string | null;\n revisionFirstPublishedOn: string | null;\n revisionLastPublishedOn: string | null;\n revisionCreatedBy: CmsIdentity;\n revisionSavedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n // Entry-level meta fields.\n createdOn: string;\n savedOn: string;\n modifiedOn: string | null;\n firstPublishedOn: string | null;\n lastPublishedOn: string | null;\n createdBy: CmsIdentity;\n savedBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n}\n\nexport const pickEntryMetaFields = (\n object: Partial<RecordWithEntryMetaFields>,\n filter?: (fieldName: EntryMetaFieldName | string) => boolean\n) => {\n const pickedEntryMetaFields: Partial<RecordWithEntryMetaFields> = {};\n for (const entryMetaFieldName of ENTRY_META_FIELDS) {\n if (entryMetaFieldName in object) {\n const mustPick = !filter || filter(entryMetaFieldName);\n if (mustPick) {\n Object.assign(pickedEntryMetaFields, {\n [entryMetaFieldName]: object[entryMetaFieldName]\n });\n }\n }\n }\n\n return pickedEntryMetaFields;\n};\n\nexport const isNullableEntryMetaField = (fieldName: EntryMetaFieldName) => {\n // Only modifiedX and publishedX fields are nullable.\n const lcFieldName = fieldName.toLowerCase();\n return lcFieldName.includes(\"modified\") || lcFieldName.includes(\"published\");\n};\n\nexport const isDateTimeEntryMetaField = (fieldName: EntryMetaFieldName) => {\n // Only field ending with \"On\" are date/time fields.\n return fieldName.endsWith(\"On\");\n};\n\nexport const isIdentityEntryMetaField = (fieldName: EntryMetaFieldName) => {\n // Only field ending with \"On\" are date/time fields.\n return fieldName.endsWith(\"By\");\n};\n\nexport const isRevisionEntryMetaField = (fieldName: string) => {\n return (\n ENTRY_META_FIELDS.includes(fieldName as EntryMetaFieldName) &&\n fieldName.startsWith(\"revision\")\n );\n};\n\nexport const isEntryLevelEntryMetaField = (fieldName: string) => {\n return (\n ENTRY_META_FIELDS.includes(fieldName as EntryMetaFieldName) &&\n !fieldName.startsWith(\"revision\")\n );\n};\n"],"mappings":";;;;;;AAEO,MAAMA,WAAW,GAAG,MAAM;;AAEjC;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AACO,MAAME,iBAAiB,GAAG;AAC7B;AACA,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,iBAAiB;AAEjB;AACA,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,CACnB;AAACD,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AA6BJ,MAAMC,mBAAmB,GAAGA,CAC/BC,MAA0C,EAC1CC,MAA4D,KAC3D;EACD,MAAMC,qBAAyD,GAAG,CAAC,CAAC;EACpE,KAAK,MAAMC,kBAAkB,IAAIL,iBAAiB,EAAE;IAChD,IAAIK,kBAAkB,IAAIH,MAAM,EAAE;MAC9B,MAAMI,QAAQ,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACE,kBAAkB,CAAC;MACtD,IAAIC,QAAQ,EAAE;QACVC,MAAM,CAACC,MAAM,CAACJ,qBAAqB,EAAE;UACjC,CAACC,kBAAkB,GAAGH,MAAM,CAACG,kBAAkB;QACnD,CAAC,CAAC;MACN;IACJ;EACJ;EAEA,OAAOD,qBAAqB;AAChC,CAAC;AAACL,OAAA,CAAAE,mBAAA,GAAAA,mBAAA;AAEK,MAAMQ,wBAAwB,GAAIC,SAA6B,IAAK;EACvE;EACA,MAAMC,WAAW,GAAGD,SAAS,CAACE,WAAW,CAAC,CAAC;EAC3C,OAAOD,WAAW,CAACE,QAAQ,CAAC,UAAU,CAAC,IAAIF,WAAW,CAACE,QAAQ,CAAC,WAAW,CAAC;AAChF,CAAC;AAACd,OAAA,CAAAU,wBAAA,GAAAA,wBAAA;AAEK,MAAMK,wBAAwB,GAAIJ,SAA6B,IAAK;EACvE;EACA,OAAOA,SAAS,CAACK,QAAQ,CAAC,IAAI,CAAC;AACnC,CAAC;AAAChB,OAAA,CAAAe,wBAAA,GAAAA,wBAAA;AAEK,MAAME,wBAAwB,GAAIN,SAA6B,IAAK;EACvE;EACA,OAAOA,SAAS,CAACK,QAAQ,CAAC,IAAI,CAAC;AACnC,CAAC;AAAChB,OAAA,CAAAiB,wBAAA,GAAAA,wBAAA;AAEK,MAAMC,wBAAwB,GAAIP,SAAiB,IAAK;EAC3D,OACIV,iBAAiB,CAACa,QAAQ,CAACH,SAA+B,CAAC,IAC3DA,SAAS,CAACQ,UAAU,CAAC,UAAU,CAAC;AAExC,CAAC;AAACnB,OAAA,CAAAkB,wBAAA,GAAAA,wBAAA;AAEK,MAAME,0BAA0B,GAAIT,SAAiB,IAAK;EAC7D,OACIV,iBAAiB,CAACa,QAAQ,CAACH,SAA+B,CAAC,IAC3D,CAACA,SAAS,CAACQ,UAAU,CAAC,UAAU,CAAC;AAEzC,CAAC;AAACnB,OAAA,CAAAoB,0BAAA,GAAAA,0BAAA"}
|
package/context.js
CHANGED
|
@@ -5,12 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.createContextPlugin = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
9
|
var _api = require("@webiny/api");
|
|
11
10
|
var _CmsParametersPlugin = require("./plugins/CmsParametersPlugin");
|
|
12
11
|
var _system = require("./crud/system.crud");
|
|
13
|
-
var _settings = require("./crud/settings.crud");
|
|
14
12
|
var _contentModelGroup = require("./crud/contentModelGroup.crud");
|
|
15
13
|
var _contentModel = require("./crud/contentModel.crud");
|
|
16
14
|
var _contentEntry = require("./crud/contentEntry.crud");
|
|
@@ -19,7 +17,8 @@ var _valueKeyStorageConverter = require("./utils/converters/valueKeyStorageConve
|
|
|
19
17
|
var _ModelsPermissions = require("./utils/permissions/ModelsPermissions");
|
|
20
18
|
var _ModelGroupsPermissions = require("./utils/permissions/ModelGroupsPermissions");
|
|
21
19
|
var _EntriesPermissions = require("./utils/permissions/EntriesPermissions");
|
|
22
|
-
var
|
|
20
|
+
var _export = require("./export");
|
|
21
|
+
var _importing = require("./export/crud/importing");
|
|
23
22
|
const getParameters = async context => {
|
|
24
23
|
const plugins = context.plugins.byType(_CmsParametersPlugin.CmsParametersPlugin.type);
|
|
25
24
|
for (const plugin of plugins) {
|
|
@@ -70,54 +69,58 @@ const createContextPlugin = ({
|
|
|
70
69
|
getPermissions: () => context.security.getPermissions("cms.contentEntry"),
|
|
71
70
|
fullAccessPermissionName: "cms.*"
|
|
72
71
|
});
|
|
73
|
-
|
|
74
|
-
getIdentity: context.security.getIdentity,
|
|
75
|
-
getPermissions: () => context.security.getPermissions("cms.settings"),
|
|
76
|
-
fullAccessPermissionName: "cms.*"
|
|
77
|
-
});
|
|
78
|
-
context.cms = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
|
72
|
+
context.cms = {
|
|
79
73
|
type,
|
|
80
74
|
locale,
|
|
81
75
|
getLocale,
|
|
82
76
|
READ: type === "read",
|
|
83
77
|
PREVIEW: type === "preview",
|
|
84
78
|
MANAGE: type === "manage",
|
|
85
|
-
storageOperations
|
|
86
|
-
}, (0, _system.createSystemCrud)({
|
|
87
|
-
context,
|
|
88
|
-
getTenant,
|
|
89
|
-
getLocale,
|
|
90
|
-
getIdentity,
|
|
91
|
-
storageOperations
|
|
92
|
-
})), (0, _settings.createSettingsCrud)({
|
|
93
|
-
context,
|
|
94
|
-
getTenant,
|
|
95
|
-
getLocale,
|
|
96
|
-
storageOperations,
|
|
97
|
-
settingsPermissions
|
|
98
|
-
})), (0, _contentModelGroup.createModelGroupsCrud)({
|
|
99
|
-
context,
|
|
100
|
-
getTenant,
|
|
101
|
-
getLocale,
|
|
102
|
-
getIdentity,
|
|
103
79
|
storageOperations,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
80
|
+
permissions: {
|
|
81
|
+
groups: modelGroupsPermissions,
|
|
82
|
+
models: modelsPermissions,
|
|
83
|
+
entries: entriesPermissions
|
|
84
|
+
},
|
|
85
|
+
...(0, _system.createSystemCrud)({
|
|
86
|
+
context,
|
|
87
|
+
getTenant,
|
|
88
|
+
getLocale,
|
|
89
|
+
getIdentity,
|
|
90
|
+
storageOperations
|
|
91
|
+
}),
|
|
92
|
+
...(0, _contentModelGroup.createModelGroupsCrud)({
|
|
93
|
+
context,
|
|
94
|
+
getTenant,
|
|
95
|
+
getLocale,
|
|
96
|
+
getIdentity,
|
|
97
|
+
storageOperations,
|
|
98
|
+
modelGroupsPermissions
|
|
99
|
+
}),
|
|
100
|
+
...(0, _contentModel.createModelsCrud)({
|
|
101
|
+
context,
|
|
102
|
+
getLocale,
|
|
103
|
+
getTenant,
|
|
104
|
+
getIdentity,
|
|
105
|
+
storageOperations,
|
|
106
|
+
modelsPermissions
|
|
107
|
+
}),
|
|
108
|
+
...(0, _contentEntry.createContentEntryCrud)({
|
|
109
|
+
context,
|
|
110
|
+
getIdentity,
|
|
111
|
+
getTenant,
|
|
112
|
+
getLocale,
|
|
113
|
+
storageOperations,
|
|
114
|
+
entriesPermissions,
|
|
115
|
+
modelsPermissions
|
|
116
|
+
}),
|
|
117
|
+
export: {
|
|
118
|
+
...(0, _export.createExportCrud)(context)
|
|
119
|
+
},
|
|
120
|
+
importing: {
|
|
121
|
+
...(0, _importing.createImportCrud)(context)
|
|
122
|
+
}
|
|
123
|
+
};
|
|
121
124
|
if (!storageOperations.init) {
|
|
122
125
|
return;
|
|
123
126
|
}
|
|
@@ -127,4 +130,6 @@ const createContextPlugin = ({
|
|
|
127
130
|
plugin.name = "cms.createContext";
|
|
128
131
|
return plugin;
|
|
129
132
|
};
|
|
130
|
-
exports.createContextPlugin = createContextPlugin;
|
|
133
|
+
exports.createContextPlugin = createContextPlugin;
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=context.js.map
|
package/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getParameters","context","plugins","byType","CmsParametersPlugin","type","plugin","result","WebinyError","createContextPlugin","storageOperations","ContextPlugin","locale","getLocale","systemLocale","i18n","getIdentity","security","getTenant","tenancy","getCurrentTenant","register","StorageOperationsCmsModelPlugin","createCmsModelFieldConvertersAttachFactory","benchmark","measure","beforeInit","modelGroupsPermissions","ModelGroupsPermissions","getPermissions","fullAccessPermissionName","modelsPermissions","ModelsPermissions","entriesPermissions","EntriesPermissions","settingsPermissions","SettingsPermissions","cms","READ","PREVIEW","MANAGE","createSystemCrud","createSettingsCrud","createModelGroupsCrud","createModelsCrud","createContentEntryCrud","init","name"],"sources":["context.ts"],"sourcesContent":["import { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsParametersPlugin, CmsParametersPluginResponse } from \"~/plugins/CmsParametersPlugin\";\nimport { createSystemCrud } from \"~/crud/system.crud\";\nimport { createSettingsCrud } from \"~/crud/settings.crud\";\nimport { createModelGroupsCrud } from \"~/crud/contentModelGroup.crud\";\nimport { createModelsCrud } from \"~/crud/contentModel.crud\";\nimport { createContentEntryCrud } from \"~/crud/contentEntry.crud\";\nimport { StorageOperationsCmsModelPlugin } from \"~/plugins\";\nimport { createCmsModelFieldConvertersAttachFactory } from \"~/utils/converters/valueKeyStorageConverter\";\nimport { ModelsPermissions } from \"~/utils/permissions/ModelsPermissions\";\nimport { ModelGroupsPermissions } from \"./utils/permissions/ModelGroupsPermissions\";\nimport { EntriesPermissions } from \"./utils/permissions/EntriesPermissions\";\nimport { SettingsPermissions } from \"./utils/permissions/SettingsPermissions\";\n\nconst getParameters = async (context: CmsContext): Promise<CmsParametersPluginResponse> => {\n const plugins = context.plugins.byType<CmsParametersPlugin>(CmsParametersPlugin.type);\n\n for (const plugin of plugins) {\n const result = await plugin.getParameters(context);\n if (result !== null) {\n return result;\n }\n }\n throw new WebinyError(\n \"Could not determine locale and/or type of the CMS.\",\n \"CMS_LOCALE_AND_TYPE_ERROR\"\n );\n};\n\nexport interface CrudParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createContextPlugin = ({ storageOperations }: CrudParams) => {\n const plugin = new ContextPlugin<CmsContext>(async context => {\n const { type, locale } = await getParameters(context);\n\n const getLocale = () => {\n const systemLocale = context.i18n.getLocale(locale);\n if (!systemLocale) {\n throw new WebinyError(`There is no locale \"${locale}\" in the system.`);\n }\n return systemLocale;\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n context.plugins.register(\n new StorageOperationsCmsModelPlugin(\n createCmsModelFieldConvertersAttachFactory(context.plugins)\n )\n );\n\n await context.benchmark.measure(\"headlessCms.createContext\", async () => {\n await storageOperations.beforeInit(context);\n\n const modelGroupsPermissions = new ModelGroupsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModelGroup\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n const modelsPermissions = new ModelsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModel\"),\n fullAccessPermissionName: \"cms.*\",\n modelGroupsPermissions\n });\n\n const entriesPermissions = new EntriesPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentEntry\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n const settingsPermissions = new SettingsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.settings\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n context.cms = {\n type,\n locale,\n getLocale,\n READ: type === \"read\",\n PREVIEW: type === \"preview\",\n MANAGE: type === \"manage\",\n storageOperations,\n ...createSystemCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createSettingsCrud({\n context,\n getTenant,\n getLocale,\n storageOperations,\n settingsPermissions\n }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations,\n modelGroupsPermissions\n }),\n ...createModelsCrud({\n context,\n getLocale,\n getTenant,\n getIdentity,\n storageOperations,\n modelsPermissions\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n getTenant,\n getLocale,\n storageOperations,\n entriesPermissions,\n modelsPermissions\n })\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context);\n });\n });\n\n plugin.name = \"cms.createContext\";\n\n return plugin;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_api","_CmsParametersPlugin","_system","_contentModelGroup","_contentModel","_contentEntry","_plugins","_valueKeyStorageConverter","_ModelsPermissions","_ModelGroupsPermissions","_EntriesPermissions","_export","_importing","getParameters","context","plugins","byType","CmsParametersPlugin","type","plugin","result","WebinyError","createContextPlugin","storageOperations","ContextPlugin","locale","getLocale","systemLocale","i18n","getIdentity","security","getTenant","tenancy","getCurrentTenant","register","StorageOperationsCmsModelPlugin","createCmsModelFieldConvertersAttachFactory","benchmark","measure","beforeInit","modelGroupsPermissions","ModelGroupsPermissions","getPermissions","fullAccessPermissionName","modelsPermissions","ModelsPermissions","entriesPermissions","EntriesPermissions","cms","READ","PREVIEW","MANAGE","permissions","groups","models","entries","createSystemCrud","createModelGroupsCrud","createModelsCrud","createContentEntryCrud","export","createExportCrud","importing","createImportCrud","init","name","exports"],"sources":["context.ts"],"sourcesContent":["import { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsParametersPlugin, CmsParametersPluginResponse } from \"~/plugins/CmsParametersPlugin\";\nimport { createSystemCrud } from \"~/crud/system.crud\";\nimport { createModelGroupsCrud } from \"~/crud/contentModelGroup.crud\";\nimport { createModelsCrud } from \"~/crud/contentModel.crud\";\nimport { createContentEntryCrud } from \"~/crud/contentEntry.crud\";\nimport { StorageOperationsCmsModelPlugin } from \"~/plugins\";\nimport { createCmsModelFieldConvertersAttachFactory } from \"~/utils/converters/valueKeyStorageConverter\";\nimport { ModelsPermissions } from \"~/utils/permissions/ModelsPermissions\";\nimport { ModelGroupsPermissions } from \"./utils/permissions/ModelGroupsPermissions\";\nimport { EntriesPermissions } from \"./utils/permissions/EntriesPermissions\";\nimport { createExportCrud } from \"~/export\";\nimport { createImportCrud } from \"~/export/crud/importing\";\n\nconst getParameters = async (context: CmsContext): Promise<CmsParametersPluginResponse> => {\n const plugins = context.plugins.byType<CmsParametersPlugin>(CmsParametersPlugin.type);\n\n for (const plugin of plugins) {\n const result = await plugin.getParameters(context);\n if (result !== null) {\n return result;\n }\n }\n throw new WebinyError(\n \"Could not determine locale and/or type of the CMS.\",\n \"CMS_LOCALE_AND_TYPE_ERROR\"\n );\n};\n\nexport interface CrudParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createContextPlugin = ({ storageOperations }: CrudParams) => {\n const plugin = new ContextPlugin<CmsContext>(async context => {\n const { type, locale } = await getParameters(context);\n\n const getLocale = () => {\n const systemLocale = context.i18n.getLocale(locale);\n if (!systemLocale) {\n throw new WebinyError(`There is no locale \"${locale}\" in the system.`);\n }\n return systemLocale;\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n context.plugins.register(\n new StorageOperationsCmsModelPlugin(\n createCmsModelFieldConvertersAttachFactory(context.plugins)\n )\n );\n\n await context.benchmark.measure(\"headlessCms.createContext\", async () => {\n await storageOperations.beforeInit(context);\n\n const modelGroupsPermissions = new ModelGroupsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModelGroup\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n const modelsPermissions = new ModelsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModel\"),\n fullAccessPermissionName: \"cms.*\",\n modelGroupsPermissions\n });\n\n const entriesPermissions = new EntriesPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentEntry\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n context.cms = {\n type,\n locale,\n getLocale,\n READ: type === \"read\",\n PREVIEW: type === \"preview\",\n MANAGE: type === \"manage\",\n storageOperations,\n permissions: {\n groups: modelGroupsPermissions,\n models: modelsPermissions,\n entries: entriesPermissions\n },\n ...createSystemCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations,\n modelGroupsPermissions\n }),\n ...createModelsCrud({\n context,\n getLocale,\n getTenant,\n getIdentity,\n storageOperations,\n modelsPermissions\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n getTenant,\n getLocale,\n storageOperations,\n entriesPermissions,\n modelsPermissions\n }),\n export: {\n ...createExportCrud(context)\n },\n importing: {\n ...createImportCrud(context)\n }\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context);\n });\n });\n\n plugin.name = \"cms.createContext\";\n\n return plugin;\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA;AAMO,
|
|
1
|
+
{"version":3,"names":["_markLockedFields","require","assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields","exports"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,sBAAsB,GAAIC,MAAoC,IAAK;EAC5E,MAAM;IAAEC,OAAO;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAE9CE,kBAAkB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IACzC,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM;MAAEM;IAAM,CAAC,GAAG,MAAML,OAAO,CAACM,GAAG,CAACC,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACL,KAAK,EAAE;MACtEM,KAAK,EAAE;QACHC,WAAW,EAAER,KAAK,CAACS,OAAO;QAC1BC,MAAM,EAAE;MACZ,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIT,KAAK,CAACU,MAAM,GAAG,CAAC,EAAE;MAClB;IACJ;IACA,MAAM,IAAAC,oCAAkB,EAAC;MACrBhB,OAAO;MACPI;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACa,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["assignBeforeEntryCreate","params","context","onEntryBeforeCreate","subscribe","entry","model","markLockedFields"],"sources":["beforeCreate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeCreateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryCreateParams {\n context: CmsContext;\n onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;\n}\nexport const assignBeforeEntryCreate = (params: AssignBeforeEntryCreateParams) => {\n const { context, onEntryBeforeCreate } = params;\n\n onEntryBeforeCreate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA;AAMO,
|
|
1
|
+
{"version":3,"names":["_markLockedFields","require","assignBeforeEntryCreate","params","context","onEntryBeforeCreate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeCreate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeCreateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryCreateParams {\n context: CmsContext;\n onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;\n}\nexport const assignBeforeEntryCreate = (params: AssignBeforeEntryCreateParams) => {\n const { context, onEntryBeforeCreate } = params;\n\n onEntryBeforeCreate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA;AAMO,
|
|
1
|
+
{"version":3,"names":["_markLockedFields","require","assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CmsContext, CmsEntry, CmsModel, CreateCmsEntryInput, CreateCmsEntryOptionsInput } from "../../../types";
|
|
2
|
+
import { I18NLocale } from "@webiny/api-i18n/types";
|
|
3
|
+
import { SecurityIdentity } from "@webiny/api-security/types";
|
|
4
|
+
import { Tenant } from "@webiny/api-tenancy/types";
|
|
5
|
+
import { EntriesPermissions } from "../../../utils/permissions/EntriesPermissions";
|
|
6
|
+
declare type CreateEntryDataParams = {
|
|
7
|
+
model: CmsModel;
|
|
8
|
+
rawInput: CreateCmsEntryInput;
|
|
9
|
+
options?: CreateCmsEntryOptionsInput;
|
|
10
|
+
context: CmsContext;
|
|
11
|
+
getIdentity: () => SecurityIdentity;
|
|
12
|
+
getTenant: () => Tenant;
|
|
13
|
+
getLocale: () => I18NLocale;
|
|
14
|
+
entriesPermissions: EntriesPermissions;
|
|
15
|
+
};
|
|
16
|
+
export declare const createEntryData: ({ model, rawInput, options, context, getIdentity: getSecurityIdentity, getLocale, getTenant, entriesPermissions }: CreateEntryDataParams) => Promise<{
|
|
17
|
+
entry: CmsEntry;
|
|
18
|
+
input: Record<string, any>;
|
|
19
|
+
}>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createEntryData = void 0;
|
|
8
|
+
var _date = require("../../../utils/date");
|
|
9
|
+
var _constants = require("../../../constants");
|
|
10
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
|
+
var _entryDataValidation = require("../entryDataValidation");
|
|
12
|
+
var _referenceFieldsMapping = require("../referenceFieldsMapping");
|
|
13
|
+
var _utils = require("@webiny/utils");
|
|
14
|
+
var _statuses = require("./statuses");
|
|
15
|
+
var _identity = require("../../../utils/identity");
|
|
16
|
+
const createEntryData = async ({
|
|
17
|
+
model,
|
|
18
|
+
rawInput,
|
|
19
|
+
options,
|
|
20
|
+
context,
|
|
21
|
+
getIdentity: getSecurityIdentity,
|
|
22
|
+
getLocale,
|
|
23
|
+
getTenant,
|
|
24
|
+
entriesPermissions
|
|
25
|
+
}) => {
|
|
26
|
+
const initialInput = mapAndCleanCreateInputData(model, rawInput);
|
|
27
|
+
await (0, _entryDataValidation.validateModelEntryDataOrThrow)({
|
|
28
|
+
context,
|
|
29
|
+
model,
|
|
30
|
+
data: initialInput,
|
|
31
|
+
skipValidators: options?.skipValidators
|
|
32
|
+
});
|
|
33
|
+
const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
|
|
34
|
+
context,
|
|
35
|
+
model,
|
|
36
|
+
input: initialInput,
|
|
37
|
+
validateEntries: true
|
|
38
|
+
});
|
|
39
|
+
const locale = getLocale();
|
|
40
|
+
const {
|
|
41
|
+
id,
|
|
42
|
+
entryId,
|
|
43
|
+
version
|
|
44
|
+
} = createEntryId(rawInput);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* There is a possibility that user sends an ID in the input, so we will use that one.
|
|
48
|
+
* There is no check if the ID is unique or not, that is up to the user.
|
|
49
|
+
*/
|
|
50
|
+
const currentIdentity = getSecurityIdentity();
|
|
51
|
+
const currentDateTime = new Date();
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Users can set the initial status of the entry. If so, we need to make
|
|
55
|
+
* sure they have the required permissions and also that all the fields
|
|
56
|
+
* are filled in correctly.
|
|
57
|
+
*/
|
|
58
|
+
const status = rawInput.status || _statuses.STATUS_DRAFT;
|
|
59
|
+
if (status !== _statuses.STATUS_DRAFT) {
|
|
60
|
+
if (status === _statuses.STATUS_PUBLISHED) {
|
|
61
|
+
await entriesPermissions.ensure({
|
|
62
|
+
pw: "p"
|
|
63
|
+
});
|
|
64
|
+
} else if (status === _statuses.STATUS_UNPUBLISHED) {
|
|
65
|
+
// If setting the status other than draft, we have to check if the user has permissions to publish.
|
|
66
|
+
await entriesPermissions.ensure({
|
|
67
|
+
pw: "u"
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const locked = status !== _statuses.STATUS_DRAFT;
|
|
72
|
+
let revisionLevelPublishingMetaFields = {
|
|
73
|
+
revisionFirstPublishedOn: null,
|
|
74
|
+
revisionLastPublishedOn: null,
|
|
75
|
+
revisionFirstPublishedBy: null,
|
|
76
|
+
revisionLastPublishedBy: null
|
|
77
|
+
};
|
|
78
|
+
let entryLevelPublishingMetaFields = {
|
|
79
|
+
firstPublishedOn: null,
|
|
80
|
+
lastPublishedOn: null,
|
|
81
|
+
firstPublishedBy: null,
|
|
82
|
+
lastPublishedBy: null
|
|
83
|
+
};
|
|
84
|
+
if (status === _statuses.STATUS_PUBLISHED) {
|
|
85
|
+
revisionLevelPublishingMetaFields = {
|
|
86
|
+
revisionFirstPublishedOn: (0, _date.getDate)(rawInput.revisionFirstPublishedOn, currentDateTime),
|
|
87
|
+
revisionLastPublishedOn: (0, _date.getDate)(rawInput.revisionLastPublishedOn, currentDateTime),
|
|
88
|
+
revisionFirstPublishedBy: (0, _identity.getIdentity)(rawInput.revisionFirstPublishedBy, currentIdentity),
|
|
89
|
+
revisionLastPublishedBy: (0, _identity.getIdentity)(rawInput.revisionLastPublishedBy, currentIdentity)
|
|
90
|
+
};
|
|
91
|
+
entryLevelPublishingMetaFields = {
|
|
92
|
+
firstPublishedOn: (0, _date.getDate)(rawInput.firstPublishedOn, currentDateTime),
|
|
93
|
+
lastPublishedOn: (0, _date.getDate)(rawInput.lastPublishedOn, currentDateTime),
|
|
94
|
+
firstPublishedBy: (0, _identity.getIdentity)(rawInput.firstPublishedBy, currentIdentity),
|
|
95
|
+
lastPublishedBy: (0, _identity.getIdentity)(rawInput.lastPublishedBy, currentIdentity)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const entry = {
|
|
99
|
+
webinyVersion: context.WEBINY_VERSION,
|
|
100
|
+
tenant: getTenant().id,
|
|
101
|
+
entryId,
|
|
102
|
+
id,
|
|
103
|
+
modelId: model.modelId,
|
|
104
|
+
locale: locale.code,
|
|
105
|
+
/**
|
|
106
|
+
* Entry-level meta fields. 👇
|
|
107
|
+
*/
|
|
108
|
+
createdOn: (0, _date.getDate)(rawInput.createdOn, currentDateTime),
|
|
109
|
+
modifiedOn: (0, _date.getDate)(rawInput.modifiedOn, null),
|
|
110
|
+
savedOn: (0, _date.getDate)(rawInput.savedOn, currentDateTime),
|
|
111
|
+
createdBy: (0, _identity.getIdentity)(rawInput.createdBy, currentIdentity),
|
|
112
|
+
modifiedBy: (0, _identity.getIdentity)(rawInput.modifiedBy, null),
|
|
113
|
+
savedBy: (0, _identity.getIdentity)(rawInput.savedBy, currentIdentity),
|
|
114
|
+
...entryLevelPublishingMetaFields,
|
|
115
|
+
/**
|
|
116
|
+
* Revision-level meta fields. 👇
|
|
117
|
+
*/
|
|
118
|
+
revisionCreatedOn: (0, _date.getDate)(rawInput.revisionCreatedOn, currentDateTime),
|
|
119
|
+
revisionModifiedOn: (0, _date.getDate)(rawInput.revisionModifiedOn, null),
|
|
120
|
+
revisionSavedOn: (0, _date.getDate)(rawInput.revisionSavedOn, currentDateTime),
|
|
121
|
+
revisionCreatedBy: (0, _identity.getIdentity)(rawInput.revisionCreatedBy, currentIdentity),
|
|
122
|
+
revisionModifiedBy: (0, _identity.getIdentity)(rawInput.revisionModifiedBy, null),
|
|
123
|
+
revisionSavedBy: (0, _identity.getIdentity)(rawInput.revisionSavedBy, currentIdentity),
|
|
124
|
+
...revisionLevelPublishingMetaFields,
|
|
125
|
+
version,
|
|
126
|
+
status,
|
|
127
|
+
locked,
|
|
128
|
+
values: input,
|
|
129
|
+
location: {
|
|
130
|
+
folderId: rawInput.wbyAco_location?.folderId || _constants.ROOT_FOLDER
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
return {
|
|
134
|
+
entry,
|
|
135
|
+
input
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Used for some fields to convert their values.
|
|
141
|
+
*/
|
|
142
|
+
exports.createEntryData = createEntryData;
|
|
143
|
+
const convertDefaultValue = (field, value) => {
|
|
144
|
+
switch (field.type) {
|
|
145
|
+
case "boolean":
|
|
146
|
+
return Boolean(value);
|
|
147
|
+
case "number":
|
|
148
|
+
return Number(value);
|
|
149
|
+
default:
|
|
150
|
+
return value;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
const getDefaultValue = field => {
|
|
154
|
+
const {
|
|
155
|
+
settings,
|
|
156
|
+
multipleValues
|
|
157
|
+
} = field;
|
|
158
|
+
if (settings && settings.defaultValue !== undefined) {
|
|
159
|
+
return convertDefaultValue(field, settings.defaultValue);
|
|
160
|
+
}
|
|
161
|
+
const {
|
|
162
|
+
predefinedValues
|
|
163
|
+
} = field;
|
|
164
|
+
if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
if (!multipleValues) {
|
|
168
|
+
const selectedValue = predefinedValues.values.find(value => {
|
|
169
|
+
return !!value.selected;
|
|
170
|
+
});
|
|
171
|
+
if (selectedValue) {
|
|
172
|
+
return convertDefaultValue(field, selectedValue.value);
|
|
173
|
+
}
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
return predefinedValues.values.filter(({
|
|
177
|
+
selected
|
|
178
|
+
}) => !!selected).map(({
|
|
179
|
+
value
|
|
180
|
+
}) => {
|
|
181
|
+
return convertDefaultValue(field, value);
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Cleans and adds default values to create input data.
|
|
187
|
+
*/
|
|
188
|
+
const mapAndCleanCreateInputData = (model, input) => {
|
|
189
|
+
return model.fields.reduce((acc, field) => {
|
|
190
|
+
/**
|
|
191
|
+
* This should never happen, but let's make it sure.
|
|
192
|
+
* The fix would be for the user to add the fieldId on the field definition.
|
|
193
|
+
*/
|
|
194
|
+
if (!field.fieldId) {
|
|
195
|
+
throw new _error.default("Field does not have an fieldId.", "MISSING_FIELD_ID", {
|
|
196
|
+
field
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const value = input[field.fieldId];
|
|
200
|
+
/**
|
|
201
|
+
* We set the default value on create input if value is not defined.
|
|
202
|
+
*/
|
|
203
|
+
acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
|
|
204
|
+
return acc;
|
|
205
|
+
}, {});
|
|
206
|
+
};
|
|
207
|
+
const createEntryId = input => {
|
|
208
|
+
let entryId = (0, _utils.mdbid)();
|
|
209
|
+
if (input.id) {
|
|
210
|
+
if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\-]+)([a-zA-Z0-9])$/) === null) {
|
|
211
|
+
throw new _error.default("The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.", "INVALID_ID", {
|
|
212
|
+
id: input.id
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
entryId = input.id;
|
|
216
|
+
}
|
|
217
|
+
const version = 1;
|
|
218
|
+
return {
|
|
219
|
+
entryId,
|
|
220
|
+
version,
|
|
221
|
+
id: (0, _utils.createIdentifier)({
|
|
222
|
+
id: entryId,
|
|
223
|
+
version
|
|
224
|
+
})
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
//# sourceMappingURL=createEntryData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_date","require","_constants","_error","_interopRequireDefault","_entryDataValidation","_referenceFieldsMapping","_utils","_statuses","_identity","createEntryData","model","rawInput","options","context","getIdentity","getSecurityIdentity","getLocale","getTenant","entriesPermissions","initialInput","mapAndCleanCreateInputData","validateModelEntryDataOrThrow","data","skipValidators","input","referenceFieldsMapping","validateEntries","locale","id","entryId","version","createEntryId","currentIdentity","currentDateTime","Date","status","STATUS_DRAFT","STATUS_PUBLISHED","ensure","pw","STATUS_UNPUBLISHED","locked","revisionLevelPublishingMetaFields","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","entryLevelPublishingMetaFields","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","getDate","entry","webinyVersion","WEBINY_VERSION","tenant","modelId","code","createdOn","modifiedOn","savedOn","createdBy","modifiedBy","savedBy","revisionCreatedOn","revisionModifiedOn","revisionSavedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","values","location","folderId","wbyAco_location","ROOT_FOLDER","exports","convertDefaultValue","field","value","type","Boolean","Number","getDefaultValue","settings","multipleValues","defaultValue","undefined","predefinedValues","enabled","Array","isArray","selectedValue","find","selected","filter","map","fields","reduce","acc","fieldId","WebinyError","mdbid","match","createIdentifier"],"sources":["createEntryData.ts"],"sourcesContent":["import {\n CmsContext,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CreateCmsEntryInput,\n CreateCmsEntryOptionsInput\n} from \"~/types\";\nimport { getDate } from \"~/utils/date\";\nimport { ROOT_FOLDER } from \"~/constants\";\nimport WebinyError from \"@webiny/error\";\nimport { validateModelEntryDataOrThrow } from \"~/crud/contentEntry/entryDataValidation\";\nimport { referenceFieldsMapping } from \"~/crud/contentEntry/referenceFieldsMapping\";\nimport { createIdentifier, mdbid } from \"@webiny/utils\";\nimport { STATUS_DRAFT, STATUS_PUBLISHED, STATUS_UNPUBLISHED } from \"./statuses\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { EntriesPermissions } from \"~/utils/permissions/EntriesPermissions\";\nimport { getIdentity } from \"~/utils/identity\";\n\ntype DefaultValue = boolean | number | string | null;\n\ntype CreateEntryDataParams = {\n model: CmsModel;\n rawInput: CreateCmsEntryInput;\n options?: CreateCmsEntryOptionsInput;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n entriesPermissions: EntriesPermissions;\n};\n\nexport const createEntryData = async ({\n model,\n rawInput,\n options,\n context,\n getIdentity: getSecurityIdentity,\n getLocale,\n getTenant,\n entriesPermissions\n}: CreateEntryDataParams): Promise<{\n entry: CmsEntry;\n input: Record<string, any>;\n}> => {\n const initialInput = mapAndCleanCreateInputData(model, rawInput);\n\n await validateModelEntryDataOrThrow({\n context,\n model,\n data: initialInput,\n skipValidators: options?.skipValidators\n });\n\n const input = await referenceFieldsMapping({\n context,\n model,\n input: initialInput,\n validateEntries: true\n });\n\n const locale = getLocale();\n\n const { id, entryId, version } = createEntryId(rawInput);\n\n /**\n * There is a possibility that user sends an ID in the input, so we will use that one.\n * There is no check if the ID is unique or not, that is up to the user.\n */\n const currentIdentity = getSecurityIdentity();\n const currentDateTime = new Date();\n\n /**\n * Users can set the initial status of the entry. If so, we need to make\n * sure they have the required permissions and also that all the fields\n * are filled in correctly.\n */\n const status = rawInput.status || STATUS_DRAFT;\n if (status !== STATUS_DRAFT) {\n if (status === STATUS_PUBLISHED) {\n await entriesPermissions.ensure({ pw: \"p\" });\n } else if (status === STATUS_UNPUBLISHED) {\n // If setting the status other than draft, we have to check if the user has permissions to publish.\n await entriesPermissions.ensure({ pw: \"u\" });\n }\n }\n\n const locked = status !== STATUS_DRAFT;\n\n let revisionLevelPublishingMetaFields: Pick<\n CmsEntry,\n | \"revisionFirstPublishedOn\"\n | \"revisionLastPublishedOn\"\n | \"revisionFirstPublishedBy\"\n | \"revisionLastPublishedBy\"\n > = {\n revisionFirstPublishedOn: null,\n revisionLastPublishedOn: null,\n revisionFirstPublishedBy: null,\n revisionLastPublishedBy: null\n };\n\n let entryLevelPublishingMetaFields: Pick<\n CmsEntry,\n \"firstPublishedOn\" | \"lastPublishedOn\" | \"firstPublishedBy\" | \"lastPublishedBy\"\n > = {\n firstPublishedOn: null,\n lastPublishedOn: null,\n firstPublishedBy: null,\n lastPublishedBy: null\n };\n\n if (status === STATUS_PUBLISHED) {\n revisionLevelPublishingMetaFields = {\n revisionFirstPublishedOn: getDate(rawInput.revisionFirstPublishedOn, currentDateTime),\n revisionLastPublishedOn: getDate(rawInput.revisionLastPublishedOn, currentDateTime),\n revisionFirstPublishedBy: getIdentity(\n rawInput.revisionFirstPublishedBy,\n currentIdentity\n ),\n revisionLastPublishedBy: getIdentity(rawInput.revisionLastPublishedBy, currentIdentity)\n };\n\n entryLevelPublishingMetaFields = {\n firstPublishedOn: getDate(rawInput.firstPublishedOn, currentDateTime),\n lastPublishedOn: getDate(rawInput.lastPublishedOn, currentDateTime),\n firstPublishedBy: getIdentity(rawInput.firstPublishedBy, currentIdentity),\n lastPublishedBy: getIdentity(rawInput.lastPublishedBy, currentIdentity)\n };\n }\n\n const entry: CmsEntry = {\n webinyVersion: context.WEBINY_VERSION,\n tenant: getTenant().id,\n entryId,\n id,\n modelId: model.modelId,\n locale: locale.code,\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: getDate(rawInput.createdOn, currentDateTime),\n modifiedOn: getDate(rawInput.modifiedOn, null),\n savedOn: getDate(rawInput.savedOn, currentDateTime),\n createdBy: getIdentity(rawInput.createdBy, currentIdentity),\n modifiedBy: getIdentity(rawInput.modifiedBy, null),\n savedBy: getIdentity(rawInput.savedBy, currentIdentity),\n ...entryLevelPublishingMetaFields,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: getDate(rawInput.revisionCreatedOn, currentDateTime),\n revisionModifiedOn: getDate(rawInput.revisionModifiedOn, null),\n revisionSavedOn: getDate(rawInput.revisionSavedOn, currentDateTime),\n revisionCreatedBy: getIdentity(rawInput.revisionCreatedBy, currentIdentity),\n revisionModifiedBy: getIdentity(rawInput.revisionModifiedBy, null),\n revisionSavedBy: getIdentity(rawInput.revisionSavedBy, currentIdentity),\n ...revisionLevelPublishingMetaFields,\n\n version,\n status,\n locked,\n values: input,\n location: {\n folderId: rawInput.wbyAco_location?.folderId || ROOT_FOLDER\n }\n };\n\n return { entry, input };\n};\n\n/**\n * Used for some fields to convert their values.\n */\nconst convertDefaultValue = (field: CmsModelField, value: DefaultValue): DefaultValue => {\n switch (field.type) {\n case \"boolean\":\n return Boolean(value);\n case \"number\":\n return Number(value);\n default:\n return value;\n }\n};\n\nconst getDefaultValue = (field: CmsModelField): (DefaultValue | DefaultValue[]) | undefined => {\n const { settings, multipleValues } = field;\n if (settings && settings.defaultValue !== undefined) {\n return convertDefaultValue(field, settings.defaultValue);\n }\n const { predefinedValues } = field;\n if (\n !predefinedValues ||\n !predefinedValues.enabled ||\n Array.isArray(predefinedValues.values) === false\n ) {\n return undefined;\n }\n if (!multipleValues) {\n const selectedValue = predefinedValues.values.find(value => {\n return !!value.selected;\n });\n if (selectedValue) {\n return convertDefaultValue(field, selectedValue.value);\n }\n return undefined;\n }\n return predefinedValues.values\n .filter(({ selected }) => !!selected)\n .map(({ value }) => {\n return convertDefaultValue(field, value);\n });\n};\n\n/**\n * Cleans and adds default values to create input data.\n */\nconst mapAndCleanCreateInputData = (model: CmsModel, input: CreateCmsEntryInput) => {\n return model.fields.reduce<CreateCmsEntryInput>((acc, field) => {\n /**\n * This should never happen, but let's make it sure.\n * The fix would be for the user to add the fieldId on the field definition.\n */\n if (!field.fieldId) {\n throw new WebinyError(\"Field does not have an fieldId.\", \"MISSING_FIELD_ID\", {\n field\n });\n }\n const value = input[field.fieldId];\n /**\n * We set the default value on create input if value is not defined.\n */\n acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;\n return acc;\n }, {});\n};\n\nconst createEntryId = (input: CreateCmsEntryInput) => {\n let entryId = mdbid();\n if (input.id) {\n if (input.id.match(/^([a-zA-Z0-9])([a-zA-Z0-9\\-]+)([a-zA-Z0-9])$/) === null) {\n throw new WebinyError(\n \"The provided ID is not valid. It must be a string which can be A-Z, a-z, 0-9, - and it cannot start or end with a -.\",\n \"INVALID_ID\",\n {\n id: input.id\n }\n );\n }\n entryId = input.id;\n }\n const version = 1;\n return {\n entryId,\n version,\n id: createIdentifier({\n id: entryId,\n version\n })\n };\n};\n"],"mappings":"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"}
|