@strapi/upload 5.37.0 → 5.38.0

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 (526) hide show
  1. package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
  2. package/dist/admin/ai/components/AIAssetCard.mjs +1 -1
  3. package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
  4. package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
  5. package/dist/admin/ai/components/AIUploadModal.mjs +1 -1
  6. package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
  7. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  8. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  9. package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
  10. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
  11. package/dist/admin/components/AssetCard/AudioAssetCard.js.map +1 -1
  12. package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +1 -1
  13. package/dist/admin/components/AssetCard/AudioPreview.js.map +1 -1
  14. package/dist/admin/components/AssetCard/AudioPreview.mjs.map +1 -1
  15. package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -1
  16. package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -1
  17. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  18. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  19. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  20. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  21. package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
  22. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
  23. package/dist/admin/components/AssetCard/VideoPreview.js.map +1 -1
  24. package/dist/admin/components/AssetCard/VideoPreview.mjs.map +1 -1
  25. package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -1
  26. package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
  27. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +1 -1
  28. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  29. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +1 -1
  30. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  31. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
  32. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  33. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +1 -1
  34. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -1
  35. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -1
  36. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -1
  37. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -1
  38. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -1
  39. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
  40. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
  41. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -1
  42. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -1
  43. package/dist/admin/components/AssetDialog/DialogFooter.js.map +1 -1
  44. package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +1 -1
  45. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
  46. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
  47. package/dist/admin/components/AssetGridList/AssetGridList.js.map +1 -1
  48. package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +1 -1
  49. package/dist/admin/components/AssetGridList/Draggable.js.map +1 -1
  50. package/dist/admin/components/AssetGridList/Draggable.mjs.map +1 -1
  51. package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  52. package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  53. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
  54. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
  55. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  56. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  57. package/dist/admin/components/ContextInfo/ContextInfo.js.map +1 -1
  58. package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +1 -1
  59. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
  60. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +1 -1
  62. package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  64. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  65. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  66. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  67. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
  68. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
  69. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
  70. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
  71. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +1 -4
  72. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  73. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +1 -4
  74. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  75. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -1
  76. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -1
  77. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -1
  78. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -1
  79. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
  80. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
  81. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
  82. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
  83. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
  84. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
  85. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -1
  86. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -1
  87. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -1
  88. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -1
  89. package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +1 -1
  90. package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +1 -1
  91. package/dist/admin/components/FilterList/FilterList.js.map +1 -1
  92. package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
  93. package/dist/admin/components/FilterList/FilterTag.js.map +1 -1
  94. package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -1
  95. package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -1
  96. package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +1 -1
  97. package/dist/admin/components/FilterPopover/FilterValueInput.js.map +1 -1
  98. package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +1 -1
  99. package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +1 -1
  100. package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +1 -1
  101. package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +1 -1
  102. package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -1
  103. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -1
  104. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -1
  105. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -1
  106. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -1
  107. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -1
  108. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -1
  109. package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +1 -1
  110. package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +1 -1
  111. package/dist/admin/components/FolderGridList/FolderGridList.js.map +1 -1
  112. package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +1 -1
  113. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -1
  114. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -1
  115. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  116. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  117. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
  118. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
  119. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
  120. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
  121. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  122. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  123. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  124. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  125. package/dist/admin/components/SelectTree/Option.js.map +1 -1
  126. package/dist/admin/components/SelectTree/Option.mjs.map +1 -1
  127. package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
  128. package/dist/admin/components/SelectTree/SelectTree.mjs +1 -1
  129. package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -1
  130. package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -1
  131. package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -1
  132. package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +1 -1
  133. package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +1 -1
  134. package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +1 -1
  135. package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +1 -1
  136. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  137. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  138. package/dist/admin/components/TableList/CellContent.js.map +1 -1
  139. package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
  140. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  141. package/dist/admin/components/TableList/PreviewCell.mjs +1 -1
  142. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  143. package/dist/admin/components/TableList/TableList.js.map +1 -1
  144. package/dist/admin/components/TableList/TableList.mjs +1 -1
  145. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  146. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  147. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  148. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
  149. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
  150. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  151. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  152. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
  153. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
  154. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
  155. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  156. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -1
  157. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -1
  158. package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -1
  159. package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -1
  160. package/dist/admin/constants.js.map +1 -1
  161. package/dist/admin/constants.mjs.map +1 -1
  162. package/dist/admin/future/App.js.map +1 -1
  163. package/dist/admin/future/App.mjs.map +1 -1
  164. package/dist/admin/future/components/Drawer.js +189 -0
  165. package/dist/admin/future/components/Drawer.js.map +1 -0
  166. package/dist/admin/future/components/Drawer.mjs +166 -0
  167. package/dist/admin/future/components/Drawer.mjs.map +1 -0
  168. package/dist/admin/future/components/UploadProgressDialog.js +60 -101
  169. package/dist/admin/future/components/UploadProgressDialog.js.map +1 -1
  170. package/dist/admin/future/components/UploadProgressDialog.mjs +62 -84
  171. package/dist/admin/future/components/UploadProgressDialog.mjs.map +1 -1
  172. package/dist/admin/future/pages/Assets/AssetsPage.js +155 -100
  173. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
  174. package/dist/admin/future/pages/Assets/AssetsPage.mjs +160 -105
  175. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
  176. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +406 -0
  177. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -0
  178. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +384 -0
  179. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -0
  180. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +215 -0
  181. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -0
  182. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +194 -0
  183. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -0
  184. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +37 -8
  185. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
  186. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +38 -9
  187. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  188. package/dist/admin/future/pages/Assets/components/AssetsTable.js +35 -5
  189. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
  190. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +37 -7
  191. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
  192. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js +143 -0
  193. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.js.map +1 -0
  194. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs +141 -0
  195. package/dist/admin/future/pages/Assets/components/CreateFolderDialog.mjs.map +1 -0
  196. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -1
  197. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -1
  198. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
  199. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
  200. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js +127 -0
  201. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +1 -0
  202. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs +106 -0
  203. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs.map +1 -0
  204. package/dist/admin/future/pages/Assets/constants.js.map +1 -1
  205. package/dist/admin/future/pages/Assets/constants.mjs.map +1 -1
  206. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +1 -1
  207. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +1 -1
  208. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  209. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  210. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -1
  211. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -1
  212. package/dist/admin/future/services/api.js +181 -97
  213. package/dist/admin/future/services/api.js.map +1 -1
  214. package/dist/admin/future/services/api.mjs +181 -98
  215. package/dist/admin/future/services/api.mjs.map +1 -1
  216. package/dist/admin/future/services/assets.js +14 -1
  217. package/dist/admin/future/services/assets.js.map +1 -1
  218. package/dist/admin/future/services/assets.mjs +14 -2
  219. package/dist/admin/future/services/assets.mjs.map +1 -1
  220. package/dist/admin/future/services/folders.js +16 -1
  221. package/dist/admin/future/services/folders.js.map +1 -1
  222. package/dist/admin/future/services/folders.mjs +16 -2
  223. package/dist/admin/future/services/folders.mjs.map +1 -1
  224. package/dist/admin/future/store/hooks.js.map +1 -1
  225. package/dist/admin/future/store/hooks.mjs.map +1 -1
  226. package/dist/admin/future/store/uploadProgress.js +7 -4
  227. package/dist/admin/future/store/uploadProgress.js.map +1 -1
  228. package/dist/admin/future/store/uploadProgress.mjs +7 -4
  229. package/dist/admin/future/store/uploadProgress.mjs.map +1 -1
  230. package/dist/admin/future/utils/files.js +105 -3
  231. package/dist/admin/future/utils/files.js.map +1 -1
  232. package/dist/admin/future/utils/files.mjs +104 -4
  233. package/dist/admin/future/utils/files.mjs.map +1 -1
  234. package/dist/admin/future/utils/getAssetIcon.js +3 -3
  235. package/dist/admin/future/utils/getAssetIcon.js.map +1 -1
  236. package/dist/admin/future/utils/getAssetIcon.mjs +4 -4
  237. package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -1
  238. package/dist/admin/future/utils/translations.js.map +1 -1
  239. package/dist/admin/future/utils/translations.mjs.map +1 -1
  240. package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
  241. package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
  242. package/dist/admin/hooks/useAiAvailability.js.map +1 -1
  243. package/dist/admin/hooks/useAiAvailability.mjs.map +1 -1
  244. package/dist/admin/hooks/useAssets.js.map +1 -1
  245. package/dist/admin/hooks/useAssets.mjs.map +1 -1
  246. package/dist/admin/hooks/useBulkEdit.js.map +1 -1
  247. package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
  248. package/dist/admin/hooks/useBulkMove.js.map +1 -1
  249. package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
  250. package/dist/admin/hooks/useBulkRemove.js.map +1 -1
  251. package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
  252. package/dist/admin/hooks/useConfig.js.map +1 -1
  253. package/dist/admin/hooks/useConfig.mjs.map +1 -1
  254. package/dist/admin/hooks/useCropImg.js.map +1 -1
  255. package/dist/admin/hooks/useCropImg.mjs.map +1 -1
  256. package/dist/admin/hooks/useEditAsset.js.map +1 -1
  257. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  258. package/dist/admin/hooks/useEditFolder.js.map +1 -1
  259. package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
  260. package/dist/admin/hooks/useFolder.js.map +1 -1
  261. package/dist/admin/hooks/useFolder.mjs.map +1 -1
  262. package/dist/admin/hooks/useFolderStructure.js.map +1 -1
  263. package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
  264. package/dist/admin/hooks/useFolders.js.map +1 -1
  265. package/dist/admin/hooks/useFolders.mjs.map +1 -1
  266. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  267. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  268. package/dist/admin/hooks/useModalQueryParams.js.map +1 -1
  269. package/dist/admin/hooks/useModalQueryParams.mjs.map +1 -1
  270. package/dist/admin/hooks/usePersistentState.js.map +1 -1
  271. package/dist/admin/hooks/usePersistentState.mjs.map +1 -1
  272. package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
  273. package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
  274. package/dist/admin/hooks/useSelectionState.js.map +1 -1
  275. package/dist/admin/hooks/useSelectionState.mjs.map +1 -1
  276. package/dist/admin/hooks/useSettings.js.map +1 -1
  277. package/dist/admin/hooks/useSettings.mjs.map +1 -1
  278. package/dist/admin/hooks/useTracking.js.map +1 -1
  279. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  280. package/dist/admin/hooks/useUpload.js.map +1 -1
  281. package/dist/admin/hooks/useUpload.mjs.map +1 -1
  282. package/dist/admin/hooks/utils/renameKeys.js.map +1 -1
  283. package/dist/admin/hooks/utils/renameKeys.mjs.map +1 -1
  284. package/dist/admin/index.js.map +1 -1
  285. package/dist/admin/index.mjs.map +1 -1
  286. package/dist/admin/package.json.js +1 -152
  287. package/dist/admin/package.json.js.map +1 -1
  288. package/dist/admin/package.json.mjs +2 -141
  289. package/dist/admin/package.json.mjs.map +1 -1
  290. package/dist/admin/pages/App/App.js.map +1 -1
  291. package/dist/admin/pages/App/App.mjs.map +1 -1
  292. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  293. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +3 -3
  294. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  295. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  296. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  297. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -1
  298. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -1
  299. package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +1 -1
  300. package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +1 -1
  301. package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +1 -1
  302. package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +1 -1
  303. package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +1 -1
  304. package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs +1 -1
  305. package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -1
  306. package/dist/admin/pages/App/MediaLibrary.js +1 -1
  307. package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
  308. package/dist/admin/pages/App/MediaLibrary.mjs +2 -2
  309. package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
  310. package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
  311. package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
  312. package/dist/admin/pages/App/components/BulkDeleteButton.js.map +1 -1
  313. package/dist/admin/pages/App/components/BulkDeleteButton.mjs.map +1 -1
  314. package/dist/admin/pages/App/components/BulkMoveButton.js.map +1 -1
  315. package/dist/admin/pages/App/components/BulkMoveButton.mjs.map +1 -1
  316. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
  317. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
  318. package/dist/admin/pages/App/components/Filters.js.map +1 -1
  319. package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
  320. package/dist/admin/pages/App/components/Header.js.map +1 -1
  321. package/dist/admin/pages/App/components/Header.mjs +2 -2
  322. package/dist/admin/pages/App/components/Header.mjs.map +1 -1
  323. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  324. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  325. package/dist/admin/pages/SettingsPage/reducer.js.map +1 -1
  326. package/dist/admin/pages/SettingsPage/reducer.mjs.map +1 -1
  327. package/dist/admin/pluginId.js.map +1 -1
  328. package/dist/admin/pluginId.mjs.map +1 -1
  329. package/dist/admin/src/future/components/Drawer.d.ts +32 -0
  330. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +8 -0
  331. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetPreview.d.ts +6 -0
  332. package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +2 -1
  333. package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +2 -1
  334. package/dist/admin/src/future/pages/Assets/components/CreateFolderDialog.d.ts +8 -0
  335. package/dist/admin/src/future/pages/Assets/components/ImportFromUrlDialog.d.ts +7 -0
  336. package/dist/admin/src/future/services/api.d.ts +10 -1
  337. package/dist/admin/src/future/services/assets.d.ts +2 -2
  338. package/dist/admin/src/future/services/folders.d.ts +1 -1
  339. package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
  340. package/dist/admin/src/future/utils/files.d.ts +70 -0
  341. package/dist/admin/translations/en.json.js +35 -3
  342. package/dist/admin/translations/en.json.js.map +1 -1
  343. package/dist/admin/translations/en.json.mjs +35 -3
  344. package/dist/admin/translations/en.json.mjs.map +1 -1
  345. package/dist/admin/translations/es.json.js +1 -1
  346. package/dist/admin/translations/es.json.mjs +1 -1
  347. package/dist/admin/utils/appendSearchParamsToUrl.js.map +1 -1
  348. package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +1 -1
  349. package/dist/admin/utils/containsAssetFilter.js.map +1 -1
  350. package/dist/admin/utils/containsAssetFilter.mjs.map +1 -1
  351. package/dist/admin/utils/createAssetUrl.js.map +1 -1
  352. package/dist/admin/utils/createAssetUrl.mjs.map +1 -1
  353. package/dist/admin/utils/displayedFilters.js.map +1 -1
  354. package/dist/admin/utils/displayedFilters.mjs.map +1 -1
  355. package/dist/admin/utils/downloadFile.js.map +1 -1
  356. package/dist/admin/utils/downloadFile.mjs.map +1 -1
  357. package/dist/admin/utils/findRecursiveFolderByValue.js.map +1 -1
  358. package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +1 -1
  359. package/dist/admin/utils/formatBytes.js.map +1 -1
  360. package/dist/admin/utils/formatBytes.mjs.map +1 -1
  361. package/dist/admin/utils/formatDuration.js.map +1 -1
  362. package/dist/admin/utils/formatDuration.mjs.map +1 -1
  363. package/dist/admin/utils/getAPIInnerErrors.js.map +1 -1
  364. package/dist/admin/utils/getAPIInnerErrors.mjs.map +1 -1
  365. package/dist/admin/utils/getAllowedFiles.js.map +1 -1
  366. package/dist/admin/utils/getAllowedFiles.mjs.map +1 -1
  367. package/dist/admin/utils/getBreadcrumbDataCM.js.map +1 -1
  368. package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +1 -1
  369. package/dist/admin/utils/getBreadcrumbDataML.js.map +1 -1
  370. package/dist/admin/utils/getBreadcrumbDataML.mjs.map +1 -1
  371. package/dist/admin/utils/getFileExtension.js.map +1 -1
  372. package/dist/admin/utils/getFileExtension.mjs.map +1 -1
  373. package/dist/admin/utils/getFolderParents.js.map +1 -1
  374. package/dist/admin/utils/getFolderParents.mjs.map +1 -1
  375. package/dist/admin/utils/getFolderURL.js.map +1 -1
  376. package/dist/admin/utils/getFolderURL.mjs.map +1 -1
  377. package/dist/admin/utils/getTrad.js.map +1 -1
  378. package/dist/admin/utils/getTrad.mjs.map +1 -1
  379. package/dist/admin/utils/icons.js.map +1 -1
  380. package/dist/admin/utils/icons.mjs +1 -1
  381. package/dist/admin/utils/icons.mjs.map +1 -1
  382. package/dist/admin/utils/moveElement.js.map +1 -1
  383. package/dist/admin/utils/moveElement.mjs.map +1 -1
  384. package/dist/admin/utils/normalizeAPIError.js.map +1 -1
  385. package/dist/admin/utils/normalizeAPIError.mjs.map +1 -1
  386. package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -1
  387. package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -1
  388. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  389. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  390. package/dist/admin/utils/rawFileToAsset.js.map +1 -1
  391. package/dist/admin/utils/rawFileToAsset.mjs.map +1 -1
  392. package/dist/admin/utils/toSingularTypes.js.map +1 -1
  393. package/dist/admin/utils/toSingularTypes.mjs.map +1 -1
  394. package/dist/admin/utils/typeFromMime.js.map +1 -1
  395. package/dist/admin/utils/typeFromMime.mjs.map +1 -1
  396. package/dist/admin/utils/urlYupSchema.js.map +1 -1
  397. package/dist/admin/utils/urlYupSchema.mjs.map +1 -1
  398. package/dist/admin/utils/urlsToAssets.js.map +1 -1
  399. package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
  400. package/dist/server/bootstrap.js.map +1 -1
  401. package/dist/server/bootstrap.mjs.map +1 -1
  402. package/dist/server/config.js.map +1 -1
  403. package/dist/server/config.mjs.map +1 -1
  404. package/dist/server/constants.js.map +1 -1
  405. package/dist/server/constants.mjs.map +1 -1
  406. package/dist/server/content-types/file.js.map +1 -1
  407. package/dist/server/content-types/file.mjs.map +1 -1
  408. package/dist/server/content-types/folder.js.map +1 -1
  409. package/dist/server/content-types/folder.mjs +1 -1
  410. package/dist/server/content-types/folder.mjs.map +1 -1
  411. package/dist/server/content-types/index.js.map +1 -1
  412. package/dist/server/content-types/index.mjs.map +1 -1
  413. package/dist/server/controllers/admin-file.js.map +1 -1
  414. package/dist/server/controllers/admin-file.mjs +1 -1
  415. package/dist/server/controllers/admin-file.mjs.map +1 -1
  416. package/dist/server/controllers/admin-folder-file.js.map +1 -1
  417. package/dist/server/controllers/admin-folder-file.mjs +2 -2
  418. package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
  419. package/dist/server/controllers/admin-folder.js.map +1 -1
  420. package/dist/server/controllers/admin-folder.mjs +1 -1
  421. package/dist/server/controllers/admin-folder.mjs.map +1 -1
  422. package/dist/server/controllers/admin-settings.js.map +1 -1
  423. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  424. package/dist/server/controllers/admin-upload.js +144 -0
  425. package/dist/server/controllers/admin-upload.js.map +1 -1
  426. package/dist/server/controllers/admin-upload.mjs +147 -3
  427. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  428. package/dist/server/controllers/content-api.js.map +1 -1
  429. package/dist/server/controllers/content-api.mjs.map +1 -1
  430. package/dist/server/controllers/index.js.map +1 -1
  431. package/dist/server/controllers/index.mjs.map +1 -1
  432. package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
  433. package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -1
  434. package/dist/server/controllers/utils/folders.js.map +1 -1
  435. package/dist/server/controllers/utils/folders.mjs.map +1 -1
  436. package/dist/server/controllers/validation/admin/configureView.js.map +1 -1
  437. package/dist/server/controllers/validation/admin/configureView.mjs.map +1 -1
  438. package/dist/server/controllers/validation/admin/folder-file.js.map +1 -1
  439. package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -1
  440. package/dist/server/controllers/validation/admin/folder.js.map +1 -1
  441. package/dist/server/controllers/validation/admin/folder.mjs.map +1 -1
  442. package/dist/server/controllers/validation/admin/settings.js.map +1 -1
  443. package/dist/server/controllers/validation/admin/settings.mjs.map +1 -1
  444. package/dist/server/controllers/validation/admin/upload.js.map +1 -1
  445. package/dist/server/controllers/validation/admin/upload.mjs.map +1 -1
  446. package/dist/server/controllers/validation/admin/utils.js.map +1 -1
  447. package/dist/server/controllers/validation/admin/utils.mjs.map +1 -1
  448. package/dist/server/controllers/validation/content-api/upload.js.map +1 -1
  449. package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -1
  450. package/dist/server/controllers/view-configuration.js.map +1 -1
  451. package/dist/server/controllers/view-configuration.mjs.map +1 -1
  452. package/dist/server/graphql.js.map +1 -1
  453. package/dist/server/graphql.mjs.map +1 -1
  454. package/dist/server/index.js +8 -8
  455. package/dist/server/middlewares/upload.js.map +1 -1
  456. package/dist/server/middlewares/upload.mjs.map +1 -1
  457. package/dist/server/models/ai-metadata-job.js.map +1 -1
  458. package/dist/server/models/ai-metadata-job.mjs.map +1 -1
  459. package/dist/server/register.js.map +1 -1
  460. package/dist/server/register.mjs.map +1 -1
  461. package/dist/server/routes/admin.js +10 -0
  462. package/dist/server/routes/admin.js.map +1 -1
  463. package/dist/server/routes/admin.mjs +10 -0
  464. package/dist/server/routes/admin.mjs.map +1 -1
  465. package/dist/server/routes/content-api.js.map +1 -1
  466. package/dist/server/routes/content-api.mjs.map +1 -1
  467. package/dist/server/routes/index.js.map +1 -1
  468. package/dist/server/routes/index.mjs +4 -4
  469. package/dist/server/routes/index.mjs.map +1 -1
  470. package/dist/server/routes/validation/upload.js.map +1 -1
  471. package/dist/server/routes/validation/upload.mjs.map +1 -1
  472. package/dist/server/routes/view-configuration.js.map +1 -1
  473. package/dist/server/routes/view-configuration.mjs.map +1 -1
  474. package/dist/server/services/ai-metadata-jobs.js.map +1 -1
  475. package/dist/server/services/ai-metadata-jobs.mjs.map +1 -1
  476. package/dist/server/services/ai-metadata.js.map +1 -1
  477. package/dist/server/services/ai-metadata.mjs.map +1 -1
  478. package/dist/server/services/api-upload-folder.js.map +1 -1
  479. package/dist/server/services/api-upload-folder.mjs.map +1 -1
  480. package/dist/server/services/extensions/index.js.map +1 -1
  481. package/dist/server/services/extensions/index.mjs.map +1 -1
  482. package/dist/server/services/extensions/utils.js.map +1 -1
  483. package/dist/server/services/extensions/utils.mjs.map +1 -1
  484. package/dist/server/services/file.js +120 -1
  485. package/dist/server/services/file.js.map +1 -1
  486. package/dist/server/services/file.mjs +122 -3
  487. package/dist/server/services/file.mjs.map +1 -1
  488. package/dist/server/services/folder.js.map +1 -1
  489. package/dist/server/services/folder.mjs +1 -1
  490. package/dist/server/services/folder.mjs.map +1 -1
  491. package/dist/server/services/image-manipulation.js.map +1 -1
  492. package/dist/server/services/image-manipulation.mjs +1 -1
  493. package/dist/server/services/image-manipulation.mjs.map +1 -1
  494. package/dist/server/services/index.js.map +1 -1
  495. package/dist/server/services/index.mjs.map +1 -1
  496. package/dist/server/services/metrics.js.map +1 -1
  497. package/dist/server/services/metrics.mjs.map +1 -1
  498. package/dist/server/services/provider.js.map +1 -1
  499. package/dist/server/services/provider.mjs.map +1 -1
  500. package/dist/server/services/upload.js.map +1 -1
  501. package/dist/server/services/upload.mjs +1 -1
  502. package/dist/server/services/upload.mjs.map +1 -1
  503. package/dist/server/services/weekly-metrics.js.map +1 -1
  504. package/dist/server/services/weekly-metrics.mjs.map +1 -1
  505. package/dist/server/src/controllers/admin-upload.d.ts +13 -0
  506. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  507. package/dist/server/src/controllers/index.d.ts +1 -0
  508. package/dist/server/src/controllers/index.d.ts.map +1 -1
  509. package/dist/server/src/index.d.ts +2 -0
  510. package/dist/server/src/index.d.ts.map +1 -1
  511. package/dist/server/src/routes/admin.d.ts.map +1 -1
  512. package/dist/server/src/services/file.d.ts +15 -0
  513. package/dist/server/src/services/file.d.ts.map +1 -1
  514. package/dist/server/src/services/index.d.ts +1 -0
  515. package/dist/server/src/services/index.d.ts.map +1 -1
  516. package/dist/server/utils/cron.js.map +1 -1
  517. package/dist/server/utils/cron.mjs.map +1 -1
  518. package/dist/server/utils/images.js.map +1 -1
  519. package/dist/server/utils/images.mjs.map +1 -1
  520. package/dist/server/utils/index.js.map +1 -1
  521. package/dist/server/utils/index.mjs.map +1 -1
  522. package/dist/server/utils/mime-validation.js.map +1 -1
  523. package/dist/server/utils/mime-validation.mjs.map +1 -1
  524. package/dist/shared/contracts/files.d.ts +11 -0
  525. package/dist/shared/contracts/files.d.ts.map +1 -1
  526. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"folder-file.mjs","sources":["../../../../../server/src/controllers/validation/admin/folder-file.ts"],"sourcesContent":["import { intersection, map, isEmpty } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nimport type { Folder } from '../../../types';\n\nconst validateDeleteManyFoldersFilesSchema = yup\n .object()\n .shape({\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateStructureMoveManyFoldersFilesSchema = yup\n .object()\n .shape({\n destinationFolderId: yup\n .strapiID()\n .nullable()\n .defined()\n .test('folder-exists', 'destination folder does not exist', folderExists),\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateDuplicatesMoveManyFoldersFilesSchema = yup\n .object()\n .test('are-folders-unique', 'some folders already exist', async function areFoldersUnique(value) {\n const { folderIds, destinationFolderId } = value;\n if (isEmpty(folderIds)) return true;\n\n const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { id: { $in: folderIds } },\n });\n\n const existingFolders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { parent: { id: destinationFolderId } },\n });\n\n const duplicatedNames = intersection(map('name', folders), map('name', existingFolders));\n if (duplicatedNames.length > 0) {\n return this.createError({\n message: `some folders already exists: ${duplicatedNames.join(', ')}`,\n });\n }\n\n return true;\n });\n\nconst validateMoveFoldersNotInsideThemselvesSchema = yup\n .object()\n .test(\n 'dont-move-inside-self',\n 'folders cannot be moved inside themselves or one of its children',\n async function validateMoveFoldersNotInsideThemselves(value) {\n const { folderIds, destinationFolderId } = value;\n if (destinationFolderId === null || isEmpty(folderIds)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: destinationFolderId },\n });\n\n const folders: Folder[] = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name', 'path'],\n where: { id: { $in: folderIds } },\n });\n\n const unmovableFoldersNames = folders\n .filter((folder) => isFolderOrChild(destinationFolder, folder))\n .map((f) => f.name);\n\n if (unmovableFoldersNames.length > 0) {\n return this.createError({\n message: `folders cannot be moved inside themselves or one of its children: ${unmovableFoldersNames.join(\n ', '\n )}`,\n });\n }\n\n return true;\n }\n );\n\nexport const validateDeleteManyFoldersFiles = validateYupSchema(\n validateDeleteManyFoldersFilesSchema\n);\n\nexport async function validateMoveManyFoldersFiles(body: unknown) {\n await validateYupSchema(validateStructureMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateDuplicatesMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateMoveFoldersNotInsideThemselvesSchema)(body);\n}\n"],"names":["validateDeleteManyFoldersFilesSchema","yup","object","shape","fileIds","array","of","strapiID","required","folderIds","noUnknown","validateStructureMoveManyFoldersFilesSchema","destinationFolderId","nullable","defined","test","folderExists","validateDuplicatesMoveManyFoldersFilesSchema","areFoldersUnique","value","isEmpty","folders","strapi","db","query","FOLDER_MODEL_UID","findMany","select","where","id","$in","existingFolders","parent","duplicatedNames","intersection","map","length","createError","message","join","validateMoveFoldersNotInsideThemselvesSchema","validateMoveFoldersNotInsideThemselves","destinationFolder","findOne","unmovableFoldersNames","filter","folder","isFolderOrChild","f","name","validateDeleteManyFoldersFiles","validateYupSchema","validateMoveManyFoldersFiles","body"],"mappings":"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"}
