@webiny/api-headless-cms 0.0.0-ee-vpcs.549378cf03

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 (435) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -0
  3. package/context.d.ts +3 -0
  4. package/context.js +60 -0
  5. package/context.js.map +1 -0
  6. package/crud/contentEntry/afterDelete.d.ts +8 -0
  7. package/crud/contentEntry/afterDelete.js +41 -0
  8. package/crud/contentEntry/afterDelete.js.map +1 -0
  9. package/crud/contentEntry/beforeCreate.d.ts +8 -0
  10. package/crud/contentEntry/beforeCreate.js +28 -0
  11. package/crud/contentEntry/beforeCreate.js.map +1 -0
  12. package/crud/contentEntry/beforeUpdate.d.ts +8 -0
  13. package/crud/contentEntry/beforeUpdate.js +28 -0
  14. package/crud/contentEntry/beforeUpdate.js.map +1 -0
  15. package/crud/contentEntry/entryDataValidation.d.ts +10 -0
  16. package/crud/contentEntry/entryDataValidation.js +200 -0
  17. package/crud/contentEntry/entryDataValidation.js.map +1 -0
  18. package/crud/contentEntry/markLockedFields.d.ts +13 -0
  19. package/crud/contentEntry/markLockedFields.js +116 -0
  20. package/crud/contentEntry/markLockedFields.js.map +1 -0
  21. package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
  22. package/crud/contentEntry/referenceFieldsMapping.js +292 -0
  23. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
  24. package/crud/contentEntry/searchableFields.d.ts +9 -0
  25. package/crud/contentEntry/searchableFields.js +83 -0
  26. package/crud/contentEntry/searchableFields.js.map +1 -0
  27. package/crud/contentEntry.crud.d.ts +13 -0
  28. package/crud/contentEntry.crud.js +1277 -0
  29. package/crud/contentEntry.crud.js.map +1 -0
  30. package/crud/contentModel/afterCreate.d.ts +8 -0
  31. package/crud/contentModel/afterCreate.js +18 -0
  32. package/crud/contentModel/afterCreate.js.map +1 -0
  33. package/crud/contentModel/afterCreateFrom.d.ts +8 -0
  34. package/crud/contentModel/afterCreateFrom.js +18 -0
  35. package/crud/contentModel/afterCreateFrom.js.map +1 -0
  36. package/crud/contentModel/afterDelete.d.ts +8 -0
  37. package/crud/contentModel/afterDelete.js +18 -0
  38. package/crud/contentModel/afterDelete.js.map +1 -0
  39. package/crud/contentModel/afterUpdate.d.ts +8 -0
  40. package/crud/contentModel/afterUpdate.js +18 -0
  41. package/crud/contentModel/afterUpdate.js.map +1 -0
  42. package/crud/contentModel/beforeCreate.d.ts +15 -0
  43. package/crud/contentModel/beforeCreate.js +194 -0
  44. package/crud/contentModel/beforeCreate.js.map +1 -0
  45. package/crud/contentModel/beforeDelete.d.ts +10 -0
  46. package/crud/contentModel/beforeDelete.js +60 -0
  47. package/crud/contentModel/beforeDelete.js.map +1 -0
  48. package/crud/contentModel/beforeUpdate.d.ts +10 -0
  49. package/crud/contentModel/beforeUpdate.js +37 -0
  50. package/crud/contentModel/beforeUpdate.js.map +1 -0
  51. package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
  52. package/crud/contentModel/contentModelManagerFactory.js +29 -0
  53. package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
  54. package/crud/contentModel/createFieldModels.d.ts +2 -0
  55. package/crud/contentModel/createFieldModels.js +26 -0
  56. package/crud/contentModel/createFieldModels.js.map +1 -0
  57. package/crud/contentModel/createFieldStorageId.d.ts +2 -0
  58. package/crud/contentModel/createFieldStorageId.js +20 -0
  59. package/crud/contentModel/createFieldStorageId.js.map +1 -0
  60. package/crud/contentModel/fieldIdValidation.d.ts +1 -0
  61. package/crud/contentModel/fieldIdValidation.js +25 -0
  62. package/crud/contentModel/fieldIdValidation.js.map +1 -0
  63. package/crud/contentModel/idValidation.d.ts +1 -0
  64. package/crud/contentModel/idValidation.js +22 -0
  65. package/crud/contentModel/idValidation.js.map +1 -0
  66. package/crud/contentModel/models.d.ts +4 -0
  67. package/crud/contentModel/models.js +192 -0
  68. package/crud/contentModel/models.js.map +1 -0
  69. package/crud/contentModel/systemFields.d.ts +1 -0
  70. package/crud/contentModel/systemFields.js +8 -0
  71. package/crud/contentModel/systemFields.js.map +1 -0
  72. package/crud/contentModel/validateLayout.d.ts +2 -0
  73. package/crud/contentModel/validateLayout.js +36 -0
  74. package/crud/contentModel/validateLayout.js.map +1 -0
  75. package/crud/contentModel/validateModel.d.ts +9 -0
  76. package/crud/contentModel/validateModel.js +32 -0
  77. package/crud/contentModel/validateModel.js.map +1 -0
  78. package/crud/contentModel/validateModelFields.d.ts +9 -0
  79. package/crud/contentModel/validateModelFields.js +371 -0
  80. package/crud/contentModel/validateModelFields.js.map +1 -0
  81. package/crud/contentModel.crud.d.ts +12 -0
  82. package/crud/contentModel.crud.js +650 -0
  83. package/crud/contentModel.crud.js.map +1 -0
  84. package/crud/contentModelGroup/beforeCreate.d.ts +10 -0
  85. package/crud/contentModelGroup/beforeCreate.js +66 -0
  86. package/crud/contentModelGroup/beforeCreate.js.map +1 -0
  87. package/crud/contentModelGroup/beforeDelete.d.ts +10 -0
  88. package/crud/contentModelGroup/beforeDelete.js +48 -0
  89. package/crud/contentModelGroup/beforeDelete.js.map +1 -0
  90. package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
  91. package/crud/contentModelGroup/beforeUpdate.js +28 -0
  92. package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
  93. package/crud/contentModelGroup.crud.d.ts +12 -0
  94. package/crud/contentModelGroup.crud.js +396 -0
  95. package/crud/contentModelGroup.crud.js.map +1 -0
  96. package/crud/index.d.ts +6 -0
  97. package/crud/index.js +85 -0
  98. package/crud/index.js.map +1 -0
  99. package/crud/settings.crud.d.ts +10 -0
  100. package/crud/settings.crud.js +83 -0
  101. package/crud/settings.crud.js.map +1 -0
  102. package/crud/system.crud.d.ts +13 -0
  103. package/crud/system.crud.js +221 -0
  104. package/crud/system.crud.js.map +1 -0
  105. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
  106. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
  107. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
  108. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  109. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
  110. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  111. package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
  112. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +304 -0
  113. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
  114. package/fieldConverters/index.d.ts +4 -0
  115. package/fieldConverters/index.js +18 -0
  116. package/fieldConverters/index.js.map +1 -0
  117. package/graphql/buildSchemaPlugins.d.ts +6 -0
  118. package/graphql/buildSchemaPlugins.js +27 -0
  119. package/graphql/buildSchemaPlugins.js.map +1 -0
  120. package/graphql/graphQLHandlerFactory.d.ts +5 -0
  121. package/graphql/graphQLHandlerFactory.js +202 -0
  122. package/graphql/graphQLHandlerFactory.js.map +1 -0
  123. package/graphql/index.d.ts +5 -0
  124. package/graphql/index.js +57 -0
  125. package/graphql/index.js.map +1 -0
  126. package/graphql/schema/baseContentSchema.d.ts +3 -0
  127. package/graphql/schema/baseContentSchema.js +76 -0
  128. package/graphql/schema/baseContentSchema.js.map +1 -0
  129. package/graphql/schema/contentEntries.d.ts +3 -0
  130. package/graphql/schema/contentEntries.js +351 -0
  131. package/graphql/schema/contentEntries.js.map +1 -0
  132. package/graphql/schema/contentModelGroups.d.ts +3 -0
  133. package/graphql/schema/contentModelGroups.js +172 -0
  134. package/graphql/schema/contentModelGroups.js.map +1 -0
  135. package/graphql/schema/contentModels.d.ts +3 -0
  136. package/graphql/schema/contentModels.js +300 -0
  137. package/graphql/schema/contentModels.js.map +1 -0
  138. package/graphql/schema/createFieldResolvers.d.ts +20 -0
  139. package/graphql/schema/createFieldResolvers.js +121 -0
  140. package/graphql/schema/createFieldResolvers.js.map +1 -0
  141. package/graphql/schema/createManageResolvers.d.ts +12 -0
  142. package/graphql/schema/createManageResolvers.js +137 -0
  143. package/graphql/schema/createManageResolvers.js.map +1 -0
  144. package/graphql/schema/createManageSDL.d.ts +10 -0
  145. package/graphql/schema/createManageSDL.js +161 -0
  146. package/graphql/schema/createManageSDL.js.map +1 -0
  147. package/graphql/schema/createPreviewResolvers.d.ts +12 -0
  148. package/graphql/schema/createPreviewResolvers.js +58 -0
  149. package/graphql/schema/createPreviewResolvers.js.map +1 -0
  150. package/graphql/schema/createReadResolvers.d.ts +12 -0
  151. package/graphql/schema/createReadResolvers.js +58 -0
  152. package/graphql/schema/createReadResolvers.js.map +1 -0
  153. package/graphql/schema/createReadSDL.d.ts +10 -0
  154. package/graphql/schema/createReadSDL.js +104 -0
  155. package/graphql/schema/createReadSDL.js.map +1 -0
  156. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
  157. package/graphql/schema/resolvers/commonFieldResolvers.js +14 -0
  158. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
  159. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
  160. package/graphql/schema/resolvers/manage/resolveCreate.js +21 -0
  161. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
  162. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
  163. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +21 -0
  164. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
  165. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
  166. package/graphql/schema/resolvers/manage/resolveDelete.js +32 -0
  167. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
  168. package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
  169. package/graphql/schema/resolvers/manage/resolveGet.js +79 -0
  170. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
  171. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
  172. package/graphql/schema/resolvers/manage/resolveGetByIds.js +21 -0
  173. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
  174. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
  175. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +21 -0
  176. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
  177. package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
  178. package/graphql/schema/resolvers/manage/resolveList.js +21 -0
  179. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
  180. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
  181. package/graphql/schema/resolvers/manage/resolvePublish.js +21 -0
  182. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
  183. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
  184. package/graphql/schema/resolvers/manage/resolveRepublish.js +21 -0
  185. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
  186. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
  187. package/graphql/schema/resolvers/manage/resolveUnpublish.js +21 -0
  188. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
  189. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
  190. package/graphql/schema/resolvers/manage/resolveUpdate.js +21 -0
  191. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
  192. package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
  193. package/graphql/schema/resolvers/preview/resolveGet.js +34 -0
  194. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
  195. package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
  196. package/graphql/schema/resolvers/preview/resolveList.js +21 -0
  197. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
  198. package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
  199. package/graphql/schema/resolvers/read/resolveGet.js +34 -0
  200. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
  201. package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
  202. package/graphql/schema/resolvers/read/resolveList.js +21 -0
  203. package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
  204. package/graphql/schema/schemaPlugins.d.ts +3 -0
  205. package/graphql/schema/schemaPlugins.js +111 -0
  206. package/graphql/schema/schemaPlugins.js.map +1 -0
  207. package/graphql/system.d.ts +6 -0
  208. package/graphql/system.js +119 -0
  209. package/graphql/system.js.map +1 -0
  210. package/graphqlFields/boolean.d.ts +2 -0
  211. package/graphqlFields/boolean.js +69 -0
  212. package/graphqlFields/boolean.js.map +1 -0
  213. package/graphqlFields/datetime.d.ts +2 -0
  214. package/graphqlFields/datetime.js +95 -0
  215. package/graphqlFields/datetime.js.map +1 -0
  216. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  217. package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
  218. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  219. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  220. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
  221. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  222. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  223. package/graphqlFields/dynamicZone/index.js +21 -0
  224. package/graphqlFields/dynamicZone/index.js.map +1 -0
  225. package/graphqlFields/file.d.ts +2 -0
  226. package/graphqlFields/file.js +50 -0
  227. package/graphqlFields/file.js.map +1 -0
  228. package/graphqlFields/helpers.d.ts +6 -0
  229. package/graphqlFields/helpers.js +49 -0
  230. package/graphqlFields/helpers.js.map +1 -0
  231. package/graphqlFields/index.d.ts +2 -0
  232. package/graphqlFields/index.js +30 -0
  233. package/graphqlFields/index.js.map +1 -0
  234. package/graphqlFields/longText.d.ts +2 -0
  235. package/graphqlFields/longText.js +63 -0
  236. package/graphqlFields/longText.js.map +1 -0
  237. package/graphqlFields/number.d.ts +2 -0
  238. package/graphqlFields/number.js +79 -0
  239. package/graphqlFields/number.js.map +1 -0
  240. package/graphqlFields/object.d.ts +2 -0
  241. package/graphqlFields/object.js +275 -0
  242. package/graphqlFields/object.js.map +1 -0
  243. package/graphqlFields/ref.d.ts +2 -0
  244. package/graphqlFields/ref.js +257 -0
  245. package/graphqlFields/ref.js.map +1 -0
  246. package/graphqlFields/richText.d.ts +2 -0
  247. package/graphqlFields/richText.js +56 -0
  248. package/graphqlFields/richText.js.map +1 -0
  249. package/graphqlFields/text.d.ts +2 -0
  250. package/graphqlFields/text.js +73 -0
  251. package/graphqlFields/text.js.map +1 -0
  252. package/index.d.ts +10 -0
  253. package/index.js +111 -0
  254. package/index.js.map +1 -0
  255. package/modelManager/DefaultCmsModelManager.d.ts +14 -0
  256. package/modelManager/DefaultCmsModelManager.js +64 -0
  257. package/modelManager/DefaultCmsModelManager.js.map +1 -0
  258. package/modelManager/index.d.ts +2 -0
  259. package/modelManager/index.js +20 -0
  260. package/modelManager/index.js.map +1 -0
  261. package/package.json +81 -0
  262. package/parameters/context.d.ts +2 -0
  263. package/parameters/context.js +22 -0
  264. package/parameters/context.js.map +1 -0
  265. package/parameters/header.d.ts +2 -0
  266. package/parameters/header.js +55 -0
  267. package/parameters/header.js.map +1 -0
  268. package/parameters/index.d.ts +4 -0
  269. package/parameters/index.js +57 -0
  270. package/parameters/index.js.map +1 -0
  271. package/parameters/manual.d.ts +6 -0
  272. package/parameters/manual.js +44 -0
  273. package/parameters/manual.js.map +1 -0
  274. package/parameters/path.d.ts +2 -0
  275. package/parameters/path.js +51 -0
  276. package/parameters/path.js.map +1 -0
  277. package/plugins/CmsGroupPlugin.d.ts +13 -0
  278. package/plugins/CmsGroupPlugin.js +30 -0
  279. package/plugins/CmsGroupPlugin.js.map +1 -0
  280. package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
  281. package/plugins/CmsModelFieldConverterPlugin.js +17 -0
  282. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
  283. package/plugins/CmsModelPlugin.d.ts +45 -0
  284. package/plugins/CmsModelPlugin.js +194 -0
  285. package/plugins/CmsModelPlugin.js.map +1 -0
  286. package/plugins/CmsParametersPlugin.d.ts +20 -0
  287. package/plugins/CmsParametersPlugin.js +28 -0
  288. package/plugins/CmsParametersPlugin.js.map +1 -0
  289. package/plugins/StorageTransformPlugin.d.ts +31 -0
  290. package/plugins/StorageTransformPlugin.js +37 -0
  291. package/plugins/StorageTransformPlugin.js.map +1 -0
  292. package/plugins/index.d.ts +5 -0
  293. package/plugins/index.js +70 -0
  294. package/plugins/index.js.map +1 -0
  295. package/storage/default.d.ts +2 -0
  296. package/storage/default.js +27 -0
  297. package/storage/default.js.map +1 -0
  298. package/storage/object.d.ts +2 -0
  299. package/storage/object.js +127 -0
  300. package/storage/object.js.map +1 -0
  301. package/types.d.ts +2600 -0
  302. package/types.js +459 -0
  303. package/types.js.map +1 -0
  304. package/upgrades/5.33.0/index.d.ts +3 -0
  305. package/upgrades/5.33.0/index.js +182 -0
  306. package/upgrades/5.33.0/index.js.map +1 -0
  307. package/upgrades/index.d.ts +1 -0
  308. package/upgrades/index.js +12 -0
  309. package/upgrades/index.js.map +1 -0
  310. package/utils/access.d.ts +8 -0
  311. package/utils/access.js +90 -0
  312. package/utils/access.js.map +1 -0
  313. package/utils/converters/Converter.d.ts +27 -0
  314. package/utils/converters/Converter.js +71 -0
  315. package/utils/converters/Converter.js.map +1 -0
  316. package/utils/converters/ConverterCollection.d.ts +31 -0
  317. package/utils/converters/ConverterCollection.js +143 -0
  318. package/utils/converters/ConverterCollection.js.map +1 -0
  319. package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
  320. package/utils/converters/valueKeyStorageConverter.js +148 -0
  321. package/utils/converters/valueKeyStorageConverter.js.map +1 -0
  322. package/utils/createTypeFromFields.d.ts +15 -0
  323. package/utils/createTypeFromFields.js +75 -0
  324. package/utils/createTypeFromFields.js.map +1 -0
  325. package/utils/createTypeName.d.ts +3 -0
  326. package/utils/createTypeName.js +30 -0
  327. package/utils/createTypeName.js.map +1 -0
  328. package/utils/entryStorage.d.ts +17 -0
  329. package/utils/entryStorage.js +120 -0
  330. package/utils/entryStorage.js.map +1 -0
  331. package/utils/filterAsync.d.ts +1 -0
  332. package/utils/filterAsync.js +23 -0
  333. package/utils/filterAsync.js.map +1 -0
  334. package/utils/filterModelFields.d.ts +16 -0
  335. package/utils/filterModelFields.js +77 -0
  336. package/utils/filterModelFields.js.map +1 -0
  337. package/utils/getBaseFieldType.d.ts +4 -0
  338. package/utils/getBaseFieldType.js +12 -0
  339. package/utils/getBaseFieldType.js.map +1 -0
  340. package/utils/getEntryTitle.d.ts +2 -0
  341. package/utils/getEntryTitle.js +43 -0
  342. package/utils/getEntryTitle.js.map +1 -0
  343. package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
  344. package/utils/getSchemaFromFieldPlugins.js +35 -0
  345. package/utils/getSchemaFromFieldPlugins.js.map +1 -0
  346. package/utils/ownership.d.ts +8 -0
  347. package/utils/ownership.js +41 -0
  348. package/utils/ownership.js.map +1 -0
  349. package/utils/permissions.d.ts +7 -0
  350. package/utils/permissions.js +106 -0
  351. package/utils/permissions.js.map +1 -0
  352. package/utils/pluralizedTypeName.d.ts +1 -0
  353. package/utils/pluralizedTypeName.js +26 -0
  354. package/utils/pluralizedTypeName.js.map +1 -0
  355. package/utils/renderFields.d.ts +15 -0
  356. package/utils/renderFields.js +55 -0
  357. package/utils/renderFields.js.map +1 -0
  358. package/utils/renderGetFilterFields.d.ts +10 -0
  359. package/utils/renderGetFilterFields.js +61 -0
  360. package/utils/renderGetFilterFields.js.map +1 -0
  361. package/utils/renderInputFields.d.ts +14 -0
  362. package/utils/renderInputFields.js +55 -0
  363. package/utils/renderInputFields.js.map +1 -0
  364. package/utils/renderListFilterFields.d.ts +11 -0
  365. package/utils/renderListFilterFields.js +62 -0
  366. package/utils/renderListFilterFields.js.map +1 -0
  367. package/utils/renderSortEnum.d.ts +9 -0
  368. package/utils/renderSortEnum.js +34 -0
  369. package/utils/renderSortEnum.js.map +1 -0
  370. package/utils/toSlug.d.ts +1 -0
  371. package/utils/toSlug.js +20 -0
  372. package/utils/toSlug.js.map +1 -0
  373. package/validators/dateGte.d.ts +2 -0
  374. package/validators/dateGte.js +37 -0
  375. package/validators/dateGte.js.map +1 -0
  376. package/validators/dateLte.d.ts +2 -0
  377. package/validators/dateLte.js +37 -0
  378. package/validators/dateLte.js.map +1 -0
  379. package/validators/dynamicZone.d.ts +2 -0
  380. package/validators/dynamicZone.js +24 -0
  381. package/validators/dynamicZone.js.map +1 -0
  382. package/validators/gte.d.ts +2 -0
  383. package/validators/gte.js +36 -0
  384. package/validators/gte.js.map +1 -0
  385. package/validators/in.d.ts +2 -0
  386. package/validators/in.js +36 -0
  387. package/validators/in.js.map +1 -0
  388. package/validators/index.d.ts +1 -0
  389. package/validators/index.js +38 -0
  390. package/validators/index.js.map +1 -0
  391. package/validators/lte.d.ts +2 -0
  392. package/validators/lte.js +36 -0
  393. package/validators/lte.js.map +1 -0
  394. package/validators/maxLength.d.ts +2 -0
  395. package/validators/maxLength.js +36 -0
  396. package/validators/maxLength.js.map +1 -0
  397. package/validators/minLength.d.ts +2 -0
  398. package/validators/minLength.js +36 -0
  399. package/validators/minLength.js.map +1 -0
  400. package/validators/pattern.d.ts +2 -0
  401. package/validators/pattern.js +50 -0
  402. package/validators/pattern.js.map +1 -0
  403. package/validators/patternPlugins/email.d.ts +2 -0
  404. package/validators/patternPlugins/email.js +20 -0
  405. package/validators/patternPlugins/email.js.map +1 -0
  406. package/validators/patternPlugins/index.d.ts +2 -0
  407. package/validators/patternPlugins/index.js +24 -0
  408. package/validators/patternPlugins/index.js.map +1 -0
  409. package/validators/patternPlugins/lowerCase.d.ts +2 -0
  410. package/validators/patternPlugins/lowerCase.js +20 -0
  411. package/validators/patternPlugins/lowerCase.js.map +1 -0
  412. package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
  413. package/validators/patternPlugins/lowerCaseSpace.js +20 -0
  414. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
  415. package/validators/patternPlugins/upperCase.d.ts +2 -0
  416. package/validators/patternPlugins/upperCase.js +20 -0
  417. package/validators/patternPlugins/upperCase.js.map +1 -0
  418. package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
  419. package/validators/patternPlugins/upperCaseSpace.js +20 -0
  420. package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
  421. package/validators/patternPlugins/url.d.ts +2 -0
  422. package/validators/patternPlugins/url.js +20 -0
  423. package/validators/patternPlugins/url.js.map +1 -0
  424. package/validators/required.d.ts +2 -0
  425. package/validators/required.js +27 -0
  426. package/validators/required.js.map +1 -0
  427. package/validators/timeGte.d.ts +2 -0
  428. package/validators/timeGte.js +34 -0
  429. package/validators/timeGte.js.map +1 -0
  430. package/validators/timeLte.d.ts +2 -0
  431. package/validators/timeLte.js +34 -0
  432. package/validators/timeLte.js.map +1 -0
  433. package/validators/unique.d.ts +6 -0
  434. package/validators/unique.js +63 -0
  435. package/validators/unique.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ensureTypeTag","model","tags","some","tag","startsWith","push","createModelsCrud","params","getTenant","getIdentity","getLocale","storageOperations","context","loaders","listModels","DataLoader","models","list","where","tenant","id","locale","code","map","clearModelsCache","loader","Object","values","clearAll","managers","Map","updateManager","manager","contentModelManagerFactory","set","modelId","checkModelPermissions","check","checkPermissions","rwd","getModelsAsPlugins","plugins","byType","CmsModelPlugin","type","filter","plugin","modelTenant","modelLocale","contentModel","webinyVersion","WEBINY_VERSION","validateModelFields","modelsGet","pluginModel","find","get","NotFoundError","modelsList","databaseModels","load","pluginsModels","concat","permission","filterAsync","validateOwnership","validateModelAccess","getModel","checkOwnership","checkModelAccess","getModelManager","target","has","m","onModelBeforeCreate","createTopic","onModelAfterCreate","onModelCreateError","onModelBeforeCreateFrom","onModelAfterCreateFrom","onModelCreateFromError","onModelBeforeUpdate","onModelAfterUpdate","onModelUpdateError","onModelBeforeDelete","onModelAfterDelete","onModelDeleteError","onModelInitialize","assignModelBeforeCreate","assignModelAfterCreate","assignModelBeforeUpdate","assignModelAfterUpdate","assignModelAfterCreateFrom","assignModelBeforeDelete","assignModelAfterDelete","onBeforeModelCreate","onAfterModelCreate","onBeforeModelCreateFrom","onAfterModelCreateFrom","onBeforeModelUpdate","onAfterModelUpdate","onBeforeModelDelete","onAfterModelDelete","createModel","inputData","createdData","CreateContentModelModel","populate","validate","input","toJSON","security","disableAuthorization","group","cms","getGroup","enableAuthorization","fields","createFieldModels","identity","name","description","titleFieldId","createdBy","displayName","createdOn","Date","toISOString","savedOn","lockedFields","layout","publish","createdModel","create","ex","error","updateModelDirect","initialModel","original","resultModel","update","createModelFrom","data","CreateContentModelModelFrom","i18n","groups","updateModel","updatedData","UpdateContentModelModel","onlyDirty","keys","length","groupData","deleteModel","delete","WebinyError","message","initializeModel","getEntryManager","getManagers","getEntryManagers"],"sources":["contentModel.crud.ts"],"sourcesContent":["import {\n CmsContext,\n CmsModel,\n CmsModelContext,\n CmsModelManager,\n HeadlessCmsStorageOperations,\n OnModelBeforeCreateTopicParams,\n OnModelAfterCreateTopicParams,\n OnModelBeforeUpdateTopicParams,\n OnModelAfterUpdateTopicParams,\n OnModelBeforeDeleteTopicParams,\n OnModelAfterDeleteTopicParams,\n OnModelInitializeParams,\n OnModelBeforeCreateFromTopicParams,\n OnModelAfterCreateFromTopicParams,\n CmsModelCreateInput,\n CmsModelUpdateInput,\n CmsModelCreateFromInput,\n OnModelCreateErrorTopicParams,\n OnModelCreateFromErrorParams,\n OnModelUpdateErrorTopicParams,\n OnModelDeleteErrorTopicParams\n} from \"~/types\";\nimport DataLoader from \"dataloader\";\nimport { NotFoundError } from \"@webiny/handler-graphql\";\nimport { contentModelManagerFactory } from \"./contentModel/contentModelManagerFactory\";\nimport {\n CreateContentModelModel,\n CreateContentModelModelFrom,\n UpdateContentModelModel\n} from \"./contentModel/models\";\nimport { createFieldModels } from \"./contentModel/createFieldModels\";\nimport WebinyError from \"@webiny/error\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { SecurityIdentity } from \"@webiny/api-security/types\";\nimport { createTopic } from \"@webiny/pubsub\";\nimport { assignModelBeforeCreate } from \"./contentModel/beforeCreate\";\nimport { assignModelBeforeUpdate } from \"./contentModel/beforeUpdate\";\nimport { assignModelBeforeDelete } from \"./contentModel/beforeDelete\";\nimport { assignModelAfterCreate } from \"./contentModel/afterCreate\";\nimport { assignModelAfterUpdate } from \"./contentModel/afterUpdate\";\nimport { assignModelAfterDelete } from \"./contentModel/afterDelete\";\nimport { assignModelAfterCreateFrom } from \"./contentModel/afterCreateFrom\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { checkPermissions } from \"~/utils/permissions\";\nimport { filterAsync } from \"~/utils/filterAsync\";\nimport { checkOwnership, validateOwnership } from \"~/utils/ownership\";\nimport { checkModelAccess, validateModelAccess } from \"~/utils/access\";\nimport { validateModelFields } from \"~/crud/contentModel/validateModelFields\";\n\n/**\n * Given a model, return an array of tags ensuring the `type` tag is set.\n */\nconst ensureTypeTag = (model: Pick<CmsModel, \"tags\">) => {\n // Let's make sure we have a `type` tag assigned.\n // If `type` tag is not set, set it to a default one (`model`).\n const tags = model.tags || [];\n if (!tags.some(tag => tag.startsWith(\"type:\"))) {\n tags.push(\"type:model\");\n }\n\n return tags;\n};\n\nexport interface CreateModelsCrudParams {\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n storageOperations: HeadlessCmsStorageOperations;\n context: CmsContext;\n getIdentity: () => SecurityIdentity;\n}\n\nexport const createModelsCrud = (params: CreateModelsCrudParams): CmsModelContext => {\n const { getTenant, getIdentity, getLocale, storageOperations, context } = params;\n\n const loaders = {\n listModels: new DataLoader(async () => {\n const models = await storageOperations.models.list({\n where: {\n tenant: getTenant().id,\n locale: getLocale().code\n }\n });\n return [\n models.map(model => {\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n })\n ];\n })\n };\n\n const clearModelsCache = (): void => {\n for (const loader of Object.values(loaders)) {\n loader.clearAll();\n }\n };\n\n const managers = new Map<string, CmsModelManager>();\n const updateManager = async (\n context: CmsContext,\n model: CmsModel\n ): Promise<CmsModelManager> => {\n const manager = await contentModelManagerFactory(context, model);\n managers.set(model.modelId, manager);\n return manager;\n };\n\n const checkModelPermissions = (check: string) => {\n return checkPermissions(context, \"cms.contentModel\", { rwd: check });\n };\n\n const getModelsAsPlugins = (): CmsModel[] => {\n const tenant = getTenant().id;\n const locale = getLocale().code;\n\n const models = context.plugins\n .byType<CmsModelPlugin>(CmsModelPlugin.type)\n /**\n * We need to filter out models that are not for this tenant or locale.\n * If it does not have tenant or locale define, it is for every locale and tenant\n */\n .filter(plugin => {\n const { tenant: modelTenant, locale: modelLocale } = plugin.contentModel;\n if (modelTenant && modelTenant !== tenant) {\n return false;\n } else if (modelLocale && modelLocale !== locale) {\n return false;\n }\n return true;\n })\n .map<CmsModel>(plugin => {\n return {\n ...plugin.contentModel,\n tags: ensureTypeTag(plugin.contentModel),\n tenant,\n locale,\n webinyVersion: context.WEBINY_VERSION\n };\n });\n /**\n * Only point where we can truly validate the user model is in the runtime.\n */\n for (const model of models) {\n validateModelFields({\n model,\n plugins: context.plugins\n });\n }\n return models;\n };\n\n const modelsGet = async (modelId: string): Promise<CmsModel> => {\n const pluginModel = getModelsAsPlugins().find(model => model.modelId === modelId);\n\n if (pluginModel) {\n return pluginModel;\n }\n\n const model = await storageOperations.models.get({\n tenant: getTenant().id,\n locale: getLocale().code,\n modelId\n });\n\n if (!model) {\n throw new NotFoundError(`Content model \"${modelId}\" was not found!`);\n }\n\n return {\n ...model,\n tags: ensureTypeTag(model),\n tenant: model.tenant || getTenant().id,\n locale: model.locale || getLocale().code\n };\n };\n\n const modelsList = async (): Promise<CmsModel[]> => {\n const databaseModels: CmsModel[] = await loaders.listModels.load(\"listModels\");\n\n const pluginsModels = getModelsAsPlugins();\n\n return databaseModels.concat(pluginsModels);\n };\n\n const listModels = async () => {\n const permission = await checkModelPermissions(\"r\");\n const models = await modelsList();\n return filterAsync(models, async model => {\n if (!validateOwnership(context, permission, model)) {\n return false;\n }\n return validateModelAccess(context, model);\n });\n };\n\n const getModel = async (modelId: string): Promise<CmsModel> => {\n const permission = await checkModelPermissions(\"r\");\n\n const model = await modelsGet(modelId);\n\n checkOwnership(context, permission, model);\n await checkModelAccess(context, model);\n\n return model;\n };\n\n const getModelManager: CmsModelContext[\"getModelManager\"] = async (\n target\n ): Promise<CmsModelManager> => {\n const modelId = typeof target === \"string\" ? target : target.modelId;\n if (managers.has(modelId)) {\n return managers.get(modelId) as CmsModelManager;\n }\n const models = await modelsList();\n const model = models.find(m => m.modelId === modelId);\n if (!model) {\n throw new NotFoundError(`There is no content model \"${modelId}\".`);\n }\n return await updateManager(context, model);\n };\n\n /**\n * Create\n */\n const onModelBeforeCreate =\n createTopic<OnModelBeforeCreateTopicParams>(\"cms.onModelBeforeCreate\");\n const onModelAfterCreate = createTopic<OnModelAfterCreateTopicParams>(\"cms.onModelAfterCreate\");\n const onModelCreateError = createTopic<OnModelCreateErrorTopicParams>(\"cms.onModelCreateError\");\n /**\n * Create from / clone\n */\n const onModelBeforeCreateFrom = createTopic<OnModelBeforeCreateFromTopicParams>(\n \"cms.onModelBeforeCreateFrom\"\n );\n const onModelAfterCreateFrom = createTopic<OnModelAfterCreateFromTopicParams>(\n \"cms.onModelAfterCreateFrom\"\n );\n const onModelCreateFromError = createTopic<OnModelCreateFromErrorParams>(\n \"cms.onModelCreateFromError\"\n );\n /**\n * Update\n */\n const onModelBeforeUpdate =\n createTopic<OnModelBeforeUpdateTopicParams>(\"cms.onModelBeforeUpdate\");\n const onModelAfterUpdate = createTopic<OnModelAfterUpdateTopicParams>(\"cms.onModelAfterUpdate\");\n const onModelUpdateError = createTopic<OnModelUpdateErrorTopicParams>(\"cms.onModelUpdateError\");\n /**\n * Delete\n */\n const onModelBeforeDelete =\n createTopic<OnModelBeforeDeleteTopicParams>(\"cms.onModelBeforeDelete\");\n const onModelAfterDelete = createTopic<OnModelAfterDeleteTopicParams>(\"cms.onModelAfterDelete\");\n const onModelDeleteError = createTopic<OnModelDeleteErrorTopicParams>(\"cms.onModelDeleteError\");\n /**\n * Initialize\n */\n const onModelInitialize = createTopic<OnModelInitializeParams>(\"cms.onModelInitialize\");\n /**\n * We need to assign some default behaviors.\n */\n assignModelBeforeCreate({\n onModelBeforeCreate,\n onModelBeforeCreateFrom,\n plugins: context.plugins,\n storageOperations\n });\n assignModelAfterCreate({\n context,\n onModelAfterCreate\n });\n assignModelBeforeUpdate({\n onModelBeforeUpdate,\n plugins: context.plugins,\n storageOperations\n });\n assignModelAfterUpdate({\n context,\n onModelAfterUpdate\n });\n assignModelAfterCreateFrom({\n context,\n onModelAfterCreateFrom\n });\n assignModelBeforeDelete({\n onModelBeforeDelete,\n plugins: context.plugins,\n storageOperations\n });\n assignModelAfterDelete({\n context,\n onModelAfterDelete\n });\n\n return {\n /**\n * Deprecated - will be removed in 5.36.0\n */\n onBeforeModelCreate: onModelBeforeCreate,\n onAfterModelCreate: onModelAfterCreate,\n onBeforeModelCreateFrom: onModelBeforeCreateFrom,\n onAfterModelCreateFrom: onModelAfterCreateFrom,\n onBeforeModelUpdate: onModelBeforeUpdate,\n onAfterModelUpdate: onModelAfterUpdate,\n onBeforeModelDelete: onModelBeforeDelete,\n onAfterModelDelete: onModelAfterDelete,\n /**\n * Released in 5.34.0\n */\n onModelBeforeCreate,\n onModelAfterCreate,\n onModelCreateError,\n onModelBeforeCreateFrom,\n onModelAfterCreateFrom,\n onModelCreateFromError,\n onModelBeforeUpdate,\n onModelAfterUpdate,\n onModelUpdateError,\n onModelBeforeDelete,\n onModelAfterDelete,\n onModelDeleteError,\n onModelInitialize,\n clearModelsCache,\n getModel,\n listModels,\n async createModel(inputData) {\n await checkModelPermissions(\"w\");\n\n const createdData = new CreateContentModelModel().populate(inputData);\n await createdData.validate();\n const input: CmsModelCreateInput = await createdData.toJSON();\n\n context.security.disableAuthorization();\n const group = await context.cms.getGroup(input.group);\n context.security.enableAuthorization();\n if (!group) {\n throw new NotFoundError(`There is no group \"${input.group}\".`);\n }\n\n const fields = await createFieldModels(input.fields);\n\n const identity = getIdentity();\n const model: CmsModel = {\n name: input.name,\n description: input.description || \"\",\n modelId: input.modelId || \"\",\n titleFieldId: \"id\",\n locale: getLocale().code,\n tenant: getTenant().id,\n group: {\n id: group.id,\n name: group.name\n },\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n fields,\n lockedFields: [],\n layout: input.layout || [],\n tags: [...(input.tags || [])],\n webinyVersion: context.WEBINY_VERSION\n };\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeCreate.publish({\n input,\n model\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n loaders.listModels.clearAll();\n\n await updateManager(context, model);\n\n await onModelAfterCreate.publish({\n input,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateError.publish({\n input,\n model,\n error: ex\n });\n throw ex;\n }\n },\n /**\n * Method does not check for permissions or ownership.\n * @internal\n */\n async updateModelDirect(params) {\n const { model: initialModel, original } = params;\n\n const model: CmsModel = {\n ...initialModel,\n tenant: initialModel.tenant || getTenant().id,\n locale: initialModel.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n loaders.listModels.clearAll();\n\n await onModelAfterUpdate.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input: {} as CmsModelUpdateInput,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n },\n async createModelFrom(modelId, data) {\n await checkModelPermissions(\"w\");\n /**\n * Get a model record; this will also perform ownership validation.\n */\n const original = await getModel(modelId);\n\n const createdData = new CreateContentModelModelFrom().populate({\n name: data.name,\n modelId: data.modelId,\n description: data.description || original.description,\n group: data.group,\n locale: data.locale\n });\n\n await createdData.validate();\n const input: CmsModelCreateFromInput = await createdData.toJSON();\n\n const locale = await context.i18n.getLocale(input.locale || original.locale);\n if (!locale) {\n throw new NotFoundError(`There is no locale \"${input.locale}\".`);\n }\n /**\n * Use storage operations directly because we cannot get group from different locale via context methods.\n */\n const group = await context.cms.storageOperations.groups.get({\n id: input.group,\n tenant: original.tenant,\n locale: locale.code\n });\n if (!group) {\n throw new NotFoundError(`There is no group \"${input.group}\".`);\n }\n\n const identity = getIdentity();\n const model: CmsModel = {\n ...original,\n locale: locale.code,\n group: {\n id: group.id,\n name: group.name\n },\n name: input.name,\n modelId: input.modelId || \"\",\n description: input.description || \"\",\n createdBy: {\n id: identity.id,\n displayName: identity.displayName,\n type: identity.type\n },\n createdOn: new Date().toISOString(),\n savedOn: new Date().toISOString(),\n lockedFields: [],\n webinyVersion: context.WEBINY_VERSION\n };\n\n try {\n await onModelBeforeCreateFrom.publish({\n input,\n model,\n original\n });\n\n const createdModel = await storageOperations.models.create({\n model\n });\n\n loaders.listModels.clearAll();\n\n await updateManager(context, model);\n\n await onModelAfterCreateFrom.publish({\n input,\n original,\n model: createdModel\n });\n\n return createdModel;\n } catch (ex) {\n await onModelCreateFromError.publish({\n input,\n original,\n model,\n error: ex\n });\n throw ex;\n }\n },\n async updateModel(modelId, inputData) {\n await checkModelPermissions(\"w\");\n\n // Get a model record; this will also perform ownership validation.\n const original = await getModel(modelId);\n\n const updatedData = new UpdateContentModelModel().populate(inputData);\n await updatedData.validate();\n\n const input: CmsModelUpdateInput = await updatedData.toJSON({ onlyDirty: true });\n if (Object.keys(input).length === 0) {\n /**\n * We need to return the original if nothing is to be updated.\n */\n return original;\n }\n let group: CmsModel[\"group\"] = {\n id: original.group.id,\n name: original.group.name\n };\n if (input.group) {\n context.security.disableAuthorization();\n const groupData = await context.cms.getGroup(input.group);\n context.security.enableAuthorization();\n if (!groupData) {\n throw new NotFoundError(`There is no group \"${input.group}\".`);\n }\n group = {\n id: groupData.id,\n name: groupData.name\n };\n }\n const fields = await createFieldModels(inputData.fields);\n const model: CmsModel = {\n ...original,\n ...input,\n group,\n tenant: original.tenant || getTenant().id,\n locale: original.locale || getLocale().code,\n webinyVersion: context.WEBINY_VERSION,\n fields,\n savedOn: new Date().toISOString()\n };\n\n model.tags = ensureTypeTag(model);\n\n try {\n await onModelBeforeUpdate.publish({\n input,\n original,\n model\n });\n\n const resultModel = await storageOperations.models.update({\n model\n });\n\n await updateManager(context, resultModel);\n\n await onModelAfterUpdate.publish({\n input,\n original,\n model: resultModel\n });\n\n return resultModel;\n } catch (ex) {\n await onModelUpdateError.publish({\n input,\n model,\n original,\n error: ex\n });\n\n throw ex;\n }\n },\n async deleteModel(modelId) {\n await checkModelPermissions(\"d\");\n\n const model = await getModel(modelId);\n\n try {\n await onModelBeforeDelete.publish({\n model\n });\n\n try {\n await storageOperations.models.delete({\n model\n });\n } catch (ex) {\n throw new WebinyError(\n ex.message || \"Could not delete the content model\",\n ex.code || \"CONTENT_MODEL_DELETE_ERROR\",\n {\n error: ex,\n modelId: model.modelId\n }\n );\n }\n\n await onModelAfterDelete.publish({\n model\n });\n\n managers.delete(model.modelId);\n } catch (ex) {\n await onModelDeleteError.publish({\n model,\n error: ex\n });\n throw ex;\n }\n },\n async initializeModel(modelId, data) {\n /**\n * We require that users have write permissions to initialize models.\n * Maybe introduce another permission for it?\n */\n await checkModelPermissions(\"w\");\n\n const model = await getModel(modelId);\n\n await onModelInitialize.publish({ model, data });\n\n return true;\n },\n getModelManager,\n getEntryManager: async model => {\n return getModelManager(model);\n },\n getManagers: () => managers,\n getEntryManagers: () => managers\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { OnGroupBeforeCreateTopicParams, HeadlessCmsStorageOperations } from "../../types";
