@webiny/api-headless-cms 0.0.0-unstable.5e7233243f → 0.0.0-unstable.6e5425ee89

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 (290) hide show
  1. package/context.js +3 -22
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.d.ts +2 -2
  4. package/crud/contentEntry/afterDelete.js +2 -7
  5. package/crud/contentEntry/afterDelete.js.map +1 -1
  6. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  7. package/crud/contentEntry/beforeCreate.js +2 -5
  8. package/crud/contentEntry/beforeCreate.js.map +1 -1
  9. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  10. package/crud/contentEntry/beforeUpdate.js +2 -5
  11. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  12. package/crud/contentEntry/entryDataValidation.js +4 -47
  13. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  14. package/crud/contentEntry/markLockedFields.js +8 -35
  15. package/crud/contentEntry/markLockedFields.js.map +1 -1
  16. package/crud/contentEntry/referenceFieldsMapping.js +8 -68
  17. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  18. package/crud/contentEntry.crud.d.ts +0 -2
  19. package/crud/contentEntry.crud.js +201 -361
  20. package/crud/contentEntry.crud.js.map +1 -1
  21. package/crud/contentModel/afterCreate.d.ts +3 -3
  22. package/crud/contentModel/afterCreate.js +5 -7
  23. package/crud/contentModel/afterCreate.js.map +1 -1
  24. package/crud/contentModel/afterCreateFrom.d.ts +3 -3
  25. package/crud/contentModel/afterCreateFrom.js +5 -7
  26. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  27. package/crud/contentModel/afterDelete.d.ts +3 -3
  28. package/crud/contentModel/afterDelete.js +5 -7
  29. package/crud/contentModel/afterDelete.js.map +1 -1
  30. package/crud/contentModel/afterUpdate.d.ts +3 -3
  31. package/crud/contentModel/afterUpdate.js +5 -7
  32. package/crud/contentModel/afterUpdate.js.map +1 -1
  33. package/crud/contentModel/beforeCreate.d.ts +4 -4
  34. package/crud/contentModel/beforeCreate.js +14 -42
  35. package/crud/contentModel/beforeCreate.js.map +1 -1
  36. package/crud/contentModel/beforeDelete.d.ts +3 -3
  37. package/crud/contentModel/beforeDelete.js +6 -16
  38. package/crud/contentModel/beforeDelete.js.map +1 -1
  39. package/crud/contentModel/beforeUpdate.d.ts +3 -3
  40. package/crud/contentModel/beforeUpdate.js +5 -10
  41. package/crud/contentModel/beforeUpdate.js.map +1 -1
  42. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  43. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  44. package/crud/contentModel/createFieldModels.js +0 -6
  45. package/crud/contentModel/createFieldModels.js.map +1 -1
  46. package/crud/contentModel/createFieldStorageId.js +0 -2
  47. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  48. package/crud/contentModel/fieldIdValidation.js +0 -5
  49. package/crud/contentModel/fieldIdValidation.js.map +1 -1
  50. package/crud/contentModel/idValidation.js +0 -5
  51. package/crud/contentModel/idValidation.js.map +1 -1
  52. package/crud/contentModel/models.js +1 -8
  53. package/crud/contentModel/models.js.map +1 -1
  54. package/crud/contentModel/systemFields.js.map +1 -1
  55. package/crud/contentModel/validateLayout.js +0 -8
  56. package/crud/contentModel/validateLayout.js.map +1 -1
  57. package/crud/contentModel/validateModel.js +1 -9
  58. package/crud/contentModel/validateModel.js.map +1 -1
  59. package/crud/contentModel/validateModelFields.js +11 -67
  60. package/crud/contentModel/validateModelFields.js.map +1 -1
  61. package/crud/contentModel.crud.js +84 -145
  62. package/crud/contentModel.crud.js.map +1 -1
  63. package/crud/contentModelGroup/beforeCreate.d.ts +2 -2
  64. package/crud/contentModelGroup/beforeCreate.js +3 -15
  65. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  66. package/crud/contentModelGroup/beforeDelete.d.ts +2 -2
  67. package/crud/contentModelGroup/beforeDelete.js +3 -11
  68. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  69. package/crud/contentModelGroup/beforeUpdate.d.ts +2 -2
  70. package/crud/contentModelGroup/beforeUpdate.js +2 -7
  71. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  72. package/crud/contentModelGroup.crud.js +59 -76
  73. package/crud/contentModelGroup.crud.js.map +1 -1
  74. package/crud/index.js +3 -23
  75. package/crud/index.js.map +1 -1
  76. package/crud/settings.crud.js +3 -20
  77. package/crud/settings.crud.js.map +1 -1
  78. package/crud/system.crud.js +61 -84
  79. package/crud/system.crud.js.map +1 -1
  80. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -14
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  82. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +16 -71
  83. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  84. package/fieldConverters/index.js +0 -4
  85. package/fieldConverters/index.js.map +1 -1
  86. package/graphql/buildSchemaPlugins.js +5 -9
  87. package/graphql/buildSchemaPlugins.js.map +1 -1
  88. package/graphql/graphQLHandlerFactory.js +4 -29
  89. package/graphql/graphQLHandlerFactory.js.map +1 -1
  90. package/graphql/index.js +1 -8
  91. package/graphql/index.js.map +1 -1
  92. package/graphql/schema/baseContentSchema.js +6 -18
  93. package/graphql/schema/baseContentSchema.js.map +1 -1
  94. package/graphql/schema/contentEntries.js +3 -43
  95. package/graphql/schema/contentEntries.js.map +1 -1
  96. package/graphql/schema/contentModelGroups.js +2 -19
  97. package/graphql/schema/contentModelGroups.js.map +1 -1
  98. package/graphql/schema/contentModels.js +20 -17
  99. package/graphql/schema/contentModels.js.map +1 -1
  100. package/graphql/schema/createFieldResolvers.js +7 -31
  101. package/graphql/schema/createFieldResolvers.js.map +1 -1
  102. package/graphql/schema/createManageResolvers.js +4 -44
  103. package/graphql/schema/createManageResolvers.js.map +1 -1
  104. package/graphql/schema/createManageSDL.js +4 -21
  105. package/graphql/schema/createManageSDL.js.map +1 -1
  106. package/graphql/schema/createPreviewResolvers.js +3 -17
  107. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  108. package/graphql/schema/createReadResolvers.js +3 -17
  109. package/graphql/schema/createReadResolvers.js.map +1 -1
  110. package/graphql/schema/createReadSDL.js +0 -10
  111. package/graphql/schema/createReadSDL.js.map +1 -1
  112. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -2
  113. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  114. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  115. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  116. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  117. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  118. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  119. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  120. package/graphql/schema/resolvers/manage/resolveGet.js +5 -25
  121. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  122. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  123. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  124. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  125. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  126. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  127. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  128. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  129. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  130. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  131. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  132. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  133. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  134. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  135. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  136. package/graphql/schema/resolvers/preview/resolveGet.js +3 -15
  137. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  138. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  139. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  140. package/graphql/schema/resolvers/read/resolveGet.js +3 -15
  141. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  142. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  143. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  144. package/graphql/schema/schemaPlugins.js +5 -19
  145. package/graphql/schema/schemaPlugins.js.map +1 -1
  146. package/graphql/system.js +1 -14
  147. package/graphql/system.js.map +1 -1
  148. package/graphqlFields/boolean.js +0 -12
  149. package/graphqlFields/boolean.js.map +1 -1
  150. package/graphqlFields/datetime.js +0 -17
  151. package/graphqlFields/datetime.js.map +1 -1
  152. package/graphqlFields/file.js +0 -8
  153. package/graphqlFields/file.js.map +1 -1
  154. package/graphqlFields/helpers.js +0 -10
  155. package/graphqlFields/helpers.js.map +1 -1
  156. package/graphqlFields/index.js +0 -11
  157. package/graphqlFields/index.js.map +1 -1
  158. package/graphqlFields/longText.js +0 -10
  159. package/graphqlFields/longText.js.map +1 -1
  160. package/graphqlFields/number.js +0 -12
  161. package/graphqlFields/number.js.map +1 -1
  162. package/graphqlFields/object.js +7 -37
  163. package/graphqlFields/object.js.map +1 -1
  164. package/graphqlFields/ref.js +21 -59
  165. package/graphqlFields/ref.js.map +1 -1
  166. package/graphqlFields/richText.js +0 -9
  167. package/graphqlFields/richText.js.map +1 -1
  168. package/graphqlFields/text.js +0 -11
  169. package/graphqlFields/text.js.map +1 -1
  170. package/index.js +0 -19
  171. package/index.js.map +1 -1
  172. package/modelManager/DefaultCmsModelManager.d.ts +7 -7
  173. package/modelManager/DefaultCmsModelManager.js +1 -17
  174. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  175. package/modelManager/index.js +0 -4
  176. package/modelManager/index.js.map +1 -1
  177. package/package.json +27 -28
  178. package/parameters/context.js +0 -4
  179. package/parameters/context.js.map +1 -1
  180. package/parameters/header.js +1 -12
  181. package/parameters/header.js.map +1 -1
  182. package/parameters/index.js +0 -8
  183. package/parameters/index.js.map +1 -1
  184. package/parameters/manual.js +7 -15
  185. package/parameters/manual.js.map +1 -1
  186. package/parameters/path.js +1 -12
  187. package/parameters/path.js.map +1 -1
  188. package/plugins/CmsGroupPlugin.js +1 -9
  189. package/plugins/CmsGroupPlugin.js.map +1 -1
  190. package/plugins/CmsModelFieldConverterPlugin.js +1 -6
  191. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  192. package/plugins/CmsModelPlugin.d.ts +6 -2
  193. package/plugins/CmsModelPlugin.js +18 -49
  194. package/plugins/CmsModelPlugin.js.map +1 -1
  195. package/plugins/CmsParametersPlugin.js +1 -8
  196. package/plugins/CmsParametersPlugin.js.map +1 -1
  197. package/plugins/StorageTransformPlugin.js +1 -10
  198. package/plugins/StorageTransformPlugin.js.map +1 -1
  199. package/plugins/index.js +0 -10
  200. package/plugins/index.js.map +1 -1
  201. package/storage/default.js +0 -3
  202. package/storage/default.js.map +1 -1
  203. package/storage/object.js +3 -25
  204. package/storage/object.js.map +1 -1
  205. package/types.d.ts +267 -126
  206. package/types.js +0 -64
  207. package/types.js.map +1 -1
  208. package/upgrades/5.33.0/index.js +8 -35
  209. package/upgrades/5.33.0/index.js.map +1 -1
  210. package/upgrades/index.js +0 -3
  211. package/upgrades/index.js.map +1 -1
  212. package/utils/access.js +11 -25
  213. package/utils/access.js.map +1 -1
  214. package/utils/converters/Converter.js +1 -14
  215. package/utils/converters/Converter.js.map +1 -1
  216. package/utils/converters/ConverterCollection.d.ts +7 -0
  217. package/utils/converters/ConverterCollection.js +31 -30
  218. package/utils/converters/ConverterCollection.js.map +1 -1
  219. package/utils/converters/valueKeyStorageConverter.js +3 -33
  220. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  221. package/utils/createTypeName.js +1 -9
  222. package/utils/createTypeName.js.map +1 -1
  223. package/utils/entryStorage.js +13 -33
  224. package/utils/entryStorage.js.map +1 -1
  225. package/utils/filterAsync.js +0 -5
  226. package/utils/filterAsync.js.map +1 -1
  227. package/utils/filterModelFields.js +8 -18
  228. package/utils/filterModelFields.js.map +1 -1
  229. package/utils/getEntryTitle.js +0 -9
  230. package/utils/getEntryTitle.js.map +1 -1
  231. package/utils/getSchemaFromFieldPlugins.js +2 -6
  232. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  233. package/utils/ownership.js +0 -8
  234. package/utils/ownership.js.map +1 -1
  235. package/utils/permissions.js +7 -26
  236. package/utils/permissions.js.map +1 -1
  237. package/utils/pluralizedTypeName.js +1 -7
  238. package/utils/pluralizedTypeName.js.map +1 -1
  239. package/utils/renderFields.js +0 -8
  240. package/utils/renderFields.js.map +1 -1
  241. package/utils/renderGetFilterFields.js +0 -11
  242. package/utils/renderGetFilterFields.js.map +1 -1
  243. package/utils/renderInputFields.js +0 -8
  244. package/utils/renderInputFields.js.map +1 -1
  245. package/utils/renderListFilterFields.js +7 -8
  246. package/utils/renderListFilterFields.js.map +1 -1
  247. package/utils/renderSortEnum.js +0 -7
  248. package/utils/renderSortEnum.js.map +1 -1
  249. package/utils/toSlug.js +1 -5
  250. package/utils/toSlug.js.map +1 -1
  251. package/validators/dateGte.js +0 -7
  252. package/validators/dateGte.js.map +1 -1
  253. package/validators/dateLte.js +0 -7
  254. package/validators/dateLte.js.map +1 -1
  255. package/validators/gte.js +0 -8
  256. package/validators/gte.js.map +1 -1
  257. package/validators/in.js +0 -8
  258. package/validators/in.js.map +1 -1
  259. package/validators/index.js +0 -15
  260. package/validators/index.js.map +1 -1
  261. package/validators/lte.js +0 -8
  262. package/validators/lte.js.map +1 -1
  263. package/validators/maxLength.js +0 -8
  264. package/validators/maxLength.js.map +1 -1
  265. package/validators/minLength.js +0 -8
  266. package/validators/minLength.js.map +1 -1
  267. package/validators/pattern.js +0 -9
  268. package/validators/pattern.js.map +1 -1
  269. package/validators/patternPlugins/email.js +0 -2
  270. package/validators/patternPlugins/email.js.map +1 -1
  271. package/validators/patternPlugins/index.js +0 -8
  272. package/validators/patternPlugins/index.js.map +1 -1
  273. package/validators/patternPlugins/lowerCase.js +0 -2
  274. package/validators/patternPlugins/lowerCase.js.map +1 -1
  275. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  276. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  277. package/validators/patternPlugins/upperCase.js +0 -2
  278. package/validators/patternPlugins/upperCase.js.map +1 -1
  279. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  280. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  281. package/validators/patternPlugins/url.js +0 -2
  282. package/validators/patternPlugins/url.js.map +1 -1
  283. package/validators/required.js +0 -5
  284. package/validators/required.js.map +1 -1
  285. package/validators/timeGte.js +0 -8
  286. package/validators/timeGte.js.map +1 -1
  287. package/validators/timeLte.js +0 -8
  288. package/validators/timeLte.js.map +1 -1
  289. package/validators/unique.js +1 -8
  290. package/validators/unique.js.map +1 -1
