@webiny/api-headless-cms 5.37.0-beta.0 → 5.37.0-beta.2

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 (227) hide show
  1. package/constants.d.ts +1 -0
  2. package/constants.js +8 -0
  3. package/constants.js.map +1 -0
  4. package/context.js +37 -5
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/afterDelete.js.map +1 -1
  7. package/crud/contentEntry/beforeCreate.js.map +1 -1
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  10. package/crud/contentEntry/markLockedFields.js.map +1 -1
  11. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  12. package/crud/contentEntry/searchableFields.js.map +1 -1
  13. package/crud/contentEntry.crud.d.ts +4 -0
  14. package/crud/contentEntry.crud.js +206 -53
  15. package/crud/contentEntry.crud.js.map +1 -1
  16. package/crud/contentModel/afterCreate.js.map +1 -1
  17. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  18. package/crud/contentModel/afterDelete.js.map +1 -1
  19. package/crud/contentModel/afterUpdate.js.map +1 -1
  20. package/crud/contentModel/beforeCreate.js.map +1 -1
  21. package/crud/contentModel/beforeDelete.js.map +1 -1
  22. package/crud/contentModel/beforeUpdate.js.map +1 -1
  23. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  24. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  25. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  26. package/crud/contentModel/defaultFields.js.map +1 -1
  27. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  28. package/crud/contentModel/fields/imageField.js.map +1 -1
  29. package/crud/contentModel/fields/titleField.js.map +1 -1
  30. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  31. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  32. package/crud/contentModel/validate/modelId.js.map +1 -1
  33. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  34. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  35. package/crud/contentModel/validateLayout.js.map +1 -1
  36. package/crud/contentModel/validateModel.js.map +1 -1
  37. package/crud/contentModel/validateModelFields.js +1 -1
  38. package/crud/contentModel/validateModelFields.js.map +1 -1
  39. package/crud/contentModel/validation.d.ts +246 -206
  40. package/crud/contentModel/validation.js.map +1 -1
  41. package/crud/contentModel.crud.d.ts +2 -0
  42. package/crud/contentModel.crud.js +22 -12
  43. package/crud/contentModel.crud.js.map +1 -1
  44. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  45. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  46. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  47. package/crud/contentModelGroup/validation.d.ts +4 -4
  48. package/crud/contentModelGroup/validation.js.map +1 -1
  49. package/crud/contentModelGroup.crud.d.ts +2 -0
  50. package/crud/contentModelGroup.crud.js +41 -20
  51. package/crud/contentModelGroup.crud.js.map +1 -1
  52. package/crud/settings.crud.d.ts +2 -0
  53. package/crud/settings.crud.js +2 -6
  54. package/crud/settings.crud.js.map +1 -1
  55. package/crud/system.crud.js.map +1 -1
  56. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  57. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  58. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +1 -1
  59. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  60. package/fieldConverters/index.js.map +1 -1
  61. package/graphql/buildSchemaPlugins.js +4 -0
  62. package/graphql/buildSchemaPlugins.js.map +1 -1
  63. package/graphql/checkEndpointAccess.js.map +1 -1
  64. package/graphql/createExecutableSchema.js.map +1 -1
  65. package/graphql/createRequestBody.js.map +1 -1
  66. package/graphql/formatErrorPayload.js.map +1 -1
  67. package/graphql/generateSchema.js.map +1 -1
  68. package/graphql/getSchema.js +1 -1
  69. package/graphql/getSchema.js.map +1 -1
  70. package/graphql/graphQLHandlerFactory.js.map +1 -1
  71. package/graphql/handleRequest.js.map +1 -1
  72. package/graphql/index.d.ts +1 -1
  73. package/graphql/index.js.map +1 -1
  74. package/graphql/schema/baseContentSchema.js.map +1 -1
  75. package/graphql/schema/baseSchema.js +16 -0
  76. package/graphql/schema/baseSchema.js.map +1 -1
  77. package/graphql/schema/contentEntries.js +9 -4
  78. package/graphql/schema/contentEntries.js.map +1 -1
  79. package/graphql/schema/contentModelGroups.js.map +1 -1
  80. package/graphql/schema/contentModels.js.map +1 -1
  81. package/graphql/schema/createFieldResolvers.js +1 -1
  82. package/graphql/schema/createFieldResolvers.js.map +1 -1
  83. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  84. package/graphql/schema/createManageResolvers.d.ts +1 -1
  85. package/graphql/schema/createManageResolvers.js +10 -0
  86. package/graphql/schema/createManageResolvers.js.map +1 -1
  87. package/graphql/schema/createManageSDL.js +18 -3
  88. package/graphql/schema/createManageSDL.js.map +1 -1
  89. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  90. package/graphql/schema/createReadResolvers.js.map +1 -1
  91. package/graphql/schema/createReadSDL.js +1 -0
  92. package/graphql/schema/createReadSDL.js.map +1 -1
  93. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  94. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  95. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  96. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  97. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  98. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  99. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  100. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  101. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  102. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  103. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  104. package/graphql/schema/resolvers/manage/resolveMove.js +25 -0
  105. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  106. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  107. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  108. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  109. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  110. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  111. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  112. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  113. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  114. package/graphql/schema/schemaPlugins.js.map +1 -1
  115. package/graphql/system.d.ts +2 -5
  116. package/graphql/system.js +1 -11
  117. package/graphql/system.js.map +1 -1
  118. package/graphqlFields/boolean.js.map +1 -1
  119. package/graphqlFields/datetime.js.map +1 -1
  120. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  121. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  122. package/graphqlFields/dynamicZone/index.js.map +1 -1
  123. package/graphqlFields/file.js.map +1 -1
  124. package/graphqlFields/helpers.js.map +1 -1
  125. package/graphqlFields/index.js.map +1 -1
  126. package/graphqlFields/longText.js.map +1 -1
  127. package/graphqlFields/number.js +1 -0
  128. package/graphqlFields/number.js.map +1 -1
  129. package/graphqlFields/object.js +3 -3
  130. package/graphqlFields/object.js.map +1 -1
  131. package/graphqlFields/ref.js.map +1 -1
  132. package/graphqlFields/richText.js.map +1 -1
  133. package/graphqlFields/text.js +2 -0
  134. package/graphqlFields/text.js.map +1 -1
  135. package/index.d.ts +1 -1
  136. package/index.js.map +1 -1
  137. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  138. package/modelManager/index.js.map +1 -1
  139. package/package.json +25 -29
  140. package/parameters/context.js.map +1 -1
  141. package/parameters/header.js +3 -3
  142. package/parameters/header.js.map +1 -1
  143. package/parameters/index.js.map +1 -1
  144. package/parameters/manual.js.map +1 -1
  145. package/parameters/path.js.map +1 -1
  146. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  147. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  148. package/plugins/CmsGroupPlugin.js.map +1 -1
  149. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  150. package/plugins/CmsModelPlugin.js.map +1 -1
  151. package/plugins/CmsParametersPlugin.js +4 -0
  152. package/plugins/CmsParametersPlugin.js.map +1 -1
  153. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  154. package/plugins/StorageTransformPlugin.js.map +1 -1
  155. package/plugins/index.js.map +1 -1
  156. package/storage/default.js.map +1 -1
  157. package/storage/object.js.map +1 -1
  158. package/types.d.ts +68 -5
  159. package/types.js +7 -4
  160. package/types.js.map +1 -1
  161. package/utils/converters/Converter.js.map +1 -1
  162. package/utils/converters/ConverterCollection.js.map +1 -1
  163. package/utils/converters/valueKeyStorageConverter.js +5 -0
  164. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  165. package/utils/createTypeFromFields.js +1 -1
  166. package/utils/createTypeFromFields.js.map +1 -1
  167. package/utils/createTypeName.js.map +1 -1
  168. package/utils/entryStorage.js.map +1 -1
  169. package/utils/filterAsync.js.map +1 -1
  170. package/utils/getBaseFieldType.js.map +1 -1
  171. package/utils/getEntryDescription.js.map +1 -1
  172. package/utils/getEntryImage.js.map +1 -1
  173. package/utils/getEntryTitle.js.map +1 -1
  174. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  175. package/utils/incrementEntryIdVersion.js.map +1 -1
  176. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  177. package/utils/permissions/EntriesPermissions.js +9 -0
  178. package/utils/permissions/EntriesPermissions.js.map +1 -0
  179. package/utils/permissions/ModelGroupsPermissions.d.ts +11 -0
  180. package/utils/permissions/ModelGroupsPermissions.js +48 -0
  181. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  182. package/utils/permissions/ModelsPermissions.d.ts +20 -0
  183. package/utils/permissions/ModelsPermissions.js +91 -0
  184. package/utils/permissions/ModelsPermissions.js.map +1 -0
  185. package/utils/permissions/SettingsPermissions.d.ts +4 -0
  186. package/utils/permissions/SettingsPermissions.js +9 -0
  187. package/utils/permissions/SettingsPermissions.js.map +1 -0
  188. package/utils/renderFields.js.map +1 -1
  189. package/utils/renderGetFilterFields.js.map +1 -1
  190. package/utils/renderInputFields.js.map +1 -1
  191. package/utils/renderListFilterFields.d.ts +1 -0
  192. package/utils/renderListFilterFields.js +12 -6
  193. package/utils/renderListFilterFields.js.map +1 -1
  194. package/utils/renderSortEnum.d.ts +1 -1
  195. package/utils/renderSortEnum.js +3 -0
  196. package/utils/renderSortEnum.js.map +1 -1
  197. package/utils/toSlug.js.map +1 -1
  198. package/validators/dateGte.js.map +1 -1
  199. package/validators/dateLte.js.map +1 -1
  200. package/validators/dynamicZone.js.map +1 -1
  201. package/validators/gte.js.map +1 -1
  202. package/validators/in.js.map +1 -1
  203. package/validators/index.js.map +1 -1
  204. package/validators/lte.js.map +1 -1
  205. package/validators/maxLength.js.map +1 -1
  206. package/validators/minLength.js.map +1 -1
  207. package/validators/pattern.js.map +1 -1
  208. package/validators/patternPlugins/email.js.map +1 -1
  209. package/validators/patternPlugins/index.js.map +1 -1
  210. package/validators/patternPlugins/lowerCase.js.map +1 -1
  211. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  212. package/validators/patternPlugins/upperCase.js.map +1 -1
  213. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  214. package/validators/patternPlugins/url.js.map +1 -1
  215. package/validators/required.js.map +1 -1
  216. package/validators/timeGte.js.map +1 -1
  217. package/validators/timeLte.js.map +1 -1
  218. package/validators/unique.js.map +1 -1
  219. package/utils/access.d.ts +0 -8
  220. package/utils/access.js +0 -76
  221. package/utils/access.js.map +0 -1
  222. package/utils/ownership.d.ts +0 -8
  223. package/utils/ownership.js +0 -33
  224. package/utils/ownership.js.map +0 -1
  225. package/utils/permissions.d.ts +0 -7
  226. package/utils/permissions.js +0 -91
  227. package/utils/permissions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["handleRequest","params","context","request","reply","checkEndpointAccess","ex","code","send","data","error","message","stack","getTenant","tenancy","getCurrentTenant","getLocale","cms","getLastModifiedTime","getModelLastChange","schema","benchmark","measure","getSchema","type","console","formatErrorPayload","body","createRequestBody","result","processRequestBody"],"sources":["handleRequest.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext } from \"~/types\";\nimport { checkEndpointAccess } from \"./checkEndpointAccess\";\nimport { createRequestBody } from \"./createRequestBody\";\nimport { formatErrorPayload } from \"./formatErrorPayload\";\nimport { getSchema } from \"./getSchema\";\nimport { Reply, Request } from \"@webiny/handler/types\";\nimport { processRequestBody } from \"@webiny/handler-graphql\";\nimport { ExecutionResult } from \"graphql\";\n\nexport interface HandleRequestParams {\n context: CmsContext;\n request: Request;\n reply: Reply;\n}\n\nexport interface HandleRequest {\n (params: HandleRequestParams): Promise<Reply>;\n}\n\nexport const handleRequest: HandleRequest = async params => {\n const { context, request, reply } = params;\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n const getLocale = () => {\n return context.cms.getLocale();\n };\n\n const getLastModifiedTime = async () => {\n return context.cms.getModelLastChange();\n };\n\n const schema = await context.benchmark.measure(\"headlessCms.graphql.getSchema\", async () => {\n try {\n return await getSchema({\n context,\n getTenant,\n getLastModifiedTime,\n getLocale,\n type: context.cms.type as ApiEndpoint\n });\n } catch (ex) {\n console.error(`Error while generating the schema.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n const body = await context.benchmark.measure(\n \"headlessCms.graphql.createRequestBody\",\n async () => {\n try {\n return createRequestBody(request.body);\n } catch (ex) {\n console.error(`Error while creating the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n }\n );\n\n /**\n * We need to store the processRequestBody result in a variable and output it after the measurement.\n * Otherwise, the measurement will not be shown in the output.\n */\n let result: ExecutionResult[] | ExecutionResult | null = null;\n\n await context.benchmark.measure(\"headlessCms.graphql.processRequestBody\", async () => {\n try {\n result = await processRequestBody(body, schema, context);\n } catch (ex) {\n console.error(`Error while processing the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n return reply.code(200).send(result);\n};\n"],"mappings":";;;;;;AACA;AACA;AACA;AACA;AAEA;AAaO,MAAMA,aAA4B,GAAG,MAAMC,MAAM,IAAI;EACxD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGH,MAAM;EAC1C,IAAI;IACA,MAAM,IAAAI,wCAAmB,EAACH,OAAO,CAAC;EACtC,CAAC,CAAC,OAAOI,EAAE,EAAE;IACT,OAAOF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;MACxBC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHC,OAAO,EAAEL,EAAE,CAACK,OAAO,IAAI,iBAAiB;QACxCJ,IAAI,EAAED,EAAE,CAACC,IAAI,IAAI,yBAAyB;QAC1CE,IAAI,EAAEH,EAAE,CAACG,IAAI,IAAI,IAAI;QACrBG,KAAK,EAAE;MACX;IACJ,CAAC,CAAC;EACN;EAEA,MAAMC,SAAS,GAAG,MAAM;IACpB,OAAOX,OAAO,CAACY,OAAO,CAACC,gBAAgB,EAAE;EAC7C,CAAC;EAED,MAAMC,SAAS,GAAG,MAAM;IACpB,OAAOd,OAAO,CAACe,GAAG,CAACD,SAAS,EAAE;EAClC,CAAC;EAED,MAAME,mBAAmB,GAAG,YAAY;IACpC,OAAOhB,OAAO,CAACe,GAAG,CAACE,kBAAkB,EAAE;EAC3C,CAAC;EAED,MAAMC,MAAM,GAAG,MAAMlB,OAAO,CAACmB,SAAS,CAACC,OAAO,CAAC,+BAA+B,EAAE,YAAY;IACxF,IAAI;MACA,OAAO,MAAM,IAAAC,oBAAS,EAAC;QACnBrB,OAAO;QACPW,SAAS;QACTK,mBAAmB;QACnBF,SAAS;QACTQ,IAAI,EAAEtB,OAAO,CAACe,GAAG,CAACO;MACtB,CAAC,CAAC;IACN,CAAC,CAAC,OAAOlB,EAAE,EAAE;MACTmB,OAAO,CAACf,KAAK,CAAE,oCAAmC,CAAC;MACnDe,OAAO,CAACf,KAAK,CAAC,IAAAgB,sCAAkB,EAACpB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CAAC;EAEF,MAAMqB,IAAI,GAAG,MAAMzB,OAAO,CAACmB,SAAS,CAACC,OAAO,CACxC,uCAAuC,EACvC,YAAY;IACR,IAAI;MACA,OAAO,IAAAM,oCAAiB,EAACzB,OAAO,CAACwB,IAAI,CAAC;IAC1C,CAAC,CAAC,OAAOrB,EAAE,EAAE;MACTmB,OAAO,CAACf,KAAK,CAAE,wCAAuC,CAAC;MACvDe,OAAO,CAACf,KAAK,CAAC,IAAAgB,sCAAkB,EAACpB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CACJ;;EAED;AACJ;AACA;AACA;EACI,IAAIuB,MAAkD,GAAG,IAAI;EAE7D,MAAM3B,OAAO,CAACmB,SAAS,CAACC,OAAO,CAAC,wCAAwC,EAAE,YAAY;IAClF,IAAI;MACAO,MAAM,GAAG,MAAM,IAAAC,kCAAkB,EAACH,IAAI,EAAEP,MAAM,EAAElB,OAAO,CAAC;IAC5D,CAAC,CAAC,OAAOI,EAAE,EAAE;MACTmB,OAAO,CAACf,KAAK,CAAE,0CAAyC,CAAC;MACzDe,OAAO,CAACf,KAAK,CAAC,IAAAgB,sCAAkB,EAACpB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CAAC;EAEF,OAAOF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAACqB,MAAM,CAAC;AACvC,CAAC;AAAC"}
