@webiny/api-headless-cms 0.0.0-unstable.d7f521b032 → 0.0.0-unstable.de38392959

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 (568) hide show
  1. package/constants.d.ts +32 -0
  2. package/constants.js +57 -0
  3. package/constants.js.map +1 -0
  4. package/context.js +88 -47
  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.d.ts +1 -1
  43. package/crud/contentEntry/markLockedFields.js +20 -10
  44. package/crud/contentEntry/markLockedFields.js.map +1 -1
  45. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  46. package/crud/contentEntry/referenceFieldsMapping.js +142 -90
  47. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  48. package/crud/contentEntry/searchableFields.js +5 -4
  49. package/crud/contentEntry/searchableFields.js.map +1 -1
  50. package/crud/contentEntry.crud.d.ts +9 -5
  51. package/crud/contentEntry.crud.js +1093 -981
  52. package/crud/contentEntry.crud.js.map +1 -1
  53. package/crud/contentModel/beforeCreate.d.ts +1 -1
  54. package/crud/contentModel/beforeCreate.js +50 -85
  55. package/crud/contentModel/beforeCreate.js.map +1 -1
  56. package/crud/contentModel/beforeDelete.d.ts +1 -1
  57. package/crud/contentModel/beforeDelete.js +4 -6
  58. package/crud/contentModel/beforeDelete.js.map +1 -1
  59. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  60. package/crud/contentModel/beforeUpdate.js +31 -6
  61. package/crud/contentModel/beforeUpdate.js.map +1 -1
  62. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  63. package/crud/contentModel/compatibility/modelApiName.js +26 -0
  64. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  65. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  66. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  67. package/crud/contentModel/createFieldStorageId.js +3 -1
  68. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  69. package/crud/contentModel/defaultFields.d.ts +5 -0
  70. package/crud/contentModel/defaultFields.js +60 -0
  71. package/crud/contentModel/defaultFields.js.map +1 -0
  72. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  73. package/crud/contentModel/ensureTypeTag.js +21 -0
  74. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  75. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  76. package/crud/contentModel/fields/descriptionField.js +44 -0
  77. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  78. package/crud/contentModel/fields/imageField.d.ts +2 -0
  79. package/crud/contentModel/fields/imageField.js +44 -0
  80. package/crud/contentModel/fields/imageField.js.map +1 -0
  81. package/crud/contentModel/fields/titleField.d.ts +2 -0
  82. package/crud/contentModel/fields/titleField.js +60 -0
  83. package/crud/contentModel/fields/titleField.js.map +1 -0
  84. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  85. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  86. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  87. package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
  88. package/crud/contentModel/validate/endingAllowed.js +28 -0
  89. package/crud/contentModel/validate/endingAllowed.js.map +1 -0
  90. package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
  91. package/crud/contentModel/validate/isModelEndingAllowed.js +26 -0
  92. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
  93. package/crud/contentModel/validate/modelId.d.ts +11 -0
  94. package/crud/contentModel/validate/modelId.js +38 -0
  95. package/crud/contentModel/validate/modelId.js.map +1 -0
  96. package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
  97. package/crud/contentModel/validate/pluralApiName.js +26 -0
  98. package/crud/contentModel/validate/pluralApiName.js.map +1 -0
  99. package/crud/contentModel/validate/singularApiName.d.ts +7 -0
  100. package/crud/contentModel/validate/singularApiName.js +26 -0
  101. package/crud/contentModel/validate/singularApiName.js.map +1 -0
  102. package/crud/contentModel/validateModel.d.ts +1 -0
  103. package/crud/contentModel/validateModel.js +3 -1
  104. package/crud/contentModel/validateModel.js.map +1 -1
  105. package/crud/contentModel/validateModelFields.d.ts +2 -1
  106. package/crud/contentModel/validateModelFields.js +27 -64
  107. package/crud/contentModel/validateModelFields.js.map +1 -1
  108. package/crud/contentModel/validation.d.ts +595 -200
  109. package/crud/contentModel/validation.js +125 -17
  110. package/crud/contentModel/validation.js.map +1 -1
  111. package/crud/contentModel.crud.d.ts +2 -0
  112. package/crud/contentModel.crud.js +437 -411
  113. package/crud/contentModel.crud.js.map +1 -1
  114. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  115. package/crud/contentModelGroup/beforeCreate.js +15 -1
  116. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  117. package/crud/contentModelGroup/beforeDelete.js +3 -1
  118. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  119. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  120. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  121. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  122. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  123. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  124. package/crud/contentModelGroup/validation.d.ts +10 -7
  125. package/crud/contentModelGroup/validation.js +5 -2
  126. package/crud/contentModelGroup/validation.js.map +1 -1
  127. package/crud/contentModelGroup.crud.d.ts +3 -1
  128. package/crud/contentModelGroup.crud.js +272 -228
  129. package/crud/contentModelGroup.crud.js.map +1 -1
  130. package/crud/system.crud.js +8 -71
  131. package/crud/system.crud.js.map +1 -1
  132. package/export/crud/exporting.d.ts +3 -0
  133. package/export/crud/exporting.js +49 -0
  134. package/export/crud/exporting.js.map +1 -0
  135. package/export/crud/importing.d.ts +3 -0
  136. package/export/crud/importing.js +79 -0
  137. package/export/crud/importing.js.map +1 -0
  138. package/export/crud/imports/importData.d.ts +14 -0
  139. package/export/crud/imports/importData.js +52 -0
  140. package/export/crud/imports/importData.js.map +1 -0
  141. package/export/crud/imports/importGroups.d.ts +8 -0
  142. package/export/crud/imports/importGroups.js +104 -0
  143. package/export/crud/imports/importGroups.js.map +1 -0
  144. package/export/crud/imports/importModels.d.ts +8 -0
  145. package/export/crud/imports/importModels.js +136 -0
  146. package/export/crud/imports/importModels.js.map +1 -0
  147. package/export/crud/imports/validateGroups.d.ts +8 -0
  148. package/export/crud/imports/validateGroups.js +112 -0
  149. package/export/crud/imports/validateGroups.js.map +1 -0
  150. package/export/crud/imports/validateInput.d.ts +19 -0
  151. package/export/crud/imports/validateInput.js +55 -0
  152. package/export/crud/imports/validateInput.js.map +1 -0
  153. package/export/crud/imports/validateModels.d.ts +12 -0
  154. package/export/crud/imports/validateModels.js +203 -0
  155. package/export/crud/imports/validateModels.js.map +1 -0
  156. package/export/crud/index.d.ts +4 -0
  157. package/export/crud/index.js +15 -0
  158. package/export/crud/index.js.map +1 -0
  159. package/export/crud/sanitize.d.ts +4 -0
  160. package/export/crud/sanitize.js +35 -0
  161. package/export/crud/sanitize.js.map +1 -0
  162. package/export/graphql/index.d.ts +3 -0
  163. package/export/graphql/index.js +188 -0
  164. package/export/graphql/index.js.map +1 -0
  165. package/export/index.d.ts +2 -0
  166. package/export/index.js +29 -0
  167. package/export/index.js.map +1 -0
  168. package/export/types.d.ts +113 -0
  169. package/export/types.js +22 -0
  170. package/export/types.js.map +1 -0
  171. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  172. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  173. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
  174. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  175. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
  176. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  177. package/fieldConverters/index.js +3 -1
  178. package/fieldConverters/index.js.map +1 -1
  179. package/graphql/buildSchemaPlugins.js +7 -1
  180. package/graphql/buildSchemaPlugins.js.map +1 -1
  181. package/graphql/checkEndpointAccess.d.ts +2 -0
  182. package/graphql/checkEndpointAccess.js +20 -0
  183. package/graphql/checkEndpointAccess.js.map +1 -0
  184. package/graphql/createExecutableSchema.d.ts +2 -3
  185. package/graphql/createExecutableSchema.js +3 -1
  186. package/graphql/createExecutableSchema.js.map +1 -1
  187. package/graphql/createRequestBody.d.ts +2 -0
  188. package/graphql/createRequestBody.js +16 -0
  189. package/graphql/createRequestBody.js.map +1 -0
  190. package/graphql/formatErrorPayload.d.ts +1 -0
  191. package/graphql/formatErrorPayload.js +27 -0
  192. package/graphql/formatErrorPayload.js.map +1 -0
  193. package/graphql/generateSchema.js +3 -1
  194. package/graphql/generateSchema.js.map +1 -1
  195. package/graphql/getSchema.d.ts +16 -0
  196. package/graphql/getSchema.js +118 -0
  197. package/graphql/getSchema.js.map +1 -0
  198. package/graphql/graphQLHandlerFactory.js +9 -146
  199. package/graphql/graphQLHandlerFactory.js.map +1 -1
  200. package/graphql/handleRequest.d.ts +11 -0
  201. package/graphql/handleRequest.js +79 -0
  202. package/graphql/handleRequest.js.map +1 -0
  203. package/graphql/index.d.ts +1 -1
  204. package/graphql/index.js +4 -2
  205. package/graphql/index.js.map +1 -1
  206. package/graphql/schema/baseContentSchema.js +10 -15
  207. package/graphql/schema/baseContentSchema.js.map +1 -1
  208. package/graphql/schema/baseSchema.d.ts +2 -3
  209. package/graphql/schema/baseSchema.js +95 -2
  210. package/graphql/schema/baseSchema.js.map +1 -1
  211. package/graphql/schema/contentEntries.js +134 -59
  212. package/graphql/schema/contentEntries.js.map +1 -1
  213. package/graphql/schema/contentModelGroups.js +12 -9
  214. package/graphql/schema/contentModelGroups.js.map +1 -1
  215. package/graphql/schema/contentModels.js +33 -14
  216. package/graphql/schema/contentModels.js.map +1 -1
  217. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  218. package/graphql/schema/createFieldResolvers.js +18 -22
  219. package/graphql/schema/createFieldResolvers.js.map +1 -1
  220. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  221. package/graphql/schema/createFieldTypePluginRecords.js +15 -0
  222. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  223. package/graphql/schema/createManageResolvers.d.ts +1 -1
  224. package/graphql/schema/createManageResolvers.js +60 -27
  225. package/graphql/schema/createManageResolvers.js.map +1 -1
  226. package/graphql/schema/createManageSDL.d.ts +1 -0
  227. package/graphql/schema/createManageSDL.js +116 -69
  228. package/graphql/schema/createManageSDL.js.map +1 -1
  229. package/graphql/schema/createPreviewResolvers.js +10 -13
  230. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  231. package/graphql/schema/createReadResolvers.js +11 -14
  232. package/graphql/schema/createReadResolvers.js.map +1 -1
  233. package/graphql/schema/createReadSDL.d.ts +1 -0
  234. package/graphql/schema/createReadSDL.js +51 -38
  235. package/graphql/schema/createReadSDL.js.map +1 -1
  236. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  237. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  238. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  239. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  240. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  241. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  242. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  243. package/graphql/schema/resolvers/manage/resolveDelete.js +16 -4
  244. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  245. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  246. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +22 -0
  247. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  248. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  249. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  250. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  251. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  252. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  253. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  254. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  255. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +20 -0
  256. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  257. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  258. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  259. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  260. package/graphql/schema/resolvers/manage/resolveMove.js +27 -0
  261. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  262. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  263. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  264. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  265. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  266. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  267. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  268. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  269. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  270. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  271. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  272. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  273. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  274. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  275. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  276. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  277. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  278. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  279. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  280. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  281. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  282. package/graphql/schema/schemaPlugins.js +10 -17
  283. package/graphql/schema/schemaPlugins.js.map +1 -1
  284. package/graphql/system.d.ts +2 -5
  285. package/graphql/system.js +4 -28
  286. package/graphql/system.js.map +1 -1
  287. package/graphqlFields/boolean.js +3 -1
  288. package/graphqlFields/boolean.js.map +1 -1
  289. package/graphqlFields/datetime.js +5 -5
  290. package/graphqlFields/datetime.js.map +1 -1
  291. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  292. package/graphqlFields/dynamicZone/dynamicZoneField.js +86 -28
  293. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  294. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
  295. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  296. package/graphqlFields/dynamicZone/index.js +3 -1
  297. package/graphqlFields/dynamicZone/index.js.map +1 -1
  298. package/graphqlFields/file.js +3 -1
  299. package/graphqlFields/file.js.map +1 -1
  300. package/graphqlFields/helpers.d.ts +0 -1
  301. package/graphqlFields/helpers.js +6 -18
  302. package/graphqlFields/helpers.js.map +1 -1
  303. package/graphqlFields/index.js +5 -2
  304. package/graphqlFields/index.js.map +1 -1
  305. package/graphqlFields/json.d.ts +2 -0
  306. package/graphqlFields/json.js +49 -0
  307. package/graphqlFields/json.js.map +1 -0
  308. package/graphqlFields/longText.js +14 -3
  309. package/graphqlFields/longText.js.map +1 -1
  310. package/graphqlFields/number.js +4 -1
  311. package/graphqlFields/number.js.map +1 -1
  312. package/graphqlFields/object.js +33 -34
  313. package/graphqlFields/object.js.map +1 -1
  314. package/graphqlFields/ref.js +68 -28
  315. package/graphqlFields/ref.js.map +1 -1
  316. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  317. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  318. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  319. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  320. package/graphqlFields/richText/richTextResolver.js +39 -0
  321. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  322. package/graphqlFields/richText.js +11 -3
  323. package/graphqlFields/richText.js.map +1 -1
  324. package/graphqlFields/text.js +5 -1
  325. package/graphqlFields/text.js.map +1 -1
  326. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  327. package/htmlRenderer/LexicalRenderer.js +28 -0
  328. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  329. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  330. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  331. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  332. package/index.d.ts +5 -2
  333. package/index.js +44 -6
  334. package/index.js.map +1 -1
  335. package/modelManager/DefaultCmsModelManager.js +3 -5
  336. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  337. package/modelManager/index.js +3 -1
  338. package/modelManager/index.js.map +1 -1
  339. package/package.json +36 -40
  340. package/parameters/context.js +4 -2
  341. package/parameters/context.js.map +1 -1
  342. package/parameters/header.js +7 -6
  343. package/parameters/header.js.map +1 -1
  344. package/parameters/index.js +3 -1
  345. package/parameters/index.js.map +1 -1
  346. package/parameters/manual.js +9 -4
  347. package/parameters/manual.js.map +1 -1
  348. package/parameters/path.js +4 -3
  349. package/parameters/path.js.map +1 -1
  350. package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
  351. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  352. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  353. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  354. package/plugins/CmsGroupPlugin.d.ts +6 -3
  355. package/plugins/CmsGroupPlugin.js +8 -6
  356. package/plugins/CmsGroupPlugin.js.map +1 -1
  357. package/plugins/CmsModelFieldConverterPlugin.js +5 -4
  358. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  359. package/plugins/CmsModelPlugin.d.ts +25 -5
  360. package/plugins/CmsModelPlugin.js +75 -20
  361. package/plugins/CmsModelPlugin.js.map +1 -1
  362. package/plugins/CmsParametersPlugin.js +7 -4
  363. package/plugins/CmsParametersPlugin.js.map +1 -1
  364. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  365. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  366. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  367. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  368. package/plugins/StorageOperationsCmsModelPlugin.js +41 -0
  369. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  370. package/plugins/StorageTransformPlugin.d.ts +2 -2
  371. package/plugins/StorageTransformPlugin.js +3 -4
  372. package/plugins/StorageTransformPlugin.js.map +1 -1
  373. package/plugins/index.d.ts +2 -0
  374. package/plugins/index.js +25 -1
  375. package/plugins/index.js.map +1 -1
  376. package/storage/default.js +3 -1
  377. package/storage/default.js.map +1 -1
  378. package/storage/index.d.ts +1 -0
  379. package/storage/index.js +15 -0
  380. package/storage/index.js.map +1 -0
  381. package/storage/json.d.ts +2 -0
  382. package/storage/json.js +27 -0
  383. package/storage/json.js.map +1 -0
  384. package/storage/object.js +8 -8
  385. package/storage/object.js.map +1 -1
  386. package/types.d.ts +510 -334
  387. package/types.js +21 -21
  388. package/types.js.map +1 -1
  389. package/utils/access.d.ts +9 -8
  390. package/utils/access.js +12 -62
  391. package/utils/access.js.map +1 -1
  392. package/utils/caching/Cache.d.ts +2 -0
  393. package/utils/caching/Cache.js +51 -0
  394. package/utils/caching/Cache.js.map +1 -0
  395. package/utils/caching/CacheKey.d.ts +2 -0
  396. package/utils/caching/CacheKey.js +40 -0
  397. package/utils/caching/CacheKey.js.map +1 -0
  398. package/utils/caching/index.d.ts +2 -0
  399. package/utils/caching/index.js +29 -0
  400. package/utils/caching/index.js.map +1 -0
  401. package/utils/caching/types.d.ts +11 -0
  402. package/utils/caching/types.js +7 -0
  403. package/utils/caching/types.js.map +1 -0
  404. package/utils/converters/Converter.js +4 -5
  405. package/utils/converters/Converter.js.map +1 -1
  406. package/utils/converters/ConverterCollection.js +13 -7
  407. package/utils/converters/ConverterCollection.js.map +1 -1
  408. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  409. package/utils/converters/valueKeyStorageConverter.js +34 -21
  410. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  411. package/utils/createTypeFromFields.d.ts +1 -0
  412. package/utils/createTypeFromFields.js +14 -7
  413. package/utils/createTypeFromFields.js.map +1 -1
  414. package/utils/createTypeName.d.ts +0 -2
  415. package/utils/createTypeName.js +3 -9
  416. package/utils/createTypeName.js.map +1 -1
  417. package/utils/date.d.ts +10 -0
  418. package/utils/date.js +36 -0
  419. package/utils/date.js.map +1 -0
  420. package/utils/entryStorage.d.ts +4 -4
  421. package/utils/entryStorage.js +6 -4
  422. package/utils/entryStorage.js.map +1 -1
  423. package/utils/filterAsync.js +9 -8
  424. package/utils/filterAsync.js.map +1 -1
  425. package/utils/getBaseFieldType.d.ts +1 -3
  426. package/utils/getBaseFieldType.js +3 -1
  427. package/utils/getBaseFieldType.js.map +1 -1
  428. package/utils/getEntryDescription.d.ts +2 -0
  429. package/utils/getEntryDescription.js +19 -0
  430. package/utils/getEntryDescription.js.map +1 -0
  431. package/utils/getEntryImage.d.ts +2 -0
  432. package/utils/getEntryImage.js +19 -0
  433. package/utils/getEntryImage.js.map +1 -0
  434. package/utils/getEntryTitle.d.ts +1 -1
  435. package/utils/getEntryTitle.js +3 -1
  436. package/utils/getEntryTitle.js.map +1 -1
  437. package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
  438. package/utils/getSchemaFromFieldPlugins.js +22 -4
  439. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  440. package/utils/identity.d.ts +2 -0
  441. package/utils/identity.js +20 -0
  442. package/utils/identity.js.map +1 -0
  443. package/utils/incrementEntryIdVersion.d.ts +5 -0
  444. package/utils/incrementEntryIdVersion.js +31 -0
  445. package/utils/incrementEntryIdVersion.js.map +1 -0
  446. package/utils/index.d.ts +1 -0
  447. package/utils/index.js +18 -0
  448. package/utils/index.js.map +1 -0
  449. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  450. package/utils/permissions/EntriesPermissions.js +11 -0
  451. package/utils/permissions/EntriesPermissions.js.map +1 -0
  452. package/utils/permissions/ModelGroupsPermissions.d.ts +9 -0
  453. package/utils/permissions/ModelGroupsPermissions.js +50 -0
  454. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  455. package/utils/permissions/ModelsPermissions.d.ts +22 -0
  456. package/utils/permissions/ModelsPermissions.js +90 -0
  457. package/utils/permissions/ModelsPermissions.js.map +1 -0
  458. package/utils/renderFields.d.ts +4 -2
  459. package/utils/renderFields.js +13 -3
  460. package/utils/renderFields.js.map +1 -1
  461. package/utils/renderGetFilterFields.d.ts +2 -2
  462. package/utils/renderGetFilterFields.js +9 -21
  463. package/utils/renderGetFilterFields.js.map +1 -1
  464. package/utils/renderInputFields.d.ts +4 -2
  465. package/utils/renderInputFields.js +20 -6
  466. package/utils/renderInputFields.js.map +1 -1
  467. package/utils/renderListFilterFields.d.ts +3 -1
  468. package/utils/renderListFilterFields.js +25 -22
  469. package/utils/renderListFilterFields.js.map +1 -1
  470. package/utils/renderSortEnum.d.ts +3 -2
  471. package/utils/renderSortEnum.js +10 -3
  472. package/utils/renderSortEnum.js.map +1 -1
  473. package/utils/toSlug.js +3 -1
  474. package/utils/toSlug.js.map +1 -1
  475. package/validators/dateGte.js +3 -1
  476. package/validators/dateGte.js.map +1 -1
  477. package/validators/dateLte.js +3 -1
  478. package/validators/dateLte.js.map +1 -1
  479. package/validators/gte.js +4 -3
  480. package/validators/gte.js.map +1 -1
  481. package/validators/in.js +4 -3
  482. package/validators/in.js.map +1 -1
  483. package/validators/index.js +4 -3
  484. package/validators/index.js.map +1 -1
  485. package/validators/lte.js +4 -3
  486. package/validators/lte.js.map +1 -1
  487. package/validators/maxLength.js +4 -3
  488. package/validators/maxLength.js.map +1 -1
  489. package/validators/minLength.js +4 -3
  490. package/validators/minLength.js.map +1 -1
  491. package/validators/pattern.js +5 -3
  492. package/validators/pattern.js.map +1 -1
  493. package/validators/patternPlugins/email.js +3 -1
  494. package/validators/patternPlugins/email.js.map +1 -1
  495. package/validators/patternPlugins/index.js +3 -1
  496. package/validators/patternPlugins/index.js.map +1 -1
  497. package/validators/patternPlugins/lowerCase.js +3 -1
  498. package/validators/patternPlugins/lowerCase.js.map +1 -1
  499. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  500. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  501. package/validators/patternPlugins/upperCase.js +3 -1
  502. package/validators/patternPlugins/upperCase.js.map +1 -1
  503. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  504. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  505. package/validators/patternPlugins/url.js +3 -1
  506. package/validators/patternPlugins/url.js.map +1 -1
  507. package/validators/required.js +3 -1
  508. package/validators/required.js.map +1 -1
  509. package/validators/timeGte.js +4 -3
  510. package/validators/timeGte.js.map +1 -1
  511. package/validators/timeLte.js +4 -3
  512. package/validators/timeLte.js.map +1 -1
  513. package/validators/unique.js +4 -2
  514. package/validators/unique.js.map +1 -1
  515. package/crud/contentModel/afterCreate.d.ts +0 -8
  516. package/crud/contentModel/afterCreate.js +0 -16
  517. package/crud/contentModel/afterCreate.js.map +0 -1
  518. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  519. package/crud/contentModel/afterCreateFrom.js +0 -16
  520. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  521. package/crud/contentModel/afterDelete.d.ts +0 -8
  522. package/crud/contentModel/afterDelete.js +0 -16
  523. package/crud/contentModel/afterDelete.js.map +0 -1
  524. package/crud/contentModel/afterUpdate.d.ts +0 -8
  525. package/crud/contentModel/afterUpdate.js +0 -16
  526. package/crud/contentModel/afterUpdate.js.map +0 -1
  527. package/crud/contentModel/createFieldModels.d.ts +0 -2
  528. package/crud/contentModel/createFieldModels.js +0 -26
  529. package/crud/contentModel/createFieldModels.js.map +0 -1
  530. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  531. package/crud/contentModel/fieldIdValidation.js +0 -25
  532. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  533. package/crud/contentModel/idValidation.d.ts +0 -1
  534. package/crud/contentModel/idValidation.js +0 -22
  535. package/crud/contentModel/idValidation.js.map +0 -1
  536. package/crud/contentModel/models.d.ts +0 -4
  537. package/crud/contentModel/models.js +0 -192
  538. package/crud/contentModel/models.js.map +0 -1
  539. package/crud/contentModel/systemFields.d.ts +0 -1
  540. package/crud/contentModel/systemFields.js +0 -8
  541. package/crud/contentModel/systemFields.js.map +0 -1
  542. package/crud/contentModel/validateLayout.d.ts +0 -2
  543. package/crud/contentModel/validateLayout.js +0 -28
  544. package/crud/contentModel/validateLayout.js.map +0 -1
  545. package/crud/settings.crud.d.ts +0 -10
  546. package/crud/settings.crud.js +0 -71
  547. package/crud/settings.crud.js.map +0 -1
  548. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -6
  549. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -12
  550. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  551. package/upgrades/5.33.0/index.d.ts +0 -3
  552. package/upgrades/5.33.0/index.js +0 -159
  553. package/upgrades/5.33.0/index.js.map +0 -1
  554. package/upgrades/index.d.ts +0 -1
  555. package/upgrades/index.js +0 -9
  556. package/upgrades/index.js.map +0 -1
  557. package/utils/ownership.d.ts +0 -8
  558. package/utils/ownership.js +0 -33
  559. package/utils/ownership.js.map +0 -1
  560. package/utils/permissions.d.ts +0 -7
  561. package/utils/permissions.js +0 -91
  562. package/utils/permissions.js.map +0 -1
  563. package/utils/pluralizedTypeName.d.ts +0 -1
  564. package/utils/pluralizedTypeName.js +0 -20
  565. package/utils/pluralizedTypeName.js.map +0 -1
  566. package/validators/dynamicZone.d.ts +0 -2
  567. package/validators/dynamicZone.js +0 -20
  568. package/validators/dynamicZone.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateModels = void 0;
