@webiny/api-headless-cms 0.0.0-unstable.8c4d9f045a → 0.0.0-unstable.8feaff8c32

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 (475) hide show
  1. package/constants.d.ts +1 -0
  2. package/constants.js +8 -0
  3. package/constants.js.map +1 -0
  4. package/context.d.ts +5 -2
  5. package/context.js +96 -30
  6. package/context.js.map +1 -1
  7. package/crud/contentEntry/afterDelete.d.ts +2 -2
  8. package/crud/contentEntry/afterDelete.js +2 -7
  9. package/crud/contentEntry/afterDelete.js.map +1 -1
  10. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  11. package/crud/contentEntry/beforeCreate.js +2 -5
  12. package/crud/contentEntry/beforeCreate.js.map +1 -1
  13. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  14. package/crud/contentEntry/beforeUpdate.js +2 -5
  15. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  16. package/crud/contentEntry/entryDataValidation.js +4 -47
  17. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  18. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  19. package/crud/contentEntry/markLockedFields.js +25 -39
  20. package/crud/contentEntry/markLockedFields.js.map +1 -1
  21. package/crud/contentEntry/referenceFieldsMapping.js +48 -77
  22. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  23. package/crud/contentEntry/searchableFields.d.ts +9 -0
  24. package/crud/contentEntry/searchableFields.js +72 -0
  25. package/crud/contentEntry/searchableFields.js.map +1 -0
  26. package/crud/contentEntry.crud.d.ts +12 -7
  27. package/crud/contentEntry.crud.js +1213 -1033
  28. package/crud/contentEntry.crud.js.map +1 -1
  29. package/crud/contentModel/afterCreate.d.ts +3 -3
  30. package/crud/contentModel/afterCreate.js +5 -7
  31. package/crud/contentModel/afterCreate.js.map +1 -1
  32. package/crud/contentModel/afterCreateFrom.d.ts +3 -3
  33. package/crud/contentModel/afterCreateFrom.js +5 -7
  34. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  35. package/crud/contentModel/afterDelete.d.ts +3 -3
  36. package/crud/contentModel/afterDelete.js +5 -7
  37. package/crud/contentModel/afterDelete.js.map +1 -1
  38. package/crud/contentModel/afterUpdate.d.ts +3 -3
  39. package/crud/contentModel/afterUpdate.js +5 -7
  40. package/crud/contentModel/afterUpdate.js.map +1 -1
  41. package/crud/contentModel/beforeCreate.d.ts +5 -6
  42. package/crud/contentModel/beforeCreate.js +53 -119
  43. package/crud/contentModel/beforeCreate.js.map +1 -1
  44. package/crud/contentModel/beforeDelete.d.ts +3 -3
  45. package/crud/contentModel/beforeDelete.js +7 -21
  46. package/crud/contentModel/beforeDelete.js.map +1 -1
  47. package/crud/contentModel/beforeUpdate.d.ts +4 -6
  48. package/crud/contentModel/beforeUpdate.js +38 -15
  49. package/crud/contentModel/beforeUpdate.js.map +1 -1
  50. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  51. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  52. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  53. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  54. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  55. package/crud/contentModel/createFieldStorageId.js +4 -3
  56. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  57. package/crud/contentModel/defaultFields.d.ts +5 -0
  58. package/crud/contentModel/defaultFields.js +58 -0
  59. package/crud/contentModel/defaultFields.js.map +1 -0
  60. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  61. package/crud/contentModel/fields/descriptionField.js +42 -0
  62. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  63. package/crud/contentModel/fields/imageField.d.ts +2 -0
  64. package/crud/contentModel/fields/imageField.js +46 -0
  65. package/crud/contentModel/fields/imageField.js.map +1 -0
  66. package/crud/contentModel/fields/titleField.d.ts +2 -0
  67. package/crud/contentModel/fields/titleField.js +58 -0
  68. package/crud/contentModel/fields/titleField.js.map +1 -0
  69. package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
  70. package/crud/contentModel/validate/endingAllowed.js +26 -0
  71. package/crud/contentModel/validate/endingAllowed.js.map +1 -0
  72. package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
  73. package/crud/contentModel/validate/isModelEndingAllowed.js +24 -0
  74. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
  75. package/crud/contentModel/validate/modelId.d.ts +11 -0
  76. package/crud/contentModel/validate/modelId.js +36 -0
  77. package/crud/contentModel/validate/modelId.js.map +1 -0
  78. package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
  79. package/crud/contentModel/validate/pluralApiName.js +24 -0
  80. package/crud/contentModel/validate/pluralApiName.js.map +1 -0
  81. package/crud/contentModel/validate/singularApiName.d.ts +7 -0
  82. package/crud/contentModel/validate/singularApiName.js +24 -0
  83. package/crud/contentModel/validate/singularApiName.js.map +1 -0
  84. package/crud/contentModel/validateLayout.js +0 -8
  85. package/crud/contentModel/validateLayout.js.map +1 -1
  86. package/crud/contentModel/validateModel.d.ts +4 -4
  87. package/crud/contentModel/validateModel.js +7 -12
  88. package/crud/contentModel/validateModel.js.map +1 -1
  89. package/crud/contentModel/validateModelFields.d.ts +4 -4
  90. package/crud/contentModel/validateModelFields.js +134 -155
  91. package/crud/contentModel/validateModelFields.js.map +1 -1
  92. package/crud/contentModel/validation.d.ts +591 -0
  93. package/crud/contentModel/validation.js +145 -0
  94. package/crud/contentModel/validation.js.map +1 -0
  95. package/crud/contentModel.crud.d.ts +2 -0
  96. package/crud/contentModel.crud.js +426 -381
  97. package/crud/contentModel.crud.js.map +1 -1
  98. package/crud/contentModelGroup/beforeCreate.d.ts +2 -2
  99. package/crud/contentModelGroup/beforeCreate.js +3 -15
  100. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  101. package/crud/contentModelGroup/beforeDelete.d.ts +2 -2
  102. package/crud/contentModelGroup/beforeDelete.js +3 -11
  103. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  104. package/crud/contentModelGroup/beforeUpdate.d.ts +2 -2
  105. package/crud/contentModelGroup/beforeUpdate.js +2 -7
  106. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  107. package/crud/contentModelGroup/validation.d.ts +30 -0
  108. package/crud/contentModelGroup/validation.js +34 -0
  109. package/crud/contentModelGroup/validation.js.map +1 -0
  110. package/crud/contentModelGroup.crud.d.ts +2 -0
  111. package/crud/contentModelGroup.crud.js +252 -231
  112. package/crud/contentModelGroup.crud.js.map +1 -1
  113. package/crud/settings.crud.d.ts +3 -1
  114. package/crud/settings.crud.js +10 -36
  115. package/crud/settings.crud.js.map +1 -1
  116. package/crud/system.crud.js +55 -138
  117. package/crud/system.crud.js.map +1 -1
  118. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -14
  119. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  120. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  121. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  122. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  123. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +17 -72
  124. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  125. package/fieldConverters/index.d.ts +2 -1
  126. package/fieldConverters/index.js +2 -5
  127. package/fieldConverters/index.js.map +1 -1
  128. package/graphql/buildSchemaPlugins.d.ts +8 -3
  129. package/graphql/buildSchemaPlugins.js +7 -11
  130. package/graphql/buildSchemaPlugins.js.map +1 -1
  131. package/graphql/checkEndpointAccess.d.ts +2 -0
  132. package/graphql/checkEndpointAccess.js +18 -0
  133. package/graphql/checkEndpointAccess.js.map +1 -0
  134. package/graphql/createExecutableSchema.d.ts +6 -0
  135. package/graphql/createExecutableSchema.js +29 -0
  136. package/graphql/createExecutableSchema.js.map +1 -0
  137. package/graphql/createRequestBody.d.ts +2 -0
  138. package/graphql/createRequestBody.js +14 -0
  139. package/graphql/createRequestBody.js.map +1 -0
  140. package/graphql/formatErrorPayload.d.ts +1 -0
  141. package/graphql/formatErrorPayload.js +25 -0
  142. package/graphql/formatErrorPayload.js.map +1 -0
  143. package/graphql/generateSchema.d.ts +8 -0
  144. package/graphql/generateSchema.js +31 -0
  145. package/graphql/generateSchema.js.map +1 -0
  146. package/graphql/getSchema.d.ts +17 -0
  147. package/graphql/getSchema.js +102 -0
  148. package/graphql/getSchema.js.map +1 -0
  149. package/graphql/graphQLHandlerFactory.js +7 -130
  150. package/graphql/graphQLHandlerFactory.js.map +1 -1
  151. package/graphql/handleRequest.d.ts +11 -0
  152. package/graphql/handleRequest.js +81 -0
  153. package/graphql/handleRequest.js.map +1 -0
  154. package/graphql/index.d.ts +1 -3
  155. package/graphql/index.js +2 -46
  156. package/graphql/index.js.map +1 -1
  157. package/graphql/schema/baseContentSchema.d.ts +6 -2
  158. package/graphql/schema/baseContentSchema.js +15 -29
  159. package/graphql/schema/baseContentSchema.js.map +1 -1
  160. package/graphql/schema/baseSchema.d.ts +3 -0
  161. package/graphql/schema/baseSchema.js +84 -0
  162. package/graphql/schema/baseSchema.js.map +1 -0
  163. package/graphql/schema/contentEntries.d.ts +6 -2
  164. package/graphql/schema/contentEntries.js +127 -111
  165. package/graphql/schema/contentEntries.js.map +1 -1
  166. package/graphql/schema/contentModelGroups.d.ts +6 -2
  167. package/graphql/schema/contentModelGroups.js +16 -29
  168. package/graphql/schema/contentModelGroups.js.map +1 -1
  169. package/graphql/schema/contentModels.d.ts +6 -2
  170. package/graphql/schema/contentModels.js +77 -22
  171. package/graphql/schema/contentModels.js.map +1 -1
  172. package/graphql/schema/createFieldResolvers.d.ts +2 -2
  173. package/graphql/schema/createFieldResolvers.js +25 -44
  174. package/graphql/schema/createFieldResolvers.js.map +1 -1
  175. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  176. package/graphql/schema/createFieldTypePluginRecords.js +13 -0
  177. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  178. package/graphql/schema/createManageResolvers.d.ts +1 -1
  179. package/graphql/schema/createManageResolvers.js +47 -57
  180. package/graphql/schema/createManageResolvers.js.map +1 -1
  181. package/graphql/schema/createManageSDL.d.ts +3 -0
  182. package/graphql/schema/createManageSDL.js +99 -83
  183. package/graphql/schema/createManageSDL.js.map +1 -1
  184. package/graphql/schema/createPreviewResolvers.js +6 -24
  185. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  186. package/graphql/schema/createReadResolvers.js +11 -24
  187. package/graphql/schema/createReadResolvers.js.map +1 -1
  188. package/graphql/schema/createReadSDL.d.ts +3 -0
  189. package/graphql/schema/createReadSDL.js +48 -46
  190. package/graphql/schema/createReadSDL.js.map +1 -1
  191. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  192. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  193. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  194. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  195. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  196. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  197. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  198. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  199. package/graphql/schema/resolvers/manage/resolveDelete.js +13 -9
  200. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  201. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  202. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +20 -0
  203. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  204. package/graphql/schema/resolvers/manage/resolveGet.js +5 -25
  205. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  206. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  207. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  208. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  209. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  210. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  211. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +18 -0
  212. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  213. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  214. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  215. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  216. package/graphql/schema/resolvers/manage/resolveMove.js +30 -0
  217. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  218. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  219. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  220. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  221. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  222. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  223. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  224. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  225. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  226. package/graphql/schema/resolvers/preview/resolveGet.js +3 -15
  227. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  228. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  229. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  230. package/graphql/schema/resolvers/read/resolveGet.js +3 -15
  231. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  232. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  233. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  234. package/graphql/schema/schemaPlugins.d.ts +8 -3
  235. package/graphql/schema/schemaPlugins.js +58 -69
  236. package/graphql/schema/schemaPlugins.js.map +1 -1
  237. package/graphql/system.d.ts +2 -5
  238. package/graphql/system.js +56 -98
  239. package/graphql/system.js.map +1 -1
  240. package/graphqlFields/boolean.js +0 -12
  241. package/graphqlFields/boolean.js.map +1 -1
  242. package/graphqlFields/datetime.js +0 -17
  243. package/graphqlFields/datetime.js.map +1 -1
  244. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  245. package/graphqlFields/dynamicZone/dynamicZoneField.js +243 -0
  246. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  247. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  248. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
  249. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  250. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  251. package/graphqlFields/dynamicZone/index.js +19 -0
  252. package/graphqlFields/dynamicZone/index.js.map +1 -0
  253. package/graphqlFields/file.js +0 -8
  254. package/graphqlFields/file.js.map +1 -1
  255. package/graphqlFields/helpers.js +0 -10
  256. package/graphqlFields/helpers.js.map +1 -1
  257. package/graphqlFields/index.d.ts +1 -1
  258. package/graphqlFields/index.js +2 -12
  259. package/graphqlFields/index.js.map +1 -1
  260. package/graphqlFields/longText.js +0 -10
  261. package/graphqlFields/longText.js.map +1 -1
  262. package/graphqlFields/number.js +5 -12
  263. package/graphqlFields/number.js.map +1 -1
  264. package/graphqlFields/object.js +132 -99
  265. package/graphqlFields/object.js.map +1 -1
  266. package/graphqlFields/ref.js +90 -114
  267. package/graphqlFields/ref.js.map +1 -1
  268. package/graphqlFields/richText.js +0 -9
  269. package/graphqlFields/richText.js.map +1 -1
  270. package/graphqlFields/text.js +2 -11
  271. package/graphqlFields/text.js.map +1 -1
  272. package/index.d.ts +5 -3
  273. package/index.js +27 -27
  274. package/index.js.map +1 -1
  275. package/modelManager/DefaultCmsModelManager.d.ts +7 -7
  276. package/modelManager/DefaultCmsModelManager.js +1 -17
  277. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  278. package/modelManager/index.js +0 -4
  279. package/modelManager/index.js.map +1 -1
  280. package/package.json +36 -42
  281. package/parameters/context.js +0 -4
  282. package/parameters/context.js.map +1 -1
  283. package/parameters/header.js +4 -15
  284. package/parameters/header.js.map +1 -1
  285. package/parameters/index.js +0 -8
  286. package/parameters/index.js.map +1 -1
  287. package/parameters/manual.js +7 -15
  288. package/parameters/manual.js.map +1 -1
  289. package/parameters/path.js +1 -12
  290. package/parameters/path.js.map +1 -1
  291. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  292. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  293. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  294. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  295. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  296. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  297. package/plugins/CmsGroupPlugin.js +1 -9
  298. package/plugins/CmsGroupPlugin.js.map +1 -1
  299. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  300. package/plugins/CmsModelFieldConverterPlugin.js +1 -6
  301. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  302. package/plugins/CmsModelPlugin.d.ts +27 -5
  303. package/plugins/CmsModelPlugin.js +46 -51
  304. package/plugins/CmsModelPlugin.js.map +1 -1
  305. package/plugins/CmsParametersPlugin.js +4 -7
  306. package/plugins/CmsParametersPlugin.js.map +1 -1
  307. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  308. package/plugins/StorageOperationsCmsModelPlugin.js +42 -0
  309. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  310. package/plugins/StorageTransformPlugin.d.ts +11 -11
  311. package/plugins/StorageTransformPlugin.js +1 -10
  312. package/plugins/StorageTransformPlugin.js.map +1 -1
  313. package/plugins/index.d.ts +3 -0
  314. package/plugins/index.js +33 -10
  315. package/plugins/index.js.map +1 -1
  316. package/storage/default.js +0 -3
  317. package/storage/default.js.map +1 -1
  318. package/storage/object.js +7 -27
  319. package/storage/object.js.map +1 -1
  320. package/types.d.ts +712 -251
  321. package/types.js +78 -76
  322. package/types.js.map +1 -1
  323. package/utils/converters/Converter.js +1 -14
  324. package/utils/converters/Converter.js.map +1 -1
  325. package/utils/converters/ConverterCollection.d.ts +7 -0
  326. package/utils/converters/ConverterCollection.js +36 -32
  327. package/utils/converters/ConverterCollection.js.map +1 -1
  328. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  329. package/utils/converters/valueKeyStorageConverter.js +32 -51
  330. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  331. package/utils/createTypeFromFields.d.ts +16 -0
  332. package/utils/createTypeFromFields.js +66 -0
  333. package/utils/createTypeFromFields.js.map +1 -0
  334. package/utils/createTypeName.d.ts +0 -2
  335. package/utils/createTypeName.js +5 -20
  336. package/utils/createTypeName.js.map +1 -1
  337. package/utils/entryStorage.js +25 -42
  338. package/utils/entryStorage.js.map +1 -1
  339. package/utils/filterAsync.js +0 -5
  340. package/utils/filterAsync.js.map +1 -1
  341. package/utils/getBaseFieldType.d.ts +2 -0
  342. package/utils/getBaseFieldType.js +10 -0
  343. package/utils/getBaseFieldType.js.map +1 -0
  344. package/utils/getEntryDescription.d.ts +2 -0
  345. package/utils/getEntryDescription.js +17 -0
  346. package/utils/getEntryDescription.js.map +1 -0
  347. package/utils/getEntryImage.d.ts +2 -0
  348. package/utils/getEntryImage.js +17 -0
  349. package/utils/getEntryImage.js.map +1 -0
  350. package/utils/getEntryTitle.d.ts +1 -1
  351. package/utils/getEntryTitle.js +0 -9
  352. package/utils/getEntryTitle.js.map +1 -1
  353. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  354. package/utils/getSchemaFromFieldPlugins.js +23 -19
  355. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  356. package/utils/incrementEntryIdVersion.d.ts +5 -0
  357. package/utils/incrementEntryIdVersion.js +29 -0
  358. package/utils/incrementEntryIdVersion.js.map +1 -0
  359. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  360. package/utils/permissions/EntriesPermissions.js +9 -0
  361. package/utils/permissions/EntriesPermissions.js.map +1 -0
  362. package/utils/permissions/ModelGroupsPermissions.d.ts +11 -0
  363. package/utils/permissions/ModelGroupsPermissions.js +48 -0
  364. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  365. package/utils/permissions/ModelsPermissions.d.ts +20 -0
  366. package/utils/permissions/ModelsPermissions.js +91 -0
  367. package/utils/permissions/ModelsPermissions.js.map +1 -0
  368. package/utils/permissions/SettingsPermissions.d.ts +4 -0
  369. package/utils/permissions/SettingsPermissions.js +9 -0
  370. package/utils/permissions/SettingsPermissions.js.map +1 -0
  371. package/utils/renderFields.d.ts +4 -2
  372. package/utils/renderFields.js +12 -11
  373. package/utils/renderFields.js.map +1 -1
  374. package/utils/renderGetFilterFields.d.ts +2 -2
  375. package/utils/renderGetFilterFields.js +9 -30
  376. package/utils/renderGetFilterFields.js.map +1 -1
  377. package/utils/renderInputFields.d.ts +4 -2
  378. package/utils/renderInputFields.js +19 -14
  379. package/utils/renderInputFields.js.map +1 -1
  380. package/utils/renderListFilterFields.d.ts +3 -1
  381. package/utils/renderListFilterFields.js +24 -28
  382. package/utils/renderListFilterFields.js.map +1 -1
  383. package/utils/renderSortEnum.d.ts +9 -5
  384. package/utils/renderSortEnum.js +26 -12
  385. package/utils/renderSortEnum.js.map +1 -1
  386. package/utils/toSlug.js +1 -5
  387. package/utils/toSlug.js.map +1 -1
  388. package/validators/dateGte.js +0 -7
  389. package/validators/dateGte.js.map +1 -1
  390. package/validators/dateLte.js +0 -7
  391. package/validators/dateLte.js.map +1 -1
  392. package/validators/dynamicZone.d.ts +2 -0
  393. package/validators/dynamicZone.js +20 -0
  394. package/validators/dynamicZone.js.map +1 -0
  395. package/validators/gte.js +0 -8
  396. package/validators/gte.js.map +1 -1
  397. package/validators/in.js +0 -8
  398. package/validators/in.js.map +1 -1
  399. package/validators/index.js +2 -16
  400. package/validators/index.js.map +1 -1
  401. package/validators/lte.js +0 -8
  402. package/validators/lte.js.map +1 -1
  403. package/validators/maxLength.js +0 -8
  404. package/validators/maxLength.js.map +1 -1
  405. package/validators/minLength.js +0 -8
  406. package/validators/minLength.js.map +1 -1
  407. package/validators/pattern.js +0 -9
  408. package/validators/pattern.js.map +1 -1
  409. package/validators/patternPlugins/email.js +0 -2
  410. package/validators/patternPlugins/email.js.map +1 -1
  411. package/validators/patternPlugins/index.js +0 -8
  412. package/validators/patternPlugins/index.js.map +1 -1
  413. package/validators/patternPlugins/lowerCase.js +0 -2
  414. package/validators/patternPlugins/lowerCase.js.map +1 -1
  415. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  416. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  417. package/validators/patternPlugins/upperCase.js +0 -2
  418. package/validators/patternPlugins/upperCase.js.map +1 -1
  419. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  420. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  421. package/validators/patternPlugins/url.js +0 -2
  422. package/validators/patternPlugins/url.js.map +1 -1
  423. package/validators/required.js +0 -5
  424. package/validators/required.js.map +1 -1
  425. package/validators/timeGte.js +0 -8
  426. package/validators/timeGte.js.map +1 -1
  427. package/validators/timeLte.js +0 -8
  428. package/validators/timeLte.js.map +1 -1
  429. package/validators/unique.js +1 -8
  430. package/validators/unique.js.map +1 -1
  431. package/crud/contentModel/createFieldModels.d.ts +0 -2
  432. package/crud/contentModel/createFieldModels.js +0 -26
  433. package/crud/contentModel/createFieldModels.js.map +0 -1
  434. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  435. package/crud/contentModel/fieldIdValidation.js +0 -25
  436. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  437. package/crud/contentModel/idValidation.d.ts +0 -1
  438. package/crud/contentModel/idValidation.js +0 -22
  439. package/crud/contentModel/idValidation.js.map +0 -1
  440. package/crud/contentModel/models.d.ts +0 -4
  441. package/crud/contentModel/models.js +0 -180
  442. package/crud/contentModel/models.js.map +0 -1
  443. package/crud/contentModel/systemFields.d.ts +0 -1
  444. package/crud/contentModel/systemFields.js +0 -8
  445. package/crud/contentModel/systemFields.js.map +0 -1
  446. package/crud/index.d.ts +0 -6
  447. package/crud/index.js +0 -89
  448. package/crud/index.js.map +0 -1
  449. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  450. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  451. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  452. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  453. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  454. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  455. package/upgrades/5.33.0/index.d.ts +0 -3
  456. package/upgrades/5.33.0/index.js +0 -186
  457. package/upgrades/5.33.0/index.js.map +0 -1
  458. package/upgrades/index.d.ts +0 -1
  459. package/upgrades/index.js +0 -12
  460. package/upgrades/index.js.map +0 -1
  461. package/utils/access.d.ts +0 -8
  462. package/utils/access.js +0 -90
  463. package/utils/access.js.map +0 -1
  464. package/utils/filterModelFields.d.ts +0 -16
  465. package/utils/filterModelFields.js +0 -81
  466. package/utils/filterModelFields.js.map +0 -1
  467. package/utils/ownership.d.ts +0 -8
  468. package/utils/ownership.js +0 -41
  469. package/utils/ownership.js.map +0 -1
  470. package/utils/permissions.d.ts +0 -7
  471. package/utils/permissions.js +0 -110
  472. package/utils/permissions.js.map +0 -1
  473. package/utils/pluralizedTypeName.d.ts +0 -1
  474. package/utils/pluralizedTypeName.js +0 -26
  475. package/utils/pluralizedTypeName.js.map +0 -1