package/graphql/index.js CHANGED
@@ -4,19 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createGraphQL = void 0;
7
-
8
7
  var _system = require("./system");
9
-
10
8
  var _graphQLHandlerFactory = require("./graphQLHandlerFactory");
11
-
12
9
  const createBaseSchema = () => {
13
10
  return {
14
11
  name: "cms.graphql.schema.base",
15
12
  type: "graphql-schema",
16
13
  schema: {
17
- typeDefs:
18
- /* GraphQL */
19
- `
14
+ typeDefs: /* GraphQL */`
20
15
  type CmsError {
21
16
  code: String
22
17
  message: String
@@ -49,9 +44,7 @@ const createBaseSchema = () => {
49
44
  }
50
45
  };
51
46
  };
52
-
53
47
  const createGraphQL = params => {
54
48
  return [createBaseSchema(), (0, _system.createSystemSchemaPlugin)(), (0, _graphQLHandlerFactory.graphQLHandlerFactory)(params)];
55
49
  };
56
-
57
50
  exports.createGraphQL = createGraphQL;
@@ -1 +1 @@
1
- {"version":3,"names":["createBaseSchema","name","type","schema","typeDefs","resolvers","createGraphQL","params","createSystemSchemaPlugin","graphQLHandlerFactory"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\nimport { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { CmsContext } from \"~/types\";\n\nconst createBaseSchema = (): GraphQLSchemaPlugin<CmsContext> => {\n return {\n name: \"cms.graphql.schema.base\",\n type: \"graphql-schema\",\n schema: {\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 type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n `,\n resolvers: {}\n }\n };\n};\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;;AACA;;AACA;;AAGA,MAAMA,gBAAgB,GAAG,MAAuC;EAC5D,OAAO;IACHC,IAAI,EAAE,yBADH;IAEHC,IAAI,EAAE,gBAFH;IAGHC,MAAM,EAAE;MACJC,QAAQ;MAAE;MAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aA7BgB;MA8BJC,SAAS,EAAE;IA9BP;EAHL,CAAP;AAoCH,CArCD;;AAwCO,MAAMC,aAAa,GAAIC,MAAD,IAAiC;EAC1D,OAAO,CAACP,gBAAgB,EAAjB,EAAqB,IAAAQ,gCAAA,GAArB,EAAiD,IAAAC,4CAAA,EAAsBF,MAAtB,CAAjD,CAAP;AACH,CAFM"}
1
+ {"version":3,"names":["createBaseSchema","name","type","schema","typeDefs","resolvers","createGraphQL","params","createSystemSchemaPlugin","graphQLHandlerFactory"],"sources":["index.ts"],"sourcesContent":["import { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\nimport { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { CmsContext } from \"~/types\";\n\nconst createBaseSchema = (): GraphQLSchemaPlugin<CmsContext> => {\n return {\n name: \"cms.graphql.schema.base\",\n type: \"graphql-schema\",\n schema: {\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 type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n `,\n resolvers: {}\n }\n };\n};\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;AACA;AACA;AAGA,MAAMA,gBAAgB,GAAG,MAAuC;EAC5D,OAAO;IACHC,IAAI,EAAE,yBAAyB;IAC/BC,IAAI,EAAE,gBAAgB;IACtBC,MAAM,EAAE;MACJC,QAAQ,EAAE,aAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;MACDC,SAAS,EAAE,CAAC;IAChB;EACJ,CAAC;AACL,CAAC;AAGM,MAAMC,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO,CAACP,gBAAgB,EAAE,EAAE,IAAAQ,gCAAwB,GAAE,EAAE,IAAAC,4CAAqB,EAACF,MAAM,CAAC,CAAC;AAC1F,CAAC;AAAC"}
@@ -1,28 +1,17 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createBaseContentSchema = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _builtInTypes = require("@webiny/handler-graphql/builtInTypes");
13
-
14
10
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
15
-
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
-
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
-
20
11
  const createBaseContentSchema = context => {
21
12
  const scalars = context.plugins.byType("graphql-scalar").map(item => item.scalar);
22
13
  return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
23
- typeDefs:
24
- /* GraphQL */
25
- `
14
+ typeDefs: /* GraphQL */`
26
15
  ${scalars.map(scalar => `scalar ${scalar.name}`).join(" ")}
27
16
  scalar JSON
28
17
  scalar Long
@@ -57,15 +46,15 @@ const createBaseContentSchema = context => {
57
46
  published
58
47
  }
59
48
  `,
60
- resolvers: _objectSpread(_objectSpread({}, scalars.reduce((acc, s) => {
49
+ resolvers: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, scalars.reduce((acc, s) => {
61
50
  acc[s.name] = s;
62
51
  return acc;
63
52
  }, {})), {}, {
64
53
  JSON: _builtInTypes.JsonScalar,
65
54
  Long: _builtInTypes.LongScalar,
66
55
  RefInput: _builtInTypes.RefInput,
67
- Number: _builtInTypes.Number,
68
- Any: _builtInTypes.Any,
56
+ Number: _builtInTypes.NumberScalar,
57
+ Any: _builtInTypes.AnyScalar,
69
58
  DateTime: _builtInTypes.DateTimeScalar,
70
59
  DateTimeZ: _builtInTypes.DateTimeZScalar,
71
60
  Date: _builtInTypes.DateScalar,
@@ -76,5 +65,4 @@ const createBaseContentSchema = context => {
76
65
  })
77
66
  });
78
67
  };
79
-
80
68
  exports.createBaseContentSchema = createBaseContentSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","GraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","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 RefInput,\n Number as NumberScalar,\n Any as AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { GraphQLScalarType } from \"graphql\";\n\nexport const createBaseContentSchema = (context: CmsContext): GraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n return new GraphQLSchemaPlugin({\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 CmsCreatedBy {\n id: String\n displayName: String\n type: String\n }\n\n type CmsOwnedBy {\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((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {} as Record<string, GraphQLScalarType>),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput,\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};\n"],"mappings":";;;;;;;;;;;AAEA;;AAWA;;;;;;AAGO,MAAMA,uBAAuB,GAAIC,OAAD,IAA8C;EACjF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAR,CACXC,MADW,CACiB,gBADjB,EAEXC,GAFW,CAEPC,IAAI,IAAIA,IAAI,CAACC,MAFN,CAAhB;EAIA,OAAO,IAAIC,wCAAJ,CAAwB;IAC3BC,QAAQ;IAAE;IAAe;AACjC,cAAcP,OAAO,CAACG,GAAR,CAAYE,MAAM,IAAK,UAASA,MAAM,CAACG,IAAK,EAA5C,EAA+CC,IAA/C,CAAoD,GAApD,CAAyD;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;AACA;AACA;AACA;AACA;AACA;AACA,SAnCmC;IAoC3BC,SAAS,kCACFV,OAAO,CAACW,MAAR,CAAe,CAACC,GAAD,EAAMC,CAAN,KAAY;MAC1BD,GAAG,CAACC,CAAC,CAACL,IAAH,CAAH,GAAcK,CAAd;MACA,OAAOD,GAAP;IACH,CAHE,EAGA,EAHA,CADE;MAKLE,IAAI,EAAEC,wBALD;MAMLC,IAAI,EAAEC,wBAND;MAOLC,QAAQ,EAARA,sBAPK;MAQLC,MAAM,EAAEC,oBARH;MASLC,GAAG,EAAEC,iBATA;MAULC,QAAQ,EAAEC,4BAVL;MAWLC,SAAS,EAAEC,6BAXN;MAYLC,IAAI,EAAEC,wBAZD;MAaLC,IAAI,EAAEC,wBAbD;MAcLC,QAAQ,EAAE;QACNC,MAAM,EAAE,MAAM;MADR;IAdL;EApCkB,CAAxB,CAAP;AAuDH,CA5DM"}
1
+ {"version":3,"names":["createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","GraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","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 RefInput,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { GraphQLScalarType } from \"graphql\";\n\nexport const createBaseContentSchema = (context: CmsContext): GraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n return new GraphQLSchemaPlugin({\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 CmsCreatedBy {\n id: String\n displayName: String\n type: String\n }\n\n type CmsOwnedBy {\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((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {} as Record<string, GraphQLScalarType>),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput,\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};\n"],"mappings":";;;;;;;;AAEA;AAWA;AAGO,MAAMA,uBAAuB,GAAIC,OAAmB,IAA0B;EACjF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,OAAO,IAAIC,wCAAmB,CAAC;IAC3BC,QAAQ,EAAE,aAAe;AACjC,cAAcP,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACG,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;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,8DACFV,OAAO,CAACW,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAK;MAC1BD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;MACf,OAAOD,GAAG;IACd,CAAC,EAAE,CAAC,CAAC,CAAsC;MAC3CE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAARA,sBAAQ;MACRC,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;AACN,CAAC;AAAC"}
@@ -1,59 +1,44 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createContentEntriesSchema = void 0;
9
-
10
8
  var _handlerGraphql = require("@webiny/handler-graphql");
11
-
12
9
  var _apiSecurity = require("@webiny/api-security");
13
-
14
10
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
15
-
16
11
  var _getEntryTitle = require("../../utils/getEntryTitle");
17
-
18
12
  var _error = _interopRequireDefault(require("@webiny/error"));
19
-
20
13
  const getFetchMethod = (type, context) => {
21
14
  if (!getContentEntriesMethods[type]) {
22
15
  throw new _error.default(`Unknown getContentEntries method "${type}". Could not fetch content entries.`, "UNKNOWN_METHOD_ERROR", {
23
16
  type
24
17
  });
25
18
  }
26
-
27
19
  const methodName = getContentEntriesMethods[type];
28
-
29
20
  if (!context.cms[methodName]) {
30
21
  throw new _error.default(`Unknown context.cms method "${methodName}". Could not fetch content entries.`, "UNKNOWN_METHOD_ERROR", {
31
22
  type,
32
23
  methodName
33
24
  });
34
25
  }
35
-
36
26
  return context.cms[methodName];
37
27
  };
38
28
  /**
39
29
  * Function to get the list of content entries depending on latest, published or exact GraphQL queries.
40
30
  */
41
-
42
-
43
31
  var GetContentEntryMethods;
44
-
45
32
  (function (GetContentEntryMethods) {
46
33
  GetContentEntryMethods["getLatestEntriesByIds"] = "getLatestEntriesByIds";
47
34
  GetContentEntryMethods["getPublishedEntriesByIds"] = "getPublishedEntriesByIds";
48
35
  GetContentEntryMethods["getEntriesByIds"] = "getEntriesByIds";
49
36
  })(GetContentEntryMethods || (GetContentEntryMethods = {}));
50
-
51
37
  const getContentEntriesMethods = {
52
38
  latest: "getLatestEntriesByIds",
53
39
  published: "getPublishedEntriesByIds",
54
40
  exact: "getEntriesByIds"
55
41
  };
56
-
57
42
  const getContentEntries = async params => {
58
43
  const {
59
44
  args,
@@ -73,18 +58,15 @@ const getContentEntries = async params => {
73
58
  } else if (collection[ref.modelId].includes(ref.id)) {
74
59
  return collection;
75
60
  }
76
-
77
61
  collection[ref.modelId].push(ref.id);
78
62
  return collection;
79
63
  }, {});
80
64
  const getters = Object.keys(entriesByModel).map(async modelId => {
81
65
  return method(modelsMap[modelId], entriesByModel[modelId]);
82
66
  });
83
-
84
67
  if (getters.length === 0) {
85
68
  return new _handlerGraphql.Response([]);
86
69
  }
87
-
88
70
  const results = await Promise.all(getters);
89
71
  const entries = results.reduce((collection, items) => {
90
72
  return collection.concat(items.map(item => {
@@ -103,25 +85,23 @@ const getContentEntries = async params => {
103
85
  }, []).filter(Boolean);
104
86
  return new _handlerGraphql.Response(entries);
105
87
  };
88
+
106
89
  /**
107
90
  * Function to fetch a single content entry depending on latest, published or exact GraphQL query.
108
91
  */
109
92
 
110
-
111
93
  const getContentEntry = async params => {
112
94
  const {
113
95
  args,
114
96
  context,
115
97
  type
116
98
  } = params;
117
-
118
99
  if (!getContentEntriesMethods[type]) {
119
100
  throw new _error.default(`Unknown getContentEntry method "${type}". Could not fetch content entry.`, "UNKNOWN_METHOD_ERROR", {
120
101
  args,
121
102
  type
122
103
  });
123
104
  }
124
-
125
105
  const method = getFetchMethod(type, context);
126
106
  const {
127
107
  modelId,
@@ -129,7 +109,6 @@ const getContentEntry = async params => {
129
109
  } = args.entry;
130
110
  const models = await context.cms.listModels();
131
111
  const model = models.find(m => m.modelId === modelId);
132
-
133
112
  if (!model) {
134
113
  return new _apiSecurity.NotAuthorizedResponse({
135
114
  data: {
@@ -137,14 +116,11 @@ const getContentEntry = async params => {
137
116
  }
138
117
  });
139
118
  }
140
-
141
119
  const result = await method(model, [id]);
142
120
  const entry = result.shift();
143
-
144
121
  if (!entry) {
145
122
  return new _handlerGraphql.Response(null);
146
123
  }
147
-
148
124
  return new _handlerGraphql.Response({
149
125
  id: entry.id,
150
126
  entryId: entry.entryId,
@@ -156,7 +132,6 @@ const getContentEntry = async params => {
156
132
  title: (0, _getEntryTitle.getEntryTitle)(model, entry)
157
133
  });
158
134
  };
159
-
160
135
  const createContentEntriesSchema = context => {
161
136
  if (!context.cms.MANAGE) {
162
137
  return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
@@ -164,11 +139,8 @@ const createContentEntriesSchema = context => {
164
139
  resolvers: {}
165
140
  });
166
141
  }
167
-
168
142
  return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
169
- typeDefs:
170
- /* GraphQL */
171
- `
143
+ typeDefs: /* GraphQL */`
172
144
  type CmsModelMeta {
173
145
  modelId: String
174
146
  name: String
@@ -237,17 +209,13 @@ const createContentEntriesSchema = context => {
237
209
  }) => {
238
210
  return parent.model.modelId === modelId;
239
211
  });
240
-
241
212
  if (!model) {
242
213
  return null;
243
214
  }
244
-
245
215
  const [entry] = await context.cms.getPublishedEntriesByIds(model, [parent.id]);
246
-
247
216
  if (!entry) {
248
217
  return null;
249
218
  }
250
-
251
219
  return {
252
220
  id: entry.id,
253
221
  entryId: entry.entryId,
@@ -294,7 +262,6 @@ const createContentEntriesSchema = context => {
294
262
  const entries = await Promise.all(getters).then(results => results.reduce((result, item) => result.concat(item), []));
295
263
  return new _handlerGraphql.Response(entries.sort((a, b) => Date.parse(b.savedOn) - Date.parse(a.savedOn)).slice(0, limit));
296
264
  },
297
-
298
265
  async getContentEntry(_, args, context) {
299
266
  return getContentEntry({
300
267
  args,
@@ -302,7 +269,6 @@ const createContentEntriesSchema = context => {
302
269
  type: "exact"
303
270
  });
304
271
  },
305
-
306
272
  async getLatestContentEntry(_, args, context) {
307
273
  return getContentEntry({
308
274
  args,
@@ -310,7 +276,6 @@ const createContentEntriesSchema = context => {
310
276
  type: "latest"
311
277
  });
312
278
  },
313
-
314
279
  async getPublishedContentEntry(_, args, context) {
315
280
  return getContentEntry({
316
281
  args,
@@ -318,7 +283,6 @@ const createContentEntriesSchema = context => {
318
283
  type: "published"
319
284
  });
320
285
  },
321
-
322
286
  async getContentEntries(_, args, context) {
323
287
  return getContentEntries({
324
288
  args,
@@ -326,7 +290,6 @@ const createContentEntriesSchema = context => {
326
290
  type: "exact"
327
291
  });
328
292
  },
329
-
330
293
  async getLatestContentEntries(_, args, context) {
331
294
  return getContentEntries({
332
295
  args,
@@ -334,7 +297,6 @@ const createContentEntriesSchema = context => {
334
297
  type: "latest"
335
298
  });
336
299
  },
337
-
338
300
  async getPublishedContentEntries(_, args, context) {
339
301
  return getContentEntries({
340
302
  args,
@@ -342,10 +304,8 @@ const createContentEntriesSchema = context => {
342
304
  type: "published"
343
305
  });
344
306
  }
345
-
346
307
  }
347
308
  }
348
309
  });
349
310
  };
350
-
351
311
  exports.createContentEntriesSchema = createContentEntriesSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","model","modelId","argsEntries","entries","entriesByModel","ref","includes","id","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","entryId","name","status","title","getEntryTitle","filter","Boolean","getContentEntry","entry","find","m","NotAuthorizedResponse","data","result","shift","createContentEntriesSchema","MANAGE","GraphQLSchemaPlugin","typeDefs","resolvers","CmsContentEntry","parent","_","getPublishedEntriesByIds","ex","Query","searchContentEntries","modelIds","fields","query","limit","modelManager","getModelManager","where","listLatest","search","undefined","savedOn","then","sort","a","b","Date","parse","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries"],"sources":["contentEntries.ts"],"sourcesContent":["import { Response } from \"@webiny/handler-graphql\";\nimport { CmsEntry, CmsContext, CmsModel, CmsEntryListWhere } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport WebinyError from \"@webiny/error\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n}\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (params: GetContentEntriesParams): Promise<Response> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return {\n id: item.id,\n entryId: item.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: item.status,\n title: getEntryTitle(model, item)\n };\n })\n );\n }, [] as CmsEntryRecord[])\n .filter(Boolean);\n\n return new Response(entries);\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response({\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry)\n });\n};\n\nexport const createContentEntriesSchema = (\n context: CmsContext\n): GraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n return new GraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsModelMeta {\n modelId: String\n name: String\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta\n status: String\n title: String\n published: CmsPublishedContentEntry\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return {\n id: entry.id,\n entryId: entry.entryId,\n title: getEntryTitle(model, entry)\n };\n } catch (ex) {\n return null;\n }\n }\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getModelManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n // We need `savedOn` to sort entries from latest to oldest\n savedOn: entry.savedOn\n };\n });\n });\n\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => Date.parse(b.savedOn) - Date.parse(a.savedOn))\n .slice(0, limit)\n );\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","model","modelId","argsEntries","entries","entriesByModel","ref","includes","id","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","entryId","name","status","title","getEntryTitle","filter","Boolean","getContentEntry","entry","find","m","NotAuthorizedResponse","data","result","shift","createContentEntriesSchema","MANAGE","GraphQLSchemaPlugin","typeDefs","resolvers","CmsContentEntry","parent","_","getPublishedEntriesByIds","ex","Query","searchContentEntries","modelIds","fields","query","limit","modelManager","getModelManager","where","listLatest","search","undefined","savedOn","then","sort","a","b","Date","parse","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries"],"sources":["contentEntries.ts"],"sourcesContent":["import { Response } from \"@webiny/handler-graphql\";\nimport { CmsEntry, CmsContext, CmsModel, CmsEntryListWhere } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport WebinyError from \"@webiny/error\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n}\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (params: GetContentEntriesParams): Promise<Response> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return {\n id: item.id,\n entryId: item.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: item.status,\n title: getEntryTitle(model, item)\n };\n })\n );\n }, [] as CmsEntryRecord[])\n .filter(Boolean);\n\n return new Response(entries);\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response({\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry)\n });\n};\n\nexport const createContentEntriesSchema = (\n context: CmsContext\n): GraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n return new GraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsModelMeta {\n modelId: String\n name: String\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta\n status: String\n title: String\n published: CmsPublishedContentEntry\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return {\n id: entry.id,\n entryId: entry.entryId,\n title: getEntryTitle(model, entry)\n };\n } catch (ex) {\n return null;\n }\n }\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getModelManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n // We need `savedOn` to sort entries from latest to oldest\n savedOn: entry.savedOn\n };\n });\n });\n\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => Date.parse(b.savedOn) - Date.parse(a.savedOn))\n .slice(0, limit)\n );\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n};\n"],"mappings":"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"}
@@ -4,20 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createGroupsSchema = void 0;
7
-
8
7
  var _handlerGraphql = require("@webiny/handler-graphql");
9
-
10
8
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
11
-
12
9
  var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
13
-
14
10
  const createGroupsSchema = context => {
15
11
  let manageSchema = "";
16
-
17
12
  if (context.cms.MANAGE) {
18
- manageSchema =
19
- /* GraphQL */
20
- `
13
+ manageSchema = /* GraphQL */`
21
14
  input CmsContentModelGroupInput {
22
15
  name: String!
23
16
  slug: String
@@ -55,9 +48,7 @@ const createGroupsSchema = context => {
55
48
  }
56
49
  `;
57
50
  }
58
-
59
51
  let resolvers = {};
60
-
61
52
  if (context.cms.MANAGE) {
62
53
  resolvers = {
63
54
  CmsContentModelGroup: {
@@ -69,7 +60,6 @@ const createGroupsSchema = context => {
69
60
  if (model.isPrivate === true) {
70
61
  return false;
71
62
  }
72
-
73
63
  return model.group.id === group.id;
74
64
  });
75
65
  },
@@ -81,7 +71,6 @@ const createGroupsSchema = context => {
81
71
  if (model.isPrivate === true) {
82
72
  return false;
83
73
  }
84
-
85
74
  return model.group === group.id;
86
75
  }).length;
87
76
  },
@@ -96,11 +85,9 @@ const createGroupsSchema = context => {
96
85
  id
97
86
  } = args;
98
87
  const group = await context.cms.getGroup(id);
99
-
100
88
  if (group !== null && group !== void 0 && group.isPrivate) {
101
89
  throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
102
90
  }
103
-
104
91
  return new _handlerGraphql.Response(group);
105
92
  } catch (e) {
106
93
  return new _handlerGraphql.ErrorResponse(e);
@@ -143,11 +130,8 @@ const createGroupsSchema = context => {
143
130
  }
144
131
  };
145
132
  }
146
-
147
133
  return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
148
- typeDefs:
149
- /* GraphQL */
150
- `
134
+ typeDefs: /* GraphQL */`
151
135
  type CmsContentModelGroup {
152
136
  id: ID!
153
137
  createdOn: DateTime
@@ -168,5 +152,4 @@ const createGroupsSchema = context => {
168
152
  resolvers
169
153
  });
170
154
  };
171
-
172
155
  exports.createGroupsSchema = createGroupsSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","security","disableAuthorization","models","listModels","enableAuthorization","filter","model","isPrivate","id","totalContentModels","length","plugin","plugins","byType","CmsGroupPlugin","type","some","item","contentModelGroup","Query","getContentModelGroup","args","getGroup","NotFoundError","Response","e","ErrorResponse","listContentModelGroups","__","groups","listGroups","Mutation","createContentModelGroup","createGroup","data","updateContentModelGroup","updateGroup","deleteContentModelGroup","deleteGroup","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\n\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\n\nexport const createGroupsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n manageSchema = /* GraphQL */ `\n input CmsContentModelGroupInput {\n name: String!\n slug: String\n description: String\n icon: String!\n }\n\n type CmsContentModelGroupResponse {\n data: CmsContentModelGroup\n error: CmsError\n }\n\n type CmsContentModelGroupListResponse {\n data: [CmsContentModelGroup]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModelGroup(id: ID): CmsContentModelGroupResponse\n listContentModelGroups: CmsContentModelGroupListResponse\n }\n\n extend type Mutation {\n createContentModelGroup(\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n updateContentModelGroup(\n id: ID!\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n deleteContentModelGroup(id: ID!): CmsDeleteResponse\n }\n `;\n }\n\n let resolvers: Resolvers<CmsContext> = {};\n\n if (context.cms.MANAGE) {\n resolvers = {\n CmsContentModelGroup: {\n contentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group.id === group.id;\n });\n },\n totalContentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group === group.id;\n }).length;\n },\n plugin: async (group, _, context: CmsContext): Promise<boolean> => {\n return context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .some(item => item.contentModelGroup.id === group.id);\n }\n },\n Query: {\n getContentModelGroup: async (_, args: any, context) => {\n try {\n const { id } = args;\n const group = await context.cms.getGroup(id);\n if (group?.isPrivate) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModelGroups: async (_, __, context) => {\n try {\n const groups = await context.cms.listGroups();\n return new Response(groups.filter(group => group.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n Mutation: {\n createContentModelGroup: async (_, args: any, context) => {\n try {\n const model = await context.cms.createGroup(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModelGroup: async (_, args: any, context) => {\n try {\n const group = await context.cms.updateGroup(args.id, args.data);\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModelGroup: async (_, args: any, context) => {\n try {\n await context.cms.deleteGroup(args.id);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n };\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsContentModelGroup {\n id: ID!\n createdOn: DateTime\n savedOn: DateTime\n name: String!\n contentModels: [CmsContentModel!]\n totalContentModels: Int!\n slug: String!\n description: String\n icon: String\n createdBy: CmsCreatedBy\n\n # Returns true if the content model group is registered via a plugin.\n plugin: Boolean!\n }\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createGroupsSchema","context","manageSchema","cms","MANAGE","resolvers","CmsContentModelGroup","contentModels","group","_","security","disableAuthorization","models","listModels","enableAuthorization","filter","model","isPrivate","id","totalContentModels","length","plugin","plugins","byType","CmsGroupPlugin","type","some","item","contentModelGroup","Query","getContentModelGroup","args","getGroup","NotFoundError","Response","e","ErrorResponse","listContentModelGroups","__","groups","listGroups","Mutation","createContentModelGroup","createGroup","data","updateContentModelGroup","updateGroup","deleteContentModelGroup","deleteGroup","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModelGroups.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\n\nimport { CmsContext } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\n\nexport const createGroupsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n manageSchema = /* GraphQL */ `\n input CmsContentModelGroupInput {\n name: String!\n slug: String\n description: String\n icon: String!\n }\n\n type CmsContentModelGroupResponse {\n data: CmsContentModelGroup\n error: CmsError\n }\n\n type CmsContentModelGroupListResponse {\n data: [CmsContentModelGroup]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModelGroup(id: ID): CmsContentModelGroupResponse\n listContentModelGroups: CmsContentModelGroupListResponse\n }\n\n extend type Mutation {\n createContentModelGroup(\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n updateContentModelGroup(\n id: ID!\n data: CmsContentModelGroupInput!\n ): CmsContentModelGroupResponse\n\n deleteContentModelGroup(id: ID!): CmsDeleteResponse\n }\n `;\n }\n\n let resolvers: Resolvers<CmsContext> = {};\n\n if (context.cms.MANAGE) {\n resolvers = {\n CmsContentModelGroup: {\n contentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group.id === group.id;\n });\n },\n totalContentModels: async (group, _, context) => {\n context.security.disableAuthorization();\n const models = await context.cms.listModels();\n context.security.enableAuthorization();\n return models.filter(model => {\n if (model.isPrivate === true) {\n return false;\n }\n return model.group === group.id;\n }).length;\n },\n plugin: async (group, _, context: CmsContext): Promise<boolean> => {\n return context.plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .some(item => item.contentModelGroup.id === group.id);\n }\n },\n Query: {\n getContentModelGroup: async (_, args: any, context) => {\n try {\n const { id } = args;\n const group = await context.cms.getGroup(id);\n if (group?.isPrivate) {\n throw new NotFoundError(`Cms Group \"${id}\" was not found!`);\n }\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModelGroups: async (_, __, context) => {\n try {\n const groups = await context.cms.listGroups();\n return new Response(groups.filter(group => group.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n Mutation: {\n createContentModelGroup: async (_, args: any, context) => {\n try {\n const model = await context.cms.createGroup(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModelGroup: async (_, args: any, context) => {\n try {\n const group = await context.cms.updateGroup(args.id, args.data);\n return new Response(group);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModelGroup: async (_, args: any, context) => {\n try {\n await context.cms.deleteGroup(args.id);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n };\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsContentModelGroup {\n id: ID!\n createdOn: DateTime\n savedOn: DateTime\n name: String!\n contentModels: [CmsContentModel!]\n totalContentModels: Int!\n slug: String!\n description: String\n icon: String\n createdBy: CmsCreatedBy\n\n # Returns true if the content model group is registered via a plugin.\n plugin: Boolean!\n }\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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"}