@webiny/api-headless-cms 0.0.0-unstable.6e5425ee89 → 0.0.0-unstable.78f581c1d2

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.
Files changed (272) hide show
  1. package/context.js +15 -0
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.js +5 -0
  4. package/crud/contentEntry/afterDelete.js.map +1 -1
  5. package/crud/contentEntry/beforeCreate.js +3 -0
  6. package/crud/contentEntry/beforeCreate.js.map +1 -1
  7. package/crud/contentEntry/beforeUpdate.js +3 -0
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js +40 -1
  10. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  11. package/crud/contentEntry/markLockedFields.js +25 -2
  12. package/crud/contentEntry/markLockedFields.js.map +1 -1
  13. package/crud/contentEntry/referenceFieldsMapping.js +59 -5
  14. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  15. package/crud/contentEntry.crud.js +145 -27
  16. package/crud/contentEntry.crud.js.map +1 -1
  17. package/crud/contentModel/afterCreate.js +2 -0
  18. package/crud/contentModel/afterCreate.js.map +1 -1
  19. package/crud/contentModel/afterCreateFrom.js +2 -0
  20. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  21. package/crud/contentModel/afterDelete.js +2 -0
  22. package/crud/contentModel/afterDelete.js.map +1 -1
  23. package/crud/contentModel/afterUpdate.js +2 -0
  24. package/crud/contentModel/afterUpdate.js.map +1 -1
  25. package/crud/contentModel/beforeCreate.js +32 -4
  26. package/crud/contentModel/beforeCreate.js.map +1 -1
  27. package/crud/contentModel/beforeDelete.js +10 -0
  28. package/crud/contentModel/beforeDelete.js.map +1 -1
  29. package/crud/contentModel/beforeUpdate.js +5 -0
  30. package/crud/contentModel/beforeUpdate.js.map +1 -1
  31. package/crud/contentModel/contentModelManagerFactory.js +7 -0
  32. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  33. package/crud/contentModel/createFieldModels.js +6 -0
  34. package/crud/contentModel/createFieldModels.js.map +1 -1
  35. package/crud/contentModel/createFieldStorageId.js +2 -0
  36. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  37. package/crud/contentModel/fieldIdValidation.js +5 -0
  38. package/crud/contentModel/fieldIdValidation.js.map +1 -1
  39. package/crud/contentModel/idValidation.js +5 -0
  40. package/crud/contentModel/idValidation.js.map +1 -1
  41. package/crud/contentModel/models.js +8 -1
  42. package/crud/contentModel/models.js.map +1 -1
  43. package/crud/contentModel/systemFields.js.map +1 -1
  44. package/crud/contentModel/validateLayout.js +8 -0
  45. package/crud/contentModel/validateLayout.js.map +1 -1
  46. package/crud/contentModel/validateModel.js +8 -0
  47. package/crud/contentModel/validateModel.js.map +1 -1
  48. package/crud/contentModel/validateModelFields.js +60 -8
  49. package/crud/contentModel/validateModelFields.js.map +1 -1
  50. package/crud/contentModel.crud.js +96 -11
  51. package/crud/contentModel.crud.js.map +1 -1
  52. package/crud/contentModelGroup/beforeCreate.js +12 -0
  53. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  54. package/crud/contentModelGroup/beforeDelete.js +8 -0
  55. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  56. package/crud/contentModelGroup/beforeUpdate.js +5 -0
  57. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  58. package/crud/contentModelGroup.crud.js +47 -10
  59. package/crud/contentModelGroup.crud.js.map +1 -1
  60. package/crud/index.js +16 -0
  61. package/crud/index.js.map +1 -1
  62. package/crud/settings.crud.js +12 -0
  63. package/crud/settings.crud.js.map +1 -1
  64. package/crud/system.crud.js +37 -2
  65. package/crud/system.crud.js.map +1 -1
  66. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +13 -0
  67. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  68. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +53 -0
  69. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  70. package/fieldConverters/index.js +4 -0
  71. package/fieldConverters/index.js.map +1 -1
  72. package/graphql/buildSchemaPlugins.js +9 -5
  73. package/graphql/buildSchemaPlugins.js.map +1 -1
  74. package/graphql/graphQLHandlerFactory.js +28 -3
  75. package/graphql/graphQLHandlerFactory.js.map +1 -1
  76. package/graphql/index.js +8 -1
  77. package/graphql/index.js.map +1 -1
  78. package/graphql/schema/baseContentSchema.js +9 -1
  79. package/graphql/schema/baseContentSchema.js.map +1 -1
  80. package/graphql/schema/contentEntries.js +42 -2
  81. package/graphql/schema/contentEntries.js.map +1 -1
  82. package/graphql/schema/contentModelGroups.js +19 -2
  83. package/graphql/schema/contentModelGroups.js.map +1 -1
  84. package/graphql/schema/contentModels.js +18 -2
  85. package/graphql/schema/contentModels.js.map +1 -1
  86. package/graphql/schema/createFieldResolvers.js +21 -3
  87. package/graphql/schema/createFieldResolvers.js.map +1 -1
  88. package/graphql/schema/createManageResolvers.js +26 -0
  89. package/graphql/schema/createManageResolvers.js.map +1 -1
  90. package/graphql/schema/createManageSDL.js +14 -1
  91. package/graphql/schema/createManageSDL.js.map +1 -1
  92. package/graphql/schema/createPreviewResolvers.js +10 -0
  93. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  94. package/graphql/schema/createReadResolvers.js +10 -0
  95. package/graphql/schema/createReadResolvers.js.map +1 -1
  96. package/graphql/schema/createReadSDL.js +10 -0
  97. package/graphql/schema/createReadSDL.js.map +1 -1
  98. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -0
  99. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  100. package/graphql/schema/resolvers/manage/resolveCreate.js +3 -0
  101. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  102. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +3 -0
  103. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  104. package/graphql/schema/resolvers/manage/resolveDelete.js +6 -0
  105. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  106. package/graphql/schema/resolvers/manage/resolveGet.js +16 -0
  107. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  108. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -0
  109. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  110. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -0
  111. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  112. package/graphql/schema/resolvers/manage/resolveList.js +3 -0
  113. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  114. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -0
  115. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  116. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -0
  117. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  118. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -0
  119. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  120. package/graphql/schema/resolvers/manage/resolveUpdate.js +3 -0
  121. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  122. package/graphql/schema/resolvers/preview/resolveGet.js +8 -0
  123. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  124. package/graphql/schema/resolvers/preview/resolveList.js +3 -0
  125. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  126. package/graphql/schema/resolvers/read/resolveGet.js +8 -0
  127. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  128. package/graphql/schema/resolvers/read/resolveList.js +3 -0
  129. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  130. package/graphql/schema/schemaPlugins.js +19 -5
  131. package/graphql/schema/schemaPlugins.js.map +1 -1
  132. package/graphql/system.js +14 -1
  133. package/graphql/system.js.map +1 -1
  134. package/graphqlFields/boolean.js +12 -0
  135. package/graphqlFields/boolean.js.map +1 -1
  136. package/graphqlFields/datetime.js +17 -0
  137. package/graphqlFields/datetime.js.map +1 -1
  138. package/graphqlFields/file.js +8 -0
  139. package/graphqlFields/file.js.map +1 -1
  140. package/graphqlFields/helpers.js +10 -0
  141. package/graphqlFields/helpers.js.map +1 -1
  142. package/graphqlFields/index.js +11 -0
  143. package/graphqlFields/index.js.map +1 -1
  144. package/graphqlFields/longText.js +10 -0
  145. package/graphqlFields/longText.js.map +1 -1
  146. package/graphqlFields/number.js +12 -0
  147. package/graphqlFields/number.js.map +1 -1
  148. package/graphqlFields/object.js +36 -6
  149. package/graphqlFields/object.js.map +1 -1
  150. package/graphqlFields/ref.js +51 -17
  151. package/graphqlFields/ref.js.map +1 -1
  152. package/graphqlFields/richText.js +9 -0
  153. package/graphqlFields/richText.js.map +1 -1
  154. package/graphqlFields/text.js +11 -0
  155. package/graphqlFields/text.js.map +1 -1
  156. package/index.js +19 -0
  157. package/index.js.map +1 -1
  158. package/modelManager/DefaultCmsModelManager.js +16 -0
  159. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  160. package/modelManager/index.js +4 -0
  161. package/modelManager/index.js.map +1 -1
  162. package/package.json +24 -24
  163. package/parameters/context.js +4 -0
  164. package/parameters/context.js.map +1 -1
  165. package/parameters/header.js +11 -0
  166. package/parameters/header.js.map +1 -1
  167. package/parameters/index.js +8 -0
  168. package/parameters/index.js.map +1 -1
  169. package/parameters/manual.js +8 -1
  170. package/parameters/manual.js.map +1 -1
  171. package/parameters/path.js +11 -0
  172. package/parameters/path.js.map +1 -1
  173. package/plugins/CmsGroupPlugin.js +8 -0
  174. package/plugins/CmsGroupPlugin.js.map +1 -1
  175. package/plugins/CmsModelFieldConverterPlugin.js +5 -0
  176. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  177. package/plugins/CmsModelPlugin.js +38 -2
  178. package/plugins/CmsModelPlugin.js.map +1 -1
  179. package/plugins/CmsParametersPlugin.js +7 -0
  180. package/plugins/CmsParametersPlugin.js.map +1 -1
  181. package/plugins/StorageTransformPlugin.js +9 -0
  182. package/plugins/StorageTransformPlugin.js.map +1 -1
  183. package/plugins/index.js +10 -0
  184. package/plugins/index.js.map +1 -1
  185. package/storage/default.js +3 -0
  186. package/storage/default.js.map +1 -1
  187. package/storage/object.js +18 -0
  188. package/storage/object.js.map +1 -1
  189. package/types.js +62 -0
  190. package/types.js.map +1 -1
  191. package/upgrades/5.33.0/index.js +26 -3
  192. package/upgrades/5.33.0/index.js.map +1 -1
  193. package/upgrades/index.js +3 -0
  194. package/upgrades/index.js.map +1 -1
  195. package/utils/access.js +25 -11
  196. package/utils/access.js.map +1 -1
  197. package/utils/converters/Converter.js +13 -0
  198. package/utils/converters/Converter.js.map +1 -1
  199. package/utils/converters/ConverterCollection.js +32 -9
  200. package/utils/converters/ConverterCollection.js.map +1 -1
  201. package/utils/converters/valueKeyStorageConverter.js +26 -0
  202. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  203. package/utils/createTypeName.js +8 -0
  204. package/utils/createTypeName.js.map +1 -1
  205. package/utils/entryStorage.js +26 -10
  206. package/utils/entryStorage.js.map +1 -1
  207. package/utils/filterAsync.js +5 -0
  208. package/utils/filterAsync.js.map +1 -1
  209. package/utils/filterModelFields.js +9 -3
  210. package/utils/filterModelFields.js.map +1 -1
  211. package/utils/getEntryTitle.js +9 -0
  212. package/utils/getEntryTitle.js.map +1 -1
  213. package/utils/getSchemaFromFieldPlugins.js +6 -2
  214. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  215. package/utils/ownership.js +8 -0
  216. package/utils/ownership.js.map +1 -1
  217. package/utils/permissions.js +23 -8
  218. package/utils/permissions.js.map +1 -1
  219. package/utils/pluralizedTypeName.js +6 -0
  220. package/utils/pluralizedTypeName.js.map +1 -1
  221. package/utils/renderFields.js +8 -0
  222. package/utils/renderFields.js.map +1 -1
  223. package/utils/renderGetFilterFields.js +11 -0
  224. package/utils/renderGetFilterFields.js.map +1 -1
  225. package/utils/renderInputFields.js +8 -0
  226. package/utils/renderInputFields.js.map +1 -1
  227. package/utils/renderListFilterFields.js +9 -1
  228. package/utils/renderListFilterFields.js.map +1 -1
  229. package/utils/renderSortEnum.js +7 -0
  230. package/utils/renderSortEnum.js.map +1 -1
  231. package/utils/toSlug.js +4 -0
  232. package/utils/toSlug.js.map +1 -1
  233. package/validators/dateGte.js +7 -0
  234. package/validators/dateGte.js.map +1 -1
  235. package/validators/dateLte.js +7 -0
  236. package/validators/dateLte.js.map +1 -1
  237. package/validators/gte.js +8 -0
  238. package/validators/gte.js.map +1 -1
  239. package/validators/in.js +8 -0
  240. package/validators/in.js.map +1 -1
  241. package/validators/index.js +15 -0
  242. package/validators/index.js.map +1 -1
  243. package/validators/lte.js +8 -0
  244. package/validators/lte.js.map +1 -1
  245. package/validators/maxLength.js +8 -0
  246. package/validators/maxLength.js.map +1 -1
  247. package/validators/minLength.js +8 -0
  248. package/validators/minLength.js.map +1 -1
  249. package/validators/pattern.js +9 -0
  250. package/validators/pattern.js.map +1 -1
  251. package/validators/patternPlugins/email.js +2 -0
  252. package/validators/patternPlugins/email.js.map +1 -1
  253. package/validators/patternPlugins/index.js +8 -0
  254. package/validators/patternPlugins/index.js.map +1 -1
  255. package/validators/patternPlugins/lowerCase.js +2 -0
  256. package/validators/patternPlugins/lowerCase.js.map +1 -1
  257. package/validators/patternPlugins/lowerCaseSpace.js +2 -0
  258. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  259. package/validators/patternPlugins/upperCase.js +2 -0
  260. package/validators/patternPlugins/upperCase.js.map +1 -1
  261. package/validators/patternPlugins/upperCaseSpace.js +2 -0
  262. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  263. package/validators/patternPlugins/url.js +2 -0
  264. package/validators/patternPlugins/url.js.map +1 -1
  265. package/validators/required.js +5 -0
  266. package/validators/required.js.map +1 -1
  267. package/validators/timeGte.js +8 -0
  268. package/validators/timeGte.js.map +1 -1
  269. package/validators/timeLte.js +8 -0
  270. package/validators/timeLte.js.map +1 -1
  271. package/validators/unique.js +7 -0
  272. package/validators/unique.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","model","modelId","argsEntries","entries","entriesByModel","ref","includes","id","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","entryId","name","status","title","getEntryTitle","filter","Boolean","getContentEntry","entry","find","m","NotAuthorizedResponse","data","result","shift","createContentEntriesSchema","MANAGE","GraphQLSchemaPlugin","typeDefs","resolvers","CmsContentEntry","parent","_","getPublishedEntriesByIds","ex","Query","searchContentEntries","modelIds","fields","query","limit","modelManager","getModelManager","where","listLatest","search","undefined","savedOn","then","sort","a","b","Date","parse","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries"],"sources":["contentEntries.ts"],"sourcesContent":["import { Response } from \"@webiny/handler-graphql\";\nimport { CmsEntry, CmsContext, CmsModel, CmsEntryListWhere } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport WebinyError from \"@webiny/error\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n}\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (params: GetContentEntriesParams): Promise<Response> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return {\n id: item.id,\n entryId: item.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: item.status,\n title: getEntryTitle(model, item)\n };\n })\n );\n }, [] as CmsEntryRecord[])\n .filter(Boolean);\n\n return new Response(entries);\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response({\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry)\n });\n};\n\nexport const createContentEntriesSchema = (\n context: CmsContext\n): GraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n return new GraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsModelMeta {\n modelId: String\n name: String\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta\n status: String\n title: String\n published: CmsPublishedContentEntry\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return {\n id: entry.id,\n entryId: entry.entryId,\n title: getEntryTitle(model, entry)\n };\n } catch (ex) {\n return null;\n }\n }\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getModelManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n // We need `savedOn` to sort entries from latest to oldest\n savedOn: entry.savedOn\n };\n });\n });\n\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => Date.parse(b.savedOn) - Date.parse(a.savedOn))\n .slice(0, limit)\n );\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","model","modelId","argsEntries","entries","entriesByModel","ref","includes","id","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","entryId","name","status","title","getEntryTitle","filter","Boolean","getContentEntry","entry","find","m","NotAuthorizedResponse","data","result","shift","createContentEntriesSchema","MANAGE","GraphQLSchemaPlugin","typeDefs","resolvers","CmsContentEntry","parent","_","getPublishedEntriesByIds","ex","Query","searchContentEntries","modelIds","fields","query","limit","modelManager","getModelManager","where","listLatest","search","undefined","savedOn","then","sort","a","b","Date","parse","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries"],"sources":["contentEntries.ts"],"sourcesContent":["import { Response } from \"@webiny/handler-graphql\";\nimport { CmsEntry, CmsContext, CmsModel, CmsEntryListWhere } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport WebinyError from \"@webiny/error\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n}\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (params: GetContentEntriesParams): Promise<Response> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return {\n id: item.id,\n entryId: item.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: item.status,\n title: getEntryTitle(model, item)\n };\n })\n );\n }, [] as CmsEntryRecord[])\n .filter(Boolean);\n\n return new Response(entries);\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response({\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry)\n });\n};\n\nexport const createContentEntriesSchema = (\n context: CmsContext\n): GraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n return new GraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsModelMeta {\n modelId: String\n name: String\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta\n status: String\n title: String\n published: CmsPublishedContentEntry\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return {\n id: entry.id,\n entryId: entry.entryId,\n title: getEntryTitle(model, entry)\n };\n } catch (ex) {\n return null;\n }\n }\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getModelManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n // We need `savedOn` to sort entries from latest to oldest\n savedOn: entry.savedOn\n };\n });\n });\n\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => Date.parse(b.savedOn) - Date.parse(a.savedOn))\n .slice(0, limit)\n );\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n};\n"],"mappings":"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"}
