@webiny/api-headless-cms 5.40.0-beta.2 → 5.40.0-beta.3

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 (548) hide show
  1. package/constants.d.ts +11 -1
  2. package/constants.js +15 -9
  3. package/constants.js.map +1 -1
  4. package/context.js +47 -31
  5. package/context.js.map +1 -1
  6. package/crud/AccessControl/AccessControl.d.ts +3 -3
  7. package/crud/AccessControl/AccessControl.js.map +1 -1
  8. package/crud/contentEntry/abstractions/IDeleteEntry.d.ts +4 -0
  9. package/crud/contentEntry/abstractions/IDeleteEntry.js +7 -0
  10. package/crud/contentEntry/abstractions/IDeleteEntry.js.map +1 -0
  11. package/crud/contentEntry/abstractions/IDeleteEntryOperation.d.ts +4 -0
  12. package/crud/contentEntry/abstractions/IDeleteEntryOperation.js +7 -0
  13. package/crud/contentEntry/abstractions/IDeleteEntryOperation.js.map +1 -0
  14. package/crud/contentEntry/abstractions/IGetEntriesByIds.d.ts +4 -0
  15. package/crud/contentEntry/abstractions/IGetEntriesByIds.js +7 -0
  16. package/crud/contentEntry/abstractions/IGetEntriesByIds.js.map +1 -0
  17. package/crud/contentEntry/abstractions/IGetEntry.d.ts +4 -0
  18. package/crud/contentEntry/abstractions/IGetEntry.js +7 -0
  19. package/crud/contentEntry/abstractions/IGetEntry.js.map +1 -0
  20. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.d.ts +4 -0
  21. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js +7 -0
  22. package/crud/contentEntry/abstractions/IGetLatestEntriesByIds.js.map +1 -0
  23. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.d.ts +4 -0
  24. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js +7 -0
  25. package/crud/contentEntry/abstractions/IGetLatestRevisionByEntryId.js.map +1 -0
  26. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.d.ts +4 -0
  27. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js +7 -0
  28. package/crud/contentEntry/abstractions/IGetPreviousRevisionByEntryId.js.map +1 -0
  29. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.d.ts +4 -0
  30. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js +7 -0
  31. package/crud/contentEntry/abstractions/IGetPublishedEntriesByIds.js.map +1 -0
  32. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.d.ts +4 -0
  33. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js +7 -0
  34. package/crud/contentEntry/abstractions/IGetPublishedRevisionByEntryId.js.map +1 -0
  35. package/crud/contentEntry/abstractions/IGetRevisionById.d.ts +4 -0
  36. package/crud/contentEntry/abstractions/IGetRevisionById.js +7 -0
  37. package/crud/contentEntry/abstractions/IGetRevisionById.js.map +1 -0
  38. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.d.ts +4 -0
  39. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js +7 -0
  40. package/crud/contentEntry/abstractions/IGetRevisionsByEntryId.js.map +1 -0
  41. package/crud/contentEntry/abstractions/IListEntries.d.ts +4 -0
  42. package/crud/contentEntry/abstractions/IListEntries.js +7 -0
  43. package/crud/contentEntry/abstractions/IListEntries.js.map +1 -0
  44. package/crud/contentEntry/abstractions/IListEntriesOperation.d.ts +4 -0
  45. package/crud/contentEntry/abstractions/IListEntriesOperation.js +7 -0
  46. package/crud/contentEntry/abstractions/IListEntriesOperation.js.map +1 -0
  47. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.d.ts +4 -0
  48. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js +7 -0
  49. package/crud/contentEntry/abstractions/IMoveEntryToBinOperation.js.map +1 -0
  50. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.d.ts +4 -0
  51. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js +7 -0
  52. package/crud/contentEntry/abstractions/IRestoreEntryFromBin.js.map +1 -0
  53. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.d.ts +4 -0
  54. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js +7 -0
  55. package/crud/contentEntry/abstractions/IRestoreEntryFromBinOperation.js.map +1 -0
  56. package/crud/contentEntry/abstractions/index.d.ts +16 -0
  57. package/crud/contentEntry/abstractions/index.js +183 -0
  58. package/crud/contentEntry/abstractions/index.js.map +1 -0
  59. package/crud/contentEntry/afterDelete.js.map +1 -1
  60. package/crud/contentEntry/beforeCreate.js.map +1 -1
  61. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  62. package/crud/contentEntry/entryDataFactories/createEntryData.js +9 -1
  63. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -1
  64. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -1
  65. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -1
  66. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -1
  67. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -1
  68. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +8 -0
  69. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -1
  70. package/crud/contentEntry/entryDataFactories/index.js.map +1 -1
  71. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -1
  72. package/crud/contentEntry/entryDataFactories/statuses.js +3 -6
  73. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -1
  74. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  75. package/crud/contentEntry/markLockedFields.js.map +1 -1
  76. package/crud/contentEntry/referenceFieldsMapping.js +1 -1
  77. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  78. package/crud/contentEntry/searchableFields.js.map +1 -1
  79. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.d.ts +10 -0
  80. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js +58 -0
  81. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntry.js.map +1 -0
  82. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.d.ts +7 -0
  83. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js +17 -0
  84. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperation.js.map +1 -0
  85. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.d.ts +9 -0
  86. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js +45 -0
  87. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntryOperationWithEvents.js.map +1 -0
  88. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.d.ts +9 -0
  89. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js +22 -0
  90. package/crud/contentEntry/useCases/DeleteEntry/DeleteEntrySecure.js.map +1 -0
  91. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.d.ts +10 -0
  92. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js +33 -0
  93. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBin.js.map +1 -0
  94. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.d.ts +7 -0
  95. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js +17 -0
  96. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperation.js.map +1 -0
  97. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.d.ts +9 -0
  98. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js +45 -0
  99. package/crud/contentEntry/useCases/DeleteEntry/MoveEntryToBinOperationWithEvents.js.map +1 -0
  100. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.d.ts +6 -0
  101. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js +21 -0
  102. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryDelete.js.map +1 -0
  103. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.d.ts +9 -0
  104. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js +62 -0
  105. package/crud/contentEntry/useCases/DeleteEntry/TransformEntryMoveToBin.js.map +1 -0
  106. package/crud/contentEntry/useCases/DeleteEntry/index.d.ts +28 -0
  107. package/crud/contentEntry/useCases/DeleteEntry/index.js +42 -0
  108. package/crud/contentEntry/useCases/DeleteEntry/index.js.map +1 -0
  109. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.d.ts +7 -0
  110. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js +17 -0
  111. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIds.js.map +1 -0
  112. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.d.ts +7 -0
  113. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js +18 -0
  114. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsNotDeleted.js.map +1 -0
  115. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.d.ts +9 -0
  116. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js +28 -0
  117. package/crud/contentEntry/useCases/GetEntriesByIds/GetEntriesByIdsSecure.js.map +1 -0
  118. package/crud/contentEntry/useCases/GetEntriesByIds/index.d.ts +11 -0
  119. package/crud/contentEntry/useCases/GetEntriesByIds/index.js +20 -0
  120. package/crud/contentEntry/useCases/GetEntriesByIds/index.js.map +1 -0
  121. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.d.ts +7 -0
  122. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js +17 -0
  123. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIds.js.map +1 -0
  124. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.d.ts +7 -0
  125. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js +18 -0
  126. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsNotDeleted.js.map +1 -0
  127. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.d.ts +9 -0
  128. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js +28 -0
  129. package/crud/contentEntry/useCases/GetLatestEntriesByIds/GetLatestEntriesByIdsSecure.js.map +1 -0
  130. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.d.ts +11 -0
  131. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js +20 -0
  132. package/crud/contentEntry/useCases/GetLatestEntriesByIds/index.js.map +1 -0
  133. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.d.ts +7 -0
  134. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js +17 -0
  135. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryId.js.map +1 -0
  136. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.d.ts +7 -0
  137. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js +21 -0
  138. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdDeleted.js.map +1 -0
  139. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.d.ts +7 -0
  140. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js +21 -0
  141. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/GetLatestRevisionByEntryIdNotDeleted.js.map +1 -0
  142. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.d.ts +13 -0
  143. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js +22 -0
  144. package/crud/contentEntry/useCases/GetLatestRevisionByEntryId/index.js.map +1 -0
  145. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.d.ts +7 -0
  146. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js +17 -0
  147. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryId.js.map +1 -0
  148. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.d.ts +7 -0
  149. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js +21 -0
  150. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/GetPreviousRevisionByEntryIdNotDeleted.js.map +1 -0
  151. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.d.ts +9 -0
  152. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js +18 -0
  153. package/crud/contentEntry/useCases/GetPreviousRevisionByEntryId/index.js.map +1 -0
  154. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.d.ts +7 -0
  155. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js +17 -0
  156. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIds.js.map +1 -0
  157. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.d.ts +7 -0
  158. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js +18 -0
  159. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsNotDeleted.js.map +1 -0
  160. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.d.ts +9 -0
  161. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js +28 -0
  162. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/GetPublishedEntriesByIdsSecure.js.map +1 -0
  163. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.d.ts +11 -0
  164. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js +20 -0
  165. package/crud/contentEntry/useCases/GetPublishedEntriesByIds/index.js.map +1 -0
  166. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.d.ts +7 -0
  167. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js +17 -0
  168. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryId.js.map +1 -0
  169. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.d.ts +7 -0
  170. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js +21 -0
  171. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/GetPublishedRevisionByEntryIdNotDeleted.js.map +1 -0
  172. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.d.ts +9 -0
  173. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js +18 -0
  174. package/crud/contentEntry/useCases/GetPublishedRevisionByEntryId/index.js.map +1 -0
  175. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.d.ts +7 -0
  176. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js +17 -0
  177. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionById.js.map +1 -0
  178. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.d.ts +7 -0
  179. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js +21 -0
  180. package/crud/contentEntry/useCases/GetRevisionById/GetRevisionByIdNotDeleted.js.map +1 -0
  181. package/crud/contentEntry/useCases/GetRevisionById/index.d.ts +9 -0
  182. package/crud/contentEntry/useCases/GetRevisionById/index.js +18 -0
  183. package/crud/contentEntry/useCases/GetRevisionById/index.js.map +1 -0
  184. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.d.ts +7 -0
  185. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js +17 -0
  186. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryId.js.map +1 -0
  187. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.d.ts +7 -0
  188. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js +18 -0
  189. package/crud/contentEntry/useCases/GetRevisionsByEntryId/GetRevisionsByEntryIdNotDeleted.js.map +1 -0
  190. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.d.ts +11 -0
  191. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js +18 -0
  192. package/crud/contentEntry/useCases/GetRevisionsByEntryId/index.js.map +1 -0
  193. package/crud/contentEntry/useCases/ListEntries/GetEntry.d.ts +7 -0
  194. package/crud/contentEntry/useCases/ListEntries/GetEntry.js +29 -0
  195. package/crud/contentEntry/useCases/ListEntries/GetEntry.js.map +1 -0
  196. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.d.ts +11 -0
  197. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js +38 -0
  198. package/crud/contentEntry/useCases/ListEntries/GetEntrySecure.js.map +1 -0
  199. package/crud/contentEntry/useCases/ListEntries/ListEntries.d.ts +7 -0
  200. package/crud/contentEntry/useCases/ListEntries/ListEntries.js +62 -0
  201. package/crud/contentEntry/useCases/ListEntries/ListEntries.js.map +1 -0
  202. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.d.ts +7 -0
  203. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js +17 -0
  204. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperation.js.map +1 -0
  205. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.d.ts +7 -0
  206. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js +24 -0
  207. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationDeleted.js.map +1 -0
  208. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.d.ts +7 -0
  209. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js +25 -0
  210. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationLatest.js.map +1 -0
  211. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.d.ts +7 -0
  212. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js +24 -0
  213. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationNotDeleted.js.map +1 -0
  214. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.d.ts +7 -0
  215. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js +24 -0
  216. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationPublished.js.map +1 -0
  217. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.d.ts +9 -0
  218. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js +22 -0
  219. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithEvents.js.map +1 -0
  220. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.d.ts +8 -0
  221. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js +27 -0
  222. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSearchableFields.js.map +1 -0
  223. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.d.ts +8 -0
  224. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js +26 -0
  225. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithSort.js.map +1 -0
  226. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.d.ts +7 -0
  227. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js +36 -0
  228. package/crud/contentEntry/useCases/ListEntries/ListEntriesOperationWithStatusCheck.js.map +1 -0
  229. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.d.ts +11 -0
  230. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js +41 -0
  231. package/crud/contentEntry/useCases/ListEntries/ListEntriesSecure.js.map +1 -0
  232. package/crud/contentEntry/useCases/ListEntries/index.d.ts +24 -0
  233. package/crud/contentEntry/useCases/ListEntries/index.js +61 -0
  234. package/crud/contentEntry/useCases/ListEntries/index.js.map +1 -0
  235. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.d.ts +10 -0
  236. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js +37 -0
  237. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBin.js.map +1 -0
  238. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.d.ts +7 -0
  239. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js +17 -0
  240. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperation.js.map +1 -0
  241. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.d.ts +9 -0
  242. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js +42 -0
  243. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinOperationWithEvents.js.map +1 -0
  244. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.d.ts +9 -0
  245. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js +22 -0
  246. package/crud/contentEntry/useCases/RestoreEntryFromBin/RestoreEntryFromBinSecure.js.map +1 -0
  247. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.d.ts +9 -0
  248. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js +61 -0
  249. package/crud/contentEntry/useCases/RestoreEntryFromBin/TransformEntryRestoreFromBin.js.map +1 -0
  250. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.d.ts +23 -0
  251. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js +24 -0
  252. package/crud/contentEntry/useCases/RestoreEntryFromBin/index.js.map +1 -0
  253. package/crud/contentEntry/useCases/index.d.ts +11 -0
  254. package/crud/contentEntry/useCases/index.js +128 -0
  255. package/crud/contentEntry/useCases/index.js.map +1 -0
  256. package/crud/contentEntry.crud.js +210 -269
  257. package/crud/contentEntry.crud.js.map +1 -1
  258. package/crud/contentModel/beforeCreate.js.map +1 -1
  259. package/crud/contentModel/beforeDelete.js.map +1 -1
  260. package/crud/contentModel/beforeUpdate.js.map +1 -1
  261. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  262. package/crud/contentModel/contentModelManagerFactory.d.ts +1 -1
  263. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  264. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  265. package/crud/contentModel/defaultFields.js.map +1 -1
  266. package/crud/contentModel/ensureTypeTag.js.map +1 -1
  267. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  268. package/crud/contentModel/fields/imageField.js.map +1 -1
  269. package/crud/contentModel/fields/titleField.js.map +1 -1
  270. package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
  271. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  272. package/crud/contentModel/validate/isModelEndingAllowed.js +1 -2
  273. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  274. package/crud/contentModel/validate/modelId.js.map +1 -1
  275. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  276. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  277. package/crud/contentModel/validateModel.js.map +1 -1
  278. package/crud/contentModel/validateModelFields.d.ts +1 -1
  279. package/crud/contentModel/validateModelFields.js.map +1 -1
  280. package/crud/contentModel/validateStorageId.d.ts +1 -0
  281. package/crud/contentModel/validateStorageId.js +29 -0
  282. package/crud/contentModel/validateStorageId.js.map +1 -0
  283. package/crud/contentModel/validation.d.ts +51 -30
  284. package/crud/contentModel/validation.js +3 -2
  285. package/crud/contentModel/validation.js.map +1 -1
  286. package/crud/contentModel.crud.js +6 -0
  287. package/crud/contentModel.crud.js.map +1 -1
  288. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  289. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  290. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  291. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -1
  292. package/crud/contentModelGroup/validation.js.map +1 -1
  293. package/crud/contentModelGroup.crud.js.map +1 -1
  294. package/crud/system.crud.js.map +1 -1
  295. package/export/crud/exporting.js.map +1 -1
  296. package/export/crud/importing.js.map +1 -1
  297. package/export/crud/imports/importData.js.map +1 -1
  298. package/export/crud/imports/importGroups.js.map +1 -1
  299. package/export/crud/imports/importModels.js.map +1 -1
  300. package/export/crud/imports/validateGroups.js.map +1 -1
  301. package/export/crud/imports/validateInput.js.map +1 -1
  302. package/export/crud/imports/validateModels.js.map +1 -1
  303. package/export/crud/index.js.map +1 -1
  304. package/export/crud/sanitize.js.map +1 -1
  305. package/export/graphql/index.js +1 -1
  306. package/export/graphql/index.js.map +1 -1
  307. package/export/index.js.map +1 -1
  308. package/export/types.js +1 -2
  309. package/export/types.js.map +1 -1
  310. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  311. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +4 -14
  312. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  313. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  314. package/fieldConverters/index.js.map +1 -1
  315. package/graphql/buildSchemaPlugins.d.ts +2 -2
  316. package/graphql/buildSchemaPlugins.js.map +1 -1
  317. package/graphql/checkEndpointAccess.js.map +1 -1
  318. package/graphql/createExecutableSchema.d.ts +2 -2
  319. package/graphql/createExecutableSchema.js.map +1 -1
  320. package/graphql/createRequestBody.js.map +1 -1
  321. package/graphql/formatErrorPayload.js.map +1 -1
  322. package/graphql/generateSchema.js.map +1 -1
  323. package/graphql/getSchema.js.map +1 -1
  324. package/graphql/graphQLHandlerFactory.js.map +1 -1
  325. package/graphql/handleRequest.js.map +1 -1
  326. package/graphql/index.js.map +1 -1
  327. package/graphql/schema/baseContentSchema.d.ts +2 -2
  328. package/graphql/schema/baseContentSchema.js +1 -7
  329. package/graphql/schema/baseContentSchema.js.map +1 -1
  330. package/graphql/schema/baseSchema.js +12 -5
  331. package/graphql/schema/baseSchema.js.map +1 -1
  332. package/graphql/schema/contentEntries.d.ts +2 -2
  333. package/graphql/schema/contentEntries.js +2 -2
  334. package/graphql/schema/contentEntries.js.map +1 -1
  335. package/graphql/schema/contentModelGroups.d.ts +2 -2
  336. package/graphql/schema/contentModelGroups.js +1 -1
  337. package/graphql/schema/contentModelGroups.js.map +1 -1
  338. package/graphql/schema/contentModels.d.ts +2 -2
  339. package/graphql/schema/contentModels.js +3 -1
  340. package/graphql/schema/contentModels.js.map +1 -1
  341. package/graphql/schema/createFieldResolvers.js.map +1 -1
  342. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  343. package/graphql/schema/createManageResolvers.js +8 -0
  344. package/graphql/schema/createManageResolvers.js.map +1 -1
  345. package/graphql/schema/createManageSDL.js +10 -0
  346. package/graphql/schema/createManageSDL.js.map +1 -1
  347. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  348. package/graphql/schema/createReadResolvers.js.map +1 -1
  349. package/graphql/schema/createReadSDL.js.map +1 -1
  350. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  351. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  352. package/graphql/schema/resolvers/manage/resolveDelete.js +2 -1
  353. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  354. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  355. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  356. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  357. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  358. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  359. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  360. package/graphql/schema/resolvers/manage/resolveListDeleted.d.ts +4 -0
  361. package/graphql/schema/resolvers/manage/resolveListDeleted.js +20 -0
  362. package/graphql/schema/resolvers/manage/resolveListDeleted.js.map +1 -0
  363. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  364. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  365. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  366. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.d.ts +7 -0
  367. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js +20 -0
  368. package/graphql/schema/resolvers/manage/resolveRestoreFromBin.js.map +1 -0
  369. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  370. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  371. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -1
  372. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  373. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  374. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  375. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  376. package/graphql/schema/schemaPlugins.d.ts +2 -2
  377. package/graphql/schema/schemaPlugins.js +2 -2
  378. package/graphql/schema/schemaPlugins.js.map +1 -1
  379. package/graphql/system.js.map +1 -1
  380. package/graphqlFields/boolean.js.map +1 -1
  381. package/graphqlFields/datetime.js.map +1 -1
  382. package/graphqlFields/dynamicZone/dynamicZoneField.js +27 -1
  383. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  384. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  385. package/graphqlFields/dynamicZone/index.js.map +1 -1
  386. package/graphqlFields/file.js.map +1 -1
  387. package/graphqlFields/helpers.js.map +1 -1
  388. package/graphqlFields/index.js.map +1 -1
  389. package/graphqlFields/json.js.map +1 -1
  390. package/graphqlFields/longText.js.map +1 -1
  391. package/graphqlFields/number.js.map +1 -1
  392. package/graphqlFields/object.d.ts +2 -2
  393. package/graphqlFields/object.js +14 -0
  394. package/graphqlFields/object.js.map +1 -1
  395. package/graphqlFields/ref.js.map +1 -1
  396. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -1
  397. package/graphqlFields/richText/richTextResolver.js.map +1 -1
  398. package/graphqlFields/richText.js.map +1 -1
  399. package/graphqlFields/text.js.map +1 -1
  400. package/htmlRenderer/LexicalRenderer.js.map +1 -1
  401. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -1
  402. package/index.js.map +1 -1
  403. package/modelManager/DefaultCmsModelManager.d.ts +1 -0
  404. package/modelManager/DefaultCmsModelManager.js +3 -0
  405. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  406. package/modelManager/index.js +1 -1
  407. package/modelManager/index.js.map +1 -1
  408. package/package.json +27 -27
  409. package/parameters/context.js.map +1 -1
  410. package/parameters/header.js.map +1 -1
  411. package/parameters/index.js.map +1 -1
  412. package/parameters/manual.js.map +1 -1
  413. package/parameters/path.js.map +1 -1
  414. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.d.ts +8 -0
  415. package/plugins/{CmsGraphQLSchemaPlugin.js → CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js} +5 -1
  416. package/plugins/CmsGraphQLSchemaPlugin/CmsGraphQLSchemaPlugin.js.map +1 -0
  417. package/plugins/CmsGraphQLSchemaPlugin/index.d.ts +1 -0
  418. package/plugins/CmsGraphQLSchemaPlugin/index.js +18 -0
  419. package/plugins/CmsGraphQLSchemaPlugin/index.js.map +1 -0
  420. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  421. package/plugins/CmsGroupPlugin.d.ts +4 -0
  422. package/plugins/CmsGroupPlugin.js +9 -1
  423. package/plugins/CmsGroupPlugin.js.map +1 -1
  424. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  425. package/plugins/CmsModelPlugin.d.ts +10 -8
  426. package/plugins/CmsModelPlugin.js +29 -16
  427. package/plugins/CmsModelPlugin.js.map +1 -1
  428. package/plugins/CmsParametersPlugin.js.map +1 -1
  429. package/plugins/CmsRichTextRendererPlugin.js.map +1 -1
  430. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  431. package/plugins/StorageTransformPlugin.js.map +1 -1
  432. package/plugins/index.js.map +1 -1
  433. package/storage/default.js.map +1 -1
  434. package/storage/index.js.map +1 -1
  435. package/storage/json.js.map +1 -1
  436. package/storage/object.js.map +1 -1
  437. package/types/context.d.ts +146 -0
  438. package/types/context.js +7 -0
  439. package/types/context.js.map +1 -0
  440. package/types/fields/dynamicZoneField.d.ts +23 -0
  441. package/types/fields/dynamicZoneField.js +7 -0
  442. package/types/fields/dynamicZoneField.js.map +1 -0
  443. package/types/fields/objectField.d.ts +13 -0
  444. package/types/fields/objectField.js +7 -0
  445. package/types/fields/objectField.js.map +1 -0
  446. package/types/identity.d.ts +19 -0
  447. package/types/identity.js +7 -0
  448. package/types/identity.js.map +1 -0
  449. package/types/index.d.ts +10 -0
  450. package/types/index.js +117 -0
  451. package/types/index.js.map +1 -0
  452. package/types/model.d.ts +199 -0
  453. package/types/model.js +7 -0
  454. package/types/model.js.map +1 -0
  455. package/types/modelAst.d.ts +39 -0
  456. package/types/modelAst.js +7 -0
  457. package/types/modelAst.js.map +1 -0
  458. package/types/modelField.d.ts +320 -0
  459. package/types/modelField.js +7 -0
  460. package/types/modelField.js.map +1 -0
  461. package/types/modelGroup.d.ts +77 -0
  462. package/types/modelGroup.js +7 -0
  463. package/types/modelGroup.js.map +1 -0
  464. package/types/plugins.d.ts +364 -0
  465. package/types/plugins.js +7 -0
  466. package/types/plugins.js.map +1 -0
  467. package/{types.d.ts → types/types.d.ts} +196 -1171
  468. package/{types.js → types/types.js} +18 -119
  469. package/types/types.js.map +1 -0
  470. package/utils/caching/Cache.js.map +1 -1
  471. package/utils/caching/CacheKey.js.map +1 -1
  472. package/utils/caching/index.js.map +1 -1
  473. package/utils/caching/types.js.map +1 -1
  474. package/utils/contentEntryTraverser/ContentEntryTraverser.d.ts +10 -0
  475. package/utils/contentEntryTraverser/ContentEntryTraverser.js +84 -0
  476. package/utils/contentEntryTraverser/ContentEntryTraverser.js.map +1 -0
  477. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.d.ts +6 -0
  478. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js +23 -0
  479. package/utils/contentModelAst/CmsModelFieldToAstConverterFromPlugins.js.map +1 -0
  480. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.d.ts +7 -0
  481. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js +22 -0
  482. package/utils/contentModelAst/CmsModelFieldToAstFromPlugin.js.map +1 -0
  483. package/utils/contentModelAst/CmsModelToAstConverter.d.ts +11 -0
  484. package/utils/contentModelAst/CmsModelToAstConverter.js +28 -0
  485. package/utils/contentModelAst/CmsModelToAstConverter.js.map +1 -0
  486. package/utils/contentModelAst/index.d.ts +3 -0
  487. package/utils/contentModelAst/index.js +40 -0
  488. package/utils/contentModelAst/index.js.map +1 -0
  489. package/utils/converters/Converter.js.map +1 -1
  490. package/utils/converters/ConverterCollection.js.map +1 -1
  491. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  492. package/utils/createModelField.d.ts +2 -0
  493. package/utils/createModelField.js +14 -4
  494. package/utils/createModelField.js.map +1 -1
  495. package/utils/createTypeFromFields.js.map +1 -1
  496. package/utils/createTypeName.js.map +1 -1
  497. package/utils/date.js.map +1 -1
  498. package/utils/entryStorage.js.map +1 -1
  499. package/utils/filterAsync.js.map +1 -1
  500. package/utils/getBaseFieldType.js.map +1 -1
  501. package/utils/getEntryDescription.js.map +1 -1
  502. package/utils/getEntryImage.js.map +1 -1
  503. package/utils/getEntryTitle.js.map +1 -1
  504. package/utils/getSchemaFromFieldPlugins.d.ts +4 -4
  505. package/utils/getSchemaFromFieldPlugins.js +2 -2
  506. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  507. package/utils/identity.js.map +1 -1
  508. package/utils/incrementEntryIdVersion.js.map +1 -1
  509. package/utils/index.js.map +1 -1
  510. package/utils/isHeadlessCmsReady.js.map +1 -1
  511. package/utils/renderFields.js.map +1 -1
  512. package/utils/renderGetFilterFields.js.map +1 -1
  513. package/utils/renderInputFields.js.map +1 -1
  514. package/utils/renderListFilterFields.js.map +1 -1
  515. package/utils/renderSortEnum.js.map +1 -1
  516. package/utils/toSlug.js.map +1 -1
  517. package/validators/dateGte.js.map +1 -1
  518. package/validators/dateLte.js.map +1 -1
  519. package/validators/gte.js.map +1 -1
  520. package/validators/in.js.map +1 -1
  521. package/validators/index.js.map +1 -1
  522. package/validators/lte.js.map +1 -1
  523. package/validators/maxLength.js.map +1 -1
  524. package/validators/minLength.js.map +1 -1
  525. package/validators/pattern.js.map +1 -1
  526. package/validators/patternPlugins/email.js.map +1 -1
  527. package/validators/patternPlugins/index.js.map +1 -1
  528. package/validators/patternPlugins/lowerCase.js.map +1 -1
  529. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  530. package/validators/patternPlugins/upperCase.js.map +1 -1
  531. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  532. package/validators/patternPlugins/url.js.map +1 -1
  533. package/validators/required.js.map +1 -1
  534. package/validators/timeGte.js.map +1 -1
  535. package/validators/timeLte.js.map +1 -1
  536. package/validators/unique.js.map +1 -1
  537. package/plugins/CmsGraphQLSchemaPlugin.d.ts +0 -5
  538. package/plugins/CmsGraphQLSchemaPlugin.js.map +0 -1
  539. package/types.js.map +0 -1
  540. package/utils/permissions/EntriesPermissions.d.ts +0 -4
  541. package/utils/permissions/EntriesPermissions.js +0 -11
  542. package/utils/permissions/EntriesPermissions.js.map +0 -1
  543. package/utils/permissions/ModelGroupsPermissions.d.ts +0 -9
  544. package/utils/permissions/ModelGroupsPermissions.js +0 -50
  545. package/utils/permissions/ModelGroupsPermissions.js.map +0 -1
  546. package/utils/permissions/ModelsPermissions.d.ts +0 -22
  547. package/utils/permissions/ModelsPermissions.js +0 -90
  548. package/utils/permissions/ModelsPermissions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_CmsModelFieldConverterPlugin","require","CmsModelObjectFieldConverterPlugin","CmsModelFieldConverterPlugin","name","getFieldType","getChildFields","field","settings","fields","convertToStorage","params","value","converterCollection","childFields","length","multipleValues","Array","isArray","storageId","map","itemValue","processChildFieldsToStorage","child","parent","values","undefined","reduce","output","fieldId","childValue","convertFromStorage","processChildFieldsFromStorage","inputValues","exports"],"sources":["CmsModelObjectFieldConverterPlugin.ts"],"sourcesContent":["import {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface ProcessChildFieldsParams {\n fields: CmsModelFieldWithParent[];\n value?: Record<string, any> | null;\n converterCollection: ConverterCollection;\n}\n\ninterface GetChildFieldsParams {\n field?: CmsModelFieldWithParent | null;\n}\n\nexport class CmsModelObjectFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.object\";\n\n public override getFieldType(): string {\n return \"object\";\n }\n\n private getChildFields({ field }: GetChildFieldsParams): CmsModelFieldWithParent[] {\n return field?.settings?.fields || [];\n }\n\n public override convertToStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.storageId]: []\n };\n }\n return {\n [field.storageId]: value.map((itemValue: any) => {\n return this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.storageId]: values\n };\n }\n\n private processChildFieldsToStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n if (Array.isArray(value[field.fieldId]) === false) {\n return output;\n }\n const values = value[field.fieldId].map((childValue: any) => {\n return converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.fieldId]) {\n return output;\n }\n const values = converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.fieldId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n\n if (value[field.fieldId] === undefined) {\n return output;\n }\n\n return {\n ...output,\n [field.storageId]: value[field.fieldId]\n };\n }, {});\n }\n\n public override convertFromStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.fieldId]: []\n };\n }\n return {\n [field.fieldId]: value.map((itemValue: any) => {\n return this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.fieldId]: values\n };\n }\n\n private processChildFieldsFromStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n const inputValues = value[field.storageId] as unknown as Record<string, any>[];\n if (!inputValues || Array.isArray(inputValues) === false) {\n return output;\n }\n const values = inputValues.map(childValue => {\n return converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.storageId]) {\n return output;\n }\n const values = converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.storageId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n\n if (value[field.storageId] === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: value[field.storageId]\n };\n }, {});\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_CmsModelFieldConverterPlugin","require","CmsModelObjectFieldConverterPlugin","CmsModelFieldConverterPlugin","name","getFieldType","getChildFields","field","settings","fields","convertToStorage","params","value","converterCollection","childFields","length","multipleValues","Array","isArray","storageId","map","itemValue","processChildFieldsToStorage","child","parent","values","undefined","reduce","output","fieldId","childValue","convertFromStorage","processChildFieldsFromStorage","inputValues","exports"],"sources":["CmsModelObjectFieldConverterPlugin.ts"],"sourcesContent":["import {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface ProcessChildFieldsParams {\n fields: CmsModelFieldWithParent[];\n value?: Record<string, any> | null;\n converterCollection: ConverterCollection;\n}\n\ninterface GetChildFieldsParams {\n field?: CmsModelFieldWithParent | null;\n}\n\nexport class CmsModelObjectFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.object\";\n\n public override getFieldType(): string {\n return \"object\";\n }\n\n private getChildFields({ field }: GetChildFieldsParams): CmsModelFieldWithParent[] {\n return field?.settings?.fields || [];\n }\n\n public override convertToStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.storageId]: []\n };\n }\n return {\n [field.storageId]: value.map((itemValue: any) => {\n return this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.storageId]: values\n };\n }\n\n private processChildFieldsToStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n if (Array.isArray(value[field.fieldId]) === false) {\n return output;\n }\n const values = value[field.fieldId].map((childValue: any) => {\n return converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.fieldId]) {\n return output;\n }\n const values = converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.fieldId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n\n if (value[field.fieldId] === undefined) {\n return output;\n }\n\n return {\n ...output,\n [field.storageId]: value[field.fieldId]\n };\n }, {});\n }\n\n public override convertFromStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.fieldId]: []\n };\n }\n return {\n [field.fieldId]: value.map((itemValue: any) => {\n return this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.fieldId]: values\n };\n }\n\n private processChildFieldsFromStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n const inputValues = value[field.storageId] as unknown as Record<string, any>[];\n if (!inputValues || Array.isArray(inputValues) === false) {\n return output;\n }\n const values = inputValues.map(childValue => {\n return converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.storageId]) {\n return output;\n }\n const values = converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.storageId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n\n if (value[field.storageId] === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: value[field.storageId]\n };\n }, {});\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_CmsModelObjectFieldConverterPlugin","require","_CmsModelDefaultFieldConverterPlugin","_CmsModelDynamicZoneFieldConverterPlugin","createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDynamicZoneFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\nimport { CmsModelDynamicZoneFieldConverterPlugin } from \"~/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [\n new CmsModelObjectFieldConverterPlugin(),\n new CmsModelDynamicZoneFieldConverterPlugin(),\n new CmsModelDefaultFieldConverterPlugin()\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mCAAA,GAAAC,OAAA;AACA,IAAAC,oCAAA,GAAAD,OAAA;AACA,IAAAE,wCAAA,GAAAF,OAAA;AAEO,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,CACH,IAAIC,sEAAkC,CAAC,CAAC,EACxC,IAAIC,gFAAuC,CAAC,CAAC,EAC7C,IAAIC,wEAAmC,CAAC,CAAC,CAC5C;AACL,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA"}
