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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/constants.d.ts +1 -0
  2. package/constants.js +8 -0
  3. package/constants.js.map +1 -0
  4. package/context.d.ts +5 -2
  5. package/context.js +96 -30
  6. package/context.js.map +1 -1
  7. package/crud/contentEntry/afterDelete.d.ts +2 -2
  8. package/crud/contentEntry/afterDelete.js +2 -7
  9. package/crud/contentEntry/afterDelete.js.map +1 -1
  10. package/crud/contentEntry/beforeCreate.d.ts +2 -2
  11. package/crud/contentEntry/beforeCreate.js +2 -5
  12. package/crud/contentEntry/beforeCreate.js.map +1 -1
  13. package/crud/contentEntry/beforeUpdate.d.ts +2 -2
  14. package/crud/contentEntry/beforeUpdate.js +2 -5
  15. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  16. package/crud/contentEntry/entryDataValidation.js +4 -47
  17. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  18. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  19. package/crud/contentEntry/markLockedFields.js +25 -39
  20. package/crud/contentEntry/markLockedFields.js.map +1 -1
  21. package/crud/contentEntry/referenceFieldsMapping.js +48 -77
  22. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  23. package/crud/contentEntry/searchableFields.d.ts +9 -0
  24. package/crud/contentEntry/searchableFields.js +72 -0
  25. package/crud/contentEntry/searchableFields.js.map +1 -0
  26. package/crud/contentEntry.crud.d.ts +12 -7
  27. package/crud/contentEntry.crud.js +1213 -1033
  28. package/crud/contentEntry.crud.js.map +1 -1
  29. package/crud/contentModel/afterCreate.d.ts +3 -3
  30. package/crud/contentModel/afterCreate.js +5 -7
  31. package/crud/contentModel/afterCreate.js.map +1 -1
  32. package/crud/contentModel/afterCreateFrom.d.ts +3 -3
  33. package/crud/contentModel/afterCreateFrom.js +5 -7
  34. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  35. package/crud/contentModel/afterDelete.d.ts +3 -3
  36. package/crud/contentModel/afterDelete.js +5 -7
  37. package/crud/contentModel/afterDelete.js.map +1 -1
  38. package/crud/contentModel/afterUpdate.d.ts +3 -3
  39. package/crud/contentModel/afterUpdate.js +5 -7
  40. package/crud/contentModel/afterUpdate.js.map +1 -1
  41. package/crud/contentModel/beforeCreate.d.ts +5 -6
  42. package/crud/contentModel/beforeCreate.js +53 -119
  43. package/crud/contentModel/beforeCreate.js.map +1 -1
  44. package/crud/contentModel/beforeDelete.d.ts +3 -3
  45. package/crud/contentModel/beforeDelete.js +7 -21
  46. package/crud/contentModel/beforeDelete.js.map +1 -1
  47. package/crud/contentModel/beforeUpdate.d.ts +4 -6
  48. package/crud/contentModel/beforeUpdate.js +38 -15
  49. package/crud/contentModel/beforeUpdate.js.map +1 -1
  50. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  51. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  52. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  53. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  54. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  55. package/crud/contentModel/createFieldStorageId.js +4 -3
  56. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  57. package/crud/contentModel/defaultFields.d.ts +5 -0
  58. package/crud/contentModel/defaultFields.js +58 -0
  59. package/crud/contentModel/defaultFields.js.map +1 -0
  60. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  61. package/crud/contentModel/fields/descriptionField.js +42 -0
  62. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  63. package/crud/contentModel/fields/imageField.d.ts +2 -0
  64. package/crud/contentModel/fields/imageField.js +46 -0
  65. package/crud/contentModel/fields/imageField.js.map +1 -0
  66. package/crud/contentModel/fields/titleField.d.ts +2 -0
  67. package/crud/contentModel/fields/titleField.js +58 -0
  68. package/crud/contentModel/fields/titleField.js.map +1 -0
  69. package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
  70. package/crud/contentModel/validate/endingAllowed.js +26 -0
  71. package/crud/contentModel/validate/endingAllowed.js.map +1 -0
  72. package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
  73. package/crud/contentModel/validate/isModelEndingAllowed.js +24 -0
  74. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
  75. package/crud/contentModel/validate/modelId.d.ts +11 -0
  76. package/crud/contentModel/validate/modelId.js +36 -0
  77. package/crud/contentModel/validate/modelId.js.map +1 -0
  78. package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
  79. package/crud/contentModel/validate/pluralApiName.js +24 -0
  80. package/crud/contentModel/validate/pluralApiName.js.map +1 -0
  81. package/crud/contentModel/validate/singularApiName.d.ts +7 -0
  82. package/crud/contentModel/validate/singularApiName.js +24 -0
  83. package/crud/contentModel/validate/singularApiName.js.map +1 -0
  84. package/crud/contentModel/validateLayout.js +0 -8
  85. package/crud/contentModel/validateLayout.js.map +1 -1
  86. package/crud/contentModel/validateModel.d.ts +4 -4
  87. package/crud/contentModel/validateModel.js +7 -12
  88. package/crud/contentModel/validateModel.js.map +1 -1
  89. package/crud/contentModel/validateModelFields.d.ts +4 -4
  90. package/crud/contentModel/validateModelFields.js +134 -155
  91. package/crud/contentModel/validateModelFields.js.map +1 -1
  92. package/crud/contentModel/validation.d.ts +591 -0
  93. package/crud/contentModel/validation.js +145 -0
  94. package/crud/contentModel/validation.js.map +1 -0
  95. package/crud/contentModel.crud.d.ts +2 -0
  96. package/crud/contentModel.crud.js +426 -381
  97. package/crud/contentModel.crud.js.map +1 -1
  98. package/crud/contentModelGroup/beforeCreate.d.ts +2 -2
  99. package/crud/contentModelGroup/beforeCreate.js +3 -15
  100. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  101. package/crud/contentModelGroup/beforeDelete.d.ts +2 -2
  102. package/crud/contentModelGroup/beforeDelete.js +3 -11
  103. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  104. package/crud/contentModelGroup/beforeUpdate.d.ts +2 -2
  105. package/crud/contentModelGroup/beforeUpdate.js +2 -7
  106. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  107. package/crud/contentModelGroup/validation.d.ts +30 -0
  108. package/crud/contentModelGroup/validation.js +34 -0
  109. package/crud/contentModelGroup/validation.js.map +1 -0
  110. package/crud/contentModelGroup.crud.d.ts +2 -0
  111. package/crud/contentModelGroup.crud.js +252 -231
  112. package/crud/contentModelGroup.crud.js.map +1 -1
  113. package/crud/settings.crud.d.ts +3 -1
  114. package/crud/settings.crud.js +10 -36
  115. package/crud/settings.crud.js.map +1 -1
  116. package/crud/system.crud.js +55 -138
  117. package/crud/system.crud.js.map +1 -1
  118. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -14
  119. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  120. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  121. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  122. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  123. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +17 -72
  124. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  125. package/fieldConverters/index.d.ts +2 -1
  126. package/fieldConverters/index.js +2 -5
  127. package/fieldConverters/index.js.map +1 -1
  128. package/graphql/buildSchemaPlugins.d.ts +8 -3
  129. package/graphql/buildSchemaPlugins.js +7 -11
  130. package/graphql/buildSchemaPlugins.js.map +1 -1
  131. package/graphql/checkEndpointAccess.d.ts +2 -0
  132. package/graphql/checkEndpointAccess.js +18 -0
  133. package/graphql/checkEndpointAccess.js.map +1 -0
  134. package/graphql/createExecutableSchema.d.ts +6 -0
  135. package/graphql/createExecutableSchema.js +29 -0
  136. package/graphql/createExecutableSchema.js.map +1 -0
  137. package/graphql/createRequestBody.d.ts +2 -0
  138. package/graphql/createRequestBody.js +14 -0
  139. package/graphql/createRequestBody.js.map +1 -0
  140. package/graphql/formatErrorPayload.d.ts +1 -0
  141. package/graphql/formatErrorPayload.js +25 -0
  142. package/graphql/formatErrorPayload.js.map +1 -0
  143. package/graphql/generateSchema.d.ts +8 -0
  144. package/graphql/generateSchema.js +31 -0
  145. package/graphql/generateSchema.js.map +1 -0
  146. package/graphql/getSchema.d.ts +17 -0
  147. package/graphql/getSchema.js +102 -0
  148. package/graphql/getSchema.js.map +1 -0
  149. package/graphql/graphQLHandlerFactory.js +7 -130
  150. package/graphql/graphQLHandlerFactory.js.map +1 -1
  151. package/graphql/handleRequest.d.ts +11 -0
  152. package/graphql/handleRequest.js +81 -0
  153. package/graphql/handleRequest.js.map +1 -0
  154. package/graphql/index.d.ts +1 -3
  155. package/graphql/index.js +2 -46
  156. package/graphql/index.js.map +1 -1
  157. package/graphql/schema/baseContentSchema.d.ts +6 -2
  158. package/graphql/schema/baseContentSchema.js +15 -29
  159. package/graphql/schema/baseContentSchema.js.map +1 -1
  160. package/graphql/schema/baseSchema.d.ts +3 -0
  161. package/graphql/schema/baseSchema.js +84 -0
  162. package/graphql/schema/baseSchema.js.map +1 -0
  163. package/graphql/schema/contentEntries.d.ts +6 -2
  164. package/graphql/schema/contentEntries.js +127 -111
  165. package/graphql/schema/contentEntries.js.map +1 -1
  166. package/graphql/schema/contentModelGroups.d.ts +6 -2
  167. package/graphql/schema/contentModelGroups.js +16 -29
  168. package/graphql/schema/contentModelGroups.js.map +1 -1
  169. package/graphql/schema/contentModels.d.ts +6 -2
  170. package/graphql/schema/contentModels.js +77 -22
  171. package/graphql/schema/contentModels.js.map +1 -1
  172. package/graphql/schema/createFieldResolvers.d.ts +2 -2
  173. package/graphql/schema/createFieldResolvers.js +25 -44
  174. package/graphql/schema/createFieldResolvers.js.map +1 -1
  175. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  176. package/graphql/schema/createFieldTypePluginRecords.js +13 -0
  177. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  178. package/graphql/schema/createManageResolvers.d.ts +1 -1
  179. package/graphql/schema/createManageResolvers.js +47 -57
  180. package/graphql/schema/createManageResolvers.js.map +1 -1
  181. package/graphql/schema/createManageSDL.d.ts +3 -0
  182. package/graphql/schema/createManageSDL.js +99 -83
  183. package/graphql/schema/createManageSDL.js.map +1 -1
  184. package/graphql/schema/createPreviewResolvers.js +6 -24
  185. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  186. package/graphql/schema/createReadResolvers.js +11 -24
  187. package/graphql/schema/createReadResolvers.js.map +1 -1
  188. package/graphql/schema/createReadSDL.d.ts +3 -0
  189. package/graphql/schema/createReadSDL.js +48 -46
  190. package/graphql/schema/createReadSDL.js.map +1 -1
  191. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  192. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  193. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  194. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  195. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  196. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  197. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  198. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  199. package/graphql/schema/resolvers/manage/resolveDelete.js +13 -9
  200. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  201. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  202. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +20 -0
  203. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  204. package/graphql/schema/resolvers/manage/resolveGet.js +5 -25
  205. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  206. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  207. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  208. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  209. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  210. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  211. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +18 -0
  212. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  213. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  214. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  215. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  216. package/graphql/schema/resolvers/manage/resolveMove.js +30 -0
  217. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  218. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  219. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  220. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  221. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  222. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  223. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  224. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  225. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  226. package/graphql/schema/resolvers/preview/resolveGet.js +3 -15
  227. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  228. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  229. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  230. package/graphql/schema/resolvers/read/resolveGet.js +3 -15
  231. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  232. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  233. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  234. package/graphql/schema/schemaPlugins.d.ts +8 -3
  235. package/graphql/schema/schemaPlugins.js +58 -69
  236. package/graphql/schema/schemaPlugins.js.map +1 -1
  237. package/graphql/system.d.ts +2 -5
  238. package/graphql/system.js +56 -98
  239. package/graphql/system.js.map +1 -1
  240. package/graphqlFields/boolean.js +0 -12
  241. package/graphqlFields/boolean.js.map +1 -1
  242. package/graphqlFields/datetime.js +0 -17
  243. package/graphqlFields/datetime.js.map +1 -1
  244. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
  245. package/graphqlFields/dynamicZone/dynamicZoneField.js +243 -0
  246. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
  247. package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
  248. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
  249. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
  250. package/graphqlFields/dynamicZone/index.d.ts +2 -0
  251. package/graphqlFields/dynamicZone/index.js +19 -0
  252. package/graphqlFields/dynamicZone/index.js.map +1 -0
  253. package/graphqlFields/file.js +0 -8
  254. package/graphqlFields/file.js.map +1 -1
  255. package/graphqlFields/helpers.js +0 -10
  256. package/graphqlFields/helpers.js.map +1 -1
  257. package/graphqlFields/index.d.ts +1 -1
  258. package/graphqlFields/index.js +2 -12
  259. package/graphqlFields/index.js.map +1 -1
  260. package/graphqlFields/longText.js +0 -10
  261. package/graphqlFields/longText.js.map +1 -1
  262. package/graphqlFields/number.js +5 -12
  263. package/graphqlFields/number.js.map +1 -1
  264. package/graphqlFields/object.js +132 -99
  265. package/graphqlFields/object.js.map +1 -1
  266. package/graphqlFields/ref.js +90 -114
  267. package/graphqlFields/ref.js.map +1 -1
  268. package/graphqlFields/richText.js +0 -9
  269. package/graphqlFields/richText.js.map +1 -1
  270. package/graphqlFields/text.js +2 -11
  271. package/graphqlFields/text.js.map +1 -1
  272. package/index.d.ts +5 -3
  273. package/index.js +27 -27
  274. package/index.js.map +1 -1
  275. package/modelManager/DefaultCmsModelManager.d.ts +7 -7
  276. package/modelManager/DefaultCmsModelManager.js +1 -17
  277. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  278. package/modelManager/index.js +0 -4
  279. package/modelManager/index.js.map +1 -1
  280. package/package.json +36 -42
  281. package/parameters/context.js +0 -4
  282. package/parameters/context.js.map +1 -1
  283. package/parameters/header.js +4 -15
  284. package/parameters/header.js.map +1 -1
  285. package/parameters/index.js +0 -8
  286. package/parameters/index.js.map +1 -1
  287. package/parameters/manual.js +7 -15
  288. package/parameters/manual.js.map +1 -1
  289. package/parameters/path.js +1 -12
  290. package/parameters/path.js.map +1 -1
  291. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  292. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  293. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  294. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  295. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  296. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  297. package/plugins/CmsGroupPlugin.js +1 -9
  298. package/plugins/CmsGroupPlugin.js.map +1 -1
  299. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  300. package/plugins/CmsModelFieldConverterPlugin.js +1 -6
  301. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  302. package/plugins/CmsModelPlugin.d.ts +27 -5
  303. package/plugins/CmsModelPlugin.js +46 -51
  304. package/plugins/CmsModelPlugin.js.map +1 -1
  305. package/plugins/CmsParametersPlugin.js +4 -7
  306. package/plugins/CmsParametersPlugin.js.map +1 -1
  307. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  308. package/plugins/StorageOperationsCmsModelPlugin.js +42 -0
  309. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  310. package/plugins/StorageTransformPlugin.d.ts +11 -11
  311. package/plugins/StorageTransformPlugin.js +1 -10
  312. package/plugins/StorageTransformPlugin.js.map +1 -1
  313. package/plugins/index.d.ts +3 -0
  314. package/plugins/index.js +33 -10
  315. package/plugins/index.js.map +1 -1
  316. package/storage/default.js +0 -3
  317. package/storage/default.js.map +1 -1
  318. package/storage/object.js +7 -27
  319. package/storage/object.js.map +1 -1
  320. package/types.d.ts +712 -251
  321. package/types.js +78 -76
  322. package/types.js.map +1 -1
  323. package/utils/converters/Converter.js +1 -14
  324. package/utils/converters/Converter.js.map +1 -1
  325. package/utils/converters/ConverterCollection.d.ts +7 -0
  326. package/utils/converters/ConverterCollection.js +36 -32
  327. package/utils/converters/ConverterCollection.js.map +1 -1
  328. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  329. package/utils/converters/valueKeyStorageConverter.js +32 -51
  330. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  331. package/utils/createTypeFromFields.d.ts +16 -0
  332. package/utils/createTypeFromFields.js +66 -0
  333. package/utils/createTypeFromFields.js.map +1 -0
  334. package/utils/createTypeName.d.ts +0 -2
  335. package/utils/createTypeName.js +5 -20
  336. package/utils/createTypeName.js.map +1 -1
  337. package/utils/entryStorage.js +25 -42
  338. package/utils/entryStorage.js.map +1 -1
  339. package/utils/filterAsync.js +0 -5
  340. package/utils/filterAsync.js.map +1 -1
  341. package/utils/getBaseFieldType.d.ts +2 -0
  342. package/utils/getBaseFieldType.js +10 -0
  343. package/utils/getBaseFieldType.js.map +1 -0
  344. package/utils/getEntryDescription.d.ts +2 -0
  345. package/utils/getEntryDescription.js +17 -0
  346. package/utils/getEntryDescription.js.map +1 -0
  347. package/utils/getEntryImage.d.ts +2 -0
  348. package/utils/getEntryImage.js +17 -0
  349. package/utils/getEntryImage.js.map +1 -0
  350. package/utils/getEntryTitle.d.ts +1 -1
  351. package/utils/getEntryTitle.js +0 -9
  352. package/utils/getEntryTitle.js.map +1 -1
  353. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  354. package/utils/getSchemaFromFieldPlugins.js +23 -19
  355. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  356. package/utils/incrementEntryIdVersion.d.ts +5 -0
  357. package/utils/incrementEntryIdVersion.js +29 -0
  358. package/utils/incrementEntryIdVersion.js.map +1 -0
  359. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  360. package/utils/permissions/EntriesPermissions.js +9 -0
  361. package/utils/permissions/EntriesPermissions.js.map +1 -0
  362. package/utils/permissions/ModelGroupsPermissions.d.ts +11 -0
  363. package/utils/permissions/ModelGroupsPermissions.js +48 -0
  364. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  365. package/utils/permissions/ModelsPermissions.d.ts +20 -0
  366. package/utils/permissions/ModelsPermissions.js +91 -0
  367. package/utils/permissions/ModelsPermissions.js.map +1 -0
  368. package/utils/permissions/SettingsPermissions.d.ts +4 -0
  369. package/utils/permissions/SettingsPermissions.js +9 -0
  370. package/utils/permissions/SettingsPermissions.js.map +1 -0
  371. package/utils/renderFields.d.ts +4 -2
  372. package/utils/renderFields.js +12 -11
  373. package/utils/renderFields.js.map +1 -1
  374. package/utils/renderGetFilterFields.d.ts +2 -2
  375. package/utils/renderGetFilterFields.js +9 -30
  376. package/utils/renderGetFilterFields.js.map +1 -1
  377. package/utils/renderInputFields.d.ts +4 -2
  378. package/utils/renderInputFields.js +19 -14
  379. package/utils/renderInputFields.js.map +1 -1
  380. package/utils/renderListFilterFields.d.ts +3 -1
  381. package/utils/renderListFilterFields.js +24 -28
  382. package/utils/renderListFilterFields.js.map +1 -1
  383. package/utils/renderSortEnum.d.ts +9 -5
  384. package/utils/renderSortEnum.js +26 -12
  385. package/utils/renderSortEnum.js.map +1 -1
  386. package/utils/toSlug.js +1 -5
  387. package/utils/toSlug.js.map +1 -1
  388. package/validators/dateGte.js +0 -7
  389. package/validators/dateGte.js.map +1 -1
  390. package/validators/dateLte.js +0 -7
  391. package/validators/dateLte.js.map +1 -1
  392. package/validators/dynamicZone.d.ts +2 -0
  393. package/validators/dynamicZone.js +20 -0
  394. package/validators/dynamicZone.js.map +1 -0
  395. package/validators/gte.js +0 -8
  396. package/validators/gte.js.map +1 -1
  397. package/validators/in.js +0 -8
  398. package/validators/in.js.map +1 -1
  399. package/validators/index.js +2 -16
  400. package/validators/index.js.map +1 -1
  401. package/validators/lte.js +0 -8
  402. package/validators/lte.js.map +1 -1
  403. package/validators/maxLength.js +0 -8
  404. package/validators/maxLength.js.map +1 -1
  405. package/validators/minLength.js +0 -8
  406. package/validators/minLength.js.map +1 -1
  407. package/validators/pattern.js +0 -9
  408. package/validators/pattern.js.map +1 -1
  409. package/validators/patternPlugins/email.js +0 -2
  410. package/validators/patternPlugins/email.js.map +1 -1
  411. package/validators/patternPlugins/index.js +0 -8
  412. package/validators/patternPlugins/index.js.map +1 -1
  413. package/validators/patternPlugins/lowerCase.js +0 -2
  414. package/validators/patternPlugins/lowerCase.js.map +1 -1
  415. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  416. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  417. package/validators/patternPlugins/upperCase.js +0 -2
  418. package/validators/patternPlugins/upperCase.js.map +1 -1
  419. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  420. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  421. package/validators/patternPlugins/url.js +0 -2
  422. package/validators/patternPlugins/url.js.map +1 -1
  423. package/validators/required.js +0 -5
  424. package/validators/required.js.map +1 -1
  425. package/validators/timeGte.js +0 -8
  426. package/validators/timeGte.js.map +1 -1
  427. package/validators/timeLte.js +0 -8
  428. package/validators/timeLte.js.map +1 -1
  429. package/validators/unique.js +1 -8
  430. package/validators/unique.js.map +1 -1
  431. package/crud/contentModel/createFieldModels.d.ts +0 -2
  432. package/crud/contentModel/createFieldModels.js +0 -26
  433. package/crud/contentModel/createFieldModels.js.map +0 -1
  434. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  435. package/crud/contentModel/fieldIdValidation.js +0 -25
  436. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  437. package/crud/contentModel/idValidation.d.ts +0 -1
  438. package/crud/contentModel/idValidation.js +0 -22
  439. package/crud/contentModel/idValidation.js.map +0 -1
  440. package/crud/contentModel/models.d.ts +0 -4
  441. package/crud/contentModel/models.js +0 -180
  442. package/crud/contentModel/models.js.map +0 -1
  443. package/crud/contentModel/systemFields.d.ts +0 -1
  444. package/crud/contentModel/systemFields.js +0 -8
  445. package/crud/contentModel/systemFields.js.map +0 -1
  446. package/crud/index.d.ts +0 -6
  447. package/crud/index.js +0 -89
  448. package/crud/index.js.map +0 -1
  449. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  450. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  451. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  452. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  453. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  454. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  455. package/upgrades/5.33.0/index.d.ts +0 -3
  456. package/upgrades/5.33.0/index.js +0 -186
  457. package/upgrades/5.33.0/index.js.map +0 -1
  458. package/upgrades/index.d.ts +0 -1
  459. package/upgrades/index.js +0 -12
  460. package/upgrades/index.js.map +0 -1
  461. package/utils/access.d.ts +0 -8
  462. package/utils/access.js +0 -90
  463. package/utils/access.js.map +0 -1
  464. package/utils/filterModelFields.d.ts +0 -16
  465. package/utils/filterModelFields.js +0 -81
  466. package/utils/filterModelFields.js.map +0 -1
  467. package/utils/ownership.d.ts +0 -8
  468. package/utils/ownership.js +0 -41
  469. package/utils/ownership.js.map +0 -1
  470. package/utils/permissions.d.ts +0 -7
  471. package/utils/permissions.js +0 -110
  472. package/utils/permissions.js.map +0 -1
  473. package/utils/pluralizedTypeName.d.ts +0 -1
  474. package/utils/pluralizedTypeName.js +0 -26
  475. package/utils/pluralizedTypeName.js.map +0 -1
