@webiny/api-headless-cms 0.0.0-ee-vpcs.549378cf03
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/LICENSE +21 -0
- package/README.md +73 -0
- package/context.d.ts +3 -0
- package/context.js +60 -0
- package/context.js.map +1 -0
- package/crud/contentEntry/afterDelete.d.ts +8 -0
- package/crud/contentEntry/afterDelete.js +41 -0
- package/crud/contentEntry/afterDelete.js.map +1 -0
- package/crud/contentEntry/beforeCreate.d.ts +8 -0
- package/crud/contentEntry/beforeCreate.js +28 -0
- package/crud/contentEntry/beforeCreate.js.map +1 -0
- package/crud/contentEntry/beforeUpdate.d.ts +8 -0
- package/crud/contentEntry/beforeUpdate.js +28 -0
- package/crud/contentEntry/beforeUpdate.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +10 -0
- package/crud/contentEntry/entryDataValidation.js +200 -0
- package/crud/contentEntry/entryDataValidation.js.map +1 -0
- package/crud/contentEntry/markLockedFields.d.ts +13 -0
- package/crud/contentEntry/markLockedFields.js +116 -0
- package/crud/contentEntry/markLockedFields.js.map +1 -0
- package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
- package/crud/contentEntry/referenceFieldsMapping.js +292 -0
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +83 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.d.ts +13 -0
- package/crud/contentEntry.crud.js +1277 -0
- package/crud/contentEntry.crud.js.map +1 -0
- package/crud/contentModel/afterCreate.d.ts +8 -0
- package/crud/contentModel/afterCreate.js +18 -0
- package/crud/contentModel/afterCreate.js.map +1 -0
- package/crud/contentModel/afterCreateFrom.d.ts +8 -0
- package/crud/contentModel/afterCreateFrom.js +18 -0
- package/crud/contentModel/afterCreateFrom.js.map +1 -0
- package/crud/contentModel/afterDelete.d.ts +8 -0
- package/crud/contentModel/afterDelete.js +18 -0
- package/crud/contentModel/afterDelete.js.map +1 -0
- package/crud/contentModel/afterUpdate.d.ts +8 -0
- package/crud/contentModel/afterUpdate.js +18 -0
- package/crud/contentModel/afterUpdate.js.map +1 -0
- package/crud/contentModel/beforeCreate.d.ts +15 -0
- package/crud/contentModel/beforeCreate.js +194 -0
- package/crud/contentModel/beforeCreate.js.map +1 -0
- package/crud/contentModel/beforeDelete.d.ts +10 -0
- package/crud/contentModel/beforeDelete.js +60 -0
- package/crud/contentModel/beforeDelete.js.map +1 -0
- package/crud/contentModel/beforeUpdate.d.ts +10 -0
- package/crud/contentModel/beforeUpdate.js +37 -0
- package/crud/contentModel/beforeUpdate.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
- package/crud/contentModel/contentModelManagerFactory.js +29 -0
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
- package/crud/contentModel/createFieldModels.d.ts +2 -0
- package/crud/contentModel/createFieldModels.js +26 -0
- package/crud/contentModel/createFieldModels.js.map +1 -0
- package/crud/contentModel/createFieldStorageId.d.ts +2 -0
- package/crud/contentModel/createFieldStorageId.js +20 -0
- package/crud/contentModel/createFieldStorageId.js.map +1 -0
- package/crud/contentModel/fieldIdValidation.d.ts +1 -0
- package/crud/contentModel/fieldIdValidation.js +25 -0
- package/crud/contentModel/fieldIdValidation.js.map +1 -0
- package/crud/contentModel/idValidation.d.ts +1 -0
- package/crud/contentModel/idValidation.js +22 -0
- package/crud/contentModel/idValidation.js.map +1 -0
- package/crud/contentModel/models.d.ts +4 -0
- package/crud/contentModel/models.js +192 -0
- package/crud/contentModel/models.js.map +1 -0
- package/crud/contentModel/systemFields.d.ts +1 -0
- package/crud/contentModel/systemFields.js +8 -0
- package/crud/contentModel/systemFields.js.map +1 -0
- package/crud/contentModel/validateLayout.d.ts +2 -0
- package/crud/contentModel/validateLayout.js +36 -0
- package/crud/contentModel/validateLayout.js.map +1 -0
- package/crud/contentModel/validateModel.d.ts +9 -0
- package/crud/contentModel/validateModel.js +32 -0
- package/crud/contentModel/validateModel.js.map +1 -0
- package/crud/contentModel/validateModelFields.d.ts +9 -0
- package/crud/contentModel/validateModelFields.js +371 -0
- package/crud/contentModel/validateModelFields.js.map +1 -0
- package/crud/contentModel.crud.d.ts +12 -0
- package/crud/contentModel.crud.js +650 -0
- package/crud/contentModel.crud.js.map +1 -0
- package/crud/contentModelGroup/beforeCreate.d.ts +10 -0
- package/crud/contentModelGroup/beforeCreate.js +66 -0
- package/crud/contentModelGroup/beforeCreate.js.map +1 -0
- package/crud/contentModelGroup/beforeDelete.d.ts +10 -0
- package/crud/contentModelGroup/beforeDelete.js +48 -0
- package/crud/contentModelGroup/beforeDelete.js.map +1 -0
- package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
- package/crud/contentModelGroup/beforeUpdate.js +28 -0
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
- package/crud/contentModelGroup.crud.d.ts +12 -0
- package/crud/contentModelGroup.crud.js +396 -0
- package/crud/contentModelGroup.crud.js.map +1 -0
- package/crud/index.d.ts +6 -0
- package/crud/index.js +85 -0
- package/crud/index.js.map +1 -0
- package/crud/settings.crud.d.ts +10 -0
- package/crud/settings.crud.js +83 -0
- package/crud/settings.crud.js.map +1 -0
- package/crud/system.crud.d.ts +13 -0
- package/crud/system.crud.js +221 -0
- package/crud/system.crud.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +304 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +4 -0
- package/fieldConverters/index.js +18 -0
- package/fieldConverters/index.js.map +1 -0
- package/graphql/buildSchemaPlugins.d.ts +6 -0
- package/graphql/buildSchemaPlugins.js +27 -0
- package/graphql/buildSchemaPlugins.js.map +1 -0
- package/graphql/graphQLHandlerFactory.d.ts +5 -0
- package/graphql/graphQLHandlerFactory.js +202 -0
- package/graphql/graphQLHandlerFactory.js.map +1 -0
- package/graphql/index.d.ts +5 -0
- package/graphql/index.js +57 -0
- package/graphql/index.js.map +1 -0
- package/graphql/schema/baseContentSchema.d.ts +3 -0
- package/graphql/schema/baseContentSchema.js +76 -0
- package/graphql/schema/baseContentSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +3 -0
- package/graphql/schema/contentEntries.js +351 -0
- package/graphql/schema/contentEntries.js.map +1 -0
- package/graphql/schema/contentModelGroups.d.ts +3 -0
- package/graphql/schema/contentModelGroups.js +172 -0
- package/graphql/schema/contentModelGroups.js.map +1 -0
- package/graphql/schema/contentModels.d.ts +3 -0
- package/graphql/schema/contentModels.js +300 -0
- package/graphql/schema/contentModels.js.map +1 -0
- package/graphql/schema/createFieldResolvers.d.ts +20 -0
- package/graphql/schema/createFieldResolvers.js +121 -0
- package/graphql/schema/createFieldResolvers.js.map +1 -0
- package/graphql/schema/createManageResolvers.d.ts +12 -0
- package/graphql/schema/createManageResolvers.js +137 -0
- package/graphql/schema/createManageResolvers.js.map +1 -0
- package/graphql/schema/createManageSDL.d.ts +10 -0
- package/graphql/schema/createManageSDL.js +161 -0
- package/graphql/schema/createManageSDL.js.map +1 -0
- package/graphql/schema/createPreviewResolvers.d.ts +12 -0
- package/graphql/schema/createPreviewResolvers.js +58 -0
- package/graphql/schema/createPreviewResolvers.js.map +1 -0
- package/graphql/schema/createReadResolvers.d.ts +12 -0
- package/graphql/schema/createReadResolvers.js +58 -0
- package/graphql/schema/createReadResolvers.js.map +1 -0
- package/graphql/schema/createReadSDL.d.ts +10 -0
- package/graphql/schema/createReadSDL.js +104 -0
- package/graphql/schema/createReadSDL.js.map +1 -0
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js +14 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveCreate.js +21 -0
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +21 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveDelete.js +32 -0
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGet.js +79 -0
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +21 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +21 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveList.js +21 -0
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.js +21 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
- package/graphql/schema/resolvers/preview/resolveGet.js +34 -0
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/preview/resolveList.js +21 -0
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
- package/graphql/schema/resolvers/read/resolveGet.js +34 -0
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/read/resolveList.js +21 -0
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
- package/graphql/schema/schemaPlugins.d.ts +3 -0
- package/graphql/schema/schemaPlugins.js +111 -0
- package/graphql/schema/schemaPlugins.js.map +1 -0
- package/graphql/system.d.ts +6 -0
- package/graphql/system.js +119 -0
- package/graphql/system.js.map +1 -0
- package/graphqlFields/boolean.d.ts +2 -0
- package/graphqlFields/boolean.js +69 -0
- package/graphqlFields/boolean.js.map +1 -0
- package/graphqlFields/datetime.d.ts +2 -0
- package/graphqlFields/datetime.js +95 -0
- package/graphqlFields/datetime.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +21 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/file.d.ts +2 -0
- package/graphqlFields/file.js +50 -0
- package/graphqlFields/file.js.map +1 -0
- package/graphqlFields/helpers.d.ts +6 -0
- package/graphqlFields/helpers.js +49 -0
- package/graphqlFields/helpers.js.map +1 -0
- package/graphqlFields/index.d.ts +2 -0
- package/graphqlFields/index.js +30 -0
- package/graphqlFields/index.js.map +1 -0
- package/graphqlFields/longText.d.ts +2 -0
- package/graphqlFields/longText.js +63 -0
- package/graphqlFields/longText.js.map +1 -0
- package/graphqlFields/number.d.ts +2 -0
- package/graphqlFields/number.js +79 -0
- package/graphqlFields/number.js.map +1 -0
- package/graphqlFields/object.d.ts +2 -0
- package/graphqlFields/object.js +275 -0
- package/graphqlFields/object.js.map +1 -0
- package/graphqlFields/ref.d.ts +2 -0
- package/graphqlFields/ref.js +257 -0
- package/graphqlFields/ref.js.map +1 -0
- package/graphqlFields/richText.d.ts +2 -0
- package/graphqlFields/richText.js +56 -0
- package/graphqlFields/richText.js.map +1 -0
- package/graphqlFields/text.d.ts +2 -0
- package/graphqlFields/text.js +73 -0
- package/graphqlFields/text.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +111 -0
- package/index.js.map +1 -0
- package/modelManager/DefaultCmsModelManager.d.ts +14 -0
- package/modelManager/DefaultCmsModelManager.js +64 -0
- package/modelManager/DefaultCmsModelManager.js.map +1 -0
- package/modelManager/index.d.ts +2 -0
- package/modelManager/index.js +20 -0
- package/modelManager/index.js.map +1 -0
- package/package.json +81 -0
- package/parameters/context.d.ts +2 -0
- package/parameters/context.js +22 -0
- package/parameters/context.js.map +1 -0
- package/parameters/header.d.ts +2 -0
- package/parameters/header.js +55 -0
- package/parameters/header.js.map +1 -0
- package/parameters/index.d.ts +4 -0
- package/parameters/index.js +57 -0
- package/parameters/index.js.map +1 -0
- package/parameters/manual.d.ts +6 -0
- package/parameters/manual.js +44 -0
- package/parameters/manual.js.map +1 -0
- package/parameters/path.d.ts +2 -0
- package/parameters/path.js +51 -0
- package/parameters/path.js.map +1 -0
- package/plugins/CmsGroupPlugin.d.ts +13 -0
- package/plugins/CmsGroupPlugin.js +30 -0
- package/plugins/CmsGroupPlugin.js.map +1 -0
- package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
- package/plugins/CmsModelFieldConverterPlugin.js +17 -0
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
- package/plugins/CmsModelPlugin.d.ts +45 -0
- package/plugins/CmsModelPlugin.js +194 -0
- package/plugins/CmsModelPlugin.js.map +1 -0
- package/plugins/CmsParametersPlugin.d.ts +20 -0
- package/plugins/CmsParametersPlugin.js +28 -0
- package/plugins/CmsParametersPlugin.js.map +1 -0
- package/plugins/StorageTransformPlugin.d.ts +31 -0
- package/plugins/StorageTransformPlugin.js +37 -0
- package/plugins/StorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +5 -0
- package/plugins/index.js +70 -0
- package/plugins/index.js.map +1 -0
- package/storage/default.d.ts +2 -0
- package/storage/default.js +27 -0
- package/storage/default.js.map +1 -0
- package/storage/object.d.ts +2 -0
- package/storage/object.js +127 -0
- package/storage/object.js.map +1 -0
- package/types.d.ts +2600 -0
- package/types.js +459 -0
- package/types.js.map +1 -0
- package/upgrades/5.33.0/index.d.ts +3 -0
- package/upgrades/5.33.0/index.js +182 -0
- package/upgrades/5.33.0/index.js.map +1 -0
- package/upgrades/index.d.ts +1 -0
- package/upgrades/index.js +12 -0
- package/upgrades/index.js.map +1 -0
- package/utils/access.d.ts +8 -0
- package/utils/access.js +90 -0
- package/utils/access.js.map +1 -0
- package/utils/converters/Converter.d.ts +27 -0
- package/utils/converters/Converter.js +71 -0
- package/utils/converters/Converter.js.map +1 -0
- package/utils/converters/ConverterCollection.d.ts +31 -0
- package/utils/converters/ConverterCollection.js +143 -0
- package/utils/converters/ConverterCollection.js.map +1 -0
- package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
- package/utils/converters/valueKeyStorageConverter.js +148 -0
- package/utils/converters/valueKeyStorageConverter.js.map +1 -0
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +75 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.d.ts +3 -0
- package/utils/createTypeName.js +30 -0
- package/utils/createTypeName.js.map +1 -0
- package/utils/entryStorage.d.ts +17 -0
- package/utils/entryStorage.js +120 -0
- package/utils/entryStorage.js.map +1 -0
- package/utils/filterAsync.d.ts +1 -0
- package/utils/filterAsync.js +23 -0
- package/utils/filterAsync.js.map +1 -0
- package/utils/filterModelFields.d.ts +16 -0
- package/utils/filterModelFields.js +77 -0
- package/utils/filterModelFields.js.map +1 -0
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +12 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/getEntryTitle.d.ts +2 -0
- package/utils/getEntryTitle.js +43 -0
- package/utils/getEntryTitle.js.map +1 -0
- package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
- package/utils/getSchemaFromFieldPlugins.js +35 -0
- package/utils/getSchemaFromFieldPlugins.js.map +1 -0
- package/utils/ownership.d.ts +8 -0
- package/utils/ownership.js +41 -0
- package/utils/ownership.js.map +1 -0
- package/utils/permissions.d.ts +7 -0
- package/utils/permissions.js +106 -0
- package/utils/permissions.js.map +1 -0
- package/utils/pluralizedTypeName.d.ts +1 -0
- package/utils/pluralizedTypeName.js +26 -0
- package/utils/pluralizedTypeName.js.map +1 -0
- package/utils/renderFields.d.ts +15 -0
- package/utils/renderFields.js +55 -0
- package/utils/renderFields.js.map +1 -0
- package/utils/renderGetFilterFields.d.ts +10 -0
- package/utils/renderGetFilterFields.js +61 -0
- package/utils/renderGetFilterFields.js.map +1 -0
- package/utils/renderInputFields.d.ts +14 -0
- package/utils/renderInputFields.js +55 -0
- package/utils/renderInputFields.js.map +1 -0
- package/utils/renderListFilterFields.d.ts +11 -0
- package/utils/renderListFilterFields.js +62 -0
- package/utils/renderListFilterFields.js.map +1 -0
- package/utils/renderSortEnum.d.ts +9 -0
- package/utils/renderSortEnum.js +34 -0
- package/utils/renderSortEnum.js.map +1 -0
- package/utils/toSlug.d.ts +1 -0
- package/utils/toSlug.js +20 -0
- package/utils/toSlug.js.map +1 -0
- package/validators/dateGte.d.ts +2 -0
- package/validators/dateGte.js +37 -0
- package/validators/dateGte.js.map +1 -0
- package/validators/dateLte.d.ts +2 -0
- package/validators/dateLte.js +37 -0
- package/validators/dateLte.js.map +1 -0
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +24 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/gte.d.ts +2 -0
- package/validators/gte.js +36 -0
- package/validators/gte.js.map +1 -0
- package/validators/in.d.ts +2 -0
- package/validators/in.js +36 -0
- package/validators/in.js.map +1 -0
- package/validators/index.d.ts +1 -0
- package/validators/index.js +38 -0
- package/validators/index.js.map +1 -0
- package/validators/lte.d.ts +2 -0
- package/validators/lte.js +36 -0
- package/validators/lte.js.map +1 -0
- package/validators/maxLength.d.ts +2 -0
- package/validators/maxLength.js +36 -0
- package/validators/maxLength.js.map +1 -0
- package/validators/minLength.d.ts +2 -0
- package/validators/minLength.js +36 -0
- package/validators/minLength.js.map +1 -0
- package/validators/pattern.d.ts +2 -0
- package/validators/pattern.js +50 -0
- package/validators/pattern.js.map +1 -0
- package/validators/patternPlugins/email.d.ts +2 -0
- package/validators/patternPlugins/email.js +20 -0
- package/validators/patternPlugins/email.js.map +1 -0
- package/validators/patternPlugins/index.d.ts +2 -0
- package/validators/patternPlugins/index.js +24 -0
- package/validators/patternPlugins/index.js.map +1 -0
- package/validators/patternPlugins/lowerCase.d.ts +2 -0
- package/validators/patternPlugins/lowerCase.js +20 -0
- package/validators/patternPlugins/lowerCase.js.map +1 -0
- package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/lowerCaseSpace.js +20 -0
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/validators/patternPlugins/upperCase.d.ts +2 -0
- package/validators/patternPlugins/upperCase.js +20 -0
- package/validators/patternPlugins/upperCase.js.map +1 -0
- package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/upperCaseSpace.js +20 -0
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/validators/patternPlugins/url.d.ts +2 -0
- package/validators/patternPlugins/url.js +20 -0
- package/validators/patternPlugins/url.js.map +1 -0
- package/validators/required.d.ts +2 -0
- package/validators/required.js +27 -0
- package/validators/required.js.map +1 -0
- package/validators/timeGte.d.ts +2 -0
- package/validators/timeGte.js +34 -0
- package/validators/timeGte.js.map +1 -0
- package/validators/timeLte.d.ts +2 -0
- package/validators/timeLte.js +34 -0
- package/validators/timeLte.js.map +1 -0
- package/validators/unique.d.ts +6 -0
- package/validators/unique.js +63 -0
- package/validators/unique.js.map +1 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createModelGroupsCrud = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _fields = require("@commodo/fields");
|
|
13
|
+
|
|
14
|
+
var _validation = require("@webiny/validation");
|
|
15
|
+
|
|
16
|
+
var _mdbid = _interopRequireDefault(require("mdbid"));
|
|
17
|
+
|
|
18
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
19
|
+
|
|
20
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
21
|
+
|
|
22
|
+
var _CmsGroupPlugin = require("../plugins/CmsGroupPlugin");
|
|
23
|
+
|
|
24
|
+
var _pubsub = require("@webiny/pubsub");
|
|
25
|
+
|
|
26
|
+
var _beforeUpdate = require("./contentModelGroup/beforeUpdate");
|
|
27
|
+
|
|
28
|
+
var _beforeCreate = require("./contentModelGroup/beforeCreate");
|
|
29
|
+
|
|
30
|
+
var _beforeDelete = require("./contentModelGroup/beforeDelete");
|
|
31
|
+
|
|
32
|
+
var _dataloader = _interopRequireDefault(require("dataloader"));
|
|
33
|
+
|
|
34
|
+
var _permissions = require("../utils/permissions");
|
|
35
|
+
|
|
36
|
+
var _ownership = require("../utils/ownership");
|
|
37
|
+
|
|
38
|
+
var _access = require("../utils/access");
|
|
39
|
+
|
|
40
|
+
var _toSlug = require("../utils/toSlug");
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Package @commodo/fields does not have types.
|
|
44
|
+
*/
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Package mdbid does not have types.
|
|
49
|
+
*/
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
const CreateContentModelGroupModel = (0, _fields.withFields)({
|
|
52
|
+
name: (0, _fields.string)({
|
|
53
|
+
validation: _validation.validation.create("required,maxLength:100")
|
|
54
|
+
}),
|
|
55
|
+
slug: (0, _fields.string)({
|
|
56
|
+
validation: _validation.validation.create("maxLength:100")
|
|
57
|
+
}),
|
|
58
|
+
description: (0, _fields.string)({
|
|
59
|
+
validation: _validation.validation.create("maxLength:255")
|
|
60
|
+
}),
|
|
61
|
+
icon: (0, _fields.string)({
|
|
62
|
+
validation: _validation.validation.create("required,maxLength:255")
|
|
63
|
+
})
|
|
64
|
+
})();
|
|
65
|
+
const UpdateContentModelGroupModel = (0, _fields.withFields)({
|
|
66
|
+
name: (0, _fields.string)({
|
|
67
|
+
validation: _validation.validation.create("maxLength:100")
|
|
68
|
+
}),
|
|
69
|
+
description: (0, _fields.string)({
|
|
70
|
+
validation: _validation.validation.create("maxLength:255")
|
|
71
|
+
}),
|
|
72
|
+
icon: (0, _fields.string)({
|
|
73
|
+
validation: _validation.validation.create("maxLength:255")
|
|
74
|
+
})
|
|
75
|
+
})();
|
|
76
|
+
|
|
77
|
+
const createModelGroupsCrud = params => {
|
|
78
|
+
const {
|
|
79
|
+
getTenant,
|
|
80
|
+
getIdentity,
|
|
81
|
+
getLocale,
|
|
82
|
+
storageOperations,
|
|
83
|
+
context
|
|
84
|
+
} = params;
|
|
85
|
+
const dataLoaders = {
|
|
86
|
+
listGroups: new _dataloader.default(async () => {
|
|
87
|
+
const tenant = getTenant().id;
|
|
88
|
+
const locale = getLocale().code;
|
|
89
|
+
const pluginsGroups = getGroupsAsPlugins().map(group => {
|
|
90
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, group), {}, {
|
|
91
|
+
tenant: group.tenant || tenant,
|
|
92
|
+
locale: group.locale || locale
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
const groups = await storageOperations.groups.list({
|
|
96
|
+
where: {
|
|
97
|
+
tenant: getTenant().id,
|
|
98
|
+
locale: getLocale().code
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
return [groups.concat(pluginsGroups)];
|
|
102
|
+
})
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const clearGroupsCache = () => {
|
|
106
|
+
for (const loader of Object.values(dataLoaders)) {
|
|
107
|
+
loader.clearAll();
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const getGroupsAsPlugins = () => {
|
|
112
|
+
const tenant = getTenant().id;
|
|
113
|
+
const locale = getLocale().code;
|
|
114
|
+
return context.plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type)
|
|
115
|
+
/**
|
|
116
|
+
* We need to filter out groups that are not for this tenant or locale.
|
|
117
|
+
* If it does not have tenant or locale define, it is for every locale and tenant
|
|
118
|
+
*/
|
|
119
|
+
.filter(plugin => {
|
|
120
|
+
const {
|
|
121
|
+
tenant: t,
|
|
122
|
+
locale: l
|
|
123
|
+
} = plugin.contentModelGroup;
|
|
124
|
+
|
|
125
|
+
if (t && t !== tenant) {
|
|
126
|
+
return false;
|
|
127
|
+
} else if (l && l !== locale) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return true;
|
|
132
|
+
}).map(plugin => {
|
|
133
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModelGroup), {}, {
|
|
134
|
+
tenant,
|
|
135
|
+
locale,
|
|
136
|
+
webinyVersion: context.WEBINY_VERSION
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const checkPermissions = check => {
|
|
142
|
+
return (0, _permissions.checkPermissions)(context, "cms.contentModelGroup", {
|
|
143
|
+
rwd: check
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
const groupsGet = async id => {
|
|
148
|
+
const groups = await dataLoaders.listGroups.load("listGroups");
|
|
149
|
+
const group = groups.find(g => g.id === id);
|
|
150
|
+
|
|
151
|
+
if (!group) {
|
|
152
|
+
throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return group;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
const groupsList = async params => {
|
|
159
|
+
const {
|
|
160
|
+
where
|
|
161
|
+
} = params || {};
|
|
162
|
+
|
|
163
|
+
try {
|
|
164
|
+
return await dataLoaders.listGroups.load("listGroups");
|
|
165
|
+
} catch (ex) {
|
|
166
|
+
throw new _error.default(ex.message, ex.code || "LIST_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
167
|
+
where
|
|
168
|
+
}));
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Create
|
|
173
|
+
*/
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
const onGroupBeforeCreate = (0, _pubsub.createTopic)("cms.onGroupBeforeCreate");
|
|
177
|
+
const onGroupAfterCreate = (0, _pubsub.createTopic)("cms.onGroupAfterCreate");
|
|
178
|
+
const onGroupCreateError = (0, _pubsub.createTopic)("cms.onGroupCreateError");
|
|
179
|
+
/**
|
|
180
|
+
* Update
|
|
181
|
+
*/
|
|
182
|
+
|
|
183
|
+
const onGroupBeforeUpdate = (0, _pubsub.createTopic)("cms.onGroupBeforeUpdate");
|
|
184
|
+
const onGroupAfterUpdate = (0, _pubsub.createTopic)("cms.onGroupAfterUpdate");
|
|
185
|
+
const onGroupUpdateError = (0, _pubsub.createTopic)("cms.onGroupUpdateError");
|
|
186
|
+
/**
|
|
187
|
+
* Delete
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
const onGroupBeforeDelete = (0, _pubsub.createTopic)("cms.onGroupBeforeDelete");
|
|
191
|
+
const onGroupAfterDelete = (0, _pubsub.createTopic)("cms.onGroupAfterDelete");
|
|
192
|
+
const onGroupDeleteError = (0, _pubsub.createTopic)("cms.onGroupDeleteError");
|
|
193
|
+
/**
|
|
194
|
+
* We need to assign some default behaviors.
|
|
195
|
+
*/
|
|
196
|
+
|
|
197
|
+
(0, _beforeCreate.assignBeforeGroupCreate)({
|
|
198
|
+
onGroupBeforeCreate,
|
|
199
|
+
plugins: context.plugins,
|
|
200
|
+
storageOperations
|
|
201
|
+
});
|
|
202
|
+
(0, _beforeUpdate.assignBeforeGroupUpdate)({
|
|
203
|
+
onGroupBeforeUpdate,
|
|
204
|
+
plugins: context.plugins
|
|
205
|
+
});
|
|
206
|
+
(0, _beforeDelete.assignBeforeGroupDelete)({
|
|
207
|
+
onGroupBeforeDelete,
|
|
208
|
+
plugins: context.plugins,
|
|
209
|
+
storageOperations
|
|
210
|
+
});
|
|
211
|
+
return {
|
|
212
|
+
/**
|
|
213
|
+
* Deprecated - will be removed in 5.36.0
|
|
214
|
+
*/
|
|
215
|
+
onBeforeGroupCreate: onGroupBeforeCreate,
|
|
216
|
+
onAfterGroupCreate: onGroupAfterCreate,
|
|
217
|
+
onBeforeGroupUpdate: onGroupBeforeUpdate,
|
|
218
|
+
onAfterGroupUpdate: onGroupAfterUpdate,
|
|
219
|
+
onBeforeGroupDelete: onGroupBeforeDelete,
|
|
220
|
+
onAfterGroupDelete: onGroupAfterDelete,
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Released in 5.34.0
|
|
224
|
+
*/
|
|
225
|
+
onGroupBeforeCreate,
|
|
226
|
+
onGroupAfterCreate,
|
|
227
|
+
onGroupCreateError,
|
|
228
|
+
onGroupBeforeUpdate,
|
|
229
|
+
onGroupAfterUpdate,
|
|
230
|
+
onGroupUpdateError,
|
|
231
|
+
onGroupBeforeDelete,
|
|
232
|
+
onGroupAfterDelete,
|
|
233
|
+
onGroupDeleteError,
|
|
234
|
+
clearGroupsCache,
|
|
235
|
+
getGroup: async id => {
|
|
236
|
+
const permission = await checkPermissions("r");
|
|
237
|
+
const group = await groupsGet(id);
|
|
238
|
+
(0, _ownership.checkOwnership)(context, permission, group);
|
|
239
|
+
(0, _access.validateGroupAccess)(context, permission, group);
|
|
240
|
+
return group;
|
|
241
|
+
},
|
|
242
|
+
listGroups: async params => {
|
|
243
|
+
const {
|
|
244
|
+
where
|
|
245
|
+
} = params || {};
|
|
246
|
+
const {
|
|
247
|
+
tenant,
|
|
248
|
+
locale
|
|
249
|
+
} = where || {};
|
|
250
|
+
const permission = await checkPermissions("r");
|
|
251
|
+
const response = await groupsList((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params || {}), {}, {
|
|
252
|
+
where: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, where || {}), {}, {
|
|
253
|
+
tenant: tenant || getTenant().id,
|
|
254
|
+
locale: locale || getLocale().code
|
|
255
|
+
})
|
|
256
|
+
}));
|
|
257
|
+
return response.filter(group => {
|
|
258
|
+
if (!(0, _ownership.validateOwnership)(context, permission, group)) {
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return (0, _access.validateGroupAccess)(context, permission, group);
|
|
263
|
+
});
|
|
264
|
+
},
|
|
265
|
+
createGroup: async inputData => {
|
|
266
|
+
await checkPermissions("w");
|
|
267
|
+
const createdData = new CreateContentModelGroupModel().populate((0, _objectSpread2.default)((0, _objectSpread2.default)({}, inputData), {}, {
|
|
268
|
+
slug: inputData.slug ? (0, _toSlug.toSlug)(inputData.slug) : "",
|
|
269
|
+
description: inputData.description || ""
|
|
270
|
+
}));
|
|
271
|
+
await createdData.validate();
|
|
272
|
+
const input = await createdData.toJSON();
|
|
273
|
+
const identity = getIdentity();
|
|
274
|
+
const id = (0, _mdbid.default)();
|
|
275
|
+
const group = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
|
|
276
|
+
id,
|
|
277
|
+
tenant: getTenant().id,
|
|
278
|
+
locale: getLocale().code,
|
|
279
|
+
createdOn: new Date().toISOString(),
|
|
280
|
+
savedOn: new Date().toISOString(),
|
|
281
|
+
createdBy: {
|
|
282
|
+
id: identity.id,
|
|
283
|
+
displayName: identity.displayName,
|
|
284
|
+
type: identity.type
|
|
285
|
+
},
|
|
286
|
+
webinyVersion: context.WEBINY_VERSION
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
try {
|
|
290
|
+
await onGroupBeforeCreate.publish({
|
|
291
|
+
group
|
|
292
|
+
});
|
|
293
|
+
const result = await storageOperations.groups.create({
|
|
294
|
+
group
|
|
295
|
+
});
|
|
296
|
+
clearGroupsCache();
|
|
297
|
+
await onGroupAfterCreate.publish({
|
|
298
|
+
group: result
|
|
299
|
+
});
|
|
300
|
+
return group;
|
|
301
|
+
} catch (ex) {
|
|
302
|
+
await onGroupCreateError.publish({
|
|
303
|
+
input,
|
|
304
|
+
group,
|
|
305
|
+
error: ex
|
|
306
|
+
});
|
|
307
|
+
throw new _error.default(ex.message || "Could not save data model group.", ex.code || "ERROR_ON_CREATE", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
308
|
+
group,
|
|
309
|
+
input
|
|
310
|
+
}));
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
updateGroup: async (id, inputData) => {
|
|
314
|
+
const permission = await checkPermissions("w");
|
|
315
|
+
const original = await groupsGet(id);
|
|
316
|
+
(0, _ownership.checkOwnership)(context, permission, original);
|
|
317
|
+
const input = new UpdateContentModelGroupModel().populate(inputData);
|
|
318
|
+
await input.validate();
|
|
319
|
+
const updatedDataJson = await input.toJSON({
|
|
320
|
+
onlyDirty: true
|
|
321
|
+
});
|
|
322
|
+
/**
|
|
323
|
+
* No need to continue if no values were changed
|
|
324
|
+
*/
|
|
325
|
+
|
|
326
|
+
if (Object.keys(updatedDataJson).length === 0) {
|
|
327
|
+
return original;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const group = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, original), updatedDataJson), {}, {
|
|
331
|
+
locale: getLocale().code,
|
|
332
|
+
tenant: getTenant().id,
|
|
333
|
+
savedOn: new Date().toISOString()
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
try {
|
|
337
|
+
await onGroupBeforeUpdate.publish({
|
|
338
|
+
original,
|
|
339
|
+
group
|
|
340
|
+
});
|
|
341
|
+
const updatedGroup = await storageOperations.groups.update({
|
|
342
|
+
group
|
|
343
|
+
});
|
|
344
|
+
clearGroupsCache();
|
|
345
|
+
await onGroupAfterUpdate.publish({
|
|
346
|
+
original,
|
|
347
|
+
group: updatedGroup
|
|
348
|
+
});
|
|
349
|
+
return updatedGroup;
|
|
350
|
+
} catch (ex) {
|
|
351
|
+
await onGroupUpdateError.publish({
|
|
352
|
+
input,
|
|
353
|
+
original,
|
|
354
|
+
group,
|
|
355
|
+
error: ex
|
|
356
|
+
});
|
|
357
|
+
throw new _error.default(ex.message, ex.code || "UPDATE_ERROR", {
|
|
358
|
+
error: ex,
|
|
359
|
+
original,
|
|
360
|
+
group,
|
|
361
|
+
input
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
deleteGroup: async id => {
|
|
366
|
+
const permission = await checkPermissions("d");
|
|
367
|
+
const group = await groupsGet(id);
|
|
368
|
+
(0, _ownership.checkOwnership)(context, permission, group);
|
|
369
|
+
|
|
370
|
+
try {
|
|
371
|
+
await onGroupBeforeDelete.publish({
|
|
372
|
+
group
|
|
373
|
+
});
|
|
374
|
+
await storageOperations.groups.delete({
|
|
375
|
+
group
|
|
376
|
+
});
|
|
377
|
+
clearGroupsCache();
|
|
378
|
+
await onGroupAfterDelete.publish({
|
|
379
|
+
group
|
|
380
|
+
});
|
|
381
|
+
} catch (ex) {
|
|
382
|
+
await onGroupDeleteError.publish({
|
|
383
|
+
group,
|
|
384
|
+
error: ex
|
|
385
|
+
});
|
|
386
|
+
throw new _error.default(ex.message, ex.code || "DELETE_ERROR", (0, _objectSpread2.default)((0, _objectSpread2.default)({}, ex.data || {}), {}, {
|
|
387
|
+
id
|
|
388
|
+
}));
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
return true;
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
exports.createModelGroupsCrud = createModelGroupsCrud;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CreateContentModelGroupModel","withFields","name","string","validation","create","slug","description","icon","UpdateContentModelGroupModel","createModelGroupsCrud","params","getTenant","getIdentity","getLocale","storageOperations","context","dataLoaders","listGroups","DataLoader","tenant","id","locale","code","pluginsGroups","getGroupsAsPlugins","map","group","groups","list","where","concat","clearGroupsCache","loader","Object","values","clearAll","plugins","byType","CmsGroupPlugin","type","filter","plugin","t","l","contentModelGroup","webinyVersion","WEBINY_VERSION","checkPermissions","check","baseCheckPermissions","rwd","groupsGet","load","find","g","NotFoundError","groupsList","ex","WebinyError","message","data","onGroupBeforeCreate","createTopic","onGroupAfterCreate","onGroupCreateError","onGroupBeforeUpdate","onGroupAfterUpdate","onGroupUpdateError","onGroupBeforeDelete","onGroupAfterDelete","onGroupDeleteError","assignBeforeGroupCreate","assignBeforeGroupUpdate","assignBeforeGroupDelete","onBeforeGroupCreate","onAfterGroupCreate","onBeforeGroupUpdate","onAfterGroupUpdate","onBeforeGroupDelete","onAfterGroupDelete","getGroup","permission","checkOwnership","validateGroupAccess","response","validateOwnership","createGroup","inputData","createdData","populate","toSlug","validate","input","toJSON","identity","mdbid","createdOn","Date","toISOString","savedOn","createdBy","displayName","publish","result","error","updateGroup","original","updatedDataJson","onlyDirty","keys","length","updatedGroup","update","deleteGroup","delete"],"sources":["contentModelGroup.crud.ts"],"sourcesContent":["/**\n * Package @commodo/fields does not have types.\n */\n// @ts-ignore\nimport { withFields, string } from \"@commodo/fields\";\nimport { validation } from \"@webiny/validation\";\n/**\n * Package mdbid does not have types.\n */\n// @ts-ignore\nimport mdbid from \"mdbid\";\nimport {\n CmsGroupContext,\n CmsGroupListParams,\n CmsGroupPermission,\n CmsGroup,\n CmsContext,\n HeadlessCmsStorageOperations,\n CmsGroupCreateInput,\n OnGroupBeforeCreateTopicParams,\n OnGroupAfterCreateTopicParams,\n OnGroupBeforeUpdateTopicParams,\n OnGroupAfterUpdateTopicParams,\n OnGroupBeforeDeleteTopicParams,\n OnGroupAfterDeleteTopicParams,\n OnGroupCreateErrorTopicParams,\n OnGroupUpdateErrorTopicParams,\n OnGroupDeleteErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport WebinyError from \"@webiny/error\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignBeforeGroupUpdate } from \"./contentModelGroup/beforeUpdate\";\nimport { assignBeforeGroupCreate } from \"./contentModelGroup/beforeCreate\";\nimport { assignBeforeGroupDelete } from \"./contentModelGroup/beforeDelete\";\nimport DataLoader from \"dataloader\";\nimport { checkPermissions as baseCheckPermissions } from \"~/utils/permissions\";\nimport { checkOwnership, validateOwnership } from \"~/utils/ownership\";\nimport { validateGroupAccess } from \"~/utils/access\";\nimport { toSlug } from \"~/utils/toSlug\";\n\nconst CreateContentModelGroupModel = withFields({\n name: string({ validation: validation.create(\"required,maxLength:100\") }),\n slug: string({ validation: validation.create(\"maxLength:100\") }),\n description: string({ validation: validation.create(\"maxLength:255\") }),\n icon: string({ validation: validation.create(\"required,maxLength:255\") })\n})();\n\nconst UpdateContentModelGroupModel = withFields({\n name: string({ validation: validation.create(\"maxLength:100\") }),\n description: string({ validation: validation.create(\"maxLength:255\") }),\n icon: string({ validation: validation.create(\"maxLength:255\") })\n})();\n\nexport interface CreateModelGroupsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\nexport const createModelGroupsCrud = (params: CreateModelGroupsCrudParams): CmsGroupContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, context } = params;\n\n const dataLoaders = {\n listGroups: new DataLoader(async () => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n const pluginsGroups = getGroupsAsPlugins().map(group => {\n return {\n ...group,\n tenant: group.tenant || tenant,\n locale: group.locale || locale\n };\n });\n\n const groups = await storageOperations.groups.list({\n where: {\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n\n return [groups.concat(pluginsGroups)];\n })\n };\n\n const clearGroupsCache = (): void => {\n for (const loader of Object.values(dataLoaders)) {\n loader.clearAll();\n }\n };\n\n const getGroupsAsPlugins = (): CmsGroup[] => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n return (\n context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n /**\n * We need to filter out groups that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: t, locale: l } = plugin.contentModelGroup;\n if (t && t !== tenant) {\n return false;\n } else if (l && l !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModelGroup,\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n })\n );\n };\n\n const checkPermissions = (check: string): Promise<CmsGroupPermission> => {\n return baseCheckPermissions(context, \"cms.contentModelGroup\", { rwd: check });\n };\n\n const groupsGet = async (id: string) => {\n const groups = await dataLoaders.listGroups.load(\"listGroups\");\n\n const group = groups.find(g => g.id === id);\n\n if (!group) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return group;\n };\n\n const groupsList = async (params: CmsGroupListParams) => {\n const { where } = params || {};\n\n try {\n return await dataLoaders.listGroups.load(\"listGroups\");\n } catch (ex) {\n throw new WebinyError(ex.message, ex.code || \"LIST_ERROR\", {\n ...(ex.data || {}),\n where\n });\n }\n };\n\n /**\n * Create\n */\n const onGroupBeforeCreate =\n createTopic<OnGroupBeforeCreateTopicParams>(\"cms.onGroupBeforeCreate\");\n const onGroupAfterCreate = createTopic<OnGroupAfterCreateTopicParams>(\"cms.onGroupAfterCreate\");\n const onGroupCreateError = createTopic<OnGroupCreateErrorTopicParams>(\"cms.onGroupCreateError\");\n /**\n * Update\n */\n const onGroupBeforeUpdate =\n createTopic<OnGroupBeforeUpdateTopicParams>(\"cms.onGroupBeforeUpdate\");\n const onGroupAfterUpdate = createTopic<OnGroupAfterUpdateTopicParams>(\"cms.onGroupAfterUpdate\");\n const onGroupUpdateError = createTopic<OnGroupUpdateErrorTopicParams>(\"cms.onGroupUpdateError\");\n /**\n * Delete\n */\n const onGroupBeforeDelete =\n createTopic<OnGroupBeforeDeleteTopicParams>(\"cms.onGroupBeforeDelete\");\n const onGroupAfterDelete = createTopic<OnGroupAfterDeleteTopicParams>(\"cms.onGroupAfterDelete\");\n const onGroupDeleteError = createTopic<OnGroupDeleteErrorTopicParams>(\"cms.onGroupDeleteError\");\n\n /**\n * We need to assign some default behaviors.\n */\n assignBeforeGroupCreate({\n onGroupBeforeCreate,\n plugins: context.plugins,\n storageOperations\n });\n assignBeforeGroupUpdate({\n onGroupBeforeUpdate,\n plugins: context.plugins\n });\n assignBeforeGroupDelete({\n onGroupBeforeDelete,\n plugins: context.plugins,\n storageOperations\n });\n\n return {\n /**\n * Deprecated - will be removed in 5.36.0\n */\n onBeforeGroupCreate: onGroupBeforeCreate,\n onAfterGroupCreate: onGroupAfterCreate,\n onBeforeGroupUpdate: onGroupBeforeUpdate,\n onAfterGroupUpdate: onGroupAfterUpdate,\n onBeforeGroupDelete: onGroupBeforeDelete,\n onAfterGroupDelete: onGroupAfterDelete,\n /**\n * Released in 5.34.0\n */\n onGroupBeforeCreate,\n onGroupAfterCreate,\n onGroupCreateError,\n onGroupBeforeUpdate,\n onGroupAfterUpdate,\n onGroupUpdateError,\n onGroupBeforeDelete,\n onGroupAfterDelete,\n onGroupDeleteError,\n clearGroupsCache,\n getGroup: async id => {\n const permission = await checkPermissions(\"r\");\n\n const group = await groupsGet(id);\n checkOwnership(context, permission, group);\n validateGroupAccess(context, permission, group);\n\n return group;\n },\n listGroups: async params => {\n const { where } = params || {};\n\n const { tenant, locale } = where || {};\n const permission = await checkPermissions(\"r\");\n\n const response = await groupsList({\n ...(params || {}),\n where: {\n ...(where || {}),\n tenant: tenant || getTenant().id,\n locale: locale || getLocale().code\n }\n });\n\n return response.filter(group => {\n if (!validateOwnership(context, permission, group)) {\n return false;\n }\n return validateGroupAccess(context, permission, group);\n });\n },\n createGroup: async inputData => {\n await checkPermissions(\"w\");\n\n const createdData = new CreateContentModelGroupModel().populate({\n ...inputData,\n slug: inputData.slug ? toSlug(inputData.slug) : \"\",\n description: inputData.description || \"\"\n });\n await createdData.validate();\n const input: CmsGroupCreateInput & { slug: string; description: string } =\n await createdData.toJSON();\n\n const identity = getIdentity();\n\n const id = mdbid();\n const group: CmsGroup = {\n ...input,\n id,\n tenant: getTenant().id,\n locale: getLocale().code,\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n webinyVersion: context.WEBINY_VERSION\n };\n try {\n await onGroupBeforeCreate.publish({\n group\n });\n\n const result = await storageOperations.groups.create({\n group\n });\n\n clearGroupsCache();\n\n await onGroupAfterCreate.publish({\n group: result\n });\n\n return group;\n } catch (ex) {\n await onGroupCreateError.publish({\n input,\n group,\n error: ex\n });\n throw new WebinyError(\n ex.message || \"Could not save data model group.\",\n ex.code || \"ERROR_ON_CREATE\",\n {\n ...(ex.data || {}),\n group,\n input\n }\n );\n }\n },\n updateGroup: async (id, inputData) => {\n const permission = await checkPermissions(\"w\");\n\n const original = await groupsGet(id);\n\n checkOwnership(context, permission, original);\n\n const input = new UpdateContentModelGroupModel().populate(inputData);\n await input.validate();\n\n const updatedDataJson: Partial<CmsGroup> = await input.toJSON({\n onlyDirty: true\n });\n\n /**\n * No need to continue if no values were changed\n */\n if (Object.keys(updatedDataJson).length === 0) {\n return original;\n }\n\n const group: CmsGroup = {\n ...original,\n ...updatedDataJson,\n locale: getLocale().code,\n tenant: getTenant().id,\n savedOn: new Date().toISOString()\n };\n\n try {\n await onGroupBeforeUpdate.publish({\n original,\n group\n });\n\n const updatedGroup = await storageOperations.groups.update({\n group\n });\n clearGroupsCache();\n\n await onGroupAfterUpdate.publish({\n original,\n group: updatedGroup\n });\n\n return updatedGroup;\n } catch (ex) {\n await onGroupUpdateError.publish({\n input,\n original,\n group,\n error: ex\n });\n throw new WebinyError(ex.message, ex.code || \"UPDATE_ERROR\", {\n error: ex,\n original,\n group,\n input\n });\n }\n },\n deleteGroup: async id => {\n const permission = await checkPermissions(\"d\");\n\n const group = await groupsGet(id);\n\n checkOwnership(context, permission, group);\n\n try {\n await onGroupBeforeDelete.publish({\n group\n });\n\n await storageOperations.groups.delete({ group });\n clearGroupsCache();\n\n await onGroupAfterDelete.publish({\n group\n });\n } catch (ex) {\n await onGroupDeleteError.publish({\n group,\n error: ex\n });\n throw new WebinyError(ex.message, ex.code || \"DELETE_ERROR\", {\n ...(ex.data || {}),\n id\n });\n }\n\n return true;\n }\n };\n};\n"],"mappings":"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"}
|
package/crud/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ContextPlugin } from "@webiny/api";
|
|
2
|
+
import { CmsContext, HeadlessCmsStorageOperations } from "../types";
|
|
3
|
+
export interface CrudParams {
|
|
4
|
+
storageOperations: HeadlessCmsStorageOperations;
|
|
5
|
+
}
|
|
6
|
+
export declare const createCrud: (params: CrudParams) => ContextPlugin<CmsContext>;
|
package/crud/index.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createCrud = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _api = require("@webiny/api");
|
|
13
|
+
|
|
14
|
+
var _contentModelGroup = require("./contentModelGroup.crud");
|
|
15
|
+
|
|
16
|
+
var _contentModel = require("./contentModel.crud");
|
|
17
|
+
|
|
18
|
+
var _contentEntry = require("./contentEntry.crud");
|
|
19
|
+
|
|
20
|
+
var _system = require("./system.crud");
|
|
21
|
+
|
|
22
|
+
var _settings = require("./settings.crud");
|
|
23
|
+
|
|
24
|
+
const createCrud = params => {
|
|
25
|
+
const {
|
|
26
|
+
storageOperations
|
|
27
|
+
} = params;
|
|
28
|
+
return new _api.ContextPlugin(async context => {
|
|
29
|
+
const getLocale = () => {
|
|
30
|
+
return context.cms.getLocale();
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const getIdentity = () => {
|
|
34
|
+
return context.security.getIdentity();
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const getTenant = () => {
|
|
38
|
+
return context.tenancy.getCurrentTenant();
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
if (storageOperations.beforeInit) {
|
|
42
|
+
await storageOperations.beforeInit(context);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
context.cms = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, context.cms), {}, {
|
|
46
|
+
storageOperations
|
|
47
|
+
}, (0, _system.createSystemCrud)({
|
|
48
|
+
context,
|
|
49
|
+
getTenant,
|
|
50
|
+
getLocale,
|
|
51
|
+
getIdentity,
|
|
52
|
+
storageOperations
|
|
53
|
+
})), (0, _settings.createSettingsCrud)({
|
|
54
|
+
context,
|
|
55
|
+
getTenant,
|
|
56
|
+
getLocale,
|
|
57
|
+
storageOperations
|
|
58
|
+
})), (0, _contentModelGroup.createModelGroupsCrud)({
|
|
59
|
+
context,
|
|
60
|
+
getTenant,
|
|
61
|
+
getLocale,
|
|
62
|
+
getIdentity,
|
|
63
|
+
storageOperations
|
|
64
|
+
})), (0, _contentModel.createModelsCrud)({
|
|
65
|
+
context,
|
|
66
|
+
getLocale,
|
|
67
|
+
getTenant,
|
|
68
|
+
getIdentity,
|
|
69
|
+
storageOperations
|
|
70
|
+
})), (0, _contentEntry.createContentEntryCrud)({
|
|
71
|
+
context,
|
|
72
|
+
getIdentity,
|
|
73
|
+
getTenant,
|
|
74
|
+
storageOperations
|
|
75
|
+
}));
|
|
76
|
+
|
|
77
|
+
if (!storageOperations.init) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
await storageOperations.init(context);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
exports.createCrud = createCrud;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createCrud","params","storageOperations","ContextPlugin","context","getLocale","cms","getIdentity","security","getTenant","tenancy","getCurrentTenant","beforeInit","createSystemCrud","createSettingsCrud","createModelGroupsCrud","createModelsCrud","createContentEntryCrud","init"],"sources":["index.ts"],"sourcesContent":["import { ContextPlugin } from \"@webiny/api\";\nimport { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport { createModelGroupsCrud } from \"./contentModelGroup.crud\";\nimport { createModelsCrud } from \"./contentModel.crud\";\nimport { createContentEntryCrud } from \"./contentEntry.crud\";\nimport { createSystemCrud } from \"./system.crud\";\nimport { createSettingsCrud } from \"./settings.crud\";\n\nexport interface CrudParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createCrud = (params: CrudParams) => {\n const { storageOperations } = params;\n return new ContextPlugin<CmsContext>(async context => {\n const getLocale = () => {\n return context.cms.getLocale();\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n if (storageOperations.beforeInit) {\n await storageOperations.beforeInit(context);\n }\n\n context.cms = {\n ...context.cms,\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 }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createModelsCrud({\n context,\n getLocale,\n getTenant,\n getIdentity,\n storageOperations\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n getTenant,\n storageOperations\n })\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context);\n });\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAMO,MAAMA,UAAU,GAAIC,MAAD,IAAwB;EAC9C,MAAM;IAAEC;EAAF,IAAwBD,MAA9B;EACA,OAAO,IAAIE,kBAAJ,CAA8B,MAAMC,OAAN,IAAiB;IAClD,MAAMC,SAAS,GAAG,MAAM;MACpB,OAAOD,OAAO,CAACE,GAAR,CAAYD,SAAZ,EAAP;IACH,CAFD;;IAIA,MAAME,WAAW,GAAG,MAAM;MACtB,OAAOH,OAAO,CAACI,QAAR,CAAiBD,WAAjB,EAAP;IACH,CAFD;;IAIA,MAAME,SAAS,GAAG,MAAM;MACpB,OAAOL,OAAO,CAACM,OAAR,CAAgBC,gBAAhB,EAAP;IACH,CAFD;;IAIA,IAAIT,iBAAiB,CAACU,UAAtB,EAAkC;MAC9B,MAAMV,iBAAiB,CAACU,UAAlB,CAA6BR,OAA7B,CAAN;IACH;;IAEDA,OAAO,CAACE,GAAR,+KACOF,OAAO,CAACE,GADf;MAEIJ;IAFJ,GAGO,IAAAW,wBAAA,EAAiB;MAChBT,OADgB;MAEhBK,SAFgB;MAGhBJ,SAHgB;MAIhBE,WAJgB;MAKhBL;IALgB,CAAjB,CAHP,GAUO,IAAAY,4BAAA,EAAmB;MAClBV,OADkB;MAElBK,SAFkB;MAGlBJ,SAHkB;MAIlBH;IAJkB,CAAnB,CAVP,GAgBO,IAAAa,wCAAA,EAAsB;MACrBX,OADqB;MAErBK,SAFqB;MAGrBJ,SAHqB;MAIrBE,WAJqB;MAKrBL;IALqB,CAAtB,CAhBP,GAuBO,IAAAc,8BAAA,EAAiB;MAChBZ,OADgB;MAEhBC,SAFgB;MAGhBI,SAHgB;MAIhBF,WAJgB;MAKhBL;IALgB,CAAjB,CAvBP,GA8BO,IAAAe,oCAAA,EAAuB;MACtBb,OADsB;MAEtBG,WAFsB;MAGtBE,SAHsB;MAItBP;IAJsB,CAAvB,CA9BP;;IAsCA,IAAI,CAACA,iBAAiB,CAACgB,IAAvB,EAA6B;MACzB;IACH;;IACD,MAAMhB,iBAAiB,CAACgB,IAAlB,CAAuBd,OAAvB,CAAN;EACH,CA3DM,CAAP;AA4DH,CA9DM"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CmsContext, HeadlessCmsStorageOperations, CmsSettingsContext } from "../types";
|
|
2
|
+
import { Tenant } from "@webiny/api-tenancy/types";
|
|
3
|
+
import { I18NLocale } from "@webiny/api-i18n/types";
|
|
4
|
+
export interface CreateSettingsCrudParams {
|
|
5
|
+
getTenant: () => Tenant;
|
|
6
|
+
getLocale: () => I18NLocale;
|
|
7
|
+
storageOperations: HeadlessCmsStorageOperations;
|
|
8
|
+
context: CmsContext;
|
|
9
|
+
}
|
|
10
|
+
export declare const createSettingsCrud: (params: CreateSettingsCrudParams) => CmsSettingsContext;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createSettingsCrud = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _permissions = require("../utils/permissions");
|
|
13
|
+
|
|
14
|
+
const createSettingsCrud = params => {
|
|
15
|
+
const {
|
|
16
|
+
storageOperations,
|
|
17
|
+
context,
|
|
18
|
+
getTenant,
|
|
19
|
+
getLocale
|
|
20
|
+
} = params;
|
|
21
|
+
|
|
22
|
+
const checkPermissions = () => {
|
|
23
|
+
return (0, _permissions.checkPermissions)(context, "cms.settings");
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
getSettings: async () => {
|
|
28
|
+
await checkPermissions();
|
|
29
|
+
return await storageOperations.settings.get({
|
|
30
|
+
tenant: getTenant().id,
|
|
31
|
+
locale: getLocale().code
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
updateModelLastChange: async () => {
|
|
35
|
+
const original = await storageOperations.settings.get({
|
|
36
|
+
tenant: getTenant().id,
|
|
37
|
+
locale: getLocale().code
|
|
38
|
+
});
|
|
39
|
+
const settings = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, original || {}), {}, {
|
|
40
|
+
contentModelLastChange: new Date(),
|
|
41
|
+
tenant: getTenant().id,
|
|
42
|
+
locale: getLocale().code
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
if (!original) {
|
|
46
|
+
await storageOperations.settings.create({
|
|
47
|
+
settings
|
|
48
|
+
});
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
await storageOperations.settings.update({
|
|
53
|
+
settings
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
getModelLastChange: async () => {
|
|
57
|
+
try {
|
|
58
|
+
const settings = await storageOperations.settings.get({
|
|
59
|
+
tenant: getTenant().id,
|
|
60
|
+
locale: getLocale().code
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
if (!(settings !== null && settings !== void 0 && settings.contentModelLastChange)) {
|
|
64
|
+
return new Date();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return settings.contentModelLastChange;
|
|
68
|
+
} catch (ex) {
|
|
69
|
+
console.log({
|
|
70
|
+
error: {
|
|
71
|
+
message: ex.message,
|
|
72
|
+
code: ex.code || "COULD_NOT_FETCH_CONTENT_MODEL_LAST_CHANGE",
|
|
73
|
+
data: ex
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return new Date();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
exports.createSettingsCrud = createSettingsCrud;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSettingsCrud","params","storageOperations","context","getTenant","getLocale","checkPermissions","baseCheckPermissions","getSettings","settings","get","tenant","id","locale","code","updateModelLastChange","original","contentModelLastChange","Date","create","update","getModelLastChange","ex","console","log","error","message","data"],"sources":["settings.crud.ts"],"sourcesContent":["import {\n CmsContext,\n CmsSettingsPermission,\n CmsSettings,\n HeadlessCmsStorageOperations,\n CmsSettingsContext\n} from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { checkPermissions as baseCheckPermissions } from \"~/utils/permissions\";\n\nexport interface CreateSettingsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n}\nexport const createSettingsCrud = (params: CreateSettingsCrudParams): CmsSettingsContext => {\n const { storageOperations, context, getTenant, getLocale } = params;\n\n const checkPermissions = (): Promise<CmsSettingsPermission> => {\n return baseCheckPermissions(context, \"cms.settings\");\n };\n\n return {\n getSettings: async (): Promise<CmsSettings | null> => {\n await checkPermissions();\n return await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n },\n updateModelLastChange: async (): Promise<void> => {\n const original = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n\n const settings: CmsSettings = {\n ...(original || {}),\n contentModelLastChange: new Date(),\n tenant: getTenant().id,\n locale: getLocale().code\n };\n\n if (!original) {\n await storageOperations.settings.create({ settings });\n return;\n }\n\n await storageOperations.settings.update({\n settings\n });\n },\n getModelLastChange: async (): Promise<Date> => {\n try {\n const settings = await storageOperations.settings.get({\n tenant: getTenant().id,\n locale: getLocale().code\n });\n if (!settings?.contentModelLastChange) {\n return new Date();\n }\n return settings.contentModelLastChange;\n } catch (ex) {\n console.log({\n error: {\n message: ex.message,\n code: ex.code || \"COULD_NOT_FETCH_CONTENT_MODEL_LAST_CHANGE\",\n data: ex\n }\n });\n }\n return new Date();\n }\n };\n};\n"],"mappings":";;;;;;;;;;;AASA;;AAQO,MAAMA,kBAAkB,GAAIC,MAAD,IAA0D;EACxF,MAAM;IAAEC,iBAAF;IAAqBC,OAArB;IAA8BC,SAA9B;IAAyCC;EAAzC,IAAuDJ,MAA7D;;EAEA,MAAMK,gBAAgB,GAAG,MAAsC;IAC3D,OAAO,IAAAC,6BAAA,EAAqBJ,OAArB,EAA8B,cAA9B,CAAP;EACH,CAFD;;EAIA,OAAO;IACHK,WAAW,EAAE,YAAyC;MAClD,MAAMF,gBAAgB,EAAtB;MACA,OAAO,MAAMJ,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;QACxCC,MAAM,EAAEP,SAAS,GAAGQ,EADoB;QAExCC,MAAM,EAAER,SAAS,GAAGS;MAFoB,CAA/B,CAAb;IAIH,CAPE;IAQHC,qBAAqB,EAAE,YAA2B;MAC9C,MAAMC,QAAQ,GAAG,MAAMd,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;QAClDC,MAAM,EAAEP,SAAS,GAAGQ,EAD8B;QAElDC,MAAM,EAAER,SAAS,GAAGS;MAF8B,CAA/B,CAAvB;MAKA,MAAML,QAAqB,+DACnBO,QAAQ,IAAI,EADO;QAEvBC,sBAAsB,EAAE,IAAIC,IAAJ,EAFD;QAGvBP,MAAM,EAAEP,SAAS,GAAGQ,EAHG;QAIvBC,MAAM,EAAER,SAAS,GAAGS;MAJG,EAA3B;;MAOA,IAAI,CAACE,QAAL,EAAe;QACX,MAAMd,iBAAiB,CAACO,QAAlB,CAA2BU,MAA3B,CAAkC;UAAEV;QAAF,CAAlC,CAAN;QACA;MACH;;MAED,MAAMP,iBAAiB,CAACO,QAAlB,CAA2BW,MAA3B,CAAkC;QACpCX;MADoC,CAAlC,CAAN;IAGH,CA7BE;IA8BHY,kBAAkB,EAAE,YAA2B;MAC3C,IAAI;QACA,MAAMZ,QAAQ,GAAG,MAAMP,iBAAiB,CAACO,QAAlB,CAA2BC,GAA3B,CAA+B;UAClDC,MAAM,EAAEP,SAAS,GAAGQ,EAD8B;UAElDC,MAAM,EAAER,SAAS,GAAGS;QAF8B,CAA/B,CAAvB;;QAIA,IAAI,EAACL,QAAD,aAACA,QAAD,eAACA,QAAQ,CAAEQ,sBAAX,CAAJ,EAAuC;UACnC,OAAO,IAAIC,IAAJ,EAAP;QACH;;QACD,OAAOT,QAAQ,CAACQ,sBAAhB;MACH,CATD,CASE,OAAOK,EAAP,EAAW;QACTC,OAAO,CAACC,GAAR,CAAY;UACRC,KAAK,EAAE;YACHC,OAAO,EAAEJ,EAAE,CAACI,OADT;YAEHZ,IAAI,EAAEQ,EAAE,CAACR,IAAH,IAAW,2CAFd;YAGHa,IAAI,EAAEL;UAHH;QADC,CAAZ;MAOH;;MACD,OAAO,IAAIJ,IAAJ,EAAP;IACH;EAlDE,CAAP;AAoDH,CA3DM"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CmsContext, CmsSystemContext, HeadlessCmsStorageOperations } from "../types";
|
|
2
|
+
import { Tenant } from "@webiny/api-tenancy/types";
|
|
3
|
+
import { SecurityIdentity } from "@webiny/api-security/types";
|
|
4
|
+
import { I18NLocale } from "@webiny/api-i18n/types";
|
|
5
|
+
interface CreateSystemCrudParams {
|
|
6
|
+
getTenant: () => Tenant;
|
|
7
|
+
getLocale: () => I18NLocale;
|
|
8
|
+
storageOperations: HeadlessCmsStorageOperations;
|
|
9
|
+
context: CmsContext;
|
|
10
|
+
getIdentity: () => SecurityIdentity;
|
|
11
|
+
}
|
|
12
|
+
export declare const createSystemCrud: (params: CreateSystemCrudParams) => CmsSystemContext;
|
|
13
|
+
export {};
|