@webiny/api-headless-cms 5.39.0-beta.0 → 5.39.0-beta.2

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 (250) hide show
  1. package/constants.d.ts +31 -0
  2. package/constants.js +48 -1
  3. package/constants.js.map +1 -1
  4. package/context.js +40 -34
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  7. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  8. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  9. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  10. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  11. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  12. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  13. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  14. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  16. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  17. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  19. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  20. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  22. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  23. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  25. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  26. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  28. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  29. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  31. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  32. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  33. package/crud/contentEntry/entryDataValidation.js +29 -24
  34. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  35. package/crud/contentEntry/markLockedFields.js +14 -9
  36. package/crud/contentEntry/markLockedFields.js.map +1 -1
  37. package/crud/contentEntry/referenceFieldsMapping.js +10 -12
  38. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  39. package/crud/contentEntry/searchableFields.js +2 -3
  40. package/crud/contentEntry/searchableFields.js.map +1 -1
  41. package/crud/contentEntry.crud.d.ts +1 -4
  42. package/crud/contentEntry.crud.js +140 -383
  43. package/crud/contentEntry.crud.js.map +1 -1
  44. package/crud/contentModel/fields/descriptionField.js +1 -1
  45. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  46. package/crud/contentModel/fields/imageField.js +3 -7
  47. package/crud/contentModel/fields/imageField.js.map +1 -1
  48. package/crud/contentModel/fields/titleField.js +1 -1
  49. package/crud/contentModel/fields/titleField.js.map +1 -1
  50. package/crud/contentModel/listModelsFromDatabase.js +3 -4
  51. package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
  52. package/crud/contentModel/validateModelFields.js +4 -5
  53. package/crud/contentModel/validateModelFields.js.map +1 -1
  54. package/crud/contentModel/validation.d.ts +96 -96
  55. package/crud/contentModel.crud.js +28 -26
  56. package/crud/contentModel.crud.js.map +1 -1
  57. package/crud/contentModelGroup/validation.d.ts +1 -1
  58. package/crud/contentModelGroup.crud.js +18 -15
  59. package/crud/contentModelGroup.crud.js.map +1 -1
  60. package/crud/system.crud.js +4 -4
  61. package/crud/system.crud.js.map +1 -1
  62. package/export/crud/exporting.js +2 -3
  63. package/export/crud/exporting.js.map +1 -1
  64. package/export/crud/importing.js +3 -3
  65. package/export/crud/importing.js.map +1 -1
  66. package/export/crud/imports/importData.js +30 -3
  67. package/export/crud/imports/importData.js.map +1 -1
  68. package/export/crud/imports/importGroups.js +15 -10
  69. package/export/crud/imports/importGroups.js.map +1 -1
  70. package/export/crud/imports/importModels.js +14 -12
  71. package/export/crud/imports/importModels.js.map +1 -1
  72. package/export/crud/imports/validateGroups.js +13 -7
  73. package/export/crud/imports/validateGroups.js.map +1 -1
  74. package/export/crud/imports/validateInput.js +15 -9
  75. package/export/crud/imports/validateInput.js.map +1 -1
  76. package/export/crud/imports/validateModels.d.ts +4 -1
  77. package/export/crud/imports/validateModels.js +24 -25
  78. package/export/crud/imports/validateModels.js.map +1 -1
  79. package/export/types.d.ts +2 -0
  80. package/export/types.js.map +1 -1
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -6
  82. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  83. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +2 -7
  84. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  85. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +44 -37
  86. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  87. package/graphql/getSchema.js +15 -9
  88. package/graphql/getSchema.js.map +1 -1
  89. package/graphql/index.d.ts +1 -1
  90. package/graphql/schema/baseContentSchema.js +6 -7
  91. package/graphql/schema/baseContentSchema.js.map +1 -1
  92. package/graphql/schema/baseSchema.js +1 -8
  93. package/graphql/schema/baseSchema.js.map +1 -1
  94. package/graphql/schema/contentEntries.js +44 -13
  95. package/graphql/schema/contentEntries.js.map +1 -1
  96. package/graphql/schema/contentModelGroups.js +1 -1
  97. package/graphql/schema/contentModelGroups.js.map +1 -1
  98. package/graphql/schema/contentModels.js +5 -5
  99. package/graphql/schema/contentModels.js.map +1 -1
  100. package/graphql/schema/createFieldResolvers.js +11 -11
  101. package/graphql/schema/createFieldResolvers.js.map +1 -1
  102. package/graphql/schema/createManageResolvers.js +6 -9
  103. package/graphql/schema/createManageResolvers.js.map +1 -1
  104. package/graphql/schema/createManageSDL.js +30 -24
  105. package/graphql/schema/createManageSDL.js.map +1 -1
  106. package/graphql/schema/createPreviewResolvers.js +4 -5
  107. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  108. package/graphql/schema/createReadResolvers.js +4 -5
  109. package/graphql/schema/createReadResolvers.js.map +1 -1
  110. package/graphql/schema/createReadSDL.js +9 -4
  111. package/graphql/schema/createReadSDL.js.map +1 -1
  112. package/graphql/schema/resolvers/manage/resolveDelete.js +1 -1
  113. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  114. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +1 -1
  115. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  116. package/graphql/schema/resolvers/manage/resolveGet.js +9 -4
  117. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  118. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -2
  119. package/graphql/schema/resolvers/manage/resolvePublish.js +1 -1
  120. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  121. package/graphql/schema/resolvers/preview/resolveGet.js +3 -4
  122. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  123. package/graphql/schema/resolvers/read/resolveGet.js +3 -4
  124. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  125. package/graphqlFields/datetime.js +1 -2
  126. package/graphqlFields/datetime.js.map +1 -1
  127. package/graphqlFields/dynamicZone/dynamicZoneField.js +13 -13
  128. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  129. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +6 -6
  130. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  131. package/graphqlFields/index.js +2 -1
  132. package/graphqlFields/index.js.map +1 -1
  133. package/graphqlFields/json.d.ts +2 -0
  134. package/graphqlFields/json.js +49 -0
  135. package/graphqlFields/json.js.map +1 -0
  136. package/graphqlFields/object.js +20 -28
  137. package/graphqlFields/object.js.map +1 -1
  138. package/graphqlFields/ref.js +24 -14
  139. package/graphqlFields/ref.js.map +1 -1
  140. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  141. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  142. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  143. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  144. package/graphqlFields/richText/richTextResolver.js +39 -0
  145. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  146. package/graphqlFields/richText.js +8 -2
  147. package/graphqlFields/richText.js.map +1 -1
  148. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  149. package/htmlRenderer/LexicalRenderer.js +28 -0
  150. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  151. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  152. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  153. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  154. package/index.d.ts +1 -1
  155. package/index.js +4 -4
  156. package/index.js.map +1 -1
  157. package/modelManager/DefaultCmsModelManager.js +0 -4
  158. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  159. package/package.json +21 -19
  160. package/parameters/context.js +1 -1
  161. package/parameters/context.js.map +1 -1
  162. package/parameters/header.js +1 -2
  163. package/parameters/header.js.map +1 -1
  164. package/parameters/manual.js +6 -3
  165. package/parameters/manual.js.map +1 -1
  166. package/parameters/path.js +1 -2
  167. package/parameters/path.js.map +1 -1
  168. package/plugins/CmsGraphQLSchemaPlugin.js +3 -4
  169. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  170. package/plugins/CmsGraphQLSchemaSorterPlugin.js +1 -4
  171. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  172. package/plugins/CmsGroupPlugin.js +4 -7
  173. package/plugins/CmsGroupPlugin.js.map +1 -1
  174. package/plugins/CmsModelFieldConverterPlugin.js +3 -4
  175. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  176. package/plugins/CmsModelPlugin.d.ts +6 -4
  177. package/plugins/CmsModelPlugin.js +52 -27
  178. package/plugins/CmsModelPlugin.js.map +1 -1
  179. package/plugins/CmsParametersPlugin.js +1 -4
  180. package/plugins/CmsParametersPlugin.js.map +1 -1
  181. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  182. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  183. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  184. package/plugins/StorageOperationsCmsModelPlugin.js +3 -6
  185. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  186. package/plugins/StorageTransformPlugin.d.ts +2 -2
  187. package/plugins/StorageTransformPlugin.js +1 -4
  188. package/plugins/StorageTransformPlugin.js.map +1 -1
  189. package/plugins/index.d.ts +1 -0
  190. package/plugins/index.js +11 -0
  191. package/plugins/index.js.map +1 -1
  192. package/storage/index.d.ts +1 -0
  193. package/storage/index.js +15 -0
  194. package/storage/index.js.map +1 -0
  195. package/storage/json.d.ts +2 -0
  196. package/storage/json.js +27 -0
  197. package/storage/json.js.map +1 -0
  198. package/storage/object.js +5 -7
  199. package/storage/object.js.map +1 -1
  200. package/types.d.ts +182 -53
  201. package/types.js +0 -3
  202. package/types.js.map +1 -1
  203. package/utils/access.d.ts +0 -1
  204. package/utils/access.js +1 -10
  205. package/utils/access.js.map +1 -1
  206. package/utils/caching/Cache.js +3 -5
  207. package/utils/caching/Cache.js.map +1 -1
  208. package/utils/caching/CacheKey.js +0 -3
  209. package/utils/caching/CacheKey.js.map +1 -1
  210. package/utils/converters/Converter.js +1 -4
  211. package/utils/converters/Converter.js.map +1 -1
  212. package/utils/converters/ConverterCollection.js +10 -6
  213. package/utils/converters/ConverterCollection.js.map +1 -1
  214. package/utils/converters/valueKeyStorageConverter.js +3 -3
  215. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  216. package/utils/date.d.ts +2 -2
  217. package/utils/date.js +1 -1
  218. package/utils/date.js.map +1 -1
  219. package/utils/entryStorage.js +3 -3
  220. package/utils/entryStorage.js.map +1 -1
  221. package/utils/identity.d.ts +2 -0
  222. package/utils/identity.js +20 -0
  223. package/utils/identity.js.map +1 -0
  224. package/utils/permissions/ModelsPermissions.js +0 -3
  225. package/utils/permissions/ModelsPermissions.js.map +1 -1
  226. package/utils/renderGetFilterFields.js +2 -3
  227. package/utils/renderGetFilterFields.js.map +1 -1
  228. package/utils/renderListFilterFields.js +9 -3
  229. package/utils/renderListFilterFields.js.map +1 -1
  230. package/utils/renderSortEnum.js +2 -1
  231. package/utils/renderSortEnum.js.map +1 -1
  232. package/validators/gte.js +1 -2
  233. package/validators/gte.js.map +1 -1
  234. package/validators/in.js +1 -2
  235. package/validators/in.js.map +1 -1
  236. package/validators/lte.js +1 -2
  237. package/validators/lte.js.map +1 -1
  238. package/validators/maxLength.js +1 -2
  239. package/validators/maxLength.js.map +1 -1
  240. package/validators/minLength.js +1 -2
  241. package/validators/minLength.js.map +1 -1
  242. package/validators/pattern.js +2 -2
  243. package/validators/pattern.js.map +1 -1
  244. package/validators/timeGte.js +1 -2
  245. package/validators/timeGte.js.map +1 -1
  246. package/validators/timeLte.js +1 -2
  247. package/validators/timeLte.js.map +1 -1
  248. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  249. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -15
  250. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