7
+ var _validation = require("../../../crud/contentModel/validation");
8
+ var _types = require("../../types");
9
+ var _utils = require("@webiny/utils");
10
+ const addCodeMessage = params => {
11
+ if (params.action !== _types.CmsImportAction.CODE) {
12
+ return params;
13
+ }
14
+ return {
15
+ ...params,
16
+ errors: [{
17
+ message: `The model is defined via plugin and it cannot be updated.`,
18
+ code: "MODEL_IS_A_PLUGIN"
19
+ }]
20
+ };
21
+ };
22
+ const validateModel = params => {
23
+ const {
24
+ model,
25
+ models
26
+ } = params;
27
+ /**
28
+ * Let's check if model values that must be unique, already exist.
29
+ */
30
+ const existingModelId = models.find(m => m.modelId.toLowerCase() === model.modelId.toLowerCase());
31
+ const existingSingularApiName = models.find(m => m.singularApiName.toLowerCase() === model.singularApiName.toLowerCase() || m.singularApiName.toLowerCase() === model.pluralApiName.toString());
32
+ const existingPluralApiName = models.find(m => m.pluralApiName.toLowerCase() === model.pluralApiName.toLowerCase() || m.pluralApiName.toLowerCase() === model.singularApiName.toString());
33
+ const UPDATE_KEYWORD = existingModelId?.isPlugin ? _types.CmsImportAction.CODE : _types.CmsImportAction.UPDATE;
34
+ /**
35
+ * There are few cases that we must address:
36
+ *
37
+ * 1. modelId, singular and plural names do not exist in any of the models
38
+ * - this is OK, we can create the model
39
+ */
40
+ if (!existingModelId && !existingSingularApiName && !existingPluralApiName) {
41
+ return {
42
+ action: _types.CmsImportAction.CREATE
43
+ };
44
+ }
45
+ /**
46
+ * 2. modelId, singular and plural names are a part of a single model
47
+ * - this is OK, we can update the model
48
+ */
49
+ if (existingModelId && existingSingularApiName && existingPluralApiName && existingModelId.modelId === existingSingularApiName.modelId && existingModelId.modelId === existingPluralApiName.modelId) {
50
+ return addCodeMessage({
51
+ action: UPDATE_KEYWORD
52
+ });
53
+ }
54
+ /**
55
+ * 3. modelId already exists, but singular and plural names do not
56
+ * - this is OK, we can update the model
57
+ */
58
+ if (existingModelId && !existingSingularApiName && !existingPluralApiName) {
59
+ return addCodeMessage({
60
+ action: UPDATE_KEYWORD
61
+ });
62
+ }
63
+ /**
64
+ * 4. modelId already exists, but only the singular name exists.
65
+ * - this is OK, we can update the model
66
+ */
67
+ if (existingModelId && existingSingularApiName?.modelId === existingModelId.modelId && !existingPluralApiName) {
68
+ return addCodeMessage({
69
+ action: UPDATE_KEYWORD
70
+ });
71
+ }
72
+ /**
73
+ * 5. modelId already exists, but only the plural name exists.
74
+ * - this is OK, we can update the model
75
+ */
76
+ if (existingModelId && existingPluralApiName?.modelId === existingModelId.modelId && !existingSingularApiName) {
77
+ return addCodeMessage({
78
+ action: UPDATE_KEYWORD
79
+ });
80
+ }
81
+ /**
82
+ * 6. modelId already exists, but singular and plural names are in different models.
83
+ */
84
+ if (existingModelId && (existingSingularApiName?.modelId !== existingModelId.modelId || existingPluralApiName?.modelId !== existingModelId.modelId)) {
85
+ return {
86
+ action: _types.CmsImportAction.NONE,
87
+ errors: [{
88
+ message: `The model has singular or plural API names same as some other model.`,
89
+ code: "MODEL_API_NAMES_ERROR"
90
+ }]
91
+ };
92
+ }
93
+ return {
94
+ action: _types.CmsImportAction.NONE,
95
+ errors: [{
96
+ message: `The model cannot be imported.`,
97
+ code: "MODEL_IMPORT_ERROR",
98
+ data: {
99
+ modelId: existingModelId?.modelId,
100
+ singularApiName: existingSingularApiName?.modelId,
101
+ pluralApiName: existingPluralApiName?.modelId
102
+ }
103
+ }]
104
+ };
105
+ };
106
+ const getRelatedModels = params => {
107
+ const {
108
+ fields,
109
+ models
110
+ } = params;
111
+ const result = [];
112
+ for (const field of fields) {
113
+ if (field.type === "ref") {
114
+ for (const model of field.settings?.models || []) {
115
+ result.push(model.modelId);
116
+ }
117
+ } else if (field.type === "object") {
118
+ result.push(...getRelatedModels({
119
+ fields: field.settings?.fields || [],
120
+ models
121
+ }));
122
+ } else if (field.type === "dynamicZone") {
123
+ const templates = field.settings?.templates || [];
124
+ for (const tpl of templates) {
125
+ result.push(...getRelatedModels({
126
+ fields: tpl.fields || [],
127
+ models
128
+ }));
129
+ }
130
+ }
131
+ }
132
+ return Array.from(new Set(result));
133
+ };
134
+ const validateModels = async params => {
135
+ const {
136
+ groups,
137
+ models,
138
+ input
139
+ } = params;
140
+ const validation = (0, _validation.createModelImportValidation)();
141
+ return await Promise.all(input.map(async model => {
142
+ const result = await validation.safeParseAsync(model);
143
+ if (!result.success) {
144
+ const error = (0, _utils.createZodError)(result.error);
145
+ return {
146
+ model: model,
147
+ action: _types.CmsImportAction.NONE,
148
+ error: {
149
+ message: error.message,
150
+ code: error.code,
151
+ data: error.data
152
+ }
153
+ };
154
+ }
155
+ const data = result.data;
156
+ const group = groups.find(g => g.id === data.group || g.target === data.group);
157
+ if (!group) {
158
+ return {
159
+ model: data,
160
+ action: _types.CmsImportAction.NONE,
161
+ error: {
162
+ message: `The model group "${data.group}" does not exist.`,
163
+ code: "MODEL_GROUP_NOT_FOUND"
164
+ }
165
+ };
166
+ } else if (!model.fields?.length) {
167
+ return {
168
+ model: data,
169
+ action: _types.CmsImportAction.NONE,
170
+ error: {
171
+ message: `Model is missing fields.`,
172
+ code: "MODEL_FIELDS_MISSING"
173
+ }
174
+ };
175
+ }
176
+ const targetModel = {
177
+ ...data,
178
+ group: group.id
179
+ };
180
+ const modelValidationResult = validateModel({
181
+ model: targetModel,
182
+ models
183
+ });
184
+ if (!modelValidationResult.errors?.length) {
185
+ return {
186
+ model: targetModel,
187
+ related: getRelatedModels({
188
+ fields: targetModel.fields,
189
+ models
190
+ }),
191
+ action: modelValidationResult.action
192
+ };
193
+ }
194
+ return {
195
+ model: targetModel,
196
+ action: modelValidationResult.action,
197
+ error: modelValidationResult.errors[0]
198
+ };
199
+ }));
200
+ };
201
+ exports.validateModels = validateModels;
202
+
203
+ //# sourceMappingURL=validateModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_validation","require","_types","_utils","addCodeMessage","params","action","CmsImportAction","CODE","errors","message","code","validateModel","model","models","existingModelId","find","m","modelId","toLowerCase","existingSingularApiName","singularApiName","pluralApiName","toString","existingPluralApiName","UPDATE_KEYWORD","isPlugin","UPDATE","CREATE","NONE","data","getRelatedModels","fields","result","field","type","settings","push","templates","tpl","Array","from","Set","validateModels","groups","input","validation","createModelImportValidation","Promise","all","map","safeParseAsync","success","error","createZodError","group","g","id","target","length","targetModel","modelValidationResult","related","exports"],"sources":["validateModels.ts"],"sourcesContent":["import { createModelImportValidation } from \"~/crud/contentModel/validation\";\nimport {\n CmsImportAction,\n CmsImportError,\n HeadlessCmsImportStructureParamsDataModel,\n ValidatedCmsModel,\n ValidatedCmsModelResult\n} from \"~/export/types\";\nimport { CmsDynamicZoneTemplate, CmsGroup, CmsModel, CmsModelField } from \"~/types\";\nimport { createZodError } from \"@webiny/utils\";\n\ninterface CreateModelValidationParams {\n model: ValidatedCmsModel;\n models: CmsModel[];\n}\n\ninterface AddCodeMessageParams {\n action: CmsImportAction;\n}\n\nconst addCodeMessage = (params: AddCodeMessageParams) => {\n if (params.action !== CmsImportAction.CODE) {\n return params;\n }\n return {\n ...params,\n errors: [\n {\n message: `The model is defined via plugin and it cannot be updated.`,\n code: \"MODEL_IS_A_PLUGIN\"\n }\n ]\n };\n};\n\ninterface ValidationResult {\n errors?: CmsImportError[];\n action: CmsImportAction;\n}\n\nconst validateModel = (params: CreateModelValidationParams): ValidationResult => {\n const { model, models } = params;\n /**\n * Let's check if model values that must be unique, already exist.\n */\n const existingModelId = models.find(\n m => m.modelId.toLowerCase() === model.modelId.toLowerCase()\n );\n const existingSingularApiName = models.find(\n m =>\n m.singularApiName.toLowerCase() === model.singularApiName.toLowerCase() ||\n m.singularApiName.toLowerCase() === model.pluralApiName.toString()\n );\n const existingPluralApiName = models.find(\n m =>\n m.pluralApiName.toLowerCase() === model.pluralApiName.toLowerCase() ||\n m.pluralApiName.toLowerCase() === model.singularApiName.toString()\n );\n\n const UPDATE_KEYWORD = existingModelId?.isPlugin\n ? CmsImportAction.CODE\n : CmsImportAction.UPDATE;\n /**\n * There are few cases that we must address:\n *\n * 1. modelId, singular and plural names do not exist in any of the models\n * - this is OK, we can create the model\n */\n if (!existingModelId && !existingSingularApiName && !existingPluralApiName) {\n return {\n action: CmsImportAction.CREATE\n };\n }\n /**\n * 2. modelId, singular and plural names are a part of a single model\n * - this is OK, we can update the model\n */\n if (\n existingModelId &&\n existingSingularApiName &&\n existingPluralApiName &&\n existingModelId.modelId === existingSingularApiName.modelId &&\n existingModelId.modelId === existingPluralApiName.modelId\n ) {\n return addCodeMessage({\n action: UPDATE_KEYWORD\n });\n }\n /**\n * 3. modelId already exists, but singular and plural names do not\n * - this is OK, we can update the model\n */\n if (existingModelId && !existingSingularApiName && !existingPluralApiName) {\n return addCodeMessage({\n action: UPDATE_KEYWORD\n });\n }\n /**\n * 4. modelId already exists, but only the singular name exists.\n * - this is OK, we can update the model\n */\n if (\n existingModelId &&\n existingSingularApiName?.modelId === existingModelId.modelId &&\n !existingPluralApiName\n ) {\n return addCodeMessage({\n action: UPDATE_KEYWORD\n });\n }\n /**\n * 5. modelId already exists, but only the plural name exists.\n * - this is OK, we can update the model\n */\n if (\n existingModelId &&\n existingPluralApiName?.modelId === existingModelId.modelId &&\n !existingSingularApiName\n ) {\n return addCodeMessage({\n action: UPDATE_KEYWORD\n });\n }\n /**\n * 6. modelId already exists, but singular and plural names are in different models.\n */\n if (\n existingModelId &&\n (existingSingularApiName?.modelId !== existingModelId.modelId ||\n existingPluralApiName?.modelId !== existingModelId.modelId)\n ) {\n return {\n action: CmsImportAction.NONE,\n errors: [\n {\n message: `The model has singular or plural API names same as some other model.`,\n code: \"MODEL_API_NAMES_ERROR\"\n }\n ]\n };\n }\n\n return {\n action: CmsImportAction.NONE,\n errors: [\n {\n message: `The model cannot be imported.`,\n code: \"MODEL_IMPORT_ERROR\",\n data: {\n modelId: existingModelId?.modelId,\n singularApiName: existingSingularApiName?.modelId,\n pluralApiName: existingPluralApiName?.modelId\n }\n }\n ]\n };\n};\n\ninterface InputGroup extends Pick<CmsGroup, \"id\" | \"slug\"> {\n target: string;\n}\n\ninterface Params {\n groups: InputGroup[];\n models: CmsModel[];\n input: HeadlessCmsImportStructureParamsDataModel[];\n}\n\ninterface GetRelatedModelsParams {\n fields: CmsModelField[];\n models: CmsModel[];\n}\n\nconst getRelatedModels = (params: GetRelatedModelsParams): string[] => {\n const { fields, models } = params;\n\n const result: string[] = [];\n for (const field of fields) {\n if (field.type === \"ref\") {\n for (const model of field.settings?.models || []) {\n result.push(model.modelId);\n }\n } else if (field.type === \"object\") {\n result.push(...getRelatedModels({ fields: field.settings?.fields || [], models }));\n } else if (field.type === \"dynamicZone\") {\n const templates = (field.settings?.templates || []) as CmsDynamicZoneTemplate[];\n for (const tpl of templates) {\n result.push(\n ...getRelatedModels({\n fields: tpl.fields || [],\n models\n })\n );\n }\n }\n }\n\n return Array.from(new Set(result));\n};\n\nexport const validateModels = async (params: Params): Promise<ValidatedCmsModelResult[]> => {\n const { groups, models, input } = params;\n\n const validation = createModelImportValidation();\n\n return await Promise.all(\n input.map(async (model): Promise<ValidatedCmsModelResult> => {\n const result = await validation.safeParseAsync(model);\n if (!result.success) {\n const error = createZodError(result.error);\n return {\n model: model as ValidatedCmsModel,\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 unknown as ValidatedCmsModel;\n const group = groups.find(g => g.id === data.group || g.target === data.group);\n if (!group) {\n return {\n model: data,\n action: CmsImportAction.NONE,\n error: {\n message: `The model group \"${data.group}\" does not exist.`,\n code: \"MODEL_GROUP_NOT_FOUND\"\n }\n };\n } else if (!model.fields?.length) {\n return {\n model: data,\n action: CmsImportAction.NONE,\n error: {\n message: `Model is missing fields.`,\n code: \"MODEL_FIELDS_MISSING\"\n }\n };\n }\n\n const targetModel: ValidatedCmsModel = {\n ...data,\n group: group.id\n };\n\n const modelValidationResult = validateModel({\n model: targetModel,\n models\n });\n\n if (!modelValidationResult.errors?.length) {\n return {\n model: targetModel,\n related: getRelatedModels({\n fields: targetModel.fields,\n models\n }),\n action: modelValidationResult.action\n };\n }\n return {\n model: targetModel,\n action: modelValidationResult.action,\n error: modelValidationResult.errors[0]\n };\n })\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CmsContext } from "../../types";
2
+ export declare const createExportCrud: (context: CmsContext) => {
3
+ structure: import("../types").HeadlessCmsExportStructure;
4
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createExportCrud = void 0;
7
+ var _exporting = require("./exporting");
8
+ const createExportCrud = context => {
9
+ return {
10
+ structure: (0, _exporting.createExportStructureContext)(context)
11
+ };
12
+ };
13
+ exports.createExportCrud = createExportCrud;
14
+
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_exporting","require","createExportCrud","context","structure","createExportStructureContext","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { createExportStructureContext } from \"./exporting\";\n\nexport const createExportCrud = (context: CmsContext) => {\n return {\n structure: createExportStructureContext(context)\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,gBAAgB,GAAIC,OAAmB,IAAK;EACrD,OAAO;IACHC,SAAS,EAAE,IAAAC,uCAA4B,EAACF,OAAO;EACnD,CAAC;AACL,CAAC;AAACG,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA"}
@@ -0,0 +1,4 @@
1
+ import { CmsGroup, CmsModel } from "../../types";
2
+ import { SanitizedCmsGroup, SanitizedCmsModel } from "../types";
3
+ export declare const sanitizeGroup: (group: CmsGroup) => SanitizedCmsGroup;
4
+ export declare const sanitizeModel: (group: Pick<CmsGroup, "id" | "name">, model: CmsModel) => SanitizedCmsModel;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sanitizeModel = exports.sanitizeGroup = void 0;
7
+ const sanitizeGroup = group => {
8
+ return {
9
+ id: group.id,
10
+ name: group.name,
11
+ slug: group.slug,
12
+ description: group.description,
13
+ icon: group.icon
14
+ };
15
+ };
16
+ exports.sanitizeGroup = sanitizeGroup;
17
+ const sanitizeModel = (group, model) => {
18
+ return {
19
+ modelId: model.modelId,
20
+ name: model.name,
21
+ group: group.id,
22
+ icon: model.icon,
23
+ description: model.description,
24
+ singularApiName: model.singularApiName,
25
+ pluralApiName: model.pluralApiName,
26
+ fields: model.fields,
27
+ layout: model.layout,
28
+ titleFieldId: model.titleFieldId,
29
+ descriptionFieldId: model.descriptionFieldId,
30
+ imageFieldId: model.imageFieldId
31
+ };
32
+ };
33
+ exports.sanitizeModel = sanitizeModel;
34
+
35
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sanitizeGroup","group","id","name","slug","description","icon","exports","sanitizeModel","model","modelId","singularApiName","pluralApiName","fields","layout","titleFieldId","descriptionFieldId","imageFieldId"],"sources":["sanitize.ts"],"sourcesContent":["import { CmsGroup, CmsModel } from \"~/types\";\nimport { SanitizedCmsGroup, SanitizedCmsModel } from \"~/export/types\";\n\nexport const sanitizeGroup = (group: CmsGroup): SanitizedCmsGroup => {\n return {\n id: group.id,\n name: group.name,\n slug: group.slug,\n description: group.description,\n icon: group.icon\n };\n};\n\nexport const sanitizeModel = (\n group: Pick<CmsGroup, \"id\" | \"name\">,\n model: CmsModel\n): SanitizedCmsModel => {\n return {\n modelId: model.modelId,\n name: model.name,\n group: group.id,\n icon: model.icon,\n description: model.description,\n singularApiName: model.singularApiName,\n pluralApiName: model.pluralApiName,\n fields: model.fields,\n layout: model.layout,\n titleFieldId: model.titleFieldId,\n descriptionFieldId: model.descriptionFieldId,\n imageFieldId: model.imageFieldId\n };\n};\n"],"mappings":";;;;;;AAGO,MAAMA,aAAa,GAAIC,KAAe,IAAwB;EACjE,OAAO;IACHC,EAAE,EAAED,KAAK,CAACC,EAAE;IACZC,IAAI,EAAEF,KAAK,CAACE,IAAI;IAChBC,IAAI,EAAEH,KAAK,CAACG,IAAI;IAChBC,WAAW,EAAEJ,KAAK,CAACI,WAAW;IAC9BC,IAAI,EAAEL,KAAK,CAACK;EAChB,CAAC;AACL,CAAC;AAACC,OAAA,CAAAP,aAAA,GAAAA,aAAA;AAEK,MAAMQ,aAAa,GAAGA,CACzBP,KAAoC,EACpCQ,KAAe,KACK;EACpB,OAAO;IACHC,OAAO,EAAED,KAAK,CAACC,OAAO;IACtBP,IAAI,EAAEM,KAAK,CAACN,IAAI;IAChBF,KAAK,EAAEA,KAAK,CAACC,EAAE;IACfI,IAAI,EAAEG,KAAK,CAACH,IAAI;IAChBD,WAAW,EAAEI,KAAK,CAACJ,WAAW;IAC9BM,eAAe,EAAEF,KAAK,CAACE,eAAe;IACtCC,aAAa,EAAEH,KAAK,CAACG,aAAa;IAClCC,MAAM,EAAEJ,KAAK,CAACI,MAAM;IACpBC,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBC,YAAY,EAAEN,KAAK,CAACM,YAAY;IAChCC,kBAAkB,EAAEP,KAAK,CAACO,kBAAkB;IAC5CC,YAAY,EAAER,KAAK,CAACQ;EACxB,CAAC;AACL,CAAC;AAACV,OAAA,CAAAC,aAAA,GAAAA,aAAA"}
@@ -0,0 +1,3 @@
1
+ import { ContextPlugin } from "@webiny/handler";
2
+ import { CmsContext } from "../../types";
3
+ export declare const createExportGraphQL: () => ContextPlugin<CmsContext>;
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createExportGraphQL = void 0;
7
+ var _plugins = require("../../plugins");
8
+ var _handlerGraphql = require("@webiny/handler-graphql");
9
+ var _handler = require("@webiny/handler");
10
+ const plugin = new _plugins.CmsGraphQLSchemaPlugin({
11
+ typeDefs: /* GraphQL */`
12
+ type CmsExportStructureResponse {
13
+ data: String
14
+ error: CmsError
15
+ }
16
+
17
+ input CmsImportStructureGroupInput {
18
+ id: ID!
19
+ name: String!
20
+ slug: String
21
+ description: String
22
+ icon: String!
23
+ }
24
+
25
+ input CmsImportStructureModelInput {
26
+ name: String!
27
+ singularApiName: String!
28
+ pluralApiName: String!
29
+ modelId: String!
30
+ group: String!
31
+ icon: String
32
+ description: String
33
+ layout: [[ID!]!]!
34
+ fields: [CmsContentModelFieldInput!]!
35
+ titleFieldId: String!
36
+ descriptionFieldId: String
37
+ imageFieldId: String
38
+ tags: [String!]
39
+ }
40
+
41
+ enum CmsImportGroupStructureAction {
42
+ create
43
+ update
44
+ code
45
+ none
46
+ }
47
+
48
+ enum CmsImportModelStructureAction {
49
+ create
50
+ update
51
+ code
52
+ none
53
+ }
54
+
55
+ input CmsImportStructureInput {
56
+ groups: [CmsImportStructureGroupInput!]!
57
+ models: [CmsImportStructureModelInput!]!
58
+ }
59
+
60
+ type CmsImportValidateResponseDataGroupResultItem {
61
+ id: String
62
+ name: String
63
+ }
64
+
65
+ type CmsImportValidateResponseDataGroupResult {
66
+ group: CmsImportValidateResponseDataGroupResultItem!
67
+ error: CmsError
68
+ action: CmsImportGroupStructureAction
69
+ }
70
+
71
+ type CmsImportValidateResponseDataModelResultItem {
72
+ modelId: String
73
+ name: String
74
+ group: String
75
+ }
76
+
77
+ type CmsImportValidateResponseDataModelResult {
78
+ model: CmsImportValidateResponseDataModelResultItem!
79
+ related: [String!]
80
+ error: CmsError
81
+ action: CmsImportModelStructureAction
82
+ }
83
+
84
+ type CmsImportValidateResponseData {
85
+ groups: [CmsImportValidateResponseDataGroupResult!]!
86
+ models: [CmsImportValidateResponseDataModelResult!]!
87
+ message: String!
88
+ }
89
+
90
+ type CmsImportValidateResponse {
91
+ data: CmsImportValidateResponseData
92
+ error: CmsError
93
+ }
94
+
95
+ type CmsImportStructureResponseDataGroupResultItem {
96
+ id: String!
97
+ name: String!
98
+ }
99
+ type CmsImportStructureResponseDataGroupResult {
100
+ group: CmsImportStructureResponseDataGroupResultItem!
101
+ error: CmsError
102
+ action: CmsImportGroupStructureAction
103
+ imported: Boolean
104
+ }
105
+
106
+ type CmsImportStructureResponseDataResultItem {
107
+ modelId: String!
108
+ name: String!
109
+ group: String!
110
+ }
111
+
112
+ type CmsImportStructureResponseDataModelResult {
113
+ model: CmsImportStructureResponseDataResultItem!
114
+ related: [String!]
115
+ error: CmsError
116
+ action: CmsImportModelStructureAction
117
+ imported: Boolean
118
+ }
119
+
120
+ type CmsImportStructureResponseData {
121
+ groups: [CmsImportStructureResponseDataGroupResult!]!
122
+ models: [CmsImportStructureResponseDataModelResult!]!
123
+ message: String
124
+ }
125
+
126
+ type CmsImportStructureResponse {
127
+ data: CmsImportStructureResponseData
128
+ error: CmsError
129
+ }
130
+
131
+ extend type Query {
132
+ exportStructure(models: [String!]): CmsExportStructureResponse!
133
+ }
134
+
135
+ extend type Mutation {
136
+ validateImportStructure(data: CmsImportStructureInput!): CmsImportValidateResponse!
137
+ importStructure(data: CmsImportStructureInput!): CmsImportStructureResponse!
138
+ }
139
+ `,
140
+ resolvers: {
141
+ Query: {
142
+ exportStructure: async (_, args, context) => {
143
+ try {
144
+ const result = await context.cms.export.structure({
145
+ models: args.models
146
+ });
147
+ return new _handlerGraphql.Response(JSON.stringify(result));
148
+ } catch (ex) {
149
+ return new _handlerGraphql.ErrorResponse(ex);
150
+ }
151
+ }
152
+ },
153
+ Mutation: {
154
+ validateImportStructure: async (_, args, context) => {
155
+ try {
156
+ const result = await context.cms.importing.validate({
157
+ data: args.data
158
+ });
159
+ return new _handlerGraphql.Response(result);
160
+ } catch (ex) {
161
+ return new _handlerGraphql.ErrorResponse(ex);
162
+ }
163
+ },
164
+ importStructure: async (_, args, context) => {
165
+ try {
166
+ const result = await context.cms.importing.structure({
167
+ data: args.data
168
+ });
169
+ return new _handlerGraphql.Response(result);
170
+ } catch (ex) {
171
+ return new _handlerGraphql.ErrorResponse(ex);
172
+ }
173
+ }
174
+ }
175
+ }
176
+ });
177
+ plugin.name = "headless-cms.graphql.export";
178
+ const createExportGraphQL = () => {
179
+ return new _handler.ContextPlugin(async context => {
180
+ if (!context.cms.MANAGE) {
181
+ return;
182
+ }
183
+ context.plugins.register(plugin);
184
+ });
185
+ };
186
+ exports.createExportGraphQL = createExportGraphQL;
187
+
188
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_handlerGraphql","_handler","plugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","Query","exportStructure","_","args","context","result","cms","export","structure","models","Response","JSON","stringify","ex","ErrorResponse","Mutation","validateImportStructure","importing","validate","data","importStructure","name","createExportGraphQL","ContextPlugin","MANAGE","plugins","register","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { ContextPlugin } from \"@webiny/handler\";\nimport { CmsContext } from \"~/types\";\n\nconst plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsExportStructureResponse {\n data: String\n error: CmsError\n }\n\n input CmsImportStructureGroupInput {\n id: ID!\n name: String!\n slug: String\n description: String\n icon: String!\n }\n\n input CmsImportStructureModelInput {\n name: String!\n singularApiName: String!\n pluralApiName: String!\n modelId: String!\n group: String!\n icon: String\n description: String\n layout: [[ID!]!]!\n fields: [CmsContentModelFieldInput!]!\n titleFieldId: String!\n descriptionFieldId: String\n imageFieldId: String\n tags: [String!]\n }\n\n enum CmsImportGroupStructureAction {\n create\n update\n code\n none\n }\n\n enum CmsImportModelStructureAction {\n create\n update\n code\n none\n }\n\n input CmsImportStructureInput {\n groups: [CmsImportStructureGroupInput!]!\n models: [CmsImportStructureModelInput!]!\n }\n\n type CmsImportValidateResponseDataGroupResultItem {\n id: String\n name: String\n }\n\n type CmsImportValidateResponseDataGroupResult {\n group: CmsImportValidateResponseDataGroupResultItem!\n error: CmsError\n action: CmsImportGroupStructureAction\n }\n\n type CmsImportValidateResponseDataModelResultItem {\n modelId: String\n name: String\n group: String\n }\n\n type CmsImportValidateResponseDataModelResult {\n model: CmsImportValidateResponseDataModelResultItem!\n related: [String!]\n error: CmsError\n action: CmsImportModelStructureAction\n }\n\n type CmsImportValidateResponseData {\n groups: [CmsImportValidateResponseDataGroupResult!]!\n models: [CmsImportValidateResponseDataModelResult!]!\n message: String!\n }\n\n type CmsImportValidateResponse {\n data: CmsImportValidateResponseData\n error: CmsError\n }\n\n type CmsImportStructureResponseDataGroupResultItem {\n id: String!\n name: String!\n }\n type CmsImportStructureResponseDataGroupResult {\n group: CmsImportStructureResponseDataGroupResultItem!\n error: CmsError\n action: CmsImportGroupStructureAction\n imported: Boolean\n }\n\n type CmsImportStructureResponseDataResultItem {\n modelId: String!\n name: String!\n group: String!\n }\n\n type CmsImportStructureResponseDataModelResult {\n model: CmsImportStructureResponseDataResultItem!\n related: [String!]\n error: CmsError\n action: CmsImportModelStructureAction\n imported: Boolean\n }\n\n type CmsImportStructureResponseData {\n groups: [CmsImportStructureResponseDataGroupResult!]!\n models: [CmsImportStructureResponseDataModelResult!]!\n message: String\n }\n\n type CmsImportStructureResponse {\n data: CmsImportStructureResponseData\n error: CmsError\n }\n\n extend type Query {\n exportStructure(models: [String!]): CmsExportStructureResponse!\n }\n\n extend type Mutation {\n validateImportStructure(data: CmsImportStructureInput!): CmsImportValidateResponse!\n importStructure(data: CmsImportStructureInput!): CmsImportStructureResponse!\n }\n `,\n resolvers: {\n Query: {\n exportStructure: async (_, args, context) => {\n try {\n const result = await context.cms.export.structure({\n models: args.models\n });\n return new Response(JSON.stringify(result));\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n }\n },\n Mutation: {\n validateImportStructure: async (_, args, context) => {\n try {\n const result = await context.cms.importing.validate({\n data: args.data\n });\n return new Response(result);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n },\n importStructure: async (_, args, context) => {\n try {\n const result = await context.cms.importing.structure({\n data: args.data\n });\n return new Response(result);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n }\n }\n }\n});\nplugin.name = \"headless-cms.graphql.export\";\n\nexport const createExportGraphQL = () => {\n return new ContextPlugin<CmsContext>(async context => {\n if (!context.cms.MANAGE) {\n return;\n }\n context.plugins.register(plugin);\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAGA,MAAMG,MAAM,GAAG,IAAIC,+BAAsB,CAAC;EACtCC,QAAQ,EAAE,aAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;EACDC,SAAS,EAAE;IACPC,KAAK,EAAE;MACHC,eAAe,EAAE,MAAAA,CAAOC,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QACzC,IAAI;UACA,MAAMC,MAAM,GAAG,MAAMD,OAAO,CAACE,GAAG,CAACC,MAAM,CAACC,SAAS,CAAC;YAC9CC,MAAM,EAAEN,IAAI,CAACM;UACjB,CAAC,CAAC;UACF,OAAO,IAAIC,wBAAQ,CAACC,IAAI,CAACC,SAAS,CAACP,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,OAAOQ,EAAE,EAAE;UACT,OAAO,IAAIC,6BAAa,CAACD,EAAE,CAAC;QAChC;MACJ;IACJ,CAAC;IACDE,QAAQ,EAAE;MACNC,uBAAuB,EAAE,MAAAA,CAAOd,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QACjD,IAAI;UACA,MAAMC,MAAM,GAAG,MAAMD,OAAO,CAACE,GAAG,CAACW,SAAS,CAACC,QAAQ,CAAC;YAChDC,IAAI,EAAEhB,IAAI,CAACgB;UACf,CAAC,CAAC;UACF,OAAO,IAAIT,wBAAQ,CAACL,MAAM,CAAC;QAC/B,CAAC,CAAC,OAAOQ,EAAE,EAAE;UACT,OAAO,IAAIC,6BAAa,CAACD,EAAE,CAAC;QAChC;MACJ,CAAC;MACDO,eAAe,EAAE,MAAAA,CAAOlB,CAAC,EAAEC,IAAI,EAAEC,OAAO,KAAK;QACzC,IAAI;UACA,MAAMC,MAAM,GAAG,MAAMD,OAAO,CAACE,GAAG,CAACW,SAAS,CAACT,SAAS,CAAC;YACjDW,IAAI,EAAEhB,IAAI,CAACgB;UACf,CAAC,CAAC;UACF,OAAO,IAAIT,wBAAQ,CAACL,MAAM,CAAC;QAC/B,CAAC,CAAC,OAAOQ,EAAE,EAAE;UACT,OAAO,IAAIC,6BAAa,CAACD,EAAE,CAAC;QAChC;MACJ;IACJ;EACJ;AACJ,CAAC,CAAC;AACFjB,MAAM,CAACyB,IAAI,GAAG,6BAA6B;AAEpC,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACrC,OAAO,IAAIC,sBAAa,CAAa,MAAMnB,OAAO,IAAI;IAClD,IAAI,CAACA,OAAO,CAACE,GAAG,CAACkB,MAAM,EAAE;MACrB;IACJ;IACApB,OAAO,CAACqB,OAAO,CAACC,QAAQ,CAAC9B,MAAM,CAAC;EACpC,CAAC,CAAC;AACN,CAAC;AAAC+B,OAAA,CAAAL,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./crud";
2
+ export * from "./graphql";
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _crud = require("./crud");
7
+ Object.keys(_crud).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _crud[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _crud[key];
14
+ }
15
+ });
16
+ });
17
+ var _graphql = require("./graphql");
18
+ Object.keys(_graphql).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _graphql[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _graphql[key];
25
+ }
26
+ });
27
+ });
28
+
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_crud","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_graphql"],"sources":["index.ts"],"sourcesContent":["export * from \"./crud\";\nexport * from \"./graphql\";\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,113 @@
1
+ import { CmsGroup, CmsModel } from "../types";
2
+ export interface CmsImportError {
3
+ message: string;
4
+ code: string | null;
5
+ data?: Record<string, any> | null;
6
+ stack?: any;
7
+ }
8
+ export declare enum CmsImportAction {
9
+ CREATE = "create",
10
+ UPDATE = "update",
11
+ CODE = "code",
12
+ NONE = "none"
13
+ }
14
+ /**
15
+ * Structure export - groups and models.
16
+ */
17
+ export interface HeadlessCmsExportStructureParams {
18
+ models?: string[];
19
+ }
20
+ export declare type SanitizedCmsGroup = Pick<CmsGroup, "id" | "name" | "slug" | "description" | "icon">;
21
+ export interface SanitizedCmsModel extends Pick<CmsModel, "modelId" | "fields" | "titleFieldId" | "descriptionFieldId" | "imageFieldId" | "layout" | "icon" | "singularApiName" | "pluralApiName" | "name" | "description"> {
22
+ group: string;
23
+ }
24
+ export interface HeadlessCmsExportStructureResponse {
25
+ groups: SanitizedCmsGroup[];
26
+ models: SanitizedCmsModel[];
27
+ }
28
+ export interface HeadlessCmsExportStructure {
29
+ (params: HeadlessCmsExportStructureParams): Promise<HeadlessCmsExportStructureResponse>;
30
+ }
31
+ export interface HeadlessCmsImportStructureParamsDataModel extends Omit<Partial<CmsModel>, "group"> {
32
+ group?: string;
33
+ }
34
+ export interface CmsImportStructureParamsData {
35
+ groups: Partial<CmsGroup>[];
36
+ models: HeadlessCmsImportStructureParamsDataModel[];
37
+ }
38
+ export interface HeadlessCmsImportStructureParams {
39
+ data: CmsImportStructureParamsData;
40
+ }
41
+ export interface HeadlessCmsImportValidateParams {
42
+ data: CmsImportStructureParamsData;
43
+ }
44
+ export interface CmsGroupImportResult {
45
+ action: CmsImportAction;
46
+ group: Partial<Pick<CmsGroup, "id" | "name">>;
47
+ error?: CmsImportError;
48
+ imported: boolean;
49
+ }
50
+ export interface CmsModelImportResult {
51
+ action: CmsImportAction;
52
+ model: Partial<Pick<CmsModel, "modelId" | "name">> & {
53
+ group: string;
54
+ };
55
+ related?: string[] | null;
56
+ error?: CmsImportError;
57
+ imported: boolean;
58
+ }
59
+ export interface HeadlessCmsImportStructureResponse {
60
+ groups: CmsGroupImportResult[];
61
+ models: CmsModelImportResult[];
62
+ message?: string | null;
63
+ error?: string;
64
+ }
65
+ export interface HeadlessCmsImportStructure {
66
+ (params: HeadlessCmsImportStructureParams): Promise<HeadlessCmsImportStructureResponse>;
67
+ }
68
+ export interface ValidCmsGroupResult {
69
+ group: CmsGroup;
70
+ action: CmsImportAction;
71
+ target?: string;
72
+ error?: never;
73
+ }
74
+ export interface InvalidCmsGroupResult {
75
+ group: CmsGroup;
76
+ action: CmsImportAction;
77
+ target?: never;
78
+ error: CmsImportError;
79
+ }
80
+ export interface ValidatedCmsModel extends Omit<CmsModel, "group"> {
81
+ group: string;
82
+ }
83
+ export interface ValidCmsModelResult {
84
+ model: ValidatedCmsModel;
85
+ related: string[];
86
+ action: CmsImportAction;
87
+ error?: never;
88
+ }
89
+ export interface InvalidCmsModelResult {
90
+ model: ValidatedCmsModel;
91
+ action: CmsImportAction;
92
+ error: CmsImportError;
93
+ }
94
+ export declare type ValidatedCmsGroupResult = ValidCmsGroupResult | InvalidCmsGroupResult;
95
+ export declare type ValidatedCmsModelResult = ValidCmsModelResult | InvalidCmsModelResult;
96
+ export interface HeadlessCmsImportValidateResponse {
97
+ groups: ValidatedCmsGroupResult[];
98
+ models: ValidatedCmsModelResult[];
99
+ message: string;
100
+ }
101
+ export interface HeadlessCmsImportValidate {
102
+ (params: HeadlessCmsImportValidateParams): Promise<HeadlessCmsImportValidateResponse>;
103
+ }
104
+ /**
105
+ * Interface for the main context interface.
106
+ */
107
+ export interface HeadlessCmsExport {
108
+ structure: HeadlessCmsExportStructure;
109
+ }
110
+ export interface HeadlessCmsImport {
111
+ validate: HeadlessCmsImportValidate;
112
+ structure: HeadlessCmsImportStructure;
113
+ }