@webiny/api-headless-cms 6.4.11 → 6.6.0-alpha.1

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 (773) hide show
  1. package/HeadlessCmsContextualSchema.d.ts +16 -0
  2. package/HeadlessCmsContextualSchema.js +32 -0
  3. package/HeadlessCmsContextualSchema.js.map +1 -0
  4. package/HeadlessCmsEndpointConfig.d.ts +10 -0
  5. package/HeadlessCmsEndpointConfig.js +5 -0
  6. package/HeadlessCmsEndpointConfig.js.map +1 -0
  7. package/HeadlessCmsFeature.d.ts +10 -0
  8. package/HeadlessCmsFeature.js +195 -0
  9. package/HeadlessCmsFeature.js.map +1 -0
  10. package/createCmsRoute.d.ts +26 -0
  11. package/createCmsRoute.js +59 -0
  12. package/createCmsRoute.js.map +1 -0
  13. package/crud/contentEntry/entryDataValidation.d.ts +1 -1
  14. package/crud/contentEntry/entryDataValidation.js +29 -15
  15. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  16. package/crud/contentEntry/references/validateEntries.d.ts +1 -1
  17. package/crud/contentEntry/references/validateEntries.js +17 -7
  18. package/crud/contentEntry/references/validateEntries.js.map +1 -1
  19. package/crud/contentEntry.crud.js +22 -20
  20. package/crud/contentEntry.crud.js.map +1 -1
  21. package/crud/contentModel/defaultFields.js +3 -2
  22. package/crud/contentModel/defaultFields.js.map +1 -1
  23. package/crud/contentModel.crud.js +8 -6
  24. package/crud/contentModel.crud.js.map +1 -1
  25. package/crud/contentModelGroup.crud.js +7 -5
  26. package/crud/contentModelGroup.crud.js.map +1 -1
  27. package/domain/contentModel/schemas.d.ts +2 -0
  28. package/domain/contentModel/schemas.js +4 -2
  29. package/domain/contentModel/schemas.js.map +1 -1
  30. package/domain/contentModel/validation/modelFields.js +21 -15
  31. package/domain/contentModel/validation/modelFields.js.map +1 -1
  32. package/export/abstractions.d.ts +9 -0
  33. package/export/abstractions.js +6 -0
  34. package/export/abstractions.js.map +1 -0
  35. package/export/crud/exporting.js +8 -2
  36. package/export/crud/exporting.js.map +1 -1
  37. package/export/crud/importing.js +13 -4
  38. package/export/crud/importing.js.map +1 -1
  39. package/export/crud/imports/importGroups.js +23 -23
  40. package/export/crud/imports/importGroups.js.map +1 -1
  41. package/export/crud/imports/importModels.js +25 -22
  42. package/export/crud/imports/importModels.js.map +1 -1
  43. package/export/graphql/index.d.ts +2 -3
  44. package/export/graphql/index.js +6 -10
  45. package/export/graphql/index.js.map +1 -1
  46. package/exports/api/cms/model.d.ts +4 -1
  47. package/exports/api/cms/model.js +2 -0
  48. package/exports/api/cms/storage.d.ts +0 -1
  49. package/exports/api/cms/storage.js +0 -1
  50. package/features/ai/DescribeContentModelTool.d.ts +55 -0
  51. package/features/ai/DescribeContentModelTool.js +60 -0
  52. package/features/ai/DescribeContentModelTool.js.map +1 -0
  53. package/features/ai/ListContentModelsTool.d.ts +41 -0
  54. package/features/ai/ListContentModelsTool.js +44 -0
  55. package/features/ai/ListContentModelsTool.js.map +1 -0
  56. package/features/ai/QueryEntriesTool.d.ts +75 -0
  57. package/features/ai/QueryEntriesTool.js +90 -0
  58. package/features/ai/QueryEntriesTool.js.map +1 -0
  59. package/features/ai/feature.d.ts +8 -0
  60. package/features/ai/feature.js +15 -0
  61. package/features/ai/feature.js.map +1 -0
  62. package/features/ai/index.d.ts +4 -0
  63. package/features/ai/index.js +4 -0
  64. package/features/contentEntry/ContentEntriesFeature.js +0 -2
  65. package/features/contentEntry/ContentEntriesFeature.js.map +1 -1
  66. package/features/contentEntry/CreateEntry/CreateEntryRepository.d.ts +7 -7
  67. package/features/contentEntry/CreateEntry/CreateEntryRepository.js +8 -14
  68. package/features/contentEntry/CreateEntry/CreateEntryRepository.js.map +1 -1
  69. package/features/contentEntry/CreateEntry/CreateEntryUseCase.d.ts +3 -1
  70. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js +2 -3
  71. package/features/contentEntry/CreateEntry/CreateEntryUseCase.js.map +1 -1
  72. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.d.ts +7 -7
  73. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js +8 -14
  74. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromRepository.js.map +1 -1
  75. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.d.ts +3 -1
  76. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js +2 -3
  77. package/features/contentEntry/CreateEntryRevisionFrom/CreateEntryRevisionFromUseCase.js.map +1 -1
  78. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.d.ts +7 -7
  79. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js +8 -14
  80. package/features/contentEntry/DeleteEntry/DeleteEntryRepository.js.map +1 -1
  81. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.d.ts +3 -1
  82. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js +2 -3
  83. package/features/contentEntry/DeleteEntry/DeleteEntryUseCase.js.map +1 -1
  84. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.d.ts +6 -6
  85. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js +8 -14
  86. package/features/contentEntry/DeleteEntry/MoveEntryToBinRepository.js.map +1 -1
  87. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.d.ts +3 -1
  88. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js +2 -3
  89. package/features/contentEntry/DeleteEntry/MoveEntryToBinUseCase.js.map +1 -1
  90. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.d.ts +3 -3
  91. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js +5 -5
  92. package/features/contentEntry/DeleteEntry/decorators/ForceDeleteDecorator.js.map +1 -1
  93. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.d.ts +6 -6
  94. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js +8 -14
  95. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionRepository.js.map +1 -1
  96. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.d.ts +3 -1
  97. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js +2 -3
  98. package/features/contentEntry/DeleteEntryRevision/DeleteEntryRevisionUseCase.js.map +1 -1
  99. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.d.ts +7 -7
  100. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js +8 -13
  101. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesRepository.js.map +1 -1
  102. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.d.ts +3 -1
  103. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js +2 -3
  104. package/features/contentEntry/DeleteMultipleEntries/DeleteMultipleEntriesUseCase.js.map +1 -1
  105. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.d.ts +9 -7
  106. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js +15 -13
  107. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsRepository.js.map +1 -1
  108. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.d.ts +3 -1
  109. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js +2 -3
  110. package/features/contentEntry/GetEntriesByIds/GetEntriesByIdsUseCase.js.map +1 -1
  111. package/features/contentEntry/GetEntry/GetEntryUseCase.d.ts +3 -1
  112. package/features/contentEntry/GetEntry/GetEntryUseCase.js +2 -3
  113. package/features/contentEntry/GetEntry/GetEntryUseCase.js.map +1 -1
  114. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.d.ts +3 -1
  115. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js +2 -3
  116. package/features/contentEntry/GetEntryById/GetEntryByIdUseCase.js.map +1 -1
  117. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.d.ts +7 -7
  118. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js +8 -13
  119. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsRepository.js.map +1 -1
  120. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.d.ts +3 -1
  121. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js +2 -3
  122. package/features/contentEntry/GetLatestEntriesByIds/GetLatestEntriesByIdsUseCase.js.map +1 -1
  123. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.d.ts +3 -1
  124. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js +2 -3
  125. package/features/contentEntry/GetLatestRevisionByEntryId/BaseUseCase.js.map +1 -1
  126. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.d.ts +7 -7
  127. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js +8 -13
  128. package/features/contentEntry/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdRepository.js.map +1 -1
  129. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.d.ts +3 -1
  130. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js +2 -3
  131. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestDeletedRevisionByEntryIdUseCase.js.map +1 -1
  132. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.d.ts +3 -1
  133. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js +1 -3
  134. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdIncludingDeletedUseCase.js.map +1 -1
  135. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.d.ts +3 -1
  136. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js +2 -3
  137. package/features/contentEntry/GetLatestRevisionByEntryId/variations/GetLatestRevisionByEntryIdUseCase.js.map +1 -1
  138. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.d.ts +3 -1
  139. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js +2 -3
  140. package/features/contentEntry/GetPreviousRevisionByEntryId/BaseUseCase.js.map +1 -1
  141. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.d.ts +7 -7
  142. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js +8 -13
  143. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdRepository.js.map +1 -1
  144. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.d.ts +3 -1
  145. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js +2 -3
  146. package/features/contentEntry/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdUseCase.js.map +1 -1
  147. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.d.ts +7 -7
  148. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js +8 -13
  149. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsRepository.js.map +1 -1
  150. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.d.ts +3 -1
  151. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js +2 -3
  152. package/features/contentEntry/GetPublishedEntriesByIds/GetPublishedEntriesByIdsUseCase.js.map +1 -1
  153. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.d.ts +7 -7
  154. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js +8 -13
  155. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdRepository.js.map +1 -1
  156. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.d.ts +3 -1
  157. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js +2 -3
  158. package/features/contentEntry/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdUseCase.js.map +1 -1
  159. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.d.ts +7 -7
  160. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js +8 -13
  161. package/features/contentEntry/GetRevisionById/GetRevisionByIdRepository.js.map +1 -1
  162. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.d.ts +3 -1
  163. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js +1 -3
  164. package/features/contentEntry/GetRevisionById/GetRevisionByIdUseCase.js.map +1 -1
  165. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.d.ts +7 -7
  166. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js +8 -13
  167. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdRepository.js.map +1 -1
  168. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.d.ts +3 -1
  169. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js +2 -3
  170. package/features/contentEntry/GetRevisionsByEntryId/GetRevisionsByEntryIdUseCase.js.map +1 -1
  171. package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js +1 -3
  172. package/features/contentEntry/GetSingletonEntry/GetSingletonEntryUseCase.js.map +1 -1
  173. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.d.ts +7 -7
  174. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js +8 -13
  175. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesRepository.js.map +1 -1
  176. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.d.ts +6 -2
  177. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js +8 -6
  178. package/features/contentEntry/GetUniqueFieldValues/GetUniqueFieldValuesUseCase.js.map +1 -1
  179. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.d.ts +3 -1
  180. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js +1 -3
  181. package/features/contentEntry/ListEntries/ListDeletedEntriesUseCase.js.map +1 -1
  182. package/features/contentEntry/ListEntries/ListEntriesRepository.d.ts +7 -7
  183. package/features/contentEntry/ListEntries/ListEntriesRepository.js +8 -13
  184. package/features/contentEntry/ListEntries/ListEntriesRepository.js.map +1 -1
  185. package/features/contentEntry/ListEntries/ListEntriesUseCase.d.ts +3 -1
  186. package/features/contentEntry/ListEntries/ListEntriesUseCase.js +2 -3
  187. package/features/contentEntry/ListEntries/ListEntriesUseCase.js.map +1 -1
  188. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.d.ts +3 -1
  189. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js +1 -3
  190. package/features/contentEntry/ListEntries/ListLatestEntriesUseCase.js.map +1 -1
  191. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.d.ts +3 -1
  192. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js +1 -3
  193. package/features/contentEntry/ListEntries/ListPublishedEntriesUseCase.js.map +1 -1
  194. package/features/contentEntry/MoveEntry/MoveEntryRepository.d.ts +7 -7
  195. package/features/contentEntry/MoveEntry/MoveEntryRepository.js +8 -13
  196. package/features/contentEntry/MoveEntry/MoveEntryRepository.js.map +1 -1
  197. package/features/contentEntry/MoveEntry/MoveEntryUseCase.d.ts +3 -1
  198. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js +2 -3
  199. package/features/contentEntry/MoveEntry/MoveEntryUseCase.js.map +1 -1
  200. package/features/contentEntry/PublishEntry/PublishEntryRepository.d.ts +7 -7
  201. package/features/contentEntry/PublishEntry/PublishEntryRepository.js +8 -14
  202. package/features/contentEntry/PublishEntry/PublishEntryRepository.js.map +1 -1
  203. package/features/contentEntry/PublishEntry/PublishEntryUseCase.d.ts +3 -1
  204. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js +2 -3
  205. package/features/contentEntry/PublishEntry/PublishEntryUseCase.js.map +1 -1
  206. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.d.ts +9 -7
  207. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js +12 -15
  208. package/features/contentEntry/RepublishEntry/RepublishEntryRepository.js.map +1 -1
  209. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.d.ts +3 -1
  210. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js +2 -3
  211. package/features/contentEntry/RepublishEntry/RepublishEntryUseCase.js.map +1 -1
  212. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.d.ts +7 -7
  213. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js +8 -14
  214. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinRepository.js.map +1 -1
  215. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.d.ts +3 -1
  216. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js +2 -3
  217. package/features/contentEntry/RestoreEntryFromBin/RestoreEntryFromBinUseCase.js.map +1 -1
  218. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.d.ts +7 -7
  219. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js +8 -14
  220. package/features/contentEntry/UnpublishEntry/UnpublishEntryRepository.js.map +1 -1
  221. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.d.ts +3 -1
  222. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js +2 -3
  223. package/features/contentEntry/UnpublishEntry/UnpublishEntryUseCase.js.map +1 -1
  224. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.d.ts +7 -7
  225. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js +8 -14
  226. package/features/contentEntry/UpdateEntry/UpdateEntryRepository.js.map +1 -1
  227. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.d.ts +3 -1
  228. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js +2 -3
  229. package/features/contentEntry/UpdateEntry/UpdateEntryUseCase.js.map +1 -1
  230. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.d.ts +3 -1
  231. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js +2 -3
  232. package/features/contentEntry/UpdateRevisionDescription/UpdateRevisionDescriptionUseCase.js.map +1 -1
  233. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.d.ts +3 -1
  234. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js +2 -3
  235. package/features/contentEntry/ValidateEntry/ValidateEntryUseCase.js.map +1 -1
  236. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.d.ts +3 -1
  237. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js +2 -4
  238. package/features/contentEntry/entryDataFactories/CreateEntryDataFactory/CreateEntryDataFactory.js.map +1 -1
  239. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.d.ts +4 -4
  240. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js +4 -8
  241. package/features/contentEntry/entryDataFactories/CreateEntryRevisionFromDataFactory/CreateEntryRevisionFromDataFactory.js.map +1 -1
  242. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.d.ts +3 -1
  243. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js +1 -3
  244. package/features/contentEntry/entryDataFactories/CreatePublishEntryDataFactory/CreatePublishEntryDataFactory.js.map +1 -1
  245. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.d.ts +3 -1
  246. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js +1 -3
  247. package/features/contentEntry/entryDataFactories/CreateRepublishEntryDataFactory/CreateRepublishEntryDataFactory.js.map +1 -1
  248. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.d.ts +3 -1
  249. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js +1 -3
  250. package/features/contentEntry/entryDataFactories/CreateUnpublishEntryDataFactory/CreateUnpublishEntryDataFactory.js.map +1 -1
  251. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.d.ts +3 -1
  252. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js +2 -4
  253. package/features/contentEntry/entryDataFactories/UpdateEntryDataFactory/UpdateEntryDataFactory.js.map +1 -1
  254. package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.d.ts +14 -0
  255. package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.js +32 -0
  256. package/features/contentModel/ComponentMapGenerator/ComponentMapGenerator.js.map +1 -0
  257. package/features/contentModel/ComponentMapGenerator/abstractions.d.ts +8 -0
  258. package/features/contentModel/ComponentMapGenerator/abstractions.js +5 -0
  259. package/features/contentModel/ComponentMapGenerator/abstractions.js.map +1 -0
  260. package/features/contentModel/ComponentMapGenerator/feature.d.ts +4 -0
  261. package/features/contentModel/ComponentMapGenerator/feature.js +11 -0
  262. package/features/contentModel/ComponentMapGenerator/feature.js.map +1 -0
  263. package/features/contentModel/ComponentMapGenerator/index.d.ts +2 -0
  264. package/features/contentModel/ComponentMapGenerator/index.js +2 -0
  265. package/features/contentModel/ContentModelFeature.js +6 -0
  266. package/features/contentModel/ContentModelFeature.js.map +1 -1
  267. package/features/contentModel/CreateModel/CreateModelRepository.d.ts +5 -6
  268. package/features/contentModel/CreateModel/CreateModelRepository.js +9 -12
  269. package/features/contentModel/CreateModel/CreateModelRepository.js.map +1 -1
  270. package/features/contentModel/CreateModel/CreateModelUseCase.js +2 -2
  271. package/features/contentModel/CreateModel/CreateModelUseCase.js.map +1 -1
  272. package/features/contentModel/CreateModel/abstractions.d.ts +1 -1
  273. package/features/contentModel/CreateModel/abstractions.js.map +1 -1
  274. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.d.ts +5 -6
  275. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js +9 -12
  276. package/features/contentModel/CreateModelFrom/CreateModelFromRepository.js.map +1 -1
  277. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js +2 -2
  278. package/features/contentModel/CreateModelFrom/CreateModelFromUseCase.js.map +1 -1
  279. package/features/contentModel/CreateModelFrom/abstractions.d.ts +1 -1
  280. package/features/contentModel/CreateModelFrom/abstractions.js.map +1 -1
  281. package/features/contentModel/DeleteModel/DeleteModelRepository.d.ts +4 -6
  282. package/features/contentModel/DeleteModel/DeleteModelRepository.js +6 -10
  283. package/features/contentModel/DeleteModel/DeleteModelRepository.js.map +1 -1
  284. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.d.ts +1 -0
  285. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js +11 -8
  286. package/features/contentModel/DeleteModel/DeleteModelWithEntryCleanup.js.map +1 -1
  287. package/features/contentModel/RefModelsGenerator/RefModelsGenerator.d.ts +19 -0
  288. package/features/contentModel/RefModelsGenerator/RefModelsGenerator.js +56 -0
  289. package/features/contentModel/RefModelsGenerator/RefModelsGenerator.js.map +1 -0
  290. package/features/contentModel/RefModelsGenerator/abstractions.d.ts +11 -0
  291. package/features/contentModel/RefModelsGenerator/abstractions.js +5 -0
  292. package/features/contentModel/RefModelsGenerator/abstractions.js.map +1 -0
  293. package/features/contentModel/RefModelsGenerator/feature.d.ts +4 -0
  294. package/features/contentModel/RefModelsGenerator/feature.js +11 -0
  295. package/features/contentModel/RefModelsGenerator/feature.js.map +1 -0
  296. package/features/contentModel/RefModelsGenerator/index.d.ts +2 -0
  297. package/features/contentModel/RefModelsGenerator/index.js +2 -0
  298. package/features/contentModel/UpdateModel/UpdateModelRepository.d.ts +7 -6
  299. package/features/contentModel/UpdateModel/UpdateModelRepository.js +12 -12
  300. package/features/contentModel/UpdateModel/UpdateModelRepository.js.map +1 -1
  301. package/features/contentModel/UpdateModel/UpdateModelUseCase.js +2 -2
  302. package/features/contentModel/UpdateModel/UpdateModelUseCase.js.map +1 -1
  303. package/features/contentModel/UpdateModel/abstractions.d.ts +1 -1
  304. package/features/contentModel/UpdateModel/abstractions.js.map +1 -1
  305. package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.d.ts +16 -0
  306. package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js +53 -0
  307. package/features/contentModel/ValuesSelectionGenerator/ValuesSelectionGenerator.js.map +1 -0
  308. package/features/contentModel/ValuesSelectionGenerator/abstractions.d.ts +8 -0
  309. package/features/contentModel/ValuesSelectionGenerator/abstractions.js +5 -0
  310. package/features/contentModel/ValuesSelectionGenerator/abstractions.js.map +1 -0
  311. package/features/contentModel/ValuesSelectionGenerator/feature.d.ts +4 -0
  312. package/features/contentModel/ValuesSelectionGenerator/feature.js +11 -0
  313. package/features/contentModel/ValuesSelectionGenerator/feature.js.map +1 -0
  314. package/features/contentModel/ValuesSelectionGenerator/index.d.ts +1 -0
  315. package/features/contentModel/ValuesSelectionGenerator/index.js +1 -0
  316. package/features/contentModel/shared/ModelsFetcher.d.ts +3 -3
  317. package/features/contentModel/shared/ModelsFetcher.js +5 -5
  318. package/features/contentModel/shared/ModelsFetcher.js.map +1 -1
  319. package/features/contentModel/shared/PluginModelsProvider.d.ts +5 -4
  320. package/features/contentModel/shared/PluginModelsProvider.js +11 -8
  321. package/features/contentModel/shared/PluginModelsProvider.js.map +1 -1
  322. package/features/contentModel/shared/abstractions.d.ts +10 -0
  323. package/features/contentModel/shared/abstractions.js +2 -1
  324. package/features/contentModel/shared/abstractions.js.map +1 -1
  325. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.d.ts +11 -7
  326. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js +19 -19
  327. package/features/contentModelGroup/CreateGroup/CreateGroupRepository.js.map +1 -1
  328. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.d.ts +6 -2
  329. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js +9 -8
  330. package/features/contentModelGroup/CreateGroup/CreateGroupUseCase.js.map +1 -1
  331. package/features/contentModelGroup/CreateGroup/abstractions.d.ts +1 -1
  332. package/features/contentModelGroup/CreateGroup/abstractions.js.map +1 -1
  333. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.d.ts +9 -7
  334. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js +12 -14
  335. package/features/contentModelGroup/DeleteGroup/DeleteGroupRepository.js.map +1 -1
  336. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.d.ts +3 -1
  337. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js +2 -3
  338. package/features/contentModelGroup/DeleteGroup/DeleteGroupUseCase.js.map +1 -1
  339. package/features/contentModelGroup/GetGroup/GetGroupRepository.d.ts +6 -4
  340. package/features/contentModelGroup/GetGroup/GetGroupRepository.js +9 -9
  341. package/features/contentModelGroup/GetGroup/GetGroupRepository.js.map +1 -1
  342. package/features/contentModelGroup/GetGroup/GetGroupUseCase.d.ts +3 -1
  343. package/features/contentModelGroup/GetGroup/GetGroupUseCase.js +2 -3
  344. package/features/contentModelGroup/GetGroup/GetGroupUseCase.js.map +1 -1
  345. package/features/contentModelGroup/ListGroups/ListGroupsRepository.d.ts +6 -4
  346. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js +9 -9
  347. package/features/contentModelGroup/ListGroups/ListGroupsRepository.js.map +1 -1
  348. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.d.ts +3 -1
  349. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js +2 -3
  350. package/features/contentModelGroup/ListGroups/ListGroupsUseCase.js.map +1 -1
  351. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.d.ts +7 -7
  352. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js +9 -14
  353. package/features/contentModelGroup/UpdateGroup/UpdateGroupRepository.js.map +1 -1
  354. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.d.ts +3 -1
  355. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js +4 -5
  356. package/features/contentModelGroup/UpdateGroup/UpdateGroupUseCase.js.map +1 -1
  357. package/features/contentModelGroup/UpdateGroup/abstractions.d.ts +1 -1
  358. package/features/contentModelGroup/UpdateGroup/abstractions.js.map +1 -1
  359. package/features/contentModelGroup/shared/PluginGroupsProvider.d.ts +6 -4
  360. package/features/contentModelGroup/shared/PluginGroupsProvider.js +13 -11
  361. package/features/contentModelGroup/shared/PluginGroupsProvider.js.map +1 -1
  362. package/features/contentModelGroup/shared/abstractions.d.ts +10 -0
  363. package/features/contentModelGroup/shared/abstractions.js +2 -1
  364. package/features/contentModelGroup/shared/abstractions.js.map +1 -1
  365. package/features/graphql/feature.js +2 -0
  366. package/features/graphql/feature.js.map +1 -1
  367. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.d.ts +2 -2
  368. package/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js.map +1 -1
  369. package/features/graphql/fields/base/AssetToGraphQL.d.ts +26 -0
  370. package/features/graphql/fields/base/AssetToGraphQL.js +148 -0
  371. package/features/graphql/fields/base/AssetToGraphQL.js.map +1 -0
  372. package/features/graphql/fields/base/DynamicZoneToGraphQL.js +5 -1
  373. package/features/graphql/fields/base/DynamicZoneToGraphQL.js.map +1 -1
  374. package/features/graphql/fields/base/ObjectToGraphQL.js +2 -2
  375. package/features/graphql/fields/base/ObjectToGraphQL.js.map +1 -1
  376. package/features/graphql/fields/base/RefToGraphQL.d.ts +1 -1
  377. package/features/graphql/fields/base/RefToGraphQL.js +10 -18
  378. package/features/graphql/fields/base/RefToGraphQL.js.map +1 -1
  379. package/features/graphql/fields/base/richText/richTextResolver.d.ts +1 -1
  380. package/features/graphql/fields/base/richText/richTextResolver.js.map +1 -1
  381. package/features/modelBuilder/abstractions.d.ts +10 -0
  382. package/features/modelBuilder/abstractions.js.map +1 -1
  383. package/features/modelBuilder/feature.js +2 -0
  384. package/features/modelBuilder/feature.js.map +1 -1
  385. package/features/modelBuilder/fields/AssetFieldType.d.ts +20 -0
  386. package/features/modelBuilder/fields/AssetFieldType.js +46 -0
  387. package/features/modelBuilder/fields/AssetFieldType.js.map +1 -0
  388. package/features/modelBuilder/fields/DataFieldBuilder.d.ts +54 -18
  389. package/features/modelBuilder/fields/DataFieldBuilder.js +3 -0
  390. package/features/modelBuilder/fields/DataFieldBuilder.js.map +1 -1
  391. package/features/modelBuilder/fields/DynamicZoneFieldType.d.ts +1 -0
  392. package/features/modelBuilder/fields/DynamicZoneFieldType.js +2 -6
  393. package/features/modelBuilder/fields/DynamicZoneFieldType.js.map +1 -1
  394. package/features/modelBuilder/fields/TextFieldType.d.ts +3 -1
  395. package/features/modelBuilder/fields/TextFieldType.js +1 -3
  396. package/features/modelBuilder/fields/TextFieldType.js.map +1 -1
  397. package/features/modelBuilder/fields/resolveAssetUrl.d.ts +35 -0
  398. package/features/modelBuilder/fields/resolveAssetUrl.js +26 -0
  399. package/features/modelBuilder/fields/resolveAssetUrl.js.map +1 -0
  400. package/features/modelBuilder/index.d.ts +1 -1
  401. package/features/modelBuilder/models/BaseModelBuilder.d.ts +3 -1
  402. package/features/modelBuilder/models/BaseModelBuilder.js +7 -0
  403. package/features/modelBuilder/models/BaseModelBuilder.js.map +1 -1
  404. package/features/modelBuilder/models/PrivateModelBuilder.js +2 -1
  405. package/features/modelBuilder/models/PrivateModelBuilder.js.map +1 -1
  406. package/features/modelBuilder/models/PublicModelBuilder.js +2 -1
  407. package/features/modelBuilder/models/PublicModelBuilder.js.map +1 -1
  408. package/features/shared/abstractions.d.ts +11 -15
  409. package/features/shared/abstractions.js +3 -3
  410. package/features/shared/abstractions.js.map +1 -1
  411. package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.d.ts +8 -0
  412. package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js +5 -0
  413. package/features/shared/storageOperations/entry/CreateEntryRevisionFromStorageOperation.js.map +1 -0
  414. package/features/shared/storageOperations/entry/CreateEntryStorageOperation.d.ts +8 -0
  415. package/features/shared/storageOperations/entry/CreateEntryStorageOperation.js +5 -0
  416. package/features/shared/storageOperations/entry/CreateEntryStorageOperation.js.map +1 -0
  417. package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.d.ts +8 -0
  418. package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js +5 -0
  419. package/features/shared/storageOperations/entry/DeleteEntryRevisionStorageOperation.js.map +1 -0
  420. package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.d.ts +8 -0
  421. package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js +5 -0
  422. package/features/shared/storageOperations/entry/DeleteEntryStorageOperation.js.map +1 -0
  423. package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.d.ts +8 -0
  424. package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js +5 -0
  425. package/features/shared/storageOperations/entry/DeleteMultipleEntriesStorageOperation.js.map +1 -0
  426. package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.d.ts +8 -0
  427. package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js +5 -0
  428. package/features/shared/storageOperations/entry/GetEntriesByIdsStorageOperation.js.map +1 -0
  429. package/features/shared/storageOperations/entry/GetEntryStorageOperation.d.ts +8 -0
  430. package/features/shared/storageOperations/entry/GetEntryStorageOperation.js +5 -0
  431. package/features/shared/storageOperations/entry/GetEntryStorageOperation.js.map +1 -0
  432. package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.d.ts +8 -0
  433. package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js +5 -0
  434. package/features/shared/storageOperations/entry/GetLatestEntriesByIdsStorageOperation.js.map +1 -0
  435. package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.d.ts +8 -0
  436. package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js +5 -0
  437. package/features/shared/storageOperations/entry/GetLatestRevisionByEntryIdStorageOperation.js.map +1 -0
  438. package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.d.ts +8 -0
  439. package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js +5 -0
  440. package/features/shared/storageOperations/entry/GetPreviousRevisionStorageOperation.js.map +1 -0
  441. package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.d.ts +8 -0
  442. package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js +5 -0
  443. package/features/shared/storageOperations/entry/GetPublishedEntriesByIdsStorageOperation.js.map +1 -0
  444. package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.d.ts +8 -0
  445. package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js +5 -0
  446. package/features/shared/storageOperations/entry/GetPublishedRevisionByEntryIdStorageOperation.js.map +1 -0
  447. package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.d.ts +8 -0
  448. package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js +5 -0
  449. package/features/shared/storageOperations/entry/GetRevisionByIdStorageOperation.js.map +1 -0
  450. package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.d.ts +8 -0
  451. package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js +5 -0
  452. package/features/shared/storageOperations/entry/GetRevisionsStorageOperation.js.map +1 -0
  453. package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.d.ts +8 -0
  454. package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js +5 -0
  455. package/features/shared/storageOperations/entry/GetUniqueFieldValuesStorageOperation.js.map +1 -0
  456. package/features/shared/storageOperations/entry/ListEntriesStorageOperation.d.ts +8 -0
  457. package/features/shared/storageOperations/entry/ListEntriesStorageOperation.js +5 -0
  458. package/features/shared/storageOperations/entry/ListEntriesStorageOperation.js.map +1 -0
  459. package/features/shared/storageOperations/entry/MoveEntryStorageOperation.d.ts +8 -0
  460. package/features/shared/storageOperations/entry/MoveEntryStorageOperation.js +5 -0
  461. package/features/shared/storageOperations/entry/MoveEntryStorageOperation.js.map +1 -0
  462. package/features/shared/storageOperations/entry/MoveToBinStorageOperation.d.ts +8 -0
  463. package/features/shared/storageOperations/entry/MoveToBinStorageOperation.js +5 -0
  464. package/features/shared/storageOperations/entry/MoveToBinStorageOperation.js.map +1 -0
  465. package/features/shared/storageOperations/entry/PublishEntryStorageOperation.d.ts +8 -0
  466. package/features/shared/storageOperations/entry/PublishEntryStorageOperation.js +5 -0
  467. package/features/shared/storageOperations/entry/PublishEntryStorageOperation.js.map +1 -0
  468. package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.d.ts +8 -0
  469. package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js +5 -0
  470. package/features/shared/storageOperations/entry/RestoreFromBinStorageOperation.js.map +1 -0
  471. package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.d.ts +8 -0
  472. package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js +5 -0
  473. package/features/shared/storageOperations/entry/UnpublishEntryStorageOperation.js.map +1 -0
  474. package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.d.ts +8 -0
  475. package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js +5 -0
  476. package/features/shared/storageOperations/entry/UpdateEntryStorageOperation.js.map +1 -0
  477. package/features/shared/storageOperations/group/CreateGroupStorageOperation.d.ts +8 -0
  478. package/features/shared/storageOperations/group/CreateGroupStorageOperation.js +5 -0
  479. package/features/shared/storageOperations/group/CreateGroupStorageOperation.js.map +1 -0
  480. package/features/shared/storageOperations/group/DeleteGroupStorageOperation.d.ts +8 -0
  481. package/features/shared/storageOperations/group/DeleteGroupStorageOperation.js +5 -0
  482. package/features/shared/storageOperations/group/DeleteGroupStorageOperation.js.map +1 -0
  483. package/features/shared/storageOperations/group/GetGroupStorageOperation.d.ts +8 -0
  484. package/features/shared/storageOperations/group/GetGroupStorageOperation.js +5 -0
  485. package/features/shared/storageOperations/group/GetGroupStorageOperation.js.map +1 -0
  486. package/features/shared/storageOperations/group/ListGroupsStorageOperation.d.ts +8 -0
  487. package/features/shared/storageOperations/group/ListGroupsStorageOperation.js +5 -0
  488. package/features/shared/storageOperations/group/ListGroupsStorageOperation.js.map +1 -0
  489. package/features/shared/storageOperations/group/UpdateGroupStorageOperation.d.ts +8 -0
  490. package/features/shared/storageOperations/group/UpdateGroupStorageOperation.js +5 -0
  491. package/features/shared/storageOperations/group/UpdateGroupStorageOperation.js.map +1 -0
  492. package/features/shared/storageOperations/index.d.ts +32 -0
  493. package/features/shared/storageOperations/index.js +32 -0
  494. package/features/shared/storageOperations/model/CreateModelStorageOperation.d.ts +8 -0
  495. package/features/shared/storageOperations/model/CreateModelStorageOperation.js +5 -0
  496. package/features/shared/storageOperations/model/CreateModelStorageOperation.js.map +1 -0
  497. package/features/shared/storageOperations/model/DeleteModelStorageOperation.d.ts +8 -0
  498. package/features/shared/storageOperations/model/DeleteModelStorageOperation.js +5 -0
  499. package/features/shared/storageOperations/model/DeleteModelStorageOperation.js.map +1 -0
  500. package/features/shared/storageOperations/model/GetModelStorageOperation.d.ts +8 -0
  501. package/features/shared/storageOperations/model/GetModelStorageOperation.js +5 -0
  502. package/features/shared/storageOperations/model/GetModelStorageOperation.js.map +1 -0
  503. package/features/shared/storageOperations/model/ListModelsStorageOperation.d.ts +8 -0
  504. package/features/shared/storageOperations/model/ListModelsStorageOperation.js +5 -0
  505. package/features/shared/storageOperations/model/ListModelsStorageOperation.js.map +1 -0
  506. package/features/shared/storageOperations/model/UpdateModelStorageOperation.d.ts +8 -0
  507. package/features/shared/storageOperations/model/UpdateModelStorageOperation.js +5 -0
  508. package/features/shared/storageOperations/model/UpdateModelStorageOperation.js.map +1 -0
  509. package/features/sortMapper/SortMapper.js +2 -5
  510. package/features/sortMapper/SortMapper.js.map +1 -1
  511. package/features/whereMapper/WhereMapper.js +7 -5
  512. package/features/whereMapper/WhereMapper.js.map +1 -1
  513. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +3 -7
  514. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  515. package/fieldConverters/abstractions.d.ts +14 -0
  516. package/fieldConverters/abstractions.js +13 -0
  517. package/fieldConverters/abstractions.js.map +1 -0
  518. package/fieldConverters/index.d.ts +1 -1
  519. package/graphql/CmsGraphQLSchemaFactory.d.ts +8 -0
  520. package/graphql/CmsGraphQLSchemaFactory.js +5 -0
  521. package/graphql/CmsGraphQLSchemaFactory.js.map +1 -0
  522. package/graphql/CmsSchemaExecutor.d.ts +10 -0
  523. package/graphql/CmsSchemaExecutor.js +5 -0
  524. package/graphql/CmsSchemaExecutor.js.map +1 -0
  525. package/graphql/buildSchemaPlugins.d.ts +2 -1
  526. package/graphql/buildSchemaPlugins.js +1 -3
  527. package/graphql/buildSchemaPlugins.js.map +1 -1
  528. package/graphql/checkEndpointAccess.js +5 -2
  529. package/graphql/checkEndpointAccess.js.map +1 -1
  530. package/graphql/createExecutableSchema.d.ts +1 -1
  531. package/graphql/createExecutableSchema.js +1 -1
  532. package/graphql/createExecutableSchema.js.map +1 -1
  533. package/graphql/generateSchema.d.ts +2 -1
  534. package/graphql/generateSchema.js +14 -5
  535. package/graphql/generateSchema.js.map +1 -1
  536. package/graphql/getSchema.js +7 -2
  537. package/graphql/getSchema.js.map +1 -1
  538. package/graphql/scalars/RevisionIdScalarPlugin.d.ts +1 -1
  539. package/graphql/scalars/RevisionIdScalarPlugin.js.map +1 -1
  540. package/graphql/schema/baseContentSchema.d.ts +1 -6
  541. package/graphql/schema/baseContentSchema.js +5 -8
  542. package/graphql/schema/baseContentSchema.js.map +1 -1
  543. package/graphql/schema/baseSchema.d.ts +2 -2
  544. package/graphql/schema/baseSchema.js +6 -41
  545. package/graphql/schema/baseSchema.js.map +1 -1
  546. package/graphql/schema/cms/CmsBaseErrorTypeFactory.d.ts +14 -0
  547. package/graphql/schema/cms/CmsBaseErrorTypeFactory.js +21 -0
  548. package/graphql/schema/cms/CmsBaseErrorTypeFactory.js.map +1 -0
  549. package/graphql/schema/cms/createEntryResolver.js +2 -2
  550. package/graphql/schema/cms/createEntryResolver.js.map +1 -1
  551. package/graphql/schema/cms/deleteEntryResolver.js +2 -2
  552. package/graphql/schema/cms/deleteEntryResolver.js.map +1 -1
  553. package/graphql/schema/cms/getEntryResolver.js +5 -4
  554. package/graphql/schema/cms/getEntryResolver.js.map +1 -1
  555. package/graphql/schema/cms/getModelResolver.d.ts +35 -0
  556. package/graphql/schema/cms/getModelResolver.js +49 -0
  557. package/graphql/schema/cms/getModelResolver.js.map +1 -0
  558. package/graphql/schema/cms/helpers/buildFieldsSelection.js +9 -2
  559. package/graphql/schema/cms/helpers/buildFieldsSelection.js.map +1 -1
  560. package/graphql/schema/cms/helpers/expandFieldWildcards.d.ts +2 -0
  561. package/graphql/schema/cms/helpers/expandFieldWildcards.js +13 -0
  562. package/graphql/schema/cms/helpers/expandFieldWildcards.js.map +1 -0
  563. package/graphql/schema/cms/helpers/getModel.d.ts +0 -3
  564. package/graphql/schema/cms/helpers/getModel.js +5 -3
  565. package/graphql/schema/cms/helpers/getModel.js.map +1 -1
  566. package/graphql/schema/cms/helpers/index.d.ts +1 -0
  567. package/graphql/schema/cms/helpers/index.js +1 -0
  568. package/graphql/schema/cms/helpers.d.ts +1 -0
  569. package/graphql/schema/cms/helpers.js +1 -0
  570. package/graphql/schema/cms/listEntriesResolver.js +5 -4
  571. package/graphql/schema/cms/listEntriesResolver.js.map +1 -1
  572. package/graphql/schema/cms/publishEntryResolver.js +2 -2
  573. package/graphql/schema/cms/publishEntryResolver.js.map +1 -1
  574. package/graphql/schema/cms/resolvers/createEntry.d.ts +2 -2
  575. package/graphql/schema/cms/resolvers/createEntry.js +1 -1
  576. package/graphql/schema/cms/resolvers/createEntry.js.map +1 -1
  577. package/graphql/schema/cms/resolvers/deleteEntryRevision.d.ts +2 -2
  578. package/graphql/schema/cms/resolvers/deleteEntryRevision.js +1 -1
  579. package/graphql/schema/cms/resolvers/deleteEntryRevision.js.map +1 -1
  580. package/graphql/schema/cms/resolvers/getEntry.d.ts +2 -2
  581. package/graphql/schema/cms/resolvers/getEntry.js +1 -1
  582. package/graphql/schema/cms/resolvers/getEntry.js.map +1 -1
  583. package/graphql/schema/cms/resolvers/getModel.d.ts +8 -0
  584. package/graphql/schema/cms/resolvers/getModel.js +18 -0
  585. package/graphql/schema/cms/resolvers/getModel.js.map +1 -0
  586. package/graphql/schema/cms/resolvers/index.d.ts +1 -0
  587. package/graphql/schema/cms/resolvers/index.js +1 -0
  588. package/graphql/schema/cms/resolvers/listEntries.d.ts +2 -2
  589. package/graphql/schema/cms/resolvers/listEntries.js +1 -1
  590. package/graphql/schema/cms/resolvers/listEntries.js.map +1 -1
  591. package/graphql/schema/cms/resolvers/mutationCms.d.ts +2 -2
  592. package/graphql/schema/cms/resolvers/mutationCms.js +1 -1
  593. package/graphql/schema/cms/resolvers/mutationCms.js.map +1 -1
  594. package/graphql/schema/cms/resolvers/publishEntryRevision.d.ts +2 -2
  595. package/graphql/schema/cms/resolvers/publishEntryRevision.js +1 -1
  596. package/graphql/schema/cms/resolvers/publishEntryRevision.js.map +1 -1
  597. package/graphql/schema/cms/resolvers/queryCms.d.ts +2 -2
  598. package/graphql/schema/cms/resolvers/queryCms.js +1 -1
  599. package/graphql/schema/cms/resolvers/queryCms.js.map +1 -1
  600. package/graphql/schema/cms/resolvers/unpublishEntryRevision.d.ts +2 -2
  601. package/graphql/schema/cms/resolvers/unpublishEntryRevision.js +1 -1
  602. package/graphql/schema/cms/resolvers/unpublishEntryRevision.js.map +1 -1
  603. package/graphql/schema/cms/resolvers/updateEntryRevision.d.ts +2 -2
  604. package/graphql/schema/cms/resolvers/updateEntryRevision.js +1 -1
  605. package/graphql/schema/cms/resolvers/updateEntryRevision.js.map +1 -1
  606. package/graphql/schema/cms/typeDefs/mutation.d.ts +2 -2
  607. package/graphql/schema/cms/typeDefs/mutation.js +1 -1
  608. package/graphql/schema/cms/typeDefs/mutation.js.map +1 -1
  609. package/graphql/schema/cms/typeDefs/query.d.ts +2 -2
  610. package/graphql/schema/cms/typeDefs/query.js +2 -1
  611. package/graphql/schema/cms/typeDefs/query.js.map +1 -1
  612. package/graphql/schema/cms/typeDefs/responses.d.ts +2 -2
  613. package/graphql/schema/cms/typeDefs/responses.js +6 -1
  614. package/graphql/schema/cms/typeDefs/responses.js.map +1 -1
  615. package/graphql/schema/cms/unpublishEntryResolver.js +2 -2
  616. package/graphql/schema/cms/unpublishEntryResolver.js.map +1 -1
  617. package/graphql/schema/cms/updateEntryResolver.js +2 -2
  618. package/graphql/schema/cms/updateEntryResolver.js.map +1 -1
  619. package/graphql/schema/contentEntries.js +43 -32
  620. package/graphql/schema/contentEntries.js.map +1 -1
  621. package/graphql/schema/contentModelGroups.js +39 -18
  622. package/graphql/schema/contentModelGroups.js.map +1 -1
  623. package/graphql/schema/contentModels.js +68 -16
  624. package/graphql/schema/contentModels.js.map +1 -1
  625. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  626. package/graphql/schema/createFieldResolvers.js.map +1 -1
  627. package/graphql/schema/createManageResolvers.js +4 -2
  628. package/graphql/schema/createManageResolvers.js.map +1 -1
  629. package/graphql/schema/resolvers/manage/resolveCreate.js +5 -3
  630. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  631. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +5 -3
  632. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  633. package/graphql/schema/resolvers/manage/resolveDelete.js +9 -4
  634. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  635. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +5 -3
  636. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  637. package/graphql/schema/resolvers/manage/resolveGet.js +11 -6
  638. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  639. package/graphql/schema/resolvers/manage/resolveGetByIds.js +5 -3
  640. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  641. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +5 -3
  642. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  643. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +5 -3
  644. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  645. package/graphql/schema/resolvers/manage/resolveList.js +5 -3
  646. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  647. package/graphql/schema/resolvers/manage/resolveListDeleted.js +5 -3
  648. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -1
  649. package/graphql/schema/resolvers/manage/resolveMove.js +4 -2
  650. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  651. package/graphql/schema/resolvers/manage/resolvePublish.js +5 -3
  652. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  653. package/graphql/schema/resolvers/manage/resolveRepublish.js +5 -3
  654. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  655. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +5 -3
  656. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -1
  657. package/graphql/schema/resolvers/manage/resolveUnpublish.js +5 -3
  658. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  659. package/graphql/schema/resolvers/manage/resolveUpdate.js +5 -3
  660. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  661. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js +5 -3
  662. package/graphql/schema/resolvers/manage/resolveUpdateRevisionDescription.js.map +1 -1
  663. package/graphql/schema/resolvers/manage/resolveValidate.js +5 -3
  664. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
  665. package/graphql/schema/resolvers/preview/resolveGet.js +6 -3
  666. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  667. package/graphql/schema/resolvers/preview/resolveList.js +5 -3
  668. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  669. package/graphql/schema/resolvers/read/resolveGet.js +5 -2
  670. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  671. package/graphql/schema/resolvers/read/resolveList.js +5 -3
  672. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  673. package/graphql/schema/resolvers/singular/resolveGet.js +1 -1
  674. package/graphql/schema/resolvers/singular/resolveGet.js.map +1 -1
  675. package/graphql/schema/resolvers/singular/resolveUpdate.js +1 -1
  676. package/graphql/schema/resolvers/singular/resolveUpdate.js.map +1 -1
  677. package/graphql/schema/schemaPlugins.d.ts +2 -1
  678. package/graphql/schema/schemaPlugins.js +2 -4
  679. package/graphql/schema/schemaPlugins.js.map +1 -1
  680. package/index.d.ts +7 -6
  681. package/index.js +4 -22
  682. package/legacy/abstractions.js.map +1 -1
  683. package/package.json +23 -29
  684. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +2 -2
  685. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js +1 -1
  686. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -1
  687. package/plugins/CmsModelPlugin.js +2 -1
  688. package/plugins/CmsModelPlugin.js.map +1 -1
  689. package/plugins/index.d.ts +0 -1
  690. package/plugins/index.js +0 -1
  691. package/types/fields/dynamicZoneField.d.ts +1 -0
  692. package/types/model.d.ts +6 -0
  693. package/types/modelField.d.ts +2 -0
  694. package/types/types.d.ts +10 -183
  695. package/types/types.js.map +1 -1
  696. package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.d.ts +28 -0
  697. package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.js +324 -0
  698. package/utils/contentModelToJsonSchema/CmsModelToJsonSchemaConverter.js.map +1 -0
  699. package/utils/contentModelToJsonSchema/index.d.ts +2 -0
  700. package/utils/contentModelToJsonSchema/index.js +1 -0
  701. package/utils/contentModelToJsonSchema/types.d.ts +24 -0
  702. package/utils/contentModelToJsonSchema/types.js +0 -0
  703. package/utils/converters/ConverterCollection.d.ts +2 -2
  704. package/utils/converters/ConverterCollection.js +1 -3
  705. package/utils/converters/ConverterCollection.js.map +1 -1
  706. package/utils/converters/valueKeyFromStorageConverter.d.ts +2 -2
  707. package/utils/converters/valueKeyFromStorageConverter.js +2 -2
  708. package/utils/converters/valueKeyFromStorageConverter.js.map +1 -1
  709. package/utils/converters/valueKeyStorageConverter.js +4 -2
  710. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  711. package/utils/converters/valueKeyToStorageConverter.d.ts +2 -2
  712. package/utils/converters/valueKeyToStorageConverter.js +2 -2
  713. package/utils/converters/valueKeyToStorageConverter.js.map +1 -1
  714. package/utils/getSchemaFromFieldPlugins.d.ts +2 -2
  715. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  716. package/utils/index.d.ts +1 -0
  717. package/utils/index.js +1 -0
  718. package/utils/isHeadlessCmsReady.d.ts +1 -1
  719. package/utils/isHeadlessCmsReady.js +3 -2
  720. package/utils/isHeadlessCmsReady.js.map +1 -1
  721. package/abstractions/entryHooks/OnEntryBeforeCreate.d.ts +0 -8
  722. package/abstractions/entryHooks/OnEntryBeforeCreate.js +0 -5
  723. package/abstractions/entryHooks/OnEntryBeforeCreate.js.map +0 -1
  724. package/abstractions/entryHooks/index.d.ts +0 -1
  725. package/abstractions/entryHooks/index.js +0 -1
  726. package/abstractions/index.d.ts +0 -1
  727. package/abstractions/index.js +0 -1
  728. package/context.d.ts +0 -3
  729. package/context.js +0 -131
  730. package/context.js.map +0 -1
  731. package/extensions/entryHooks/OnEntryBeforeCreate.d.ts +0 -4
  732. package/extensions/entryHooks/OnEntryBeforeCreate.js +0 -21
  733. package/extensions/entryHooks/OnEntryBeforeCreate.js.map +0 -1
  734. package/extensions/entryHooks/index.d.ts +0 -1
  735. package/extensions/entryHooks/index.js +0 -1
  736. package/extensions/index.d.ts +0 -5
  737. package/extensions/index.js +0 -7
  738. package/extensions/index.js.map +0 -1
  739. package/features/runtimeTenant/RuntimeTenant.d.ts +0 -13
  740. package/features/runtimeTenant/RuntimeTenant.js +0 -22
  741. package/features/runtimeTenant/RuntimeTenant.js.map +0 -1
  742. package/features/runtimeTenant/abstractions.d.ts +0 -11
  743. package/features/runtimeTenant/abstractions.js +0 -5
  744. package/features/runtimeTenant/abstractions.js.map +0 -1
  745. package/features/runtimeTenant/index.d.ts +0 -2
  746. package/features/runtimeTenant/index.js +0 -2
  747. package/graphql/graphQLHandlerFactory.d.ts +0 -5
  748. package/graphql/graphQLHandlerFactory.js +0 -22
  749. package/graphql/graphQLHandlerFactory.js.map +0 -1
  750. package/graphql/handleRequest.d.ts +0 -11
  751. package/graphql/handleRequest.js +0 -62
  752. package/graphql/handleRequest.js.map +0 -1
  753. package/graphql/index.d.ts +0 -4
  754. package/graphql/index.js +0 -11
  755. package/graphql/index.js.map +0 -1
  756. package/graphql/schema/cms/index.d.ts +0 -2
  757. package/graphql/schema/cms/index.js +0 -24
  758. package/graphql/schema/cms/index.js.map +0 -1
  759. package/index.js.map +0 -1
  760. package/parameters/context.d.ts +0 -2
  761. package/parameters/context.js +0 -7
  762. package/parameters/context.js.map +0 -1
  763. package/parameters/header.d.ts +0 -2
  764. package/parameters/header.js +0 -13
  765. package/parameters/header.js.map +0 -1
  766. package/parameters/index.d.ts +0 -3
  767. package/parameters/index.js +0 -3
  768. package/parameters/path.d.ts +0 -2
  769. package/parameters/path.js +0 -12
  770. package/parameters/path.js.map +0 -1
  771. package/plugins/CmsParametersPlugin.d.ts +0 -18
  772. package/plugins/CmsParametersPlugin.js +0 -16
  773. package/plugins/CmsParametersPlugin.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import type { GraphQLFieldResolver, Resolvers } from "@webiny/handler-graphql/types.js";
