@webiny/api-headless-cms 0.0.0-mt-2 → 0.0.0-unstable.5e7233243f

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 (554) hide show
  1. package/context.d.ts +3 -0
  2. package/context.js +64 -0
  3. package/context.js.map +1 -0
  4. package/crud/contentEntry/afterDelete.d.ts +8 -0
  5. package/{content/plugins/crud → crud}/contentEntry/afterDelete.js +2 -2
  6. package/crud/contentEntry/afterDelete.js.map +1 -0
  7. package/crud/contentEntry/beforeCreate.d.ts +8 -0
  8. package/{content/plugins/crud → crud}/contentEntry/beforeCreate.js +2 -2
  9. package/crud/contentEntry/beforeCreate.js.map +1 -0
  10. package/crud/contentEntry/beforeUpdate.d.ts +8 -0
  11. package/{content/plugins/crud → crud}/contentEntry/beforeUpdate.js +2 -2
  12. package/crud/contentEntry/beforeUpdate.js.map +1 -0
  13. package/crud/contentEntry/entryDataValidation.d.ts +10 -0
  14. package/{content/plugins/crud → crud}/contentEntry/entryDataValidation.js +26 -10
  15. package/crud/contentEntry/entryDataValidation.js.map +1 -0
  16. package/{content/plugins/crud → crud}/contentEntry/markLockedFields.d.ts +3 -2
  17. package/{content/plugins/crud → crud}/contentEntry/markLockedFields.js +6 -6
  18. package/crud/contentEntry/markLockedFields.js.map +1 -0
  19. package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
  20. package/crud/contentEntry/referenceFieldsMapping.js +294 -0
  21. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
  22. package/{content/plugins/crud → crud}/contentEntry.crud.d.ts +5 -7
  23. package/{content/plugins/crud → crud}/contentEntry.crud.js +585 -219
  24. package/crud/contentEntry.crud.js.map +1 -0
  25. package/crud/contentModel/afterCreate.d.ts +8 -0
  26. package/{content/plugins/crud → crud}/contentModel/afterCreate.js +2 -2
  27. package/crud/contentModel/afterCreate.js.map +1 -0
  28. package/crud/contentModel/afterCreateFrom.d.ts +8 -0
  29. package/crud/contentModel/afterCreateFrom.js +18 -0
  30. package/crud/contentModel/afterCreateFrom.js.map +1 -0
  31. package/crud/contentModel/afterDelete.d.ts +8 -0
  32. package/{content/plugins/crud → crud}/contentModel/afterDelete.js +2 -2
  33. package/crud/contentModel/afterDelete.js.map +1 -0
  34. package/crud/contentModel/afterUpdate.d.ts +8 -0
  35. package/{content/plugins/crud → crud}/contentModel/afterUpdate.js +2 -2
  36. package/crud/contentModel/afterUpdate.js.map +1 -0
  37. package/crud/contentModel/beforeCreate.d.ts +15 -0
  38. package/{content/plugins/crud → crud}/contentModel/beforeCreate.js +58 -10
  39. package/crud/contentModel/beforeCreate.js.map +1 -0
  40. package/{content/plugins/crud → crud}/contentModel/beforeDelete.d.ts +5 -4
  41. package/{content/plugins/crud → crud}/contentModel/beforeDelete.js +10 -6
  42. package/crud/contentModel/beforeDelete.js.map +1 -0
  43. package/{content/plugins/crud → crud}/contentModel/beforeUpdate.d.ts +5 -4
  44. package/crud/contentModel/beforeUpdate.js +37 -0
  45. package/crud/contentModel/beforeUpdate.js.map +1 -0
  46. package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
  47. package/{content/plugins/crud → crud}/contentModel/contentModelManagerFactory.js +0 -0
  48. package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
  49. package/crud/contentModel/createFieldModels.d.ts +2 -0
  50. package/{content/plugins/crud → crud}/contentModel/createFieldModels.js +6 -2
  51. package/crud/contentModel/createFieldModels.js.map +1 -0
  52. package/crud/contentModel/createFieldStorageId.d.ts +2 -0
  53. package/crud/contentModel/createFieldStorageId.js +16 -0
  54. package/crud/contentModel/createFieldStorageId.js.map +1 -0
  55. package/crud/contentModel/fieldIdValidation.d.ts +1 -0
  56. package/crud/contentModel/fieldIdValidation.js +25 -0
  57. package/crud/contentModel/fieldIdValidation.js.map +1 -0
  58. package/crud/contentModel/idValidation.d.ts +1 -0
  59. package/{content/plugins/crud → crud}/contentModel/idValidation.js +3 -3
  60. package/crud/contentModel/idValidation.js.map +1 -0
  61. package/{content/plugins/crud → crud}/contentModel/models.d.ts +2 -1
  62. package/{content/plugins/crud → crud}/contentModel/models.js +64 -25
  63. package/crud/contentModel/models.js.map +1 -0
  64. package/crud/contentModel/systemFields.d.ts +1 -0
  65. package/crud/contentModel/systemFields.js +8 -0
  66. package/crud/contentModel/systemFields.js.map +1 -0
  67. package/crud/contentModel/validateLayout.d.ts +2 -0
  68. package/{content/plugins/crud → crud}/contentModel/validateLayout.js +1 -3
  69. package/crud/contentModel/validateLayout.js.map +1 -0
  70. package/crud/contentModel/validateModel.d.ts +9 -0
  71. package/crud/contentModel/validateModel.js +32 -0
  72. package/crud/contentModel/validateModel.js.map +1 -0
  73. package/crud/contentModel/validateModelFields.d.ts +9 -0
  74. package/crud/contentModel/validateModelFields.js +363 -0
  75. package/crud/contentModel/validateModelFields.js.map +1 -0
  76. package/{content/plugins/crud → crud}/contentModel.crud.d.ts +3 -3
  77. package/{content/plugins/crud → crud}/contentModel.crud.js +251 -95
  78. package/crud/contentModel.crud.js.map +1 -0
  79. package/{content/plugins/crud → crud}/contentModelGroup/beforeCreate.d.ts +4 -3
  80. package/{content/plugins/crud → crud}/contentModelGroup/beforeCreate.js +6 -6
  81. package/crud/contentModelGroup/beforeCreate.js.map +1 -0
  82. package/{content/plugins/crud → crud}/contentModelGroup/beforeDelete.d.ts +4 -3
  83. package/{content/plugins/crud → crud}/contentModelGroup/beforeDelete.js +1 -1
  84. package/crud/contentModelGroup/beforeDelete.js.map +1 -0
  85. package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
  86. package/{content/plugins/crud → crud}/contentModelGroup/beforeUpdate.js +1 -1
  87. package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
  88. package/{content/plugins/crud → crud}/contentModelGroup.crud.d.ts +3 -3
  89. package/{content/plugins/crud → crud}/contentModelGroup.crud.js +54 -59
  90. package/crud/contentModelGroup.crud.js.map +1 -0
  91. package/crud/index.d.ts +6 -0
  92. package/{content/plugins/crud → crud}/index.js +15 -26
  93. package/crud/index.js.map +1 -0
  94. package/{plugins/crud → crud}/settings.crud.d.ts +3 -3
  95. package/crud/settings.crud.js +88 -0
  96. package/crud/settings.crud.js.map +1 -0
  97. package/{plugins/crud → crud}/system.crud.d.ts +6 -3
  98. package/{plugins/crud → crud}/system.crud.js +43 -16
  99. package/crud/system.crud.js.map +1 -0
  100. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
  101. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
  102. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
  103. package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
  104. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +306 -0
  105. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
  106. package/fieldConverters/index.d.ts +3 -0
  107. package/fieldConverters/index.js +16 -0
  108. package/fieldConverters/index.js.map +1 -0
  109. package/{content/plugins → graphql}/buildSchemaPlugins.d.ts +2 -3
  110. package/graphql/buildSchemaPlugins.js +27 -0
  111. package/graphql/buildSchemaPlugins.js.map +1 -0
  112. package/graphql/graphQLHandlerFactory.d.ts +5 -0
  113. package/graphql/graphQLHandlerFactory.js +158 -0
  114. package/graphql/graphQLHandlerFactory.js.map +1 -0
  115. package/graphql/index.d.ts +5 -0
  116. package/graphql/index.js +57 -0
  117. package/graphql/index.js.map +1 -0
  118. package/graphql/schema/baseContentSchema.d.ts +3 -0
  119. package/{content/plugins/schema/baseSchema.js → graphql/schema/baseContentSchema.js} +10 -28
  120. package/graphql/schema/baseContentSchema.js.map +1 -0
  121. package/graphql/schema/contentEntries.d.ts +3 -0
  122. package/graphql/schema/contentEntries.js +351 -0
  123. package/graphql/schema/contentEntries.js.map +1 -0
  124. package/graphql/schema/contentModelGroups.d.ts +3 -0
  125. package/{content/plugins → graphql}/schema/contentModelGroups.js +34 -15
  126. package/graphql/schema/contentModelGroups.js.map +1 -0
  127. package/graphql/schema/contentModels.d.ts +3 -0
  128. package/{content/plugins → graphql}/schema/contentModels.js +47 -10
  129. package/graphql/schema/contentModels.js.map +1 -0
  130. package/graphql/schema/createFieldResolvers.d.ts +20 -0
  131. package/{content/plugins → graphql}/schema/createFieldResolvers.js +48 -17
  132. package/graphql/schema/createFieldResolvers.js.map +1 -0
  133. package/graphql/schema/createManageResolvers.d.ts +12 -0
  134. package/{content/plugins → graphql}/schema/createManageResolvers.js +35 -19
  135. package/graphql/schema/createManageResolvers.js.map +1 -0
  136. package/graphql/schema/createManageSDL.d.ts +10 -0
  137. package/{content/plugins → graphql}/schema/createManageSDL.js +20 -9
  138. package/graphql/schema/createManageSDL.js.map +1 -0
  139. package/graphql/schema/createPreviewResolvers.d.ts +12 -0
  140. package/{content/plugins → graphql}/schema/createPreviewResolvers.js +16 -9
  141. package/graphql/schema/createPreviewResolvers.js.map +1 -0
  142. package/graphql/schema/createReadResolvers.d.ts +12 -0
  143. package/{content/plugins → graphql}/schema/createReadResolvers.js +16 -9
  144. package/graphql/schema/createReadResolvers.js.map +1 -0
  145. package/graphql/schema/createReadSDL.d.ts +10 -0
  146. package/{content/plugins → graphql}/schema/createReadSDL.js +14 -8
  147. package/graphql/schema/createReadSDL.js.map +1 -0
  148. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
  149. package/{content/plugins → graphql}/schema/resolvers/commonFieldResolvers.js +0 -0
  150. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
  151. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
  152. package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreate.js +2 -4
  153. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
  154. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
  155. package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreateFrom.js +2 -4
  156. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
  157. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
  158. package/{content/plugins → graphql}/schema/resolvers/manage/resolveDelete.js +10 -8
  159. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
  160. package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
  161. package/graphql/schema/resolvers/manage/resolveGet.js +83 -0
  162. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
  163. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
  164. package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetByIds.js +2 -4
  165. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
  166. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
  167. package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetRevisions.js +2 -4
  168. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
  169. package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
  170. package/{content/plugins/schema/resolvers/read → graphql/schema/resolvers/manage}/resolveList.js +2 -4
  171. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
  172. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
  173. package/{content/plugins → graphql}/schema/resolvers/manage/resolvePublish.js +0 -0
  174. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
  175. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
  176. package/{content/plugins/schema/resolvers/manage/resolveGet.js → graphql/schema/resolvers/manage/resolveRepublish.js} +4 -4
  177. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
  178. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestChanges.d.ts +4 -3
  179. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestChanges.js +2 -4
  180. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +1 -0
  181. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestReview.d.ts +4 -3
  182. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestReview.js +2 -4
  183. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +1 -0
  184. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
  185. package/{content/plugins → graphql}/schema/resolvers/manage/resolveUnpublish.js +0 -0
  186. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
  187. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
  188. package/{content/plugins → graphql}/schema/resolvers/manage/resolveUpdate.js +2 -4
  189. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
  190. package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
  191. package/{content/plugins → graphql}/schema/resolvers/preview/resolveGet.js +2 -2
  192. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
  193. package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
  194. package/{content/plugins → graphql}/schema/resolvers/preview/resolveList.js +2 -4
  195. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
  196. package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
  197. package/{content/plugins → graphql}/schema/resolvers/read/resolveGet.js +2 -2
  198. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
  199. package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
  200. package/{content/plugins/schema/resolvers/manage → graphql/schema/resolvers/read}/resolveList.js +2 -4
  201. package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
  202. package/{content/plugins → graphql}/schema/schemaPlugins.d.ts +1 -1
  203. package/{content/plugins → graphql}/schema/schemaPlugins.js +25 -6
  204. package/graphql/schema/schemaPlugins.js.map +1 -0
  205. package/graphql/system.d.ts +6 -0
  206. package/graphql/system.js +119 -0
  207. package/graphql/system.js.map +1 -0
  208. package/graphqlFields/boolean.d.ts +2 -0
  209. package/graphqlFields/boolean.js +69 -0
  210. package/graphqlFields/boolean.js.map +1 -0
  211. package/graphqlFields/datetime.d.ts +2 -0
  212. package/graphqlFields/datetime.js +95 -0
  213. package/graphqlFields/datetime.js.map +1 -0
  214. package/graphqlFields/file.d.ts +2 -0
  215. package/graphqlFields/file.js +50 -0
  216. package/graphqlFields/file.js.map +1 -0
  217. package/graphqlFields/helpers.d.ts +6 -0
  218. package/graphqlFields/helpers.js +49 -0
  219. package/graphqlFields/helpers.js.map +1 -0
  220. package/graphqlFields/index.d.ts +2 -0
  221. package/graphqlFields/index.js +28 -0
  222. package/graphqlFields/index.js.map +1 -0
  223. package/graphqlFields/longText.d.ts +2 -0
  224. package/graphqlFields/longText.js +63 -0
  225. package/graphqlFields/longText.js.map +1 -0
  226. package/graphqlFields/number.d.ts +2 -0
  227. package/graphqlFields/number.js +75 -0
  228. package/graphqlFields/number.js.map +1 -0
  229. package/graphqlFields/object.d.ts +2 -0
  230. package/graphqlFields/object.js +225 -0
  231. package/graphqlFields/object.js.map +1 -0
  232. package/graphqlFields/ref.d.ts +2 -0
  233. package/graphqlFields/ref.js +279 -0
  234. package/graphqlFields/ref.js.map +1 -0
  235. package/graphqlFields/richText.d.ts +2 -0
  236. package/graphqlFields/richText.js +56 -0
  237. package/graphqlFields/richText.js.map +1 -0
  238. package/graphqlFields/text.d.ts +2 -0
  239. package/graphqlFields/text.js +73 -0
  240. package/graphqlFields/text.js.map +1 -0
  241. package/index.d.ts +10 -12
  242. package/index.js +80 -37
  243. package/index.js.map +1 -0
  244. package/modelManager/DefaultCmsModelManager.d.ts +14 -0
  245. package/{content/plugins/modelManager → modelManager}/DefaultCmsModelManager.js +11 -9
  246. package/modelManager/DefaultCmsModelManager.js.map +1 -0
  247. package/modelManager/index.d.ts +2 -0
  248. package/{content/plugins/modelManager → modelManager}/index.js +3 -3
  249. package/modelManager/index.js.map +1 -0
  250. package/package.json +37 -36
  251. package/parameters/context.d.ts +2 -0
  252. package/parameters/context.js +22 -0
  253. package/parameters/context.js.map +1 -0
  254. package/parameters/header.d.ts +2 -0
  255. package/parameters/header.js +55 -0
  256. package/parameters/header.js.map +1 -0
  257. package/parameters/index.d.ts +4 -0
  258. package/parameters/index.js +57 -0
  259. package/parameters/index.js.map +1 -0
  260. package/parameters/manual.d.ts +6 -0
  261. package/parameters/manual.js +45 -0
  262. package/parameters/manual.js.map +1 -0
  263. package/parameters/path.d.ts +2 -0
  264. package/parameters/path.js +51 -0
  265. package/parameters/path.js.map +1 -0
  266. package/plugins/CmsGroupPlugin.d.ts +13 -0
  267. package/{content/plugins → plugins}/CmsGroupPlugin.js +8 -2
  268. package/plugins/CmsGroupPlugin.js.map +1 -0
  269. package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
  270. package/plugins/CmsModelFieldConverterPlugin.js +17 -0
  271. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
  272. package/plugins/CmsModelPlugin.d.ts +41 -0
  273. package/plugins/CmsModelPlugin.js +189 -0
  274. package/plugins/CmsModelPlugin.js.map +1 -0
  275. package/plugins/CmsParametersPlugin.d.ts +20 -0
  276. package/plugins/CmsParametersPlugin.js +28 -0
  277. package/plugins/CmsParametersPlugin.js.map +1 -0
  278. package/{content/plugins/storage → plugins}/StorageTransformPlugin.d.ts +4 -3
  279. package/{content/plugins/storage → plugins}/StorageTransformPlugin.js +1 -0
  280. package/plugins/StorageTransformPlugin.js.map +1 -0
  281. package/plugins/index.d.ts +5 -0
  282. package/plugins/index.js +70 -0
  283. package/plugins/index.js.map +1 -0
  284. package/storage/default.d.ts +2 -0
  285. package/storage/default.js +27 -0
  286. package/storage/default.js.map +1 -0
  287. package/storage/object.d.ts +2 -0
  288. package/storage/object.js +128 -0
  289. package/storage/object.js.map +1 -0
  290. package/types.d.ts +413 -246
  291. package/types.js +52 -0
  292. package/types.js.map +1 -0
  293. package/upgrades/5.33.0/index.d.ts +3 -0
  294. package/upgrades/5.33.0/index.js +186 -0
  295. package/upgrades/5.33.0/index.js.map +1 -0
  296. package/upgrades/index.d.ts +1 -0
  297. package/upgrades/index.js +12 -0
  298. package/upgrades/index.js.map +1 -0
  299. package/utils/access.d.ts +8 -0
  300. package/utils/access.js +90 -0
  301. package/utils/access.js.map +1 -0
  302. package/utils/converters/Converter.d.ts +27 -0
  303. package/utils/converters/Converter.js +71 -0
  304. package/utils/converters/Converter.js.map +1 -0
  305. package/utils/converters/ConverterCollection.d.ts +24 -0
  306. package/utils/converters/ConverterCollection.js +115 -0
  307. package/utils/converters/ConverterCollection.js.map +1 -0
  308. package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
  309. package/utils/converters/valueKeyStorageConverter.js +152 -0
  310. package/utils/converters/valueKeyStorageConverter.js.map +1 -0
  311. package/{content/plugins/utils → utils}/createTypeName.d.ts +3 -3
  312. package/{content/plugins/utils → utils}/createTypeName.js +0 -0
  313. package/utils/createTypeName.js.map +1 -0
  314. package/{content/plugins/utils → utils}/entryStorage.d.ts +3 -3
  315. package/{content/plugins/utils → utils}/entryStorage.js +3 -7
  316. package/utils/entryStorage.js.map +1 -0
  317. package/utils/filterAsync.d.ts +1 -0
  318. package/utils/filterAsync.js +23 -0
  319. package/utils/filterAsync.js.map +1 -0
  320. package/utils/filterModelFields.d.ts +16 -0
  321. package/utils/filterModelFields.js +81 -0
  322. package/utils/filterModelFields.js.map +1 -0
  323. package/utils/getEntryTitle.d.ts +2 -0
  324. package/{content/plugins/utils → utils}/getEntryTitle.js +7 -6
  325. package/utils/getEntryTitle.js.map +1 -0
  326. package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
  327. package/utils/getSchemaFromFieldPlugins.js +35 -0
  328. package/utils/getSchemaFromFieldPlugins.js.map +1 -0
  329. package/utils/ownership.d.ts +8 -0
  330. package/utils/ownership.js +41 -0
  331. package/utils/ownership.js.map +1 -0
  332. package/utils/permissions.d.ts +7 -0
  333. package/utils/permissions.js +110 -0
  334. package/utils/permissions.js.map +1 -0
  335. package/utils/pluralizedTypeName.d.ts +1 -0
  336. package/{content/plugins/utils → utils}/pluralizedTypeName.js +0 -0
  337. package/utils/pluralizedTypeName.js.map +1 -0
  338. package/utils/renderFields.d.ts +15 -0
  339. package/{content/plugins/utils → utils}/renderFields.js +4 -2
  340. package/utils/renderFields.js.map +1 -0
  341. package/utils/renderGetFilterFields.d.ts +10 -0
  342. package/{content/plugins/utils → utils}/renderGetFilterFields.js +28 -13
  343. package/utils/renderGetFilterFields.js.map +1 -0
  344. package/utils/renderInputFields.d.ts +14 -0
  345. package/{content/plugins/utils → utils}/renderInputFields.js +1 -1
  346. package/utils/renderInputFields.js.map +1 -0
  347. package/utils/renderListFilterFields.d.ts +11 -0
  348. package/{content/plugins/utils → utils}/renderListFilterFields.js +30 -17
  349. package/utils/renderListFilterFields.js.map +1 -0
  350. package/{content/plugins/utils → utils}/renderSortEnum.d.ts +1 -1
  351. package/utils/renderSortEnum.js +32 -0
  352. package/utils/renderSortEnum.js.map +1 -0
  353. package/utils/toSlug.d.ts +1 -0
  354. package/utils/toSlug.js +20 -0
  355. package/utils/toSlug.js.map +1 -0
  356. package/validators/dateGte.d.ts +2 -0
  357. package/{content/plugins/validators → validators}/dateGte.js +4 -4
  358. package/validators/dateGte.js.map +1 -0
  359. package/validators/dateLte.d.ts +2 -0
  360. package/{content/plugins/validators → validators}/dateLte.js +4 -4
  361. package/validators/dateLte.js.map +1 -0
  362. package/validators/gte.d.ts +2 -0
  363. package/validators/gte.js +36 -0
  364. package/validators/gte.js.map +1 -0
  365. package/validators/in.d.ts +2 -0
  366. package/validators/in.js +36 -0
  367. package/validators/in.js.map +1 -0
  368. package/validators/index.d.ts +1 -0
  369. package/validators/index.js +36 -0
  370. package/validators/index.js.map +1 -0
  371. package/validators/lte.d.ts +2 -0
  372. package/validators/lte.js +36 -0
  373. package/validators/lte.js.map +1 -0
  374. package/validators/maxLength.d.ts +2 -0
  375. package/validators/maxLength.js +36 -0
  376. package/validators/maxLength.js.map +1 -0
  377. package/validators/minLength.d.ts +2 -0
  378. package/validators/minLength.js +36 -0
  379. package/validators/minLength.js.map +1 -0
  380. package/validators/pattern.d.ts +2 -0
  381. package/validators/pattern.js +50 -0
  382. package/validators/pattern.js.map +1 -0
  383. package/validators/patternPlugins/email.d.ts +2 -0
  384. package/validators/patternPlugins/email.js +20 -0
  385. package/validators/patternPlugins/email.js.map +1 -0
  386. package/validators/patternPlugins/index.d.ts +2 -0
  387. package/validators/patternPlugins/index.js +24 -0
  388. package/validators/patternPlugins/index.js.map +1 -0
  389. package/validators/patternPlugins/lowerCase.d.ts +2 -0
  390. package/validators/patternPlugins/lowerCase.js +20 -0
  391. package/validators/patternPlugins/lowerCase.js.map +1 -0
  392. package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
  393. package/validators/patternPlugins/lowerCaseSpace.js +20 -0
  394. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
  395. package/validators/patternPlugins/upperCase.d.ts +2 -0
  396. package/validators/patternPlugins/upperCase.js +20 -0
  397. package/validators/patternPlugins/upperCase.js.map +1 -0
  398. package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
  399. package/validators/patternPlugins/upperCaseSpace.js +20 -0
  400. package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
  401. package/validators/patternPlugins/url.d.ts +2 -0
  402. package/validators/patternPlugins/url.js +20 -0
  403. package/validators/patternPlugins/url.js.map +1 -0
  404. package/validators/required.d.ts +2 -0
  405. package/validators/required.js +27 -0
  406. package/validators/required.js.map +1 -0
  407. package/validators/timeGte.d.ts +2 -0
  408. package/{content/plugins/validators → validators}/timeGte.js +6 -4
  409. package/validators/timeGte.js.map +1 -0
  410. package/validators/timeLte.d.ts +2 -0
  411. package/{content/plugins/validators → validators}/timeLte.js +6 -4
  412. package/validators/timeLte.js.map +1 -0
  413. package/validators/unique.d.ts +6 -0
  414. package/validators/unique.js +63 -0
  415. package/validators/unique.js.map +1 -0
  416. package/content/contextSetup.d.ts +0 -4
  417. package/content/contextSetup.js +0 -65
  418. package/content/graphQLHandlerFactory.d.ts +0 -5
  419. package/content/graphQLHandlerFactory.js +0 -173
  420. package/content/plugins/CmsGroupPlugin.d.ts +0 -11
  421. package/content/plugins/CmsModelPlugin.d.ts +0 -11
  422. package/content/plugins/CmsModelPlugin.js +0 -24
  423. package/content/plugins/buildSchemaPlugins.js +0 -29
  424. package/content/plugins/crud/contentEntry/afterDelete.d.ts +0 -7
  425. package/content/plugins/crud/contentEntry/beforeCreate.d.ts +0 -7
  426. package/content/plugins/crud/contentEntry/beforeUpdate.d.ts +0 -7
  427. package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +0 -4
  428. package/content/plugins/crud/contentModel/afterCreate.d.ts +0 -7
  429. package/content/plugins/crud/contentModel/afterDelete.d.ts +0 -7
  430. package/content/plugins/crud/contentModel/afterUpdate.d.ts +0 -7
  431. package/content/plugins/crud/contentModel/beforeCreate.d.ts +0 -9
  432. package/content/plugins/crud/contentModel/beforeUpdate.js +0 -128
  433. package/content/plugins/crud/contentModel/contentModelManagerFactory.d.ts +0 -2
  434. package/content/plugins/crud/contentModel/createFieldModels.d.ts +0 -2
  435. package/content/plugins/crud/contentModel/idValidation.d.ts +0 -2
  436. package/content/plugins/crud/contentModel/validateLayout.d.ts +0 -2
  437. package/content/plugins/crud/contentModelGroup/beforeUpdate.d.ts +0 -8
  438. package/content/plugins/crud/index.d.ts +0 -6
  439. package/content/plugins/graphqlFields/boolean.d.ts +0 -3
  440. package/content/plugins/graphqlFields/boolean.js +0 -69
  441. package/content/plugins/graphqlFields/datetime.d.ts +0 -3
  442. package/content/plugins/graphqlFields/datetime.js +0 -83
  443. package/content/plugins/graphqlFields/file.d.ts +0 -3
  444. package/content/plugins/graphqlFields/file.js +0 -49
  445. package/content/plugins/graphqlFields/index.d.ts +0 -2
  446. package/content/plugins/graphqlFields/index.js +0 -30
  447. package/content/plugins/graphqlFields/longText.d.ts +0 -3
  448. package/content/plugins/graphqlFields/longText.js +0 -62
  449. package/content/plugins/graphqlFields/number.d.ts +0 -3
  450. package/content/plugins/graphqlFields/number.js +0 -75
  451. package/content/plugins/graphqlFields/object.d.ts +0 -3
  452. package/content/plugins/graphqlFields/object.js +0 -180
  453. package/content/plugins/graphqlFields/ref.d.ts +0 -3
  454. package/content/plugins/graphqlFields/ref.js +0 -205
  455. package/content/plugins/graphqlFields/richText.d.ts +0 -3
  456. package/content/plugins/graphqlFields/richText.js +0 -55
  457. package/content/plugins/graphqlFields/text.d.ts +0 -3
  458. package/content/plugins/graphqlFields/text.js +0 -72
  459. package/content/plugins/internalSecurity/InternalAuthenticationPlugin.d.ts +0 -8
  460. package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js +0 -54
  461. package/content/plugins/internalSecurity/InternalAuthorizationPlugin.d.ts +0 -7
  462. package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js +0 -35
  463. package/content/plugins/modelManager/DefaultCmsModelManager.d.ts +0 -15
  464. package/content/plugins/modelManager/index.d.ts +0 -3
  465. package/content/plugins/schema/baseSchema.d.ts +0 -4
  466. package/content/plugins/schema/contentEntries.d.ts +0 -4
  467. package/content/plugins/schema/contentEntries.js +0 -166
  468. package/content/plugins/schema/contentModelGroups.d.ts +0 -4
  469. package/content/plugins/schema/contentModels.d.ts +0 -4
  470. package/content/plugins/schema/createFieldResolvers.d.ts +0 -19
  471. package/content/plugins/schema/createManageResolvers.d.ts +0 -11
  472. package/content/plugins/schema/createManageSDL.d.ts +0 -9
  473. package/content/plugins/schema/createPreviewResolvers.d.ts +0 -10
  474. package/content/plugins/schema/createReadResolvers.d.ts +0 -10
  475. package/content/plugins/schema/createReadSDL.d.ts +0 -9
  476. package/content/plugins/schema/resolvers/commonFieldResolvers.d.ts +0 -6
  477. package/content/plugins/schema/resolvers/manage/resolveCreate.d.ts +0 -6
  478. package/content/plugins/schema/resolvers/manage/resolveCreateFrom.d.ts +0 -7
  479. package/content/plugins/schema/resolvers/manage/resolveDelete.d.ts +0 -2
  480. package/content/plugins/schema/resolvers/manage/resolveGet.d.ts +0 -2
  481. package/content/plugins/schema/resolvers/manage/resolveGetByIds.d.ts +0 -2
  482. package/content/plugins/schema/resolvers/manage/resolveGetRevisions.d.ts +0 -2
  483. package/content/plugins/schema/resolvers/manage/resolveList.d.ts +0 -2
  484. package/content/plugins/schema/resolvers/manage/resolvePublish.d.ts +0 -2
  485. package/content/plugins/schema/resolvers/manage/resolveUnpublish.d.ts +0 -2
  486. package/content/plugins/schema/resolvers/manage/resolveUpdate.d.ts +0 -7
  487. package/content/plugins/schema/resolvers/preview/resolveGet.d.ts +0 -2
  488. package/content/plugins/schema/resolvers/preview/resolveList.d.ts +0 -2
  489. package/content/plugins/schema/resolvers/read/resolveGet.d.ts +0 -2
  490. package/content/plugins/schema/resolvers/read/resolveList.d.ts +0 -2
  491. package/content/plugins/storage/default.d.ts +0 -3
  492. package/content/plugins/storage/default.js +0 -28
  493. package/content/plugins/storage/object.d.ts +0 -3
  494. package/content/plugins/storage/object.js +0 -119
  495. package/content/plugins/utils/getEntryTitle.d.ts +0 -2
  496. package/content/plugins/utils/getSchemaFromFieldPlugins.d.ts +0 -11
  497. package/content/plugins/utils/getSchemaFromFieldPlugins.js +0 -30
  498. package/content/plugins/utils/pluralizedTypeName.d.ts +0 -1
  499. package/content/plugins/utils/renderFields.d.ts +0 -16
  500. package/content/plugins/utils/renderGetFilterFields.d.ts +0 -9
  501. package/content/plugins/utils/renderInputFields.d.ts +0 -14
  502. package/content/plugins/utils/renderListFilterFields.d.ts +0 -10
  503. package/content/plugins/utils/renderSortEnum.js +0 -32
  504. package/content/plugins/validators/dateGte.d.ts +0 -3
  505. package/content/plugins/validators/dateLte.d.ts +0 -3
  506. package/content/plugins/validators/gte.d.ts +0 -3
  507. package/content/plugins/validators/gte.js +0 -32
  508. package/content/plugins/validators/in.d.ts +0 -3
  509. package/content/plugins/validators/in.js +0 -32
  510. package/content/plugins/validators/index.d.ts +0 -2
  511. package/content/plugins/validators/index.js +0 -36
  512. package/content/plugins/validators/lte.d.ts +0 -3
  513. package/content/plugins/validators/lte.js +0 -32
  514. package/content/plugins/validators/maxLength.d.ts +0 -3
  515. package/content/plugins/validators/maxLength.js +0 -32
  516. package/content/plugins/validators/minLength.d.ts +0 -3
  517. package/content/plugins/validators/minLength.js +0 -32
  518. package/content/plugins/validators/pattern.d.ts +0 -3
  519. package/content/plugins/validators/pattern.js +0 -47
  520. package/content/plugins/validators/patternPlugins/email.d.ts +0 -3
  521. package/content/plugins/validators/patternPlugins/email.js +0 -17
  522. package/content/plugins/validators/patternPlugins/index.d.ts +0 -2
  523. package/content/plugins/validators/patternPlugins/index.js +0 -19
  524. package/content/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
  525. package/content/plugins/validators/patternPlugins/lowerCase.js +0 -17
  526. package/content/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
  527. package/content/plugins/validators/patternPlugins/upperCase.js +0 -17
  528. package/content/plugins/validators/patternPlugins/url.d.ts +0 -3
  529. package/content/plugins/validators/patternPlugins/url.js +0 -17
  530. package/content/plugins/validators/required.d.ts +0 -3
  531. package/content/plugins/validators/required.js +0 -25
  532. package/content/plugins/validators/timeGte.d.ts +0 -3
  533. package/content/plugins/validators/timeLte.d.ts +0 -3
  534. package/migrateCMSPermissions.d.ts +0 -17
  535. package/migrateCMSPermissions.js +0 -193
  536. package/plugins/context.d.ts +0 -4
  537. package/plugins/context.js +0 -34
  538. package/plugins/crud/index.d.ts +0 -6
  539. package/plugins/crud/index.js +0 -100
  540. package/plugins/crud/settings.crud.js +0 -93
  541. package/plugins/graphql/system.d.ts +0 -17
  542. package/plugins/graphql/system.js +0 -72
  543. package/plugins/graphql.d.ts +0 -2
  544. package/plugins/graphql.js +0 -79
  545. package/plugins/upgrades/index.d.ts +0 -2
  546. package/plugins/upgrades/index.js +0 -14
  547. package/plugins/upgrades/v5.5.0/helpers.d.ts +0 -6
  548. package/plugins/upgrades/v5.5.0/helpers.js +0 -10
  549. package/plugins/upgrades/v5.5.0/index.d.ts +0 -4
  550. package/plugins/upgrades/v5.5.0/index.js +0 -129
  551. package/transformers.d.ts +0 -2
  552. package/transformers.js +0 -25
  553. package/utils.d.ts +0 -25
  554. package/utils.js +0 -251