@@ -4,13 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createGroupsSchema = void 0;
7
+
7
8
  var _handlerGraphql = require("@webiny/handler-graphql");
9
+
8
10
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
11
+
9
12
  var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
13
+
10
14
  const createGroupsSchema = context => {
11
15
  let manageSchema = "";
16
+
12
17
  if (context.cms.MANAGE) {
13
- manageSchema = /* GraphQL */`
18
+ manageSchema =
19
+ /* GraphQL */
20
+ `
14
21
  input CmsContentModelGroupInput {
15
22
  name: String!
16
23
  slug: String
@@ -48,7 +55,9 @@ const createGroupsSchema = context => {
48
55
  }
49
56
  `;
50
57
  }
58
+
51
59
  let resolvers = {};
60
+
52
61
  if (context.cms.MANAGE) {
53
62
  resolvers = {
54
63
  CmsContentModelGroup: {
@@ -60,6 +69,7 @@ const createGroupsSchema = context => {
60
69
  if (model.isPrivate === true) {
61
70
  return false;
62
71
  }
72
+
63
73
  return model.group.id === group.id;
64
74
  });
65
75
  },
@@ -71,6 +81,7 @@ const createGroupsSchema = context => {
71
81
  if (model.isPrivate === true) {
72
82
  return false;
73
83
  }
84
+
74
85
  return model.group === group.id;
75
86
  }).length;
76
87
  },
@@ -85,9 +96,11 @@ const createGroupsSchema = context => {
85
96
  id
86
97
  } = args;
87
98
  const group = await context.cms.getGroup(id);
99
+
88
100
  if (group !== null && group !== void 0 && group.isPrivate) {
89
101
  throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
90
102
  }
103
+
91
104
  return new _handlerGraphql.Response(group);
92
105
  } catch (e) {
93
106
  return new _handlerGraphql.ErrorResponse(e);
@@ -130,8 +143,11 @@ const createGroupsSchema = context => {
130
143
  }
131
144
  };
132
145
  }
146
+
133
147
  return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
134
- typeDefs: /* GraphQL */`
148
+ typeDefs:
149
+ /* GraphQL */
150
+ `
135
151
  type CmsContentModelGroup {
136
152
  id: ID!
137
153
  createdOn: DateTime
@@ -152,4 +168,5 @@ const createGroupsSchema = context => {
152
168
  resolvers
153
169
  });
154
170
  };
171
+
155
172
  exports.createGroupsSchema = createGroupsSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","security","disableAuthorization","models","listModels","enableAuthorization","filter","model","isPrivate","id","totalContentModels","length","plugin","plugins","byType","CmsGroupPlugin","type","some","item","contentModelGroup","Query","getContentModelGroup","args","getGroup","NotFoundError","Response","e","ErrorResponse","listContentModelGroups","__","groups","listGroups","Mutation","createContentModelGroup","createGroup","data","updateContentModelGroup","updateGroup","deleteContentModelGroup","deleteGroup","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\n\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\n\nexport const createGroupsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n manageSchema = /* GraphQL */ `\n input CmsContentModelGroupInput {\n name: String!\n slug: String\n description: String\n icon: String!\n }\n\n type CmsContentModelGroupResponse {\n data: CmsContentModelGroup\n error: CmsError\n }\n\n type CmsContentModelGroupListResponse {\n data: [CmsContentModelGroup]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModelGroup(id: ID): CmsContentModelGroupResponse\n listContentModelGroups: CmsContentModelGroupListResponse\n }\n\n extend type Mutation {\n createContentModelGroup(\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n updateContentModelGroup(\n id: ID!\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n deleteContentModelGroup(id: ID!): CmsDeleteResponse\n }\n `;\n }\n\n let resolvers: Resolvers<CmsContext> = {};\n\n if (context.cms.MANAGE) {\n resolvers = {\n CmsContentModelGroup: {\n contentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group.id === group.id;\n });\n },\n totalContentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group === group.id;\n }).length;\n },\n plugin: async (group, _, context: CmsContext): Promise<boolean> => {\n return context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .some(item => item.contentModelGroup.id === group.id);\n }\n },\n Query: {\n getContentModelGroup: async (_, args: any, context) => {\n try {\n const { id } = args;\n const group = await context.cms.getGroup(id);\n if (group?.isPrivate) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModelGroups: async (_, __, context) => {\n try {\n const groups = await context.cms.listGroups();\n return new Response(groups.filter(group => group.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n Mutation: {\n createContentModelGroup: async (_, args: any, context) => {\n try {\n const model = await context.cms.createGroup(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModelGroup: async (_, args: any, context) => {\n try {\n const group = await context.cms.updateGroup(args.id, args.data);\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModelGroup: async (_, args: any, context) => {\n try {\n await context.cms.deleteGroup(args.id);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n };\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsContentModelGroup {\n id: ID!\n createdOn: DateTime\n savedOn: DateTime\n name: String!\n contentModels: [CmsContentModel!]\n totalContentModels: Int!\n slug: String!\n description: String\n icon: String\n createdBy: CmsCreatedBy\n\n # Returns true if the content model group is registered via a plugin.\n plugin: Boolean!\n }\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":";;;;;;AAAA;AAGA;AAEA;AAEO,MAAMA,kBAAkB,GAAIC,OAAmB,IAAsC;EACxF,IAAIC,YAAY,GAAG,EAAE;EACrB,IAAID,OAAO,CAACE,GAAG,CAACC,MAAM,EAAE;IACpBF,YAAY,GAAG,aAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,IAAIG,SAAgC,GAAG,CAAC,CAAC;EAEzC,IAAIJ,OAAO,CAACE,GAAG,CAACC,MAAM,EAAE;IACpBC,SAAS,GAAG;MACRC,oBAAoB,EAAE;QAClBC,aAAa,EAAE,OAAOC,KAAK,EAAEC,CAAC,EAAER,OAAO,KAAK;UACxCA,OAAO,CAACS,QAAQ,CAACC,oBAAoB,EAAE;UACvC,MAAMC,MAAM,GAAG,MAAMX,OAAO,CAACE,GAAG,CAACU,UAAU,EAAE;UAC7CZ,OAAO,CAACS,QAAQ,CAACI,mBAAmB,EAAE;UACtC,OAAOF,MAAM,CAACG,MAAM,CAACC,KAAK,IAAI;YAC1B,IAAIA,KAAK,CAACC,SAAS,KAAK,IAAI,EAAE;cAC1B,OAAO,KAAK;YAChB;YACA,OAAOD,KAAK,CAACR,KAAK,CAACU,EAAE,KAAKV,KAAK,CAACU,EAAE;UACtC,CAAC,CAAC;QACN,CAAC;QACDC,kBAAkB,EAAE,OAAOX,KAAK,EAAEC,CAAC,EAAER,OAAO,KAAK;UAC7CA,OAAO,CAACS,QAAQ,CAACC,oBAAoB,EAAE;UACvC,MAAMC,MAAM,GAAG,MAAMX,OAAO,CAACE,GAAG,CAACU,UAAU,EAAE;UAC7CZ,OAAO,CAACS,QAAQ,CAACI,mBAAmB,EAAE;UACtC,OAAOF,MAAM,CAACG,MAAM,CAACC,KAAK,IAAI;YAC1B,IAAIA,KAAK,CAACC,SAAS,KAAK,IAAI,EAAE;cAC1B,OAAO,KAAK;YAChB;YACA,OAAOD,KAAK,CAACR,KAAK,KAAKA,KAAK,CAACU,EAAE;UACnC,CAAC,CAAC,CAACE,MAAM;QACb,CAAC;QACDC,MAAM,EAAE,OAAOb,KAAK,EAAEC,CAAC,EAAER,OAAmB,KAAuB;UAC/D,OAAOA,OAAO,CAACqB,OAAO,CACjBC,MAAM,CAAiBC,8BAAc,CAACC,IAAI,CAAC,CAC3CC,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACC,iBAAiB,CAACV,EAAE,KAAKV,KAAK,CAACU,EAAE,CAAC;QAC7D;MACJ,CAAC;MACDW,KAAK,EAAE;QACHC,oBAAoB,EAAE,OAAOrB,CAAC,EAAEsB,IAAS,EAAE9B,OAAO,KAAK;UACnD,IAAI;YACA,MAAM;cAAEiB;YAAG,CAAC,GAAGa,IAAI;YACnB,MAAMvB,KAAK,GAAG,MAAMP,OAAO,CAACE,GAAG,CAAC6B,QAAQ,CAACd,EAAE,CAAC;YAC5C,IAAIV,KAAK,aAALA,KAAK,eAALA,KAAK,CAAES,SAAS,EAAE;cAClB,MAAM,IAAIgB,6BAAa,CAAE,cAAaf,EAAG,kBAAiB,CAAC;YAC/D;YACA,OAAO,IAAIgB,wBAAQ,CAAC1B,KAAK,CAAC;UAC9B,CAAC,CAAC,OAAO2B,CAAC,EAAE;YACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;UAC/B;QACJ,CAAC;QACDE,sBAAsB,EAAE,OAAO5B,CAAC,EAAE6B,EAAE,EAAErC,OAAO,KAAK;UAC9C,IAAI;YACA,MAAMsC,MAAM,GAAG,MAAMtC,OAAO,CAACE,GAAG,CAACqC,UAAU,EAAE;YAC7C,OAAO,IAAIN,wBAAQ,CAACK,MAAM,CAACxB,MAAM,CAACP,KAAK,IAAIA,KAAK,CAACS,SAAS,KAAK,IAAI,CAAC,CAAC;UACzE,CAAC,CAAC,OAAOkB,CAAC,EAAE;YACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;UAC/B;QACJ;MACJ,CAAC;MACDM,QAAQ,EAAE;QACNC,uBAAuB,EAAE,OAAOjC,CAAC,EAAEsB,IAAS,EAAE9B,OAAO,KAAK;UACtD,IAAI;YACA,MAAMe,KAAK,GAAG,MAAMf,OAAO,CAACE,GAAG,CAACwC,WAAW,CAACZ,IAAI,CAACa,IAAI,CAAC;YACtD,OAAO,IAAIV,wBAAQ,CAAClB,KAAK,CAAC;UAC9B,CAAC,CAAC,OAAOmB,CAAC,EAAE;YACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;UAC/B;QACJ,CAAC;QACDU,uBAAuB,EAAE,OAAOpC,CAAC,EAAEsB,IAAS,EAAE9B,OAAO,KAAK;UACtD,IAAI;YACA,MAAMO,KAAK,GAAG,MAAMP,OAAO,CAACE,GAAG,CAAC2C,WAAW,CAACf,IAAI,CAACb,EAAE,EAAEa,IAAI,CAACa,IAAI,CAAC;YAC/D,OAAO,IAAIV,wBAAQ,CAAC1B,KAAK,CAAC;UAC9B,CAAC,CAAC,OAAO2B,CAAC,EAAE;YACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;UAC/B;QACJ,CAAC;QACDY,uBAAuB,EAAE,OAAOtC,CAAC,EAAEsB,IAAS,EAAE9B,OAAO,KAAK;UACtD,IAAI;YACA,MAAMA,OAAO,CAACE,GAAG,CAAC6C,WAAW,CAACjB,IAAI,CAACb,EAAE,CAAC;YACtC,OAAO,IAAIgB,wBAAQ,CAAC,IAAI,CAAC;UAC7B,CAAC,CAAC,OAAOC,CAAC,EAAE;YACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;UAC/B;QACJ;MACJ;IACJ,CAAC;EACL;EAEA,OAAO,IAAIc,wCAAmB,CAAa;IACvCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAchD,YAAa;AAC3B,SAAS;IACDG;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","security","disableAuthorization","models","listModels","enableAuthorization","filter","model","isPrivate","id","totalContentModels","length","plugin","plugins","byType","CmsGroupPlugin","type","some","item","contentModelGroup","Query","getContentModelGroup","args","getGroup","NotFoundError","Response","e","ErrorResponse","listContentModelGroups","__","groups","listGroups","Mutation","createContentModelGroup","createGroup","data","updateContentModelGroup","updateGroup","deleteContentModelGroup","deleteGroup","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\n\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\n\nexport const createGroupsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n manageSchema = /* GraphQL */ `\n input CmsContentModelGroupInput {\n name: String!\n slug: String\n description: String\n icon: String!\n }\n\n type CmsContentModelGroupResponse {\n data: CmsContentModelGroup\n error: CmsError\n }\n\n type CmsContentModelGroupListResponse {\n data: [CmsContentModelGroup]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModelGroup(id: ID): CmsContentModelGroupResponse\n listContentModelGroups: CmsContentModelGroupListResponse\n }\n\n extend type Mutation {\n createContentModelGroup(\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n updateContentModelGroup(\n id: ID!\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n deleteContentModelGroup(id: ID!): CmsDeleteResponse\n }\n `;\n }\n\n let resolvers: Resolvers<CmsContext> = {};\n\n if (context.cms.MANAGE) {\n resolvers = {\n CmsContentModelGroup: {\n contentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group.id === group.id;\n });\n },\n totalContentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group === group.id;\n }).length;\n },\n plugin: async (group, _, context: CmsContext): Promise<boolean> => {\n return context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .some(item => item.contentModelGroup.id === group.id);\n }\n },\n Query: {\n getContentModelGroup: async (_, args: any, context) => {\n try {\n const { id } = args;\n const group = await context.cms.getGroup(id);\n if (group?.isPrivate) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModelGroups: async (_, __, context) => {\n try {\n const groups = await context.cms.listGroups();\n return new Response(groups.filter(group => group.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n Mutation: {\n createContentModelGroup: async (_, args: any, context) => {\n try {\n const model = await context.cms.createGroup(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModelGroup: async (_, args: any, context) => {\n try {\n const group = await context.cms.updateGroup(args.id, args.data);\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModelGroup: async (_, args: any, context) => {\n try {\n await context.cms.deleteGroup(args.id);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n };\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsContentModelGroup {\n id: ID!\n createdOn: DateTime\n savedOn: DateTime\n name: String!\n contentModels: [CmsContentModel!]\n totalContentModels: Int!\n slug: String!\n description: String\n icon: String\n createdBy: CmsCreatedBy\n\n # Returns true if the content model group is registered via a plugin.\n plugin: Boolean!\n }\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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"}
@@ -4,20 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createModelsSchema = void 0;
7
+
7
8
  var _handlerGraphql = require("@webiny/handler-graphql");
9
+
8
10
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
11
+
9
12
  var _CmsModelPlugin = require("../../plugins/CmsModelPlugin");
13
+
10
14
  const createModelsSchema = context => {
11
15
  const resolvers = {
12
16
  Query: {
13
17
  getContentModel: async (_, args, context) => {
14
18
  try {
15
19
  const model = await context.cms.getModel(args.modelId);
20
+
16
21
  if ((model === null || model === void 0 ? void 0 : model.isPrivate) === true) {
17
22
  if (!model) {
18
23
  throw new _handlerGraphql.NotFoundError(`Content model "${args.modelId}" was not found!`);
19
24
  }
20
25
  }
26
+
21
27
  return new _handlerGraphql.Response(model);
22
28
  } catch (e) {
23
29
  return new _handlerGraphql.ErrorResponse(e);
@@ -39,6 +45,7 @@ const createModelsSchema = context => {
39
45
  }
40
46
  };
41
47
  let manageSchema = "";
48
+
42
49
  if (context.cms.MANAGE) {
43
50
  resolvers["Mutation"] = {
44
51
  createContentModel: async (_, args, context) => {
@@ -62,6 +69,7 @@ const createModelsSchema = context => {
62
69
  modelId,
63
70
  data
64
71
  } = args;
72
+
65
73
  try {
66
74
  const model = await context.cms.updateModel(modelId, data);
67
75
  return new _handlerGraphql.Response(model);
@@ -73,6 +81,7 @@ const createModelsSchema = context => {
73
81
  const {
74
82
  modelId
75
83
  } = args;
84
+
76
85
  try {
77
86
  await context.cms.deleteModel(modelId);
78
87
  return new _handlerGraphql.Response(true);
@@ -84,6 +93,7 @@ const createModelsSchema = context => {
84
93
  const {
85
94
  modelId
86
95
  } = args;
96
+
87
97
  try {
88
98
  const result = await context.cms.initializeModel(modelId);
89
99
  return new _handlerGraphql.Response(result);
@@ -92,7 +102,9 @@ const createModelsSchema = context => {
92
102
  }
93
103
  }
94
104
  };
95
- manageSchema = /* GraphQL */`
105
+ manageSchema =
106
+ /* GraphQL */
107
+ `
96
108
  input CmsPredefinedValueInput {
97
109
  label: String!
98
110
  value: String!
@@ -182,8 +194,11 @@ const createModelsSchema = context => {
182
194
  }
183
195
  `;
184
196
  }
197
+
185
198
  return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
186
- typeDefs: /* GraphQL */`
199
+ typeDefs:
200
+ /* GraphQL */
201
+ `
187
202
  type CmsFieldValidation {
188
203
  name: String!
189
204
  message: String
@@ -262,4 +277,5 @@ const createModelsSchema = context => {
262
277
  resolvers
263
278
  });
264
279
  };
280
+
265
281
  exports.createModelsSchema = createModelsSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModel","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModel: {\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId);\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n initializeModel(modelId: ID!): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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ACJ,CAAC;MACD2B,eAAe,EAAE,OAAOpC,CAAC,EAAEC,IAAI,EAAEL,OAAO,KAAK;QACzC,MAAM;UAAES;QAAQ,CAAC,GAAGJ,IAAI;QAExB,IAAI;UACA,MAAMoC,MAAM,GAAG,MAAMzC,OAAO,CAACO,GAAG,CAACiC,eAAe,CAAC/B,OAAO,CAAC;UACzD,OAAO,IAAIG,wBAAQ,CAAC6B,MAAM,CAAC;QAC/B,CAAC,CAAC,OAAO5B,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IAEDgB,YAAY,GAAG,aAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,OAAO,IAAIa,wCAAmB,CAAa;IACvCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SAAS;IACD5B;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModel","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModel: {\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId);\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n initializeModel(modelId: ID!): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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H,CAHD,CAGE,OAAOC,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CAlCmB;MAmCpB2B,eAAe,EAAE,OAAOpC,CAAP,EAAUC,IAAV,EAAgBL,OAAhB,KAA4B;QACzC,MAAM;UAAES;QAAF,IAAcJ,IAApB;;QAEA,IAAI;UACA,MAAMoC,MAAM,GAAG,MAAMzC,OAAO,CAACO,GAAR,CAAYiC,eAAZ,CAA4B/B,OAA5B,CAArB;UACA,OAAO,IAAIG,wBAAJ,CAAa6B,MAAb,CAAP;QACH,CAHD,CAGE,OAAO5B,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IA5CmB,CAAxB;IA+CAgB,YAAY;IAAG;IAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAxFQ;EAyFH;;EAED,OAAO,IAAIa,wCAAJ,CAAoC;IACvCC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SA5E+C;IA6EvC5B;EA7EuC,CAApC,CAAP;AA+EH,CA/PM"}
@@ -1,26 +1,35 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createFieldResolversFactory = void 0;
9
+
8
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
9
12
  var _set = _interopRequireDefault(require("lodash/set"));
13
+
10
14
  var _entryStorage = require("../../utils/entryStorage");
15
+
11
16
  var _error = _interopRequireDefault(require("@webiny/error"));
17
+
12
18
  const getCreateResolver = (plugins, field, endpointType) => {
13
19
  if (!plugins[field.type]) {
14
20
  return null;
15
21
  } else if (!plugins[field.type][endpointType]) {
16
22
  return null;
17
23
  }
24
+
18
25
  return plugins[field.type][endpointType].createResolver;
19
26
  };
20
27
  /**
21
28
  * We use a factory to avoid passing the parameters for recursive invocations.
22
29
  * This way they will always be in the function scope and we can only pass "fields".
23
30
  */
31
+
32
+
24
33
  const createFieldResolversFactory = factoryParams => {
25
34
  const {
26
35
  endpointType,
@@ -37,6 +46,7 @@ const createFieldResolversFactory = factoryParams => {
37
46
  } = params;
38
47
  const fieldResolvers = (0, _objectSpread2.default)({}, extraResolvers);
39
48
  const typeResolvers = {};
49
+
40
50
  for (const field of fields) {
41
51
  if (!fieldTypePlugins[field.type]) {
42
52
  continue;
@@ -44,11 +54,14 @@ const createFieldResolversFactory = factoryParams => {
44
54
  /**
45
55
  * Field that is passed into this factory MUST have fieldId, so filter it before the method call.
46
56
  */
57
+
58
+
47
59
  if (!field.fieldId) {
48
60
  throw new _error.default("Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.", "FIELD_ID_ERROR", {
49
61
  field
50
62
  });
51
63
  }
64
+
52
65
  const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);
53
66
  let resolver;
54
67
  const fieldResolver = createResolver ? createResolver({
@@ -58,11 +71,11 @@ const createFieldResolversFactory = factoryParams => {
58
71
  field,
59
72
  createFieldResolvers
60
73
  }) : null;
61
-
62
74
  /**
63
75
  * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.
64
76
  * This is to fix the breaking of GraphQL schema.
65
77
  */
78
+
66
79
  if (fieldResolver === false) {
67
80
  continue;
68
81
  } else if (typeof fieldResolver === "function") {
@@ -71,11 +84,12 @@ const createFieldResolversFactory = factoryParams => {
71
84
  resolver = fieldResolver.resolver;
72
85
  Object.assign(typeResolvers, fieldResolver.typeResolvers);
73
86
  }
87
+
74
88
  const {
75
89
  fieldId
76
- } = field;
77
- // TODO @ts-refactor figure out types for parameters
90
+ } = field; // TODO @ts-refactor figure out types for parameters
78
91
  // @ts-ignore
92
+
79
93
  fieldResolvers[fieldId] = async (parent, args, context, info) => {
80
94
  // Get transformed value (eg. data decompression)
81
95
  const transformedValue = await (0, _entryStorage.entryFieldFromStorageTransform)({
@@ -85,15 +99,19 @@ const createFieldResolversFactory = factoryParams => {
85
99
  value: isRoot ? parent.values[fieldId] : parent[fieldId]
86
100
  });
87
101
  (0, _set.default)(isRoot ? parent.values : parent, fieldId, transformedValue);
102
+
88
103
  if (!resolver) {
89
104
  return isRoot ? parent.values[fieldId] : parent[fieldId];
90
105
  }
106
+
91
107
  return await resolver(isRoot ? parent.values : parent, args, context, info);
92
108
  };
93
109
  }
110
+
94
111
  return (0, _objectSpread2.default)({
95
112
  [graphQLType]: fieldResolvers
96
113
  }, typeResolvers);
97
114
  };
98
115
  };
116
+
99
117
  exports.createFieldResolversFactory = createFieldResolversFactory;
@@ -1 +1 @@
1
- {"version":3,"names":["getCreateResolver","plugins","field","endpointType","type","createResolver","createFieldResolversFactory","factoryParams","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","fieldId","WebinyError","resolver","fieldResolver","Object","assign","parent","args","context","info","transformedValue","entryFieldFromStorageTransform","value","values","set"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport {\n CmsModelField,\n CmsContext,\n CmsModelFieldToGraphQLCreateResolver,\n ApiEndpoint,\n CmsModel,\n CmsFieldTypePlugins\n} from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst getCreateResolver = (\n plugins: CmsFieldTypePlugins,\n field: CmsModelField,\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver | null => {\n if (!plugins[field.type]) {\n return null;\n } else if (!plugins[field.type][endpointType]) {\n return null;\n }\n return plugins[field.type][endpointType].createResolver;\n};\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n if (!fieldTypePlugins[field.type]) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({ graphQLType, models, model, field, createFieldResolvers })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n // TODO @ts-refactor figure out types for parameters\n // @ts-ignore\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getCreateResolver","plugins","field","endpointType","type","createResolver","createFieldResolversFactory","factoryParams","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","fieldId","WebinyError","resolver","fieldResolver","Object","assign","parent","args","context","info","transformedValue","entryFieldFromStorageTransform","value","values","set"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport {\n CmsModelField,\n CmsContext,\n CmsModelFieldToGraphQLCreateResolver,\n ApiEndpoint,\n CmsModel,\n CmsFieldTypePlugins\n} from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst getCreateResolver = (\n plugins: CmsFieldTypePlugins,\n field: CmsModelField,\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver | null => {\n if (!plugins[field.type]) {\n return null;\n } else if (!plugins[field.type][endpointType]) {\n return null;\n }\n return plugins[field.type][endpointType].createResolver;\n};\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n if (!fieldTypePlugins[field.type]) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({ graphQLType, models, model, field, createFieldResolvers })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n // TODO @ts-refactor figure out types for parameters\n // @ts-ignore\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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"}
@@ -1,27 +1,46 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createManageResolvers = void 0;
9
+
8
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
9
12
  var _commonFieldResolvers = require("./resolvers/commonFieldResolvers");
13
+
10
14
  var _resolveGet = require("./resolvers/manage/resolveGet");
15
+
11
16
  var _resolveList = require("./resolvers/manage/resolveList");
17
+
12
18
  var _resolveGetRevisions = require("./resolvers/manage/resolveGetRevisions");
19
+
13
20
  var _resolveGetByIds = require("./resolvers/manage/resolveGetByIds");
21
+
14
22
  var _resolveCreate = require("./resolvers/manage/resolveCreate");
23
+
15
24
  var _resolveUpdate = require("./resolvers/manage/resolveUpdate");
25
+
16
26
  var _resolveDelete = require("./resolvers/manage/resolveDelete");
27
+
17
28
  var _resolvePublish = require("./resolvers/manage/resolvePublish");
29
+
18
30
  var _resolveRepublish = require("./resolvers/manage/resolveRepublish");
31
+
19
32
  var _resolveUnpublish = require("./resolvers/manage/resolveUnpublish");
33
+
20
34
  var _resolveCreateFrom = require("./resolvers/manage/resolveCreateFrom");
35
+
21
36
  var _createFieldResolvers = require("./createFieldResolvers");
37
+
22
38
  var _createTypeName = require("../../utils/createTypeName");
39
+
23
40
  var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
41
+
24
42
  var _getEntryTitle = require("../../utils/getEntryTitle");
43
+
25
44
  const createManageResolvers = ({
26
45
  models,
27
46
  model,
@@ -33,6 +52,7 @@ const createManageResolvers = ({
33
52
  Mutation: {}
34
53
  };
35
54
  }
55
+
36
56
  const typeName = (0, _createTypeName.createTypeName)(model.modelId);
37
57
  const mTypeName = (0, _createTypeName.createManageTypeName)(typeName);
38
58
  const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
@@ -50,6 +70,7 @@ const createManageResolvers = ({
50
70
  meta(entry) {
51
71
  return entry;
52
72
  }
73
+
53
74
  })
54
75
  });
55
76
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({
@@ -95,17 +116,22 @@ const createManageResolvers = ({
95
116
  title(entry) {
96
117
  return (0, _getEntryTitle.getEntryTitle)(model, entry);
97
118
  },
119
+
98
120
  status(entry) {
99
121
  return entry.status;
100
122
  },
123
+
101
124
  data: entry => {
102
125
  return entry.meta || {};
103
126
  },
127
+
104
128
  async revisions(entry, _, context) {
105
129
  const revisions = await context.cms.getEntryRevisions(model, entry.entryId);
106
130
  return revisions.sort((a, b) => b.version - a.version);
107
131
  }
132
+
108
133
  }
109
134
  });
110
135
  };
136
+
111
137
  exports.createManageResolvers = createManageResolvers;