2
- import type { GraphQLSchemaDefinition } from "@webiny/handler-graphql/types.js";
1
+ import type { GraphQLFieldResolver, Resolvers } from "@webiny/api-graphql/types.js";
2
+ import type { GraphQLSchemaDefinition } from "@webiny/api-graphql/types.js";
3
3
  import type { CmsModelField, CmsModelFieldType } from "../../../../types/modelField.js";
4
4
  import type { CmsModel } from "../../../../types/model.js";
5
5
  import type { CmsModelFieldDefinition } from "../../../../types/types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js","sources":["../../../../../src/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { GraphQLFieldResolver, Resolvers } from \"@webiny/handler-graphql/types.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/handler-graphql/types.js\";\nimport type { CmsModelField, CmsModelFieldType } from \"~/types/modelField.js\";\nimport type { CmsModel } from \"~/types/model.js\";\nimport type { CmsModelFieldDefinition } from \"~/types/types.js\";\nimport type { CmsContext } from \"~/types/types.js\";\n\nexport interface ValidateChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> {\n fields: TField[];\n originalFields: TField[];\n}\n\nexport interface ValidateChildFieldsValidate {\n (params: ValidateChildFieldsValidateParams): void;\n}\n\nexport interface ValidateChildFieldsParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n originalField?: TField;\n validate: ValidateChildFieldsValidate;\n}\n\nexport interface ValidateChildFields<TField extends CmsModelField = CmsModelField> {\n (params: ValidateChildFieldsParams<TField>): void;\n}\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { GetCmsModelFieldAst } from \"~/types/modelAst.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"./CmsModelFieldToGraphQLRegistry.js\";\n\nexport interface CreateTypeFieldParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateGetFiltersParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n}\n\nexport interface CreateListFiltersParams<TField extends CmsModelField = CmsModelField> {\n model: Pick<CmsModel, \"singularApiName\">;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateResolverParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n graphQLType: string;\n field: TField;\n createFieldResolvers: any;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport type ResolverResult =\n | GraphQLFieldResolver\n | {\n resolver: GraphQLFieldResolver | null;\n typeResolvers: Resolvers<CmsContext>;\n }\n | false;\n\nexport interface CreateSchemaParams {\n models: CmsModel[];\n}\n\nexport interface NormalizeInputParams<TField extends CmsModelField = CmsModelField> {\n model: CmsModel;\n field: TField;\n input: GenericRecord<string> | Array<GenericRecord<string>>;\n}\n\nexport interface ICmsFieldReadApi<TField extends CmsModelField = CmsModelField> {\n createTypeField(params: CreateTypeFieldParams<TField>): CmsModelFieldDefinition | string | null;\n createGetFilters?(params: CreateGetFiltersParams<TField>): string;\n createListFilters?(params: CreateListFiltersParams<TField>): string;\n createResolver?(params: CreateResolverParams<TField>): ResolverResult;\n createSchema?(params: CreateSchemaParams): GraphQLSchemaDefinition<CmsContext>;\n}\n\nexport interface ICmsFieldManageApi<\n TField extends CmsModelField = CmsModelField\n> extends ICmsFieldReadApi<TField> {\n createInputField(\n params: CreateTypeFieldParams<TField>\n ): CmsModelFieldDefinition | string | null;\n normalizeInput?<T>(params: NormalizeInputParams<TField>): Promise<T>;\n}\n\nexport interface ICmsModelFieldToGraphQL<TField extends CmsModelField = CmsModelField> {\n /* Metadata. */\n readonly fieldType: CmsModelFieldType;\n readonly isSearchable: boolean;\n readonly isSortable: boolean;\n readonly isFullTextSearchable: boolean;\n\n /* API surfaces. */\n readonly read: ICmsFieldReadApi<TField>;\n readonly manage: ICmsFieldManageApi<TField>;\n getReadApi(): ICmsFieldReadApi<TField>;\n getManageApi(): ICmsFieldManageApi<TField>;\n\n /* Validation & AST. */\n validateChildFields?: ValidateChildFields<TField>;\n getFieldAst?: GetCmsModelFieldAst<TField>;\n}\n\nexport const CmsModelFieldToGraphQL = createAbstraction<ICmsModelFieldToGraphQL>(\n \"Cms/GraphQL/Schema/ModelField\"\n);\n\nexport namespace CmsModelFieldToGraphQL {\n export type Interface = ICmsModelFieldToGraphQL;\n export type ReadApi<TField extends CmsModelField = CmsModelField> = ICmsFieldReadApi<TField>;\n export type ManageApi<TField extends CmsModelField = CmsModelField> =\n ICmsFieldManageApi<TField>;\n export type TypeFieldParams<TField extends CmsModelField = CmsModelField> =\n CreateTypeFieldParams<TField>;\n export type GetFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateGetFiltersParams<TField>;\n export type ListFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateListFiltersParams<TField>;\n export type ResolverParams<TField extends CmsModelField = CmsModelField> =\n CreateResolverParams<TField>;\n export type SchemaParams = CreateSchemaParams;\n export type InputNormalizeParams<TField extends CmsModelField = CmsModelField> =\n NormalizeInputParams<TField>;\n export type Resolver = ResolverResult;\n export type ChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> =\n ValidateChildFieldsParams<TField>;\n export type ChildFieldsValidate<TField extends CmsModelField = CmsModelField> =\n ValidateChildFields<TField>;\n export type ChildFieldsValidateValidate = ValidateChildFieldsValidate;\n}\n"],"names":["CmsModelFieldToGraphQL","createAbstraction"],"mappings":";AA6GO,MAAMA,yBAAyBC,kBAClC"}
