@webiny/api-headless-cms 5.40.5-beta.0 → 5.41.0-dbt.0
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 +1 -1
- package/crud/AccessControl/AccessControl.d.ts +2 -2
- package/crud/contentEntry/abstractions/IListEntries.d.ts +2 -2
- package/crud/contentEntry/abstractions/IListEntries.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +1 -1
- package/crud/contentEntry/entryDataValidation.d.ts +1 -1
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/validation.d.ts +96 -96
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +1 -1
- package/export/types.d.ts +3 -3
- package/graphql/getSchema.js +6 -5
- package/graphql/getSchema.js.map +1 -1
- package/graphql/index.d.ts +2 -2
- package/graphql/schema/createManageResolvers.js +0 -6
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +0 -3
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +0 -5
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +0 -5
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.js +1 -4
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveList.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveMove.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +1 -1
- package/graphql/schema/resolvers/manage/resolveValidate.d.ts +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/preview/resolveList.d.ts +1 -1
- package/graphql/schema/resolvers/read/resolveGet.d.ts +1 -1
- package/graphql/schema/resolvers/read/resolveList.d.ts +1 -1
- package/graphql/schema/schemaPlugins.js +1 -3
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/index.d.ts +3 -3
- package/package.json +24 -23
- package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
- package/plugins/CmsModelPlugin.d.ts +1 -1
- package/plugins/CmsParametersPlugin.d.ts +2 -2
- package/types/context.d.ts +7 -7
- package/types/context.js.map +1 -1
- package/types/modelAst.d.ts +4 -4
- package/types/modelField.d.ts +1 -1
- package/types/types.d.ts +12 -14
- package/types/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_contentModelManagerFactory","_pubsub","_beforeCreate","_beforeUpdate","_beforeDelete","_CmsModelPlugin","_validation","_utils","_defaultFields","_utils2","_ensureTypeTag","_listModelsFromDatabase","_filterAsync","_contentModelAst","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","accessControl","context","listPluginModelsCache","createMemoryCache","listFilteredModelsCache","listDatabaseModelsCache","clearModelsCache","clear","managers","Map","updateManager","model","manager","contentModelManagerFactory","set","modelId","fieldTypePlugins","plugins","byType","getModelToAstConverter","CmsModelToAstConverter","CmsModelFieldToAstConverterFromPlugins","listPluginModels","tenant","locale","modelPlugins","CmsModelPlugin","type","cacheKey","createCacheKey","models","map","contentModel","pluralApiName","singularApiName","savedOn","join","identity","security","isAuthorizationEnabled","id","undefined","getOrSet","filter","plugin","modelTenant","modelLocale","tags","ensureTypeTag","webinyVersion","WEBINY_VERSION","filterAsync","canAccessModel","getModelFromCache","listModels","find","m","NotFoundError","code","benchmark","measure","pluginModels","dbCacheKey","databaseModels","listModelsFromDatabase","filteredCacheKey","get","filteredModels","concat","getModel","withoutAuthorization","ensureCanAccessModel","getEntryManager","target","has","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelBeforeUpdate","assignModelBeforeDelete","createModel","input","rwd","result","createModelCreateValidation","safeParseAsync","success","createZodError","error","defaultFields","data","removeUndefinedValues","assignModelDefaultFields","group","cms","getGroup","titleFieldId","descriptionFieldId","imageFieldId","description","name","createdBy","displayName","createdOn","Date","toISOString","lockedFields","publish","createdModel","create","ex","updateModel","original","createModelUpdateValidation","Object","keys","length","groupId","groupData","resultModel","update","updateModelDirect","initialModel","createModelFrom","createModelCreateFromValidation","i18n","groups","icon","deleteModel","delete","WebinyError","message","initializeModel","userInput","getEntryManagers","exports"],"sources":["contentModel.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsContext,\n CmsModel,\n CmsModelContext,\n CmsModelFieldToGraphQLPlugin,\n CmsModelGroup,\n CmsModelManager,\n CmsModelUpdateInput,\n HeadlessCmsStorageOperations,\n OnModelAfterCreateFromTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelBeforeCreateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelDeleteErrorTopicParams,\n OnModelInitializeParams,\n OnModelUpdateErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport {\n createModelCreateFromValidation,\n createModelCreateValidation,\n createModelUpdateValidation\n} from \"~/crud/contentModel/validation\";\nimport { createZodError, removeUndefinedValues } from \"@webiny/utils\";\nimport { assignModelDefaultFields } from \"~/crud/contentModel/defaultFields\";\nimport { createCacheKey, createMemoryCache } from \"~/utils\";\nimport { ensureTypeTag } from \"./contentModel/ensureTypeTag\";\nimport { listModelsFromDatabase } from \"~/crud/contentModel/listModelsFromDatabase\";\nimport { filterAsync } from \"~/utils/filterAsync\";\nimport { AccessControl } from \"./AccessControl/AccessControl\";\nimport {\n CmsModelToAstConverter,\n CmsModelFieldToAstConverterFromPlugins\n} from \"~/utils/contentModelAst\";\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n accessControl: AccessControl;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, accessControl, context } = params;\n\n const listPluginModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listFilteredModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listDatabaseModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const clearModelsCache = (): void => {\n listDatabaseModelsCache.clear();\n listFilteredModelsCache.clear();\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async <T>(\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager<T>> => {\n const manager = await contentModelManagerFactory<T>(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const fieldTypePlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n const getModelToAstConverter = () => {\n return new CmsModelToAstConverter(\n new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins)\n );\n };\n\n const listPluginModels = async (tenant: string, locale: string): Promise<CmsModel[]> => {\n const modelPlugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n const cacheKey = createCacheKey({\n tenant,\n locale,\n models: modelPlugins\n .map(({ contentModel: model }) => {\n return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${\n model.savedOn || \"unknown\"\n }`;\n })\n .join(\"/\"),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n return listPluginModelsCache.getOrSet(cacheKey, async () => {\n const models = modelPlugins\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n }) as unknown as CmsModel[];\n\n return filterAsync(models, async model => {\n return accessControl.canAccessModel({ model });\n });\n });\n };\n\n const getModelFromCache = async (modelId: string) => {\n const models = await listModels();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n /**\n * The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.\n *\n * We always fetch the plugins and database models separately.\n * Then we combine them and run access filtering on them\n */\n const listModels = async () => {\n return context.benchmark.measure(\"headlessCms.crud.models.listModels\", async () => {\n /**\n * Maybe we can cache based on permissions, not the identity id?\n *\n * TODO: @adrian please check if possible.\n */\n const tenant = getTenant().id;\n const locale = getLocale().code;\n const pluginModels = await listPluginModels(tenant, locale);\n const dbCacheKey = createCacheKey({\n tenant,\n locale\n });\n const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {\n return await listModelsFromDatabase(params);\n });\n\n const filteredCacheKey = createCacheKey({\n dbCacheKey: dbCacheKey.get(),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n\n const filteredModels = await listFilteredModelsCache.getOrSet(\n filteredCacheKey,\n async () => {\n return filterAsync(databaseModels, async model => {\n return accessControl.canAccessModel({ model });\n });\n }\n );\n\n return filteredModels.concat(pluginModels);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n return context.benchmark.measure(\"headlessCms.crud.models.getModel\", async () => {\n const model = await context.security.withoutAuthorization(async () => {\n return await getModelFromCache(modelId);\n });\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n await accessControl.ensureCanAccessModel({ model });\n\n return model;\n });\n };\n\n const getEntryManager: CmsModelContext[\"getEntryManager\"] = async <T>(\n target: string | Pick<CmsModel, \"modelId\">\n ): Promise<CmsModelManager<T>> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager<T>;\n }\n const model = await getModelFromCache(modelId);\n return await updateManager<T>(context, model);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n context,\n storageOperations\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n context\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n context\n });\n\n /**\n * CRUD methods\n */\n const createModel: CmsModelContext[\"createModel\"] = async input => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n const result = await createModelCreateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n /**\n * We need to extract the defaultFields because it is not for the CmsModel object.\n */\n const { defaultFields, ...data } = removeUndefinedValues(result.data);\n if (defaultFields) {\n assignModelDefaultFields(data);\n }\n\n const group = await context.cms.getGroup(data.group);\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...data,\n modelId: data.modelId || \"\",\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n titleFieldId: \"id\",\n descriptionFieldId: null,\n imageFieldId: null,\n description: data.description || \"\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreate.publish({\n input: data,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input: data,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input: data,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const updateModel: CmsModelContext[\"updateModel\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const result = await createModelUpdateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n if (Object.keys(data).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModelGroup = {\n id: original.group.id,\n name: original.group.name\n };\n const groupId = data.group;\n if (groupId) {\n const groupData = await context.cms.getGroup(groupId);\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const model: CmsModel = {\n ...original,\n ...data,\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n group,\n description: data.description || original.description,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n savedOn: new Date().toISOString()\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input: data,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input: data,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: data,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n };\n const updateModelDirect: CmsModelContext[\"updateModelDirect\"] = async params => {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n clearModelsCache();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const createModelFrom: CmsModelContext[\"createModelFrom\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const result = await createModelCreateFromValidation().safeParseAsync({\n ...input,\n description: input.description || original.description\n });\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n const locale = await context.i18n.getLocale(data.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${data.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: data.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${data.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n icon: data.icon,\n name: data.name,\n modelId: data.modelId || \"\",\n description: data.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreateFrom.publish({\n input: data,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input: data,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input: data,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const deleteModel: CmsModelContext[\"deleteModel\"] = async modelId => {\n await accessControl.ensureCanAccessModel({ rwd: \"d\" });\n\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"d\" });\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n clearModelsCache();\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n };\n const initializeModel: CmsModelContext[\"initializeModel\"] = async (modelId, data) => {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n };\n return {\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n getModelToAstConverter,\n listModels,\n async createModel(input) {\n return context.benchmark.measure(\"headlessCms.crud.models.createModel\", async () => {\n return createModel(input);\n });\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.updateModelDirect\",\n async () => {\n return updateModelDirect(params);\n }\n );\n },\n async createModelFrom(modelId, userInput) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.createModelFrom\",\n async () => {\n return createModelFrom(modelId, userInput);\n }\n );\n },\n async updateModel(modelId, input) {\n return context.benchmark.measure(\"headlessCms.crud.models.updateModel\", async () => {\n return updateModel(modelId, input);\n });\n },\n async deleteModel(modelId) {\n return context.benchmark.measure(\"headlessCms.crud.models.deleteModel\", async () => {\n return deleteModel(modelId);\n });\n },\n async initializeModel(modelId, data) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.initializeModel\",\n async () => {\n return initializeModel(modelId, data);\n }\n );\n },\n getEntryManager,\n getEntryManagers: () => managers\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_contentModelManagerFactory","_pubsub","_beforeCreate","_beforeUpdate","_beforeDelete","_CmsModelPlugin","_validation","_utils","_defaultFields","_utils2","_ensureTypeTag","_listModelsFromDatabase","_filterAsync","_contentModelAst","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","accessControl","context","listPluginModelsCache","createMemoryCache","listFilteredModelsCache","listDatabaseModelsCache","clearModelsCache","clear","managers","Map","updateManager","model","manager","contentModelManagerFactory","set","modelId","fieldTypePlugins","plugins","byType","getModelToAstConverter","CmsModelToAstConverter","CmsModelFieldToAstConverterFromPlugins","listPluginModels","tenant","locale","modelPlugins","CmsModelPlugin","type","cacheKey","createCacheKey","models","map","contentModel","pluralApiName","singularApiName","savedOn","join","identity","security","isAuthorizationEnabled","id","undefined","getOrSet","filter","plugin","modelTenant","modelLocale","tags","ensureTypeTag","webinyVersion","WEBINY_VERSION","filterAsync","canAccessModel","getModelFromCache","listModels","find","m","NotFoundError","code","benchmark","measure","pluginModels","dbCacheKey","databaseModels","listModelsFromDatabase","filteredCacheKey","get","filteredModels","concat","getModel","withoutAuthorization","ensureCanAccessModel","getEntryManager","target","has","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelBeforeUpdate","assignModelBeforeDelete","createModel","input","rwd","result","createModelCreateValidation","safeParseAsync","success","createZodError","error","defaultFields","data","removeUndefinedValues","assignModelDefaultFields","group","cms","getGroup","titleFieldId","descriptionFieldId","imageFieldId","description","name","createdBy","displayName","createdOn","Date","toISOString","lockedFields","publish","createdModel","create","ex","updateModel","original","createModelUpdateValidation","Object","keys","length","groupId","groupData","resultModel","update","updateModelDirect","initialModel","createModelFrom","createModelCreateFromValidation","i18n","groups","icon","deleteModel","delete","WebinyError","message","initializeModel","userInput","getEntryManagers","exports"],"sources":["contentModel.crud.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsContext,\n CmsEntryValues,\n CmsModel,\n CmsModelContext,\n CmsModelFieldToGraphQLPlugin,\n CmsModelGroup,\n CmsModelManager,\n CmsModelUpdateInput,\n HeadlessCmsStorageOperations,\n OnModelAfterCreateFromTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelBeforeCreateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelDeleteErrorTopicParams,\n OnModelInitializeParams,\n OnModelUpdateErrorTopicParams\n} from \"~/types\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport {\n createModelCreateFromValidation,\n createModelCreateValidation,\n createModelUpdateValidation\n} from \"~/crud/contentModel/validation\";\nimport { createZodError, removeUndefinedValues } from \"@webiny/utils\";\nimport { assignModelDefaultFields } from \"~/crud/contentModel/defaultFields\";\nimport { createCacheKey, createMemoryCache } from \"~/utils\";\nimport { ensureTypeTag } from \"./contentModel/ensureTypeTag\";\nimport { listModelsFromDatabase } from \"~/crud/contentModel/listModelsFromDatabase\";\nimport { filterAsync } from \"~/utils/filterAsync\";\nimport { AccessControl } from \"./AccessControl/AccessControl\";\nimport {\n CmsModelToAstConverter,\n CmsModelFieldToAstConverterFromPlugins\n} from \"~/utils/contentModelAst\";\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n accessControl: AccessControl;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, accessControl, context } = params;\n\n const listPluginModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listFilteredModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const listDatabaseModelsCache = createMemoryCache<Promise<CmsModel[]>>();\n const clearModelsCache = (): void => {\n listDatabaseModelsCache.clear();\n listFilteredModelsCache.clear();\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async <T extends CmsEntryValues = CmsEntryValues>(\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager<T>> => {\n const manager = await contentModelManagerFactory<T>(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const fieldTypePlugins = context.plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n\n const getModelToAstConverter = () => {\n return new CmsModelToAstConverter(\n new CmsModelFieldToAstConverterFromPlugins(fieldTypePlugins)\n );\n };\n\n const listPluginModels = async (tenant: string, locale: string): Promise<CmsModel[]> => {\n const modelPlugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n const cacheKey = createCacheKey({\n tenant,\n locale,\n models: modelPlugins\n .map(({ contentModel: model }) => {\n return `${model.modelId}#${model.pluralApiName}#${model.singularApiName}#${\n model.savedOn || \"unknown\"\n }`;\n })\n .join(\"/\"),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n return listPluginModelsCache.getOrSet(cacheKey, async () => {\n const models = modelPlugins\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n }) as unknown as CmsModel[];\n\n return filterAsync(models, async model => {\n return accessControl.canAccessModel({ model });\n });\n });\n };\n\n const getModelFromCache = async (modelId: string) => {\n const models = await listModels();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n /**\n * The list models cache is a key -> Promise pair so it the listModels() can be called multiple times but executed only once.\n *\n * We always fetch the plugins and database models separately.\n * Then we combine them and run access filtering on them\n */\n const listModels = async () => {\n return context.benchmark.measure(\"headlessCms.crud.models.listModels\", async () => {\n /**\n * Maybe we can cache based on permissions, not the identity id?\n *\n * TODO: @adrian please check if possible.\n */\n const tenant = getTenant().id;\n const locale = getLocale().code;\n const pluginModels = await listPluginModels(tenant, locale);\n const dbCacheKey = createCacheKey({\n tenant,\n locale\n });\n const databaseModels = await listDatabaseModelsCache.getOrSet(dbCacheKey, async () => {\n return await listModelsFromDatabase(params);\n });\n\n const filteredCacheKey = createCacheKey({\n dbCacheKey: dbCacheKey.get(),\n identity: context.security.isAuthorizationEnabled() ? getIdentity()?.id : undefined\n });\n\n const filteredModels = await listFilteredModelsCache.getOrSet(\n filteredCacheKey,\n async () => {\n return filterAsync(databaseModels, async model => {\n return accessControl.canAccessModel({ model });\n });\n }\n );\n\n return filteredModels.concat(pluginModels);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n return context.benchmark.measure(\"headlessCms.crud.models.getModel\", async () => {\n const model = await context.security.withoutAuthorization(async () => {\n return await getModelFromCache(modelId);\n });\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n await accessControl.ensureCanAccessModel({ model });\n\n return model;\n });\n };\n\n const getEntryManager: CmsModelContext[\"getEntryManager\"] = async <\n T extends CmsEntryValues = CmsEntryValues\n >(\n target: string | Pick<CmsModel, \"modelId\">\n ): Promise<CmsModelManager<T>> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager<T>;\n }\n const model = await getModelFromCache(modelId);\n return await updateManager<T>(context, model);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n context,\n storageOperations\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n context\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n context\n });\n\n /**\n * CRUD methods\n */\n const createModel: CmsModelContext[\"createModel\"] = async input => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n const result = await createModelCreateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n /**\n * We need to extract the defaultFields because it is not for the CmsModel object.\n */\n const { defaultFields, ...data } = removeUndefinedValues(result.data);\n if (defaultFields) {\n assignModelDefaultFields(data);\n }\n\n const group = await context.cms.getGroup(data.group);\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...data,\n modelId: data.modelId || \"\",\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n titleFieldId: \"id\",\n descriptionFieldId: null,\n imageFieldId: null,\n description: data.description || \"\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreate.publish({\n input: data,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input: data,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input: data,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const updateModel: CmsModelContext[\"updateModel\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const result = await createModelUpdateValidation().safeParseAsync(input);\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n if (Object.keys(data).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModelGroup = {\n id: original.group.id,\n name: original.group.name\n };\n const groupId = data.group;\n if (groupId) {\n const groupData = await context.cms.getGroup(groupId);\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const model: CmsModel = {\n ...original,\n ...data,\n titleFieldId:\n data.titleFieldId === undefined\n ? original.titleFieldId\n : (data.titleFieldId as string),\n descriptionFieldId:\n data.descriptionFieldId === undefined\n ? original.descriptionFieldId\n : data.descriptionFieldId,\n imageFieldId:\n data.imageFieldId === undefined ? original.imageFieldId : data.imageFieldId,\n group,\n description: data.description || original.description,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n savedOn: new Date().toISOString()\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input: data,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input: data,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: data,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n };\n const updateModelDirect: CmsModelContext[\"updateModelDirect\"] = async params => {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n clearModelsCache();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const createModelFrom: CmsModelContext[\"createModelFrom\"] = async (modelId, input) => {\n await accessControl.ensureCanAccessModel({ rwd: \"w\" });\n\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const result = await createModelCreateFromValidation().safeParseAsync({\n ...input,\n description: input.description || original.description\n });\n if (!result.success) {\n throw createZodError(result.error);\n }\n\n const data = removeUndefinedValues(result.data);\n\n const locale = await context.i18n.getLocale(data.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${data.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: data.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${data.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n singularApiName: data.singularApiName,\n pluralApiName: data.pluralApiName,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n icon: data.icon,\n name: data.name,\n modelId: data.modelId || \"\",\n description: data.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n try {\n await onModelBeforeCreateFrom.publish({\n input: data,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n clearModelsCache();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input: data,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input: data,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n };\n const deleteModel: CmsModelContext[\"deleteModel\"] = async modelId => {\n await accessControl.ensureCanAccessModel({ rwd: \"d\" });\n\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"d\" });\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n clearModelsCache();\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n };\n const initializeModel: CmsModelContext[\"initializeModel\"] = async (modelId, data) => {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n const model = await getModel(modelId);\n\n await accessControl.ensureCanAccessModel({ model, rwd: \"w\" });\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n };\n return {\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n getModelToAstConverter,\n listModels,\n async createModel(input) {\n return context.benchmark.measure(\"headlessCms.crud.models.createModel\", async () => {\n return createModel(input);\n });\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.updateModelDirect\",\n async () => {\n return updateModelDirect(params);\n }\n );\n },\n async createModelFrom(modelId, userInput) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.createModelFrom\",\n async () => {\n return createModelFrom(modelId, userInput);\n }\n );\n },\n async updateModel(modelId, input) {\n return context.benchmark.measure(\"headlessCms.crud.models.updateModel\", async () => {\n return updateModel(modelId, input);\n });\n },\n async deleteModel(modelId) {\n return context.benchmark.measure(\"headlessCms.crud.models.deleteModel\", async () => {\n return deleteModel(modelId);\n });\n },\n async initializeModel(modelId, data) {\n return context.benchmark.measure(\n \"headlessCms.crud.models.initializeModel\",\n async () => {\n return initializeModel(modelId, data);\n }\n );\n },\n getEntryManager,\n getEntryManagers: () => managers\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
package/export/types.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare enum CmsImportAction {
|
|
|
17
17
|
export interface HeadlessCmsExportStructureParams {
|
|
18
18
|
models?: string[];
|
|
19
19
|
}
|
|
20
|
-
export
|
|
20
|
+
export type SanitizedCmsGroup = Pick<CmsGroup, "id" | "name" | "slug" | "description" | "icon">;
|
|
21
21
|
export interface SanitizedCmsModel extends Pick<CmsModel, "modelId" | "fields" | "titleFieldId" | "descriptionFieldId" | "imageFieldId" | "layout" | "icon" | "singularApiName" | "pluralApiName" | "name" | "description"> {
|
|
22
22
|
group: string;
|
|
23
23
|
}
|
|
@@ -91,8 +91,8 @@ export interface InvalidCmsModelResult {
|
|
|
91
91
|
action: CmsImportAction;
|
|
92
92
|
error: CmsImportError;
|
|
93
93
|
}
|
|
94
|
-
export
|
|
95
|
-
export
|
|
94
|
+
export type ValidatedCmsGroupResult = ValidCmsGroupResult | InvalidCmsGroupResult;
|
|
95
|
+
export type ValidatedCmsModelResult = ValidCmsModelResult | InvalidCmsModelResult;
|
|
96
96
|
export interface HeadlessCmsImportValidateResponse {
|
|
97
97
|
groups: ValidatedCmsGroupResult[];
|
|
98
98
|
models: ValidatedCmsModelResult[];
|
package/graphql/getSchema.js
CHANGED
|
@@ -5,13 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getSchema = void 0;
|
|
8
|
-
var _codeFrame =
|
|
8
|
+
var _codeFrame = require("@babel/code-frame");
|
|
9
9
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
10
10
|
var _generateSchema = require("./generateSchema");
|
|
11
11
|
var _generateCacheId = require("./getSchema/generateCacheId");
|
|
12
12
|
var _generateCacheKey = require("./getSchema/generateCacheKey");
|
|
13
|
-
// @ts-expect-error `code-frame` has no types
|
|
14
|
-
|
|
15
13
|
const schemaList = new Map();
|
|
16
14
|
|
|
17
15
|
/**
|
|
@@ -67,8 +65,11 @@ const getSchema = async params => {
|
|
|
67
65
|
code: "INVALID_GRAPHQL_SCHEMA",
|
|
68
66
|
message: err.message,
|
|
69
67
|
data: {
|
|
70
|
-
invalidSegment: (0, _codeFrame.
|
|
71
|
-
|
|
68
|
+
invalidSegment: (0, _codeFrame.codeFrameColumns)(err.source.body, {
|
|
69
|
+
start: {
|
|
70
|
+
line: location.line,
|
|
71
|
+
column: location.column
|
|
72
|
+
}
|
|
72
73
|
})
|
|
73
74
|
}
|
|
74
75
|
});
|
package/graphql/getSchema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_codeFrame","
|
|
1
|
+
{"version":3,"names":["_codeFrame","require","_error","_interopRequireDefault","_generateSchema","_generateCacheId","_generateCacheKey","schemaList","Map","getSchema","params","context","models","security","withoutAuthorization","cms","listModels","filter","model","isPrivate","cacheId","generateCacheId","cacheKey","generateCacheKey","cachedSchema","get","key","schema","generateSchema","set","err","Array","isArray","locations","WebinyError","message","code","data","endpoint","type","location","invalidSegment","codeFrameColumns","source","body","start","line","column","exports"],"sources":["getSchema.ts"],"sourcesContent":["import { codeFrameColumns } from \"@babel/code-frame\";\nimport WebinyError from \"@webiny/error\";\nimport { generateSchema } from \"./generateSchema\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { GraphQLSchema } from \"graphql\";\nimport { generateCacheId } from \"./getSchema/generateCacheId\";\nimport { generateCacheKey } from \"./getSchema/generateCacheKey\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\n\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\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 */\nexport const getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = params;\n\n /**\n * We need all the API models.\n * Private models are hidden in the GraphQL, so filter them out.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return model.isPrivate !== true;\n });\n });\n\n const cacheId = generateCacheId(params);\n\n const cacheKey = await generateCacheKey({ ...params, models });\n const cachedSchema = schemaList.get(cacheId);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(cacheId, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n message: err.message,\n code: err.code || \"INVALID_GRAPHQL_SCHEMA_LOCATIONS\",\n data: {\n ...(err.data || {}),\n endpoint: context.cms.type\n }\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: codeFrameColumns(err.source.body, {\n start: {\n line: location.line,\n column: location.column\n }\n })\n }\n });\n }\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAcA,MAAMM,UAAU,GAAG,IAAIC,GAAG,CAAsB,CAAC;;AAEjD;AACA;AACA;AACA;AACO,MAAMC,SAAS,GAAG,MAAOC,MAAuB,IAA6B;EAChF,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;;EAE1B;AACJ;AACA;AACA;EACI,MAAME,MAAM,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IACnE,OAAO,CAAC,MAAMH,OAAO,CAACI,GAAG,CAACC,UAAU,CAAC,CAAC,EAAEC,MAAM,CAACC,KAAK,IAAI;MACpD,OAAOA,KAAK,CAACC,SAAS,KAAK,IAAI;IACnC,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAG,IAAAC,gCAAe,EAACX,MAAM,CAAC;EAEvC,MAAMY,QAAQ,GAAG,MAAM,IAAAC,kCAAgB,EAAC;IAAE,GAAGb,MAAM;IAAEE;EAAO,CAAC,CAAC;EAC9D,MAAMY,YAAY,GAAGjB,UAAU,CAACkB,GAAG,CAACL,OAAO,CAAC;EAC5C,IAAII,YAAY,EAAEE,GAAG,KAAKJ,QAAQ,EAAE;IAChC,OAAOE,YAAY,CAACG,MAAM;EAC9B;EAEA,IAAI;IACA,MAAMA,MAAM,GAAG,MAAM,IAAAC,8BAAc,EAAC;MAChC,GAAGlB,MAAM;MACTE;IACJ,CAAC,CAAC;IACFL,UAAU,CAACsB,GAAG,CAACT,OAAO,EAAE;MACpBM,GAAG,EAAEJ,QAAQ;MACbK;IACJ,CAAC,CAAC;IACF,OAAOA,MAAM;EACjB,CAAC,CAAC,OAAOG,GAAG,EAAE;IACV,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,GAAG,CAACG,SAAS,CAAC,EAAE;MAC/B,MAAM,IAAIC,cAAW,CAAC;QAClBC,OAAO,EAAEL,GAAG,CAACK,OAAO;QACpBC,IAAI,EAAEN,GAAG,CAACM,IAAI,IAAI,kCAAkC;QACpDC,IAAI,EAAE;UACF,IAAIP,GAAG,CAACO,IAAI,IAAI,CAAC,CAAC,CAAC;UACnBC,QAAQ,EAAE3B,OAAO,CAACI,GAAG,CAACwB;QAC1B;MACJ,CAAC,CAAC;IACN;IACA,MAAM,CAACC,QAAQ,CAAC,GAAGV,GAAG,CAACG,SAAS;IAEhC,MAAM,IAAIC,cAAW,CAAC;MAClBE,IAAI,EAAE,wBAAwB;MAC9BD,OAAO,EAAEL,GAAG,CAACK,OAAO;MACpBE,IAAI,EAAE;QACFI,cAAc,EAAE,IAAAC,2BAAgB,EAACZ,GAAG,CAACa,MAAM,CAACC,IAAI,EAAE;UAC9CC,KAAK,EAAE;YACHC,IAAI,EAAEN,QAAQ,CAACM,IAAI;YACnBC,MAAM,EAAEP,QAAQ,CAACO;UACrB;QACJ,CAAC;MACL;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACC,OAAA,CAAAvC,SAAA,GAAAA,SAAA","ignoreList":[]}
|
package/graphql/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GraphQLHandlerFactoryParams } from "./graphQLHandlerFactory";
|
|
2
|
-
export
|
|
3
|
-
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext> | import("@webiny/
|
|
2
|
+
export type CreateGraphQLParams = GraphQLHandlerFactoryParams;
|
|
3
|
+
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/plugins/types").PluginCollection | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext> | import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context>)[];
|
|
@@ -30,12 +30,6 @@ const createManageResolvers = ({
|
|
|
30
30
|
model,
|
|
31
31
|
fieldTypePlugins
|
|
32
32
|
}) => {
|
|
33
|
-
if (model.fields.length === 0) {
|
|
34
|
-
return {
|
|
35
|
-
Query: {},
|
|
36
|
-
Mutation: {}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
33
|
const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
|
|
40
34
|
endpointType: "manage",
|
|
41
35
|
models,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_resolveGet","require","_resolveList","_resolveListDeleted","_resolveGetRevisions","_resolveGetByIds","_resolveCreate","_resolveUpdate","_resolveValidate","_resolveMove","_resolveDelete","_resolveRestoreFromBin","_resolveDeleteMultiple","_resolvePublish","_resolveRepublish","_resolveUnpublish","_resolveCreateFrom","_normalizeGraphQlInput","_createFieldResolvers","_getEntryTitle","_getEntryImage","_entryStorage","createManageResolvers","models","model","fieldTypePlugins","fields","length","Query","Mutation","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","isRoot","extraResolvers","wbyAco_location","entry","location","meta","resolverFactoryParams","resolveGet","resolveGetRevisions","pluralApiName","resolveGetByIds","resolveList","resolveListDeleted","normalizeGraphQlInput","resolveCreate","resolveUpdate","resolveValidate","resolveMove","resolveDelete","resolveRestoreFromBin","resolveDeleteMultiple","resolvePublish","resolveRepublish","resolveUnpublish","resolveCreateFrom","title","getEntryTitle","description","_","context","descriptionFieldId","field","find","f","fieldId","entryFieldFromStorageTransform","value","values","image","getEntryImage","status","data","revisions","cms","getEntryRevisions","entryId","sort","a","b","version","exports"],"sources":["createManageResolvers.ts"],"sourcesContent":["import { CmsContext, CmsEntry, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet\";\nimport { resolveList } from \"./resolvers/manage/resolveList\";\nimport { resolveListDeleted } from \"./resolvers/manage/resolveListDeleted\";\nimport { resolveGetRevisions } from \"./resolvers/manage/resolveGetRevisions\";\nimport { resolveGetByIds } from \"./resolvers/manage/resolveGetByIds\";\nimport { resolveCreate } from \"./resolvers/manage/resolveCreate\";\nimport { resolveUpdate } from \"./resolvers/manage/resolveUpdate\";\nimport { resolveValidate } from \"./resolvers/manage/resolveValidate\";\nimport { resolveMove } from \"./resolvers/manage/resolveMove\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete\";\nimport { resolveRestoreFromBin } from \"./resolvers/manage/resolveRestoreFromBin\";\nimport { resolveDeleteMultiple } from \"./resolvers/manage/resolveDeleteMultiple\";\nimport { resolvePublish } from \"./resolvers/manage/resolvePublish\";\nimport { resolveRepublish } from \"./resolvers/manage/resolveRepublish\";\nimport { resolveUnpublish } from \"./resolvers/manage/resolveUnpublish\";\nimport { resolveCreateFrom } from \"./resolvers/manage/resolveCreateFrom\";\nimport { normalizeGraphQlInput } from \"./resolvers/manage/normalizeGraphQlInput\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\n\ninterface CreateManageResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\ninterface CreateManageResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateManageResolversParams): any;\n}\n\nexport const createManageResolvers: CreateManageResolvers = ({\n models,\n model,\n fieldTypePlugins\n}) => {\n if (model.fields.length === 0) {\n return {\n Query: {},\n Mutation: {}\n };\n }\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true,\n // These are extra fields we want to apply to field resolvers of \"gqlType\"\n extraResolvers: {\n /**\n * Advanced Content Organization\n */\n wbyAco_location: async (entry: CmsEntry) => {\n return entry.location || null;\n },\n meta(entry) {\n return entry;\n }\n }\n });\n\n const resolverFactoryParams = { model, fieldTypePlugins };\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet(resolverFactoryParams),\n [`get${model.singularApiName}Revisions`]: resolveGetRevisions(resolverFactoryParams),\n [`get${model.pluralApiName}ByIds`]: resolveGetByIds(resolverFactoryParams),\n [`list${model.pluralApiName}`]: resolveList(resolverFactoryParams),\n [`listDeleted${model.pluralApiName}`]: resolveListDeleted(resolverFactoryParams)\n },\n Mutation: {\n [`create${model.singularApiName}`]:\n normalizeGraphQlInput(resolveCreate)(resolverFactoryParams),\n [`update${model.singularApiName}`]:\n normalizeGraphQlInput(resolveUpdate)(resolverFactoryParams),\n [`validate${model.singularApiName}`]: resolveValidate(resolverFactoryParams),\n [`move${model.singularApiName}`]: resolveMove(resolverFactoryParams),\n [`delete${model.singularApiName}`]: resolveDelete(resolverFactoryParams),\n [`restore${model.singularApiName}FromBin`]:\n resolveRestoreFromBin(resolverFactoryParams),\n [`deleteMultiple${model.pluralApiName}`]: resolveDeleteMultiple(resolverFactoryParams),\n [`publish${model.singularApiName}`]: resolvePublish(resolverFactoryParams),\n [`republish${model.singularApiName}`]: resolveRepublish(resolverFactoryParams),\n [`unpublish${model.singularApiName}`]: resolveUnpublish(resolverFactoryParams),\n [`create${model.singularApiName}From`]:\n normalizeGraphQlInput(resolveCreateFrom)(resolverFactoryParams)\n },\n ...fieldResolvers,\n [`${model.singularApiName}Meta`]: {\n title(entry: CmsEntry) {\n return getEntryTitle(model, entry);\n },\n description: (entry: CmsEntry, _: any, context: CmsContext) => {\n if (!model.descriptionFieldId) {\n return \"\";\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return \"\";\n }\n\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: entry.values[field.fieldId]\n });\n },\n image: (entry: CmsEntry) => {\n return getEntryImage(model, entry);\n },\n status(entry: CmsEntry) {\n return entry.status;\n },\n data: (entry: CmsEntry) => {\n return entry.meta || {};\n },\n async revisions(entry: CmsEntry, _: any, context: CmsContext) {\n const revisions = await context.cms.getEntryRevisions(model, entry.entryId);\n return revisions.sort((a, b) => b.version - a.version);\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,sBAAA,GAAAV,OAAA;AACA,IAAAW,sBAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,iBAAA,GAAAb,OAAA;AACA,IAAAc,iBAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AACA,IAAAgB,sBAAA,GAAAhB,OAAA;AACA,IAAAiB,qBAAA,GAAAjB,OAAA;AACA,IAAAkB,cAAA,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AACA,IAAAoB,aAAA,GAAApB,OAAA;AAcO,MAAMqB,qBAA4C,GAAGA,CAAC;EACzDC,MAAM;EACNC,KAAK;EACLC;AACJ,CAAC,KAAK;EACF,IAAID,KAAK,CAACE,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO;MACHC,KAAK,EAAE,CAAC,CAAC;MACTC,QAAQ,EAAE,CAAC;IACf,CAAC;EACL;EAEA,MAAMC,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAE,QAAQ;IACtBT,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMQ,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEV,KAAK,CAACW,eAAe;IAClCT,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBU,MAAM,EAAE,IAAI;IACZ;IACAC,cAAc,EAAE;MACZ;AACZ;AACA;MACYC,eAAe,EAAE,MAAOC,KAAe,IAAK;QACxC,OAAOA,KAAK,CAACC,QAAQ,IAAI,IAAI;MACjC,CAAC;MACDC,IAAIA,CAACF,KAAK,EAAE;QACR,OAAOA,KAAK;MAChB;IACJ;EACJ,CAAC,CAAC;EAEF,MAAMG,qBAAqB,GAAG;IAAElB,KAAK;IAAEC;EAAiB,CAAC;EAEzD,OAAO;IACHG,KAAK,EAAE;MACH,CAAE,MAAKJ,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAQ,sBAAU,EAACD,qBAAqB,CAAC;MAClE,CAAE,MAAKlB,KAAK,CAACW,eAAgB,WAAU,GAAG,IAAAS,wCAAmB,EAACF,qBAAqB,CAAC;MACpF,CAAE,MAAKlB,KAAK,CAACqB,aAAc,OAAM,GAAG,IAAAC,gCAAe,EAACJ,qBAAqB,CAAC;MAC1E,CAAE,OAAMlB,KAAK,CAACqB,aAAc,EAAC,GAAG,IAAAE,wBAAW,EAACL,qBAAqB,CAAC;MAClE,CAAE,cAAalB,KAAK,CAACqB,aAAc,EAAC,GAAG,IAAAG,sCAAkB,EAACN,qBAAqB;IACnF,CAAC;IACDb,QAAQ,EAAE;MACN,CAAE,SAAQL,KAAK,CAACW,eAAgB,EAAC,GAC7B,IAAAc,4CAAqB,EAACC,4BAAa,CAAC,CAACR,qBAAqB,CAAC;MAC/D,CAAE,SAAQlB,KAAK,CAACW,eAAgB,EAAC,GAC7B,IAAAc,4CAAqB,EAACE,4BAAa,CAAC,CAACT,qBAAqB,CAAC;MAC/D,CAAE,WAAUlB,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAiB,gCAAe,EAACV,qBAAqB,CAAC;MAC5E,CAAE,OAAMlB,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAkB,wBAAW,EAACX,qBAAqB,CAAC;MACpE,CAAE,SAAQlB,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAmB,4BAAa,EAACZ,qBAAqB,CAAC;MACxE,CAAE,UAASlB,KAAK,CAACW,eAAgB,SAAQ,GACrC,IAAAoB,4CAAqB,EAACb,qBAAqB,CAAC;MAChD,CAAE,iBAAgBlB,KAAK,CAACqB,aAAc,EAAC,GAAG,IAAAW,4CAAqB,EAACd,qBAAqB,CAAC;MACtF,CAAE,UAASlB,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAsB,8BAAc,EAACf,qBAAqB,CAAC;MAC1E,CAAE,YAAWlB,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAuB,kCAAgB,EAAChB,qBAAqB,CAAC;MAC9E,CAAE,YAAWlB,KAAK,CAACW,eAAgB,EAAC,GAAG,IAAAwB,kCAAgB,EAACjB,qBAAqB,CAAC;MAC9E,CAAE,SAAQlB,KAAK,CAACW,eAAgB,MAAK,GACjC,IAAAc,4CAAqB,EAACW,oCAAiB,CAAC,CAAClB,qBAAqB;IACtE,CAAC;IACD,GAAGT,cAAc;IACjB,CAAE,GAAET,KAAK,CAACW,eAAgB,MAAK,GAAG;MAC9B0B,KAAKA,CAACtB,KAAe,EAAE;QACnB,OAAO,IAAAuB,4BAAa,EAACtC,KAAK,EAAEe,KAAK,CAAC;MACtC,CAAC;MACDwB,WAAW,EAAEA,CAACxB,KAAe,EAAEyB,CAAM,EAAEC,OAAmB,KAAK;QAC3D,IAAI,CAACzC,KAAK,CAAC0C,kBAAkB,EAAE;UAC3B,OAAO,EAAE;QACb;QACA,MAAMC,KAAK,GAAG3C,KAAK,CAACE,MAAM,CAAC0C,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,OAAO,KAAK9C,KAAK,CAAC0C,kBAAkB,CAAC;QAC5E,IAAI,CAACC,KAAK,EAAE;UACR,OAAO,EAAE;QACb;QAEA,OAAO,IAAAI,4CAA8B,EAAC;UAClCN,OAAO;UACPzC,KAAK;UACL2C,KAAK;UACLK,KAAK,EAAEjC,KAAK,CAACkC,MAAM,CAACN,KAAK,CAACG,OAAO;QACrC,CAAC,CAAC;MACN,CAAC;MACDI,KAAK,EAAGnC,KAAe,IAAK;QACxB,OAAO,IAAAoC,4BAAa,EAACnD,KAAK,EAAEe,KAAK,CAAC;MACtC,CAAC;MACDqC,MAAMA,CAACrC,KAAe,EAAE;QACpB,OAAOA,KAAK,CAACqC,MAAM;MACvB,CAAC;MACDC,IAAI,EAAGtC,KAAe,IAAK;QACvB,OAAOA,KAAK,CAACE,IAAI,IAAI,CAAC,CAAC;MAC3B,CAAC;MACD,MAAMqC,SAASA,CAACvC,KAAe,EAAEyB,CAAM,EAAEC,OAAmB,EAAE;QAC1D,MAAMa,SAAS,GAAG,MAAMb,OAAO,CAACc,GAAG,CAACC,iBAAiB,CAACxD,KAAK,EAAEe,KAAK,CAAC0C,OAAO,CAAC;QAC3E,OAAOH,SAAS,CAACI,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACC,OAAO,GAAGF,CAAC,CAACE,OAAO,CAAC;MAC1D;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAhE,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_resolveGet","require","_resolveList","_resolveListDeleted","_resolveGetRevisions","_resolveGetByIds","_resolveCreate","_resolveUpdate","_resolveValidate","_resolveMove","_resolveDelete","_resolveRestoreFromBin","_resolveDeleteMultiple","_resolvePublish","_resolveRepublish","_resolveUnpublish","_resolveCreateFrom","_normalizeGraphQlInput","_createFieldResolvers","_getEntryTitle","_getEntryImage","_entryStorage","createManageResolvers","models","model","fieldTypePlugins","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","fields","isRoot","extraResolvers","wbyAco_location","entry","location","meta","resolverFactoryParams","Query","resolveGet","resolveGetRevisions","pluralApiName","resolveGetByIds","resolveList","resolveListDeleted","Mutation","normalizeGraphQlInput","resolveCreate","resolveUpdate","resolveValidate","resolveMove","resolveDelete","resolveRestoreFromBin","resolveDeleteMultiple","resolvePublish","resolveRepublish","resolveUnpublish","resolveCreateFrom","title","getEntryTitle","description","_","context","descriptionFieldId","field","find","f","fieldId","entryFieldFromStorageTransform","value","values","image","getEntryImage","status","data","revisions","cms","getEntryRevisions","entryId","sort","a","b","version","exports"],"sources":["createManageResolvers.ts"],"sourcesContent":["import { CmsContext, CmsEntry, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet\";\nimport { resolveList } from \"./resolvers/manage/resolveList\";\nimport { resolveListDeleted } from \"./resolvers/manage/resolveListDeleted\";\nimport { resolveGetRevisions } from \"./resolvers/manage/resolveGetRevisions\";\nimport { resolveGetByIds } from \"./resolvers/manage/resolveGetByIds\";\nimport { resolveCreate } from \"./resolvers/manage/resolveCreate\";\nimport { resolveUpdate } from \"./resolvers/manage/resolveUpdate\";\nimport { resolveValidate } from \"./resolvers/manage/resolveValidate\";\nimport { resolveMove } from \"./resolvers/manage/resolveMove\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete\";\nimport { resolveRestoreFromBin } from \"./resolvers/manage/resolveRestoreFromBin\";\nimport { resolveDeleteMultiple } from \"./resolvers/manage/resolveDeleteMultiple\";\nimport { resolvePublish } from \"./resolvers/manage/resolvePublish\";\nimport { resolveRepublish } from \"./resolvers/manage/resolveRepublish\";\nimport { resolveUnpublish } from \"./resolvers/manage/resolveUnpublish\";\nimport { resolveCreateFrom } from \"./resolvers/manage/resolveCreateFrom\";\nimport { normalizeGraphQlInput } from \"./resolvers/manage/normalizeGraphQlInput\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\n\ninterface CreateManageResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\ninterface CreateManageResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateManageResolversParams): any;\n}\n\nexport const createManageResolvers: CreateManageResolvers = ({\n models,\n model,\n fieldTypePlugins\n}) => {\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true,\n // These are extra fields we want to apply to field resolvers of \"gqlType\"\n extraResolvers: {\n /**\n * Advanced Content Organization\n */\n wbyAco_location: async (entry: CmsEntry) => {\n return entry.location || null;\n },\n meta(entry) {\n return entry;\n }\n }\n });\n\n const resolverFactoryParams = { model, fieldTypePlugins };\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet(resolverFactoryParams),\n [`get${model.singularApiName}Revisions`]: resolveGetRevisions(resolverFactoryParams),\n [`get${model.pluralApiName}ByIds`]: resolveGetByIds(resolverFactoryParams),\n [`list${model.pluralApiName}`]: resolveList(resolverFactoryParams),\n [`listDeleted${model.pluralApiName}`]: resolveListDeleted(resolverFactoryParams)\n },\n Mutation: {\n [`create${model.singularApiName}`]:\n normalizeGraphQlInput(resolveCreate)(resolverFactoryParams),\n [`update${model.singularApiName}`]:\n normalizeGraphQlInput(resolveUpdate)(resolverFactoryParams),\n [`validate${model.singularApiName}`]: resolveValidate(resolverFactoryParams),\n [`move${model.singularApiName}`]: resolveMove(resolverFactoryParams),\n [`delete${model.singularApiName}`]: resolveDelete(resolverFactoryParams),\n [`restore${model.singularApiName}FromBin`]:\n resolveRestoreFromBin(resolverFactoryParams),\n [`deleteMultiple${model.pluralApiName}`]: resolveDeleteMultiple(resolverFactoryParams),\n [`publish${model.singularApiName}`]: resolvePublish(resolverFactoryParams),\n [`republish${model.singularApiName}`]: resolveRepublish(resolverFactoryParams),\n [`unpublish${model.singularApiName}`]: resolveUnpublish(resolverFactoryParams),\n [`create${model.singularApiName}From`]:\n normalizeGraphQlInput(resolveCreateFrom)(resolverFactoryParams)\n },\n ...fieldResolvers,\n [`${model.singularApiName}Meta`]: {\n title(entry: CmsEntry) {\n return getEntryTitle(model, entry);\n },\n description: (entry: CmsEntry, _: any, context: CmsContext) => {\n if (!model.descriptionFieldId) {\n return \"\";\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return \"\";\n }\n\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: entry.values[field.fieldId]\n });\n },\n image: (entry: CmsEntry) => {\n return getEntryImage(model, entry);\n },\n status(entry: CmsEntry) {\n return entry.status;\n },\n data: (entry: CmsEntry) => {\n return entry.meta || {};\n },\n async revisions(entry: CmsEntry, _: any, context: CmsContext) {\n const revisions = await context.cms.getEntryRevisions(model, entry.entryId);\n return revisions.sort((a, b) => b.version - a.version);\n }\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_renderListFilterFields","require","_renderSortEnum","_renderGetFilterFields","_renderInputFields","_renderFields","_constants","createManageSDL","models","model","fieldTypePlugins","sorterPlugins","inputFields","renderInputFields","fields","length","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","renderFields","singularApiName","singularName","pluralApiName","pluralName","inputGqlFields","map","f","join","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","description","typeDefs","exports"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateManageSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\n\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n fields: model.fields,\n fieldTypePlugins\n });\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const { singularApiName: singularName, pluralApiName: pluralName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n return `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n \n publishedOn: DateTime @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'firstPublishedOn' or 'lastPublishedOn' field.\")\n ownedBy: CmsIdentity @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'createdBy' field.\")\n \n meta: ${singularName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n # Advanced Content Organization - make required in 5.38.0\n wbyAco_location: WbyAcoLocation\n }\n\n type ${singularName}Meta {\n modelId: String\n version: Int\n locked: Boolean\n \n status: String\n \"\"\"\n CAUTION: this field is resolved by making an extra query to DB.\n RECOMMENDATION: Use it only with \"get\" queries (avoid in \"list\")\n \"\"\"\n revisions: [${singularName}!]\n title: String\n description: String\n image: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n\n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}Input {\n id: ID\n \n # Set status of the entry.\n status: String\n \n ${onByMetaInputGqlFields}\n \n wbyAco_location: WbyAcoLocationInput\n \n ${inputGqlFields}\n \n }\n \n input ${singularName}GetWhereInput {\n ${getFilterFieldsRender}\n }\n\n input ${singularName}ListWhereInput {\n wbyAco_location: WbyAcoLocationWhereInput\n ${listFilterFieldsRender}\n AND: [${singularName}ListWhereInput!]\n OR: [${singularName}ListWhereInput!]\n }\n\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n type ${singularName}MoveResponse {\n data: Boolean\n error: CmsError\n }\n\n type ${singularName}ArrayResponse {\n data: [${singularName}]\n error: CmsError\n }\n\n type ${singularName}ListResponse {\n data: [${singularName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n\n enum ${singularName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type Query {\n get${singularName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${singularName}Response\n \n get${singularName}Revisions(id: ID!): ${singularName}ArrayResponse\n \n get${pluralName}ByIds(revisions: [ID!]!): ${singularName}ArrayResponse\n \n list${pluralName} (\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n search: String\n ): ${singularName}ListResponse\n \n listDeleted${pluralName} (\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n search: String\n ): ${singularName}ListResponse\n }\n\n extend type Mutation {\n create${singularName}(data: ${singularName}Input!, options: CreateCmsEntryOptionsInput): ${singularName}Response\n\n create${singularName}From(revision: ID!, data: ${singularName}Input, options: CreateRevisionCmsEntryOptionsInput): ${singularName}Response\n \n update${singularName}(revision: ID!, data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n\n validate${singularName}(revision: ID, data: ${singularName}Input!): CmsEntryValidationResponse!\n \n move${singularName}(revision: ID!, folderId: ID!): ${singularName}MoveResponse\n\n delete${singularName}(revision: ID!, options: CmsDeleteEntryOptions): CmsDeleteResponse\n \n restore${singularName}FromBin(revision: ID!): ${singularName}Response\n\n deleteMultiple${pluralName}(entries: [ID!]!): CmsDeleteMultipleResponse!\n \n publish${singularName}(revision: ID!): ${singularName}Response\n \n republish${singularName}(revision: ID!): ${singularName}Response\n \n unpublish${singularName}(revision: ID!): ${singularName}Response\n }\n `;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_renderListFilterFields","require","_renderSortEnum","_renderGetFilterFields","_renderInputFields","_renderFields","_constants","createManageSDL","models","model","fieldTypePlugins","sorterPlugins","inputFields","renderInputFields","fields","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","renderFields","singularApiName","singularName","pluralApiName","pluralName","inputGqlFields","map","f","join","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","description","typeDefs","exports"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateManageSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\n\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n fields: model.fields,\n fieldTypePlugins\n });\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const { singularApiName: singularName, pluralApiName: pluralName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n return `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n \n publishedOn: DateTime @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'firstPublishedOn' or 'lastPublishedOn' field.\")\n ownedBy: CmsIdentity @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'createdBy' field.\")\n \n meta: ${singularName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n # Advanced Content Organization - make required in 5.38.0\n wbyAco_location: WbyAcoLocation\n }\n\n type ${singularName}Meta {\n modelId: String\n version: Int\n locked: Boolean\n \n status: String\n \"\"\"\n CAUTION: this field is resolved by making an extra query to DB.\n RECOMMENDATION: Use it only with \"get\" queries (avoid in \"list\")\n \"\"\"\n revisions: [${singularName}!]\n title: String\n description: String\n image: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n\n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}Input {\n id: ID\n \n # Set status of the entry.\n status: String\n \n ${onByMetaInputGqlFields}\n \n wbyAco_location: WbyAcoLocationInput\n \n ${inputGqlFields}\n \n }\n \n input ${singularName}GetWhereInput {\n ${getFilterFieldsRender}\n }\n\n input ${singularName}ListWhereInput {\n wbyAco_location: WbyAcoLocationWhereInput\n ${listFilterFieldsRender}\n AND: [${singularName}ListWhereInput!]\n OR: [${singularName}ListWhereInput!]\n }\n\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n type ${singularName}MoveResponse {\n data: Boolean\n error: CmsError\n }\n\n type ${singularName}ArrayResponse {\n data: [${singularName}]\n error: CmsError\n }\n\n type ${singularName}ListResponse {\n data: [${singularName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n\n enum ${singularName}ListSorter {\n ${sortEnumRender}\n }\n\n extend type Query {\n get${singularName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${singularName}Response\n \n get${singularName}Revisions(id: ID!): ${singularName}ArrayResponse\n \n get${pluralName}ByIds(revisions: [ID!]!): ${singularName}ArrayResponse\n \n list${pluralName} (\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n search: String\n ): ${singularName}ListResponse\n \n listDeleted${pluralName} (\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n search: String\n ): ${singularName}ListResponse\n }\n\n extend type Mutation {\n create${singularName}(data: ${singularName}Input!, options: CreateCmsEntryOptionsInput): ${singularName}Response\n\n create${singularName}From(revision: ID!, data: ${singularName}Input, options: CreateRevisionCmsEntryOptionsInput): ${singularName}Response\n \n update${singularName}(revision: ID!, data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n\n validate${singularName}(revision: ID, data: ${singularName}Input!): CmsEntryValidationResponse!\n \n move${singularName}(revision: ID!, folderId: ID!): ${singularName}MoveResponse\n\n delete${singularName}(revision: ID!, options: CmsDeleteEntryOptions): CmsDeleteResponse\n \n restore${singularName}FromBin(revision: ID!): ${singularName}Response\n\n deleteMultiple${pluralName}(entries: [ID!]!): CmsDeleteMultipleResponse!\n \n publish${singularName}(revision: ID!): ${singularName}Response\n \n republish${singularName}(revision: ID!): ${singularName}Response\n \n unpublish${singularName}(revision: ID!): ${singularName}Response\n }\n `;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,11 +12,6 @@ const createPreviewResolvers = ({
|
|
|
12
12
|
model,
|
|
13
13
|
fieldTypePlugins
|
|
14
14
|
}) => {
|
|
15
|
-
if (model.fields.length === 0) {
|
|
16
|
-
return {
|
|
17
|
-
Query: {}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
15
|
const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
|
|
21
16
|
endpointType: "read",
|
|
22
17
|
models,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_resolveGet","require","_resolveList","_createFieldResolvers","createPreviewResolvers","models","model","fieldTypePlugins","
|
|
1
|
+
{"version":3,"names":["_resolveGet","require","_resolveList","_createFieldResolvers","createPreviewResolvers","models","model","fieldTypePlugins","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","fields","isRoot","Query","resolveGet","pluralApiName","resolveList","exports"],"sources":["createPreviewResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { resolveGet } from \"./resolvers/preview/resolveGet\";\nimport { resolveList } from \"./resolvers/preview/resolveList\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\n\ninterface CreateReadResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nexport interface CreateReadResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateReadResolversParams): any;\n}\n\nexport const createPreviewResolvers: CreateReadResolvers = ({\n models,\n model,\n fieldTypePlugins\n}) => {\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"read\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true\n });\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet({ model, fieldTypePlugins }),\n [`list${model.pluralApiName}`]: resolveList({ model, fieldTypePlugins })\n },\n ...fieldResolvers\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AAcO,MAAMG,sBAA2C,GAAGA,CAAC;EACxDC,MAAM;EACNC,KAAK;EACLC;AACJ,CAAC,KAAK;EACF,MAAMC,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAE,MAAM;IACpBL,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMI,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,KAAK,CAACO,eAAe;IAClCC,MAAM,EAAER,KAAK,CAACQ,MAAM;IACpBC,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,OAAO;IACHC,KAAK,EAAE;MACH,CAAE,MAAKV,KAAK,CAACO,eAAgB,EAAC,GAAG,IAAAI,sBAAU,EAAC;QAAEX,KAAK;QAAEC;MAAiB,CAAC,CAAC;MACxE,CAAE,OAAMD,KAAK,CAACY,aAAc,EAAC,GAAG,IAAAC,wBAAW,EAAC;QAAEb,KAAK;QAAEC;MAAiB,CAAC;IAC3E,CAAC;IACD,GAAGI;EACP,CAAC;AACL,CAAC;AAACS,OAAA,CAAAhB,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -12,11 +12,6 @@ const createReadResolvers = ({
|
|
|
12
12
|
model,
|
|
13
13
|
fieldTypePlugins
|
|
14
14
|
}) => {
|
|
15
|
-
if (model.fields.length === 0) {
|
|
16
|
-
return {
|
|
17
|
-
Query: {}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
15
|
const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
|
|
21
16
|
endpointType: "read",
|
|
22
17
|
models,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_resolveGet","require","_resolveList","_createFieldResolvers","createReadResolvers","models","model","fieldTypePlugins","
|
|
1
|
+
{"version":3,"names":["_resolveGet","require","_resolveList","_createFieldResolvers","createReadResolvers","models","model","fieldTypePlugins","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","fields","isRoot","Query","resolveGet","pluralApiName","resolveList","modelId","exports"],"sources":["createReadResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { resolveGet } from \"./resolvers/read/resolveGet\";\nimport { resolveList } from \"./resolvers/read/resolveList\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\n\ninterface CreateReadResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nexport interface CreateReadResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateReadResolversParams): any;\n}\n\nexport const createReadResolvers: CreateReadResolvers = ({ models, model, fieldTypePlugins }) => {\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"read\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true\n });\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet({ model, fieldTypePlugins }),\n [`list${model.pluralApiName}`]: resolveList({ model, fieldTypePlugins })\n },\n [model.singularApiName]: {\n modelId: () => {\n return model.modelId;\n }\n },\n ...fieldResolvers\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AAcO,MAAMG,mBAAwC,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAiB,CAAC,KAAK;EAC7F,MAAMC,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAE,MAAM;IACpBL,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMI,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,KAAK,CAACO,eAAe;IAClCC,MAAM,EAAER,KAAK,CAACQ,MAAM;IACpBC,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,OAAO;IACHC,KAAK,EAAE;MACH,CAAE,MAAKV,KAAK,CAACO,eAAgB,EAAC,GAAG,IAAAI,sBAAU,EAAC;QAAEX,KAAK;QAAEC;MAAiB,CAAC,CAAC;MACxE,CAAE,OAAMD,KAAK,CAACY,aAAc,EAAC,GAAG,IAAAC,wBAAW,EAAC;QAAEb,KAAK;QAAEC;MAAiB,CAAC;IAC3E,CAAC;IACD,CAACD,KAAK,CAACO,eAAe,GAAG;MACrBO,OAAO,EAAEA,CAAA,KAAM;QACX,OAAOd,KAAK,CAACc,OAAO;MACxB;IACJ,CAAC;IACD,GAAGT;EACP,CAAC;AACL,CAAC;AAACU,OAAA,CAAAjB,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -23,9 +23,6 @@ const createReadSDL = ({
|
|
|
23
23
|
type,
|
|
24
24
|
fieldTypePlugins
|
|
25
25
|
});
|
|
26
|
-
if (fieldsRender.length === 0) {
|
|
27
|
-
return "";
|
|
28
|
-
}
|
|
29
26
|
const listFilterFieldsRender = (0, _renderListFilterFields.renderListFilterFields)({
|
|
30
27
|
model,
|
|
31
28
|
fields: model.fields,
|
|
@@ -58,7 +55,7 @@ const createReadSDL = ({
|
|
|
58
55
|
entryId: String!
|
|
59
56
|
${hasModelIdField ? "" : "modelId: String!"}
|
|
60
57
|
|
|
61
|
-
${onByMetaGqlFields}
|
|
58
|
+
${onByMetaGqlFields}
|
|
62
59
|
|
|
63
60
|
publishedOn: DateTime @deprecated(reason: "Field was removed with the 5.39.0 release. Use 'firstPublishedOn' or 'lastPublishedOn' field.")
|
|
64
61
|
ownedBy: CmsIdentity @deprecated(reason: "Field was removed with the 5.39.0 release. Use 'createdBy' field.")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_renderListFilterFields","require","_renderSortEnum","_renderFields","_renderGetFilterFields","_constants","createReadSDL","models","model","fieldTypePlugins","sorterPlugins","type","fieldsRender","renderFields","fields","
|
|
1
|
+
{"version":3,"names":["_renderListFilterFields","require","_renderSortEnum","_renderFields","_renderGetFilterFields","_constants","createReadSDL","models","model","fieldTypePlugins","sorterPlugins","type","fieldsRender","renderFields","fields","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","hasModelIdField","some","f","fieldId","singularApiName","singularName","pluralApiName","pluralName","onByMetaGqlFields","ENTRY_META_FIELDS","map","field","fieldType","isDateTimeEntryMetaField","join","description","typeDefs","filter","Boolean","exports"],"sources":["createReadSDL.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, ApiEndpoint } from \"~/types\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateReadSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\n\ninterface CreateReadSDL {\n (params: CreateReadSDLParams): string;\n}\n\nexport const createReadSDL: CreateReadSDL = ({\n models,\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const type: ApiEndpoint = \"read\";\n\n const fieldsRender = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n const listFilterFieldsRender = renderListFilterFields({\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n const sortEnumRender = renderSortEnum({\n model,\n fields: model.fields,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n fields: model.fields,\n fieldTypePlugins\n });\n\n const hasModelIdField = model.fields.some(f => f.fieldId === \"modelId\");\n\n const { singularApiName: singularName, pluralApiName: pluralName } = model;\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n return `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n ${hasModelIdField ? \"\" : \"modelId: String!\"}\n \n ${onByMetaGqlFields}\n \n publishedOn: DateTime @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'firstPublishedOn' or 'lastPublishedOn' field.\")\n ownedBy: CmsIdentity @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'createdBy' field.\")\n \n ${fieldsRender.map(f => f.fields).join(\"\\n\")}\n }\n \n ${fieldsRender\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n input ${singularName}GetWhereInput {\n ${getFilterFieldsRender}\n }\n \n \n input ${singularName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${singularName}ListWhereInput!]\n OR: [${singularName}ListWhereInput!]\n }\n \n \n enum ${singularName}ListSorter {\n ${sortEnumRender}\n }\n \n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n type ${singularName}ListResponse {\n data: [${singularName}]\n meta: CmsListMeta\n error: CmsError\n }\n \n extend type Query {\n get${singularName}(where: ${singularName}GetWhereInput!): ${singularName}Response\n\n list${pluralName}(\n where: ${singularName}ListWhereInput\n sort: [${singularName}ListSorter]\n limit: Int\n after: String\n search: String\n ): ${singularName}ListResponse\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AAaO,MAAMK,aAA4B,GAAGA,CAAC;EACzCC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,MAAMC,IAAiB,GAAG,MAAM;EAEhC,MAAMC,YAAY,GAAG,IAAAC,0BAAY,EAAC;IAC9BN,MAAM;IACNC,KAAK;IACLM,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBH,IAAI;IACJF;EACJ,CAAC,CAAC;EACF,MAAMM,sBAAsB,GAAG,IAAAC,8CAAsB,EAAC;IAClDR,KAAK;IACLM,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBH,IAAI;IACJF;EACJ,CAAC,CAAC;EACF,MAAMQ,cAAc,GAAG,IAAAC,8BAAc,EAAC;IAClCV,KAAK;IACLM,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBL,gBAAgB;IAChBC;EACJ,CAAC,CAAC;EACF,MAAMS,qBAAqB,GAAG,IAAAC,4CAAqB,EAAC;IAChDN,MAAM,EAAEN,KAAK,CAACM,MAAM;IACpBL;EACJ,CAAC,CAAC;EAEF,MAAMY,eAAe,GAAGb,KAAK,CAACM,MAAM,CAACQ,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,OAAO,KAAK,SAAS,CAAC;EAEvE,MAAM;IAAEC,eAAe,EAAEC,YAAY;IAAEC,aAAa,EAAEC;EAAW,CAAC,GAAGpB,KAAK;EAE1E,MAAMqB,iBAAiB,GAAGC,4BAAiB,CAACC,GAAG,CAACC,KAAK,IAAI;IACrD,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,aAAa;IAE9E,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACE,IAAI,CAAC,IAAI,CAAC;EAEb,OAAQ;AACZ,aAAa3B,KAAK,CAAC4B,WAAW,IAAIV,YAAa;AAC/C,eAAeA,YAAa;AAC5B;AACA;AACA,cAAcL,eAAe,GAAG,EAAE,GAAG,kBAAmB;AACxD;AACA,cAAcQ,iBAAkB;AAChC;AACA;AACA;AACA;AACA,cAAcjB,YAAY,CAACmB,GAAG,CAACR,CAAC,IAAIA,CAAC,CAACT,MAAM,CAAC,CAACqB,IAAI,CAAC,IAAI,CAAE;AACzD;AACA;AACA,UAAUvB,YAAY,CACTmB,GAAG,CAACR,CAAC,IAAIA,CAAC,CAACc,QAAQ,CAAC,CACpBC,MAAM,CAACC,OAAO,CAAC,CACfJ,IAAI,CAAC,IAAI,CAAE;AACxB;AACA,gBAAgBT,YAAa;AAC7B,cAAcP,qBAAsB;AACpC;AACA;AACA;AACA,gBAAgBO,YAAa;AAC7B,cAAcX,sBAAuB;AACrC,oBAAoBW,YAAa;AACjC,mBAAmBA,YAAa;AAChC;AACA;AACA;AACA,eAAeA,YAAa;AAC5B,cAAcT,cAAe;AAC7B;AACA;AACA,eAAeS,YAAa;AAC5B,oBAAoBA,YAAa;AACjC;AACA;AACA;AACA,eAAeA,YAAa;AAC5B,qBAAqBA,YAAa;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiBA,YAAa,WAAUA,YAAa,oBAAmBA,YAAa;AACrF;AACA,kBAAkBE,UAAW;AAC7B,yBAAyBF,YAAa;AACtC,yBAAyBA,YAAa;AACtC;AACA;AACA;AACA,iBAAiBA,YAAa;AAC9B;AACA,KAAK;AACL,CAAC;AAACc,OAAA,CAAAlC,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -3,6 +3,6 @@ interface ResolveCreateArgs {
|
|
|
3
3
|
data: CreateCmsEntryInput;
|
|
4
4
|
options?: CreateCmsEntryOptionsInput;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
type ResolveCreate = ResolverFactory<any, ResolveCreateArgs>;
|
|
7
7
|
export declare const resolveCreate: ResolveCreate;
|
|
8
8
|
export {};
|
|
@@ -4,6 +4,6 @@ interface ResolveCreateFromArgs {
|
|
|
4
4
|
data: CreateFromCmsEntryInput;
|
|
5
5
|
options?: CreateRevisionCmsEntryOptionsInput;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
type ResolveCreateFrom = ResolverFactory<any, ResolveCreateFromArgs>;
|
|
8
8
|
export declare const resolveCreateFrom: ResolveCreateFrom;
|
|
9
9
|
export {};
|