1
+ {"version":3,"names":["_checkEndpointAccess","require","_createRequestBody","_formatErrorPayload","_getSchema","_handlerGraphql","handleRequest","params","context","request","reply","checkEndpointAccess","ex","code","send","data","error","message","stack","getTenant","tenancy","getCurrentTenant","getLocale","cms","getLastModifiedTime","getModelLastChange","schema","benchmark","measure","getSchema","type","console","formatErrorPayload","body","createRequestBody","result","processRequestBody","exports"],"sources":["handleRequest.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext } from \"~/types\";\nimport { checkEndpointAccess } from \"./checkEndpointAccess\";\nimport { createRequestBody } from \"./createRequestBody\";\nimport { formatErrorPayload } from \"./formatErrorPayload\";\nimport { getSchema } from \"./getSchema\";\nimport { Reply, Request } from \"@webiny/handler/types\";\nimport { processRequestBody } from \"@webiny/handler-graphql\";\nimport { ExecutionResult } from \"graphql\";\n\nexport interface HandleRequestParams {\n context: CmsContext;\n request: Request;\n reply: Reply;\n}\n\nexport interface HandleRequest {\n (params: HandleRequestParams): Promise<Reply>;\n}\n\nexport const handleRequest: HandleRequest = async params => {\n const { context, request, reply } = params;\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n const getLocale = () => {\n return context.cms.getLocale();\n };\n\n const getLastModifiedTime = async () => {\n return context.cms.getModelLastChange();\n };\n\n const schema = await context.benchmark.measure(\"headlessCms.graphql.getSchema\", async () => {\n try {\n return await getSchema({\n context,\n getTenant,\n getLastModifiedTime,\n getLocale,\n type: context.cms.type as ApiEndpoint\n });\n } catch (ex) {\n console.error(`Error while generating the schema.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n const body = await context.benchmark.measure(\n \"headlessCms.graphql.createRequestBody\",\n async () => {\n try {\n return createRequestBody(request.body);\n } catch (ex) {\n console.error(`Error while creating the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n }\n );\n\n /**\n * We need to store the processRequestBody result in a variable and output it after the measurement.\n * Otherwise, the measurement will not be shown in the output.\n */\n let result: ExecutionResult[] | ExecutionResult | null = null;\n\n await context.benchmark.measure(\"headlessCms.graphql.processRequestBody\", async () => {\n try {\n result = await processRequestBody(body, schema, context);\n } catch (ex) {\n console.error(`Error while processing the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n return reply.code(200).send(result);\n};\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { GraphQLHandlerFactoryParams } from "./graphQLHandlerFactory";
2
2
  export declare 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("../types").CmsContext>)[];
3
+ export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/plugins/types").PluginCollection | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext>)[];
@@ -1 +1 @@
1
- {"version":3,"names":["createGraphQL","params","createBaseSchema","createSystemSchemaPlugin","graphQLHandlerFactory"],"sources":["index.ts"],"sourcesContent":["import { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { createBaseSchema } from \"~/graphql/schema/baseSchema\";\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [...createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAGO,MAAMA,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO,CAAC,GAAG,IAAAC,4BAAgB,GAAE,EAAE,IAAAC,gCAAwB,GAAE,EAAE,IAAAC,4CAAqB,EAACH,MAAM,CAAC,CAAC;AAC7F,CAAC;AAAC"}
1
+ {"version":3,"names":["_system","require","_graphQLHandlerFactory","_baseSchema","createGraphQL","params","createBaseSchema","createSystemSchemaPlugin","graphQLHandlerFactory","exports"],"sources":["index.ts"],"sourcesContent":["import { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { createBaseSchema } from \"~/graphql/schema/baseSchema\";\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [...createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAGO,MAAMG,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO,CAAC,GAAG,IAAAC,4BAAgB,EAAC,CAAC,EAAE,IAAAC,gCAAwB,EAAC,CAAC,EAAE,IAAAC,4CAAqB,EAACH,MAAM,CAAC,CAAC;AAC7F,CAAC;AAACI,OAAA,CAAAL,aAAA,GAAAA,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","CmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","RefInputScalar","Number","NumberScalar","Any","AnyScalar","DateTime","DateTimeScalar","DateTimeZ","DateTimeZScalar","Date","DateScalar","Time","TimeScalar","Mutation","_empty"],"sources":["baseContentSchema.ts"],"sourcesContent":["import { GraphQLScalarPlugin } from \"@webiny/handler-graphql/types\";\nimport { CmsContext } from \"~/types\";\nimport {\n RefInputScalar,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLScalarType } from \"graphql\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createBaseContentSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n ${scalars.map(scalar => `scalar ${scalar.name}`).join(\" \")}\n scalar JSON\n scalar Long\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar DateTimeZ\n scalar Time\n\n type Query\n\n type Mutation {\n _empty: String\n }\n\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n enum CmsEntryStatusType {\n latest\n published\n }\n `,\n resolvers: {\n ...scalars.reduce<Record<string, GraphQLScalarType>>((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {}),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n DateTimeZ: DateTimeZScalar,\n Date: DateScalar,\n Time: TimeScalar,\n Mutation: {\n _empty: () => \"_empty\"\n }\n }\n });\n plugin.name = `headless-cms.graphql.schema.baseContentSchema`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;;AAEA;AAYA;AAKO,MAAMA,uBAAuB,GAAG,CAAC;EAAEC;AAAgB,CAAC,KAA6B;EACpF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC,cAAcR,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACI,IAAK,EAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AACvE;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;IACDC,SAAS,8DACFX,OAAO,CAACY,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;MAC7DD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;MACf,OAAOD,GAAG;IACd,CAAC,EAAE,CAAC,CAAC,CAAC;MACNE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAEC,4BAAc;MACxBC,MAAM,EAAEC,0BAAY;MACpBC,GAAG,EAAEC,uBAAS;MACdC,QAAQ,EAAEC,4BAAc;MACxBC,SAAS,EAAEC,6BAAe;MAC1BC,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAE;QACNC,MAAM,EAAE,MAAM;MAClB;IAAC;EAET,CAAC,CAAC;EACF5B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC"}
1
+ {"version":3,"names":["_builtInTypes","require","_plugins","createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","CmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","_objectSpread2","default","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","RefInputScalar","Number","NumberScalar","Any","AnyScalar","DateTime","DateTimeScalar","DateTimeZ","DateTimeZScalar","Date","DateScalar","Time","TimeScalar","Mutation","_empty","exports"],"sources":["baseContentSchema.ts"],"sourcesContent":["import { GraphQLScalarPlugin } from \"@webiny/handler-graphql/types\";\nimport { CmsContext } from \"~/types\";\nimport {\n RefInputScalar,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLScalarType } from \"graphql\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createBaseContentSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n ${scalars.map(scalar => `scalar ${scalar.name}`).join(\" \")}\n scalar JSON\n scalar Long\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar DateTimeZ\n scalar Time\n\n type Query\n\n type Mutation {\n _empty: String\n }\n\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n enum CmsEntryStatusType {\n latest\n published\n }\n `,\n resolvers: {\n ...scalars.reduce<Record<string, GraphQLScalarType>>((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {}),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n DateTimeZ: DateTimeZScalar,\n Date: DateScalar,\n Time: TimeScalar,\n Mutation: {\n _empty: () => \"_empty\"\n }\n }\n });\n plugin.name = `headless-cms.graphql.schema.baseContentSchema`;\n\n return plugin;\n};\n"],"mappings":";;;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AAYA,IAAAC,QAAA,GAAAD,OAAA;AAKO,MAAME,uBAAuB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAA6B;EACpF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC,cAAcR,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACI,IAAK,EAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AACvE;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;IACDC,SAAS,MAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACFb,OAAO,CAACc,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;MAC7DD,GAAG,CAACC,CAAC,CAACP,IAAI,CAAC,GAAGO,CAAC;MACf,OAAOD,GAAG;IACd,CAAC,EAAE,CAAC,CAAC,CAAC;MACNE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAEC,4BAAc;MACxBC,MAAM,EAAEC,0BAAY;MACpBC,GAAG,EAAEC,uBAAS;MACdC,QAAQ,EAAEC,4BAAc;MACxBC,SAAS,EAAEC,6BAAe;MAC1BC,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAE;QACNC,MAAM,EAAEA,CAAA,KAAM;MAClB;IAAC;EAET,CAAC,CAAC;EACF9B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC+B,OAAA,CAAAvC,uBAAA,GAAAA,uBAAA"}
@@ -51,6 +51,22 @@ const createBaseSchema = () => {
51
51
  data: Boolean
52
52
  error: CmsError
53
53
  }
54
+
55
+ # Advanced Content Organization
56
+ type WbyAcoLocation {
57
+ folderId: ID
58
+ }
59
+
60
+ input WbyAcoLocationInput {
61
+ folderId: ID!
62
+ }
63
+
64
+ input WbyAcoLocationWhereInput {
65
+ folderId: ID
66
+ folderId_in: [ID!]
67
+ folderId_not: ID
68
+ folderId_not_in: [ID!]
69
+ }
54
70
  `,
55
71
  resolvers: {}
56
72
  });
@@ -1 +1 @@
1
- {"version":3,"names":["createBaseSchema","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","name","corePlugin","GraphQLSchemaPlugin","schema"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\n\nexport const createBaseSchema = (): GraphQLSchemaPlugin<CmsContext>[] => {\n const cmsPlugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n"],"mappings":";;;;;;AACA;AACA;AAEO,MAAMA,gBAAgB,GAAG,MAAyC;EACrE,MAAMC,SAAS,GAAG,IAAIC,+BAAsB,CAAC;IACzCC,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,SAAS;IACDC,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACI,IAAI,GAAG,kCAAkC;EACnD,MAAMC,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDJ,QAAQ,EAAEF,SAAS,CAACO,MAAM,CAACL,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACO,MAAM,CAACJ;EAChC,CAAC,CAAC;EACFE,UAAU,CAACD,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACJ,SAAS,EAAEK,UAAU,CAAC;AAClC,CAAC;AAAC"}
1
+ {"version":3,"names":["_plugins","require","_handlerGraphql","createBaseSchema","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","name","corePlugin","GraphQLSchemaPlugin","schema","exports"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\n\nexport const createBaseSchema = (): GraphQLSchemaPlugin<CmsContext>[] => {\n const cmsPlugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n # Advanced Content Organization\n type WbyAcoLocation {\n folderId: ID\n }\n\n input WbyAcoLocationInput {\n folderId: ID!\n }\n\n input WbyAcoLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEO,MAAME,gBAAgB,GAAGA,CAAA,KAAyC;EACrE,MAAMC,SAAS,GAAG,IAAIC,+BAAsB,CAAC;IACzCC,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,SAAS;IACDC,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACI,IAAI,GAAG,kCAAkC;EACnD,MAAMC,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDJ,QAAQ,EAAEF,SAAS,CAACO,MAAM,CAACL,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACO,MAAM,CAACJ;EAChC,CAAC,CAAC;EACFE,UAAU,CAACD,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACJ,SAAS,EAAEK,UAAU,CAAC;AAClC,CAAC;AAACG,OAAA,CAAAT,gBAAA,GAAAA,gBAAA"}
@@ -20,6 +20,7 @@ const createDate = date => {
20
20
  return new Date();
21
21
  };
22
22
  const createCmsEntryRecord = (model, entry) => {
23
+ var _entry$location;
23
24
  return {
24
25
  id: entry.id,
25
26
  entryId: entry.entryId,
@@ -34,7 +35,10 @@ const createCmsEntryRecord = (model, entry) => {
34
35
  createdBy: entry.createdBy,
35
36
  modifiedBy: entry.modifiedBy,
36
37
  createdOn: createDate(entry.createdOn),
37
- savedOn: createDate(entry.savedOn)
38
+ savedOn: createDate(entry.savedOn),
39
+ wbyAco_location: {
40
+ folderId: ((_entry$location = entry.location) === null || _entry$location === void 0 ? void 0 : _entry$location.folderId) || null
41
+ }
38
42
  };
39
43
  };
40
44
  const getFetchMethod = (type, context) => {
@@ -55,12 +59,12 @@ const getFetchMethod = (type, context) => {
55
59
  /**
56
60
  * Function to get the list of content entries depending on latest, published or exact GraphQL queries.
57
61
  */
58
- var GetContentEntryMethods;
59
- (function (GetContentEntryMethods) {
62
+ var GetContentEntryMethods = /*#__PURE__*/function (GetContentEntryMethods) {
60
63
  GetContentEntryMethods["getLatestEntriesByIds"] = "getLatestEntriesByIds";
61
64
  GetContentEntryMethods["getPublishedEntriesByIds"] = "getPublishedEntriesByIds";
62
65
  GetContentEntryMethods["getEntriesByIds"] = "getEntriesByIds";
63
- })(GetContentEntryMethods || (GetContentEntryMethods = {}));
66
+ return GetContentEntryMethods;
67
+ }(GetContentEntryMethods || {});
64
68
  const getContentEntriesMethods = {
65
69
  latest: "getLatestEntriesByIds",
66
70
  published: "getPublishedEntriesByIds",
@@ -215,6 +219,7 @@ const createContentEntriesSchema = ({
215
219
  published: CmsPublishedContentEntry
216
220
  createdOn: DateTime!
217
221
  savedOn: DateTime!
222
+ wbyAco_location: WbyAcoLocation
218
223
  }
219
224
 
220
225
  type CmsContentEntriesResponse {
@@ -1 +1 @@
1
- {"version":3,"names":["createDate","date","Date","createCmsEntryRecord","model","entry","id","entryId","modelId","name","status","title","getEntryTitle","description","getEntryDescription","image","getEntryImage","createdBy","modifiedBy","createdOn","savedOn","getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","argsEntries","entries","entriesByModel","ref","includes","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","filter","Boolean","ex","ErrorResponse","getContentEntry","find","m","NotAuthorizedResponse","data","result","shift","createResolveDescription","parent","_","field","fields","f","fieldId","descriptionFieldId","value","entryFieldFromStorageTransform","createContentEntriesSchema","MANAGE","plugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","CmsContentEntry","getPublishedEntriesByIds","CmsPublishedContentEntry","Query","searchContentEntries","modelIds","query","limit","modelManager","getModelManager","where","listLatest","search","undefined","then","sort","a","b","getTime","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries"],"sources":["contentEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsEntry, CmsContext, CmsModel, CmsEntryListWhere, CmsIdentity } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { getEntryDescription } from \"~/utils/getEntryDescription\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\nconst createDate = (date: string): Date => {\n try {\n return new Date(date);\n } catch {}\n return new Date();\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 description?: string | null;\n image?: string | null;\n createdBy: CmsIdentity;\n modifiedBy?: CmsIdentity | null;\n /**\n * We can use the number since it is an internal field.\n * Created via Date.parse() method.\n */\n createdOn: Date;\n savedOn: Date;\n}\n\nconst createCmsEntryRecord = (model: CmsModel, entry: CmsEntry): CmsEntryRecord => {\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 description: getEntryDescription(model, entry),\n image: getEntryImage(model, entry),\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy,\n createdOn: createDate(entry.createdOn),\n savedOn: createDate(entry.savedOn)\n };\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 (\n params: GetContentEntriesParams\n): Promise<Response | ErrorResponse> => {\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 try {\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce<CmsEntryRecord[]>((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return createCmsEntryRecord(model, item);\n })\n );\n }, [])\n .filter(Boolean);\n\n return new Response(entries);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\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<CmsEntryRecord | null> | 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(createCmsEntryRecord(model, entry));\n};\n/**\n * As we support description field, we need to transform the value from storage.\n */\nconst createResolveDescription = (): Resolvers<CmsContext> => {\n return async (parent, _, context) => {\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 field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return null;\n }\n const value = parent.description || parent[field.fieldId];\n if (!value) {\n return null;\n }\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n };\n};\n\ninterface Params {\n context: CmsContext;\n}\nexport const createContentEntriesSchema = ({\n context\n}: Params): CmsGraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;\n return plugin;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin({\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 description: String\n image: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta!\n status: String!\n title: String!\n description: String\n image: String\n createdBy: CmsIdentity!\n ownedBy: CmsIdentity!\n modifiedBy: CmsIdentity\n published: CmsPublishedContentEntry\n createdOn: DateTime!\n savedOn: DateTime!\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 createCmsEntryRecord(model, entry);\n } catch (ex) {\n return null;\n }\n },\n description: createResolveDescription()\n },\n CmsPublishedContentEntry: {\n description: createResolveDescription()\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 createCmsEntryRecord(model, entry);\n });\n });\n\n try {\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) => b.savedOn.getTime() - a.savedOn.getTime())\n .slice(0, limit)\n );\n } catch (ex) {\n return new ErrorResponse(ex);\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 plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;\n\n return plugin;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_apiSecurity","_getEntryTitle","_plugins","_getEntryDescription","_getEntryImage","_entryStorage","createDate","date","Date","createCmsEntryRecord","model","entry","_entry$location","id","entryId","modelId","name","status","title","getEntryTitle","description","getEntryDescription","image","getEntryImage","createdBy","modifiedBy","createdOn","savedOn","wbyAco_location","folderId","location","getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","argsEntries","entries","entriesByModel","ref","includes","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","filter","Boolean","ex","ErrorResponse","getContentEntry","find","m","NotAuthorizedResponse","data","result","shift","createResolveDescription","parent","_","field","fields","f","fieldId","descriptionFieldId","value","entryFieldFromStorageTransform","createContentEntriesSchema","MANAGE","plugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","CmsContentEntry","getPublishedEntriesByIds","CmsPublishedContentEntry","Query","searchContentEntries","modelIds","query","limit","modelManager","getModelManager","where","listLatest","search","undefined","then","sort","a","b","getTime","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries","exports"],"sources":["contentEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsEntry, CmsEntryListWhere, CmsIdentity, CmsModel } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { getEntryDescription } from \"~/utils/getEntryDescription\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\nconst createDate = (date: string): Date => {\n try {\n return new Date(date);\n } catch {}\n return new Date();\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 description?: string | null;\n image?: string | null;\n createdBy: CmsIdentity;\n modifiedBy?: CmsIdentity | null;\n /**\n * We can use the number since it is an internal field.\n * Created via Date.parse() method.\n */\n createdOn: Date;\n savedOn: Date;\n wbyAco_location?: {\n folderId?: string | null;\n };\n}\n\nconst createCmsEntryRecord = (model: CmsModel, entry: CmsEntry): CmsEntryRecord => {\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 description: getEntryDescription(model, entry),\n image: getEntryImage(model, entry),\n createdBy: entry.createdBy,\n modifiedBy: entry.modifiedBy,\n createdOn: createDate(entry.createdOn),\n savedOn: createDate(entry.savedOn),\n wbyAco_location: {\n folderId: entry.location?.folderId || null\n }\n };\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 (\n params: GetContentEntriesParams\n): Promise<Response | ErrorResponse> => {\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 try {\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce<CmsEntryRecord[]>((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return createCmsEntryRecord(model, item);\n })\n );\n }, [])\n .filter(Boolean);\n\n return new Response(entries);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\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<CmsEntryRecord | null> | 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(createCmsEntryRecord(model, entry));\n};\n/**\n * As we support description field, we need to transform the value from storage.\n */\nconst createResolveDescription = (): Resolvers<CmsContext> => {\n return async (parent, _, context) => {\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 field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return null;\n }\n const value = parent.description || parent[field.fieldId];\n if (!value) {\n return null;\n }\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n };\n};\n\ninterface Params {\n context: CmsContext;\n}\nexport const createContentEntriesSchema = ({\n context\n}: Params): CmsGraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;\n return plugin;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin({\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 description: String\n image: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta!\n status: String!\n title: String!\n description: String\n image: String\n createdBy: CmsIdentity!\n ownedBy: CmsIdentity!\n modifiedBy: CmsIdentity\n published: CmsPublishedContentEntry\n createdOn: DateTime!\n savedOn: DateTime!\n wbyAco_location: WbyAcoLocation\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 createCmsEntryRecord(model, entry);\n } catch (ex) {\n return null;\n }\n },\n description: createResolveDescription()\n },\n CmsPublishedContentEntry: {\n description: createResolveDescription()\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 createCmsEntryRecord(model, entry);\n });\n });\n\n try {\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) => b.savedOn.getTime() - a.savedOn.getTime())\n .slice(0, limit)\n );\n } catch (ex) {\n return new ErrorResponse(ex);\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 plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;\n\n return plugin;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","models","security","withoutAuthorization","listModels","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","CmsGraphQLSchemaPlugin","typeDefs","name"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createGroupsSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\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 const models = await context.security.withoutAuthorization(async () => {\n return context.cms.listModels();\n });\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 const models = await context.security.withoutAuthorization(async () => {\n return context.cms.listModels();\n });\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 const plugin = new CmsGraphQLSchemaPlugin({\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: CmsIdentity\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 plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-model-groups`;\n\n return plugin;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_handlerGraphql","require","_CmsGroupPlugin","_plugins","createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","models","security","withoutAuthorization","listModels","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","CmsGraphQLSchemaPlugin","typeDefs","name","exports"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createGroupsSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\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 const models = await context.security.withoutAuthorization(async () => {\n return context.cms.listModels();\n });\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 const models = await context.security.withoutAuthorization(async () => {\n return context.cms.listModels();\n });\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 const plugin = new CmsGraphQLSchemaPlugin({\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: CmsIdentity\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 plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-model-groups`;\n\n return plugin;\n};\n"],"mappings":"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"}
@@ -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","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","group","groups","security","withoutAuthorization","listGroups","find","id","slug","toSlug","name","hasType","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","CmsGraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { toSlug } from \"~/utils/toSlug\";\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createModelsSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\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 CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n group: async (model: CmsModel) => {\n const groups = await context.security.withoutAuthorization(async () => {\n return context.cms.listGroups();\n });\n\n const group = groups.find(group => group.id === model.group.id);\n return {\n ...model.group,\n slug: toSlug(model.group.name),\n ...(group || {})\n };\n },\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\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, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\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 tags: [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 singularApiName: String!\n pluralApiName: String!\n modelId: String\n group: RefInput!\n icon: String\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n descriptionFieldId: String\n imageFieldId: String\n tags: [String!]\n defaultFields: Boolean\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n singularApiName: String!\n pluralApiName: String!\n modelId: String\n group: RefInput!\n icon: String\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n singularApiName: String\n pluralApiName: String\n group: RefInput\n icon: String\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n descriptionFieldId: String\n imageFieldId: String\n tags: [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 # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin({\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 tags: [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 singularApiName: String!\n pluralApiName: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n icon: String\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsIdentity\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n descriptionFieldId: String\n imageFieldId: String\n tags: [String!]!\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 plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-models`;\n return plugin;\n};\n"],"mappings":"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MACJ;IACJ,CAAC;IAEDkC,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,MAAMR,MAAM,GAAG,IAAIqB,+BAAsB,CAAC;IACtCC,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;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SAAS;IACD9C;EACJ,CAAC,CAAC;EACFsC,MAAM,CAACJ,IAAI,GAAI,+BAA8BnC,OAAO,CAACO,GAAG,CAACoC,IAAK,iBAAgB;EAC9E,OAAOJ,MAAM;AACjB,CAAC;AAAC"}
1
+ {"version":3,"names":["_handlerGraphql","require","_CmsModelPlugin","_plugins","_toSlug","createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","group","groups","security","withoutAuthorization","listGroups","find","id","_objectSpread2","default","slug","toSlug","name","hasType","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","CmsGraphQLSchemaPlugin","typeDefs","exports"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { toSlug } from \"~/utils/toSlug\";\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createModelsSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\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 CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n group: async (model: CmsModel) => {\n const groups = await context.security.withoutAuthorization(async () => {\n return context.cms.listGroups();\n });\n\n const group = groups.find(group => group.id === model.group.id);\n return {\n ...model.group,\n slug: toSlug(model.group.name),\n ...(group || {})\n };\n },\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\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, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\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 tags: [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 singularApiName: String!\n pluralApiName: String!\n modelId: String\n group: RefInput!\n icon: String\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n descriptionFieldId: String\n imageFieldId: String\n tags: [String!]\n defaultFields: Boolean\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n singularApiName: String!\n pluralApiName: String!\n modelId: String\n group: RefInput!\n icon: String\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n singularApiName: String\n pluralApiName: String\n group: RefInput\n icon: String\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n descriptionFieldId: String\n imageFieldId: String\n tags: [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 # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin({\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 tags: [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 singularApiName: String!\n pluralApiName: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n icon: String\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsIdentity\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n descriptionFieldId: String\n imageFieldId: String\n tags: [String!]!\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 plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-models`;\n return plugin;\n};\n"],"mappings":"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,OAAO,CAACO,GAAG,CAACqD,eAAe,CAACnD,OAAO,EAAE4C,IAAI,IAAI,CAAC,CAAC,CAAC;UACrE,OAAO,IAAIzC,wBAAQ,CAACiD,MAAM,CAAC;QAC/B,CAAC,CAAC,OAAOhD,CAAC,EAAE;UACR,OAAO,IAAIC,6BAAa,CAACD,CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IAEDoC,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,MAAMR,MAAM,GAAG,IAAIqB,+BAAsB,CAAC;IACtCC,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;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SAAS;IACDhD;EACJ,CAAC,CAAC;EACFwC,MAAM,CAACJ,IAAI,GAAI,+BAA8BrC,OAAO,CAACO,GAAG,CAACsC,IAAK,iBAAgB;EAC9E,OAAOJ,MAAM;AACjB,CAAC;AAACuB,OAAA,CAAAjE,kBAAA,GAAAA,kBAAA"}
@@ -78,7 +78,7 @@ const createFieldResolversFactory = factoryParams => {
78
78
  * This is required because due to ref field can be requested without the populated data.
79
79
  * At that point there is no .values no fieldId property on the parent
80
80
  */
81
- const value = (parent === null || parent === void 0 ? void 0 : (_parent$values = parent.values) === null || _parent$values === void 0 ? void 0 : _parent$values[fieldId]) === undefined ? parent === null || parent === void 0 ? void 0 : parent[fieldId] : parent === null || parent === void 0 ? void 0 : (_parent$values2 = parent.values) === null || _parent$values2 === void 0 ? void 0 : _parent$values2[fieldId];
81
+ const value = (parent === null || parent === void 0 || (_parent$values = parent.values) === null || _parent$values === void 0 ? void 0 : _parent$values[fieldId]) === undefined ? parent === null || parent === void 0 ? void 0 : parent[fieldId] : parent === null || parent === void 0 || (_parent$values2 = parent.values) === null || _parent$values2 === void 0 ? void 0 : _parent$values2[fieldId];
82
82
  if (value === undefined) {
83
83
  return undefined;
84
84
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createFieldResolversFactory","factoryParams","endpointType","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","field","plugin","getBaseFieldType","fieldId","WebinyError","createResolver","resolver","fieldResolver","Object","assign","parent","args","context","info","value","values","undefined","transformedValue","entryFieldFromStorageTransform","set"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel, CmsModelField } from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\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\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 const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\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 = plugin[endpointType]?.createResolver || null;\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({\n graphQLType,\n models,\n model,\n field,\n createFieldResolvers,\n fieldTypePlugins\n })\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 /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const value =\n parent?.values?.[fieldId] === undefined\n ? parent?.[fieldId]\n : parent?.values?.[fieldId];\n if (value === undefined) {\n return undefined;\n }\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":["_set","_interopRequireDefault","require","_entryStorage","_error","_getBaseFieldType","createFieldResolversFactory","factoryParams","endpointType","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","_objectSpread2","default","typeResolvers","field","_plugin$endpointType","plugin","getBaseFieldType","fieldId","WebinyError","createResolver","resolver","fieldResolver","Object","assign","parent","args","context","info","_parent$values","_parent$values2","_parent$values3","value","values","undefined","transformedValue","entryFieldFromStorageTransform","set","exports"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel, CmsModelField } from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\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\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 const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\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 = plugin[endpointType]?.createResolver || null;\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({\n graphQLType,\n models,\n model,\n field,\n createFieldResolvers,\n fieldTypePlugins\n })\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 /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const value =\n parent?.values?.[fieldId] === undefined\n ? parent?.[fieldId]\n : parent?.values?.[fieldId];\n if (value === undefined) {\n return undefined;\n }\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 +1 @@
1
- {"version":3,"names":["createFieldTypePluginRecords","plugins","byType","reduce","acc","pl","fieldType"],"sources":["createFieldTypePluginRecords.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport const createFieldTypePluginRecords = (plugins: PluginsContainer) => {\n return plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<CmsFieldTypePlugins>((acc, pl) => {\n acc[pl.fieldType] = pl;\n return acc;\n }, {});\n};\n"],"mappings":";;;;;;AAGO,MAAMA,4BAA4B,GAAIC,OAAyB,IAAK;EACvE,OAAOA,OAAO,CACTC,MAAM,CAA+B,4BAA4B,CAAC,CAClEC,MAAM,CAAsB,CAACC,GAAG,EAAEC,EAAE,KAAK;IACtCD,GAAG,CAACC,EAAE,CAACC,SAAS,CAAC,GAAGD,EAAE;IACtB,OAAOD,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAAC"}
1
+ {"version":3,"names":["createFieldTypePluginRecords","plugins","byType","reduce","acc","pl","fieldType","exports"],"sources":["createFieldTypePluginRecords.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport const createFieldTypePluginRecords = (plugins: PluginsContainer) => {\n return plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<CmsFieldTypePlugins>((acc, pl) => {\n acc[pl.fieldType] = pl;\n return acc;\n }, {});\n};\n"],"mappings":";;;;;;AAGO,MAAMA,4BAA4B,GAAIC,OAAyB,IAAK;EACvE,OAAOA,OAAO,CACTC,MAAM,CAA+B,4BAA4B,CAAC,CAClEC,MAAM,CAAsB,CAACC,GAAG,EAAEC,EAAE,KAAK;IACtCD,GAAG,CAACC,EAAE,CAACC,SAAS,CAAC,GAAGD,EAAE;IACtB,OAAOD,GAAG;EACd,CAAC,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAACG,OAAA,CAAAP,4BAAA,GAAAA,4BAAA"}
@@ -1,4 +1,4 @@
1
- import { CmsFieldTypePlugins, CmsContext, CmsModel } from "../../types";
1
+ import { CmsContext, CmsFieldTypePlugins, CmsModel } from "../../types";
2
2
  interface CreateManageResolversParams {
3
3
  models: CmsModel[];
4
4
  model: CmsModel;
@@ -13,6 +13,7 @@ var _resolveGetRevisions = require("./resolvers/manage/resolveGetRevisions");
13
13
  var _resolveGetByIds = require("./resolvers/manage/resolveGetByIds");
14
14
  var _resolveCreate = require("./resolvers/manage/resolveCreate");
15
15
  var _resolveUpdate = require("./resolvers/manage/resolveUpdate");
16
+ var _resolveMove = require("./resolvers/manage/resolveMove");
16
17
  var _resolveDelete = require("./resolvers/manage/resolveDelete");
17
18
  var _resolveDeleteMultiple = require("./resolvers/manage/resolveDeleteMultiple");
18
19
  var _resolvePublish = require("./resolvers/manage/resolvePublish");
@@ -46,6 +47,12 @@ const createManageResolvers = ({
46
47
  isRoot: true,
47
48
  // These are extra fields we want to apply to field resolvers of "gqlType"
48
49
  extraResolvers: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _commonFieldResolvers.commonFieldResolvers)()), {}, {
50
+ /**
51
+ * Advanced Content Entry
52
+ */
53
+ wbyAco_location: async entry => {
54
+ return entry.location || null;
55
+ },
49
56
  meta(entry) {
50
57
  return entry;
51
58
  }
@@ -73,6 +80,9 @@ const createManageResolvers = ({
73
80
  [`update${model.singularApiName}`]: (0, _resolveUpdate.resolveUpdate)({
74
81
  model
75
82
  }),
83
+ [`move${model.singularApiName}`]: (0, _resolveMove.resolveMove)({
84
+ model
85
+ }),
76
86
  [`delete${model.singularApiName}`]: (0, _resolveDelete.resolveDelete)({
77
87
  model
78
88
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["createManageResolvers","models","model","fieldTypePlugins","fields","length","Query","Mutation","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","isRoot","extraResolvers","commonFieldResolvers","meta","entry","resolveGet","resolveGetRevisions","pluralApiName","resolveGetByIds","resolveList","resolveCreate","resolveUpdate","resolveDelete","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"],"sources":["createManageResolvers.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsContext, CmsEntry, CmsModel } from \"~/types\";\nimport { commonFieldResolvers } from \"./resolvers/commonFieldResolvers\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet\";\nimport { resolveList } from \"./resolvers/manage/resolveList\";\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 { resolveDelete } from \"./resolvers/manage/resolveDelete\";\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 { 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 ...commonFieldResolvers(),\n meta(entry) {\n return entry;\n }\n }\n });\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet({ model }),\n [`get${model.singularApiName}Revisions`]: resolveGetRevisions({ model }),\n [`get${model.pluralApiName}ByIds`]: resolveGetByIds({ model }),\n [`list${model.pluralApiName}`]: resolveList({ model })\n },\n Mutation: {\n [`create${model.singularApiName}`]: resolveCreate({ model }),\n [`update${model.singularApiName}`]: resolveUpdate({ model }),\n [`delete${model.singularApiName}`]: resolveDelete({ model }),\n [`deleteMultiple${model.pluralApiName}`]: resolveDeleteMultiple({ model }),\n [`publish${model.singularApiName}`]: resolvePublish({ model }),\n [`republish${model.singularApiName}`]: resolveRepublish({ model }),\n [`unpublish${model.singularApiName}`]: resolveUnpublish({ model }),\n [`create${model.singularApiName}From`]: resolveCreateFrom({ model })\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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"}
1
+ {"version":3,"names":["_commonFieldResolvers","require","_resolveGet","_resolveList","_resolveGetRevisions","_resolveGetByIds","_resolveCreate","_resolveUpdate","_resolveMove","_resolveDelete","_resolveDeleteMultiple","_resolvePublish","_resolveRepublish","_resolveUnpublish","_resolveCreateFrom","_createFieldResolvers","_getEntryTitle","_getEntryImage","_entryStorage","createManageResolvers","models","model","fieldTypePlugins","fields","length","Query","Mutation","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","isRoot","extraResolvers","_objectSpread2","default","commonFieldResolvers","wbyAco_location","entry","location","meta","resolveGet","resolveGetRevisions","pluralApiName","resolveGetByIds","resolveList","resolveCreate","resolveUpdate","resolveMove","resolveDelete","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 { commonFieldResolvers } from \"./resolvers/commonFieldResolvers\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet\";\nimport { resolveList } from \"./resolvers/manage/resolveList\";\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 { resolveMove } from \"./resolvers/manage/resolveMove\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete\";\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 { 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 ...commonFieldResolvers(),\n /**\n * Advanced Content Entry\n */\n wbyAco_location: async (entry: CmsEntry) => {\n return entry.location || null;\n },\n meta(entry) {\n return entry;\n }\n }\n });\n\n return {\n Query: {\n [`get${model.singularApiName}`]: resolveGet({ model }),\n [`get${model.singularApiName}Revisions`]: resolveGetRevisions({ model }),\n [`get${model.pluralApiName}ByIds`]: resolveGetByIds({ model }),\n [`list${model.pluralApiName}`]: resolveList({ model })\n },\n Mutation: {\n [`create${model.singularApiName}`]: resolveCreate({ model }),\n [`update${model.singularApiName}`]: resolveUpdate({ model }),\n [`move${model.singularApiName}`]: resolveMove({ model }),\n [`delete${model.singularApiName}`]: resolveDelete({ model }),\n [`deleteMultiple${model.pluralApiName}`]: resolveDeleteMultiple({ model }),\n [`publish${model.singularApiName}`]: resolvePublish({ model }),\n [`republish${model.singularApiName}`]: resolveRepublish({ model }),\n [`unpublish${model.singularApiName}`]: resolveUnpublish({ model }),\n [`create${model.singularApiName}From`]: resolveCreateFrom({ model })\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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"}