1
+ {"version":3,"names":["_CmsModelObjectFieldConverterPlugin","require","_CmsModelDefaultFieldConverterPlugin","_CmsModelDynamicZoneFieldConverterPlugin","createFieldConverters","CmsModelObjectFieldConverterPlugin","CmsModelDynamicZoneFieldConverterPlugin","CmsModelDefaultFieldConverterPlugin","exports"],"sources":["index.ts"],"sourcesContent":["import { CmsModelObjectFieldConverterPlugin } from \"~/fieldConverters/CmsModelObjectFieldConverterPlugin\";\nimport { CmsModelDefaultFieldConverterPlugin } from \"~/fieldConverters/CmsModelDefaultFieldConverterPlugin\";\nimport { CmsModelDynamicZoneFieldConverterPlugin } from \"~/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin\";\n\nexport const createFieldConverters = () => {\n return [\n new CmsModelObjectFieldConverterPlugin(),\n new CmsModelDynamicZoneFieldConverterPlugin(),\n new CmsModelDefaultFieldConverterPlugin()\n ];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mCAAA,GAAAC,OAAA;AACA,IAAAC,oCAAA,GAAAD,OAAA;AACA,IAAAE,wCAAA,GAAAF,OAAA;AAEO,MAAMG,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,CACH,IAAIC,sEAAkC,CAAC,CAAC,EACxC,IAAIC,gFAAuC,CAAC,CAAC,EAC7C,IAAIC,wEAAmC,CAAC,CAAC,CAC5C;AACL,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { CmsContext, CmsModel } from "../types";
2
- import { CmsGraphQLSchemaPlugin } from "../plugins";
2
+ import { ICmsGraphQLSchemaPlugin } from "../plugins";
3
3
  /**
4
4
  * This factory is called whenever we need to generate graphql-schema plugins using the current context.
5
5
  */
@@ -7,5 +7,5 @@ interface BuildSchemaPluginsParams {
7
7
  context: CmsContext;
8
8
  models: CmsModel[];
9
9
  }
10
- export declare const buildSchemaPlugins: (params: BuildSchemaPluginsParams) => Promise<CmsGraphQLSchemaPlugin[]>;
10
+ export declare const buildSchemaPlugins: (params: BuildSchemaPluginsParams) => Promise<ICmsGraphQLSchemaPlugin[]>;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["_contentModels","require","_contentEntries","_contentModelGroups","_baseContentSchema","_schemaPlugins","buildSchemaPlugins","params","createBaseContentSchema","createModelsSchema","createContentEntriesSchema","createGroupsSchema","generateSchemaPlugins","filter","Boolean","exports"],"sources":["buildSchemaPlugins.ts"],"sourcesContent":["import { CmsContext, CmsModel } from \"~/types\";\nimport { createModelsSchema } from \"./schema/contentModels\";\nimport { createContentEntriesSchema } from \"./schema/contentEntries\";\nimport { createGroupsSchema } from \"./schema/contentModelGroups\";\nimport { createBaseContentSchema } from \"./schema/baseContentSchema\";\nimport { generateSchemaPlugins } from \"./schema/schemaPlugins\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\n/**\n * This factory is called whenever we need to generate graphql-schema plugins using the current context.\n */\ninterface BuildSchemaPluginsParams {\n context: CmsContext;\n models: CmsModel[];\n}\nexport const buildSchemaPlugins = async (\n params: BuildSchemaPluginsParams\n): Promise<CmsGraphQLSchemaPlugin[]> => {\n return [\n // Base GQL types and scalars\n createBaseContentSchema(params),\n createModelsSchema(params),\n createContentEntriesSchema(params),\n createGroupsSchema(params),\n // Dynamic schema\n ...(await generateSchemaPlugins(params))\n ].filter(Boolean);\n};\n"],"mappings":";;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAGA;AACA;AACA;;AAKO,MAAMK,kBAAkB,GAAG,MAC9BC,MAAgC,IACI;EACpC,OAAO;EACH;EACA,IAAAC,0CAAuB,EAACD,MAAM,CAAC,EAC/B,IAAAE,iCAAkB,EAACF,MAAM,CAAC,EAC1B,IAAAG,0CAA0B,EAACH,MAAM,CAAC,EAClC,IAAAI,sCAAkB,EAACJ,MAAM,CAAC;EAC1B;EACA,IAAI,MAAM,IAAAK,oCAAqB,EAACL,MAAM,CAAC,CAAC,CAC3C,CAACM,MAAM,CAACC,OAAO,CAAC;AACrB,CAAC;AAACC,OAAA,CAAAT,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["_contentModels","require","_contentEntries","_contentModelGroups","_baseContentSchema","_schemaPlugins","buildSchemaPlugins","params","createBaseContentSchema","createModelsSchema","createContentEntriesSchema","createGroupsSchema","generateSchemaPlugins","filter","Boolean","exports"],"sources":["buildSchemaPlugins.ts"],"sourcesContent":["import { CmsContext, CmsModel } from \"~/types\";\nimport { createModelsSchema } from \"./schema/contentModels\";\nimport { createContentEntriesSchema } from \"./schema/contentEntries\";\nimport { createGroupsSchema } from \"./schema/contentModelGroups\";\nimport { createBaseContentSchema } from \"./schema/baseContentSchema\";\nimport { generateSchemaPlugins } from \"./schema/schemaPlugins\";\nimport { ICmsGraphQLSchemaPlugin } from \"~/plugins\";\n\n/**\n * This factory is called whenever we need to generate graphql-schema plugins using the current context.\n */\ninterface BuildSchemaPluginsParams {\n context: CmsContext;\n models: CmsModel[];\n}\nexport const buildSchemaPlugins = async (\n params: BuildSchemaPluginsParams\n): Promise<ICmsGraphQLSchemaPlugin[]> => {\n return [\n // Base GQL types and scalars\n createBaseContentSchema(params),\n createModelsSchema(params),\n createContentEntriesSchema(params),\n createGroupsSchema(params),\n // Dynamic schema\n ...(await generateSchemaPlugins(params))\n ].filter(Boolean);\n};\n"],"mappings":";;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAGA;AACA;AACA;;AAKO,MAAMK,kBAAkB,GAAG,MAC9BC,MAAgC,IACK;EACrC,OAAO;EACH;EACA,IAAAC,0CAAuB,EAACD,MAAM,CAAC,EAC/B,IAAAE,iCAAkB,EAACF,MAAM,CAAC,EAC1B,IAAAG,0CAA0B,EAACH,MAAM,CAAC,EAClC,IAAAI,sCAAkB,EAACJ,MAAM,CAAC;EAC1B;EACA,IAAI,MAAM,IAAAK,oCAAqB,EAACL,MAAM,CAAC,CAAC,CAC3C,CAACM,MAAM,CAACC,OAAO,CAAC;AACrB,CAAC;AAACC,OAAA,CAAAT,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_apiSecurity","require","checkEndpointAccess","context","permission","security","getPermission","cms","type","NotAuthorizedError","data","reason","exports"],"sources":["checkEndpointAccess.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nexport const checkEndpointAccess = async (context: CmsContext): Promise<void> => {\n const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);\n if (!permission) {\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access \"${context.cms.type}\" endpoint.`\n }\n });\n }\n};\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,mBAAmB,GAAG,MAAOC,OAAmB,IAAoB;EAC7E,MAAMC,UAAU,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,aAAa,CAAE,gBAAeH,OAAO,CAACI,GAAG,CAACC,IAAK,EAAC,CAAC;EAC3F,IAAI,CAACJ,UAAU,EAAE;IACb,MAAM,IAAIK,+BAAkB,CAAC;MACzBC,IAAI,EAAE;QACFC,MAAM,EAAG,0BAAyBR,OAAO,CAACI,GAAG,CAACC,IAAK;MACvD;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACI,OAAA,CAAAV,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_apiSecurity","require","checkEndpointAccess","context","permission","security","getPermission","cms","type","NotAuthorizedError","data","reason","exports"],"sources":["checkEndpointAccess.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\n\nexport const checkEndpointAccess = async (context: CmsContext): Promise<void> => {\n const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);\n if (!permission) {\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access \"${context.cms.type}\" endpoint.`\n }\n });\n }\n};\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,mBAAmB,GAAG,MAAOC,OAAmB,IAAoB;EAC7E,MAAMC,UAAU,GAAG,MAAMD,OAAO,CAACE,QAAQ,CAACC,aAAa,CAAE,gBAAeH,OAAO,CAACI,GAAG,CAACC,IAAK,EAAC,CAAC;EAC3F,IAAI,CAACJ,UAAU,EAAE;IACb,MAAM,IAAIK,+BAAkB,CAAC;MACzBC,IAAI,EAAE;QACFC,MAAM,EAAG,0BAAyBR,OAAO,CAACI,GAAG,CAACC,IAAK;MACvD;IACJ,CAAC,CAAC;EACN;AACJ,CAAC;AAACI,OAAA,CAAAV,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { CmsGraphQLSchemaPlugin } from "../plugins";
1
+ import { ICmsGraphQLSchemaPlugin } from "../plugins";
2
2
  interface Params {
3
- plugins: CmsGraphQLSchemaPlugin[];
3
+ plugins: ICmsGraphQLSchemaPlugin[];
4
4
  }
5
5
  export declare const createExecutableSchema: (params: Params) => import("graphql").GraphQLSchema;
6
6
  export {};
@@ -1 +1 @@
1
- {"version":3,"names":["_schema","require","createExecutableSchema","params","plugins","typeDefs","resolvers","plugin","push","schema","makeExecutableSchema","exports"],"sources":["createExecutableSchema.ts"],"sourcesContent":["import { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n plugins: CmsGraphQLSchemaPlugin[];\n}\n\nexport const createExecutableSchema = (params: Params) => {\n const { plugins } = params;\n /**\n * Really hard to type this to satisfy the makeExecutableSchema\n */\n // TODO @ts-refactor\n const typeDefs: any = [];\n const resolvers: any = [];\n\n // Get schema definitions from plugins\n for (const plugin of plugins) {\n typeDefs.push(plugin.schema.typeDefs);\n resolvers.push(plugin.schema.resolvers);\n }\n\n return makeExecutableSchema({\n typeDefs,\n resolvers\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAOO,MAAMC,sBAAsB,GAAIC,MAAc,IAAK;EACtD,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;EAC1B;AACJ;AACA;EACI;EACA,MAAME,QAAa,GAAG,EAAE;EACxB,MAAMC,SAAc,GAAG,EAAE;;EAEzB;EACA,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;IAC1BC,QAAQ,CAACG,IAAI,CAACD,MAAM,CAACE,MAAM,CAACJ,QAAQ,CAAC;IACrCC,SAAS,CAACE,IAAI,CAACD,MAAM,CAACE,MAAM,CAACH,SAAS,CAAC;EAC3C;EAEA,OAAO,IAAAI,4BAAoB,EAAC;IACxBL,QAAQ;IACRC;EACJ,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAT,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_schema","require","createExecutableSchema","params","plugins","typeDefs","resolvers","plugin","push","schema","makeExecutableSchema","exports"],"sources":["createExecutableSchema.ts"],"sourcesContent":["import { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { ICmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n plugins: ICmsGraphQLSchemaPlugin[];\n}\n\nexport const createExecutableSchema = (params: Params) => {\n const { plugins } = params;\n /**\n * Really hard to type this to satisfy the makeExecutableSchema\n */\n // TODO @ts-refactor\n const typeDefs: any = [];\n const resolvers: any = [];\n\n // Get schema definitions from plugins\n for (const plugin of plugins) {\n typeDefs.push(plugin.schema.typeDefs);\n resolvers.push(plugin.schema.resolvers);\n }\n\n return makeExecutableSchema({\n typeDefs,\n resolvers\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAOO,MAAMC,sBAAsB,GAAIC,MAAc,IAAK;EACtD,MAAM;IAAEC;EAAQ,CAAC,GAAGD,MAAM;EAC1B;AACJ;AACA;EACI;EACA,MAAME,QAAa,GAAG,EAAE;EACxB,MAAMC,SAAc,GAAG,EAAE;;EAEzB;EACA,KAAK,MAAMC,MAAM,IAAIH,OAAO,EAAE;IAC1BC,QAAQ,CAACG,IAAI,CAACD,MAAM,CAACE,MAAM,CAACJ,QAAQ,CAAC;IACrCC,SAAS,CAACE,IAAI,CAACD,MAAM,CAACE,MAAM,CAACH,SAAS,CAAC;EAC3C;EAEA,OAAO,IAAAI,4BAAoB,EAAC;IACxBL,QAAQ;IACRC;EACJ,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAT,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createRequestBody","body","JSON","parse","exports"],"sources":["createRequestBody.ts"],"sourcesContent":["import { GraphQLRequestBody } from \"@webiny/handler-graphql/types\";\n\nexport const createRequestBody = (body: unknown): GraphQLRequestBody | GraphQLRequestBody[] => {\n /**\n * We are trusting that the body payload is correct.\n * The `processRequestBody` will fail if it is not.\n */\n return typeof body === \"string\" ? JSON.parse(body) : body;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,iBAAiB,GAAIC,IAAa,IAAgD;EAC3F;AACJ;AACA;AACA;EACI,OAAO,OAAOA,IAAI,KAAK,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC,GAAGA,IAAI;AAC7D,CAAC;AAACG,OAAA,CAAAJ,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"names":["createRequestBody","body","JSON","parse","exports"],"sources":["createRequestBody.ts"],"sourcesContent":["import { GraphQLRequestBody } from \"@webiny/handler-graphql/types\";\n\nexport const createRequestBody = (body: unknown): GraphQLRequestBody | GraphQLRequestBody[] => {\n /**\n * We are trusting that the body payload is correct.\n * The `processRequestBody` will fail if it is not.\n */\n return typeof body === \"string\" ? JSON.parse(body) : body;\n};\n"],"mappings":";;;;;;AAEO,MAAMA,iBAAiB,GAAIC,IAAa,IAAgD;EAC3F;AACJ;AACA;AACA;EACI,OAAO,OAAOA,IAAI,KAAK,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACF,IAAI,CAAC,GAAGA,IAAI;AAC7D,CAAC;AAACG,OAAA,CAAAJ,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","formatErrorPayload","error","WebinyError","JSON","stringify","type","message","code","data","name","stack","exports"],"sources":["formatErrorPayload.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nexport const formatErrorPayload = (error: Error): string => {\n if (error instanceof WebinyError) {\n return JSON.stringify({\n type: \"CmsGraphQLWebinyError\",\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return JSON.stringify({\n type: \"Error\",\n name: error.name,\n message: error.message,\n stack: error.stack\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,kBAAkB,GAAIC,KAAY,IAAa;EACxD,IAAIA,KAAK,YAAYC,cAAW,EAAE;IAC9B,OAAOC,IAAI,CAACC,SAAS,CAAC;MAClBC,IAAI,EAAE,uBAAuB;MAC7BC,OAAO,EAAEL,KAAK,CAACK,OAAO;MACtBC,IAAI,EAAEN,KAAK,CAACM,IAAI;MAChBC,IAAI,EAAEP,KAAK,CAACO;IAChB,CAAC,CAAC;EACN;EAEA,OAAOL,IAAI,CAACC,SAAS,CAAC;IAClBC,IAAI,EAAE,OAAO;IACbI,IAAI,EAAER,KAAK,CAACQ,IAAI;IAChBH,OAAO,EAAEL,KAAK,CAACK,OAAO;IACtBI,KAAK,EAAET,KAAK,CAACS;EACjB,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAX,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","formatErrorPayload","error","WebinyError","JSON","stringify","type","message","code","data","name","stack","exports"],"sources":["formatErrorPayload.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\n\nexport const formatErrorPayload = (error: Error): string => {\n if (error instanceof WebinyError) {\n return JSON.stringify({\n type: \"CmsGraphQLWebinyError\",\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return JSON.stringify({\n type: \"Error\",\n name: error.name,\n message: error.message,\n stack: error.stack\n });\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,kBAAkB,GAAIC,KAAY,IAAa;EACxD,IAAIA,KAAK,YAAYC,cAAW,EAAE;IAC9B,OAAOC,IAAI,CAACC,SAAS,CAAC;MAClBC,IAAI,EAAE,uBAAuB;MAC7BC,OAAO,EAAEL,KAAK,CAACK,OAAO;MACtBC,IAAI,EAAEN,KAAK,CAACM,IAAI;MAChBC,IAAI,EAAEP,KAAK,CAACO;IAChB,CAAC,CAAC;EACN;EAEA,OAAOL,IAAI,CAACC,SAAS,CAAC;IAClBC,IAAI,EAAE,OAAO;IACbI,IAAI,EAAER,KAAK,CAACQ,IAAI;IAChBH,OAAO,EAAEL,KAAK,CAACK,OAAO;IACtBI,KAAK,EAAET,KAAK,CAACS;EACjB,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAX,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_buildSchemaPlugins","require","_createExecutableSchema","_plugins","generateSchema","params","context","models","generatedSchemaPlugins","buildSchemaPlugins","ex","console","log","plugins","register","schemaPlugins","byType","CmsGraphQLSchemaPlugin","type","createExecutableSchema","exports"],"sources":["generateSchema.ts"],"sourcesContent":["import { CmsContext, CmsModel } from \"~/types\";\nimport { buildSchemaPlugins } from \"./buildSchemaPlugins\";\nimport { createExecutableSchema } from \"./createExecutableSchema\";\nimport { GraphQLSchema } from \"graphql/type\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface GenerateSchemaParams {\n context: CmsContext;\n models: CmsModel[];\n}\nexport const generateSchema = async (params: GenerateSchemaParams): Promise<GraphQLSchema> => {\n const { context, models } = params;\n\n let generatedSchemaPlugins: CmsGraphQLSchemaPlugin[] = [];\n try {\n generatedSchemaPlugins = await buildSchemaPlugins({ context, models });\n } catch (ex) {\n console.log(`Error while building schema plugins.`);\n throw ex;\n }\n\n context.plugins.register(generatedSchemaPlugins);\n\n const schemaPlugins = context.plugins.byType<CmsGraphQLSchemaPlugin>(\n CmsGraphQLSchemaPlugin.type\n );\n return createExecutableSchema({\n plugins: schemaPlugins\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAMO,MAAMG,cAAc,GAAG,MAAOC,MAA4B,IAA6B;EAC1F,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAElC,IAAIG,sBAAgD,GAAG,EAAE;EACzD,IAAI;IACAA,sBAAsB,GAAG,MAAM,IAAAC,sCAAkB,EAAC;MAAEH,OAAO;MAAEC;IAAO,CAAC,CAAC;EAC1E,CAAC,CAAC,OAAOG,EAAE,EAAE;IACTC,OAAO,CAACC,GAAG,CAAE,sCAAqC,CAAC;IACnD,MAAMF,EAAE;EACZ;EAEAJ,OAAO,CAACO,OAAO,CAACC,QAAQ,CAACN,sBAAsB,CAAC;EAEhD,MAAMO,aAAa,GAAGT,OAAO,CAACO,OAAO,CAACG,MAAM,CACxCC,+BAAsB,CAACC,IAC3B,CAAC;EACD,OAAO,IAAAC,8CAAsB,EAAC;IAC1BN,OAAO,EAAEE;EACb,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAhB,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"names":["_buildSchemaPlugins","require","_createExecutableSchema","_plugins","generateSchema","params","context","models","generatedSchemaPlugins","buildSchemaPlugins","ex","console","log","plugins","register","schemaPlugins","byType","CmsGraphQLSchemaPlugin","type","createExecutableSchema","exports"],"sources":["generateSchema.ts"],"sourcesContent":["import { CmsContext, CmsModel } from \"~/types\";\nimport { buildSchemaPlugins } from \"./buildSchemaPlugins\";\nimport { createExecutableSchema } from \"./createExecutableSchema\";\nimport { GraphQLSchema } from \"graphql/type\";\nimport { CmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface GenerateSchemaParams {\n context: CmsContext;\n models: CmsModel[];\n}\nexport const generateSchema = async (params: GenerateSchemaParams): Promise<GraphQLSchema> => {\n const { context, models } = params;\n\n let generatedSchemaPlugins: ICmsGraphQLSchemaPlugin[] = [];\n try {\n generatedSchemaPlugins = await buildSchemaPlugins({ context, models });\n } catch (ex) {\n console.log(`Error while building schema plugins.`);\n throw ex;\n }\n\n context.plugins.register(generatedSchemaPlugins);\n\n const schemaPlugins = context.plugins.byType<ICmsGraphQLSchemaPlugin>(\n CmsGraphQLSchemaPlugin.type\n );\n return createExecutableSchema({\n plugins: schemaPlugins\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAMO,MAAMG,cAAc,GAAG,MAAOC,MAA4B,IAA6B;EAC1F,MAAM;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGF,MAAM;EAElC,IAAIG,sBAAiD,GAAG,EAAE;EAC1D,IAAI;IACAA,sBAAsB,GAAG,MAAM,IAAAC,sCAAkB,EAAC;MAAEH,OAAO;MAAEC;IAAO,CAAC,CAAC;EAC1E,CAAC,CAAC,OAAOG,EAAE,EAAE;IACTC,OAAO,CAACC,GAAG,CAAE,sCAAqC,CAAC;IACnD,MAAMF,EAAE;EACZ;EAEAJ,OAAO,CAACO,OAAO,CAACC,QAAQ,CAACN,sBAAsB,CAAC;EAEhD,MAAMO,aAAa,GAAGT,OAAO,CAACO,OAAO,CAACG,MAAM,CACxCC,+BAAsB,CAACC,IAC3B,CAAC;EACD,OAAO,IAAAC,8CAAsB,EAAC;IAC1BN,OAAO,EAAEE;EACb,CAAC,CAAC;AACN,CAAC;AAACK,OAAA,CAAAhB,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_codeFrame","_interopRequireDefault","require","_error","_generateSchema","_crypto","schemaList","Map","generateCacheId","params","getTenant","type","getLocale","id","code","join","generateCacheKey","models","keys","model","savedOn","value","Date","toISOString","push","modelId","singularApiName","pluralApiName","key","hash","crypto","createHash","update","digest","getSchema","context","security","withoutAuthorization","cms","listModels","filter","isPrivate","cacheId","cacheKey","cachedSchema","get","schema","generateSchema","set","err","Array","isArray","locations","WebinyError","message","data","endpoint","location","invalidSegment","codeFrame","source","body","line","column","frameSize","exports"],"sources":["getSchema.ts"],"sourcesContent":["// @ts-expect-error `code-frame` has no types\nimport codeFrame from \"code-frame\";\nimport WebinyError from \"@webiny/error\";\nimport { generateSchema } from \"./generateSchema\";\nimport { ApiEndpoint, CmsContext, CmsModel } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { GraphQLSchema } from \"graphql\";\nimport crypto from \"crypto\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\n\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\n/**\n * Method generates cache ID based on:\n * - tenant\n * - endpoint type\n * - locale\n */\ntype GenerateCacheIdParams = Pick<GetSchemaParams, \"getTenant\" | \"getLocale\" | \"type\">;\nconst generateCacheId = (params: GenerateCacheIdParams): string => {\n const { getTenant, type, getLocale } = params;\n return [`tenant:${getTenant().id}`, `endpoint:${type}`, `locale:${getLocale().code}`].join(\"#\");\n};\n/**\n * Method generates cache key based on last model change time.\n * Or sets \"unknown\" - possible when no models in database.\n */\ninterface GenerateCacheKeyParams {\n models: Pick<CmsModel, \"modelId\" | \"singularApiName\" | \"pluralApiName\" | \"savedOn\">[];\n}\nconst generateCacheKey = async (params: GenerateCacheKeyParams): Promise<string> => {\n const { models } = params;\n\n const keys: string[] = [];\n for (const model of models) {\n const savedOn = model.savedOn;\n const value =\n // @ts-expect-error\n savedOn instanceof Date || savedOn?.toISOString\n ? // @ts-expect-error\n savedOn.toISOString()\n : savedOn || \"unknown\";\n keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);\n }\n const key = keys.join(\"#\");\n\n const hash = crypto.createHash(\"sha1\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n\n/**\n * Gets an existing schema or rewrites existing one or creates a completely new one\n * depending on the schemaId created from type and locale parameters\n */\nexport const getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = params;\n\n /**\n * We need all the API models.\n * Private models are hidden in the GraphQL, so filter them out.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return model.isPrivate !== true;\n });\n });\n\n const cacheId = generateCacheId(params);\n\n const cacheKey = await generateCacheKey({ ...params, models });\n const cachedSchema = schemaList.get(cacheId);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(cacheId, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n message: err.message,\n code: err.code || \"INVALID_GRAPHQL_SCHEMA_LOCATIONS\",\n data: {\n ...(err.data || {}),\n endpoint: context.cms.type\n }\n });\n }\n const [location] = err.locations;\n\n throw new WebinyError({\n code: \"INVALID_GRAPHQL_SCHEMA\",\n message: err.message,\n data: {\n invalidSegment: codeFrame(err.source.body, location.line, location.column, {\n frameSize: 15\n })\n }\n });\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_codeFrame","_interopRequireDefault","require","_error","_generateSchema","_crypto","schemaList","Map","generateCacheId","params","getTenant","type","getLocale","id","code","join","generateCacheKey","models","keys","model","savedOn","value","Date","toISOString","push","modelId","singularApiName","pluralApiName","key","hash","crypto","createHash","update","digest","getSchema","context","security","withoutAuthorization","cms","listModels","filter","isPrivate","cacheId","cacheKey","cachedSchema","get","schema","generateSchema","set","err","Array","isArray","locations","WebinyError","message","data","endpoint","location","invalidSegment","codeFrame","source","body","line","column","frameSize","exports"],"sources":["getSchema.ts"],"sourcesContent":["// @ts-expect-error `code-frame` has no types\nimport codeFrame from \"code-frame\";\nimport WebinyError from \"@webiny/error\";\nimport { generateSchema } from \"./generateSchema\";\nimport { ApiEndpoint, CmsContext, CmsModel } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { GraphQLSchema } from \"graphql\";\nimport crypto from \"crypto\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\n\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\n/**\n * Method generates cache ID based on:\n * - tenant\n * - endpoint type\n * - locale\n */\ntype GenerateCacheIdParams = Pick<GetSchemaParams, \"getTenant\" | \"getLocale\" | \"type\">;\nconst generateCacheId = (params: GenerateCacheIdParams): string => {\n const { getTenant, type, getLocale } = params;\n return [`tenant:${getTenant().id}`, `endpoint:${type}`, `locale:${getLocale().code}`].join(\"#\");\n};\n/**\n * Method generates cache key based on last model change time.\n * Or sets \"unknown\" - possible when no models in database.\n */\ninterface GenerateCacheKeyParams {\n models: Pick<CmsModel, \"modelId\" | \"singularApiName\" | \"pluralApiName\" | \"savedOn\">[];\n}\nconst generateCacheKey = async (params: GenerateCacheKeyParams): Promise<string> => {\n const { models } = params;\n\n const keys: string[] = [];\n for (const model of models) {\n const savedOn = model.savedOn;\n const value =\n // @ts-expect-error\n savedOn instanceof Date || savedOn?.toISOString\n ? // @ts-expect-error\n savedOn.toISOString()\n : savedOn || \"unknown\";\n keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);\n }\n const key = keys.join(\"#\");\n\n const hash = crypto.createHash(\"sha1\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n\n/**\n * Gets an existing schema or rewrites existing one or creates a completely new one\n * depending on the schemaId created from type and locale parameters\n */\nexport const getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = params;\n\n /**\n * We need all the API models.\n * Private models are hidden in the GraphQL, so filter them out.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return model.isPrivate !== true;\n });\n });\n\n const cacheId = generateCacheId(params);\n\n const cacheKey = await generateCacheKey({ ...params, models });\n const cachedSchema = schemaList.get(cacheId);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(cacheId, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n message: err.message,\n code: err.code || \"INVALID_GRAPHQL_SCHEMA_LOCATIONS\",\n data: {\n ...(err.data || {}),\n endpoint: context.cms.type\n }\n });\n }\n const [location] = err.locations;\n\n throw new WebinyError({\n code: \"INVALID_GRAPHQL_SCHEMA\",\n message: err.message,\n data: {\n invalidSegment: codeFrame(err.source.body, location.line, location.column, {\n frameSize: 15\n })\n }\n });\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_debugPlugins","_interopRequireDefault","require","_handler","_handleRequest","cmsRoutes","RoutePlugin","onPost","onOptions","context","request","reply","handleRequest","_","status","send","hijack","name","graphQLHandlerFactory","debug","debugPlugins","type","exports"],"sources":["graphQLHandlerFactory.ts"],"sourcesContent":["import debugPlugins from \"@webiny/handler-graphql/debugPlugins\";\nimport { CmsContext } from \"~/types\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport { RoutePlugin } from \"@webiny/handler\";\nimport { handleRequest } from \"./handleRequest\";\n\nexport interface GraphQLHandlerFactoryParams {\n debug?: boolean;\n}\n\nconst cmsRoutes = new RoutePlugin<CmsContext>(({ onPost, onOptions, context }) => {\n onPost(\"/cms/:type(^manage|preview|read$)/:locale\", async (request, reply) => {\n return handleRequest({ context, request, reply });\n });\n\n onOptions(\"/cms/:type(^manage|preview|read$)/:locale\", async (_, reply) => {\n return reply.status(204).send({}).hijack();\n });\n});\n\ncmsRoutes.name = \"headless-cms.graphql.route.default\";\n\nexport const graphQLHandlerFactory = ({ debug }: GraphQLHandlerFactoryParams): PluginCollection => {\n return [\n ...(debug ? debugPlugins() : []),\n cmsRoutes,\n {\n type: \"wcp-telemetry-tracker\"\n }\n ];\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAMA,MAAMG,SAAS,GAAG,IAAIC,oBAAW,CAAa,CAAC;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAQ,CAAC,KAAK;EAC9EF,MAAM,CAAC,2CAA2C,EAAE,OAAOG,OAAO,EAAEC,KAAK,KAAK;IAC1E,OAAO,IAAAC,4BAAa,EAAC;MAAEH,OAAO;MAAEC,OAAO;MAAEC;IAAM,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFH,SAAS,CAAC,2CAA2C,EAAE,OAAOK,CAAC,EAAEF,KAAK,KAAK;IACvE,OAAOA,KAAK,CAACG,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC;EAC9C,CAAC,CAAC;AACN,CAAC,CAAC;AAEFX,SAAS,CAACY,IAAI,GAAG,oCAAoC;AAE9C,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAuB;EAC/F,OAAO,CACH,IAAIA,KAAK,GAAG,IAAAC,qBAAY,EAAC,CAAC,GAAG,EAAE,CAAC,EAChCf,SAAS,EACT;IACIgB,IAAI,EAAE;EACV,CAAC,CACJ;AACL,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA"}
1
+ {"version":3,"names":["_debugPlugins","_interopRequireDefault","require","_handler","_handleRequest","cmsRoutes","RoutePlugin","onPost","onOptions","context","request","reply","handleRequest","_","status","send","hijack","name","graphQLHandlerFactory","debug","debugPlugins","type","exports"],"sources":["graphQLHandlerFactory.ts"],"sourcesContent":["import debugPlugins from \"@webiny/handler-graphql/debugPlugins\";\nimport { CmsContext } from \"~/types\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport { RoutePlugin } from \"@webiny/handler\";\nimport { handleRequest } from \"./handleRequest\";\n\nexport interface GraphQLHandlerFactoryParams {\n debug?: boolean;\n}\n\nconst cmsRoutes = new RoutePlugin<CmsContext>(({ onPost, onOptions, context }) => {\n onPost(\"/cms/:type(^manage|preview|read$)/:locale\", async (request, reply) => {\n return handleRequest({ context, request, reply });\n });\n\n onOptions(\"/cms/:type(^manage|preview|read$)/:locale\", async (_, reply) => {\n return reply.status(204).send({}).hijack();\n });\n});\n\ncmsRoutes.name = \"headless-cms.graphql.route.default\";\n\nexport const graphQLHandlerFactory = ({ debug }: GraphQLHandlerFactoryParams): PluginCollection => {\n return [\n ...(debug ? debugPlugins() : []),\n cmsRoutes,\n {\n type: \"wcp-telemetry-tracker\"\n }\n ];\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAMA,MAAMG,SAAS,GAAG,IAAIC,oBAAW,CAAa,CAAC;EAAEC,MAAM;EAAEC,SAAS;EAAEC;AAAQ,CAAC,KAAK;EAC9EF,MAAM,CAAC,2CAA2C,EAAE,OAAOG,OAAO,EAAEC,KAAK,KAAK;IAC1E,OAAO,IAAAC,4BAAa,EAAC;MAAEH,OAAO;MAAEC,OAAO;MAAEC;IAAM,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFH,SAAS,CAAC,2CAA2C,EAAE,OAAOK,CAAC,EAAEF,KAAK,KAAK;IACvE,OAAOA,KAAK,CAACG,MAAM,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC;EAC9C,CAAC,CAAC;AACN,CAAC,CAAC;AAEFX,SAAS,CAACY,IAAI,GAAG,oCAAoC;AAE9C,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC;AAAmC,CAAC,KAAuB;EAC/F,OAAO,CACH,IAAIA,KAAK,GAAG,IAAAC,qBAAY,EAAC,CAAC,GAAG,EAAE,CAAC,EAChCf,SAAS,EACT;IACIgB,IAAI,EAAE;EACV,CAAC,CACJ;AACL,CAAC;AAACC,OAAA,CAAAJ,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_checkEndpointAccess","require","_createRequestBody","_formatErrorPayload","_getSchema","_handlerGraphql","handleRequest","params","context","request","reply","checkEndpointAccess","ex","code","send","data","error","message","stack","getTenant","tenancy","getCurrentTenant","getLocale","cms","schema","benchmark","measure","getSchema","type","console","formatErrorPayload","body","createRequestBody","result","processRequestBody","exports"],"sources":["handleRequest.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext } from \"~/types\";\nimport { checkEndpointAccess } from \"./checkEndpointAccess\";\nimport { createRequestBody } from \"./createRequestBody\";\nimport { formatErrorPayload } from \"./formatErrorPayload\";\nimport { getSchema } from \"./getSchema\";\nimport { Reply, Request } from \"@webiny/handler/types\";\nimport { processRequestBody } from \"@webiny/handler-graphql\";\nimport { ExecutionResult } from \"graphql\";\n\nexport interface HandleRequestParams {\n context: CmsContext;\n request: Request;\n reply: Reply;\n}\n\nexport interface HandleRequest {\n (params: HandleRequestParams): Promise<Reply>;\n}\n\nexport const handleRequest: HandleRequest = async params => {\n const { context, request, reply } = params;\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n const getLocale = () => {\n return context.cms.getLocale();\n };\n\n const schema = await context.benchmark.measure(\"headlessCms.graphql.getSchema\", async () => {\n try {\n return await getSchema({\n context,\n getTenant,\n getLocale,\n type: context.cms.type as ApiEndpoint\n });\n } catch (ex) {\n console.error(`Error while generating the schema.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n const body = await context.benchmark.measure(\n \"headlessCms.graphql.createRequestBody\",\n async () => {\n try {\n return createRequestBody(request.body);\n } catch (ex) {\n console.error(`Error while creating the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n }\n );\n\n /**\n * We need to store the processRequestBody result in a variable and output it after the measurement.\n * Otherwise, the measurement will not be shown in the output.\n */\n let result: ExecutionResult[] | ExecutionResult | null = null;\n\n await context.benchmark.measure(\"headlessCms.graphql.processRequestBody\", async () => {\n try {\n result = await processRequestBody(body, schema, context);\n } catch (ex) {\n console.error(`Error while processing the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n return reply.code(200).send(result);\n};\n"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAAI,eAAA,GAAAJ,OAAA;AAaO,MAAMK,aAA4B,GAAG,MAAMC,MAAM,IAAI;EACxD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGH,MAAM;EAC1C,IAAI;IACA,MAAM,IAAAI,wCAAmB,EAACH,OAAO,CAAC;EACtC,CAAC,CAAC,OAAOI,EAAE,EAAE;IACT,OAAOF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;MACxBC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHC,OAAO,EAAEL,EAAE,CAACK,OAAO,IAAI,iBAAiB;QACxCJ,IAAI,EAAED,EAAE,CAACC,IAAI,IAAI,yBAAyB;QAC1CE,IAAI,EAAEH,EAAE,CAACG,IAAI,IAAI,IAAI;QACrBG,KAAK,EAAE;MACX;IACJ,CAAC,CAAC;EACN;EAEA,MAAMC,SAAS,GAAGA,CAAA,KAAM;IACpB,OAAOX,OAAO,CAACY,OAAO,CAACC,gBAAgB,CAAC,CAAC;EAC7C,CAAC;EAED,MAAMC,SAAS,GAAGA,CAAA,KAAM;IACpB,OAAOd,OAAO,CAACe,GAAG,CAACD,SAAS,CAAC,CAAC;EAClC,CAAC;EAED,MAAME,MAAM,GAAG,MAAMhB,OAAO,CAACiB,SAAS,CAACC,OAAO,CAAC,+BAA+B,EAAE,YAAY;IACxF,IAAI;MACA,OAAO,MAAM,IAAAC,oBAAS,EAAC;QACnBnB,OAAO;QACPW,SAAS;QACTG,SAAS;QACTM,IAAI,EAAEpB,OAAO,CAACe,GAAG,CAACK;MACtB,CAAC,CAAC;IACN,CAAC,CAAC,OAAOhB,EAAE,EAAE;MACTiB,OAAO,CAACb,KAAK,CAAE,oCAAmC,CAAC;MACnDa,OAAO,CAACb,KAAK,CAAC,IAAAc,sCAAkB,EAAClB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CAAC;EAEF,MAAMmB,IAAI,GAAG,MAAMvB,OAAO,CAACiB,SAAS,CAACC,OAAO,CACxC,uCAAuC,EACvC,YAAY;IACR,IAAI;MACA,OAAO,IAAAM,oCAAiB,EAACvB,OAAO,CAACsB,IAAI,CAAC;IAC1C,CAAC,CAAC,OAAOnB,EAAE,EAAE;MACTiB,OAAO,CAACb,KAAK,CAAE,wCAAuC,CAAC;MACvDa,OAAO,CAACb,KAAK,CAAC,IAAAc,sCAAkB,EAAClB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CACJ,CAAC;;EAED;AACJ;AACA;AACA;EACI,IAAIqB,MAAkD,GAAG,IAAI;EAE7D,MAAMzB,OAAO,CAACiB,SAAS,CAACC,OAAO,CAAC,wCAAwC,EAAE,YAAY;IAClF,IAAI;MACAO,MAAM,GAAG,MAAM,IAAAC,kCAAkB,EAACH,IAAI,EAAEP,MAAM,EAAEhB,OAAO,CAAC;IAC5D,CAAC,CAAC,OAAOI,EAAE,EAAE;MACTiB,OAAO,CAACb,KAAK,CAAE,0CAAyC,CAAC;MACzDa,OAAO,CAACb,KAAK,CAAC,IAAAc,sCAAkB,EAAClB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CAAC;EAEF,OAAOF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAACmB,MAAM,CAAC;AACvC,CAAC;AAACE,OAAA,CAAA7B,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["_checkEndpointAccess","require","_createRequestBody","_formatErrorPayload","_getSchema","_handlerGraphql","handleRequest","params","context","request","reply","checkEndpointAccess","ex","code","send","data","error","message","stack","getTenant","tenancy","getCurrentTenant","getLocale","cms","schema","benchmark","measure","getSchema","type","console","formatErrorPayload","body","createRequestBody","result","processRequestBody","exports"],"sources":["handleRequest.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext } from \"~/types\";\nimport { checkEndpointAccess } from \"./checkEndpointAccess\";\nimport { createRequestBody } from \"./createRequestBody\";\nimport { formatErrorPayload } from \"./formatErrorPayload\";\nimport { getSchema } from \"./getSchema\";\nimport { Reply, Request } from \"@webiny/handler/types\";\nimport { processRequestBody } from \"@webiny/handler-graphql\";\nimport { ExecutionResult } from \"graphql\";\n\nexport interface HandleRequestParams {\n context: CmsContext;\n request: Request;\n reply: Reply;\n}\n\nexport interface HandleRequest {\n (params: HandleRequestParams): Promise<Reply>;\n}\n\nexport const handleRequest: HandleRequest = async params => {\n const { context, request, reply } = params;\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n const getTenant = () => {\n return context.tenancy.getCurrentTenant();\n };\n\n const getLocale = () => {\n return context.cms.getLocale();\n };\n\n const schema = await context.benchmark.measure(\"headlessCms.graphql.getSchema\", async () => {\n try {\n return await getSchema({\n context,\n getTenant,\n getLocale,\n type: context.cms.type as ApiEndpoint\n });\n } catch (ex) {\n console.error(`Error while generating the schema.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n const body = await context.benchmark.measure(\n \"headlessCms.graphql.createRequestBody\",\n async () => {\n try {\n return createRequestBody(request.body);\n } catch (ex) {\n console.error(`Error while creating the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n }\n );\n\n /**\n * We need to store the processRequestBody result in a variable and output it after the measurement.\n * Otherwise, the measurement will not be shown in the output.\n */\n let result: ExecutionResult[] | ExecutionResult | null = null;\n\n await context.benchmark.measure(\"headlessCms.graphql.processRequestBody\", async () => {\n try {\n result = await processRequestBody(body, schema, context);\n } catch (ex) {\n console.error(`Error while processing the body request.`);\n console.error(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n return reply.code(200).send(result);\n};\n"],"mappings":";;;;;;AACA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA,IAAAI,eAAA,GAAAJ,OAAA;AAaO,MAAMK,aAA4B,GAAG,MAAMC,MAAM,IAAI;EACxD,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGH,MAAM;EAC1C,IAAI;IACA,MAAM,IAAAI,wCAAmB,EAACH,OAAO,CAAC;EACtC,CAAC,CAAC,OAAOI,EAAE,EAAE;IACT,OAAOF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC;MACxBC,IAAI,EAAE,IAAI;MACVC,KAAK,EAAE;QACHC,OAAO,EAAEL,EAAE,CAACK,OAAO,IAAI,iBAAiB;QACxCJ,IAAI,EAAED,EAAE,CAACC,IAAI,IAAI,yBAAyB;QAC1CE,IAAI,EAAEH,EAAE,CAACG,IAAI,IAAI,IAAI;QACrBG,KAAK,EAAE;MACX;IACJ,CAAC,CAAC;EACN;EAEA,MAAMC,SAAS,GAAGA,CAAA,KAAM;IACpB,OAAOX,OAAO,CAACY,OAAO,CAACC,gBAAgB,CAAC,CAAC;EAC7C,CAAC;EAED,MAAMC,SAAS,GAAGA,CAAA,KAAM;IACpB,OAAOd,OAAO,CAACe,GAAG,CAACD,SAAS,CAAC,CAAC;EAClC,CAAC;EAED,MAAME,MAAM,GAAG,MAAMhB,OAAO,CAACiB,SAAS,CAACC,OAAO,CAAC,+BAA+B,EAAE,YAAY;IACxF,IAAI;MACA,OAAO,MAAM,IAAAC,oBAAS,EAAC;QACnBnB,OAAO;QACPW,SAAS;QACTG,SAAS;QACTM,IAAI,EAAEpB,OAAO,CAACe,GAAG,CAACK;MACtB,CAAC,CAAC;IACN,CAAC,CAAC,OAAOhB,EAAE,EAAE;MACTiB,OAAO,CAACb,KAAK,CAAE,oCAAmC,CAAC;MACnDa,OAAO,CAACb,KAAK,CAAC,IAAAc,sCAAkB,EAAClB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CAAC;EAEF,MAAMmB,IAAI,GAAG,MAAMvB,OAAO,CAACiB,SAAS,CAACC,OAAO,CACxC,uCAAuC,EACvC,YAAY;IACR,IAAI;MACA,OAAO,IAAAM,oCAAiB,EAACvB,OAAO,CAACsB,IAAI,CAAC;IAC1C,CAAC,CAAC,OAAOnB,EAAE,EAAE;MACTiB,OAAO,CAACb,KAAK,CAAE,wCAAuC,CAAC;MACvDa,OAAO,CAACb,KAAK,CAAC,IAAAc,sCAAkB,EAAClB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CACJ,CAAC;;EAED;AACJ;AACA;AACA;EACI,IAAIqB,MAAkD,GAAG,IAAI;EAE7D,MAAMzB,OAAO,CAACiB,SAAS,CAACC,OAAO,CAAC,wCAAwC,EAAE,YAAY;IAClF,IAAI;MACAO,MAAM,GAAG,MAAM,IAAAC,kCAAkB,EAACH,IAAI,EAAEP,MAAM,EAAEhB,OAAO,CAAC;IAC5D,CAAC,CAAC,OAAOI,EAAE,EAAE;MACTiB,OAAO,CAACb,KAAK,CAAE,0CAAyC,CAAC;MACzDa,OAAO,CAACb,KAAK,CAAC,IAAAc,sCAAkB,EAAClB,EAAE,CAAC,CAAC;MACrC,MAAMA,EAAE;IACZ;EACJ,CAAC,CAAC;EAEF,OAAOF,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAACmB,MAAM,CAAC;AACvC,CAAC;AAACE,OAAA,CAAA7B,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_system","require","_graphQLHandlerFactory","_baseSchema","createGraphQL","params","createBaseSchema","createSystemSchemaPlugin","graphQLHandlerFactory","exports"],"sources":["index.ts"],"sourcesContent":["import { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { createBaseSchema } from \"~/graphql/schema/baseSchema\";\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAGO,MAAMG,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO,CAAC,IAAAC,4BAAgB,EAAC,CAAC,EAAE,IAAAC,gCAAwB,EAAC,CAAC,EAAE,IAAAC,4CAAqB,EAACH,MAAM,CAAC,CAAC;AAC1F,CAAC;AAACI,OAAA,CAAAL,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["_system","require","_graphQLHandlerFactory","_baseSchema","createGraphQL","params","createBaseSchema","createSystemSchemaPlugin","graphQLHandlerFactory","exports"],"sources":["index.ts"],"sourcesContent":["import { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { createBaseSchema } from \"~/graphql/schema/baseSchema\";\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAGO,MAAMG,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO,CAAC,IAAAC,4BAAgB,EAAC,CAAC,EAAE,IAAAC,gCAAwB,EAAC,CAAC,EAAE,IAAAC,4CAAqB,EAACH,MAAM,CAAC,CAAC;AAC1F,CAAC;AAACI,OAAA,CAAAL,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { CmsContext } from "../../types";
2
- import { CmsGraphQLSchemaPlugin } from "../../plugins";
2
+ import { ICmsGraphQLSchemaPlugin } from "../../plugins";
3
3
  interface Params {
4
4
  context: CmsContext;
5
5
  }
6
- export declare const createBaseContentSchema: ({ context }: Params) => CmsGraphQLSchemaPlugin;
6
+ export declare const createBaseContentSchema: ({ context }: Params) => ICmsGraphQLSchemaPlugin;
7
7
  export {};
@@ -10,7 +10,7 @@ const createBaseContentSchema = ({
10
10
  context
11
11
  }) => {
12
12
  const scalars = context.plugins.byType("graphql-scalar").map(item => item.scalar);
13
- const plugin = new _plugins.CmsGraphQLSchemaPlugin({
13
+ const plugin = (0, _plugins.createCmsGraphQLSchemaPlugin)({
14
14
  typeDefs: /* GraphQL */`
15
15
  ${scalars.map(scalar => `scalar ${scalar.name}`).join(" ")}
16
16
  scalar JSON
@@ -29,12 +29,6 @@ const createBaseContentSchema = ({
29
29
  _empty: String
30
30
  }
31
31
 
32
- type CmsIdentity {
33
- id: String
34
- displayName: String
35
- type: String
36
- }
37
-
38
32
  enum CmsEntryStatusType {
39
33
  latest
40
34
  published
@@ -1 +1 @@
1
- {"version":3,"names":["_builtInTypes","require","_plugins","createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","CmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","RefInputScalar","Number","NumberScalar","Any","AnyScalar","DateTime","DateTimeScalar","DateTimeZ","DateTimeZScalar","Date","DateScalar","Time","TimeScalar","Mutation","_empty","exports"],"sources":["baseContentSchema.ts"],"sourcesContent":["import { GraphQLScalarPlugin } from \"@webiny/handler-graphql/types\";\nimport { CmsContext } from \"~/types\";\nimport {\n RefInputScalar,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLScalarType } from \"graphql\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createBaseContentSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n ${scalars.map(scalar => `scalar ${scalar.name}`).join(\" \")}\n scalar JSON\n scalar Long\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar DateTimeZ\n scalar Time\n\n type Query\n\n type Mutation {\n _empty: String\n }\n\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n enum CmsEntryStatusType {\n latest\n published\n }\n `,\n resolvers: {\n ...scalars.reduce<Record<string, GraphQLScalarType>>((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {}),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n DateTimeZ: DateTimeZScalar,\n Date: DateScalar,\n Time: TimeScalar,\n Mutation: {\n _empty: () => \"_empty\"\n }\n }\n });\n plugin.name = `headless-cms.graphql.schema.baseContentSchema`;\n\n return plugin;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AAYA,IAAAC,QAAA,GAAAD,OAAA;AAKO,MAAME,uBAAuB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAA6B;EACpF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC,cAAcR,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACI,IAAK,EAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACP,GAAGX,OAAO,CAACY,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;QAC7DD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;QACf,OAAOD,GAAG;MACd,CAAC,EAAE,CAAC,CAAC,CAAC;MACNE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAEC,4BAAc;MACxBC,MAAM,EAAEC,0BAAY;MACpBC,GAAG,EAAEC,uBAAS;MACdC,QAAQ,EAAEC,4BAAc;MACxBC,SAAS,EAAEC,6BAAe;MAC1BC,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAE;QACNC,MAAM,EAAEA,CAAA,KAAM;MAClB;IACJ;EACJ,CAAC,CAAC;EACF5B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC6B,OAAA,CAAArC,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["_builtInTypes","require","_plugins","createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","createCmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","RefInputScalar","Number","NumberScalar","Any","AnyScalar","DateTime","DateTimeScalar","DateTimeZ","DateTimeZScalar","Date","DateScalar","Time","TimeScalar","Mutation","_empty","exports"],"sources":["baseContentSchema.ts"],"sourcesContent":["import { GraphQLScalarPlugin } from \"@webiny/handler-graphql/types\";\nimport { CmsContext } from \"~/types\";\nimport {\n AnyScalar,\n DateScalar,\n DateTimeScalar,\n DateTimeZScalar,\n JsonScalar,\n LongScalar,\n NumberScalar,\n RefInputScalar,\n TimeScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLScalarType } from \"graphql\";\nimport { createCmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createBaseContentSchema = ({ context }: Params): ICmsGraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n const plugin = createCmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n ${scalars.map(scalar => `scalar ${scalar.name}`).join(\" \")}\n scalar JSON\n scalar Long\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar DateTimeZ\n scalar Time\n\n type Query\n\n type Mutation {\n _empty: String\n }\n\n enum CmsEntryStatusType {\n latest\n published\n }\n `,\n resolvers: {\n ...scalars.reduce<Record<string, GraphQLScalarType>>((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {}),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n DateTimeZ: DateTimeZScalar,\n Date: DateScalar,\n Time: TimeScalar,\n Mutation: {\n _empty: () => \"_empty\"\n }\n }\n });\n plugin.name = `headless-cms.graphql.schema.baseContentSchema`;\n\n return plugin;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AAYA,IAAAC,QAAA,GAAAD,OAAA;AAMO,MAAME,uBAAuB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAA8B;EACrF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,MAAMC,MAAM,GAAG,IAAAC,qCAA4B,EAAC;IACxCC,QAAQ,EAAE,aAAe;AACjC,cAAcR,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACI,IAAK,EAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACP,GAAGX,OAAO,CAACY,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;QAC7DD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;QACf,OAAOD,GAAG;MACd,CAAC,EAAE,CAAC,CAAC,CAAC;MACNE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAEC,4BAAc;MACxBC,MAAM,EAAEC,0BAAY;MACpBC,GAAG,EAAEC,uBAAS;MACdC,QAAQ,EAAEC,4BAAc;MACxBC,SAAS,EAAEC,6BAAe;MAC1BC,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAE;QACNC,MAAM,EAAEA,CAAA,KAAM;MAClB;IACJ;EACJ,CAAC,CAAC;EACF5B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC6B,OAAA,CAAArC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -21,17 +21,22 @@ const createSkipValidatorEnum = plugins => {
21
21
  if (validators.length === 0) {
22
22
  validators.push("_empty");
23
23
  }
24
- return (/* GraphQL */`
24
+ return /* GraphQL */`
25
25
  enum SkipValidatorEnum {
26
- ${validators.join("\n")}
26
+ ${validators.join("\n")}
27
27
  }
28
- `
29
- );
28
+ `;
30
29
  };
31
30
  const createSchema = plugins => {
32
31
  const skipValidatorEnum = createSkipValidatorEnum(plugins);
33
- const cmsPlugin = new _plugins.CmsGraphQLSchemaPlugin({
32
+ const cmsPlugin = (0, _plugins.createCmsGraphQLSchemaPlugin)({
34
33
  typeDefs: /* GraphQL */`
34
+ type CmsIdentity {
35
+ id: String
36
+ displayName: String
37
+ type: String
38
+ }
39
+
35
40
  type CmsError {
36
41
  code: String
37
42
  message: String
@@ -54,6 +59,8 @@ const createSchema = plugins => {
54
59
  # force delete an entry that might have some records left behind in the database
55
60
  # see CmsDeleteEntryOptions in types.ts
56
61
  force: Boolean
62
+ # permanently delete an entry without moving it to the bin
63
+ permanently: Boolean
57
64
  }
58
65
 
59
66
  type CmsDeleteResponse {
@@ -1 +1 @@
1
- {"version":3,"names":["_plugins","require","_handlerGraphql","_api","_camelCase","_interopRequireDefault","createSkipValidatorEnum","plugins","validators","byType","reduce","collection","validator","name","camelCase","includes","push","length","join","createSchema","skipValidatorEnum","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","corePlugin","GraphQLSchemaPlugin","schema","createBaseSchema","ContextPlugin","context","register","exports"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport camelCase from \"lodash/camelCase\";\n\nconst createSkipValidatorEnum = (plugins: PluginsContainer) => {\n const validators = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce<string[]>((collection, validator) => {\n const name = camelCase(validator.validator.name);\n if (collection.includes(name)) {\n return collection;\n }\n collection.push(name);\n return collection;\n }, []);\n\n if (validators.length === 0) {\n validators.push(\"_empty\");\n }\n return /* GraphQL */ `\n enum SkipValidatorEnum {\n ${validators.join(\"\\n\")}\n }\n `;\n};\n\nconst createSchema = (plugins: PluginsContainer): GraphQLSchemaPlugin<CmsContext>[] => {\n const skipValidatorEnum = createSkipValidatorEnum(plugins);\n\n const cmsPlugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n # Advanced Content Organization\n type WbyAcoLocation {\n folderId: ID\n }\n\n input WbyAcoLocationInput {\n folderId: ID!\n }\n\n input WbyAcoLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n\n ${skipValidatorEnum}\n\n input CreateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CreateRevisionCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input UpdateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CmsIdentityInput {\n id: String!\n displayName: String!\n type: String!\n }\n\n type CmsEntryValidationResponseData {\n error: String!\n id: String!\n fieldId: String!\n parents: [String!]!\n }\n\n type CmsEntryValidationResponse {\n data: [CmsEntryValidationResponseData!]\n error: CmsError\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n\nexport const createBaseSchema = () => {\n return new ContextPlugin(async context => {\n context.plugins.register(...createSchema(context.plugins));\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAEA,MAAMK,uBAAuB,GAAIC,OAAyB,IAAK;EAC3D,MAAMC,UAAU,GAAGD,OAAO,CACrBE,MAAM,CAA+B,2BAA2B,CAAC,CACjEC,MAAM,CAAW,CAACC,UAAU,EAAEC,SAAS,KAAK;IACzC,MAAMC,IAAI,GAAG,IAAAC,kBAAS,EAACF,SAAS,CAACA,SAAS,CAACC,IAAI,CAAC;IAChD,IAAIF,UAAU,CAACI,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC3B,OAAOF,UAAU;IACrB;IACAA,UAAU,CAACK,IAAI,CAACH,IAAI,CAAC;IACrB,OAAOF,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;EAEV,IAAIH,UAAU,CAACS,MAAM,KAAK,CAAC,EAAE;IACzBT,UAAU,CAACQ,IAAI,CAAC,QAAQ,CAAC;EAC7B;EACA,OAAO,cAAe;AAC1B;AACA,UAAUR,UAAU,CAACU,IAAI,CAAC,IAAI,CAAE;AAChC;AACA;EAAK;AACL,CAAC;AAED,MAAMC,YAAY,GAAIZ,OAAyB,IAAwC;EACnF,MAAMa,iBAAiB,GAAGd,uBAAuB,CAACC,OAAO,CAAC;EAE1D,MAAMc,SAAS,GAAG,IAAIC,+BAAsB,CAAC;IACzCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcH,iBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDI,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACR,IAAI,GAAG,kCAAkC;EACnD,MAAMY,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDH,QAAQ,EAAEF,SAAS,CAACM,MAAM,CAACJ,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACM,MAAM,CAACH;EAChC,CAAC,CAAC;EACFC,UAAU,CAACZ,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACQ,SAAS,EAAEI,UAAU,CAAC;AAClC,CAAC;AAEM,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;EAClC,OAAO,IAAIC,kBAAa,CAAC,MAAMC,OAAO,IAAI;IACtCA,OAAO,CAACvB,OAAO,CAACwB,QAAQ,CAAC,GAAGZ,YAAY,CAACW,OAAO,CAACvB,OAAO,CAAC,CAAC;EAC9D,CAAC,CAAC;AACN,CAAC;AAACyB,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["_plugins","require","_handlerGraphql","_api","_camelCase","_interopRequireDefault","createSkipValidatorEnum","plugins","validators","byType","reduce","collection","validator","name","camelCase","includes","push","length","join","createSchema","skipValidatorEnum","cmsPlugin","createCmsGraphQLSchemaPlugin","typeDefs","resolvers","corePlugin","GraphQLSchemaPlugin","schema","createBaseSchema","ContextPlugin","context","register","exports"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { createCmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin, IGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport camelCase from \"lodash/camelCase\";\n\nconst createSkipValidatorEnum = (plugins: PluginsContainer) => {\n const validators = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce<string[]>((collection, validator) => {\n const name = camelCase(validator.validator.name);\n if (collection.includes(name)) {\n return collection;\n }\n collection.push(name);\n return collection;\n }, []);\n\n if (validators.length === 0) {\n validators.push(\"_empty\");\n }\n return /* GraphQL */ `\n enum SkipValidatorEnum {\n ${validators.join(\"\\n\")}\n }\n `;\n};\n\nconst createSchema = (plugins: PluginsContainer): IGraphQLSchemaPlugin<CmsContext>[] => {\n const skipValidatorEnum = createSkipValidatorEnum(plugins);\n\n const cmsPlugin = createCmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n # permanently delete an entry without moving it to the bin\n permanently: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n # Advanced Content Organization\n type WbyAcoLocation {\n folderId: ID\n }\n\n input WbyAcoLocationInput {\n folderId: ID!\n }\n\n input WbyAcoLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n\n ${skipValidatorEnum}\n\n input CreateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CreateRevisionCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input UpdateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CmsIdentityInput {\n id: String!\n displayName: String!\n type: String!\n }\n\n type CmsEntryValidationResponseData {\n error: String!\n id: String!\n fieldId: String!\n parents: [String!]!\n }\n\n type CmsEntryValidationResponse {\n data: [CmsEntryValidationResponseData!]\n error: CmsError\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n\nexport const createBaseSchema = () => {\n return new ContextPlugin(async context => {\n context.plugins.register(...createSchema(context.plugins));\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAEA,MAAMK,uBAAuB,GAAIC,OAAyB,IAAK;EAC3D,MAAMC,UAAU,GAAGD,OAAO,CACrBE,MAAM,CAA+B,2BAA2B,CAAC,CACjEC,MAAM,CAAW,CAACC,UAAU,EAAEC,SAAS,KAAK;IACzC,MAAMC,IAAI,GAAG,IAAAC,kBAAS,EAACF,SAAS,CAACA,SAAS,CAACC,IAAI,CAAC;IAChD,IAAIF,UAAU,CAACI,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC3B,OAAOF,UAAU;IACrB;IACAA,UAAU,CAACK,IAAI,CAACH,IAAI,CAAC;IACrB,OAAOF,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;EAEV,IAAIH,UAAU,CAACS,MAAM,KAAK,CAAC,EAAE;IACzBT,UAAU,CAACQ,IAAI,CAAC,QAAQ,CAAC;EAC7B;EACA,OAAO,aAAe;AAC1B;AACA,aAAaR,UAAU,CAACU,IAAI,CAAC,IAAI,CAAE;AACnC;AACA,KAAK;AACL,CAAC;AAED,MAAMC,YAAY,GAAIZ,OAAyB,IAAyC;EACpF,MAAMa,iBAAiB,GAAGd,uBAAuB,CAACC,OAAO,CAAC;EAE1D,MAAMc,SAAS,GAAG,IAAAC,qCAA4B,EAAC;IAC3CC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcH,iBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDI,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACR,IAAI,GAAG,kCAAkC;EACnD,MAAMY,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDH,QAAQ,EAAEF,SAAS,CAACM,MAAM,CAACJ,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACM,MAAM,CAACH;EAChC,CAAC,CAAC;EACFC,UAAU,CAACZ,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACQ,SAAS,EAAEI,UAAU,CAAC;AAClC,CAAC;AAEM,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;EAClC,OAAO,IAAIC,kBAAa,CAAC,MAAMC,OAAO,IAAI;IACtCA,OAAO,CAACvB,OAAO,CAACwB,QAAQ,CAAC,GAAGZ,YAAY,CAACW,OAAO,CAACvB,OAAO,CAAC,CAAC;EAC9D,CAAC,CAAC;AACN,CAAC;AAACyB,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { CmsContext } from "../../types";
2
- import { CmsGraphQLSchemaPlugin } from "../../plugins";
2
+ import { ICmsGraphQLSchemaPlugin } from "../../plugins";
3
3
  interface Params {
4
4
  context: CmsContext;
5
5
  }
6
- export declare const createContentEntriesSchema: ({ context }: Params) => CmsGraphQLSchemaPlugin<CmsContext>;
6
+ export declare const createContentEntriesSchema: ({ context }: Params) => ICmsGraphQLSchemaPlugin<CmsContext>;
7
7
  export {};
@@ -210,7 +210,7 @@ const createContentEntriesSchema = ({
210
210
  context
211
211
  }) => {
212
212
  if (!context.cms.MANAGE) {
213
- const plugin = new _plugins.CmsGraphQLSchemaPlugin({
213
+ const plugin = (0, _plugins.createCmsGraphQLSchemaPlugin)({
214
214
  typeDefs: "",
215
215
  resolvers: {}
216
216
  });
@@ -222,7 +222,7 @@ const createContentEntriesSchema = ({
222
222
  const fieldType = (0, _constants.isDateTimeEntryMetaField)(field) ? "DateTime" : "CmsIdentity";
223
223
  return `${field}: ${fieldType}${isNullable}`;
224
224
  }).join("\n");
225
- const plugin = new _plugins.CmsGraphQLSchemaPlugin({
225
+ const plugin = (0, _plugins.createCmsGraphQLSchemaPlugin)({
226
226
  // Had to remove /* GraphQL */ because prettier would not format the code correctly.
227
227
  typeDefs: `
228
228
  type CmsModelMeta {
@@ -1 +1 @@
1
- {"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_apiSecurity","_getEntryTitle","_plugins","_getEntryDescription","_getEntryImage","_entryStorage","_constants","createDate","date","Date","createCmsEntryRecord","model","entry","id","entryId","modelId","name","status","title","getEntryTitle","description","getEntryDescription","image","getEntryImage","createdOn","modifiedOn","savedOn","createdBy","savedBy","modifiedBy","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","wbyAco_location","folderId","location","getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","argsEntries","entries","entriesByModel","ref","includes","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","filter","Boolean","ex","ErrorResponse","getContentEntry","find","m","NotAuthorizedResponse","data","result","shift","createResolveDescription","parent","_","field","fields","f","fieldId","descriptionFieldId","value","entryFieldFromStorageTransform","createContentEntriesSchema","MANAGE","plugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","onByMetaFields","ENTRY_META_FIELDS","isNullable","isNullableEntryMetaField","fieldType","isDateTimeEntryMetaField","join","CmsContentEntry","getPublishedEntriesByIds","CmsPublishedContentEntry","Query","searchContentEntries","modelIds","query","limit","modelManager","getEntryManager","where","listLatest","search","undefined","then","sort","a","b","getTime","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries","exports"],"sources":["contentEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsEntry, CmsEntryListWhere, CmsIdentity, CmsModel } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { getEntryDescription } from \"~/utils/getEntryDescription\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { ENTRY_META_FIELDS, isNullableEntryMetaField, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\nconst createDate = (date: string | null): Date | null => {\n if (!date) {\n return null;\n }\n\n try {\n return new Date(date);\n } catch {\n return new Date();\n }\n};\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n description?: string | null;\n image?: string | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: Date;\n modifiedOn: Date | null;\n savedOn: Date;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n firstPublishedOn: Date | null;\n lastPublishedOn: Date | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: Date;\n revisionModifiedOn: Date | null;\n revisionSavedOn: Date;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionFirstPublishedOn: Date | null;\n revisionLastPublishedOn: Date | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n wbyAco_location?: {\n folderId?: string | null;\n };\n}\n\nconst createCmsEntryRecord = (model: CmsModel, entry: CmsEntry): CmsEntryRecord => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n description: getEntryDescription(model, entry),\n image: getEntryImage(model, entry),\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: createDate(entry.createdOn)!,\n modifiedOn: createDate(entry.modifiedOn),\n savedOn: createDate(entry.savedOn)!,\n createdBy: entry.createdBy,\n savedBy: entry.savedBy,\n modifiedBy: entry.modifiedBy,\n firstPublishedOn: createDate(entry.firstPublishedOn),\n lastPublishedOn: createDate(entry.lastPublishedOn),\n firstPublishedBy: entry.firstPublishedBy,\n lastPublishedBy: entry.lastPublishedBy,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: createDate(entry.revisionCreatedOn)!,\n revisionSavedOn: createDate(entry.revisionSavedOn)!,\n revisionModifiedOn: createDate(entry.revisionModifiedOn),\n revisionCreatedBy: entry.revisionCreatedBy,\n revisionModifiedBy: entry.revisionModifiedBy,\n revisionSavedBy: entry.revisionSavedBy,\n revisionFirstPublishedOn: createDate(entry.revisionFirstPublishedOn),\n revisionLastPublishedOn: createDate(entry.revisionLastPublishedOn),\n revisionFirstPublishedBy: entry.revisionFirstPublishedBy,\n revisionLastPublishedBy: entry.revisionLastPublishedBy,\n\n wbyAco_location: {\n folderId: entry.location?.folderId || null\n }\n };\n};\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\n\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\n\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (\n params: GetContentEntriesParams\n): Promise<Response | ErrorResponse> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n try {\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce<CmsEntryRecord[]>((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return createCmsEntryRecord(model, item);\n })\n );\n }, [])\n .filter(Boolean);\n\n return new Response(entries);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\n\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response<CmsEntryRecord | null> | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response(createCmsEntryRecord(model, entry));\n};\n/**\n * As we support description field, we need to transform the value from storage.\n */\nconst createResolveDescription = (): Resolvers<CmsContext> => {\n return async (parent, _, context) => {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return null;\n }\n const value = parent.description || parent[field.fieldId];\n if (!value) {\n return null;\n }\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n };\n};\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createContentEntriesSchema = ({\n context\n}: Params): CmsGraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;\n return plugin;\n }\n\n const onByMetaFields = ENTRY_META_FIELDS.map(field => {\n const isNullable = isNullableEntryMetaField(field) ? \"\" : \"!\";\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}${isNullable}`;\n }).join(\"\\n\");\n\n const plugin = new CmsGraphQLSchemaPlugin({\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n typeDefs: `\n type CmsModelMeta {\n modelId: String!\n name: String!\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n description: String\n image: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta!\n status: String!\n published: CmsPublishedContentEntry\n title: String!\n description: String\n image: String\n \n ${onByMetaFields}\n \n wbyAco_location: WbyAcoLocation\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry!]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse!\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse!\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return createCmsEntryRecord(model, entry);\n } catch (ex) {\n return null;\n }\n },\n description: createResolveDescription()\n },\n CmsPublishedContentEntry: {\n description: createResolveDescription()\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getEntryManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return createCmsEntryRecord(model, entry);\n });\n });\n\n try {\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => b.savedOn.getTime() - a.savedOn.getTime())\n .slice(0, limit)\n );\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;\n\n return plugin;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_handlerGraphql","_apiSecurity","_getEntryTitle","_plugins","_getEntryDescription","_getEntryImage","_entryStorage","_constants","createDate","date","Date","createCmsEntryRecord","model","entry","id","entryId","modelId","name","status","title","getEntryTitle","description","getEntryDescription","image","getEntryImage","createdOn","modifiedOn","savedOn","createdBy","savedBy","modifiedBy","firstPublishedOn","lastPublishedOn","firstPublishedBy","lastPublishedBy","revisionCreatedOn","revisionSavedOn","revisionModifiedOn","revisionCreatedBy","revisionModifiedBy","revisionSavedBy","revisionFirstPublishedOn","revisionLastPublishedOn","revisionFirstPublishedBy","revisionLastPublishedBy","wbyAco_location","folderId","location","getFetchMethod","type","context","getContentEntriesMethods","WebinyError","methodName","cms","GetContentEntryMethods","latest","published","exact","getContentEntries","params","args","method","models","listModels","modelsMap","reduce","collection","argsEntries","entries","entriesByModel","ref","includes","push","getters","Object","keys","map","length","Response","results","Promise","all","items","concat","item","filter","Boolean","ex","ErrorResponse","getContentEntry","find","m","NotAuthorizedResponse","data","result","shift","createResolveDescription","parent","_","field","fields","f","fieldId","descriptionFieldId","value","entryFieldFromStorageTransform","createContentEntriesSchema","MANAGE","plugin","createCmsGraphQLSchemaPlugin","typeDefs","resolvers","onByMetaFields","ENTRY_META_FIELDS","isNullable","isNullableEntryMetaField","fieldType","isDateTimeEntryMetaField","join","CmsContentEntry","getPublishedEntriesByIds","CmsPublishedContentEntry","Query","searchContentEntries","modelIds","query","limit","modelManager","getEntryManager","where","listLatest","search","undefined","then","sort","a","b","getTime","slice","getLatestContentEntry","getPublishedContentEntry","getLatestContentEntries","getPublishedContentEntries","exports"],"sources":["contentEntries.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport { ErrorResponse, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext, CmsEntry, CmsEntryListWhere, CmsIdentity, CmsModel } from \"~/types\";\nimport { NotAuthorizedResponse } from \"@webiny/api-security\";\nimport { getEntryTitle } from \"~/utils/getEntryTitle\";\nimport { createCmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { getEntryDescription } from \"~/utils/getEntryDescription\";\nimport { getEntryImage } from \"~/utils/getEntryImage\";\nimport { entryFieldFromStorageTransform } from \"~/utils/entryStorage\";\nimport { Resolvers } from \"@webiny/handler-graphql/types\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField, isNullableEntryMetaField } from \"~/constants\";\n\ninterface EntriesByModel {\n [key: string]: string[];\n}\n\ntype GetContentEntryType = \"latest\" | \"published\" | \"exact\";\n\nconst createDate = (date: string | null): Date | null => {\n if (!date) {\n return null;\n }\n\n try {\n return new Date(date);\n } catch {\n return new Date();\n }\n};\n\ninterface CmsEntryRecord {\n id: string;\n entryId: string;\n model: {\n modelId: string;\n name: string;\n };\n status: string;\n title: string;\n description?: string | null;\n image?: string | null;\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: Date;\n modifiedOn: Date | null;\n savedOn: Date;\n createdBy: CmsIdentity;\n modifiedBy: CmsIdentity | null;\n savedBy: CmsIdentity;\n firstPublishedOn: Date | null;\n lastPublishedOn: Date | null;\n firstPublishedBy: CmsIdentity | null;\n lastPublishedBy: CmsIdentity | null;\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: Date;\n revisionModifiedOn: Date | null;\n revisionSavedOn: Date;\n revisionCreatedBy: CmsIdentity;\n revisionModifiedBy: CmsIdentity | null;\n revisionSavedBy: CmsIdentity;\n revisionFirstPublishedOn: Date | null;\n revisionLastPublishedOn: Date | null;\n revisionFirstPublishedBy: CmsIdentity | null;\n revisionLastPublishedBy: CmsIdentity | null;\n\n wbyAco_location?: {\n folderId?: string | null;\n };\n}\n\nconst createCmsEntryRecord = (model: CmsModel, entry: CmsEntry): CmsEntryRecord => {\n return {\n id: entry.id,\n entryId: entry.entryId,\n model: {\n modelId: model.modelId,\n name: model.name\n },\n status: entry.status,\n title: getEntryTitle(model, entry),\n description: getEntryDescription(model, entry),\n image: getEntryImage(model, entry),\n\n /**\n * Entry-level meta fields. 👇\n */\n createdOn: createDate(entry.createdOn)!,\n modifiedOn: createDate(entry.modifiedOn),\n savedOn: createDate(entry.savedOn)!,\n createdBy: entry.createdBy,\n savedBy: entry.savedBy,\n modifiedBy: entry.modifiedBy,\n firstPublishedOn: createDate(entry.firstPublishedOn),\n lastPublishedOn: createDate(entry.lastPublishedOn),\n firstPublishedBy: entry.firstPublishedBy,\n lastPublishedBy: entry.lastPublishedBy,\n\n /**\n * Revision-level meta fields. 👇\n */\n revisionCreatedOn: createDate(entry.revisionCreatedOn)!,\n revisionSavedOn: createDate(entry.revisionSavedOn)!,\n revisionModifiedOn: createDate(entry.revisionModifiedOn),\n revisionCreatedBy: entry.revisionCreatedBy,\n revisionModifiedBy: entry.revisionModifiedBy,\n revisionSavedBy: entry.revisionSavedBy,\n revisionFirstPublishedOn: createDate(entry.revisionFirstPublishedOn),\n revisionLastPublishedOn: createDate(entry.revisionLastPublishedOn),\n revisionFirstPublishedBy: entry.revisionFirstPublishedBy,\n revisionLastPublishedBy: entry.revisionLastPublishedBy,\n\n wbyAco_location: {\n folderId: entry.location?.folderId || null\n }\n };\n};\n\ninterface FetchMethod {\n (model: CmsModel, ids: string[]): Promise<CmsEntry[]>;\n}\n\nconst getFetchMethod = (type: GetContentEntryType, context: CmsContext): FetchMethod => {\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntries method \"${type}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type\n }\n );\n }\n const methodName = getContentEntriesMethods[type] as GetContentEntryMethods;\n if (!context.cms[methodName]) {\n throw new WebinyError(\n `Unknown context.cms method \"${methodName}\". Could not fetch content entries.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n type,\n methodName\n }\n );\n }\n\n return context.cms[methodName];\n};\n\n/**\n * Function to get the list of content entries depending on latest, published or exact GraphQL queries.\n */\ninterface GetContentEntriesParams {\n args: {\n entries: Pick<CmsEntry, \"id\" | \"modelId\">[];\n };\n context: CmsContext;\n type: GetContentEntryType;\n}\n\nenum GetContentEntryMethods {\n getLatestEntriesByIds = \"getLatestEntriesByIds\",\n getPublishedEntriesByIds = \"getPublishedEntriesByIds\",\n getEntriesByIds = \"getEntriesByIds\"\n}\n\nconst getContentEntriesMethods = {\n latest: \"getLatestEntriesByIds\",\n published: \"getPublishedEntriesByIds\",\n exact: \"getEntriesByIds\"\n};\nconst getContentEntries = async (\n params: GetContentEntriesParams\n): Promise<Response | ErrorResponse> => {\n const { args, context, type } = params;\n\n const method = getFetchMethod(type, context);\n\n const models = await context.cms.listModels();\n\n const modelsMap = models.reduce((collection, model) => {\n collection[model.modelId] = model;\n return collection;\n }, {} as Record<string, CmsModel>);\n\n const argsEntries = args.entries as Pick<CmsEntry, \"id\" | \"modelId\">[];\n\n const entriesByModel = argsEntries.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.id)) {\n return collection;\n }\n collection[ref.modelId].push(ref.id);\n return collection;\n }, {} as EntriesByModel);\n\n const getters: Promise<CmsEntry[]>[] = Object.keys(entriesByModel).map(async modelId => {\n return method(modelsMap[modelId], entriesByModel[modelId]);\n });\n\n if (getters.length === 0) {\n return new Response([]);\n }\n\n try {\n const results = await Promise.all(getters);\n\n const entries = results\n .reduce<CmsEntryRecord[]>((collection, items) => {\n return collection.concat(\n items.map(item => {\n const model = modelsMap[item.modelId];\n\n return createCmsEntryRecord(model, item);\n })\n );\n }, [])\n .filter(Boolean);\n\n return new Response(entries);\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\n/**\n * Function to fetch a single content entry depending on latest, published or exact GraphQL query.\n */\ninterface GetContentEntryParams {\n args: {\n entry: Pick<CmsEntry, \"id\" | \"modelId\">;\n };\n context: CmsContext;\n type: \"latest\" | \"published\" | \"exact\";\n}\n\nconst getContentEntry = async (\n params: GetContentEntryParams\n): Promise<Response<CmsEntryRecord | null> | NotAuthorizedResponse> => {\n const { args, context, type } = params;\n if (!getContentEntriesMethods[type]) {\n throw new WebinyError(\n `Unknown getContentEntry method \"${type}\". Could not fetch content entry.`,\n \"UNKNOWN_METHOD_ERROR\",\n {\n args,\n type\n }\n );\n }\n\n const method = getFetchMethod(type, context);\n\n const { modelId, id } = args.entry;\n const models = await context.cms.listModels();\n const model = models.find(m => m.modelId === modelId);\n\n if (!model) {\n return new NotAuthorizedResponse({\n data: {\n modelId\n }\n });\n }\n\n const result = await method(model, [id]);\n\n const entry = result.shift();\n if (!entry) {\n return new Response(null);\n }\n\n return new Response(createCmsEntryRecord(model, entry));\n};\n/**\n * As we support description field, we need to transform the value from storage.\n */\nconst createResolveDescription = (): Resolvers<CmsContext> => {\n return async (parent, _, context) => {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const field = model.fields.find(f => f.fieldId === model.descriptionFieldId);\n if (!field) {\n return null;\n }\n const value = parent.description || parent[field.fieldId];\n if (!value) {\n return null;\n }\n return entryFieldFromStorageTransform({\n context,\n model,\n field,\n value\n });\n };\n};\n\ninterface Params {\n context: CmsContext;\n}\n\nexport const createContentEntriesSchema = ({\n context\n}: Params): ICmsGraphQLSchemaPlugin<CmsContext> => {\n if (!context.cms.MANAGE) {\n const plugin = createCmsGraphQLSchemaPlugin({\n typeDefs: \"\",\n resolvers: {}\n });\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;\n return plugin;\n }\n\n const onByMetaFields = ENTRY_META_FIELDS.map(field => {\n const isNullable = isNullableEntryMetaField(field) ? \"\" : \"!\";\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}${isNullable}`;\n }).join(\"\\n\");\n\n const plugin = createCmsGraphQLSchemaPlugin({\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n typeDefs: `\n type CmsModelMeta {\n modelId: String!\n name: String!\n }\n\n type CmsPublishedContentEntry {\n id: ID!\n entryId: String!\n title: String\n description: String\n image: String\n }\n\n type CmsContentEntry {\n id: ID!\n entryId: String!\n model: CmsModelMeta!\n status: String!\n published: CmsPublishedContentEntry\n title: String!\n description: String\n image: String\n \n ${onByMetaFields}\n \n wbyAco_location: WbyAcoLocation\n }\n\n type CmsContentEntriesResponse {\n data: [CmsContentEntry!]\n error: CmsError\n }\n\n type CmsContentEntryResponse {\n data: CmsContentEntry\n error: CmsError\n }\n\n input CmsModelEntryInput {\n modelId: ID!\n id: ID!\n }\n\n extend type Query {\n # Search content entries for given content models using the query string.\n searchContentEntries(\n modelIds: [ID!]!\n query: String\n fields: [String!]\n limit: Int\n ): CmsContentEntriesResponse!\n\n # Get content entry meta data\n getContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n getLatestContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n getPublishedContentEntry(entry: CmsModelEntryInput!): CmsContentEntryResponse!\n\n # Get content entries meta data\n getContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getLatestContentEntries(entries: [CmsModelEntryInput!]!): CmsContentEntriesResponse!\n getPublishedContentEntries(\n entries: [CmsModelEntryInput!]!\n ): CmsContentEntriesResponse!\n }\n `,\n resolvers: {\n CmsContentEntry: {\n published: async (parent, _, context) => {\n try {\n const models = await context.cms.listModels();\n const model = models.find(({ modelId }) => {\n return parent.model.modelId === modelId;\n });\n if (!model) {\n return null;\n }\n const [entry] = await context.cms.getPublishedEntriesByIds(model, [\n parent.id\n ]);\n if (!entry) {\n return null;\n }\n return createCmsEntryRecord(model, entry);\n } catch (ex) {\n return null;\n }\n },\n description: createResolveDescription()\n },\n CmsPublishedContentEntry: {\n description: createResolveDescription()\n },\n Query: {\n async searchContentEntries(_, args: any, context) {\n const { modelIds, fields, query, limit = 10 } = args;\n const models = await context.cms.listModels();\n\n const getters = models\n .filter(model => modelIds.includes(model.modelId))\n .map(async model => {\n const modelManager = await context.cms.getEntryManager(model.modelId);\n const where: CmsEntryListWhere = {};\n\n const [items] = await modelManager.listLatest({\n limit,\n where,\n search: !!query ? query : undefined,\n fields: fields || []\n });\n\n return items.map((entry: CmsEntry) => {\n return createCmsEntryRecord(model, entry);\n });\n });\n\n try {\n const entries = await Promise.all(getters).then(results =>\n results.reduce((result, item) => result.concat(item), [])\n );\n\n return new Response(\n entries\n .sort((a, b) => b.savedOn.getTime() - a.savedOn.getTime())\n .slice(0, limit)\n );\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n },\n async getContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntry(_, args: any, context) {\n return getContentEntry({\n args,\n context,\n type: \"published\"\n });\n },\n async getContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"exact\"\n });\n },\n async getLatestContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"latest\"\n });\n },\n async getPublishedContentEntries(_, args: any, context) {\n return getContentEntries({\n args,\n context,\n type: \"published\"\n });\n }\n }\n }\n });\n\n plugin.name = `headless-cms.graphql.schema.${context.cms.type}.content-entries`;\n\n return plugin;\n};\n"],"mappings":"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","ignoreList":[]}