@webiny/api-headless-cms 0.0.0-unstable.9e825fd5fb → 0.0.0-unstable.a9593f74dd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants.d.ts +32 -0
- package/constants.js +57 -0
- package/constants.js.map +1 -0
- package/context.js +77 -39
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +3 -1
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.js +3 -1
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.js +3 -1
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
- package/crud/contentEntry/entryDataFactories/index.js +95 -0
- package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
- package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
- package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +4 -2
- package/crud/contentEntry/entryDataValidation.js +223 -45
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +17 -10
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
- package/crud/contentEntry/referenceFieldsMapping.js +142 -90
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +5 -4
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +5 -4
- package/crud/contentEntry.crud.js +558 -528
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +1 -1
- package/crud/contentModel/beforeCreate.js +11 -9
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.d.ts +1 -1
- package/crud/contentModel/beforeDelete.js +4 -6
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +1 -1
- package/crud/contentModel/beforeUpdate.js +3 -6
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/compatibility/modelApiName.js +3 -1
- package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
- package/crud/contentModel/contentModelManagerFactory.js +3 -1
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +3 -1
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/defaultFields.js +3 -1
- package/crud/contentModel/defaultFields.js.map +1 -1
- package/crud/contentModel/ensureTypeTag.d.ts +5 -0
- package/crud/contentModel/ensureTypeTag.js +21 -0
- package/crud/contentModel/ensureTypeTag.js.map +1 -0
- package/crud/contentModel/fields/descriptionField.js +4 -2
- package/crud/contentModel/fields/descriptionField.js.map +1 -1
- package/crud/contentModel/fields/imageField.js +6 -8
- package/crud/contentModel/fields/imageField.js.map +1 -1
- package/crud/contentModel/fields/titleField.js +4 -2
- package/crud/contentModel/fields/titleField.js.map +1 -1
- package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
- package/crud/contentModel/listModelsFromDatabase.js +38 -0
- package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
- package/crud/contentModel/validate/endingAllowed.js +3 -1
- package/crud/contentModel/validate/endingAllowed.js.map +1 -1
- package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
- package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
- package/crud/contentModel/validate/modelId.js +3 -1
- package/crud/contentModel/validate/modelId.js.map +1 -1
- package/crud/contentModel/validate/pluralApiName.js +3 -1
- package/crud/contentModel/validate/pluralApiName.js.map +1 -1
- package/crud/contentModel/validate/singularApiName.js +3 -1
- package/crud/contentModel/validate/singularApiName.js.map +1 -1
- package/crud/contentModel/validateModel.js +3 -1
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.js +8 -7
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +586 -233
- package/crud/contentModel/validation.js +73 -13
- package/crud/contentModel/validation.js.map +1 -1
- package/crud/contentModel.crud.d.ts +2 -0
- package/crud/contentModel.crud.js +146 -181
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
- package/crud/contentModelGroup/beforeCreate.js +15 -1
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +3 -1
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.js +3 -1
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
- package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
- package/crud/contentModelGroup/validation.d.ts +10 -7
- package/crud/contentModelGroup/validation.js +5 -2
- package/crud/contentModelGroup/validation.js.map +1 -1
- package/crud/contentModelGroup.crud.d.ts +3 -1
- package/crud/contentModelGroup.crud.js +139 -123
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/system.crud.js +8 -11
- package/crud/system.crud.js.map +1 -1
- package/export/crud/exporting.d.ts +3 -0
- package/export/crud/exporting.js +49 -0
- package/export/crud/exporting.js.map +1 -0
- package/export/crud/importing.d.ts +3 -0
- package/export/crud/importing.js +79 -0
- package/export/crud/importing.js.map +1 -0
- package/export/crud/imports/importData.d.ts +14 -0
- package/export/crud/imports/importData.js +52 -0
- package/export/crud/imports/importData.js.map +1 -0
- package/export/crud/imports/importGroups.d.ts +8 -0
- package/export/crud/imports/importGroups.js +104 -0
- package/export/crud/imports/importGroups.js.map +1 -0
- package/export/crud/imports/importModels.d.ts +8 -0
- package/export/crud/imports/importModels.js +136 -0
- package/export/crud/imports/importModels.js.map +1 -0
- package/export/crud/imports/validateGroups.d.ts +8 -0
- package/export/crud/imports/validateGroups.js +112 -0
- package/export/crud/imports/validateGroups.js.map +1 -0
- package/export/crud/imports/validateInput.d.ts +19 -0
- package/export/crud/imports/validateInput.js +55 -0
- package/export/crud/imports/validateInput.js.map +1 -0
- package/export/crud/imports/validateModels.d.ts +12 -0
- package/export/crud/imports/validateModels.js +203 -0
- package/export/crud/imports/validateModels.js.map +1 -0
- package/export/crud/index.d.ts +4 -0
- package/export/crud/index.js +15 -0
- package/export/crud/index.js.map +1 -0
- package/export/crud/sanitize.d.ts +4 -0
- package/export/crud/sanitize.js +35 -0
- package/export/crud/sanitize.js.map +1 -0
- package/export/graphql/index.d.ts +3 -0
- package/export/graphql/index.js +188 -0
- package/export/graphql/index.js.map +1 -0
- package/export/index.d.ts +2 -0
- package/export/index.js +29 -0
- package/export/index.js.map +1 -0
- package/export/types.d.ts +113 -0
- package/export/types.js +22 -0
- package/export/types.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.js +3 -1
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.js +7 -1
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/checkEndpointAccess.d.ts +2 -0
- package/graphql/checkEndpointAccess.js +20 -0
- package/graphql/checkEndpointAccess.js.map +1 -0
- package/graphql/createExecutableSchema.js +3 -1
- package/graphql/createExecutableSchema.js.map +1 -1
- package/graphql/createRequestBody.d.ts +2 -0
- package/graphql/createRequestBody.js +16 -0
- package/graphql/createRequestBody.js.map +1 -0
- package/graphql/formatErrorPayload.d.ts +1 -0
- package/graphql/formatErrorPayload.js +27 -0
- package/graphql/formatErrorPayload.js.map +1 -0
- package/graphql/generateSchema.js +3 -1
- package/graphql/generateSchema.js.map +1 -1
- package/graphql/getSchema.d.ts +16 -0
- package/graphql/getSchema.js +118 -0
- package/graphql/getSchema.js.map +1 -0
- package/graphql/graphQLHandlerFactory.js +8 -191
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/handleRequest.d.ts +11 -0
- package/graphql/handleRequest.js +79 -0
- package/graphql/handleRequest.js.map +1 -0
- package/graphql/index.d.ts +1 -1
- package/graphql/index.js +4 -2
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.js +9 -8
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +2 -3
- package/graphql/schema/baseSchema.js +95 -2
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +54 -16
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +5 -2
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +10 -10
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +18 -22
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
- package/graphql/schema/createFieldTypePluginRecords.js +15 -0
- package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
- package/graphql/schema/createManageResolvers.d.ts +1 -1
- package/graphql/schema/createManageResolvers.js +27 -10
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +83 -42
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +7 -6
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +7 -6
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.js +35 -24
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +16 -4
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +22 -0
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +20 -0
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveList.js +3 -1
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveMove.js +27 -0
- package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
- package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +3 -1
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +6 -5
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +3 -1
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/schemaPlugins.js +5 -12
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.d.ts +2 -5
- package/graphql/system.js +4 -12
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.js +3 -1
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.js +5 -5
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +76 -26
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
- package/graphqlFields/dynamicZone/index.js +3 -1
- package/graphqlFields/dynamicZone/index.js.map +1 -1
- package/graphqlFields/file.js +3 -1
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.d.ts +0 -1
- package/graphqlFields/helpers.js +6 -18
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.js +5 -2
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/json.d.ts +2 -0
- package/graphqlFields/json.js +49 -0
- package/graphqlFields/json.js.map +1 -0
- package/graphqlFields/longText.js +14 -3
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +4 -1
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +26 -46
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +35 -23
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
- package/graphqlFields/richText/richTextResolver.d.ts +7 -0
- package/graphqlFields/richText/richTextResolver.js +39 -0
- package/graphqlFields/richText/richTextResolver.js.map +1 -0
- package/graphqlFields/richText.js +11 -3
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/text.js +5 -1
- package/graphqlFields/text.js.map +1 -1
- package/htmlRenderer/LexicalRenderer.d.ts +5 -0
- package/htmlRenderer/LexicalRenderer.js +28 -0
- package/htmlRenderer/LexicalRenderer.js.map +1 -0
- package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
- package/index.d.ts +3 -2
- package/index.js +33 -14
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +3 -5
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/index.js +3 -1
- package/modelManager/index.js.map +1 -1
- package/package.json +36 -39
- package/parameters/context.js +4 -2
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +7 -6
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +3 -1
- package/parameters/index.js.map +1 -1
- package/parameters/manual.js +9 -4
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +4 -3
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
- package/plugins/CmsGroupPlugin.d.ts +6 -3
- package/plugins/CmsGroupPlugin.js +8 -6
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +5 -4
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +8 -4
- package/plugins/CmsModelPlugin.js +61 -32
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +7 -4
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
- package/plugins/CmsRichTextRendererPlugin.js +28 -0
- package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
- package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
- package/plugins/StorageOperationsCmsModelPlugin.js +41 -0
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
- package/plugins/StorageTransformPlugin.d.ts +2 -2
- package/plugins/StorageTransformPlugin.js +3 -4
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +25 -1
- package/plugins/index.js.map +1 -1
- package/storage/default.js +3 -1
- package/storage/default.js.map +1 -1
- package/storage/index.d.ts +1 -0
- package/storage/index.js +15 -0
- package/storage/index.js.map +1 -0
- package/storage/json.d.ts +2 -0
- package/storage/json.js +27 -0
- package/storage/json.js.map +1 -0
- package/storage/object.js +8 -8
- package/storage/object.js.map +1 -1
- package/types.d.ts +437 -313
- package/types.js +20 -20
- package/types.js.map +1 -1
- package/utils/access.d.ts +9 -8
- package/utils/access.js +12 -62
- package/utils/access.js.map +1 -1
- package/utils/caching/Cache.d.ts +2 -0
- package/utils/caching/Cache.js +51 -0
- package/utils/caching/Cache.js.map +1 -0
- package/utils/caching/CacheKey.d.ts +2 -0
- package/utils/caching/CacheKey.js +40 -0
- package/utils/caching/CacheKey.js.map +1 -0
- package/utils/caching/index.d.ts +2 -0
- package/utils/caching/index.js +29 -0
- package/utils/caching/index.js.map +1 -0
- package/utils/caching/types.d.ts +11 -0
- package/utils/caching/types.js +7 -0
- package/utils/caching/types.js.map +1 -0
- package/utils/converters/Converter.js +4 -5
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +13 -7
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
- package/utils/converters/valueKeyStorageConverter.js +32 -26
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.js +8 -4
- package/utils/createTypeFromFields.js.map +1 -1
- package/utils/createTypeName.d.ts +0 -2
- package/utils/createTypeName.js +3 -9
- package/utils/createTypeName.js.map +1 -1
- package/utils/date.d.ts +10 -0
- package/utils/date.js +36 -0
- package/utils/date.js.map +1 -0
- package/utils/entryStorage.d.ts +4 -4
- package/utils/entryStorage.js +6 -4
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +9 -8
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +1 -3
- package/utils/getBaseFieldType.js +3 -1
- package/utils/getBaseFieldType.js.map +1 -1
- package/utils/getEntryDescription.d.ts +1 -1
- package/utils/getEntryDescription.js +3 -1
- package/utils/getEntryDescription.js.map +1 -1
- package/utils/getEntryImage.d.ts +1 -1
- package/utils/getEntryImage.js +3 -1
- package/utils/getEntryImage.js.map +1 -1
- package/utils/getEntryTitle.d.ts +1 -1
- package/utils/getEntryTitle.js +3 -1
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
- package/utils/getSchemaFromFieldPlugins.js +22 -4
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/identity.d.ts +2 -0
- package/utils/identity.js +20 -0
- package/utils/identity.js.map +1 -0
- package/utils/incrementEntryIdVersion.js +3 -1
- package/utils/incrementEntryIdVersion.js.map +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +18 -0
- package/utils/index.js.map +1 -0
- package/utils/permissions/EntriesPermissions.d.ts +4 -0
- package/utils/permissions/EntriesPermissions.js +11 -0
- package/utils/permissions/EntriesPermissions.js.map +1 -0
- package/utils/permissions/ModelGroupsPermissions.d.ts +9 -0
- package/utils/permissions/ModelGroupsPermissions.js +50 -0
- package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
- package/utils/permissions/ModelsPermissions.d.ts +22 -0
- package/utils/permissions/ModelsPermissions.js +90 -0
- package/utils/permissions/ModelsPermissions.js.map +1 -0
- package/utils/renderFields.d.ts +2 -1
- package/utils/renderFields.js +5 -2
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.d.ts +2 -2
- package/utils/renderGetFilterFields.js +9 -21
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.d.ts +2 -1
- package/utils/renderInputFields.js +17 -7
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.d.ts +3 -1
- package/utils/renderListFilterFields.js +25 -22
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +3 -2
- package/utils/renderSortEnum.js +10 -3
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +3 -1
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.js +3 -1
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +3 -1
- package/validators/dateLte.js.map +1 -1
- package/validators/gte.js +4 -3
- package/validators/gte.js.map +1 -1
- package/validators/in.js +4 -3
- package/validators/in.js.map +1 -1
- package/validators/index.js +4 -3
- package/validators/index.js.map +1 -1
- package/validators/lte.js +4 -3
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +4 -3
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +4 -3
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +5 -3
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.js +3 -1
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.js +3 -1
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.js +3 -1
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +3 -1
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.js +3 -1
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +3 -1
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.js +3 -1
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.js +3 -1
- package/validators/required.js.map +1 -1
- package/validators/timeGte.js +4 -3
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +4 -3
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.js +4 -2
- package/validators/unique.js.map +1 -1
- package/crud/contentModel/afterCreate.d.ts +0 -8
- package/crud/contentModel/afterCreate.js +0 -16
- package/crud/contentModel/afterCreate.js.map +0 -1
- package/crud/contentModel/afterCreateFrom.d.ts +0 -8
- package/crud/contentModel/afterCreateFrom.js +0 -16
- package/crud/contentModel/afterCreateFrom.js.map +0 -1
- package/crud/contentModel/afterDelete.d.ts +0 -8
- package/crud/contentModel/afterDelete.js +0 -16
- package/crud/contentModel/afterDelete.js.map +0 -1
- package/crud/contentModel/afterUpdate.d.ts +0 -8
- package/crud/contentModel/afterUpdate.js +0 -16
- package/crud/contentModel/afterUpdate.js.map +0 -1
- package/crud/contentModel/createFieldModels.d.ts +0 -2
- package/crud/contentModel/createFieldModels.js +0 -26
- package/crud/contentModel/createFieldModels.js.map +0 -1
- package/crud/contentModel/fieldIdValidation.d.ts +0 -1
- package/crud/contentModel/fieldIdValidation.js +0 -25
- package/crud/contentModel/fieldIdValidation.js.map +0 -1
- package/crud/contentModel/idValidation.d.ts +0 -1
- package/crud/contentModel/idValidation.js +0 -22
- package/crud/contentModel/idValidation.js.map +0 -1
- package/crud/contentModel/models.d.ts +0 -4
- package/crud/contentModel/models.js +0 -192
- package/crud/contentModel/models.js.map +0 -1
- package/crud/contentModel/systemFields.d.ts +0 -1
- package/crud/contentModel/systemFields.js +0 -8
- package/crud/contentModel/systemFields.js.map +0 -1
- package/crud/contentModel/validateLayout.d.ts +0 -2
- package/crud/contentModel/validateLayout.js +0 -28
- package/crud/contentModel/validateLayout.js.map +0 -1
- package/crud/settings.crud.d.ts +0 -10
- package/crud/settings.crud.js +0 -66
- package/crud/settings.crud.js.map +0 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
- package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
- package/upgrades/5.33.0/index.d.ts +0 -3
- package/upgrades/5.33.0/index.js +0 -182
- package/upgrades/5.33.0/index.js.map +0 -1
- package/upgrades/index.d.ts +0 -1
- package/upgrades/index.js +0 -12
- package/upgrades/index.js.map +0 -1
- package/utils/ownership.d.ts +0 -8
- package/utils/ownership.js +0 -33
- package/utils/ownership.js.map +0 -1
- package/utils/permissions.d.ts +0 -7
- package/utils/permissions.js +0 -91
- package/utils/permissions.js.map +0 -1
- package/utils/pluralizedTypeName.d.ts +0 -1
- package/utils/pluralizedTypeName.js +0 -26
- package/utils/pluralizedTypeName.js.map +0 -1
- package/validators/dynamicZone.d.ts +0 -2
- package/validators/dynamicZone.js +0 -20
- package/validators/dynamicZone.js.map +0 -1
|
@@ -5,9 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.createModelsCrud = void 0;
|
|
8
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
9
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
|
-
var _dataloader = _interopRequireDefault(require("dataloader"));
|
|
11
8
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
12
9
|
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
13
10
|
var _contentModelManagerFactory = require("./contentModel/contentModelManagerFactory");
|
|
@@ -15,67 +12,29 @@ var _pubsub = require("@webiny/pubsub");
|
|
|
15
12
|
var _beforeCreate = require("./contentModel/beforeCreate");
|
|
16
13
|
var _beforeUpdate = require("./contentModel/beforeUpdate");
|
|
17
14
|
var _beforeDelete = require("./contentModel/beforeDelete");
|
|
18
|
-
var _afterCreate = require("./contentModel/afterCreate");
|
|
19
|
-
var _afterUpdate = require("./contentModel/afterUpdate");
|
|
20
|
-
var _afterDelete = require("./contentModel/afterDelete");
|
|
21
|
-
var _afterCreateFrom = require("./contentModel/afterCreateFrom");
|
|
22
15
|
var _CmsModelPlugin = require("../plugins/CmsModelPlugin");
|
|
23
|
-
var _permissions = require("../utils/permissions");
|
|
24
|
-
var _filterAsync = require("../utils/filterAsync");
|
|
25
|
-
var _ownership = require("../utils/ownership");
|
|
26
|
-
var _access = require("../utils/access");
|
|
27
16
|
var _validation = require("./contentModel/validation");
|
|
28
17
|
var _utils = require("@webiny/utils");
|
|
29
18
|
var _defaultFields = require("./contentModel/defaultFields");
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
*/
|
|
35
|
-
const ensureTypeTag = model => {
|
|
36
|
-
// Let's make sure we have a `type` tag assigned.
|
|
37
|
-
// If `type` tag is not set, set it to a default one (`model`).
|
|
38
|
-
const tags = model.tags || [];
|
|
39
|
-
if (!tags.some(tag => tag.startsWith("type:"))) {
|
|
40
|
-
tags.push("type:model");
|
|
41
|
-
}
|
|
42
|
-
return tags;
|
|
43
|
-
};
|
|
19
|
+
var _utils2 = require("../utils");
|
|
20
|
+
var _ensureTypeTag = require("./contentModel/ensureTypeTag");
|
|
21
|
+
var _listModelsFromDatabase = require("./contentModel/listModelsFromDatabase");
|
|
22
|
+
var _filterAsync = require("../utils/filterAsync");
|
|
44
23
|
const createModelsCrud = params => {
|
|
45
24
|
const {
|
|
46
25
|
getTenant,
|
|
47
26
|
getIdentity,
|
|
48
27
|
getLocale,
|
|
49
28
|
storageOperations,
|
|
29
|
+
modelsPermissions,
|
|
50
30
|
context
|
|
51
31
|
} = params;
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
where: {
|
|
56
|
-
tenant: getTenant().id,
|
|
57
|
-
locale: getLocale().code
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
return [models.map(model => {
|
|
61
|
-
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
|
|
62
|
-
tags: ensureTypeTag(model),
|
|
63
|
-
tenant: model.tenant || getTenant().id,
|
|
64
|
-
locale: model.locale || getLocale().code,
|
|
65
|
-
/**
|
|
66
|
-
* TODO: remove in v5.36.0
|
|
67
|
-
* This is for backward compatibility while migrations are not yet executed.
|
|
68
|
-
*/
|
|
69
|
-
singularApiName: (0, _modelApiName.ensureSingularApiName)(model),
|
|
70
|
-
pluralApiName: (0, _modelApiName.ensurePluralApiName)(model)
|
|
71
|
-
});
|
|
72
|
-
})];
|
|
73
|
-
})
|
|
74
|
-
};
|
|
32
|
+
const listPluginModelsCache = (0, _utils2.createMemoryCache)();
|
|
33
|
+
const listFilteredModelsCache = (0, _utils2.createMemoryCache)();
|
|
34
|
+
const listDatabaseModelsCache = (0, _utils2.createMemoryCache)();
|
|
75
35
|
const clearModelsCache = () => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
36
|
+
listDatabaseModelsCache.clear();
|
|
37
|
+
listFilteredModelsCache.clear();
|
|
79
38
|
};
|
|
80
39
|
const managers = new Map();
|
|
81
40
|
const updateManager = async (context, model) => {
|
|
@@ -83,93 +42,135 @@ const createModelsCrud = params => {
|
|
|
83
42
|
managers.set(model.modelId, manager);
|
|
84
43
|
return manager;
|
|
85
44
|
};
|
|
86
|
-
const checkModelPermissions =
|
|
87
|
-
return
|
|
88
|
-
rwd
|
|
45
|
+
const checkModelPermissions = async rwd => {
|
|
46
|
+
return modelsPermissions.ensure({
|
|
47
|
+
rwd
|
|
89
48
|
});
|
|
90
49
|
};
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
* We need to filter out models that are not for this tenant or locale.
|
|
97
|
-
* If it does not have tenant or locale define, it is for every locale and tenant
|
|
98
|
-
*/.filter(plugin => {
|
|
99
|
-
const {
|
|
100
|
-
tenant: modelTenant,
|
|
101
|
-
locale: modelLocale
|
|
102
|
-
} = plugin.contentModel;
|
|
103
|
-
if (modelTenant && modelTenant !== tenant) {
|
|
104
|
-
return false;
|
|
105
|
-
} else if (modelLocale && modelLocale !== locale) {
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
return true;
|
|
109
|
-
}).map(plugin => {
|
|
110
|
-
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, plugin.contentModel), {}, {
|
|
111
|
-
tags: ensureTypeTag(plugin.contentModel),
|
|
112
|
-
tenant,
|
|
113
|
-
locale,
|
|
114
|
-
webinyVersion: context.WEBINY_VERSION
|
|
115
|
-
});
|
|
50
|
+
const filterModel = async model => {
|
|
51
|
+
const ownsModel = await modelsPermissions.ensure({
|
|
52
|
+
owns: model.createdBy
|
|
53
|
+
}, {
|
|
54
|
+
throw: false
|
|
116
55
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const pluginModel = getModelsAsPlugins().find(model => model.modelId === modelId);
|
|
120
|
-
if (pluginModel) {
|
|
121
|
-
return pluginModel;
|
|
56
|
+
if (!ownsModel) {
|
|
57
|
+
return false;
|
|
122
58
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
locale: getLocale().code,
|
|
126
|
-
modelId
|
|
59
|
+
return modelsPermissions.canAccessModel({
|
|
60
|
+
model
|
|
127
61
|
});
|
|
62
|
+
};
|
|
63
|
+
const listPluginModels = async (tenant, locale) => {
|
|
64
|
+
const modelPlugins = context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type);
|
|
65
|
+
const cacheKey = (0, _utils2.createCacheKey)({
|
|
66
|
+
tenant,
|
|
67
|
+
locale,
|
|
68
|
+
models: modelPlugins.map(({
|
|
69
|
+
contentModel: model
|
|
70
|
+
}) => {
|
|
71
|
+
return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${model.savedOn || "unknown"}`;
|
|
72
|
+
}).join("/"),
|
|
73
|
+
identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined
|
|
74
|
+
});
|
|
75
|
+
return listPluginModelsCache.getOrSet(cacheKey, async () => {
|
|
76
|
+
const models = modelPlugins
|
|
77
|
+
/**
|
|
78
|
+
* We need to filter out models that are not for this tenant or locale.
|
|
79
|
+
* If it does not have tenant or locale define, it is for every locale and tenant
|
|
80
|
+
*/.filter(plugin => {
|
|
81
|
+
const {
|
|
82
|
+
tenant: modelTenant,
|
|
83
|
+
locale: modelLocale
|
|
84
|
+
} = plugin.contentModel;
|
|
85
|
+
if (modelTenant && modelTenant !== tenant) {
|
|
86
|
+
return false;
|
|
87
|
+
} else if (modelLocale && modelLocale !== locale) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
return true;
|
|
91
|
+
}).map(plugin => {
|
|
92
|
+
return {
|
|
93
|
+
...plugin.contentModel,
|
|
94
|
+
tags: (0, _ensureTypeTag.ensureTypeTag)(plugin.contentModel),
|
|
95
|
+
tenant,
|
|
96
|
+
locale,
|
|
97
|
+
webinyVersion: context.WEBINY_VERSION
|
|
98
|
+
};
|
|
99
|
+
});
|
|
100
|
+
return (0, _filterAsync.filterAsync)(models, filterModel);
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
const getModelFromCache = async modelId => {
|
|
104
|
+
const models = await listModels();
|
|
105
|
+
const model = models.find(m => m.modelId === modelId);
|
|
128
106
|
if (!model) {
|
|
129
107
|
throw new _handlerGraphql.NotFoundError(`Content model "${modelId}" was not found!`);
|
|
130
108
|
}
|
|
131
|
-
return
|
|
132
|
-
|
|
109
|
+
return {
|
|
110
|
+
...model,
|
|
111
|
+
tags: (0, _ensureTypeTag.ensureTypeTag)(model),
|
|
133
112
|
tenant: model.tenant || getTenant().id,
|
|
134
113
|
locale: model.locale || getLocale().code
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
const modelsList = async () => {
|
|
138
|
-
const databaseModels = await loaders.listModels.load("listModels");
|
|
139
|
-
const pluginsModels = getModelsAsPlugins();
|
|
140
|
-
return databaseModels.concat(pluginsModels);
|
|
114
|
+
};
|
|
141
115
|
};
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.
|
|
119
|
+
*
|
|
120
|
+
* We always fetch the plugins and database models separately.
|
|
121
|
+
* Then we combine them and run access filtering on them
|
|
122
|
+
*/
|
|
142
123
|
const listModels = async () => {
|
|
143
124
|
return context.benchmark.measure("headlessCms.crud.models.listModels", async () => {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
125
|
+
/**
|
|
126
|
+
* Maybe we can cache based on permissions, not the identity id?
|
|
127
|
+
*
|
|
128
|
+
* TODO: @adrian please check if possible.
|
|
129
|
+
*/
|
|
130
|
+
const tenant = getTenant().id;
|
|
131
|
+
const locale = getLocale().code;
|
|
132
|
+
const pluginModels = await listPluginModels(tenant, locale);
|
|
133
|
+
const dbCacheKey = (0, _utils2.createCacheKey)({
|
|
134
|
+
tenant,
|
|
135
|
+
locale
|
|
136
|
+
});
|
|
137
|
+
const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {
|
|
138
|
+
return await (0, _listModelsFromDatabase.listModelsFromDatabase)(params);
|
|
139
|
+
});
|
|
140
|
+
const filteredCacheKey = (0, _utils2.createCacheKey)({
|
|
141
|
+
dbCacheKey: dbCacheKey.get(),
|
|
142
|
+
identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined
|
|
143
|
+
});
|
|
144
|
+
const filteredModels = await listFilteredModelsCache.getOrSet(filteredCacheKey, async () => {
|
|
145
|
+
return (0, _filterAsync.filterAsync)(databaseModels, filterModel);
|
|
151
146
|
});
|
|
147
|
+
return filteredModels.concat(pluginModels);
|
|
152
148
|
});
|
|
153
149
|
};
|
|
154
150
|
const getModel = async modelId => {
|
|
155
151
|
return context.benchmark.measure("headlessCms.crud.models.getModel", async () => {
|
|
156
|
-
|
|
157
|
-
const model = await
|
|
158
|
-
|
|
159
|
-
|
|
152
|
+
await checkModelPermissions("r");
|
|
153
|
+
const model = await context.security.withoutAuthorization(async () => {
|
|
154
|
+
return await getModelFromCache(modelId);
|
|
155
|
+
});
|
|
156
|
+
if (!model) {
|
|
157
|
+
throw new _handlerGraphql.NotFoundError(`Content model "${modelId}" was not found!`);
|
|
158
|
+
}
|
|
159
|
+
await modelsPermissions.ensure({
|
|
160
|
+
owns: model.createdBy
|
|
161
|
+
});
|
|
162
|
+
await modelsPermissions.ensureCanAccessModel({
|
|
163
|
+
model
|
|
164
|
+
});
|
|
160
165
|
return model;
|
|
161
166
|
});
|
|
162
167
|
};
|
|
163
|
-
const
|
|
168
|
+
const getEntryManager = async target => {
|
|
164
169
|
const modelId = typeof target === "string" ? target : target.modelId;
|
|
165
170
|
if (managers.has(modelId)) {
|
|
166
171
|
return managers.get(modelId);
|
|
167
172
|
}
|
|
168
|
-
const
|
|
169
|
-
const model = models.find(m => m.modelId === modelId);
|
|
170
|
-
if (!model) {
|
|
171
|
-
throw new _handlerGraphql.NotFoundError(`There is no content model "${modelId}".`);
|
|
172
|
-
}
|
|
173
|
+
const model = await getModelFromCache(modelId);
|
|
173
174
|
return await updateManager(context, model);
|
|
174
175
|
};
|
|
175
176
|
|
|
@@ -210,31 +211,15 @@ const createModelsCrud = params => {
|
|
|
210
211
|
context,
|
|
211
212
|
storageOperations
|
|
212
213
|
});
|
|
213
|
-
(0, _afterCreate.assignModelAfterCreate)({
|
|
214
|
-
context,
|
|
215
|
-
onModelAfterCreate
|
|
216
|
-
});
|
|
217
214
|
(0, _beforeUpdate.assignModelBeforeUpdate)({
|
|
218
215
|
onModelBeforeUpdate,
|
|
219
216
|
context
|
|
220
217
|
});
|
|
221
|
-
(0, _afterUpdate.assignModelAfterUpdate)({
|
|
222
|
-
context,
|
|
223
|
-
onModelAfterUpdate
|
|
224
|
-
});
|
|
225
|
-
(0, _afterCreateFrom.assignModelAfterCreateFrom)({
|
|
226
|
-
context,
|
|
227
|
-
onModelAfterCreateFrom
|
|
228
|
-
});
|
|
229
218
|
(0, _beforeDelete.assignModelBeforeDelete)({
|
|
230
219
|
onModelBeforeDelete,
|
|
231
220
|
plugins: context.plugins,
|
|
232
221
|
storageOperations
|
|
233
222
|
});
|
|
234
|
-
(0, _afterDelete.assignModelAfterDelete)({
|
|
235
|
-
context,
|
|
236
|
-
onModelAfterDelete
|
|
237
|
-
});
|
|
238
223
|
|
|
239
224
|
/**
|
|
240
225
|
* CRUD methods
|
|
@@ -248,22 +233,17 @@ const createModelsCrud = params => {
|
|
|
248
233
|
/**
|
|
249
234
|
* We need to extract the defaultFields because it is not for the CmsModel object.
|
|
250
235
|
*/
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
data = (0, _objectWithoutProperties2.default)(_removeUndefinedValue, _excluded);
|
|
236
|
+
const {
|
|
237
|
+
defaultFields,
|
|
238
|
+
...data
|
|
239
|
+
} = (0, _utils.removeUndefinedValues)(result.data);
|
|
256
240
|
if (defaultFields) {
|
|
257
241
|
(0, _defaultFields.assignModelDefaultFields)(data);
|
|
258
242
|
}
|
|
259
|
-
const group = await context.
|
|
260
|
-
return context.cms.getGroup(data.group);
|
|
261
|
-
});
|
|
262
|
-
if (!group) {
|
|
263
|
-
throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
|
|
264
|
-
}
|
|
243
|
+
const group = await context.cms.getGroup(data.group);
|
|
265
244
|
const identity = getIdentity();
|
|
266
|
-
const model =
|
|
245
|
+
const model = {
|
|
246
|
+
...data,
|
|
267
247
|
modelId: data.modelId || "",
|
|
268
248
|
singularApiName: data.singularApiName,
|
|
269
249
|
pluralApiName: data.pluralApiName,
|
|
@@ -286,8 +266,8 @@ const createModelsCrud = params => {
|
|
|
286
266
|
savedOn: new Date().toISOString(),
|
|
287
267
|
lockedFields: [],
|
|
288
268
|
webinyVersion: context.WEBINY_VERSION
|
|
289
|
-
}
|
|
290
|
-
model.tags = ensureTypeTag(model);
|
|
269
|
+
};
|
|
270
|
+
model.tags = (0, _ensureTypeTag.ensureTypeTag)(model);
|
|
291
271
|
try {
|
|
292
272
|
await onModelBeforeCreate.publish({
|
|
293
273
|
input: data,
|
|
@@ -296,7 +276,7 @@ const createModelsCrud = params => {
|
|
|
296
276
|
const createdModel = await storageOperations.models.create({
|
|
297
277
|
model
|
|
298
278
|
});
|
|
299
|
-
|
|
279
|
+
clearModelsCache();
|
|
300
280
|
await updateManager(context, model);
|
|
301
281
|
await onModelAfterCreate.publish({
|
|
302
282
|
input: data,
|
|
@@ -334,18 +314,15 @@ const createModelsCrud = params => {
|
|
|
334
314
|
};
|
|
335
315
|
const groupId = data.group;
|
|
336
316
|
if (groupId) {
|
|
337
|
-
const groupData = await context.
|
|
338
|
-
return context.cms.getGroup(groupId);
|
|
339
|
-
});
|
|
340
|
-
if (!groupData) {
|
|
341
|
-
throw new _handlerGraphql.NotFoundError(`There is no group "${groupId}".`);
|
|
342
|
-
}
|
|
317
|
+
const groupData = await context.cms.getGroup(groupId);
|
|
343
318
|
group = {
|
|
344
319
|
id: groupData.id,
|
|
345
320
|
name: groupData.name
|
|
346
321
|
};
|
|
347
322
|
}
|
|
348
|
-
const model =
|
|
323
|
+
const model = {
|
|
324
|
+
...original,
|
|
325
|
+
...data,
|
|
349
326
|
titleFieldId: data.titleFieldId === undefined ? original.titleFieldId : data.titleFieldId,
|
|
350
327
|
descriptionFieldId: data.descriptionFieldId === undefined ? original.descriptionFieldId : data.descriptionFieldId,
|
|
351
328
|
imageFieldId: data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,
|
|
@@ -355,8 +332,8 @@ const createModelsCrud = params => {
|
|
|
355
332
|
locale: original.locale || getLocale().code,
|
|
356
333
|
webinyVersion: context.WEBINY_VERSION,
|
|
357
334
|
savedOn: new Date().toISOString()
|
|
358
|
-
}
|
|
359
|
-
model.tags = ensureTypeTag(model);
|
|
335
|
+
};
|
|
336
|
+
model.tags = (0, _ensureTypeTag.ensureTypeTag)(model);
|
|
360
337
|
try {
|
|
361
338
|
await onModelBeforeUpdate.publish({
|
|
362
339
|
input: data,
|
|
@@ -388,11 +365,12 @@ const createModelsCrud = params => {
|
|
|
388
365
|
model: initialModel,
|
|
389
366
|
original
|
|
390
367
|
} = params;
|
|
391
|
-
const model =
|
|
368
|
+
const model = {
|
|
369
|
+
...initialModel,
|
|
392
370
|
tenant: initialModel.tenant || getTenant().id,
|
|
393
371
|
locale: initialModel.locale || getLocale().code,
|
|
394
372
|
webinyVersion: context.WEBINY_VERSION
|
|
395
|
-
}
|
|
373
|
+
};
|
|
396
374
|
try {
|
|
397
375
|
await onModelBeforeUpdate.publish({
|
|
398
376
|
input: {},
|
|
@@ -403,7 +381,7 @@ const createModelsCrud = params => {
|
|
|
403
381
|
model
|
|
404
382
|
});
|
|
405
383
|
await updateManager(context, resultModel);
|
|
406
|
-
|
|
384
|
+
clearModelsCache();
|
|
407
385
|
await onModelAfterUpdate.publish({
|
|
408
386
|
input: {},
|
|
409
387
|
original,
|
|
@@ -426,9 +404,10 @@ const createModelsCrud = params => {
|
|
|
426
404
|
* Get a model record; this will also perform ownership validation.
|
|
427
405
|
*/
|
|
428
406
|
const original = await getModel(modelId);
|
|
429
|
-
const result = await (0, _validation.createModelCreateFromValidation)().safeParseAsync(
|
|
407
|
+
const result = await (0, _validation.createModelCreateFromValidation)().safeParseAsync({
|
|
408
|
+
...input,
|
|
430
409
|
description: input.description || original.description
|
|
431
|
-
})
|
|
410
|
+
});
|
|
432
411
|
if (!result.success) {
|
|
433
412
|
throw (0, _utils.createZodError)(result.error);
|
|
434
413
|
}
|
|
@@ -449,7 +428,8 @@ const createModelsCrud = params => {
|
|
|
449
428
|
throw new _handlerGraphql.NotFoundError(`There is no group "${data.group}".`);
|
|
450
429
|
}
|
|
451
430
|
const identity = getIdentity();
|
|
452
|
-
const model =
|
|
431
|
+
const model = {
|
|
432
|
+
...original,
|
|
453
433
|
singularApiName: data.singularApiName,
|
|
454
434
|
pluralApiName: data.pluralApiName,
|
|
455
435
|
locale: locale.code,
|
|
@@ -470,7 +450,7 @@ const createModelsCrud = params => {
|
|
|
470
450
|
savedOn: new Date().toISOString(),
|
|
471
451
|
lockedFields: [],
|
|
472
452
|
webinyVersion: context.WEBINY_VERSION
|
|
473
|
-
}
|
|
453
|
+
};
|
|
474
454
|
try {
|
|
475
455
|
await onModelBeforeCreateFrom.publish({
|
|
476
456
|
input: data,
|
|
@@ -480,7 +460,7 @@ const createModelsCrud = params => {
|
|
|
480
460
|
const createdModel = await storageOperations.models.create({
|
|
481
461
|
model
|
|
482
462
|
});
|
|
483
|
-
|
|
463
|
+
clearModelsCache();
|
|
484
464
|
await updateManager(context, model);
|
|
485
465
|
await onModelAfterCreateFrom.publish({
|
|
486
466
|
input: data,
|
|
@@ -515,6 +495,7 @@ const createModelsCrud = params => {
|
|
|
515
495
|
modelId: model.modelId
|
|
516
496
|
});
|
|
517
497
|
}
|
|
498
|
+
clearModelsCache();
|
|
518
499
|
await onModelAfterDelete.publish({
|
|
519
500
|
model
|
|
520
501
|
});
|
|
@@ -541,20 +522,6 @@ const createModelsCrud = params => {
|
|
|
541
522
|
return true;
|
|
542
523
|
};
|
|
543
524
|
return {
|
|
544
|
-
/**
|
|
545
|
-
* Deprecated - will be removed in 5.36.0
|
|
546
|
-
*/
|
|
547
|
-
onBeforeModelCreate: onModelBeforeCreate,
|
|
548
|
-
onAfterModelCreate: onModelAfterCreate,
|
|
549
|
-
onBeforeModelCreateFrom: onModelBeforeCreateFrom,
|
|
550
|
-
onAfterModelCreateFrom: onModelAfterCreateFrom,
|
|
551
|
-
onBeforeModelUpdate: onModelBeforeUpdate,
|
|
552
|
-
onAfterModelUpdate: onModelAfterUpdate,
|
|
553
|
-
onBeforeModelDelete: onModelBeforeDelete,
|
|
554
|
-
onAfterModelDelete: onModelAfterDelete,
|
|
555
|
-
/**
|
|
556
|
-
* Released in 5.34.0
|
|
557
|
-
*/
|
|
558
525
|
onModelBeforeCreate,
|
|
559
526
|
onModelAfterCreate,
|
|
560
527
|
onModelCreateError,
|
|
@@ -605,12 +572,10 @@ const createModelsCrud = params => {
|
|
|
605
572
|
return initializeModel(modelId, data);
|
|
606
573
|
});
|
|
607
574
|
},
|
|
608
|
-
|
|
609
|
-
getEntryManager: async model => {
|
|
610
|
-
return getModelManager(model);
|
|
611
|
-
},
|
|
612
|
-
getManagers: () => managers,
|
|
575
|
+
getEntryManager,
|
|
613
576
|
getEntryManagers: () => managers
|
|
614
577
|
};
|
|
615
578
|
};
|
|
616
|
-
exports.createModelsCrud = createModelsCrud;
|
|
579
|
+
exports.createModelsCrud = createModelsCrud;
|
|
580
|
+
|
|
581
|
+
//# sourceMappingURL=contentModel.crud.js.map
|