@webiny/api-headless-cms 0.0.0-unstable.d16f688daf → 0.0.0-unstable.d65ec29d44

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 +69 -97
  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 +8 -12
  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
package/utils/access.js CHANGED
@@ -4,33 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.validateModelAccess = exports.validateGroupAccess = exports.checkModelAccess = void 0;
7
-
8
7
  var _apiSecurity = require("@webiny/api-security");
9
-
10
8
  var _permissions = require("./permissions");
11
-
12
9
  const validateGroupAccess = (context, permission, group) => {
13
10
  const {
14
11
  groups
15
- } = permission; // when no groups defined on permission
12
+ } = permission;
13
+ // when no groups defined on permission
16
14
  // it means user has access to everything
17
-
18
15
  if (!groups) {
19
16
  return true;
20
17
  }
21
-
22
- const locale = context.cms.getLocale().code; // when there is no locale in groups, it means that no access was given
18
+ const locale = context.cms.getLocale().code;
19
+ // when there is no locale in groups, it means that no access was given
23
20
  // this happens when access control was set but no models or groups were added
24
-
25
21
  if (Array.isArray(groups[locale]) === false || groups[locale].includes(group.id) === false) {
26
22
  return false;
27
23
  }
28
-
29
24
  return true;
30
25
  };
31
-
32
26
  exports.validateGroupAccess = validateGroupAccess;
33
-
34
27
  const validateModelAccess = async (context, model) => {
35
28
  const modelGroupPermission = await (0, _permissions.checkPermissions)(context, "cms.contentModelGroup", {
36
29
  rwd: "r"
@@ -43,48 +36,41 @@ const validateModelAccess = async (context, model) => {
43
36
  });
44
37
  const {
45
38
  models
46
- } = modelPermission; // when no models or groups defined on permission
39
+ } = modelPermission;
40
+ // when no models or groups defined on permission
47
41
  // it means user has access to everything
48
-
49
42
  if (!models && !groups) {
50
43
  return true;
51
44
  }
52
-
53
- const locale = context.cms.getLocale().code; // Check whether the model is question belongs to "content model groups" for which user has permission.
54
-
45
+ const locale = context.cms.getLocale().code;
46
+ // Check whether the model is question belongs to "content model groups" for which user has permission.
55
47
  if (groups) {
56
48
  if (Array.isArray(groups[locale]) === false || groups[locale].includes(model.group.id) === false) {
57
49
  return false;
58
50
  }
59
- } // Check whether the model is question belongs to "content models" for which user has permission.
60
-
61
-
51
+ }
52
+ // Check whether the model is question belongs to "content models" for which user has permission.
62
53
  if (models) {
63
54
  if (Array.isArray(models[locale]) === false || models[locale].includes(model.modelId) === false) {
64
55
  return false;
65
56
  }
66
57
  }
67
-
68
58
  return true;
69
59
  };
60
+
70
61
  /**
71
62
  * model access is checking for both specific model or group access
72
63
  * if permission has specific models set as access pattern then groups will not matter (although both can be set)
73
64
  */
74
-
75
-
76
65
  exports.validateModelAccess = validateModelAccess;
77
-
78
66
  const checkModelAccess = async (context, model) => {
79
67
  if (await validateModelAccess(context, model)) {
80
68
  return;
81
69
  }
82
-
83
70
  throw new _apiSecurity.NotAuthorizedError({
84
71
  data: {
85
72
  reason: `Not allowed to access model "${model.modelId}".`
86
73
  }
87
74
  });
88
75
  };
89
-
90
76
  exports.checkModelAccess = checkModelAccess;