@@ -5,15 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ConverterCollection = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
8
  var _error = _interopRequireDefault(require("@webiny/error"));
11
9
  var _Converter = require("./Converter");
12
10
  var _plugins = require("../../plugins");
13
11
  var _getBaseFieldType = require("../getBaseFieldType");
14
12
  class ConverterCollection {
13
+ converters = new Map();
15
14
  constructor(params) {
16
- (0, _defineProperty2.default)(this, "converters", new Map());
17
15
  const {
18
16
  plugins
19
17
  } = params;
@@ -64,7 +62,10 @@ class ConverterCollection {
64
62
  field,
65
63
  value: inputValues[field.fieldId]
66
64
  });
67
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), values);
65
+ return {
66
+ ...output,
67
+ ...values
68
+ };
68
69
  }, {});
69
70
  }
70
71
  convertFromStorage(params) {
@@ -85,7 +86,10 @@ class ConverterCollection {
85
86
  field,
86
87
  value: inputValues[field.storageId]
87
88
  });
88
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, output), values);
89
+ return {
90
+ ...output,
91
+ ...values
92
+ };
89
93
  }, {});
90
94
  }
91
95
 
@@ -104,7 +108,7 @@ class ConverterCollection {
104
108
  // maybe it's an array?
105
109
  Array.isArray(values) ||
106
110
  // and in the end, check if hasOwnProperty is a function already
107
- typeof (values === null || values === void 0 ? void 0 : values.hasOwnProperty) === "function") {
111
+ typeof values?.hasOwnProperty === "function") {
108
112
  return;
109
113
  }
110
114
  Object.defineProperty(values, "hasOwnProperty", {
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_Converter","_plugins","_getBaseFieldType","ConverterCollection","constructor","params","_defineProperty2","default","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","_objectSpread2","convertFromStorage","storageId","Array","isArray","Object","defineProperty","enumerable","writable","property","exports"],"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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,iBAAA,GAAAH,OAAA;AAmBO,MAAMI,mBAAmB,CAAC;EAGtBC,WAAWA,CAACC,MAAiC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,sBAFA,IAAIC,GAAG,CAAC,CAAC;IAG3D,MAAM;MAAEC;IAAQ,CAAC,GAAGJ,MAAM;IAC1B,MAAMK,mBAAmB,GAAGD,OAAO,CAACE,MAAM,CACtC,4BACJ,CAAC;IACD,MAAMC,qBAAqB,GAAGH,OAAO,CAACE,MAAM,CACxCE,qCAA4B,CAACC,IACjC,CAAC;IACD,MAAMC,2BAA2B,GAAGH,qBAAqB,CAACI,IAAI,CAC1DC,EAAE,IAAIA,EAAE,CAACC,YAAY,CAAC,CAAC,KAAK,GAChC,CAAC;IACD,IAAIH,2BAA2B,KAAKI,SAAS,EAAE;MAC3C,MAAM,IAAIC,cAAW,CAChB,yCAAwC,EACzC,+BACJ,CAAC;IACL;IACA,KAAK,MAAMC,kBAAkB,IAAIX,mBAAmB,EAAE;MAClD,MAAMY,MAAM,GAAGV,qBAAqB,CAACI,IAAI,CACrCC,EAAE,IAAIA,EAAE,CAACC,YAAY,CAAC,CAAC,KAAKG,kBAAkB,CAACE,SACnD,CAAC;MACD,MAAMC,SAAS,GAAG,IAAIC,oBAAS,CAAC;QAC5BX,IAAI,EAAEO,kBAAkB,CAACE,SAAS;QAClCD,MAAM,EAAEA,MAAM,IAAIP;MACtB,CAAC,CAAC;MAEF,IAAI,CAACW,YAAY,CAACF,SAAS,CAAC;IAChC;EACJ;EAEOE,YAAYA,CAACF,SAAoB,EAAQ;IAC5CA,SAAS,CAACG,sBAAsB,CAAC,IAAI,CAAC;IACtC,IAAI,CAACC,UAAU,CAACC,GAAG,CAACL,SAAS,CAACM,OAAO,CAAC,CAAC,EAAEN,SAAS,CAAC;EACvD;EAEOO,YAAYA,CAACjB,IAAY,EAAa;IACzC,MAAMU,SAAS,GAAG,IAAI,CAACI,UAAU,CAACI,GAAG,CAAClB,IAAI,CAAC;IAC3C,IAAIU,SAAS,KAAKL,SAAS,EAAE;MACzB,MAAM,IAAIC,cAAW,CAChB,qCAAoCN,IAAK,IAAG,EAC7C,iBAAiB,EACjB;QACIA;MACJ,CACJ,CAAC;IACL;IACA,OAAOU,SAAS;EACpB;EAEOS,gBAAgBA,CAAC5B,MAAwC,EAA8B;IAC1F,MAAM;MAAE6B,MAAM;MAAEC,MAAM,EAAEC;IAAY,CAAC,GAAG/B,MAAM;IAC9C,IAAI+B,WAAW,KAAKjB,SAAS,EAAE;MAC3B,OAAOA,SAAS;IACpB;IAEA,IAAI,CAACkB,oBAAoB,CAACD,WAAW,CAAC;IAEtC,OAAOF,MAAM,CAACI,MAAM,CAAiB,CAACC,MAAM,EAAEC,KAAK,KAAK;MACpD,MAAMC,QAAQ,GAAG,IAAAC,kCAAgB,EAACF,KAAK,CAAC;MACxC,MAAMhB,SAAS,GAAG,IAAI,CAACO,YAAY,CAACU,QAAQ,CAAC;MAC7C,IAAIL,WAAW,KAAK,IAAI,IAAIA,WAAW,CAACO,cAAc,CAACH,KAAK,CAACI,OAAO,CAAC,KAAK,KAAK,EAAE;QAC7E,OAAOL,MAAM;MACjB;MACA,MAAMJ,MAAM,GAAGX,SAAS,CAACS,gBAAgB,CAAC;QACtCO,KAAK;QACLK,KAAK,EAAET,WAAW,CAACI,KAAK,CAACI,OAAO;MACpC,CAAC,CAAC;MAEF,WAAAE,cAAA,CAAAvC,OAAA,MAAAuC,cAAA,CAAAvC,OAAA,MACOgC,MAAM,GACNJ,MAAM;IAEjB,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;EAEOY,kBAAkBA,CACrB1C,MAAwC,EACd;IAC1B,MAAM;MAAE6B,MAAM;MAAEC,MAAM,EAAEC;IAAY,CAAC,GAAG/B,MAAM;IAC9C,IAAI+B,WAAW,KAAKjB,SAAS,EAAE;MAC3B,OAAOA,SAAS;IACpB;IAEA,OAAOe,MAAM,CAACI,MAAM,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;MACpC,MAAMC,QAAQ,GAAG,IAAAC,kCAAgB,EAACF,KAAK,CAAC;MACxC,MAAMhB,SAAS,GAAG,IAAI,CAACO,YAAY,CAACU,QAAQ,CAAC;MAC7C,IAAIL,WAAW,KAAK,IAAI,IAAIA,WAAW,CAACO,cAAc,CAACH,KAAK,CAACQ,SAAS,CAAC,KAAK,KAAK,EAAE;QAC/E,OAAOT,MAAM;MACjB;MACA,MAAMJ,MAAM,GAAGX,SAAS,CAACuB,kBAAkB,CAAC;QACxCP,KAAK;QACLK,KAAK,EAAET,WAAW,CAACI,KAAK,CAACQ,SAAS;MACtC,CAAC,CAAC;MAEF,WAAAF,cAAA,CAAAvC,OAAA,MAAAuC,cAAA,CAAAvC,OAAA,MACOgC,MAAM,GACNJ,MAAM;IAEjB,CAAC,EAAE,CAAC,CAAC,CAAC;EACV;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACYE,oBAAoBA,CAACF,MAAsB,EAAE;IACjD;IACI;IACAA,MAAM,KAAK,IAAI,IACfA,MAAM,KAAKhB,SAAS;IACpB;IACA,OAAOgB,MAAM,KAAK,QAAQ;IAC1B;IACAc,KAAK,CAACC,OAAO,CAACf,MAAM,CAAC;IACrB;IACA,QAAOA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEQ,cAAc,MAAK,UAAU,EAC9C;MACE;IACJ;IACAQ,MAAM,CAACC,cAAc,CAACjB,MAAM,EAAE,gBAAgB,EAAE;MAC5CkB,UAAU,EAAE,KAAK;MACjBC,QAAQ,EAAE,KAAK;MACfT,KAAK,EAAE,SAAAA,CAAUU,QAAgB,EAAE;QAC/B,OAAO,IAAI,CAACA,QAAQ,CAAC,KAAKpC,SAAS;MACvC;IACJ,CAAC,CAAC;EACN;AACJ;AAACqC,OAAA,CAAArD,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_Converter","_plugins","_getBaseFieldType","ConverterCollection","converters","Map","constructor","params","plugins","fieldGraphQLPlugins","byType","fieldConverterPlugins","CmsModelFieldConverterPlugin","type","defaultFieldConverterPlugin","find","pl","getFieldType","undefined","WebinyError","fieldGraphQLPlugin","plugin","fieldType","converter","Converter","addConverter","setConverterCollection","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","exports"],"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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"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createValueKeyToStorageConverter = exports.createValueKeyFromStorageConverter = exports.createCmsModelFieldConvertersAttachFactory = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _ConverterCollection = require("./ConverterCollection");
10
9
  var _semver = _interopRequireDefault(require("semver"));
11
10
  const featureVersion = _semver.default.coerce("5.33.0");
@@ -118,7 +117,8 @@ const createCmsModelFieldConvertersAttachFactory = plugins => {
118
117
  if (!!storageModel.convertValueKeyToStorage && !!storageModel.convertValueKeyFromStorage) {
119
118
  return storageModel;
120
119
  }
121
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
120
+ return {
121
+ ...model,
122
122
  convertValueKeyToStorage: createValueKeyToStorageConverter({
123
123
  model,
124
124
  plugins
@@ -127,7 +127,7 @@ const createCmsModelFieldConvertersAttachFactory = plugins => {
127
127
  model,
128
128
  plugins
129
129
  })
130
- });
130
+ };
131
131
  };
132
132
  };
133
133
  exports.createCmsModelFieldConvertersAttachFactory = createCmsModelFieldConvertersAttachFactory;