2
+ import { Topic } from "@webiny/pubsub/types";
3
+ import { PluginsContainer } from "@webiny/plugins";
4
+ interface AssignBeforeGroupCreateParams {
5
+ onGroupBeforeCreate: Topic<OnGroupBeforeCreateTopicParams>;
6
+ plugins: PluginsContainer;
7
+ storageOperations: HeadlessCmsStorageOperations;
8
+ }
9
+ export declare const assignBeforeGroupCreate: (params: AssignBeforeGroupCreateParams) => void;
10
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.assignBeforeGroupCreate = void 0;
9
+
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
11
+
12
+ var _toSlug = require("../../utils/toSlug");
13
+
14
+ var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
15
+
16
+ var _utils = require("@webiny/utils");
17
+
18
+ const assignBeforeGroupCreate = params => {
19
+ const {
20
+ onGroupBeforeCreate,
21
+ plugins,
22
+ storageOperations
23
+ } = params;
24
+ onGroupBeforeCreate.subscribe(async params => {
25
+ const {
26
+ group
27
+ } = params;
28
+
29
+ if (group.slug && group.slug.trim()) {
30
+ const groups = await storageOperations.groups.list({
31
+ where: {
32
+ tenant: group.tenant,
33
+ locale: group.locale,
34
+ slug: group.slug
35
+ }
36
+ });
37
+
38
+ if (groups.length > 0) {
39
+ throw new _error.default(`Cms Group with the slug "${group.slug}" already exists.`, "SLUG_ALREADY_EXISTS");
40
+ }
41
+ } else {
42
+ const slug = (0, _toSlug.toSlug)(group.name);
43
+ const groups = await storageOperations.groups.list({
44
+ where: {
45
+ tenant: group.tenant,
46
+ locale: group.locale,
47
+ slug
48
+ }
49
+ });
50
+
51
+ if (groups.length === 0) {
52
+ group.slug = slug;
53
+ } else {
54
+ group.slug = `${slug}-${(0, _utils.generateAlphaNumericId)(8)}`;
55
+ }
56
+ }
57
+
58
+ const groupPlugin = plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type).find(item => item.contentModelGroup.slug === group.slug);
59
+
60
+ if (groupPlugin) {
61
+ throw new Error(`Cannot create "${group.slug}" content model group because one is already registered via a plugin.`);
62
+ }
63
+ });
64
+ };
65
+
66
+ exports.assignBeforeGroupCreate = assignBeforeGroupCreate;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assignBeforeGroupCreate","params","onGroupBeforeCreate","plugins","storageOperations","subscribe","group","slug","trim","groups","list","where","tenant","locale","length","WebinyError","toSlug","name","generateAlphaNumericId","groupPlugin","byType","CmsGroupPlugin","type","find","item","contentModelGroup","Error"],"sources":["beforeCreate.ts"],"sourcesContent":["import { OnGroupBeforeCreateTopicParams, HeadlessCmsStorageOperations } from \"~/types\";\nimport { Topic } from \"@webiny/pubsub/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport WebinyError from \"@webiny/error\";\nimport { toSlug } from \"~/utils/toSlug\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { generateAlphaNumericId } from \"@webiny/utils\";\n\ninterface AssignBeforeGroupCreateParams {\n onGroupBeforeCreate: Topic<OnGroupBeforeCreateTopicParams>;\n plugins: PluginsContainer;\n storageOperations: HeadlessCmsStorageOperations;\n}\nexport const assignBeforeGroupCreate = (params: AssignBeforeGroupCreateParams) => {\n const { onGroupBeforeCreate, plugins, storageOperations } = params;\n\n onGroupBeforeCreate.subscribe(async params => {\n const { group } = params;\n\n if (group.slug && group.slug.trim()) {\n const groups = await storageOperations.groups.list({\n where: {\n tenant: group.tenant,\n locale: group.locale,\n slug: group.slug\n }\n });\n if (groups.length > 0) {\n throw new WebinyError(\n `Cms Group with the slug \"${group.slug}\" already exists.`,\n \"SLUG_ALREADY_EXISTS\"\n );\n }\n } else {\n const slug = toSlug(group.name);\n const groups = await storageOperations.groups.list({\n where: {\n tenant: group.tenant,\n locale: group.locale,\n slug\n }\n });\n\n if (groups.length === 0) {\n group.slug = slug;\n } else {\n group.slug = `${slug}-${generateAlphaNumericId(8)}`;\n }\n }\n\n const groupPlugin = plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .find(item => item.contentModelGroup.slug === group.slug);\n\n if (groupPlugin) {\n throw new Error(\n `Cannot create \"${group.slug}\" content model group because one is already registered via a plugin.`\n );\n }\n });\n};\n"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AAOO,MAAMA,uBAAuB,GAAIC,MAAD,IAA2C;EAC9E,MAAM;IAAEC,mBAAF;IAAuBC,OAAvB;IAAgCC;EAAhC,IAAsDH,MAA5D;EAEAC,mBAAmB,CAACG,SAApB,CAA8B,MAAMJ,MAAN,IAAgB;IAC1C,MAAM;MAAEK;IAAF,IAAYL,MAAlB;;IAEA,IAAIK,KAAK,CAACC,IAAN,IAAcD,KAAK,CAACC,IAAN,CAAWC,IAAX,EAAlB,EAAqC;MACjC,MAAMC,MAAM,GAAG,MAAML,iBAAiB,CAACK,MAAlB,CAAyBC,IAAzB,CAA8B;QAC/CC,KAAK,EAAE;UACHC,MAAM,EAAEN,KAAK,CAACM,MADX;UAEHC,MAAM,EAAEP,KAAK,CAACO,MAFX;UAGHN,IAAI,EAAED,KAAK,CAACC;QAHT;MADwC,CAA9B,CAArB;;MAOA,IAAIE,MAAM,CAACK,MAAP,GAAgB,CAApB,EAAuB;QACnB,MAAM,IAAIC,cAAJ,CACD,4BAA2BT,KAAK,CAACC,IAAK,mBADrC,EAEF,qBAFE,CAAN;MAIH;IACJ,CAdD,MAcO;MACH,MAAMA,IAAI,GAAG,IAAAS,cAAA,EAAOV,KAAK,CAACW,IAAb,CAAb;MACA,MAAMR,MAAM,GAAG,MAAML,iBAAiB,CAACK,MAAlB,CAAyBC,IAAzB,CAA8B;QAC/CC,KAAK,EAAE;UACHC,MAAM,EAAEN,KAAK,CAACM,MADX;UAEHC,MAAM,EAAEP,KAAK,CAACO,MAFX;UAGHN;QAHG;MADwC,CAA9B,CAArB;;MAQA,IAAIE,MAAM,CAACK,MAAP,KAAkB,CAAtB,EAAyB;QACrBR,KAAK,CAACC,IAAN,GAAaA,IAAb;MACH,CAFD,MAEO;QACHD,KAAK,CAACC,IAAN,GAAc,GAAEA,IAAK,IAAG,IAAAW,6BAAA,EAAuB,CAAvB,CAA0B,EAAlD;MACH;IACJ;;IAED,MAAMC,WAAW,GAAGhB,OAAO,CACtBiB,MADe,CACQC,8BAAA,CAAeC,IADvB,EAEfC,IAFe,CAEVC,IAAI,IAAIA,IAAI,CAACC,iBAAL,CAAuBlB,IAAvB,KAAgCD,KAAK,CAACC,IAFpC,CAApB;;IAIA,IAAIY,WAAJ,EAAiB;MACb,MAAM,IAAIO,KAAJ,CACD,kBAAiBpB,KAAK,CAACC,IAAK,uEAD3B,CAAN;IAGH;EACJ,CA3CD;AA4CH,CA/CM"}
@@ -0,0 +1,10 @@
1
+ import { Topic } from "@webiny/pubsub/types";
2
+ import { OnGroupBeforeDeleteTopicParams, HeadlessCmsStorageOperations } from "../../types";
3
+ import { PluginsContainer } from "@webiny/plugins";
4
+ interface AssignBeforeGroupDeleteParams {
5
+ onGroupBeforeDelete: Topic<OnGroupBeforeDeleteTopicParams>;
6
+ plugins: PluginsContainer;
7
+ storageOperations: HeadlessCmsStorageOperations;
8
+ }
9
+ export declare const assignBeforeGroupDelete: (params: AssignBeforeGroupDeleteParams) => void;
10
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.assignBeforeGroupDelete = void 0;
9
+
10
+ var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
11
+
12
+ var _error = _interopRequireDefault(require("@webiny/error"));
13
+
14
+ const assignBeforeGroupDelete = params => {
15
+ const {
16
+ onGroupBeforeDelete,
17
+ plugins,
18
+ storageOperations
19
+ } = params;
20
+ onGroupBeforeDelete.subscribe(async params => {
21
+ const {
22
+ group
23
+ } = params;
24
+ const groupPlugin = plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type).find(item => item.contentModelGroup.slug === group.slug);
25
+
26
+ if (groupPlugin) {
27
+ throw new Error(`Cms Groups defined via plugins cannot be deleted.`);
28
+ }
29
+
30
+ const models = await storageOperations.models.list({
31
+ where: {
32
+ tenant: group.tenant,
33
+ locale: group.locale
34
+ }
35
+ });
36
+ const items = models.filter(model => {
37
+ return model.group.id === group.id;
38
+ });
39
+
40
+ if (items.length > 0) {
41
+ throw new _error.default("Cannot delete this group because there are models that belong to it.", "BEFORE_DELETE_ERROR", {
42
+ group
43
+ });
44
+ }
45
+ });
46
+ };
47
+
48
+ exports.assignBeforeGroupDelete = assignBeforeGroupDelete;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assignBeforeGroupDelete","params","onGroupBeforeDelete","plugins","storageOperations","subscribe","group","groupPlugin","byType","CmsGroupPlugin","type","find","item","contentModelGroup","slug","Error","models","list","where","tenant","locale","items","filter","model","id","length","WebinyError"],"sources":["beforeDelete.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnGroupBeforeDeleteTopicParams, HeadlessCmsStorageOperations } from \"~/types\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport WebinyError from \"@webiny/error\";\n\ninterface AssignBeforeGroupDeleteParams {\n onGroupBeforeDelete: Topic<OnGroupBeforeDeleteTopicParams>;\n plugins: PluginsContainer;\n storageOperations: HeadlessCmsStorageOperations;\n}\nexport const assignBeforeGroupDelete = (params: AssignBeforeGroupDeleteParams) => {\n const { onGroupBeforeDelete, plugins, storageOperations } = params;\n\n onGroupBeforeDelete.subscribe(async params => {\n const { group } = params;\n\n const groupPlugin = plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .find(item => item.contentModelGroup.slug === group.slug);\n\n if (groupPlugin) {\n throw new Error(`Cms Groups defined via plugins cannot be deleted.`);\n }\n\n const models = await storageOperations.models.list({\n where: {\n tenant: group.tenant,\n locale: group.locale\n }\n });\n const items = models.filter(model => {\n return model.group.id === group.id;\n });\n if (items.length > 0) {\n throw new WebinyError(\n \"Cannot delete this group because there are models that belong to it.\",\n \"BEFORE_DELETE_ERROR\",\n {\n group\n }\n );\n }\n });\n};\n"],"mappings":";;;;;;;;;AAGA;;AACA;;AAOO,MAAMA,uBAAuB,GAAIC,MAAD,IAA2C;EAC9E,MAAM;IAAEC,mBAAF;IAAuBC,OAAvB;IAAgCC;EAAhC,IAAsDH,MAA5D;EAEAC,mBAAmB,CAACG,SAApB,CAA8B,MAAMJ,MAAN,IAAgB;IAC1C,MAAM;MAAEK;IAAF,IAAYL,MAAlB;IAEA,MAAMM,WAAW,GAAGJ,OAAO,CACtBK,MADe,CACQC,8BAAA,CAAeC,IADvB,EAEfC,IAFe,CAEVC,IAAI,IAAIA,IAAI,CAACC,iBAAL,CAAuBC,IAAvB,KAAgCR,KAAK,CAACQ,IAFpC,CAApB;;IAIA,IAAIP,WAAJ,EAAiB;MACb,MAAM,IAAIQ,KAAJ,CAAW,mDAAX,CAAN;IACH;;IAED,MAAMC,MAAM,GAAG,MAAMZ,iBAAiB,CAACY,MAAlB,CAAyBC,IAAzB,CAA8B;MAC/CC,KAAK,EAAE;QACHC,MAAM,EAAEb,KAAK,CAACa,MADX;QAEHC,MAAM,EAAEd,KAAK,CAACc;MAFX;IADwC,CAA9B,CAArB;IAMA,MAAMC,KAAK,GAAGL,MAAM,CAACM,MAAP,CAAcC,KAAK,IAAI;MACjC,OAAOA,KAAK,CAACjB,KAAN,CAAYkB,EAAZ,KAAmBlB,KAAK,CAACkB,EAAhC;IACH,CAFa,CAAd;;IAGA,IAAIH,KAAK,CAACI,MAAN,GAAe,CAAnB,EAAsB;MAClB,MAAM,IAAIC,cAAJ,CACF,sEADE,EAEF,qBAFE,EAGF;QACIpB;MADJ,CAHE,CAAN;IAOH;EACJ,CA7BD;AA8BH,CAjCM"}
@@ -0,0 +1,9 @@
1
+ import { Topic } from "@webiny/pubsub/types";
2
+ import { OnGroupBeforeUpdateTopicParams } from "../../types";
3
+ import { PluginsContainer } from "@webiny/plugins";
4
+ interface AssignBeforeGroupUpdateParams {
5
+ onGroupBeforeUpdate: Topic<OnGroupBeforeUpdateTopicParams>;
6
+ plugins: PluginsContainer;
7
+ }
8
+ export declare const assignBeforeGroupUpdate: (params: AssignBeforeGroupUpdateParams) => void;
9
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.assignBeforeGroupUpdate = void 0;
7
+
8
+ var _CmsGroupPlugin = require("../../plugins/CmsGroupPlugin");
9
+
10
+ const assignBeforeGroupUpdate = params => {
11
+ const {
12
+ onGroupBeforeUpdate,
13
+ plugins
14
+ } = params;
15
+ onGroupBeforeUpdate.subscribe(({
16
+ group
17
+ }) => {
18
+ const groupPlugin = plugins.byType(_CmsGroupPlugin.CmsGroupPlugin.type).find(item => item.contentModelGroup.slug === group.slug);
19
+
20
+ if (!groupPlugin) {
21
+ return;
22
+ }
23
+
24
+ throw new Error(`Cms Groups defined via plugins cannot be updated.`);
25
+ });
26
+ };
27
+
28
+ exports.assignBeforeGroupUpdate = assignBeforeGroupUpdate;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["assignBeforeGroupUpdate","params","onGroupBeforeUpdate","plugins","subscribe","group","groupPlugin","byType","CmsGroupPlugin","type","find","item","contentModelGroup","slug","Error"],"sources":["beforeUpdate.ts"],"sourcesContent":["import { Topic } from \"@webiny/pubsub/types\";\nimport { OnGroupBeforeUpdateTopicParams } from \"~/types\";\nimport { CmsGroupPlugin } from \"~/plugins/CmsGroupPlugin\";\nimport { PluginsContainer } from \"@webiny/plugins\";\n\ninterface AssignBeforeGroupUpdateParams {\n onGroupBeforeUpdate: Topic<OnGroupBeforeUpdateTopicParams>;\n plugins: PluginsContainer;\n}\nexport const assignBeforeGroupUpdate = (params: AssignBeforeGroupUpdateParams) => {\n const { onGroupBeforeUpdate, plugins } = params;\n\n onGroupBeforeUpdate.subscribe(({ group }) => {\n const groupPlugin = plugins\n .byType<CmsGroupPlugin>(CmsGroupPlugin.type)\n .find(item => item.contentModelGroup.slug === group.slug);\n if (!groupPlugin) {\n return;\n }\n throw new Error(`Cms Groups defined via plugins cannot be updated.`);\n });\n};\n"],"mappings":";;;;;;;AAEA;;AAOO,MAAMA,uBAAuB,GAAIC,MAAD,IAA2C;EAC9E,MAAM;IAAEC,mBAAF;IAAuBC;EAAvB,IAAmCF,MAAzC;EAEAC,mBAAmB,CAACE,SAApB,CAA8B,CAAC;IAAEC;EAAF,CAAD,KAAe;IACzC,MAAMC,WAAW,GAAGH,OAAO,CACtBI,MADe,CACQC,8BAAA,CAAeC,IADvB,EAEfC,IAFe,CAEVC,IAAI,IAAIA,IAAI,CAACC,iBAAL,CAAuBC,IAAvB,KAAgCR,KAAK,CAACQ,IAFpC,CAApB;;IAGA,IAAI,CAACP,WAAL,EAAkB;MACd;IACH;;IACD,MAAM,IAAIQ,KAAJ,CAAW,mDAAX,CAAN;EACH,CARD;AASH,CAZM"}
@@ -0,0 +1,12 @@
1
+ import { CmsGroupContext, CmsContext, HeadlessCmsStorageOperations } from "../types";
2
+ import { Tenant } from "@webiny/api-tenancy/types";
3
+ import { I18NLocale } from "@webiny/api-i18n/types";
4
+ import { SecurityIdentity } from "@webiny/api-security/types";
5
+ export interface CreateModelGroupsCrudParams {
6
+ getTenant: () => Tenant;
7
+ getLocale: () => I18NLocale;
8
+ storageOperations: HeadlessCmsStorageOperations;
9
+ context: CmsContext;
10
+ getIdentity: () => SecurityIdentity;
11
+ }
12
+ export declare const createModelGroupsCrud: (params: CreateModelGroupsCrudParams) => CmsGroupContext;