@webiny/api-headless-cms 0.0.0-unstable.99666aeb00 → 0.0.0-unstable.a9593f74dd

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 (495) hide show
  1. package/constants.d.ts +31 -0
  2. package/constants.js +51 -2
  3. package/constants.js.map +1 -1
  4. package/context.js +50 -45
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/afterDelete.js +3 -1
  7. package/crud/contentEntry/afterDelete.js.map +1 -1
  8. package/crud/contentEntry/beforeCreate.js +3 -1
  9. package/crud/contentEntry/beforeCreate.js.map +1 -1
  10. package/crud/contentEntry/beforeUpdate.js +3 -1
  11. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  12. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  13. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  14. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  16. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  17. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  19. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  20. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  22. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  23. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  25. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  26. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  28. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  29. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  31. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  32. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  33. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  34. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  35. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  36. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  37. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  38. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  39. package/crud/contentEntry/entryDataValidation.d.ts +4 -2
  40. package/crud/contentEntry/entryDataValidation.js +223 -45
  41. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  42. package/crud/contentEntry/markLockedFields.js +17 -10
  43. package/crud/contentEntry/markLockedFields.js.map +1 -1
  44. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  45. package/crud/contentEntry/referenceFieldsMapping.js +134 -111
  46. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  47. package/crud/contentEntry/searchableFields.js +5 -4
  48. package/crud/contentEntry/searchableFields.js.map +1 -1
  49. package/crud/contentEntry.crud.d.ts +1 -4
  50. package/crud/contentEntry.crud.js +295 -466
  51. package/crud/contentEntry.crud.js.map +1 -1
  52. package/crud/contentModel/beforeCreate.d.ts +1 -1
  53. package/crud/contentModel/beforeCreate.js +11 -9
  54. package/crud/contentModel/beforeCreate.js.map +1 -1
  55. package/crud/contentModel/beforeDelete.js +3 -1
  56. package/crud/contentModel/beforeDelete.js.map +1 -1
  57. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  58. package/crud/contentModel/beforeUpdate.js +3 -6
  59. package/crud/contentModel/beforeUpdate.js.map +1 -1
  60. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  61. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  62. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  63. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  64. package/crud/contentModel/createFieldStorageId.js +3 -1
  65. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  66. package/crud/contentModel/defaultFields.js +3 -1
  67. package/crud/contentModel/defaultFields.js.map +1 -1
  68. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  69. package/crud/contentModel/ensureTypeTag.js +21 -0
  70. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  71. package/crud/contentModel/fields/descriptionField.js +4 -2
  72. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  73. package/crud/contentModel/fields/imageField.js +6 -8
  74. package/crud/contentModel/fields/imageField.js.map +1 -1
  75. package/crud/contentModel/fields/titleField.js +4 -2
  76. package/crud/contentModel/fields/titleField.js.map +1 -1
  77. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  78. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  79. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  80. package/crud/contentModel/validate/endingAllowed.js +3 -1
  81. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  82. package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
  83. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  84. package/crud/contentModel/validate/modelId.js +3 -1
  85. package/crud/contentModel/validate/modelId.js.map +1 -1
  86. package/crud/contentModel/validate/pluralApiName.js +3 -1
  87. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  88. package/crud/contentModel/validate/singularApiName.js +3 -1
  89. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  90. package/crud/contentModel/validateModel.js +3 -1
  91. package/crud/contentModel/validateModel.js.map +1 -1
  92. package/crud/contentModel/validateModelFields.js +7 -6
  93. package/crud/contentModel/validateModelFields.js.map +1 -1
  94. package/crud/contentModel/validation.d.ts +531 -210
  95. package/crud/contentModel/validation.js +71 -11
  96. package/crud/contentModel/validation.js.map +1 -1
  97. package/crud/contentModel.crud.js +137 -182
  98. package/crud/contentModel.crud.js.map +1 -1
  99. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  100. package/crud/contentModelGroup/beforeCreate.js +15 -1
  101. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  102. package/crud/contentModelGroup/beforeDelete.js +3 -1
  103. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  104. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  105. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  106. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  107. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  108. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  109. package/crud/contentModelGroup/validation.d.ts +9 -6
  110. package/crud/contentModelGroup/validation.js +5 -2
  111. package/crud/contentModelGroup/validation.js.map +1 -1
  112. package/crud/contentModelGroup.crud.d.ts +1 -1
  113. package/crud/contentModelGroup.crud.js +113 -112
  114. package/crud/contentModelGroup.crud.js.map +1 -1
  115. package/crud/system.crud.js +8 -11
  116. package/crud/system.crud.js.map +1 -1
  117. package/export/crud/exporting.d.ts +3 -0
  118. package/export/crud/exporting.js +49 -0
  119. package/export/crud/exporting.js.map +1 -0
  120. package/export/crud/importing.d.ts +3 -0
  121. package/export/crud/importing.js +79 -0
  122. package/export/crud/importing.js.map +1 -0
  123. package/export/crud/imports/importData.d.ts +14 -0
  124. package/export/crud/imports/importData.js +52 -0
  125. package/export/crud/imports/importData.js.map +1 -0
  126. package/export/crud/imports/importGroups.d.ts +8 -0
  127. package/export/crud/imports/importGroups.js +104 -0
  128. package/export/crud/imports/importGroups.js.map +1 -0
  129. package/export/crud/imports/importModels.d.ts +8 -0
  130. package/export/crud/imports/importModels.js +136 -0
  131. package/export/crud/imports/importModels.js.map +1 -0
  132. package/export/crud/imports/validateGroups.d.ts +8 -0
  133. package/export/crud/imports/validateGroups.js +112 -0
  134. package/export/crud/imports/validateGroups.js.map +1 -0
  135. package/export/crud/imports/validateInput.d.ts +19 -0
  136. package/export/crud/imports/validateInput.js +55 -0
  137. package/export/crud/imports/validateInput.js.map +1 -0
  138. package/export/crud/imports/validateModels.d.ts +12 -0
  139. package/export/crud/imports/validateModels.js +203 -0
  140. package/export/crud/imports/validateModels.js.map +1 -0
  141. package/export/crud/index.d.ts +4 -0
  142. package/export/crud/index.js +15 -0
  143. package/export/crud/index.js.map +1 -0
  144. package/export/crud/sanitize.d.ts +4 -0
  145. package/export/crud/sanitize.js +35 -0
  146. package/export/crud/sanitize.js.map +1 -0
  147. package/export/graphql/index.d.ts +3 -0
  148. package/export/graphql/index.js +188 -0
  149. package/export/graphql/index.js.map +1 -0
  150. package/export/index.d.ts +2 -0
  151. package/export/index.js +29 -0
  152. package/export/index.js.map +1 -0
  153. package/export/types.d.ts +113 -0
  154. package/export/types.js +22 -0
  155. package/export/types.js.map +1 -0
  156. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  157. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  158. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
  159. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  160. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
  161. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  162. package/fieldConverters/index.js +3 -1
  163. package/fieldConverters/index.js.map +1 -1
  164. package/graphql/buildSchemaPlugins.js +7 -1
  165. package/graphql/buildSchemaPlugins.js.map +1 -1
  166. package/graphql/checkEndpointAccess.js +3 -1
  167. package/graphql/checkEndpointAccess.js.map +1 -1
  168. package/graphql/createExecutableSchema.js +3 -1
  169. package/graphql/createExecutableSchema.js.map +1 -1
  170. package/graphql/createRequestBody.js +3 -1
  171. package/graphql/createRequestBody.js.map +1 -1
  172. package/graphql/formatErrorPayload.js +3 -1
  173. package/graphql/formatErrorPayload.js.map +1 -1
  174. package/graphql/generateSchema.js +3 -1
  175. package/graphql/generateSchema.js.map +1 -1
  176. package/graphql/getSchema.d.ts +0 -1
  177. package/graphql/getSchema.js +34 -18
  178. package/graphql/getSchema.js.map +1 -1
  179. package/graphql/graphQLHandlerFactory.js +3 -1
  180. package/graphql/graphQLHandlerFactory.js.map +1 -1
  181. package/graphql/handleRequest.js +3 -5
  182. package/graphql/handleRequest.js.map +1 -1
  183. package/graphql/index.d.ts +1 -1
  184. package/graphql/index.js +4 -2
  185. package/graphql/index.js.map +1 -1
  186. package/graphql/schema/baseContentSchema.js +9 -8
  187. package/graphql/schema/baseContentSchema.js.map +1 -1
  188. package/graphql/schema/baseSchema.d.ts +2 -3
  189. package/graphql/schema/baseSchema.js +64 -2
  190. package/graphql/schema/baseSchema.js.map +1 -1
  191. package/graphql/schema/contentEntries.js +51 -18
  192. package/graphql/schema/contentEntries.js.map +1 -1
  193. package/graphql/schema/contentModelGroups.js +5 -2
  194. package/graphql/schema/contentModelGroups.js.map +1 -1
  195. package/graphql/schema/contentModels.js +10 -10
  196. package/graphql/schema/contentModels.js.map +1 -1
  197. package/graphql/schema/createFieldResolvers.js +14 -12
  198. package/graphql/schema/createFieldResolvers.js.map +1 -1
  199. package/graphql/schema/createFieldTypePluginRecords.js +3 -1
  200. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  201. package/graphql/schema/createManageResolvers.js +13 -10
  202. package/graphql/schema/createManageResolvers.js.map +1 -1
  203. package/graphql/schema/createManageSDL.js +37 -19
  204. package/graphql/schema/createManageSDL.js.map +1 -1
  205. package/graphql/schema/createPreviewResolvers.js +7 -6
  206. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  207. package/graphql/schema/createReadResolvers.js +7 -6
  208. package/graphql/schema/createReadResolvers.js.map +1 -1
  209. package/graphql/schema/createReadSDL.js +12 -5
  210. package/graphql/schema/createReadSDL.js.map +1 -1
  211. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  212. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  213. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  214. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  215. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  216. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  217. package/graphql/schema/resolvers/manage/resolveDelete.js +4 -2
  218. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  219. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +4 -2
  220. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  221. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  222. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  223. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  224. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  225. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  226. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  227. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
  228. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  229. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  230. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  231. package/graphql/schema/resolvers/manage/resolveMove.js +7 -10
  232. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  233. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  234. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  235. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  236. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  237. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  238. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  239. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  240. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  241. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  242. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  243. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  244. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  245. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  246. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  247. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  248. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  249. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  250. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  251. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  252. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  253. package/graphql/schema/schemaPlugins.js +3 -1
  254. package/graphql/schema/schemaPlugins.js.map +1 -1
  255. package/graphql/system.js +3 -1
  256. package/graphql/system.js.map +1 -1
  257. package/graphqlFields/boolean.js +3 -1
  258. package/graphqlFields/boolean.js.map +1 -1
  259. package/graphqlFields/datetime.js +5 -5
  260. package/graphqlFields/datetime.js.map +1 -1
  261. package/graphqlFields/dynamicZone/dynamicZoneField.js +42 -19
  262. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  263. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
  264. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  265. package/graphqlFields/dynamicZone/index.js +3 -1
  266. package/graphqlFields/dynamicZone/index.js.map +1 -1
  267. package/graphqlFields/file.js +3 -1
  268. package/graphqlFields/file.js.map +1 -1
  269. package/graphqlFields/helpers.d.ts +0 -1
  270. package/graphqlFields/helpers.js +6 -18
  271. package/graphqlFields/helpers.js.map +1 -1
  272. package/graphqlFields/index.js +5 -2
  273. package/graphqlFields/index.js.map +1 -1
  274. package/graphqlFields/json.d.ts +2 -0
  275. package/graphqlFields/json.js +49 -0
  276. package/graphqlFields/json.js.map +1 -0
  277. package/graphqlFields/longText.js +14 -3
  278. package/graphqlFields/longText.js.map +1 -1
  279. package/graphqlFields/number.js +3 -1
  280. package/graphqlFields/number.js.map +1 -1
  281. package/graphqlFields/object.js +24 -44
  282. package/graphqlFields/object.js.map +1 -1
  283. package/graphqlFields/ref.js +28 -16
  284. package/graphqlFields/ref.js.map +1 -1
  285. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  286. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  287. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  288. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  289. package/graphqlFields/richText/richTextResolver.js +39 -0
  290. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  291. package/graphqlFields/richText.js +11 -3
  292. package/graphqlFields/richText.js.map +1 -1
  293. package/graphqlFields/text.js +3 -1
  294. package/graphqlFields/text.js.map +1 -1
  295. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  296. package/htmlRenderer/LexicalRenderer.js +28 -0
  297. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  298. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  299. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  300. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  301. package/index.d.ts +2 -1
  302. package/index.js +20 -5
  303. package/index.js.map +1 -1
  304. package/modelManager/DefaultCmsModelManager.js +3 -5
  305. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  306. package/modelManager/index.js +3 -1
  307. package/modelManager/index.js.map +1 -1
  308. package/package.json +27 -26
  309. package/parameters/context.js +4 -2
  310. package/parameters/context.js.map +1 -1
  311. package/parameters/header.js +7 -6
  312. package/parameters/header.js.map +1 -1
  313. package/parameters/index.js +3 -1
  314. package/parameters/index.js.map +1 -1
  315. package/parameters/manual.js +9 -4
  316. package/parameters/manual.js.map +1 -1
  317. package/parameters/path.js +4 -3
  318. package/parameters/path.js.map +1 -1
  319. package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
  320. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  321. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  322. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  323. package/plugins/CmsGroupPlugin.d.ts +6 -3
  324. package/plugins/CmsGroupPlugin.js +8 -6
  325. package/plugins/CmsGroupPlugin.js.map +1 -1
  326. package/plugins/CmsModelFieldConverterPlugin.js +5 -4
  327. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  328. package/plugins/CmsModelPlugin.d.ts +6 -4
  329. package/plugins/CmsModelPlugin.js +56 -27
  330. package/plugins/CmsModelPlugin.js.map +1 -1
  331. package/plugins/CmsParametersPlugin.js +7 -4
  332. package/plugins/CmsParametersPlugin.js.map +1 -1
  333. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  334. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  335. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  336. package/plugins/StorageOperationsCmsModelPlugin.js +5 -6
  337. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  338. package/plugins/StorageTransformPlugin.d.ts +2 -2
  339. package/plugins/StorageTransformPlugin.js +3 -4
  340. package/plugins/StorageTransformPlugin.js.map +1 -1
  341. package/plugins/index.d.ts +1 -0
  342. package/plugins/index.js +14 -1
  343. package/plugins/index.js.map +1 -1
  344. package/storage/default.js +3 -1
  345. package/storage/default.js.map +1 -1
  346. package/storage/index.d.ts +1 -0
  347. package/storage/index.js +15 -0
  348. package/storage/index.js.map +1 -0
  349. package/storage/json.d.ts +2 -0
  350. package/storage/json.js +27 -0
  351. package/storage/json.js.map +1 -0
  352. package/storage/object.js +8 -8
  353. package/storage/object.js.map +1 -1
  354. package/types.d.ts +300 -260
  355. package/types.js +9 -20
  356. package/types.js.map +1 -1
  357. package/utils/access.d.ts +9 -0
  358. package/utils/access.js +26 -0
  359. package/utils/access.js.map +1 -0
  360. package/utils/caching/Cache.d.ts +2 -0
  361. package/utils/caching/Cache.js +51 -0
  362. package/utils/caching/Cache.js.map +1 -0
  363. package/utils/caching/CacheKey.d.ts +2 -0
  364. package/utils/caching/CacheKey.js +40 -0
  365. package/utils/caching/CacheKey.js.map +1 -0
  366. package/utils/caching/index.d.ts +2 -0
  367. package/utils/caching/index.js +29 -0
  368. package/utils/caching/index.js.map +1 -0
  369. package/utils/caching/types.d.ts +11 -0
  370. package/utils/caching/types.js +7 -0
  371. package/utils/caching/types.js.map +1 -0
  372. package/utils/converters/Converter.js +4 -5
  373. package/utils/converters/Converter.js.map +1 -1
  374. package/utils/converters/ConverterCollection.js +13 -7
  375. package/utils/converters/ConverterCollection.js.map +1 -1
  376. package/utils/converters/valueKeyStorageConverter.js +11 -4
  377. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  378. package/utils/createTypeFromFields.js +6 -1
  379. package/utils/createTypeFromFields.js.map +1 -1
  380. package/utils/createTypeName.js +3 -1
  381. package/utils/createTypeName.js.map +1 -1
  382. package/utils/date.d.ts +10 -0
  383. package/utils/date.js +36 -0
  384. package/utils/date.js.map +1 -0
  385. package/utils/entryStorage.d.ts +4 -4
  386. package/utils/entryStorage.js +6 -4
  387. package/utils/entryStorage.js.map +1 -1
  388. package/utils/filterAsync.js +9 -8
  389. package/utils/filterAsync.js.map +1 -1
  390. package/utils/getBaseFieldType.js +3 -1
  391. package/utils/getBaseFieldType.js.map +1 -1
  392. package/utils/getEntryDescription.js +3 -1
  393. package/utils/getEntryDescription.js.map +1 -1
  394. package/utils/getEntryImage.js +3 -1
  395. package/utils/getEntryImage.js.map +1 -1
  396. package/utils/getEntryTitle.js +3 -1
  397. package/utils/getEntryTitle.js.map +1 -1
  398. package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
  399. package/utils/getSchemaFromFieldPlugins.js +22 -4
  400. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  401. package/utils/identity.d.ts +2 -0
  402. package/utils/identity.js +20 -0
  403. package/utils/identity.js.map +1 -0
  404. package/utils/incrementEntryIdVersion.js +3 -1
  405. package/utils/incrementEntryIdVersion.js.map +1 -1
  406. package/utils/index.d.ts +1 -0
  407. package/utils/index.js +18 -0
  408. package/utils/index.js.map +1 -0
  409. package/utils/permissions/EntriesPermissions.js +3 -1
  410. package/utils/permissions/EntriesPermissions.js.map +1 -1
  411. package/utils/permissions/ModelGroupsPermissions.d.ts +3 -5
  412. package/utils/permissions/ModelGroupsPermissions.js +8 -6
  413. package/utils/permissions/ModelGroupsPermissions.js.map +1 -1
  414. package/utils/permissions/ModelsPermissions.d.ts +9 -7
  415. package/utils/permissions/ModelsPermissions.js +5 -6
  416. package/utils/permissions/ModelsPermissions.js.map +1 -1
  417. package/utils/renderFields.js +3 -1
  418. package/utils/renderFields.js.map +1 -1
  419. package/utils/renderGetFilterFields.js +5 -4
  420. package/utils/renderGetFilterFields.js.map +1 -1
  421. package/utils/renderInputFields.js +3 -1
  422. package/utils/renderInputFields.js.map +1 -1
  423. package/utils/renderListFilterFields.js +12 -4
  424. package/utils/renderListFilterFields.js.map +1 -1
  425. package/utils/renderSortEnum.js +5 -2
  426. package/utils/renderSortEnum.js.map +1 -1
  427. package/utils/toSlug.js +3 -1
  428. package/utils/toSlug.js.map +1 -1
  429. package/validators/dateGte.js +3 -1
  430. package/validators/dateGte.js.map +1 -1
  431. package/validators/dateLte.js +3 -1
  432. package/validators/dateLte.js.map +1 -1
  433. package/validators/gte.js +4 -3
  434. package/validators/gte.js.map +1 -1
  435. package/validators/in.js +4 -3
  436. package/validators/in.js.map +1 -1
  437. package/validators/index.js +4 -3
  438. package/validators/index.js.map +1 -1
  439. package/validators/lte.js +4 -3
  440. package/validators/lte.js.map +1 -1
  441. package/validators/maxLength.js +4 -3
  442. package/validators/maxLength.js.map +1 -1
  443. package/validators/minLength.js +4 -3
  444. package/validators/minLength.js.map +1 -1
  445. package/validators/pattern.js +5 -3
  446. package/validators/pattern.js.map +1 -1
  447. package/validators/patternPlugins/email.js +3 -1
  448. package/validators/patternPlugins/email.js.map +1 -1
  449. package/validators/patternPlugins/index.js +3 -1
  450. package/validators/patternPlugins/index.js.map +1 -1
  451. package/validators/patternPlugins/lowerCase.js +3 -1
  452. package/validators/patternPlugins/lowerCase.js.map +1 -1
  453. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  454. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  455. package/validators/patternPlugins/upperCase.js +3 -1
  456. package/validators/patternPlugins/upperCase.js.map +1 -1
  457. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  458. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  459. package/validators/patternPlugins/url.js +3 -1
  460. package/validators/patternPlugins/url.js.map +1 -1
  461. package/validators/required.js +3 -1
  462. package/validators/required.js.map +1 -1
  463. package/validators/timeGte.js +4 -3
  464. package/validators/timeGte.js.map +1 -1
  465. package/validators/timeLte.js +4 -3
  466. package/validators/timeLte.js.map +1 -1
  467. package/validators/unique.js +4 -2
  468. package/validators/unique.js.map +1 -1
  469. package/crud/contentModel/afterCreate.d.ts +0 -8
  470. package/crud/contentModel/afterCreate.js +0 -16
  471. package/crud/contentModel/afterCreate.js.map +0 -1
  472. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  473. package/crud/contentModel/afterCreateFrom.js +0 -16
  474. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  475. package/crud/contentModel/afterDelete.d.ts +0 -8
  476. package/crud/contentModel/afterDelete.js +0 -16
  477. package/crud/contentModel/afterDelete.js.map +0 -1
  478. package/crud/contentModel/afterUpdate.d.ts +0 -8
  479. package/crud/contentModel/afterUpdate.js +0 -16
  480. package/crud/contentModel/afterUpdate.js.map +0 -1
  481. package/crud/contentModel/validateLayout.d.ts +0 -2
  482. package/crud/contentModel/validateLayout.js +0 -28
  483. package/crud/contentModel/validateLayout.js.map +0 -1
  484. package/crud/settings.crud.d.ts +0 -12
  485. package/crud/settings.crud.js +0 -62
  486. package/crud/settings.crud.js.map +0 -1
  487. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  488. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
  489. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  490. package/utils/permissions/SettingsPermissions.d.ts +0 -4
  491. package/utils/permissions/SettingsPermissions.js +0 -9
  492. package/utils/permissions/SettingsPermissions.js.map +0 -1
  493. package/validators/dynamicZone.d.ts +0 -2
  494. package/validators/dynamicZone.js +0 -20
  495. package/validators/dynamicZone.js.map +0 -1
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.createImportCrud = void 0;
8
+ var _error = _interopRequireDefault(require("@webiny/error"));
9
+ var _importData = require("./imports/importData");
10
+ var _validateInput = require("./imports/validateInput");
11
+ const fetchGroupsAndModels = async context => {
12
+ return await context.security.withoutAuthorization(async () => {
13
+ return {
14
+ groups: await context.cms.listGroups(),
15
+ models: await context.cms.listModels()
16
+ };
17
+ });
18
+ };
19
+ const createImportCrud = context => {
20
+ return {
21
+ validate: async params => {
22
+ const {
23
+ data
24
+ } = params;
25
+ const {
26
+ groups,
27
+ models
28
+ } = await fetchGroupsAndModels(context);
29
+ const validated = await (0, _validateInput.validateInput)({
30
+ groups,
31
+ models,
32
+ data
33
+ });
34
+ if (validated.error) {
35
+ return {
36
+ groups: validated.groups,
37
+ models: validated.models,
38
+ message: validated.error
39
+ };
40
+ }
41
+ return {
42
+ groups: validated.groups,
43
+ models: validated.models,
44
+ message: "Validation done."
45
+ };
46
+ },
47
+ structure: async params => {
48
+ const {
49
+ data
50
+ } = params;
51
+ const {
52
+ groups,
53
+ models
54
+ } = await fetchGroupsAndModels(context);
55
+ const validated = await (0, _validateInput.validateInput)({
56
+ groups,
57
+ models,
58
+ data
59
+ });
60
+ if (validated.error) {
61
+ throw new _error.default(validated.error, "VALIDATION_ERROR");
62
+ }
63
+ const imported = await (0, _importData.importData)({
64
+ context,
65
+ groups: validated.groups,
66
+ models: validated.models
67
+ });
68
+ const modelError = imported.models.find(model => !!model.error);
69
+ const error = imported.error || modelError;
70
+ return {
71
+ ...imported,
72
+ message: error ? null : "Import done."
73
+ };
74
+ }
75
+ };
76
+ };
77
+ exports.createImportCrud = createImportCrud;
78
+
79
+ //# sourceMappingURL=importing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_importData","_validateInput","fetchGroupsAndModels","context","security","withoutAuthorization","groups","cms","listGroups","models","listModels","createImportCrud","validate","params","data","validated","validateInput","error","message","structure","WebinyError","imported","importData","modelError","find","model","exports"],"sources":["importing.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { HeadlessCmsImport, ValidCmsGroupResult, ValidCmsModelResult } from \"~/export/types\";\nimport { CmsContext } from \"~/types\";\nimport { importData } from \"./imports/importData\";\nimport { validateInput } from \"./imports/validateInput\";\n\nconst fetchGroupsAndModels = async (context: CmsContext) => {\n return await context.security.withoutAuthorization(async () => {\n return {\n groups: await context.cms.listGroups(),\n models: await context.cms.listModels()\n };\n });\n};\n\nexport const createImportCrud = (context: CmsContext): HeadlessCmsImport => {\n return {\n validate: async params => {\n const { data } = params;\n\n const { groups, models } = await fetchGroupsAndModels(context);\n\n const validated = await validateInput({\n groups,\n models,\n data\n });\n if (validated.error) {\n return {\n groups: validated.groups,\n models: validated.models,\n message: validated.error\n };\n }\n\n return {\n groups: validated.groups,\n models: validated.models,\n message: \"Validation done.\"\n };\n },\n structure: async params => {\n const { data } = params;\n\n const { groups, models } = await fetchGroupsAndModels(context);\n\n const validated = await validateInput({\n groups,\n models,\n data\n });\n if (validated.error) {\n throw new WebinyError(validated.error, \"VALIDATION_ERROR\");\n }\n\n const imported = await importData({\n context,\n groups: validated.groups as ValidCmsGroupResult[],\n models: validated.models as ValidCmsModelResult[]\n });\n\n const modelError = imported.models.find(model => !!model.error);\n const error = imported.error || modelError;\n\n return {\n ...imported,\n message: error ? null : \"Import done.\"\n };\n }\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA,MAAMG,oBAAoB,GAAG,MAAOC,OAAmB,IAAK;EACxD,OAAO,MAAMA,OAAO,CAACC,QAAQ,CAACC,oBAAoB,CAAC,YAAY;IAC3D,OAAO;MACHC,MAAM,EAAE,MAAMH,OAAO,CAACI,GAAG,CAACC,UAAU,CAAC,CAAC;MACtCC,MAAM,EAAE,MAAMN,OAAO,CAACI,GAAG,CAACG,UAAU,CAAC;IACzC,CAAC;EACL,CAAC,CAAC;AACN,CAAC;AAEM,MAAMC,gBAAgB,GAAIR,OAAmB,IAAwB;EACxE,OAAO;IACHS,QAAQ,EAAE,MAAMC,MAAM,IAAI;MACtB,MAAM;QAAEC;MAAK,CAAC,GAAGD,MAAM;MAEvB,MAAM;QAAEP,MAAM;QAAEG;MAAO,CAAC,GAAG,MAAMP,oBAAoB,CAACC,OAAO,CAAC;MAE9D,MAAMY,SAAS,GAAG,MAAM,IAAAC,4BAAa,EAAC;QAClCV,MAAM;QACNG,MAAM;QACNK;MACJ,CAAC,CAAC;MACF,IAAIC,SAAS,CAACE,KAAK,EAAE;QACjB,OAAO;UACHX,MAAM,EAAES,SAAS,CAACT,MAAM;UACxBG,MAAM,EAAEM,SAAS,CAACN,MAAM;UACxBS,OAAO,EAAEH,SAAS,CAACE;QACvB,CAAC;MACL;MAEA,OAAO;QACHX,MAAM,EAAES,SAAS,CAACT,MAAM;QACxBG,MAAM,EAAEM,SAAS,CAACN,MAAM;QACxBS,OAAO,EAAE;MACb,CAAC;IACL,CAAC;IACDC,SAAS,EAAE,MAAMN,MAAM,IAAI;MACvB,MAAM;QAAEC;MAAK,CAAC,GAAGD,MAAM;MAEvB,MAAM;QAAEP,MAAM;QAAEG;MAAO,CAAC,GAAG,MAAMP,oBAAoB,CAACC,OAAO,CAAC;MAE9D,MAAMY,SAAS,GAAG,MAAM,IAAAC,4BAAa,EAAC;QAClCV,MAAM;QACNG,MAAM;QACNK;MACJ,CAAC,CAAC;MACF,IAAIC,SAAS,CAACE,KAAK,EAAE;QACjB,MAAM,IAAIG,cAAW,CAACL,SAAS,CAACE,KAAK,EAAE,kBAAkB,CAAC;MAC9D;MAEA,MAAMI,QAAQ,GAAG,MAAM,IAAAC,sBAAU,EAAC;QAC9BnB,OAAO;QACPG,MAAM,EAAES,SAAS,CAACT,MAA+B;QACjDG,MAAM,EAAEM,SAAS,CAACN;MACtB,CAAC,CAAC;MAEF,MAAMc,UAAU,GAAGF,QAAQ,CAACZ,MAAM,CAACe,IAAI,CAACC,KAAK,IAAI,CAAC,CAACA,KAAK,CAACR,KAAK,CAAC;MAC/D,MAAMA,KAAK,GAAGI,QAAQ,CAACJ,KAAK,IAAIM,UAAU;MAE1C,OAAO;QACH,GAAGF,QAAQ;QACXH,OAAO,EAAED,KAAK,GAAG,IAAI,GAAG;MAC5B,CAAC;IACL;EACJ,CAAC;AACL,CAAC;AAACS,OAAA,CAAAf,gBAAA,GAAAA,gBAAA"}
@@ -0,0 +1,14 @@
1
+ import { CmsGroupImportResult, CmsModelImportResult, ValidCmsGroupResult, ValidCmsModelResult } from "../../types";
2
+ import { CmsContext } from "../../../types";
3
+ interface Params {
4
+ context: CmsContext;
5
+ groups: ValidCmsGroupResult[];
6
+ models: ValidCmsModelResult[];
7
+ }
8
+ interface Response {
9
+ groups: CmsGroupImportResult[];
10
+ models: CmsModelImportResult[];
11
+ error?: string;
12
+ }
13
+ export declare const importData: (params: Params) => Promise<Response>;
14
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.importData = void 0;
7
+ var _importGroups = require("./importGroups");
8
+ var _importModels = require("./importModels");
9
+ const getGroup = params => {
10
+ const {
11
+ validated,
12
+ imported,
13
+ target
14
+ } = params;
15
+ const group = imported.find(group => {
16
+ return group.group.id === target;
17
+ });
18
+ if (group) {
19
+ return group.group.id;
20
+ }
21
+ const validatedGroup = validated.find(group => {
22
+ return group.group.id === target || group.target === target;
23
+ });
24
+ return validatedGroup?.target || validatedGroup?.group.id;
25
+ };
26
+ const importData = async params => {
27
+ const {
28
+ context
29
+ } = params;
30
+ const groups = await (0, _importGroups.importGroups)(params);
31
+ const models = await (0, _importModels.importModels)({
32
+ context,
33
+ models: params.models.map(model => {
34
+ const group = getGroup({
35
+ validated: params.groups,
36
+ imported: groups,
37
+ target: model.model.group
38
+ });
39
+ return {
40
+ ...model,
41
+ group: group || model.model.group
42
+ };
43
+ })
44
+ });
45
+ return {
46
+ groups,
47
+ models
48
+ };
49
+ };
50
+ exports.importData = importData;
51
+
52
+ //# sourceMappingURL=importData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_importGroups","require","_importModels","getGroup","params","validated","imported","target","group","find","id","validatedGroup","importData","context","groups","importGroups","models","importModels","map","model","exports"],"sources":["importData.ts"],"sourcesContent":["import {\n CmsGroupImportResult,\n CmsModelImportResult,\n ValidCmsGroupResult,\n ValidCmsModelResult\n} from \"~/export/types\";\nimport { CmsContext } from \"~/types\";\nimport { importGroups } from \"./importGroups\";\nimport { importModels } from \"./importModels\";\n\ninterface Params {\n context: CmsContext;\n groups: ValidCmsGroupResult[];\n models: ValidCmsModelResult[];\n}\n\ninterface Response {\n groups: CmsGroupImportResult[];\n models: CmsModelImportResult[];\n error?: string;\n}\n\ninterface GetGroupParams {\n validated: ValidCmsGroupResult[];\n imported: CmsGroupImportResult[];\n target: string;\n}\n\nconst getGroup = (params: GetGroupParams) => {\n const { validated, imported, target } = params;\n const group = imported.find(group => {\n return group.group.id === target;\n });\n if (group) {\n return group.group.id;\n }\n const validatedGroup = validated.find(group => {\n return group.group.id === target || group.target === target;\n });\n return validatedGroup?.target || validatedGroup?.group.id;\n};\n\nexport const importData = async (params: Params): Promise<Response> => {\n const { context } = params;\n\n const groups = await importGroups(params);\n\n const models = await importModels({\n context,\n models: params.models.map(model => {\n const group = getGroup({\n validated: params.groups,\n imported: groups,\n target: model.model.group\n });\n return {\n ...model,\n group: group || model.model.group\n };\n })\n });\n\n return {\n groups,\n models\n };\n};\n"],"mappings":";;;;;;AAOA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAoBA,MAAME,QAAQ,GAAIC,MAAsB,IAAK;EACzC,MAAM;IAAEC,SAAS;IAAEC,QAAQ;IAAEC;EAAO,CAAC,GAAGH,MAAM;EAC9C,MAAMI,KAAK,GAAGF,QAAQ,CAACG,IAAI,CAACD,KAAK,IAAI;IACjC,OAAOA,KAAK,CAACA,KAAK,CAACE,EAAE,KAAKH,MAAM;EACpC,CAAC,CAAC;EACF,IAAIC,KAAK,EAAE;IACP,OAAOA,KAAK,CAACA,KAAK,CAACE,EAAE;EACzB;EACA,MAAMC,cAAc,GAAGN,SAAS,CAACI,IAAI,CAACD,KAAK,IAAI;IAC3C,OAAOA,KAAK,CAACA,KAAK,CAACE,EAAE,KAAKH,MAAM,IAAIC,KAAK,CAACD,MAAM,KAAKA,MAAM;EAC/D,CAAC,CAAC;EACF,OAAOI,cAAc,EAAEJ,MAAM,IAAII,cAAc,EAAEH,KAAK,CAACE,EAAE;AAC7D,CAAC;AAEM,MAAME,UAAU,GAAG,MAAOR,MAAc,IAAwB;EACnE,MAAM;IAAES;EAAQ,CAAC,GAAGT,MAAM;EAE1B,MAAMU,MAAM,GAAG,MAAM,IAAAC,0BAAY,EAACX,MAAM,CAAC;EAEzC,MAAMY,MAAM,GAAG,MAAM,IAAAC,0BAAY,EAAC;IAC9BJ,OAAO;IACPG,MAAM,EAAEZ,MAAM,CAACY,MAAM,CAACE,GAAG,CAACC,KAAK,IAAI;MAC/B,MAAMX,KAAK,GAAGL,QAAQ,CAAC;QACnBE,SAAS,EAAED,MAAM,CAACU,MAAM;QACxBR,QAAQ,EAAEQ,MAAM;QAChBP,MAAM,EAAEY,KAAK,CAACA,KAAK,CAACX;MACxB,CAAC,CAAC;MACF,OAAO;QACH,GAAGW,KAAK;QACRX,KAAK,EAAEA,KAAK,IAAIW,KAAK,CAACA,KAAK,CAACX;MAChC,CAAC;IACL,CAAC;EACL,CAAC,CAAC;EAEF,OAAO;IACHM,MAAM;IACNE;EACJ,CAAC;AACL,CAAC;AAACI,OAAA,CAAAR,UAAA,GAAAA,UAAA"}
@@ -0,0 +1,8 @@
1
+ import { CmsContext } from "../../../types";
2
+ import { CmsGroupImportResult, ValidCmsGroupResult } from "../../types";
3
+ interface Params {
4
+ context: CmsContext;
5
+ groups: ValidCmsGroupResult[];
6
+ }
7
+ export declare const importGroups: (params: Params) => Promise<CmsGroupImportResult[]>;
8
+ export {};
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.importGroups = void 0;
7
+ var _types = require("../../types");
8
+ const importGroups = async params => {
9
+ const {
10
+ context,
11
+ groups
12
+ } = params;
13
+ const results = [];
14
+ for (const group of groups) {
15
+ if (group.action === _types.CmsImportAction.NONE || group.error) {
16
+ results.push({
17
+ action: group.action,
18
+ group: group.group,
19
+ imported: false,
20
+ error: group.error || {
21
+ message: "No action to be ran on the group.",
22
+ code: "NO_ACTION"
23
+ }
24
+ });
25
+ }
26
+ /**
27
+ * Cannot update if the group is created via plugin.
28
+ */
29
+ if (group.action === _types.CmsImportAction.CODE) {
30
+ results.push({
31
+ action: group.action,
32
+ group: group.group,
33
+ imported: true
34
+ });
35
+ continue;
36
+ }
37
+ /**
38
+ * Update the group.
39
+ */
40
+ //
41
+ else if (group.action === _types.CmsImportAction.UPDATE) {
42
+ try {
43
+ const result = await context.cms.updateGroup(group.group.id, {
44
+ ...group.group,
45
+ description: group.group.description || undefined
46
+ });
47
+ results.push({
48
+ action: group.action,
49
+ group: {
50
+ ...result
51
+ },
52
+ imported: true
53
+ });
54
+ } catch (ex) {
55
+ results.push({
56
+ action: group.action,
57
+ group: group.group,
58
+ imported: false,
59
+ error: {
60
+ message: ex.message,
61
+ code: ex.code || "UPDATE_GROUP_ERROR",
62
+ data: {
63
+ ...ex.data,
64
+ group
65
+ }
66
+ }
67
+ });
68
+ }
69
+ continue;
70
+ }
71
+ /**
72
+ * Create the group
73
+ */
74
+ //
75
+ try {
76
+ const result = await context.cms.createGroup(group.group);
77
+ results.push({
78
+ action: group.action,
79
+ group: {
80
+ ...result
81
+ },
82
+ imported: true
83
+ });
84
+ } catch (ex) {
85
+ results.push({
86
+ action: group.action,
87
+ group: group.group,
88
+ imported: false,
89
+ error: {
90
+ message: ex.message,
91
+ code: ex.code || "CREATE_GROUP_ERROR",
92
+ data: {
93
+ ...ex.data,
94
+ group
95
+ }
96
+ }
97
+ });
98
+ }
99
+ }
100
+ return results;
101
+ };
102
+ exports.importGroups = importGroups;
103
+
104
+ //# sourceMappingURL=importGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","importGroups","params","context","groups","results","group","action","CmsImportAction","NONE","error","push","imported","message","code","CODE","UPDATE","result","cms","updateGroup","id","description","undefined","ex","data","createGroup","exports"],"sources":["importGroups.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsGroupImportResult, CmsImportAction, ValidCmsGroupResult } from \"~/export/types\";\n\ninterface Params {\n context: CmsContext;\n groups: ValidCmsGroupResult[];\n}\n\nexport const importGroups = async (params: Params) => {\n const { context, groups } = params;\n\n const results: CmsGroupImportResult[] = [];\n for (const group of groups) {\n if (group.action === CmsImportAction.NONE || group.error) {\n results.push({\n action: group.action,\n group: group.group,\n imported: false,\n error: group.error || {\n message: \"No action to be ran on the group.\",\n code: \"NO_ACTION\"\n }\n });\n }\n /**\n * Cannot update if the group is created via plugin.\n */\n if (group.action === CmsImportAction.CODE) {\n results.push({\n action: group.action,\n group: group.group,\n imported: true\n });\n continue;\n }\n /**\n * Update the group.\n */\n //\n else if (group.action === CmsImportAction.UPDATE) {\n try {\n const result = await context.cms.updateGroup(group.group.id, {\n ...group.group,\n description: group.group.description || undefined\n });\n results.push({\n action: group.action,\n group: {\n ...result\n },\n imported: true\n });\n } catch (ex) {\n results.push({\n action: group.action,\n group: group.group,\n imported: false,\n error: {\n message: ex.message,\n code: ex.code || \"UPDATE_GROUP_ERROR\",\n data: {\n ...ex.data,\n group\n }\n }\n });\n }\n continue;\n }\n /**\n * Create the group\n */\n //\n try {\n const result = await context.cms.createGroup(group.group);\n results.push({\n action: group.action,\n group: {\n ...result\n },\n imported: true\n });\n } catch (ex) {\n results.push({\n action: group.action,\n group: group.group,\n imported: false,\n error: {\n message: ex.message,\n code: ex.code || \"CREATE_GROUP_ERROR\",\n data: {\n ...ex.data,\n group\n }\n }\n });\n }\n }\n\n return results;\n};\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { CmsContext } from "../../../types";
2
+ import { CmsModelImportResult, ValidCmsModelResult } from "../../types";
3
+ interface Params {
4
+ context: CmsContext;
5
+ models: ValidCmsModelResult[];
6
+ }
7
+ export declare const importModels: (params: Params) => Promise<CmsModelImportResult[]>;
8
+ export {};
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.importModels = void 0;
7
+ var _types = require("../../types");
8
+ const importModels = async params => {
9
+ const {
10
+ context,
11
+ models
12
+ } = params;
13
+ const groups = await context.cms.listGroups();
14
+ const results = [];
15
+ for (const model of models) {
16
+ /**
17
+ * There is a possibility that group does not exist.
18
+ */
19
+ const group = groups.find(group => {
20
+ return group.id === model.model.group;
21
+ });
22
+ if (!group) {
23
+ results.push({
24
+ action: model.action,
25
+ model: model.model,
26
+ related: model.related,
27
+ imported: false,
28
+ error: {
29
+ message: `Group "${model.model.group}" does not exist.`,
30
+ code: "GROUP_NOT_FOUND",
31
+ data: {
32
+ model
33
+ }
34
+ }
35
+ });
36
+ continue;
37
+ }
38
+ /**
39
+ * No update action or there is a validation error.
40
+ */
41
+ if (model.action === _types.CmsImportAction.NONE || model.error) {
42
+ results.push({
43
+ action: model.action,
44
+ model: model.model,
45
+ related: model.related,
46
+ imported: false,
47
+ error: model.error || {
48
+ message: "No action to be ran on the model.",
49
+ code: "NO_ACTION"
50
+ }
51
+ });
52
+ continue;
53
+ }
54
+ /**
55
+ * Cannot update a model if it is created via plugin.
56
+ */
57
+ if (model.action === _types.CmsImportAction.CODE) {
58
+ results.push({
59
+ action: model.action,
60
+ model: model.model,
61
+ related: model.related,
62
+ imported: true
63
+ });
64
+ continue;
65
+ }
66
+
67
+ /**
68
+ * Update the model
69
+ */
70
+ //
71
+ if (model.action === _types.CmsImportAction.UPDATE) {
72
+ try {
73
+ const result = await context.cms.updateModel(model.model.modelId, model.model);
74
+ results.push({
75
+ action: model.action,
76
+ model: {
77
+ ...result,
78
+ group: group.id
79
+ },
80
+ related: model.related,
81
+ imported: true
82
+ });
83
+ } catch (ex) {
84
+ results.push({
85
+ action: model.action,
86
+ model: model.model,
87
+ imported: false,
88
+ related: model.related,
89
+ error: {
90
+ message: ex.message,
91
+ code: ex.code || "UPDATE_MODEL_ERROR",
92
+ data: {
93
+ model: model.model,
94
+ ...ex.data
95
+ }
96
+ }
97
+ });
98
+ }
99
+ continue;
100
+ }
101
+ /**
102
+ * Create a new model.
103
+ */
104
+ try {
105
+ const result = await context.cms.createModel(model.model);
106
+ results.push({
107
+ action: model.action,
108
+ model: {
109
+ ...result,
110
+ group: group.id
111
+ },
112
+ related: model.related,
113
+ imported: true
114
+ });
115
+ } catch (ex) {
116
+ results.push({
117
+ action: model.action,
118
+ model: model.model,
119
+ imported: false,
120
+ related: model.related,
121
+ error: {
122
+ message: ex.message,
123
+ code: ex.code || "CREATE_MODEL_ERROR",
124
+ data: {
125
+ model: model.model,
126
+ ...ex.data
127
+ }
128
+ }
129
+ });
130
+ }
131
+ }
132
+ return results;
133
+ };
134
+ exports.importModels = importModels;
135
+
136
+ //# sourceMappingURL=importModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_types","require","importModels","params","context","models","groups","cms","listGroups","results","model","group","find","id","push","action","related","imported","error","message","code","data","CmsImportAction","NONE","CODE","UPDATE","result","updateModel","modelId","ex","createModel","exports"],"sources":["importModels.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsImportAction, CmsModelImportResult, ValidCmsModelResult } from \"~/export/types\";\n\ninterface Params {\n context: CmsContext;\n models: ValidCmsModelResult[];\n}\n\nexport const importModels = async (params: Params) => {\n const { context, models } = params;\n\n const groups = await context.cms.listGroups();\n\n const results: CmsModelImportResult[] = [];\n\n for (const model of models) {\n /**\n * There is a possibility that group does not exist.\n */\n const group = groups.find(group => {\n return group.id === model.model.group;\n });\n if (!group) {\n results.push({\n action: model.action,\n model: model.model,\n related: model.related,\n imported: false,\n error: {\n message: `Group \"${model.model.group}\" does not exist.`,\n code: \"GROUP_NOT_FOUND\",\n data: {\n model\n }\n }\n });\n continue;\n }\n /**\n * No update action or there is a validation error.\n */\n if (model.action === CmsImportAction.NONE || model.error) {\n results.push({\n action: model.action,\n model: model.model,\n related: model.related,\n imported: false,\n error: model.error || {\n message: \"No action to be ran on the model.\",\n code: \"NO_ACTION\"\n }\n });\n continue;\n }\n /**\n * Cannot update a model if it is created via plugin.\n */\n if (model.action === CmsImportAction.CODE) {\n results.push({\n action: model.action,\n model: model.model,\n related: model.related,\n imported: true\n });\n continue;\n }\n\n /**\n * Update the model\n */\n //\n if (model.action === CmsImportAction.UPDATE) {\n try {\n const result = await context.cms.updateModel(model.model.modelId, model.model);\n results.push({\n action: model.action,\n model: {\n ...result,\n group: group.id\n },\n related: model.related,\n imported: true\n });\n } catch (ex) {\n results.push({\n action: model.action,\n model: model.model,\n imported: false,\n related: model.related,\n error: {\n message: ex.message,\n code: ex.code || \"UPDATE_MODEL_ERROR\",\n data: {\n model: model.model,\n ...ex.data\n }\n }\n });\n }\n continue;\n }\n /**\n * Create a new model.\n */\n try {\n const result = await context.cms.createModel(model.model);\n results.push({\n action: model.action,\n model: {\n ...result,\n group: group.id\n },\n related: model.related,\n imported: true\n });\n } catch (ex) {\n results.push({\n action: model.action,\n model: model.model,\n imported: false,\n related: model.related,\n error: {\n message: ex.message,\n code: ex.code || \"CREATE_MODEL_ERROR\",\n data: {\n model: model.model,\n ...ex.data\n }\n }\n });\n }\n }\n\n return results;\n};\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { CmsGroup } from "../../../types";
2
+ import { ValidatedCmsGroupResult } from "../../types";
3
+ interface Params {
4
+ groups: Pick<CmsGroup, "id" | "slug" | "isPlugin">[];
5
+ input: Partial<CmsGroup>[];
6
+ }
7
+ export declare const validateGroups: (params: Params) => Promise<ValidatedCmsGroupResult[]>;
8
+ export {};
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateGroups = void 0;
7
+ var _validation = require("../../../crud/contentModelGroup/validation");
8
+ var _utils = require("@webiny/utils");
9
+ var _types = require("../../types");
10
+ const validateGroups = async params => {
11
+ const {
12
+ groups,
13
+ input
14
+ } = params;
15
+ const validation = (0, _validation.createGroupCreateValidation)();
16
+ return await Promise.all(input.map(async group => {
17
+ const result = await validation.safeParseAsync(group);
18
+ if (!result.success) {
19
+ const error = (0, _utils.createZodError)(result.error);
20
+ return {
21
+ group: group,
22
+ action: _types.CmsImportAction.NONE,
23
+ error: {
24
+ message: error.message,
25
+ code: error.code,
26
+ data: error.data
27
+ }
28
+ };
29
+ }
30
+ const data = result.data;
31
+ if (!data.id) {
32
+ return {
33
+ group: data,
34
+ action: _types.CmsImportAction.NONE,
35
+ error: {
36
+ message: `Group is missing ID.`,
37
+ code: "GROUP_ID_MISSING"
38
+ }
39
+ };
40
+ }
41
+ if (!data.slug) {
42
+ return {
43
+ group: data,
44
+ action: _types.CmsImportAction.NONE,
45
+ error: {
46
+ message: `Group is missing slug.`,
47
+ code: "GROUP_SLUG_MISSING"
48
+ }
49
+ };
50
+ }
51
+ const isPluginGroup = groups.some(g => {
52
+ if (!g.isPlugin) {
53
+ return false;
54
+ }
55
+ return g.id === data.id || g.slug === data.slug;
56
+ });
57
+ if (isPluginGroup) {
58
+ return {
59
+ group: data,
60
+ action: _types.CmsImportAction.CODE,
61
+ error: {
62
+ message: `Group already exists, but it is a plugin group - cannot be updated.`,
63
+ code: "GROUP_IS_PLUGIN"
64
+ }
65
+ };
66
+ }
67
+ const canBeUpdated = groups.some(g => {
68
+ return g.id === data.id && g.slug === data.slug;
69
+ });
70
+ if (canBeUpdated) {
71
+ return {
72
+ group: data,
73
+ action: _types.CmsImportAction.UPDATE
74
+ };
75
+ }
76
+ const groupWithIdExists = groups.some(g => g.id === data.id);
77
+ if (groupWithIdExists) {
78
+ return {
79
+ group: data,
80
+ action: _types.CmsImportAction.NONE,
81
+ error: {
82
+ message: `Group with ID "${data.id}" already exists. Cannot update it because the slug is different.`,
83
+ code: "GROUP_ID_EXISTS"
84
+ }
85
+ };
86
+ }
87
+ const groupWithSlugExists = groups.find(g => g.slug === data.slug);
88
+ if (groupWithSlugExists) {
89
+ /**
90
+ * If group with given slug already exists, we will map the ID to the existing group.
91
+ *
92
+ * We will also point all models from the imported group to the existing group.
93
+ * We will not update the existing group.
94
+ */
95
+ return {
96
+ group: {
97
+ ...data,
98
+ id: groupWithSlugExists.id
99
+ },
100
+ target: data.id,
101
+ action: _types.CmsImportAction.NONE
102
+ };
103
+ }
104
+ return {
105
+ group: data,
106
+ action: _types.CmsImportAction.CREATE
107
+ };
108
+ }));
109
+ };
110
+ exports.validateGroups = validateGroups;
111
+
112
+ //# sourceMappingURL=validateGroups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_validation","require","_utils","_types","validateGroups","params","groups","input","validation","createGroupCreateValidation","Promise","all","map","group","result","safeParseAsync","success","error","createZodError","action","CmsImportAction","NONE","message","code","data","id","slug","isPluginGroup","some","g","isPlugin","CODE","canBeUpdated","UPDATE","groupWithIdExists","groupWithSlugExists","find","target","CREATE","exports"],"sources":["validateGroups.ts"],"sourcesContent":["import { CmsGroup } from \"~/types\";\nimport { createGroupCreateValidation } from \"~/crud/contentModelGroup/validation\";\nimport { createZodError } from \"@webiny/utils\";\nimport { CmsImportAction, ValidatedCmsGroupResult } from \"~/export/types\";\n\ninterface Params {\n groups: Pick<CmsGroup, \"id\" | \"slug\" | \"isPlugin\">[];\n input: Partial<CmsGroup>[];\n}\n\nexport const validateGroups = async (params: Params): Promise<ValidatedCmsGroupResult[]> => {\n const { groups, input } = params;\n\n const validation = createGroupCreateValidation();\n\n return await Promise.all(\n input.map(async (group): Promise<ValidatedCmsGroupResult> => {\n const result = await validation.safeParseAsync(group);\n if (!result.success) {\n const error = createZodError(result.error);\n return {\n group: group as CmsGroup,\n action: CmsImportAction.NONE,\n error: {\n message: error.message,\n code: error.code,\n data: error.data\n }\n };\n }\n const data = result.data as CmsGroup;\n if (!data.id) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group is missing ID.`,\n code: \"GROUP_ID_MISSING\"\n }\n };\n }\n if (!data.slug) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group is missing slug.`,\n code: \"GROUP_SLUG_MISSING\"\n }\n };\n }\n\n const isPluginGroup = groups.some(g => {\n if (!g.isPlugin) {\n return false;\n }\n return g.id === data.id || g.slug === data.slug;\n });\n if (isPluginGroup) {\n return {\n group: data,\n action: CmsImportAction.CODE,\n error: {\n message: `Group already exists, but it is a plugin group - cannot be updated.`,\n code: \"GROUP_IS_PLUGIN\"\n }\n };\n }\n\n const canBeUpdated = groups.some(g => {\n return g.id === data.id && g.slug === data.slug;\n });\n if (canBeUpdated) {\n return {\n group: data,\n action: CmsImportAction.UPDATE\n };\n }\n\n const groupWithIdExists = groups.some(g => g.id === data.id);\n if (groupWithIdExists) {\n return {\n group: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Group with ID \"${data.id}\" already exists. Cannot update it because the slug is different.`,\n code: \"GROUP_ID_EXISTS\"\n }\n };\n }\n\n const groupWithSlugExists = groups.find(g => g.slug === data.slug);\n if (groupWithSlugExists) {\n /**\n * If group with given slug already exists, we will map the ID to the existing group.\n *\n * We will also point all models from the imported group to the existing group.\n * We will not update the existing group.\n */\n return {\n group: {\n ...data,\n id: groupWithSlugExists.id\n },\n target: data.id,\n action: CmsImportAction.NONE\n };\n }\n\n return {\n group: data,\n action: CmsImportAction.CREATE\n };\n })\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { CmsGroup, CmsModel } from "../../../types";
2
+ import { CmsImportStructureParamsData, ValidatedCmsGroupResult, ValidatedCmsModelResult } from "../../types";
3
+ interface Params {
4
+ groups: CmsGroup[];
5
+ models: CmsModel[];
6
+ data: CmsImportStructureParamsData;
7
+ }
8
+ interface ValidResponse {
9
+ groups: ValidatedCmsGroupResult[];
10
+ models: ValidatedCmsModelResult[];
11
+ error?: never;
12
+ }
13
+ interface InvalidResponse {
14
+ groups: ValidatedCmsGroupResult[];
15
+ models: ValidatedCmsModelResult[];
16
+ error?: string;
17
+ }
18
+ export declare const validateInput: (params: Params) => Promise<ValidResponse | InvalidResponse>;
19
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateInput = void 0;
7
+ var _validateGroups = require("./validateGroups");
8
+ var _validateModels = require("./validateModels");
9
+ const validateInput = async params => {
10
+ const {
11
+ groups,
12
+ models,
13
+ data
14
+ } = params;
15
+ const validatedGroups = await (0, _validateGroups.validateGroups)({
16
+ groups,
17
+ input: data.groups
18
+ });
19
+ const inputGroups = validatedGroups.reduce((collection, data) => {
20
+ if (!data.group?.id) {
21
+ return collection;
22
+ }
23
+ collection.push({
24
+ id: data.group.id,
25
+ target: data.target || data.group.id,
26
+ slug: data.group.slug
27
+ });
28
+ return collection;
29
+ }, groups.map(g => {
30
+ return {
31
+ id: g.id,
32
+ target: g.id,
33
+ slug: g.slug
34
+ };
35
+ }));
36
+ const validatedModels = await (0, _validateModels.validateModels)({
37
+ groups: inputGroups,
38
+ models,
39
+ input: data.models
40
+ });
41
+ if (validatedModels.length === 0) {
42
+ return {
43
+ groups: validatedGroups,
44
+ models: validatedModels,
45
+ error: "No models to import."
46
+ };
47
+ }
48
+ return {
49
+ groups: validatedGroups,
50
+ models: validatedModels
51
+ };
52
+ };
53
+ exports.validateInput = validateInput;
54
+
55
+ //# sourceMappingURL=validateInput.js.map