package/constants.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const ROOT_FOLDER = "root";
package/constants.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ROOT_FOLDER = void 0;
7
+ const ROOT_FOLDER = "root";
8
+ exports.ROOT_FOLDER = ROOT_FOLDER;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ROOT_FOLDER","exports"],"sources":["constants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG,MAAM;AAACC,OAAA,CAAAD,WAAA,GAAAA,WAAA"}
package/context.d.ts CHANGED
@@ -1,3 +1,6 @@
1
- import { CmsContext } from "./types";
1
+ import { CmsContext, HeadlessCmsStorageOperations } from "./types";
2
2
  import { ContextPlugin } from "@webiny/api";
3
- export declare const createContextPlugin: () => ContextPlugin<CmsContext>;
3
+ export interface CrudParams {
4
+ storageOperations: HeadlessCmsStorageOperations;
5
+ }
6
+ export declare const createContextPlugin: ({ storageOperations }: CrudParams) => ContextPlugin<CmsContext>;
package/context.js CHANGED
@@ -1,64 +1,130 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createContextPlugin = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _api = require("@webiny/api");
15
-
16
11
  var _CmsParametersPlugin = require("./plugins/CmsParametersPlugin");
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
-
12
+ var _system = require("./crud/system.crud");
13
+ var _settings = require("./crud/settings.crud");
14
+ var _contentModelGroup = require("./crud/contentModelGroup.crud");
15
+ var _contentModel = require("./crud/contentModel.crud");
16
+ var _contentEntry = require("./crud/contentEntry.crud");
17
+ var _plugins = require("./plugins");
18
+ var _valueKeyStorageConverter = require("./utils/converters/valueKeyStorageConverter");
19
+ var _ModelsPermissions = require("./utils/permissions/ModelsPermissions");
20
+ var _ModelGroupsPermissions = require("./utils/permissions/ModelGroupsPermissions");
21
+ var _EntriesPermissions = require("./utils/permissions/EntriesPermissions");
22
+ var _SettingsPermissions = require("./utils/permissions/SettingsPermissions");
22
23
  const getParameters = async context => {
23
24
  const plugins = context.plugins.byType(_CmsParametersPlugin.CmsParametersPlugin.type);
24
-
25
25
  for (const plugin of plugins) {
26
26
  const result = await plugin.getParameters(context);
27
-
28
27
  if (result !== null) {
29
28
  return result;
30
29
  }
31
30
  }
32
-
33
31
  throw new _error.default("Could not determine locale and/or type of the CMS.", "CMS_LOCALE_AND_TYPE_ERROR");
34
32
  };