1
+ {"version":3,"file":"features/graphql/fields/abstractions/CmsModelFieldToGraphQL.js","sources":["../../../../../src/features/graphql/fields/abstractions/CmsModelFieldToGraphQL.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { GraphQLFieldResolver, Resolvers } from \"@webiny/api-graphql/types.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/api-graphql/types.js\";\nimport type { CmsModelField, CmsModelFieldType } from \"~/types/modelField.js\";\nimport type { CmsModel } from \"~/types/model.js\";\nimport type { CmsModelFieldDefinition } from \"~/types/types.js\";\nimport type { CmsContext } from \"~/types/types.js\";\n\nexport interface ValidateChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> {\n fields: TField[];\n originalFields: TField[];\n}\n\nexport interface ValidateChildFieldsValidate {\n (params: ValidateChildFieldsValidateParams): void;\n}\n\nexport interface ValidateChildFieldsParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n originalField?: TField;\n validate: ValidateChildFieldsValidate;\n}\n\nexport interface ValidateChildFields<TField extends CmsModelField = CmsModelField> {\n (params: ValidateChildFieldsParams<TField>): void;\n}\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { GetCmsModelFieldAst } from \"~/types/modelAst.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"./CmsModelFieldToGraphQLRegistry.js\";\n\nexport interface CreateTypeFieldParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateGetFiltersParams<TField extends CmsModelField = CmsModelField> {\n field: TField;\n}\n\nexport interface CreateListFiltersParams<TField extends CmsModelField = CmsModelField> {\n model: Pick<CmsModel, \"singularApiName\">;\n field: TField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport interface CreateResolverParams<TField extends CmsModelField = CmsModelField> {\n models: CmsModel[];\n model: CmsModel;\n graphQLType: string;\n field: TField;\n createFieldResolvers: any;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n}\n\nexport type ResolverResult =\n | GraphQLFieldResolver\n | {\n resolver: GraphQLFieldResolver | null;\n typeResolvers: Resolvers<CmsContext>;\n }\n | false;\n\nexport interface CreateSchemaParams {\n models: CmsModel[];\n}\n\nexport interface NormalizeInputParams<TField extends CmsModelField = CmsModelField> {\n model: CmsModel;\n field: TField;\n input: GenericRecord<string> | Array<GenericRecord<string>>;\n}\n\nexport interface ICmsFieldReadApi<TField extends CmsModelField = CmsModelField> {\n createTypeField(params: CreateTypeFieldParams<TField>): CmsModelFieldDefinition | string | null;\n createGetFilters?(params: CreateGetFiltersParams<TField>): string;\n createListFilters?(params: CreateListFiltersParams<TField>): string;\n createResolver?(params: CreateResolverParams<TField>): ResolverResult;\n createSchema?(params: CreateSchemaParams): GraphQLSchemaDefinition<CmsContext>;\n}\n\nexport interface ICmsFieldManageApi<\n TField extends CmsModelField = CmsModelField\n> extends ICmsFieldReadApi<TField> {\n createInputField(\n params: CreateTypeFieldParams<TField>\n ): CmsModelFieldDefinition | string | null;\n normalizeInput?<T>(params: NormalizeInputParams<TField>): Promise<T>;\n}\n\nexport interface ICmsModelFieldToGraphQL<TField extends CmsModelField = CmsModelField> {\n /* Metadata. */\n readonly fieldType: CmsModelFieldType;\n readonly isSearchable: boolean;\n readonly isSortable: boolean;\n readonly isFullTextSearchable: boolean;\n\n /* API surfaces. */\n readonly read: ICmsFieldReadApi<TField>;\n readonly manage: ICmsFieldManageApi<TField>;\n getReadApi(): ICmsFieldReadApi<TField>;\n getManageApi(): ICmsFieldManageApi<TField>;\n\n /* Validation & AST. */\n validateChildFields?: ValidateChildFields<TField>;\n getFieldAst?: GetCmsModelFieldAst<TField>;\n}\n\nexport const CmsModelFieldToGraphQL = createAbstraction<ICmsModelFieldToGraphQL>(\n \"Cms/GraphQL/Schema/ModelField\"\n);\n\nexport namespace CmsModelFieldToGraphQL {\n export type Interface = ICmsModelFieldToGraphQL;\n export type ReadApi<TField extends CmsModelField = CmsModelField> = ICmsFieldReadApi<TField>;\n export type ManageApi<TField extends CmsModelField = CmsModelField> =\n ICmsFieldManageApi<TField>;\n export type TypeFieldParams<TField extends CmsModelField = CmsModelField> =\n CreateTypeFieldParams<TField>;\n export type GetFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateGetFiltersParams<TField>;\n export type ListFiltersParams<TField extends CmsModelField = CmsModelField> =\n CreateListFiltersParams<TField>;\n export type ResolverParams<TField extends CmsModelField = CmsModelField> =\n CreateResolverParams<TField>;\n export type SchemaParams = CreateSchemaParams;\n export type InputNormalizeParams<TField extends CmsModelField = CmsModelField> =\n NormalizeInputParams<TField>;\n export type Resolver = ResolverResult;\n export type ChildFieldsValidateParams<TField extends CmsModelField = CmsModelField> =\n ValidateChildFieldsParams<TField>;\n export type ChildFieldsValidate<TField extends CmsModelField = CmsModelField> =\n ValidateChildFields<TField>;\n export type ChildFieldsValidateValidate = ValidateChildFieldsValidate;\n}\n"],"names":["CmsModelFieldToGraphQL","createAbstraction"],"mappings":";AA6GO,MAAMA,yBAAyBC,kBAClC"}
@@ -0,0 +1,26 @@
1
+ import { CmsModelFieldToGraphQL } from "../abstractions/CmsModelFieldToGraphQL.js";
2
+ import type { CmsModelFieldType } from "../../../../types/modelField.js";
3
+ import type { GraphQLSchemaDefinition } from "@webiny/api-graphql/types.js";
4
+ import type { CmsContext } from "../../../../types/types.js";
5
+ declare class ReadApi implements CmsModelFieldToGraphQL.ReadApi {
6
+ createTypeField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string;
7
+ createResolver(): CmsModelFieldToGraphQL.Resolver;
8
+ createSchema(): GraphQLSchemaDefinition<CmsContext>;
9
+ }
10
+ declare class ManageApi extends ReadApi implements CmsModelFieldToGraphQL.ManageApi {
11
+ createInputField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string;
12
+ }
13
+ declare class AssetToGraphQL implements CmsModelFieldToGraphQL.Interface {
14
+ readonly read: ReadApi;
15
+ readonly manage: ManageApi;
16
+ readonly fieldType: CmsModelFieldType;
17
+ readonly isSearchable: boolean;
18
+ readonly isSortable: boolean;
19
+ readonly isFullTextSearchable: boolean;
20
+ getReadApi(): CmsModelFieldToGraphQL.ReadApi;
21
+ getManageApi(): CmsModelFieldToGraphQL.ManageApi;
22
+ }
23
+ export declare const AssetFieldToGraphQL: typeof AssetToGraphQL & {
24
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/CmsModelFieldToGraphQL.js").ICmsModelFieldToGraphQL<import("~/types/modelField.js").CmsModelField>>;
25
+ };
26
+ export {};
@@ -0,0 +1,148 @@
1
+ import { CmsModelFieldToGraphQL } from "../abstractions/CmsModelFieldToGraphQL.js";
2
+ import { createGraphQLInputField } from "./utils/createGraphQLInputField.js";
3
+ import { resolveAssetUrl } from "../../../modelBuilder/fields/resolveAssetUrl.js";
4
+ const imageTypeDefs = `
5
+ type FmAssetCrop {
6
+ top: Number
7
+ left: Number
8
+ bottom: Number
9
+ right: Number
10
+ }
11
+
12
+ type FmAssetFocalPoint {
13
+ x: Number
14
+ y: Number
15
+ }
16
+
17
+ type FmAssetImage {
18
+ width: Number
19
+ height: Number
20
+ crop: FmAssetCrop
21
+ focalPoint: FmAssetFocalPoint
22
+ alt: String
23
+ caption: String
24
+ }
25
+
26
+ input FmAssetCropInput {
27
+ top: Number
28
+ left: Number
29
+ bottom: Number
30
+ right: Number
31
+ }
32
+
33
+ input FmAssetFocalPointInput {
34
+ x: Number
35
+ y: Number
36
+ }
37
+
38
+ input FmAssetImageInput {
39
+ width: Number
40
+ height: Number
41
+ crop: FmAssetCropInput
42
+ focalPoint: FmAssetFocalPointInput
43
+ alt: String
44
+ caption: String
45
+ }
46
+ `;
47
+ const documentTypeDefs = `
48
+ type FmAssetDocument {
49
+ pages: Number
50
+ }
51
+
52
+ input FmAssetDocumentInput {
53
+ pages: Number
54
+ }
55
+ `;
56
+ const videoTypeDefs = `
57
+ type FmAssetVideo {
58
+ autoplay: Boolean
59
+ poster: String
60
+ }
61
+
62
+ input FmAssetVideoInput {
63
+ autoplay: Boolean
64
+ poster: String
65
+ }
66
+ `;
67
+ const baseTypeDefs = `
68
+ type FmAsset {
69
+ id: String!
70
+ src: String!
71
+ url: String
72
+ name: String!
73
+ type: String!
74
+ size: Number!
75
+ image: FmAssetImage
76
+ document: FmAssetDocument
77
+ video: FmAssetVideo
78
+ }
79
+
80
+ input FmAssetInput {
81
+ id: String!
82
+ src: String!
83
+ # TODO: figure out how to remove this from here, as this is a derived read-only value.
84
+ url: String
85
+ name: String!
86
+ type: String!
87
+ size: Number!
88
+ image: FmAssetImageInput
89
+ document: FmAssetDocumentInput
90
+ video: FmAssetVideoInput
91
+ }
92
+ `;
93
+ const allTypeDefs = [
94
+ imageTypeDefs,
95
+ documentTypeDefs,
96
+ videoTypeDefs,
97
+ baseTypeDefs
98
+ ].join("\n");
99
+ class ReadApi {
100
+ createTypeField({ field }) {
101
+ if (field.list) return `${field.fieldId}: [FmAsset]`;
102
+ return `${field.fieldId}: FmAsset`;
103
+ }
104
+ createResolver() {
105
+ return {
106
+ resolver: null,
107
+ typeResolvers: {
108
+ FmAsset: {
109
+ url: (parent)=>resolveAssetUrl(parent)
110
+ }
111
+ }
112
+ };
113
+ }
114
+ createSchema() {
115
+ return {
116
+ typeDefs: allTypeDefs,
117
+ resolvers: {}
118
+ };
119
+ }
120
+ }
121
+ class ManageApi extends ReadApi {
122
+ createInputField({ field }) {
123
+ return createGraphQLInputField(field, "FmAssetInput");
124
+ }
125
+ }
126
+ class AssetToGraphQL {
127
+ getReadApi() {
128
+ return this.read;
129
+ }
130
+ getManageApi() {
131
+ return this.manage;
132
+ }
133
+ constructor(){
134
+ this.read = new ReadApi();
135
+ this.manage = new ManageApi();
136
+ this.fieldType = "asset";
137
+ this.isSearchable = false;
138
+ this.isSortable = false;
139
+ this.isFullTextSearchable = false;
140
+ }
141
+ }
142
+ const AssetFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({
143
+ implementation: AssetToGraphQL,
144
+ dependencies: []
145
+ });
146
+ export { AssetFieldToGraphQL };
147
+
148
+ //# sourceMappingURL=AssetToGraphQL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/graphql/fields/base/AssetToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/AssetToGraphQL.ts"],"sourcesContent":["import { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldType } from \"~/types/modelField.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/api-graphql/types.js\";\nimport type { CmsContext } from \"~/types/types.js\";\nimport { createGraphQLInputField } from \"./utils/createGraphQLInputField.js\";\nimport { resolveAssetUrl } from \"../../../modelBuilder/fields/resolveAssetUrl.js\";\n\n// --- Image sub-type (self-contained block for future registry extraction) ---\n\nconst imageTypeDefs = /* GraphQL */ `\n type FmAssetCrop {\n top: Number\n left: Number\n bottom: Number\n right: Number\n }\n\n type FmAssetFocalPoint {\n x: Number\n y: Number\n }\n\n type FmAssetImage {\n width: Number\n height: Number\n crop: FmAssetCrop\n focalPoint: FmAssetFocalPoint\n alt: String\n caption: String\n }\n\n input FmAssetCropInput {\n top: Number\n left: Number\n bottom: Number\n right: Number\n }\n\n input FmAssetFocalPointInput {\n x: Number\n y: Number\n }\n\n input FmAssetImageInput {\n width: Number\n height: Number\n crop: FmAssetCropInput\n focalPoint: FmAssetFocalPointInput\n alt: String\n caption: String\n }\n`;\n\n// --- Document sub-type ---\n\nconst documentTypeDefs = /* GraphQL */ `\n type FmAssetDocument {\n pages: Number\n }\n\n input FmAssetDocumentInput {\n pages: Number\n }\n`;\n\n// --- Video sub-type ---\n\nconst videoTypeDefs = /* GraphQL */ `\n type FmAssetVideo {\n autoplay: Boolean\n poster: String\n }\n\n input FmAssetVideoInput {\n autoplay: Boolean\n poster: String\n }\n`;\n\n// --- Base asset type ---\n\nconst baseTypeDefs = /* GraphQL */ `\n type FmAsset {\n id: String!\n src: String!\n url: String\n name: String!\n type: String!\n size: Number!\n image: FmAssetImage\n document: FmAssetDocument\n video: FmAssetVideo\n }\n\n input FmAssetInput {\n id: String!\n src: String!\n # TODO: figure out how to remove this from here, as this is a derived read-only value.\n url: String\n name: String!\n type: String!\n size: Number!\n image: FmAssetImageInput\n document: FmAssetDocumentInput\n video: FmAssetVideoInput\n }\n`;\n\nconst allTypeDefs = [imageTypeDefs, documentTypeDefs, videoTypeDefs, baseTypeDefs].join(\"\\n\");\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string {\n if (field.list) {\n return `${field.fieldId}: [FmAsset]`;\n }\n return `${field.fieldId}: FmAsset`;\n }\n\n public createResolver(): CmsModelFieldToGraphQL.Resolver {\n return {\n resolver: null,\n typeResolvers: {\n FmAsset: {\n url: (parent: any) => resolveAssetUrl(parent)\n }\n }\n };\n }\n\n public createSchema(): GraphQLSchemaDefinition<CmsContext> {\n return {\n typeDefs: allTypeDefs,\n resolvers: {}\n };\n }\n}\n\nclass ManageApi extends ReadApi implements CmsModelFieldToGraphQL.ManageApi {\n public createInputField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string {\n return createGraphQLInputField(field, \"FmAssetInput\");\n }\n}\n\nclass AssetToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"asset\";\n public readonly isSearchable: boolean = false;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n}\n\nexport const AssetFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: AssetToGraphQL,\n dependencies: []\n});\n"],"names":["imageTypeDefs","documentTypeDefs","videoTypeDefs","baseTypeDefs","allTypeDefs","ReadApi","field","parent","resolveAssetUrl","ManageApi","createGraphQLInputField","AssetToGraphQL","AssetFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":";;;AASA,MAAMA,gBAA8B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CrC,CAAC;AAID,MAAMC,mBAAiC,CAAC;;;;;;;;AAQxC,CAAC;AAID,MAAMC,gBAA8B,CAAC;;;;;;;;;;AAUrC,CAAC;AAID,MAAMC,eAA6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AAyBpC,CAAC;AAED,MAAMC,cAAc;IAACJ;IAAeC;IAAkBC;IAAeC;CAAa,CAAC,IAAI,CAAC;AAExF,MAAME;IACK,gBAAgB,EAAEC,KAAK,EAA0C,EAAU;QAC9E,IAAIA,MAAM,IAAI,EACV,OAAO,GAAGA,MAAM,OAAO,CAAC,WAAW,CAAC;QAExC,OAAO,GAAGA,MAAM,OAAO,CAAC,SAAS,CAAC;IACtC;IAEO,iBAAkD;QACrD,OAAO;YACH,UAAU;YACV,eAAe;gBACX,SAAS;oBACL,KAAK,CAACC,SAAgBC,gBAAgBD;gBAC1C;YACJ;QACJ;IACJ;IAEO,eAAoD;QACvD,OAAO;YACH,UAAUH;YACV,WAAW,CAAC;QAChB;IACJ;AACJ;AAEA,MAAMK,kBAAkBJ;IACb,iBAAiB,EAAEC,KAAK,EAA0C,EAAU;QAC/E,OAAOI,wBAAwBJ,OAAO;IAC1C;AACJ;AAEA,MAAMK;IASK,aAA6C;QAChD,OAAO,IAAI,CAAC,IAAI;IACpB;IAEO,eAAiD;QACpD,OAAO,IAAI,CAAC,MAAM;IACtB;;aAdgB,IAAI,GAAG,IAAIN;aACX,MAAM,GAAG,IAAII;aAEb,SAAS,GAAsB;aAC/B,YAAY,GAAY;aACxB,UAAU,GAAY;aACtB,oBAAoB,GAAY;;AASpD;AAEO,MAAMG,sBAAsBC,uBAAuB,oBAAoB,CAAC;IAC3E,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
@@ -66,10 +66,14 @@ class ReadApi {
66
66
  fieldRegistry,
67
67
  templates
68
68
  });