@@ -1,22 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.markUnlockedFields = exports.markLockedFields = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _CmsModelPlugin = require("../../plugins/CmsModelPlugin");
15
-
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
-
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
-
11
+ var _getBaseFieldType = require("../../utils/getBaseFieldType");
20
12
  const markLockedFields = async params => {
21
13
  const {
22
14
  model,
@@ -25,67 +17,61 @@ const markLockedFields = async params => {
25
17
  /**
26
18
  * If the model is registered via a plugin, we don't need do process anything.
27
19
  */
28
-
29
20
  const plugins = context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type);
30
-
31
21
  if (plugins.find(plugin => plugin.contentModel.modelId === model.modelId)) {
32
22
  return;
33
23
  }
34
-
35
24
  const cmsLockedFieldPlugins = context.plugins.byType("cms-model-locked-field");
36
25
  const existingLockedFields = model.lockedFields || [];
37
26
  const lockedFields = [];
38
-
39
27
  for (const field of model.fields) {
28
+ const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
40
29
  const alreadyLocked = existingLockedFields.some(lockedField => lockedField.fieldId === field.storageId);
41
-
42
30
  if (alreadyLocked) {
43
31
  continue;
44
32
  }
45
-
46
33
  let lockedFieldData = {};
47
- const lockedFieldPlugins = cmsLockedFieldPlugins.filter(pl => pl.fieldType === field.type);
48
-
34
+ const lockedFieldPlugins = cmsLockedFieldPlugins.filter(pl => pl.fieldType === baseType);
49
35
  for (const plugin of lockedFieldPlugins) {
50
36
  if (typeof plugin.getLockedFieldData !== "function") {
51
37
  continue;
52
38
  }
53
-
54
39
  const data = plugin.getLockedFieldData({
55
40
  field
56
41
  });
57
- lockedFieldData = _objectSpread(_objectSpread({}, lockedFieldData), data);
42
+ lockedFieldData = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, lockedFieldData), data);
58
43
  }
59
-
60
- lockedFields.push(_objectSpread({
44
+ lockedFields.push((0, _objectSpread2.default)({
61
45
  fieldId: field.storageId,
62
46
  multipleValues: !!field.multipleValues,
63
- type: field.type
47
+ type: baseType
64
48
  }, lockedFieldData));
65
- } // no need to update anything if no locked fields were added
66
-
67
-
49
+ }
50
+ // no need to update anything if no locked fields were added
68
51
  if (lockedFields.length === 0) {
69
52
  return;
70
53
  }
71
-
72
54
  const newLockedFields = existingLockedFields.concat(lockedFields);
73
-
74
55
  try {
75
56
  await context.cms.updateModelDirect({
57
+ /**
58
+ * At this point we know this is a CmsModel, so it is safe to cast.
59
+ */
76
60
  original: model,
77
- model: _objectSpread(_objectSpread({}, model), {}, {
61
+ model: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
78
62
  lockedFields: newLockedFields
79
63
  })
80
64
  });
81
65
  model.lockedFields = newLockedFields;
82
66
  } catch (ex) {
83
- throw new _error.default(`Could not update model "${model.modelId}" with new locked fields.`, "MODEL_LOCKED_FIELDS_UPDATE_FAILED", ex);
67
+ throw new _error.default(`Could not update model "${model.modelId}" with new locked fields.`, "MODEL_LOCKED_FIELDS_UPDATE_FAILED", {
68
+ message: ex.message,
69
+ code: ex.code,
70
+ data: ex.data
71
+ });
84
72
  }
85
73
  };
86
-
87
74
  exports.markLockedFields = markLockedFields;
88
-
89
75
  const markUnlockedFields = async params => {
90
76
  const {
91
77
  context,
@@ -94,24 +80,24 @@ const markUnlockedFields = async params => {
94
80
  /**
95
81
  * If the model is registered via a plugin, we don't need do process anything.
96
82
  */
97
-
98
83
  const plugins = context.plugins.byType(_CmsModelPlugin.CmsModelPlugin.type);
99
-
100
84
  if (plugins.find(plugin => plugin.contentModel.modelId === model.modelId)) {
101
85
  return;
102
86
  }
103
-
104
87
  try {
105
88
  await context.cms.updateModelDirect({
106
89
  original: model,
107
- model: _objectSpread(_objectSpread({}, model), {}, {
90
+ model: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, model), {}, {
108
91
  lockedFields: []
109
92
  })
110
93
  });
111
94
  model.lockedFields = [];
112
95
  } catch (ex) {
113
- throw new _error.default(`Could not update model "${model.modelId}" with unlocked fields.`, "MODEL_UNLOCKED_FIELDS_UPDATE_FAILED", ex);
96
+ throw new _error.default(`Could not update model "${model.modelId}" with unlocked fields.`, "MODEL_UNLOCKED_FIELDS_UPDATE_FAILED", {
97
+ message: ex.message,
98
+ code: ex.code,
99
+ data: ex.data
100
+ });
114
101
  }
115
102
  };
116
-
117
103
  exports.markUnlockedFields = markUnlockedFields;
@@ -1 +1 @@
1
- {"version":3,"names":["markLockedFields","params","model","context","plugins","byType","CmsModelPlugin","type","find","plugin","contentModel","modelId","cmsLockedFieldPlugins","existingLockedFields","lockedFields","field","fields","alreadyLocked","some","lockedField","fieldId","storageId","lockedFieldData","lockedFieldPlugins","filter","pl","fieldType","getLockedFieldData","data","push","multipleValues","length","newLockedFields","concat","cms","updateModelDirect","original","ex","WebinyError","markUnlockedFields"],"sources":["markLockedFields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsModel, CmsContext, CmsModelLockedFieldPlugin, LockedField } from \"~/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\n\ninterface MarkLockedFieldsParams {\n model: CmsModel;\n entry: CmsEntry;\n context: CmsContext;\n}\nexport const markLockedFields = async (params: MarkLockedFieldsParams): Promise<void> => {\n const { model, context } = params;\n /**\n * If the model is registered via a plugin, we don't need do process anything.\n */\n const plugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n if (plugins.find(plugin => plugin.contentModel.modelId === model.modelId)) {\n return;\n }\n\n const cmsLockedFieldPlugins =\n context.plugins.byType<CmsModelLockedFieldPlugin>(\"cms-model-locked-field\");\n\n const existingLockedFields = model.lockedFields || [];\n const lockedFields: LockedField[] = [];\n for (const field of model.fields) {\n const alreadyLocked = existingLockedFields.some(\n lockedField => lockedField.fieldId === field.storageId\n );\n if (alreadyLocked) {\n continue;\n }\n\n let lockedFieldData = {};\n\n const lockedFieldPlugins = cmsLockedFieldPlugins.filter(pl => pl.fieldType === field.type);\n for (const plugin of lockedFieldPlugins) {\n if (typeof plugin.getLockedFieldData !== \"function\") {\n continue;\n }\n const data = plugin.getLockedFieldData({\n field\n });\n lockedFieldData = { ...lockedFieldData, ...data };\n }\n\n lockedFields.push({\n fieldId: field.storageId,\n multipleValues: !!field.multipleValues,\n type: field.type,\n ...lockedFieldData\n });\n }\n // no need to update anything if no locked fields were added\n if (lockedFields.length === 0) {\n return;\n }\n\n const newLockedFields = existingLockedFields.concat(lockedFields);\n\n try {\n await context.cms.updateModelDirect({\n original: model,\n model: {\n ...model,\n lockedFields: newLockedFields\n }\n });\n model.lockedFields = newLockedFields;\n } catch (ex) {\n throw new WebinyError(\n `Could not update model \"${model.modelId}\" with new locked fields.`,\n \"MODEL_LOCKED_FIELDS_UPDATE_FAILED\",\n ex\n );\n }\n};\n\nexport interface MarkFieldsUnlockedParams {\n context: CmsContext;\n model: CmsModel;\n}\nexport const markUnlockedFields = async (params: MarkFieldsUnlockedParams) => {\n const { context, model } = params;\n /**\n * If the model is registered via a plugin, we don't need do process anything.\n */\n const plugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n if (plugins.find(plugin => plugin.contentModel.modelId === model.modelId)) {\n return;\n }\n\n try {\n await context.cms.updateModelDirect({\n original: model,\n model: {\n ...model,\n lockedFields: []\n }\n });\n model.lockedFields = [];\n } catch (ex) {\n throw new WebinyError(\n `Could not update model \"${model.modelId}\" with unlocked fields.`,\n \"MODEL_UNLOCKED_FIELDS_UPDATE_FAILED\",\n ex\n );\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_CmsModelPlugin","_getBaseFieldType","markLockedFields","params","model","context","plugins","byType","CmsModelPlugin","type","find","plugin","contentModel","modelId","cmsLockedFieldPlugins","existingLockedFields","lockedFields","field","fields","baseType","getBaseFieldType","alreadyLocked","some","lockedField","fieldId","storageId","lockedFieldData","lockedFieldPlugins","filter","pl","fieldType","getLockedFieldData","data","_objectSpread2","default","push","multipleValues","length","newLockedFields","concat","cms","updateModelDirect","original","ex","WebinyError","message","code","exports","markUnlockedFields"],"sources":["markLockedFields.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsEntry, CmsContext, CmsModelLockedFieldPlugin, LockedField, CmsModel } from \"~/types\";\nimport { CmsModelPlugin } from \"~/plugins/CmsModelPlugin\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\n\ninterface MarkLockedFieldsParams {\n model: CmsModel;\n entry: CmsEntry;\n context: CmsContext;\n}\n\nexport const markLockedFields = async (params: MarkLockedFieldsParams): Promise<void> => {\n const { model, context } = params;\n /**\n * If the model is registered via a plugin, we don't need do process anything.\n */\n const plugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n if (plugins.find(plugin => plugin.contentModel.modelId === model.modelId)) {\n return;\n }\n\n const cmsLockedFieldPlugins =\n context.plugins.byType<CmsModelLockedFieldPlugin>(\"cms-model-locked-field\");\n\n const existingLockedFields = model.lockedFields || [];\n const lockedFields: LockedField[] = [];\n for (const field of model.fields) {\n const baseType = getBaseFieldType(field);\n const alreadyLocked = existingLockedFields.some(\n lockedField => lockedField.fieldId === field.storageId\n );\n if (alreadyLocked) {\n continue;\n }\n\n let lockedFieldData = {};\n\n const lockedFieldPlugins = cmsLockedFieldPlugins.filter(pl => pl.fieldType === baseType);\n for (const plugin of lockedFieldPlugins) {\n if (typeof plugin.getLockedFieldData !== \"function\") {\n continue;\n }\n const data = plugin.getLockedFieldData({\n field\n });\n lockedFieldData = { ...lockedFieldData, ...data };\n }\n\n lockedFields.push({\n fieldId: field.storageId,\n multipleValues: !!field.multipleValues,\n type: baseType,\n ...lockedFieldData\n });\n }\n // no need to update anything if no locked fields were added\n if (lockedFields.length === 0) {\n return;\n }\n\n const newLockedFields = existingLockedFields.concat(lockedFields);\n\n try {\n await context.cms.updateModelDirect({\n /**\n * At this point we know this is a CmsModel, so it is safe to cast.\n */\n original: model as CmsModel,\n model: {\n ...model,\n lockedFields: newLockedFields\n } as CmsModel\n });\n model.lockedFields = newLockedFields;\n } catch (ex) {\n throw new WebinyError(\n `Could not update model \"${model.modelId}\" with new locked fields.`,\n \"MODEL_LOCKED_FIELDS_UPDATE_FAILED\",\n {\n message: ex.message,\n code: ex.code,\n data: ex.data\n }\n );\n }\n};\n\nexport interface MarkFieldsUnlockedParams {\n context: CmsContext;\n model: CmsModel;\n}\n\nexport const markUnlockedFields = async (params: MarkFieldsUnlockedParams) => {\n const { context, model } = params;\n /**\n * If the model is registered via a plugin, we don't need do process anything.\n */\n const plugins = context.plugins.byType<CmsModelPlugin>(CmsModelPlugin.type);\n if (plugins.find(plugin => plugin.contentModel.modelId === model.modelId)) {\n return;\n }\n\n try {\n await context.cms.updateModelDirect({\n original: model as CmsModel,\n model: {\n ...model,\n lockedFields: []\n } as CmsModel\n });\n model.lockedFields = [];\n } catch (ex) {\n throw new WebinyError(\n `Could not update model \"${model.modelId}\" with unlocked fields.`,\n \"MODEL_UNLOCKED_FIELDS_UPDATE_FAILED\",\n {\n message: ex.message,\n code: ex.code,\n data: ex.data\n }\n );\n }\n};\n"],"mappings":"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"}
@@ -1,24 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.referenceFieldsMapping = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
9
  var _error = _interopRequireDefault(require("@webiny/error"));
13
-
14
10
  var _dotProp = _interopRequireDefault(require("dot-prop"));
15
-
16
11
  var _utils = require("@webiny/utils");
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
-
12
+ var _getBaseFieldType = require("../../utils/getBaseFieldType");
22
13
  const buildReferenceFieldPaths = params => {
23
14
  const {
24
15
  fields,
@@ -27,101 +18,111 @@ const buildReferenceFieldPaths = params => {
27
18
  } = params;
28
19
  const parentPaths = [...initialParentPaths];
29
20
  const isMultipleValues = Array.isArray(input);
30
- return fields.filter(field => ["object", "ref"].includes(field.type)).reduce((collection, field) => {
31
- var _field$settings2;
32
-
21
+ return fields.filter(field => ["object", "ref", "dynamicZone"].includes((0, _getBaseFieldType.getBaseFieldType)(field))).reduce((collection, field) => {
22
+ var _field$settings3;
33
23
  /**
34
24
  * First we check the ref field
35
25
  */
36
- if (field.type === "ref") {
26
+ const baseType = (0, _getBaseFieldType.getBaseFieldType)(field);
27
+ if (baseType === "ref") {
37
28
  const parentPathsValue = parentPaths.length > 0 ? `${parentPaths.join(".")}.` : "";
38
-
39
29
  if (field.multipleValues) {
40
30
  const inputValue = _dotProp.default.get(input, `${field.fieldId}`, []);
41
-
42
31
  if (Array.isArray(inputValue) === false) {
43
32
  return collection;
44
33
  }
45
-
46
34
  for (const key in inputValue) {
47
35
  const path = `${parentPathsValue}${field.fieldId}.${key}`;
48
36
  collection.push(path);
49
37
  }
50
-
51
38
  return collection;
52
39
  }
53
-
54
40
  if (isMultipleValues) {
55
41
  for (const key in input) {
56
42
  const path = `${parentPathsValue}${key}.${field.fieldId}`;
57
43
  collection.push(path);
58
44
  }
59
-
60
45
  return collection;
61
46
  }
62
-
63
47
  collection.push(`${parentPathsValue}${field.fieldId}`);
64
48
  return collection;
65
49
  }
50
+ if (baseType === "dynamicZone") {
51
+ var _field$settings;
52
+ const templates = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates) || [];
53
+ for (const template of templates) {
54
+ if (field.multipleValues) {
55
+ const inputValue = _dotProp.default.get(input, `${field.fieldId}`, []);
56
+ if (Array.isArray(inputValue) === false) {
57
+ return collection;
58
+ }
59
+ for (const key in inputValue) {
60
+ const result = buildReferenceFieldPaths({
61
+ fields: template.fields,
62
+ input: inputValue[key],
63
+ parentPaths: parentPaths.concat([field.fieldId, key, template.gqlTypeName])
64
+ });
65
+ collection.push(...result);
66
+ }
67
+ continue;
68
+ }
69
+ const result = buildReferenceFieldPaths({
70
+ fields: template.fields,
71
+ input,
72
+ parentPaths: parentPaths.concat([field.fieldId, template.gqlTypeName])
73
+ });
74
+ collection.push(...result);
75
+ }
76
+ return collection;
77
+ }
78
+
66
79
  /**
67
80
  * Then we move onto the object field
68
81
  */
69
-
70
-
71
82
  const parentPathsValue = parentPaths.length > 0 ? `${parentPaths.join(".")}.` : "";
72
83
  /**
73
84
  * This is if received input is array. We need to map key with fieldId at this point.
74
85
  */
75
-
76
86
  if (isMultipleValues) {
77
87
  for (const key in input) {
78
88
  const path = `${parentPathsValue}${key}.${field.fieldId}`;
79
89
  collection.push(path);
80
90
  }
81
-
82
91
  return collection;
83
92
  }
84
-
85
93
  const objFieldPath = `${field.fieldId}`;
86
-
87
94
  const objFieldInputValue = _dotProp.default.get(input, objFieldPath, []);
95
+
88
96
  /**
89
97
  * If field is multiple values one, we need to go through the input and use the existing keys.
90
98
  */
91
-
92
-
93
99
  if (field.multipleValues) {
94
100
  if (Array.isArray(objFieldInputValue) === false) {
95
101
  return collection;
96
102
  }
97
-
98
103
  for (const key in objFieldInputValue) {
99
- var _field$settings;
100
-
104
+ var _field$settings2;
101
105
  const result = buildReferenceFieldPaths({
102
- fields: ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [],
106
+ fields: ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.fields) || [],
103
107
  input: objFieldInputValue[key],
104
108
  parentPaths: parentPaths.concat([field.fieldId, key])
105
109
  });
106
110
  collection.push(...result);
107
111
  }
108
-
109
112
  return collection;
110
113
  }
114
+
111
115
  /**
112
116
  * Single value reference field.
113
117
  */
114
-
115
-
116
118
  const results = buildReferenceFieldPaths({
117
- fields: ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.fields) || [],
119
+ fields: ((_field$settings3 = field.settings) === null || _field$settings3 === void 0 ? void 0 : _field$settings3.fields) || [],
118
120
  input: objFieldInputValue,
119
121
  parentPaths: parentPaths.concat([field.fieldId])
120
122
  });
121
123
  return collection.concat(results);
122
124
  }, []);
123
125
  };
124
-
125
126
  const getReferenceFieldValue = ref => {
126
127
  if (!ref) {
127
128
  return {
@@ -129,13 +130,11 @@ const getReferenceFieldValue = ref => {
129
130
  modelId: null
130
131
  };
131
132
  }
132
-
133
133
  return {
134
134
  id: (ref.id || ref.entryId || "").trim() || null,
135
135
  modelId: (ref.modelId || "").trim() || null
136
136
  };
137
137
  };
138
-
139
138
  const referenceFieldsMapping = async params => {
140
139
  const {
141
140
  context,
@@ -143,80 +142,62 @@ const referenceFieldsMapping = async params => {
143
142
  input,
144
143
  validateEntries = false
145
144
  } = params;
146
-
147
- let output = _objectSpread({}, input);
148
-
145
+ let output = (0, _objectSpread2.default)({}, input);
149
146
  const referenceFieldPaths = buildReferenceFieldPaths({
150
147
  fields: model.fields,
151
148
  input,
152
149
  parentPaths: []
153
150
  });
154
-
155
151
  if (referenceFieldPaths.length === 0) {
156
152
  return output;
157
153
  }
158
-
159
154
  const referencesByModel = {};
160
155
  const pathsByReferenceId = {};
161
-
162
156
  for (const path of referenceFieldPaths) {
163
157
  const ref = _dotProp.default.get(output, path);
164
-
165
158
  const {
166
159
  id,
167
160
  modelId
168
161
  } = getReferenceFieldValue(ref);
169
-
170
162
  if (!id || !modelId) {
171
163
  continue;
172
164
  }
173
-
174
165
  if (!referencesByModel[modelId]) {
175
166
  referencesByModel[modelId] = [];
176
167
  }
177
-
178
168
  referencesByModel[modelId].push(id);
179
-
180
169
  if (!pathsByReferenceId[id]) {
181
170
  pathsByReferenceId[id] = [];
182
171
  }
183
-
184
172
  pathsByReferenceId[id].push(path);
185
173
  }
174
+
186
175
  /**
187
176
  * Again, no point in going further.
188
177
  */
189
-
190
-
191
178
  if (Object.keys(referencesByModel).length === 0) {
192
179
  return output;
193
180
  }
194
181
  /**
195
182
  * Load all models and use only those that are used in reference.
196
183
  */
197
-
198
-
199
184
  const models = (await context.cms.listModels()).filter(model => {
200
185
  const entries = referencesByModel[model.modelId];
201
-
202
- if (Array.isArray(entries) === false || entries.length === 0) {
186
+ if (!Array.isArray(entries) || entries.length === 0) {
203
187
  return false;
204
188
  }
205
-
206
189
  return true;
207
190
  });
208
191
  /**
209
192
  * Check for any model existence, just in case.
210
193
  */
211
-
212
194
  if (models.length === 0) {
213
195
  return output;
214
196
  }
197
+
215
198
  /**
216
199
  * Load all the entries by their ID
217
200
  */
218
-
219
-
220
201
  const promises = models.map(model => {
221
202
  return context.cms.getEntriesByIds(model, referencesByModel[model.modelId]);
222
203
  });
@@ -229,26 +210,22 @@ const referenceFieldsMapping = async params => {
229
210
  modelId: entry.modelId
230
211
  };
231
212
  }
232
-
233
213
  return collection;
234
214
  }, {});
235
215
  /**
236
216
  * Verify that all referenced entries actually exist.
237
217
  */
238
-
239
218
  for (const modelId in referencesByModel) {
240
219
  const entries = referencesByModel[modelId];
241
-
242
220
  for (const id of entries) {
243
221
  if (records[id]) {
244
222
  continue;
245
- } else if (validateEntries === true) {
223
+ } else if (validateEntries) {
246
224
  throw new _error.default(`Missing referenced entry with id "${id}" in model "${modelId}".`, "ENTRY_NOT_FOUND", {
247
225
  id,
248
226
  model: modelId
249
227
  });
250
228
  }
251
-
252
229
  const {
253
230
  id: entryId
254
231
  } = (0, _utils.parseIdentifier)(id);
@@ -259,26 +236,22 @@ const referenceFieldsMapping = async params => {
259
236
  };
260
237
  }
261
238
  }
239
+
262
240
  /**
263
241
  * In the end, assign the entryId, id and model values to the output.
264
242
  */
265
-
266
-
267
243
  for (const id in pathsByReferenceId) {
268
244
  const entry = records[id];
269
245
  const paths = pathsByReferenceId[id];
270
-
271
246
  if (!entry) {
272
- if (validateEntries === true) {
247
+ if (validateEntries) {
273
248
  throw new _error.default("Missing entry in records.", "ENTRY_ERROR", {
274
249
  id,
275
250
  paths
276
251
  });
277
252
  }
278
-
279
253
  continue;
280
254
  }
281
-
282
255
  for (const path of paths) {
283
256
  output = _dotProp.default.set(output, path, {
284
257
  id: entry.id,
@@ -287,8 +260,6 @@ const referenceFieldsMapping = async params => {
287
260
  });
288
261
  }
289
262
  }
290
-
291
263
  return output;
292
264
  };
293
-
294
265
  exports.referenceFieldsMapping = referenceFieldsMapping;
@@ -1 +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
+ {"version":3,"names":["_error","_interopRequireDefault","require","_dotProp","_utils","_getBaseFieldType","buildReferenceFieldPaths","params","fields","parentPaths","initialParentPaths","input","isMultipleValues","Array","isArray","filter","field","includes","getBaseFieldType","reduce","collection","_field$settings3","baseType","parentPathsValue","length","join","multipleValues","inputValue","dotProp","get","fieldId","key","path","push","_field$settings","templates","settings","template","result","concat","gqlTypeName","objFieldPath","objFieldInputValue","_field$settings2","results","getReferenceFieldValue","ref","id","modelId","entryId","trim","referenceFieldsMapping","context","model","validateEntries","output","_objectSpread2","default","referenceFieldPaths","referencesByModel","pathsByReferenceId","Object","keys","models","cms","listModels","entries","promises","map","getEntriesByIds","Promise","all","records","entry","WebinyError","parseIdentifier","paths","set","exports"],"sources":["referenceFieldsMapping.ts"],"sourcesContent":["import { CmsContext, CmsDynamicZoneTemplate, CmsModel, CmsModelField } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport dotProp from \"dot-prop\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { getBaseFieldType } from \"~/utils/getBaseFieldType\";\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\", \"dynamicZone\"].includes(getBaseFieldType(field)))\n .reduce((collection, field) => {\n /**\n * First we check the ref field\n */\n const baseType = getBaseFieldType(field);\n if (baseType === \"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 if (baseType === \"dynamicZone\") {\n const templates: CmsDynamicZoneTemplate[] = field.settings?.templates || [];\n for (const template of templates) {\n if (field.multipleValues) {\n const inputValue = dotProp.get(input, `${field.fieldId}`, []);\n if (Array.isArray(inputValue) === false) {\n return collection;\n }\n\n for (const key in inputValue) {\n const result = buildReferenceFieldPaths({\n fields: template.fields,\n input: inputValue[key],\n parentPaths: parentPaths.concat([\n field.fieldId,\n key,\n template.gqlTypeName\n ])\n });\n collection.push(...result);\n }\n continue;\n }\n\n const result = buildReferenceFieldPaths({\n fields: template.fields,\n input,\n parentPaths: parentPaths.concat([field.fieldId, template.gqlTypeName])\n });\n collection.push(...result);\n }\n\n return collection;\n }\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) || 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) {\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) {\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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"}
@@ -0,0 +1,9 @@
1
+ import { CmsModelField } from "../../types";
2
+ import { PluginsContainer } from "@webiny/plugins";
3
+ interface Params {
4
+ input: string[];
5
+ fields: CmsModelField[];
6
+ plugins: PluginsContainer;
7
+ }
8
+ export declare const getSearchableFields: (params: Params) => string[];
9
+ export {};