@webiny/api-headless-cms 0.0.0-unstable.611c5af35e → 0.0.0-unstable.615a930a68

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 (277) hide show
  1. package/context.js +15 -0
  2. package/context.js.map +1 -1
  3. package/crud/contentEntry/afterDelete.js +5 -0
  4. package/crud/contentEntry/afterDelete.js.map +1 -1
  5. package/crud/contentEntry/beforeCreate.js +3 -0
  6. package/crud/contentEntry/beforeCreate.js.map +1 -1
  7. package/crud/contentEntry/beforeUpdate.js +3 -0
  8. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  9. package/crud/contentEntry/entryDataValidation.js +40 -1
  10. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  11. package/crud/contentEntry/markLockedFields.js +25 -2
  12. package/crud/contentEntry/markLockedFields.js.map +1 -1
  13. package/crud/contentEntry/referenceFieldsMapping.js +59 -5
  14. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  15. package/crud/contentEntry/searchableFields.d.ts +9 -0
  16. package/crud/contentEntry/searchableFields.js +83 -0
  17. package/crud/contentEntry/searchableFields.js.map +1 -0
  18. package/crud/contentEntry.crud.js +146 -55
  19. package/crud/contentEntry.crud.js.map +1 -1
  20. package/crud/contentModel/afterCreate.js +2 -0
  21. package/crud/contentModel/afterCreate.js.map +1 -1
  22. package/crud/contentModel/afterCreateFrom.js +2 -0
  23. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  24. package/crud/contentModel/afterDelete.js +2 -0
  25. package/crud/contentModel/afterDelete.js.map +1 -1
  26. package/crud/contentModel/afterUpdate.js +2 -0
  27. package/crud/contentModel/afterUpdate.js.map +1 -1
  28. package/crud/contentModel/beforeCreate.js +32 -4
  29. package/crud/contentModel/beforeCreate.js.map +1 -1
  30. package/crud/contentModel/beforeDelete.js +10 -0
  31. package/crud/contentModel/beforeDelete.js.map +1 -1
  32. package/crud/contentModel/beforeUpdate.js +5 -0
  33. package/crud/contentModel/beforeUpdate.js.map +1 -1
  34. package/crud/contentModel/contentModelManagerFactory.js +7 -0
  35. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  36. package/crud/contentModel/createFieldModels.js +6 -0
  37. package/crud/contentModel/createFieldModels.js.map +1 -1
  38. package/crud/contentModel/createFieldStorageId.js +2 -0
  39. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  40. package/crud/contentModel/fieldIdValidation.js +5 -0
  41. package/crud/contentModel/fieldIdValidation.js.map +1 -1
  42. package/crud/contentModel/idValidation.js +5 -0
  43. package/crud/contentModel/idValidation.js.map +1 -1
  44. package/crud/contentModel/models.js +8 -1
  45. package/crud/contentModel/models.js.map +1 -1
  46. package/crud/contentModel/systemFields.js.map +1 -1
  47. package/crud/contentModel/validateLayout.js +8 -0
  48. package/crud/contentModel/validateLayout.js.map +1 -1
  49. package/crud/contentModel/validateModel.js +8 -0
  50. package/crud/contentModel/validateModel.js.map +1 -1
  51. package/crud/contentModel/validateModelFields.js +60 -8
  52. package/crud/contentModel/validateModelFields.js.map +1 -1
  53. package/crud/contentModel.crud.js +96 -11
  54. package/crud/contentModel.crud.js.map +1 -1
  55. package/crud/contentModelGroup/beforeCreate.js +12 -0
  56. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  57. package/crud/contentModelGroup/beforeDelete.js +8 -0
  58. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  59. package/crud/contentModelGroup/beforeUpdate.js +5 -0
  60. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  61. package/crud/contentModelGroup.crud.js +47 -10
  62. package/crud/contentModelGroup.crud.js.map +1 -1
  63. package/crud/index.js +16 -0
  64. package/crud/index.js.map +1 -1
  65. package/crud/settings.crud.js +12 -0
  66. package/crud/settings.crud.js.map +1 -1
  67. package/crud/system.crud.js +37 -2
  68. package/crud/system.crud.js.map +1 -1
  69. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +13 -0
  70. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  71. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +53 -0
  72. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  73. package/fieldConverters/index.js +4 -0
  74. package/fieldConverters/index.js.map +1 -1
  75. package/graphql/buildSchemaPlugins.js +9 -5
  76. package/graphql/buildSchemaPlugins.js.map +1 -1
  77. package/graphql/graphQLHandlerFactory.js +28 -3
  78. package/graphql/graphQLHandlerFactory.js.map +1 -1
  79. package/graphql/index.js +8 -1
  80. package/graphql/index.js.map +1 -1
  81. package/graphql/schema/baseContentSchema.js +9 -1
  82. package/graphql/schema/baseContentSchema.js.map +1 -1
  83. package/graphql/schema/contentEntries.js +42 -2
  84. package/graphql/schema/contentEntries.js.map +1 -1
  85. package/graphql/schema/contentModelGroups.js +19 -2
  86. package/graphql/schema/contentModelGroups.js.map +1 -1
  87. package/graphql/schema/contentModels.js +18 -2
  88. package/graphql/schema/contentModels.js.map +1 -1
  89. package/graphql/schema/createFieldResolvers.js +21 -3
  90. package/graphql/schema/createFieldResolvers.js.map +1 -1
  91. package/graphql/schema/createManageResolvers.js +26 -0
  92. package/graphql/schema/createManageResolvers.js.map +1 -1
  93. package/graphql/schema/createManageSDL.js +17 -2
  94. package/graphql/schema/createManageSDL.js.map +1 -1
  95. package/graphql/schema/createPreviewResolvers.js +10 -0
  96. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  97. package/graphql/schema/createReadResolvers.js +10 -0
  98. package/graphql/schema/createReadResolvers.js.map +1 -1
  99. package/graphql/schema/createReadSDL.js +13 -1
  100. package/graphql/schema/createReadSDL.js.map +1 -1
  101. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -0
  102. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  103. package/graphql/schema/resolvers/manage/resolveCreate.js +3 -0
  104. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  105. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +3 -0
  106. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  107. package/graphql/schema/resolvers/manage/resolveDelete.js +6 -0
  108. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  109. package/graphql/schema/resolvers/manage/resolveGet.js +16 -0
  110. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  111. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -0
  112. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  113. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -0
  114. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  115. package/graphql/schema/resolvers/manage/resolveList.js +3 -0
  116. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  117. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -0
  118. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  119. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -0
  120. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  121. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -0
  122. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  123. package/graphql/schema/resolvers/manage/resolveUpdate.js +3 -0
  124. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  125. package/graphql/schema/resolvers/preview/resolveGet.js +8 -0
  126. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  127. package/graphql/schema/resolvers/preview/resolveList.js +3 -0
  128. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  129. package/graphql/schema/resolvers/read/resolveGet.js +8 -0
  130. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  131. package/graphql/schema/resolvers/read/resolveList.js +3 -0
  132. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  133. package/graphql/schema/schemaPlugins.js +19 -5
  134. package/graphql/schema/schemaPlugins.js.map +1 -1
  135. package/graphql/system.js +14 -1
  136. package/graphql/system.js.map +1 -1
  137. package/graphqlFields/boolean.js +12 -0
  138. package/graphqlFields/boolean.js.map +1 -1
  139. package/graphqlFields/datetime.js +17 -0
  140. package/graphqlFields/datetime.js.map +1 -1
  141. package/graphqlFields/file.js +8 -0
  142. package/graphqlFields/file.js.map +1 -1
  143. package/graphqlFields/helpers.js +10 -0
  144. package/graphqlFields/helpers.js.map +1 -1
  145. package/graphqlFields/index.js +11 -0
  146. package/graphqlFields/index.js.map +1 -1
  147. package/graphqlFields/longText.js +10 -0
  148. package/graphqlFields/longText.js.map +1 -1
  149. package/graphqlFields/number.js +16 -0
  150. package/graphqlFields/number.js.map +1 -1
  151. package/graphqlFields/object.js +137 -21
  152. package/graphqlFields/object.js.map +1 -1
  153. package/graphqlFields/ref.js +51 -17
  154. package/graphqlFields/ref.js.map +1 -1
  155. package/graphqlFields/richText.js +9 -0
  156. package/graphqlFields/richText.js.map +1 -1
  157. package/graphqlFields/text.js +11 -0
  158. package/graphqlFields/text.js.map +1 -1
  159. package/index.js +19 -0
  160. package/index.js.map +1 -1
  161. package/modelManager/DefaultCmsModelManager.js +16 -0
  162. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  163. package/modelManager/index.js +4 -0
  164. package/modelManager/index.js.map +1 -1
  165. package/package.json +24 -24
  166. package/parameters/context.js +4 -0
  167. package/parameters/context.js.map +1 -1
  168. package/parameters/header.js +11 -0
  169. package/parameters/header.js.map +1 -1
  170. package/parameters/index.js +8 -0
  171. package/parameters/index.js.map +1 -1
  172. package/parameters/manual.js +8 -1
  173. package/parameters/manual.js.map +1 -1
  174. package/parameters/path.js +11 -0
  175. package/parameters/path.js.map +1 -1
  176. package/plugins/CmsGroupPlugin.js +8 -0
  177. package/plugins/CmsGroupPlugin.js.map +1 -1
  178. package/plugins/CmsModelFieldConverterPlugin.js +5 -0
  179. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  180. package/plugins/CmsModelPlugin.js +38 -2
  181. package/plugins/CmsModelPlugin.js.map +1 -1
  182. package/plugins/CmsParametersPlugin.js +7 -0
  183. package/plugins/CmsParametersPlugin.js.map +1 -1
  184. package/plugins/StorageTransformPlugin.d.ts +1 -1
  185. package/plugins/StorageTransformPlugin.js +9 -0
  186. package/plugins/StorageTransformPlugin.js.map +1 -1
  187. package/plugins/index.js +10 -0
  188. package/plugins/index.js.map +1 -1
  189. package/storage/default.js +3 -0
  190. package/storage/default.js.map +1 -1
  191. package/storage/object.js +18 -0
  192. package/storage/object.js.map +1 -1
  193. package/types.d.ts +9 -1
  194. package/types.js +62 -0
  195. package/types.js.map +1 -1
  196. package/upgrades/5.33.0/index.js +26 -3
  197. package/upgrades/5.33.0/index.js.map +1 -1
  198. package/upgrades/index.js +3 -0
  199. package/upgrades/index.js.map +1 -1
  200. package/utils/access.js +25 -11
  201. package/utils/access.js.map +1 -1
  202. package/utils/converters/Converter.js +13 -0
  203. package/utils/converters/Converter.js.map +1 -1
  204. package/utils/converters/ConverterCollection.js +32 -9
  205. package/utils/converters/ConverterCollection.js.map +1 -1
  206. package/utils/converters/valueKeyStorageConverter.js +26 -0
  207. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  208. package/utils/createTypeName.js +8 -0
  209. package/utils/createTypeName.js.map +1 -1
  210. package/utils/entryStorage.js +26 -10
  211. package/utils/entryStorage.js.map +1 -1
  212. package/utils/filterAsync.js +5 -0
  213. package/utils/filterAsync.js.map +1 -1
  214. package/utils/filterModelFields.js +9 -3
  215. package/utils/filterModelFields.js.map +1 -1
  216. package/utils/getEntryTitle.js +9 -0
  217. package/utils/getEntryTitle.js.map +1 -1
  218. package/utils/getSchemaFromFieldPlugins.js +6 -2
  219. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  220. package/utils/ownership.js +8 -0
  221. package/utils/ownership.js.map +1 -1
  222. package/utils/permissions.js +23 -8
  223. package/utils/permissions.js.map +1 -1
  224. package/utils/pluralizedTypeName.js +6 -0
  225. package/utils/pluralizedTypeName.js.map +1 -1
  226. package/utils/renderFields.js +8 -0
  227. package/utils/renderFields.js.map +1 -1
  228. package/utils/renderGetFilterFields.js +11 -0
  229. package/utils/renderGetFilterFields.js.map +1 -1
  230. package/utils/renderInputFields.js +8 -0
  231. package/utils/renderInputFields.js.map +1 -1
  232. package/utils/renderListFilterFields.js +11 -2
  233. package/utils/renderListFilterFields.js.map +1 -1
  234. package/utils/renderSortEnum.js +7 -0
  235. package/utils/renderSortEnum.js.map +1 -1
  236. package/utils/toSlug.js +4 -0
  237. package/utils/toSlug.js.map +1 -1
  238. package/validators/dateGte.js +7 -0
  239. package/validators/dateGte.js.map +1 -1
  240. package/validators/dateLte.js +7 -0
  241. package/validators/dateLte.js.map +1 -1
  242. package/validators/gte.js +8 -0
  243. package/validators/gte.js.map +1 -1
  244. package/validators/in.js +8 -0
  245. package/validators/in.js.map +1 -1
  246. package/validators/index.js +15 -0
  247. package/validators/index.js.map +1 -1
  248. package/validators/lte.js +8 -0
  249. package/validators/lte.js.map +1 -1
  250. package/validators/maxLength.js +8 -0
  251. package/validators/maxLength.js.map +1 -1
  252. package/validators/minLength.js +8 -0
  253. package/validators/minLength.js.map +1 -1
  254. package/validators/pattern.js +9 -0
  255. package/validators/pattern.js.map +1 -1
  256. package/validators/patternPlugins/email.js +2 -0
  257. package/validators/patternPlugins/email.js.map +1 -1
  258. package/validators/patternPlugins/index.js +8 -0
  259. package/validators/patternPlugins/index.js.map +1 -1
  260. package/validators/patternPlugins/lowerCase.js +2 -0
  261. package/validators/patternPlugins/lowerCase.js.map +1 -1
  262. package/validators/patternPlugins/lowerCaseSpace.js +2 -0
  263. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  264. package/validators/patternPlugins/upperCase.js +2 -0
  265. package/validators/patternPlugins/upperCase.js.map +1 -1
  266. package/validators/patternPlugins/upperCaseSpace.js +2 -0
  267. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  268. package/validators/patternPlugins/url.js +2 -0
  269. package/validators/patternPlugins/url.js.map +1 -1
  270. package/validators/required.js +5 -0
  271. package/validators/required.js.map +1 -1
  272. package/validators/timeGte.js +8 -0
  273. package/validators/timeGte.js.map +1 -1
  274. package/validators/timeLte.js +8 -0
  275. package/validators/timeLte.js.map +1 -1
  276. package/validators/unique.js +7 -0
  277. package/validators/unique.js.map +1 -1
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+
6
7
  var _manual = require("./manual");
