@webiny/api-headless-cms 0.0.0-unstable.aad28a72ae → 0.0.0-unstable.bca7b3e350

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 (322) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +53 -19
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.js +0 -5
  5. package/crud/contentEntry/afterDelete.js.map +1 -1
  6. package/crud/contentEntry/beforeCreate.js +0 -3
  7. package/crud/contentEntry/beforeCreate.js.map +1 -1
  8. package/crud/contentEntry/beforeUpdate.js +0 -3
  9. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  10. package/crud/contentEntry/entryDataValidation.js +1 -40
  11. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  12. package/crud/contentEntry/markLockedFields.js +12 -28
  13. package/crud/contentEntry/markLockedFields.js.map +1 -1
  14. package/crud/contentEntry/referenceFieldsMapping.js +5 -61
  15. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  16. package/crud/contentEntry/searchableFields.js +1 -12
  17. package/crud/contentEntry/searchableFields.js.map +1 -1
  18. package/crud/contentEntry.crud.js +72 -155
  19. package/crud/contentEntry.crud.js.map +1 -1
  20. package/crud/contentModel/afterCreate.js +0 -2
  21. package/crud/contentModel/afterCreate.js.map +1 -1
  22. package/crud/contentModel/afterCreateFrom.js +0 -2
  23. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  24. package/crud/contentModel/afterDelete.js +0 -2
  25. package/crud/contentModel/afterDelete.js.map +1 -1
  26. package/crud/contentModel/afterUpdate.js +0 -2
  27. package/crud/contentModel/afterUpdate.js.map +1 -1
  28. package/crud/contentModel/beforeCreate.d.ts +2 -3
  29. package/crud/contentModel/beforeCreate.js +7 -36
  30. package/crud/contentModel/beforeCreate.js.map +1 -1
  31. package/crud/contentModel/beforeDelete.js +0 -10
  32. package/crud/contentModel/beforeDelete.js.map +1 -1
  33. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  34. package/crud/contentModel/beforeUpdate.js +2 -7
  35. package/crud/contentModel/beforeUpdate.js.map +1 -1
  36. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  37. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  38. package/crud/contentModel/createFieldStorageId.js +0 -3
  39. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  40. package/crud/contentModel/systemFields.js.map +1 -1
  41. package/crud/contentModel/validateLayout.js +0 -8
  42. package/crud/contentModel/validateLayout.js.map +1 -1
  43. package/crud/contentModel/validateModel.d.ts +3 -4
  44. package/crud/contentModel/validateModel.js +6 -11
  45. package/crud/contentModel/validateModel.js.map +1 -1
  46. package/crud/contentModel/validateModelFields.d.ts +3 -4
  47. package/crud/contentModel/validateModelFields.js +84 -75
  48. package/crud/contentModel/validateModelFields.js.map +1 -1
  49. package/crud/contentModel/validation.d.ts +477 -0
  50. package/crud/contentModel/validation.js +97 -0
  51. package/crud/contentModel/validation.js.map +1 -0
  52. package/crud/contentModel.crud.js +63 -158
  53. package/crud/contentModel.crud.js.map +1 -1
  54. package/crud/contentModelGroup/beforeCreate.js +0 -12
  55. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  56. package/crud/contentModelGroup/beforeDelete.js +0 -8
  57. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  58. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  59. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  60. package/crud/contentModelGroup/validation.d.ts +30 -0
  61. package/crud/contentModelGroup/validation.js +34 -0
  62. package/crud/contentModelGroup/validation.js.map +1 -0
  63. package/crud/contentModelGroup.crud.js +21 -93
  64. package/crud/contentModelGroup.crud.js.map +1 -1
  65. package/crud/settings.crud.js +0 -12
  66. package/crud/settings.crud.js.map +1 -1
  67. package/crud/system.crud.js +2 -37
  68. package/crud/system.crud.js.map +1 -1
  69. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  70. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  71. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
  72. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  73. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  74. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  75. package/fieldConverters/index.js +0 -5
  76. package/fieldConverters/index.js.map +1 -1
  77. package/graphql/buildSchemaPlugins.d.ts +8 -3
  78. package/graphql/buildSchemaPlugins.js +6 -14
  79. package/graphql/buildSchemaPlugins.js.map +1 -1
  80. package/graphql/createExecutableSchema.d.ts +7 -0
  81. package/graphql/createExecutableSchema.js +29 -0
  82. package/graphql/createExecutableSchema.js.map +1 -0
  83. package/graphql/generateSchema.d.ts +8 -0
  84. package/graphql/generateSchema.js +31 -0
  85. package/graphql/generateSchema.js.map +1 -0
  86. package/graphql/graphQLHandlerFactory.js +70 -92
  87. package/graphql/graphQLHandlerFactory.js.map +1 -1
  88. package/graphql/index.d.ts +1 -3
  89. package/graphql/index.js +2 -46
  90. package/graphql/index.js.map +1 -1
  91. package/graphql/schema/baseContentSchema.d.ts +6 -2
  92. package/graphql/schema/baseContentSchema.js +9 -13
  93. package/graphql/schema/baseContentSchema.js.map +1 -1
  94. package/graphql/schema/baseSchema.d.ts +3 -0
  95. package/graphql/schema/baseSchema.js +53 -0
  96. package/graphql/schema/baseSchema.js.map +1 -0
  97. package/graphql/schema/contentEntries.d.ts +6 -2
  98. package/graphql/schema/contentEntries.js +39 -65
  99. package/graphql/schema/contentEntries.js.map +1 -1
  100. package/graphql/schema/contentModelGroups.d.ts +6 -2
  101. package/graphql/schema/contentModelGroups.js +9 -22
  102. package/graphql/schema/contentModelGroups.js.map +1 -1
  103. package/graphql/schema/contentModels.d.ts +6 -2
  104. package/graphql/schema/contentModels.js +21 -23
  105. package/graphql/schema/contentModels.js.map +1 -1
  106. package/graphql/schema/createFieldResolvers.js +13 -24
  107. package/graphql/schema/createFieldResolvers.js.map +1 -1
  108. package/graphql/schema/createManageResolvers.js +0 -26
  109. package/graphql/schema/createManageResolvers.js.map +1 -1
  110. package/graphql/schema/createManageSDL.d.ts +2 -0
  111. package/graphql/schema/createManageSDL.js +6 -16
  112. package/graphql/schema/createManageSDL.js.map +1 -1
  113. package/graphql/schema/createPreviewResolvers.js +0 -10
  114. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  115. package/graphql/schema/createReadResolvers.js +5 -10
  116. package/graphql/schema/createReadResolvers.js.map +1 -1
  117. package/graphql/schema/createReadSDL.d.ts +2 -0
  118. package/graphql/schema/createReadSDL.js +6 -12
  119. package/graphql/schema/createReadSDL.js.map +1 -1
  120. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -2
  121. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  122. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  123. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  124. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  125. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  126. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  127. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  128. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  129. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  130. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  131. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  132. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  133. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  134. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  135. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  136. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  137. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  138. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  139. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  140. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  141. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  142. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  143. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  144. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  145. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  146. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  147. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  148. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  149. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  150. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  151. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  152. package/graphql/schema/schemaPlugins.d.ts +8 -3
  153. package/graphql/schema/schemaPlugins.js +63 -65
  154. package/graphql/schema/schemaPlugins.js.map +1 -1
  155. package/graphql/system.js +69 -85
  156. package/graphql/system.js.map +1 -1
  157. package/graphqlFields/boolean.js +0 -12
  158. package/graphqlFields/boolean.js.map +1 -1
  159. package/graphqlFields/datetime.js +0 -17
  160. package/graphqlFields/datetime.js.map +1 -1
  161. package/graphqlFields/dynamicZone/dynamicZoneField.js +3 -29
  162. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  163. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  164. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  165. package/graphqlFields/dynamicZone/index.js +0 -2
  166. package/graphqlFields/dynamicZone/index.js.map +1 -1
  167. package/graphqlFields/file.js +0 -8
  168. package/graphqlFields/file.js.map +1 -1
  169. package/graphqlFields/helpers.js +0 -10
  170. package/graphqlFields/helpers.js.map +1 -1
  171. package/graphqlFields/index.js +0 -12
  172. package/graphqlFields/index.js.map +1 -1
  173. package/graphqlFields/longText.js +0 -10
  174. package/graphqlFields/longText.js.map +1 -1
  175. package/graphqlFields/number.js +0 -12
  176. package/graphqlFields/number.js.map +1 -1
  177. package/graphqlFields/object.js +1 -37
  178. package/graphqlFields/object.js.map +1 -1
  179. package/graphqlFields/ref.js +23 -53
  180. package/graphqlFields/ref.js.map +1 -1
  181. package/graphqlFields/richText.js +0 -9
  182. package/graphqlFields/richText.js.map +1 -1
  183. package/graphqlFields/text.js +0 -11
  184. package/graphqlFields/text.js.map +1 -1
  185. package/index.d.ts +3 -3
  186. package/index.js +2 -27
  187. package/index.js.map +1 -1
  188. package/modelManager/DefaultCmsModelManager.js +0 -16
  189. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  190. package/modelManager/index.js +0 -4
  191. package/modelManager/index.js.map +1 -1
  192. package/package.json +27 -28
  193. package/parameters/context.js +0 -4
  194. package/parameters/context.js.map +1 -1
  195. package/parameters/header.js +0 -11
  196. package/parameters/header.js.map +1 -1
  197. package/parameters/index.js +0 -8
  198. package/parameters/index.js.map +1 -1
  199. package/parameters/manual.js +1 -8
  200. package/parameters/manual.js.map +1 -1
  201. package/parameters/path.js +0 -11
  202. package/parameters/path.js.map +1 -1
  203. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  204. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  205. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  206. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  207. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  208. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  209. package/plugins/CmsGroupPlugin.js +0 -8
  210. package/plugins/CmsGroupPlugin.js.map +1 -1
  211. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  212. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  213. package/plugins/CmsModelPlugin.js +2 -38
  214. package/plugins/CmsModelPlugin.js.map +1 -1
  215. package/plugins/CmsParametersPlugin.js +0 -7
  216. package/plugins/CmsParametersPlugin.js.map +1 -1
  217. package/plugins/StorageTransformPlugin.js +0 -9
  218. package/plugins/StorageTransformPlugin.js.map +1 -1
  219. package/plugins/index.d.ts +2 -0
  220. package/plugins/index.js +22 -10
  221. package/plugins/index.js.map +1 -1
  222. package/storage/default.js +0 -3
  223. package/storage/default.js.map +1 -1
  224. package/storage/object.js +0 -19
  225. package/storage/object.js.map +1 -1
  226. package/types.d.ts +56 -15
  227. package/types.js +22 -72
  228. package/types.js.map +1 -1
  229. package/upgrades/5.33.0/index.js +3 -26
  230. package/upgrades/5.33.0/index.js.map +1 -1
  231. package/upgrades/index.js +0 -3
  232. package/upgrades/index.js.map +1 -1
  233. package/utils/access.js +11 -25
  234. package/utils/access.js.map +1 -1
  235. package/utils/converters/Converter.js +0 -13
  236. package/utils/converters/Converter.js.map +1 -1
  237. package/utils/converters/ConverterCollection.js +9 -33
  238. package/utils/converters/ConverterCollection.js.map +1 -1
  239. package/utils/converters/valueKeyStorageConverter.js +0 -26
  240. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  241. package/utils/createTypeFromFields.js +4 -15
  242. package/utils/createTypeFromFields.js.map +1 -1
  243. package/utils/createTypeName.js +0 -9
  244. package/utils/createTypeName.js.map +1 -1
  245. package/utils/entryStorage.js +10 -26
  246. package/utils/entryStorage.js.map +1 -1
  247. package/utils/filterAsync.js +0 -5
  248. package/utils/filterAsync.js.map +1 -1
  249. package/utils/getBaseFieldType.js +0 -2
  250. package/utils/getBaseFieldType.js.map +1 -1
  251. package/utils/getEntryTitle.js +0 -9
  252. package/utils/getEntryTitle.js.map +1 -1
  253. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  254. package/utils/getSchemaFromFieldPlugins.js +23 -19
  255. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  256. package/utils/ownership.js +0 -8
  257. package/utils/ownership.js.map +1 -1
  258. package/utils/permissions.js +8 -23
  259. package/utils/permissions.js.map +1 -1
  260. package/utils/pluralizedTypeName.js +0 -6
  261. package/utils/pluralizedTypeName.js.map +1 -1
  262. package/utils/renderFields.js +0 -9
  263. package/utils/renderFields.js.map +1 -1
  264. package/utils/renderGetFilterFields.js +0 -13
  265. package/utils/renderGetFilterFields.js.map +1 -1
  266. package/utils/renderInputFields.js +0 -9
  267. package/utils/renderInputFields.js.map +1 -1
  268. package/utils/renderListFilterFields.js +1 -10
  269. package/utils/renderListFilterFields.js.map +1 -1
  270. package/utils/renderSortEnum.d.ts +7 -4
  271. package/utils/renderSortEnum.js +19 -11
  272. package/utils/renderSortEnum.js.map +1 -1
  273. package/utils/toSlug.js +0 -4
  274. package/utils/toSlug.js.map +1 -1
  275. package/validators/dateGte.js +0 -7
  276. package/validators/dateGte.js.map +1 -1
  277. package/validators/dateLte.js +0 -7
  278. package/validators/dateLte.js.map +1 -1
  279. package/validators/dynamicZone.js +0 -4
  280. package/validators/dynamicZone.js.map +1 -1
  281. package/validators/gte.js +0 -8
  282. package/validators/gte.js.map +1 -1
  283. package/validators/in.js +0 -8
  284. package/validators/in.js.map +1 -1
  285. package/validators/index.js +0 -16
  286. package/validators/index.js.map +1 -1
  287. package/validators/lte.js +0 -8
  288. package/validators/lte.js.map +1 -1
  289. package/validators/maxLength.js +0 -8
  290. package/validators/maxLength.js.map +1 -1
  291. package/validators/minLength.js +0 -8
  292. package/validators/minLength.js.map +1 -1
  293. package/validators/pattern.js +0 -9
  294. package/validators/pattern.js.map +1 -1
  295. package/validators/patternPlugins/email.js +0 -2
  296. package/validators/patternPlugins/email.js.map +1 -1
  297. package/validators/patternPlugins/index.js +0 -8
  298. package/validators/patternPlugins/index.js.map +1 -1
  299. package/validators/patternPlugins/lowerCase.js +0 -2
  300. package/validators/patternPlugins/lowerCase.js.map +1 -1
  301. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  302. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  303. package/validators/patternPlugins/upperCase.js +0 -2
  304. package/validators/patternPlugins/upperCase.js.map +1 -1
  305. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  306. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  307. package/validators/patternPlugins/url.js +0 -2
  308. package/validators/patternPlugins/url.js.map +1 -1
  309. package/validators/required.js +0 -5
  310. package/validators/required.js.map +1 -1
  311. package/validators/timeGte.js +0 -8
  312. package/validators/timeGte.js.map +1 -1
  313. package/validators/timeLte.js +0 -8
  314. package/validators/timeLte.js.map +1 -1
  315. package/validators/unique.js +0 -7
  316. package/validators/unique.js.map +1 -1
  317. package/crud/index.d.ts +0 -6
  318. package/crud/index.js +0 -85
  319. package/crud/index.js.map +0 -1
  320. package/utils/filterModelFields.d.ts +0 -16
  321. package/utils/filterModelFields.js +0 -77
  322. package/utils/filterModelFields.js.map +0 -1