@@ -1 +1 @@
1
- {"version":3,"names":["_ConverterCollection","require","_semver","_interopRequireDefault","featureVersion","semver","coerce","isBetaOrNext","model","webinyVersion","startsWith","match","isFeatureEnabled","disableConversion","process","env","WEBINY_API_TEST_STORAGE_ID_CONVERSION_DISABLE","nodeEnv","NODE_ENV","modelVersion","console","log","modelId","compare","createValueKeyToStorageConverter","params","plugins","values","converters","ConverterCollection","fields","result","convertToStorage","exports","createValueKeyFromStorageConverter","convertFromStorage","createCmsModelFieldConvertersAttachFactory","storageModel","convertValueKeyToStorage","convertValueKeyFromStorage","_objectSpread2","default"],"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 } else if (model.webinyVersion.startsWith(\"0.0.0\")) {\n return true;\n }\n return model.webinyVersion.match(/next|beta|unstable/) !== 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 const disableConversion = !!process.env.WEBINY_API_TEST_STORAGE_ID_CONVERSION_DISABLE;\n if (model.webinyVersion === \"disable\" || disableConversion) {\n return false;\n }\n /**\n * If is a test environment, always have this turned on.\n */\n const nodeEnv = process.env.NODE_ENV as string;\n if (nodeEnv === \"test\" || nodeEnv === \"disable\" || isBetaOrNext(model)) {\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\nexport const createCmsModelFieldConvertersAttachFactory = (plugins: PluginsContainer) => {\n return (model: StorageOperationsCmsModel | CmsModel): StorageOperationsCmsModel => {\n const storageModel = model as Partial<StorageOperationsCmsModel>;\n if (!!storageModel.convertValueKeyToStorage && !!storageModel.convertValueKeyFromStorage) {\n return storageModel as StorageOperationsCmsModel;\n }\n return {\n ...model,\n convertValueKeyToStorage: createValueKeyToStorageConverter({\n model,\n plugins\n }),\n convertValueKeyFromStorage: createValueKeyFromStorageConverter({\n model,\n plugins\n })\n };\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_ConverterCollection","require","_semver","_interopRequireDefault","featureVersion","semver","coerce","isBetaOrNext","model","webinyVersion","startsWith","match","isFeatureEnabled","disableConversion","process","env","WEBINY_API_TEST_STORAGE_ID_CONVERSION_DISABLE","nodeEnv","NODE_ENV","modelVersion","console","log","modelId","compare","createValueKeyToStorageConverter","params","plugins","values","converters","ConverterCollection","fields","result","convertToStorage","exports","createValueKeyFromStorageConverter","convertFromStorage","createCmsModelFieldConvertersAttachFactory","storageModel","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 } else if (model.webinyVersion.startsWith(\"0.0.0\")) {\n return true;\n }\n return model.webinyVersion.match(/next|beta|unstable/) !== 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 const disableConversion = !!process.env.WEBINY_API_TEST_STORAGE_ID_CONVERSION_DISABLE;\n if (model.webinyVersion === \"disable\" || disableConversion) {\n return false;\n }\n /**\n * If is a test environment, always have this turned on.\n */\n const nodeEnv = process.env.NODE_ENV as string;\n if (nodeEnv === \"test\" || nodeEnv === \"disable\" || isBetaOrNext(model)) {\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\nexport const createCmsModelFieldConvertersAttachFactory = (plugins: PluginsContainer) => {\n return (model: StorageOperationsCmsModel | CmsModel): StorageOperationsCmsModel => {\n const storageModel = model as Partial<StorageOperationsCmsModel>;\n if (!!storageModel.convertValueKeyToStorage && !!storageModel.convertValueKeyFromStorage) {\n return storageModel as StorageOperationsCmsModel;\n }\n return {\n ...model,\n convertValueKeyToStorage: createValueKeyToStorageConverter({\n model,\n plugins\n }),\n convertValueKeyFromStorage: createValueKeyFromStorageConverter({\n model,\n plugins\n })\n };\n };\n};\n"],"mappings":"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"}
package/utils/date.d.ts CHANGED
@@ -2,9 +2,9 @@
2
2
  * Should not be used by users as method is prone to breaking changes.
3
3
  * @internal
4
4
  */
5
- export declare const formatDate: (date?: Date | string | null) => string | undefined;
5
+ export declare const formatDate: (date?: Date | string | null) => string | null;
6
6
  /**
7
7
  * Should not be used by users as method is prone to breaking changes.
8
8
  * @internal
9
9
  */
10
- export declare const getDate: <T extends string | undefined = string | undefined>(input?: Date | string | null, defaultValue?: Date | string | null) => T;
10
+ export declare const getDate: <T extends string | null = string | null>(input?: Date | string | null, defaultValue?: Date | string | null) => T;
package/utils/date.js CHANGED
@@ -10,7 +10,7 @@ exports.getDate = exports.formatDate = void 0;
10
10
  */
11
11
  const formatDate = date => {
12
12
  if (!date) {
13
- return undefined;
13
+ return null;
14
14
  } else if (date instanceof Date) {
15
15
  return date.toISOString();
16
16
  }
package/utils/date.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["formatDate","date","undefined","Date","toISOString","exports","getDate","input","defaultValue"],"sources":["date.ts"],"sourcesContent":["/**\n * Should not be used by users as method is prone to breaking changes.\n * @internal\n */\nexport const formatDate = (date?: Date | string | null): string | undefined => {\n if (!date) {\n return undefined;\n } else if (date instanceof Date) {\n return date.toISOString();\n }\n return new Date(date).toISOString();\n};\n\n/**\n * Should not be used by users as method is prone to breaking changes.\n * @internal\n */\nexport const getDate = <T extends string | undefined = string | undefined>(\n input?: Date | string | null,\n defaultValue?: Date | string | null\n): T => {\n if (!input) {\n return formatDate(defaultValue) as T;\n }\n if (input instanceof Date) {\n return formatDate(input) as T;\n }\n return formatDate(new Date(input)) as T;\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACO,MAAMA,UAAU,GAAIC,IAA2B,IAAyB;EAC3E,IAAI,CAACA,IAAI,EAAE;IACP,OAAOC,SAAS;EACpB,CAAC,MAAM,IAAID,IAAI,YAAYE,IAAI,EAAE;IAC7B,OAAOF,IAAI,CAACG,WAAW,CAAC,CAAC;EAC7B;EACA,OAAO,IAAID,IAAI,CAACF,IAAI,CAAC,CAACG,WAAW,CAAC,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AAHAC,OAAA,CAAAL,UAAA,GAAAA,UAAA;AAIO,MAAMM,OAAO,GAAGA,CACnBC,KAA4B,EAC5BC,YAAmC,KAC/B;EACJ,IAAI,CAACD,KAAK,EAAE;IACR,OAAOP,UAAU,CAACQ,YAAY,CAAC;EACnC;EACA,IAAID,KAAK,YAAYJ,IAAI,EAAE;IACvB,OAAOH,UAAU,CAACO,KAAK,CAAC;EAC5B;EACA,OAAOP,UAAU,CAAC,IAAIG,IAAI,CAACI,KAAK,CAAC,CAAC;AACtC,CAAC;AAACF,OAAA,CAAAC,OAAA,GAAAA,OAAA"}
1
+ {"version":3,"names":["formatDate","date","Date","toISOString","exports","getDate","input","defaultValue"],"sources":["date.ts"],"sourcesContent":["/**\n * Should not be used by users as method is prone to breaking changes.\n * @internal\n */\nexport const formatDate = (date?: Date | string | null): string | null => {\n if (!date) {\n return null;\n } else if (date instanceof Date) {\n return date.toISOString();\n }\n return new Date(date).toISOString();\n};\n\n/**\n * Should not be used by users as method is prone to breaking changes.\n * @internal\n */\nexport const getDate = <T extends string | null = string | null>(\n input?: Date | string | null,\n defaultValue?: Date | string | null\n): T => {\n if (!input) {\n return formatDate(defaultValue) as T;\n }\n if (input instanceof Date) {\n return formatDate(input) as T;\n }\n return formatDate(new Date(input)) as T;\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACO,MAAMA,UAAU,GAAIC,IAA2B,IAAoB;EACtE,IAAI,CAACA,IAAI,EAAE;IACP,OAAO,IAAI;EACf,CAAC,MAAM,IAAIA,IAAI,YAAYC,IAAI,EAAE;IAC7B,OAAOD,IAAI,CAACE,WAAW,CAAC,CAAC;EAC7B;EACA,OAAO,IAAID,IAAI,CAACD,IAAI,CAAC,CAACE,WAAW,CAAC,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AAHAC,OAAA,CAAAJ,UAAA,GAAAA,UAAA;AAIO,MAAMK,OAAO,GAAGA,CACnBC,KAA4B,EAC5BC,YAAmC,KAC/B;EACJ,IAAI,CAACD,KAAK,EAAE;IACR,OAAON,UAAU,CAACO,YAAY,CAAC;EACnC;EACA,IAAID,KAAK,YAAYJ,IAAI,EAAE;IACvB,OAAOF,UAAU,CAACM,KAAK,CAAC;EAC5B;EACA,OAAON,UAAU,CAAC,IAAIE,IAAI,CAACI,KAAK,CAAC,CAAC;AACtC,CAAC;AAACF,OAAA,CAAAC,OAAA,GAAAA,OAAA"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.entryToStorageTransform = exports.entryFromStorageTransform = exports.entryFieldFromStorageTransform = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _error = _interopRequireDefault(require("@webiny/error"));
10
9
  var _StorageTransformPlugin = require("../plugins/StorageTransformPlugin");
11
10
  var _getBaseFieldType = require("./getBaseFieldType");
@@ -55,9 +54,10 @@ const entryStorageTransform = async (context, model, operation, entry) => {
55
54
  getStoragePlugin
56
55
  });
57
56
  }
58
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entry), {}, {
57
+ return {
58
+ ...entry,
59
59
  values: transformedValues
60
- });
60
+ };
61
61
  };
62
62
 
