@webiny/api-headless-cms 5.17.4 → 5.18.0-beta.3
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/content/contextSetup.js +1 -2
- package/content/graphQLHandlerFactory.d.ts +1 -2
- package/content/graphQLHandlerFactory.js +12 -4
- package/content/plugins/CmsGroupPlugin.d.ts +11 -0
- package/content/plugins/{ContentModelGroupPlugin.js → CmsGroupPlugin.js} +4 -5
- package/content/plugins/CmsModelPlugin.d.ts +11 -0
- package/content/plugins/{ContentModelPlugin.js → CmsModelPlugin.js} +4 -5
- package/content/plugins/buildSchemaPlugins.js +1 -2
- package/content/plugins/crud/contentEntry/beforeCreate.d.ts +7 -0
- package/content/plugins/crud/contentEntry/beforeCreate.js +28 -0
- package/content/plugins/crud/contentEntry/beforeUpdate.d.ts +7 -0
- package/content/plugins/crud/contentEntry/beforeUpdate.js +28 -0
- package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +2 -2
- package/content/plugins/crud/contentEntry/entryDataValidation.js +1 -2
- package/content/plugins/crud/contentEntry/markLockedFields.d.ts +3 -3
- package/content/plugins/crud/contentEntry/markLockedFields.js +10 -7
- package/content/plugins/crud/contentEntry.crud.d.ts +12 -4
- package/content/plugins/crud/contentEntry.crud.js +807 -757
- package/content/plugins/crud/contentModel/afterCreate.d.ts +7 -0
- package/content/plugins/crud/contentModel/afterCreate.js +18 -0
- package/content/plugins/crud/contentModel/afterDelete.d.ts +7 -0
- package/content/plugins/crud/contentModel/afterDelete.js +18 -0
- package/content/plugins/crud/contentModel/afterUpdate.d.ts +7 -0
- package/content/plugins/crud/contentModel/afterUpdate.js +18 -0
- package/content/plugins/crud/contentModel/beforeCreate.d.ts +9 -0
- package/content/plugins/crud/contentModel/beforeCreate.js +146 -0
- package/content/plugins/crud/contentModel/beforeDelete.d.ts +9 -0
- package/content/plugins/crud/contentModel/beforeDelete.js +56 -0
- package/content/plugins/crud/contentModel/beforeUpdate.d.ts +9 -0
- package/content/plugins/crud/contentModel/beforeUpdate.js +128 -0
- package/content/plugins/crud/contentModel/contentModelManagerFactory.d.ts +2 -2
- package/content/plugins/crud/contentModel/contentModelManagerFactory.js +2 -3
- package/content/plugins/crud/contentModel/createFieldModels.d.ts +2 -2
- package/content/plugins/crud/contentModel/createFieldModels.js +2 -3
- package/content/plugins/crud/contentModel/idValidation.js +1 -2
- package/content/plugins/crud/contentModel/models.js +1 -2
- package/content/plugins/crud/contentModel/validateLayout.d.ts +2 -2
- package/content/plugins/crud/contentModel/validateLayout.js +1 -2
- package/content/plugins/crud/contentModel.crud.d.ts +12 -4
- package/content/plugins/crud/contentModel.crud.js +351 -279
- package/content/plugins/crud/contentModelGroup/beforeCreate.d.ts +9 -0
- package/content/plugins/crud/contentModelGroup/beforeCreate.js +66 -0
- package/content/plugins/crud/contentModelGroup/beforeDelete.d.ts +9 -0
- package/content/plugins/crud/contentModelGroup/beforeDelete.js +48 -0
- package/content/plugins/crud/contentModelGroup/beforeUpdate.d.ts +8 -0
- package/content/plugins/crud/contentModelGroup/beforeUpdate.js +28 -0
- package/content/plugins/crud/contentModelGroup.crud.d.ts +12 -4
- package/content/plugins/crud/contentModelGroup.crud.js +259 -219
- package/content/plugins/crud/index.d.ts +6 -0
- package/content/plugins/crud/index.js +96 -0
- package/content/plugins/graphqlFields/boolean.js +1 -2
- package/content/plugins/graphqlFields/datetime.js +1 -2
- package/content/plugins/graphqlFields/file.js +1 -2
- package/content/plugins/graphqlFields/index.js +1 -2
- package/content/plugins/graphqlFields/longText.js +1 -2
- package/content/plugins/graphqlFields/number.js +1 -2
- package/content/plugins/graphqlFields/object.js +1 -2
- package/content/plugins/graphqlFields/ref.js +22 -11
- package/content/plugins/graphqlFields/richText.js +1 -2
- package/content/plugins/graphqlFields/text.js +1 -2
- package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js +2 -3
- package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js +1 -2
- package/content/plugins/modelManager/DefaultCmsModelManager.d.ts +15 -0
- package/content/plugins/modelManager/DefaultCmsModelManager.js +62 -0
- package/content/plugins/modelManager/index.d.ts +2 -2
- package/content/plugins/modelManager/index.js +3 -4
- package/content/plugins/schema/baseSchema.js +1 -2
- package/content/plugins/schema/contentEntries.js +9 -10
- package/content/plugins/schema/contentModelGroups.js +13 -14
- package/content/plugins/schema/contentModels.js +9 -10
- package/content/plugins/schema/createFieldResolvers.d.ts +2 -2
- package/content/plugins/schema/createFieldResolvers.js +14 -20
- package/content/plugins/schema/createManageResolvers.d.ts +3 -3
- package/content/plugins/schema/createManageResolvers.js +6 -10
- package/content/plugins/schema/createManageSDL.d.ts +2 -2
- package/content/plugins/schema/createManageSDL.js +5 -6
- package/content/plugins/schema/createPreviewResolvers.d.ts +3 -3
- package/content/plugins/schema/createPreviewResolvers.js +5 -6
- package/content/plugins/schema/createReadResolvers.d.ts +3 -3
- package/content/plugins/schema/createReadResolvers.js +5 -6
- package/content/plugins/schema/createReadSDL.d.ts +2 -2
- package/content/plugins/schema/createReadSDL.js +3 -4
- package/content/plugins/schema/resolvers/commonFieldResolvers.d.ts +4 -4
- package/content/plugins/schema/resolvers/commonFieldResolvers.js +1 -2
- package/content/plugins/schema/resolvers/manage/resolveCreate.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveCreate.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveCreateFrom.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveCreateFrom.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveDelete.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveDelete.js +4 -5
- package/content/plugins/schema/resolvers/manage/resolveGet.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveGet.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveGetByIds.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveGetByIds.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveGetRevisions.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveGetRevisions.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveList.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveList.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolvePublish.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolvePublish.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveRequestChanges.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveRequestChanges.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveRequestReview.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveRequestReview.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveUnpublish.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveUnpublish.js +3 -4
- package/content/plugins/schema/resolvers/manage/resolveUpdate.d.ts +1 -1
- package/content/plugins/schema/resolvers/manage/resolveUpdate.js +3 -4
- package/content/plugins/schema/resolvers/preview/resolveGet.d.ts +1 -1
- package/content/plugins/schema/resolvers/preview/resolveGet.js +3 -4
- package/content/plugins/schema/resolvers/preview/resolveList.d.ts +1 -1
- package/content/plugins/schema/resolvers/preview/resolveList.js +3 -4
- package/content/plugins/schema/resolvers/read/resolveGet.d.ts +1 -1
- package/content/plugins/schema/resolvers/read/resolveGet.js +3 -4
- package/content/plugins/schema/resolvers/read/resolveList.d.ts +1 -1
- package/content/plugins/schema/resolvers/read/resolveList.js +3 -4
- package/content/plugins/schema/schemaPlugins.js +4 -3
- package/content/plugins/storage/StorageTransformPlugin.d.ts +30 -0
- package/content/plugins/storage/StorageTransformPlugin.js +36 -0
- package/content/plugins/storage/default.d.ts +2 -2
- package/content/plugins/storage/default.js +12 -12
- package/content/plugins/storage/object.d.ts +2 -2
- package/content/plugins/storage/object.js +28 -29
- package/content/plugins/utils/createTypeName.js +1 -2
- package/content/plugins/utils/entryStorage.d.ts +5 -5
- package/content/plugins/utils/entryStorage.js +21 -14
- package/content/plugins/utils/getEntryTitle.d.ts +2 -2
- package/content/plugins/utils/getEntryTitle.js +1 -2
- package/content/plugins/utils/getSchemaFromFieldPlugins.d.ts +2 -2
- package/content/plugins/utils/getSchemaFromFieldPlugins.js +1 -2
- package/content/plugins/utils/pluralizedTypeName.js +1 -2
- package/content/plugins/utils/renderFields.d.ts +2 -2
- package/content/plugins/utils/renderFields.js +1 -2
- package/content/plugins/utils/renderGetFilterFields.d.ts +2 -2
- package/content/plugins/utils/renderGetFilterFields.js +1 -2
- package/content/plugins/utils/renderInputFields.d.ts +2 -2
- package/content/plugins/utils/renderInputFields.js +1 -2
- package/content/plugins/utils/renderListFilterFields.d.ts +2 -2
- package/content/plugins/utils/renderListFilterFields.js +1 -2
- package/content/plugins/utils/renderSortEnum.d.ts +2 -2
- package/content/plugins/utils/renderSortEnum.js +1 -2
- package/content/plugins/validators/dateGte.js +1 -2
- package/content/plugins/validators/dateLte.js +1 -2
- package/content/plugins/validators/gte.js +1 -2
- package/content/plugins/validators/in.js +1 -2
- package/content/plugins/validators/index.js +1 -2
- package/content/plugins/validators/lte.js +1 -2
- package/content/plugins/validators/maxLength.js +1 -2
- package/content/plugins/validators/minLength.js +1 -2
- package/content/plugins/validators/pattern.js +1 -2
- package/content/plugins/validators/patternPlugins/email.js +1 -2
- package/content/plugins/validators/patternPlugins/index.js +1 -2
- package/content/plugins/validators/patternPlugins/lowerCase.js +1 -2
- package/content/plugins/validators/patternPlugins/upperCase.js +1 -2
- package/content/plugins/validators/patternPlugins/url.js +1 -2
- package/content/plugins/validators/required.js +1 -2
- package/content/plugins/validators/timeGte.js +1 -2
- package/content/plugins/validators/timeLte.js +1 -2
- package/index.d.ts +12 -0
- package/index.js +66 -0
- package/migrateCMSPermissions.d.ts +2 -2
- package/migrateCMSPermissions.js +1 -2
- package/package.json +23 -21
- package/plugins/context.js +1 -2
- package/plugins/crud/index.d.ts +6 -2
- package/plugins/crud/index.js +69 -6
- package/plugins/crud/settings.crud.d.ts +10 -4
- package/plugins/crud/settings.crud.js +64 -77
- package/plugins/crud/system.crud.d.ts +10 -4
- package/plugins/crud/system.crud.js +139 -126
- package/plugins/graphql/system.js +5 -6
- package/plugins/graphql.d.ts +1 -2
- package/plugins/graphql.js +49 -50
- package/plugins/upgrades/index.js +1 -2
- package/plugins/upgrades/v5.5.0/helpers.js +1 -2
- package/plugins/upgrades/v5.5.0/index.js +3 -4
- package/transformers.js +1 -2
- package/types.d.ts +742 -1232
- package/types.js +104 -254
- package/utils.d.ts +4 -11
- package/utils.js +2 -49
- package/content/contextSetup.js.map +0 -1
- package/content/graphQLHandlerFactory.js.map +0 -1
- package/content/index.d.ts +0 -5
- package/content/index.js +0 -37
- package/content/index.js.map +0 -1
- package/content/plugins/ContentModelGroupPlugin.d.ts +0 -7
- package/content/plugins/ContentModelGroupPlugin.js.map +0 -1
- package/content/plugins/ContentModelPlugin.d.ts +0 -7
- package/content/plugins/ContentModelPlugin.js.map +0 -1
- package/content/plugins/buildSchemaPlugins.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterCreate.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterCreate.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterCreate.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterCreateRevisionFrom.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterCreateRevisionFrom.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterCreateRevisionFrom.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterDelete.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterDelete.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterDelete.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterDeleteRevision.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterDeleteRevision.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterDeleteRevision.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterPublish.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterPublish.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterPublish.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterRequestChanges.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterRequestChanges.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterRequestChanges.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterRequestReview.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterRequestReview.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterRequestReview.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterUnpublish.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterUnpublish.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterUnpublish.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/afterUpdate.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/afterUpdate.hook.js +0 -15
- package/content/plugins/crud/contentEntry/afterUpdate.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeCreate.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeCreate.hook.js +0 -18
- package/content/plugins/crud/contentEntry/beforeCreate.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeCreateRevisionFrom.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeCreateRevisionFrom.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforeCreateRevisionFrom.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeDelete.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeDelete.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforeDelete.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeDeleteRevision.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeDeleteRevision.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforeDeleteRevision.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforePublish.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforePublish.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforePublish.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeRequestChanges.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeRequestChanges.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforeRequestChanges.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeRequestReview.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeRequestReview.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforeRequestReview.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeUnpublish.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeUnpublish.hook.js +0 -15
- package/content/plugins/crud/contentEntry/beforeUnpublish.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/beforeUpdate.hook.d.ts +0 -2
- package/content/plugins/crud/contentEntry/beforeUpdate.hook.js +0 -18
- package/content/plugins/crud/contentEntry/beforeUpdate.hook.js.map +0 -1
- package/content/plugins/crud/contentEntry/entryDataValidation.js.map +0 -1
- package/content/plugins/crud/contentEntry/hooks.d.ts +0 -18
- package/content/plugins/crud/contentEntry/hooks.js +0 -240
- package/content/plugins/crud/contentEntry/hooks.js.map +0 -1
- package/content/plugins/crud/contentEntry/markLockedFields.js.map +0 -1
- package/content/plugins/crud/contentEntry/runContentEntryLifecycleHooks.d.ts +0 -4
- package/content/plugins/crud/contentEntry/runContentEntryLifecycleHooks.js +0 -24
- package/content/plugins/crud/contentEntry/runContentEntryLifecycleHooks.js.map +0 -1
- package/content/plugins/crud/contentEntry.crud.js.map +0 -1
- package/content/plugins/crud/contentModel/afterCreate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModel/afterCreate.hook.js +0 -24
- package/content/plugins/crud/contentModel/afterCreate.hook.js.map +0 -1
- package/content/plugins/crud/contentModel/afterDelete.hook.d.ts +0 -7
- package/content/plugins/crud/contentModel/afterDelete.hook.js +0 -24
- package/content/plugins/crud/contentModel/afterDelete.hook.js.map +0 -1
- package/content/plugins/crud/contentModel/afterUpdate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModel/afterUpdate.hook.js +0 -24
- package/content/plugins/crud/contentModel/afterUpdate.hook.js.map +0 -1
- package/content/plugins/crud/contentModel/beforeCreate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModel/beforeCreate.hook.js +0 -137
- package/content/plugins/crud/contentModel/beforeCreate.hook.js.map +0 -1
- package/content/plugins/crud/contentModel/beforeDelete.hook.d.ts +0 -7
- package/content/plugins/crud/contentModel/beforeDelete.hook.js +0 -58
- package/content/plugins/crud/contentModel/beforeDelete.hook.js.map +0 -1
- package/content/plugins/crud/contentModel/beforeUpdate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModel/beforeUpdate.hook.js +0 -141
- package/content/plugins/crud/contentModel/beforeUpdate.hook.js.map +0 -1
- package/content/plugins/crud/contentModel/contentModelManagerFactory.js.map +0 -1
- package/content/plugins/crud/contentModel/createFieldModels.js.map +0 -1
- package/content/plugins/crud/contentModel/hooks.d.ts +0 -6
- package/content/plugins/crud/contentModel/hooks.js +0 -84
- package/content/plugins/crud/contentModel/hooks.js.map +0 -1
- package/content/plugins/crud/contentModel/idValidation.js.map +0 -1
- package/content/plugins/crud/contentModel/models.js.map +0 -1
- package/content/plugins/crud/contentModel/runContentModelLifecycleHooks.d.ts +0 -2
- package/content/plugins/crud/contentModel/runContentModelLifecycleHooks.js +0 -24
- package/content/plugins/crud/contentModel/runContentModelLifecycleHooks.js.map +0 -1
- package/content/plugins/crud/contentModel/validateLayout.js.map +0 -1
- package/content/plugins/crud/contentModel.crud.js.map +0 -1
- package/content/plugins/crud/contentModelGroup/afterCreate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModelGroup/afterCreate.hook.js +0 -24
- package/content/plugins/crud/contentModelGroup/afterCreate.hook.js.map +0 -1
- package/content/plugins/crud/contentModelGroup/afterDelete.hook.d.ts +0 -8
- package/content/plugins/crud/contentModelGroup/afterDelete.hook.js +0 -22
- package/content/plugins/crud/contentModelGroup/afterDelete.hook.js.map +0 -1
- package/content/plugins/crud/contentModelGroup/afterUpdate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModelGroup/afterUpdate.hook.js +0 -26
- package/content/plugins/crud/contentModelGroup/afterUpdate.hook.js.map +0 -1
- package/content/plugins/crud/contentModelGroup/beforeCreate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModelGroup/beforeCreate.hook.js +0 -87
- package/content/plugins/crud/contentModelGroup/beforeCreate.hook.js.map +0 -1
- package/content/plugins/crud/contentModelGroup/beforeDelete.hook.d.ts +0 -7
- package/content/plugins/crud/contentModelGroup/beforeDelete.hook.js +0 -46
- package/content/plugins/crud/contentModelGroup/beforeDelete.hook.js.map +0 -1
- package/content/plugins/crud/contentModelGroup/beforeUpdate.hook.d.ts +0 -7
- package/content/plugins/crud/contentModelGroup/beforeUpdate.hook.js +0 -35
- package/content/plugins/crud/contentModelGroup/beforeUpdate.hook.js.map +0 -1
- package/content/plugins/crud/contentModelGroup.crud.js.map +0 -1
- package/content/plugins/graphqlFields/boolean.js.map +0 -1
- package/content/plugins/graphqlFields/datetime.js.map +0 -1
- package/content/plugins/graphqlFields/file.js.map +0 -1
- package/content/plugins/graphqlFields/index.js.map +0 -1
- package/content/plugins/graphqlFields/longText.js.map +0 -1
- package/content/plugins/graphqlFields/number.js.map +0 -1
- package/content/plugins/graphqlFields/object.js.map +0 -1
- package/content/plugins/graphqlFields/ref.js.map +0 -1
- package/content/plugins/graphqlFields/richText.js.map +0 -1
- package/content/plugins/graphqlFields/text.js.map +0 -1
- package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js.map +0 -1
- package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js.map +0 -1
- package/content/plugins/modelManager/DefaultContentModelManager.d.ts +0 -15
- package/content/plugins/modelManager/DefaultContentModelManager.js +0 -63
- package/content/plugins/modelManager/DefaultContentModelManager.js.map +0 -1
- package/content/plugins/modelManager/index.js.map +0 -1
- package/content/plugins/schema/baseSchema.js.map +0 -1
- package/content/plugins/schema/contentEntries.js.map +0 -1
- package/content/plugins/schema/contentModelGroups.js.map +0 -1
- package/content/plugins/schema/contentModels.js.map +0 -1
- package/content/plugins/schema/createFieldResolvers.js.map +0 -1
- package/content/plugins/schema/createManageResolvers.js.map +0 -1
- package/content/plugins/schema/createManageSDL.js.map +0 -1
- package/content/plugins/schema/createPreviewResolvers.js.map +0 -1
- package/content/plugins/schema/createReadResolvers.js.map +0 -1
- package/content/plugins/schema/createReadSDL.js.map +0 -1
- package/content/plugins/schema/resolvers/commonFieldResolvers.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveCreate.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveCreateFrom.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveDelete.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveGet.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveGetByIds.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveGetRevisions.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveList.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolvePublish.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveUnpublish.js.map +0 -1
- package/content/plugins/schema/resolvers/manage/resolveUpdate.js.map +0 -1
- package/content/plugins/schema/resolvers/preview/resolveGet.js.map +0 -1
- package/content/plugins/schema/resolvers/preview/resolveList.js.map +0 -1
- package/content/plugins/schema/resolvers/read/resolveGet.js.map +0 -1
- package/content/plugins/schema/resolvers/read/resolveList.js.map +0 -1
- package/content/plugins/schema/schemaPlugins.js.map +0 -1
- package/content/plugins/storage/default.js.map +0 -1
- package/content/plugins/storage/object.js.map +0 -1
- package/content/plugins/utils/createTypeName.js.map +0 -1
- package/content/plugins/utils/entryStorage.js.map +0 -1
- package/content/plugins/utils/getEntryTitle.js.map +0 -1
- package/content/plugins/utils/getSchemaFromFieldPlugins.js.map +0 -1
- package/content/plugins/utils/pluralizedTypeName.js.map +0 -1
- package/content/plugins/utils/renderFields.js.map +0 -1
- package/content/plugins/utils/renderGetFilterFields.js.map +0 -1
- package/content/plugins/utils/renderInputFields.js.map +0 -1
- package/content/plugins/utils/renderListFilterFields.js.map +0 -1
- package/content/plugins/utils/renderSortEnum.js.map +0 -1
- package/content/plugins/validators/dateGte.js.map +0 -1
- package/content/plugins/validators/dateLte.js.map +0 -1
- package/content/plugins/validators/gte.js.map +0 -1
- package/content/plugins/validators/in.js.map +0 -1
- package/content/plugins/validators/index.js.map +0 -1
- package/content/plugins/validators/lte.js.map +0 -1
- package/content/plugins/validators/maxLength.js.map +0 -1
- package/content/plugins/validators/minLength.js.map +0 -1
- package/content/plugins/validators/pattern.js.map +0 -1
- package/content/plugins/validators/patternPlugins/email.js.map +0 -1
- package/content/plugins/validators/patternPlugins/index.js.map +0 -1
- package/content/plugins/validators/patternPlugins/lowerCase.js.map +0 -1
- package/content/plugins/validators/patternPlugins/upperCase.js.map +0 -1
- package/content/plugins/validators/patternPlugins/url.js.map +0 -1
- package/content/plugins/validators/required.js.map +0 -1
- package/content/plugins/validators/timeGte.js.map +0 -1
- package/content/plugins/validators/timeLte.js.map +0 -1
- package/migrateCMSPermissions.js.map +0 -1
- package/plugins/InstallationPlugin.d.ts +0 -19
- package/plugins/InstallationPlugin.js +0 -39
- package/plugins/InstallationPlugin.js.map +0 -1
- package/plugins/context.js.map +0 -1
- package/plugins/crud/index.js.map +0 -1
- package/plugins/crud/settings.crud.js.map +0 -1
- package/plugins/crud/system.crud.js.map +0 -1
- package/plugins/graphql/system.js.map +0 -1
- package/plugins/graphql.js.map +0 -1
- package/plugins/index.d.ts +0 -2
- package/plugins/index.js +0 -25
- package/plugins/index.js.map +0 -1
- package/plugins/upgrades/index.js.map +0 -1
- package/plugins/upgrades/v5.5.0/helpers.js.map +0 -1
- package/plugins/upgrades/v5.5.0/index.js.map +0 -1
- package/transformers.js.map +0 -1
- package/types.js.map +0 -1
- package/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/lte.ts"],"names":["plugin","type","name","validator","validate","value","lteValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,+BAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,KADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAC3B,YAAMG,QAAQ,GAAGH,SAAS,CAACI,QAAV,CAAmBF,KAApC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,OAAMC,QAAS,EAD9B,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AACD,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAXM;AAH8B,CAA7C;eAkBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-lte\",\n validator: {\n name: \"lte\",\n validate({ value, validator }) {\n const lteValue = validator.settings.value;\n if (typeof lteValue !== \"undefined\") {\n return validation\n .validate(value, `lte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"],"file":"lte.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/maxLength.ts"],"names":["plugin","type","name","validator","validate","value","maxLengthValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,sCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,WADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAC3B,YAAMG,cAAc,GAAGH,SAAS,CAACI,QAAV,CAAmBF,KAA1C;;AACA,UAAI,OAAOC,cAAP,KAA0B,WAA9B,EAA2C;AACvC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,aAAYC,cAAe,EAD1C,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAED,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAZM;AAH8B,CAA7C;eAmBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-max-length\",\n validator: {\n name: \"maxLength\",\n validate({ value, validator }) {\n const maxLengthValue = validator.settings.value;\n if (typeof maxLengthValue !== \"undefined\") {\n return validation\n .validate(value, `maxLength:${maxLengthValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"],"file":"maxLength.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/minLength.ts"],"names":["plugin","type","name","validator","validate","value","minLengthValue","settings","validation","then","v","catch","Promise","resolve"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,sCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,WADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAD,EAAuB;AAC3B,YAAMG,cAAc,GAAGH,SAAS,CAACI,QAAV,CAAmBF,KAA1C;;AACA,UAAI,OAAOC,cAAP,KAA0B,WAA9B,EAA2C;AACvC,eAAOE,uBACFJ,QADE,CACOC,KADP,EACe,aAAYC,cAAe,EAD1C,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAED,aAAOC,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAAP;AACH;;AAZM;AAH8B,CAA7C;eAmBeb,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-min-length\",\n validator: {\n name: \"minLength\",\n validate({ value, validator }) {\n const minLengthValue = validator.settings.value;\n if (typeof minLengthValue !== \"undefined\") {\n return validation\n .validate(value, `minLength:${minLengthValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n};\n\nexport default plugin;\n"],"file":"minLength.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/pattern.ts"],"names":["plugin","type","name","validator","validate","value","context","settings","pattern","preset","patternPlugin","plugins","byType","find","item","RegExp","regex","flags","test"],"mappings":";;;;;;AAEA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,mCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA,SAAT;AAAoBG,MAAAA;AAApB,KAAf,EAA8C;AAC1C,UAAI,CAACD,KAAL,EAAY;AACR,eAAO,IAAP;AACH;;AAED,YAAM;AAAEE,QAAAA;AAAF,UAAeJ,SAArB;AAEA,UAAIK,OAAJ;;AACA,UAAID,QAAQ,CAACE,MAAT,KAAoB,QAAxB,EAAkC;AAC9BD,QAAAA,OAAO,GAAGD,QAAV;AACH,OAFD,MAEO;AACH,cAAMG,aAAa,GAAGJ,OAAO,CAACK,OAAR,CACjBC,MADiB,CAEd,mCAFc,EAIjBC,IAJiB,CAIZC,IAAI,IAAIA,IAAI,CAACN,OAAL,CAAaN,IAAb,KAAsBK,QAAQ,CAACE,MAJ3B,CAAtB;;AAMA,YAAIC,aAAJ,EAAmB;AACfF,UAAAA,OAAO,GAAGE,aAAa,CAACF,OAAxB;AACH;AACJ;;AAED,UAAI,CAACA,OAAL,EAAc;AACV,eAAO,IAAP;AACH;;AAED,aAAO,IAAIO,MAAJ,CAAWP,OAAO,CAACQ,KAAnB,EAA0BR,OAAO,CAACS,KAAlC,EAAyCC,IAAzC,CAA8Cb,KAA9C,CAAP;AACH;;AA7BM;AAH8B,CAA7C;eAoCeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin, CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-pattern\",\n validator: {\n name: \"pattern\",\n async validate({ value, validator, context }) {\n if (!value) {\n return true;\n }\n\n const { settings } = validator;\n\n let pattern;\n if (settings.preset === \"custom\") {\n pattern = settings;\n } else {\n const patternPlugin = context.plugins\n .byType<CmsModelFieldPatternValidatorPlugin>(\n \"cms-model-field-validator-pattern\"\n )\n .find(item => item.pattern.name === settings.preset);\n\n if (patternPlugin) {\n pattern = patternPlugin.pattern;\n }\n }\n\n if (!pattern) {\n return true;\n }\n\n return new RegExp(pattern.regex, pattern.flags).test(value);\n }\n }\n};\n\nexport default plugin;\n"],"file":"pattern.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/content/plugins/validators/patternPlugins/email.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,yCAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,OADD;AAELE,IAAAA,KAAK,EAAG,oCAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"../../../../types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-email\",\n pattern: {\n name: \"email\",\n regex: `^\\\\w[\\\\w.-]*@([\\\\w-]+\\\\.)+[\\\\w-]+$`,\n flags: \"i\"\n }\n};\n\nexport default plugin;\n"],"file":"email.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/content/plugins/validators/patternPlugins/index.ts"],"names":["email","url","lowerCase","upperCase"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;eAEe,CAACA,cAAD,EAAQC,YAAR,EAAaC,kBAAb,EAAwBC,kBAAxB,C","sourcesContent":["import email from \"./email\";\nimport url from \"./url\";\nimport lowerCase from \"./lowerCase\";\nimport upperCase from \"./upperCase\";\n\nexport default [email, url, lowerCase, upperCase];\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/content/plugins/validators/patternPlugins/lowerCase.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,8CAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,WADD;AAELE,IAAAA,KAAK,EAAG,YAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"../../../../types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-lower-case\",\n pattern: {\n name: \"lowerCase\",\n regex: `^([a-z]*)$`,\n flags: \"\"\n }\n};\n\nexport default plugin;\n"],"file":"lowerCase.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/content/plugins/validators/patternPlugins/upperCase.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,8CAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,WADD;AAELE,IAAAA,KAAK,EAAG,YAFH;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"../../../../types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-upper-case\",\n pattern: {\n name: \"upperCase\",\n regex: `^([A-Z]*)$`,\n flags: \"\"\n }\n};\n\nexport default plugin;\n"],"file":"upperCase.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/content/plugins/validators/patternPlugins/url.ts"],"names":["plugin","type","name","pattern","regex","flags"],"mappings":";;;;;;AAEA,MAAMA,MAA2C,GAAG;AAChDC,EAAAA,IAAI,EAAE,mCAD0C;AAEhDC,EAAAA,IAAI,EAAE,uCAF0C;AAGhDC,EAAAA,OAAO,EAAE;AACLD,IAAAA,IAAI,EAAE,KADD;AAELE,IAAAA,KAAK,EAAE,+FAFF;AAGLC,IAAAA,KAAK,EAAE;AAHF;AAHuC,CAApD;eAUeL,M","sourcesContent":["import { CmsModelFieldPatternValidatorPlugin } from \"../../../../types\";\n\nconst plugin: CmsModelFieldPatternValidatorPlugin = {\n type: \"cms-model-field-validator-pattern\",\n name: \"cms-model-field-validator-pattern-url\",\n pattern: {\n name: \"url\",\n regex: \"^(ftp|http|https):\\\\/\\\\/(\\\\w+:{0,1}\\\\w*@)?(\\\\S+)(:[0-9]+)?(\\\\/|\\\\/([\\\\w#!:.?+=&%@!\\\\-\\\\/]))?$\",\n flags: \"i\"\n }\n};\n\nexport default plugin;\n"],"file":"url.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/required.ts"],"names":["plugin","type","name","validator","validate","value","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;AAGA,MAAMA,MAAoC,GAAG;AACzCC,EAAAA,IAAI,EAAE,2BADmC;AAEzCC,EAAAA,IAAI,EAAE,oCAFmC;AAGzCC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,UADC;;AAEPE,IAAAA,QAAQ,CAAC;AAAEC,MAAAA;AAAF,KAAD,EAAY;AAChB,aAAOC,uBACFF,QADE,CACOC,KADP,EACc,UADd,EAEFE,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAPM;AAH8B,CAA7C;eAceT,M","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nconst plugin: CmsModelFieldValidatorPlugin = {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-required\",\n validator: {\n name: \"required\",\n validate({ value }) {\n return validation\n .validate(value, \"required\")\n .then(v => v === true)\n .catch(() => false);\n }\n }\n};\n\nexport default plugin;\n"],"file":"required.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/timeGte.ts"],"names":["type","name","validator","validate","value","gteValue","settings","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;eAGe,OAAqC;AAChDA,EAAAA,IAAI,EAAE,2BAD0C;AAEhDC,EAAAA,IAAI,EAAE,oCAF0C;AAGhDC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAf,EAAqC;AACjC,YAAMG,QAAQ,GAAGH,SAAS,CAACI,QAAV,CAAmBF,KAApC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAO,IAAP;AACH;;AACD,aAAOE,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAXM;AAHqC,CAArC,C","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-time-gte\",\n validator: {\n name: \"timeGte\",\n async validate({ value, validator }) {\n const gteValue = validator.settings.value;\n if (typeof gteValue === \"undefined\") {\n return true;\n }\n return validation\n .validate(value, `timeGte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n }\n});\n"],"file":"timeGte.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/content/plugins/validators/timeLte.ts"],"names":["type","name","validator","validate","value","lteValue","settings","validation","then","v","catch"],"mappings":";;;;;;;AAAA;;eAGe,OAAqC;AAChDA,EAAAA,IAAI,EAAE,2BAD0C;AAEhDC,EAAAA,IAAI,EAAE,oCAF0C;AAGhDC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,SADC;;AAEP,UAAME,QAAN,CAAe;AAAEC,MAAAA,KAAF;AAASF,MAAAA;AAAT,KAAf,EAAqC;AACjC,YAAMG,QAAQ,GAAGH,SAAS,CAACI,QAAV,CAAmBF,KAApC;;AACA,UAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACjC,eAAO,IAAP;AACH;;AACD,aAAOE,uBACFJ,QADE,CACOC,KADP,EACe,WAAUC,QAAS,EADlC,EAEFG,IAFE,CAEGC,CAAC,IAAIA,CAAC,KAAK,IAFd,EAGFC,KAHE,CAGI,MAAM,KAHV,CAAP;AAIH;;AAXM;AAHqC,CAArC,C","sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"../../../types\";\n\nexport default (): CmsModelFieldValidatorPlugin => ({\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-time-lte\",\n validator: {\n name: \"timeLte\",\n async validate({ value, validator }) {\n const lteValue = validator.settings.value;\n if (typeof lteValue === \"undefined\") {\n return true;\n }\n return validation\n .validate(value, `timeLte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n }\n});\n"],"file":"timeLte.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateCMSPermissions.ts"],"names":["AccessTypes","migrateCMSPermissions","permissions","getModel","fullAccess","find","permission","name","FULL","newPermissions","DEFAULT_PERMISSIONS","CONTENT_MODEL_GROUP","rwd","own","CONTENT_MODEL","CONTENT_ENTRY","forEach","entity","existingPermission","setAccessScopeToOwn","groups","moveGroups","models","moveModels","contentModels","contentModelGroups","locales","Object","keys","i","length","code","j","modelId","group","includes","id","push","values","mergeCustomizer","objValue","srcValue","Array","isArray","concat","filter","removeDuplicate","item","index","arr","findIndex","el"],"mappings":"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","sourcesContent":["import mergeWith from \"lodash/mergeWith\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { CmsContentModel } from \"./types\";\n\ntype Group = {\n [code: string]: string[];\n};\ntype Model = {\n [code: string]: string[];\n};\ntype CMSPermission = {\n name: string;\n rwd?: string;\n pw?: string;\n own?: boolean;\n groups?: Group;\n models?: Model;\n};\n\nenum AccessTypes {\n FULL = \"cms.*\",\n CONTENT_MODEL_GROUP = \"cms.contentModelGroup\",\n CONTENT_MODEL = \"cms.contentModel\",\n CONTENT_ENTRY = \"cms.contentEntry\"\n}\n\nexport const migrateCMSPermissions = async (\n permissions: CMSPermission[],\n getModel: (modelId: string) => Promise<CmsContentModel>\n): Promise<CMSPermission[]> => {\n // First we've to know whether is a \"full\" access or \"custom\" access.\n const fullAccess = permissions.find(permission => permission.name === AccessTypes.FULL);\n\n if (fullAccess) {\n return permissions;\n }\n\n // We'll construct the new newPermissions one by one.\n const newPermissions = {};\n\n const DEFAULT_PERMISSIONS = {\n [AccessTypes.CONTENT_MODEL_GROUP]: {\n name: AccessTypes.CONTENT_MODEL_GROUP,\n rwd: \"r\",\n own: false\n },\n [AccessTypes.CONTENT_MODEL]: {\n name: AccessTypes.CONTENT_MODEL,\n rwd: \"r\",\n own: false\n },\n [AccessTypes.CONTENT_ENTRY]: {\n name: AccessTypes.CONTENT_ENTRY,\n rwd: \"r\",\n own: false\n }\n };\n\n // Create new permissions.\n [AccessTypes.CONTENT_MODEL_GROUP, AccessTypes.CONTENT_MODEL, AccessTypes.CONTENT_ENTRY].forEach(\n entity => {\n // Check for \"entity\" permission existence.\n const existingPermission = permissions.find(permission => permission.name === entity);\n if (existingPermission) {\n newPermissions[entity] = existingPermission;\n } else {\n newPermissions[entity] = DEFAULT_PERMISSIONS[entity];\n }\n\n // Handle specific cases.\n if (entity === AccessTypes.CONTENT_MODEL_GROUP) {\n // Just to be on the safer side.\n if (newPermissions[entity].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n }\n // Handle specific cases.\n if (entity === AccessTypes.CONTENT_MODEL) {\n // Just to be on the safer side.\n if (newPermissions[entity].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // If parent has the \"own\" access scope.\n if (newPermissions[AccessTypes.CONTENT_MODEL_GROUP].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // Transfer groups data to content model groups permission\n if (newPermissions[entity].groups) {\n moveGroups(newPermissions, entity);\n }\n }\n // Handle specific cases.\n if (entity === AccessTypes.CONTENT_ENTRY) {\n // Just to be on the safer side.\n if (newPermissions[entity].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // If parent has the \"own\" access scope.\n if (newPermissions[AccessTypes.CONTENT_MODEL].own) {\n setAccessScopeToOwn(newPermissions, entity);\n }\n // Transfer groups data to content model groups permission\n if (newPermissions[entity].groups) {\n moveGroups(newPermissions, entity);\n }\n // Transfer models data to content model groups permission\n if (newPermissions[entity].models) {\n moveModels(newPermissions, entity);\n }\n }\n }\n );\n\n /*\n * Sync \"models\" and \"groups\".\n * If there is a model from \"cms.contentModel\" permission's models property;\n * whose content group is missing from \"cms.contentModelGroup\" permission's groups property;\n * we add that into \"cms.contentModelGroup\" permission.\n *\n * Why?\n * Because, now the user must need to have at least READ permission on \"cms.contentModelGroup\" to access a model defined by \"cms.contentModel\".\n * */\n const contentModels = newPermissions[AccessTypes.CONTENT_MODEL].models;\n\n if (!isEmpty(contentModels)) {\n const contentModelGroups = newPermissions[AccessTypes.CONTENT_MODEL_GROUP].groups || {};\n\n const locales = Object.keys(contentModels);\n for (let i = 0; i < locales.length; i++) {\n const code = locales[i];\n for (let j = 0; j < contentModels[code].length; j++) {\n const modelId = contentModels[code][j];\n // Check if we've access to it's contentModelGroup.\n const { group } = await getModel(modelId);\n\n if (isEmpty(contentModelGroups[code])) {\n contentModelGroups[code] = [];\n }\n if (!contentModelGroups[code].includes(group.id)) {\n contentModelGroups[code].push(group.id);\n }\n }\n }\n\n // Update \"groups\" value in permission.\n newPermissions[AccessTypes.CONTENT_MODEL_GROUP].groups = contentModelGroups;\n }\n\n return Object.values(newPermissions);\n};\n\nconst mergeCustomizer = (objValue, srcValue) => {\n if (Array.isArray(objValue)) {\n return objValue.concat(srcValue).filter(removeDuplicate);\n }\n};\n\nconst removeDuplicate = (item, index, arr) => arr.findIndex(el => el === item) === index;\n\nconst moveGroups = (permissions, entity) => {\n if (!isEmpty(permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"])) {\n permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"] = mergeWith(\n permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"],\n permissions[entity].groups,\n mergeCustomizer\n );\n } else {\n permissions[AccessTypes.CONTENT_MODEL_GROUP][\"groups\"] = permissions[entity].groups;\n }\n // Remove \"groups\" from content model permission\n delete permissions[entity].groups;\n};\n\nconst moveModels = (permissions, entity) => {\n if (!isEmpty(permissions[AccessTypes.CONTENT_MODEL][\"models\"])) {\n permissions[AccessTypes.CONTENT_MODEL][\"models\"] = mergeWith(\n permissions[AccessTypes.CONTENT_MODEL][\"models\"],\n permissions[entity].models,\n mergeCustomizer\n );\n } else {\n permissions[AccessTypes.CONTENT_MODEL][\"models\"] = permissions[entity].models;\n }\n // Remove \"models\" from content model permission\n delete permissions[entity].models;\n};\n\nconst setAccessScopeToOwn = (permissions, entity) => {\n permissions[entity].own = true;\n // Set primary action.\n permissions[entity].rwd = \"rwd\";\n\n // Remove \"groups\" from content model permission\n delete permissions[entity].groups;\n\n // Remove \"models\" from content model permission\n delete permissions[entity].models;\n};\n"],"file":"migrateCMSPermissions.js"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Plugin } from "@webiny/plugins";
|
|
2
|
-
import { CmsContext } from "../types";
|
|
3
|
-
export declare type CallbackFunction<TParams> = (params: TParams) => void | Promise<void>;
|
|
4
|
-
interface InstallationParams {
|
|
5
|
-
context: CmsContext;
|
|
6
|
-
}
|
|
7
|
-
interface Config {
|
|
8
|
-
beforeInstall?: CallbackFunction<InstallationParams>;
|
|
9
|
-
afterInstall?: CallbackFunction<InstallationParams>;
|
|
10
|
-
}
|
|
11
|
-
export declare class InstallationPlugin extends Plugin {
|
|
12
|
-
static readonly type = "cms.install";
|
|
13
|
-
private _config;
|
|
14
|
-
constructor(config?: Config);
|
|
15
|
-
beforeInstall(params: InstallationParams): void | Promise<void>;
|
|
16
|
-
afterInstall(params: InstallationParams): void | Promise<void>;
|
|
17
|
-
private _execute;
|
|
18
|
-
}
|
|
19
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.InstallationPlugin = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _plugins = require("@webiny/plugins");
|
|
13
|
-
|
|
14
|
-
class InstallationPlugin extends _plugins.Plugin {
|
|
15
|
-
constructor(config) {
|
|
16
|
-
super();
|
|
17
|
-
(0, _defineProperty2.default)(this, "_config", void 0);
|
|
18
|
-
this._config = config || {};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
beforeInstall(params) {
|
|
22
|
-
return this._execute("beforeInstall", params);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
afterInstall(params) {
|
|
26
|
-
return this._execute("afterInstall", params);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
_execute(callback, params) {
|
|
30
|
-
if (typeof this._config[callback] === "function") {
|
|
31
|
-
return this._config[callback](params);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
exports.InstallationPlugin = InstallationPlugin;
|
|
38
|
-
(0, _defineProperty2.default)(InstallationPlugin, "type", "cms.install");
|
|
39
|
-
//# sourceMappingURL=InstallationPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/InstallationPlugin.ts"],"names":["InstallationPlugin","Plugin","constructor","config","_config","beforeInstall","params","_execute","afterInstall","callback"],"mappings":";;;;;;;;;;;AAAA;;AAcO,MAAMA,kBAAN,SAAiCC,eAAjC,CAAwC;AAI3CC,EAAAA,WAAW,CAACC,MAAD,EAAkB;AACzB;AADyB;AAEzB,SAAKC,OAAL,GAAeD,MAAM,IAAI,EAAzB;AACH;;AAEDE,EAAAA,aAAa,CAACC,MAAD,EAAmD;AAC5D,WAAO,KAAKC,QAAL,CAAc,eAAd,EAA+BD,MAA/B,CAAP;AACH;;AAEDE,EAAAA,YAAY,CAACF,MAAD,EAAmD;AAC3D,WAAO,KAAKC,QAAL,CAAc,cAAd,EAA8BD,MAA9B,CAAP;AACH;;AAEOC,EAAAA,QAAQ,CAACE,QAAD,EAAWH,MAAX,EAAmB;AAC/B,QAAI,OAAO,KAAKF,OAAL,CAAaK,QAAb,CAAP,KAAkC,UAAtC,EAAkD;AAC9C,aAAO,KAAKL,OAAL,CAAaK,QAAb,EAAuBH,MAAvB,CAAP;AACH;AACJ;;AArB0C;;;8BAAlCN,kB,UACqB,a","sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsContext } from \"~/types\";\n\nexport type CallbackFunction<TParams> = (params: TParams) => void | Promise<void>;\n\ninterface InstallationParams {\n context: CmsContext;\n}\n\ninterface Config {\n beforeInstall?: CallbackFunction<InstallationParams>;\n afterInstall?: CallbackFunction<InstallationParams>;\n}\n\nexport class InstallationPlugin extends Plugin {\n public static readonly type = \"cms.install\";\n private _config: Partial<Config>;\n\n constructor(config?: Config) {\n super();\n this._config = config || {};\n }\n\n beforeInstall(params: InstallationParams): void | Promise<void> {\n return this._execute(\"beforeInstall\", params);\n }\n\n afterInstall(params: InstallationParams): void | Promise<void> {\n return this._execute(\"afterInstall\", params);\n }\n\n private _execute(callback, params) {\n if (typeof this._config[callback] === \"function\") {\n return this._config[callback](params);\n }\n }\n}\n"],"file":"InstallationPlugin.js"}
|
package/plugins/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/context.ts"],"names":["ContextPlugin","context","locale","i18n","getCurrentLocale","cms","code","getLocale"],"mappings":";;;;;;;;;;;AAAA;;;;;;eAGe,MAAM;AACjB,SAAO,IAAIA,4BAAJ,CAA8BC,OAAO,IAAI;AAC5C,UAAMC,MAAM,GAAGD,OAAO,CAACE,IAAR,CAAaC,gBAAb,EAAf;AAEAH,IAAAA,OAAO,CAACI,GAAR,mCACQJ,OAAO,CAACI,GAAR,IAAgB,EADxB;AAEIH,MAAAA,MAAM,EAAEA,MAAM,GAAGA,MAAM,CAACI,IAAV,GAAiB,OAFnC;;AAGIC,MAAAA,SAAS,GAAG;AACR,eAAOL,MAAM,IAAI;AAAEI,UAAAA,IAAI,EAAE;AAAR,SAAjB;AACH;;AALL;AAOH,GAVM,CAAP;AAWH,C","sourcesContent":["import { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport { CmsContext } from \"~/types\";\n\nexport default () => {\n return new ContextPlugin<CmsContext>(context => {\n const locale = context.i18n.getCurrentLocale();\n\n context.cms = {\n ...(context.cms || ({} as any)),\n locale: locale ? locale.code : \"en-US\",\n getLocale() {\n return locale || { code: \"en-US\" };\n }\n };\n });\n};\n"],"file":"context.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/crud/index.ts"],"names":["settings","system"],"mappings":";;;;;;;;;AAAA;;AACA;;eAEe,MAAM,CAACA,iBAAD,EAAWC,eAAX,C","sourcesContent":["import settings from \"./settings.crud\";\nimport system from \"./system.crud\";\n\nexport default () => [settings, system];\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/crud/settings.crud.ts"],"names":["type","name","apply","context","cms","pluginType","providerPlugins","plugins","byType","providerPlugin","length","WebinyError","storageOperations","provide","checkPermissions","utils","settings","noAuth","get","updateContentModelLastChange","data","contentModelLastChange","Date","create","update","getContentModelLastChange","ex","console","log","error","message","code"],"mappings":";;;;;;;;;;;AACA;;AAQA;;;;;;;;;;eAEe;AACXA,EAAAA,IAAI,EAAE,SADK;AAEXC,EAAAA,IAAI,EAAE,uBAFK;AAGXC,EAAAA,KAAK,EAAE,MAAMC,OAAN,IAAiB;AACpB;AACR;AACA;AACQ,QAAI,CAACA,OAAO,CAACC,GAAb,EAAkB;AACd;AACH;;AACD,UAAMC,UAAU,GAAG,0CAAnB;AACA,UAAMC,eAAe,GACjBH,OAAO,CAACI,OAAR,CAAgBC,MAAhB,CAAmEH,UAAnE,CADJ;AAEA,UAAMI,cAAc,GAAGH,eAAe,CAACA,eAAe,CAACI,MAAhB,GAAyB,CAA1B,CAAtC;;AACA,QAAI,CAACD,cAAL,EAAqB;AACjB,YAAM,IAAIE,cAAJ,CAAiB,YAAWN,UAAW,WAAvC,EAAmD,kBAAnD,EAAuE;AACzEL,QAAAA,IAAI,EAAEK;AADmE,OAAvE,CAAN;AAGH;;AAED,UAAMO,iBAAiB,GAAG,MAAMH,cAAc,CAACI,OAAf,CAAuB;AACnDV,MAAAA;AADmD,KAAvB,CAAhC;;AAIA,UAAMW,gBAAgB,GAAG,MAAsC;AAC3D,aAAOC,KAAK,CAACD,gBAAN,CAAuBX,OAAvB,EAAgC,cAAhC,CAAP;AACH,KAFD;;AAIA,UAAMa,QAA4B,GAAG;AACjCC,MAAAA,MAAM,EAAE,MAAM;AACV,eAAO;AACHC,UAAAA,GAAG,EAAE,YAAY;AACb,mBAAO,MAAMN,iBAAiB,CAACM,GAAlB,EAAb;AACH;AAHE,SAAP;AAKH,OAPgC;AAQjCA,MAAAA,GAAG,EAAE,YAAyC;AAC1C,cAAMJ,gBAAgB,EAAtB;AACA,eAAO,MAAMF,iBAAiB,CAACM,GAAlB,EAAb;AACH,OAXgC;AAYjCC,MAAAA,4BAA4B,EAAE,YAA2B;AACrD,cAAMC,IAAiB,GAAG;AACtBC,UAAAA,sBAAsB,EAAE,IAAIC,IAAJ;AADF,SAA1B;AAIA,cAAMN,QAAQ,GAAG,MAAMJ,iBAAiB,CAACM,GAAlB,EAAvB;;AACA,YAAI,CAACF,QAAL,EAAe;AACX,gBAAMJ,iBAAiB,CAACW,MAAlB,CAAyBH,IAAzB,CAAN;AACA;AACH;;AAED,cAAMR,iBAAiB,CAACY,MAAlB,CAAyBJ,IAAzB,CAAN;AACH,OAxBgC;AAyBjCK,MAAAA,yBAAyB,EAAE,YAA2B;AAClD,YAAI;AACA,gBAAMT,QAAQ,GAAG,MAAMJ,iBAAiB,CAACM,GAAlB,EAAvB;;AACA,cAAI,CAACF,QAAD,IAAa,CAACA,QAAQ,CAACK,sBAA3B,EAAmD;AAC/C,mBAAO,IAAIC,IAAJ,EAAP;AACH;;AACD,iBAAON,QAAQ,CAACK,sBAAhB;AACH,SAND,CAME,OAAOK,EAAP,EAAW;AACTC,UAAAA,OAAO,CAACC,GAAR,CAAY;AACRC,YAAAA,KAAK,EAAE;AACHC,cAAAA,OAAO,EAAEJ,EAAE,CAACI,OADT;AAEHC,cAAAA,IAAI,EAAEL,EAAE,CAACK,IAAH,IAAW,2CAFd;AAGHX,cAAAA,IAAI,EAAEM;AAHH;AADC,WAAZ;AAOH;;AACD,eAAO,IAAIJ,IAAJ,EAAP;AACH;AA1CgC,KAArC;AA4CAnB,IAAAA,OAAO,CAACC,GAAR,mCACQD,OAAO,CAACC,GAAR,IAAgB,EADxB;AAEIY,MAAAA;AAFJ;AAIH;AA5EU,C","sourcesContent":["import { ContextPlugin } from \"@webiny/handler/types\";\nimport * as utils from \"../../utils\";\nimport {\n CmsContext,\n CmsSettingsContext,\n CmsSettingsPermission,\n CmsSettings,\n CmsSettingsStorageOperationsProviderPlugin\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\n\nexport default {\n type: \"context\",\n name: \"context-settings-crud\",\n apply: async context => {\n /**\n * If cms is not defined on the context, do not continue, but log it.\n */\n if (!context.cms) {\n return;\n }\n const pluginType = \"cms-settings-storage-operations-provider\";\n const providerPlugins =\n context.plugins.byType<CmsSettingsStorageOperationsProviderPlugin>(pluginType);\n const providerPlugin = providerPlugins[providerPlugins.length - 1];\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n const checkPermissions = (): Promise<CmsSettingsPermission> => {\n return utils.checkPermissions(context, \"cms.settings\");\n };\n\n const settings: CmsSettingsContext = {\n noAuth: () => {\n return {\n get: async () => {\n return await storageOperations.get();\n }\n };\n },\n get: async (): Promise<CmsSettings | null> => {\n await checkPermissions();\n return await storageOperations.get();\n },\n updateContentModelLastChange: async (): Promise<void> => {\n const data: CmsSettings = {\n contentModelLastChange: new Date()\n };\n\n const settings = await storageOperations.get();\n if (!settings) {\n await storageOperations.create(data);\n return;\n }\n\n await storageOperations.update(data);\n },\n getContentModelLastChange: async (): Promise<Date> => {\n try {\n const settings = await storageOperations.get();\n if (!settings || !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 context.cms = {\n ...(context.cms || ({} as any)),\n settings\n };\n }\n} as ContextPlugin<CmsContext>;\n"],"file":"settings.crud.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/crud/system.crud.ts"],"names":["initialContentModelGroup","name","slug","description","icon","ContextPlugin","context","cms","pluginType","providerPlugins","plugins","byType","providerPlugin","length","WebinyError","type","storageOperations","provide","createReadAPIKey","crypto","randomBytes","Math","ceil","toString","system","getVersion","tenancy","getCurrentTenant","get","version","setVersion","create","update","getReadAPIKey","readAPIKey","apiKey","setReadAPIKey","install","identity","security","getIdentity","NotAuthorizedError","installationPlugins","InstallationPlugin","groups","ex","message","group","WEBINY_VERSION","upgrade","upgradePlugins","filter","pl","app","plugin","deployedVersion","installedAppVersion","upgradeToVersion","apply"],"mappings":"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","sourcesContent":["import crypto from \"crypto\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { getApplicablePlugin } from \"@webiny/api-upgrade\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport { ContextPlugin } from \"@webiny/handler/plugins/ContextPlugin\";\nimport WebinyError from \"@webiny/error\";\nimport { InstallationPlugin } from \"~/plugins/InstallationPlugin\";\nimport { executeCallbacks } from \"~/utils\";\nimport { CmsContext, CmsSystemStorageOperationsProviderPlugin } from \"~/types\";\n\nconst initialContentModelGroup = {\n name: \"Ungrouped\",\n slug: \"ungrouped\",\n description: \"A generic content model group\",\n icon: \"fas/star\"\n};\n\nexport default new ContextPlugin<CmsContext>(async context => {\n /**\n * If cms is not defined on the context, do not continue, but log it.\n */\n if (!context.cms) {\n return;\n }\n\n const pluginType = \"cms-system-storage-operations-provider\";\n const providerPlugins =\n context.plugins.byType<CmsSystemStorageOperationsProviderPlugin>(pluginType);\n const providerPlugin = providerPlugins[providerPlugins.length - 1];\n if (!providerPlugin) {\n throw new WebinyError(`Missing \"${pluginType}\" plugin.`, \"PLUGIN_NOT_FOUND\", {\n type: pluginType\n });\n }\n\n const storageOperations = await providerPlugin.provide({\n context\n });\n\n const createReadAPIKey = () => {\n return crypto.randomBytes(Math.ceil(48 / 2)).toString(\"hex\");\n };\n\n context.cms = {\n ...context.cms,\n system: {\n async getVersion() {\n if (!context.tenancy.getCurrentTenant()) {\n return null;\n }\n\n const system = await storageOperations.get();\n\n return system ? system.version : null;\n },\n async setVersion(version: string) {\n const system = await storageOperations.get();\n if (!system) {\n await storageOperations.create({\n version\n });\n return;\n }\n await storageOperations.update({\n version\n });\n },\n getReadAPIKey: async () => {\n const system = await storageOperations.get();\n\n if (!system) {\n return null;\n }\n\n if (!system.readAPIKey) {\n const apiKey = createReadAPIKey();\n await context.cms.system.setReadAPIKey(apiKey);\n return apiKey;\n }\n\n return system.readAPIKey;\n },\n setReadAPIKey: async apiKey => {\n await storageOperations.update({\n readAPIKey: apiKey\n });\n },\n install: async (): Promise<void> => {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const version = await context.cms.system.getVersion();\n if (version) {\n return;\n }\n\n const installationPlugins = context.plugins.byType<InstallationPlugin>(\n InstallationPlugin.type\n );\n\n await executeCallbacks<InstallationPlugin[\"beforeInstall\"]>(\n installationPlugins,\n \"beforeInstall\",\n {\n context\n }\n );\n\n // Add default content model group.\n try {\n await context.cms.groups.create(initialContentModelGroup);\n } catch (ex) {\n throw new WebinyError(\n ex.message,\n \"CMS_INSTALLATION_CONTENT_MODEL_GROUP_ERROR\",\n {\n group: initialContentModelGroup\n }\n );\n }\n\n await executeCallbacks<InstallationPlugin[\"afterInstall\"]>(\n installationPlugins,\n \"afterInstall\",\n {\n context\n }\n );\n\n // Set app version\n await context.cms.system.setVersion(context.WEBINY_VERSION);\n\n // Set internal API key to access Read API\n await context.cms.system.setReadAPIKey(createReadAPIKey());\n },\n async upgrade(version) {\n const identity = context.security.getIdentity();\n if (!identity) {\n throw new NotAuthorizedError();\n }\n\n const upgradePlugins = context.plugins\n .byType<UpgradePlugin>(\"api-upgrade\")\n .filter(pl => pl.app === \"headless-cms\");\n\n const plugin = getApplicablePlugin({\n deployedVersion: context.WEBINY_VERSION,\n installedAppVersion: await this.getVersion(),\n upgradePlugins,\n upgradeToVersion: version\n });\n\n await plugin.apply(context);\n\n // Store new app version\n await context.cms.system.setVersion(version);\n\n return true;\n }\n }\n };\n});\n"],"file":"system.crud.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/graphql/system.ts"],"names":["typeDefs","resolvers","CmsQuery","version","_","__","context","cms","system","getVersion","e","ErrorResponse","CmsMutation","install","code","message","Response","upgrade"],"mappings":";;;;;;;AAAA;;eAGe;AACXA,EAAAA,QAAQ;AAAE;AAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAde;AAeXC,EAAAA,SAAS,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACNC,MAAAA,OAAO,EAAE,OAAOC,CAAP,EAAUC,EAAV,EAAcC,OAAd,KAAsC;AAC3C,YAAI;AACA,iBAAOA,OAAO,CAACC,GAAR,CAAYC,MAAZ,CAAmBC,UAAnB,EAAP;AACH,SAFD,CAEE,OAAOC,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAPK,KADH;AAUPE,IAAAA,WAAW,EAAE;AACTC,MAAAA,OAAO,EAAE,OAAOT,CAAP,EAAUC,EAAV,EAAc;AAAEE,QAAAA;AAAF,OAAd,KAAsC;AAC3C,YAAI;AACA,gBAAMJ,OAAO,GAAG,MAAMI,GAAG,CAACC,MAAJ,CAAWC,UAAX,EAAtB;;AACA,cAAIN,OAAJ,EAAa;AACT,mBAAO,IAAIQ,6BAAJ,CAAkB;AACrBG,cAAAA,IAAI,EAAE,wBADe;AAErBC,cAAAA,OAAO,EAAE;AAFY,aAAlB,CAAP;AAIH;;AAED,gBAAMR,GAAG,CAACC,MAAJ,CAAWK,OAAX,EAAN;AACA,iBAAO,IAAIG,wBAAJ,CAAa,IAAb,CAAP;AACH,SAXD,CAWE,OAAON,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ,OAhBQ;AAiBTO,MAAAA,OAAO,EAAE,OAAOb,CAAP,EAAU;AAAED,QAAAA;AAAF,OAAV,EAAuB;AAAEI,QAAAA;AAAF,OAAvB,KAA+C;AACpD,YAAI;AACA,gBAAMA,GAAG,CAACC,MAAJ,CAAWS,OAAX,CAAmBd,OAAnB,CAAN;AACA,iBAAO,IAAIa,wBAAJ,CAAa,IAAb,CAAP;AACH,SAHD,CAGE,OAAON,CAAP,EAAU;AACR,iBAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;AACH;AACJ;AAxBQ;AAVN;AAfA,C","sourcesContent":["import { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"../../types\";\n\nexport default {\n typeDefs: /* GraphQL */ `\n extend type CmsQuery {\n # Get installed version\n version: String\n }\n\n extend type CmsMutation {\n # Install CMS\n install: CmsBooleanResponse\n\n # Upgrade CMS\n upgrade(version: String!): CmsBooleanResponse\n }\n `,\n resolvers: {\n CmsQuery: {\n version: async (_, __, context: CmsContext) => {\n try {\n return context.cms.system.getVersion();\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsMutation: {\n install: async (_, __, { cms }: CmsContext) => {\n try {\n const version = await cms.system.getVersion();\n if (version) {\n return new ErrorResponse({\n code: \"CMS_INSTALLATION_ERROR\",\n message: \"CMS is already installed.\"\n });\n }\n\n await cms.system.install();\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n upgrade: async (_, { version }, { cms }: CmsContext) => {\n try {\n await cms.system.upgrade(version);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n }\n};\n"],"file":"system.js"}
|
package/plugins/graphql.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/graphql.ts"],"names":["emptyResolver","name","type","schema","typeDefs","system","resolvers","Query","cms","Mutation"],"mappings":";;;;;;;;;AACA;;AACA;;AAEA,MAAMA,aAAa,GAAG,OAAO,EAAP,CAAtB;;eAEe,MAAM,CACjB;AACIC,EAAAA,IAAI,EAAE,yBADV;AAEIC,EAAAA,IAAI,EAAE,gBAFV;AAGIC,EAAAA,MAAM,EAAE;AACJC,IAAAA,QAAQ;AAAE;AAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkBC,gBAAOD,QAAS;AAClC,aA9CgB;AA+CJE,IAAAA,SAAS,EAAE,oBACP;AACIC,MAAAA,KAAK,EAAE;AACHC,QAAAA,GAAG,EAAER;AADF,OADX;AAIIS,MAAAA,QAAQ,EAAE;AACND,QAAAA,GAAG,EAAER;AADC;AAJd,KADO,EASPK,gBAAOC,SATA;AA/CP;AAHZ,CADiB,C","sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\nimport merge from \"lodash/merge\";\nimport system from \"./graphql/system\";\n\nconst emptyResolver = () => ({});\n\nexport default () => [\n {\n name: \"graphql-schema-headless\",\n type: \"graphql-schema\",\n schema: {\n typeDefs: /* GraphQL */ `\n type CmsError {\n code: String\n message: String\n data: JSON\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Query {\n cms: CmsQuery\n }\n\n extend type Mutation {\n cms: CmsMutation\n }\n\n type CmsQuery {\n _empty: String\n }\n\n type CmsMutation {\n _empty: String\n }\n\n ${system.typeDefs}\n `,\n resolvers: merge(\n {\n Query: {\n cms: emptyResolver\n },\n Mutation: {\n cms: emptyResolver\n }\n },\n system.resolvers\n )\n }\n } as GraphQLSchemaPlugin\n];\n"],"file":"graphql.js"}
|
package/plugins/index.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare const _default: () => (import("@webiny/handler/plugins/ContextPlugin").ContextPlugin<import("../types").CmsContext> | import("@webiny/handler/types").ContextPlugin<import("../types").CmsContext, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>> | (import("@webiny/handler/plugins/ContextPlugin").ContextPlugin<import("../types").CmsContext> | import("@webiny/handler/types").ContextPlugin<import("../types").CmsContext, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>, import("@webiny/handler/types").Context<Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>>)[] | import("@webiny/handler-graphql/types").GraphQLSchemaPlugin<import("@webiny/handler/types").ContextInterface>[] | import("@webiny/api-upgrade").UpgradePlugin<import("../types").CmsContext>[])[];
|
|
2
|
-
export default _default;
|
package/plugins/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _graphql = _interopRequireDefault(require("./graphql"));
|
|
11
|
-
|
|
12
|
-
var _crud = _interopRequireDefault(require("./crud"));
|
|
13
|
-
|
|
14
|
-
var _context = _interopRequireDefault(require("./context"));
|
|
15
|
-
|
|
16
|
-
var _contentModelGroup = _interopRequireDefault(require("../content/plugins/crud/contentModelGroup.crud"));
|
|
17
|
-
|
|
18
|
-
var _contentModel = _interopRequireDefault(require("../content/plugins/crud/contentModel.crud"));
|
|
19
|
-
|
|
20
|
-
var _upgrades = _interopRequireDefault(require("./upgrades"));
|
|
21
|
-
|
|
22
|
-
var _default = () => [(0, _context.default)(), (0, _graphql.default)(), (0, _crud.default)(), (0, _contentModelGroup.default)(), (0, _contentModel.default)(), (0, _upgrades.default)()];
|
|
23
|
-
|
|
24
|
-
exports.default = _default;
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
package/plugins/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;eAEe,MAAM,CACjB,uBADiB,EAEjB,uBAFiB,EAGjB,oBAHiB,EAIjB,iCAJiB,EAKjB,4BALiB,EAMjB,wBANiB,C","sourcesContent":["import graphql from \"./graphql\";\nimport crud from \"./crud\";\nimport context from \"./context\";\nimport contentModelGroup from \"../content/plugins/crud/contentModelGroup.crud\";\nimport contentModel from \"../content/plugins/crud/contentModel.crud\";\nimport upgrades from \"./upgrades\";\n\nexport default () => [\n context(),\n graphql(),\n crud(),\n contentModelGroup(),\n contentModel(),\n upgrades()\n];\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/upgrades/index.ts"],"names":["upgrade550"],"mappings":";;;;;;;;;AAAA;;eAEe,MAAM,CAACA,UAAD,C","sourcesContent":["import upgrade550 from \"./v5.5.0\";\n\nexport default () => [upgrade550];\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/plugins/upgrades/v5.5.0/helpers.ts"],"names":["isCmsContentPermission","permission","name","includes"],"mappings":";;;;;;;AAEO,MAAMA,sBAAsB,GAAIC,UAAD,IAClCA,UAAU,CAACC,IAAX,CAAgBC,QAAhB,CAAyB,MAAzB,KAAoC,CAACF,UAAU,CAACC,IAAX,CAAgBC,QAAhB,CAAyB,eAAzB,CADlC","sourcesContent":["type BasicPermission = { name: string; [key: string]: any };\n\nexport const isCmsContentPermission = (permission: BasicPermission) =>\n permission.name.includes(\"cms.\") && !permission.name.includes(\"cms.endpoint.\");\n"],"file":"helpers.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/plugins/upgrades/v5.5.0/index.ts"],"names":["plugin","name","type","app","version","apply","context","console","log","security","tenancy","cms","tenant","getCurrentTenant","securityGroups","groups","listGroups","securityGroupsWithCmsPermission","filter","group","permissions","some","isCmsContentPermission","exists","length","i","securityGroup","slug","CmsContentPermissions","restPermissions","permission","newCMSContentPermissions","models","get","newPermissions","JSON","stringify","updateGroup","e","WebinyError","ApiKeys","apiKeys","listApiKeys","ApiKeysWithCmsPermission","key","apiKey","updateApiKey","id","description"],"mappings":"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","sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { UpgradePlugin } from \"@webiny/api-upgrade/types\";\nimport { CmsContext } from \"../../../types\";\nimport { migrateCMSPermissions } from \"../../../migrateCMSPermissions\";\nimport { isCmsContentPermission } from \"./helpers\";\n\nconst plugin: UpgradePlugin<CmsContext> = {\n name: \"api-upgrade-cms-5.5.0\",\n type: \"api-upgrade\",\n app: \"headless-cms\",\n version: \"5.5.0\",\n async apply(context) {\n console.log(\"Started CMS permissions migration.\");\n // Migrate \"Groups\"\n try {\n const { security, tenancy, cms } = context;\n const tenant = tenancy.getCurrentTenant();\n // Check if there is any \"SecurityGroup\" that contains \"cms\" permissions.\n // @ts-ignore Because we don't need a package dependency; this is a one-off operation.\n const securityGroups = await security.groups.listGroups(tenant);\n const securityGroupsWithCmsPermission = securityGroups.filter(group =>\n group.permissions.some(isCmsContentPermission)\n );\n const exists = securityGroupsWithCmsPermission.length > 0;\n if (!exists) {\n console.log(\"No Security groups with CMS permissions exists.\");\n return;\n }\n\n // For each such group, migrate permissions.\n for (let i = 0; i < securityGroupsWithCmsPermission.length; i++) {\n const securityGroup = securityGroupsWithCmsPermission[i];\n console.log(`Updating permission for group: ${securityGroup.slug}`);\n // Filter CMS content permissions.\n const CmsContentPermissions =\n securityGroup.permissions.filter(isCmsContentPermission);\n const restPermissions = securityGroup.permissions.filter(\n permission => !isCmsContentPermission(permission)\n );\n\n if (CmsContentPermissions.length === 0) {\n console.log(\"Skipping...\");\n continue;\n }\n // Migrate CMS permissions\n const newCMSContentPermissions = await migrateCMSPermissions(\n CmsContentPermissions,\n cms.models.get\n );\n\n const newPermissions = [...restPermissions, ...newCMSContentPermissions];\n console.log(`Saving new permissions for group: ${securityGroup.slug}`);\n console.log(\"newPermissions: \", JSON.stringify(newPermissions, null, 2));\n // Save group\n // @ts-ignore\n await security.groups.updateGroup(tenant, securityGroup.slug, {\n permissions: newPermissions\n });\n }\n\n // Indicate completion\n console.log(\"Finish CMS permissions migration for [Security groups].\");\n } catch (e) {\n console.log(e);\n throw new WebinyError(\"[Security groups] CMS permissions migration failed!\");\n }\n\n // Migrate \"API Keys\"\n try {\n const { security, cms } = context;\n // Check if there is any \"APIKey\" that contains \"cms\" permissions.\n // @ts-ignore\n const ApiKeys = await security.apiKeys.listApiKeys();\n const ApiKeysWithCmsPermission = ApiKeys.filter(key =>\n key.permissions.some(isCmsContentPermission)\n );\n const exists = ApiKeysWithCmsPermission.length > 0;\n if (!exists) {\n console.log(\"No API keys with CMS permissions exists.\");\n return;\n }\n\n // For each such API key, migrate permissions.\n for (let i = 0; i < ApiKeysWithCmsPermission.length; i++) {\n const apiKey = ApiKeysWithCmsPermission[i];\n console.log(`Updating permission for API key: ${apiKey.name}`);\n // Filter CMS content permissions.\n const CmsContentPermissions = apiKey.permissions.filter(isCmsContentPermission);\n const restPermissions = apiKey.permissions.filter(\n permission => !isCmsContentPermission(permission)\n );\n\n if (CmsContentPermissions.length === 0) {\n console.log(\"Skipping...\");\n continue;\n }\n // Migrate CMS permissions.\n const newCMSContentPermissions = await migrateCMSPermissions(\n CmsContentPermissions,\n cms.models.get\n );\n\n const newPermissions = [...restPermissions, ...newCMSContentPermissions];\n console.log(`Saving new permissions for API key: ${apiKey.name}`);\n console.log(\"newPermissions: \", JSON.stringify(newPermissions, null, 2));\n // Save API key\n // @ts-ignore\n await security.apiKeys.updateApiKey(apiKey.id, {\n name: apiKey.name,\n description: apiKey.description,\n permissions: newPermissions\n });\n }\n\n // Indicate completion\n console.log(\"Finish CMS permissions migration for API keys.\");\n } catch (e) {\n console.log(e);\n throw new WebinyError(\"[API keys] CMS permissions migration failed!\");\n }\n }\n};\n\nexport default plugin;\n"],"file":"index.js"}
|
package/transformers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/transformers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA","sourcesContent":["import {\n entryFromStorageTransform,\n entryToStorageTransform,\n entryFieldFromStorageTransform\n} from \"./content/plugins/utils/entryStorage\";\n\nexport { entryToStorageTransform, entryFieldFromStorageTransform, entryFromStorageTransform };\n"],"file":"transformers.js"}
|
package/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"names":["CONTENT_ENTRY_STATUS"],"mappings":";;;;;;;AA0CA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;;AA6DA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA;AACA;AACA;;AAqEA;AACA;AACA;;AAkBA;AACA;AACA;AACA;AACA;;AA2NA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoBA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;;AAkCA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;;AAwCA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AAyCA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqDA;AACA;AACA;AACA;AACA;AACA;;AAgCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkBA;AACA;AACA;AACA;AACA;AACA;;AA6EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA4CA;AACA;AACA;AACA;AACA;AACA;;AAyEA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;;AAyDA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;;AAiGA;AACA;AACA;AACA;AACA;;AA4BA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACqE;;AACrE;AACA;AACA;AACA;AACA;AACA;;AAkBA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyCA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA;AACA;AACA;AACA;;AAaA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;;AA6BA;AACA;AACA;AACA;;AA6BA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAwBA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAoFA;AACA;AACA;;AAKA;AACA;AACA;;AAoEA;AACA;AACA;AACA;AACA;;AAsDA;AACA;AACA;;AAKA;AACA;AACA;;AAoEA;AACA;AACA;AACA;AACA;;AAgDA;AACA;AACA;;AAKA;AACA;AACA;;AA8OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IA4HYA,oB;;;WAAAA,oB;AAAAA,EAAAA,oB;AAAAA,EAAAA,oB;AAAAA,EAAAA,oB;AAAAA,EAAAA,oB;AAAAA,EAAAA,oB;GAAAA,oB,oCAAAA,oB","sourcesContent":["import { Plugin } from \"@webiny/plugins/types\";\nimport { I18NContext, I18NLocale } from \"@webiny/api-i18n/types\";\nimport { ContextInterface } from \"@webiny/handler/types\";\nimport { TenancyContext } from \"@webiny/api-tenancy/types\";\nimport {\n GraphQLFieldResolver,\n GraphQLSchemaDefinition,\n Resolvers\n} from \"@webiny/handler-graphql/types\";\nimport { BaseI18NContentContext } from \"@webiny/api-i18n-content/types\";\nimport { SecurityPermission } from \"@webiny/api-security/types\";\nimport { HttpContext } from \"@webiny/handler-http/types\";\nimport { DbContext } from \"@webiny/handler-db/types\";\nimport { FileManagerContext } from \"@webiny/api-file-manager/types\";\n\ninterface BaseCmsValuesObject {\n /**\n * API type\n */\n type: \"manage\" | \"preview\" | \"read\" | string;\n /**\n * Requested locale\n */\n locale: string;\n /**\n * returns an instance of current locale\n */\n getLocale: () => I18NLocale;\n /**\n * Means this request is a READ API\n */\n READ: boolean;\n /**\n * Means this request is a MANAGE API\n */\n MANAGE: boolean;\n /**\n * Means this request is a PREVIEW API\n */\n PREVIEW: boolean;\n}\n\n/**\n * @description This combines all contexts used in the CMS into a single one.\n *\n * @category Context\n */\nexport interface CmsContext\n extends ContextInterface,\n DbContext,\n HttpContext,\n I18NContext,\n FileManagerContext,\n BaseI18NContentContext,\n TenancyContext {\n cms: BaseCmsValuesObject & CmsCrudContextObject;\n}\n\ninterface CmsContentModelFieldPredefinedValuesValue {\n value: string;\n label: string;\n}\n\n/**\n * Object containing content model field predefined options and values.\n *\n * @category ContentModelField\n */\nexport interface CmsContentModelFieldPredefinedValues {\n /**\n * Are predefined field values enabled?\n */\n enabled: boolean;\n /**\n * Predefined values array.\n */\n values: CmsContentModelFieldPredefinedValuesValue[];\n}\n\n/**\n * Object containing content model field renderer options.\n *\n * @category ContentModelField\n */\ninterface CmsContentModelFieldRenderer {\n /**\n * Name of the field renderer. Must have one in field renderer plugins.\n * Can be blank to let automatically determine the renderer.\n */\n name: string;\n}\n\n/**\n * A definition for content model field. This type exists on the app side as well.\n *\n * @category ContentModelField\n * @category Database model\n */\nexport interface CmsContentModelField {\n /**\n * A generated ID for the model field\n */\n id: string;\n /**\n * A type of the field\n */\n type: string;\n /**\n * A unique field ID for mapping values\n */\n fieldId: string;\n /**\n * A label for the field\n */\n label: string;\n /**\n * Text below the field to clarify what is it meant to be in the field value\n */\n helpText?: string;\n /**\n * Text to be displayed in the field\n */\n placeholderText?: string;\n /**\n * Are predefined values enabled? And list of them\n */\n predefinedValues?: CmsContentModelFieldPredefinedValues;\n /**\n * Field renderer. Blank if determined automatically.\n */\n renderer?: CmsContentModelFieldRenderer;\n /**\n * List of validations for the field\n *\n * @default []\n */\n validation?: CmsContentModelFieldValidation[];\n /**\n * List of validations for the list of values, when a field is set to accept a list of values.\n * These validations will be applied to the entire list, and `validation` (see above) will be applied\n * to each individual value in the list.\n *\n * @default []\n */\n listValidation?: CmsContentModelFieldValidation[];\n /**\n * Is this a multiple values field?\n *\n */\n multipleValues?: boolean;\n /**\n * Any user defined settings.\n *\n * @default {}\n */\n settings?: { [key: string]: any };\n}\n\n/**\n * A definition for dateTime field to show possible type of the field in settings.\n */\nexport interface CmsContentModelDateTimeField extends CmsContentModelField {\n /**\n * Settings object for the field. Contains type property.\n */\n settings: {\n type: \"time\" | \"date\" | \"dateTimeWithoutTimezone\" | \"dateTimeWithTimezone\";\n };\n}\n\n/**\n * Arguments for the field validator validate method.\n *\n * @category ContentModelField\n * @category FieldValidation\n */\nexport interface CmsModelFieldValidatorValidateArgs {\n /**\n * A value to be validated.\n */\n value: any;\n /**\n * Options from the CmsContentModelField validations.\n *\n * @see CmsContentModelField.validation\n * @see CmsContentModelField.listValidation\n */\n validator: CmsContentModelFieldValidation;\n /**\n * An instance of the current context.\n */\n context: CmsContext;\n /**\n * Field being validated.\n */\n field: CmsContentModelField;\n /**\n * An instance of the content model being validated.\n */\n contentModel: CmsContentModel;\n}\n\n/**\n * Definition for the field validator.\n *\n * @category Plugin\n * @category ContentModelField\n * @category FieldValidation\n */\nexport interface CmsModelFieldValidatorPlugin extends Plugin {\n /**\n * A plugin type.\n */\n type: \"cms-model-field-validator\";\n /**\n * Actual validator definition.\n */\n validator: {\n /**\n * Name of the validator.\n */\n name: string;\n /**\n * Validation method.\n */\n validate(params: CmsModelFieldValidatorValidateArgs): Promise<boolean>;\n };\n}\n\n/**\n * A pattern validator for the content entry field value.\n *\n * @category Plugin\n * @category ContentModelField\n * @category FieldValidation\n */\nexport interface CmsModelFieldPatternValidatorPlugin extends Plugin {\n /**\n * A plugin type\n */\n type: \"cms-model-field-validator-pattern\";\n /**\n * A pattern object for the validator.\n */\n pattern: {\n /**\n * name of the pattern.\n */\n name: string;\n /**\n * RegExp of the validator.\n */\n regex: string;\n /**\n * RegExp flags\n */\n flags: string;\n };\n}\n\n/**\n * Locked field in the content model\n *\n * @see CmsContentModel.lockedFields\n *\n * @category ContentModelField\n */\nexport interface LockedField {\n /**\n * Locked field ID - one used for mapping values.\n */\n fieldId: string;\n /**\n * Is the field multiple values field?\n */\n multipleValues: boolean;\n /**\n * Field type.\n */\n type: string;\n [key: string]: any;\n}\n\n/**\n * Content model defining an entry.\n *\n * @category Database model\n * @category ContentModel\n */\nexport interface CmsContentModel {\n /**\n * Name of the content model.\n */\n name: string;\n /**\n * Unique ID for the content model. Created from name if not defined by user.\n */\n modelId: string;\n /**\n * Locale this model belongs to.\n */\n locale?: string;\n /**\n * Content model group reference object.\n */\n group: {\n /**\n * Generated ID of the group\n */\n id: string;\n /**\n * Name of the group\n */\n name: string;\n };\n /**\n * Description for the content model.\n */\n description?: string;\n /**\n * Date created\n */\n createdOn?: Date;\n /**\n * Date saved. Changes on both save and create.\n */\n savedOn?: Date;\n /**\n * CreatedBy object wrapper. Contains id, name and type of the user.\n */\n createdBy?: CreatedBy;\n /**\n * List of fields defining entry values.\n */\n fields: CmsContentModelField[];\n /**\n * Admin UI field layout\n *\n * ```ts\n * layout: [\n * [field1id, field2id],\n * [field3id]\n * ]\n * ```\n */\n layout: string[][];\n /**\n * List of locked fields. Updated when entry is saved and a field has been used.\n */\n lockedFields?: LockedField[];\n /**\n * The field that is being displayed as entry title.\n * It is picked as first available text field. Or user can select own field.\n */\n titleFieldId: string;\n}\n\n/**\n * @category ContentModelField\n */\nexport interface CmsModelFieldDefinition {\n fields: string;\n typeDefs?: string;\n}\n\nexport interface CmsModelFieldToGraphQLCreateResolver {\n (params: {\n models: CmsContentModel[];\n model: CmsContentModel;\n graphQLType: string;\n field: CmsContentModelField;\n createFieldResolvers: any;\n }):\n | GraphQLFieldResolver\n | { resolver: GraphQLFieldResolver; typeResolvers: Resolvers<CmsContext> };\n}\n\n/**\n * @category Plugin\n * @category ContentModelField\n * @category GraphQL\n */\nexport interface CmsModelFieldToGraphQLPlugin extends Plugin {\n /**\n * A plugin type\n */\n type: \"cms-model-field-to-graphql\";\n /**\n * Field type name which must be exact as the one in `CmsEditorFieldTypePlugin` plugin.\n *\n * ```ts\n * fieldType: \"myField\"\n * ```\n */\n fieldType: string;\n /**\n * Is the field searchable via the GraphQL?\n *\n * ```ts\n * isSearchable: false\n * ```\n */\n isSearchable: boolean;\n /**\n * Is the field sortable via the GraphQL?\n *\n * ```ts\n * isSortable: true\n * ```\n */\n isSortable: boolean;\n read: {\n /**\n * Definition for get filtering for GraphQL.\n *\n * ```ts\n * read: {\n * createGetFilters({ field }) {\n * return `${field.fieldId}: MyField`;\n * }\n * }\n * ```\n */\n createGetFilters?(params: { model: CmsContentModel; field: CmsContentModelField }): string;\n /**\n * Definition for list filtering for GraphQL.\n *\n * ```ts\n * read: {\n * createListFilters({ field }) {\n * return `\n * ${field.fieldId}: MyType\n * ${field.fieldId}_not: MyType\n * ${field.fieldId}_in: [MyType]\n * ${field.fieldId}_not_in: [MyType]\n * `;\n * }\n * }\n * ```\n */\n createListFilters?(params: { model: CmsContentModel; field: CmsContentModelField }): string;\n /**\n * Definition of the field type for GraphQL - be aware if multiple values is selected.\n *\n * ```ts\n * read: {\n * createTypeField({ field }) {\n * if (field.multipleValues) {\n * return `${field.fieldId}: [MyFieldType]`;\n * }\n *\n * return `${field.fieldId}: MyField`;\n * }\n * }\n * ```\n */\n createTypeField(params: {\n model: CmsContentModel;\n field: CmsContentModelField;\n fieldTypePlugins: CmsFieldTypePlugins;\n }): CmsModelFieldDefinition | string;\n /**\n * Definition for field resolver.\n * By default it is simple return of the `instance.values[fieldId]` but if required, users can define their own.\n *\n * ```ts\n * read: {\n * createResolver({ field }) {\n * return instance => {\n * return instance.values[field.fieldId];\n * };\n * }\n * }\n * ```\n */\n createResolver?: CmsModelFieldToGraphQLCreateResolver;\n /**\n * Read API schema definitions for the field and resolvers for them.\n *\n * ```ts\n * read: {\n * createSchema() {\n * return {\n * typeDefs: `\n * myField {\n * id\n * date\n * }\n * `,\n * resolvers: {}\n * }\n * }\n * }\n * ```\n */\n createSchema?: (params: {\n models: CmsContentModel[];\n model: CmsContentModel;\n }) => GraphQLSchemaDefinition<CmsContext>;\n };\n manage: {\n /**\n * Definition for list filtering for GraphQL.\n *\n * ```ts\n * manage: {\n * createListFilters({ field }) {\n * return `\n * ${field.fieldId}: MyType\n * ${field.fieldId}_not: MyType\n * ${field.fieldId}_in: [MyType]\n * ${field.fieldId}_not_in: [MyType]\n * `;\n * }\n * }\n * ```\n */\n createListFilters?: (params: {\n model: CmsContentModel;\n field: CmsContentModelField;\n }) => string;\n /**\n * Manage API schema definitions for the field and resolvers for them. Probably similar to `read.createSchema`.\n *\n * ```ts\n * createSchema() {\n * return {\n * typeDefs: `\n * myField {\n * id\n * date\n * }\n * `,\n * resolvers: {}\n * }\n * }\n * ```\n */\n createSchema?: (params: {\n models: CmsContentModel[];\n model: CmsContentModel;\n }) => GraphQLSchemaDefinition<CmsContext>;\n /**\n * Definition of the field type for GraphQL - be aware if multiple values is selected. Probably same as `read.createTypeField`.\n *\n * ```ts\n * manage: {\n * createTypeField({ field }) {\n * if (field.multipleValues) {\n * return field.fieldId + \": [MyType]\";\n * }\n *\n * return field.fieldId + \": MyType\";\n * }\n * }\n * ```\n */\n createTypeField: (params: {\n model: CmsContentModel;\n field: CmsContentModelField;\n fieldTypePlugins: CmsFieldTypePlugins;\n }) => CmsModelFieldDefinition | string;\n /**\n * Definition for input GraphQL field type.\n *\n * ```ts\n * manage: {\n * createInputField({ field }) {\n * if (field.multipleValues) {\n * return field.fieldId + \": [MyField]\";\n * }\n *\n * return field.fieldId + \": MyField\";\n * }\n * }\n * ```\n */\n createInputField: (params: {\n model: CmsContentModel;\n field: CmsContentModelField;\n fieldTypePlugins: CmsFieldTypePlugins;\n }) => CmsModelFieldDefinition | string;\n /**\n * Definition for field resolver.\n * By default it is simple return of the `instance.values[fieldId]` but if required, users can define their own.\n *\n * ```ts\n * manage: {\n * createResolver({ field }) {\n * return instance => {\n * return instance.values[field.fieldId];\n * };\n * }\n * }\n * ```\n */\n createResolver?: CmsModelFieldToGraphQLCreateResolver;\n };\n}\n\n/**\n * Check for content model locked field.\n * A custom plugin definable by the user.\n *\n * @category ContentModel\n * @category Plugin\n */\nexport interface CmsModelLockedFieldPlugin extends Plugin {\n /**\n * A plugin type\n */\n type: \"cms-model-locked-field\";\n /**\n * A unique identifier of the field type (text, number, json, myField, ...).\n */\n fieldType: string;\n /**\n * A method to check if field really is locked.\n */\n checkLockedField?: (params: { lockedField: LockedField; field: CmsContentModelField }) => void;\n /**\n * A method to get the locked field data.\n */\n getLockedFieldData?: (params: { field: CmsContentModelField }) => Record<string, any>;\n}\n\n/**\n * @category ContentModelField\n */\nexport interface CmsFieldTypePlugins {\n [key: string]: CmsModelFieldToGraphQLPlugin;\n}\n\n/**\n * A interface describing the reference to a user that created some data in the database.\n *\n * @category General\n */\nexport interface CreatedBy {\n /**\n * ID if the user.\n */\n id: string;\n /**\n * Full name of the user.\n */\n displayName: string;\n /**\n * Type of the user (admin, user)\n */\n type: string;\n}\n\n/**\n * Representation of settings database model.\n *\n * @category Database model\n */\nexport interface CmsSettings {\n /**\n * Last content model change. Used to cache GraphQL schema.\n */\n contentModelLastChange: Date;\n}\n\n/**\n * Settings CRUD in context.\n *\n * @category Context\n */\nexport interface CmsSettingsContext {\n /**\n * A function defining usage of a method without authenticating the user.\n */\n noAuth: () => {\n /**\n * Gets settings model from the database.\n */\n get: () => Promise<CmsSettings | null>;\n };\n /**\n * Gets settings model from the database.\n */\n get: () => Promise<CmsSettings | null>;\n /**\n * Updates settings model with a new date.\n */\n updateContentModelLastChange: () => Promise<void>;\n /**\n * Get the datetime when content model last changed.\n */\n getContentModelLastChange: () => Promise<Date>;\n}\n\nexport type CmsSystemContext = {\n getVersion: () => Promise<string>;\n setVersion: (version: string) => Promise<void>;\n getReadAPIKey(): Promise<string>;\n setReadAPIKey(apiKey: string): Promise<void>;\n install: () => Promise<void>;\n upgrade: (version: string) => Promise<boolean>;\n};\n\n/**\n * A GraphQL args.data parameter received when creating content model group.\n *\n * @category ContentModelGroup\n * @category GraphQL args\n */\nexport interface CmsContentModelGroupCreateInput {\n name: string;\n slug?: string;\n description?: string;\n icon: string;\n}\n\n/**\n * A GraphQL args.data parameter received when updating content model group.\n *\n * @category ContentModelGroup\n * @category GraphQL args\n */\nexport interface CmsContentModelGroupUpdateInput {\n name?: string;\n slug?: string;\n description?: string;\n icon?: string;\n}\n\n/**\n * A representation of content model group in the database.\n *\n * @category ContentModelGroup\n * @category Database model\n */\nexport interface CmsContentModelGroup {\n /**\n * Generated ID.\n */\n id: string;\n /**\n * Name of the group.\n */\n name: string;\n /**\n * Slug for the group. Must be unique.\n */\n slug: string;\n /**\n * Locale this group belongs to.\n */\n locale?: string;\n /**\n * Description for the group.\n */\n description?: string;\n /**\n * Icon for the group. In a form of \"ico/ico\".\n */\n icon?: string;\n /**\n * CreatedBy reference object.\n */\n createdBy?: CreatedBy;\n /**\n * Date group was created on.\n */\n createdOn?: Date;\n /**\n * Date group was created or changed on.\n */\n savedOn?: Date;\n}\n\n/**\n * A data.where parameter received when listing content model groups.\n *\n * @category ContentModelGroup\n * @category GraphQL args\n */\nexport interface CmsContentModelGroupListArgs {\n where?: Record<string, any>;\n limit?: number;\n}\n\n/**\n * Content model group in context.\n *\n * @category Context\n * @category ContentModelGroup\n */\nexport interface CmsContentModelGroupContext {\n /**\n * Plain operations on the storage level.\n */\n operations: CmsContentModelGroupStorageOperations;\n /**\n * A function defining usage of a method without authenticating the user.\n */\n noAuth: () => {\n /**\n * Gets content model group by given id.\n */\n get: (id: string) => Promise<CmsContentModelGroup | null>;\n /**\n * List all content model groups. Filterable via params.\n */\n list: (args?: CmsContentModelGroupListArgs) => Promise<CmsContentModelGroup[]>;\n };\n /**\n * Gets content model group by given id.\n */\n get: (id: string) => Promise<CmsContentModelGroup | null>;\n /**\n * List all content model groups. Filterable via params.\n */\n list: (args?: CmsContentModelGroupListArgs) => Promise<CmsContentModelGroup[]>;\n /**\n * Create a new content model group.\n */\n create: (data: CmsContentModelGroupCreateInput) => Promise<CmsContentModelGroup>;\n /**\n * Update existing content model group.\n */\n update: (id: string, data: CmsContentModelGroupUpdateInput) => Promise<CmsContentModelGroup>;\n /**\n * Delete content model group by given id.\n */\n delete: (id: string) => Promise<boolean>;\n}\n\n/**\n * Definition for content model field validator.\n *\n * @category ContentModelField\n * @category FieldValidation\n */\nexport interface CmsContentModelFieldValidation {\n name: string;\n message: string;\n settings?: Record<string, any>;\n}\n\n/**\n * A GraphQL args.data parameter received when creating content model.\n *\n * @category GraphQL args\n * @category ContentModel\n */\nexport interface CmsContentModelCreateInput {\n /**\n * Name of the content model.\n */\n name: string;\n /**\n * Unique ID of the content model. Created from name if not sent by the user. Cannot be changed.\n */\n modelId?: string;\n /**\n * Description of the content model.\n */\n description?: string;\n}\n\n/**\n * A definition for content model field received from the user.\n *\n * Input type for `CmsContentModelField`.\n * @see CmsContentModelField\n *\n * @category GraphQL args\n * @category ContentModelField\n */\nexport interface CmsContentModelFieldInput {\n /**\n * Generated ID.\n */\n id: string;\n /**\n * Type of the field. A plugin for the field must be defined.\n * @see CmsModelFieldToGraphQLPlugin\n */\n type: string;\n /**\n * A unique ID for the field. Values will be mapped via this value.\n */\n fieldId: string;\n /**\n * Label for the field.\n */\n label: string;\n /**\n * Text to display below the field to help user what to write in the field.\n */\n helpText?: string;\n /**\n * Text to display in the field.\n */\n placeholderText?: string;\n /**\n * Are multiple values allowed?\n */\n multipleValues?: boolean;\n /**\n * Predefined values options for the field. Check the reference for more information.\n */\n predefinedValues?: CmsContentModelFieldPredefinedValues;\n /**\n * Renderer options for the field. Check the reference for more information.\n */\n renderer?: CmsContentModelFieldRenderer;\n /**\n * List of validations for the field.\n */\n validation?: CmsContentModelFieldValidation[];\n /**\n * @see CmsContentModelField.listValidation\n */\n listValidation: CmsContentModelFieldValidation[];\n /**\n * User defined settings.\n */\n settings?: Record<string, any>;\n}\n\n/**\n * A GraphQL args.data parameter received when updating content model.\n *\n * @category GraphQL args\n * @category ContentModel\n */\nexport interface CmsContentModelUpdateInput {\n /**\n * A new content model name.\n */\n name?: string;\n /**\n * A new description of the content model.\n */\n description?: string;\n /**\n * A list of content model fields to define the entry values.\n */\n fields: CmsContentModelFieldInput[];\n /**\n * Admin UI field layout\n *\n * ```ts\n * layout: [\n * [field1id, field2id],\n * [field3id]\n * ]\n * ```\n */\n layout: string[][];\n /**\n * The field that is being displayed as entry title.\n * It is picked as first available text field. Or user can select own field.\n */\n titleFieldId?: string;\n}\n\n/**\n * A plugin to load a CmsContentModelManager.\n *\n * @see CmsContentModelManager\n *\n * @category Plugin\n * @category ContentModel\n * @category ContentEntry\n */\nexport interface ContentModelManagerPlugin extends Plugin {\n /**\n * A plugin type.\n */\n type: \"cms-content-model-manager\";\n /**\n * Specific model CmsContentModelManager loader. Can target exact modelId(s).\n * Be aware that if you define multiple plugins without `modelId`, last one will run.\n */\n modelId?: string[] | string;\n /**\n * Create a CmsContentModelManager for specific type - or new default one.\n * For reference in how is this plugin run check [contentModelManagerFactory](https://github.com/webiny/webiny-js/blob/f15676/packages/api-headless-cms/src/content/plugins/CRUD/contentModel/contentModelManagerFactory.ts)\n */\n create: (context: CmsContext, model: CmsContentModel) => Promise<CmsContentModelManager>;\n}\n\n/**\n * A content entry definition for and from the database.\n *\n * @category Database model\n * @category ContentEntry\n */\nexport interface CmsContentEntry {\n /**\n * A version of the webiny this entry was created with.\n * This can be used when upgrading the system so we know which entries to update.\n */\n webinyVersion: string;\n /**\n * Tenant id which is this entry for. Can be used in case of shared storage.\n */\n tenant: string;\n /**\n * Generated ID of the entry. It is shared across all the records in the database that represent a single entry.\n * So version 1, 2, ..., 2371 will have the same value in this field to link them together.\n */\n entryId: string;\n /**\n * Generated ID + version of the entry.\n */\n id: string;\n /**\n * CreatedBy object reference.\n */\n createdBy: CreatedBy;\n /**\n * OwnedBy object reference. Can be different from CreatedBy.\n */\n ownedBy: CreatedBy;\n /**\n * A string of Date.toISOString() type.\n * Populated on creation.\n */\n createdOn: string;\n /**\n * A string of Date.toISOString() type.\n * Populated every time entry is saved.\n */\n savedOn: string;\n /**\n * Model ID of the definition for the entry.\n * @see CmsContentModel\n */\n modelId: string;\n /**\n * A locale of the entry.\n * @see I18NLocale.code\n */\n locale: string;\n /**\n * A string of Date.toISOString() type - if published.\n * Populated when entry is published.\n */\n publishedOn?: string;\n /**\n * A revision version of the entry.\n */\n version: number;\n /**\n * Is the entry locked?\n */\n locked: boolean;\n /**\n * Status type of the entry.\n */\n status: CmsContentEntryStatus;\n /**\n * A mapped fieldId -> value object.\n *\n * @see CmsContentModelField\n */\n values: Record<string, any>;\n}\n\nexport interface CmsStorageContentEntry extends CmsContentEntry {\n [key: string]: any;\n}\n\n/**\n * A definition for content model manager to be used in the code.\n * The default one uses `CmsContentEntryContext` methods internally, but devs can change to what every they want.\n *\n * @see CmsContentEntryContext\n *\n * @category Context\n * @category ContentEntry\n * @category ContentModel\n */\nexport interface CmsContentModelManager {\n /**\n * List entries in this content model.\n */\n list: (args?: CmsContentEntryListArgs) => Promise<[CmsContentEntry[], CmsContentEntryMeta]>;\n /**\n * List only published entries in the content model.\n */\n listPublished: (\n args?: CmsContentEntryListArgs\n ) => Promise<[CmsContentEntry[], CmsContentEntryMeta]>;\n /**\n * List latest entries in the content model. Used for administration.\n */\n listLatest: (\n args?: CmsContentEntryListArgs\n ) => Promise<[CmsContentEntry[], CmsContentEntryMeta]>;\n /**\n * Get a list of published entries by the ID list.\n */\n getPublishedByIds: (ids: string[]) => Promise<CmsContentEntry[]>;\n /**\n * Get a list of latest entries by the ID list.\n */\n getLatestByIds: (ids: string[]) => Promise<CmsContentEntry[]>;\n /**\n * Get an entry filtered by given args. Will always get one.\n */\n get: (args?: CmsContentEntryGetArgs) => Promise<CmsContentEntry>;\n /**\n * Create a entry.\n */\n create: (data: Record<string, any>) => Promise<CmsContentEntry>;\n /**\n * Update a entry.\n */\n update: (id: string, data: Record<string, any>) => Promise<CmsContentEntry>;\n /**\n * Delete a entry.\n */\n delete: (id: string) => Promise<void>;\n}\n\n/**\n * Content model in the context.\n *\n * @category Context\n * @category ContentModel\n */\nexport interface CmsContentModelContext {\n /**\n * Plain operations on the storage level.\n */\n operations: CmsContentModelStorageOperations;\n /**\n * A function defining usage of a method without authenticating the user.\n */\n noAuth: () => {\n /**\n * Get a single content model.\n */\n get: (modelId: string) => Promise<CmsContentModel | null>;\n /**\n * Get all content models.\n */\n list: () => Promise<CmsContentModel[]>;\n };\n /**\n * A function defining usage of a method with authenticating the user but not throwing an error.\n */\n silentAuth: () => {\n /**\n * Get all content models.\n */\n list: () => Promise<CmsContentModel[]>;\n };\n /**\n * Get a single content model.\n */\n get: (modelId: string) => Promise<CmsContentModel | null>;\n /**\n * Get all content models.\n */\n list: () => Promise<CmsContentModel[]>;\n /**\n * Create a content model.\n */\n create: (data: CmsContentModelCreateInput) => Promise<CmsContentModel>;\n /**\n * Update content model without data validation. Used internally.\n *\n * @param model - existing content model\n * @param data - data to be updated\n *\n * @hidden\n */\n updateModel: (\n model: CmsContentModel,\n data: Partial<CmsContentModel>\n ) => Promise<CmsContentModel>;\n /**\n * Update content model.\n */\n update: (modelId: string, data: CmsContentModelUpdateInput) => Promise<CmsContentModel>;\n /**\n * Delete content model. Should not allow deletion if there are entries connected to it.\n */\n delete: (modelId: string) => Promise<void>;\n /**\n * Get a instance of CmsContentModelManager for given content modelId.\n *\n * @see CmsContentModelManager\n */\n getManager: (modelId: string) => Promise<CmsContentModelManager>;\n /**\n * Get all content model managers mapped by modelId.\n * @see CmsContentModelManager\n */\n getManagers: () => Map<string, CmsContentModelManager>;\n}\n\n/**\n * Available statuses for content entry.\n *\n * @category ContentEntry\n */\ntype CmsContentEntryStatus =\n | \"published\"\n | \"unpublished\"\n | \"reviewRequested\"\n | \"changesRequested\"\n | \"draft\";\n\n/**\n * Entry listing where args.\n *\n * @category ContentEntry\n * @category GraphQL args\n */\nexport interface CmsContentEntryListWhere {\n id?: string;\n id_in?: string[];\n id_not?: string;\n id_not_in?: string[];\n /**\n * Generated ID without the version.\n */\n entryId?: string;\n entryId_not?: string;\n entryId_in?: string[];\n entryId_not_in?: string[];\n /**\n * Entry is owned by whom?\n *\n * Can be sent via the API or set internal if user can see only their own entries.\n */\n ownedBy?: string;\n ownedBy_not?: string;\n ownedBy_in?: string[];\n ownedBy_not_in?: string[];\n /**\n * Who created the entry?\n */\n createdBy?: string;\n createdBy_not?: string;\n createdBy_in?: string[];\n createdBy_not_in?: string[];\n /**\n * Version of the entry.\n *\n * It is not meant to be used via the API.\n * @internal\n */\n version?: number;\n version_lt?: number;\n version_gt?: number;\n /**\n * Each operations implementation MUST determine how to use this field.\n * In SQL it can be published field and in DynamoDB can be a secondary key.\n *\n * It is not meant to be used via the API.\n * @internal\n */\n published?: boolean;\n /**\n * Each operations implementation MUST determine how to use this field.\n * In SQL it can be published field and in DynamoDB can be a secondary key.\n *\n * It is not meant to be used via the API.\n * @internal\n */\n latest?: boolean;\n [key: string]: any;\n}\n\n/**\n * Entry listing sort.\n *\n * @category ContentEntry\n * @category GraphQL args\n */\nexport type CmsContentEntryListSort = string[];\n\n/**\n * Get entry GraphQL resolver args.\n *\n * @category ContentEntry\n * @category GraphQL args\n */\nexport interface CmsContentEntryGetArgs {\n where?: CmsContentEntryListWhere;\n sort?: CmsContentEntryListSort;\n}\n\n/**\n * List entries GraphQL resolver args.\n *\n * @category ContentEntry\n * @category GraphQL args\n */\nexport interface CmsContentEntryListArgs {\n where?: CmsContentEntryListWhere;\n sort?: CmsContentEntryListSort;\n limit?: number;\n after?: string;\n}\n\n/**\n * Meta information for GraphQL output.\n *\n * @category ContentEntry\n * @category GraphQL output\n */\nexport interface CmsContentEntryMeta {\n /**\n * A cursor for pagination.\n */\n cursor: string;\n /**\n * Is there more items to load?\n */\n hasMoreItems: boolean;\n /**\n * Total count of the items in the storage.\n */\n totalCount: number;\n}\n\n/**\n * Content entry CRUD methods in the context.\n *\n * @category Context\n * @category ContentEntry\n */\nexport interface CmsContentEntryContext {\n /**\n * Plain operations on the storage level.\n */\n operations: CmsContentEntryStorageOperations;\n /**\n * Get a single content entry for a model.\n */\n get: (model: CmsContentModel, args: CmsContentEntryGetArgs) => Promise<CmsContentEntry | null>;\n /**\n * Get a list of entries for a model by a given ID (revision).\n */\n getByIds: (model: CmsContentModel, revisions: string[]) => Promise<CmsContentEntry[] | null>;\n /**\n * Get the entry for a model by a given ID.\n */\n getById: (model: CmsContentModel, revision: string) => Promise<CmsContentEntry>;\n /**\n * List entries for a model. Internal method used by get, listLatest and listPublished.\n */\n list: (\n model: CmsContentModel,\n args?: CmsContentEntryListArgs\n ) => Promise<[CmsContentEntry[], CmsContentEntryMeta]>;\n /**\n * Lists latest entries. Used for manage API.\n */\n listLatest: (\n model: CmsContentModel,\n args?: CmsContentEntryListArgs\n ) => Promise<[CmsContentEntry[], CmsContentEntryMeta]>;\n /**\n * List published entries. Used for read API.\n */\n listPublished: (\n model: CmsContentModel,\n args?: CmsContentEntryListArgs\n ) => Promise<[CmsContentEntry[], CmsContentEntryMeta]>;\n /**\n * List published entries by IDs.\n */\n getPublishedByIds: (model: CmsContentModel, ids: string[]) => Promise<CmsContentEntry[]>;\n /**\n * List latest entries by IDs.\n */\n getLatestByIds: (model: CmsContentModel, ids: string[]) => Promise<CmsContentEntry[]>;\n /**\n * Create a new content entry.\n */\n create: (model: CmsContentModel, data: Record<string, any>) => Promise<CmsContentEntry>;\n /**\n * Create a new entry from already existing entry.\n */\n createRevisionFrom: (\n model: CmsContentModel,\n id: string,\n data: Record<string, any>\n ) => Promise<CmsContentEntry>;\n /**\n * Update existing entry.\n */\n update: (\n model: CmsContentModel,\n id: string,\n data?: Record<string, any>\n ) => Promise<CmsContentEntry>;\n /**\n * Delete only a certain revision of the entry.\n */\n deleteRevision: (model: CmsContentModel, id: string) => Promise<void>;\n /**\n * Delete entry with all its revisions.\n */\n deleteEntry: (model: CmsContentModel, id: string) => Promise<void>;\n /**\n * Publish entry.\n */\n publish: (model: CmsContentModel, id: string) => Promise<CmsContentEntry>;\n /**\n * Unpublish entry.\n */\n unpublish: (model: CmsContentModel, id: string) => Promise<CmsContentEntry>;\n /**\n * Request a review for the entry.\n */\n requestReview: (model: CmsContentModel, id: string) => Promise<CmsContentEntry>;\n /**\n * Request changes for the entry.\n */\n requestChanges: (model: CmsContentModel, id: string) => Promise<CmsContentEntry>;\n /**\n * Get all entry revisions.\n */\n getEntryRevisions: (model: CmsContentModel, id: string) => Promise<CmsContentEntry[]>;\n}\n\n/**\n * A cms part of the context that has all the CRUD operations.\n *\n * @category Context\n */\ninterface CmsCrudContextObject {\n /**\n * Settings CRUD methods.\n */\n settings: CmsSettingsContext;\n /**\n * Content model group CRUD methods.\n */\n groups: CmsContentModelGroupContext;\n /**\n * Content model CRUD methods.\n */\n models: CmsContentModelContext;\n /**\n * Fetch the content entry manager. It calls content entry methods internally, with given model as the target.\n */\n getModel: (modelId: string) => Promise<CmsContentModelManager>;\n /**\n * Content entry CRUD methods.\n */\n entries: CmsContentEntryContext;\n /**\n * System CRUD methods\n */\n system: CmsSystemContext;\n}\n\n/**\n * Parameters for ContentEntryResolverFactory.\n *\n * @category GraphQL resolver\n * @category ContentEntry\n */\ninterface CmsContentEntryResolverFactoryParams {\n model: CmsContentModel;\n}\n\n/**\n * A type for ContentEntryResolvers. Used when creating get, list, update, publish, ...etc.\n *\n * @category GraphQL resolver\n * @category ContentEntry\n */\nexport type CmsContentEntryResolverFactory<TSource = any, TArgs = any, TContext = CmsContext> = {\n (params: CmsContentEntryResolverFactoryParams): GraphQLFieldResolver<TSource, TArgs, TContext>;\n};\n\n/**\n * Settings security permission.\n *\n * @category SecurityPermission\n */\nexport interface CmsSettingsPermission extends SecurityPermission {} // eslint-disable-line\n/**\n * A security permission for content model.\n *\n * @category SecurityPermission\n * @category ContentModel\n */\nexport interface CmsContentModelPermission extends SecurityPermission {\n own: boolean;\n rwd: string;\n /**\n * A object representing `key: model.modelId` values where key is locale code.\n */\n models?: {\n [key: string]: string[];\n };\n /**\n * A object representing `key: group.id` values where key is locale code.\n */\n groups?: {\n [key: string]: string[];\n };\n}\n\n/**\n * The security permission for content model groups.\n *\n * @category SecurityPermission\n * @category ContentModelGroup\n */\nexport interface CmsContentModelGroupPermission extends SecurityPermission {\n own: boolean;\n rwd: string;\n /**\n * A object representing `key: group.id` values where key is locale code.\n */\n groups?: {\n [key: string]: string[];\n };\n}\n\n/**\n * The security permission for content entry.\n *\n * @category SecurityPermission\n * @category ContentEntry\n */\nexport interface CmsContentEntryPermission extends SecurityPermission {\n own: boolean;\n rwd: string;\n pw: string;\n /**\n * A object representing `key: model.modelId` values where key is locale code.\n */\n models?: {\n [key: string]: string[];\n };\n /**\n * A object representing `key: group.id` values where key is locale code.\n */\n groups?: {\n [key: string]: string[];\n };\n}\n\n/**\n * A argument definition for CmsModelFieldToStoragePlugin.toStorage\n *\n * @see CmsModelFieldToStoragePlugin.toStorage\n *\n * @category Plugin\n * @category ContentModelField\n * @category Storage\n */\nexport interface CmsModelFieldToStoragePluginToStorageArgs<T> {\n model: CmsContentModel;\n field: CmsContentModelField;\n value: T;\n getStoragePlugin(fieldType: string): CmsModelFieldToStoragePlugin<T>;\n context: CmsContext;\n}\n\n/**\n * A argument definition for CmsModelFieldToStoragePlugin.fromStorage\n *\n * @see CmsModelFieldToStoragePlugin.fromStorage\n *\n * @category Plugin\n * @category ContentModelField\n * @category Storage\n */\nexport interface CmsModelFieldToStoragePluginFromStorageArgs<T> {\n model: CmsContentModel;\n field: CmsContentModelField;\n value: T;\n getStoragePlugin(fieldType: string): CmsModelFieldToStoragePlugin<T>;\n context: CmsContext;\n}\n\n/**\n * A plugin defining transformation of field value to and from storage.\n *\n * @category Plugin\n * @category ContentModelField\n * @category ContentEntry\n * @category Storage\n */\nexport interface CmsModelFieldToStoragePlugin<\n Original = Record<string, any>,\n Converted = Record<string, any>\n> extends Plugin {\n /**\n * A plugin type\n */\n type: \"cms-model-field-to-storage\";\n /**\n * A unique identifier of the field type (text, number, json, myField, ...).\n *\n * ```ts\n * fieldType: \"myField\"\n * ```\n */\n fieldType: string;\n /**\n * A function that is ran when storing the data. You can do what ever transformations you need on input value and return a new value that is stored into the database.\n *\n * ```ts\n * toStorage({ value }) {\n * return gzip(value);\n * }\n * ```\n */\n toStorage: (args: CmsModelFieldToStoragePluginToStorageArgs<Original>) => Promise<Converted>;\n /**\n * A function that is ran when retrieving the data from the database. You either revert the action you did in the `toStorage` or handle it via some other way available to you.\n *\n * ```ts\n * fromStorage({ value }) {\n * return ungzip(value);\n * }\n * ```\n */\n fromStorage: (\n args: CmsModelFieldToStoragePluginFromStorageArgs<Converted>\n ) => Promise<Original>;\n}\n\n/**\n * @category LifecycleHook\n * @category ContentModel\n */\nexport interface CmsContentModelHookPluginArgs {\n model: CmsContentModel;\n context: CmsContext;\n storageOperations: CmsContentModelStorageOperations;\n}\n\n/**\n * @category LifecycleHook\n * @category ContentModel\n */\nexport interface CmsContentModelCreateHookPluginArgs extends CmsContentModelHookPluginArgs {\n input: CmsContentModelCreateInput;\n}\n\n/**\n * @category LifecycleHook\n * @category ContentModel\n */\nexport interface CmsContentModelUpdateHookPluginArgs extends CmsContentModelHookPluginArgs {\n input: CmsContentModelUpdateInput;\n}\n\n/**\n * A plugin type that defines lifecycle hooks for content model.\n *\n * @category Plugin\n * @category ContentModel\n * @category LifecycleHook\n */\nexport interface CmsContentModelHookPlugin extends Plugin {\n type: \"cms-content-model-hook\";\n /**\n * A hook triggered before the content model is created.\n */\n beforeCreate?: (args: CmsContentModelCreateHookPluginArgs) => void;\n /**\n * A hook triggered after the content model is created.\n */\n afterCreate?: (args: CmsContentModelCreateHookPluginArgs) => void;\n /**\n * A hook triggered before the content model is updated.\n */\n beforeUpdate?: (args: CmsContentModelUpdateHookPluginArgs) => void;\n /**\n * A hook triggered after the content model is updated.\n */\n afterUpdate?: (args: CmsContentModelUpdateHookPluginArgs) => void;\n /**\n * A hook triggered before the content model is deleted.\n */\n beforeDelete?: (args: CmsContentModelHookPluginArgs) => void;\n /**\n * A hook triggered after the content model is deleted.\n */\n afterDelete?: (args: CmsContentModelHookPluginArgs) => void;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\ninterface CmsContentEntryHookPluginArgs {\n context: CmsContext;\n /**\n * Storage operations that we have initialized.\n */\n storageOperations: CmsContentEntryStorageOperations;\n /**\n * Model of the given entry.\n */\n model: CmsContentModel;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeCreateHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * User input.\n */\n input: Record<string, any>;\n /**\n * Plain entry, as we need it in the system.\n */\n entry: CmsContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterCreateHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * User input.\n */\n input: Record<string, any>;\n /**\n * Plain entry, as we need it in the system.\n */\n entry: CmsContentEntry;\n /**\n * Transformed entry to insert into the storage.\n */\n storageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeCreateFromRevisionHookArgs\n extends CmsContentEntryHookPluginArgs {\n /**\n * Entry used through the system as we need it.\n */\n entry: CmsContentEntry;\n /**\n * Entry prepared for the storage.\n */\n storageEntry: CmsStorageContentEntry;\n /**\n * The entry we are creating the new entry from.\n */\n originalEntry: CmsContentEntry;\n /**\n * The entry we are creating the new entry from, directly from storage, with transformations on it.\n */\n originalStorageEntry: CmsStorageContentEntry;\n /**\n * Latest entry, used to calculate the new version.\n */\n latestEntry: CmsContentEntry;\n /**\n * Latest entry, used to calculate the new version, directly from storage, with transformations.\n */\n latestStorageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterCreateFromRevisionHookArgs\n extends CmsContentEntryHookPluginArgs {\n /**\n * Entry used through the system as we need it.\n */\n entry: CmsContentEntry;\n /**\n * Entry prepared for the storage.\n */\n storageEntry: CmsStorageContentEntry;\n /**\n * The entry we are creating the new entry from.\n */\n originalEntry: CmsContentEntry;\n /**\n * The entry we are creating the new entry from, directly from storage, with transformations on it.\n */\n originalStorageEntry: CmsStorageContentEntry;\n /**\n * Latest entry, used to calculate the new version.\n */\n latestEntry: CmsContentEntry;\n /**\n * Latest entry, used to calculate the new version, directly from storage, with transformations.\n */\n latestStorageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeUpdateHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * User input.\n */\n input: Record<string, any>;\n /**\n * Entry to be updated in the storage, after the changes are applied.\n */\n entry: CmsContentEntry;\n /**\n * Original entry being updated.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry being updated, directly from storage, with transformations on it.\n */\n originalStorageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterUpdateHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * User input.\n */\n input: Record<string, any>;\n /**\n * Original entry being updated.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry being updated, directly from storage, with transformations on it.\n */\n originalStorageEntry: CmsContentEntry;\n /**\n * Entry that was stored, in its plain form without the transformations.\n */\n entry: CmsContentEntry;\n /**\n * Entry record that was stored in the storage via the storage operations.\n */\n storageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeDeleteRevisionHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry that is going to be deleted.\n */\n entryToDelete: CmsContentEntry;\n /**\n * Entry that is going to be deleted, directly from storage, with transformations.\n */\n storageEntryToDelete: CmsStorageContentEntry;\n /**\n * Entry that is to be set as latest.\n */\n entryToSetAsLatest?: CmsContentEntry;\n /**\n * Entry that is to be set as latest, directly from storage, with transformations.\n */\n storageEntryToSetAsLatest?: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterDeleteRevisionHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry that was deleted.\n */\n entryToDelete: CmsContentEntry;\n /**\n * Entry that was deleted, directly from storage, with transformations.\n */\n storageEntryToDelete: CmsStorageContentEntry;\n /**\n * Entry that was set as latest.\n */\n entryToSetAsLatest?: CmsContentEntry;\n /**\n * Entry that was set as latest, directly from storage, with transformations.\n */\n storageEntryToSetAsLatest?: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeDeleteHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry that is going to be deleted.\n */\n entry: CmsContentEntry;\n /**\n * Entry that is going to be deleted, directly from storage, with transformations.\n */\n storageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterDeleteHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry that was deleted.\n */\n entry: CmsContentEntry;\n /**\n * Entry that was deleted, directly from storage, with transformations.\n */\n storageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforePublishHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry to be set as published.\n */\n entry: CmsContentEntry;\n /**\n * Entry before the changes that made it published.\n */\n originalEntry: CmsContentEntry;\n /**\n * Entry before the changes that made it published, directly from storage, with transforms.\n */\n originalStorageEntry: CmsContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterPublishHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry to be set as published.\n */\n entry: CmsContentEntry;\n /**\n * Entry to be set as published, after the storage transformations.\n */\n storageEntry: CmsStorageContentEntry;\n /**\n * Entry before the changes that made it published.\n */\n originalEntry: CmsContentEntry;\n /**\n * Entry before the changes that made it published, directly from storage, with transforms.\n */\n originalStorageEntry: CmsContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeUnpublishHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry to be set as unpublished.\n */\n entry: CmsContentEntry;\n /**\n * Entry before the modification to set it unpublished.\n */\n originalEntry: CmsContentEntry;\n /**\n * Entry before the modification to set it unpublished, directly from storage, with transformations on it.\n */\n originalStorageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterUnpublishHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry that was set as unpublished.\n */\n entry: CmsContentEntry;\n /**\n * Entry that was set as unpublished, with transformations on it.\n */\n storageEntry: CmsContentEntry;\n /**\n * Entry before the modification to set it unpublished.\n */\n originalEntry: CmsContentEntry;\n /**\n * Entry before the modification to set it unpublished, directly from storage, with transformations on it.\n */\n originalStorageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeRequestChangesHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Original entry to be updated, no transformations on it.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry to be updated, directly from storage, with the transformations.\n */\n originalStorageEntry: CmsContentEntry;\n /**\n * Entry to be updated as requested changes on it.\n */\n entry: CmsContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterRequestChangesHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Original entry to be updated, no transformations on it.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry to be updated, directly from storage, with the transformations.\n */\n originalStorageEntry: CmsContentEntry;\n /**\n * Entry to be updated as requested changes on it.\n */\n entry: CmsContentEntry;\n /**\n * Transformed entry, prepared for the storage.\n */\n storageEntry: CmsStorageContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryBeforeRequestReviewHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Original entry to be updated, no transformations on it.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry to be updated, directly from storage, with the transformations.\n */\n originalStorageEntry: CmsContentEntry;\n /**\n * Entry to be updated as requested review on it.\n */\n entry: CmsContentEntry;\n}\n\n/**\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryAfterRequestReviewHookArgs extends CmsContentEntryHookPluginArgs {\n /**\n * Entry to be updated as requested review on it.\n */\n entry: CmsContentEntry;\n /**\n * Entry that is prepared for the storageOperations, with the transformations.\n */\n storageEntry: CmsStorageContentEntry;\n /**\n * Original entry from the storage.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry to be updated, directly from storage, with the transformations.\n */\n originalStorageEntry: CmsStorageContentEntry;\n}\n\n/**\n * A plugin type that defines lifecycle hooks for content entry.\n *\n * @category Plugin\n * @category ContentEntry\n * @category LifecycleHook\n */\nexport interface CmsContentEntryHookPlugin extends Plugin {\n type: \"cms-content-entry-hook\";\n /**\n * A hook triggered before entry is stored.\n * At this point, entry for storage is already built so you cannot modify them.\n */\n beforeCreate?: (args: CmsContentEntryBeforeCreateHookArgs) => void;\n /**\n * A hook triggered after entry is stored.\n */\n afterCreate?: (CmsContentEntryAfterCreateHookArgs) => void;\n /**\n * @see CmsContentEntryHookPlugin.beforeCreate\n */\n beforeCreateRevisionFrom?: (args: CmsContentEntryBeforeCreateFromRevisionHookArgs) => void;\n /**\n * @see CmsContentEntryHookPlugin.afterCreate\n */\n afterCreateRevisionFrom?: (args: CmsContentEntryAfterCreateFromRevisionHookArgs) => void;\n /**\n * A hook triggered before entry is updated in the database.\n * It can be modified but we do not recommend it.\n */\n beforeUpdate?: (args: CmsContentEntryBeforeUpdateHookArgs) => void;\n /**\n * A hook triggered after entry is updated.\n */\n afterUpdate?: (args: CmsContentEntryAfterUpdateHookArgs) => void;\n /**\n * A hook triggered before deleting a certain revision (id#revision).\n */\n beforeDeleteRevision?: (args: CmsContentEntryBeforeDeleteRevisionHookArgs) => void;\n /**\n * A hook triggered after deleting certain revision.\n * In a case that deleted revision is only one, deleteEntry is called just to make sure that nothing is left in storage.\n */\n afterDeleteRevision?: (args: CmsContentEntryAfterDeleteRevisionHookArgs) => void;\n /**\n * A hook triggered before deleting an entry with all its revisions.\n */\n beforeDelete?: (args: CmsContentEntryBeforeDeleteHookArgs) => void;\n /**\n * A hook triggered after deleting an entry.\n */\n afterDelete?: (args: CmsContentEntryBeforeDeleteHookArgs) => void;\n /**\n * A hook triggered before publishing of an entry.\n */\n beforePublish?: (args: CmsContentEntryBeforePublishHookArgs) => void;\n /**\n * A hook triggered after publishing of an entry.\n */\n afterPublish?: (args: CmsContentEntryAfterPublishHookArgs) => void;\n /**\n * A hook triggered before unpublishing of an entry.\n */\n beforeUnpublish?: (args: CmsContentEntryBeforeUnpublishHookArgs) => void;\n /**\n * A hook triggered after unpublishing of an entry.\n */\n afterUnpublish?: (args: CmsContentEntryAfterUnpublishHookArgs) => void;\n /**\n * A hook triggered before requesting changes of an entry.\n */\n beforeRequestChanges?: (args: CmsContentEntryBeforeRequestChangesHookArgs) => void;\n /**\n * A hook triggered after requesting changes of an entry.\n */\n afterRequestChanges?: (args: CmsContentEntryAfterRequestChangesHookArgs) => void;\n /**\n * A hook triggered before requesting review of an entry.\n */\n beforeRequestReview?: (args: CmsContentEntryBeforeRequestReviewHookArgs) => void;\n /**\n * A hook triggered after requesting review of an entry.\n */\n afterRequestReview?: (args: CmsContentEntryAfterRequestReviewHookArgs) => void;\n}\n\ninterface CmsStorageOperationsProvider<A = any, T = any> extends Plugin {\n provide: (args: A) => Promise<T>;\n}\n\n/**\n * Arguments for the group storage operations provider method.\n */\ninterface CmsContentModelGroupStorageOperationsProviderArgs {\n context: CmsContext;\n}\n\n/**\n * A plugin that provides the group storage operations implementation.\n */\nexport interface CmsContentModelGroupStorageOperationsProvider\n extends CmsStorageOperationsProvider<\n CmsContentModelGroupStorageOperationsProviderArgs,\n CmsContentModelGroupStorageOperations\n > {\n /**\n * A plugin type.\n */\n type: \"cms-content-model-group-storage-operations-provider\";\n}\n\nexport interface CmsContentModelGroupStorageOperationsGetArgs {\n id: string;\n}\n\nexport interface CmsContentModelGroupStorageOperationsListArgs<\n T extends Record<string, any> = Record<string, any>\n> {\n where?: T;\n limit?: number;\n}\n\nexport interface CmsContentModelGroupStorageOperationsBeforeCreateArgs {\n input: CmsContentModelGroupCreateInput;\n data: CmsContentModelGroup;\n}\n\nexport interface CmsContentModelGroupStorageOperationsCreateArgs {\n input: CmsContentModelGroupCreateInput;\n data: CmsContentModelGroup;\n}\n\nexport interface CmsContentModelGroupStorageOperationsAfterCreateArgs {\n input: CmsContentModelGroupCreateInput;\n group: CmsContentModelGroup;\n}\n\nexport interface CmsContentModelGroupStorageOperationsBeforeUpdateArgs {\n group: CmsContentModelGroup;\n data: Partial<CmsContentModelGroup>;\n input: CmsContentModelGroupUpdateInput;\n}\n\nexport interface CmsContentModelGroupStorageOperationsUpdateArgs {\n group: CmsContentModelGroup;\n data: Partial<CmsContentModelGroup>;\n input: CmsContentModelGroupUpdateInput;\n}\n\nexport interface CmsContentModelGroupStorageOperationsAfterUpdateArgs {\n group: CmsContentModelGroup;\n data: Partial<CmsContentModelGroup>;\n input: CmsContentModelGroupUpdateInput;\n}\n\nexport interface CmsContentModelGroupStorageOperationsBeforeDeleteArgs {\n group: CmsContentModelGroup;\n}\n\nexport interface CmsContentModelGroupStorageOperationsDeleteArgs {\n group: CmsContentModelGroup;\n}\n\nexport interface CmsContentModelGroupStorageOperationsAfterDeleteArgs {\n group: CmsContentModelGroup;\n}\n\n/**\n * Description of the ContentModelGroup CRUD operations.\n * If user wants to add another database to the application, this is how it is done.\n * This is just plain read, update, write, delete and list - no authentication or permission checks.\n */\nexport interface CmsContentModelGroupStorageOperations {\n /**\n * Gets content model group by given id.\n */\n get: (\n args: CmsContentModelGroupStorageOperationsGetArgs\n ) => Promise<CmsContentModelGroup | null>;\n /**\n * List all content model groups. Filterable via params.\n */\n list: (args?: CmsContentModelGroupStorageOperationsListArgs) => Promise<CmsContentModelGroup[]>;\n /**\n * A hook to be run before the create method.\n */\n beforeCreate?: (args: CmsContentModelGroupStorageOperationsBeforeCreateArgs) => Promise<void>;\n /**\n * Create a new content model group.\n */\n create: (\n args: CmsContentModelGroupStorageOperationsCreateArgs\n ) => Promise<CmsContentModelGroup>;\n /**\n * A hook to be run after the create method.\n */\n afterCreate?: (args: CmsContentModelGroupStorageOperationsAfterCreateArgs) => Promise<void>;\n /**\n * A hook to be run before the update method.\n */\n beforeUpdate?: (args: CmsContentModelGroupStorageOperationsBeforeUpdateArgs) => Promise<void>;\n /**\n * Update existing content model group.\n */\n update: (\n args: CmsContentModelGroupStorageOperationsUpdateArgs\n ) => Promise<CmsContentModelGroup>;\n /**\n * A hook to be run after the update method.\n */\n afterUpdate?: (args: CmsContentModelGroupStorageOperationsAfterUpdateArgs) => Promise<void>;\n /**\n * A hook to be run before the delete method.\n */\n beforeDelete?: (args: CmsContentModelGroupStorageOperationsBeforeDeleteArgs) => Promise<void>;\n /**\n * Delete the content model group.\n */\n delete: (args: CmsContentModelGroupStorageOperationsDeleteArgs) => Promise<boolean>;\n /**\n * A hook to be run after the delete method.\n */\n afterDelete?: (args: CmsContentModelGroupStorageOperationsAfterDeleteArgs) => Promise<void>;\n}\n\n/**\n * Arguments for the model storage operations provider method.\n */\ninterface CmsContentModelStorageOperationsProviderArgs {\n context: CmsContext;\n}\n\n/**\n * A plugin that provides the model storage operations implementation.\n */\nexport interface CmsContentModelStorageOperationsProvider\n extends CmsStorageOperationsProvider<\n CmsContentModelStorageOperationsProviderArgs,\n CmsContentModelStorageOperations\n > {\n /**\n * A plugin type.\n */\n type: \"cms-content-model-storage-operations-provider\";\n}\n\nexport interface CmsContentModelStorageOperationsGetArgs {\n id: string;\n}\n\nexport interface CmsContentModelStorageOperationsListArgs<\n T extends Record<string, any> = Record<string, any>\n> {\n where?: T;\n limit?: number;\n}\n\nexport interface CmsContentModelStorageOperationsBeforeCreateArgs {\n input: CmsContentModelCreateInput;\n data: CmsContentModel;\n}\n\nexport interface CmsContentModelStorageOperationsCreateArgs {\n input: CmsContentModelCreateInput;\n data: CmsContentModel;\n}\n\nexport interface CmsContentModelStorageOperationsAfterCreateArgs {\n input: CmsContentModelCreateInput;\n model: CmsContentModel;\n}\n\nexport interface CmsContentModelStorageOperationsBeforeUpdateArgs {\n model: CmsContentModel;\n data: Partial<CmsContentModel>;\n input: CmsContentModelUpdateInput;\n}\n\nexport interface CmsContentModelStorageOperationsUpdateArgs {\n model: CmsContentModel;\n data: Partial<CmsContentModel>;\n input: CmsContentModelUpdateInput;\n}\n\nexport interface CmsContentModelStorageOperationsAfterUpdateArgs {\n model: CmsContentModel;\n data: Partial<CmsContentModel>;\n input: CmsContentModelUpdateInput;\n}\n\nexport interface CmsContentModelStorageOperationsBeforeDeleteArgs {\n model: CmsContentModel;\n}\n\nexport interface CmsContentModelStorageOperationsDeleteArgs {\n model: CmsContentModel;\n}\n\nexport interface CmsContentModelStorageOperationsAfterDeleteArgs {\n model: CmsContentModel;\n}\n\n/**\n * Description of the ContentModel storage operations.\n * If user wants to add another database to the application, this is how it is done.\n * This is just plain read, update, write, delete and list - no authentication or permission checks.\n */\nexport interface CmsContentModelStorageOperations {\n /**\n * Gets content model by given id.\n */\n get: (args: CmsContentModelStorageOperationsGetArgs) => Promise<CmsContentModel | null>;\n /**\n * List all content models. Filterable via params.\n */\n list: (args?: CmsContentModelStorageOperationsListArgs) => Promise<CmsContentModel[]>;\n /**\n * A hook to be run before the create method.\n */\n beforeCreate?: (args: CmsContentModelStorageOperationsBeforeCreateArgs) => Promise<void>;\n /**\n * Create a new content model.\n */\n create: (args: CmsContentModelStorageOperationsCreateArgs) => Promise<CmsContentModel>;\n /**\n * A hook to be run after the create method.\n */\n afterCreate?: (args: CmsContentModelStorageOperationsAfterCreateArgs) => Promise<void>;\n /**\n * A hook to be run before the update method.\n */\n beforeUpdate?: (args: CmsContentModelStorageOperationsBeforeUpdateArgs) => Promise<void>;\n /**\n * Update existing content model.\n */\n update: (args: CmsContentModelStorageOperationsUpdateArgs) => Promise<CmsContentModel>;\n /**\n * A hook to be run after the update method.\n */\n afterUpdate?: (args: CmsContentModelStorageOperationsAfterUpdateArgs) => Promise<void>;\n /**\n * A hook to be run before the delete method.\n */\n beforeDelete?: (args: CmsContentModelStorageOperationsBeforeDeleteArgs) => Promise<void>;\n /**\n * Delete the content model.\n */\n delete: (args: CmsContentModelStorageOperationsDeleteArgs) => Promise<boolean>;\n /**\n * A hook to be run after the delete method.\n */\n afterDelete?: (args: CmsContentModelStorageOperationsAfterDeleteArgs) => Promise<void>;\n}\n\n/**\n * Arguments for the entry storage provider method.\n */\ninterface CmsContentEntryStorageOperationsProviderArgs {\n context: CmsContext;\n}\n\n/**\n * A plugin that provides the entry storage operations implementation.\n */\nexport interface CmsContentEntryStorageOperationsProvider\n extends CmsStorageOperationsProvider<\n CmsContentEntryStorageOperationsProviderArgs,\n CmsContentEntryStorageOperations\n > {\n /**\n * A plugin type.\n */\n type: \"cms-content-entry-storage-operations-provider\";\n}\n\nexport interface CmsContentEntryStorageOperationsGetArgs {\n where?: CmsContentEntryListWhere;\n sort?: CmsContentEntryListSort;\n limit?: number;\n}\n\nexport interface CmsContentEntryStorageOperationsListArgs<\n T extends Record<string, any> = Record<string, any>\n> {\n where?: T;\n sort?: CmsContentEntryListSort;\n limit?: number;\n after?: string;\n}\n\nexport interface CmsContentEntryStorageOperationsCreateArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Input received from the user.\n */\n input: Record<string, any>;\n /**\n * Real entry, with no transformations on it.\n */\n entry: CmsContentEntry;\n /**\n * Entry prepared for the storage.\n */\n storageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsCreateRevisionFromArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * The entry we are creating new one from.\n */\n originalEntry: CmsContentEntry;\n /**\n * The entry we are creating new one from, directly from storage, with transformations on it.\n */\n originalStorageEntry: T;\n /**\n * Latest entry, used to calculate the new version.\n */\n latestEntry: CmsContentEntry;\n /**\n * Latest entry, used to calculate the new version, directly from storage, with transformations.\n */\n latestStorageEntry: T;\n /**\n * Real entry, with no transformations on it.\n */\n entry: CmsContentEntry;\n /**\n * Entry prepared for the storage.\n */\n storageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsUpdateArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Input received from the user.\n */\n input: Record<string, any>;\n /**\n * Used to compare IDs, versions and passed into storage operations to be used if required.\n */\n originalEntry: CmsContentEntry;\n /**\n * Directly from storage, with transformations on it.\n */\n originalStorageEntry: T;\n /**\n * Real entry, with no transformations on it.\n */\n entry: CmsContentEntry;\n /**\n * Entry prepared for the storage.\n */\n storageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsDeleteRevisionArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Entry that was deleted.\n */\n entryToDelete: CmsContentEntry;\n /**\n * Entry that was deleted, directly from storage, with transformations.\n */\n storageEntryToDelete: T;\n /**\n * Entry that was set as latest.\n */\n entryToSetAsLatest?: CmsContentEntry;\n /**\n * Entry that was set as latest, directly from storage, with transformations.\n */\n storageEntryToSetAsLatest?: T;\n}\n\nexport interface CmsContentEntryStorageOperationsDeleteArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Entry that is going to be deleted.\n */\n entry: CmsContentEntry;\n /**\n * Entry that is going to be deleted, directly from storage.\n */\n storageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsPublishArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * The entry record before it was published.\n */\n originalEntry: CmsContentEntry;\n /**\n * Directly from storage, with transformations on it.\n */\n originalStorageEntry: T;\n /**\n * The modified entry that is going to be saved as published.\n * Entry is in its original form.\n */\n entry: CmsContentEntry;\n /**\n * The modified entry and prepared for the storage.\n */\n storageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsUnpublishArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * The entry record before it was unpublished.\n */\n originalEntry: CmsContentEntry;\n /**\n * The entry record before it was unpublished, with transformations on it.\n */\n originalStorageEntry: T;\n /**\n * The modified entry that is going to be saved as unpublished.\n */\n entry: CmsContentEntry;\n /**\n * The modified entry that is going to be saved as unpublished, with transformations on it.\n */\n storageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsRequestChangesArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Entry data updated with the required properties.\n */\n entry: CmsContentEntry;\n /**\n * Entry that is prepared for the storageOperations, with the transformations.\n */\n storageEntry: T;\n /**\n * Original entry from the storage.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry to be updated, directly from storage, with the transformations.\n */\n originalStorageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsRequestReviewArgs<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Entry that is prepared for the storageOperations.\n */\n entry: CmsContentEntry;\n /**\n * Entry that is prepared for the storageOperations, with the transformations.\n */\n storageEntry: T;\n /**\n * Original entry from the storage.\n */\n originalEntry: CmsContentEntry;\n /**\n * Original entry to be updated, directly from storage, with the transformations.\n */\n originalStorageEntry: T;\n}\n\nexport interface CmsContentEntryStorageOperationsListResponse<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Has more items to load with the current filtering?\n */\n hasMoreItems: boolean;\n /**\n * Items loaded with current filtering.\n */\n items: T[];\n /**\n * Pointer for where to start the new item set.\n */\n cursor: string | null;\n /**\n * Total amount of items with the current filter.\n */\n totalCount: number;\n}\n\n/**\n * Description of the ContentModel storage operations.\n * If user wants to add another database to the application, this is how it is done.\n * This is just plain read, update, write, delete and list - no authentication or permission checks.\n *\n *\n * @category StorageOperations\n * @category ContentEntry\n */\nexport interface CmsContentEntryStorageOperations<\n T extends CmsStorageContentEntry = CmsStorageContentEntry\n> {\n /**\n * Get all the entries of the ids.\n */\n getByIds: (model: CmsContentModel, ids: readonly string[]) => Promise<T[]>;\n /**\n * Get all the published entries of the ids.\n */\n getPublishedByIds: (model: CmsContentModel, ids: readonly string[]) => Promise<T[]>;\n /**\n * Get all the latest entries of the ids.\n */\n getLatestByIds: (model: CmsContentModel, ids: readonly string[]) => Promise<T[]>;\n /**\n * Get all revisions of the given entry id.\n */\n getRevisions: (model: CmsContentModel, id: string) => Promise<T[]>;\n /**\n * Get all revisions of all of the given IDs.\n */\n getAllRevisionsByIds: (model: CmsContentModel, ids: readonly string[]) => Promise<T[]>;\n /**\n * Get the entry by the given revision id.\n */\n getRevisionById: (model: CmsContentModel, id: string) => Promise<T | null>;\n /**\n * Get the published entry by given entryId.\n */\n getPublishedRevisionByEntryId: (model: CmsContentModel, entryId: string) => Promise<T | null>;\n /**\n * Get the latest entry by given entryId.\n */\n getLatestRevisionByEntryId: (model: CmsContentModel, entryId: string) => Promise<T | null>;\n /**\n * Get the revision of the entry before given one.\n */\n getPreviousRevision: (\n model: CmsContentModel,\n entryId: string,\n version: number\n ) => Promise<T | null>;\n\n /**\n * Gets entry by given args.\n */\n get: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsGetArgs\n ) => Promise<T | null>;\n /**\n * List all entries. Filterable via params.\n */\n list: (\n model: CmsContentModel,\n args?: CmsContentEntryStorageOperationsListArgs\n ) => Promise<CmsContentEntryStorageOperationsListResponse<T>>;\n /**\n * Create a new entry.\n */\n create: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsCreateArgs<T>\n ) => Promise<T>;\n /**\n * Create a new entry from existing one.\n */\n createRevisionFrom: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsCreateRevisionFromArgs<T>\n ) => Promise<T>;\n /**\n * Update existing entry.\n */\n update: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsUpdateArgs<T>\n ) => Promise<T>;\n /**\n * Delete the entry revision.\n */\n deleteRevision: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsDeleteRevisionArgs<T>\n ) => Promise<void>;\n /**\n * Delete the entry.\n */\n delete: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsDeleteArgs<T>\n ) => Promise<void>;\n /**\n * Publish the entry.\n */\n publish: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsPublishArgs<T>\n ) => Promise<T>;\n /**\n * Unpublish the entry.\n */\n unpublish: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsUnpublishArgs<T>\n ) => Promise<T>;\n /**\n * Request changes the entry.\n */\n requestChanges: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsRequestChangesArgs<T>\n ) => Promise<T>;\n /**\n * Request review the entry.\n */\n requestReview: (\n model: CmsContentModel,\n args: CmsContentEntryStorageOperationsRequestReviewArgs<T>\n ) => Promise<CmsContentEntry>;\n}\n\nexport enum CONTENT_ENTRY_STATUS {\n DRAFT = \"draft\",\n PUBLISHED = \"published\",\n UNPUBLISHED = \"unpublished\",\n CHANGES_REQUESTED = \"changesRequested\",\n REVIEW_REQUESTED = \"reviewRequested\"\n}\n\ninterface CmsSettingsStorageOperationsProviderArgs {\n context: CmsContext;\n}\n/**\n * A plugin that provides the settings storage operations implementation.\n */\nexport interface CmsSettingsStorageOperationsProviderPlugin\n extends CmsStorageOperationsProvider<\n CmsSettingsStorageOperationsProviderArgs,\n CmsSettingsStorageOperations\n > {\n /**\n * A plugin type.\n */\n type: \"cms-settings-storage-operations-provider\";\n}\n\nexport interface CmsSettingsStorageOperations {\n /**\n * Get the settings from the storage.\n */\n get: () => Promise<CmsSettings | null>;\n /**\n * Create settings in the storage.\n */\n create: (data: CmsSettings) => Promise<void>;\n /**\n * Update the settings in the storage.\n */\n update: (data: CmsSettings) => Promise<void>;\n}\n\ninterface CmsSystemStorageOperationsProviderArgs {\n context: CmsContext;\n}\n/**\n * A plugin that provides the system storage operations implementation.\n */\nexport interface CmsSystemStorageOperationsProviderPlugin\n extends CmsStorageOperationsProvider<\n CmsSystemStorageOperationsProviderArgs,\n CmsSystemStorageOperations\n > {\n /**\n * A plugin type.\n */\n type: \"cms-system-storage-operations-provider\";\n}\n\nexport interface CmsSystem {\n version?: string;\n readAPIKey?: string;\n}\n\nexport interface CmsSystemStorageOperations {\n /**\n * Get the system data.\n */\n get: () => Promise<CmsSystem | null>;\n /**\n * Create the system info in the storage.\n */\n create: (data: CmsSystem) => Promise<void>;\n /**\n * Update the system info in the storage.\n */\n update: (data: CmsSystem) => Promise<void>;\n}\n"],"file":"types.js"}
|