@@ -1,29 +1,28 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.createModelsSchema = void 0;
7
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
9
  var _handlerGraphql = require("@webiny/handler-graphql");
9
-
10
- var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
11
-
12
10
  var _CmsModelPlugin = require("../../plugins/CmsModelPlugin");
13
-
14
- const createModelsSchema = context => {
11
+ var _plugins = require("../../plugins");
12
+ var _toSlug = require("../../utils/toSlug");
13
+ const createModelsSchema = ({
14
+ context
15
+ }) => {
15
16
  const resolvers = {
16
17
  Query: {
17
18
  getContentModel: async (_, args, context) => {
18
19
  try {
19
20
  const model = await context.cms.getModel(args.modelId);
20
-
21
21
  if ((model === null || model === void 0 ? void 0 : model.isPrivate) === true) {
22
22
  if (!model) {
23
23
  throw new _handlerGraphql.NotFoundError(`Content model "${args.modelId}" was not found!`);
24
24
  }
25
25
  }
26
-
27
26
  return new _handlerGraphql.Response(model);
28
27
  } catch (e) {
29
28
  return new _handlerGraphql.ErrorResponse(e);
@@ -43,22 +42,28 @@ const createModelsSchema = context => {
43
42
  // Make sure `tags` are always returned as an array.
44
43
  return Array.isArray(field.tags) ? field.tags : [];
45
44
  }
46
-
47
45
  },
48
46
  CmsContentModel: {
47
+ group: async model => {
48
+ context.security.disableAuthorization();
49
+ const groups = await context.cms.listGroups();
50
+ context.security.enableAuthorization();
51
+ const group = groups.find(group => group.id === model.group.id);
52
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model.group), {}, {
53
+ slug: (0, _toSlug.toSlug)(model.group.name)
54
+ }, group || {});
55
+ },
49
56
  tags(model) {
50
57
  // Make sure `tags` always contain a `type` tag, to differentiate between models.
51
58
  const hasType = (model.tags || []).find(tag => tag.startsWith("type:"));
52
59
  return hasType ? model.tags : ["type:model", ...(model.tags || [])];
53
60
  },
54
-
55
61
  plugin: async (model, _, context) => {
56
62
  return context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type).some(item => item.contentModel.modelId === model.modelId);
57
63
  }
58
64
  }
59
65
  };
60
66
  let manageSchema = "";
61
-
62
67
  if (context.cms.MANAGE) {
63
68
  resolvers["Mutation"] = {
64
69
  createContentModel: async (_, args, context) => {
@@ -82,7 +87,6 @@ const createModelsSchema = context => {
82
87
  modelId,
83
88
  data
84
89
  } = args;
85
-
86
90
  try {
87
91
  const model = await context.cms.updateModel(modelId, data);
88
92
  return new _handlerGraphql.Response(model);
@@ -94,7 +98,6 @@ const createModelsSchema = context => {
94
98
  const {
95
99
  modelId
96
100
  } = args;
97
-
98
101
  try {
99
102
  await context.cms.deleteModel(modelId);
100
103
  return new _handlerGraphql.Response(true);
@@ -107,7 +110,6 @@ const createModelsSchema = context => {
107
110
  modelId,
108
111
  data
109
112
  } = args;
110
-
111
113
  try {
112
114
  const result = await context.cms.initializeModel(modelId, data || {});
113
115
  return new _handlerGraphql.Response(result);
@@ -116,9 +118,7 @@ const createModelsSchema = context => {
116
118
  }
117
119
  }
118
120
  };
119
- manageSchema =
120
- /* GraphQL */
121
- `
121
+ manageSchema = /* GraphQL */`
122
122
  input CmsPredefinedValueInput {
123
123
  label: String!
124
124
  value: String!
@@ -212,11 +212,8 @@ const createModelsSchema = context => {
212
212
  }
213
213
  `;
214
214
  }
215
-
216
- return new _GraphQLSchemaPlugin.GraphQLSchemaPlugin({
217
- typeDefs:
218
- /* GraphQL */
219
- `
215
+ const plugin = new _plugins.CmsGraphQLSchemaPlugin({
216
+ typeDefs: /* GraphQL */`
220
217
  type CmsFieldValidation {
221
218
  name: String!
222
219
  message: String
@@ -295,6 +292,7 @@ const createModelsSchema = context => {
295
292
  `,
296
293
  resolvers
297
294
  });
295
+ plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-models`;
296
+ return plugin;
298
297
  };
299
-
300
298
  exports.createModelsSchema = createModelsSchema;
@@ -1 +1 @@
1
- {"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","hasType","find","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","GraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins/GraphQLSchemaPlugin\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\nexport const createModelsSchema = (context: CmsContext): GraphQLSchemaPlugin<CmsContext> => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n tags: [String!]\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n tags: [String!]\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n tags: [String!]\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n return new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n tags: [String!]!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n tags: [String!]!\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n};\n"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SA5FQ;EA6FH;;EAED,OAAO,IAAIa,wCAAJ,CAAoC;IACvCC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SA7E+C;IA8EvCrC;EA9EuC,CAApC,CAAP;AAgFH,CAhRM"}
1
+ {"version":3,"names":["createModelsSchema","context","resolvers","Query","getContentModel","_","args","model","cms","getModel","modelId","isPrivate","NotFoundError","Response","e","ErrorResponse","listContentModels","__","models","listModels","filter","CmsContentModelField","tags","field","Array","isArray","CmsContentModel","group","security","disableAuthorization","groups","listGroups","enableAuthorization","find","id","slug","toSlug","name","hasType","tag","startsWith","plugin","plugins","byType","CmsModelPlugin","type","some","item","contentModel","manageSchema","MANAGE","createContentModel","createModel","data","createContentModelFrom","createModelFrom","updateContentModel","updateModel","deleteContentModel","deleteModel","initializeModel","result","CmsGraphQLSchemaPlugin","typeDefs"],"sources":["contentModels.ts"],"sourcesContent":["import { ErrorResponse, NotFoundError, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsModel } from \"~/types\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { toSlug } from \"~/utils/toSlug\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createModelsSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const resolvers: Resolvers<CmsContext> = {\n Query: {\n getContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.getModel(args.modelId);\n if (model?.isPrivate === true) {\n if (!model) {\n throw new NotFoundError(\n `Content model \"${args.modelId}\" was not found!`\n );\n }\n }\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n listContentModels: async (_: unknown, __: unknown, context: CmsContext) => {\n try {\n const models = await context.cms.listModels();\n return new Response(models.filter(model => model.isPrivate !== true));\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsContentModelField: {\n tags(field) {\n // Make sure `tags` are always returned as an array.\n return Array.isArray(field.tags) ? field.tags : [];\n }\n },\n CmsContentModel: {\n group: async (model: CmsModel) => {\n context.security.disableAuthorization();\n const groups = await context.cms.listGroups();\n context.security.enableAuthorization();\n\n const group = groups.find(group => group.id === model.group.id);\n return {\n ...model.group,\n slug: toSlug(model.group.name),\n ...(group || {})\n };\n },\n tags(model: CmsModel) {\n // Make sure `tags` always contain a `type` tag, to differentiate between models.\n const hasType = (model.tags || []).find(tag => tag.startsWith(\"type:\"));\n\n return hasType ? model.tags : [\"type:model\", ...(model.tags || [])];\n },\n plugin: async (model, _, context): Promise<boolean> => {\n return context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n .some(item => item.contentModel.modelId === model.modelId);\n }\n }\n };\n\n let manageSchema = \"\";\n if (context.cms.MANAGE) {\n resolvers[\"Mutation\"] = {\n createContentModel: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModel(args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n createContentModelFrom: async (_: unknown, args: any, context) => {\n try {\n const model = await context.cms.createModelFrom(args.modelId, args.data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n updateContentModel: async (_: unknown, args: any, context) => {\n const { modelId, data } = args;\n try {\n const model = await context.cms.updateModel(modelId, data);\n return new Response(model);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n deleteContentModel: async (_: unknown, args: any, context) => {\n const { modelId } = args;\n try {\n await context.cms.deleteModel(modelId);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n initializeModel: async (_, args, context) => {\n const { modelId, data } = args;\n\n try {\n const result = await context.cms.initializeModel(modelId, data || {});\n return new Response(result);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n };\n\n manageSchema = /* GraphQL */ `\n input CmsPredefinedValueInput {\n label: String!\n value: String!\n selected: Boolean\n }\n\n input CmsPredefinedValuesInput {\n enabled: Boolean\n values: [CmsPredefinedValueInput]\n }\n input CmsFieldRendererInput {\n name: String\n }\n\n input CmsFieldValidationInput {\n name: String!\n message: String\n settings: JSON\n }\n\n input CmsContentModelFieldInput {\n id: ID!\n label: String!\n helpText: String\n placeholderText: String\n # we never use user input - this is here to the GraphQL does not break when posting from our UI\n # used for debugging purposes\n storageId: String\n fieldId: String!\n type: String!\n tags: [String!]\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValuesInput\n renderer: CmsFieldRendererInput\n validation: [CmsFieldValidationInput]\n listValidation: [CmsFieldValidationInput]\n settings: JSON\n }\n\n input CmsContentModelCreateInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n layout: [[ID!]!]\n fields: [CmsContentModelFieldInput!]\n titleFieldId: String\n tags: [String!]\n }\n\n input CmsContentModelCreateFromInput {\n name: String!\n modelId: String\n group: RefInput!\n description: String\n locale: String\n }\n\n input CmsContentModelUpdateInput {\n name: String\n group: RefInput\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String\n tags: [String!]\n }\n\n type InitializeModelResponse {\n data: Boolean\n error: CmsError\n }\n\n extend type Mutation {\n createContentModel(data: CmsContentModelCreateInput!): CmsContentModelResponse\n\n createContentModelFrom(\n modelId: ID!\n data: CmsContentModelCreateFromInput!\n ): CmsContentModelResponse\n\n updateContentModel(\n modelId: ID!\n data: CmsContentModelUpdateInput!\n ): CmsContentModelResponse\n\n deleteContentModel(modelId: ID!): CmsDeleteResponse\n\n # users can send anything into the data variable\n initializeModel(modelId: ID!, data: JSON): InitializeModelResponse!\n }\n `;\n }\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsFieldValidation {\n name: String!\n message: String\n settings: JSON\n }\n\n type CmsFieldRenderer {\n name: String\n }\n\n type CmsPredefinedValue {\n label: String\n value: String\n selected: Boolean\n }\n\n type CmsPredefinedValues {\n enabled: Boolean\n values: [CmsPredefinedValue]\n }\n\n type CmsContentModelField {\n id: ID!\n # auto-generated value\n # used for debugging purposes\n storageId: String\n fieldId: String!\n label: String!\n helpText: String\n placeholderText: String\n type: String!\n tags: [String!]!\n multipleValues: Boolean\n predefinedValues: CmsPredefinedValues\n renderer: CmsFieldRenderer\n validation: [CmsFieldValidation!]\n listValidation: [CmsFieldValidation!]\n settings: JSON\n }\n\n type CmsContentModel {\n name: String!\n modelId: String!\n description: String\n group: CmsContentModelGroup!\n createdOn: DateTime\n savedOn: DateTime\n createdBy: CmsCreatedBy\n fields: [CmsContentModelField!]!\n lockedFields: [JSON]\n layout: [[String!]!]!\n titleFieldId: String\n tags: [String!]!\n # Returns true if the content model is registered via a plugin.\n plugin: Boolean!\n }\n\n type CmsContentModelResponse {\n data: CmsContentModel\n error: CmsError\n }\n\n type CmsContentModelListResponse {\n data: [CmsContentModel]\n meta: CmsListMeta\n error: CmsError\n }\n\n extend type Query {\n getContentModel(modelId: ID!, where: JSON, sort: String): CmsContentModelResponse\n\n listContentModels: CmsContentModelListResponse\n }\n\n ${manageSchema}\n `,\n resolvers\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-models`;\n return plugin;\n};\n"],"mappings":"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CAAC,CAAC;QAC/B;MACJ;IACJ,CAAC;IAEDmC,YAAY,GAAG,aAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;EACL;EAEA,MAAMR,MAAM,GAAG,IAAIqB,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcd,YAAa;AAC3B,SAAS;IACD/C;EACJ,CAAC,CAAC;EACFuC,MAAM,CAACJ,IAAI,GAAI,+BAA8BpC,OAAO,CAACO,GAAG,CAACqC,IAAK,iBAAgB;EAC9E,OAAOJ,MAAM;AACjB,CAAC;AAAC"}
@@ -1,39 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createFieldResolversFactory = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _set = _interopRequireDefault(require("lodash/set"));
13
-
14
10
  var _entryStorage = require("../../utils/entryStorage");
15
-
16
11
  var _error = _interopRequireDefault(require("@webiny/error"));
17
-
18
12
  var _getBaseFieldType = require("../../utils/getBaseFieldType");
19
-
20
13
  const getCreateResolver = (plugins, field, endpointType) => {
21
14
  const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
22
-
23
15
  if (!plugins[baseType]) {
24
16
  return null;
25
17
  } else if (!plugins[baseType][endpointType]) {
26
18
  return null;
27
19
  }
28
-
29
20
  return plugins[baseType][endpointType].createResolver;
30
21
  };
31
22
  /**
32
23
  * We use a factory to avoid passing the parameters for recursive invocations.
33
24
  * This way they will always be in the function scope, and we can only pass "fields".
34
25
  */
35
-
36
-
37
26
  const createFieldResolversFactory = factoryParams => {
38
27
  const {
39
28
  endpointType,
@@ -50,7 +39,6 @@ const createFieldResolversFactory = factoryParams => {
50
39
  } = params;
51
40
  const fieldResolvers = (0, _objectSpread2.default)({}, extraResolvers);
52
41
  const typeResolvers = {};
53
-
54
42
  for (const field of fields) {
55
43
  if (!fieldTypePlugins[(0, _getBaseFieldType.getBaseFieldType)(field)]) {
56
44
  continue;
@@ -58,14 +46,11 @@ const createFieldResolversFactory = factoryParams => {
58
46
  /**
59
47
  * Field that is passed into this factory MUST have fieldId, so filter it before the method call.
60
48
  */
61
-
62
-
63
49
  if (!field.fieldId) {
64
50
  throw new _error.default("Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.", "FIELD_ID_ERROR", {
65
51
  field
66
52
  });
67
53
  }
68
-
69
54
  const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);
70
55
  let resolver;
71
56
  const fieldResolver = createResolver ? createResolver({
@@ -75,11 +60,11 @@ const createFieldResolversFactory = factoryParams => {
75
60
  field,
76
61
  createFieldResolvers
77
62
  }) : null;
63
+
78
64
  /**
79
65
  * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.
80
66
  * This is to fix the breaking of GraphQL schema.
81
67
  */
82
-
83
68
  if (fieldResolver === false) {
84
69
  continue;
85
70
  } else if (typeof fieldResolver === "function") {
@@ -88,34 +73,38 @@ const createFieldResolversFactory = factoryParams => {
88
73
  resolver = fieldResolver.resolver;
89
74
  Object.assign(typeResolvers, fieldResolver.typeResolvers);
90
75
  }
91
-
92
76
  const {
93
77
  fieldId
94
- } = field; // TODO @ts-refactor figure out types for parameters
78
+ } = field;
79
+ // TODO @ts-refactor figure out types for parameters
95
80
  // @ts-ignore
96
-
97
81
  fieldResolvers[fieldId] = async (parent, args, context, info) => {
82
+ var _parent$values, _parent$values2, _parent$values3;
83
+ /**
84
+ * This is required because due to ref field can be requested without the populated data.
85
+ * At that point there is no .values no fieldId property on the parent
86
+ */
87
+ const value = (parent === null || parent === void 0 ? void 0 : (_parent$values = parent.values) === null || _parent$values === void 0 ? void 0 : _parent$values[fieldId]) === undefined ? parent === null || parent === void 0 ? void 0 : parent[fieldId] : parent === null || parent === void 0 ? void 0 : (_parent$values2 = parent.values) === null || _parent$values2 === void 0 ? void 0 : _parent$values2[fieldId];
88
+ if (value === undefined) {
89
+ return undefined;
90
+ }
98
91
  // Get transformed value (eg. data decompression)
99
92
  const transformedValue = await (0, _entryStorage.entryFieldFromStorageTransform)({
100
93
  context,
101
94
  model,
102
95
  field,
103
- value: isRoot ? parent.values[fieldId] : parent[fieldId]
96
+ value: isRoot ? (_parent$values3 = parent.values) === null || _parent$values3 === void 0 ? void 0 : _parent$values3[fieldId] : parent[fieldId]
104
97
  });
105
98
  (0, _set.default)(isRoot ? parent.values : parent, fieldId, transformedValue);
106
-
107
99
  if (!resolver) {
108
100
  return isRoot ? parent.values[fieldId] : parent[fieldId];
109
101
  }
110
-
111
102
  return await resolver(isRoot ? parent.values : parent, args, context, info);
112
103
  };
113
104
  }
114
-
115
105
  return (0, _objectSpread2.default)({
116
106
  [graphQLType]: fieldResolvers
117
107
  }, typeResolvers);
118
108
  };
119
109
  };
120
-
121
110
  exports.createFieldResolversFactory = createFieldResolversFactory;
@@ -1 +1 @@
1
- {"version":3,"names":["getCreateResolver","plugins","field","endpointType","baseType","getBaseFieldType","createResolver","createFieldResolversFactory","factoryParams","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","fieldId","WebinyError","resolver","fieldResolver","Object","assign","parent","args","context","info","transformedValue","entryFieldFromStorageTransform","value","values","set"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport {\n CmsModelField,\n CmsContext,\n CmsModelFieldToGraphQLCreateResolver,\n ApiEndpoint,\n CmsModel,\n CmsFieldTypePlugins\n} from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst getCreateResolver = (\n plugins: CmsFieldTypePlugins,\n field: CmsModelField,\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver | null => {\n const baseType = getBaseFieldType(field);\n if (!plugins[baseType]) {\n return null;\n } else if (!plugins[baseType][endpointType]) {\n return null;\n }\n return plugins[baseType][endpointType].createResolver;\n};\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n if (!fieldTypePlugins[getBaseFieldType(field)]) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({ graphQLType, models, model, field, createFieldResolvers })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n // TODO @ts-refactor figure out types for parameters\n // @ts-ignore\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getCreateResolver","plugins","field","endpointType","baseType","getBaseFieldType","createResolver","createFieldResolversFactory","factoryParams","models","model","fieldTypePlugins","createFieldResolvers","params","graphQLType","fields","isRoot","extraResolvers","fieldResolvers","typeResolvers","fieldId","WebinyError","resolver","fieldResolver","Object","assign","parent","args","context","info","value","values","undefined","transformedValue","entryFieldFromStorageTransform","set"],"sources":["createFieldResolvers.ts"],"sourcesContent":["import set from \"lodash/set\";\nimport {\n CmsModelField,\n CmsContext,\n CmsModelFieldToGraphQLCreateResolver,\n ApiEndpoint,\n CmsModel,\n CmsFieldTypePlugins\n} from \"~/types\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport WebinyError from \"@webiny/error\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface CreateFieldResolvers {\n graphQLType: string;\n fields: CmsModelField[];\n isRoot: boolean;\n extraResolvers?: Resolvers<any>;\n}\n\ninterface CreateFieldResolversFactoryParams {\n endpointType: ApiEndpoint;\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst getCreateResolver = (\n plugins: CmsFieldTypePlugins,\n field: CmsModelField,\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver | null => {\n const baseType = getBaseFieldType(field);\n if (!plugins[baseType]) {\n return null;\n } else if (!plugins[baseType][endpointType]) {\n return null;\n }\n return plugins[baseType][endpointType].createResolver;\n};\n/**\n * We use a factory to avoid passing the parameters for recursive invocations.\n * This way they will always be in the function scope, and we can only pass \"fields\".\n */\nexport const createFieldResolversFactory = (factoryParams: CreateFieldResolversFactoryParams) => {\n const { endpointType, models, model, fieldTypePlugins } = factoryParams;\n return function createFieldResolvers(params: CreateFieldResolvers) {\n const { graphQLType, fields, isRoot = false, extraResolvers = {} } = params;\n\n const fieldResolvers = { ...extraResolvers };\n const typeResolvers = {};\n\n for (const field of fields) {\n if (!fieldTypePlugins[getBaseFieldType(field)]) {\n continue;\n }\n /**\n * Field that is passed into this factory MUST have fieldId, so filter it before the method call.\n */\n if (!field.fieldId) {\n throw new WebinyError(\n \"Field is missing an `fieldId`. Cannot process field without the `fieldId` in the resolvers.\",\n \"FIELD_ID_ERROR\",\n {\n field\n }\n );\n }\n\n const createResolver = getCreateResolver(fieldTypePlugins, field, endpointType);\n\n let resolver: any;\n const fieldResolver = createResolver\n ? createResolver({ graphQLType, models, model, field, createFieldResolvers })\n : null;\n\n /**\n * When fieldResolver is false it will completely skip adding field fieldId into the resolvers.\n * This is to fix the breaking of GraphQL schema.\n */\n if (fieldResolver === false) {\n continue;\n } else if (typeof fieldResolver === \"function\") {\n resolver = fieldResolver;\n } else if (fieldResolver) {\n resolver = fieldResolver.resolver;\n Object.assign(typeResolvers, fieldResolver.typeResolvers);\n }\n\n const { fieldId } = field;\n // TODO @ts-refactor figure out types for parameters\n // @ts-ignore\n fieldResolvers[fieldId] = async (parent, args, context: CmsContext, info) => {\n /**\n * This is required because due to ref field can be requested without the populated data.\n * At that point there is no .values no fieldId property on the parent\n */\n const value =\n parent?.values?.[fieldId] === undefined\n ? parent?.[fieldId]\n : parent?.values?.[fieldId];\n if (value === undefined) {\n return undefined;\n }\n // Get transformed value (eg. data decompression)\n const transformedValue = await entryFieldFromStorageTransform({\n context,\n model,\n field,\n value: isRoot ? parent.values?.[fieldId] : parent[fieldId]\n });\n\n set(isRoot ? parent.values : parent, fieldId, transformedValue);\n\n if (!resolver) {\n return isRoot ? parent.values[fieldId] : parent[fieldId];\n }\n\n return await resolver(isRoot ? parent.values : parent, args, context, info);\n };\n }\n\n return { [graphQLType]: fieldResolvers, ...typeResolvers };\n };\n};\n"],"mappings":"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"}
@@ -1,46 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createManageResolvers = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _commonFieldResolvers = require("./resolvers/commonFieldResolvers");
13
-
14
10
  var _resolveGet = require("./resolvers/manage/resolveGet");
15
-
16
11
  var _resolveList = require("./resolvers/manage/resolveList");
17
-
18
12
  var _resolveGetRevisions = require("./resolvers/manage/resolveGetRevisions");
19
-
20
13
  var _resolveGetByIds = require("./resolvers/manage/resolveGetByIds");
21
-
22
14
  var _resolveCreate = require("./resolvers/manage/resolveCreate");
23
-
24
15
  var _resolveUpdate = require("./resolvers/manage/resolveUpdate");
25
-
26
16
  var _resolveDelete = require("./resolvers/manage/resolveDelete");
27
-
28
17
  var _resolvePublish = require("./resolvers/manage/resolvePublish");
29
-
30
18
  var _resolveRepublish = require("./resolvers/manage/resolveRepublish");
31
-
32
19
  var _resolveUnpublish = require("./resolvers/manage/resolveUnpublish");
33
-
34
20
  var _resolveCreateFrom = require("./resolvers/manage/resolveCreateFrom");
35
-
36
21
  var _createFieldResolvers = require("./createFieldResolvers");
37
-
38
22
  var _createTypeName = require("../../utils/createTypeName");
39
-
40
23
  var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
41
-
42
24
  var _getEntryTitle = require("../../utils/getEntryTitle");
43
-
44
25
  const createManageResolvers = ({
45
26
  models,
46
27
  model,
@@ -52,7 +33,6 @@ const createManageResolvers = ({
52
33
  Mutation: {}
53
34
  };
54
35
  }
55
-
56
36
  const typeName = (0, _createTypeName.createTypeName)(model.modelId);
57
37
  const mTypeName = (0, _createTypeName.createManageTypeName)(typeName);
58
38
  const createFieldResolvers = (0, _createFieldResolvers.createFieldResolversFactory)({
@@ -70,7 +50,6 @@ const createManageResolvers = ({
70
50
  meta(entry) {
71
51
  return entry;
72
52
  }
73
-
74
53
  })
75
54
  });
76
55
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({
@@ -116,22 +95,17 @@ const createManageResolvers = ({
116
95
  title(entry) {
117
96
  return (0, _getEntryTitle.getEntryTitle)(model, entry);
118
97
  },
119
-
120
98
  status(entry) {
121
99
  return entry.status;
122
100
  },
123
-
124
101
  data: entry => {
125
102
  return entry.meta || {};
126
103
  },
127
-
128
104
  async revisions(entry, _, context) {
129
105
  const revisions = await context.cms.getEntryRevisions(model, entry.entryId);
130
106
  return revisions.sort((a, b) => b.version - a.version);
131
107
  }
132
-
133
108
  }
134
109
  });
135
110
  };
136
-
137
111
  exports.createManageResolvers = createManageResolvers;
@@ -1 +1 @@
1
- {"version":3,"names":["createManageResolvers","models","model","fieldTypePlugins","fields","length","Query","Mutation","typeName","createTypeName","modelId","mTypeName","createManageTypeName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","isRoot","extraResolvers","commonFieldResolvers","meta","entry","resolveGet","resolveGetRevisions","pluralizedTypeName","resolveGetByIds","resolveList","resolveCreate","resolveUpdate","resolveDelete","resolvePublish","resolveRepublish","resolveUnpublish","resolveCreateFrom","title","getEntryTitle","status","data","revisions","_","context","cms","getEntryRevisions","entryId","sort","a","b","version"],"sources":["createManageResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext, CmsEntry } from \"~/types\";\nimport { commonFieldResolvers } from \"./resolvers/commonFieldResolvers\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet\";\nimport { resolveList } from \"./resolvers/manage/resolveList\";\nimport { resolveGetRevisions } from \"./resolvers/manage/resolveGetRevisions\";\nimport { resolveGetByIds } from \"./resolvers/manage/resolveGetByIds\";\nimport { resolveCreate } from \"./resolvers/manage/resolveCreate\";\nimport { resolveUpdate } from \"./resolvers/manage/resolveUpdate\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete\";\nimport { resolvePublish } from \"./resolvers/manage/resolvePublish\";\nimport { resolveRepublish } from \"./resolvers/manage/resolveRepublish\";\nimport { resolveUnpublish } from \"./resolvers/manage/resolveUnpublish\";\nimport { resolveCreateFrom } from \"./resolvers/manage/resolveCreateFrom\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\n\ninterface CreateManageResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface CreateManageResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateManageResolversParams): any;\n}\n\nexport const createManageResolvers: CreateManageResolvers = ({\n models,\n model,\n fieldTypePlugins\n}) => {\n if (model.fields.length === 0) {\n return {\n Query: {},\n Mutation: {}\n };\n }\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: mTypeName,\n fields: model.fields,\n isRoot: true,\n // These are extra fields we want to apply to field resolvers of \"gqlType\"\n extraResolvers: {\n ...commonFieldResolvers(),\n meta(entry) {\n return entry;\n }\n }\n });\n\n return {\n Query: {\n [`get${typeName}`]: resolveGet({ model }),\n [`get${typeName}Revisions`]: resolveGetRevisions({ model }),\n [`get${pluralizedTypeName(typeName)}ByIds`]: resolveGetByIds({ model }),\n [`list${pluralizedTypeName(typeName)}`]: resolveList({ model })\n },\n Mutation: {\n [`create${typeName}`]: resolveCreate({ model }),\n [`update${typeName}`]: resolveUpdate({ model }),\n [`delete${typeName}`]: resolveDelete({ model }),\n [`publish${typeName}`]: resolvePublish({ model }),\n [`republish${typeName}`]: resolveRepublish({ model }),\n [`unpublish${typeName}`]: resolveUnpublish({ model }),\n [`create${typeName}From`]: resolveCreateFrom({ model })\n },\n ...fieldResolvers,\n [`${mTypeName}Meta`]: {\n title(entry: CmsEntry) {\n return getEntryTitle(model, entry);\n },\n status(entry: CmsEntry) {\n return entry.status;\n },\n data: (entry: CmsEntry) => {\n return entry.meta || {};\n },\n async revisions(entry: CmsEntry, _: any, context: CmsContext) {\n const revisions = await context.cms.getEntryRevisions(model, entry.entryId);\n return revisions.sort((a, b) => b.version - a.version);\n }\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createManageResolvers","models","model","fieldTypePlugins","fields","length","Query","Mutation","typeName","createTypeName","modelId","mTypeName","createManageTypeName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","isRoot","extraResolvers","commonFieldResolvers","meta","entry","resolveGet","resolveGetRevisions","pluralizedTypeName","resolveGetByIds","resolveList","resolveCreate","resolveUpdate","resolveDelete","resolvePublish","resolveRepublish","resolveUnpublish","resolveCreateFrom","title","getEntryTitle","status","data","revisions","_","context","cms","getEntryRevisions","entryId","sort","a","b","version"],"sources":["createManageResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext, CmsEntry } from \"~/types\";\nimport { commonFieldResolvers } from \"./resolvers/commonFieldResolvers\";\nimport { resolveGet } from \"./resolvers/manage/resolveGet\";\nimport { resolveList } from \"./resolvers/manage/resolveList\";\nimport { resolveGetRevisions } from \"./resolvers/manage/resolveGetRevisions\";\nimport { resolveGetByIds } from \"./resolvers/manage/resolveGetByIds\";\nimport { resolveCreate } from \"./resolvers/manage/resolveCreate\";\nimport { resolveUpdate } from \"./resolvers/manage/resolveUpdate\";\nimport { resolveDelete } from \"./resolvers/manage/resolveDelete\";\nimport { resolvePublish } from \"./resolvers/manage/resolvePublish\";\nimport { resolveRepublish } from \"./resolvers/manage/resolveRepublish\";\nimport { resolveUnpublish } from \"./resolvers/manage/resolveUnpublish\";\nimport { resolveCreateFrom } from \"./resolvers/manage/resolveCreateFrom\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\n\ninterface CreateManageResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface CreateManageResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateManageResolversParams): any;\n}\n\nexport const createManageResolvers: CreateManageResolvers = ({\n models,\n model,\n fieldTypePlugins\n}) => {\n if (model.fields.length === 0) {\n return {\n Query: {},\n Mutation: {}\n };\n }\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"manage\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: mTypeName,\n fields: model.fields,\n isRoot: true,\n // These are extra fields we want to apply to field resolvers of \"gqlType\"\n extraResolvers: {\n ...commonFieldResolvers(),\n meta(entry) {\n return entry;\n }\n }\n });\n\n return {\n Query: {\n [`get${typeName}`]: resolveGet({ model }),\n [`get${typeName}Revisions`]: resolveGetRevisions({ model }),\n [`get${pluralizedTypeName(typeName)}ByIds`]: resolveGetByIds({ model }),\n [`list${pluralizedTypeName(typeName)}`]: resolveList({ model })\n },\n Mutation: {\n [`create${typeName}`]: resolveCreate({ model }),\n [`update${typeName}`]: resolveUpdate({ model }),\n [`delete${typeName}`]: resolveDelete({ model }),\n [`publish${typeName}`]: resolvePublish({ model }),\n [`republish${typeName}`]: resolveRepublish({ model }),\n [`unpublish${typeName}`]: resolveUnpublish({ model }),\n [`create${typeName}From`]: resolveCreateFrom({ model })\n },\n ...fieldResolvers,\n [`${mTypeName}Meta`]: {\n title(entry: CmsEntry) {\n return getEntryTitle(model, entry);\n },\n status(entry: CmsEntry) {\n return entry.status;\n },\n data: (entry: CmsEntry) => {\n return entry.meta || {};\n },\n async revisions(entry: CmsEntry, _: any, context: CmsContext) {\n const revisions = await context.cms.getEntryRevisions(model, entry.entryId);\n return revisions.sort((a, b) => b.version - a.version);\n }\n }\n };\n};\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaO,MAAMA,qBAA4C,GAAG,CAAC;EACzDC,MAAM;EACNC,KAAK;EACLC;AACJ,CAAC,KAAK;EACF,IAAID,KAAK,CAACE,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO;MACHC,KAAK,EAAE,CAAC,CAAC;MACTC,QAAQ,EAAE,CAAC;IACf,CAAC;EACL;EACA,MAAMC,QAAQ,GAAG,IAAAC,8BAAc,EAACP,KAAK,CAACQ,OAAO,CAAC;EAC9C,MAAMC,SAAS,GAAG,IAAAC,oCAAoB,EAACJ,QAAQ,CAAC;EAChD,MAAMK,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAE,QAAQ;IACtBd,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMa,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,SAAS;IACtBP,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBc,MAAM,EAAE,IAAI;IACZ;IACAC,cAAc,8DACP,IAAAC,0CAAoB,GAAE;MACzBC,IAAI,CAACC,KAAK,EAAE;QACR,OAAOA,KAAK;MAChB;IAAC;EAET,CAAC,CAAC;EAEF;IACIhB,KAAK,EAAE;MACH,CAAE,MAAKE,QAAS,EAAC,GAAG,IAAAe,sBAAU,EAAC;QAAErB;MAAM,CAAC,CAAC;MACzC,CAAE,MAAKM,QAAS,WAAU,GAAG,IAAAgB,wCAAmB,EAAC;QAAEtB;MAAM,CAAC,CAAC;MAC3D,CAAE,MAAK,IAAAuB,sCAAkB,EAACjB,QAAQ,CAAE,OAAM,GAAG,IAAAkB,gCAAe,EAAC;QAAExB;MAAM,CAAC,CAAC;MACvE,CAAE,OAAM,IAAAuB,sCAAkB,EAACjB,QAAQ,CAAE,EAAC,GAAG,IAAAmB,wBAAW,EAAC;QAAEzB;MAAM,CAAC;IAClE,CAAC;IACDK,QAAQ,EAAE;MACN,CAAE,SAAQC,QAAS,EAAC,GAAG,IAAAoB,4BAAa,EAAC;QAAE1B;MAAM,CAAC,CAAC;MAC/C,CAAE,SAAQM,QAAS,EAAC,GAAG,IAAAqB,4BAAa,EAAC;QAAE3B;MAAM,CAAC,CAAC;MAC/C,CAAE,SAAQM,QAAS,EAAC,GAAG,IAAAsB,4BAAa,EAAC;QAAE5B;MAAM,CAAC,CAAC;MAC/C,CAAE,UAASM,QAAS,EAAC,GAAG,IAAAuB,8BAAc,EAAC;QAAE7B;MAAM,CAAC,CAAC;MACjD,CAAE,YAAWM,QAAS,EAAC,GAAG,IAAAwB,kCAAgB,EAAC;QAAE9B;MAAM,CAAC,CAAC;MACrD,CAAE,YAAWM,QAAS,EAAC,GAAG,IAAAyB,kCAAgB,EAAC;QAAE/B;MAAM,CAAC,CAAC;MACrD,CAAE,SAAQM,QAAS,MAAK,GAAG,IAAA0B,oCAAiB,EAAC;QAAEhC;MAAM,CAAC;IAC1D;EAAC,GACEc,cAAc;IACjB,CAAE,GAAEL,SAAU,MAAK,GAAG;MAClBwB,KAAK,CAACb,KAAe,EAAE;QACnB,OAAO,IAAAc,4BAAa,EAAClC,KAAK,EAAEoB,KAAK,CAAC;MACtC,CAAC;MACDe,MAAM,CAACf,KAAe,EAAE;QACpB,OAAOA,KAAK,CAACe,MAAM;MACvB,CAAC;MACDC,IAAI,EAAGhB,KAAe,IAAK;QACvB,OAAOA,KAAK,CAACD,IAAI,IAAI,CAAC,CAAC;MAC3B,CAAC;MACD,MAAMkB,SAAS,CAACjB,KAAe,EAAEkB,CAAM,EAAEC,OAAmB,EAAE;QAC1D,MAAMF,SAAS,GAAG,MAAME,OAAO,CAACC,GAAG,CAACC,iBAAiB,CAACzC,KAAK,EAAEoB,KAAK,CAACsB,OAAO,CAAC;QAC3E,OAAOL,SAAS,CAACM,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACC,OAAO,GAAGF,CAAC,CAACE,OAAO,CAAC;MAC1D;IACJ;EAAC;AAET,CAAC;AAAC"}
@@ -1,7 +1,9 @@
1
1
  import { CmsFieldTypePlugins, CmsModel } from "../../types";
2
+ import { CmsGraphQLSchemaSorterPlugin } from "../../plugins";
2
3
  interface CreateManageSDLParams {
3
4
  model: CmsModel;
4
5
  fieldTypePlugins: CmsFieldTypePlugins;
6
+ sorterPlugins: CmsGraphQLSchemaSorterPlugin[];
5
7
  }
6
8
  interface CreateManageSDL {
7
9
  (params: CreateManageSDLParams): string;
@@ -4,24 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createManageSDL = void 0;
7
-
8
7
  var _createTypeName = require("../../utils/createTypeName");
9
-
10
8
  var _renderListFilterFields = require("../../utils/renderListFilterFields");
11
-
12
9
  var _renderSortEnum = require("../../utils/renderSortEnum");
13
-
14
10
  var _renderGetFilterFields = require("../../utils/renderGetFilterFields");
15
-
16
11
  var _renderInputFields = require("../../utils/renderInputFields");
17
-
18
12
  var _renderFields = require("../../utils/renderFields");
19
-
20
13
  var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
21
-
22
14
  const createManageSDL = ({
23
15
  model,
24
- fieldTypePlugins
16
+ fieldTypePlugins,
17
+ sorterPlugins
25
18
  }) => {
26
19
  const typeName = (0, _createTypeName.createTypeName)(model.modelId);
27
20
  const mTypeName = (0, _createTypeName.createManageTypeName)(typeName);
@@ -32,7 +25,8 @@ const createManageSDL = ({
32
25
  });
33
26
  const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
34
27
  model,
35
- fieldTypePlugins
28
+ fieldTypePlugins,
29
+ sorterPlugins
36
30
  });
37
31
  const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
38
32
  model,
@@ -47,14 +41,10 @@ const createManageSDL = ({
47
41
  type: "manage",
48
42
  fieldTypePlugins
49
43
  });
50
-
51
44
  if (inputFields.length === 0) {
52
45
  return "";
53
46
  }
54
-
55
- return (
56
- /* GraphQL */
57
- `
47
+ return (/* GraphQL */`
58
48
  """${model.description || model.modelId}"""
59
49
  type ${mTypeName} {
60
50
  id: ID!
@@ -90,6 +80,7 @@ const createManageSDL = ({
90
80
  ${inputFields.map(f => f.typeDefs).filter(Boolean).join("\n")}
91
81
 
92
82
  ${inputFields && `input ${mTypeName}Input {
83
+ id: ID
93
84
  ${inputFields.map(f => f.fields).join("\n")}
94
85
  }`}
95
86
 
@@ -157,5 +148,4 @@ const createManageSDL = ({
157
148
  `
158
149
  );
159
150
  };
160
-
161
151
  exports.createManageSDL = createManageSDL;
@@ -1 +1 @@
1
- {"version":3,"names":["createManageSDL","model","fieldTypePlugins","typeName","createTypeName","modelId","mTypeName","createManageTypeName","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","inputFields","renderInputFields","fields","renderFields","length","description","map","f","join","typeDefs","filter","Boolean","pluralizedTypeName"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\n\ninterface CreateManageSDLParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({ model, fieldTypePlugins }): string => {\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({ model, fieldTypePlugins });\n const getFilterFieldsRender = renderGetFilterFields({ model, fieldTypePlugins });\n const inputFields = renderInputFields({ model, fieldTypePlugins });\n const fields = renderFields({ model, type: \"manage\", fieldTypePlugins });\n\n if (inputFields.length === 0) {\n return \"\";\n }\n\n return /* GraphQL */ `\n \"\"\"${model.description || model.modelId}\"\"\"\n type ${mTypeName} {\n id: ID!\n entryId: String!\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsCreatedBy!\n ownedBy: CmsOwnedBy!\n meta: ${mTypeName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${mTypeName}Meta {\n modelId: String\n version: Int\n locked: Boolean\n publishedOn: DateTime\n status: String\n \"\"\"\n CAUTION: this field is resolved by making an extra query to DB.\n RECOMMENDATION: Use it only with \"get\" queries (avoid in \"list\")\n \"\"\"\n revisions: [${mTypeName}]\n title: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n ${inputFields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n\n ${\n inputFields &&\n `input ${mTypeName}Input {\n ${inputFields.map(f => f.fields).join(\"\\n\")}\n }`\n }\n\n ${\n getFilterFieldsRender &&\n `input ${mTypeName}GetWhereInput {\n ${getFilterFieldsRender}\n }`\n }\n\n\n ${\n listFilterFieldsRender &&\n `input ${mTypeName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${mTypeName}ListWhereInput!]\n OR: [${mTypeName}ListWhereInput!]\n }`\n }\n\n type ${mTypeName}Response {\n data: ${mTypeName}\n error: CmsError\n }\n \n type ${mTypeName}ArrayResponse {\n data: [${mTypeName}]\n error: CmsError\n }\n\n type ${mTypeName}ListResponse {\n data: [${mTypeName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n ${\n sortEnumRender &&\n `enum ${mTypeName}ListSorter {\n ${sortEnumRender}\n }`\n }\n\n extend type Query {\n get${typeName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${mTypeName}Response\n \n get${typeName}Revisions(id: ID!): ${mTypeName}ArrayResponse\n \n get${pluralizedTypeName(typeName)}ByIds(revisions: [ID!]!): ${mTypeName}ArrayResponse\n\n list${pluralizedTypeName(typeName)}(\n where: ${mTypeName}ListWhereInput\n sort: [${mTypeName}ListSorter]\n limit: Int\n after: String\n ): ${mTypeName}ListResponse\n }\n\n extend type Mutation{\n create${typeName}(data: ${mTypeName}Input!): ${mTypeName}Response\n\n create${typeName}From(revision: ID!, data: ${mTypeName}Input): ${mTypeName}Response\n\n update${typeName}(revision: ID!, data: ${mTypeName}Input!): ${mTypeName}Response\n\n delete${typeName}(revision: ID!): CmsDeleteResponse\n\n publish${typeName}(revision: ID!): ${mTypeName}Response\n \n republish${typeName}(revision: ID!): ${mTypeName}Response\n\n unpublish${typeName}(revision: ID!): ${mTypeName}Response\n }\n `;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createManageSDL","model","fieldTypePlugins","sorterPlugins","typeName","createTypeName","modelId","mTypeName","createManageTypeName","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","inputFields","renderInputFields","fields","renderFields","length","description","map","f","join","typeDefs","filter","Boolean","pluralizedTypeName"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateManageSDLParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({ model, fieldTypePlugins, sorterPlugins });\n const getFilterFieldsRender = renderGetFilterFields({ model, fieldTypePlugins });\n const inputFields = renderInputFields({ model, fieldTypePlugins });\n const fields = renderFields({ model, type: \"manage\", fieldTypePlugins });\n\n if (inputFields.length === 0) {\n return \"\";\n }\n\n return /* GraphQL */ `\n \"\"\"${model.description || model.modelId}\"\"\"\n type ${mTypeName} {\n id: ID!\n entryId: String!\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsCreatedBy!\n ownedBy: CmsOwnedBy!\n meta: ${mTypeName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${mTypeName}Meta {\n modelId: String\n version: Int\n locked: Boolean\n publishedOn: DateTime\n status: String\n \"\"\"\n CAUTION: this field is resolved by making an extra query to DB.\n RECOMMENDATION: Use it only with \"get\" queries (avoid in \"list\")\n \"\"\"\n revisions: [${mTypeName}]\n title: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n ${inputFields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n\n ${\n inputFields &&\n `input ${mTypeName}Input {\n id: ID\n ${inputFields.map(f => f.fields).join(\"\\n\")}\n }`\n }\n\n ${\n getFilterFieldsRender &&\n `input ${mTypeName}GetWhereInput {\n ${getFilterFieldsRender}\n }`\n }\n\n\n ${\n listFilterFieldsRender &&\n `input ${mTypeName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${mTypeName}ListWhereInput!]\n OR: [${mTypeName}ListWhereInput!]\n }`\n }\n\n type ${mTypeName}Response {\n data: ${mTypeName}\n error: CmsError\n }\n \n type ${mTypeName}ArrayResponse {\n data: [${mTypeName}]\n error: CmsError\n }\n\n type ${mTypeName}ListResponse {\n data: [${mTypeName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n ${\n sortEnumRender &&\n `enum ${mTypeName}ListSorter {\n ${sortEnumRender}\n }`\n }\n\n extend type Query {\n get${typeName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${mTypeName}Response\n \n get${typeName}Revisions(id: ID!): ${mTypeName}ArrayResponse\n \n get${pluralizedTypeName(typeName)}ByIds(revisions: [ID!]!): ${mTypeName}ArrayResponse\n\n list${pluralizedTypeName(typeName)}(\n where: ${mTypeName}ListWhereInput\n sort: [${mTypeName}ListSorter]\n limit: Int\n after: String\n ): ${mTypeName}ListResponse\n }\n\n extend type Mutation{\n create${typeName}(data: ${mTypeName}Input!): ${mTypeName}Response\n\n create${typeName}From(revision: ID!, data: ${mTypeName}Input): ${mTypeName}Response\n\n update${typeName}(revision: ID!, data: ${mTypeName}Input!): ${mTypeName}Response\n\n delete${typeName}(revision: ID!): CmsDeleteResponse\n\n publish${typeName}(revision: ID!): ${mTypeName}Response\n \n republish${typeName}(revision: ID!): ${mTypeName}Response\n\n unpublish${typeName}(revision: ID!): ${mTypeName}Response\n }\n `;\n};\n"],"mappings":"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"}