63
63
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_StorageTransformPlugin","_getBaseFieldType","getStoragePluginFactory","context","defaultStoragePlugin","plugins","byType","StorageTransformPlugin","type","reverse","reduce","collection","plugin","fieldType","entryStorageTransform","model","operation","entry","getStoragePlugin","transformedValues","field","fields","baseType","getBaseFieldType","WebinyError","name","fieldId","value","values","_objectSpread2","default","entryToStorageTransform","exports","entryFromStorageTransform","entryFieldFromStorageTransform","params","fromStorage"],"sources":["entryStorage.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\nimport { CmsContext, CmsEntry, CmsModel, CmsModelField } from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface GetStoragePluginFactory {\n (context: Pick<CmsContext, \"plugins\">): (fieldType: string) => StorageTransformPlugin<any>;\n}\n\nconst getStoragePluginFactory: GetStoragePluginFactory = context => {\n let defaultStoragePlugin: StorageTransformPlugin;\n\n const plugins = context.plugins\n .byType<StorageTransformPlugin>(StorageTransformPlugin.type)\n // we reverse plugins because we want to get latest added only\n .reverse()\n .reduce((collection, plugin) => {\n /**\n * Check if it's a default plugin and set it - always override the previous one.\n */\n if (plugin.fieldType === \"*\") {\n defaultStoragePlugin = plugin;\n return collection;\n }\n\n /**\n * We will just set the plugin for given type.\n * The last one will override existing one - so users can override our default ones.\n */\n collection[plugin.fieldType] = plugin;\n\n return collection;\n }, {} as Record<string, StorageTransformPlugin>);\n\n return (fieldType: string) => {\n return plugins[fieldType] || defaultStoragePlugin;\n };\n};\n\n/**\n * This should be used when transforming the whole entry.\n */\nconst entryStorageTransform = async (\n context: Pick<CmsContext, \"plugins\">,\n model: CmsModel,\n operation: \"toStorage\" | \"fromStorage\",\n entry: CmsEntry\n): Promise<CmsEntry> => {\n const getStoragePlugin = getStoragePluginFactory(context);\n\n const transformedValues: Record<string, any> = {};\n for (const field of model.fields) {\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n // TODO: remove this once plugins are converted into classes\n if (typeof plugin[operation] !== \"function\") {\n throw new WebinyError(\n `Missing \"${operation}\" function in storage plugin \"${plugin.name}\" for field type \"${baseType}\"`\n );\n }\n\n transformedValues[field.fieldId] = await plugin[operation]({\n plugins: context.plugins,\n model,\n field,\n value: entry.values[field.fieldId],\n getStoragePlugin\n });\n }\n\n return { ...entry, values: transformedValues };\n};\n\n/**\n * A function that is used in crud to transform entry into the storage type.\n */\nexport const entryToStorageTransform = async (\n context: Pick<CmsContext, \"plugins\">,\n model: CmsModel,\n entry: CmsEntry\n): Promise<CmsEntry> => {\n return entryStorageTransform(context, model, \"toStorage\", entry);\n};\n\n/**\n * A function that is used to transform the whole entry from storage into its native form.\n */\nexport const entryFromStorageTransform = async (\n context: Pick<CmsContext, \"plugins\">,\n model: CmsModel,\n entry: CmsEntry\n): Promise<CmsEntry> => {\n return entryStorageTransform(context, model, \"fromStorage\", entry);\n};\n\ninterface EntryFieldFromStorageTransformParams {\n context: Pick<CmsContext, \"plugins\">;\n model: CmsModel;\n field: CmsModelField;\n value: any;\n}\n/*\n * A function that is used to transform a single field from storage\n */\nexport const entryFieldFromStorageTransform = async <T = any>(\n params: EntryFieldFromStorageTransformParams\n): Promise<T> => {\n const { context, model, field, value } = params;\n const getStoragePlugin = getStoragePluginFactory(context);\n\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n\n // TODO: remove this once plugins are converted into classes\n if (typeof plugin.fromStorage !== \"function\") {\n throw new WebinyError(\n `Missing \"fromStorage\" function in storage plugin \"${plugin.name}\" for field type \"${baseType}\"`\n );\n }\n\n return plugin.fromStorage({\n plugins: context.plugins,\n model,\n field,\n value,\n getStoragePlugin\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_StorageTransformPlugin","_getBaseFieldType","getStoragePluginFactory","context","defaultStoragePlugin","plugins","byType","StorageTransformPlugin","type","reverse","reduce","collection","plugin","fieldType","entryStorageTransform","model","operation","entry","getStoragePlugin","transformedValues","field","fields","baseType","getBaseFieldType","WebinyError","name","fieldId","value","values","entryToStorageTransform","exports","entryFromStorageTransform","entryFieldFromStorageTransform","params","fromStorage"],"sources":["entryStorage.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { StorageTransformPlugin } from \"~/plugins/StorageTransformPlugin\";\nimport { CmsContext, CmsEntry, CmsModel, CmsModelField } from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface GetStoragePluginFactory {\n (context: Pick<CmsContext, \"plugins\">): (fieldType: string) => StorageTransformPlugin<any>;\n}\n\nconst getStoragePluginFactory: GetStoragePluginFactory = context => {\n let defaultStoragePlugin: StorageTransformPlugin;\n\n const plugins = context.plugins\n .byType<StorageTransformPlugin>(StorageTransformPlugin.type)\n // we reverse plugins because we want to get latest added only\n .reverse()\n .reduce((collection, plugin) => {\n /**\n * Check if it's a default plugin and set it - always override the previous one.\n */\n if (plugin.fieldType === \"*\") {\n defaultStoragePlugin = plugin;\n return collection;\n }\n\n /**\n * We will just set the plugin for given type.\n * The last one will override existing one - so users can override our default ones.\n */\n collection[plugin.fieldType] = plugin;\n\n return collection;\n }, {} as Record<string, StorageTransformPlugin>);\n\n return (fieldType: string) => {\n return plugins[fieldType] || defaultStoragePlugin;\n };\n};\n\n/**\n * This should be used when transforming the whole entry.\n */\nconst entryStorageTransform = async (\n context: Pick<CmsContext, \"plugins\">,\n model: CmsModel,\n operation: \"toStorage\" | \"fromStorage\",\n entry: CmsEntry\n): Promise<CmsEntry> => {\n const getStoragePlugin = getStoragePluginFactory(context);\n\n const transformedValues: Record<string, any> = {};\n for (const field of model.fields) {\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n // TODO: remove this once plugins are converted into classes\n if (typeof plugin[operation] !== \"function\") {\n throw new WebinyError(\n `Missing \"${operation}\" function in storage plugin \"${plugin.name}\" for field type \"${baseType}\"`\n );\n }\n\n transformedValues[field.fieldId] = await plugin[operation]({\n plugins: context.plugins,\n model,\n field,\n value: entry.values[field.fieldId],\n getStoragePlugin\n });\n }\n\n return { ...entry, values: transformedValues };\n};\n\n/**\n * A function that is used in crud to transform entry into the storage type.\n */\nexport const entryToStorageTransform = async (\n context: Pick<CmsContext, \"plugins\">,\n model: CmsModel,\n entry: CmsEntry\n): Promise<CmsEntry> => {\n return entryStorageTransform(context, model, \"toStorage\", entry);\n};\n\n/**\n * A function that is used to transform the whole entry from storage into its native form.\n */\nexport const entryFromStorageTransform = async (\n context: Pick<CmsContext, \"plugins\">,\n model: CmsModel,\n entry: CmsEntry\n): Promise<CmsEntry> => {\n return entryStorageTransform(context, model, \"fromStorage\", entry);\n};\n\ninterface EntryFieldFromStorageTransformParams {\n context: Pick<CmsContext, \"plugins\">;\n model: CmsModel;\n field: CmsModelField;\n value: any;\n}\n/*\n * A function that is used to transform a single field from storage\n */\nexport const entryFieldFromStorageTransform = async <T = any>(\n params: EntryFieldFromStorageTransformParams\n): Promise<T> => {\n const { context, model, field, value } = params;\n const getStoragePlugin = getStoragePluginFactory(context);\n\n const baseType = getBaseFieldType(field);\n const plugin = getStoragePlugin(baseType);\n\n // TODO: remove this once plugins are converted into classes\n if (typeof plugin.fromStorage !== \"function\") {\n throw new WebinyError(\n `Missing \"fromStorage\" function in storage plugin \"${plugin.name}\" for field type \"${baseType}\"`\n );\n }\n\n return plugin.fromStorage({\n plugins: context.plugins,\n model,\n field,\n value,\n getStoragePlugin\n });\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { SecurityIdentity } from "@webiny/api-security/types";
2
+ export declare const getIdentity: <T extends import("@webiny/api-authentication/types").Identity | null>(input: SecurityIdentity | null | undefined, defaultValue?: T | null) => T;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getIdentity = void 0;
7
+ const getIdentity = (input, defaultValue = null) => {
8
+ const identity = input?.id && input?.displayName && input?.type ? input : defaultValue;
9
+ if (!identity) {
10
+ return null;
11
+ }
12
+ return {
13
+ id: identity.id,
14
+ displayName: identity.displayName,
15
+ type: identity.type
16
+ };
17
+ };
18
+ exports.getIdentity = getIdentity;
19
+
20
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getIdentity","input","defaultValue","identity","id","displayName","type","exports"],"sources":["identity.ts"],"sourcesContent":["import { SecurityIdentity } from \"@webiny/api-security/types\";\n\nexport const getIdentity = <T extends SecurityIdentity | null>(\n input: SecurityIdentity | null | undefined,\n defaultValue: T | null = null\n): T => {\n const identity = input?.id && input?.displayName && input?.type ? input : defaultValue;\n if (!identity) {\n return null as T;\n }\n return {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n } as T;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,WAAW,GAAGA,CACvBC,KAA0C,EAC1CC,YAAsB,GAAG,IAAI,KACzB;EACJ,MAAMC,QAAQ,GAAGF,KAAK,EAAEG,EAAE,IAAIH,KAAK,EAAEI,WAAW,IAAIJ,KAAK,EAAEK,IAAI,GAAGL,KAAK,GAAGC,YAAY;EACtF,IAAI,CAACC,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EACA,OAAO;IACHC,EAAE,EAAED,QAAQ,CAACC,EAAE;IACfC,WAAW,EAAEF,QAAQ,CAACE,WAAW;IACjCC,IAAI,EAAEH,QAAQ,CAACG;EACnB,CAAC;AACL,CAAC;AAACC,OAAA,CAAAP,WAAA,GAAAA,WAAA"}
@@ -1,16 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.ModelsPermissions = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
7
  var _apiSecurity = require("@webiny/api-security");
10
8
  class ModelsPermissions extends _apiSecurity.AppPermissions {
11
9
  constructor(params) {
12
10
  super(params);
13
- (0, _defineProperty2.default)(this, "modelGroupsPermissions", void 0);
14
11
  this.modelGroupsPermissions = params.modelGroupsPermissions;
15
12
  }
16
13
  async canAccessModel({
@@ -1 +1 @@
1
- {"version":3,"names":["_apiSecurity","require","ModelsPermissions","AppPermissions","constructor","params","_defineProperty2","default","modelGroupsPermissions","canAccessModel","model","hasFullAccess","modelsPermissions","canReadGroups","ensure","rwd","throw","canReadModels","modelGroupsPermissionsList","getPermissions","modelsPermissionsList","locale","i","length","modelGroupPermission","groups","j","modelPermission","models","Array","isArray","includes","group","id","modelId","ensureCanAccessModel","NotAuthorizedError","data","reason","exports"],"sources":["ModelsPermissions.ts"],"sourcesContent":["import { AppPermissions, AppPermissionsParams, NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n CmsGroupPermission,\n CmsModel as BaseCmsModel,\n CmsModelGroup as BaseCmsModelGroup,\n CmsModelPermission\n} from \"~/types\";\nimport { ModelGroupsPermissions } from \"~/utils/permissions/ModelGroupsPermissions\";\n\nexport interface ModelsPermissionsParams extends AppPermissionsParams<CmsGroupPermission> {\n modelGroupsPermissions: ModelGroupsPermissions;\n}\n\ninterface PickedCmsModel extends Pick<BaseCmsModel, \"modelId\" | \"locale\"> {\n group: Pick<BaseCmsModelGroup, \"id\">;\n}\n\nexport interface CanAccessModelParams {\n model: PickedCmsModel;\n}\n\nexport interface EnsureModelAccessParams {\n model: PickedCmsModel;\n}\n\nexport class ModelsPermissions extends AppPermissions<CmsModelPermission> {\n private readonly modelGroupsPermissions: ModelGroupsPermissions;\n\n public constructor(params: ModelsPermissionsParams) {\n super(params);\n this.modelGroupsPermissions = params.modelGroupsPermissions;\n }\n\n public async canAccessModel({ model }: CanAccessModelParams) {\n if (await this.hasFullAccess()) {\n return true;\n }\n\n const modelGroupsPermissions = this.modelGroupsPermissions;\n\n // eslint-disable-next-line\n const modelsPermissions = this;\n\n const canReadGroups = await modelGroupsPermissions.ensure({ rwd: \"r\" }, { throw: false });\n if (!canReadGroups) {\n return false;\n }\n\n const canReadModels = await modelsPermissions.ensure({ rwd: \"r\" }, { throw: false });\n if (!canReadModels) {\n return false;\n }\n\n const modelGroupsPermissionsList = await modelGroupsPermissions.getPermissions();\n const modelsPermissionsList = await this.getPermissions();\n\n const locale = model.locale;\n\n for (let i = 0; i < modelGroupsPermissionsList.length; i++) {\n const modelGroupPermission = modelGroupsPermissionsList[i];\n\n const { groups } = modelGroupPermission;\n\n for (let j = 0; j < modelsPermissionsList.length; j++) {\n const modelPermission = modelsPermissionsList[j];\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\n // Does the model belong to a group 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 continue;\n }\n }\n\n // Does the user have access to the specific model?\n if (models) {\n if (\n Array.isArray(models[locale]) === false ||\n models[locale].includes(model.modelId) === false\n ) {\n continue;\n }\n }\n\n return true;\n }\n }\n\n return false;\n }\n\n public async ensureCanAccessModel(params: EnsureModelAccessParams) {\n const canAccessModel = await this.canAccessModel(params);\n if (canAccessModel) {\n return;\n }\n\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access model \"${params.model.modelId}\".`\n }\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_apiSecurity","require","ModelsPermissions","AppPermissions","constructor","params","modelGroupsPermissions","canAccessModel","model","hasFullAccess","modelsPermissions","canReadGroups","ensure","rwd","throw","canReadModels","modelGroupsPermissionsList","getPermissions","modelsPermissionsList","locale","i","length","modelGroupPermission","groups","j","modelPermission","models","Array","isArray","includes","group","id","modelId","ensureCanAccessModel","NotAuthorizedError","data","reason","exports"],"sources":["ModelsPermissions.ts"],"sourcesContent":["import { AppPermissions, AppPermissionsParams, NotAuthorizedError } from \"@webiny/api-security\";\nimport {\n CmsGroupPermission,\n CmsModel as BaseCmsModel,\n CmsModelGroup as BaseCmsModelGroup,\n CmsModelPermission\n} from \"~/types\";\nimport { ModelGroupsPermissions } from \"~/utils/permissions/ModelGroupsPermissions\";\n\nexport interface ModelsPermissionsParams extends AppPermissionsParams<CmsGroupPermission> {\n modelGroupsPermissions: ModelGroupsPermissions;\n}\n\ninterface PickedCmsModel extends Pick<BaseCmsModel, \"modelId\" | \"locale\"> {\n group: Pick<BaseCmsModelGroup, \"id\">;\n}\n\nexport interface CanAccessModelParams {\n model: PickedCmsModel;\n}\n\nexport interface EnsureModelAccessParams {\n model: PickedCmsModel;\n}\n\nexport class ModelsPermissions extends AppPermissions<CmsModelPermission> {\n private readonly modelGroupsPermissions: ModelGroupsPermissions;\n\n public constructor(params: ModelsPermissionsParams) {\n super(params);\n this.modelGroupsPermissions = params.modelGroupsPermissions;\n }\n\n public async canAccessModel({ model }: CanAccessModelParams) {\n if (await this.hasFullAccess()) {\n return true;\n }\n\n const modelGroupsPermissions = this.modelGroupsPermissions;\n\n // eslint-disable-next-line\n const modelsPermissions = this;\n\n const canReadGroups = await modelGroupsPermissions.ensure({ rwd: \"r\" }, { throw: false });\n if (!canReadGroups) {\n return false;\n }\n\n const canReadModels = await modelsPermissions.ensure({ rwd: \"r\" }, { throw: false });\n if (!canReadModels) {\n return false;\n }\n\n const modelGroupsPermissionsList = await modelGroupsPermissions.getPermissions();\n const modelsPermissionsList = await this.getPermissions();\n\n const locale = model.locale;\n\n for (let i = 0; i < modelGroupsPermissionsList.length; i++) {\n const modelGroupPermission = modelGroupsPermissionsList[i];\n\n const { groups } = modelGroupPermission;\n\n for (let j = 0; j < modelsPermissionsList.length; j++) {\n const modelPermission = modelsPermissionsList[j];\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\n // Does the model belong to a group 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 continue;\n }\n }\n\n // Does the user have access to the specific model?\n if (models) {\n if (\n Array.isArray(models[locale]) === false ||\n models[locale].includes(model.modelId) === false\n ) {\n continue;\n }\n }\n\n return true;\n }\n }\n\n return false;\n }\n\n public async ensureCanAccessModel(params: EnsureModelAccessParams) {\n const canAccessModel = await this.canAccessModel(params);\n if (canAccessModel) {\n return;\n }\n\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access model \"${params.model.modelId}\".`\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -11,7 +11,6 @@ const renderGetFilterFields = ({
11
11
  }) => {
12
12
  const filters = ["id: ID", "entryId: String"];
13
13
  for (const field of fields) {
14
- var _plugin$read;
15
14
  // Every time a client updates content model's fields, we check the type of each field. If a field plugin
16
15
  // for a particular "field.type" doesn't exist on the backend yet, we throw an error. But still, we also
17
16
  // want to be careful when accessing the field plugin here too. It is still possible to have a content model
@@ -19,10 +18,10 @@ const renderGetFilterFields = ({
19
18
  // could've just removed the plugin from the backend.
20
19
  const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
21
20
  const plugin = fieldTypePlugins[baseType];
22
- if (!(plugin !== null && plugin !== void 0 && plugin.isSearchable)) {
21
+ if (!plugin?.isSearchable) {
23
22
  continue;
24
23
  }
25
- const createGetFilters = (_plugin$read = plugin.read) === null || _plugin$read === void 0 ? void 0 : _plugin$read.createGetFilters;
24
+ const createGetFilters = plugin.read?.createGetFilters;
26
25
  if (typeof createGetFilters !== "function") {
27
26
  continue;
28
27
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_getBaseFieldType","require","renderGetFilterFields","fields","fieldTypePlugins","filters","field","_plugin$read","baseType","getBaseFieldType","plugin","isSearchable","createGetFilters","read","push","filter","Boolean","join","exports"],"sources":["renderGetFilterFields.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModelField } from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface RenderGetFilterFieldsParams {\n fields: CmsModelField[];\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface RenderGetFilterFields {\n (params: RenderGetFilterFieldsParams): string;\n}\n\nexport const renderGetFilterFields: RenderGetFilterFields = ({ fields, fieldTypePlugins }) => {\n const filters: string[] = [\"id: ID\", \"entryId: String\"];\n\n for (const field of fields) {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n const baseType = getBaseFieldType(field);\n const plugin = fieldTypePlugins[baseType];\n if (!plugin?.isSearchable) {\n continue;\n }\n const createGetFilters = plugin.read?.createGetFilters;\n if (typeof createGetFilters !== \"function\") {\n continue;\n }\n filters.push(createGetFilters({ field }));\n }\n\n return filters.filter(Boolean).join(\"\\n\");\n};\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAUO,MAAMC,qBAA4C,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAiB,CAAC,KAAK;EAC1F,MAAMC,OAAiB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC;EAEvD,KAAK,MAAMC,KAAK,IAAIH,MAAM,EAAE;IAAA,IAAAI,YAAA;IACxB;IACA;IACA;IACA;IACA;IACA,MAAMC,QAAQ,GAAG,IAAAC,kCAAgB,EAACH,KAAK,CAAC;IACxC,MAAMI,MAAM,GAAGN,gBAAgB,CAACI,QAAQ,CAAC;IACzC,IAAI,EAACE,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEC,YAAY,GAAE;MACvB;IACJ;IACA,MAAMC,gBAAgB,IAAAL,YAAA,GAAGG,MAAM,CAACG,IAAI,cAAAN,YAAA,uBAAXA,YAAA,CAAaK,gBAAgB;IACtD,IAAI,OAAOA,gBAAgB,KAAK,UAAU,EAAE;MACxC;IACJ;IACAP,OAAO,CAACS,IAAI,CAACF,gBAAgB,CAAC;MAAEN;IAAM,CAAC,CAAC,CAAC;EAC7C;EAEA,OAAOD,OAAO,CAACU,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC7C,CAAC;AAACC,OAAA,CAAAhB,qBAAA,GAAAA,qBAAA"}
1
+ {"version":3,"names":["_getBaseFieldType","require","renderGetFilterFields","fields","fieldTypePlugins","filters","field","baseType","getBaseFieldType","plugin","isSearchable","createGetFilters","read","push","filter","Boolean","join","exports"],"sources":["renderGetFilterFields.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModelField } from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface RenderGetFilterFieldsParams {\n fields: CmsModelField[];\n fieldTypePlugins: CmsFieldTypePlugins;\n}\ninterface RenderGetFilterFields {\n (params: RenderGetFilterFieldsParams): string;\n}\n\nexport const renderGetFilterFields: RenderGetFilterFields = ({ fields, fieldTypePlugins }) => {\n const filters: string[] = [\"id: ID\", \"entryId: String\"];\n\n for (const field of fields) {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n const baseType = getBaseFieldType(field);\n const plugin = fieldTypePlugins[baseType];\n if (!plugin?.isSearchable) {\n continue;\n }\n const createGetFilters = plugin.read?.createGetFilters;\n if (typeof createGetFilters !== \"function\") {\n continue;\n }\n filters.push(createGetFilters({ field }));\n }\n\n return filters.filter(Boolean).join(\"\\n\");\n};\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAUO,MAAMC,qBAA4C,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAiB,CAAC,KAAK;EAC1F,MAAMC,OAAiB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC;EAEvD,KAAK,MAAMC,KAAK,IAAIH,MAAM,EAAE;IACxB;IACA;IACA;IACA;IACA;IACA,MAAMI,QAAQ,GAAG,IAAAC,kCAAgB,EAACF,KAAK,CAAC;IACxC,MAAMG,MAAM,GAAGL,gBAAgB,CAACG,QAAQ,CAAC;IACzC,IAAI,CAACE,MAAM,EAAEC,YAAY,EAAE;MACvB;IACJ;IACA,MAAMC,gBAAgB,GAAGF,MAAM,CAACG,IAAI,EAAED,gBAAgB;IACtD,IAAI,OAAOA,gBAAgB,KAAK,UAAU,EAAE;MACxC;IACJ;IACAN,OAAO,CAACQ,IAAI,CAACF,gBAAgB,CAAC;MAAEL;IAAM,CAAC,CAAC,CAAC;EAC7C;EAEA,OAAOD,OAAO,CAACS,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AAC7C,CAAC;AAACC,OAAA,CAAAf,qBAAA,GAAAA,qBAAA"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.renderListFilterFields = void 0;
7
7
  var _getBaseFieldType = require("./getBaseFieldType");
8
+ var _constants = require("../constants");
8
9
  const renderListFilterFields = params => {
9
10
  const {
10
11
  model,
@@ -13,7 +14,13 @@ const renderListFilterFields = params => {
13
14
  fieldTypePlugins,
14
15
  excludeFields = []
15
16
  } = params;
16
- const result = ["id: ID", "id_not: ID", "id_in: [ID!]", "id_not_in: [ID!]", "entryId: String", "entryId_not: String", "entryId_in: [String!]", "entryId_not_in: [String!]", "createdOn: DateTime", "createdOn_gt: DateTime", "createdOn_gte: DateTime", "createdOn_lt: DateTime", "createdOn_lte: DateTime", "createdOn_between: [DateTime!]", "createdOn_not_between: [DateTime!]", "savedOn: DateTime", "savedOn_gt: DateTime", "savedOn_gte: DateTime", "savedOn_lt: DateTime", "savedOn_lte: DateTime", "savedOn_between: [DateTime!]", "savedOn_not_between: [DateTime!]", "publishedOn: DateTime", "publishedOn_gt: DateTime", "publishedOn_gte: DateTime", "publishedOn_lt: DateTime", "publishedOn_lte: DateTime", "publishedOn_between: [DateTime!]", "publishedOn_not_between: [DateTime!]", "createdBy: String", "createdBy_not: String", "createdBy_in: [String!]", "createdBy_not_in: [String!]", "ownedBy: String", "ownedBy_not: String", "ownedBy_in: [String!]", "ownedBy_not_in: [String!]"];
17
+ const result = ["id: ID", "id_not: ID", "id_in: [ID!]", "id_not_in: [ID!]", "entryId: String", "entryId_not: String", "entryId_in: [String!]", "entryId_not_in: [String!]", ..._constants.ENTRY_META_FIELDS.map(field => {
18
+ if ((0, _constants.isDateTimeEntryMetaField)(field)) {
19
+ return [`${field}: DateTime`, `${field}_gt: DateTime`, `${field}_gte: DateTime`, `${field}_lt: DateTime`, `${field}_lte: DateTime`, `${field}_between: [DateTime!]`, `${field}_not_between: [DateTime!]`];
20
+ }
21
+ return [`${field}: ID`, `${field}_not: ID`, `${field}_in: [ID!]`, `${field}_not_in: [ID!]`];
22
+ }).flat()];
23
+
17
24
  /**
18
25
  * We can find different statuses only in the manage API endpoint.
19
26
  */
@@ -26,14 +33,13 @@ const renderListFilterFields = params => {
26
33
  });
27
34
  });
28
35
  for (const field of fields) {
29
- var _fieldTypePlugins$bas;
30
36
  // Every time a client updates content model's fields, we check the type of each field. If a field plugin
31
37
  // for a particular "field.type" doesn't exist on the backend yet, we throw an error. But still, we also
32
38
  // want to be careful when accessing the field plugin here too. It is still possible to have a content model
33
39
  // that contains a field, for which we don't have a plugin registered on the backend. For example, user
34
40
  // could've just removed the plugin from the backend.
35
41
  const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
36
- const createListFilters = (_fieldTypePlugins$bas = fieldTypePlugins[baseType]) === null || _fieldTypePlugins$bas === void 0 || (_fieldTypePlugins$bas = _fieldTypePlugins$bas[type]) === null || _fieldTypePlugins$bas === void 0 ? void 0 : _fieldTypePlugins$bas.createListFilters;
42
+ const createListFilters = fieldTypePlugins[baseType]?.[type]?.createListFilters;
37
43
  if (typeof createListFilters !== "function") {
38
44
  continue;
39
45
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_getBaseFieldType","require","renderListFilterFields","params","model","fields","type","fieldTypePlugins","excludeFields","result","push","finalFields","filter","field","some","excl","startsWith","_fieldTypePlugins$bas","baseType","getBaseFieldType","createListFilters","plugins","Boolean","join","exports"],"sources":["renderListFilterFields.ts"],"sourcesContent":["import {\n ApiEndpoint,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface RenderListFilterFieldsParams {\n model: CmsModel;\n fields: CmsModelField[];\n type: ApiEndpoint;\n fieldTypePlugins: CmsFieldTypePlugins;\n excludeFields?: string[];\n}\ninterface RenderListFilterFields {\n (params: RenderListFilterFieldsParams): string;\n}\n\ntype CreateListFiltersType =\n | CmsModelFieldToGraphQLPlugin[\"read\"][\"createListFilters\"]\n | CmsModelFieldToGraphQLPlugin[\"manage\"][\"createListFilters\"];\n\nexport const renderListFilterFields: RenderListFilterFields = (params): string => {\n const { model, fields, type, fieldTypePlugins, excludeFields = [] } = params;\n const result: string[] = [\n \"id: ID\",\n \"id_not: ID\",\n \"id_in: [ID!]\",\n \"id_not_in: [ID!]\",\n \"entryId: String\",\n \"entryId_not: String\",\n \"entryId_in: [String!]\",\n \"entryId_not_in: [String!]\",\n \"createdOn: DateTime\",\n \"createdOn_gt: DateTime\",\n \"createdOn_gte: DateTime\",\n \"createdOn_lt: DateTime\",\n \"createdOn_lte: DateTime\",\n \"createdOn_between: [DateTime!]\",\n \"createdOn_not_between: [DateTime!]\",\n \"savedOn: DateTime\",\n \"savedOn_gt: DateTime\",\n \"savedOn_gte: DateTime\",\n \"savedOn_lt: DateTime\",\n \"savedOn_lte: DateTime\",\n \"savedOn_between: [DateTime!]\",\n \"savedOn_not_between: [DateTime!]\",\n \"publishedOn: DateTime\",\n \"publishedOn_gt: DateTime\",\n \"publishedOn_gte: DateTime\",\n \"publishedOn_lt: DateTime\",\n \"publishedOn_lte: DateTime\",\n \"publishedOn_between: [DateTime!]\",\n \"publishedOn_not_between: [DateTime!]\",\n \"createdBy: String\",\n \"createdBy_not: String\",\n \"createdBy_in: [String!]\",\n \"createdBy_not_in: [String!]\",\n \"ownedBy: String\",\n \"ownedBy_not: String\",\n \"ownedBy_in: [String!]\",\n \"ownedBy_not_in: [String!]\"\n ];\n /**\n * We can find different statuses only in the manage API endpoint.\n */\n if (type === \"manage\") {\n result.push(\n \"status: String\",\n \"status_not: String\",\n \"status_in: [String!]\",\n \"status_not_in: [String!]\"\n );\n }\n\n const finalFields = result.filter(field => {\n return !excludeFields.some(excl => {\n return field.startsWith(`${excl}_`) || field.startsWith(`${excl}: `);\n });\n });\n\n for (const field of fields) {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n const baseType = getBaseFieldType(field);\n const createListFilters: CreateListFiltersType | undefined =\n fieldTypePlugins[baseType]?.[type]?.createListFilters;\n if (typeof createListFilters !== \"function\") {\n continue;\n }\n finalFields.push(createListFilters({ model, field, plugins: fieldTypePlugins }));\n }\n\n return finalFields.filter(Boolean).join(\"\\n\");\n};\n"],"mappings":";;;;;;AAOA,IAAAA,iBAAA,GAAAC,OAAA;AAiBO,MAAMC,sBAA8C,GAAIC,MAAM,IAAa;EAC9E,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,IAAI;IAAEC,gBAAgB;IAAEC,aAAa,GAAG;EAAG,CAAC,GAAGL,MAAM;EAC5E,MAAMM,MAAgB,GAAG,CACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,gCAAgC,EAChC,oCAAoC,EACpC,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,kCAAkC,EAClC,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,kCAAkC,EAClC,sCAAsC,EACtC,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,CAC9B;EACD;AACJ;AACA;EACI,IAAIH,IAAI,KAAK,QAAQ,EAAE;IACnBG,MAAM,CAACC,IAAI,CACP,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,0BACJ,CAAC;EACL;EAEA,MAAMC,WAAW,GAAGF,MAAM,CAACG,MAAM,CAACC,KAAK,IAAI;IACvC,OAAO,CAACL,aAAa,CAACM,IAAI,CAACC,IAAI,IAAI;MAC/B,OAAOF,KAAK,CAACG,UAAU,CAAE,GAAED,IAAK,GAAE,CAAC,IAAIF,KAAK,CAACG,UAAU,CAAE,GAAED,IAAK,IAAG,CAAC;IACxE,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,KAAK,MAAMF,KAAK,IAAIR,MAAM,EAAE;IAAA,IAAAY,qBAAA;IACxB;IACA;IACA;IACA;IACA;IACA,MAAMC,QAAQ,GAAG,IAAAC,kCAAgB,EAACN,KAAK,CAAC;IACxC,MAAMO,iBAAoD,IAAAH,qBAAA,GACtDV,gBAAgB,CAACW,QAAQ,CAAC,cAAAD,qBAAA,gBAAAA,qBAAA,GAA1BA,qBAAA,CAA6BX,IAAI,CAAC,cAAAW,qBAAA,uBAAlCA,qBAAA,CAAoCG,iBAAiB;IACzD,IAAI,OAAOA,iBAAiB,KAAK,UAAU,EAAE;MACzC;IACJ;IACAT,WAAW,CAACD,IAAI,CAACU,iBAAiB,CAAC;MAAEhB,KAAK;MAAES,KAAK;MAAEQ,OAAO,EAAEd;IAAiB,CAAC,CAAC,CAAC;EACpF;EAEA,OAAOI,WAAW,CAACC,MAAM,CAACU,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACjD,CAAC;AAACC,OAAA,CAAAtB,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_getBaseFieldType","require","_constants","renderListFilterFields","params","model","fields","type","fieldTypePlugins","excludeFields","result","ENTRY_META_FIELDS","map","field","isDateTimeEntryMetaField","flat","push","finalFields","filter","some","excl","startsWith","baseType","getBaseFieldType","createListFilters","plugins","Boolean","join","exports"],"sources":["renderListFilterFields.ts"],"sourcesContent":["import {\n ApiEndpoint,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface RenderListFilterFieldsParams {\n model: CmsModel;\n fields: CmsModelField[];\n type: ApiEndpoint;\n fieldTypePlugins: CmsFieldTypePlugins;\n excludeFields?: string[];\n}\n\ninterface RenderListFilterFields {\n (params: RenderListFilterFieldsParams): string;\n}\n\ntype CreateListFiltersType =\n | CmsModelFieldToGraphQLPlugin[\"read\"][\"createListFilters\"]\n | CmsModelFieldToGraphQLPlugin[\"manage\"][\"createListFilters\"];\n\nexport const renderListFilterFields: RenderListFilterFields = (params): string => {\n const { model, fields, type, fieldTypePlugins, excludeFields = [] } = params;\n const result: string[] = [\n \"id: ID\",\n \"id_not: ID\",\n \"id_in: [ID!]\",\n \"id_not_in: [ID!]\",\n \"entryId: String\",\n \"entryId_not: String\",\n \"entryId_in: [String!]\",\n \"entryId_not_in: [String!]\",\n\n ...ENTRY_META_FIELDS.map(field => {\n if (isDateTimeEntryMetaField(field)) {\n return [\n `${field}: DateTime`,\n `${field}_gt: DateTime`,\n `${field}_gte: DateTime`,\n `${field}_lt: DateTime`,\n `${field}_lte: DateTime`,\n `${field}_between: [DateTime!]`,\n `${field}_not_between: [DateTime!]`\n ];\n }\n\n return [\n `${field}: ID`,\n `${field}_not: ID`,\n `${field}_in: [ID!]`,\n `${field}_not_in: [ID!]`\n ];\n }).flat()\n ];\n\n /**\n * We can find different statuses only in the manage API endpoint.\n */\n if (type === \"manage\") {\n result.push(\n \"status: String\",\n \"status_not: String\",\n \"status_in: [String!]\",\n \"status_not_in: [String!]\"\n );\n }\n\n const finalFields = result.filter(field => {\n return !excludeFields.some(excl => {\n return field.startsWith(`${excl}_`) || field.startsWith(`${excl}: `);\n });\n });\n\n for (const field of fields) {\n // Every time a client updates content model's fields, we check the type of each field. If a field plugin\n // for a particular \"field.type\" doesn't exist on the backend yet, we throw an error. But still, we also\n // want to be careful when accessing the field plugin here too. It is still possible to have a content model\n // that contains a field, for which we don't have a plugin registered on the backend. For example, user\n // could've just removed the plugin from the backend.\n const baseType = getBaseFieldType(field);\n const createListFilters: CreateListFiltersType | undefined =\n fieldTypePlugins[baseType]?.[type]?.createListFilters;\n if (typeof createListFilters !== \"function\") {\n continue;\n }\n finalFields.push(createListFilters({ model, field, plugins: fieldTypePlugins }));\n }\n\n return finalFields.filter(Boolean).join(\"\\n\");\n};\n"],"mappings":";;;;;;AAOA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAkBO,MAAME,sBAA8C,GAAIC,MAAM,IAAa;EAC9E,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,IAAI;IAAEC,gBAAgB;IAAEC,aAAa,GAAG;EAAG,CAAC,GAAGL,MAAM;EAC5E,MAAMM,MAAgB,GAAG,CACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAE3B,GAAGC,4BAAiB,CAACC,GAAG,CAACC,KAAK,IAAI;IAC9B,IAAI,IAAAC,mCAAwB,EAACD,KAAK,CAAC,EAAE;MACjC,OAAO,CACF,GAAEA,KAAM,YAAW,EACnB,GAAEA,KAAM,eAAc,EACtB,GAAEA,KAAM,gBAAe,EACvB,GAAEA,KAAM,eAAc,EACtB,GAAEA,KAAM,gBAAe,EACvB,GAAEA,KAAM,uBAAsB,EAC9B,GAAEA,KAAM,2BAA0B,CACtC;IACL;IAEA,OAAO,CACF,GAAEA,KAAM,MAAK,EACb,GAAEA,KAAM,UAAS,EACjB,GAAEA,KAAM,YAAW,EACnB,GAAEA,KAAM,gBAAe,CAC3B;EACL,CAAC,CAAC,CAACE,IAAI,CAAC,CAAC,CACZ;;EAED;AACJ;AACA;EACI,IAAIR,IAAI,KAAK,QAAQ,EAAE;IACnBG,MAAM,CAACM,IAAI,CACP,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,0BACJ,CAAC;EACL;EAEA,MAAMC,WAAW,GAAGP,MAAM,CAACQ,MAAM,CAACL,KAAK,IAAI;IACvC,OAAO,CAACJ,aAAa,CAACU,IAAI,CAACC,IAAI,IAAI;MAC/B,OAAOP,KAAK,CAACQ,UAAU,CAAE,GAAED,IAAK,GAAE,CAAC,IAAIP,KAAK,CAACQ,UAAU,CAAE,GAAED,IAAK,IAAG,CAAC;IACxE,CAAC,CAAC;EACN,CAAC,CAAC;EAEF,KAAK,MAAMP,KAAK,IAAIP,MAAM,EAAE;IACxB;IACA;IACA;IACA;IACA;IACA,MAAMgB,QAAQ,GAAG,IAAAC,kCAAgB,EAACV,KAAK,CAAC;IACxC,MAAMW,iBAAoD,GACtDhB,gBAAgB,CAACc,QAAQ,CAAC,GAAGf,IAAI,CAAC,EAAEiB,iBAAiB;IACzD,IAAI,OAAOA,iBAAiB,KAAK,UAAU,EAAE;MACzC;IACJ;IACAP,WAAW,CAACD,IAAI,CAACQ,iBAAiB,CAAC;MAAEnB,KAAK;MAAEQ,KAAK;MAAEY,OAAO,EAAEjB;IAAiB,CAAC,CAAC,CAAC;EACpF;EAEA,OAAOS,WAAW,CAACC,MAAM,CAACQ,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;AACjD,CAAC;AAACC,OAAA,CAAAzB,sBAAA,GAAAA,sBAAA"}
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.renderSortEnum = void 0;
7
7
  var _getBaseFieldType = require("./getBaseFieldType");
8
+ var _constants = require("../constants");
8
9
  const renderSortEnum = ({
9
10
  model,
10
11
  fields,
11
12
  fieldTypePlugins,
12
13
  sorterPlugins
13
14
  }) => {
14
- let sorters = [`id_ASC`, `id_DESC`, "savedOn_ASC", "savedOn_DESC", "createdOn_ASC", "createdOn_DESC"];
15
+ let sorters = [`id_ASC`, `id_DESC`, ..._constants.ENTRY_META_FIELDS.filter(_constants.isDateTimeEntryMetaField).map(field => [`${field}_ASC`, `${field}_DESC`]).flat()];
15
16
  for (const field of fields) {
16
17
  const plugin = fieldTypePlugins[(0, _getBaseFieldType.getBaseFieldType)(field)];
17
18
  if (!plugin) {
@@ -1 +1 @@
1
- {"version":3,"names":["_getBaseFieldType","require","renderSortEnum","model","fields","fieldTypePlugins","sorterPlugins","sorters","field","plugin","getBaseFieldType","createSorters","result","isSortable","push","fieldId","join","reduce","createSorter","exports"],"sources":["renderSortEnum.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins/CmsGraphQLSchemaSorterPlugin\";\n\ninterface RenderSortEnumParams {\n model: CmsModel;\n fields: CmsModelField[];\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins?: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface RenderSortEnum {\n (params: RenderSortEnumParams): string;\n}\n\nexport const renderSortEnum: RenderSortEnum = ({\n model,\n fields,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n let sorters: string[] = [\n `id_ASC`,\n `id_DESC`,\n \"savedOn_ASC\",\n \"savedOn_DESC\",\n \"createdOn_ASC\",\n \"createdOn_DESC\"\n ];\n\n for (const field of fields) {\n const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\n continue;\n } else if (plugin.createSorters) {\n const result = plugin.createSorters({\n model,\n field,\n sorters\n });\n if (result) {\n sorters = result;\n continue;\n }\n }\n if (!plugin.isSortable) {\n continue;\n }\n sorters.push(`${field.fieldId}_ASC`);\n sorters.push(`${field.fieldId}_DESC`);\n }\n if (!sorterPlugins) {\n return sorters.join(\"\\n\");\n }\n\n return sorterPlugins\n .reduce((result, plugin) => {\n return plugin.createSorter({\n model,\n sorters: result\n });\n }, sorters)\n .join(\"\\n\");\n};\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAaO,MAAMC,cAA8B,GAAGA,CAAC;EAC3CC,KAAK;EACLC,MAAM;EACNC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,IAAIC,OAAiB,GAAG,CACnB,QAAO,EACP,SAAQ,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,CACnB;EAED,KAAK,MAAMC,KAAK,IAAIJ,MAAM,EAAE;IACxB,MAAMK,MAAM,GAAGJ,gBAAgB,CAAC,IAAAK,kCAAgB,EAACF,KAAK,CAAC,CAAC;IACxD,IAAI,CAACC,MAAM,EAAE;MACT;IACJ,CAAC,MAAM,IAAIA,MAAM,CAACE,aAAa,EAAE;MAC7B,MAAMC,MAAM,GAAGH,MAAM,CAACE,aAAa,CAAC;QAChCR,KAAK;QACLK,KAAK;QACLD;MACJ,CAAC,CAAC;MACF,IAAIK,MAAM,EAAE;QACRL,OAAO,GAAGK,MAAM;QAChB;MACJ;IACJ;IACA,IAAI,CAACH,MAAM,CAACI,UAAU,EAAE;MACpB;IACJ;IACAN,OAAO,CAACO,IAAI,CAAE,GAAEN,KAAK,CAACO,OAAQ,MAAK,CAAC;IACpCR,OAAO,CAACO,IAAI,CAAE,GAAEN,KAAK,CAACO,OAAQ,OAAM,CAAC;EACzC;EACA,IAAI,CAACT,aAAa,EAAE;IAChB,OAAOC,OAAO,CAACS,IAAI,CAAC,IAAI,CAAC;EAC7B;EAEA,OAAOV,aAAa,CACfW,MAAM,CAAC,CAACL,MAAM,EAAEH,MAAM,KAAK;IACxB,OAAOA,MAAM,CAACS,YAAY,CAAC;MACvBf,KAAK;MACLI,OAAO,EAAEK;IACb,CAAC,CAAC;EACN,CAAC,EAAEL,OAAO,CAAC,CACVS,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAACG,OAAA,CAAAjB,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"names":["_getBaseFieldType","require","_constants","renderSortEnum","model","fields","fieldTypePlugins","sorterPlugins","sorters","ENTRY_META_FIELDS","filter","isDateTimeEntryMetaField","map","field","flat","plugin","getBaseFieldType","createSorters","result","isSortable","push","fieldId","join","reduce","createSorter","exports"],"sources":["renderSortEnum.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel, CmsModelField } from \"~/types\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins/CmsGraphQLSchemaSorterPlugin\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface RenderSortEnumParams {\n model: CmsModel;\n fields: CmsModelField[];\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins?: CmsGraphQLSchemaSorterPlugin[];\n}\n\ninterface RenderSortEnum {\n (params: RenderSortEnumParams): string;\n}\n\nexport const renderSortEnum: RenderSortEnum = ({\n model,\n fields,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n let sorters: string[] = [\n `id_ASC`,\n `id_DESC`,\n\n ...ENTRY_META_FIELDS.filter(isDateTimeEntryMetaField)\n .map(field => [`${field}_ASC`, `${field}_DESC`])\n .flat()\n ];\n\n for (const field of fields) {\n const plugin = fieldTypePlugins[getBaseFieldType(field)];\n if (!plugin) {\n continue;\n } else if (plugin.createSorters) {\n const result = plugin.createSorters({\n model,\n field,\n sorters\n });\n if (result) {\n sorters = result;\n continue;\n }\n }\n if (!plugin.isSortable) {\n continue;\n }\n sorters.push(`${field.fieldId}_ASC`);\n sorters.push(`${field.fieldId}_DESC`);\n }\n if (!sorterPlugins) {\n return sorters.join(\"\\n\");\n }\n\n return sorterPlugins\n .reduce((result, plugin) => {\n return plugin.createSorter({\n model,\n sorters: result\n });\n }, sorters)\n .join(\"\\n\");\n};\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAaO,MAAME,cAA8B,GAAGA,CAAC;EAC3CC,KAAK;EACLC,MAAM;EACNC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,IAAIC,OAAiB,GAAG,CACnB,QAAO,EACP,SAAQ,EAET,GAAGC,4BAAiB,CAACC,MAAM,CAACC,mCAAwB,CAAC,CAChDC,GAAG,CAACC,KAAK,IAAI,CAAE,GAAEA,KAAM,MAAK,EAAG,GAAEA,KAAM,OAAM,CAAC,CAAC,CAC/CC,IAAI,CAAC,CAAC,CACd;EAED,KAAK,MAAMD,KAAK,IAAIR,MAAM,EAAE;IACxB,MAAMU,MAAM,GAAGT,gBAAgB,CAAC,IAAAU,kCAAgB,EAACH,KAAK,CAAC,CAAC;IACxD,IAAI,CAACE,MAAM,EAAE;MACT;IACJ,CAAC,MAAM,IAAIA,MAAM,CAACE,aAAa,EAAE;MAC7B,MAAMC,MAAM,GAAGH,MAAM,CAACE,aAAa,CAAC;QAChCb,KAAK;QACLS,KAAK;QACLL;MACJ,CAAC,CAAC;MACF,IAAIU,MAAM,EAAE;QACRV,OAAO,GAAGU,MAAM;QAChB;MACJ;IACJ;IACA,IAAI,CAACH,MAAM,CAACI,UAAU,EAAE;MACpB;IACJ;IACAX,OAAO,CAACY,IAAI,CAAE,GAAEP,KAAK,CAACQ,OAAQ,MAAK,CAAC;IACpCb,OAAO,CAACY,IAAI,CAAE,GAAEP,KAAK,CAACQ,OAAQ,OAAM,CAAC;EACzC;EACA,IAAI,CAACd,aAAa,EAAE;IAChB,OAAOC,OAAO,CAACc,IAAI,CAAC,IAAI,CAAC;EAC7B;EAEA,OAAOf,aAAa,CACfgB,MAAM,CAAC,CAACL,MAAM,EAAEH,MAAM,KAAK;IACxB,OAAOA,MAAM,CAACS,YAAY,CAAC;MACvBpB,KAAK;MACLI,OAAO,EAAEU;IACb,CAAC,CAAC;EACN,CAAC,EAAEV,OAAO,CAAC,CACVc,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAACG,OAAA,CAAAtB,cAAA,GAAAA,cAAA"}
package/validators/gte.js CHANGED
@@ -15,8 +15,7 @@ const createGteValidator = () => {
15
15
  value,
16
16
  validator
17
17
  }) {
18
- var _validator$settings;
19
- const gteValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
18
+ const gteValue = validator.settings?.value;
20
19
  if (typeof gteValue !== "undefined") {
21
20
  return _validation.validation.validate(value, `gte:${gteValue}`).then(v => v === true).catch(() => false);
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_validation","require","createGteValidator","type","name","validator","validate","value","_validator$settings","gteValue","settings","validation","then","v","catch","Promise","resolve","exports"],"sources":["gte.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport const createGteValidator = (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-gte\",\n validator: {\n name: \"gte\",\n validate({ value, validator }) {\n const gteValue = validator.settings?.value;\n if (typeof gteValue !== \"undefined\") {\n return validation\n .validate(value, `gte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,kBAAkB,GAAGA,CAAA,KAAoC;EAClE,OAAO;IACHC,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,+BAA+B;IACrCC,SAAS,EAAE;MACPD,IAAI,EAAE,KAAK;MACXE,QAAQA,CAAC;QAAEC,KAAK;QAAEF;MAAU,CAAC,EAAE;QAAA,IAAAG,mBAAA;QAC3B,MAAMC,QAAQ,IAAAD,mBAAA,GAAGH,SAAS,CAACK,QAAQ,cAAAF,mBAAA,uBAAlBA,mBAAA,CAAoBD,KAAK;QAC1C,IAAI,OAAOE,QAAQ,KAAK,WAAW,EAAE;UACjC,OAAOE,sBAAU,CACZL,QAAQ,CAACC,KAAK,EAAG,OAAME,QAAS,EAAC,CAAC,CAClCG,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B;QACA,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAf,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["_validation","require","createGteValidator","type","name","validator","validate","value","gteValue","settings","validation","then","v","catch","Promise","resolve","exports"],"sources":["gte.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport const createGteValidator = (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-gte\",\n validator: {\n name: \"gte\",\n validate({ value, validator }) {\n const gteValue = validator.settings?.value;\n if (typeof gteValue !== \"undefined\") {\n return validation\n .validate(value, `gte:${gteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,kBAAkB,GAAGA,CAAA,KAAoC;EAClE,OAAO;IACHC,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,+BAA+B;IACrCC,SAAS,EAAE;MACPD,IAAI,EAAE,KAAK;MACXE,QAAQA,CAAC;QAAEC,KAAK;QAAEF;MAAU,CAAC,EAAE;QAC3B,MAAMG,QAAQ,GAAGH,SAAS,CAACI,QAAQ,EAAEF,KAAK;QAC1C,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;UACjC,OAAOE,sBAAU,CACZJ,QAAQ,CAACC,KAAK,EAAG,OAAMC,QAAS,EAAC,CAAC,CAClCG,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B;QACA,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAd,kBAAA,GAAAA,kBAAA"}
package/validators/in.js CHANGED
@@ -15,8 +15,7 @@ const createInValidator = () => {
15
15
  value,
16
16
  validator
17
17
  }) {
18
- var _validator$settings;
19
- const values = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.values;
18
+ const values = validator.settings?.values;
20
19
  if (Array.isArray(values)) {
21
20
  return _validation.validation.validate(value, `in:${values.join(":")}`).then(v => v === true).catch(() => false);
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_validation","require","createInValidator","type","name","validator","validate","value","_validator$settings","values","settings","Array","isArray","validation","join","then","v","catch","Promise","resolve","exports"],"sources":["in.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport const createInValidator = (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-in\",\n validator: {\n name: \"in\",\n validate({ value, validator }) {\n const values = validator.settings?.values;\n if (Array.isArray(values)) {\n return validation\n .validate(value, `in:${values.join(\":\")}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,iBAAiB,GAAGA,CAAA,KAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,8BAA8B;IACpCC,SAAS,EAAE;MACPD,IAAI,EAAE,IAAI;MACVE,QAAQA,CAAC;QAAEC,KAAK;QAAEF;MAAU,CAAC,EAAE;QAAA,IAAAG,mBAAA;QAC3B,MAAMC,MAAM,IAAAD,mBAAA,GAAGH,SAAS,CAACK,QAAQ,cAAAF,mBAAA,uBAAlBA,mBAAA,CAAoBC,MAAM;QACzC,IAAIE,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;UACvB,OAAOI,sBAAU,CACZP,QAAQ,CAACC,KAAK,EAAG,MAAKE,MAAM,CAACK,IAAI,CAAC,GAAG,CAAE,EAAC,CAAC,CACzCC,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B;QAEA,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAlB,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"names":["_validation","require","createInValidator","type","name","validator","validate","value","values","settings","Array","isArray","validation","join","then","v","catch","Promise","resolve","exports"],"sources":["in.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport const createInValidator = (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-in\",\n validator: {\n name: \"in\",\n validate({ value, validator }) {\n const values = validator.settings?.values;\n if (Array.isArray(values)) {\n return validation\n .validate(value, `in:${values.join(\":\")}`)\n .then(v => v === true)\n .catch(() => false);\n }\n\n return Promise.resolve(true);\n }\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,iBAAiB,GAAGA,CAAA,KAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,8BAA8B;IACpCC,SAAS,EAAE;MACPD,IAAI,EAAE,IAAI;MACVE,QAAQA,CAAC;QAAEC,KAAK;QAAEF;MAAU,CAAC,EAAE;QAC3B,MAAMG,MAAM,GAAGH,SAAS,CAACI,QAAQ,EAAED,MAAM;QACzC,IAAIE,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;UACvB,OAAOI,sBAAU,CACZN,QAAQ,CAACC,KAAK,EAAG,MAAKC,MAAM,CAACK,IAAI,CAAC,GAAG,CAAE,EAAC,CAAC,CACzCC,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B;QAEA,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAjB,iBAAA,GAAAA,iBAAA"}
package/validators/lte.js CHANGED
@@ -15,8 +15,7 @@ const createLteValidator = () => {
15
15
  value,
16
16
  validator
17
17
  }) {
18
- var _validator$settings;
19
- const lteValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
18
+ const lteValue = validator.settings?.value;
20
19
  if (typeof lteValue !== "undefined") {
21
20
  return _validation.validation.validate(value, `lte:${lteValue}`).then(v => v === true).catch(() => false);
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_validation","require","createLteValidator","type","name","validator","validate","value","_validator$settings","lteValue","settings","validation","then","v","catch","Promise","resolve","exports"],"sources":["lte.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport const createLteValidator = (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-lte\",\n validator: {\n name: \"lte\",\n validate({ value, validator }) {\n const lteValue = validator.settings?.value;\n if (typeof lteValue !== \"undefined\") {\n return validation\n .validate(value, `lte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,kBAAkB,GAAGA,CAAA,KAAoC;EAClE,OAAO;IACHC,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,+BAA+B;IACrCC,SAAS,EAAE;MACPD,IAAI,EAAE,KAAK;MACXE,QAAQA,CAAC;QAAEC,KAAK;QAAEF;MAAU,CAAC,EAAE;QAAA,IAAAG,mBAAA;QAC3B,MAAMC,QAAQ,IAAAD,mBAAA,GAAGH,SAAS,CAACK,QAAQ,cAAAF,mBAAA,uBAAlBA,mBAAA,CAAoBD,KAAK;QAC1C,IAAI,OAAOE,QAAQ,KAAK,WAAW,EAAE;UACjC,OAAOE,sBAAU,CACZL,QAAQ,CAACC,KAAK,EAAG,OAAME,QAAS,EAAC,CAAC,CAClCG,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B;QACA,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAf,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["_validation","require","createLteValidator","type","name","validator","validate","value","lteValue","settings","validation","then","v","catch","Promise","resolve","exports"],"sources":["lte.ts"],"sourcesContent":["import { validation } from \"@webiny/validation\";\nimport { CmsModelFieldValidatorPlugin } from \"~/types\";\n\nexport const createLteValidator = (): CmsModelFieldValidatorPlugin => {\n return {\n type: \"cms-model-field-validator\",\n name: \"cms-model-field-validator-lte\",\n validator: {\n name: \"lte\",\n validate({ value, validator }) {\n const lteValue = validator.settings?.value;\n if (typeof lteValue !== \"undefined\") {\n return validation\n .validate(value, `lte:${lteValue}`)\n .then(v => v === true)\n .catch(() => false);\n }\n return Promise.resolve(true);\n }\n }\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGO,MAAMC,kBAAkB,GAAGA,CAAA,KAAoC;EAClE,OAAO;IACHC,IAAI,EAAE,2BAA2B;IACjCC,IAAI,EAAE,+BAA+B;IACrCC,SAAS,EAAE;MACPD,IAAI,EAAE,KAAK;MACXE,QAAQA,CAAC;QAAEC,KAAK;QAAEF;MAAU,CAAC,EAAE;QAC3B,MAAMG,QAAQ,GAAGH,SAAS,CAACI,QAAQ,EAAEF,KAAK;QAC1C,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;UACjC,OAAOE,sBAAU,CACZJ,QAAQ,CAACC,KAAK,EAAG,OAAMC,QAAS,EAAC,CAAC,CAClCG,IAAI,CAACC,CAAC,IAAIA,CAAC,KAAK,IAAI,CAAC,CACrBC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC3B;QACA,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;IACJ;EACJ,CAAC;AACL,CAAC;AAACC,OAAA,CAAAd,kBAAA,GAAAA,kBAAA"}
@@ -15,8 +15,7 @@ const createMaxLengthValidator = () => {
15
15
  value,
16
16
  validator
17
17
  }) {
18
- var _validator$settings;
19
- const maxLengthValue = (_validator$settings = validator.settings) === null || _validator$settings === void 0 ? void 0 : _validator$settings.value;
18
+ const maxLengthValue = validator.settings?.value;
20
19
  if (typeof maxLengthValue !== "undefined") {
21
20
  return _validation.validation.validate(value, `maxLength:${maxLengthValue}`).then(v => v === true).catch(() => false);
22
21
  }