@webiny/api-headless-cms 0.0.0-mt-3 → 0.0.0-unstable.1e66d121db

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 (570) hide show
  1. package/context.d.ts +3 -0
  2. package/context.js +60 -0
  3. package/context.js.map +1 -0
  4. package/crud/contentEntry/afterDelete.d.ts +8 -0
  5. package/{content/plugins/crud → crud}/contentEntry/afterDelete.js +2 -2
  6. package/crud/contentEntry/afterDelete.js.map +1 -0
  7. package/crud/contentEntry/beforeCreate.d.ts +8 -0
  8. package/{content/plugins/crud → crud}/contentEntry/beforeCreate.js +2 -2
  9. package/crud/contentEntry/beforeCreate.js.map +1 -0
  10. package/crud/contentEntry/beforeUpdate.d.ts +8 -0
  11. package/{content/plugins/crud → crud}/contentEntry/beforeUpdate.js +2 -2
  12. package/crud/contentEntry/beforeUpdate.js.map +1 -0
  13. package/crud/contentEntry/entryDataValidation.d.ts +10 -0
  14. package/{content/plugins/crud → crud}/contentEntry/entryDataValidation.js +23 -11
  15. package/crud/contentEntry/entryDataValidation.js.map +1 -0
  16. package/{content/plugins/crud → crud}/contentEntry/markLockedFields.d.ts +3 -2
  17. package/{content/plugins/crud → crud}/contentEntry/markLockedFields.js +10 -14
  18. package/crud/contentEntry/markLockedFields.js.map +1 -0
  19. package/crud/contentEntry/referenceFieldsMapping.d.ts +13 -0
  20. package/crud/contentEntry/referenceFieldsMapping.js +288 -0
  21. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -0
  22. package/{content/plugins/crud → crud}/contentEntry.crud.d.ts +5 -9
  23. package/crud/contentEntry.crud.js +1255 -0
  24. package/crud/contentEntry.crud.js.map +1 -0
  25. package/crud/contentModel/afterCreate.d.ts +8 -0
  26. package/crud/contentModel/afterCreate.js +18 -0
  27. package/crud/contentModel/afterCreate.js.map +1 -0
  28. package/crud/contentModel/afterCreateFrom.d.ts +8 -0
  29. package/crud/contentModel/afterCreateFrom.js +18 -0
  30. package/crud/contentModel/afterCreateFrom.js.map +1 -0
  31. package/crud/contentModel/afterDelete.d.ts +8 -0
  32. package/crud/contentModel/afterDelete.js +18 -0
  33. package/crud/contentModel/afterDelete.js.map +1 -0
  34. package/crud/contentModel/afterUpdate.d.ts +8 -0
  35. package/crud/contentModel/afterUpdate.js +18 -0
  36. package/crud/contentModel/afterUpdate.js.map +1 -0
  37. package/crud/contentModel/beforeCreate.d.ts +15 -0
  38. package/{content/plugins/crud → crud}/contentModel/beforeCreate.js +61 -13
  39. package/crud/contentModel/beforeCreate.js.map +1 -0
  40. package/crud/contentModel/beforeDelete.d.ts +10 -0
  41. package/{content/plugins/crud → crud}/contentModel/beforeDelete.js +14 -10
  42. package/crud/contentModel/beforeDelete.js.map +1 -0
  43. package/crud/contentModel/beforeUpdate.d.ts +10 -0
  44. package/crud/contentModel/beforeUpdate.js +37 -0
  45. package/crud/contentModel/beforeUpdate.js.map +1 -0
  46. package/crud/contentModel/contentModelManagerFactory.d.ts +2 -0
  47. package/{content/plugins/crud → crud}/contentModel/contentModelManagerFactory.js +0 -0
  48. package/crud/contentModel/contentModelManagerFactory.js.map +1 -0
  49. package/crud/contentModel/createFieldModels.d.ts +2 -0
  50. package/{content/plugins/crud → crud}/contentModel/createFieldModels.js +6 -2
  51. package/crud/contentModel/createFieldModels.js.map +1 -0
  52. package/crud/contentModel/createFieldStorageId.d.ts +2 -0
  53. package/crud/contentModel/createFieldStorageId.js +16 -0
  54. package/crud/contentModel/createFieldStorageId.js.map +1 -0
  55. package/crud/contentModel/fieldIdValidation.d.ts +1 -0
  56. package/crud/contentModel/fieldIdValidation.js +25 -0
  57. package/crud/contentModel/fieldIdValidation.js.map +1 -0
  58. package/crud/contentModel/idValidation.d.ts +1 -0
  59. package/{content/plugins/crud → crud}/contentModel/idValidation.js +3 -3
  60. package/crud/contentModel/idValidation.js.map +1 -0
  61. package/{content/plugins/crud → crud}/contentModel/models.d.ts +2 -1
  62. package/{content/plugins/crud → crud}/contentModel/models.js +64 -25
  63. package/crud/contentModel/models.js.map +1 -0
  64. package/crud/contentModel/systemFields.d.ts +1 -0
  65. package/crud/contentModel/systemFields.js +8 -0
  66. package/crud/contentModel/systemFields.js.map +1 -0
  67. package/crud/contentModel/validateLayout.d.ts +2 -0
  68. package/{content/plugins/crud → crud}/contentModel/validateLayout.js +1 -3
  69. package/crud/contentModel/validateLayout.js.map +1 -0
  70. package/crud/contentModel/validateModel.d.ts +9 -0
  71. package/crud/contentModel/validateModel.js +32 -0
  72. package/crud/contentModel/validateModel.js.map +1 -0
  73. package/crud/contentModel/validateModelFields.d.ts +9 -0
  74. package/crud/contentModel/validateModelFields.js +359 -0
  75. package/crud/contentModel/validateModelFields.js.map +1 -0
  76. package/{content/plugins/crud → crud}/contentModel.crud.d.ts +3 -3
  77. package/crud/contentModel.crud.js +590 -0
  78. package/crud/contentModel.crud.js.map +1 -0
  79. package/crud/contentModelGroup/beforeCreate.d.ts +10 -0
  80. package/{content/plugins/crud → crud}/contentModelGroup/beforeCreate.js +9 -9
  81. package/crud/contentModelGroup/beforeCreate.js.map +1 -0
  82. package/crud/contentModelGroup/beforeDelete.d.ts +10 -0
  83. package/{content/plugins/crud → crud}/contentModelGroup/beforeDelete.js +4 -4
  84. package/crud/contentModelGroup/beforeDelete.js.map +1 -0
  85. package/crud/contentModelGroup/beforeUpdate.d.ts +9 -0
  86. package/{content/plugins/crud → crud}/contentModelGroup/beforeUpdate.js +3 -3
  87. package/crud/contentModelGroup/beforeUpdate.js.map +1 -0
  88. package/{content/plugins/crud → crud}/contentModelGroup.crud.d.ts +3 -3
  89. package/{content/plugins/crud → crud}/contentModelGroup.crud.js +108 -93
  90. package/crud/contentModelGroup.crud.js.map +1 -0
  91. package/crud/index.d.ts +6 -0
  92. package/crud/index.js +85 -0
  93. package/crud/index.js.map +1 -0
  94. package/{plugins/crud → crud}/settings.crud.d.ts +3 -3
  95. package/crud/settings.crud.js +83 -0
  96. package/crud/settings.crud.js.map +1 -0
  97. package/{plugins/crud → crud}/system.crud.d.ts +6 -3
  98. package/crud/system.crud.js +221 -0
  99. package/crud/system.crud.js.map +1 -0
  100. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.d.ts +7 -0
  101. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +66 -0
  102. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -0
  103. package/fieldConverters/CmsModelObjectFieldConverterPlugin.d.ts +11 -0
  104. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +304 -0
  105. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -0
  106. package/fieldConverters/index.d.ts +3 -0
  107. package/fieldConverters/index.js +16 -0
  108. package/fieldConverters/index.js.map +1 -0
  109. package/{content/plugins → graphql}/buildSchemaPlugins.d.ts +2 -3
  110. package/graphql/buildSchemaPlugins.js +27 -0
  111. package/graphql/buildSchemaPlugins.js.map +1 -0
  112. package/graphql/graphQLHandlerFactory.d.ts +5 -0
  113. package/graphql/graphQLHandlerFactory.js +158 -0
  114. package/graphql/graphQLHandlerFactory.js.map +1 -0
  115. package/graphql/index.d.ts +5 -0
  116. package/graphql/index.js +57 -0
  117. package/graphql/index.js.map +1 -0
  118. package/graphql/schema/baseContentSchema.d.ts +3 -0
  119. package/graphql/schema/baseContentSchema.js +76 -0
  120. package/graphql/schema/baseContentSchema.js.map +1 -0
  121. package/graphql/schema/contentEntries.d.ts +3 -0
  122. package/graphql/schema/contentEntries.js +351 -0
  123. package/graphql/schema/contentEntries.js.map +1 -0
  124. package/graphql/schema/contentModelGroups.d.ts +3 -0
  125. package/{content/plugins → graphql}/schema/contentModelGroups.js +34 -15
  126. package/graphql/schema/contentModelGroups.js.map +1 -0
  127. package/graphql/schema/contentModels.d.ts +3 -0
  128. package/{content/plugins → graphql}/schema/contentModels.js +47 -10
  129. package/graphql/schema/contentModels.js.map +1 -0
  130. package/graphql/schema/createFieldResolvers.d.ts +20 -0
  131. package/{content/plugins → graphql}/schema/createFieldResolvers.js +48 -23
  132. package/graphql/schema/createFieldResolvers.js.map +1 -0
  133. package/graphql/schema/createManageResolvers.d.ts +12 -0
  134. package/{content/plugins → graphql}/schema/createManageResolvers.js +36 -34
  135. package/graphql/schema/createManageResolvers.js.map +1 -0
  136. package/graphql/schema/createManageSDL.d.ts +10 -0
  137. package/{content/plugins → graphql}/schema/createManageSDL.js +23 -16
  138. package/graphql/schema/createManageSDL.js.map +1 -0
  139. package/graphql/schema/createPreviewResolvers.d.ts +12 -0
  140. package/graphql/schema/createPreviewResolvers.js +58 -0
  141. package/graphql/schema/createPreviewResolvers.js.map +1 -0
  142. package/graphql/schema/createReadResolvers.d.ts +12 -0
  143. package/graphql/schema/createReadResolvers.js +58 -0
  144. package/graphql/schema/createReadResolvers.js.map +1 -0
  145. package/graphql/schema/createReadSDL.d.ts +10 -0
  146. package/{content/plugins → graphql}/schema/createReadSDL.js +14 -8
  147. package/graphql/schema/createReadSDL.js.map +1 -0
  148. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +6 -0
  149. package/{content/plugins → graphql}/schema/resolvers/commonFieldResolvers.js +0 -0
  150. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -0
  151. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +7 -0
  152. package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreate.js +2 -4
  153. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -0
  154. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +8 -0
  155. package/{content/plugins → graphql}/schema/resolvers/manage/resolveCreateFrom.js +2 -4
  156. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -0
  157. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +7 -0
  158. package/{content/plugins → graphql}/schema/resolvers/manage/resolveDelete.js +10 -8
  159. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -0
  160. package/graphql/schema/resolvers/manage/resolveGet.d.ts +7 -0
  161. package/graphql/schema/resolvers/manage/resolveGet.js +79 -0
  162. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -0
  163. package/graphql/schema/resolvers/manage/resolveGetByIds.d.ts +7 -0
  164. package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetByIds.js +2 -4
  165. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -0
  166. package/graphql/schema/resolvers/manage/resolveGetRevisions.d.ts +7 -0
  167. package/{content/plugins → graphql}/schema/resolvers/manage/resolveGetRevisions.js +2 -4
  168. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -0
  169. package/graphql/schema/resolvers/manage/resolveList.d.ts +4 -0
  170. package/{content/plugins/schema/resolvers/read → graphql/schema/resolvers/manage}/resolveList.js +2 -4
  171. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -0
  172. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +7 -0
  173. package/{content/plugins → graphql}/schema/resolvers/manage/resolvePublish.js +0 -0
  174. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -0
  175. package/graphql/schema/resolvers/manage/resolveRepublish.d.ts +7 -0
  176. package/{content/plugins/schema/resolvers/manage/resolveGet.js → graphql/schema/resolvers/manage/resolveRepublish.js} +4 -4
  177. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -0
  178. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestChanges.d.ts +4 -3
  179. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestChanges.js +2 -4
  180. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +1 -0
  181. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestReview.d.ts +4 -3
  182. package/{content/plugins → graphql}/schema/resolvers/manage/resolveRequestReview.js +2 -4
  183. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +1 -0
  184. package/graphql/schema/resolvers/manage/resolveUnpublish.d.ts +7 -0
  185. package/{content/plugins → graphql}/schema/resolvers/manage/resolveUnpublish.js +0 -0
  186. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -0
  187. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +8 -0
  188. package/{content/plugins → graphql}/schema/resolvers/manage/resolveUpdate.js +2 -4
  189. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -0
  190. package/graphql/schema/resolvers/preview/resolveGet.d.ts +4 -0
  191. package/graphql/schema/resolvers/preview/resolveGet.js +34 -0
  192. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -0
  193. package/graphql/schema/resolvers/preview/resolveList.d.ts +4 -0
  194. package/{content/plugins → graphql}/schema/resolvers/preview/resolveList.js +2 -4
  195. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -0
  196. package/graphql/schema/resolvers/read/resolveGet.d.ts +4 -0
  197. package/graphql/schema/resolvers/read/resolveGet.js +34 -0
  198. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -0
  199. package/graphql/schema/resolvers/read/resolveList.d.ts +4 -0
  200. package/{content/plugins/schema/resolvers/manage → graphql/schema/resolvers/read}/resolveList.js +2 -4
  201. package/graphql/schema/resolvers/read/resolveList.js.map +1 -0
  202. package/{content/plugins → graphql}/schema/schemaPlugins.d.ts +1 -1
  203. package/{content/plugins → graphql}/schema/schemaPlugins.js +25 -6
  204. package/graphql/schema/schemaPlugins.js.map +1 -0
  205. package/graphql/system.d.ts +6 -0
  206. package/graphql/system.js +119 -0
  207. package/graphql/system.js.map +1 -0
  208. package/graphqlFields/boolean.d.ts +2 -0
  209. package/graphqlFields/boolean.js +69 -0
  210. package/graphqlFields/boolean.js.map +1 -0
  211. package/graphqlFields/datetime.d.ts +2 -0
  212. package/graphqlFields/datetime.js +95 -0
  213. package/graphqlFields/datetime.js.map +1 -0
  214. package/graphqlFields/file.d.ts +2 -0
  215. package/graphqlFields/file.js +50 -0
  216. package/graphqlFields/file.js.map +1 -0
  217. package/graphqlFields/helpers.d.ts +6 -0
  218. package/graphqlFields/helpers.js +49 -0
  219. package/graphqlFields/helpers.js.map +1 -0
  220. package/graphqlFields/index.d.ts +2 -0
  221. package/graphqlFields/index.js +28 -0
  222. package/graphqlFields/index.js.map +1 -0
  223. package/graphqlFields/longText.d.ts +2 -0
  224. package/graphqlFields/longText.js +63 -0
  225. package/graphqlFields/longText.js.map +1 -0
  226. package/graphqlFields/number.d.ts +2 -0
  227. package/graphqlFields/number.js +75 -0
  228. package/graphqlFields/number.js.map +1 -0
  229. package/graphqlFields/object.d.ts +2 -0
  230. package/graphqlFields/object.js +225 -0
  231. package/graphqlFields/object.js.map +1 -0
  232. package/graphqlFields/ref.d.ts +2 -0
  233. package/graphqlFields/ref.js +275 -0
  234. package/graphqlFields/ref.js.map +1 -0
  235. package/graphqlFields/richText.d.ts +2 -0
  236. package/graphqlFields/richText.js +56 -0
  237. package/graphqlFields/richText.js.map +1 -0
  238. package/graphqlFields/text.d.ts +2 -0
  239. package/graphqlFields/text.js +73 -0
  240. package/graphqlFields/text.js.map +1 -0
  241. package/index.d.ts +10 -12
  242. package/index.js +80 -37
  243. package/index.js.map +1 -0
  244. package/modelManager/DefaultCmsModelManager.d.ts +14 -0
  245. package/{content/plugins/modelManager → modelManager}/DefaultCmsModelManager.js +12 -10
  246. package/modelManager/DefaultCmsModelManager.js.map +1 -0
  247. package/modelManager/index.d.ts +2 -0
  248. package/{content/plugins/modelManager → modelManager}/index.js +3 -3
  249. package/modelManager/index.js.map +1 -0
  250. package/package.json +37 -36
  251. package/parameters/context.d.ts +2 -0
  252. package/parameters/context.js +22 -0
  253. package/parameters/context.js.map +1 -0
  254. package/parameters/header.d.ts +2 -0
  255. package/parameters/header.js +55 -0
  256. package/parameters/header.js.map +1 -0
  257. package/parameters/index.d.ts +4 -0
  258. package/parameters/index.js +57 -0
  259. package/parameters/index.js.map +1 -0
  260. package/parameters/manual.d.ts +6 -0
  261. package/parameters/manual.js +44 -0
  262. package/parameters/manual.js.map +1 -0
  263. package/parameters/path.d.ts +2 -0
  264. package/parameters/path.js +51 -0
  265. package/parameters/path.js.map +1 -0
  266. package/plugins/CmsGroupPlugin.d.ts +13 -0
  267. package/{content/plugins → plugins}/CmsGroupPlugin.js +9 -3
  268. package/plugins/CmsGroupPlugin.js.map +1 -0
  269. package/plugins/CmsModelFieldConverterPlugin.d.ts +14 -0
  270. package/plugins/CmsModelFieldConverterPlugin.js +17 -0
  271. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -0
  272. package/plugins/CmsModelPlugin.d.ts +45 -0
  273. package/plugins/CmsModelPlugin.js +194 -0
  274. package/plugins/CmsModelPlugin.js.map +1 -0
  275. package/plugins/CmsParametersPlugin.d.ts +20 -0
  276. package/plugins/CmsParametersPlugin.js +28 -0
  277. package/plugins/CmsParametersPlugin.js.map +1 -0
  278. package/{content/plugins/storage → plugins}/StorageTransformPlugin.d.ts +4 -3
  279. package/{content/plugins/storage → plugins}/StorageTransformPlugin.js +2 -1
  280. package/plugins/StorageTransformPlugin.js.map +1 -0
  281. package/plugins/index.d.ts +5 -0
  282. package/plugins/index.js +70 -0
  283. package/plugins/index.js.map +1 -0
  284. package/storage/default.d.ts +2 -0
  285. package/storage/default.js +27 -0
  286. package/storage/default.js.map +1 -0
  287. package/storage/object.d.ts +2 -0
  288. package/storage/object.js +124 -0
  289. package/storage/object.js.map +1 -0
  290. package/types.d.ts +645 -348
  291. package/types.js +52 -2
  292. package/types.js.map +1 -0
  293. package/upgrades/5.33.0/index.d.ts +3 -0
  294. package/upgrades/5.33.0/index.js +182 -0
  295. package/upgrades/5.33.0/index.js.map +1 -0
  296. package/upgrades/index.d.ts +1 -0
  297. package/upgrades/index.js +12 -0
  298. package/upgrades/index.js.map +1 -0
  299. package/utils/access.d.ts +8 -0
  300. package/utils/access.js +90 -0
  301. package/utils/access.js.map +1 -0
  302. package/utils/converters/Converter.d.ts +27 -0
  303. package/utils/converters/Converter.js +71 -0
  304. package/utils/converters/Converter.js.map +1 -0
  305. package/utils/converters/ConverterCollection.d.ts +24 -0
  306. package/utils/converters/ConverterCollection.js +113 -0
  307. package/utils/converters/ConverterCollection.js.map +1 -0
  308. package/utils/converters/valueKeyStorageConverter.d.ts +18 -0
  309. package/utils/converters/valueKeyStorageConverter.js +148 -0
  310. package/utils/converters/valueKeyStorageConverter.js.map +1 -0
  311. package/{content/plugins/utils → utils}/createTypeName.d.ts +3 -3
  312. package/{content/plugins/utils → utils}/createTypeName.js +1 -1
  313. package/utils/createTypeName.js.map +1 -0
  314. package/{content/plugins/utils → utils}/entryStorage.d.ts +3 -3
  315. package/{content/plugins/utils → utils}/entryStorage.js +4 -12
  316. package/utils/entryStorage.js.map +1 -0
  317. package/utils/filterAsync.d.ts +1 -0
  318. package/utils/filterAsync.js +23 -0
  319. package/utils/filterAsync.js.map +1 -0
  320. package/utils/filterModelFields.d.ts +16 -0
  321. package/utils/filterModelFields.js +77 -0
  322. package/utils/filterModelFields.js.map +1 -0
  323. package/utils/getEntryTitle.d.ts +2 -0
  324. package/{content/plugins/utils → utils}/getEntryTitle.js +7 -6
  325. package/utils/getEntryTitle.js.map +1 -0
  326. package/utils/getSchemaFromFieldPlugins.d.ts +12 -0
  327. package/utils/getSchemaFromFieldPlugins.js +35 -0
  328. package/utils/getSchemaFromFieldPlugins.js.map +1 -0
  329. package/utils/ownership.d.ts +8 -0
  330. package/utils/ownership.js +41 -0
  331. package/utils/ownership.js.map +1 -0
  332. package/utils/permissions.d.ts +7 -0
  333. package/utils/permissions.js +106 -0
  334. package/utils/permissions.js.map +1 -0
  335. package/utils/pluralizedTypeName.d.ts +1 -0
  336. package/{content/plugins/utils → utils}/pluralizedTypeName.js +1 -1
  337. package/utils/pluralizedTypeName.js.map +1 -0
  338. package/utils/renderFields.d.ts +15 -0
  339. package/{content/plugins/utils → utils}/renderFields.js +4 -2
  340. package/utils/renderFields.js.map +1 -0
  341. package/utils/renderGetFilterFields.d.ts +10 -0
  342. package/{content/plugins/utils → utils}/renderGetFilterFields.js +28 -13
  343. package/utils/renderGetFilterFields.js.map +1 -0
  344. package/utils/renderInputFields.d.ts +14 -0
  345. package/{content/plugins/utils → utils}/renderInputFields.js +1 -1
  346. package/utils/renderInputFields.js.map +1 -0
  347. package/utils/renderListFilterFields.d.ts +11 -0
  348. package/{content/plugins/utils → utils}/renderListFilterFields.js +37 -17
  349. package/utils/renderListFilterFields.js.map +1 -0
  350. package/{content/plugins/utils → utils}/renderSortEnum.d.ts +1 -1
  351. package/utils/renderSortEnum.js +32 -0
  352. package/utils/renderSortEnum.js.map +1 -0
  353. package/utils/toSlug.d.ts +1 -0
  354. package/utils/toSlug.js +20 -0
  355. package/utils/toSlug.js.map +1 -0
  356. package/validators/dateGte.d.ts +2 -0
  357. package/{content/plugins/validators → validators}/dateGte.js +4 -4
  358. package/validators/dateGte.js.map +1 -0
  359. package/validators/dateLte.d.ts +2 -0
  360. package/{content/plugins/validators → validators}/dateLte.js +4 -4
  361. package/validators/dateLte.js.map +1 -0
  362. package/validators/gte.d.ts +2 -0
  363. package/validators/gte.js +36 -0
  364. package/validators/gte.js.map +1 -0
  365. package/validators/in.d.ts +2 -0
  366. package/validators/in.js +36 -0
  367. package/validators/in.js.map +1 -0
  368. package/validators/index.d.ts +1 -0
  369. package/validators/index.js +36 -0
  370. package/validators/index.js.map +1 -0
  371. package/validators/lte.d.ts +2 -0
  372. package/validators/lte.js +36 -0
  373. package/validators/lte.js.map +1 -0
  374. package/validators/maxLength.d.ts +2 -0
  375. package/validators/maxLength.js +36 -0
  376. package/validators/maxLength.js.map +1 -0
  377. package/validators/minLength.d.ts +2 -0
  378. package/validators/minLength.js +36 -0
  379. package/validators/minLength.js.map +1 -0
  380. package/validators/pattern.d.ts +2 -0
  381. package/validators/pattern.js +50 -0
  382. package/validators/pattern.js.map +1 -0
  383. package/validators/patternPlugins/email.d.ts +2 -0
  384. package/validators/patternPlugins/email.js +20 -0
  385. package/validators/patternPlugins/email.js.map +1 -0
  386. package/validators/patternPlugins/index.d.ts +2 -0
  387. package/validators/patternPlugins/index.js +24 -0
  388. package/validators/patternPlugins/index.js.map +1 -0
  389. package/validators/patternPlugins/lowerCase.d.ts +2 -0
  390. package/validators/patternPlugins/lowerCase.js +20 -0
  391. package/validators/patternPlugins/lowerCase.js.map +1 -0
  392. package/validators/patternPlugins/lowerCaseSpace.d.ts +2 -0
  393. package/validators/patternPlugins/lowerCaseSpace.js +20 -0
  394. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
  395. package/validators/patternPlugins/upperCase.d.ts +2 -0
  396. package/validators/patternPlugins/upperCase.js +20 -0
  397. package/validators/patternPlugins/upperCase.js.map +1 -0
  398. package/validators/patternPlugins/upperCaseSpace.d.ts +2 -0
  399. package/validators/patternPlugins/upperCaseSpace.js +20 -0
  400. package/validators/patternPlugins/upperCaseSpace.js.map +1 -0
  401. package/validators/patternPlugins/url.d.ts +2 -0
  402. package/validators/patternPlugins/url.js +20 -0
  403. package/validators/patternPlugins/url.js.map +1 -0
  404. package/validators/required.d.ts +2 -0
  405. package/validators/required.js +27 -0
  406. package/validators/required.js.map +1 -0
  407. package/validators/timeGte.d.ts +2 -0
  408. package/{content/plugins/validators → validators}/timeGte.js +6 -4
  409. package/validators/timeGte.js.map +1 -0
  410. package/validators/timeLte.d.ts +2 -0
  411. package/{content/plugins/validators → validators}/timeLte.js +6 -4
  412. package/validators/timeLte.js.map +1 -0
  413. package/validators/unique.d.ts +6 -0
  414. package/validators/unique.js +63 -0
  415. package/validators/unique.js.map +1 -0
  416. package/content/contextSetup.d.ts +0 -4
  417. package/content/contextSetup.js +0 -65
  418. package/content/graphQLHandlerFactory.d.ts +0 -5
  419. package/content/graphQLHandlerFactory.js +0 -173
  420. package/content/plugins/CmsGroupPlugin.d.ts +0 -11
  421. package/content/plugins/CmsModelPlugin.d.ts +0 -11
  422. package/content/plugins/CmsModelPlugin.js +0 -24
  423. package/content/plugins/buildSchemaPlugins.js +0 -29
  424. package/content/plugins/crud/contentEntry/afterDelete.d.ts +0 -7
  425. package/content/plugins/crud/contentEntry/beforeCreate.d.ts +0 -7
  426. package/content/plugins/crud/contentEntry/beforeUpdate.d.ts +0 -7
  427. package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +0 -4
  428. package/content/plugins/crud/contentEntry.crud.js +0 -931
  429. package/content/plugins/crud/contentModel/afterCreate.d.ts +0 -7
  430. package/content/plugins/crud/contentModel/afterCreate.js +0 -18
  431. package/content/plugins/crud/contentModel/afterDelete.d.ts +0 -7
  432. package/content/plugins/crud/contentModel/afterDelete.js +0 -18
  433. package/content/plugins/crud/contentModel/afterUpdate.d.ts +0 -7
  434. package/content/plugins/crud/contentModel/afterUpdate.js +0 -18
  435. package/content/plugins/crud/contentModel/beforeCreate.d.ts +0 -9
  436. package/content/plugins/crud/contentModel/beforeDelete.d.ts +0 -9
  437. package/content/plugins/crud/contentModel/beforeUpdate.d.ts +0 -9
  438. package/content/plugins/crud/contentModel/beforeUpdate.js +0 -128
  439. package/content/plugins/crud/contentModel/contentModelManagerFactory.d.ts +0 -2
  440. package/content/plugins/crud/contentModel/createFieldModels.d.ts +0 -2
  441. package/content/plugins/crud/contentModel/idValidation.d.ts +0 -2
  442. package/content/plugins/crud/contentModel/validateLayout.d.ts +0 -2
  443. package/content/plugins/crud/contentModel.crud.js +0 -425
  444. package/content/plugins/crud/contentModelGroup/beforeCreate.d.ts +0 -9
  445. package/content/plugins/crud/contentModelGroup/beforeDelete.d.ts +0 -9
  446. package/content/plugins/crud/contentModelGroup/beforeUpdate.d.ts +0 -8
  447. package/content/plugins/crud/index.d.ts +0 -6
  448. package/content/plugins/crud/index.js +0 -100
  449. package/content/plugins/graphqlFields/boolean.d.ts +0 -3
  450. package/content/plugins/graphqlFields/boolean.js +0 -69
  451. package/content/plugins/graphqlFields/datetime.d.ts +0 -3
  452. package/content/plugins/graphqlFields/datetime.js +0 -83
  453. package/content/plugins/graphqlFields/file.d.ts +0 -3
  454. package/content/plugins/graphqlFields/file.js +0 -49
  455. package/content/plugins/graphqlFields/index.d.ts +0 -2
  456. package/content/plugins/graphqlFields/index.js +0 -30
  457. package/content/plugins/graphqlFields/longText.d.ts +0 -3
  458. package/content/plugins/graphqlFields/longText.js +0 -62
  459. package/content/plugins/graphqlFields/number.d.ts +0 -3
  460. package/content/plugins/graphqlFields/number.js +0 -75
  461. package/content/plugins/graphqlFields/object.d.ts +0 -3
  462. package/content/plugins/graphqlFields/object.js +0 -180
  463. package/content/plugins/graphqlFields/ref.d.ts +0 -3
  464. package/content/plugins/graphqlFields/ref.js +0 -205
  465. package/content/plugins/graphqlFields/richText.d.ts +0 -3
  466. package/content/plugins/graphqlFields/richText.js +0 -55
  467. package/content/plugins/graphqlFields/text.d.ts +0 -3
  468. package/content/plugins/graphqlFields/text.js +0 -72
  469. package/content/plugins/internalSecurity/InternalAuthenticationPlugin.d.ts +0 -8
  470. package/content/plugins/internalSecurity/InternalAuthenticationPlugin.js +0 -54
  471. package/content/plugins/internalSecurity/InternalAuthorizationPlugin.d.ts +0 -7
  472. package/content/plugins/internalSecurity/InternalAuthorizationPlugin.js +0 -35
  473. package/content/plugins/modelManager/DefaultCmsModelManager.d.ts +0 -15
  474. package/content/plugins/modelManager/index.d.ts +0 -3
  475. package/content/plugins/schema/baseSchema.d.ts +0 -4
  476. package/content/plugins/schema/baseSchema.js +0 -98
  477. package/content/plugins/schema/contentEntries.d.ts +0 -4
  478. package/content/plugins/schema/contentEntries.js +0 -166
  479. package/content/plugins/schema/contentModelGroups.d.ts +0 -4
  480. package/content/plugins/schema/contentModels.d.ts +0 -4
  481. package/content/plugins/schema/createFieldResolvers.d.ts +0 -19
  482. package/content/plugins/schema/createManageResolvers.d.ts +0 -11
  483. package/content/plugins/schema/createManageSDL.d.ts +0 -9
  484. package/content/plugins/schema/createPreviewResolvers.d.ts +0 -10
  485. package/content/plugins/schema/createPreviewResolvers.js +0 -55
  486. package/content/plugins/schema/createReadResolvers.d.ts +0 -10
  487. package/content/plugins/schema/createReadResolvers.js +0 -55
  488. package/content/plugins/schema/createReadSDL.d.ts +0 -9
  489. package/content/plugins/schema/resolvers/commonFieldResolvers.d.ts +0 -6
  490. package/content/plugins/schema/resolvers/manage/resolveCreate.d.ts +0 -6
  491. package/content/plugins/schema/resolvers/manage/resolveCreateFrom.d.ts +0 -7
  492. package/content/plugins/schema/resolvers/manage/resolveDelete.d.ts +0 -2
  493. package/content/plugins/schema/resolvers/manage/resolveGet.d.ts +0 -2
  494. package/content/plugins/schema/resolvers/manage/resolveGetByIds.d.ts +0 -2
  495. package/content/plugins/schema/resolvers/manage/resolveGetRevisions.d.ts +0 -2
  496. package/content/plugins/schema/resolvers/manage/resolveList.d.ts +0 -2
  497. package/content/plugins/schema/resolvers/manage/resolvePublish.d.ts +0 -2
  498. package/content/plugins/schema/resolvers/manage/resolveUnpublish.d.ts +0 -2
  499. package/content/plugins/schema/resolvers/manage/resolveUpdate.d.ts +0 -7
  500. package/content/plugins/schema/resolvers/preview/resolveGet.d.ts +0 -2
  501. package/content/plugins/schema/resolvers/preview/resolveGet.js +0 -38
  502. package/content/plugins/schema/resolvers/preview/resolveList.d.ts +0 -2
  503. package/content/plugins/schema/resolvers/read/resolveGet.d.ts +0 -2
  504. package/content/plugins/schema/resolvers/read/resolveGet.js +0 -38
  505. package/content/plugins/schema/resolvers/read/resolveList.d.ts +0 -2
  506. package/content/plugins/storage/default.d.ts +0 -3
  507. package/content/plugins/storage/default.js +0 -28
  508. package/content/plugins/storage/object.d.ts +0 -3
  509. package/content/plugins/storage/object.js +0 -119
  510. package/content/plugins/utils/getEntryTitle.d.ts +0 -2
  511. package/content/plugins/utils/getSchemaFromFieldPlugins.d.ts +0 -11
  512. package/content/plugins/utils/getSchemaFromFieldPlugins.js +0 -30
  513. package/content/plugins/utils/pluralizedTypeName.d.ts +0 -1
  514. package/content/plugins/utils/renderFields.d.ts +0 -16
  515. package/content/plugins/utils/renderGetFilterFields.d.ts +0 -9
  516. package/content/plugins/utils/renderInputFields.d.ts +0 -14
  517. package/content/plugins/utils/renderListFilterFields.d.ts +0 -10
  518. package/content/plugins/utils/renderSortEnum.js +0 -32
  519. package/content/plugins/validators/dateGte.d.ts +0 -3
  520. package/content/plugins/validators/dateLte.d.ts +0 -3
  521. package/content/plugins/validators/gte.d.ts +0 -3
  522. package/content/plugins/validators/gte.js +0 -32
  523. package/content/plugins/validators/in.d.ts +0 -3
  524. package/content/plugins/validators/in.js +0 -32
  525. package/content/plugins/validators/index.d.ts +0 -2
  526. package/content/plugins/validators/index.js +0 -36
  527. package/content/plugins/validators/lte.d.ts +0 -3
  528. package/content/plugins/validators/lte.js +0 -32
  529. package/content/plugins/validators/maxLength.d.ts +0 -3
  530. package/content/plugins/validators/maxLength.js +0 -32
  531. package/content/plugins/validators/minLength.d.ts +0 -3
  532. package/content/plugins/validators/minLength.js +0 -32
  533. package/content/plugins/validators/pattern.d.ts +0 -3
  534. package/content/plugins/validators/pattern.js +0 -47
  535. package/content/plugins/validators/patternPlugins/email.d.ts +0 -3
  536. package/content/plugins/validators/patternPlugins/email.js +0 -17
  537. package/content/plugins/validators/patternPlugins/index.d.ts +0 -2
  538. package/content/plugins/validators/patternPlugins/index.js +0 -19
  539. package/content/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
  540. package/content/plugins/validators/patternPlugins/lowerCase.js +0 -17
  541. package/content/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
  542. package/content/plugins/validators/patternPlugins/upperCase.js +0 -17
  543. package/content/plugins/validators/patternPlugins/url.d.ts +0 -3
  544. package/content/plugins/validators/patternPlugins/url.js +0 -17
  545. package/content/plugins/validators/required.d.ts +0 -3
  546. package/content/plugins/validators/required.js +0 -25
  547. package/content/plugins/validators/timeGte.d.ts +0 -3
  548. package/content/plugins/validators/timeLte.d.ts +0 -3
  549. package/migrateCMSPermissions.d.ts +0 -17
  550. package/migrateCMSPermissions.js +0 -193
  551. package/plugins/context.d.ts +0 -4
  552. package/plugins/context.js +0 -34
  553. package/plugins/crud/index.d.ts +0 -6
  554. package/plugins/crud/index.js +0 -100
  555. package/plugins/crud/settings.crud.js +0 -93
  556. package/plugins/crud/system.crud.js +0 -182
  557. package/plugins/graphql/system.d.ts +0 -17
  558. package/plugins/graphql/system.js +0 -72
  559. package/plugins/graphql.d.ts +0 -2
  560. package/plugins/graphql.js +0 -79
  561. package/plugins/upgrades/index.d.ts +0 -2
  562. package/plugins/upgrades/index.js +0 -14
  563. package/plugins/upgrades/v5.5.0/helpers.d.ts +0 -6
  564. package/plugins/upgrades/v5.5.0/helpers.js +0 -10
  565. package/plugins/upgrades/v5.5.0/index.d.ts +0 -4
  566. package/plugins/upgrades/v5.5.0/index.js +0 -129
  567. package/transformers.d.ts +0 -2
  568. package/transformers.js +0 -25
  569. package/utils.d.ts +0 -25
  570. package/utils.js +0 -251
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.referenceFieldsMapping = void 0;
9
+
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
12
+ var _error = _interopRequireDefault(require("@webiny/error"));
13
+
14
+ var _dotProp = _interopRequireDefault(require("dot-prop"));
15
+
16
+ var _utils = require("@webiny/utils");
17
+
18
+ const buildReferenceFieldPaths = params => {
19
+ const {
20
+ fields,
21
+ parentPaths: initialParentPaths,
22
+ input
23
+ } = params;
24
+ const parentPaths = [...initialParentPaths];
25
+ const isMultipleValues = Array.isArray(input);
26
+ return fields.filter(field => ["object", "ref"].includes(field.type)).reduce((collection, field) => {
27
+ var _field$settings2;
28
+
29
+ /**
30
+ * First we check the ref field
31
+ */
32
+ if (field.type === "ref") {
33
+ const parentPathsValue = parentPaths.length > 0 ? `${parentPaths.join(".")}.` : "";
34
+
35
+ if (field.multipleValues) {
36
+ const inputValue = _dotProp.default.get(input, `${field.fieldId}`, []);
37
+
38
+ if (Array.isArray(inputValue) === false) {
39
+ return collection;
40
+ }
41
+
42
+ for (const key in inputValue) {
43
+ const path = `${parentPathsValue}${field.fieldId}.${key}`;
44
+ collection.push(path);
45
+ }
46
+
47
+ return collection;
48
+ }
49
+
50
+ if (isMultipleValues) {
51
+ for (const key in input) {
52
+ const path = `${parentPathsValue}${key}.${field.fieldId}`;
53
+ collection.push(path);
54
+ }
55
+
56
+ return collection;
57
+ }
58
+
59
+ collection.push(`${parentPathsValue}${field.fieldId}`);
60
+ return collection;
61
+ }
62
+ /**
63
+ * Then we move onto the object field
64
+ */
65
+
66
+
67
+ const parentPathsValue = parentPaths.length > 0 ? `${parentPaths.join(".")}.` : "";
68
+ /**
69
+ * This is if received input is array. We need to map key with fieldId at this point.
70
+ */
71
+
72
+ if (isMultipleValues) {
73
+ for (const key in input) {
74
+ const path = `${parentPathsValue}${key}.${field.fieldId}`;
75
+ collection.push(path);
76
+ }
77
+
78
+ return collection;
79
+ }
80
+
81
+ const objFieldPath = `${field.fieldId}`;
82
+
83
+ const objFieldInputValue = _dotProp.default.get(input, objFieldPath, []);
84
+ /**
85
+ * If field is multiple values one, we need to go through the input and use the existing keys.
86
+ */
87
+
88
+
89
+ if (field.multipleValues) {
90
+ if (Array.isArray(objFieldInputValue) === false) {
91
+ return collection;
92
+ }
93
+
94
+ for (const key in objFieldInputValue) {
95
+ var _field$settings;
96
+
97
+ const result = buildReferenceFieldPaths({
98
+ fields: ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [],
99
+ input: objFieldInputValue[key],
100
+ parentPaths: parentPaths.concat([field.fieldId, key])
101
+ });
102
+ collection.push(...result);
103
+ }
104
+
105
+ return collection;
106
+ }
107
+ /**
108
+ * Single value reference field.
109
+ */
110
+
111
+
112
+ const results = buildReferenceFieldPaths({
113
+ fields: ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.fields) || [],
114
+ input: objFieldInputValue,
115
+ parentPaths: parentPaths.concat([field.fieldId])
116
+ });
117
+ return collection.concat(results);
118
+ }, []);
119
+ };
120
+
121
+ const getReferenceFieldValue = ref => {
122
+ if (!ref) {
123
+ return {
124
+ id: null,
125
+ modelId: null
126
+ };
127
+ }
128
+
129
+ return {
130
+ id: (ref.id || ref.entryId || "").trim() || null,
131
+ modelId: (ref.modelId || "").trim() || null
132
+ };
133
+ };
134
+
135
+ const referenceFieldsMapping = async params => {
136
+ const {
137
+ context,
138
+ model,
139
+ input,
140
+ validateEntries = false
141
+ } = params;
142
+ let output = (0, _objectSpread2.default)({}, input);
143
+ const referenceFieldPaths = buildReferenceFieldPaths({
144
+ fields: model.fields,
145
+ input,
146
+ parentPaths: []
147
+ });
148
+
149
+ if (referenceFieldPaths.length === 0) {
150
+ return output;
151
+ }
152
+
153
+ const referencesByModel = {};
154
+ const pathsByReferenceId = {};
155
+
156
+ for (const path of referenceFieldPaths) {
157
+ const ref = _dotProp.default.get(output, path);
158
+
159
+ const {
160
+ id,
161
+ modelId
162
+ } = getReferenceFieldValue(ref);
163
+
164
+ if (!id || !modelId) {
165
+ continue;
166
+ }
167
+
168
+ if (!referencesByModel[modelId]) {
169
+ referencesByModel[modelId] = [];
170
+ }
171
+
172
+ referencesByModel[modelId].push(id);
173
+
174
+ if (!pathsByReferenceId[id]) {
175
+ pathsByReferenceId[id] = [];
176
+ }
177
+
178
+ pathsByReferenceId[id].push(path);
179
+ }
180
+ /**
181
+ * Again, no point in going further.
182
+ */
183
+
184
+
185
+ if (Object.keys(referencesByModel).length === 0) {
186
+ return output;
187
+ }
188
+ /**
189
+ * Load all models and use only those that are used in reference.
190
+ */
191
+
192
+
193
+ const models = (await context.cms.listModels()).filter(model => {
194
+ const entries = referencesByModel[model.modelId];
195
+
196
+ if (Array.isArray(entries) === false || entries.length === 0) {
197
+ return false;
198
+ }
199
+
200
+ return true;
201
+ });
202
+ /**
203
+ * Check for any model existence, just in case.
204
+ */
205
+
206
+ if (models.length === 0) {
207
+ return output;
208
+ }
209
+ /**
210
+ * Load all the entries by their ID
211
+ */
212
+
213
+
214
+ const promises = models.map(model => {
215
+ return context.cms.getEntriesByIds(model, referencesByModel[model.modelId]);
216
+ });
217
+ const results = await Promise.all(promises);
218
+ const records = results.reduce((collection, entries) => {
219
+ for (const entry of entries) {
220
+ collection[entry.id] = {
221
+ id: entry.id,
222
+ entryId: entry.entryId,
223
+ modelId: entry.modelId
224
+ };
225
+ }
226
+
227
+ return collection;
228
+ }, {});
229
+ /**
230
+ * Verify that all referenced entries actually exist.
231
+ */
232
+
233
+ for (const modelId in referencesByModel) {
234
+ const entries = referencesByModel[modelId];
235
+
236
+ for (const id of entries) {
237
+ if (records[id]) {
238
+ continue;
239
+ } else if (validateEntries === true) {
240
+ throw new _error.default(`Missing referenced entry with id "${id}" in model "${modelId}".`, "ENTRY_NOT_FOUND", {
241
+ id,
242
+ model: modelId
243
+ });
244
+ }
245
+
246
+ const {
247
+ id: entryId
248
+ } = (0, _utils.parseIdentifier)(id);
249
+ records[id] = {
250
+ id,
251
+ entryId,
252
+ modelId
253
+ };
254
+ }
255
+ }
256
+ /**
257
+ * In the end, assign the entryId, id and model values to the output.
258
+ */
259
+
260
+
261
+ for (const id in pathsByReferenceId) {
262
+ const entry = records[id];
263
+ const paths = pathsByReferenceId[id];
264
+
265
+ if (!entry) {
266
+ if (validateEntries === true) {
267
+ throw new _error.default("Missing entry in records.", "ENTRY_ERROR", {
268
+ id,
269
+ paths
270
+ });
271
+ }
272
+
273
+ continue;
274
+ }
275
+
276
+ for (const path of paths) {
277
+ output = _dotProp.default.set(output, path, {
278
+ id: entry.id,
279
+ entryId: entry.entryId,
280
+ modelId: entry.modelId
281
+ });
282
+ }
283
+ }
284
+
285
+ return output;
286
+ };
287
+
288
+ exports.referenceFieldsMapping = referenceFieldsMapping;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["buildReferenceFieldPaths","params","fields","parentPaths","initialParentPaths","input","isMultipleValues","Array","isArray","filter","field","includes","type","reduce","collection","parentPathsValue","length","join","multipleValues","inputValue","dotProp","get","fieldId","key","path","push","objFieldPath","objFieldInputValue","result","settings","concat","results","getReferenceFieldValue","ref","id","modelId","entryId","trim","referenceFieldsMapping","context","model","validateEntries","output","referenceFieldPaths","referencesByModel","pathsByReferenceId","Object","keys","models","cms","listModels","entries","promises","map","getEntriesByIds","Promise","all","records","entry","WebinyError","parseIdentifier","paths","set"],"sources":["referenceFieldsMapping.ts"],"sourcesContent":["import { CmsContext, CmsModel, CmsModelField } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport dotProp from \"dot-prop\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\ninterface CmsRefEntry {\n id: string;\n entryId: string;\n modelId: string;\n}\n\ninterface ReferenceObject {\n id: string;\n modelId: string;\n}\n\ninterface Params {\n context: CmsContext;\n model: CmsModel;\n input: Record<string, ReferenceObject | ReferenceObject[]>;\n validateEntries?: boolean;\n}\n\ninterface BuildReferenceFieldPaths {\n fields: CmsModelField[];\n parentPaths: string[];\n input: Record<string, any>;\n}\n\nconst buildReferenceFieldPaths = (params: BuildReferenceFieldPaths): string[] => {\n const { fields, parentPaths: initialParentPaths, input } = params;\n\n const parentPaths = [...initialParentPaths];\n\n const isMultipleValues = Array.isArray(input);\n\n return fields\n .filter(field => [\"object\", \"ref\"].includes(field.type))\n .reduce((collection, field) => {\n /**\n * First we check the ref field\n */\n if (field.type === \"ref\") {\n const parentPathsValue = parentPaths.length > 0 ? `${parentPaths.join(\".\")}.` : \"\";\n if (field.multipleValues) {\n const inputValue = dotProp.get(input, `${field.fieldId}`, []);\n if (Array.isArray(inputValue) === false) {\n return collection;\n }\n for (const key in inputValue) {\n const path = `${parentPathsValue}${field.fieldId}.${key}`;\n collection.push(path);\n }\n return collection;\n }\n\n if (isMultipleValues) {\n for (const key in input) {\n const path = `${parentPathsValue}${key}.${field.fieldId}`;\n collection.push(path);\n }\n return collection;\n }\n\n collection.push(`${parentPathsValue}${field.fieldId}`);\n\n return collection;\n }\n /**\n * Then we move onto the object field\n */\n const parentPathsValue = parentPaths.length > 0 ? `${parentPaths.join(\".\")}.` : \"\";\n /**\n * This is if received input is array. We need to map key with fieldId at this point.\n */\n if (isMultipleValues) {\n for (const key in input) {\n const path = `${parentPathsValue}${key}.${field.fieldId}`;\n collection.push(path);\n }\n return collection;\n }\n\n const objFieldPath = `${field.fieldId}`;\n const objFieldInputValue = dotProp.get(input, objFieldPath, []);\n\n /**\n * If field is multiple values one, we need to go through the input and use the existing keys.\n */\n if (field.multipleValues) {\n if (Array.isArray(objFieldInputValue) === false) {\n return collection;\n }\n for (const key in objFieldInputValue) {\n const result = buildReferenceFieldPaths({\n fields: field.settings?.fields || [],\n input: objFieldInputValue[key],\n parentPaths: parentPaths.concat([field.fieldId, key])\n });\n collection.push(...result);\n }\n\n return collection;\n }\n\n /**\n * Single value reference field.\n */\n const results = buildReferenceFieldPaths({\n fields: field.settings?.fields || [],\n input: objFieldInputValue,\n parentPaths: parentPaths.concat([field.fieldId])\n });\n\n return collection.concat(results);\n }, [] as string[]);\n};\n\nconst getReferenceFieldValue = (ref: any): { id: string | null; modelId: string | null } => {\n if (!ref) {\n return {\n id: null,\n modelId: null\n };\n }\n return {\n id: (ref.id || ref.entryId || \"\").trim() || null,\n modelId: (ref.modelId || \"\").trim() || null\n };\n};\n\nexport const referenceFieldsMapping = async (params: Params): Promise<Record<string, any>> => {\n const { context, model, input, validateEntries = false } = params;\n\n let output: Record<string, any> = {\n ...input\n };\n\n const referenceFieldPaths = buildReferenceFieldPaths({\n fields: model.fields,\n input,\n parentPaths: []\n });\n if (referenceFieldPaths.length === 0) {\n return output;\n }\n\n const referencesByModel: Record<string, string[]> = {};\n const pathsByReferenceId: Record<string, string[]> = {};\n\n for (const path of referenceFieldPaths) {\n const ref = dotProp.get(output, path) as ReferenceObject | any;\n\n const { id, modelId } = getReferenceFieldValue(ref);\n\n if (!id || !modelId) {\n continue;\n }\n if (!referencesByModel[modelId]) {\n referencesByModel[modelId] = [];\n }\n referencesByModel[modelId].push(id);\n if (!pathsByReferenceId[id]) {\n pathsByReferenceId[id] = [];\n }\n pathsByReferenceId[id].push(path);\n }\n\n /**\n * Again, no point in going further.\n */\n if (Object.keys(referencesByModel).length === 0) {\n return output;\n }\n /**\n * Load all models and use only those that are used in reference.\n */\n const models = (await context.cms.listModels()).filter(model => {\n const entries = referencesByModel[model.modelId];\n if (Array.isArray(entries) === false || entries.length === 0) {\n return false;\n }\n return true;\n });\n /**\n * Check for any model existence, just in case.\n */\n if (models.length === 0) {\n return output;\n }\n\n /**\n * Load all the entries by their ID\n */\n const promises = models.map(model => {\n return context.cms.getEntriesByIds(model, referencesByModel[model.modelId]);\n });\n\n const results = await Promise.all(promises);\n\n const records: Record<string, CmsRefEntry> = results.reduce((collection, entries) => {\n for (const entry of entries) {\n collection[entry.id] = {\n id: entry.id,\n entryId: entry.entryId,\n modelId: entry.modelId\n };\n }\n return collection;\n }, {} as Record<string, CmsRefEntry>);\n /**\n * Verify that all referenced entries actually exist.\n */\n for (const modelId in referencesByModel) {\n const entries = referencesByModel[modelId];\n for (const id of entries) {\n if (records[id]) {\n continue;\n } else if (validateEntries === true) {\n throw new WebinyError(\n `Missing referenced entry with id \"${id}\" in model \"${modelId}\".`,\n \"ENTRY_NOT_FOUND\",\n {\n id,\n model: modelId\n }\n );\n }\n const { id: entryId } = parseIdentifier(id);\n records[id] = {\n id,\n entryId,\n modelId\n };\n }\n }\n\n /**\n * In the end, assign the entryId, id and model values to the output.\n */\n for (const id in pathsByReferenceId) {\n const entry = records[id];\n const paths = pathsByReferenceId[id];\n if (!entry) {\n if (validateEntries === true) {\n throw new WebinyError(\"Missing entry in records.\", \"ENTRY_ERROR\", {\n id,\n paths\n });\n }\n continue;\n }\n for (const path of paths) {\n output = dotProp.set(output, path, {\n id: entry.id,\n entryId: entry.entryId,\n modelId: entry.modelId\n });\n }\n }\n\n return output;\n};\n"],"mappings":"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"}
@@ -1,17 +1,13 @@
1
- import { CmsEntryContext, CmsContext, HeadlessCmsStorageOperations } from "../../../types";
2
- import { I18NLocale } from "@webiny/api-i18n/types";
3
- import { Tenant } from "@webiny/api-tenancy/types";
1
+ import { CmsEntryContext, CmsContext, HeadlessCmsStorageOperations } from "../types";
4
2
  import { SecurityIdentity } from "@webiny/api-security/types";
3
+ import { Tenant } from "@webiny/api-tenancy/types";
5
4
  export declare const STATUS_DRAFT = "draft";
6
5
  export declare const STATUS_PUBLISHED = "published";
7
6
  export declare const STATUS_UNPUBLISHED = "unpublished";
8
- export declare const STATUS_CHANGES_REQUESTED = "changesRequested";
9
- export declare const STATUS_REVIEW_REQUESTED = "reviewRequested";
10
- export interface Params {
7
+ export interface CreateContentEntryCrudParams {
11
8
  storageOperations: HeadlessCmsStorageOperations;
12
9
  context: CmsContext;
13
- getTenant: () => Tenant;
14
- getLocale: () => I18NLocale;
15
10
  getIdentity: () => SecurityIdentity;
11
+ getTenant: () => Tenant;
16
12
  }
17
- export declare const createContentEntryCrud: (params: Params) => CmsEntryContext;
13
+ export declare const createContentEntryCrud: (params: CreateContentEntryCrudParams) => CmsEntryContext;