@@ -1 +1 @@
1
- {"version":3,"names":["validateGroupAccess","context","permission","group","groups","locale","cms","getLocale","code","Array","isArray","includes","id","validateModelAccess","model","modelGroupPermission","checkPermissions","rwd","modelPermission","models","modelId","checkModelAccess","NotAuthorizedError","data","reason"],"sources":["access.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { CmsContext, CmsGroup, CmsGroupPermission, CmsModel, CmsModelPermission } from \"~/types\";\nimport { checkPermissions } from \"./permissions\";\n\nexport const validateGroupAccess = (\n context: CmsContext,\n permission: CmsGroupPermission,\n group: CmsGroup\n): boolean => {\n const { groups } = permission;\n // when no groups defined on permission\n // it means user has access to everything\n if (!groups) {\n return true;\n }\n const locale = context.cms.getLocale().code;\n // when there is no locale in groups, it means that no access was given\n // this happens when access control was set but no models or groups were added\n if (Array.isArray(groups[locale]) === false || groups[locale].includes(group.id) === false) {\n return false;\n }\n return true;\n};\n\nexport const validateModelAccess = async (\n context: CmsContext,\n model: CmsModel\n): Promise<boolean> => {\n const modelGroupPermission: CmsGroupPermission = await checkPermissions(\n context,\n \"cms.contentModelGroup\",\n { rwd: \"r\" }\n );\n const { groups } = modelGroupPermission;\n\n const modelPermission: CmsModelPermission = await checkPermissions(\n context,\n \"cms.contentModel\",\n {\n rwd: \"r\"\n }\n );\n const { models } = modelPermission;\n // when no models or groups defined on permission\n // it means user has access to everything\n if (!models && !groups) {\n return true;\n }\n const locale = context.cms.getLocale().code;\n // Check whether the model is question belongs to \"content model groups\" for which user has permission.\n if (groups) {\n if (\n Array.isArray(groups[locale]) === false ||\n groups[locale].includes(model.group.id) === false\n ) {\n return false;\n }\n }\n // Check whether the model is question belongs to \"content models\" for which user has permission.\n if (models) {\n if (\n Array.isArray(models[locale]) === false ||\n models[locale].includes(model.modelId) === false\n ) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * model access is checking for both specific model or group access\n * if permission has specific models set as access pattern then groups will not matter (although both can be set)\n */\nexport const checkModelAccess = async (context: CmsContext, model: CmsModel): Promise<void> => {\n if (await validateModelAccess(context, model)) {\n return;\n }\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access model \"${model.modelId}\".`\n }\n });\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEO,MAAMA,mBAAmB,GAAG,CAC/BC,OAD+B,EAE/BC,UAF+B,EAG/BC,KAH+B,KAIrB;EACV,MAAM;IAAEC;EAAF,IAAaF,UAAnB,CADU,CAEV;EACA;;EACA,IAAI,CAACE,MAAL,EAAa;IACT,OAAO,IAAP;EACH;;EACD,MAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYC,SAAZ,GAAwBC,IAAvC,CAPU,CAQV;EACA;;EACA,IAAIC,KAAK,CAACC,OAAN,CAAcN,MAAM,CAACC,MAAD,CAApB,MAAkC,KAAlC,IAA2CD,MAAM,CAACC,MAAD,CAAN,CAAeM,QAAf,CAAwBR,KAAK,CAACS,EAA9B,MAAsC,KAArF,EAA4F;IACxF,OAAO,KAAP;EACH;;EACD,OAAO,IAAP;AACH,CAlBM;;;;AAoBA,MAAMC,mBAAmB,GAAG,OAC/BZ,OAD+B,EAE/Ba,KAF+B,KAGZ;EACnB,MAAMC,oBAAwC,GAAG,MAAM,IAAAC,6BAAA,EACnDf,OADmD,EAEnD,uBAFmD,EAGnD;IAAEgB,GAAG,EAAE;EAAP,CAHmD,CAAvD;EAKA,MAAM;IAAEb;EAAF,IAAaW,oBAAnB;EAEA,MAAMG,eAAmC,GAAG,MAAM,IAAAF,6BAAA,EAC9Cf,OAD8C,EAE9C,kBAF8C,EAG9C;IACIgB,GAAG,EAAE;EADT,CAH8C,CAAlD;EAOA,MAAM;IAAEE;EAAF,IAAaD,eAAnB,CAfmB,CAgBnB;EACA;;EACA,IAAI,CAACC,MAAD,IAAW,CAACf,MAAhB,EAAwB;IACpB,OAAO,IAAP;EACH;;EACD,MAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAR,CAAYC,SAAZ,GAAwBC,IAAvC,CArBmB,CAsBnB;;EACA,IAAIJ,MAAJ,EAAY;IACR,IACIK,KAAK,CAACC,OAAN,CAAcN,MAAM,CAACC,MAAD,CAApB,MAAkC,KAAlC,IACAD,MAAM,CAACC,MAAD,CAAN,CAAeM,QAAf,CAAwBG,KAAK,CAACX,KAAN,CAAYS,EAApC,MAA4C,KAFhD,EAGE;MACE,OAAO,KAAP;IACH;EACJ,CA9BkB,CA+BnB;;;EACA,IAAIO,MAAJ,EAAY;IACR,IACIV,KAAK,CAACC,OAAN,CAAcS,MAAM,CAACd,MAAD,CAApB,MAAkC,KAAlC,IACAc,MAAM,CAACd,MAAD,CAAN,CAAeM,QAAf,CAAwBG,KAAK,CAACM,OAA9B,MAA2C,KAF/C,EAGE;MACE,OAAO,KAAP;IACH;EACJ;;EAED,OAAO,IAAP;AACH,CA7CM;AA+CP;AACA;AACA;AACA;;;;;AACO,MAAMC,gBAAgB,GAAG,OAAOpB,OAAP,EAA4Ba,KAA5B,KAA+D;EAC3F,IAAI,MAAMD,mBAAmB,CAACZ,OAAD,EAAUa,KAAV,CAA7B,EAA+C;IAC3C;EACH;;EACD,MAAM,IAAIQ,+BAAJ,CAAuB;IACzBC,IAAI,EAAE;MACFC,MAAM,EAAG,gCAA+BV,KAAK,CAACM,OAAQ;IADpD;EADmB,CAAvB,CAAN;AAKH,CATM"}
1
+ {"version":3,"names":["validateGroupAccess","context","permission","group","groups","locale","cms","getLocale","code","Array","isArray","includes","id","validateModelAccess","model","modelGroupPermission","checkPermissions","rwd","modelPermission","models","modelId","checkModelAccess","NotAuthorizedError","data","reason"],"sources":["access.ts"],"sourcesContent":["import { NotAuthorizedError } from \"@webiny/api-security\";\nimport { CmsContext, CmsGroup, CmsGroupPermission, CmsModel, CmsModelPermission } from \"~/types\";\nimport { checkPermissions } from \"./permissions\";\n\nexport const validateGroupAccess = (\n context: CmsContext,\n permission: CmsGroupPermission,\n group: CmsGroup\n): boolean => {\n const { groups } = permission;\n // when no groups defined on permission\n // it means user has access to everything\n if (!groups) {\n return true;\n }\n const locale = context.cms.getLocale().code;\n // when there is no locale in groups, it means that no access was given\n // this happens when access control was set but no models or groups were added\n if (Array.isArray(groups[locale]) === false || groups[locale].includes(group.id) === false) {\n return false;\n }\n return true;\n};\n\nexport const validateModelAccess = async (\n context: CmsContext,\n model: CmsModel\n): Promise<boolean> => {\n const modelGroupPermission: CmsGroupPermission = await checkPermissions(\n context,\n \"cms.contentModelGroup\",\n { rwd: \"r\" }\n );\n const { groups } = modelGroupPermission;\n\n const modelPermission: CmsModelPermission = await checkPermissions(\n context,\n \"cms.contentModel\",\n {\n rwd: \"r\"\n }\n );\n const { models } = modelPermission;\n // when no models or groups defined on permission\n // it means user has access to everything\n if (!models && !groups) {\n return true;\n }\n const locale = context.cms.getLocale().code;\n // Check whether the model is question belongs to \"content model groups\" for which user has permission.\n if (groups) {\n if (\n Array.isArray(groups[locale]) === false ||\n groups[locale].includes(model.group.id) === false\n ) {\n return false;\n }\n }\n // Check whether the model is question belongs to \"content models\" for which user has permission.\n if (models) {\n if (\n Array.isArray(models[locale]) === false ||\n models[locale].includes(model.modelId) === false\n ) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * model access is checking for both specific model or group access\n * if permission has specific models set as access pattern then groups will not matter (although both can be set)\n */\nexport const checkModelAccess = async (context: CmsContext, model: CmsModel): Promise<void> => {\n if (await validateModelAccess(context, model)) {\n return;\n }\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access model \"${model.modelId}\".`\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAEA;AAEO,MAAMA,mBAAmB,GAAG,CAC/BC,OAAmB,EACnBC,UAA8B,EAC9BC,KAAe,KACL;EACV,MAAM;IAAEC;EAAO,CAAC,GAAGF,UAAU;EAC7B;EACA;EACA,IAAI,CAACE,MAAM,EAAE;IACT,OAAO,IAAI;EACf;EACA,MAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACC,SAAS,EAAE,CAACC,IAAI;EAC3C;EACA;EACA,IAAIC,KAAK,CAACC,OAAO,CAACN,MAAM,CAACC,MAAM,CAAC,CAAC,KAAK,KAAK,IAAID,MAAM,CAACC,MAAM,CAAC,CAACM,QAAQ,CAACR,KAAK,CAACS,EAAE,CAAC,KAAK,KAAK,EAAE;IACxF,OAAO,KAAK;EAChB;EACA,OAAO,IAAI;AACf,CAAC;AAAC;AAEK,MAAMC,mBAAmB,GAAG,OAC/BZ,OAAmB,EACnBa,KAAe,KACI;EACnB,MAAMC,oBAAwC,GAAG,MAAM,IAAAC,6BAAgB,EACnEf,OAAO,EACP,uBAAuB,EACvB;IAAEgB,GAAG,EAAE;EAAI,CAAC,CACf;EACD,MAAM;IAAEb;EAAO,CAAC,GAAGW,oBAAoB;EAEvC,MAAMG,eAAmC,GAAG,MAAM,IAAAF,6BAAgB,EAC9Df,OAAO,EACP,kBAAkB,EAClB;IACIgB,GAAG,EAAE;EACT,CAAC,CACJ;EACD,MAAM;IAAEE;EAAO,CAAC,GAAGD,eAAe;EAClC;EACA;EACA,IAAI,CAACC,MAAM,IAAI,CAACf,MAAM,EAAE;IACpB,OAAO,IAAI;EACf;EACA,MAAMC,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACC,SAAS,EAAE,CAACC,IAAI;EAC3C;EACA,IAAIJ,MAAM,EAAE;IACR,IACIK,KAAK,CAACC,OAAO,CAACN,MAAM,CAACC,MAAM,CAAC,CAAC,KAAK,KAAK,IACvCD,MAAM,CAACC,MAAM,CAAC,CAACM,QAAQ,CAACG,KAAK,CAACX,KAAK,CAACS,EAAE,CAAC,KAAK,KAAK,EACnD;MACE,OAAO,KAAK;IAChB;EACJ;EACA;EACA,IAAIO,MAAM,EAAE;IACR,IACIV,KAAK,CAACC,OAAO,CAACS,MAAM,CAACd,MAAM,CAAC,CAAC,KAAK,KAAK,IACvCc,MAAM,CAACd,MAAM,CAAC,CAACM,QAAQ,CAACG,KAAK,CAACM,OAAO,CAAC,KAAK,KAAK,EAClD;MACE,OAAO,KAAK;IAChB;EACJ;EAEA,OAAO,IAAI;AACf,CAAC;;AAED;AACA;AACA;AACA;AAHA;AAIO,MAAMC,gBAAgB,GAAG,OAAOpB,OAAmB,EAAEa,KAAe,KAAoB;EAC3F,IAAI,MAAMD,mBAAmB,CAACZ,OAAO,EAAEa,KAAK,CAAC,EAAE;IAC3C;EACJ;EACA,MAAM,IAAIQ,+BAAkB,CAAC;IACzBC,IAAI,EAAE;MACFC,MAAM,EAAG,gCAA+BV,KAAK,CAACM,OAAQ;IAC1D;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
@@ -1,16 +1,12 @@
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.Converter = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  class Converter {
15
11
  constructor(config) {
16
12
  (0, _defineProperty2.default)(this, "type", void 0);
@@ -19,29 +15,23 @@ class Converter {
19
15
  this.type = config.type;
20
16
  this.plugin = config.plugin;
21
17
  }
22
-
23
18
  setConverterCollection(converters) {
24
19
  if (this.converters) {
25
20
  throw new _error.default(`Cannot attach converters collection more than once to Converter with type "${this.type}".`, "CONVERTER_COLLECTION_ERROR", {
26
21
  type: this.type
27
22
  });
28
23
  }
29
-
30
24
  this.converters = converters;
31
25
  }
32
-
33
26
  getConverterCollection() {
34
27
  if (!this.converters) {
35
28
  throw new _error.default(`There is no ConverterCollection defined in the converter with type "${this.type}".`);
36
29
  }
37
-
38
30
  return this.converters;
39
31
  }
40
-
41
32
  getType() {
42
33
  return this.type;
43
34
  }
44
-
45
35
  convertToStorage(params) {
46
36
  const {
47
37
  field,
@@ -53,7 +43,6 @@ class Converter {
53
43
  converterCollection: this.getConverterCollection()
54
44
  });
55
45
  }
56
-
57
46
  convertFromStorage(params) {
58
47
  const {
59
48
  field,
@@ -65,7 +54,5 @@ class Converter {
65
54
  converterCollection: this.getConverterCollection()
66
55
  });
67
56
  }
68
-
69
57
  }
70
-
71
58
  exports.Converter = Converter;
@@ -1 +1 @@
1
- {"version":3,"names":["Converter","constructor","config","undefined","type","plugin","setConverterCollection","converters","WebinyError","getConverterCollection","getType","convertToStorage","params","field","value","converterCollection","convertFromStorage"],"sources":["Converter.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntryValues, CmsModelField } from \"~/types\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins\";\nimport { ConverterCollection } from \"./ConverterCollection\";\n\nexport interface CmsModelFieldWithParent extends CmsModelField {\n parent?: CmsModelFieldWithParent | null;\n}\n\ninterface ConverterConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n parent?: CmsModelFieldWithParent | null;\n}\nexport interface ConverterConfig {\n type: string;\n plugin: CmsModelFieldConverterPlugin;\n}\nexport class Converter {\n private readonly type: string;\n private readonly plugin: CmsModelFieldConverterPlugin;\n\n private converters: ConverterCollection | undefined = undefined;\n\n public constructor(config: ConverterConfig) {\n this.type = config.type;\n this.plugin = config.plugin;\n }\n\n public setConverterCollection(converters: ConverterCollection): void {\n if (this.converters) {\n throw new WebinyError(\n `Cannot attach converters collection more than once to Converter with type \"${this.type}\".`,\n \"CONVERTER_COLLECTION_ERROR\",\n {\n type: this.type\n }\n );\n }\n this.converters = converters;\n }\n\n public getConverterCollection(): ConverterCollection {\n if (!this.converters) {\n throw new WebinyError(\n `There is no ConverterCollection defined in the converter with type \"${this.type}\".`\n );\n }\n return this.converters;\n }\n\n public getType(): string {\n return this.type;\n }\n\n public convertToStorage(params: ConverterConvertParams): CmsEntryValues {\n const { field, value } = params;\n\n return this.plugin.convertToStorage({\n field,\n value,\n converterCollection: this.getConverterCollection()\n });\n }\n\n public convertFromStorage(params: ConverterConvertParams): CmsEntryValues {\n const { field, value } = params;\n\n return this.plugin.convertFromStorage({\n field,\n value,\n converterCollection: this.getConverterCollection()\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAkBO,MAAMA,SAAN,CAAgB;EAMZC,WAAW,CAACC,MAAD,EAA0B;IAAA;IAAA;IAAA,kDAFUC,SAEV;IACxC,KAAKC,IAAL,GAAYF,MAAM,CAACE,IAAnB;IACA,KAAKC,MAAL,GAAcH,MAAM,CAACG,MAArB;EACH;;EAEMC,sBAAsB,CAACC,UAAD,EAAwC;IACjE,IAAI,KAAKA,UAAT,EAAqB;MACjB,MAAM,IAAIC,cAAJ,CACD,8EAA6E,KAAKJ,IAAK,IADtF,EAEF,4BAFE,EAGF;QACIA,IAAI,EAAE,KAAKA;MADf,CAHE,CAAN;IAOH;;IACD,KAAKG,UAAL,GAAkBA,UAAlB;EACH;;EAEME,sBAAsB,GAAwB;IACjD,IAAI,CAAC,KAAKF,UAAV,EAAsB;MAClB,MAAM,IAAIC,cAAJ,CACD,uEAAsE,KAAKJ,IAAK,IAD/E,CAAN;IAGH;;IACD,OAAO,KAAKG,UAAZ;EACH;;EAEMG,OAAO,GAAW;IACrB,OAAO,KAAKN,IAAZ;EACH;;EAEMO,gBAAgB,CAACC,MAAD,EAAiD;IACpE,MAAM;MAAEC,KAAF;MAASC;IAAT,IAAmBF,MAAzB;IAEA,OAAO,KAAKP,MAAL,CAAYM,gBAAZ,CAA6B;MAChCE,KADgC;MAEhCC,KAFgC;MAGhCC,mBAAmB,EAAE,KAAKN,sBAAL;IAHW,CAA7B,CAAP;EAKH;;EAEMO,kBAAkB,CAACJ,MAAD,EAAiD;IACtE,MAAM;MAAEC,KAAF;MAASC;IAAT,IAAmBF,MAAzB;IAEA,OAAO,KAAKP,MAAL,CAAYW,kBAAZ,CAA+B;MAClCH,KADkC;MAElCC,KAFkC;MAGlCC,mBAAmB,EAAE,KAAKN,sBAAL;IAHa,CAA/B,CAAP;EAKH;;AAvDkB"}
1
+ {"version":3,"names":["Converter","constructor","config","undefined","type","plugin","setConverterCollection","converters","WebinyError","getConverterCollection","getType","convertToStorage","params","field","value","converterCollection","convertFromStorage"],"sources":["Converter.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntryValues, CmsModelField } from \"~/types\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins\";\nimport { ConverterCollection } from \"./ConverterCollection\";\n\nexport interface CmsModelFieldWithParent extends CmsModelField {\n parent?: CmsModelFieldWithParent | null;\n}\n\ninterface ConverterConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n parent?: CmsModelFieldWithParent | null;\n}\nexport interface ConverterConfig {\n type: string;\n plugin: CmsModelFieldConverterPlugin;\n}\nexport class Converter {\n private readonly type: string;\n private readonly plugin: CmsModelFieldConverterPlugin;\n\n private converters: ConverterCollection | undefined = undefined;\n\n public constructor(config: ConverterConfig) {\n this.type = config.type;\n this.plugin = config.plugin;\n }\n\n public setConverterCollection(converters: ConverterCollection): void {\n if (this.converters) {\n throw new WebinyError(\n `Cannot attach converters collection more than once to Converter with type \"${this.type}\".`,\n \"CONVERTER_COLLECTION_ERROR\",\n {\n type: this.type\n }\n );\n }\n this.converters = converters;\n }\n\n public getConverterCollection(): ConverterCollection {\n if (!this.converters) {\n throw new WebinyError(\n `There is no ConverterCollection defined in the converter with type \"${this.type}\".`\n );\n }\n return this.converters;\n }\n\n public getType(): string {\n return this.type;\n }\n\n public convertToStorage(params: ConverterConvertParams): CmsEntryValues {\n const { field, value } = params;\n\n return this.plugin.convertToStorage({\n field,\n value,\n converterCollection: this.getConverterCollection()\n });\n }\n\n public convertFromStorage(params: ConverterConvertParams): CmsEntryValues {\n const { field, value } = params;\n\n return this.plugin.convertFromStorage({\n field,\n value,\n converterCollection: this.getConverterCollection()\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAkBO,MAAMA,SAAS,CAAC;EAMZC,WAAW,CAACC,MAAuB,EAAE;IAAA;IAAA;IAAA,kDAFUC,SAAS;IAG3D,IAAI,CAACC,IAAI,GAAGF,MAAM,CAACE,IAAI;IACvB,IAAI,CAACC,MAAM,GAAGH,MAAM,CAACG,MAAM;EAC/B;EAEOC,sBAAsB,CAACC,UAA+B,EAAQ;IACjE,IAAI,IAAI,CAACA,UAAU,EAAE;MACjB,MAAM,IAAIC,cAAW,CAChB,8EAA6E,IAAI,CAACJ,IAAK,IAAG,EAC3F,4BAA4B,EAC5B;QACIA,IAAI,EAAE,IAAI,CAACA;MACf,CAAC,CACJ;IACL;IACA,IAAI,CAACG,UAAU,GAAGA,UAAU;EAChC;EAEOE,sBAAsB,GAAwB;IACjD,IAAI,CAAC,IAAI,CAACF,UAAU,EAAE;MAClB,MAAM,IAAIC,cAAW,CAChB,uEAAsE,IAAI,CAACJ,IAAK,IAAG,CACvF;IACL;IACA,OAAO,IAAI,CAACG,UAAU;EAC1B;EAEOG,OAAO,GAAW;IACrB,OAAO,IAAI,CAACN,IAAI;EACpB;EAEOO,gBAAgB,CAACC,MAA8B,EAAkB;IACpE,MAAM;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGF,MAAM;IAE/B,OAAO,IAAI,CAACP,MAAM,CAACM,gBAAgB,CAAC;MAChCE,KAAK;MACLC,KAAK;MACLC,mBAAmB,EAAE,IAAI,CAACN,sBAAsB;IACpD,CAAC,CAAC;EACN;EAEOO,kBAAkB,CAACJ,MAA8B,EAAkB;IACtE,MAAM;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAGF,MAAM;IAE/B,OAAO,IAAI,CAACP,MAAM,CAACW,kBAAkB,CAAC;MAClCH,KAAK;MACLC,KAAK;MACLC,mBAAmB,EAAE,IAAI,CAACN,sBAAsB;IACpD,CAAC,CAAC;EACN;AACJ;AAAC"}
@@ -1,24 +1,16 @@
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.ConverterCollection = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
11
  var _Converter = require("./Converter");
17
-
18
12
  var _plugins = require("../../plugins");
19
-
20
13
  var _getBaseFieldType = require("../getBaseFieldType");
21
-
22
14
  class ConverterCollection {
23
15
  constructor(params) {
24
16
  (0, _defineProperty2.default)(this, "converters", new Map());
@@ -28,11 +20,9 @@ class ConverterCollection {
28
20
  const fieldGraphQLPlugins = plugins.byType("cms-model-field-to-graphql");
29
21
  const fieldConverterPlugins = plugins.byType(_plugins.CmsModelFieldConverterPlugin.type);
30
22
  const defaultFieldConverterPlugin = fieldConverterPlugins.find(pl => pl.getFieldType() === "*");
31
-
32
23
  if (defaultFieldConverterPlugin === undefined) {
33
24
  throw new _error.default(`Missing default field converter plugin.`, "DEFAULT_FIELD_CONVERTER_ERROR");
34
25
  }
35
-
36
26
  for (const fieldGraphQLPlugin of fieldGraphQLPlugins) {
37
27
  const plugin = fieldConverterPlugins.find(pl => pl.getFieldType() === fieldGraphQLPlugin.fieldType);
38
28
  const converter = new _Converter.Converter({
@@ -42,43 +32,34 @@ class ConverterCollection {
42
32
  this.addConverter(converter);
43
33
  }
44
34
  }
45
-
46
35
  addConverter(converter) {
47
36
  converter.setConverterCollection(this);
48
37
  this.converters.set(converter.getType(), converter);
49
38
  }
50
-
51
39
  getConverter(type) {
52
40
  const converter = this.converters.get(type);
53
-
54
41
  if (converter === undefined) {
55
42
  throw new _error.default(`Missing converter for field type "${type}".`, "CONVERTER_ERROR", {
56
43
  type
57
44
  });
58
45
  }
59
-
60
46
  return converter;
61
47
  }
62
-
63
48
  convertToStorage(params) {
64
49
  const {
65
50
  fields,
66
51
  values: inputValues
67
52
  } = params;
68
-
69
53
  if (inputValues === undefined) {
70
54
  return undefined;
71
55
  }
72
-
73
56
  this.attachHasOwnProperty(inputValues);
74
57
  return fields.reduce((output, field) => {
75
58
  const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
76
59
  const converter = this.getConverter(baseType);
77
-
78
60
  if (inputValues === null || inputValues.hasOwnProperty(field.fieldId) === false) {
79
61
  return output;
80
62
  }
81
-
82
63
  const values = converter.convertToStorage({
83
64
  field,
84
65
  value: inputValues[field.fieldId]
@@ -86,25 +67,20 @@ class ConverterCollection {
86
67
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), values);
87
68
  }, {});
88
69
  }
89
-
90
70
  convertFromStorage(params) {
91
71
  const {
92
72
  fields,
93
73
  values: inputValues
94
74
  } = params;
95
-
96
75
  if (inputValues === undefined) {
97
76
  return undefined;
98
77
  }
99
-
100
78
  return fields.reduce((output, field) => {
101
79
  const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
102
80
  const converter = this.getConverter(baseType);
103
-
104
81
  if (inputValues === null || inputValues.hasOwnProperty(field.storageId) === false) {
105
82
  return output;
106
83
  }
107
-
108
84
  const values = converter.convertFromStorage({
109
85
  field,
110
86
  value: inputValues[field.storageId]
@@ -112,23 +88,25 @@ class ConverterCollection {
112
88
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), values);
113
89
  }, {});
114
90
  }
91
+
115
92
  /**
116
93
  * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.
117
94
  * At that point, hasOwnProperty does not exist, and we need to add it.
118
95
  *
119
96
  * TODO add more checks if required
120
97
  */
121
-
122
-
123
98
  attachHasOwnProperty(values) {
124
- if ( // null or undefined?
125
- values === null || values === undefined || // not an object?
126
- typeof values !== "object" || // maybe it's an array?
127
- Array.isArray(values) || // and in the end, check if hasOwnProperty is a function already
99
+ if (
100
+ // null or undefined?
101
+ values === null || values === undefined ||
102
+ // not an object?
103
+ typeof values !== "object" ||
104
+ // maybe it's an array?
105
+ Array.isArray(values) ||
106
+ // and in the end, check if hasOwnProperty is a function already
128
107
  typeof (values === null || values === void 0 ? void 0 : values.hasOwnProperty) === "function") {
129
108
  return;
130
109
  }
131
-
132
110
  Object.defineProperty(values, "hasOwnProperty", {
133
111
  enumerable: false,
134
112
  writable: false,
@@ -137,7 +115,5 @@ class ConverterCollection {
137
115
  }
138
116
  });
139
117
  }
140
-
141
118
  }
142
-
143
119
  exports.ConverterCollection = ConverterCollection;
@@ -1 +1 @@
1
- {"version":3,"names":["ConverterCollection","constructor","params","Map","plugins","fieldGraphQLPlugins","byType","fieldConverterPlugins","CmsModelFieldConverterPlugin","type","defaultFieldConverterPlugin","find","pl","getFieldType","undefined","WebinyError","fieldGraphQLPlugin","plugin","fieldType","converter","Converter","addConverter","setConverterCollection","converters","set","getType","getConverter","get","convertToStorage","fields","values","inputValues","attachHasOwnProperty","reduce","output","field","baseType","getBaseFieldType","hasOwnProperty","fieldId","value","convertFromStorage","storageId","Array","isArray","Object","defineProperty","enumerable","writable","property"],"sources":["ConverterCollection.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Converter } from \"./Converter\";\nimport { CmsEntryValues, CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\nexport interface CmsModelFieldsWithParent extends CmsModelField {\n parent?: CmsModelField | null;\n}\n\nexport interface CmsModelConverterCallable {\n (params: ConverterCollectionConvertParams): CmsEntryValues;\n}\n\nexport interface ConverterCollectionConvertParams {\n fields: CmsModelFieldsWithParent[];\n values?: CmsEntryValues;\n}\n\nexport interface ConverterCollectionParams {\n plugins: PluginsContainer;\n}\n\nexport class ConverterCollection {\n private readonly converters: Map<string, Converter> = new Map();\n\n public constructor(params: ConverterCollectionParams) {\n const { plugins } = params;\n const fieldGraphQLPlugins = plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n const fieldConverterPlugins = plugins.byType<CmsModelFieldConverterPlugin>(\n CmsModelFieldConverterPlugin.type\n );\n const defaultFieldConverterPlugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === \"*\"\n );\n if (defaultFieldConverterPlugin === undefined) {\n throw new WebinyError(\n `Missing default field converter plugin.`,\n \"DEFAULT_FIELD_CONVERTER_ERROR\"\n );\n }\n for (const fieldGraphQLPlugin of fieldGraphQLPlugins) {\n const plugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === fieldGraphQLPlugin.fieldType\n );\n const converter = new Converter({\n type: fieldGraphQLPlugin.fieldType,\n plugin: plugin || defaultFieldConverterPlugin\n });\n\n this.addConverter(converter);\n }\n }\n\n public addConverter(converter: Converter): void {\n converter.setConverterCollection(this);\n this.converters.set(converter.getType(), converter);\n }\n\n public getConverter(type: string): Converter {\n const converter = this.converters.get(type);\n if (converter === undefined) {\n throw new WebinyError(\n `Missing converter for field type \"${type}\".`,\n \"CONVERTER_ERROR\",\n {\n type\n }\n );\n }\n return converter;\n }\n\n public convertToStorage(params: ConverterCollectionConvertParams): CmsEntryValues | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n this.attachHasOwnProperty(inputValues);\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const baseType = getBaseFieldType(field);\n const converter = this.getConverter(baseType);\n if (inputValues === null || inputValues.hasOwnProperty(field.fieldId) === false) {\n return output;\n }\n const values = converter.convertToStorage({\n field,\n value: inputValues[field.fieldId]\n });\n\n return {\n ...output,\n ...values\n };\n }, {});\n }\n\n public convertFromStorage(\n params: ConverterCollectionConvertParams\n ): CmsEntryValues | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n return fields.reduce((output, field) => {\n const baseType = getBaseFieldType(field);\n const converter = this.getConverter(baseType);\n if (inputValues === null || inputValues.hasOwnProperty(field.storageId) === false) {\n return output;\n }\n const values = converter.convertFromStorage({\n field,\n value: inputValues[field.storageId]\n });\n\n return {\n ...output,\n ...values\n };\n }, {});\n }\n\n /**\n * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.\n * At that point, hasOwnProperty does not exist, and we need to add it.\n *\n * TODO add more checks if required\n */\n private attachHasOwnProperty(values: CmsEntryValues) {\n if (\n // null or undefined?\n values === null ||\n values === undefined ||\n // not an object?\n typeof values !== \"object\" ||\n // maybe it's an array?\n Array.isArray(values) ||\n // and in the end, check if hasOwnProperty is a function already\n typeof values?.hasOwnProperty === \"function\"\n ) {\n return;\n }\n Object.defineProperty(values, \"hasOwnProperty\", {\n enumerable: false,\n writable: false,\n value: function (property: string) {\n return this[property] !== undefined;\n }\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ConverterCollection","constructor","params","Map","plugins","fieldGraphQLPlugins","byType","fieldConverterPlugins","CmsModelFieldConverterPlugin","type","defaultFieldConverterPlugin","find","pl","getFieldType","undefined","WebinyError","fieldGraphQLPlugin","plugin","fieldType","converter","Converter","addConverter","setConverterCollection","converters","set","getType","getConverter","get","convertToStorage","fields","values","inputValues","attachHasOwnProperty","reduce","output","field","baseType","getBaseFieldType","hasOwnProperty","fieldId","value","convertFromStorage","storageId","Array","isArray","Object","defineProperty","enumerable","writable","property"],"sources":["ConverterCollection.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { Converter } from \"./Converter\";\nimport { CmsEntryValues, CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { CmsModelFieldConverterPlugin } from \"~/plugins\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\nexport interface CmsModelFieldsWithParent extends CmsModelField {\n parent?: CmsModelField | null;\n}\n\nexport interface CmsModelConverterCallable {\n (params: ConverterCollectionConvertParams): CmsEntryValues;\n}\n\nexport interface ConverterCollectionConvertParams {\n fields: CmsModelFieldsWithParent[];\n values?: CmsEntryValues;\n}\n\nexport interface ConverterCollectionParams {\n plugins: PluginsContainer;\n}\n\nexport class ConverterCollection {\n private readonly converters: Map<string, Converter> = new Map();\n\n public constructor(params: ConverterCollectionParams) {\n const { plugins } = params;\n const fieldGraphQLPlugins = plugins.byType<CmsModelFieldToGraphQLPlugin>(\n \"cms-model-field-to-graphql\"\n );\n const fieldConverterPlugins = plugins.byType<CmsModelFieldConverterPlugin>(\n CmsModelFieldConverterPlugin.type\n );\n const defaultFieldConverterPlugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === \"*\"\n );\n if (defaultFieldConverterPlugin === undefined) {\n throw new WebinyError(\n `Missing default field converter plugin.`,\n \"DEFAULT_FIELD_CONVERTER_ERROR\"\n );\n }\n for (const fieldGraphQLPlugin of fieldGraphQLPlugins) {\n const plugin = fieldConverterPlugins.find(\n pl => pl.getFieldType() === fieldGraphQLPlugin.fieldType\n );\n const converter = new Converter({\n type: fieldGraphQLPlugin.fieldType,\n plugin: plugin || defaultFieldConverterPlugin\n });\n\n this.addConverter(converter);\n }\n }\n\n public addConverter(converter: Converter): void {\n converter.setConverterCollection(this);\n this.converters.set(converter.getType(), converter);\n }\n\n public getConverter(type: string): Converter {\n const converter = this.converters.get(type);\n if (converter === undefined) {\n throw new WebinyError(\n `Missing converter for field type \"${type}\".`,\n \"CONVERTER_ERROR\",\n {\n type\n }\n );\n }\n return converter;\n }\n\n public convertToStorage(params: ConverterCollectionConvertParams): CmsEntryValues | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n this.attachHasOwnProperty(inputValues);\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const baseType = getBaseFieldType(field);\n const converter = this.getConverter(baseType);\n if (inputValues === null || inputValues.hasOwnProperty(field.fieldId) === false) {\n return output;\n }\n const values = converter.convertToStorage({\n field,\n value: inputValues[field.fieldId]\n });\n\n return {\n ...output,\n ...values\n };\n }, {});\n }\n\n public convertFromStorage(\n params: ConverterCollectionConvertParams\n ): CmsEntryValues | undefined {\n const { fields, values: inputValues } = params;\n if (inputValues === undefined) {\n return undefined;\n }\n\n return fields.reduce((output, field) => {\n const baseType = getBaseFieldType(field);\n const converter = this.getConverter(baseType);\n if (inputValues === null || inputValues.hasOwnProperty(field.storageId) === false) {\n return output;\n }\n const values = converter.convertFromStorage({\n field,\n value: inputValues[field.storageId]\n });\n\n return {\n ...output,\n ...values\n };\n }, {});\n }\n\n /**\n * This method attaches hasOwnProperty when received object was created via Object.create(null) - no inheritance of Object.\n * At that point, hasOwnProperty does not exist, and we need to add it.\n *\n * TODO add more checks if required\n */\n private attachHasOwnProperty(values: CmsEntryValues) {\n if (\n // null or undefined?\n values === null ||\n values === undefined ||\n // not an object?\n typeof values !== \"object\" ||\n // maybe it's an array?\n Array.isArray(values) ||\n // and in the end, check if hasOwnProperty is a function already\n typeof values?.hasOwnProperty === \"function\"\n ) {\n return;\n }\n Object.defineProperty(values, \"hasOwnProperty\", {\n enumerable: false,\n writable: false,\n value: function (property: string) {\n return this[property] !== undefined;\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -1,28 +1,20 @@
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.createValueKeyToStorageConverter = exports.createValueKeyFromStorageConverter = exports.attachCmsModelFieldConverters = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
9
  var _ConverterCollection = require("./ConverterCollection");
13
-
14
10
  var _semver = _interopRequireDefault(require("semver"));
15
-
16
11
  const featureVersion = _semver.default.coerce("5.33.0");
17
-
18
12
  const isBetaOrNext = model => {
19
13
  if (!model.webinyVersion) {
20
14
  return false;
21
15
  }
22
-
23
16
  return model.webinyVersion.match(/next|beta/) !== null;
24
17
  };
25
-
26
18
  const isFeatureEnabled = model => {
27
19
  /**
28
20
  * In case of disabled webinyVersion value, we disable this feature.
@@ -34,16 +26,12 @@ const isFeatureEnabled = model => {
34
26
  /**
35
27
  * If is a test environment, always have this turned on.
36
28
  */
37
-
38
-
39
29
  if (process.env.NODE_ENV === "test" || isBetaOrNext(model) === true) {
40
30
  return true;
41
31
  }
42
32
  /**
43
33
  * Possibility that the version is not defined, this means it is a quite old system where models did not change.
44
34
  */
45
-
46
-
47
35
  if (!model.webinyVersion) {
48
36
  return false;
49
37
  }
@@ -52,26 +40,20 @@ const isFeatureEnabled = model => {
52
40
  *
53
41
  * TODO change if necessary after the update to the system
54
42
  */
55
-
56
-
57
43
  const modelVersion = _semver.default.coerce(model.webinyVersion);
58
-
59
44
  if (!modelVersion) {
60
45
  console.log(`Warning: Model "${model.modelId}" does not have valid Webiny version set.`);
61
46
  return true;
62
47
  } else if (_semver.default.compare(modelVersion, featureVersion) === -1) {
63
48
  return false;
64
49
  }
65
-
66
50
  return true;
67
51
  };
68
-
69
52
  const createValueKeyToStorageConverter = params => {
70
53
  const {
71
54
  plugins,
72
55
  model
73
56
  } = params;
74
-
75
57
  if (isFeatureEnabled(model) === false) {
76
58
  return ({
77
59
  values
@@ -79,7 +61,6 @@ const createValueKeyToStorageConverter = params => {
79
61
  return values || {};
80
62
  };
81
63
  }
82
-
83
64
  const converters = new _ConverterCollection.ConverterCollection({
84
65
  plugins
85
66
  });
@@ -94,15 +75,12 @@ const createValueKeyToStorageConverter = params => {
94
75
  return result || {};
95
76
  };
96
77
  };
97
-
98
78
  exports.createValueKeyToStorageConverter = createValueKeyToStorageConverter;
99
-
100
79
  const createValueKeyFromStorageConverter = params => {
101
80
  const {
102
81
  plugins,
103
82
  model
104
83
  } = params;
105
-
106
84
  if (isFeatureEnabled(model) === false) {
107
85
  return ({
108
86
  values
@@ -110,7 +88,6 @@ const createValueKeyFromStorageConverter = params => {
110
88
  return values || {};
111
89
  };
112
90
  }
113
-
114
91
  const converters = new _ConverterCollection.ConverterCollection({
115
92
  plugins
116
93
  });
@@ -125,9 +102,7 @@ const createValueKeyFromStorageConverter = params => {
125
102
  return result || {};
126
103
  };
127
104
  };
128
-
129
105
  exports.createValueKeyFromStorageConverter = createValueKeyFromStorageConverter;
130
-
131
106
  const attachCmsModelFieldConverters = params => {
132
107
  const {
133
108
  model,
@@ -144,5 +119,4 @@ const attachCmsModelFieldConverters = params => {
144
119
  })
145
120
  });
146
121
  };
147
-
148
122
  exports.attachCmsModelFieldConverters = attachCmsModelFieldConverters;
@@ -1 +1 @@
1
- {"version":3,"names":["featureVersion","semver","coerce","isBetaOrNext","model","webinyVersion","match","isFeatureEnabled","process","env","NODE_ENV","modelVersion","console","log","modelId","compare","createValueKeyToStorageConverter","params","plugins","values","converters","ConverterCollection","fields","result","convertToStorage","createValueKeyFromStorageConverter","convertFromStorage","attachCmsModelFieldConverters","convertValueKeyToStorage","convertValueKeyFromStorage"],"sources":["valueKeyStorageConverter.ts"],"sourcesContent":["import { PluginsContainer } from \"@webiny/plugins\";\nimport {\n CmsModelConverterCallable,\n ConverterCollection,\n ConverterCollectionConvertParams as BaseConverterCollectionConvertParams\n} from \"~/utils/converters/ConverterCollection\";\nimport { CmsModel, StorageOperationsCmsModel } from \"~/types\";\nimport semver, { SemVer } from \"semver\";\n\nconst featureVersion = semver.coerce(\"5.33.0\") as SemVer;\n\nconst isBetaOrNext = (model: CmsModel): boolean => {\n if (!model.webinyVersion) {\n return false;\n }\n return model.webinyVersion.match(/next|beta/) !== null;\n};\n\nconst isFeatureEnabled = (model: CmsModel): boolean => {\n /**\n * In case of disabled webinyVersion value, we disable this feature.\n * This is only for testing...\n */\n if (model.webinyVersion === \"disable\") {\n return false;\n }\n /**\n * If is a test environment, always have this turned on.\n */\n if (process.env.NODE_ENV === \"test\" || isBetaOrNext(model) === true) {\n return true;\n }\n /**\n * Possibility that the version is not defined, this means it is a quite old system where models did not change.\n */\n if (!model.webinyVersion) {\n return false;\n }\n /**\n * In case feature version value is greater than the model version, feature is not enabled as it is an older model with no storageId.\n *\n * TODO change if necessary after the update to the system\n */\n const modelVersion = semver.coerce(model.webinyVersion);\n if (!modelVersion) {\n console.log(`Warning: Model \"${model.modelId}\" does not have valid Webiny version set.`);\n return true;\n } else if (semver.compare(modelVersion, featureVersion) === -1) {\n return false;\n }\n return true;\n};\n\ninterface Params {\n /**\n * We need a model to determine if the conversion feature is enabled.\n */\n model: CmsModel;\n plugins: PluginsContainer;\n}\n\n/**\n * In the first call of the converter we do not need the fields property as it will be taken directly from the model.\n */\ninterface ConverterCollectionConvertParams\n extends Omit<BaseConverterCollectionConvertParams, \"fields\"> {\n fields?: BaseConverterCollectionConvertParams[\"fields\"];\n}\n\nexport const createValueKeyToStorageConverter = (params: Params): CmsModelConverterCallable => {\n const { plugins, model } = params;\n\n if (isFeatureEnabled(model) === false) {\n return ({ values }: ConverterCollectionConvertParams) => {\n return values || {};\n };\n }\n\n const converters = new ConverterCollection({\n plugins\n });\n\n return ({ fields, values }: ConverterCollectionConvertParams) => {\n const result = converters.convertToStorage({\n fields: fields || model.fields,\n values\n });\n return result || {};\n };\n};\n\nexport const createValueKeyFromStorageConverter = (params: Params): CmsModelConverterCallable => {\n const { plugins, model } = params;\n\n if (isFeatureEnabled(model) === false) {\n return ({ values }: ConverterCollectionConvertParams) => {\n return values || {};\n };\n }\n\n const converters = new ConverterCollection({\n plugins\n });\n\n return ({ fields, values }: ConverterCollectionConvertParams) => {\n const result = converters.convertFromStorage({\n fields: fields || model.fields,\n values\n });\n return result || {};\n };\n};\n\ninterface AttachConvertersParams {\n plugins: PluginsContainer;\n model: CmsModel;\n}\nexport const attachCmsModelFieldConverters = (\n params: AttachConvertersParams\n): StorageOperationsCmsModel => {\n const { model, plugins } = params;\n return {\n ...model,\n convertValueKeyToStorage: createValueKeyToStorageConverter({\n model,\n plugins\n }),\n convertValueKeyFromStorage: createValueKeyFromStorageConverter({\n model,\n plugins\n })\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["featureVersion","semver","coerce","isBetaOrNext","model","webinyVersion","match","isFeatureEnabled","process","env","NODE_ENV","modelVersion","console","log","modelId","compare","createValueKeyToStorageConverter","params","plugins","values","converters","ConverterCollection","fields","result","convertToStorage","createValueKeyFromStorageConverter","convertFromStorage","attachCmsModelFieldConverters","convertValueKeyToStorage","convertValueKeyFromStorage"],"sources":["valueKeyStorageConverter.ts"],"sourcesContent":["import { PluginsContainer } from \"@webiny/plugins\";\nimport {\n CmsModelConverterCallable,\n ConverterCollection,\n ConverterCollectionConvertParams as BaseConverterCollectionConvertParams\n} from \"~/utils/converters/ConverterCollection\";\nimport { CmsModel, StorageOperationsCmsModel } from \"~/types\";\nimport semver, { SemVer } from \"semver\";\n\nconst featureVersion = semver.coerce(\"5.33.0\") as SemVer;\n\nconst isBetaOrNext = (model: CmsModel): boolean => {\n if (!model.webinyVersion) {\n return false;\n }\n return model.webinyVersion.match(/next|beta/) !== null;\n};\n\nconst isFeatureEnabled = (model: CmsModel): boolean => {\n /**\n * In case of disabled webinyVersion value, we disable this feature.\n * This is only for testing...\n */\n if (model.webinyVersion === \"disable\") {\n return false;\n }\n /**\n * If is a test environment, always have this turned on.\n */\n if (process.env.NODE_ENV === \"test\" || isBetaOrNext(model) === true) {\n return true;\n }\n /**\n * Possibility that the version is not defined, this means it is a quite old system where models did not change.\n */\n if (!model.webinyVersion) {\n return false;\n }\n /**\n * In case feature version value is greater than the model version, feature is not enabled as it is an older model with no storageId.\n *\n * TODO change if necessary after the update to the system\n */\n const modelVersion = semver.coerce(model.webinyVersion);\n if (!modelVersion) {\n console.log(`Warning: Model \"${model.modelId}\" does not have valid Webiny version set.`);\n return true;\n } else if (semver.compare(modelVersion, featureVersion) === -1) {\n return false;\n }\n return true;\n};\n\ninterface Params {\n /**\n * We need a model to determine if the conversion feature is enabled.\n */\n model: CmsModel;\n plugins: PluginsContainer;\n}\n\n/**\n * In the first call of the converter we do not need the fields property as it will be taken directly from the model.\n */\ninterface ConverterCollectionConvertParams\n extends Omit<BaseConverterCollectionConvertParams, \"fields\"> {\n fields?: BaseConverterCollectionConvertParams[\"fields\"];\n}\n\nexport const createValueKeyToStorageConverter = (params: Params): CmsModelConverterCallable => {\n const { plugins, model } = params;\n\n if (isFeatureEnabled(model) === false) {\n return ({ values }: ConverterCollectionConvertParams) => {\n return values || {};\n };\n }\n\n const converters = new ConverterCollection({\n plugins\n });\n\n return ({ fields, values }: ConverterCollectionConvertParams) => {\n const result = converters.convertToStorage({\n fields: fields || model.fields,\n values\n });\n return result || {};\n };\n};\n\nexport const createValueKeyFromStorageConverter = (params: Params): CmsModelConverterCallable => {\n const { plugins, model } = params;\n\n if (isFeatureEnabled(model) === false) {\n return ({ values }: ConverterCollectionConvertParams) => {\n return values || {};\n };\n }\n\n const converters = new ConverterCollection({\n plugins\n });\n\n return ({ fields, values }: ConverterCollectionConvertParams) => {\n const result = converters.convertFromStorage({\n fields: fields || model.fields,\n values\n });\n return result || {};\n };\n};\n\ninterface AttachConvertersParams {\n plugins: PluginsContainer;\n model: CmsModel;\n}\nexport const attachCmsModelFieldConverters = (\n params: AttachConvertersParams\n): StorageOperationsCmsModel => {\n const { model, plugins } = params;\n return {\n ...model,\n convertValueKeyToStorage: createValueKeyToStorageConverter({\n model,\n plugins\n }),\n convertValueKeyFromStorage: createValueKeyFromStorageConverter({\n model,\n plugins\n })\n };\n};\n"],"mappings":";;;;;;;;AACA;AAMA;AAEA,MAAMA,cAAc,GAAGC,eAAM,CAACC,MAAM,CAAC,QAAQ,CAAW;AAExD,MAAMC,YAAY,GAAIC,KAAe,IAAc;EAC/C,IAAI,CAACA,KAAK,CAACC,aAAa,EAAE;IACtB,OAAO,KAAK;EAChB;EACA,OAAOD,KAAK,CAACC,aAAa,CAACC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI;AAC1D,CAAC;AAED,MAAMC,gBAAgB,GAAIH,KAAe,IAAc;EACnD;AACJ;AACA;AACA;EACI,IAAIA,KAAK,CAACC,aAAa,KAAK,SAAS,EAAE;IACnC,OAAO,KAAK;EAChB;EACA;AACJ;AACA;EACI,IAAIG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,IAAIP,YAAY,CAACC,KAAK,CAAC,KAAK,IAAI,EAAE;IACjE,OAAO,IAAI;EACf;EACA;AACJ;AACA;EACI,IAAI,CAACA,KAAK,CAACC,aAAa,EAAE;IACtB,OAAO,KAAK;EAChB;EACA;AACJ;AACA;AACA;AACA;EACI,MAAMM,YAAY,GAAGV,eAAM,CAACC,MAAM,CAACE,KAAK,CAACC,aAAa,CAAC;EACvD,IAAI,CAACM,YAAY,EAAE;IACfC,OAAO,CAACC,GAAG,CAAE,mBAAkBT,KAAK,CAACU,OAAQ,2CAA0C,CAAC;IACxF,OAAO,IAAI;EACf,CAAC,MAAM,IAAIb,eAAM,CAACc,OAAO,CAACJ,YAAY,EAAEX,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;IAC5D,OAAO,KAAK;EAChB;EACA,OAAO,IAAI;AACf,CAAC;AAkBM,MAAMgB,gCAAgC,GAAIC,MAAc,IAAgC;EAC3F,MAAM;IAAEC,OAAO;IAAEd;EAAM,CAAC,GAAGa,MAAM;EAEjC,IAAIV,gBAAgB,CAACH,KAAK,CAAC,KAAK,KAAK,EAAE;IACnC,OAAO,CAAC;MAAEe;IAAyC,CAAC,KAAK;MACrD,OAAOA,MAAM,IAAI,CAAC,CAAC;IACvB,CAAC;EACL;EAEA,MAAMC,UAAU,GAAG,IAAIC,wCAAmB,CAAC;IACvCH;EACJ,CAAC,CAAC;EAEF,OAAO,CAAC;IAAEI,MAAM;IAAEH;EAAyC,CAAC,KAAK;IAC7D,MAAMI,MAAM,GAAGH,UAAU,CAACI,gBAAgB,CAAC;MACvCF,MAAM,EAAEA,MAAM,IAAIlB,KAAK,CAACkB,MAAM;MAC9BH;IACJ,CAAC,CAAC;IACF,OAAOI,MAAM,IAAI,CAAC,CAAC;EACvB,CAAC;AACL,CAAC;AAAC;AAEK,MAAME,kCAAkC,GAAIR,MAAc,IAAgC;EAC7F,MAAM;IAAEC,OAAO;IAAEd;EAAM,CAAC,GAAGa,MAAM;EAEjC,IAAIV,gBAAgB,CAACH,KAAK,CAAC,KAAK,KAAK,EAAE;IACnC,OAAO,CAAC;MAAEe;IAAyC,CAAC,KAAK;MACrD,OAAOA,MAAM,IAAI,CAAC,CAAC;IACvB,CAAC;EACL;EAEA,MAAMC,UAAU,GAAG,IAAIC,wCAAmB,CAAC;IACvCH;EACJ,CAAC,CAAC;EAEF,OAAO,CAAC;IAAEI,MAAM;IAAEH;EAAyC,CAAC,KAAK;IAC7D,MAAMI,MAAM,GAAGH,UAAU,CAACM,kBAAkB,CAAC;MACzCJ,MAAM,EAAEA,MAAM,IAAIlB,KAAK,CAACkB,MAAM;MAC9BH;IACJ,CAAC,CAAC;IACF,OAAOI,MAAM,IAAI,CAAC,CAAC;EACvB,CAAC;AACL,CAAC;AAAC;AAMK,MAAMI,6BAA6B,GACtCV,MAA8B,IACF;EAC5B,MAAM;IAAEb,KAAK;IAAEc;EAAQ,CAAC,GAAGD,MAAM;EACjC,mEACOb,KAAK;IACRwB,wBAAwB,EAAEZ,gCAAgC,CAAC;MACvDZ,KAAK;MACLc;IACJ,CAAC,CAAC;IACFW,0BAA0B,EAAEJ,kCAAkC,CAAC;MAC3DrB,KAAK;MACLc;IACJ,CAAC;EAAC;AAEV,CAAC;AAAC"}
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createTypeFromFields = void 0;
7
-
8
7
  var _createTypeName = require("./createTypeName");
9
-
10
8
  var _renderFields = require("./renderFields");
11
-
12
9
  var _renderInputFields = require("./renderInputFields");
13
-
14
10
  const createTypeFromFields = params => {
15
11
  const {
16
12
  typeOfType,
@@ -23,14 +19,14 @@ const createTypeFromFields = params => {
23
19
  const typeSuffix = typeOfType === "input" ? "Input" : "";
24
20
  const mTypeName = (0, _createTypeName.createTypeName)(model.modelId);
25
21
  const typeFields = [];
26
- const nestedTypes = []; // Once the loop below starts, we'll be executing a recursive "object" type generation.
22
+ const nestedTypes = [];
23
+
24
+ // Once the loop below starts, we'll be executing a recursive "object" type generation.
27
25
  // The main trick here is that nested objects don't know who the parent is, and will generate
28
26
  // type names using the "model", as if they're at the top level:
29
27
  // Every time the types are returned, we need to replace the model name in the generated type name
30
28
  // with the actual prefix which includes parent field name type.
31
-
32
29
  const replace = new RegExp(`${mTypeName}_`, "g");
33
-
34
30
  for (const f of fields) {
35
31
  const result = typeOfType === "type" ? (0, _renderFields.renderField)({
36
32
  field: f,
@@ -42,27 +38,21 @@ const createTypeFromFields = params => {
42
38
  model,
43
39
  fieldTypePlugins
44
40
  });
45
-
46
41
  if (!result) {
47
42
  continue;
48
43
  }
49
-
50
44
  const {
51
45
  fields,
52
46
  typeDefs
53
47
  } = result;
54
48
  typeFields.push(fields.replace(replace, `${typeNamePrefix}_`));
55
-
56
49
  if (typeDefs) {
57
50
  nestedTypes.push(typeDefs.replace(replace, `${typeNamePrefix}_`));
58
51
  }
59
52
  }
60
-
61
53
  return {
62
54
  fieldType: `${typeNamePrefix}${typeSuffix}`,
63
- typeDefs:
64
- /* GraphQL */
65
- `
55
+ typeDefs: /* GraphQL */`
66
56
  ${nestedTypes.join("\n")}
67
57
 
68
58
  ${typeOfType} ${typeNamePrefix}${typeSuffix} {
@@ -71,5 +61,4 @@ const createTypeFromFields = params => {
71
61
  `
72
62
  };
73
63
  };
74
-
75
64
  exports.createTypeFromFields = createTypeFromFields;