@webiny/api-headless-cms 0.0.0-ee-vpcs.549378cf03
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/context.d.ts +3 -0
- package/context.js +60 -0
- package/context.js.map +1 -0
- package/crud/contentEntry/afterDelete.d.ts +8 -0
- package/crud/contentEntry/afterDelete.js +41 -0
- package/crud/contentEntry/afterDelete.js.map +1 -0
- package/crud/contentEntry/beforeCreate.d.ts +8 -0
- package/crud/contentEntry/beforeCreate.js +28 -0
- package/crud/contentEntry/beforeCreate.js.map +1 -0
- package/crud/contentEntry/beforeUpdate.d.ts +8 -0
- package/crud/contentEntry/beforeUpdate.js +28 -0
- package/crud/contentEntry/beforeUpdate.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.d.ts +10 -0
- package/crud/contentEntry/entryDataValidation.js +200 -0
- package/crud/contentEntry/entryDataValidation.js.map +1 -0
- package/crud/contentEntry/markLockedFields.d.ts +13 -0
- package/crud/contentEntry/markLockedFields.js +116 -0
- package/crud/contentEntry/markLockedFields.js.map +1 -0
- package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
- package/crud/contentEntry/referenceFieldsMapping.js +292 -0
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +83 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.d.ts +13 -0
- package/crud/contentEntry.crud.js +1277 -0
- package/crud/contentEntry.crud.js.map +1 -0
- package/crud/contentModel/afterCreate.d.ts +8 -0
- package/crud/contentModel/afterCreate.js +18 -0
- package/crud/contentModel/afterCreate.js.map +1 -0
- package/crud/contentModel/afterCreateFrom.d.ts +8 -0
- package/crud/contentModel/afterCreateFrom.js +18 -0
- package/crud/contentModel/afterCreateFrom.js.map +1 -0
- package/crud/contentModel/afterDelete.d.ts +8 -0
- package/crud/contentModel/afterDelete.js +18 -0
- package/crud/contentModel/afterDelete.js.map +1 -0
- package/crud/contentModel/afterUpdate.d.ts +8 -0
- package/crud/contentModel/afterUpdate.js +18 -0
- package/crud/contentModel/afterUpdate.js.map +1 -0
- package/crud/contentModel/beforeCreate.d.ts +15 -0
- package/crud/contentModel/beforeCreate.js +194 -0
- package/crud/contentModel/beforeCreate.js.map +1 -0
- package/crud/contentModel/beforeDelete.d.ts +10 -0
- package/crud/contentModel/beforeDelete.js +60 -0
- package/crud/contentModel/beforeDelete.js.map +1 -0
- package/crud/contentModel/beforeUpdate.d.ts +10 -0
- package/crud/contentModel/beforeUpdate.js +37 -0
- package/crud/contentModel/beforeUpdate.js.map +1 -0
- package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
- package/crud/contentModel/contentModelManagerFactory.js +29 -0
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
- package/crud/contentModel/createFieldModels.d.ts +2 -0
- package/crud/contentModel/createFieldModels.js +26 -0
- package/crud/contentModel/createFieldModels.js.map +1 -0
- package/crud/contentModel/createFieldStorageId.d.ts +2 -0
- package/crud/contentModel/createFieldStorageId.js +20 -0
- package/crud/contentModel/createFieldStorageId.js.map +1 -0
- package/crud/contentModel/fieldIdValidation.d.ts +1 -0
- package/crud/contentModel/fieldIdValidation.js +25 -0
- package/crud/contentModel/fieldIdValidation.js.map +1 -0
- package/crud/contentModel/idValidation.d.ts +1 -0
- package/crud/contentModel/idValidation.js +22 -0
- package/crud/contentModel/idValidation.js.map +1 -0
- package/crud/contentModel/models.d.ts +4 -0
- package/crud/contentModel/models.js +192 -0
- package/crud/contentModel/models.js.map +1 -0
- package/crud/contentModel/systemFields.d.ts +1 -0
- package/crud/contentModel/systemFields.js +8 -0
- package/crud/contentModel/systemFields.js.map +1 -0
- package/crud/contentModel/validateLayout.d.ts +2 -0
- package/crud/contentModel/validateLayout.js +36 -0
- package/crud/contentModel/validateLayout.js.map +1 -0
- package/crud/contentModel/validateModel.d.ts +9 -0
- package/crud/contentModel/validateModel.js +32 -0
- package/crud/contentModel/validateModel.js.map +1 -0
- package/crud/contentModel/validateModelFields.d.ts +9 -0
- package/crud/contentModel/validateModelFields.js +371 -0
- package/crud/contentModel/validateModelFields.js.map +1 -0
- package/crud/contentModel.crud.d.ts +12 -0
- package/crud/contentModel.crud.js +650 -0
- package/crud/contentModel.crud.js.map +1 -0
- package/crud/contentModelGroup/beforeCreate.d.ts +10 -0
- package/crud/contentModelGroup/beforeCreate.js +66 -0
- package/crud/contentModelGroup/beforeCreate.js.map +1 -0
- package/crud/contentModelGroup/beforeDelete.d.ts +10 -0
- package/crud/contentModelGroup/beforeDelete.js +48 -0
- package/crud/contentModelGroup/beforeDelete.js.map +1 -0
- package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
- package/crud/contentModelGroup/beforeUpdate.js +28 -0
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
- package/crud/contentModelGroup.crud.d.ts +12 -0
- package/crud/contentModelGroup.crud.js +396 -0
- package/crud/contentModelGroup.crud.js.map +1 -0
- package/crud/index.d.ts +6 -0
- package/crud/index.js +85 -0
- package/crud/index.js.map +1 -0
- package/crud/settings.crud.d.ts +10 -0
- package/crud/settings.crud.js +83 -0
- package/crud/settings.crud.js.map +1 -0
- package/crud/system.crud.d.ts +13 -0
- package/crud/system.crud.js +221 -0
- package/crud/system.crud.js.map +1 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +304 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +4 -0
- package/fieldConverters/index.js +18 -0
- package/fieldConverters/index.js.map +1 -0
- package/graphql/buildSchemaPlugins.d.ts +6 -0
- package/graphql/buildSchemaPlugins.js +27 -0
- package/graphql/buildSchemaPlugins.js.map +1 -0
- package/graphql/graphQLHandlerFactory.d.ts +5 -0
- package/graphql/graphQLHandlerFactory.js +202 -0
- package/graphql/graphQLHandlerFactory.js.map +1 -0
- package/graphql/index.d.ts +5 -0
- package/graphql/index.js +57 -0
- package/graphql/index.js.map +1 -0
- package/graphql/schema/baseContentSchema.d.ts +3 -0
- package/graphql/schema/baseContentSchema.js +76 -0
- package/graphql/schema/baseContentSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +3 -0
- package/graphql/schema/contentEntries.js +351 -0
- package/graphql/schema/contentEntries.js.map +1 -0
- package/graphql/schema/contentModelGroups.d.ts +3 -0
- package/graphql/schema/contentModelGroups.js +172 -0
- package/graphql/schema/contentModelGroups.js.map +1 -0
- package/graphql/schema/contentModels.d.ts +3 -0
- package/graphql/schema/contentModels.js +300 -0
- package/graphql/schema/contentModels.js.map +1 -0
- package/graphql/schema/createFieldResolvers.d.ts +20 -0
- package/graphql/schema/createFieldResolvers.js +121 -0
- package/graphql/schema/createFieldResolvers.js.map +1 -0
- package/graphql/schema/createManageResolvers.d.ts +12 -0
- package/graphql/schema/createManageResolvers.js +137 -0
- package/graphql/schema/createManageResolvers.js.map +1 -0
- package/graphql/schema/createManageSDL.d.ts +10 -0
- package/graphql/schema/createManageSDL.js +161 -0
- package/graphql/schema/createManageSDL.js.map +1 -0
- package/graphql/schema/createPreviewResolvers.d.ts +12 -0
- package/graphql/schema/createPreviewResolvers.js +58 -0
- package/graphql/schema/createPreviewResolvers.js.map +1 -0
- package/graphql/schema/createReadResolvers.d.ts +12 -0
- package/graphql/schema/createReadResolvers.js +58 -0
- package/graphql/schema/createReadResolvers.js.map +1 -0
- package/graphql/schema/createReadSDL.d.ts +10 -0
- package/graphql/schema/createReadSDL.js +104 -0
- package/graphql/schema/createReadSDL.js.map +1 -0
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js +14 -0
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveCreate.js +21 -0
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +21 -0
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveDelete.js +32 -0
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGet.js +79 -0
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +21 -0
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +21 -0
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/manage/resolveList.js +21 -0
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +21 -0
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.js +21 -0
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
- package/graphql/schema/resolvers/preview/resolveGet.js +34 -0
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/preview/resolveList.js +21 -0
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
- package/graphql/schema/resolvers/read/resolveGet.js +34 -0
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
- package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
- package/graphql/schema/resolvers/read/resolveList.js +21 -0
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
- package/graphql/schema/schemaPlugins.d.ts +3 -0
- package/graphql/schema/schemaPlugins.js +111 -0
- package/graphql/schema/schemaPlugins.js.map +1 -0
- package/graphql/system.d.ts +6 -0
- package/graphql/system.js +119 -0
- package/graphql/system.js.map +1 -0
- package/graphqlFields/boolean.d.ts +2 -0
- package/graphqlFields/boolean.js +69 -0
- package/graphqlFields/boolean.js.map +1 -0
- package/graphqlFields/datetime.d.ts +2 -0
- package/graphqlFields/datetime.js +95 -0
- package/graphqlFields/datetime.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +21 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/file.d.ts +2 -0
- package/graphqlFields/file.js +50 -0
- package/graphqlFields/file.js.map +1 -0
- package/graphqlFields/helpers.d.ts +6 -0
- package/graphqlFields/helpers.js +49 -0
- package/graphqlFields/helpers.js.map +1 -0
- package/graphqlFields/index.d.ts +2 -0
- package/graphqlFields/index.js +30 -0
- package/graphqlFields/index.js.map +1 -0
- package/graphqlFields/longText.d.ts +2 -0
- package/graphqlFields/longText.js +63 -0
- package/graphqlFields/longText.js.map +1 -0
- package/graphqlFields/number.d.ts +2 -0
- package/graphqlFields/number.js +79 -0
- package/graphqlFields/number.js.map +1 -0
- package/graphqlFields/object.d.ts +2 -0
- package/graphqlFields/object.js +275 -0
- package/graphqlFields/object.js.map +1 -0
- package/graphqlFields/ref.d.ts +2 -0
- package/graphqlFields/ref.js +257 -0
- package/graphqlFields/ref.js.map +1 -0
- package/graphqlFields/richText.d.ts +2 -0
- package/graphqlFields/richText.js +56 -0
- package/graphqlFields/richText.js.map +1 -0
- package/graphqlFields/text.d.ts +2 -0
- package/graphqlFields/text.js +73 -0
- package/graphqlFields/text.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +111 -0
- package/index.js.map +1 -0
- package/modelManager/DefaultCmsModelManager.d.ts +14 -0
- package/modelManager/DefaultCmsModelManager.js +64 -0
- package/modelManager/DefaultCmsModelManager.js.map +1 -0
- package/modelManager/index.d.ts +2 -0
- package/modelManager/index.js +20 -0
- package/modelManager/index.js.map +1 -0
- package/package.json +81 -0
- package/parameters/context.d.ts +2 -0
- package/parameters/context.js +22 -0
- package/parameters/context.js.map +1 -0
- package/parameters/header.d.ts +2 -0
- package/parameters/header.js +55 -0
- package/parameters/header.js.map +1 -0
- package/parameters/index.d.ts +4 -0
- package/parameters/index.js +57 -0
- package/parameters/index.js.map +1 -0
- package/parameters/manual.d.ts +6 -0
- package/parameters/manual.js +44 -0
- package/parameters/manual.js.map +1 -0
- package/parameters/path.d.ts +2 -0
- package/parameters/path.js +51 -0
- package/parameters/path.js.map +1 -0
- package/plugins/CmsGroupPlugin.d.ts +13 -0
- package/plugins/CmsGroupPlugin.js +30 -0
- package/plugins/CmsGroupPlugin.js.map +1 -0
- package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
- package/plugins/CmsModelFieldConverterPlugin.js +17 -0
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
- package/plugins/CmsModelPlugin.d.ts +45 -0
- package/plugins/CmsModelPlugin.js +194 -0
- package/plugins/CmsModelPlugin.js.map +1 -0
- package/plugins/CmsParametersPlugin.d.ts +20 -0
- package/plugins/CmsParametersPlugin.js +28 -0
- package/plugins/CmsParametersPlugin.js.map +1 -0
- package/plugins/StorageTransformPlugin.d.ts +31 -0
- package/plugins/StorageTransformPlugin.js +37 -0
- package/plugins/StorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +5 -0
- package/plugins/index.js +70 -0
- package/plugins/index.js.map +1 -0
- package/storage/default.d.ts +2 -0
- package/storage/default.js +27 -0
- package/storage/default.js.map +1 -0
- package/storage/object.d.ts +2 -0
- package/storage/object.js +127 -0
- package/storage/object.js.map +1 -0
- package/types.d.ts +2600 -0
- package/types.js +459 -0
- package/types.js.map +1 -0
- package/upgrades/5.33.0/index.d.ts +3 -0
- package/upgrades/5.33.0/index.js +182 -0
- package/upgrades/5.33.0/index.js.map +1 -0
- package/upgrades/index.d.ts +1 -0
- package/upgrades/index.js +12 -0
- package/upgrades/index.js.map +1 -0
- package/utils/access.d.ts +8 -0
- package/utils/access.js +90 -0
- package/utils/access.js.map +1 -0
- package/utils/converters/Converter.d.ts +27 -0
- package/utils/converters/Converter.js +71 -0
- package/utils/converters/Converter.js.map +1 -0
- package/utils/converters/ConverterCollection.d.ts +31 -0
- package/utils/converters/ConverterCollection.js +143 -0
- package/utils/converters/ConverterCollection.js.map +1 -0
- package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
- package/utils/converters/valueKeyStorageConverter.js +148 -0
- package/utils/converters/valueKeyStorageConverter.js.map +1 -0
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +75 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.d.ts +3 -0
- package/utils/createTypeName.js +30 -0
- package/utils/createTypeName.js.map +1 -0
- package/utils/entryStorage.d.ts +17 -0
- package/utils/entryStorage.js +120 -0
- package/utils/entryStorage.js.map +1 -0
- package/utils/filterAsync.d.ts +1 -0
- package/utils/filterAsync.js +23 -0
- package/utils/filterAsync.js.map +1 -0
- package/utils/filterModelFields.d.ts +16 -0
- package/utils/filterModelFields.js +77 -0
- package/utils/filterModelFields.js.map +1 -0
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +12 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/getEntryTitle.d.ts +2 -0
- package/utils/getEntryTitle.js +43 -0
- package/utils/getEntryTitle.js.map +1 -0
- package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
- package/utils/getSchemaFromFieldPlugins.js +35 -0
- package/utils/getSchemaFromFieldPlugins.js.map +1 -0
- package/utils/ownership.d.ts +8 -0
- package/utils/ownership.js +41 -0
- package/utils/ownership.js.map +1 -0
- package/utils/permissions.d.ts +7 -0
- package/utils/permissions.js +106 -0
- package/utils/permissions.js.map +1 -0
- package/utils/pluralizedTypeName.d.ts +1 -0
- package/utils/pluralizedTypeName.js +26 -0
- package/utils/pluralizedTypeName.js.map +1 -0
- package/utils/renderFields.d.ts +15 -0
- package/utils/renderFields.js +55 -0
- package/utils/renderFields.js.map +1 -0
- package/utils/renderGetFilterFields.d.ts +10 -0
- package/utils/renderGetFilterFields.js +61 -0
- package/utils/renderGetFilterFields.js.map +1 -0
- package/utils/renderInputFields.d.ts +14 -0
- package/utils/renderInputFields.js +55 -0
- package/utils/renderInputFields.js.map +1 -0
- package/utils/renderListFilterFields.d.ts +11 -0
- package/utils/renderListFilterFields.js +62 -0
- package/utils/renderListFilterFields.js.map +1 -0
- package/utils/renderSortEnum.d.ts +9 -0
- package/utils/renderSortEnum.js +34 -0
- package/utils/renderSortEnum.js.map +1 -0
- package/utils/toSlug.d.ts +1 -0
- package/utils/toSlug.js +20 -0
- package/utils/toSlug.js.map +1 -0
- package/validators/dateGte.d.ts +2 -0
- package/validators/dateGte.js +37 -0
- package/validators/dateGte.js.map +1 -0
- package/validators/dateLte.d.ts +2 -0
- package/validators/dateLte.js +37 -0
- package/validators/dateLte.js.map +1 -0
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +24 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/gte.d.ts +2 -0
- package/validators/gte.js +36 -0
- package/validators/gte.js.map +1 -0
- package/validators/in.d.ts +2 -0
- package/validators/in.js +36 -0
- package/validators/in.js.map +1 -0
- package/validators/index.d.ts +1 -0
- package/validators/index.js +38 -0
- package/validators/index.js.map +1 -0
- package/validators/lte.d.ts +2 -0
- package/validators/lte.js +36 -0
- package/validators/lte.js.map +1 -0
- package/validators/maxLength.d.ts +2 -0
- package/validators/maxLength.js +36 -0
- package/validators/maxLength.js.map +1 -0
- package/validators/minLength.d.ts +2 -0
- package/validators/minLength.js +36 -0
- package/validators/minLength.js.map +1 -0
- package/validators/pattern.d.ts +2 -0
- package/validators/pattern.js +50 -0
- package/validators/pattern.js.map +1 -0
- package/validators/patternPlugins/email.d.ts +2 -0
- package/validators/patternPlugins/email.js +20 -0
- package/validators/patternPlugins/email.js.map +1 -0
- package/validators/patternPlugins/index.d.ts +2 -0
- package/validators/patternPlugins/index.js +24 -0
- package/validators/patternPlugins/index.js.map +1 -0
- package/validators/patternPlugins/lowerCase.d.ts +2 -0
- package/validators/patternPlugins/lowerCase.js +20 -0
- package/validators/patternPlugins/lowerCase.js.map +1 -0
- package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/lowerCaseSpace.js +20 -0
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/validators/patternPlugins/upperCase.d.ts +2 -0
- package/validators/patternPlugins/upperCase.js +20 -0
- package/validators/patternPlugins/upperCase.js.map +1 -0
- package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
- package/validators/patternPlugins/upperCaseSpace.js +20 -0
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/validators/patternPlugins/url.d.ts +2 -0
- package/validators/patternPlugins/url.js +20 -0
- package/validators/patternPlugins/url.js.map +1 -0
- package/validators/required.d.ts +2 -0
- package/validators/required.js +27 -0
- package/validators/required.js.map +1 -0
- package/validators/timeGte.d.ts +2 -0
- package/validators/timeGte.js +34 -0
- package/validators/timeGte.js.map +1 -0
- package/validators/timeLte.d.ts +2 -0
- package/validators/timeLte.js +34 -0
- package/validators/timeLte.js.map +1 -0
- package/validators/unique.d.ts +6 -0
- package/validators/unique.js +63 -0
- package/validators/unique.js.map +1 -0
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.CmsModelObjectFieldConverterPlugin = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _CmsModelFieldConverterPlugin = require("../plugins/CmsModelFieldConverterPlugin");
|
|
15
|
+
|
|
16
|
+
class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.CmsModelFieldConverterPlugin {
|
|
17
|
+
constructor(...args) {
|
|
18
|
+
super(...args);
|
|
19
|
+
(0, _defineProperty2.default)(this, "name", "cms.field.converter.object");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getFieldType() {
|
|
23
|
+
return "object";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getChildFields({
|
|
27
|
+
field
|
|
28
|
+
}) {
|
|
29
|
+
var _field$settings;
|
|
30
|
+
|
|
31
|
+
return (field === null || field === void 0 ? void 0 : (_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
convertToStorage(params) {
|
|
35
|
+
const {
|
|
36
|
+
field,
|
|
37
|
+
value,
|
|
38
|
+
converterCollection
|
|
39
|
+
} = params;
|
|
40
|
+
const childFields = this.getChildFields({
|
|
41
|
+
field
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
if (childFields.length === 0) {
|
|
45
|
+
return {};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (field.multipleValues) {
|
|
49
|
+
if (Array.isArray(value) === false) {
|
|
50
|
+
return {
|
|
51
|
+
[field.storageId]: []
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
[field.storageId]: value.map(itemValue => {
|
|
57
|
+
return this.processChildFieldsToStorage({
|
|
58
|
+
fields: childFields.map(child => {
|
|
59
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
60
|
+
parent: field
|
|
61
|
+
});
|
|
62
|
+
}),
|
|
63
|
+
value: itemValue,
|
|
64
|
+
converterCollection
|
|
65
|
+
});
|
|
66
|
+
})
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const values = this.processChildFieldsToStorage({
|
|
71
|
+
fields: childFields.map(child => {
|
|
72
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
73
|
+
parent: field
|
|
74
|
+
});
|
|
75
|
+
}),
|
|
76
|
+
value,
|
|
77
|
+
converterCollection
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
if (values === undefined) {
|
|
81
|
+
return {};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
[field.storageId]: values
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
processChildFieldsToStorage(params) {
|
|
90
|
+
const {
|
|
91
|
+
fields,
|
|
92
|
+
value,
|
|
93
|
+
converterCollection
|
|
94
|
+
} = params;
|
|
95
|
+
|
|
96
|
+
if (value === undefined || value === null) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return fields.reduce((output, field) => {
|
|
101
|
+
const childFields = this.getChildFields({
|
|
102
|
+
field
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
if (childFields.length > 0) {
|
|
106
|
+
if (field.multipleValues) {
|
|
107
|
+
if (Array.isArray(value[field.fieldId]) === false) {
|
|
108
|
+
return output;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const values = value[field.fieldId].map(childValue => {
|
|
112
|
+
return converterCollection.convertToStorage({
|
|
113
|
+
fields: childFields.map(child => {
|
|
114
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
115
|
+
parent: field
|
|
116
|
+
});
|
|
117
|
+
}),
|
|
118
|
+
values: childValue
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
if (values === undefined) {
|
|
123
|
+
return output;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), {}, {
|
|
127
|
+
[field.storageId]: values
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* No need to process child fields if no value is provided.
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
if (!value[field.fieldId]) {
|
|
136
|
+
return output;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const values = converterCollection.convertToStorage({
|
|
140
|
+
fields: childFields.map(child => {
|
|
141
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
142
|
+
parent: field
|
|
143
|
+
});
|
|
144
|
+
}),
|
|
145
|
+
values: value[field.fieldId]
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
if (values === undefined) {
|
|
149
|
+
return output;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), {}, {
|
|
153
|
+
[field.storageId]: values
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (value[field.fieldId] === undefined) {
|
|
158
|
+
return output;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), {}, {
|
|
162
|
+
[field.storageId]: value[field.fieldId]
|
|
163
|
+
});
|
|
164
|
+
}, {});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
convertFromStorage(params) {
|
|
168
|
+
const {
|
|
169
|
+
field,
|
|
170
|
+
value,
|
|
171
|
+
converterCollection
|
|
172
|
+
} = params;
|
|
173
|
+
const childFields = this.getChildFields({
|
|
174
|
+
field
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
if (childFields.length === 0) {
|
|
178
|
+
return {};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (field.multipleValues) {
|
|
182
|
+
if (Array.isArray(value) === false) {
|
|
183
|
+
return {
|
|
184
|
+
[field.fieldId]: []
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return {
|
|
189
|
+
[field.fieldId]: value.map(itemValue => {
|
|
190
|
+
return this.processChildFieldsFromStorage({
|
|
191
|
+
fields: childFields.map(child => {
|
|
192
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
193
|
+
parent: field
|
|
194
|
+
});
|
|
195
|
+
}),
|
|
196
|
+
value: itemValue,
|
|
197
|
+
converterCollection
|
|
198
|
+
});
|
|
199
|
+
})
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const values = this.processChildFieldsFromStorage({
|
|
204
|
+
fields: childFields.map(child => {
|
|
205
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
206
|
+
parent: field
|
|
207
|
+
});
|
|
208
|
+
}),
|
|
209
|
+
value,
|
|
210
|
+
converterCollection
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
if (values === undefined) {
|
|
214
|
+
return {};
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return {
|
|
218
|
+
[field.fieldId]: values
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
processChildFieldsFromStorage(params) {
|
|
223
|
+
const {
|
|
224
|
+
fields,
|
|
225
|
+
value,
|
|
226
|
+
converterCollection
|
|
227
|
+
} = params;
|
|
228
|
+
|
|
229
|
+
if (value === undefined || value === null) {
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return fields.reduce((output, field) => {
|
|
234
|
+
const childFields = this.getChildFields({
|
|
235
|
+
field
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
if (childFields.length > 0) {
|
|
239
|
+
if (field.multipleValues) {
|
|
240
|
+
const inputValues = value[field.storageId];
|
|
241
|
+
|
|
242
|
+
if (!inputValues || Array.isArray(inputValues) === false) {
|
|
243
|
+
return output;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
const values = inputValues.map(childValue => {
|
|
247
|
+
return converterCollection.convertFromStorage({
|
|
248
|
+
fields: childFields.map(child => {
|
|
249
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
250
|
+
parent: field
|
|
251
|
+
});
|
|
252
|
+
}),
|
|
253
|
+
values: childValue
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
if (values === undefined) {
|
|
258
|
+
return output;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), {}, {
|
|
262
|
+
[field.fieldId]: values
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* No need to process child fields if no value is provided.
|
|
267
|
+
*/
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
if (!value[field.storageId]) {
|
|
271
|
+
return output;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const values = converterCollection.convertFromStorage({
|
|
275
|
+
fields: childFields.map(child => {
|
|
276
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
|
|
277
|
+
parent: field
|
|
278
|
+
});
|
|
279
|
+
}),
|
|
280
|
+
values: value[field.storageId]
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
if (values === undefined) {
|
|
284
|
+
return output;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), {}, {
|
|
288
|
+
[field.fieldId]: values
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (value[field.storageId] === undefined) {
|
|
293
|
+
return output;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), {}, {
|
|
297
|
+
[field.fieldId]: value[field.storageId]
|
|
298
|
+
});
|
|
299
|
+
}, {});
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
exports.CmsModelObjectFieldConverterPlugin = CmsModelObjectFieldConverterPlugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CmsModelObjectFieldConverterPlugin","CmsModelFieldConverterPlugin","getFieldType","getChildFields","field","settings","fields","convertToStorage","params","value","converterCollection","childFields","length","multipleValues","Array","isArray","storageId","map","itemValue","processChildFieldsToStorage","child","parent","values","undefined","reduce","output","fieldId","childValue","convertFromStorage","processChildFieldsFromStorage","inputValues"],"sources":["CmsModelObjectFieldConverterPlugin.ts"],"sourcesContent":["import {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface ProcessChildFieldsParams {\n fields: CmsModelFieldWithParent[];\n value?: Record<string, any> | null;\n converterCollection: ConverterCollection;\n}\n\ninterface GetChildFieldsParams {\n field?: CmsModelFieldWithParent | null;\n}\n\nexport class CmsModelObjectFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.object\";\n\n public override getFieldType(): string {\n return \"object\";\n }\n\n private getChildFields({ field }: GetChildFieldsParams): CmsModelFieldWithParent[] {\n return field?.settings?.fields || [];\n }\n\n public override convertToStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.storageId]: []\n };\n }\n return {\n [field.storageId]: value.map((itemValue: any) => {\n return this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.storageId]: values\n };\n }\n\n private processChildFieldsToStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n if (Array.isArray(value[field.fieldId]) === false) {\n return output;\n }\n const values = value[field.fieldId].map((childValue: any) => {\n return converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.fieldId]) {\n return output;\n }\n const values = converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.fieldId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n\n if (value[field.fieldId] === undefined) {\n return output;\n }\n\n return {\n ...output,\n [field.storageId]: value[field.fieldId]\n };\n }, {});\n }\n\n public override convertFromStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.fieldId]: []\n };\n }\n return {\n [field.fieldId]: value.map((itemValue: any) => {\n return this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.fieldId]: values\n };\n }\n\n private processChildFieldsFromStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n const inputValues = value[field.storageId] as any[] | undefined;\n if (!inputValues || Array.isArray(inputValues) === false) {\n return output;\n }\n const values = inputValues.map(childValue => {\n return converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.storageId]) {\n return output;\n }\n const values = converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.storageId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n\n if (value[field.storageId] === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: value[field.storageId]\n };\n }, {});\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CmsModelObjectFieldConverterPlugin } from "./CmsModelObjectFieldConverterPlugin";
|
|
2
|
+
import { CmsModelDefaultFieldConverterPlugin } from "./CmsModelDefaultFieldConverterPlugin";
|
|
3
|
+
import { CmsModelDynamicZoneFieldConverterPlugin } from "./CmsModelDynamicZoneFieldConverterPlugin";
|
|
4
|
+
export declare const createFieldConverters: () => (CmsModelObjectFieldConverterPlugin | CmsModelDefaultFieldConverterPlugin | CmsModelDynamicZoneFieldConverterPlugin)[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createFieldConverters = void 0;
|
|
7
|
+
|
|
8
|
+
var _CmsModelObjectFieldConverterPlugin = require("./CmsModelObjectFieldConverterPlugin");
|
|
9
|
+
|
|
10
|
+
var _CmsModelDefaultFieldConverterPlugin = require("./CmsModelDefaultFieldConverterPlugin");
|
|
11
|
+
|
|
12
|
+
var _CmsModelDynamicZoneFieldConverterPlugin = require("./CmsModelDynamicZoneFieldConverterPlugin");
|
|
13
|
+
|
|
14
|
+
const createFieldConverters = () => {
|
|
15
|
+
return [new _CmsModelObjectFieldConverterPlugin.CmsModelObjectFieldConverterPlugin(), new _CmsModelDynamicZoneFieldConverterPlugin.CmsModelDynamicZoneFieldConverterPlugin(), new _CmsModelDefaultFieldConverterPlugin.CmsModelDefaultFieldConverterPlugin()];
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.createFieldConverters = createFieldConverters;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDynamicZoneFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin"],"sources":["index.ts"],"sourcesContent":["import { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\nimport { CmsModelDynamicZoneFieldConverterPlugin } from \"~/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [\n new CmsModelObjectFieldConverterPlugin(),\n new CmsModelDynamicZoneFieldConverterPlugin(),\n new CmsModelDefaultFieldConverterPlugin()\n ];\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEO,MAAMA,qBAAqB,GAAG,MAAM;EACvC,OAAO,CACH,IAAIC,sEAAJ,EADG,EAEH,IAAIC,gFAAJ,EAFG,EAGH,IAAIC,wEAAJ,EAHG,CAAP;AAKH,CANM"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
|
|
2
|
+
import { CmsContext } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* This factory is called whenever we need to generate graphql-schema plugins using the current context.
|
|
5
|
+
*/
|
|
6
|
+
export declare const buildSchemaPlugins: (context: CmsContext) => Promise<GraphQLSchemaPlugin<CmsContext>[]>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildSchemaPlugins = void 0;
|
|
7
|
+
|
|
8
|
+
var _contentModels = require("./schema/contentModels");
|
|
9
|
+
|
|
10
|
+
var _contentEntries = require("./schema/contentEntries");
|
|
11
|
+
|
|
12
|
+
var _contentModelGroups = require("./schema/contentModelGroups");
|
|
13
|
+
|
|
14
|
+
var _baseContentSchema = require("./schema/baseContentSchema");
|
|
15
|
+
|
|
16
|
+
var _schemaPlugins = require("./schema/schemaPlugins");
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* This factory is called whenever we need to generate graphql-schema plugins using the current context.
|
|
20
|
+
*/
|
|
21
|
+
const buildSchemaPlugins = async context => {
|
|
22
|
+
return [// Base GQL types and scalars
|
|
23
|
+
(0, _baseContentSchema.createBaseContentSchema)(context), (0, _contentModels.createModelsSchema)(context), (0, _contentEntries.createContentEntriesSchema)(context), (0, _contentModelGroups.createGroupsSchema)(context), // Dynamic schema
|
|
24
|
+
...(await (0, _schemaPlugins.generateSchemaPlugins)(context))].filter(Boolean);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.buildSchemaPlugins = buildSchemaPlugins;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["buildSchemaPlugins","context","createBaseContentSchema","createModelsSchema","createContentEntriesSchema","createGroupsSchema","generateSchemaPlugins","filter","Boolean"],"sources":["buildSchemaPlugins.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { CmsContext } from \"~/types\";\nimport { createModelsSchema } from \"./schema/contentModels\";\nimport { createContentEntriesSchema } from \"./schema/contentEntries\";\nimport { createGroupsSchema } from \"./schema/contentModelGroups\";\nimport { createBaseContentSchema } from \"./schema/baseContentSchema\";\nimport { generateSchemaPlugins } from \"./schema/schemaPlugins\";\n\n/**\n * This factory is called whenever we need to generate graphql-schema plugins using the current context.\n */\n\nexport const buildSchemaPlugins = async (\n context: CmsContext\n): Promise<GraphQLSchemaPlugin<CmsContext>[]> => {\n return [\n // Base GQL types and scalars\n createBaseContentSchema(context),\n createModelsSchema(context),\n createContentEntriesSchema(context),\n createGroupsSchema(context),\n // Dynamic schema\n ...(await generateSchemaPlugins(context))\n ].filter(Boolean);\n};\n"],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;AACA;AACA;AAEO,MAAMA,kBAAkB,GAAG,MAC9BC,OAD8B,IAEe;EAC7C,OAAO,CACH;EACA,IAAAC,0CAAA,EAAwBD,OAAxB,CAFG,EAGH,IAAAE,iCAAA,EAAmBF,OAAnB,CAHG,EAIH,IAAAG,0CAAA,EAA2BH,OAA3B,CAJG,EAKH,IAAAI,sCAAA,EAAmBJ,OAAnB,CALG,EAMH;EACA,IAAI,MAAM,IAAAK,oCAAA,EAAsBL,OAAtB,CAAV,CAPG,EAQLM,MARK,CAQEC,OARF,CAAP;AASH,CAZM"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.graphQLHandlerFactory = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _schema = require("@graphql-tools/schema");
|
|
13
|
+
|
|
14
|
+
var _apiSecurity = require("@webiny/api-security");
|
|
15
|
+
|
|
16
|
+
var _debugPlugins = _interopRequireDefault(require("@webiny/handler-graphql/debugPlugins"));
|
|
17
|
+
|
|
18
|
+
var _processRequestBody = _interopRequireDefault(require("@webiny/handler-graphql/processRequestBody"));
|
|
19
|
+
|
|
20
|
+
var _buildSchemaPlugins = require("./buildSchemaPlugins");
|
|
21
|
+
|
|
22
|
+
var _plugins = require("@webiny/handler-graphql/plugins");
|
|
23
|
+
|
|
24
|
+
var _handler = require("@webiny/handler");
|
|
25
|
+
|
|
26
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
27
|
+
|
|
28
|
+
var _codeFrame = _interopRequireDefault(require("code-frame"));
|
|
29
|
+
|
|
30
|
+
// @ts-ignore `code-frame` has no types
|
|
31
|
+
const schemaList = new Map();
|
|
32
|
+
|
|
33
|
+
const generateCacheKey = async args => {
|
|
34
|
+
const {
|
|
35
|
+
context,
|
|
36
|
+
locale,
|
|
37
|
+
type
|
|
38
|
+
} = args;
|
|
39
|
+
const lastModelChange = await context.cms.getModelLastChange();
|
|
40
|
+
return [locale.code, type, lastModelChange.toISOString()].join("#");
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const generateSchema = async args => {
|
|
44
|
+
const {
|
|
45
|
+
context
|
|
46
|
+
} = args;
|
|
47
|
+
context.plugins.register(await (0, _buildSchemaPlugins.buildSchemaPlugins)(context));
|
|
48
|
+
/**
|
|
49
|
+
* Really hard to type this to satisfy the makeExecutableSchema
|
|
50
|
+
*/
|
|
51
|
+
// TODO @ts-refactor
|
|
52
|
+
|
|
53
|
+
const typeDefs = [];
|
|
54
|
+
const resolvers = []; // Get schema definitions from plugins
|
|
55
|
+
|
|
56
|
+
const schemaPlugins = context.plugins.byType(_plugins.GraphQLSchemaPlugin.type);
|
|
57
|
+
|
|
58
|
+
for (const pl of schemaPlugins) {
|
|
59
|
+
typeDefs.push(pl.schema.typeDefs);
|
|
60
|
+
resolvers.push(pl.schema.resolvers);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return (0, _schema.makeExecutableSchema)({
|
|
64
|
+
typeDefs,
|
|
65
|
+
resolvers
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Gets an existing schema or rewrites existing one or creates a completely new one
|
|
70
|
+
* depending on the schemaId created from type and locale parameters
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
const getSchema = async params => {
|
|
75
|
+
const {
|
|
76
|
+
context,
|
|
77
|
+
type,
|
|
78
|
+
locale
|
|
79
|
+
} = params;
|
|
80
|
+
const tenantId = context.tenancy.getCurrentTenant().id;
|
|
81
|
+
const id = `${tenantId}#${type}#${locale.code}`;
|
|
82
|
+
const cacheKey = await generateCacheKey(params);
|
|
83
|
+
|
|
84
|
+
if (!schemaList.has(id)) {
|
|
85
|
+
try {
|
|
86
|
+
const schema = await generateSchema(params);
|
|
87
|
+
schemaList.set(id, {
|
|
88
|
+
key: cacheKey,
|
|
89
|
+
schema
|
|
90
|
+
});
|
|
91
|
+
return schema;
|
|
92
|
+
} catch (err) {
|
|
93
|
+
if (!Array.isArray(err.locations)) {
|
|
94
|
+
throw new _error.default((0, _objectSpread2.default)({}, err));
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const [location] = err.locations;
|
|
98
|
+
throw new _error.default({
|
|
99
|
+
code: "INVALID_GRAPHQL_SCHEMA",
|
|
100
|
+
message: err.message,
|
|
101
|
+
data: {
|
|
102
|
+
invalidSegment: (0, _codeFrame.default)(err.source.body, location.line, location.column, {
|
|
103
|
+
frameSize: 15
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Safe to cast because check was done few lines up.
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
const cache = schemaList.get(id);
|
|
115
|
+
|
|
116
|
+
if (cache.key === cacheKey) {
|
|
117
|
+
return cache.schema;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const schema = await generateSchema(params);
|
|
121
|
+
schemaList.set(id, {
|
|
122
|
+
key: cacheKey,
|
|
123
|
+
schema
|
|
124
|
+
});
|
|
125
|
+
return schema;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
const checkEndpointAccess = async context => {
|
|
129
|
+
const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);
|
|
130
|
+
|
|
131
|
+
if (!permission) {
|
|
132
|
+
throw new _apiSecurity.NotAuthorizedError({
|
|
133
|
+
data: {
|
|
134
|
+
reason: `Not allowed to access "${context.cms.type}" endpoint.`
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
const formatErrorPayload = error => {
|
|
141
|
+
if (error instanceof _error.default) {
|
|
142
|
+
return {
|
|
143
|
+
message: error.message,
|
|
144
|
+
code: error.code,
|
|
145
|
+
data: error.data
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return {
|
|
150
|
+
name: error.name,
|
|
151
|
+
message: error.message,
|
|
152
|
+
stack: error.stack
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
const cmsRoutes = new _handler.RoutePlugin(({
|
|
157
|
+
onPost,
|
|
158
|
+
onOptions,
|
|
159
|
+
context
|
|
160
|
+
}) => {
|
|
161
|
+
onPost("/cms/:type(^manage|preview|read$)/:locale", async (request, reply) => {
|
|
162
|
+
try {
|
|
163
|
+
await checkEndpointAccess(context);
|
|
164
|
+
} catch (ex) {
|
|
165
|
+
return reply.code(401).send({
|
|
166
|
+
data: null,
|
|
167
|
+
error: {
|
|
168
|
+
message: ex.message || "Not authorized!",
|
|
169
|
+
code: ex.code || "SECURITY_NOT_AUTHORIZED",
|
|
170
|
+
data: ex.data || null,
|
|
171
|
+
stack: null
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
const schema = await getSchema({
|
|
178
|
+
context,
|
|
179
|
+
locale: context.cms.getLocale(),
|
|
180
|
+
type: context.cms.type
|
|
181
|
+
});
|
|
182
|
+
const body = request.body;
|
|
183
|
+
const result = await (0, _processRequestBody.default)(body, schema, context);
|
|
184
|
+
return reply.code(200).send(result);
|
|
185
|
+
} catch (ex) {
|
|
186
|
+
return reply.code(500).send(formatErrorPayload(ex));
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
onOptions("/cms/:type(^manage|preview|read$)/:locale", async (_, reply) => {
|
|
190
|
+
return reply.hijack().send({});
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
const graphQLHandlerFactory = ({
|
|
195
|
+
debug
|
|
196
|
+
}) => {
|
|
197
|
+
return [...(debug ? (0, _debugPlugins.default)() : []), cmsRoutes, {
|
|
198
|
+
type: "wcp-telemetry-tracker"
|
|
199
|
+
}];
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
exports.graphQLHandlerFactory = graphQLHandlerFactory;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["schemaList","Map","generateCacheKey","args","context","locale","type","lastModelChange","cms","getModelLastChange","code","toISOString","join","generateSchema","plugins","register","buildSchemaPlugins","typeDefs","resolvers","schemaPlugins","byType","GraphQLSchemaPlugin","pl","push","schema","makeExecutableSchema","getSchema","params","tenantId","tenancy","getCurrentTenant","id","cacheKey","has","set","key","err","Array","isArray","locations","WebinyError","location","message","data","invalidSegment","codeFrame","source","body","line","column","frameSize","cache","get","checkEndpointAccess","permission","security","getPermission","NotAuthorizedError","reason","formatErrorPayload","error","name","stack","cmsRoutes","RoutePlugin","onPost","onOptions","request","reply","ex","send","getLocale","result","processRequestBody","_","hijack","graphQLHandlerFactory","debug","debugPlugins"],"sources":["graphQLHandlerFactory.ts"],"sourcesContent":["import { GraphQLSchema } from \"graphql\";\nimport { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport debugPlugins from \"@webiny/handler-graphql/debugPlugins\";\nimport processRequestBody from \"@webiny/handler-graphql/processRequestBody\";\nimport { buildSchemaPlugins } from \"./buildSchemaPlugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { GraphQLRequestBody } from \"@webiny/handler-graphql/types\";\nimport { RoutePlugin } from \"@webiny/handler\";\nimport WebinyError from \"@webiny/error\";\n// @ts-ignore `code-frame` has no types\nimport codeFrame from \"code-frame\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n locale: I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\nconst generateCacheKey = async (args: GetSchemaParams): Promise<string> => {\n const { context, locale, type } = args;\n const lastModelChange = await context.cms.getModelLastChange();\n return [locale.code, type, lastModelChange.toISOString()].join(\"#\");\n};\n\nconst generateSchema = async (args: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = args;\n\n context.plugins.register(await buildSchemaPlugins(context));\n /**\n * Really hard to type this to satisfy the makeExecutableSchema\n */\n // TODO @ts-refactor\n const typeDefs: any = [];\n const resolvers: any = [];\n\n // Get schema definitions from plugins\n const schemaPlugins = context.plugins.byType<GraphQLSchemaPlugin>(GraphQLSchemaPlugin.type);\n for (const pl of schemaPlugins) {\n typeDefs.push(pl.schema.typeDefs);\n resolvers.push(pl.schema.resolvers);\n }\n\n return makeExecutableSchema({\n typeDefs,\n resolvers\n });\n};\n\n/**\n * Gets an existing schema or rewrites existing one or creates a completely new one\n * depending on the schemaId created from type and locale parameters\n */\nconst getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context, type, locale } = params;\n const tenantId = context.tenancy.getCurrentTenant().id;\n const id = `${tenantId}#${type}#${locale.code}`;\n\n const cacheKey = await generateCacheKey(params);\n if (!schemaList.has(id)) {\n try {\n const schema = await generateSchema(params);\n schemaList.set(id, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n ...err\n });\n }\n const [location] = err.locations;\n\n throw new WebinyError({\n code: \"INVALID_GRAPHQL_SCHEMA\",\n message: err.message,\n data: {\n invalidSegment: codeFrame(err.source.body, location.line, location.column, {\n frameSize: 15\n })\n }\n });\n }\n }\n /**\n * Safe to cast because check was done few lines up.\n */\n const cache = schemaList.get(id) as SchemaCache;\n if (cache.key === cacheKey) {\n return cache.schema;\n }\n const schema = await generateSchema(params);\n schemaList.set(id, {\n key: cacheKey,\n schema\n });\n return schema;\n};\n\nconst checkEndpointAccess = async (context: CmsContext): Promise<void> => {\n const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);\n if (!permission) {\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access \"${context.cms.type}\" endpoint.`\n }\n });\n }\n};\n\nconst formatErrorPayload = (error: Error) => {\n if (error instanceof WebinyError) {\n return {\n message: error.message,\n code: error.code,\n data: error.data\n };\n }\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack\n };\n};\n\nexport interface GraphQLHandlerFactoryParams {\n debug?: boolean;\n}\n\nconst cmsRoutes = new RoutePlugin<CmsContext>(({ onPost, onOptions, context }) => {\n onPost(\"/cms/:type(^manage|preview|read$)/:locale\", async (request, reply) => {\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n try {\n const schema = await getSchema({\n context,\n locale: context.cms.getLocale(),\n type: context.cms.type as ApiEndpoint\n });\n const body: GraphQLRequestBody | GraphQLRequestBody[] = request.body as any;\n const result = await processRequestBody(body, schema, context);\n return reply.code(200).send(result);\n } catch (ex) {\n return reply.code(500).send(formatErrorPayload(ex));\n }\n });\n\n onOptions(\"/cms/:type(^manage|preview|read$)/:locale\", async (_, reply) => {\n return reply.hijack().send({});\n });\n});\n\nexport const graphQLHandlerFactory = ({ debug }: GraphQLHandlerFactoryParams): PluginCollection => {\n return [\n ...(debug ? debugPlugins() : []),\n cmsRoutes,\n {\n type: \"wcp-telemetry-tracker\"\n }\n ];\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/types";
|
|
2
|
+
import { GraphQLHandlerFactoryParams } from "./graphQLHandlerFactory";
|
|
3
|
+
import { CmsContext } from "../types";
|
|
4
|
+
export declare type CreateGraphQLParams = GraphQLHandlerFactoryParams;
|
|
5
|
+
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/plugins/types").PluginCollection | import("@webiny/api").ContextPlugin<CmsContext> | GraphQLSchemaPlugin<CmsContext>)[];
|