@@ -0,0 +1,351 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createContentEntriesSchema = void 0;
9
+
10
+ var _handlerGraphql = require("@webiny/handler-graphql");
11
+
12
+ var _apiSecurity = require("@webiny/api-security");
13
+
14
+ var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
15
+
16
+ var _getEntryTitle = require("../../utils/getEntryTitle");
17
+
18
+ var _error = _interopRequireDefault(require("@webiny/error"));
19
+
20
+ const getFetchMethod = (type, context) => {
21
+ if (!getContentEntriesMethods[type]) {
22
+ throw new _error.default(`Unknown getContentEntries method "${type}". Could not fetch content entries.`, "UNKNOWN_METHOD_ERROR", {
23
+ type
24
+ });
25
+ }
26
+
27
+ const methodName = getContentEntriesMethods[type];
28
+
29
+ if (!context.cms[methodName]) {
30
+ throw new _error.default(`Unknown context.cms method "${methodName}". Could not fetch content entries.`, "UNKNOWN_METHOD_ERROR", {
31
+ type,
32
+ methodName
33
+ });
34
+ }
35
+
36
+ return context.cms[methodName];
37
+ };
38
+ /**
39
+ * Function to get the list of content entries depending on latest, published or exact GraphQL queries.
40
+ */
41
+
42
+
43
+ var GetContentEntryMethods;
44
+
45
+ (function (GetContentEntryMethods) {
46
+ GetContentEntryMethods["getLatestEntriesByIds"] = "getLatestEntriesByIds";
47
+ GetContentEntryMethods["getPublishedEntriesByIds"] = "getPublishedEntriesByIds";
48
+ GetContentEntryMethods["getEntriesByIds"] = "getEntriesByIds";
49
+ })(GetContentEntryMethods || (GetContentEntryMethods = {}));
50
+
51
+ const getContentEntriesMethods = {
52
+ latest: "getLatestEntriesByIds",
53
+ published: "getPublishedEntriesByIds",
54
+ exact: "getEntriesByIds"
55
+ };
56
+
57
+ const getContentEntries = async params => {
58
+ const {
59
+ args,
60
+ context,
61
+ type
62
+ } = params;
63
+ const method = getFetchMethod(type, context);
64
+ const models = await context.cms.listModels();
65
+ const modelsMap = models.reduce((collection, model) => {
66
+ collection[model.modelId] = model;
67
+ return collection;
68
+ }, {});
69
+ const argsEntries = args.entries;
70
+ const entriesByModel = argsEntries.reduce((collection, ref) => {
71
+ if (!collection[ref.modelId]) {
72
+ collection[ref.modelId] = [];
73
+ } else if (collection[ref.modelId].includes(ref.id)) {
74
+ return collection;
75
+ }
76
+
77
+ collection[ref.modelId].push(ref.id);
78
+ return collection;
79
+ }, {});
80
+ const getters = Object.keys(entriesByModel).map(async modelId => {
81
+ return method(modelsMap[modelId], entriesByModel[modelId]);
82
+ });
83
+
84
+ if (getters.length === 0) {
85
+ return new _handlerGraphql.Response([]);
86
+ }
87
+
88
+ const results = await Promise.all(getters);
89
+ const entries = results.reduce((collection, items) => {
90
+ return collection.concat(items.map(item => {
91
+ const model = modelsMap[item.modelId];
92
+ return {
93
+ id: item.id,
94
+ entryId: item.entryId,
95
+ model: {
96
+ modelId: model.modelId,
97
+ name: model.name
98
+ },
99
+ status: item.status,
100
+ title: (0, _getEntryTitle.getEntryTitle)(model, item)
101
+ };
102
+ }));
103
+ }, []).filter(Boolean);
104
+ return new _handlerGraphql.Response(entries);
105
+ };
106
+ /**
107
+ * Function to fetch a single content entry depending on latest, published or exact GraphQL query.
108
+ */
109
+
110
+
111
+ const getContentEntry = async params => {
112
+ const {
113
+ args,
114
+ context,
115
+ type
116
+ } = params;
117
+
118
+ if (!getContentEntriesMethods[type]) {
119
+ throw new _error.default(`Unknown getContentEntry method "${type}". Could not fetch content entry.`, "UNKNOWN_METHOD_ERROR", {
120
+ args,
121
+ type
122
+ });
123
+ }
124
+
125
+ const method = getFetchMethod(type, context);
126
+ const {
127
+ modelId,
128
+ id
129
+ } = args.entry;
130
+ const models = await context.cms.listModels();
131
+ const model = models.find(m => m.modelId === modelId);
132
+
133
+ if (!model) {
134
+ return new _apiSecurity.NotAuthorizedResponse({
135
+ data: {
136
+ modelId
137
+ }
138
+ });
139
+ }
140
+
141
+ const result = await method(model, [id]);
142
+ const entry = result.shift();
143
+
144
+ if (!entry) {
145
+ return new _handlerGraphql.Response(null);
146
+ }
147
+
148
+ return new _handlerGraphql.Response({
149
+ id: entry.id,
150
+ entryId: entry.entryId,
151
+ model: {
152
+ modelId: model.modelId,
153
+ name: model.name
154
+ },
155
+ status: entry.status,
156
+ title: (0, _getEntryTitle.getEntryTitle)(model, entry)
157
+ });
158
+ };
159
+
160
+ const createContentEntriesSchema = context => {
161
+ if (!context.cms.MANAGE) {
162
+ return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
163
+ typeDefs: "",
164
+ resolvers: {}
165
+ });
166
+ }
167
+
168
+ return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
169
+ typeDefs:
170
+ /* GraphQL */
171
+ `
172
+ type CmsModelMeta {
173
+ modelId: String
174
+ name: String
175
+ }
176
+
177
+ type CmsPublishedContentEntry {
178
+ id: ID!
179
+ entryId: String!
180
+ title: String
181
+ }
182
+
183
+ type CmsContentEntry {
184
+ id: ID!
185
+ entryId: String!
186
+ model: CmsModelMeta
187
+ status: String
188
+ title: String
189
+ published: CmsPublishedContentEntry
190
+ }
191
+
192
+ type CmsContentEntriesResponse {
193
+ data: [CmsContentEntry]
194
+ error: CmsError
195
+ }
196
+
197
+ type CmsContentEntryResponse {
198
+ data: CmsContentEntry
199
+ error: CmsError
200
+ }
201
+
202
+ input CmsModelEntryInput {
203
+ modelId: ID!
204
+ id: ID!
205
+ }
206
+
207
+ extend type Query {
208
+ # Search content entries for given content models using the query string.
209
+ searchContentEntries(
210
+ modelIds: [ID!]!
211
+ query: String
212
+ fields: [String!]
213
+ limit: Int
214
+ ): CmsContentEntriesResponse
215
+
216
+ # Get content entry meta data
217
+ getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse
218
+
219
+ getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse
220
+ getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse
221
+
222
+ # Get content entries meta data
223
+ getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse
224
+ getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse
225
+ getPublishedContentEntries(
226
+ entries: [CmsModelEntryInput!]!
227
+ ): CmsContentEntriesResponse
228
+ }
229
+ `,
230
+ resolvers: {
231
+ CmsContentEntry: {
232
+ published: async (parent, _, context) => {
233
+ try {
234
+ const models = await context.cms.listModels();
235
+ const model = models.find(({
236
+ modelId
237
+ }) => {
238
+ return parent.model.modelId === modelId;
239
+ });
240
+
241
+ if (!model) {
242
+ return null;
243
+ }
244
+
245
+ const [entry] = await context.cms.getPublishedEntriesByIds(model, [parent.id]);
246
+
247
+ if (!entry) {
248
+ return null;
249
+ }
250
+
251
+ return {
252
+ id: entry.id,
253
+ entryId: entry.entryId,
254
+ title: (0, _getEntryTitle.getEntryTitle)(model, entry)
255
+ };
256
+ } catch (ex) {
257
+ return null;
258
+ }
259
+ }
260
+ },
261
+ Query: {
262
+ async searchContentEntries(_, args, context) {
263
+ const {
264
+ modelIds,
265
+ fields,
266
+ query,
267
+ limit = 10
268
+ } = args;
269
+ const models = await context.cms.listModels();
270
+ const getters = models.filter(model => modelIds.includes(model.modelId)).map(async model => {
271
+ const modelManager = await context.cms.getModelManager(model.modelId);
272
+ const where = {};
273
+ const [items] = await modelManager.listLatest({
274
+ limit,
275
+ where,
276
+ search: !!query ? query : undefined,
277
+ fields: fields || []
278
+ });
279
+ return items.map(entry => {
280
+ return {
281
+ id: entry.id,
282
+ entryId: entry.entryId,
283
+ model: {
284
+ modelId: model.modelId,
285
+ name: model.name
286
+ },
287
+ status: entry.status,
288
+ title: (0, _getEntryTitle.getEntryTitle)(model, entry),
289
+ // We need `savedOn` to sort entries from latest to oldest
290
+ savedOn: entry.savedOn
291
+ };
292
+ });
293
+ });
294
+ const entries = await Promise.all(getters).then(results => results.reduce((result, item) => result.concat(item), []));
295
+ return new _handlerGraphql.Response(entries.sort((a, b) => Date.parse(b.savedOn) - Date.parse(a.savedOn)).slice(0, limit));
296
+ },
297
+
298
+ async getContentEntry(_, args, context) {
299
+ return getContentEntry({
300
+ args,
301
+ context,
302
+ type: "exact"
303
+ });
304
+ },
305
+
306
+ async getLatestContentEntry(_, args, context) {
307
+ return getContentEntry({
308
+ args,
309
+ context,
310
+ type: "latest"
311
+ });
312
+ },
313
+
314
+ async getPublishedContentEntry(_, args, context) {
315
+ return getContentEntry({
316
+ args,
317
+ context,
318
+ type: "published"
319
+ });
320
+ },
321
+
322
+ async getContentEntries(_, args, context) {
323
+ return getContentEntries({
324
+ args,
325
+ context,
326
+ type: "exact"
327
+ });
328
+ },
329
+
330
+ async getLatestContentEntries(_, args, context) {
331
+ return getContentEntries({
332
+ args,
333
+ context,
334
+ type: "latest"
335
+ });
336
+ },
337
+
338
+ async getPublishedContentEntries(_, args, context) {
339
+ return getContentEntries({
340
+ args,
341
+ context,
342
+ type: "published"
343
+ });
344
+ }
345
+
346
+ }
347
+ }
348
+ });
349
+ };
350
+
351
+ exports.createContentEntriesSchema = createContentEntriesSchema;
@@ -0,0 +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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"}
@@ -0,0 +1,3 @@
1
+ import { CmsContext } from "../../types";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
3
+ export declare const createGroupsSchema: (context: CmsContext) => GraphQLSchemaPlugin<CmsContext>;
@@ -3,15 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.createGroupsSchema = void 0;
7
7
 