69
+ const templateIds = templateTypes.map((type)=>`extend type ${type} {
70
+ _templateId: ID!
71
+ }
72
+ `);
69
73
  typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(" | ")}`);
70
74
  return {
71
75
  fields: `${field.fieldId}: ${field.list ? `[${unionTypeName}!]` : unionTypeName}`,
72
- typeDefs: typeDefs.join("\n")
76
+ typeDefs: typeDefs.concat(templateIds).join("\n")
73
77
  };
74
78
  }
75
79
  createResolver(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"features/graphql/fields/base/DynamicZoneToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/DynamicZoneToGraphQL.ts"],"sourcesContent":["import { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type {\n ApiEndpoint,\n CmsDynamicZoneTemplate,\n CmsModel,\n CmsModelDynamicZoneField,\n CmsModelField,\n CmsModelFieldType,\n CmsModelFieldDefinition\n} from \"~/types/index.js\";\nimport type { ValidateChildFieldsParams } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldAstNode, ICmsModelFieldToAst } from \"~/types/modelAst.js\";\nimport type { GraphQLFieldResolver } from \"@webiny/handler-graphql/types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { createTypeName } from \"~/utils/createTypeName.js\";\nimport { createGraphQLInputField } from \"./utils/createGraphQLInputField.js\";\nimport { createTypeDefsForTemplates } from \"./dynamicZone/createTypeDefsForTemplates.js\";\nimport { normalizeDynamicZoneInput } from \"./dynamicZone/normalizeDynamicZoneInput.js\";\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\nconst getFieldTemplates = (field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] => {\n if (!Array.isArray(field.settings?.templates)) {\n return [];\n }\n return field.settings.templates;\n};\n\nconst remapTemplateValue = (value: any, typeName: string) => {\n return { ...value, __typename: typeName };\n};\n\nconst createDynamicZoneResolver = (\n endpointType: ApiEndpoint\n): ((params: CmsModelFieldToGraphQL.ResolverParams) => CmsModelFieldToGraphQL.Resolver) => {\n return ({ model, models, field, fieldRegistry, createFieldResolvers, graphQLType }) => {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n\n if (!templates.length) {\n return false;\n }\n\n const resolver = (parent: any) => {\n const value = parent[field.fieldId];\n if (!value) {\n return value;\n }\n\n const typeName = `${graphQLType}_${createTypeName(field.fieldId)}`;\n\n if (field.list && Array.isArray(value)) {\n return value.map(v => {\n const template = templates.find(tpl => tpl.id === v._templateId);\n if (!template) {\n return undefined;\n }\n return remapTemplateValue(v, `${typeName}_${template.gqlTypeName}`);\n });\n }\n\n const template = templates.find(tpl => tpl.id === value._templateId);\n if (!template) {\n return undefined;\n }\n return remapTemplateValue(value, `${typeName}_${template.gqlTypeName}`);\n };\n\n const { templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: endpointType,\n typeOfType: \"type\",\n model,\n fieldRegistry,\n templates\n });\n\n const replace = new RegExp(`${model.singularApiName}_`, \"g\");\n\n const typeResolvers = templateTypes\n .map(templateType => {\n return templateType.replace(replace, `${graphQLType}_`);\n })\n .reduce<Record<string, Record<string, GraphQLFieldResolver>>>(\n (typeResolvers, templateType, index) => {\n return {\n ...typeResolvers,\n ...createFieldResolvers({\n graphQLType: templateType,\n fields: dzField.settings.templates[index].fields\n })\n };\n },\n {}\n );\n\n return {\n resolver,\n typeResolvers\n };\n };\n};\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"read\",\n typeOfType: \"type\",\n model,\n fieldRegistry,\n templates\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${unionTypeName}!]` : unionTypeName}`,\n typeDefs: typeDefs.join(\"\\n\")\n };\n }\n\n public createResolver(\n params: CmsModelFieldToGraphQL.ResolverParams\n ): CmsModelFieldToGraphQL.Resolver {\n return createDynamicZoneResolver(\"read\")(params);\n }\n}\n\nclass ManageApi implements CmsModelFieldToGraphQL.ManageApi {\n public createTypeField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"type\",\n model,\n fieldRegistry,\n templates\n });\n\n /* Add _templateId. */\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${unionTypeName}!]` : unionTypeName}`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n }\n\n public createInputField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n\n if (!templates.length) {\n return null;\n }\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"input\",\n model,\n fieldRegistry,\n templates\n });\n\n const typeName = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n\n const inputProperties = templateTypes.map(inputTypeName => {\n const key = inputTypeName.replace(`${typeName}_`, \"\").replace(\"Input\", \"\");\n return [key, inputTypeName];\n });\n\n /**\n * Generate a field input type, similar to this example:\n *\n * input Article_ContentInput {\n * Hero: Article_Content_HeroInput\n * SimpleText: Article_Content_SimpleTextInput\n * }\n */\n typeDefs.push(`input ${typeName}Input {\n ${inputProperties.map(\n ([key, value]) => `\n ${key}: ${value}\n `\n )}\n }`);\n\n return {\n fields: createGraphQLInputField(field, `${typeName}Input`),\n typeDefs: typeDefs.join(\"\\n\")\n };\n }\n\n public createResolver(\n params: CmsModelFieldToGraphQL.ResolverParams\n ): CmsModelFieldToGraphQL.Resolver {\n return createDynamicZoneResolver(\"manage\")(params);\n }\n\n public async normalizeInput<T>({\n field,\n input\n }: CmsModelFieldToGraphQL.InputNormalizeParams): Promise<T> {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = dzField.settings?.templates || [];\n\n if (Array.isArray(input) && field.list) {\n return input\n .map(value => normalizeDynamicZoneInput(value, templates))\n .filter(Boolean) as T;\n }\n\n return normalizeDynamicZoneInput(input as GenericRecord<string>, templates) as T;\n }\n}\n\nclass DynamicZoneToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"dynamicZone\";\n public readonly isSearchable: boolean = false;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n\n public validateChildFields(params: ValidateChildFieldsParams<CmsModelField>): void {\n const field = params.field as CmsModelDynamicZoneField;\n const originalField = params.originalField as CmsModelDynamicZoneField | undefined;\n\n const getOriginalTemplateFields = (templateId: string) => {\n if (!originalField?.settings?.templates) {\n return [];\n }\n const template = originalField.settings.templates.find(t => t.id === templateId);\n return template?.fields || [];\n };\n\n for (const template of field.settings.templates) {\n params.validate({\n fields: template.fields,\n originalFields: getOriginalTemplateFields(template.id)\n });\n }\n }\n\n public getFieldAst(field: CmsModelField, converter: ICmsModelFieldToAst): CmsModelFieldAstNode {\n const dzField = field as CmsModelDynamicZoneField;\n const { templates = [] } = dzField.settings;\n\n return {\n type: \"field\",\n field,\n children: templates.map(({ fields, ...template }) => {\n return {\n type: \"collection\" as const,\n collection: {\n ...template,\n discriminator: \"_templateId\"\n },\n children: fields.map(f => converter.toAst(f))\n };\n })\n };\n }\n}\n\nexport const DynamicZoneFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: DynamicZoneToGraphQL,\n dependencies: []\n});\n"],"names":["createUnionTypeName","model","field","createTypeName","getFieldTemplates","Array","remapTemplateValue","value","typeName","createDynamicZoneResolver","endpointType","models","fieldRegistry","createFieldResolvers","graphQLType","dzField","templates","resolver","parent","v","template","tpl","templateTypes","createTypeDefsForTemplates","replace","RegExp","typeResolvers","templateType","index","ReadApi","unionTypeName","typeDefs","params","ManageApi","templateIds","type","inputProperties","inputTypeName","key","createGraphQLInputField","input","normalizeDynamicZoneInput","Boolean","DynamicZoneToGraphQL","originalField","getOriginalTemplateFields","templateId","t","converter","fields","f","DynamicZoneFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":"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"}
1
+ {"version":3,"file":"features/graphql/fields/base/DynamicZoneToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/DynamicZoneToGraphQL.ts"],"sourcesContent":["import { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type {\n ApiEndpoint,\n CmsDynamicZoneTemplate,\n CmsModel,\n CmsModelDynamicZoneField,\n CmsModelField,\n CmsModelFieldType,\n CmsModelFieldDefinition\n} from \"~/types/index.js\";\nimport type { ValidateChildFieldsParams } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldAstNode, ICmsModelFieldToAst } from \"~/types/modelAst.js\";\nimport type { GraphQLFieldResolver } from \"@webiny/api-graphql/types.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport { createTypeName } from \"~/utils/createTypeName.js\";\nimport { createGraphQLInputField } from \"./utils/createGraphQLInputField.js\";\nimport { createTypeDefsForTemplates } from \"./dynamicZone/createTypeDefsForTemplates.js\";\nimport { normalizeDynamicZoneInput } from \"./dynamicZone/normalizeDynamicZoneInput.js\";\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\nconst getFieldTemplates = (field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] => {\n if (!Array.isArray(field.settings?.templates)) {\n return [];\n }\n return field.settings.templates;\n};\n\nconst remapTemplateValue = (value: any, typeName: string) => {\n return { ...value, __typename: typeName };\n};\n\nconst createDynamicZoneResolver = (\n endpointType: ApiEndpoint\n): ((params: CmsModelFieldToGraphQL.ResolverParams) => CmsModelFieldToGraphQL.Resolver) => {\n return ({ model, models, field, fieldRegistry, createFieldResolvers, graphQLType }) => {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n\n if (!templates.length) {\n return false;\n }\n\n const resolver = (parent: any) => {\n const value = parent[field.fieldId];\n if (!value) {\n return value;\n }\n\n const typeName = `${graphQLType}_${createTypeName(field.fieldId)}`;\n\n if (field.list && Array.isArray(value)) {\n return value.map(v => {\n const template = templates.find(tpl => tpl.id === v._templateId);\n if (!template) {\n return undefined;\n }\n return remapTemplateValue(v, `${typeName}_${template.gqlTypeName}`);\n });\n }\n\n const template = templates.find(tpl => tpl.id === value._templateId);\n if (!template) {\n return undefined;\n }\n return remapTemplateValue(value, `${typeName}_${template.gqlTypeName}`);\n };\n\n const { templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: endpointType,\n typeOfType: \"type\",\n model,\n fieldRegistry,\n templates\n });\n\n const replace = new RegExp(`${model.singularApiName}_`, \"g\");\n\n const typeResolvers = templateTypes\n .map(templateType => {\n return templateType.replace(replace, `${graphQLType}_`);\n })\n .reduce<Record<string, Record<string, GraphQLFieldResolver>>>(\n (typeResolvers, templateType, index) => {\n return {\n ...typeResolvers,\n ...createFieldResolvers({\n graphQLType: templateType,\n fields: dzField.settings.templates[index].fields\n })\n };\n },\n {}\n );\n\n return {\n resolver,\n typeResolvers\n };\n };\n};\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"read\",\n typeOfType: \"type\",\n model,\n fieldRegistry,\n templates\n });\n\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${unionTypeName}!]` : unionTypeName}`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n }\n\n public createResolver(\n params: CmsModelFieldToGraphQL.ResolverParams\n ): CmsModelFieldToGraphQL.Resolver {\n return createDynamicZoneResolver(\"read\")(params);\n }\n}\n\nclass ManageApi implements CmsModelFieldToGraphQL.ManageApi {\n public createTypeField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"type\",\n model,\n fieldRegistry,\n templates\n });\n\n /* Add _templateId. */\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${unionTypeName}!]` : unionTypeName}`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n }\n\n public createInputField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = getFieldTemplates(dzField);\n\n if (!templates.length) {\n return null;\n }\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"input\",\n model,\n fieldRegistry,\n templates\n });\n\n const typeName = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n\n const inputProperties = templateTypes.map(inputTypeName => {\n const key = inputTypeName.replace(`${typeName}_`, \"\").replace(\"Input\", \"\");\n return [key, inputTypeName];\n });\n\n /**\n * Generate a field input type, similar to this example:\n *\n * input Article_ContentInput {\n * Hero: Article_Content_HeroInput\n * SimpleText: Article_Content_SimpleTextInput\n * }\n */\n typeDefs.push(`input ${typeName}Input {\n ${inputProperties.map(\n ([key, value]) => `\n ${key}: ${value}\n `\n )}\n }`);\n\n return {\n fields: createGraphQLInputField(field, `${typeName}Input`),\n typeDefs: typeDefs.join(\"\\n\")\n };\n }\n\n public createResolver(\n params: CmsModelFieldToGraphQL.ResolverParams\n ): CmsModelFieldToGraphQL.Resolver {\n return createDynamicZoneResolver(\"manage\")(params);\n }\n\n public async normalizeInput<T>({\n field,\n input\n }: CmsModelFieldToGraphQL.InputNormalizeParams): Promise<T> {\n const dzField = field as CmsModelDynamicZoneField;\n const templates = dzField.settings?.templates || [];\n\n if (Array.isArray(input) && field.list) {\n return input\n .map(value => normalizeDynamicZoneInput(value, templates))\n .filter(Boolean) as T;\n }\n\n return normalizeDynamicZoneInput(input as GenericRecord<string>, templates) as T;\n }\n}\n\nclass DynamicZoneToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"dynamicZone\";\n public readonly isSearchable: boolean = false;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n\n public validateChildFields(params: ValidateChildFieldsParams<CmsModelField>): void {\n const field = params.field as CmsModelDynamicZoneField;\n const originalField = params.originalField as CmsModelDynamicZoneField | undefined;\n\n const getOriginalTemplateFields = (templateId: string) => {\n if (!originalField?.settings?.templates) {\n return [];\n }\n const template = originalField.settings.templates.find(t => t.id === templateId);\n return template?.fields || [];\n };\n\n for (const template of field.settings.templates) {\n params.validate({\n fields: template.fields,\n originalFields: getOriginalTemplateFields(template.id)\n });\n }\n }\n\n public getFieldAst(field: CmsModelField, converter: ICmsModelFieldToAst): CmsModelFieldAstNode {\n const dzField = field as CmsModelDynamicZoneField;\n const { templates = [] } = dzField.settings;\n\n return {\n type: \"field\",\n field,\n children: templates.map(({ fields, ...template }) => {\n return {\n type: \"collection\" as const,\n collection: {\n ...template,\n discriminator: \"_templateId\"\n },\n children: fields.map(f => converter.toAst(f))\n };\n })\n };\n }\n}\n\nexport const DynamicZoneFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: DynamicZoneToGraphQL,\n dependencies: []\n});\n"],"names":["createUnionTypeName","model","field","createTypeName","getFieldTemplates","Array","remapTemplateValue","value","typeName","createDynamicZoneResolver","endpointType","models","fieldRegistry","createFieldResolvers","graphQLType","dzField","templates","resolver","parent","v","template","tpl","templateTypes","createTypeDefsForTemplates","replace","RegExp","typeResolvers","templateType","index","ReadApi","unionTypeName","typeDefs","templateIds","type","params","ManageApi","inputProperties","inputTypeName","key","createGraphQLInputField","input","normalizeDynamicZoneInput","Boolean","DynamicZoneToGraphQL","originalField","getOriginalTemplateFields","templateId","t","converter","fields","f","DynamicZoneFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":"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"}
@@ -85,10 +85,10 @@ class ReadApi {
85
85
  const typeResolvers = createFieldResolvers({
86
86
  graphQLType: fieldType,
87
87
  fields: field.settings.fields
88
- });
88
+ }) || {};
89
89
  return {
90
90
  resolver: null,
91
- typeResolvers: typeResolvers || {}
91
+ typeResolvers
92
92
  };
93
93
  }
94
94
  createListFilters({ field, model }) {
@@ -1 +1 @@
1
- {"version":3,"file":"features/graphql/fields/base/ObjectToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/ObjectToGraphQL.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst.js\";\nimport { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"../abstractions/CmsModelFieldToGraphQLRegistry.js\";\nimport type {\n CmsModel,\n CmsModelField,\n CmsModelFieldType,\n CmsModelFieldDefinition,\n CmsModelObjectField\n} from \"~/types/index.js\";\nimport type { ValidateChildFieldsParams } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldAstNode, ICmsModelFieldToAst } from \"~/types/modelAst.js\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields.js\";\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\n\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return upperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateChildTypeDefsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n endpointType: \"manage\" | \"read\";\n}\n\nconst createChildTypeDefs = (params: CreateChildTypeDefsParams): string => {\n const { field, fieldRegistry, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const fieldImpl = fieldRegistry.get(child.type);\n if (!fieldImpl) {\n return null;\n }\n const api = endpointType === \"manage\" ? fieldImpl.manage : fieldImpl.read;\n const createListFilters = api.createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n fieldRegistry\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }\\n`;\n};\n\nconst createObjectListFilters = (\n field: CmsModelField,\n model: Pick<CmsModel, \"singularApiName\">\n): string => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({\n field,\n models,\n model,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldRegistry\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n fieldRegistry,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${fieldType}!]` : fieldType}`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n }\n\n public createResolver({\n field,\n createFieldResolvers,\n graphQLType\n }: CmsModelFieldToGraphQL.ResolverParams): CmsModelFieldToGraphQL.Resolver {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n }\n\n public createListFilters({ field, model }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createObjectListFilters(field, model);\n }\n}\n\nclass ManageApi implements CmsModelFieldToGraphQL.ManageApi {\n public createTypeField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldRegistry\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n fieldRegistry,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${fieldType}!]` : fieldType}`,\n typeDefs: `${typeDefs}\\n${childTypeDefs}`\n };\n }\n\n public createInputField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldRegistry\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${fieldType}!]` : fieldType}`,\n typeDefs\n };\n }\n\n public createResolver({\n graphQLType,\n field,\n createFieldResolvers\n }: CmsModelFieldToGraphQL.ResolverParams): CmsModelFieldToGraphQL.Resolver {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n }\n\n public createListFilters({ field, model }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createObjectListFilters(field, model);\n }\n}\n\nclass ObjectToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"object\";\n public readonly isSearchable: boolean = false;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n\n public validateChildFields(params: ValidateChildFieldsParams<CmsModelField>): void {\n const field = params.field as CmsModelObjectField;\n const originalField = params.originalField as CmsModelObjectField | undefined;\n params.validate({\n fields: field.settings?.fields ?? [],\n originalFields: originalField?.settings?.fields || []\n });\n }\n\n public getFieldAst(field: CmsModelField, converter: ICmsModelFieldToAst): CmsModelFieldAstNode {\n const objectField = field as CmsModelObjectField;\n const { fields = [], ...settings } = objectField.settings;\n return {\n type: \"field\",\n field: {\n ...objectField,\n settings: settings || {}\n },\n children: fields.map(f => converter.toAst(f))\n };\n }\n}\n\nexport const ObjectFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: ObjectToGraphQL,\n dependencies: []\n});\n"],"names":["createTypeName","params","model","parents","field","Boolean","id","upperFirst","createChildTypeDefs","fieldRegistry","endpointType","fields","typeName","filters","child","fieldImpl","api","createListFilters","createObjectListFilters","ReadApi","models","result","createTypeFromFields","fieldType","typeDefs","childTypeDefs","createFieldResolvers","graphQLType","typeResolvers","ManageApi","ObjectToGraphQL","originalField","converter","objectField","settings","f","ObjectFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":"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"}
1
+ {"version":3,"file":"features/graphql/fields/base/ObjectToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/ObjectToGraphQL.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst.js\";\nimport { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldToGraphQLRegistry } from \"../abstractions/CmsModelFieldToGraphQLRegistry.js\";\nimport type {\n CmsModel,\n CmsModelField,\n CmsModelFieldType,\n CmsModelFieldDefinition,\n CmsModelObjectField\n} from \"~/types/index.js\";\nimport type { ValidateChildFieldsParams } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type { CmsModelFieldAstNode, ICmsModelFieldToAst } from \"~/types/modelAst.js\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields.js\";\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\n\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return upperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateChildTypeDefsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n fieldRegistry: CmsModelFieldToGraphQLRegistry.Interface;\n endpointType: \"manage\" | \"read\";\n}\n\nconst createChildTypeDefs = (params: CreateChildTypeDefsParams): string => {\n const { field, fieldRegistry, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const fieldImpl = fieldRegistry.get(child.type);\n if (!fieldImpl) {\n return null;\n }\n const api = endpointType === \"manage\" ? fieldImpl.manage : fieldImpl.read;\n const createListFilters = api.createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n fieldRegistry\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }\\n`;\n};\n\nconst createObjectListFilters = (\n field: CmsModelField,\n model: Pick<CmsModel, \"singularApiName\">\n): string => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({\n field,\n models,\n model,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldRegistry\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n fieldRegistry,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${fieldType}!]` : fieldType}`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n }\n\n public createResolver({\n field,\n createFieldResolvers,\n graphQLType\n }: CmsModelFieldToGraphQL.ResolverParams): CmsModelFieldToGraphQL.Resolver {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers =\n createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n }) || {};\n\n return {\n resolver: null,\n typeResolvers\n };\n }\n\n public createListFilters({ field, model }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createObjectListFilters(field, model);\n }\n}\n\nclass ManageApi implements CmsModelFieldToGraphQL.ManageApi {\n public createTypeField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldRegistry\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n fieldRegistry,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${fieldType}!]` : fieldType}`,\n typeDefs: `${typeDefs}\\n${childTypeDefs}`\n };\n }\n\n public createInputField({\n models,\n model,\n field,\n fieldRegistry\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition | null {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldRegistry\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${field.list ? `[${fieldType}!]` : fieldType}`,\n typeDefs\n };\n }\n\n public createResolver({\n graphQLType,\n field,\n createFieldResolvers\n }: CmsModelFieldToGraphQL.ResolverParams): CmsModelFieldToGraphQL.Resolver {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n }\n\n public createListFilters({ field, model }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createObjectListFilters(field, model);\n }\n}\n\nclass ObjectToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"object\";\n public readonly isSearchable: boolean = false;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n\n public validateChildFields(params: ValidateChildFieldsParams<CmsModelField>): void {\n const field = params.field as CmsModelObjectField;\n const originalField = params.originalField as CmsModelObjectField | undefined;\n params.validate({\n fields: field.settings?.fields ?? [],\n originalFields: originalField?.settings?.fields || []\n });\n }\n\n public getFieldAst(field: CmsModelField, converter: ICmsModelFieldToAst): CmsModelFieldAstNode {\n const objectField = field as CmsModelObjectField;\n const { fields = [], ...settings } = objectField.settings;\n return {\n type: \"field\",\n field: {\n ...objectField,\n settings: settings || {}\n },\n children: fields.map(f => converter.toAst(f))\n };\n }\n}\n\nexport const ObjectFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: ObjectToGraphQL,\n dependencies: []\n});\n"],"names":["createTypeName","params","model","parents","field","Boolean","id","upperFirst","createChildTypeDefs","fieldRegistry","endpointType","fields","typeName","filters","child","fieldImpl","api","createListFilters","createObjectListFilters","ReadApi","models","result","createTypeFromFields","fieldType","typeDefs","childTypeDefs","createFieldResolvers","graphQLType","typeResolvers","ManageApi","ObjectToGraphQL","originalField","converter","objectField","settings","f","ObjectFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { CmsModelFieldToGraphQL } from "../abstractions/CmsModelFieldToGraphQL.js";
2
2
  import type { CmsContext, CmsModelField, CmsModelFieldType, CmsModelFieldDefinition } from "../../../../types/index.js";
3
- import type { GraphQLSchemaDefinition } from "@webiny/handler-graphql/types.js";
3
+ import type { GraphQLSchemaDefinition } from "@webiny/api-graphql/types.js";
4
4
  declare class ReadApi implements CmsModelFieldToGraphQL.ReadApi {
5
5
  createTypeField({ model, field, models }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition;
6
6
  createListFilters({ field }: CmsModelFieldToGraphQL.ListFiltersParams): string;
@@ -3,10 +3,10 @@ import { CmsModelFieldToGraphQL } from "../abstractions/CmsModelFieldToGraphQL.j
3
3
  import { createTypeName } from "../../../../utils/createTypeName.js";
4
4
  import { parseIdentifier } from "@webiny/utils";
5
5
  import { createGraphQLInputField } from "./utils/createGraphQLInputField.js";
6
+ import { HeadlessCms } from "../../../shared/abstractions.js";
6
7
  import { GetModelUseCase } from "../../../contentModel/GetModel/index.js";
7
8
  import { GetPublishedEntriesByIdsUseCase } from "../../../contentEntry/GetPublishedEntriesByIds/index.js";
8
9
  import { GetLatestEntriesByIdsUseCase } from "../../../contentEntry/GetLatestEntriesByIds/index.js";
9
- import { Logger } from "@webiny/api-core/exports/api/logger.js";
10
10
  const createUnionTypeName = (model, field)=>`${model.singularApiName}_${createTypeName(field.fieldId)}`;
11
11
  const createListFilters = (fieldId)=>`
12
12
  ${fieldId}: RefFieldWhereInput
@@ -75,11 +75,11 @@ class ReadApi {
75
75
  return parent[field.fieldId];
76
76
  };
77
77
  return async (parent, args, context)=>{
78
- const { cms, container } = context;
78
+ const { container } = context;
79
+ const cms = container.resolve(HeadlessCms);
79
80
  const getModel = container.resolve(GetModelUseCase);
80
81
  const getPublishedByIds = container.resolve(GetPublishedEntriesByIdsUseCase);
81
82
  const getLatestByIds = container.resolve(GetLatestEntriesByIdsUseCase);
82
- const logger = container.resolve(Logger);
83
83
  const initialValue = getValue(parent);
84
84
  if (!initialValue) return null;
85
85
  if (false === args.populate) return initialValue;
@@ -96,18 +96,14 @@ class ReadApi {
96
96
  const getters = Object.keys(entriesByModel).map(async (modelId)=>{
97
97
  const idList = entriesByModel[modelId];
98
98
  const modelResult = await getModel.execute(modelId);
99
- if (modelResult.isFail()) {
100
- logger.error(modelResult.error);
101
- return [];
102
- }
103
99
  const model = modelResult.value;
104
- let entries = [];
100
+ let entries;
105
101
  if (cms.READ) {
106
102
  const getPublishedResult = await getPublishedByIds.execute(model, idList);
107
- if (getPublishedResult.isOk()) entries = getPublishedResult.value;
103
+ entries = getPublishedResult.value;
108
104
  } else {
109
- const latestByIdsResult = await getLatestByIds.execute(model, idList);
110
- if (latestByIdsResult.isOk()) entries = latestByIdsResult.value;
105
+ const latestByIsResult = await getLatestByIds.execute(model, idList);
106
+ entries = latestByIsResult.value;
111
107
  }
112
108
  return appendTypename(entries, modelIdToTypeName.get(modelId));
113
109
  });
@@ -116,22 +112,18 @@ class ReadApi {
116
112
  }
117
113
  const value = initialValue;
118
114
  const modelResult = await getModel.execute(value.modelId);
119
- if (modelResult.isFail()) {
120
- logger.error(modelResult.error);
121
- return null;
122
- }
123
115
  const model = modelResult.value;
124
- let revisions = [];
116
+ let revisions;
125
117
  if (cms.READ) {
126
118
  const publishedByIdsResult = await getPublishedByIds.execute(model, [
127
119
  value.entryId
128
120
  ]);
129
- if (publishedByIdsResult.isOk()) revisions = publishedByIdsResult.value;
121
+ revisions = publishedByIdsResult.value;
130
122
  } else {
131
123
  const latestByIdsResult = await getLatestByIds.execute(model, [
132
124
  value.entryId
133
125
  ]);
134
- if (latestByIdsResult.isOk()) revisions = latestByIdsResult.value;
126
+ revisions = latestByIdsResult.value;
135
127
  }
136
128
  if (!revisions || 0 === revisions.length) return null;
137
129
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"features/graphql/fields/base/RefToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/RefToGraphQL.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type {\n CmsContext,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CmsModelFieldType,\n CmsModelFieldDefinition\n} from \"~/types/index.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/handler-graphql/types.js\";\nimport { createTypeName } from \"~/utils/createTypeName.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { createGraphQLInputField } from \"./utils/createGraphQLInputField.js\";\nimport { GetModelUseCase } from \"~/features/contentModel/GetModel/index.js\";\nimport { GetPublishedEntriesByIdsUseCase } from \"~/features/contentEntry/GetPublishedEntriesByIds/index.js\";\nimport { GetLatestEntriesByIdsUseCase } from \"~/features/contentEntry/GetLatestEntriesByIds/index.js\";\nimport { Logger } from \"@webiny/api-core/exports/api/logger.js\";\n\ninterface RefFieldValue {\n /**\n * `id` is optional for backwards compatibility with records created before this property was introduced.\n */\n id?: string;\n entryId: string;\n modelId: string;\n}\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\nconst createListFilters = (fieldId: string): string => {\n return `\n ${fieldId}: RefFieldWhereInput\n `;\n};\n\nconst createFilteringTypeDef = () => {\n return `\n input RefFieldWhereInput {\n id: String\n id_not: String\n id_in: [String!]\n id_not_in: [String]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n modelId: String\n modelId_not: String\n modelId_in: [String!]\n modelId_not_in: [String!]\n }\n `;\n};\n\nconst appendTypename = (entries: CmsEntry[], typename: string): CmsEntry[] => {\n return entries.map(item => {\n return {\n ...item,\n __typename: typename\n };\n });\n};\n\nconst getFieldModels = (field: CmsModelField): Pick<CmsModel, \"modelId\">[] => {\n if (!field.settings || Array.isArray(field.settings.models) === false) {\n return [];\n }\n return field.settings.models as Pick<CmsModel, \"modelId\">[];\n};\n\nconst modelIdToTypeName = new Map<string, string>();\n\ninterface GetModelParams {\n models: CmsModel[];\n modelId: string;\n}\n\nconst getModel = (params: GetModelParams): CmsModel => {\n const { models, modelId } = params;\n const model = models.find(item => item.modelId === modelId);\n if (model) {\n return model;\n }\n throw new WebinyError(\n `Could not find model with ID \"${modelId}\" in the list of models.`,\n \"MODEL_NOT_FOUND\",\n { modelId }\n );\n};\n\nconst getModelSingularApiName = (params: GetModelParams): string => {\n return getModel(params).singularApiName;\n};\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({\n model,\n field,\n models\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition {\n const fieldModels = field.settings?.models || [];\n const gqlType =\n fieldModels.length > 1\n ? createUnionTypeName(model, field)\n : getModelSingularApiName({ models, modelId: fieldModels[0].modelId });\n const typeDefs =\n fieldModels.length > 1\n ? `union ${gqlType} = ${getFieldModels(field)\n .map(({ modelId }) => getModelSingularApiName({ models, modelId }))\n .join(\" | \")}`\n : \"\";\n\n return {\n fields:\n field.fieldId +\n `(populate: Boolean = true): ${field.list ? `[${gqlType}!]` : gqlType}`,\n typeDefs\n };\n }\n\n public createListFilters({ field }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createListFilters(field.fieldId);\n }\n\n public createResolver({\n field,\n models\n }: CmsModelFieldToGraphQL.ResolverParams): CmsModelFieldToGraphQL.Resolver {\n const fieldModels = field.settings?.models || [];\n for (const item of fieldModels) {\n modelIdToTypeName.set(\n item.modelId,\n getModelSingularApiName({ models, modelId: item.modelId })\n );\n }\n\n const getValue = (parent: any): RefFieldValue | RefFieldValue[] => {\n if (parent.values) {\n return parent.values[field.fieldId];\n }\n return parent[field.fieldId];\n };\n\n /* @ts-expect-error Mixed return types for createResolver. */\n return async (parent: CmsEntry, args: any, context: CmsContext) => {\n const { cms, container } = context;\n\n const getModel = container.resolve(GetModelUseCase);\n const getPublishedByIds = container.resolve(GetPublishedEntriesByIdsUseCase);\n const getLatestByIds = container.resolve(GetLatestEntriesByIdsUseCase);\n const logger = container.resolve(Logger);\n\n const initialValue = getValue(parent);\n\n if (!initialValue) {\n return null;\n }\n if (args.populate === false) {\n return initialValue;\n }\n\n if (field.list) {\n const referenceFieldValues = initialValue as RefFieldValue[];\n if (\n Array.isArray(referenceFieldValues) === false ||\n referenceFieldValues.length === 0\n ) {\n return [];\n }\n\n const entriesByModel = referenceFieldValues.reduce<Record<string, string[]>>(\n (collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.entryId) === true) {\n return collection;\n }\n collection[ref.modelId].push(ref.entryId);\n return collection;\n },\n {}\n );\n\n const getters = Object.keys(entriesByModel).map(async modelId => {\n const idList = entriesByModel[modelId];\n const modelResult = await getModel.execute(modelId);\n if (modelResult.isFail()) {\n logger.error(modelResult.error);\n return [];\n }\n const model = modelResult.value;\n\n let entries: CmsEntry[] = [];\n if (cms.READ) {\n const getPublishedResult = await getPublishedByIds.execute(model, idList);\n if (getPublishedResult.isOk()) {\n entries = getPublishedResult.value;\n }\n } else {\n const latestByIdsResult = await getLatestByIds.execute(model, idList);\n if (latestByIdsResult.isOk()) {\n entries = latestByIdsResult.value;\n }\n }\n return appendTypename(entries, modelIdToTypeName.get(modelId)!);\n });\n\n const references = await Promise.all(getters).then((results: CmsEntry[][]) => {\n return results.reduce((result, item) => {\n return result.concat(item);\n }, []);\n });\n\n return referenceFieldValues\n .map(v => {\n return references.find(ref => ref.entryId === v.entryId);\n })\n .filter(Boolean);\n }\n\n const value = initialValue as RefFieldValue;\n const modelResult = await getModel.execute(value.modelId);\n if (modelResult.isFail()) {\n logger.error(modelResult.error);\n return null;\n }\n const model = modelResult.value;\n\n let revisions: CmsEntry[] = [];\n if (cms.READ) {\n const publishedByIdsResult = await getPublishedByIds.execute(model, [\n value.entryId\n ]);\n if (publishedByIdsResult.isOk()) {\n revisions = publishedByIdsResult.value;\n }\n } else {\n const latestByIdsResult = await getLatestByIds.execute(model, [value.entryId]);\n if (latestByIdsResult.isOk()) {\n revisions = latestByIdsResult.value;\n }\n }\n\n if (!revisions || revisions.length === 0) {\n return null;\n }\n return {\n ...revisions[0],\n __typename: modelIdToTypeName.get(value.modelId)\n };\n };\n }\n\n public createSchema(): GraphQLSchemaDefinition<CmsContext> {\n return {\n typeDefs: createFilteringTypeDef(),\n resolvers: {}\n };\n }\n}\n\nclass ManageApi implements CmsModelFieldToGraphQL.ManageApi {\n public createTypeField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string {\n if (field.list) {\n return `${field.fieldId}: [RefField!]`;\n }\n return `${field.fieldId}: RefField`;\n }\n\n public createInputField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string {\n return createGraphQLInputField(field, \"RefFieldInput\");\n }\n\n public createListFilters({ field }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createListFilters(field.fieldId);\n }\n\n public createSchema(): GraphQLSchemaDefinition<CmsContext> {\n return {\n typeDefs: /* GraphQL */ `\n type RefField {\n modelId: String!\n entryId: ID!\n id: ID!\n }\n\n input RefFieldInput {\n modelId: String!\n id: RevisionId!\n }\n\n ${createFilteringTypeDef()}\n `,\n resolvers: {\n RefField: {\n entryId: (parent: RefFieldValue) => {\n const { id } = parseIdentifier(parent.entryId || parent.id);\n return id;\n },\n id: (parent: RefFieldValue) => {\n return parent.id || parent.entryId;\n }\n }\n }\n };\n }\n}\n\nclass RefToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"ref\";\n public readonly isSearchable: boolean = true;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n}\n\nexport const RefFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: RefToGraphQL,\n dependencies: []\n});\n"],"names":["createUnionTypeName","model","field","createTypeName","createListFilters","fieldId","createFilteringTypeDef","appendTypename","entries","typename","item","getFieldModels","Array","modelIdToTypeName","Map","getModel","params","models","modelId","WebinyError","getModelSingularApiName","ReadApi","fieldModels","gqlType","typeDefs","getValue","parent","args","context","cms","container","GetModelUseCase","getPublishedByIds","GetPublishedEntriesByIdsUseCase","getLatestByIds","GetLatestEntriesByIdsUseCase","logger","Logger","initialValue","referenceFieldValues","entriesByModel","collection","ref","getters","Object","idList","modelResult","getPublishedResult","latestByIdsResult","references","Promise","results","result","v","Boolean","value","revisions","publishedByIdsResult","ManageApi","createGraphQLInputField","id","parseIdentifier","RefToGraphQL","RefFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":"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"}
1
+ {"version":3,"file":"features/graphql/fields/base/RefToGraphQL.js","sources":["../../../../../src/features/graphql/fields/base/RefToGraphQL.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { CmsModelFieldToGraphQL } from \"../abstractions/CmsModelFieldToGraphQL.js\";\nimport type {\n CmsContext,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CmsModelFieldType,\n CmsModelFieldDefinition\n} from \"~/types/index.js\";\nimport type { GraphQLSchemaDefinition } from \"@webiny/api-graphql/types.js\";\nimport { createTypeName } from \"~/utils/createTypeName.js\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { createGraphQLInputField } from \"./utils/createGraphQLInputField.js\";\nimport { HeadlessCms } from \"~/features/shared/abstractions.js\";\nimport { GetModelUseCase } from \"~/features/contentModel/GetModel/index.js\";\nimport { GetPublishedEntriesByIdsUseCase } from \"~/features/contentEntry/GetPublishedEntriesByIds/index.js\";\nimport { GetLatestEntriesByIdsUseCase } from \"~/features/contentEntry/GetLatestEntriesByIds/index.js\";\n\ninterface RefFieldValue {\n /**\n * `id` is optional for backwards compatibility with records created before this property was introduced.\n */\n id?: string;\n entryId: string;\n modelId: string;\n}\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\nconst createListFilters = (fieldId: string): string => {\n return `\n ${fieldId}: RefFieldWhereInput\n `;\n};\n\nconst createFilteringTypeDef = () => {\n return `\n input RefFieldWhereInput {\n id: String\n id_not: String\n id_in: [String!]\n id_not_in: [String]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n modelId: String\n modelId_not: String\n modelId_in: [String!]\n modelId_not_in: [String!]\n }\n `;\n};\n\nconst appendTypename = (entries: CmsEntry[], typename: string): CmsEntry[] => {\n return entries.map(item => {\n return {\n ...item,\n __typename: typename\n };\n });\n};\n\nconst getFieldModels = (field: CmsModelField): Pick<CmsModel, \"modelId\">[] => {\n if (!field.settings || Array.isArray(field.settings.models) === false) {\n return [];\n }\n return field.settings.models as Pick<CmsModel, \"modelId\">[];\n};\n\nconst modelIdToTypeName = new Map<string, string>();\n\ninterface GetModelParams {\n models: CmsModel[];\n modelId: string;\n}\n\nconst getModel = (params: GetModelParams): CmsModel => {\n const { models, modelId } = params;\n const model = models.find(item => item.modelId === modelId);\n if (model) {\n return model;\n }\n throw new WebinyError(\n `Could not find model with ID \"${modelId}\" in the list of models.`,\n \"MODEL_NOT_FOUND\",\n { modelId }\n );\n};\n\nconst getModelSingularApiName = (params: GetModelParams): string => {\n return getModel(params).singularApiName;\n};\n\nclass ReadApi implements CmsModelFieldToGraphQL.ReadApi {\n public createTypeField({\n model,\n field,\n models\n }: CmsModelFieldToGraphQL.TypeFieldParams): CmsModelFieldDefinition {\n const fieldModels = field.settings?.models || [];\n const gqlType =\n fieldModels.length > 1\n ? createUnionTypeName(model, field)\n : getModelSingularApiName({ models, modelId: fieldModels[0].modelId });\n const typeDefs =\n fieldModels.length > 1\n ? `union ${gqlType} = ${getFieldModels(field)\n .map(({ modelId }) => getModelSingularApiName({ models, modelId }))\n .join(\" | \")}`\n : \"\";\n\n return {\n fields:\n field.fieldId +\n `(populate: Boolean = true): ${field.list ? `[${gqlType}!]` : gqlType}`,\n typeDefs\n };\n }\n\n public createListFilters({ field }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createListFilters(field.fieldId);\n }\n\n public createResolver({\n field,\n models\n }: CmsModelFieldToGraphQL.ResolverParams): CmsModelFieldToGraphQL.Resolver {\n const fieldModels = field.settings?.models || [];\n for (const item of fieldModels) {\n modelIdToTypeName.set(\n item.modelId,\n getModelSingularApiName({ models, modelId: item.modelId })\n );\n }\n\n const getValue = (parent: any): RefFieldValue | RefFieldValue[] => {\n if (parent.values) {\n return parent.values[field.fieldId];\n }\n return parent[field.fieldId];\n };\n\n return async (parent: CmsEntry, args: any, context: CmsContext) => {\n const { container } = context;\n const cms = container.resolve(HeadlessCms);\n\n const getModel = container.resolve(GetModelUseCase);\n const getPublishedByIds = container.resolve(GetPublishedEntriesByIdsUseCase);\n const getLatestByIds = container.resolve(GetLatestEntriesByIdsUseCase);\n\n const initialValue = getValue(parent);\n\n if (!initialValue) {\n return null;\n }\n if (args.populate === false) {\n return initialValue;\n }\n\n if (field.list) {\n const referenceFieldValues = initialValue as RefFieldValue[];\n if (\n Array.isArray(referenceFieldValues) === false ||\n referenceFieldValues.length === 0\n ) {\n return [];\n }\n\n const entriesByModel = referenceFieldValues.reduce(\n (collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.entryId) === true) {\n return collection;\n }\n collection[ref.modelId].push(ref.entryId);\n return collection;\n },\n {} as Record<string, string[]>\n );\n\n const getters = Object.keys(entriesByModel).map(async modelId => {\n const idList = entriesByModel[modelId];\n const modelResult = await getModel.execute(modelId);\n const model = modelResult.value;\n\n let entries: CmsEntry[];\n if (cms.READ) {\n const getPublishedResult = await getPublishedByIds.execute(model, idList);\n entries = getPublishedResult.value;\n } else {\n const latestByIsResult = await getLatestByIds.execute(model, idList);\n entries = latestByIsResult.value;\n }\n return appendTypename(entries, modelIdToTypeName.get(modelId)!);\n });\n\n const references = await Promise.all(getters).then((results: CmsEntry[][]) => {\n return results.reduce((result, item) => {\n return result.concat(item);\n }, []);\n });\n\n return referenceFieldValues\n .map(v => {\n return references.find(ref => ref.entryId === v.entryId);\n })\n .filter(Boolean);\n }\n\n const value = initialValue as RefFieldValue;\n const modelResult = await getModel.execute(value.modelId);\n const model = modelResult.value;\n\n let revisions: CmsEntry[];\n if (cms.READ) {\n const publishedByIdsResult = await getPublishedByIds.execute(model, [\n value.entryId\n ]);\n revisions = publishedByIdsResult.value;\n } else {\n const latestByIdsResult = await getLatestByIds.execute(model, [value.entryId]);\n revisions = latestByIdsResult.value;\n }\n\n if (!revisions || revisions.length === 0) {\n return null;\n }\n return {\n ...revisions[0],\n __typename: modelIdToTypeName.get(value.modelId)\n };\n };\n }\n\n public createSchema(): GraphQLSchemaDefinition<CmsContext> {\n return {\n typeDefs: createFilteringTypeDef(),\n resolvers: {}\n };\n }\n}\n\nclass ManageApi implements CmsModelFieldToGraphQL.ManageApi {\n public createTypeField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string {\n if (field.list) {\n return `${field.fieldId}: [RefField!]`;\n }\n return `${field.fieldId}: RefField`;\n }\n\n public createInputField({ field }: CmsModelFieldToGraphQL.TypeFieldParams): string {\n return createGraphQLInputField(field, \"RefFieldInput\");\n }\n\n public createListFilters({ field }: CmsModelFieldToGraphQL.ListFiltersParams): string {\n return createListFilters(field.fieldId);\n }\n\n public createSchema(): GraphQLSchemaDefinition<CmsContext> {\n return {\n typeDefs: /* GraphQL */ `\n type RefField {\n modelId: String!\n entryId: ID!\n id: ID!\n }\n\n input RefFieldInput {\n modelId: String!\n id: RevisionId!\n }\n\n ${createFilteringTypeDef()}\n `,\n resolvers: {\n RefField: {\n entryId: (parent: RefFieldValue) => {\n const { id } = parseIdentifier(parent.entryId || parent.id);\n return id;\n },\n id: (parent: RefFieldValue) => {\n return parent.id || parent.entryId;\n }\n }\n }\n };\n }\n}\n\nclass RefToGraphQL implements CmsModelFieldToGraphQL.Interface {\n public readonly read = new ReadApi();\n public readonly manage = new ManageApi();\n\n public readonly fieldType: CmsModelFieldType = \"ref\";\n public readonly isSearchable: boolean = true;\n public readonly isSortable: boolean = false;\n public readonly isFullTextSearchable: boolean = false;\n\n public getReadApi(): CmsModelFieldToGraphQL.ReadApi {\n return this.read;\n }\n\n public getManageApi(): CmsModelFieldToGraphQL.ManageApi {\n return this.manage;\n }\n}\n\nexport const RefFieldToGraphQL = CmsModelFieldToGraphQL.createImplementation({\n implementation: RefToGraphQL,\n dependencies: []\n});\n"],"names":["createUnionTypeName","model","field","createTypeName","createListFilters","fieldId","createFilteringTypeDef","appendTypename","entries","typename","item","getFieldModels","Array","modelIdToTypeName","Map","getModel","params","models","modelId","WebinyError","getModelSingularApiName","ReadApi","fieldModels","gqlType","typeDefs","getValue","parent","args","context","container","cms","HeadlessCms","GetModelUseCase","getPublishedByIds","GetPublishedEntriesByIdsUseCase","getLatestByIds","GetLatestEntriesByIdsUseCase","initialValue","referenceFieldValues","entriesByModel","collection","ref","getters","Object","idList","modelResult","getPublishedResult","latestByIsResult","references","Promise","results","result","v","Boolean","value","revisions","publishedByIdsResult","latestByIdsResult","ManageApi","createGraphQLInputField","id","parseIdentifier","RefToGraphQL","RefFieldToGraphQL","CmsModelFieldToGraphQL"],"mappings":";;;;;;;;;AA4BA,MAAMA,sBAAsB,CAACC,OAAiBC,QACnC,GAAGD,MAAM,eAAe,CAAC,CAAC,EAAEE,eAAeD,MAAM,OAAO,GAAG;AAGtE,MAAME,oBAAoB,CAACC,UAChB,CAAC;QACJ,EAAEA,QAAQ;IACd,CAAC;AAGL,MAAMC,yBAAyB,IACpB,CAAC;;;;;;;;;;;;;;;IAeR,CAAC;AAGL,MAAMC,iBAAiB,CAACC,SAAqBC,WAClCD,QAAQ,GAAG,CAACE,CAAAA,OACR;YACH,GAAGA,IAAI;YACP,YAAYD;QAChB;AAIR,MAAME,iBAAiB,CAACT;IACpB,IAAI,CAACA,MAAM,QAAQ,IAAIU,AAAyC,UAAzCA,MAAM,OAAO,CAACV,MAAM,QAAQ,CAAC,MAAM,GACtD,OAAO,EAAE;IAEb,OAAOA,MAAM,QAAQ,CAAC,MAAM;AAChC;AAEA,MAAMW,oBAAoB,IAAIC;AAO9B,MAAMC,wBAAW,CAACC;IACd,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGF;IAC5B,MAAMf,QAAQgB,OAAO,IAAI,CAACP,CAAAA,OAAQA,KAAK,OAAO,KAAKQ;IACnD,IAAIjB,OACA,OAAOA;IAEX,MAAM,IAAIkB,MACN,CAAC,8BAA8B,EAAED,QAAQ,wBAAwB,CAAC,EAClE,mBACA;QAAEA;IAAQ;AAElB;AAEA,MAAME,0BAA0B,CAACJ,SACtBD,sBAASC,QAAQ,eAAe;AAG3C,MAAMK;IACK,gBAAgB,EACnBpB,KAAK,EACLC,KAAK,EACLe,MAAM,EAC+B,EAA2B;QAChE,MAAMK,cAAcpB,MAAM,QAAQ,EAAE,UAAU,EAAE;QAChD,MAAMqB,UACFD,YAAY,MAAM,GAAG,IACftB,oBAAoBC,OAAOC,SAC3BkB,wBAAwB;YAAEH;YAAQ,SAASK,WAAW,CAAC,EAAE,CAAC,OAAO;QAAC;QAC5E,MAAME,WACFF,YAAY,MAAM,GAAG,IACf,CAAC,MAAM,EAAEC,QAAQ,GAAG,EAAEZ,eAAeT,OAChC,GAAG,CAAC,CAAC,EAAEgB,OAAO,EAAE,GAAKE,wBAAwB;gBAAEH;gBAAQC;YAAQ,IAC/D,IAAI,CAAC,QAAQ,GAClB;QAEV,OAAO;YACH,QACIhB,MAAM,OAAO,GACb,CAAC,4BAA4B,EAAEA,MAAM,IAAI,GAAG,CAAC,CAAC,EAAEqB,QAAQ,EAAE,CAAC,GAAGA,SAAS;YAC3EC;QACJ;IACJ;IAEO,kBAAkB,EAAEtB,KAAK,EAA4C,EAAU;QAClF,OAAOE,kBAAkBF,MAAM,OAAO;IAC1C;IAEO,eAAe,EAClBA,KAAK,EACLe,MAAM,EAC8B,EAAmC;QACvE,MAAMK,cAAcpB,MAAM,QAAQ,EAAE,UAAU,EAAE;QAChD,KAAK,MAAMQ,QAAQY,YACfT,kBAAkB,GAAG,CACjBH,KAAK,OAAO,EACZU,wBAAwB;YAAEH;YAAQ,SAASP,KAAK,OAAO;QAAC;QAIhE,MAAMe,WAAW,CAACC;YACd,IAAIA,OAAO,MAAM,EACb,OAAOA,OAAO,MAAM,CAACxB,MAAM,OAAO,CAAC;YAEvC,OAAOwB,MAAM,CAACxB,MAAM,OAAO,CAAC;QAChC;QAEA,OAAO,OAAOwB,QAAkBC,MAAWC;YACvC,MAAM,EAAEC,SAAS,EAAE,GAAGD;YACtB,MAAME,MAAMD,UAAU,OAAO,CAACE;YAE9B,MAAMhB,WAAWc,UAAU,OAAO,CAACG;YACnC,MAAMC,oBAAoBJ,UAAU,OAAO,CAACK;YAC5C,MAAMC,iBAAiBN,UAAU,OAAO,CAACO;YAEzC,MAAMC,eAAeZ,SAASC;YAE9B,IAAI,CAACW,cACD,OAAO;YAEX,IAAIV,AAAkB,UAAlBA,KAAK,QAAQ,EACb,OAAOU;YAGX,IAAInC,MAAM,IAAI,EAAE;gBACZ,MAAMoC,uBAAuBD;gBAC7B,IACIzB,AAAwC,UAAxCA,MAAM,OAAO,CAAC0B,yBACdA,AAAgC,MAAhCA,qBAAqB,MAAM,EAE3B,OAAO,EAAE;gBAGb,MAAMC,iBAAiBD,qBAAqB,MAAM,CAC9C,CAACE,YAAYC;oBACT,IAAKD,UAAU,CAACC,IAAI,OAAO,CAAC,EAErB;wBAAA,IAAID,AAAkD,SAAlDA,UAAU,CAACC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAACA,IAAI,OAAO,GACnD,OAAOD;oBACX,OAHIA,UAAU,CAACC,IAAI,OAAO,CAAC,GAAG,EAAE;oBAIhCD,UAAU,CAACC,IAAI,OAAO,CAAC,CAAC,IAAI,CAACA,IAAI,OAAO;oBACxC,OAAOD;gBACX,GACA,CAAC;gBAGL,MAAME,UAAUC,OAAO,IAAI,CAACJ,gBAAgB,GAAG,CAAC,OAAMrB;oBAClD,MAAM0B,SAASL,cAAc,CAACrB,QAAQ;oBACtC,MAAM2B,cAAc,MAAM9B,SAAS,OAAO,CAACG;oBAC3C,MAAMjB,QAAQ4C,YAAY,KAAK;oBAE/B,IAAIrC;oBACJ,IAAIsB,IAAI,IAAI,EAAE;wBACV,MAAMgB,qBAAqB,MAAMb,kBAAkB,OAAO,CAAChC,OAAO2C;wBAClEpC,UAAUsC,mBAAmB,KAAK;oBACtC,OAAO;wBACH,MAAMC,mBAAmB,MAAMZ,eAAe,OAAO,CAAClC,OAAO2C;wBAC7DpC,UAAUuC,iBAAiB,KAAK;oBACpC;oBACA,OAAOxC,eAAeC,SAASK,kBAAkB,GAAG,CAACK;gBACzD;gBAEA,MAAM8B,aAAa,MAAMC,QAAQ,GAAG,CAACP,SAAS,IAAI,CAAC,CAACQ,UACzCA,QAAQ,MAAM,CAAC,CAACC,QAAQzC,OACpByC,OAAO,MAAM,CAACzC,OACtB,EAAE;gBAGT,OAAO4B,qBACF,GAAG,CAACc,CAAAA,IACMJ,WAAW,IAAI,CAACP,CAAAA,MAAOA,IAAI,OAAO,KAAKW,EAAE,OAAO,GAE1D,MAAM,CAACC;YAChB;YAEA,MAAMC,QAAQjB;YACd,MAAMQ,cAAc,MAAM9B,SAAS,OAAO,CAACuC,MAAM,OAAO;YACxD,MAAMrD,QAAQ4C,YAAY,KAAK;YAE/B,IAAIU;YACJ,IAAIzB,IAAI,IAAI,EAAE;gBACV,MAAM0B,uBAAuB,MAAMvB,kBAAkB,OAAO,CAAChC,OAAO;oBAChEqD,MAAM,OAAO;iBAChB;gBACDC,YAAYC,qBAAqB,KAAK;YAC1C,OAAO;gBACH,MAAMC,oBAAoB,MAAMtB,eAAe,OAAO,CAAClC,OAAO;oBAACqD,MAAM,OAAO;iBAAC;gBAC7EC,YAAYE,kBAAkB,KAAK;YACvC;YAEA,IAAI,CAACF,aAAaA,AAAqB,MAArBA,UAAU,MAAM,EAC9B,OAAO;YAEX,OAAO;gBACH,GAAGA,SAAS,CAAC,EAAE;gBACf,YAAY1C,kBAAkB,GAAG,CAACyC,MAAM,OAAO;YACnD;QACJ;IACJ;IAEO,eAAoD;QACvD,OAAO;YACH,UAAUhD;YACV,WAAW,CAAC;QAChB;IACJ;AACJ;AAEA,MAAMoD;IACK,gBAAgB,EAAExD,KAAK,EAA0C,EAAU;QAC9E,IAAIA,MAAM,IAAI,EACV,OAAO,GAAGA,MAAM,OAAO,CAAC,aAAa,CAAC;QAE1C,OAAO,GAAGA,MAAM,OAAO,CAAC,UAAU,CAAC;IACvC;IAEO,iBAAiB,EAAEA,KAAK,EAA0C,EAAU;QAC/E,OAAOyD,wBAAwBzD,OAAO;IAC1C;IAEO,kBAAkB,EAAEA,KAAK,EAA4C,EAAU;QAClF,OAAOE,kBAAkBF,MAAM,OAAO;IAC1C;IAEO,eAAoD;QACvD,OAAO;YACH,UAAwB,CAAC;;;;;;;;;;;;gBAYrB,EAAEI,yBAAyB;YAC/B,CAAC;YACD,WAAW;gBACP,UAAU;oBACN,SAAS,CAACoB;wBACN,MAAM,EAAEkC,EAAE,EAAE,GAAGC,gBAAgBnC,OAAO,OAAO,IAAIA,OAAO,EAAE;wBAC1D,OAAOkC;oBACX;oBACA,IAAI,CAAClC,SACMA,OAAO,EAAE,IAAIA,OAAO,OAAO;gBAE1C;YACJ;QACJ;IACJ;AACJ;AAEA,MAAMoC;IASK,aAA6C;QAChD,OAAO,IAAI,CAAC,IAAI;IACpB;IAEO,eAAiD;QACpD,OAAO,IAAI,CAAC,MAAM;IACtB;;aAdgB,IAAI,GAAG,IAAIzC;aACX,MAAM,GAAG,IAAIqC;aAEb,SAAS,GAAsB;aAC/B,YAAY,GAAY;aACxB,UAAU,GAAY;aACtB,oBAAoB,GAAY;;AASpD;AAEO,MAAMK,oBAAoBC,uBAAuB,oBAAoB,CAAC;IACzE,gBAAgBF;IAChB,cAAc,EAAE;AACpB"}
@@ -1,4 +1,4 @@
1
- import type { GraphQLFieldResolver } from "@webiny/handler-graphql/types.js";
1
+ import type { GraphQLFieldResolver } from "@webiny/api-graphql/types.js";
2
2
  import type { CmsModelField } from "../../../../../types/index.js";
3
3
  interface ResolverArgs {
4
4
  format?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"features/graphql/fields/base/richText/richTextResolver.js","sources":["../../../../../../src/features/graphql/fields/base/richText/richTextResolver.ts"],"sourcesContent":["import type { GraphQLFieldResolver } from \"@webiny/handler-graphql/types.js\";\nimport type { CmsModelField } from \"~/types/index.js\";\n\ninterface ResolverArgs {\n format?: string;\n}\n\ninterface RichTextContents {\n state: string;\n html: string;\n}\n\nexport const createRichTextResolver = (\n field: CmsModelField\n): GraphQLFieldResolver<any, ResolverArgs> => {\n return async (entry, args) => {\n const rawValue = entry[field.fieldId] as RichTextContents;\n const outputFormat = args.format;\n\n /* If `lexical` state is requested explicitly. */\n if (outputFormat === \"lexical\") {\n if (field.list) {\n return (rawValue as unknown as RichTextContents[]).map(value => value.state);\n }\n return rawValue?.state ?? null;\n }\n\n /* Otherwise return HTML. */\n if (field.list) {\n return (rawValue as unknown as RichTextContents[]).map(value => value?.html ?? null);\n }\n\n return rawValue?.html ?? null;\n };\n};\n"],"names":["createRichTextResolver","field","entry","args","rawValue","outputFormat","value"],"mappings":"AAYO,MAAMA,yBAAyB,CAClCC,QAEO,OAAOC,OAAOC;QACjB,MAAMC,WAAWF,KAAK,CAACD,MAAM,OAAO,CAAC;QACrC,MAAMI,eAAeF,KAAK,MAAM;QAGhC,IAAIE,AAAiB,cAAjBA,cAA4B;YAC5B,IAAIJ,MAAM,IAAI,EACV,OAAQG,SAA2C,GAAG,CAACE,CAAAA,QAASA,MAAM,KAAK;YAE/E,OAAOF,UAAU,SAAS;QAC9B;QAGA,IAAIH,MAAM,IAAI,EACV,OAAQG,SAA2C,GAAG,CAACE,CAAAA,QAASA,OAAO,QAAQ;QAGnF,OAAOF,UAAU,QAAQ;IAC7B"}
1
+ {"version":3,"file":"features/graphql/fields/base/richText/richTextResolver.js","sources":["../../../../../../src/features/graphql/fields/base/richText/richTextResolver.ts"],"sourcesContent":["import type { GraphQLFieldResolver } from \"@webiny/api-graphql/types.js\";\nimport type { CmsModelField } from \"~/types/index.js\";\n\ninterface ResolverArgs {\n format?: string;\n}\n\ninterface RichTextContents {\n state: string;\n html: string;\n}\n\nexport const createRichTextResolver = (\n field: CmsModelField\n): GraphQLFieldResolver<any, ResolverArgs> => {\n return async (entry, args) => {\n const rawValue = entry[field.fieldId] as RichTextContents;\n const outputFormat = args.format;\n\n /* If `lexical` state is requested explicitly. */\n if (outputFormat === \"lexical\") {\n if (field.list) {\n return (rawValue as unknown as RichTextContents[]).map(value => value.state);\n }\n return rawValue?.state ?? null;\n }\n\n /* Otherwise return HTML. */\n if (field.list) {\n return (rawValue as unknown as RichTextContents[]).map(value => value?.html ?? null);\n }\n\n return rawValue?.html ?? null;\n };\n};\n"],"names":["createRichTextResolver","field","entry","args","rawValue","outputFormat","value"],"mappings":"AAYO,MAAMA,yBAAyB,CAClCC,QAEO,OAAOC,OAAOC;QACjB,MAAMC,WAAWF,KAAK,CAACD,MAAM,OAAO,CAAC;QACrC,MAAMI,eAAeF,KAAK,MAAM;QAGhC,IAAIE,AAAiB,cAAjBA,cAA4B;YAC5B,IAAIJ,MAAM,IAAI,EACV,OAAQG,SAA2C,GAAG,CAACE,CAAAA,QAASA,MAAM,KAAK;YAE/E,OAAOF,UAAU,SAAS;QAC9B;QAGA,IAAIH,MAAM,IAAI,EACV,OAAQG,SAA2C,GAAG,CAACE,CAAAA,QAASA,OAAO,QAAQ;QAGnF,OAAOF,UAAU,QAAQ;IAC7B"}