8
+
7
9
  Object.keys(_manual).forEach(function (key) {
8
10
  if (key === "default" || key === "__esModule") return;
9
11
  if (key in exports && exports[key] === _manual[key]) return;
@@ -14,7 +16,9 @@ Object.keys(_manual).forEach(function (key) {
14
16
  }
15
17
  });
16
18
  });
19
+
17
20
  var _path = require("./path");
21
+
18
22
  Object.keys(_path).forEach(function (key) {
19
23
  if (key === "default" || key === "__esModule") return;
20
24
  if (key in exports && exports[key] === _path[key]) return;
@@ -25,7 +29,9 @@ Object.keys(_path).forEach(function (key) {
25
29
  }
26
30
  });
27
31
  });
32
+
28
33
  var _context = require("./context");
34
+
29
35
  Object.keys(_context).forEach(function (key) {
30
36
  if (key === "default" || key === "__esModule") return;
31
37
  if (key in exports && exports[key] === _context[key]) return;
@@ -36,7 +42,9 @@ Object.keys(_context).forEach(function (key) {
36
42
  }
37
43
  });
38
44
  });
45
+
39
46
  var _header = require("./header");
47
+
40
48
  Object.keys(_header).forEach(function (key) {
41
49
  if (key === "default" || key === "__esModule") return;
42
50
  if (key in exports && exports[key] === _header[key]) return;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./manual\";\nexport * from \"./path\";\nexport * from \"./context\";\nexport * from \"./header\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./manual\";\nexport * from \"./path\";\nexport * from \"./context\";\nexport * from \"./header\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createManualPlugin = void 0;
9
+
8
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
9
12
  var _error = _interopRequireDefault(require("@webiny/error"));
13
+
10
14
  var _CmsParametersPlugin = require("../plugins/CmsParametersPlugin");
15
+
11
16
  /**
12
17
  * This would be used for custom Lambdas when there is no path or header information about the endpoint type and locale.
13
18
  */
14
-
15
19
  const createManualPlugin = params => {
16
20
  return new _CmsParametersPlugin.CmsParametersPlugin(async () => {
17
21
  const {
@@ -21,6 +25,7 @@ const createManualPlugin = params => {
21
25
  /**
22
26
  * if both of parameters are not existing, just skip this plugin.
23
27
  */
28
+
24
29
  if (!type && !locale) {
25
30
  return null;
26
31
  } else if (!type) {
@@ -28,10 +33,12 @@ const createManualPlugin = params => {
28
33
  } else if (!locale) {
29
34
  throw new _error.default(`There is defined "endpointType" CMS parameter but no "locale".`, "MALFORMED_LOCALE_TYPE", (0, _objectSpread2.default)({}, params));
30
35
  }
36
+
31
37
  return {
32
38
  type,
33
39
  locale
34
40
  };
35
41
  });
36
42
  };
43
+
37
44
  exports.createManualPlugin = createManualPlugin;
@@ -1 +1 @@
1
- {"version":3,"names":["createManualPlugin","params","CmsParametersPlugin","endpointType","type","locale","WebinyError"],"sources":["manual.ts"],"sourcesContent":["/**\n * This would be used for custom Lambdas when there is no path or header information about the endpoint type and locale.\n */\nimport WebinyError from \"@webiny/error\";\nimport {\n CmsParametersPlugin,\n CmsParametersPluginResponseLocale,\n CmsParametersPluginResponseType\n} from \"~/plugins/CmsParametersPlugin\";\n\nexport interface ManualPluginParams {\n endpointType?: CmsParametersPluginResponseType;\n locale?: CmsParametersPluginResponseLocale;\n}\n\nexport const createManualPlugin = (params: ManualPluginParams): CmsParametersPlugin => {\n return new CmsParametersPlugin(async () => {\n const { endpointType: type, locale } = params;\n /**\n * if both of parameters are not existing, just skip this plugin.\n */\n if (!type && !locale) {\n return null;\n } else if (!type) {\n throw new WebinyError(\n `There is defined \"locale\" CMS parameter but no \"endpointType\".`,\n \"MALFORMED_ENDPOINT_TYPE\",\n {\n ...params\n }\n );\n } else if (!locale) {\n throw new WebinyError(\n `There is defined \"endpointType\" CMS parameter but no \"locale\".`,\n \"MALFORMED_LOCALE_TYPE\",\n {\n ...params\n }\n );\n }\n\n return {\n type,\n locale\n };\n });\n};\n"],"mappings":";;;;;;;;AAGA;AACA;AAJA;AACA;AACA;;AAaO,MAAMA,kBAAkB,GAAIC,MAA0B,IAA0B;EACnF,OAAO,IAAIC,wCAAmB,CAAC,YAAY;IACvC,MAAM;MAAEC,YAAY,EAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGJ,MAAM;IAC7C;AACR;AACA;IACQ,IAAI,CAACG,IAAI,IAAI,CAACC,MAAM,EAAE;MAClB,OAAO,IAAI;IACf,CAAC,MAAM,IAAI,CAACD,IAAI,EAAE;MACd,MAAM,IAAIE,cAAW,CAChB,gEAA+D,EAChE,yBAAyB,kCAElBL,MAAM,EAEhB;IACL,CAAC,MAAM,IAAI,CAACI,MAAM,EAAE;MAChB,MAAM,IAAIC,cAAW,CAChB,gEAA+D,EAChE,uBAAuB,kCAEhBL,MAAM,EAEhB;IACL;IAEA,OAAO;MACHG,IAAI;MACJC;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["createManualPlugin","params","CmsParametersPlugin","endpointType","type","locale","WebinyError"],"sources":["manual.ts"],"sourcesContent":["/**\n * This would be used for custom Lambdas when there is no path or header information about the endpoint type and locale.\n */\nimport WebinyError from \"@webiny/error\";\nimport {\n CmsParametersPlugin,\n CmsParametersPluginResponseLocale,\n CmsParametersPluginResponseType\n} from \"~/plugins/CmsParametersPlugin\";\n\nexport interface ManualPluginParams {\n endpointType?: CmsParametersPluginResponseType;\n locale?: CmsParametersPluginResponseLocale;\n}\n\nexport const createManualPlugin = (params: ManualPluginParams): CmsParametersPlugin => {\n return new CmsParametersPlugin(async () => {\n const { endpointType: type, locale } = params;\n /**\n * if both of parameters are not existing, just skip this plugin.\n */\n if (!type && !locale) {\n return null;\n } else if (!type) {\n throw new WebinyError(\n `There is defined \"locale\" CMS parameter but no \"endpointType\".`,\n \"MALFORMED_ENDPOINT_TYPE\",\n {\n ...params\n }\n );\n } else if (!locale) {\n throw new WebinyError(\n `There is defined \"endpointType\" CMS parameter but no \"locale\".`,\n \"MALFORMED_LOCALE_TYPE\",\n {\n ...params\n }\n );\n }\n\n return {\n type,\n locale\n };\n });\n};\n"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAaO,MAAMA,kBAAkB,GAAIC,MAAD,IAAqD;EACnF,OAAO,IAAIC,wCAAJ,CAAwB,YAAY;IACvC,MAAM;MAAEC,YAAY,EAAEC,IAAhB;MAAsBC;IAAtB,IAAiCJ,MAAvC;IACA;AACR;AACA;;IACQ,IAAI,CAACG,IAAD,IAAS,CAACC,MAAd,EAAsB;MAClB,OAAO,IAAP;IACH,CAFD,MAEO,IAAI,CAACD,IAAL,EAAW;MACd,MAAM,IAAIE,cAAJ,CACD,gEADC,EAEF,yBAFE,kCAIKL,MAJL,EAAN;IAOH,CARM,MAQA,IAAI,CAACI,MAAL,EAAa;MAChB,MAAM,IAAIC,cAAJ,CACD,gEADC,EAEF,uBAFE,kCAIKL,MAJL,EAAN;IAOH;;IAED,OAAO;MACHG,IADG;MAEHC;IAFG,CAAP;EAIH,CA7BM,CAAP;AA8BH,CA/BM"}
@@ -1,29 +1,38 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createPathParameterPlugin = void 0;
9
+
8
10
  var _error = _interopRequireDefault(require("@webiny/error"));
11
+
9
12
  var _CmsParametersPlugin = require("../plugins/CmsParametersPlugin");
13
+
10
14
  const allowedEndpoints = ["manage", "read", "preview"];
15
+
11
16
  const createPathParameterPlugin = () => {
12
17
  return new _CmsParametersPlugin.CmsParametersPlugin(async context => {
13
18
  var _context$request;
19
+
14
20
  /**
15
21
  * If any of the properties is not defined, just ignore this plugin
16
22
  */
17
23
  if (!((_context$request = context.request) !== null && _context$request !== void 0 && _context$request.params)) {
18
24
  return null;
19
25
  }
26
+
20
27
  const {
21
28
  type,
22
29
  locale
23
30
  } = context.request.params;
31
+
24
32
  if (!type && !locale) {
25
33
  return null;
26
34
  }
35
+
27
36
  if (!type) {
28
37
  throw new _error.default(`Missing request parameter "type".`);
29
38
  } else if (!locale) {
@@ -31,10 +40,12 @@ const createPathParameterPlugin = () => {
31
40
  } else if (allowedEndpoints.includes(type) === false) {
32
41
  throw new _error.default(`Endpoint "${type}" not allowed!`);
33
42
  }
43
+
34
44
  return {
35
45
  type: type,
36
46
  locale
37
47
  };
38
48
  });
39
49
  };
50
+
40
51
  exports.createPathParameterPlugin = createPathParameterPlugin;
@@ -1 +1 @@
1
- {"version":3,"names":["allowedEndpoints","createPathParameterPlugin","CmsParametersPlugin","context","request","params","type","locale","WebinyError","includes"],"sources":["path.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsParametersPlugin } from \"~/plugins/CmsParametersPlugin\";\nimport { ApiEndpoint } from \"~/types\";\n\nconst allowedEndpoints: ApiEndpoint[] = [\"manage\", \"read\", \"preview\"];\n\nexport const createPathParameterPlugin = () => {\n return new CmsParametersPlugin(async context => {\n /**\n * If any of the properties is not defined, just ignore this plugin\n */\n if (!context.request?.params) {\n return null;\n }\n\n const { type, locale } = context.request.params as Record<string, string | null>;\n if (!type && !locale) {\n return null;\n }\n\n if (!type) {\n throw new WebinyError(`Missing request parameter \"type\".`);\n } else if (!locale) {\n throw new WebinyError(`Missing request parameter \"locale\".`);\n } else if (allowedEndpoints.includes(type as ApiEndpoint) === false) {\n throw new WebinyError(`Endpoint \"${type}\" not allowed!`);\n }\n\n return {\n type: type as ApiEndpoint,\n locale\n };\n });\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAGA,MAAMA,gBAA+B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;AAE9D,MAAMC,yBAAyB,GAAG,MAAM;EAC3C,OAAO,IAAIC,wCAAmB,CAAC,MAAMC,OAAO,IAAI;IAAA;IAC5C;AACR;AACA;IACQ,IAAI,sBAACA,OAAO,CAACC,OAAO,6CAAf,iBAAiBC,MAAM,GAAE;MAC1B,OAAO,IAAI;IACf;IAEA,MAAM;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGJ,OAAO,CAACC,OAAO,CAACC,MAAuC;IAChF,IAAI,CAACC,IAAI,IAAI,CAACC,MAAM,EAAE;MAClB,OAAO,IAAI;IACf;IAEA,IAAI,CAACD,IAAI,EAAE;MACP,MAAM,IAAIE,cAAW,CAAE,mCAAkC,CAAC;IAC9D,CAAC,MAAM,IAAI,CAACD,MAAM,EAAE;MAChB,MAAM,IAAIC,cAAW,CAAE,qCAAoC,CAAC;IAChE,CAAC,MAAM,IAAIR,gBAAgB,CAACS,QAAQ,CAACH,IAAI,CAAgB,KAAK,KAAK,EAAE;MACjE,MAAM,IAAIE,cAAW,CAAE,aAAYF,IAAK,gBAAe,CAAC;IAC5D;IAEA,OAAO;MACHA,IAAI,EAAEA,IAAmB;MACzBC;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["allowedEndpoints","createPathParameterPlugin","CmsParametersPlugin","context","request","params","type","locale","WebinyError","includes"],"sources":["path.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsParametersPlugin } from \"~/plugins/CmsParametersPlugin\";\nimport { ApiEndpoint } from \"~/types\";\n\nconst allowedEndpoints: ApiEndpoint[] = [\"manage\", \"read\", \"preview\"];\n\nexport const createPathParameterPlugin = () => {\n return new CmsParametersPlugin(async context => {\n /**\n * If any of the properties is not defined, just ignore this plugin\n */\n if (!context.request?.params) {\n return null;\n }\n\n const { type, locale } = context.request.params as Record<string, string | null>;\n if (!type && !locale) {\n return null;\n }\n\n if (!type) {\n throw new WebinyError(`Missing request parameter \"type\".`);\n } else if (!locale) {\n throw new WebinyError(`Missing request parameter \"locale\".`);\n } else if (allowedEndpoints.includes(type as ApiEndpoint) === false) {\n throw new WebinyError(`Endpoint \"${type}\" not allowed!`);\n }\n\n return {\n type: type as ApiEndpoint,\n locale\n };\n });\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA,MAAMA,gBAA+B,GAAG,CAAC,QAAD,EAAW,MAAX,EAAmB,SAAnB,CAAxC;;AAEO,MAAMC,yBAAyB,GAAG,MAAM;EAC3C,OAAO,IAAIC,wCAAJ,CAAwB,MAAMC,OAAN,IAAiB;IAAA;;IAC5C;AACR;AACA;IACQ,IAAI,sBAACA,OAAO,CAACC,OAAT,6CAAC,iBAAiBC,MAAlB,CAAJ,EAA8B;MAC1B,OAAO,IAAP;IACH;;IAED,MAAM;MAAEC,IAAF;MAAQC;IAAR,IAAmBJ,OAAO,CAACC,OAAR,CAAgBC,MAAzC;;IACA,IAAI,CAACC,IAAD,IAAS,CAACC,MAAd,EAAsB;MAClB,OAAO,IAAP;IACH;;IAED,IAAI,CAACD,IAAL,EAAW;MACP,MAAM,IAAIE,cAAJ,CAAiB,mCAAjB,CAAN;IACH,CAFD,MAEO,IAAI,CAACD,MAAL,EAAa;MAChB,MAAM,IAAIC,cAAJ,CAAiB,qCAAjB,CAAN;IACH,CAFM,MAEA,IAAIR,gBAAgB,CAACS,QAAjB,CAA0BH,IAA1B,MAAmD,KAAvD,EAA8D;MACjE,MAAM,IAAIE,cAAJ,CAAiB,aAAYF,IAAK,gBAAlC,CAAN;IACH;;IAED,OAAO;MACHA,IAAI,EAAEA,IADH;MAEHC;IAFG,CAAP;EAIH,CAzBM,CAAP;AA0BH,CA3BM"}
@@ -1,22 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createCmsGroup = exports.CmsGroupPlugin = void 0;
9
+
8
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
9
12
  var _plugins = require("@webiny/plugins");
13
+
10
14
  class CmsGroupPlugin extends _plugins.Plugin {
11
15
  constructor(contentModelGroup) {
12
16
  super();
13
17
  (0, _defineProperty2.default)(this, "contentModelGroup", void 0);
14
18
  this.contentModelGroup = contentModelGroup;
15
19
  }
20
+
16
21
  }
22
+
17
23
  exports.CmsGroupPlugin = CmsGroupPlugin;
18
24
  (0, _defineProperty2.default)(CmsGroupPlugin, "type", "cms-content-model-group");
25
+
19
26
  const createCmsGroup = group => {
20
27
  return new CmsGroupPlugin(group);
21
28
  };
29
+
22
30
  exports.createCmsGroup = createCmsGroup;
@@ -1 +1 @@
1
- {"version":3,"names":["CmsGroupPlugin","Plugin","constructor","contentModelGroup","createCmsGroup","group"],"sources":["CmsGroupPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsGroup as BaseCmsGroup } from \"~/types\";\n\ninterface CmsGroup extends Omit<BaseCmsGroup, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n tenant?: string;\n locale?: string;\n}\nexport class CmsGroupPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model-group\";\n public readonly contentModelGroup: CmsGroup;\n\n constructor(contentModelGroup: CmsGroup) {\n super();\n this.contentModelGroup = contentModelGroup;\n }\n}\n\nexport const createCmsGroup = (group: CmsGroup): CmsGroupPlugin => {\n return new CmsGroupPlugin(group);\n};\n"],"mappings":";;;;;;;;AAAA;AAOO,MAAMA,cAAc,SAASC,eAAM,CAAC;EAIvCC,WAAW,CAACC,iBAA2B,EAAE;IACrC,KAAK,EAAE;IAAC;IACR,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;EAC9C;AACJ;AAAC;AAAA,8BARYH,cAAc,UACwB,yBAAyB;AASrE,MAAMI,cAAc,GAAIC,KAAe,IAAqB;EAC/D,OAAO,IAAIL,cAAc,CAACK,KAAK,CAAC;AACpC,CAAC;AAAC"}
1
+ {"version":3,"names":["CmsGroupPlugin","Plugin","constructor","contentModelGroup","createCmsGroup","group"],"sources":["CmsGroupPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsGroup as BaseCmsGroup } from \"~/types\";\n\ninterface CmsGroup extends Omit<BaseCmsGroup, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n tenant?: string;\n locale?: string;\n}\nexport class CmsGroupPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model-group\";\n public readonly contentModelGroup: CmsGroup;\n\n constructor(contentModelGroup: CmsGroup) {\n super();\n this.contentModelGroup = contentModelGroup;\n }\n}\n\nexport const createCmsGroup = (group: CmsGroup): CmsGroupPlugin => {\n return new CmsGroupPlugin(group);\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AAOO,MAAMA,cAAN,SAA6BC,eAA7B,CAAoC;EAIvCC,WAAW,CAACC,iBAAD,EAA8B;IACrC;IADqC;IAErC,KAAKA,iBAAL,GAAyBA,iBAAzB;EACH;;AAPsC;;;8BAA9BH,c,UACsC,yB;;AAS5C,MAAMI,cAAc,GAAIC,KAAD,IAAqC;EAC/D,OAAO,IAAIL,cAAJ,CAAmBK,KAAnB,CAAP;AACH,CAFM"}
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.CmsModelFieldConverterPlugin = void 0;
9
+
8
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
9
12
  var _plugins = require("@webiny/plugins");
13
+
10
14
  class CmsModelFieldConverterPlugin extends _plugins.Plugin {}
15
+
11
16
  exports.CmsModelFieldConverterPlugin = CmsModelFieldConverterPlugin;
12
17
  (0, _defineProperty2.default)(CmsModelFieldConverterPlugin, "type", "cms.field.converter");
@@ -1 +1 @@
1
- {"version":3,"names":["CmsModelFieldConverterPlugin","Plugin"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;;;AAAA;AAUO,MAAeA,4BAA4B,SAASC,eAAM,CAAC;AAOjE;AAAA,8BAPqBD,4BAA4B,UAChB,qBAAqB"}
1
+ {"version":3,"names":["CmsModelFieldConverterPlugin","Plugin"],"sources":["CmsModelFieldConverterPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\nexport interface ConvertParams {\n field: CmsModelFieldWithParent;\n value: any;\n converterCollection: ConverterCollection;\n}\n\nexport abstract class CmsModelFieldConverterPlugin extends Plugin {\n public static override type = \"cms.field.converter\";\n\n public abstract getFieldType(): string;\n\n public abstract convertToStorage(params: ConvertParams): CmsEntryValues;\n public abstract convertFromStorage(params: ConvertParams): CmsEntryValues;\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAUO,MAAeA,4BAAf,SAAoDC,eAApD,CAA2D;;;8BAA5CD,4B,UACY,qB"}
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.createCmsModel = exports.CmsModelPlugin = void 0;
9
+
8
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
9
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
10
14
  var _plugins = require("@webiny/plugins");
15
+
11
16
  var _error = _interopRequireDefault(require("@webiny/error"));
17
+
12
18
  var _createFieldStorageId = require("../crud/contentModel/createFieldStorageId");
19
+
13
20
  var _camelCase = _interopRequireDefault(require("lodash/camelCase"));
21
+
14
22
  class CmsModelPlugin extends _plugins.Plugin {
15
23
  constructor(contentModel, options) {
16
24
  super();
@@ -19,6 +27,7 @@ class CmsModelPlugin extends _plugins.Plugin {
19
27
  this.options = options || {};
20
28
  this.contentModel = this.buildModel(contentModel);
21
29
  }
30
+
22
31
  buildModel(input) {
23
32
  const model = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
24
33
  fields: this.buildFields(input, input.fields)
@@ -26,17 +35,21 @@ class CmsModelPlugin extends _plugins.Plugin {
26
35
  this.validateLayout(model);
27
36
  return model;
28
37
  }
38
+
29
39
  buildFields(model, inputFields) {
30
40
  if (inputFields.length === 0) {
31
41
  throw new _error.default(`Missing fields for the defined model "${model.modelId}".`, "MISSING_FIELDS", {
32
42
  model
33
43
  });
34
44
  }
45
+
35
46
  const fields = [];
36
47
  const storageIdList = [];
37
48
  const fieldIdList = [];
49
+
38
50
  for (const input of inputFields) {
39
51
  var _settings;
52
+
40
53
  /**
41
54
  * Field must contain an fieldId. It is required in the graphql, but lets check it just in case
42
55
  */
@@ -46,10 +59,12 @@ class CmsModelPlugin extends _plugins.Plugin {
46
59
  field: input
47
60
  });
48
61
  }
62
+
49
63
  const fieldId = (0, _camelCase.default)(input.fieldId);
50
64
  /**
51
65
  * FieldID must be in correct pattern.
52
66
  */
67
+
53
68
  if (fieldId.match(/^[0-9]/) !== null) {
54
69
  throw new _error.default(`Field's "fieldId" does not match correct pattern in the content model "${model.modelId}" - cannot start with a number.`, "FIELD_FIELD_ID_ERROR", {
55
70
  model,
@@ -59,6 +74,8 @@ class CmsModelPlugin extends _plugins.Plugin {
59
74
  /**
60
75
  * FieldID also must be camelCased.
61
76
  */
77
+
78
+
62
79
  if (fieldId !== input.fieldId) {
63
80
  throw new _error.default(`Field's "fieldId" must be a camel cased string in the content model "${model.modelId}".`, "FIELD_FIELD_ID_ERROR", {
64
81
  model,
@@ -68,16 +85,20 @@ class CmsModelPlugin extends _plugins.Plugin {
68
85
  /**
69
86
  * ... and fieldId must be unique.
70
87
  */
88
+
89
+
71
90
  if (fieldIdList.includes(fieldId) === true) {
72
91
  throw new _error.default(`Field's "fieldId" is not unique in the content model "${model.modelId}".`, "FIELD_ID_NOT_UNIQUE_ERROR", {
73
92
  model,
74
93
  field: input
75
94
  });
76
95
  }
96
+
77
97
  let storageId = input.storageId ? (0, _camelCase.default)(input.storageId) : null;
78
98
  /**
79
99
  * If defined, storageId MUST be camel cased string - for backward compatibility.
80
100
  */
101
+
81
102
  if (storageId && (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)) {
82
103
  throw new _error.default(`Field's "storageId" of the field with "fieldId" ${input.fieldId} is not camel cased string in the content model "${model.modelId}".`, "STORAGE_ID_NOT_CAMEL_CASED_ERROR", {
83
104
  model,
@@ -87,28 +108,32 @@ class CmsModelPlugin extends _plugins.Plugin {
87
108
  } else if (!storageId) {
88
109
  storageId = (0, _createFieldStorageId.createFieldStorageId)(input);
89
110
  }
90
-
91
111
  /**
92
112
  * Fields storageId must be unique.
93
113
  */
114
+
115
+
94
116
  if (storageIdList.includes(storageId) === true) {
95
117
  throw new _error.default(`Field's "storageId" is not unique in the content model "${model.modelId}".`, "STORAGE_ID_ERROR", {
96
118
  model,
97
119
  field: input
98
120
  });
99
121
  }
100
-
101
122
  /**
102
123
  * We can safely ignore error because we are going through the fields and making sure each has storageId.
103
124
  */
104
125
  // @ts-ignore
126
+
127
+
105
128
  let settings = input.settings;
106
129
  const childFields = ((_settings = settings) === null || _settings === void 0 ? void 0 : _settings.fields) || [];
130
+
107
131
  if (input.type === "object" && childFields.length > 0) {
108
132
  settings = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, settings || {}), {}, {
109
133
  fields: this.buildFields(model, childFields)
110
134
  });
111
135
  }
136
+
112
137
  const field = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, input), {}, {
113
138
  settings,
114
139
  storageId
@@ -116,12 +141,15 @@ class CmsModelPlugin extends _plugins.Plugin {
116
141
  /**
117
142
  * Add all relevant data to arrays.
118
143
  */
144
+
119
145
  fields.push(field);
120
146
  storageIdList.push(field.storageId);
121
147
  fieldIdList.push(field.fieldId);
122
148
  }
149
+
123
150
  return fields;
124
151
  }
152
+
125
153
  validateLayout(model) {
126
154
  /**
127
155
  * Only skip validation if option.validateLayout was set as false, explicitly.
@@ -129,12 +157,15 @@ class CmsModelPlugin extends _plugins.Plugin {
129
157
  if (this.options.validateLayout === false) {
130
158
  return;
131
159
  }
160
+
132
161
  for (const field of model.fields) {
133
162
  let total = 0;
163
+
134
164
  for (const row of model.layout) {
135
165
  const count = row.filter(cell => cell === field.id).length;
136
166
  total = total + count;
137
167
  }
168
+
138
169
  if (total === 1) {
139
170
  continue;
140
171
  } else if (total > 1) {
@@ -143,16 +174,21 @@ class CmsModelPlugin extends _plugins.Plugin {
143
174
  field
144
175
  });
145
176
  }
177
+
146
178
  throw new _error.default(`Missing field "${field.id}" in layout.`, "MISSING_FIELD_IN_LAYOUT", {
147
179
  model,
148
180
  field
149
181
  });
150
182
  }
151
183
  }
184
+
152
185
  }
186
+
153
187
  exports.CmsModelPlugin = CmsModelPlugin;
154
188
  (0, _defineProperty2.default)(CmsModelPlugin, "type", "cms-content-model");
189
+
155
190
  const createCmsModel = (model, options) => {
156
191
  return new CmsModelPlugin(model, options);
157
192
  };
193
+
158
194
  exports.createCmsModel = createCmsModel;
@@ -1 +1 @@
1
- {"version":3,"names":["CmsModelPlugin","Plugin","constructor","contentModel","options","buildModel","input","model","fields","buildFields","validateLayout","inputFields","length","WebinyError","modelId","storageIdList","fieldIdList","fieldId","trim","field","lodashCamelCase","match","includes","storageId","createFieldStorageId","settings","childFields","type","push","total","row","layout","count","filter","cell","id","createCmsModel"],"sources":["CmsModelPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n CmsModel as CmsModelBase,\n CmsModelField as CmsModelFieldBase,\n CmsModelFieldSettings as BaseCmsModelFieldSettings\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createFieldStorageId } from \"~/crud/contentModel/createFieldStorageId\";\nimport lodashCamelCase from \"lodash/camelCase\";\n\ninterface CmsModelFieldSettings extends Omit<BaseCmsModelFieldSettings, \"fields\"> {\n /**\n * Object field has child fields.\n */\n fields?: CmsModelFieldInput[];\n}\n\ninterface CmsModelFieldInput extends Omit<CmsModelFieldBase, \"storageId\" | \"settings\"> {\n /**\n * If defined, it must be camelCased string.\n * This is for backwards compatibility - before fields had storageId.\n *\n * This should only be populated in old model fields.\n * News ones must have this empty.\n */\n storageId?: string;\n /**\n * We must have a possibility to have a nested field defined without the storageId.\n */\n settings?: CmsModelFieldSettings;\n}\n\ninterface CmsModelInput\n extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\" | \"fields\"> {\n fields: CmsModelFieldInput[];\n locale?: string;\n tenant?: string;\n}\ninterface CmsModel extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsModelPluginOptions {\n validateLayout?: boolean;\n}\n\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n private readonly options: CmsModelPluginOptions;\n\n constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions) {\n super();\n this.options = options || {};\n this.contentModel = this.buildModel(contentModel);\n }\n\n private buildModel(input: CmsModelInput): CmsModel {\n const model: CmsModel = {\n ...input,\n fields: this.buildFields(input, input.fields)\n };\n this.validateLayout(model);\n return model;\n }\n\n private buildFields(\n model: CmsModelInput,\n inputFields: CmsModelFieldInput[]\n ): CmsModelFieldBase[] {\n if (inputFields.length === 0) {\n throw new WebinyError(\n `Missing fields for the defined model \"${model.modelId}\".`,\n \"MISSING_FIELDS\",\n {\n model\n }\n );\n }\n const fields: CmsModelFieldBase[] = [];\n const storageIdList: string[] = [];\n const fieldIdList: string[] = [];\n for (const input of inputFields) {\n /**\n * Field must contain an fieldId. It is required in the graphql, but lets check it just in case\n */\n if (!(input.fieldId || \"\").trim()) {\n throw new WebinyError(\n `Field's \"storageId\" is not defined for the content model \"${model.modelId}\".`,\n \"FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n const fieldId = lodashCamelCase(input.fieldId);\n /**\n * FieldID must be in correct pattern.\n */\n if (fieldId.match(/^[0-9]/) !== null) {\n throw new WebinyError(\n `Field's \"fieldId\" does not match correct pattern in the content model \"${model.modelId}\" - cannot start with a number.`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * FieldID also must be camelCased.\n */\n if (fieldId !== input.fieldId) {\n throw new WebinyError(\n `Field's \"fieldId\" must be a camel cased string in the content model \"${model.modelId}\".`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * ... and fieldId must be unique.\n */\n if (fieldIdList.includes(fieldId) === true) {\n throw new WebinyError(\n `Field's \"fieldId\" is not unique in the content model \"${model.modelId}\".`,\n \"FIELD_ID_NOT_UNIQUE_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n let storageId = input.storageId ? lodashCamelCase(input.storageId) : null;\n /**\n * If defined, storageId MUST be camel cased string - for backward compatibility.\n */\n if (\n storageId &&\n (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)\n ) {\n throw new WebinyError(\n `Field's \"storageId\" of the field with \"fieldId\" ${input.fieldId} is not camel cased string in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_NOT_CAMEL_CASED_ERROR\",\n {\n model,\n storageId,\n field: input\n }\n );\n } else if (!storageId) {\n storageId = createFieldStorageId(input);\n }\n\n /**\n * Fields storageId must be unique.\n */\n if (storageIdList.includes(storageId) === true) {\n throw new WebinyError(\n `Field's \"storageId\" is not unique in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n /**\n * We can safely ignore error because we are going through the fields and making sure each has storageId.\n */\n // @ts-ignore\n let settings: BaseCmsModelFieldSettings = input.settings;\n\n const childFields = settings?.fields || [];\n if (input.type === \"object\" && childFields.length > 0) {\n settings = {\n ...(settings || {}),\n fields: this.buildFields(model, childFields)\n };\n }\n\n const field: CmsModelFieldBase = {\n ...input,\n settings,\n storageId\n };\n /**\n * Add all relevant data to arrays.\n */\n fields.push(field);\n storageIdList.push(field.storageId);\n fieldIdList.push(field.fieldId);\n }\n return fields;\n }\n\n private validateLayout(model: CmsModel): void {\n /**\n * Only skip validation if option.validateLayout was set as false, explicitly.\n */\n if (this.options.validateLayout === false) {\n return;\n }\n for (const field of model.fields) {\n let total = 0;\n for (const row of model.layout) {\n const count = row.filter(cell => cell === field.id).length;\n total = total + count;\n }\n if (total === 1) {\n continue;\n } else if (total > 1) {\n throw new WebinyError(\n `Field \"${field.id}\" is in more than one layout cell.`,\n \"DUPLICATE_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n throw new WebinyError(\n `Missing field \"${field.id}\" in layout.`,\n \"MISSING_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n }\n}\n\nexport const createCmsModel = (\n model: CmsModelInput,\n options?: CmsModelPluginOptions\n): CmsModelPlugin => {\n return new CmsModelPlugin(model, options);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["CmsModelPlugin","Plugin","constructor","contentModel","options","buildModel","input","model","fields","buildFields","validateLayout","inputFields","length","WebinyError","modelId","storageIdList","fieldIdList","fieldId","trim","field","lodashCamelCase","match","includes","storageId","createFieldStorageId","settings","childFields","type","push","total","row","layout","count","filter","cell","id","createCmsModel"],"sources":["CmsModelPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport {\n CmsModel as CmsModelBase,\n CmsModelField as CmsModelFieldBase,\n CmsModelFieldSettings as BaseCmsModelFieldSettings\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { createFieldStorageId } from \"~/crud/contentModel/createFieldStorageId\";\nimport lodashCamelCase from \"lodash/camelCase\";\n\ninterface CmsModelFieldSettings extends Omit<BaseCmsModelFieldSettings, \"fields\"> {\n /**\n * Object field has child fields.\n */\n fields?: CmsModelFieldInput[];\n}\n\ninterface CmsModelFieldInput extends Omit<CmsModelFieldBase, \"storageId\" | \"settings\"> {\n /**\n * If defined, it must be camelCased string.\n * This is for backwards compatibility - before fields had storageId.\n *\n * This should only be populated in old model fields.\n * News ones must have this empty.\n */\n storageId?: string;\n /**\n * We must have a possibility to have a nested field defined without the storageId.\n */\n settings?: CmsModelFieldSettings;\n}\n\ninterface CmsModelInput\n extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\" | \"fields\"> {\n fields: CmsModelFieldInput[];\n locale?: string;\n tenant?: string;\n}\ninterface CmsModel extends Omit<CmsModelBase, \"locale\" | \"tenant\" | \"webinyVersion\"> {\n locale?: string;\n tenant?: string;\n}\n\ninterface CmsModelPluginOptions {\n validateLayout?: boolean;\n}\n\nexport class CmsModelPlugin extends Plugin {\n public static override readonly type: string = \"cms-content-model\";\n public readonly contentModel: CmsModel;\n\n private readonly options: CmsModelPluginOptions;\n\n constructor(contentModel: CmsModelInput, options?: CmsModelPluginOptions) {\n super();\n this.options = options || {};\n this.contentModel = this.buildModel(contentModel);\n }\n\n private buildModel(input: CmsModelInput): CmsModel {\n const model: CmsModel = {\n ...input,\n fields: this.buildFields(input, input.fields)\n };\n this.validateLayout(model);\n return model;\n }\n\n private buildFields(\n model: CmsModelInput,\n inputFields: CmsModelFieldInput[]\n ): CmsModelFieldBase[] {\n if (inputFields.length === 0) {\n throw new WebinyError(\n `Missing fields for the defined model \"${model.modelId}\".`,\n \"MISSING_FIELDS\",\n {\n model\n }\n );\n }\n const fields: CmsModelFieldBase[] = [];\n const storageIdList: string[] = [];\n const fieldIdList: string[] = [];\n for (const input of inputFields) {\n /**\n * Field must contain an fieldId. It is required in the graphql, but lets check it just in case\n */\n if (!(input.fieldId || \"\").trim()) {\n throw new WebinyError(\n `Field's \"storageId\" is not defined for the content model \"${model.modelId}\".`,\n \"FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n const fieldId = lodashCamelCase(input.fieldId);\n /**\n * FieldID must be in correct pattern.\n */\n if (fieldId.match(/^[0-9]/) !== null) {\n throw new WebinyError(\n `Field's \"fieldId\" does not match correct pattern in the content model \"${model.modelId}\" - cannot start with a number.`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * FieldID also must be camelCased.\n */\n if (fieldId !== input.fieldId) {\n throw new WebinyError(\n `Field's \"fieldId\" must be a camel cased string in the content model \"${model.modelId}\".`,\n \"FIELD_FIELD_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n /**\n * ... and fieldId must be unique.\n */\n if (fieldIdList.includes(fieldId) === true) {\n throw new WebinyError(\n `Field's \"fieldId\" is not unique in the content model \"${model.modelId}\".`,\n \"FIELD_ID_NOT_UNIQUE_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n let storageId = input.storageId ? lodashCamelCase(input.storageId) : null;\n /**\n * If defined, storageId MUST be camel cased string - for backward compatibility.\n */\n if (\n storageId &&\n (storageId.match(/^([a-zA-Z-0-9]+)$/) === null || storageId !== input.storageId)\n ) {\n throw new WebinyError(\n `Field's \"storageId\" of the field with \"fieldId\" ${input.fieldId} is not camel cased string in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_NOT_CAMEL_CASED_ERROR\",\n {\n model,\n storageId,\n field: input\n }\n );\n } else if (!storageId) {\n storageId = createFieldStorageId(input);\n }\n\n /**\n * Fields storageId must be unique.\n */\n if (storageIdList.includes(storageId) === true) {\n throw new WebinyError(\n `Field's \"storageId\" is not unique in the content model \"${model.modelId}\".`,\n \"STORAGE_ID_ERROR\",\n {\n model,\n field: input\n }\n );\n }\n\n /**\n * We can safely ignore error because we are going through the fields and making sure each has storageId.\n */\n // @ts-ignore\n let settings: BaseCmsModelFieldSettings = input.settings;\n\n const childFields = settings?.fields || [];\n if (input.type === \"object\" && childFields.length > 0) {\n settings = {\n ...(settings || {}),\n fields: this.buildFields(model, childFields)\n };\n }\n\n const field: CmsModelFieldBase = {\n ...input,\n settings,\n storageId\n };\n /**\n * Add all relevant data to arrays.\n */\n fields.push(field);\n storageIdList.push(field.storageId);\n fieldIdList.push(field.fieldId);\n }\n return fields;\n }\n\n private validateLayout(model: CmsModel): void {\n /**\n * Only skip validation if option.validateLayout was set as false, explicitly.\n */\n if (this.options.validateLayout === false) {\n return;\n }\n for (const field of model.fields) {\n let total = 0;\n for (const row of model.layout) {\n const count = row.filter(cell => cell === field.id).length;\n total = total + count;\n }\n if (total === 1) {\n continue;\n } else if (total > 1) {\n throw new WebinyError(\n `Field \"${field.id}\" is in more than one layout cell.`,\n \"DUPLICATE_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n throw new WebinyError(\n `Missing field \"${field.id}\" in layout.`,\n \"MISSING_FIELD_IN_LAYOUT\",\n {\n model,\n field\n }\n );\n }\n }\n}\n\nexport const createCmsModel = (\n model: CmsModelInput,\n options?: CmsModelPluginOptions\n): CmsModelPlugin => {\n return new CmsModelPlugin(model, options);\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAMA;;AACA;;AACA;;AAuCO,MAAMA,cAAN,SAA6BC,eAA7B,CAAoC;EAMvCC,WAAW,CAACC,YAAD,EAA8BC,OAA9B,EAA+D;IACtE;IADsE;IAAA;IAEtE,KAAKA,OAAL,GAAeA,OAAO,IAAI,EAA1B;IACA,KAAKD,YAAL,GAAoB,KAAKE,UAAL,CAAgBF,YAAhB,CAApB;EACH;;EAEOE,UAAU,CAACC,KAAD,EAAiC;IAC/C,MAAMC,KAAe,+DACdD,KADc;MAEjBE,MAAM,EAAE,KAAKC,WAAL,CAAiBH,KAAjB,EAAwBA,KAAK,CAACE,MAA9B;IAFS,EAArB;IAIA,KAAKE,cAAL,CAAoBH,KAApB;IACA,OAAOA,KAAP;EACH;;EAEOE,WAAW,CACfF,KADe,EAEfI,WAFe,EAGI;IACnB,IAAIA,WAAW,CAACC,MAAZ,KAAuB,CAA3B,EAA8B;MAC1B,MAAM,IAAIC,cAAJ,CACD,yCAAwCN,KAAK,CAACO,OAAQ,IADrD,EAEF,gBAFE,EAGF;QACIP;MADJ,CAHE,CAAN;IAOH;;IACD,MAAMC,MAA2B,GAAG,EAApC;IACA,MAAMO,aAAuB,GAAG,EAAhC;IACA,MAAMC,WAAqB,GAAG,EAA9B;;IACA,KAAK,MAAMV,KAAX,IAAoBK,WAApB,EAAiC;MAAA;;MAC7B;AACZ;AACA;MACY,IAAI,CAAC,CAACL,KAAK,CAACW,OAAN,IAAiB,EAAlB,EAAsBC,IAAtB,EAAL,EAAmC;QAC/B,MAAM,IAAIL,cAAJ,CACD,6DAA4DN,KAAK,CAACO,OAAQ,IADzE,EAEF,gBAFE,EAGF;UACIP,KADJ;UAEIY,KAAK,EAAEb;QAFX,CAHE,CAAN;MAQH;;MACD,MAAMW,OAAO,GAAG,IAAAG,kBAAA,EAAgBd,KAAK,CAACW,OAAtB,CAAhB;MACA;AACZ;AACA;;MACY,IAAIA,OAAO,CAACI,KAAR,CAAc,QAAd,MAA4B,IAAhC,EAAsC;QAClC,MAAM,IAAIR,cAAJ,CACD,0EAAyEN,KAAK,CAACO,OAAQ,iCADtF,EAEF,sBAFE,EAGF;UACIP,KADJ;UAEIY,KAAK,EAAEb;QAFX,CAHE,CAAN;MAQH;MACD;AACZ;AACA;;;MACY,IAAIW,OAAO,KAAKX,KAAK,CAACW,OAAtB,EAA+B;QAC3B,MAAM,IAAIJ,cAAJ,CACD,wEAAuEN,KAAK,CAACO,OAAQ,IADpF,EAEF,sBAFE,EAGF;UACIP,KADJ;UAEIY,KAAK,EAAEb;QAFX,CAHE,CAAN;MAQH;MACD;AACZ;AACA;;;MACY,IAAIU,WAAW,CAACM,QAAZ,CAAqBL,OAArB,MAAkC,IAAtC,EAA4C;QACxC,MAAM,IAAIJ,cAAJ,CACD,yDAAwDN,KAAK,CAACO,OAAQ,IADrE,EAEF,2BAFE,EAGF;UACIP,KADJ;UAEIY,KAAK,EAAEb;QAFX,CAHE,CAAN;MAQH;;MAED,IAAIiB,SAAS,GAAGjB,KAAK,CAACiB,SAAN,GAAkB,IAAAH,kBAAA,EAAgBd,KAAK,CAACiB,SAAtB,CAAlB,GAAqD,IAArE;MACA;AACZ;AACA;;MACY,IACIA,SAAS,KACRA,SAAS,CAACF,KAAV,CAAgB,mBAAhB,MAAyC,IAAzC,IAAiDE,SAAS,KAAKjB,KAAK,CAACiB,SAD7D,CADb,EAGE;QACE,MAAM,IAAIV,cAAJ,CACD,mDAAkDP,KAAK,CAACW,OAAQ,oDAAmDV,KAAK,CAACO,OAAQ,IADhI,EAEF,kCAFE,EAGF;UACIP,KADJ;UAEIgB,SAFJ;UAGIJ,KAAK,EAAEb;QAHX,CAHE,CAAN;MASH,CAbD,MAaO,IAAI,CAACiB,SAAL,EAAgB;QACnBA,SAAS,GAAG,IAAAC,0CAAA,EAAqBlB,KAArB,CAAZ;MACH;MAED;AACZ;AACA;;;MACY,IAAIS,aAAa,CAACO,QAAd,CAAuBC,SAAvB,MAAsC,IAA1C,EAAgD;QAC5C,MAAM,IAAIV,cAAJ,CACD,2DAA0DN,KAAK,CAACO,OAAQ,IADvE,EAEF,kBAFE,EAGF;UACIP,KADJ;UAEIY,KAAK,EAAEb;QAFX,CAHE,CAAN;MAQH;MAED;AACZ;AACA;MACY;;;MACA,IAAImB,QAAmC,GAAGnB,KAAK,CAACmB,QAAhD;MAEA,MAAMC,WAAW,GAAG,cAAAD,QAAQ,UAAR,8CAAUjB,MAAV,KAAoB,EAAxC;;MACA,IAAIF,KAAK,CAACqB,IAAN,KAAe,QAAf,IAA2BD,WAAW,CAACd,MAAZ,GAAqB,CAApD,EAAuD;QACnDa,QAAQ,+DACAA,QAAQ,IAAI,EADZ;UAEJjB,MAAM,EAAE,KAAKC,WAAL,CAAiBF,KAAjB,EAAwBmB,WAAxB;QAFJ,EAAR;MAIH;;MAED,MAAMP,KAAwB,+DACvBb,KADuB;QAE1BmB,QAF0B;QAG1BF;MAH0B,EAA9B;MAKA;AACZ;AACA;;MACYf,MAAM,CAACoB,IAAP,CAAYT,KAAZ;MACAJ,aAAa,CAACa,IAAd,CAAmBT,KAAK,CAACI,SAAzB;MACAP,WAAW,CAACY,IAAZ,CAAiBT,KAAK,CAACF,OAAvB;IACH;;IACD,OAAOT,MAAP;EACH;;EAEOE,cAAc,CAACH,KAAD,EAAwB;IAC1C;AACR;AACA;IACQ,IAAI,KAAKH,OAAL,CAAaM,cAAb,KAAgC,KAApC,EAA2C;MACvC;IACH;;IACD,KAAK,MAAMS,KAAX,IAAoBZ,KAAK,CAACC,MAA1B,EAAkC;MAC9B,IAAIqB,KAAK,GAAG,CAAZ;;MACA,KAAK,MAAMC,GAAX,IAAkBvB,KAAK,CAACwB,MAAxB,EAAgC;QAC5B,MAAMC,KAAK,GAAGF,GAAG,CAACG,MAAJ,CAAWC,IAAI,IAAIA,IAAI,KAAKf,KAAK,CAACgB,EAAlC,EAAsCvB,MAApD;QACAiB,KAAK,GAAGA,KAAK,GAAGG,KAAhB;MACH;;MACD,IAAIH,KAAK,KAAK,CAAd,EAAiB;QACb;MACH,CAFD,MAEO,IAAIA,KAAK,GAAG,CAAZ,EAAe;QAClB,MAAM,IAAIhB,cAAJ,CACD,UAASM,KAAK,CAACgB,EAAG,oCADjB,EAEF,2BAFE,EAGF;UACI5B,KADJ;UAEIY;QAFJ,CAHE,CAAN;MAQH;;MACD,MAAM,IAAIN,cAAJ,CACD,kBAAiBM,KAAK,CAACgB,EAAG,cADzB,EAEF,yBAFE,EAGF;QACI5B,KADJ;QAEIY;MAFJ,CAHE,CAAN;IAQH;EACJ;;AA9LsC;;;8BAA9BnB,c,UACsC,mB;;AAgM5C,MAAMoC,cAAc,GAAG,CAC1B7B,KAD0B,EAE1BH,OAF0B,KAGT;EACjB,OAAO,IAAIJ,cAAJ,CAAmBO,KAAnB,EAA0BH,OAA1B,CAAP;AACH,CALM"}
@@ -1,21 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.CmsParametersPlugin = void 0;
9
+
8
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
9
12
  var _plugins = require("@webiny/plugins");
13
+
10
14
  class CmsParametersPlugin extends _plugins.Plugin {
11
15
  constructor(callable) {
12
16
  super();
13
17
  (0, _defineProperty2.default)(this, "callable", void 0);
14
18
  this.callable = callable;
15
19
  }
20
+
16
21
  async getParameters(context) {
17
22
  return this.callable(context);
18
23
  }
24
+
19
25
  }
26
+
20
27
  exports.CmsParametersPlugin = CmsParametersPlugin;
21
28
  (0, _defineProperty2.default)(CmsParametersPlugin, "type", "cms-parameters-plugin");
@@ -1 +1 @@
1
- {"version":3,"names":["CmsParametersPlugin","Plugin","constructor","callable","getParameters","context"],"sources":["CmsParametersPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\n\n/**\n * Type can be null because it might be that Headless CMS context is loaded on a different Lambda where there is no GraphQL Schema generated.\n */\nexport type CmsParametersPluginResponseType = ApiEndpoint | null;\nexport type CmsParametersPluginResponseLocale = string;\n\nexport interface CmsParametersPluginResponse {\n type: CmsParametersPluginResponseType;\n locale: CmsParametersPluginResponseLocale;\n}\n\nexport interface CmsParametersPluginCallable {\n (context: CmsContext): Promise<CmsParametersPluginResponse | null>;\n}\n\nexport class CmsParametersPlugin extends Plugin {\n public static override readonly type: string = \"cms-parameters-plugin\";\n\n private readonly callable: CmsParametersPluginCallable;\n\n public constructor(callable: CmsParametersPluginCallable) {\n super();\n\n this.callable = callable;\n }\n\n public async getParameters(context: CmsContext): Promise<CmsParametersPluginResponse | null> {\n return this.callable(context);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAkBO,MAAMA,mBAAmB,SAASC,eAAM,CAAC;EAKrCC,WAAW,CAACC,QAAqC,EAAE;IACtD,KAAK,EAAE;IAAC;IAER,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC5B;EAEA,MAAaC,aAAa,CAACC,OAAmB,EAA+C;IACzF,OAAO,IAAI,CAACF,QAAQ,CAACE,OAAO,CAAC;EACjC;AACJ;AAAC;AAAA,8BAdYL,mBAAmB,UACmB,uBAAuB"}
1
+ {"version":3,"names":["CmsParametersPlugin","Plugin","constructor","callable","getParameters","context"],"sources":["CmsParametersPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\n\n/**\n * Type can be null because it might be that Headless CMS context is loaded on a different Lambda where there is no GraphQL Schema generated.\n */\nexport type CmsParametersPluginResponseType = ApiEndpoint | null;\nexport type CmsParametersPluginResponseLocale = string;\n\nexport interface CmsParametersPluginResponse {\n type: CmsParametersPluginResponseType;\n locale: CmsParametersPluginResponseLocale;\n}\n\nexport interface CmsParametersPluginCallable {\n (context: CmsContext): Promise<CmsParametersPluginResponse | null>;\n}\n\nexport class CmsParametersPlugin extends Plugin {\n public static override readonly type: string = \"cms-parameters-plugin\";\n\n private readonly callable: CmsParametersPluginCallable;\n\n public constructor(callable: CmsParametersPluginCallable) {\n super();\n\n this.callable = callable;\n }\n\n public async getParameters(context: CmsContext): Promise<CmsParametersPluginResponse | null> {\n return this.callable(context);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AAkBO,MAAMA,mBAAN,SAAkCC,eAAlC,CAAyC;EAKrCC,WAAW,CAACC,QAAD,EAAwC;IACtD;IADsD;IAGtD,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;EAEyB,MAAbC,aAAa,CAACC,OAAD,EAAmE;IACzF,OAAO,KAAKF,QAAL,CAAcE,OAAd,CAAP;EACH;;AAb2C;;;8BAAnCL,mB,UACsC,uB"}
@@ -10,7 +10,7 @@ export interface ToStorageParams<T> {
10
10
  }
11
11
  export interface FromStorageParams<T> {
12
12
  model: CmsModel;
13
- field: CmsModelField;
13
+ field: Partial<CmsModelField> & Pick<CmsModelField, "id" | "fieldId" | "storageId" | "type" | "settings">;
14
14
  value: T;
15
15
  getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;
16
16
  plugins: PluginsContainer;
@@ -1,28 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.StorageTransformPlugin = void 0;
9
+
8
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
9
12
  var _Plugin = require("@webiny/plugins/Plugin");
13
+
10
14
  class StorageTransformPlugin extends _Plugin.Plugin {
11
15
  get fieldType() {
12
16
  return this.config.fieldType;
13
17
  }
18
+
14
19
  constructor(config) {
15
20
  super();
16
21
  (0, _defineProperty2.default)(this, "config", void 0);
17
22
  this.name = config.name;
18
23
  this.config = config;
19
24
  }
25
+
20
26
  toStorage(params) {
21
27
  return this.config.toStorage(params);
22
28
  }
29
+
23
30
  fromStorage(params) {
24
31
  return this.config.fromStorage(params);
25
32
  }
33
+
26
34
  }
35
+
27
36
  exports.StorageTransformPlugin = StorageTransformPlugin;
28
37
  (0, _defineProperty2.default)(StorageTransformPlugin, "type", "cms.storage.transform.plugin");
@@ -1 +1 @@
1
- {"version":3,"names":["StorageTransformPlugin","Plugin","fieldType","config","constructor","name","toStorage","params","fromStorage"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R> {\n name?: string;\n fieldType: string;\n toStorage: (params: ToStorageParams<T>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R>) => Promise<T>;\n}\nexport class StorageTransformPlugin<T = any, R = any> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R>;\n\n public constructor(config: StorageTransformPluginParams<T, R>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AA0BO,MAAMA,sBAAsB,SAA2BC,cAAM,CAAC;EAEjE,IAAWC,SAAS,GAAW;IAC3B,OAAO,IAAI,CAACC,MAAM,CAACD,SAAS;EAChC;EAIOE,WAAW,CAACD,MAA0C,EAAE;IAC3D,KAAK,EAAE;IAAC;IACR,IAAI,CAACE,IAAI,GAAGF,MAAM,CAACE,IAAI;IACvB,IAAI,CAACF,MAAM,GAAGA,MAAM;EACxB;EAEOG,SAAS,CAACC,MAA0B,EAAc;IACrD,OAAO,IAAI,CAACJ,MAAM,CAACG,SAAS,CAACC,MAAM,CAAC;EACxC;EAEOC,WAAW,CAACD,MAA4B,EAAc;IACzD,OAAO,IAAI,CAACJ,MAAM,CAACK,WAAW,CAACD,MAAM,CAAC;EAC1C;AACJ;AAAC;AAAA,8BArBYP,sBAAsB,UACgB,8BAA8B"}
1
+ {"version":3,"names":["StorageTransformPlugin","Plugin","fieldType","config","constructor","name","toStorage","params","fromStorage"],"sources":["StorageTransformPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\nimport { CmsModel, CmsModelField } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\nexport interface ToStorageParams<T> {\n model: CmsModel;\n field: CmsModelField;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface FromStorageParams<T> {\n model: CmsModel;\n field: Partial<CmsModelField> &\n Pick<CmsModelField, \"id\" | \"fieldId\" | \"storageId\" | \"type\" | \"settings\">;\n value: T;\n getStoragePlugin(fieldType: string): StorageTransformPlugin<T>;\n plugins: PluginsContainer;\n}\n\nexport interface StorageTransformPluginParams<T, R> {\n name?: string;\n fieldType: string;\n toStorage: (params: ToStorageParams<T>) => Promise<R>;\n fromStorage: (params: FromStorageParams<R>) => Promise<T>;\n}\nexport class StorageTransformPlugin<T = any, R = any> extends Plugin {\n public static override readonly type: string = \"cms.storage.transform.plugin\";\n public get fieldType(): string {\n return this.config.fieldType;\n }\n\n private readonly config: StorageTransformPluginParams<T, R>;\n\n public constructor(config: StorageTransformPluginParams<T, R>) {\n super();\n this.name = config.name;\n this.config = config;\n }\n\n public toStorage(params: ToStorageParams<T>): Promise<R> {\n return this.config.toStorage(params);\n }\n\n public fromStorage(params: FromStorageParams<R>): Promise<T> {\n return this.config.fromStorage(params);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AA2BO,MAAMA,sBAAN,SAAuDC,cAAvD,CAA8D;EAE7C,IAATC,SAAS,GAAW;IAC3B,OAAO,KAAKC,MAAL,CAAYD,SAAnB;EACH;;EAIME,WAAW,CAACD,MAAD,EAA6C;IAC3D;IAD2D;IAE3D,KAAKE,IAAL,GAAYF,MAAM,CAACE,IAAnB;IACA,KAAKF,MAAL,GAAcA,MAAd;EACH;;EAEMG,SAAS,CAACC,MAAD,EAAyC;IACrD,OAAO,KAAKJ,MAAL,CAAYG,SAAZ,CAAsBC,MAAtB,CAAP;EACH;;EAEMC,WAAW,CAACD,MAAD,EAA2C;IACzD,OAAO,KAAKJ,MAAL,CAAYK,WAAZ,CAAwBD,MAAxB,CAAP;EACH;;AApBgE;;;8BAAxDP,sB,UACsC,8B"}
package/plugins/index.js CHANGED
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+
6
7
  var _CmsGroupPlugin = require("./CmsGroupPlugin");
8
+
7
9
  Object.keys(_CmsGroupPlugin).forEach(function (key) {
8
10
  if (key === "default" || key === "__esModule") return;
9
11
  if (key in exports && exports[key] === _CmsGroupPlugin[key]) return;
@@ -14,7 +16,9 @@ Object.keys(_CmsGroupPlugin).forEach(function (key) {
14
16
  }
15
17
  });
16
18
  });
19
+
17
20
  var _CmsModelPlugin = require("./CmsModelPlugin");
21
+
18
22
  Object.keys(_CmsModelPlugin).forEach(function (key) {
19
23
  if (key === "default" || key === "__esModule") return;
20
24
  if (key in exports && exports[key] === _CmsModelPlugin[key]) return;
@@ -25,7 +29,9 @@ Object.keys(_CmsModelPlugin).forEach(function (key) {
25
29
  }
26
30
  });
27
31
  });
32
+
28
33
  var _StorageTransformPlugin = require("./StorageTransformPlugin");
34
+
29
35
  Object.keys(_StorageTransformPlugin).forEach(function (key) {
30
36
  if (key === "default" || key === "__esModule") return;
31
37
  if (key in exports && exports[key] === _StorageTransformPlugin[key]) return;
@@ -36,7 +42,9 @@ Object.keys(_StorageTransformPlugin).forEach(function (key) {
36
42
  }
37
43
  });
38
44
  });
45
+
39
46
  var _CmsParametersPlugin = require("./CmsParametersPlugin");
47
+
40
48
  Object.keys(_CmsParametersPlugin).forEach(function (key) {
41
49
  if (key === "default" || key === "__esModule") return;
42
50
  if (key in exports && exports[key] === _CmsParametersPlugin[key]) return;
@@ -47,7 +55,9 @@ Object.keys(_CmsParametersPlugin).forEach(function (key) {
47
55
  }
48
56
  });
49
57
  });
58
+
50
59
  var _CmsModelFieldConverterPlugin = require("./CmsModelFieldConverterPlugin");
60
+
51
61
  Object.keys(_CmsModelFieldConverterPlugin).forEach(function (key) {
52
62
  if (key === "default" || key === "__esModule") return;
53
63
  if (key in exports && exports[key] === _CmsModelFieldConverterPlugin[key]) return;