8
8
  var _handlerGraphql = require("@webiny/handler-graphql");
9
9
 
10
10
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
11
11
 
12
- var _CmsGroupPlugin = require("../CmsGroupPlugin");
12
+ var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
13
13
 
14
- const plugin = context => {
14
+ const createGroupsSchema = context => {
15
15
  let manageSchema = "";
16
16
 
17
17
  if (context.cms.MANAGE) {
@@ -62,16 +62,31 @@ const plugin = context => {
62
62
  resolvers = {
63
63
  CmsContentModelGroup: {
64
64
  contentModels: async (group, _, context) => {
65
- const models = await context.cms.silentAuthModel().list();
66
- return models.filter(m => m.group.id === group.id);
65
+ context.security.disableAuthorization();
66
+ const models = await context.cms.listModels();
67
+ context.security.enableAuthorization();
68
+ return models.filter(model => {
69
+ if (model.isPrivate === true) {
70
+ return false;
71
+ }
72
+
73
+ return model.group.id === group.id;
74
+ });
67
75
  },
68
76
  totalContentModels: async (group, _, context) => {
69
- const models = await context.cms.silentAuthModel().list();
70
- return models.filter(m => m.group === group.id).length;
77
+ context.security.disableAuthorization();
78
+ const models = await context.cms.listModels();
79
+ context.security.enableAuthorization();
80
+ return models.filter(model => {
81
+ if (model.isPrivate === true) {
82
+ return false;
83
+ }
84
+
85
+ return model.group === group.id;
86
+ }).length;
71
87
  },
72
88
  plugin: async (group, _, context) => {
73
- const groupPlugin = context.plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type).find(item => item.contentModelGroup.id === group.id);
74
- return Boolean(groupPlugin);
89
+ return context.plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type).some(item => item.contentModelGroup.id === group.id);
75
90
  }
76
91
  },
77
92
  Query: {
@@ -80,16 +95,21 @@ const plugin = context => {
80
95
  const {
81
96
  id
82
97
  } = args;
83
- const model = await context.cms.getGroup(id);
84
- return new _handlerGraphql.Response(model);
98
+ const group = await context.cms.getGroup(id);
99
+
100
+ if (group !== null && group !== void 0 && group.isPrivate) {
101
+ throw new _handlerGraphql.NotFoundError(`Cms Group "${id}" was not found!`);
102
+ }
103
+
104
+ return new _handlerGraphql.Response(group);
85
105
  } catch (e) {
86
106
  return new _handlerGraphql.ErrorResponse(e);
87
107
  }
88
108
  },
89
109
  listContentModelGroups: async (_, __, context) => {
90
110
  try {
91
- const models = await context.cms.listGroups();
92
- return new _handlerGraphql.Response(models);
111
+ const groups = await context.cms.listGroups();
112
+ return new _handlerGraphql.Response(groups.filter(group => group.isPrivate !== true));
93
113
  } catch (e) {
94
114
  return new _handlerGraphql.ErrorResponse(e);
95
115
  }
@@ -149,5 +169,4 @@ const plugin = context => {
149
169
  });
150
170
  };
151
171
 
152
- var _default = plugin;
153
- exports.default = _default;
172
+ exports.createGroupsSchema = createGroupsSchema;
@@ -0,0 +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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"}
@@ -0,0 +1,3 @@
1
+ import { CmsContext } from "../../types";
2
+ import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
3
+ export declare const createModelsSchema: (context: CmsContext) => GraphQLSchemaPlugin<CmsContext>;
@@ -3,20 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.createModelsSchema = void 0;
7
7
 
8
8
  var _handlerGraphql = require("@webiny/handler-graphql");
9
9
 
10
10
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
11
11
 
12
- var _CmsModelPlugin = require("../CmsModelPlugin");
12
+ var _CmsModelPlugin = require("../../plugins/CmsModelPlugin");
13
13
 
14
- const plugin = context => {
14
+ const createModelsSchema = context => {
15
15
  const resolvers = {
16
16
  Query: {
17
17
  getContentModel: async (_, args, context) => {
18
18
  try {
19
19
  const model = await context.cms.getModel(args.modelId);
20
+
21
+ if ((model === null || model === void 0 ? void 0 : model.isPrivate) === true) {
22
+ if (!model) {
23
+ throw new _handlerGraphql.NotFoundError(`Content model "${args.modelId}" was not found!`);
24
+ }
25
+ }
26
+
20
27
  return new _handlerGraphql.Response(model);
21
28
  } catch (e) {
22
29
  return new _handlerGraphql.ErrorResponse(e);
@@ -24,8 +31,8 @@ const plugin = context => {
24
31
  },
25
32
  listContentModels: async (_, __, context) => {
26
33
  try {
27
- const model = await context.cms.listModels();
28
- return new _handlerGraphql.Response(model);
34
+ const models = await context.cms.listModels();
35
+ return new _handlerGraphql.Response(models.filter(model => model.isPrivate !== true));
29
36
  } catch (e) {
30
37
  return new _handlerGraphql.ErrorResponse(e);
31
38
  }
@@ -33,15 +40,14 @@ const plugin = context => {
33
40
  },
34
41
  CmsContentModel: {
35
42
  plugin: async (model, _, context) => {
36
- const modelPlugin = context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type).find(item => item.contentModel.modelId === model.modelId);
37
- return Boolean(modelPlugin);
43
+ return context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type).some(item => item.contentModel.modelId === model.modelId);
38
44
  }
39
45
  }
40
46
  };
41
47
  let manageSchema = "";
42
48
 
43
49
  if (context.cms.MANAGE) {
44
- resolvers.Mutation = {
50
+ resolvers["Mutation"] = {
45
51
  createContentModel: async (_, args, context) => {
46
52
  try {
47
53
  const model = await context.cms.createModel(args.data);
@@ -50,6 +56,14 @@ const plugin = context => {
50
56
  return new _handlerGraphql.ErrorResponse(e);
51
57
  }
52
58
  },
59
+ createContentModelFrom: async (_, args, context) => {
60
+ try {
61
+ const model = await context.cms.createModelFrom(args.modelId, args.data);
62
+ return new _handlerGraphql.Response(model);
63
+ } catch (e) {
64
+ return new _handlerGraphql.ErrorResponse(e);
65
+ }
66
+ },
53
67
  updateContentModel: async (_, args, context) => {
54
68
  const {
55
69
  modelId,
@@ -82,6 +96,7 @@ const plugin = context => {
82
96
  input CmsPredefinedValueInput {
83
97
  label: String!
84
98
  value: String!
99
+ selected: Boolean
85
100
  }
86
101
 
87
102
  input CmsPredefinedValuesInput {
@@ -103,6 +118,9 @@ const plugin = context => {
103
118
  label: String!
104
119
  helpText: String
105
120
  placeholderText: String
121
+ # we never use user input - this is here to the GraphQL does not break when posting from our UI
122
+ # used for debugging purposes
123
+ storageId: String
106
124
  fieldId: String!
107
125
  type: String!
108
126
  multipleValues: Boolean
@@ -118,6 +136,17 @@ const plugin = context => {
118
136
  modelId: String
119
137
  group: RefInput!
120
138
  description: String
139
+ layout: [[ID!]!]
140
+ fields: [CmsContentModelFieldInput!]
141
+ titleFieldId: String
142
+ }
143
+
144
+ input CmsContentModelCreateFromInput {
145
+ name: String!
146
+ modelId: String
147
+ group: RefInput!
148
+ description: String
149
+ locale: String
121
150
  }
122
151
 
123
152
  input CmsContentModelUpdateInput {
@@ -132,6 +161,11 @@ const plugin = context => {
132
161
  extend type Mutation {
133
162
  createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse
134
163
 
164
+ createContentModelFrom(
165
+ modelId: ID!
166
+ data: CmsContentModelCreateFromInput!
167
+ ): CmsContentModelResponse
168
+
135
169
  updateContentModel(
136
170
  modelId: ID!
137
171
  data: CmsContentModelUpdateInput!
@@ -159,6 +193,7 @@ const plugin = context => {
159
193
  type CmsPredefinedValue {
160
194
  label: String
161
195
  value: String
196
+ selected: Boolean
162
197
  }
163
198
 
164
199
  type CmsPredefinedValues {
@@ -168,6 +203,9 @@ const plugin = context => {
168
203
 
169
204
  type CmsContentModelField {
170
205
  id: ID!
206
+ # auto-generated value
207
+ # used for debugging purposes
208
+ storageId: String
171
209
  fieldId: String!
172
210
  label: String!
173
211
  helpText: String
@@ -221,5 +259,4 @@ const plugin = context => {
221
259
  });
222
260
  };
223
261
 
224
- var _default = plugin;
225
- exports.default = _default;
262
+ exports.createModelsSchema = createModelsSchema;