35
-
36
- const createContextPlugin = () => {
37
- return new _api.ContextPlugin(async context => {
33
+ const createContextPlugin = ({
34
+ storageOperations
35
+ }) => {
36
+ const plugin = new _api.ContextPlugin(async context => {
38
37
  const {
39
38
  type,
40
39
  locale
41
40
  } = await getParameters(context);
42
-
43
41
  const getLocale = () => {
44
42
  const systemLocale = context.i18n.getLocale(locale);
45
-
46
43
  if (!systemLocale) {
47
44
  throw new _error.default(`There is no locale "${locale}" in the system.`);
48
45
  }
49
-
50
46
  return systemLocale;
51
47
  };
52
-
53
- context.cms = _objectSpread(_objectSpread({}, context.cms || {}), {}, {
54
- type,
55
- locale,
56
- getLocale,
57
- READ: type === "read",
58
- PREVIEW: type === "preview",
59
- MANAGE: type === "manage"
48
+ const getIdentity = () => {
49
+ return context.security.getIdentity();
50
+ };
51
+ const getTenant = () => {
52
+ return context.tenancy.getCurrentTenant();
53
+ };
54
+ context.plugins.register(new _plugins.StorageOperationsCmsModelPlugin((0, _valueKeyStorageConverter.createCmsModelFieldConvertersAttachFactory)(context.plugins)));
55
+ await context.benchmark.measure("headlessCms.createContext", async () => {
56
+ await storageOperations.beforeInit(context);
57
+ const modelGroupsPermissions = new _ModelGroupsPermissions.ModelGroupsPermissions({
58
+ getIdentity: context.security.getIdentity,
59
+ getPermissions: () => context.security.getPermissions("cms.contentModelGroup"),
60
+ fullAccessPermissionName: "cms.*"
61
+ });
62
+ const modelsPermissions = new _ModelsPermissions.ModelsPermissions({
63
+ getIdentity: context.security.getIdentity,
64
+ getPermissions: () => context.security.getPermissions("cms.contentModel"),
65
+ fullAccessPermissionName: "cms.*",
66
+ modelGroupsPermissions
67
+ });
68
+ const entriesPermissions = new _EntriesPermissions.EntriesPermissions({
69
+ getIdentity: context.security.getIdentity,
70
+ getPermissions: () => context.security.getPermissions("cms.contentEntry"),
71
+ fullAccessPermissionName: "cms.*"
72
+ });
73
+ const settingsPermissions = new _SettingsPermissions.SettingsPermissions({
74
+ getIdentity: context.security.getIdentity,
75
+ getPermissions: () => context.security.getPermissions("cms.settings"),
76
+ fullAccessPermissionName: "cms.*"
77
+ });
78
+ context.cms = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
79
+ type,
80
+ locale,
81
+ getLocale,
82
+ READ: type === "read",
83
+ PREVIEW: type === "preview",
84
+ MANAGE: type === "manage",
85
+ storageOperations
86
+ }, (0, _system.createSystemCrud)({
87
+ context,
88
+ getTenant,
89
+ getLocale,
90
+ getIdentity,
91
+ storageOperations
92
+ })), (0, _settings.createSettingsCrud)({
93
+ context,
94
+ getTenant,
95
+ getLocale,
96
+ storageOperations,
97
+ settingsPermissions
98
+ })), (0, _contentModelGroup.createModelGroupsCrud)({
99
+ context,
100
+ getTenant,
101
+ getLocale,
102
+ getIdentity,
103
+ storageOperations,
104
+ modelGroupsPermissions
105
+ })), (0, _contentModel.createModelsCrud)({
106
+ context,
107
+ getLocale,
108
+ getTenant,
109
+ getIdentity,
110
+ storageOperations,
111
+ modelsPermissions
112
+ })), (0, _contentEntry.createContentEntryCrud)({
113
+ context,
114
+ getIdentity,
115
+ getTenant,
116
+ getLocale,
117
+ storageOperations,
118
+ entriesPermissions,
119
+ modelsPermissions
120
+ }));
121
+ if (!storageOperations.init) {
122
+ return;
123
+ }
124
+ await storageOperations.init(context);
60
125
  });
61
126
  });