1
+ {"version":3,"file":"folder-file.mjs","sources":["../../../../../server/src/controllers/validation/admin/folder-file.ts"],"sourcesContent":["import { intersection, map, isEmpty } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nimport type { Folder } from '../../../types';\n\nconst validateDeleteManyFoldersFilesSchema = yup\n .object()\n .shape({\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateStructureMoveManyFoldersFilesSchema = yup\n .object()\n .shape({\n destinationFolderId: yup\n .strapiID()\n .nullable()\n .defined()\n .test('folder-exists', 'destination folder does not exist', folderExists),\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateDuplicatesMoveManyFoldersFilesSchema = yup\n .object()\n .test('are-folders-unique', 'some folders already exist', async function areFoldersUnique(value) {\n const { folderIds, destinationFolderId } = value;\n if (isEmpty(folderIds)) return true;\n\n const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { id: { $in: folderIds } },\n });\n\n const existingFolders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { parent: { id: destinationFolderId } },\n });\n\n const duplicatedNames = intersection(map('name', folders), map('name', existingFolders));\n if (duplicatedNames.length > 0) {\n return this.createError({\n message: `some folders already exists: ${duplicatedNames.join(', ')}`,\n });\n }\n\n return true;\n });\n\nconst validateMoveFoldersNotInsideThemselvesSchema = yup\n .object()\n .test(\n 'dont-move-inside-self',\n 'folders cannot be moved inside themselves or one of its children',\n async function validateMoveFoldersNotInsideThemselves(value) {\n const { folderIds, destinationFolderId } = value;\n if (destinationFolderId === null || isEmpty(folderIds)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: destinationFolderId },\n });\n\n const folders: Folder[] = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name', 'path'],\n where: { id: { $in: folderIds } },\n });\n\n const unmovableFoldersNames = folders\n .filter((folder) => isFolderOrChild(destinationFolder, folder))\n .map((f) => f.name);\n\n if (unmovableFoldersNames.length > 0) {\n return this.createError({\n message: `folders cannot be moved inside themselves or one of its children: ${unmovableFoldersNames.join(\n ', '\n )}`,\n });\n }\n\n return true;\n }\n );\n\nexport const validateDeleteManyFoldersFiles = validateYupSchema(\n validateDeleteManyFoldersFilesSchema\n);\n\nexport async function validateMoveManyFoldersFiles(body: unknown) {\n await validateYupSchema(validateStructureMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateDuplicatesMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateMoveFoldersNotInsideThemselvesSchema)(body);\n}\n"],"names":["validateDeleteManyFoldersFilesSchema","yup","object","shape","fileIds","array","of","strapiID","required","folderIds","noUnknown","validateStructureMoveManyFoldersFilesSchema","destinationFolderId","nullable","defined","test","folderExists","validateDuplicatesMoveManyFoldersFilesSchema","areFoldersUnique","value","isEmpty","folders","strapi","db","query","FOLDER_MODEL_UID","findMany","select","where","id","$in","existingFolders","parent","duplicatedNames","intersection","map","length","createError","message","join","validateMoveFoldersNotInsideThemselvesSchema","validateMoveFoldersNotInsideThemselves","destinationFolder","findOne","unmovableFoldersNames","filter","folder","isFolderOrChild","f","name","validateDeleteManyFoldersFiles","validateYupSchema","validateMoveManyFoldersFiles","body"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"folder.js","sources":["../../../../../server/src/controllers/validation/admin/folder.ts"],"sourcesContent":["import { isUndefined, get, isNil } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { getService } from '../../../utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nconst NO_SLASH_REGEX = /^[^/]+$/;\nconst NO_SPACES_AROUND = /^(?! ).+(?<! )$/;\n\nconst isNameUniqueInFolder = (id?: number): yup.TestFunction<string | undefined> => {\n return async function test(name?: string) {\n const { exists } = getService('folder');\n const filters: Record<string, unknown> = { name, parent: this.parent.parent || null };\n if (id) {\n filters.id = { $ne: id };\n\n if (isUndefined(name)) {\n const existingFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id } });\n filters.name = get('name', existingFolder);\n }\n }\n\n const doesExist = await exists(filters);\n return !doesExist;\n };\n};\n\nconst validateCreateFolderSchema = yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .required()\n .test('is-folder-unique', 'A folder with this name already exists', isNameUniqueInFolder()),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists),\n })\n .noUnknown()\n .required();\n\nconst validateUpdateFolderSchema = (id: number) =>\n yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .test(\n 'is-folder-unique',\n 'A folder with this name already exists',\n isNameUniqueInFolder(id)\n ),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists)\n .test(\n 'dont-move-inside-self',\n 'folder cannot be moved inside itself',\n async function test(parent) {\n if (isNil(parent)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: parent },\n });\n\n const currentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id },\n });\n\n if (!destinationFolder || !currentFolder) return true;\n\n return !isFolderOrChild(destinationFolder, currentFolder);\n }\n ),\n })\n .noUnknown()\n .required();\n\nexport const validateCreateFolder = validateYupSchema(validateCreateFolderSchema);\nexport const validateUpdateFolder = (id: number) =>\n validateYupSchema(validateUpdateFolderSchema(id));\n"],"names":["NO_SLASH_REGEX","NO_SPACES_AROUND","isNameUniqueInFolder","id","test","name","exists","getService","filters","parent","$ne","isUndefined","existingFolder","strapi","db","query","FOLDER_MODEL_UID","findOne","where","get","doesExist","validateCreateFolderSchema","yup","object","shape","string","min","matches","required","strapiID","nullable","folderExists","noUnknown","validateUpdateFolderSchema","isNil","destinationFolder","select","currentFolder","isFolderOrChild","validateCreateFolder","validateYupSchema","validateUpdateFolder"],"mappings":"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"}
1
+ {"version":3,"file":"folder.js","sources":["../../../../../server/src/controllers/validation/admin/folder.ts"],"sourcesContent":["import { isUndefined, get, isNil } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { getService } from '../../../utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nconst NO_SLASH_REGEX = /^[^/]+$/;\nconst NO_SPACES_AROUND = /^(?! ).+(?<! )$/;\n\nconst isNameUniqueInFolder = (id?: number): yup.TestFunction<string | undefined> => {\n return async function test(name?: string) {\n const { exists } = getService('folder');\n const filters: Record<string, unknown> = { name, parent: this.parent.parent || null };\n if (id) {\n filters.id = { $ne: id };\n\n if (isUndefined(name)) {\n const existingFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id } });\n filters.name = get('name', existingFolder);\n }\n }\n\n const doesExist = await exists(filters);\n return !doesExist;\n };\n};\n\nconst validateCreateFolderSchema = yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .required()\n .test('is-folder-unique', 'A folder with this name already exists', isNameUniqueInFolder()),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists),\n })\n .noUnknown()\n .required();\n\nconst validateUpdateFolderSchema = (id: number) =>\n yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .test(\n 'is-folder-unique',\n 'A folder with this name already exists',\n isNameUniqueInFolder(id)\n ),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists)\n .test(\n 'dont-move-inside-self',\n 'folder cannot be moved inside itself',\n async function test(parent) {\n if (isNil(parent)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: parent },\n });\n\n const currentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id },\n });\n\n if (!destinationFolder || !currentFolder) return true;\n\n return !isFolderOrChild(destinationFolder, currentFolder);\n }\n ),\n })\n .noUnknown()\n .required();\n\nexport const validateCreateFolder = validateYupSchema(validateCreateFolderSchema);\nexport const validateUpdateFolder = (id: number) =>\n validateYupSchema(validateUpdateFolderSchema(id));\n"],"names":["NO_SLASH_REGEX","NO_SPACES_AROUND","isNameUniqueInFolder","id","test","name","exists","getService","filters","parent","$ne","isUndefined","existingFolder","strapi","db","query","FOLDER_MODEL_UID","findOne","where","get","doesExist","validateCreateFolderSchema","yup","object","shape","string","min","matches","required","strapiID","nullable","folderExists","noUnknown","validateUpdateFolderSchema","isNil","destinationFolder","select","currentFolder","isFolderOrChild","validateCreateFolder","validateYupSchema","validateUpdateFolder"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"folder.mjs","sources":["../../../../../server/src/controllers/validation/admin/folder.ts"],"sourcesContent":["import { isUndefined, get, isNil } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { getService } from '../../../utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nconst NO_SLASH_REGEX = /^[^/]+$/;\nconst NO_SPACES_AROUND = /^(?! ).+(?<! )$/;\n\nconst isNameUniqueInFolder = (id?: number): yup.TestFunction<string | undefined> => {\n return async function test(name?: string) {\n const { exists } = getService('folder');\n const filters: Record<string, unknown> = { name, parent: this.parent.parent || null };\n if (id) {\n filters.id = { $ne: id };\n\n if (isUndefined(name)) {\n const existingFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id } });\n filters.name = get('name', existingFolder);\n }\n }\n\n const doesExist = await exists(filters);\n return !doesExist;\n };\n};\n\nconst validateCreateFolderSchema = yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .required()\n .test('is-folder-unique', 'A folder with this name already exists', isNameUniqueInFolder()),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists),\n })\n .noUnknown()\n .required();\n\nconst validateUpdateFolderSchema = (id: number) =>\n yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .test(\n 'is-folder-unique',\n 'A folder with this name already exists',\n isNameUniqueInFolder(id)\n ),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists)\n .test(\n 'dont-move-inside-self',\n 'folder cannot be moved inside itself',\n async function test(parent) {\n if (isNil(parent)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: parent },\n });\n\n const currentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id },\n });\n\n if (!destinationFolder || !currentFolder) return true;\n\n return !isFolderOrChild(destinationFolder, currentFolder);\n }\n ),\n })\n .noUnknown()\n .required();\n\nexport const validateCreateFolder = validateYupSchema(validateCreateFolderSchema);\nexport const validateUpdateFolder = (id: number) =>\n validateYupSchema(validateUpdateFolderSchema(id));\n"],"names":["NO_SLASH_REGEX","NO_SPACES_AROUND","isNameUniqueInFolder","id","test","name","exists","getService","filters","parent","$ne","isUndefined","existingFolder","strapi","db","query","FOLDER_MODEL_UID","findOne","where","get","doesExist","validateCreateFolderSchema","yup","object","shape","string","min","matches","required","strapiID","nullable","folderExists","noUnknown","validateUpdateFolderSchema","isNil","destinationFolder","select","currentFolder","isFolderOrChild","validateCreateFolder","validateYupSchema","validateUpdateFolder"],"mappings":"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"}
1
+ {"version":3,"file":"folder.mjs","sources":["../../../../../server/src/controllers/validation/admin/folder.ts"],"sourcesContent":["import { isUndefined, get, isNil } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { getService } from '../../../utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nconst NO_SLASH_REGEX = /^[^/]+$/;\nconst NO_SPACES_AROUND = /^(?! ).+(?<! )$/;\n\nconst isNameUniqueInFolder = (id?: number): yup.TestFunction<string | undefined> => {\n return async function test(name?: string) {\n const { exists } = getService('folder');\n const filters: Record<string, unknown> = { name, parent: this.parent.parent || null };\n if (id) {\n filters.id = { $ne: id };\n\n if (isUndefined(name)) {\n const existingFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id } });\n filters.name = get('name', existingFolder);\n }\n }\n\n const doesExist = await exists(filters);\n return !doesExist;\n };\n};\n\nconst validateCreateFolderSchema = yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .required()\n .test('is-folder-unique', 'A folder with this name already exists', isNameUniqueInFolder()),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists),\n })\n .noUnknown()\n .required();\n\nconst validateUpdateFolderSchema = (id: number) =>\n yup\n .object()\n .shape({\n name: yup\n .string()\n .min(1)\n .matches(NO_SLASH_REGEX, 'name cannot contain slashes')\n .matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace')\n .test(\n 'is-folder-unique',\n 'A folder with this name already exists',\n isNameUniqueInFolder(id)\n ),\n parent: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'parent folder does not exist', folderExists)\n .test(\n 'dont-move-inside-self',\n 'folder cannot be moved inside itself',\n async function test(parent) {\n if (isNil(parent)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: parent },\n });\n\n const currentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id },\n });\n\n if (!destinationFolder || !currentFolder) return true;\n\n return !isFolderOrChild(destinationFolder, currentFolder);\n }\n ),\n })\n .noUnknown()\n .required();\n\nexport const validateCreateFolder = validateYupSchema(validateCreateFolderSchema);\nexport const validateUpdateFolder = (id: number) =>\n validateYupSchema(validateUpdateFolderSchema(id));\n"],"names":["NO_SLASH_REGEX","NO_SPACES_AROUND","isNameUniqueInFolder","id","test","name","exists","getService","filters","parent","$ne","isUndefined","existingFolder","strapi","db","query","FOLDER_MODEL_UID","findOne","where","get","doesExist","validateCreateFolderSchema","yup","object","shape","string","min","matches","required","strapiID","nullable","folderExists","noUnknown","validateUpdateFolderSchema","isNil","destinationFolder","select","currentFolder","isFolderOrChild","validateCreateFolder","validateYupSchema","validateUpdateFolder"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sources":["../../../../../server/src/controllers/validation/admin/settings.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst settingsSchema = yup.object({\n sizeOptimization: yup.boolean().required(),\n responsiveDimensions: yup.boolean().required(),\n autoOrientation: yup.boolean(),\n aiMetadata: yup.boolean().default(true),\n});\n\nexport default validateYupSchema(settingsSchema);\n\nexport type Settings = yup.InferType<typeof settingsSchema>;\n"],"names":["settingsSchema","yup","object","sizeOptimization","boolean","required","responsiveDimensions","autoOrientation","aiMetadata","default","validateYupSchema"],"mappings":";;;;AAEA,MAAMA,cAAAA,GAAiBC,SAAIC,CAAAA,MAAM,CAAC;IAChCC,gBAAkBF,EAAAA,SAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;IACxCC,oBAAsBL,EAAAA,SAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;AAC5CE,IAAAA,eAAAA,EAAiBN,UAAIG,OAAO,EAAA;AAC5BI,IAAAA,UAAAA,EAAYP,SAAIG,CAAAA,OAAO,EAAGK,CAAAA,OAAO,CAAC,IAAA;AACpC,CAAA,CAAA;AAEA,uBAAeC,wBAAkBV,cAAgB,CAAA;;;;"}
1
+ {"version":3,"file":"settings.js","sources":["../../../../../server/src/controllers/validation/admin/settings.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst settingsSchema = yup.object({\n sizeOptimization: yup.boolean().required(),\n responsiveDimensions: yup.boolean().required(),\n autoOrientation: yup.boolean(),\n aiMetadata: yup.boolean().default(true),\n});\n\nexport default validateYupSchema(settingsSchema);\n\nexport type Settings = yup.InferType<typeof settingsSchema>;\n"],"names":["settingsSchema","yup","object","sizeOptimization","boolean","required","responsiveDimensions","autoOrientation","aiMetadata","default","validateYupSchema"],"mappings":";;;;AAEA,MAAMA,cAAAA,GAAiBC,SAAAA,CAAIC,MAAM,CAAC;IAChCC,gBAAAA,EAAkBF,SAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;IACxCC,oBAAAA,EAAsBL,SAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;AAC5CE,IAAAA,eAAAA,EAAiBN,UAAIG,OAAO,EAAA;AAC5BI,IAAAA,UAAAA,EAAYP,SAAAA,CAAIG,OAAO,EAAA,CAAGK,OAAO,CAAC,IAAA;AACpC,CAAA,CAAA;AAEA,uBAAeC,wBAAkBV,cAAAA,CAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.mjs","sources":["../../../../../server/src/controllers/validation/admin/settings.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst settingsSchema = yup.object({\n sizeOptimization: yup.boolean().required(),\n responsiveDimensions: yup.boolean().required(),\n autoOrientation: yup.boolean(),\n aiMetadata: yup.boolean().default(true),\n});\n\nexport default validateYupSchema(settingsSchema);\n\nexport type Settings = yup.InferType<typeof settingsSchema>;\n"],"names":["settingsSchema","yup","object","sizeOptimization","boolean","required","responsiveDimensions","autoOrientation","aiMetadata","default","validateYupSchema"],"mappings":";;AAEA,MAAMA,cAAAA,GAAiBC,GAAIC,CAAAA,MAAM,CAAC;IAChCC,gBAAkBF,EAAAA,GAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;IACxCC,oBAAsBL,EAAAA,GAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;AAC5CE,IAAAA,eAAAA,EAAiBN,IAAIG,OAAO,EAAA;AAC5BI,IAAAA,UAAAA,EAAYP,GAAIG,CAAAA,OAAO,EAAGK,CAAAA,OAAO,CAAC,IAAA;AACpC,CAAA,CAAA;AAEA,uBAAeC,kBAAkBV,cAAgB,CAAA;;;;"}
1
+ {"version":3,"file":"settings.mjs","sources":["../../../../../server/src/controllers/validation/admin/settings.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst settingsSchema = yup.object({\n sizeOptimization: yup.boolean().required(),\n responsiveDimensions: yup.boolean().required(),\n autoOrientation: yup.boolean(),\n aiMetadata: yup.boolean().default(true),\n});\n\nexport default validateYupSchema(settingsSchema);\n\nexport type Settings = yup.InferType<typeof settingsSchema>;\n"],"names":["settingsSchema","yup","object","sizeOptimization","boolean","required","responsiveDimensions","autoOrientation","aiMetadata","default","validateYupSchema"],"mappings":";;AAEA,MAAMA,cAAAA,GAAiBC,GAAAA,CAAIC,MAAM,CAAC;IAChCC,gBAAAA,EAAkBF,GAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;IACxCC,oBAAAA,EAAsBL,GAAAA,CAAIG,OAAO,EAAA,CAAGC,QAAQ,EAAA;AAC5CE,IAAAA,eAAAA,EAAiBN,IAAIG,OAAO,EAAA;AAC5BI,IAAAA,UAAAA,EAAYP,GAAAA,CAAIG,OAAO,EAAA,CAAGK,OAAO,CAAC,IAAA;AACpC,CAAA,CAAA;AAEA,uBAAeC,kBAAkBV,cAAAA,CAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../../../server/src/controllers/validation/admin/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n folder: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'the folder does not exist', async (folderId) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n }),\n});\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n\nconst bulkUpdatesSchema = yup.object({\n updates: yup\n .array()\n .of(\n yup.object({\n id: yup.number().required(),\n fileInfo: fileInfoSchema.required(),\n })\n )\n .min(1)\n .required(),\n});\n\nexport const validateBulkUpdateBody = validateYupSchema(bulkUpdatesSchema);\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","strapiID","test","folderId","isNil","exists","getService","id","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict","bulkUpdatesSchema","updates","validateBulkUpdateBody"],"mappings":";;;;;;AAIA,MAAMA,gBAAAA,GAAmBC,SACtBC,CAAAA,MAAM,CAAC;IACNC,CAAGF,EAAAA,SAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAGP,EAAAA,SAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CACCE,CAAAA,CAAAA,QAAQ,EACRC,CAAAA,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,SAAIC,CAAAA,MAAM,CAAC;IAChCU,IAAMX,EAAAA,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAiBb,EAAAA,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAASd,EAAAA,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAYhB,EAAAA,gBAAAA;IACZiB,MAAQhB,EAAAA,SAAAA,CACLiB,QAAQ,EACRT,CAAAA,QAAQ,GACRU,IAAI,CAAC,eAAiB,EAAA,2BAAA,EAA6B,OAAOC,QAAAA,GAAAA;AACzD,QAAA,IAAIC,SAAMD,QAAW,CAAA,EAAA;YACnB,OAAO,IAAA;AACT;AAEA,QAAA,MAAME,MAAS,GAAA,MAAMC,gBAAW,CAAA,QAAA,CAAA,CAAUD,MAAM,CAAC;YAAEE,EAAIJ,EAAAA;AAAS,SAAA,CAAA;QAEhE,OAAOE,MAAAA;AACT,KAAA;AACJ,CAAA,CAAA;AAEA,MAAMG,YAAAA,GAAexB,SAAIC,CAAAA,MAAM,CAAC;IAC9BwB,QAAUf,EAAAA;AACZ,CAAA,CAAA;AAEA,MAAMgB,iBAAAA,GAAoB1B,SAAIC,CAAAA,MAAM,CAAC;AACnCwB,IAAAA,QAAAA,EAAUzB,SAAI2B,CAAAA,KAAK,EAAGC,CAAAA,EAAE,CAAClB,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMmB,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAoBF,GAAAA,YAAAA;AAE7C,IAAA,OAAOS,wBAAkBD,MAAQ,EAAA;QAAEE,MAAQ,EAAA;KAASJ,CAAAA,CAAAA,IAAAA,CAAAA;AACtD;AAQA,MAAMK,iBAAAA,GAAoBnC,SAAIC,CAAAA,MAAM,CAAC;AACnCmC,IAAAA,OAAAA,EAASpC,UACN2B,KAAK,EAAA,CACLC,EAAE,CACD5B,SAAAA,CAAIC,MAAM,CAAC;QACTsB,EAAIvB,EAAAA,SAAAA,CAAIG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACzBmB,QAAAA,QAAAA,EAAUf,eAAeJ,QAAQ;KAGpCF,CAAAA,CAAAA,CAAAA,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ;AACb,CAAA,CAAA;AAEO,MAAM+B,sBAAyBJ,GAAAA,uBAAAA,CAAkBE,iBAAmB;;;;;"}
1
+ {"version":3,"file":"upload.js","sources":["../../../../../server/src/controllers/validation/admin/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n folder: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'the folder does not exist', async (folderId) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n }),\n});\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n\nconst bulkUpdatesSchema = yup.object({\n updates: yup\n .array()\n .of(\n yup.object({\n id: yup.number().required(),\n fileInfo: fileInfoSchema.required(),\n })\n )\n .min(1)\n .required(),\n});\n\nexport const validateBulkUpdateBody = validateYupSchema(bulkUpdatesSchema);\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","strapiID","test","folderId","isNil","exists","getService","id","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict","bulkUpdatesSchema","updates","validateBulkUpdateBody"],"mappings":";;;;;;AAIA,MAAMA,gBAAAA,GAAmBC,SAAAA,CACtBC,MAAM,CAAC;IACNC,CAAAA,EAAGF,SAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAAA,EAAGP,SAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CAAA,CAAA,CACCE,QAAQ,EAAA,CACRC,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,SAAAA,CAAIC,MAAM,CAAC;IAChCU,IAAAA,EAAMX,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAAA,EAAiBb,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAAAA,EAASd,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAAA,EAAYhB,gBAAAA;IACZiB,MAAAA,EAAQhB,SAAAA,CACLiB,QAAQ,EAAA,CACRT,QAAQ,GACRU,IAAI,CAAC,eAAA,EAAiB,2BAAA,EAA6B,OAAOC,QAAAA,GAAAA;AACzD,QAAA,IAAIC,SAAMD,QAAAA,CAAAA,EAAW;YACnB,OAAO,IAAA;AACT,QAAA;AAEA,QAAA,MAAME,MAAAA,GAAS,MAAMC,gBAAAA,CAAW,QAAA,CAAA,CAAUD,MAAM,CAAC;YAAEE,EAAAA,EAAIJ;AAAS,SAAA,CAAA;QAEhE,OAAOE,MAAAA;AACT,IAAA,CAAA;AACJ,CAAA,CAAA;AAEA,MAAMG,YAAAA,GAAexB,SAAAA,CAAIC,MAAM,CAAC;IAC9BwB,QAAAA,EAAUf;AACZ,CAAA,CAAA;AAEA,MAAMgB,iBAAAA,GAAoB1B,SAAAA,CAAIC,MAAM,CAAC;AACnCwB,IAAAA,QAAAA,EAAUzB,SAAAA,CAAI2B,KAAK,EAAA,CAAGC,EAAE,CAAClB,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMmB,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAAA,GAAoBF,YAAAA;AAE7C,IAAA,OAAOS,wBAAkBD,MAAAA,EAAQ;QAAEE,MAAAA,EAAQ;KAAM,CAAA,CAAGJ,IAAAA,CAAAA;AACtD;AAQA,MAAMK,iBAAAA,GAAoBnC,SAAAA,CAAIC,MAAM,CAAC;AACnCmC,IAAAA,OAAAA,EAASpC,UACN2B,KAAK,EAAA,CACLC,EAAE,CACD5B,SAAAA,CAAIC,MAAM,CAAC;QACTsB,EAAAA,EAAIvB,SAAAA,CAAIG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACzBmB,QAAAA,QAAAA,EAAUf,eAAeJ,QAAQ;KACnC,CAAA,CAAA,CAEDF,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ;AACb,CAAA,CAAA;AAEO,MAAM+B,sBAAAA,GAAyBJ,uBAAAA,CAAkBE,iBAAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","sources":["../../../../../server/src/controllers/validation/admin/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n folder: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'the folder does not exist', async (folderId) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n }),\n});\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n\nconst bulkUpdatesSchema = yup.object({\n updates: yup\n .array()\n .of(\n yup.object({\n id: yup.number().required(),\n fileInfo: fileInfoSchema.required(),\n })\n )\n .min(1)\n .required(),\n});\n\nexport const validateBulkUpdateBody = validateYupSchema(bulkUpdatesSchema);\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","strapiID","test","folderId","isNil","exists","getService","id","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict","bulkUpdatesSchema","updates","validateBulkUpdateBody"],"mappings":";;;;AAIA,MAAMA,gBAAAA,GAAmBC,GACtBC,CAAAA,MAAM,CAAC;IACNC,CAAGF,EAAAA,GAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAGP,EAAAA,GAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CACCE,CAAAA,CAAAA,QAAQ,EACRC,CAAAA,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,GAAIC,CAAAA,MAAM,CAAC;IAChCU,IAAMX,EAAAA,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAiBb,EAAAA,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAASd,EAAAA,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAYhB,EAAAA,gBAAAA;IACZiB,MAAQhB,EAAAA,GAAAA,CACLiB,QAAQ,EACRT,CAAAA,QAAQ,GACRU,IAAI,CAAC,eAAiB,EAAA,2BAAA,EAA6B,OAAOC,QAAAA,GAAAA;AACzD,QAAA,IAAIC,MAAMD,QAAW,CAAA,EAAA;YACnB,OAAO,IAAA;AACT;AAEA,QAAA,MAAME,MAAS,GAAA,MAAMC,UAAW,CAAA,QAAA,CAAA,CAAUD,MAAM,CAAC;YAAEE,EAAIJ,EAAAA;AAAS,SAAA,CAAA;QAEhE,OAAOE,MAAAA;AACT,KAAA;AACJ,CAAA,CAAA;AAEA,MAAMG,YAAAA,GAAexB,GAAIC,CAAAA,MAAM,CAAC;IAC9BwB,QAAUf,EAAAA;AACZ,CAAA,CAAA;AAEA,MAAMgB,iBAAAA,GAAoB1B,GAAIC,CAAAA,MAAM,CAAC;AACnCwB,IAAAA,QAAAA,EAAUzB,GAAI2B,CAAAA,KAAK,EAAGC,CAAAA,EAAE,CAAClB,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMmB,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAoBF,GAAAA,YAAAA;AAE7C,IAAA,OAAOS,kBAAkBD,MAAQ,EAAA;QAAEE,MAAQ,EAAA;KAASJ,CAAAA,CAAAA,IAAAA,CAAAA;AACtD;AAQA,MAAMK,iBAAAA,GAAoBnC,GAAIC,CAAAA,MAAM,CAAC;AACnCmC,IAAAA,OAAAA,EAASpC,IACN2B,KAAK,EAAA,CACLC,EAAE,CACD5B,GAAAA,CAAIC,MAAM,CAAC;QACTsB,EAAIvB,EAAAA,GAAAA,CAAIG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACzBmB,QAAAA,QAAAA,EAAUf,eAAeJ,QAAQ;KAGpCF,CAAAA,CAAAA,CAAAA,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ;AACb,CAAA,CAAA;AAEO,MAAM+B,sBAAyBJ,GAAAA,iBAAAA,CAAkBE,iBAAmB;;;;"}
1
+ {"version":3,"file":"upload.mjs","sources":["../../../../../server/src/controllers/validation/admin/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup.object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n folder: yup\n .strapiID()\n .nullable()\n .test('folder-exists', 'the folder does not exist', async (folderId) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n }),\n});\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n\nconst bulkUpdatesSchema = yup.object({\n updates: yup\n .array()\n .of(\n yup.object({\n id: yup.number().required(),\n fileInfo: fileInfoSchema.required(),\n })\n )\n .min(1)\n .required(),\n});\n\nexport const validateBulkUpdateBody = validateYupSchema(bulkUpdatesSchema);\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","folder","strapiID","test","folderId","isNil","exists","getService","id","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict","bulkUpdatesSchema","updates","validateBulkUpdateBody"],"mappings":";;;;AAIA,MAAMA,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,CAAC;IACNC,CAAAA,EAAGF,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAAA,EAAGP,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CAAA,CAAA,CACCE,QAAQ,EAAA,CACRC,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,GAAAA,CAAIC,MAAM,CAAC;IAChCU,IAAAA,EAAMX,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAAA,EAAiBb,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAAAA,EAASd,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAAA,EAAYhB,gBAAAA;IACZiB,MAAAA,EAAQhB,GAAAA,CACLiB,QAAQ,EAAA,CACRT,QAAQ,GACRU,IAAI,CAAC,eAAA,EAAiB,2BAAA,EAA6B,OAAOC,QAAAA,GAAAA;AACzD,QAAA,IAAIC,MAAMD,QAAAA,CAAAA,EAAW;YACnB,OAAO,IAAA;AACT,QAAA;AAEA,QAAA,MAAME,MAAAA,GAAS,MAAMC,UAAAA,CAAW,QAAA,CAAA,CAAUD,MAAM,CAAC;YAAEE,EAAAA,EAAIJ;AAAS,SAAA,CAAA;QAEhE,OAAOE,MAAAA;AACT,IAAA,CAAA;AACJ,CAAA,CAAA;AAEA,MAAMG,YAAAA,GAAexB,GAAAA,CAAIC,MAAM,CAAC;IAC9BwB,QAAAA,EAAUf;AACZ,CAAA,CAAA;AAEA,MAAMgB,iBAAAA,GAAoB1B,GAAAA,CAAIC,MAAM,CAAC;AACnCwB,IAAAA,QAAAA,EAAUzB,GAAAA,CAAI2B,KAAK,EAAA,CAAGC,EAAE,CAAClB,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMmB,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAAA,GAAoBF,YAAAA;AAE7C,IAAA,OAAOS,kBAAkBD,MAAAA,EAAQ;QAAEE,MAAAA,EAAQ;KAAM,CAAA,CAAGJ,IAAAA,CAAAA;AACtD;AAQA,MAAMK,iBAAAA,GAAoBnC,GAAAA,CAAIC,MAAM,CAAC;AACnCmC,IAAAA,OAAAA,EAASpC,IACN2B,KAAK,EAAA,CACLC,EAAE,CACD5B,GAAAA,CAAIC,MAAM,CAAC;QACTsB,EAAAA,EAAIvB,GAAAA,CAAIG,MAAM,EAAA,CAAGG,QAAQ,EAAA;AACzBmB,QAAAA,QAAAA,EAAUf,eAAeJ,QAAQ;KACnC,CAAA,CAAA,CAEDF,GAAG,CAAC,CAAA,CAAA,CACJE,QAAQ;AACb,CAAA,CAAA;AAEO,MAAM+B,sBAAAA,GAAyBJ,iBAAAA,CAAkBE,iBAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../server/src/controllers/validation/admin/utils.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst folderExists = async (folderId: number) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n};\n\nexport { folderExists };\n"],"names":["folderExists","folderId","isNil","exists","getService","id"],"mappings":";;;;;AAGA,MAAMA,eAAe,OAAOC,QAAAA,GAAAA;AAC1B,IAAA,IAAIC,SAAMD,QAAW,CAAA,EAAA;QACnB,OAAO,IAAA;AACT;AAEA,IAAA,MAAME,MAAS,GAAA,MAAMC,gBAAW,CAAA,QAAA,CAAA,CAAUD,MAAM,CAAC;QAAEE,EAAIJ,EAAAA;AAAS,KAAA,CAAA;IAEhE,OAAOE,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../server/src/controllers/validation/admin/utils.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst folderExists = async (folderId: number) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n};\n\nexport { folderExists };\n"],"names":["folderExists","folderId","isNil","exists","getService","id"],"mappings":";;;;;AAGA,MAAMA,eAAe,OAAOC,QAAAA,GAAAA;AAC1B,IAAA,IAAIC,SAAMD,QAAAA,CAAAA,EAAW;QACnB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAME,MAAAA,GAAS,MAAMC,gBAAAA,CAAW,QAAA,CAAA,CAAUD,MAAM,CAAC;QAAEE,EAAAA,EAAIJ;AAAS,KAAA,CAAA;IAEhE,OAAOE,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../../../server/src/controllers/validation/admin/utils.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst folderExists = async (folderId: number) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n};\n\nexport { folderExists };\n"],"names":["folderExists","folderId","isNil","exists","getService","id"],"mappings":";;;AAGA,MAAMA,eAAe,OAAOC,QAAAA,GAAAA;AAC1B,IAAA,IAAIC,MAAMD,QAAW,CAAA,EAAA;QACnB,OAAO,IAAA;AACT;AAEA,IAAA,MAAME,MAAS,GAAA,MAAMC,UAAW,CAAA,QAAA,CAAA,CAAUD,MAAM,CAAC;QAAEE,EAAIJ,EAAAA;AAAS,KAAA,CAAA;IAEhE,OAAOE,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../../../server/src/controllers/validation/admin/utils.ts"],"sourcesContent":["import { isNil } from 'lodash/fp';\nimport { getService } from '../../../utils';\n\nconst folderExists = async (folderId: number) => {\n if (isNil(folderId)) {\n return true;\n }\n\n const exists = await getService('folder').exists({ id: folderId });\n\n return exists;\n};\n\nexport { folderExists };\n"],"names":["folderExists","folderId","isNil","exists","getService","id"],"mappings":";;;AAGA,MAAMA,eAAe,OAAOC,QAAAA,GAAAA;AAC1B,IAAA,IAAIC,MAAMD,QAAAA,CAAAA,EAAW;QACnB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,MAAME,MAAAA,GAAS,MAAMC,UAAAA,CAAW,QAAA,CAAA,CAAUD,MAAM,CAAC;QAAEE,EAAAA,EAAIJ;AAAS,KAAA,CAAA;IAEhE,OAAOE,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../../../server/src/controllers/validation/content-api/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup\n .object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n })\n .noUnknown();\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","noUnknown","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict"],"mappings":";;;;AAEA,MAAMA,gBAAAA,GAAmBC,SACtBC,CAAAA,MAAM,CAAC;IACNC,CAAGF,EAAAA,SAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAGP,EAAAA,SAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CACCE,CAAAA,CAAAA,QAAQ,EACRC,CAAAA,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,SACpBC,CAAAA,MAAM,CAAC;IACNU,IAAMX,EAAAA,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAiBb,EAAAA,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAASd,EAAAA,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAYhB,EAAAA;AACd,CAAA,CAAA,CACCiB,SAAS,EAAA;AAEZ,MAAMC,YAAAA,GAAejB,SAAIC,CAAAA,MAAM,CAAC;IAC9BiB,QAAUR,EAAAA;AACZ,CAAA,CAAA;AAEA,MAAMS,iBAAAA,GAAoBnB,SAAIC,CAAAA,MAAM,CAAC;AACnCiB,IAAAA,QAAAA,EAAUlB,SAAIoB,CAAAA,KAAK,EAAGC,CAAAA,EAAE,CAACX,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMY,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAoBF,GAAAA,YAAAA;AAE7C,IAAA,OAAOS,wBAAkBD,MAAQ,EAAA;QAAEE,MAAQ,EAAA;KAASJ,CAAAA,CAAAA,IAAAA,CAAAA;AACtD;;;;"}
1
+ {"version":3,"file":"upload.js","sources":["../../../../../server/src/controllers/validation/content-api/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup\n .object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n })\n .noUnknown();\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","noUnknown","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict"],"mappings":";;;;AAEA,MAAMA,gBAAAA,GAAmBC,SAAAA,CACtBC,MAAM,CAAC;IACNC,CAAAA,EAAGF,SAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAAA,EAAGP,SAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CAAA,CAAA,CACCE,QAAQ,EAAA,CACRC,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,SAAAA,CACpBC,MAAM,CAAC;IACNU,IAAAA,EAAMX,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAAA,EAAiBb,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAAAA,EAASd,SAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAAA,EAAYhB;AACd,CAAA,CAAA,CACCiB,SAAS,EAAA;AAEZ,MAAMC,YAAAA,GAAejB,SAAAA,CAAIC,MAAM,CAAC;IAC9BiB,QAAAA,EAAUR;AACZ,CAAA,CAAA;AAEA,MAAMS,iBAAAA,GAAoBnB,SAAAA,CAAIC,MAAM,CAAC;AACnCiB,IAAAA,QAAAA,EAAUlB,SAAAA,CAAIoB,KAAK,EAAA,CAAGC,EAAE,CAACX,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMY,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAAA,GAAoBF,YAAAA;AAE7C,IAAA,OAAOS,wBAAkBD,MAAAA,EAAQ;QAAEE,MAAAA,EAAQ;KAAM,CAAA,CAAGJ,IAAAA,CAAAA;AACtD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","sources":["../../../../../server/src/controllers/validation/content-api/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup\n .object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n })\n .noUnknown();\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","noUnknown","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict"],"mappings":";;AAEA,MAAMA,gBAAAA,GAAmBC,GACtBC,CAAAA,MAAM,CAAC;IACNC,CAAGF,EAAAA,GAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAGP,EAAAA,GAAAA,CAAIG,MAAM,EAAGC,CAAAA,GAAG,CAAC,CAAGC,CAAAA,CAAAA,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CACCE,CAAAA,CAAAA,QAAQ,EACRC,CAAAA,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,GACpBC,CAAAA,MAAM,CAAC;IACNU,IAAMX,EAAAA,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAiBb,EAAAA,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAASd,EAAAA,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAYhB,EAAAA;AACd,CAAA,CAAA,CACCiB,SAAS,EAAA;AAEZ,MAAMC,YAAAA,GAAejB,GAAIC,CAAAA,MAAM,CAAC;IAC9BiB,QAAUR,EAAAA;AACZ,CAAA,CAAA;AAEA,MAAMS,iBAAAA,GAAoBnB,GAAIC,CAAAA,MAAM,CAAC;AACnCiB,IAAAA,QAAAA,EAAUlB,GAAIoB,CAAAA,KAAK,EAAGC,CAAAA,EAAE,CAACX,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMY,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAoBF,GAAAA,YAAAA;AAE7C,IAAA,OAAOS,kBAAkBD,MAAQ,EAAA;QAAEE,MAAQ,EAAA;KAASJ,CAAAA,CAAAA,IAAAA,CAAAA;AACtD;;;;"}
1
+ {"version":3,"file":"upload.mjs","sources":["../../../../../server/src/controllers/validation/content-api/upload.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\n\nconst focalPointSchema = yup\n .object({\n x: yup.number().min(0).max(100).required(),\n y: yup.number().min(0).max(100).required(),\n })\n .nullable()\n .default(null);\n\nconst fileInfoSchema = yup\n .object({\n name: yup.string().nullable(),\n alternativeText: yup.string().nullable(),\n caption: yup.string().nullable(),\n focalPoint: focalPointSchema,\n })\n .noUnknown();\n\nconst uploadSchema = yup.object({\n fileInfo: fileInfoSchema,\n});\n\nconst multiUploadSchema = yup.object({\n fileInfo: yup.array().of(fileInfoSchema),\n});\n\nconst validateUploadBody = (data = {}, isMulti = false) => {\n const schema = isMulti ? multiUploadSchema : uploadSchema;\n\n return validateYupSchema(schema, { strict: false })(data);\n};\n\nexport { validateUploadBody };\n\nexport type UploadBody =\n | yup.InferType<typeof uploadSchema>\n | yup.InferType<typeof multiUploadSchema>;\n"],"names":["focalPointSchema","yup","object","x","number","min","max","required","y","nullable","default","fileInfoSchema","name","string","alternativeText","caption","focalPoint","noUnknown","uploadSchema","fileInfo","multiUploadSchema","array","of","validateUploadBody","data","isMulti","schema","validateYupSchema","strict"],"mappings":";;AAEA,MAAMA,gBAAAA,GAAmBC,GAAAA,CACtBC,MAAM,CAAC;IACNC,CAAAA,EAAGF,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ,EAAA;IACxCC,CAAAA,EAAGP,GAAAA,CAAIG,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKC,QAAQ;AAC1C,CAAA,CAAA,CACCE,QAAQ,EAAA,CACRC,OAAO,CAAC,IAAA,CAAA;AAEX,MAAMC,cAAAA,GAAiBV,GAAAA,CACpBC,MAAM,CAAC;IACNU,IAAAA,EAAMX,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC3BK,eAAAA,EAAiBb,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IACtCM,OAAAA,EAASd,GAAAA,CAAIY,MAAM,EAAA,CAAGJ,QAAQ,EAAA;IAC9BO,UAAAA,EAAYhB;AACd,CAAA,CAAA,CACCiB,SAAS,EAAA;AAEZ,MAAMC,YAAAA,GAAejB,GAAAA,CAAIC,MAAM,CAAC;IAC9BiB,QAAAA,EAAUR;AACZ,CAAA,CAAA;AAEA,MAAMS,iBAAAA,GAAoBnB,GAAAA,CAAIC,MAAM,CAAC;AACnCiB,IAAAA,QAAAA,EAAUlB,GAAAA,CAAIoB,KAAK,EAAA,CAAGC,EAAE,CAACX,cAAAA;AAC3B,CAAA,CAAA;AAEA,MAAMY,qBAAqB,CAACC,IAAAA,GAAO,EAAE,EAAEC,UAAU,KAAK,GAAA;IACpD,MAAMC,MAAAA,GAASD,UAAUL,iBAAAA,GAAoBF,YAAAA;AAE7C,IAAA,OAAOS,kBAAkBD,MAAAA,EAAQ;QAAEE,MAAAA,EAAQ;KAAM,CAAA,CAAGJ,IAAAA,CAAAA;AACtD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-configuration.js","sources":["../../../server/src/controllers/view-configuration.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport { getService } from '../utils';\nimport { ACTIONS } from '../constants';\nimport { validateViewConfiguration } from './validation/admin/configureView';\n\nexport default {\n async updateViewConfiguration(ctx: Context) {\n const {\n request: { body },\n state: { userAbility },\n } = ctx;\n\n if (userAbility.cannot(ACTIONS.configureView)) {\n return ctx.forbidden();\n }\n\n const data = await validateViewConfiguration(body);\n\n await getService('upload').setConfiguration(data);\n\n ctx.body = { data };\n },\n\n async findViewConfiguration(ctx: Context) {\n const data = await getService('upload').getConfiguration();\n\n ctx.body = { data };\n },\n};\n"],"names":["updateViewConfiguration","ctx","request","body","state","userAbility","cannot","ACTIONS","configureView","forbidden","data","validateViewConfiguration","getService","setConfiguration","findViewConfiguration","getConfiguration"],"mappings":";;;;;;AAMA,wBAAe;AACb,IAAA,MAAMA,yBAAwBC,GAAY,EAAA;QACxC,MAAM,EACJC,OAAS,EAAA,EAAEC,IAAI,EAAE,EACjBC,KAAAA,EAAO,EAAEC,WAAW,EAAE,EACvB,GAAGJ,GAAAA;AAEJ,QAAA,IAAII,WAAYC,CAAAA,MAAM,CAACC,iBAAAA,CAAQC,aAAa,CAAG,EAAA;AAC7C,YAAA,OAAOP,IAAIQ,SAAS,EAAA;AACtB;QAEA,MAAMC,IAAAA,GAAO,MAAMC,uCAA0BR,CAAAA,IAAAA,CAAAA;QAE7C,MAAMS,gBAAAA,CAAW,QAAUC,CAAAA,CAAAA,gBAAgB,CAACH,IAAAA,CAAAA;AAE5CT,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB,KAAA;AAEA,IAAA,MAAMI,uBAAsBb,GAAY,EAAA;AACtC,QAAA,MAAMS,IAAO,GAAA,MAAME,gBAAW,CAAA,QAAA,CAAA,CAAUG,gBAAgB,EAAA;AAExDd,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"view-configuration.js","sources":["../../../server/src/controllers/view-configuration.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport { getService } from '../utils';\nimport { ACTIONS } from '../constants';\nimport { validateViewConfiguration } from './validation/admin/configureView';\n\nexport default {\n async updateViewConfiguration(ctx: Context) {\n const {\n request: { body },\n state: { userAbility },\n } = ctx;\n\n if (userAbility.cannot(ACTIONS.configureView)) {\n return ctx.forbidden();\n }\n\n const data = await validateViewConfiguration(body);\n\n await getService('upload').setConfiguration(data);\n\n ctx.body = { data };\n },\n\n async findViewConfiguration(ctx: Context) {\n const data = await getService('upload').getConfiguration();\n\n ctx.body = { data };\n },\n};\n"],"names":["updateViewConfiguration","ctx","request","body","state","userAbility","cannot","ACTIONS","configureView","forbidden","data","validateViewConfiguration","getService","setConfiguration","findViewConfiguration","getConfiguration"],"mappings":";;;;;;AAMA,wBAAe;AACb,IAAA,MAAMA,yBAAwBC,GAAY,EAAA;QACxC,MAAM,EACJC,OAAAA,EAAS,EAAEC,IAAI,EAAE,EACjBC,KAAAA,EAAO,EAAEC,WAAW,EAAE,EACvB,GAAGJ,GAAAA;AAEJ,QAAA,IAAII,WAAAA,CAAYC,MAAM,CAACC,iBAAAA,CAAQC,aAAa,CAAA,EAAG;AAC7C,YAAA,OAAOP,IAAIQ,SAAS,EAAA;AACtB,QAAA;QAEA,MAAMC,IAAAA,GAAO,MAAMC,uCAAAA,CAA0BR,IAAAA,CAAAA;QAE7C,MAAMS,gBAAAA,CAAW,QAAA,CAAA,CAAUC,gBAAgB,CAACH,IAAAA,CAAAA;AAE5CT,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMI,uBAAsBb,GAAY,EAAA;AACtC,QAAA,MAAMS,IAAAA,GAAO,MAAME,gBAAAA,CAAW,QAAA,CAAA,CAAUG,gBAAgB,EAAA;AAExDd,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB,IAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-configuration.mjs","sources":["../../../server/src/controllers/view-configuration.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport { getService } from '../utils';\nimport { ACTIONS } from '../constants';\nimport { validateViewConfiguration } from './validation/admin/configureView';\n\nexport default {\n async updateViewConfiguration(ctx: Context) {\n const {\n request: { body },\n state: { userAbility },\n } = ctx;\n\n if (userAbility.cannot(ACTIONS.configureView)) {\n return ctx.forbidden();\n }\n\n const data = await validateViewConfiguration(body);\n\n await getService('upload').setConfiguration(data);\n\n ctx.body = { data };\n },\n\n async findViewConfiguration(ctx: Context) {\n const data = await getService('upload').getConfiguration();\n\n ctx.body = { data };\n },\n};\n"],"names":["updateViewConfiguration","ctx","request","body","state","userAbility","cannot","ACTIONS","configureView","forbidden","data","validateViewConfiguration","getService","setConfiguration","findViewConfiguration","getConfiguration"],"mappings":";;;;AAMA,wBAAe;AACb,IAAA,MAAMA,yBAAwBC,GAAY,EAAA;QACxC,MAAM,EACJC,OAAS,EAAA,EAAEC,IAAI,EAAE,EACjBC,KAAAA,EAAO,EAAEC,WAAW,EAAE,EACvB,GAAGJ,GAAAA;AAEJ,QAAA,IAAII,WAAYC,CAAAA,MAAM,CAACC,OAAAA,CAAQC,aAAa,CAAG,EAAA;AAC7C,YAAA,OAAOP,IAAIQ,SAAS,EAAA;AACtB;QAEA,MAAMC,IAAAA,GAAO,MAAMC,yBAA0BR,CAAAA,IAAAA,CAAAA;QAE7C,MAAMS,UAAAA,CAAW,QAAUC,CAAAA,CAAAA,gBAAgB,CAACH,IAAAA,CAAAA;AAE5CT,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB,KAAA;AAEA,IAAA,MAAMI,uBAAsBb,GAAY,EAAA;AACtC,QAAA,MAAMS,IAAO,GAAA,MAAME,UAAW,CAAA,QAAA,CAAA,CAAUG,gBAAgB,EAAA;AAExDd,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB;AACF,CAAE;;;;"}
1
+ {"version":3,"file":"view-configuration.mjs","sources":["../../../server/src/controllers/view-configuration.ts"],"sourcesContent":["import type { Context } from 'koa';\n\nimport { getService } from '../utils';\nimport { ACTIONS } from '../constants';\nimport { validateViewConfiguration } from './validation/admin/configureView';\n\nexport default {\n async updateViewConfiguration(ctx: Context) {\n const {\n request: { body },\n state: { userAbility },\n } = ctx;\n\n if (userAbility.cannot(ACTIONS.configureView)) {\n return ctx.forbidden();\n }\n\n const data = await validateViewConfiguration(body);\n\n await getService('upload').setConfiguration(data);\n\n ctx.body = { data };\n },\n\n async findViewConfiguration(ctx: Context) {\n const data = await getService('upload').getConfiguration();\n\n ctx.body = { data };\n },\n};\n"],"names":["updateViewConfiguration","ctx","request","body","state","userAbility","cannot","ACTIONS","configureView","forbidden","data","validateViewConfiguration","getService","setConfiguration","findViewConfiguration","getConfiguration"],"mappings":";;;;AAMA,wBAAe;AACb,IAAA,MAAMA,yBAAwBC,GAAY,EAAA;QACxC,MAAM,EACJC,OAAAA,EAAS,EAAEC,IAAI,EAAE,EACjBC,KAAAA,EAAO,EAAEC,WAAW,EAAE,EACvB,GAAGJ,GAAAA;AAEJ,QAAA,IAAII,WAAAA,CAAYC,MAAM,CAACC,OAAAA,CAAQC,aAAa,CAAA,EAAG;AAC7C,YAAA,OAAOP,IAAIQ,SAAS,EAAA;AACtB,QAAA;QAEA,MAAMC,IAAAA,GAAO,MAAMC,yBAAAA,CAA0BR,IAAAA,CAAAA;QAE7C,MAAMS,UAAAA,CAAW,QAAA,CAAA,CAAUC,gBAAgB,CAACH,IAAAA,CAAAA;AAE5CT,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMI,uBAAsBb,GAAY,EAAA;AACtC,QAAA,MAAMS,IAAAA,GAAO,MAAME,UAAAA,CAAW,QAAA,CAAA,CAAUG,gBAAgB,EAAA;AAExDd,QAAAA,GAAAA,CAAIE,IAAI,GAAG;AAAEO,YAAAA;AAAK,SAAA;AACpB,IAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.js","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_INFO_INPUT_TYPE_NAME","installGraphqlExtension","strapi","service","getGraphQLService","config","graphQLConfig","plugin","getUploadService","isShadowCRUDEnabled","shadowCRUD","disable","disableMutations","getTypeName","naming","fileModel","getModel","FILE_MODEL_UID","fileTypeName","use","nexus","inputObjectType","extendType","nonNull","fileInfoInputType","name","definition","t","string","mutations","type","field","args","id","info","resolve","parent","updateFileInfo","file","findOne","remove","types","resolversConfig","auth","scope"],"mappings":"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"}
1
+ {"version":3,"file":"graphql.js","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_INFO_INPUT_TYPE_NAME","installGraphqlExtension","strapi","service","getGraphQLService","config","graphQLConfig","plugin","getUploadService","isShadowCRUDEnabled","shadowCRUD","disable","disableMutations","getTypeName","naming","fileModel","getModel","FILE_MODEL_UID","fileTypeName","use","nexus","inputObjectType","extendType","nonNull","fileInfoInputType","name","definition","t","string","mutations","type","field","args","id","info","resolve","parent","updateFileInfo","file","findOne","remove","types","resolversConfig","auth","scope"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_INFO_INPUT_TYPE_NAME","installGraphqlExtension","strapi","service","getGraphQLService","config","graphQLConfig","plugin","getUploadService","isShadowCRUDEnabled","shadowCRUD","disable","disableMutations","getTypeName","naming","fileModel","getModel","FILE_MODEL_UID","fileTypeName","use","nexus","inputObjectType","extendType","nonNull","fileInfoInputType","name","definition","t","string","mutations","type","field","args","id","info","resolve","parent","updateFileInfo","file","findOne","remove","types","resolversConfig","auth","scope"],"mappings":"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"}
1
+ {"version":3,"file":"graphql.mjs","sources":["../../server/src/graphql.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport { FILE_MODEL_UID } from './constants';\n\nconst FILE_INFO_INPUT_TYPE_NAME = 'FileInfoInput';\n\nexport const installGraphqlExtension = ({ strapi }: { strapi: Core.Strapi }) => {\n const { service: getGraphQLService, config: graphQLConfig } = strapi.plugin('graphql');\n const { service: getUploadService } = strapi.plugin('upload');\n\n const isShadowCRUDEnabled = graphQLConfig('shadowCRUD', true);\n\n if (!isShadowCRUDEnabled) {\n return;\n }\n\n getGraphQLService('extension').shadowCRUD('plugin::upload.folder').disable();\n getGraphQLService('extension').shadowCRUD('plugin::upload.file').disableMutations();\n\n const { getTypeName } = getGraphQLService('utils').naming;\n\n const fileModel = strapi.getModel(FILE_MODEL_UID);\n const fileTypeName = getTypeName(fileModel);\n /**\n * Register Upload's types, queries & mutations to the content API using the GraphQL extension API\n */\n getGraphQLService('extension').use(({ nexus }: { nexus: any }) => {\n const { inputObjectType, extendType, nonNull } = nexus;\n\n // Represents the input data payload for the file's information\n const fileInfoInputType = inputObjectType({\n name: FILE_INFO_INPUT_TYPE_NAME,\n\n definition(t: any) {\n t.string('name');\n t.string('alternativeText');\n t.string('caption');\n },\n });\n\n const mutations = extendType({\n type: 'Mutation',\n\n definition(t: any) {\n /**\n * Update some information for a given file\n */\n t.field('updateUploadFile', {\n type: nonNull(fileTypeName),\n\n args: {\n id: nonNull('ID'),\n info: FILE_INFO_INPUT_TYPE_NAME,\n },\n\n async resolve(parent: unknown, args: { id: number; info: any }) {\n const { id, info } = args;\n\n return getUploadService('upload').updateFileInfo(id, info);\n },\n });\n\n /**\n * Delete & remove a given file\n */\n t.field('deleteUploadFile', {\n type: fileTypeName,\n\n args: {\n id: nonNull('ID'),\n },\n\n async resolve(parent: unknown, args: { id: number }) {\n const { id } = args;\n\n const file = await getUploadService('upload').findOne(id);\n\n if (!file) {\n return null;\n }\n\n return getUploadService('upload').remove(file);\n },\n });\n },\n });\n\n return {\n types: [fileInfoInputType, mutations],\n resolversConfig: {\n // Use custom scopes for the upload file CRUD operations\n 'Query.uploadFiles': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFiles_connection': { auth: { scope: 'plugin::upload.content-api.find' } },\n 'Query.uploadFile': { auth: { scope: 'plugin::upload.content-api.findOne' } },\n 'Mutation.updateUploadFile': { auth: { scope: 'plugin::upload.content-api.upload' } },\n 'Mutation.deleteUploadFile': { auth: { scope: 'plugin::upload.content-api.destroy' } },\n },\n };\n });\n};\n"],"names":["FILE_INFO_INPUT_TYPE_NAME","installGraphqlExtension","strapi","service","getGraphQLService","config","graphQLConfig","plugin","getUploadService","isShadowCRUDEnabled","shadowCRUD","disable","disableMutations","getTypeName","naming","fileModel","getModel","FILE_MODEL_UID","fileTypeName","use","nexus","inputObjectType","extendType","nonNull","fileInfoInputType","name","definition","t","string","mutations","type","field","args","id","info","resolve","parent","updateFileInfo","file","findOne","remove","types","resolversConfig","auth","scope"],"mappings":"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"}
@@ -2,20 +2,20 @@
2
2
 
3
3
  var register = require('./register.js');
4
4
  var bootstrap = require('./bootstrap.js');
5
- var index$3 = require('./content-types/index.js');
6
- var index$4 = require('./services/index.js');
7
- var index$1 = require('./routes/index.js');
5
+ var index$2 = require('./content-types/index.js');
6
+ var index$1 = require('./services/index.js');
7
+ var index$4 = require('./routes/index.js');
8
8
  var config = require('./config.js');
9
- var index$2 = require('./controllers/index.js');
9
+ var index$3 = require('./controllers/index.js');
10
10
 
11
11
  var index = (()=>({
12
12
  register: register.register,
13
13
  bootstrap: bootstrap.bootstrap,
14
14
  config: config.config,
15
- routes: index$1.routes,
16
- controllers: index$2.controllers,
17
- contentTypes: index$3.contentTypes,
18
- services: index$4.services
15
+ routes: index$4.routes,
16
+ controllers: index$3.controllers,
17
+ contentTypes: index$2.contentTypes,
18
+ services: index$1.services
19
19
  }));
20
20
 
21
21
  module.exports = index;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../server/src/middlewares/upload.ts"],"sourcesContent":["import range from 'koa-range';\nimport koaStatic from 'koa-static';\n\nimport type { Core } from '@strapi/types';\n\n/**\n * Programmatic upload middleware. We do not want to expose it in the plugin\n */\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.server.app.on('error', (err) => {\n if (err.code === 'EPIPE') {\n // when serving audio or video the browsers sometimes close the connection to go to range requests instead.\n // This causes koa to emit a write EPIPE error. We can ignore it.\n // Right now this ignores it globally and we cannot do much more because it is how koa handles it.\n return;\n }\n\n strapi.server.app.onerror(err);\n });\n\n const localServerConfig = strapi.config.get('plugin::upload.providerOptions.localServer', {});\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/uploads/(.*)',\n handler: [range, koaStatic(strapi.dirs.static.public, { defer: true, ...localServerConfig })],\n config: { auth: false },\n },\n ]);\n};\n"],"names":["strapi","server","app","on","err","code","onerror","localServerConfig","config","get","routes","method","path","handler","range","koaStatic","dirs","static","public","defer","auth"],"mappings":";;;;;AAKA;;AAEC,IACD,+BAAe,CAAA,CAAC,EAAEA,MAAM,EAA2B,GAAA;AACjDA,IAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACC,EAAE,CAAC,SAAS,CAACC,GAAAA,GAAAA;QAC7B,IAAIA,GAAAA,CAAIC,IAAI,KAAK,OAAS,EAAA;;;;AAIxB,YAAA;AACF;AAEAL,QAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACI,OAAO,CAACF,GAAAA,CAAAA;AAC5B,KAAA,CAAA;AAEA,IAAA,MAAMG,oBAAoBP,MAAOQ,CAAAA,MAAM,CAACC,GAAG,CAAC,8CAA8C,EAAC,CAAA;IAE3FT,MAAOC,CAAAA,MAAM,CAACS,MAAM,CAAC;AACnB,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,eAAA;YACNC,OAAS,EAAA;AAACC,gBAAAA,KAAAA;AAAOC,gBAAAA,SAAAA,CAAUf,OAAOgB,IAAI,CAACC,MAAM,CAACC,MAAM,EAAE;oBAAEC,KAAO,EAAA,IAAA;AAAM,oBAAA,GAAGZ;AAAkB,iBAAA;AAAG,aAAA;YAC7FC,MAAQ,EAAA;gBAAEY,IAAM,EAAA;AAAM;AACxB;AACD,KAAA,CAAA;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"upload.js","sources":["../../../server/src/middlewares/upload.ts"],"sourcesContent":["import range from 'koa-range';\nimport koaStatic from 'koa-static';\n\nimport type { Core } from '@strapi/types';\n\n/**\n * Programmatic upload middleware. We do not want to expose it in the plugin\n */\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.server.app.on('error', (err) => {\n if (err.code === 'EPIPE') {\n // when serving audio or video the browsers sometimes close the connection to go to range requests instead.\n // This causes koa to emit a write EPIPE error. We can ignore it.\n // Right now this ignores it globally and we cannot do much more because it is how koa handles it.\n return;\n }\n\n strapi.server.app.onerror(err);\n });\n\n const localServerConfig = strapi.config.get('plugin::upload.providerOptions.localServer', {});\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/uploads/(.*)',\n handler: [range, koaStatic(strapi.dirs.static.public, { defer: true, ...localServerConfig })],\n config: { auth: false },\n },\n ]);\n};\n"],"names":["strapi","server","app","on","err","code","onerror","localServerConfig","config","get","routes","method","path","handler","range","koaStatic","dirs","static","public","defer","auth"],"mappings":";;;;;AAKA;;AAEC,IACD,+BAAe,CAAA,CAAC,EAAEA,MAAM,EAA2B,GAAA;AACjDA,IAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACC,EAAE,CAAC,SAAS,CAACC,GAAAA,GAAAA;QAC7B,IAAIA,GAAAA,CAAIC,IAAI,KAAK,OAAA,EAAS;;;;AAIxB,YAAA;AACF,QAAA;AAEAL,QAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACI,OAAO,CAACF,GAAAA,CAAAA;AAC5B,IAAA,CAAA,CAAA;AAEA,IAAA,MAAMG,oBAAoBP,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAAC,8CAA8C,EAAC,CAAA;IAE3FT,MAAAA,CAAOC,MAAM,CAACS,MAAM,CAAC;AACnB,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS;AAACC,gBAAAA,KAAAA;AAAOC,gBAAAA,SAAAA,CAAUf,OAAOgB,IAAI,CAACC,MAAM,CAACC,MAAM,EAAE;oBAAEC,KAAAA,EAAO,IAAA;AAAM,oBAAA,GAAGZ;AAAkB,iBAAA;AAAG,aAAA;YAC7FC,MAAAA,EAAQ;gBAAEY,IAAAA,EAAM;AAAM;AACxB;AACD,KAAA,CAAA;AACH,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.mjs","sources":["../../../server/src/middlewares/upload.ts"],"sourcesContent":["import range from 'koa-range';\nimport koaStatic from 'koa-static';\n\nimport type { Core } from '@strapi/types';\n\n/**\n * Programmatic upload middleware. We do not want to expose it in the plugin\n */\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.server.app.on('error', (err) => {\n if (err.code === 'EPIPE') {\n // when serving audio or video the browsers sometimes close the connection to go to range requests instead.\n // This causes koa to emit a write EPIPE error. We can ignore it.\n // Right now this ignores it globally and we cannot do much more because it is how koa handles it.\n return;\n }\n\n strapi.server.app.onerror(err);\n });\n\n const localServerConfig = strapi.config.get('plugin::upload.providerOptions.localServer', {});\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/uploads/(.*)',\n handler: [range, koaStatic(strapi.dirs.static.public, { defer: true, ...localServerConfig })],\n config: { auth: false },\n },\n ]);\n};\n"],"names":["strapi","server","app","on","err","code","onerror","localServerConfig","config","get","routes","method","path","handler","range","koaStatic","dirs","static","public","defer","auth"],"mappings":";;;AAKA;;AAEC,IACD,+BAAe,CAAA,CAAC,EAAEA,MAAM,EAA2B,GAAA;AACjDA,IAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACC,EAAE,CAAC,SAAS,CAACC,GAAAA,GAAAA;QAC7B,IAAIA,GAAAA,CAAIC,IAAI,KAAK,OAAS,EAAA;;;;AAIxB,YAAA;AACF;AAEAL,QAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACI,OAAO,CAACF,GAAAA,CAAAA;AAC5B,KAAA,CAAA;AAEA,IAAA,MAAMG,oBAAoBP,MAAOQ,CAAAA,MAAM,CAACC,GAAG,CAAC,8CAA8C,EAAC,CAAA;IAE3FT,MAAOC,CAAAA,MAAM,CAACS,MAAM,CAAC;AACnB,QAAA;YACEC,MAAQ,EAAA,KAAA;YACRC,IAAM,EAAA,eAAA;YACNC,OAAS,EAAA;AAACC,gBAAAA,KAAAA;AAAOC,gBAAAA,SAAAA,CAAUf,OAAOgB,IAAI,CAACC,MAAM,CAACC,MAAM,EAAE;oBAAEC,KAAO,EAAA,IAAA;AAAM,oBAAA,GAAGZ;AAAkB,iBAAA;AAAG,aAAA;YAC7FC,MAAQ,EAAA;gBAAEY,IAAM,EAAA;AAAM;AACxB;AACD,KAAA,CAAA;AACH,CAAA;;;;"}
1
+ {"version":3,"file":"upload.mjs","sources":["../../../server/src/middlewares/upload.ts"],"sourcesContent":["import range from 'koa-range';\nimport koaStatic from 'koa-static';\n\nimport type { Core } from '@strapi/types';\n\n/**\n * Programmatic upload middleware. We do not want to expose it in the plugin\n */\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n strapi.server.app.on('error', (err) => {\n if (err.code === 'EPIPE') {\n // when serving audio or video the browsers sometimes close the connection to go to range requests instead.\n // This causes koa to emit a write EPIPE error. We can ignore it.\n // Right now this ignores it globally and we cannot do much more because it is how koa handles it.\n return;\n }\n\n strapi.server.app.onerror(err);\n });\n\n const localServerConfig = strapi.config.get('plugin::upload.providerOptions.localServer', {});\n\n strapi.server.routes([\n {\n method: 'GET',\n path: '/uploads/(.*)',\n handler: [range, koaStatic(strapi.dirs.static.public, { defer: true, ...localServerConfig })],\n config: { auth: false },\n },\n ]);\n};\n"],"names":["strapi","server","app","on","err","code","onerror","localServerConfig","config","get","routes","method","path","handler","range","koaStatic","dirs","static","public","defer","auth"],"mappings":";;;AAKA;;AAEC,IACD,+BAAe,CAAA,CAAC,EAAEA,MAAM,EAA2B,GAAA;AACjDA,IAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACC,EAAE,CAAC,SAAS,CAACC,GAAAA,GAAAA;QAC7B,IAAIA,GAAAA,CAAIC,IAAI,KAAK,OAAA,EAAS;;;;AAIxB,YAAA;AACF,QAAA;AAEAL,QAAAA,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAACI,OAAO,CAACF,GAAAA,CAAAA;AAC5B,IAAA,CAAA,CAAA;AAEA,IAAA,MAAMG,oBAAoBP,MAAAA,CAAOQ,MAAM,CAACC,GAAG,CAAC,8CAA8C,EAAC,CAAA;IAE3FT,MAAAA,CAAOC,MAAM,CAACS,MAAM,CAAC;AACnB,QAAA;YACEC,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS;AAACC,gBAAAA,KAAAA;AAAOC,gBAAAA,SAAAA,CAAUf,OAAOgB,IAAI,CAACC,MAAM,CAACC,MAAM,EAAE;oBAAEC,KAAAA,EAAO,IAAA;AAAM,oBAAA,GAAGZ;AAAkB,iBAAA;AAAG,aAAA;YAC7FC,MAAAA,EAAQ;gBAAEY,IAAAA,EAAM;AAAM;AACxB;AACD,KAAA,CAAA;AACH,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-metadata-job.js","sources":["../../../server/src/models/ai-metadata-job.ts"],"sourcesContent":["import type { Model } from '@strapi/database';\n\nconst AI_METADATA_JOB_UID = 'plugin::upload.ai-metadata-job';\n\nconst aiMetadataJob: Model = {\n uid: AI_METADATA_JOB_UID,\n tableName: 'strapi_ai_metadata_jobs',\n singularName: 'ai-metadata-job',\n attributes: {\n id: {\n type: 'increments',\n },\n status: {\n type: 'enumeration',\n enum: ['processing', 'completed', 'failed'],\n column: { notNullable: true },\n },\n createdAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n completedAt: {\n type: 'datetime',\n default: null,\n },\n },\n};\n\nexport { aiMetadataJob, AI_METADATA_JOB_UID };\n"],"names":["AI_METADATA_JOB_UID","aiMetadataJob","uid","tableName","singularName","attributes","id","type","status","enum","column","notNullable","createdAt","default","Date","completedAt"],"mappings":";;AAEA,MAAMA,mBAAsB,GAAA;AAE5B,MAAMC,aAAuB,GAAA;IAC3BC,GAAKF,EAAAA,mBAAAA;IACLG,SAAW,EAAA,yBAAA;IACXC,YAAc,EAAA,iBAAA;IACdC,UAAY,EAAA;QACVC,EAAI,EAAA;YACFC,IAAM,EAAA;AACR,SAAA;QACAC,MAAQ,EAAA;YACND,IAAM,EAAA,aAAA;YACNE,IAAM,EAAA;AAAC,gBAAA,YAAA;AAAc,gBAAA,WAAA;AAAa,gBAAA;AAAS,aAAA;YAC3CC,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAC,SAAW,EAAA;YACTL,IAAM,EAAA,UAAA;AACNM,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB,SAAA;QACAC,WAAa,EAAA;YACXR,IAAM,EAAA,UAAA;YACNM,OAAS,EAAA;AACX;AACF;AACF;;;;;"}
1
+ {"version":3,"file":"ai-metadata-job.js","sources":["../../../server/src/models/ai-metadata-job.ts"],"sourcesContent":["import type { Model } from '@strapi/database';\n\nconst AI_METADATA_JOB_UID = 'plugin::upload.ai-metadata-job';\n\nconst aiMetadataJob: Model = {\n uid: AI_METADATA_JOB_UID,\n tableName: 'strapi_ai_metadata_jobs',\n singularName: 'ai-metadata-job',\n attributes: {\n id: {\n type: 'increments',\n },\n status: {\n type: 'enumeration',\n enum: ['processing', 'completed', 'failed'],\n column: { notNullable: true },\n },\n createdAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n completedAt: {\n type: 'datetime',\n default: null,\n },\n },\n};\n\nexport { aiMetadataJob, AI_METADATA_JOB_UID };\n"],"names":["AI_METADATA_JOB_UID","aiMetadataJob","uid","tableName","singularName","attributes","id","type","status","enum","column","notNullable","createdAt","default","Date","completedAt"],"mappings":";;AAEA,MAAMA,mBAAAA,GAAsB;AAE5B,MAAMC,aAAAA,GAAuB;IAC3BC,GAAAA,EAAKF,mBAAAA;IACLG,SAAAA,EAAW,yBAAA;IACXC,YAAAA,EAAc,iBAAA;IACdC,UAAAA,EAAY;QACVC,EAAAA,EAAI;YACFC,IAAAA,EAAM;AACR,SAAA;QACAC,MAAAA,EAAQ;YACND,IAAAA,EAAM,aAAA;YACNE,IAAAA,EAAM;AAAC,gBAAA,YAAA;AAAc,gBAAA,WAAA;AAAa,gBAAA;AAAS,aAAA;YAC3CC,MAAAA,EAAQ;gBAAEC,WAAAA,EAAa;AAAK;AAC9B,SAAA;QACAC,SAAAA,EAAW;YACTL,IAAAA,EAAM,UAAA;AACNM,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB,SAAA;QACAC,WAAAA,EAAa;YACXR,IAAAA,EAAM,UAAA;YACNM,OAAAA,EAAS;AACX;AACF;AACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-metadata-job.mjs","sources":["../../../server/src/models/ai-metadata-job.ts"],"sourcesContent":["import type { Model } from '@strapi/database';\n\nconst AI_METADATA_JOB_UID = 'plugin::upload.ai-metadata-job';\n\nconst aiMetadataJob: Model = {\n uid: AI_METADATA_JOB_UID,\n tableName: 'strapi_ai_metadata_jobs',\n singularName: 'ai-metadata-job',\n attributes: {\n id: {\n type: 'increments',\n },\n status: {\n type: 'enumeration',\n enum: ['processing', 'completed', 'failed'],\n column: { notNullable: true },\n },\n createdAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n completedAt: {\n type: 'datetime',\n default: null,\n },\n },\n};\n\nexport { aiMetadataJob, AI_METADATA_JOB_UID };\n"],"names":["AI_METADATA_JOB_UID","aiMetadataJob","uid","tableName","singularName","attributes","id","type","status","enum","column","notNullable","createdAt","default","Date","completedAt"],"mappings":"AAEA,MAAMA,mBAAsB,GAAA;AAE5B,MAAMC,aAAuB,GAAA;IAC3BC,GAAKF,EAAAA,mBAAAA;IACLG,SAAW,EAAA,yBAAA;IACXC,YAAc,EAAA,iBAAA;IACdC,UAAY,EAAA;QACVC,EAAI,EAAA;YACFC,IAAM,EAAA;AACR,SAAA;QACAC,MAAQ,EAAA;YACND,IAAM,EAAA,aAAA;YACNE,IAAM,EAAA;AAAC,gBAAA,YAAA;AAAc,gBAAA,WAAA;AAAa,gBAAA;AAAS,aAAA;YAC3CC,MAAQ,EAAA;gBAAEC,WAAa,EAAA;AAAK;AAC9B,SAAA;QACAC,SAAW,EAAA;YACTL,IAAM,EAAA,UAAA;AACNM,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB,SAAA;QACAC,WAAa,EAAA;YACXR,IAAM,EAAA,UAAA;YACNM,OAAS,EAAA;AACX;AACF;AACF;;;;"}
1
+ {"version":3,"file":"ai-metadata-job.mjs","sources":["../../../server/src/models/ai-metadata-job.ts"],"sourcesContent":["import type { Model } from '@strapi/database';\n\nconst AI_METADATA_JOB_UID = 'plugin::upload.ai-metadata-job';\n\nconst aiMetadataJob: Model = {\n uid: AI_METADATA_JOB_UID,\n tableName: 'strapi_ai_metadata_jobs',\n singularName: 'ai-metadata-job',\n attributes: {\n id: {\n type: 'increments',\n },\n status: {\n type: 'enumeration',\n enum: ['processing', 'completed', 'failed'],\n column: { notNullable: true },\n },\n createdAt: {\n type: 'datetime',\n default: () => new Date(),\n },\n completedAt: {\n type: 'datetime',\n default: null,\n },\n },\n};\n\nexport { aiMetadataJob, AI_METADATA_JOB_UID };\n"],"names":["AI_METADATA_JOB_UID","aiMetadataJob","uid","tableName","singularName","attributes","id","type","status","enum","column","notNullable","createdAt","default","Date","completedAt"],"mappings":"AAEA,MAAMA,mBAAAA,GAAsB;AAE5B,MAAMC,aAAAA,GAAuB;IAC3BC,GAAAA,EAAKF,mBAAAA;IACLG,SAAAA,EAAW,yBAAA;IACXC,YAAAA,EAAc,iBAAA;IACdC,UAAAA,EAAY;QACVC,EAAAA,EAAI;YACFC,IAAAA,EAAM;AACR,SAAA;QACAC,MAAAA,EAAQ;YACND,IAAAA,EAAM,aAAA;YACNE,IAAAA,EAAM;AAAC,gBAAA,YAAA;AAAc,gBAAA,WAAA;AAAa,gBAAA;AAAS,aAAA;YAC3CC,MAAAA,EAAQ;gBAAEC,WAAAA,EAAa;AAAK;AAC9B,SAAA;QACAC,SAAAA,EAAW;YACTL,IAAAA,EAAM,UAAA;AACNM,YAAAA,OAAAA,EAAS,IAAM,IAAIC,IAAAA;AACrB,SAAA;QACAC,WAAAA,EAAa;YACXR,IAAAA,EAAM,UAAA;YACNM,OAAAA,EAAS;AACX;AACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport { errors, file } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport registerUploadMiddleware from './middlewares/upload';\nimport spec from '../../documentation/content-api.json';\nimport type { Config, File, InputFile } from './types';\nimport { aiMetadataJob } from './models/ai-metadata-job';\n\nconst { PayloadTooLargeError } = errors;\nconst { bytesToHumanReadable, kbytesToBytes } = file;\n\n/**\n * Register upload plugin\n */\nexport async function register({ strapi }: { strapi: Core.Strapi }) {\n // Register AI metadata job model\n strapi.get('models').add(aiMetadataJob);\n\n strapi.plugin('upload').provider = createProvider(strapi.config.get<Config>('plugin::upload'));\n\n await registerUploadMiddleware({ strapi });\n\n if (strapi.plugin('graphql')) {\n const { installGraphqlExtension } = await import('./graphql.js');\n installGraphqlExtension({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'upload',\n excludeFromGeneration: ['upload'],\n });\n }\n}\n\nconst createProvider = (config: Config) => {\n const { providerOptions, actionOptions = {} } = config;\n\n const providerName = _.toLower(config.provider);\n let provider;\n\n let modulePath;\n try {\n modulePath = require.resolve(`@strapi/provider-upload-${providerName}`);\n } catch (error) {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'MODULE_NOT_FOUND'\n ) {\n modulePath = providerName;\n } else {\n throw error;\n }\n }\n\n try {\n provider = require(modulePath);\n } catch (err) {\n const newError = new Error(`Could not load upload provider \"${providerName}\".`);\n\n if (err instanceof Error) {\n newError.stack = err.stack;\n }\n\n throw newError;\n }\n\n const providerInstance = provider.init(providerOptions);\n\n if (!providerInstance.delete) {\n throw new Error(`The upload provider \"${providerName}\" doesn't implement the delete method.`);\n }\n\n if (!providerInstance.upload && !providerInstance.uploadStream) {\n throw new Error(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream nor the upload method.`\n );\n }\n\n if (!providerInstance.uploadStream) {\n process.emitWarning(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream function. Strapi will fallback on the upload method. Some performance issues may occur.`\n );\n }\n\n const wrappedProvider = _.mapValues(providerInstance, (method, methodName) => {\n return async (file: File, options = actionOptions[methodName]) =>\n providerInstance[methodName](file, options);\n });\n\n return Object.assign(Object.create(baseProvider), wrappedProvider);\n};\n\nconst baseProvider = {\n extend(obj: unknown) {\n Object.assign(this, obj);\n },\n checkFileSize(file: InputFile, { sizeLimit }: { sizeLimit: number }) {\n if (sizeLimit && kbytesToBytes(file.size) > sizeLimit) {\n throw new PayloadTooLargeError(\n `${file.originalFilename} exceeds size limit of ${bytesToHumanReadable(sizeLimit)}.`\n );\n }\n },\n getSignedUrl(file: File) {\n return file;\n },\n isPrivate() {\n return false;\n },\n};\n"],"names":["PayloadTooLargeError","errors","bytesToHumanReadable","kbytesToBytes","file","register","strapi","get","add","aiMetadataJob","plugin","provider","createProvider","config","registerUploadMiddleware","installGraphqlExtension","service","registerOverride","spec","pluginOrigin","excludeFromGeneration","providerOptions","actionOptions","providerName","_","toLower","modulePath","require","resolve","error","code","err","newError","Error","stack","providerInstance","init","delete","upload","uploadStream","process","emitWarning","wrappedProvider","mapValues","method","methodName","options","Object","assign","create","baseProvider","extend","obj","checkFileSize","sizeLimit","size","originalFilename","getSignedUrl","isPrivate"],"mappings":";;;;;;;;AAUA,MAAM,EAAEA,oBAAoB,EAAE,GAAGC,YAAAA;AACjC,MAAM,EAAEC,oBAAoB,EAAEC,aAAa,EAAE,GAAGC,UAAAA;AAEhD;;AAEC,IACM,eAAeC,QAAS,CAAA,EAAEC,MAAM,EAA2B,EAAA;;AAEhEA,IAAAA,MAAAA,CAAOC,GAAG,CAAC,QAAUC,CAAAA,CAAAA,GAAG,CAACC,2BAAAA,CAAAA;IAEzBH,MAAOI,CAAAA,MAAM,CAAC,QAAA,CAAA,CAAUC,QAAQ,GAAGC,eAAeN,MAAOO,CAAAA,MAAM,CAACN,GAAG,CAAS,gBAAA,CAAA,CAAA;AAE5E,IAAA,MAAMO,MAAyB,CAAA;AAAER,QAAAA;AAAO,KAAA,CAAA;IAExC,IAAIA,MAAAA,CAAOI,MAAM,CAAC,SAAY,CAAA,EAAA;AAC5B,QAAA,MAAM,EAAEK,uBAAuB,EAAE,GAAG,MAAM,oDAAO,cAAA,KAAA;QACjDA,uBAAwB,CAAA;AAAET,YAAAA;AAAO,SAAA,CAAA;AACnC;IAEA,IAAIA,MAAAA,CAAOI,MAAM,CAAC,eAAkB,CAAA,EAAA;QAClCJ,MACGI,CAAAA,MAAM,CAAC,eACPM,CAAAA,CAAAA,OAAO,CAAC,UACRC,CAAAA,CAAAA,gBAAgB,CAACC,kBAAM,EAAA;YACtBC,YAAc,EAAA,QAAA;YACdC,qBAAuB,EAAA;AAAC,gBAAA;AAAS;AACnC,SAAA,CAAA;AACJ;AACF;AAEA,MAAMR,iBAAiB,CAACC,MAAAA,GAAAA;AACtB,IAAA,MAAM,EAAEQ,eAAe,EAAEC,gBAAgB,EAAE,EAAE,GAAGT,MAAAA;AAEhD,IAAA,MAAMU,YAAeC,GAAAA,CAAAA,CAAEC,OAAO,CAACZ,OAAOF,QAAQ,CAAA;IAC9C,IAAIA,QAAAA;IAEJ,IAAIe,UAAAA;IACJ,IAAI;AACFA,QAAAA,UAAAA,GAAaC,QAAQC,OAAO,CAAC,CAAC,wBAAwB,EAAEL,YAAc,CAAA,CAAA,CAAA;AACxE,KAAA,CAAE,OAAOM,KAAO,EAAA;QACd,IACE,OAAOA,KAAU,KAAA,QAAA,IACjBA,KAAU,KAAA,IAAA,IACV,UAAUA,KACVA,IAAAA,KAAAA,CAAMC,IAAI,KAAK,kBACf,EAAA;YACAJ,UAAaH,GAAAA,YAAAA;SACR,MAAA;YACL,MAAMM,KAAAA;AACR;AACF;IAEA,IAAI;AACFlB,QAAAA,QAAAA,GAAWgB,OAAQD,CAAAA,UAAAA,CAAAA;AACrB,KAAA,CAAE,OAAOK,GAAK,EAAA;QACZ,MAAMC,QAAAA,GAAW,IAAIC,KAAM,CAAA,CAAC,gCAAgC,EAAEV,YAAAA,CAAa,EAAE,CAAC,CAAA;AAE9E,QAAA,IAAIQ,eAAeE,KAAO,EAAA;YACxBD,QAASE,CAAAA,KAAK,GAAGH,GAAAA,CAAIG,KAAK;AAC5B;QAEA,MAAMF,QAAAA;AACR;IAEA,MAAMG,gBAAAA,GAAmBxB,QAASyB,CAAAA,IAAI,CAACf,eAAAA,CAAAA;IAEvC,IAAI,CAACc,gBAAiBE,CAAAA,MAAM,EAAE;AAC5B,QAAA,MAAM,IAAIJ,KAAM,CAAA,CAAC,qBAAqB,EAAEV,YAAAA,CAAa,sCAAsC,CAAC,CAAA;AAC9F;AAEA,IAAA,IAAI,CAACY,gBAAiBG,CAAAA,MAAM,IAAI,CAACH,gBAAAA,CAAiBI,YAAY,EAAE;AAC9D,QAAA,MAAM,IAAIN,KACR,CAAA,CAAC,qBAAqB,EAAEV,YAAAA,CAAa,2DAA2D,CAAC,CAAA;AAErG;IAEA,IAAI,CAACY,gBAAiBI,CAAAA,YAAY,EAAE;AAClCC,QAAAA,OAAAA,CAAQC,WAAW,CACjB,CAAC,qBAAqB,EAAElB,YAAAA,CAAa,4HAA4H,CAAC,CAAA;AAEtK;AAEA,IAAA,MAAMmB,kBAAkBlB,CAAEmB,CAAAA,SAAS,CAACR,gBAAAA,EAAkB,CAACS,MAAQC,EAAAA,UAAAA,GAAAA;QAC7D,OAAO,OAAOzC,IAAY0C,EAAAA,OAAAA,GAAUxB,aAAa,CAACuB,UAAW,CAAA,GAC3DV,gBAAgB,CAACU,UAAW,CAAA,CAACzC,IAAM0C,EAAAA,OAAAA,CAAAA;AACvC,KAAA,CAAA;AAEA,IAAA,OAAOC,OAAOC,MAAM,CAACD,MAAOE,CAAAA,MAAM,CAACC,YAAeR,CAAAA,EAAAA,eAAAA,CAAAA;AACpD,CAAA;AAEA,MAAMQ,YAAe,GAAA;AACnBC,IAAAA,MAAAA,CAAAA,CAAOC,GAAY,EAAA;QACjBL,MAAOC,CAAAA,MAAM,CAAC,IAAI,EAAEI,GAAAA,CAAAA;AACtB,KAAA;AACAC,IAAAA,aAAAA,CAAAA,CAAcjD,IAAe,EAAE,EAAEkD,SAAS,EAAyB,EAAA;AACjE,QAAA,IAAIA,SAAanD,IAAAA,aAAAA,CAAcC,IAAKmD,CAAAA,IAAI,IAAID,SAAW,EAAA;YACrD,MAAM,IAAItD,oBACR,CAAA,CAAA,EAAGI,IAAKoD,CAAAA,gBAAgB,CAAC,uBAAuB,EAAEtD,oBAAAA,CAAqBoD,SAAW,CAAA,CAAA,CAAC,CAAC,CAAA;AAExF;AACF,KAAA;AACAG,IAAAA,YAAAA,CAAAA,CAAarD,IAAU,EAAA;QACrB,OAAOA,IAAAA;AACT,KAAA;AACAsD,IAAAA,SAAAA,CAAAA,GAAAA;QACE,OAAO,KAAA;AACT;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport { errors, file } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport registerUploadMiddleware from './middlewares/upload';\nimport spec from '../../documentation/content-api.json';\nimport type { Config, File, InputFile } from './types';\nimport { aiMetadataJob } from './models/ai-metadata-job';\n\nconst { PayloadTooLargeError } = errors;\nconst { bytesToHumanReadable, kbytesToBytes } = file;\n\n/**\n * Register upload plugin\n */\nexport async function register({ strapi }: { strapi: Core.Strapi }) {\n // Register AI metadata job model\n strapi.get('models').add(aiMetadataJob);\n\n strapi.plugin('upload').provider = createProvider(strapi.config.get<Config>('plugin::upload'));\n\n await registerUploadMiddleware({ strapi });\n\n if (strapi.plugin('graphql')) {\n const { installGraphqlExtension } = await import('./graphql.js');\n installGraphqlExtension({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'upload',\n excludeFromGeneration: ['upload'],\n });\n }\n}\n\nconst createProvider = (config: Config) => {\n const { providerOptions, actionOptions = {} } = config;\n\n const providerName = _.toLower(config.provider);\n let provider;\n\n let modulePath;\n try {\n modulePath = require.resolve(`@strapi/provider-upload-${providerName}`);\n } catch (error) {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'MODULE_NOT_FOUND'\n ) {\n modulePath = providerName;\n } else {\n throw error;\n }\n }\n\n try {\n provider = require(modulePath);\n } catch (err) {\n const newError = new Error(`Could not load upload provider \"${providerName}\".`);\n\n if (err instanceof Error) {\n newError.stack = err.stack;\n }\n\n throw newError;\n }\n\n const providerInstance = provider.init(providerOptions);\n\n if (!providerInstance.delete) {\n throw new Error(`The upload provider \"${providerName}\" doesn't implement the delete method.`);\n }\n\n if (!providerInstance.upload && !providerInstance.uploadStream) {\n throw new Error(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream nor the upload method.`\n );\n }\n\n if (!providerInstance.uploadStream) {\n process.emitWarning(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream function. Strapi will fallback on the upload method. Some performance issues may occur.`\n );\n }\n\n const wrappedProvider = _.mapValues(providerInstance, (method, methodName) => {\n return async (file: File, options = actionOptions[methodName]) =>\n providerInstance[methodName](file, options);\n });\n\n return Object.assign(Object.create(baseProvider), wrappedProvider);\n};\n\nconst baseProvider = {\n extend(obj: unknown) {\n Object.assign(this, obj);\n },\n checkFileSize(file: InputFile, { sizeLimit }: { sizeLimit: number }) {\n if (sizeLimit && kbytesToBytes(file.size) > sizeLimit) {\n throw new PayloadTooLargeError(\n `${file.originalFilename} exceeds size limit of ${bytesToHumanReadable(sizeLimit)}.`\n );\n }\n },\n getSignedUrl(file: File) {\n return file;\n },\n isPrivate() {\n return false;\n },\n};\n"],"names":["PayloadTooLargeError","errors","bytesToHumanReadable","kbytesToBytes","file","register","strapi","get","add","aiMetadataJob","plugin","provider","createProvider","config","registerUploadMiddleware","installGraphqlExtension","service","registerOverride","spec","pluginOrigin","excludeFromGeneration","providerOptions","actionOptions","providerName","_","toLower","modulePath","require","resolve","error","code","err","newError","Error","stack","providerInstance","init","delete","upload","uploadStream","process","emitWarning","wrappedProvider","mapValues","method","methodName","options","Object","assign","create","baseProvider","extend","obj","checkFileSize","sizeLimit","size","originalFilename","getSignedUrl","isPrivate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport { errors, file } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport registerUploadMiddleware from './middlewares/upload';\nimport spec from '../../documentation/content-api.json';\nimport type { Config, File, InputFile } from './types';\nimport { aiMetadataJob } from './models/ai-metadata-job';\n\nconst { PayloadTooLargeError } = errors;\nconst { bytesToHumanReadable, kbytesToBytes } = file;\n\n/**\n * Register upload plugin\n */\nexport async function register({ strapi }: { strapi: Core.Strapi }) {\n // Register AI metadata job model\n strapi.get('models').add(aiMetadataJob);\n\n strapi.plugin('upload').provider = createProvider(strapi.config.get<Config>('plugin::upload'));\n\n await registerUploadMiddleware({ strapi });\n\n if (strapi.plugin('graphql')) {\n const { installGraphqlExtension } = await import('./graphql.js');\n installGraphqlExtension({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'upload',\n excludeFromGeneration: ['upload'],\n });\n }\n}\n\nconst createProvider = (config: Config) => {\n const { providerOptions, actionOptions = {} } = config;\n\n const providerName = _.toLower(config.provider);\n let provider;\n\n let modulePath;\n try {\n modulePath = require.resolve(`@strapi/provider-upload-${providerName}`);\n } catch (error) {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'MODULE_NOT_FOUND'\n ) {\n modulePath = providerName;\n } else {\n throw error;\n }\n }\n\n try {\n provider = require(modulePath);\n } catch (err) {\n const newError = new Error(`Could not load upload provider \"${providerName}\".`);\n\n if (err instanceof Error) {\n newError.stack = err.stack;\n }\n\n throw newError;\n }\n\n const providerInstance = provider.init(providerOptions);\n\n if (!providerInstance.delete) {\n throw new Error(`The upload provider \"${providerName}\" doesn't implement the delete method.`);\n }\n\n if (!providerInstance.upload && !providerInstance.uploadStream) {\n throw new Error(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream nor the upload method.`\n );\n }\n\n if (!providerInstance.uploadStream) {\n process.emitWarning(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream function. Strapi will fallback on the upload method. Some performance issues may occur.`\n );\n }\n\n const wrappedProvider = _.mapValues(providerInstance, (method, methodName) => {\n return async (file: File, options = actionOptions[methodName]) =>\n providerInstance[methodName](file, options);\n });\n\n return Object.assign(Object.create(baseProvider), wrappedProvider);\n};\n\nconst baseProvider = {\n extend(obj: unknown) {\n Object.assign(this, obj);\n },\n checkFileSize(file: InputFile, { sizeLimit }: { sizeLimit: number }) {\n if (sizeLimit && kbytesToBytes(file.size) > sizeLimit) {\n throw new PayloadTooLargeError(\n `${file.originalFilename} exceeds size limit of ${bytesToHumanReadable(sizeLimit)}.`\n );\n }\n },\n getSignedUrl(file: File) {\n return file;\n },\n isPrivate() {\n return false;\n },\n};\n"],"names":["PayloadTooLargeError","errors","bytesToHumanReadable","kbytesToBytes","file","register","strapi","get","add","aiMetadataJob","plugin","provider","createProvider","config","registerUploadMiddleware","installGraphqlExtension","service","registerOverride","spec","pluginOrigin","excludeFromGeneration","providerOptions","actionOptions","providerName","_","toLower","modulePath","require","resolve","error","code","err","newError","Error","stack","providerInstance","init","delete","upload","uploadStream","process","emitWarning","wrappedProvider","mapValues","method","methodName","options","Object","assign","create","baseProvider","extend","obj","checkFileSize","sizeLimit","size","originalFilename","getSignedUrl","isPrivate"],"mappings":"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"}
1
+ {"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport { errors, file } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\nimport registerUploadMiddleware from './middlewares/upload';\nimport spec from '../../documentation/content-api.json';\nimport type { Config, File, InputFile } from './types';\nimport { aiMetadataJob } from './models/ai-metadata-job';\n\nconst { PayloadTooLargeError } = errors;\nconst { bytesToHumanReadable, kbytesToBytes } = file;\n\n/**\n * Register upload plugin\n */\nexport async function register({ strapi }: { strapi: Core.Strapi }) {\n // Register AI metadata job model\n strapi.get('models').add(aiMetadataJob);\n\n strapi.plugin('upload').provider = createProvider(strapi.config.get<Config>('plugin::upload'));\n\n await registerUploadMiddleware({ strapi });\n\n if (strapi.plugin('graphql')) {\n const { installGraphqlExtension } = await import('./graphql.js');\n installGraphqlExtension({ strapi });\n }\n\n if (strapi.plugin('documentation')) {\n strapi\n .plugin('documentation')\n .service('override')\n .registerOverride(spec, {\n pluginOrigin: 'upload',\n excludeFromGeneration: ['upload'],\n });\n }\n}\n\nconst createProvider = (config: Config) => {\n const { providerOptions, actionOptions = {} } = config;\n\n const providerName = _.toLower(config.provider);\n let provider;\n\n let modulePath;\n try {\n modulePath = require.resolve(`@strapi/provider-upload-${providerName}`);\n } catch (error) {\n if (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'MODULE_NOT_FOUND'\n ) {\n modulePath = providerName;\n } else {\n throw error;\n }\n }\n\n try {\n provider = require(modulePath);\n } catch (err) {\n const newError = new Error(`Could not load upload provider \"${providerName}\".`);\n\n if (err instanceof Error) {\n newError.stack = err.stack;\n }\n\n throw newError;\n }\n\n const providerInstance = provider.init(providerOptions);\n\n if (!providerInstance.delete) {\n throw new Error(`The upload provider \"${providerName}\" doesn't implement the delete method.`);\n }\n\n if (!providerInstance.upload && !providerInstance.uploadStream) {\n throw new Error(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream nor the upload method.`\n );\n }\n\n if (!providerInstance.uploadStream) {\n process.emitWarning(\n `The upload provider \"${providerName}\" doesn't implement the uploadStream function. Strapi will fallback on the upload method. Some performance issues may occur.`\n );\n }\n\n const wrappedProvider = _.mapValues(providerInstance, (method, methodName) => {\n return async (file: File, options = actionOptions[methodName]) =>\n providerInstance[methodName](file, options);\n });\n\n return Object.assign(Object.create(baseProvider), wrappedProvider);\n};\n\nconst baseProvider = {\n extend(obj: unknown) {\n Object.assign(this, obj);\n },\n checkFileSize(file: InputFile, { sizeLimit }: { sizeLimit: number }) {\n if (sizeLimit && kbytesToBytes(file.size) > sizeLimit) {\n throw new PayloadTooLargeError(\n `${file.originalFilename} exceeds size limit of ${bytesToHumanReadable(sizeLimit)}.`\n );\n }\n },\n getSignedUrl(file: File) {\n return file;\n },\n isPrivate() {\n return false;\n },\n};\n"],"names":["PayloadTooLargeError","errors","bytesToHumanReadable","kbytesToBytes","file","register","strapi","get","add","aiMetadataJob","plugin","provider","createProvider","config","registerUploadMiddleware","installGraphqlExtension","service","registerOverride","spec","pluginOrigin","excludeFromGeneration","providerOptions","actionOptions","providerName","_","toLower","modulePath","require","resolve","error","code","err","newError","Error","stack","providerInstance","init","delete","upload","uploadStream","process","emitWarning","wrappedProvider","mapValues","method","methodName","options","Object","assign","create","baseProvider","extend","obj","checkFileSize","sizeLimit","size","originalFilename","getSignedUrl","isPrivate"],"mappings":"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"}
@@ -59,6 +59,16 @@ const routes = {
59
59
  ]
60
60
  }
61
61
  },
62
+ {
63
+ method: 'POST',
64
+ path: '/unstable/stream-from-urls',
65
+ handler: 'admin-upload.unstable_uploadFromUrls',
66
+ config: {
67
+ policies: [
68
+ 'admin::isAuthenticatedAdmin'
69
+ ]
70
+ }
71
+ },
62
72
  {
63
73
  method: 'GET',
64
74
  path: '/files',