127
+ plugin.name = "cms.createContext";
128
+ return plugin;
62
129
  };
63
-
64
130
  exports.createContextPlugin = createContextPlugin;
package/context.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["getParameters","context","plugins","byType","CmsParametersPlugin","type","plugin","result","WebinyError","createContextPlugin","ContextPlugin","locale","getLocale","systemLocale","i18n","cms","READ","PREVIEW","MANAGE"],"sources":["context.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsParametersPlugin, CmsParametersPluginResponse } from \"./plugins/CmsParametersPlugin\";\n\nconst getParameters = async (context: CmsContext): Promise<CmsParametersPluginResponse> => {\n const plugins = context.plugins.byType<CmsParametersPlugin>(CmsParametersPlugin.type);\n\n for (const plugin of plugins) {\n const result = await plugin.getParameters(context);\n if (result !== null) {\n return result;\n }\n }\n throw new WebinyError(\n \"Could not determine locale and/or type of the CMS.\",\n \"CMS_LOCALE_AND_TYPE_ERROR\"\n );\n};\n\nexport const createContextPlugin = () => {\n return new ContextPlugin<CmsContext>(async context => {\n const { type, locale } = await getParameters(context);\n\n const getLocale = () => {\n const systemLocale = context.i18n.getLocale(locale);\n if (!systemLocale) {\n throw new WebinyError(`There is no locale \"${locale}\" in the system.`);\n }\n return systemLocale;\n };\n\n context.cms = {\n ...(context.cms || {}),\n type,\n locale,\n getLocale,\n READ: type === \"read\",\n PREVIEW: type === \"preview\",\n MANAGE: type === \"manage\"\n };\n });\n};\n"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;;;;;AAEA,MAAMA,aAAa,GAAG,MAAOC,OAAP,IAAqE;EACvF,MAAMC,OAAO,GAAGD,OAAO,CAACC,OAAR,CAAgBC,MAAhB,CAA4CC,wCAAA,CAAoBC,IAAhE,CAAhB;;EAEA,KAAK,MAAMC,MAAX,IAAqBJ,OAArB,EAA8B;IAC1B,MAAMK,MAAM,GAAG,MAAMD,MAAM,CAACN,aAAP,CAAqBC,OAArB,CAArB;;IACA,IAAIM,MAAM,KAAK,IAAf,EAAqB;MACjB,OAAOA,MAAP;IACH;EACJ;;EACD,MAAM,IAAIC,cAAJ,CACF,oDADE,EAEF,2BAFE,CAAN;AAIH,CAbD;;AAeO,MAAMC,mBAAmB,GAAG,MAAM;EACrC,OAAO,IAAIC,kBAAJ,CAA8B,MAAMT,OAAN,IAAiB;IAClD,MAAM;MAAEI,IAAF;MAAQM;IAAR,IAAmB,MAAMX,aAAa,CAACC,OAAD,CAA5C;;IAEA,MAAMW,SAAS,GAAG,MAAM;MACpB,MAAMC,YAAY,GAAGZ,OAAO,CAACa,IAAR,CAAaF,SAAb,CAAuBD,MAAvB,CAArB;;MACA,IAAI,CAACE,YAAL,EAAmB;QACf,MAAM,IAAIL,cAAJ,CAAiB,uBAAsBG,MAAO,kBAA9C,CAAN;MACH;;MACD,OAAOE,YAAP;IACH,CAND;;IAQAZ,OAAO,CAACc,GAAR,mCACQd,OAAO,CAACc,GAAR,IAAe,EADvB;MAEIV,IAFJ;MAGIM,MAHJ;MAIIC,SAJJ;MAKII,IAAI,EAAEX,IAAI,KAAK,MALnB;MAMIY,OAAO,EAAEZ,IAAI,KAAK,SANtB;MAOIa,MAAM,EAAEb,IAAI,KAAK;IAPrB;EASH,CApBM,CAAP;AAqBH,CAtBM"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_api","_CmsParametersPlugin","_system","_settings","_contentModelGroup","_contentModel","_contentEntry","_plugins","_valueKeyStorageConverter","_ModelsPermissions","_ModelGroupsPermissions","_EntriesPermissions","_SettingsPermissions","getParameters","context","plugins","byType","CmsParametersPlugin","type","plugin","result","WebinyError","createContextPlugin","storageOperations","ContextPlugin","locale","getLocale","systemLocale","i18n","getIdentity","security","getTenant","tenancy","getCurrentTenant","register","StorageOperationsCmsModelPlugin","createCmsModelFieldConvertersAttachFactory","benchmark","measure","beforeInit","modelGroupsPermissions","ModelGroupsPermissions","getPermissions","fullAccessPermissionName","modelsPermissions","ModelsPermissions","entriesPermissions","EntriesPermissions","settingsPermissions","SettingsPermissions","cms","_objectSpread2","default","READ","PREVIEW","MANAGE","createSystemCrud","createSettingsCrud","createModelGroupsCrud","createModelsCrud","createContentEntryCrud","init","name","exports"],"sources":["context.ts"],"sourcesContent":["import { CmsContext, HeadlessCmsStorageOperations } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { CmsParametersPlugin, CmsParametersPluginResponse } from \"~/plugins/CmsParametersPlugin\";\nimport { createSystemCrud } from \"~/crud/system.crud\";\nimport { createSettingsCrud } from \"~/crud/settings.crud\";\nimport { createModelGroupsCrud } from \"~/crud/contentModelGroup.crud\";\nimport { createModelsCrud } from \"~/crud/contentModel.crud\";\nimport { createContentEntryCrud } from \"~/crud/contentEntry.crud\";\nimport { StorageOperationsCmsModelPlugin } from \"~/plugins\";\nimport { createCmsModelFieldConvertersAttachFactory } from \"~/utils/converters/valueKeyStorageConverter\";\nimport { ModelsPermissions } from \"~/utils/permissions/ModelsPermissions\";\nimport { ModelGroupsPermissions } from \"./utils/permissions/ModelGroupsPermissions\";\nimport { EntriesPermissions } from \"./utils/permissions/EntriesPermissions\";\nimport { SettingsPermissions } from \"./utils/permissions/SettingsPermissions\";\n\nconst getParameters = async (context: CmsContext): Promise<CmsParametersPluginResponse> => {\n const plugins = context.plugins.byType<CmsParametersPlugin>(CmsParametersPlugin.type);\n\n for (const plugin of plugins) {\n const result = await plugin.getParameters(context);\n if (result !== null) {\n return result;\n }\n }\n throw new WebinyError(\n \"Could not determine locale and/or type of the CMS.\",\n \"CMS_LOCALE_AND_TYPE_ERROR\"\n );\n};\n\nexport interface CrudParams {\n storageOperations: HeadlessCmsStorageOperations;\n}\n\nexport const createContextPlugin = ({ storageOperations }: CrudParams) => {\n const plugin = new ContextPlugin<CmsContext>(async context => {\n const { type, locale } = await getParameters(context);\n\n const getLocale = () => {\n const systemLocale = context.i18n.getLocale(locale);\n if (!systemLocale) {\n throw new WebinyError(`There is no locale \"${locale}\" in the system.`);\n }\n return systemLocale;\n };\n\n const getIdentity = () => {\n return context.security.getIdentity();\n };\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n context.plugins.register(\n new StorageOperationsCmsModelPlugin(\n createCmsModelFieldConvertersAttachFactory(context.plugins)\n )\n );\n\n await context.benchmark.measure(\"headlessCms.createContext\", async () => {\n await storageOperations.beforeInit(context);\n\n const modelGroupsPermissions = new ModelGroupsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModelGroup\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n const modelsPermissions = new ModelsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentModel\"),\n fullAccessPermissionName: \"cms.*\",\n modelGroupsPermissions\n });\n\n const entriesPermissions = new EntriesPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.contentEntry\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n const settingsPermissions = new SettingsPermissions({\n getIdentity: context.security.getIdentity,\n getPermissions: () => context.security.getPermissions(\"cms.settings\"),\n fullAccessPermissionName: \"cms.*\"\n });\n\n context.cms = {\n type,\n locale,\n getLocale,\n READ: type === \"read\",\n PREVIEW: type === \"preview\",\n MANAGE: type === \"manage\",\n storageOperations,\n ...createSystemCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations\n }),\n ...createSettingsCrud({\n context,\n getTenant,\n getLocale,\n storageOperations,\n settingsPermissions\n }),\n ...createModelGroupsCrud({\n context,\n getTenant,\n getLocale,\n getIdentity,\n storageOperations,\n modelGroupsPermissions\n }),\n ...createModelsCrud({\n context,\n getLocale,\n getTenant,\n getIdentity,\n storageOperations,\n modelsPermissions\n }),\n ...createContentEntryCrud({\n context,\n getIdentity,\n getTenant,\n getLocale,\n storageOperations,\n entriesPermissions,\n modelsPermissions\n })\n };\n\n if (!storageOperations.init) {\n return;\n }\n await storageOperations.init(context);\n });\n });\n\n plugin.name = \"cms.createContext\";\n\n return plugin;\n};\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { Topic } from "@webiny/pubsub/types";
2
- import { AfterEntryDeleteTopicParams, CmsContext } from "../../types";
2
+ import { OnEntryAfterDeleteTopicParams, CmsContext } from "../../types";
3
3
  interface AssignAfterEntryDeleteParams {
4
4
  context: CmsContext;
5
- onAfterEntryDelete: Topic<AfterEntryDeleteTopicParams>;
5
+ onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;
6
6
  }
7
7
  export declare const assignAfterEntryDelete: (params: AssignAfterEntryDeleteParams) => void;
8
8
  export {};
@@ -4,15 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.assignAfterEntryDelete = void 0;
7
-
8
7
  var _markLockedFields = require("./markLockedFields");
9
-
10
8
  const assignAfterEntryDelete = params => {
11
9
  const {
12
10
  context,
13
- onAfterEntryDelete
11
+ onEntryAfterDelete
14
12
  } = params;
15
- onAfterEntryDelete.subscribe(async params => {
13
+ onEntryAfterDelete.subscribe(async params => {
16
14
  const {
17
15
  entry,
18
16
  model
@@ -26,16 +24,13 @@ const assignAfterEntryDelete = params => {
26
24
  },
27
25
  limit: 1
28
26
  });
29
-
30
27
  if (items.length > 0) {
31
28
  return;
32
29
  }
33
-
34
30
  await (0, _markLockedFields.markUnlockedFields)({
35
31
  context,
36
32
  model
37
33
  });
38
34
  });
39
35
  };
40
-
41
36
  exports.assignAfterEntryDelete = assignAfterEntryDelete;
@@ -1 +1 @@
1
- {"version":3,"names":["assignAfterEntryDelete","params","context","onAfterEntryDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { AfterEntryDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onAfterEntryDelete: Topic<AfterEntryDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onAfterEntryDelete } = params;\n\n onAfterEntryDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;;AAEA;;AAMO,MAAMA,sBAAsB,GAAIC,MAAD,IAA0C;EAC5E,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAkCF,MAAxC;EAEAE,kBAAkB,CAACC,SAAnB,CAA6B,MAAMH,MAAN,IAAgB;IACzC,MAAM;MAAEI,KAAF;MAASC;IAAT,IAAmBL,MAAzB;IAEA,MAAM;MAAEM;IAAF,IAAY,MAAML,OAAO,CAACM,GAAR,CAAYC,iBAAZ,CAA8BC,OAA9B,CAAsCC,IAAtC,CAA2CL,KAA3C,EAAkD;MACtEM,KAAK,EAAE;QACHC,WAAW,EAAER,KAAK,CAACS,OADhB;QAEHC,MAAM,EAAE;MAFL,CAD+D;MAKtEC,KAAK,EAAE;IAL+D,CAAlD,CAAxB;;IAOA,IAAIT,KAAK,CAACU,MAAN,GAAe,CAAnB,EAAsB;MAClB;IACH;;IACD,MAAM,IAAAC,oCAAA,EAAmB;MACrBhB,OADqB;MAErBI;IAFqB,CAAnB,CAAN;EAIH,CAjBD;AAkBH,CArBM"}
1
+ {"version":3,"names":["_markLockedFields","require","assignAfterEntryDelete","params","context","onEntryAfterDelete","subscribe","entry","model","items","cms","storageOperations","entries","list","where","entryId_not","entryId","latest","limit","length","markUnlockedFields","exports"],"sources":["afterDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryAfterDeleteTopicParams, CmsContext } from \"~/types\";\nimport { markUnlockedFields } from \"./markLockedFields\";\n\ninterface AssignAfterEntryDeleteParams {\n context: CmsContext;\n onEntryAfterDelete: Topic<OnEntryAfterDeleteTopicParams>;\n}\nexport const assignAfterEntryDelete = (params: AssignAfterEntryDeleteParams) => {\n const { context, onEntryAfterDelete } = params;\n\n onEntryAfterDelete.subscribe(async params => {\n const { entry, model } = params;\n\n const { items } = await context.cms.storageOperations.entries.list(model, {\n where: {\n entryId_not: entry.entryId,\n latest: true\n },\n limit: 1\n });\n if (items.length > 0) {\n return;\n }\n await markUnlockedFields({\n context,\n model\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,sBAAsB,GAAIC,MAAoC,IAAK;EAC5E,MAAM;IAAEC,OAAO;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAE9CE,kBAAkB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IACzC,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM;MAAEM;IAAM,CAAC,GAAG,MAAML,OAAO,CAACM,GAAG,CAACC,iBAAiB,CAACC,OAAO,CAACC,IAAI,CAACL,KAAK,EAAE;MACtEM,KAAK,EAAE;QACHC,WAAW,EAAER,KAAK,CAACS,OAAO;QAC1BC,MAAM,EAAE;MACZ,CAAC;MACDC,KAAK,EAAE;IACX,CAAC,CAAC;IACF,IAAIT,KAAK,CAACU,MAAM,GAAG,CAAC,EAAE;MAClB;IACJ;IACA,MAAM,IAAAC,oCAAkB,EAAC;MACrBhB,OAAO;MACPI;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACa,OAAA,CAAAnB,sBAAA,GAAAA,sBAAA"}
@@ -1,8 +1,8 @@
1
1
  import { Topic } from "@webiny/pubsub/types";
2
- import { BeforeEntryCreateTopicParams, CmsContext } from "../../types";
2
+ import { OnEntryBeforeCreateTopicParams, CmsContext } from "../../types";
3
3
  interface AssignBeforeEntryCreateParams {
4
4
  context: CmsContext;
5
- onBeforeEntryCreate: Topic<BeforeEntryCreateTopicParams>;
5
+ onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;
6
6
  }
7
7
  export declare const assignBeforeEntryCreate: (params: AssignBeforeEntryCreateParams) => void;
8
8
  export {};
@@ -4,15 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.assignBeforeEntryCreate = void 0;
7
-
8
7
  var _markLockedFields = require("./markLockedFields");
9
-
10
8
  const assignBeforeEntryCreate = params => {
11
9
  const {
12
10
  context,
13
- onBeforeEntryCreate
11
+ onEntryBeforeCreate
14
12
  } = params;
15
- onBeforeEntryCreate.subscribe(async params => {
13
+ onEntryBeforeCreate.subscribe(async params => {
16
14
  const {
17
15
  entry,
18
16
  model
@@ -24,5 +22,4 @@ const assignBeforeEntryCreate = params => {
24
22
  });
25
23
  });
26
24
  };
27
-
28
25
  exports.assignBeforeEntryCreate = assignBeforeEntryCreate;
@@ -1 +1 @@
1
- {"version":3,"names":["assignBeforeEntryCreate","params","context","onBeforeEntryCreate","subscribe","entry","model","markLockedFields"],"sources":["beforeCreate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { BeforeEntryCreateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryCreateParams {\n context: CmsContext;\n onBeforeEntryCreate: Topic<BeforeEntryCreateTopicParams>;\n}\nexport const assignBeforeEntryCreate = (params: AssignBeforeEntryCreateParams) => {\n const { context, onBeforeEntryCreate } = params;\n\n onBeforeEntryCreate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;;AAEA;;AAMO,MAAMA,uBAAuB,GAAIC,MAAD,IAA2C;EAC9E,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAmCF,MAAzC;EAEAE,mBAAmB,CAACC,SAApB,CAA8B,MAAMH,MAAN,IAAgB;IAC1C,MAAM;MAAEI,KAAF;MAASC;IAAT,IAAmBL,MAAzB;IAEA,MAAM,IAAAM,kCAAA,EAAiB;MACnBD,KADmB;MAEnBD,KAFmB;MAGnBH;IAHmB,CAAjB,CAAN;EAKH,CARD;AASH,CAZM"}
1
+ {"version":3,"names":["_markLockedFields","require","assignBeforeEntryCreate","params","context","onEntryBeforeCreate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeCreate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeCreateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryCreateParams {\n context: CmsContext;\n onEntryBeforeCreate: Topic<OnEntryBeforeCreateTopicParams>;\n}\nexport const assignBeforeEntryCreate = (params: AssignBeforeEntryCreateParams) => {\n const { context, onEntryBeforeCreate } = params;\n\n onEntryBeforeCreate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA"}
@@ -1,8 +1,8 @@
1
1
  import { Topic } from "@webiny/pubsub/types";
2
- import { BeforeEntryUpdateTopicParams, CmsContext } from "../../types";
2
+ import { OnEntryBeforeUpdateTopicParams, CmsContext } from "../../types";
3
3
  interface AssignBeforeEntryUpdateParams {
4
4
  context: CmsContext;
5
- onBeforeEntryUpdate: Topic<BeforeEntryUpdateTopicParams>;
5
+ onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;
6
6
  }
7
7
  export declare const assignBeforeEntryUpdate: (params: AssignBeforeEntryUpdateParams) => void;
8
8
  export {};
@@ -4,15 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.assignBeforeEntryUpdate = void 0;
7
-
8
7
  var _markLockedFields = require("./markLockedFields");
9
-
10
8
  const assignBeforeEntryUpdate = params => {
11
9
  const {
12
10
  context,
13
- onBeforeEntryUpdate
11
+ onEntryBeforeUpdate
14
12
  } = params;
15
- onBeforeEntryUpdate.subscribe(async params => {
13
+ onEntryBeforeUpdate.subscribe(async params => {
16
14
  const {
17
15
  entry,
18
16
  model
@@ -24,5 +22,4 @@ const assignBeforeEntryUpdate = params => {
24
22
  });
25
23
  });
26
24
  };
27
-
28
25
  exports.assignBeforeEntryUpdate = assignBeforeEntryUpdate;
@@ -1 +1 @@
1
- {"version":3,"names":["assignBeforeEntryUpdate","params","context","onBeforeEntryUpdate","subscribe","entry","model","markLockedFields"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { BeforeEntryUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onBeforeEntryUpdate: Topic<BeforeEntryUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onBeforeEntryUpdate } = params;\n\n onBeforeEntryUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;;AAEA;;AAMO,MAAMA,uBAAuB,GAAIC,MAAD,IAA2C;EAC9E,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAmCF,MAAzC;EAEAE,mBAAmB,CAACC,SAApB,CAA8B,MAAMH,MAAN,IAAgB;IAC1C,MAAM;MAAEI,KAAF;MAASC;IAAT,IAAmBL,MAAzB;IAEA,MAAM,IAAAM,kCAAA,EAAiB;MACnBD,KADmB;MAEnBD,KAFmB;MAGnBH;IAHmB,CAAjB,CAAN;EAKH,CARD;AASH,CAZM"}
1
+ {"version":3,"names":["_markLockedFields","require","assignBeforeEntryUpdate","params","context","onEntryBeforeUpdate","subscribe","entry","model","markLockedFields","exports"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnEntryBeforeUpdateTopicParams, CmsContext } from \"~/types\";\nimport { markLockedFields } from \"./markLockedFields\";\n\ninterface AssignBeforeEntryUpdateParams {\n context: CmsContext;\n onEntryBeforeUpdate: Topic<OnEntryBeforeUpdateTopicParams>;\n}\nexport const assignBeforeEntryUpdate = (params: AssignBeforeEntryUpdateParams) => {\n const { context, onEntryBeforeUpdate } = params;\n\n onEntryBeforeUpdate.subscribe(async params => {\n const { entry, model } = params;\n\n await markLockedFields({\n model,\n entry,\n context\n });\n });\n};\n"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAMO,MAAMC,uBAAuB,GAAIC,MAAqC,IAAK;EAC9E,MAAM;IAAEC,OAAO;IAAEC;EAAoB,CAAC,GAAGF,MAAM;EAE/CE,mBAAmB,CAACC,SAAS,CAAC,MAAMH,MAAM,IAAI;IAC1C,MAAM;MAAEI,KAAK;MAAEC;IAAM,CAAC,GAAGL,MAAM;IAE/B,MAAM,IAAAM,kCAAgB,EAAC;MACnBD,KAAK;MACLD,KAAK;MACLH;IACJ,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC;AAACM,OAAA,CAAAR,uBAAA,GAAAA,uBAAA"}
@@ -1,25 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.validateModelEntryData = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
-
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
-
18
10
  const validateValue = async (args, fieldValidators, value) => {
19
11
  if (!fieldValidators) {
20
12
  return null;
21
13
  }
22
-
23
14
  const {
24
15
  validatorList,
25
16
  context,
@@ -27,16 +18,13 @@ const validateValue = async (args, fieldValidators, value) => {
27
18
  model,
28
19
  entry
29
20
  } = args;
30
-
31
21
  try {
32
22
  for (const fieldValidator of fieldValidators) {
33
23
  const name = fieldValidator.name;
34
24
  const validations = validatorList[name];
35
-
36
25
  if (!validations || validations.length === 0) {
37
26
  return `There are no "${name}" validators defined.`;
38
27
  }
39
-
40
28
  for (const validate of validations) {
41
29
  const result = await validate({
42
30
  value,
@@ -46,7 +34,6 @@ const validateValue = async (args, fieldValidators, value) => {
46
34
  model,
47
35
  entry
48
36
  });
49
-
50
37
  if (!result) {
51
38
  return fieldValidator.message;
52
39
  }
@@ -55,74 +42,57 @@ const validateValue = async (args, fieldValidators, value) => {
55
42
  } catch (ex) {
56
43
  return ex.message;
57
44
  }
58
-
59
45
  return null;
60
46
  };
61
-
62
47
  const validatePredefinedValue = (field, value) => {
63
48
  const {
64
49
  enabled = false,
65
50
  values: predefinedValues = []
66
51
  } = field.predefinedValues || {};
67
-
68
52
  if (!enabled) {
69
53
  return null;
70
54
  } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {
71
55
  return "Missing predefined values to validate against.";
72
56
  }
73
-
74
57
  for (const predefinedValue of predefinedValues) {
75
58
  if (predefinedValue.value == value) {
76
59
  return null;
77
60
  }
78
61
  }
79
-
80
62
  return "Value sent does not match any of the available predefined values.";
81
63
  };
82
64
  /**
83
65
  * When multiple values is selected we must run validations on the array containing the values
84
66
  * And then on each value in the array
85
67
  */
86
-
87
-
88
68
  const runFieldMultipleValuesValidations = async args => {
89
69
  const {
90
70
  field,
91
71
  data
92
72
  } = args;
93
73
  const values = data[field.fieldId] || [];
94
-
95
74
  if (Array.isArray(values) === false) {
96
75
  return `Value of the field "${field.fieldId}" is not an array.`;
97
76
  }
98
-
99
77
  const valuesError = await validateValue(args, field.listValidation || [], values);
100
-
101
78
  if (valuesError) {
102
79
  return valuesError;
103
80
  }
104
-
105
81
  for (const value of values) {
106
82
  const valueError = await validateValue(args, field.validation || [], value);
107
-
108
83
  if (valueError) {
109
84
  return valueError;
110
85
  }
111
-
112
86
  const predefinedValueError = validatePredefinedValue(field, value);
113
-
114
87
  if (predefinedValueError) {
115
88
  return predefinedValueError;
116
89
  }
117
90
  }
118
-
119
91
  return null;
120
92
  };
121
93
  /**
122
94
  * Runs validation on given value.
123
95
  */
124
-
125
-
126
96
  const runFieldValueValidations = async args => {
127
97
  const {
128
98
  data,
@@ -130,22 +100,17 @@ const runFieldValueValidations = async args => {
130
100
  } = args;
131
101
  const value = data[field.fieldId];
132
102
  const error = await validateValue(args, field.validation || [], value);
133
-
134
103
  if (error) {
135
104
  return error;
136
105
  }
137
-
138
106
  return validatePredefinedValue(field, value);
139
107
  };
140
-
141
108
  const execValidation = async args => {
142
109
  if (args.field.multipleValues) {
143
110
  return await runFieldMultipleValuesValidations(args);
144
111
  }
145
-
146
112
  return await runFieldValueValidations(args);
147
113
  };
148
-
149
114
  const validateModelEntryData = async params => {
150
115
  const {
151
116
  context,
@@ -157,48 +122,40 @@ const validateModelEntryData = async params => {
157
122
  * To later simplify searching for the validations we map them to a name.
158
123
  * @see CmsModelFieldValidatorPlugin.validator.validate
159
124
  */
160
-
161
125
  const validatorList = context.plugins.byType("cms-model-field-validator").reduce((acc, plugin) => {
162
126
  const name = plugin.validator.name;
163
-
164
127
  if (!acc[name]) {
165
128
  acc[name] = [];
166
129
  }
167
-
168
130
  acc[name].push(plugin.validator.validate);
169
131
  return acc;
170
132
  }, {});
133
+
171
134
  /**
172
135
  * Loop through model fields and validate the corresponding data.
173
136
  * Run validation only if the field has validation configured.
174
137
  */
175
-
176
138
  const invalidFields = [];
177
-
178
139
  for (const field of model.fields) {
179
140
  const error = await execValidation({
180
141
  model,
181
142
  validatorList,
182
143
  field,
183
- data: _objectSpread(_objectSpread({}, (entry === null || entry === void 0 ? void 0 : entry.values) || {}), data),
144
+ data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (entry === null || entry === void 0 ? void 0 : entry.values) || {}), data),
184
145
  context,
185
146
  entry
186
147
  });
187
-
188
148
  if (!error) {
189
149
  continue;
190
150
  }
191
-
192
151
  invalidFields.push({
193
152
  fieldId: field.fieldId,
194
153
  storageId: field.storageId,
195
154
  error
196
155
  });
197
156
  }
198
-
199
157
  if (invalidFields.length > 0) {
200
158
  throw new _error.default("Validation failed.", "VALIDATION_FAILED", invalidFields);
201
159
  }
202
160
  };
203
-
204
161
  exports.validateModelEntryData = validateModelEntryData;
@@ -1 +1 @@
1
- {"version":3,"names":["validateValue","args","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","length","validate","result","validator","message","ex","validatePredefinedValue","enabled","values","predefinedValues","Array","isArray","predefinedValue","runFieldMultipleValuesValidations","data","fieldId","valuesError","listValidation","valueError","validation","predefinedValueError","runFieldValueValidations","error","execValidation","multipleValues","validateModelEntryData","params","plugins","byType","reduce","acc","plugin","push","invalidFields","fields","storageId","WebinyError"],"sources":["entryDataValidation.ts"],"sourcesContent":["import {\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation,\n CmsContext,\n CmsModelFieldValidatorPlugin,\n CmsModelFieldValidatorValidateParams,\n CmsEntry\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\n\ntype PluginValidationCallable = (params: CmsModelFieldValidatorValidateParams) => Promise<boolean>;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\ntype InputData = Record<string, any>;\n\ninterface ValidateArgs {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n data: InputData;\n context: CmsContext;\n entry?: CmsEntry;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async (\n args: ValidateArgs,\n fieldValidators: CmsModelFieldValidation[],\n value: PossibleValue | PossibleValue[]\n): Promise<string | null> => {\n if (!fieldValidators) {\n return null;\n }\n\n const { validatorList, context, field, model, entry } = args;\n try {\n for (const fieldValidator of fieldValidators) {\n const name = fieldValidator.name;\n const validations = validatorList[name];\n if (!validations || validations.length === 0) {\n return `There are no \"${name}\" validators defined.`;\n }\n for (const validate of validations) {\n const result = await validate({\n value,\n context,\n validator: fieldValidator,\n field,\n model,\n entry\n });\n if (!result) {\n return fieldValidator.message;\n }\n }\n }\n } catch (ex) {\n return ex.message;\n }\n\n return null;\n};\n\nconst validatePredefinedValue = (field: CmsModelField, value: any | any[]): string | null => {\n const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};\n if (!enabled) {\n return null;\n } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {\n return \"Missing predefined values to validate against.\";\n }\n for (const predefinedValue of predefinedValues) {\n if (predefinedValue.value == value) {\n return null;\n }\n }\n return \"Value sent does not match any of the available predefined values.\";\n};\n/**\n * When multiple values is selected we must run validations on the array containing the values\n * And then on each value in the array\n */\nconst runFieldMultipleValuesValidations = async (args: ValidateArgs): Promise<string | null> => {\n const { field, data } = args;\n const values = data[field.fieldId] || [];\n if (Array.isArray(values) === false) {\n return `Value of the field \"${field.fieldId}\" is not an array.`;\n }\n const valuesError = await validateValue(args, field.listValidation || [], values);\n if (valuesError) {\n return valuesError;\n }\n for (const value of values) {\n const valueError = await validateValue(args, field.validation || [], value);\n if (valueError) {\n return valueError;\n }\n const predefinedValueError = validatePredefinedValue(field, value);\n if (predefinedValueError) {\n return predefinedValueError;\n }\n }\n return null;\n};\n/**\n * Runs validation on given value.\n */\nconst runFieldValueValidations = async (args: ValidateArgs): Promise<string | null> => {\n const { data, field } = args;\n const value = data[field.fieldId];\n const error = await validateValue(args, field.validation || [], value);\n if (error) {\n return error;\n }\n return validatePredefinedValue(field, value);\n};\n\nconst execValidation = async (args: ValidateArgs): Promise<string | null> => {\n if (args.field.multipleValues) {\n return await runFieldMultipleValuesValidations(args);\n }\n return await runFieldValueValidations(args);\n};\n\nexport interface ValidateModelEntryDataParams {\n context: CmsContext;\n model: CmsModel;\n data: InputData;\n entry?: CmsEntry;\n}\nexport const validateModelEntryData = async (params: ValidateModelEntryDataParams) => {\n const { context, model, entry, data } = params;\n /**\n * To later simplify searching for the validations we map them to a name.\n * @see CmsModelFieldValidatorPlugin.validator.validate\n */\n const validatorList: PluginValidationList = context.plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce((acc, plugin) => {\n const name = plugin.validator.name;\n if (!acc[name]) {\n acc[name] = [];\n }\n acc[name].push(plugin.validator.validate);\n\n return acc;\n }, {} as PluginValidationList);\n\n /**\n * Loop through model fields and validate the corresponding data.\n * Run validation only if the field has validation configured.\n */\n const invalidFields = [];\n for (const field of model.fields) {\n const error = await execValidation({\n model,\n validatorList,\n field,\n data: {\n ...(entry?.values || {}),\n ...data\n },\n context,\n entry\n });\n if (!error) {\n continue;\n }\n invalidFields.push({\n fieldId: field.fieldId,\n storageId: field.storageId,\n error\n });\n }\n\n if (invalidFields.length > 0) {\n throw new WebinyError(\"Validation failed.\", \"VALIDATION_FAILED\", invalidFields);\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","validateValue","args","fieldValidators","value","validatorList","context","field","model","entry","fieldValidator","name","validations","length","validate","result","validator","message","ex","validatePredefinedValue","enabled","values","predefinedValues","Array","isArray","predefinedValue","runFieldMultipleValuesValidations","data","fieldId","valuesError","listValidation","valueError","validation","predefinedValueError","runFieldValueValidations","error","execValidation","multipleValues","validateModelEntryData","params","plugins","byType","reduce","acc","plugin","push","invalidFields","fields","_objectSpread2","default","storageId","WebinyError","exports"],"sources":["entryDataValidation.ts"],"sourcesContent":["import {\n CmsModel,\n CmsModelField,\n CmsModelFieldValidation,\n CmsContext,\n CmsModelFieldValidatorPlugin,\n CmsModelFieldValidatorValidateParams,\n CmsEntry\n} from \"~/types\";\nimport WebinyError from \"@webiny/error\";\n\ntype PluginValidationCallable = (params: CmsModelFieldValidatorValidateParams) => Promise<boolean>;\ntype PluginValidationList = Record<string, PluginValidationCallable[]>;\ntype InputData = Record<string, any>;\n\ninterface ValidateArgs {\n validatorList: PluginValidationList;\n field: CmsModelField;\n model: CmsModel;\n data: InputData;\n context: CmsContext;\n entry?: CmsEntry;\n}\n\ntype PossibleValue = boolean | number | string | null | undefined;\n\nconst validateValue = async (\n args: ValidateArgs,\n fieldValidators: CmsModelFieldValidation[],\n value: PossibleValue | PossibleValue[]\n): Promise<string | null> => {\n if (!fieldValidators) {\n return null;\n }\n\n const { validatorList, context, field, model, entry } = args;\n try {\n for (const fieldValidator of fieldValidators) {\n const name = fieldValidator.name;\n const validations = validatorList[name];\n if (!validations || validations.length === 0) {\n return `There are no \"${name}\" validators defined.`;\n }\n for (const validate of validations) {\n const result = await validate({\n value,\n context,\n validator: fieldValidator,\n field,\n model,\n entry\n });\n if (!result) {\n return fieldValidator.message;\n }\n }\n }\n } catch (ex) {\n return ex.message;\n }\n\n return null;\n};\n\nconst validatePredefinedValue = (field: CmsModelField, value: any | any[]): string | null => {\n const { enabled = false, values: predefinedValues = [] } = field.predefinedValues || {};\n if (!enabled) {\n return null;\n } else if (Array.isArray(predefinedValues) === false || predefinedValues.length === 0) {\n return \"Missing predefined values to validate against.\";\n }\n for (const predefinedValue of predefinedValues) {\n if (predefinedValue.value == value) {\n return null;\n }\n }\n return \"Value sent does not match any of the available predefined values.\";\n};\n/**\n * When multiple values is selected we must run validations on the array containing the values\n * And then on each value in the array\n */\nconst runFieldMultipleValuesValidations = async (args: ValidateArgs): Promise<string | null> => {\n const { field, data } = args;\n const values = data[field.fieldId] || [];\n if (Array.isArray(values) === false) {\n return `Value of the field \"${field.fieldId}\" is not an array.`;\n }\n const valuesError = await validateValue(args, field.listValidation || [], values);\n if (valuesError) {\n return valuesError;\n }\n for (const value of values) {\n const valueError = await validateValue(args, field.validation || [], value);\n if (valueError) {\n return valueError;\n }\n const predefinedValueError = validatePredefinedValue(field, value);\n if (predefinedValueError) {\n return predefinedValueError;\n }\n }\n return null;\n};\n/**\n * Runs validation on given value.\n */\nconst runFieldValueValidations = async (args: ValidateArgs): Promise<string | null> => {\n const { data, field } = args;\n const value = data[field.fieldId];\n const error = await validateValue(args, field.validation || [], value);\n if (error) {\n return error;\n }\n return validatePredefinedValue(field, value);\n};\n\nconst execValidation = async (args: ValidateArgs): Promise<string | null> => {\n if (args.field.multipleValues) {\n return await runFieldMultipleValuesValidations(args);\n }\n return await runFieldValueValidations(args);\n};\n\nexport interface ValidateModelEntryDataParams {\n context: CmsContext;\n model: CmsModel;\n data: InputData;\n entry?: CmsEntry;\n}\nexport const validateModelEntryData = async (params: ValidateModelEntryDataParams) => {\n const { context, model, entry, data } = params;\n /**\n * To later simplify searching for the validations we map them to a name.\n * @see CmsModelFieldValidatorPlugin.validator.validate\n */\n const validatorList: PluginValidationList = context.plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce((acc, plugin) => {\n const name = plugin.validator.name;\n if (!acc[name]) {\n acc[name] = [];\n }\n acc[name].push(plugin.validator.validate);\n\n return acc;\n }, {} as PluginValidationList);\n\n /**\n * Loop through model fields and validate the corresponding data.\n * Run validation only if the field has validation configured.\n */\n const invalidFields = [];\n for (const field of model.fields) {\n const error = await execValidation({\n model,\n validatorList,\n field,\n data: {\n ...(entry?.values || {}),\n ...data\n },\n context,\n entry\n });\n if (!error) {\n continue;\n }\n invalidFields.push({\n fieldId: field.fieldId,\n storageId: field.storageId,\n error\n });\n }\n\n if (invalidFields.length > 0) {\n throw new WebinyError(\"Validation failed.\", \"VALIDATION_FAILED\", invalidFields);\n }\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CmsEntry, CmsModel, CmsContext } from "../../types";
1
+ import { CmsEntry, CmsContext, CmsModel } from "../../types";
2
2
  interface MarkLockedFieldsParams {
3
3
  model: CmsModel;
4
4
  entry: CmsEntry;