@strapi/upload 5.53.0 → 5.55.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 (1929) hide show
  1. package/dist/admin/App.js +33 -0
  2. package/dist/admin/App.js.map +1 -0
  3. package/dist/admin/App.mjs +31 -0
  4. package/dist/admin/App.mjs.map +1 -0
  5. package/dist/admin/components/Drawer.js.map +1 -0
  6. package/dist/admin/components/Drawer.mjs.map +1 -0
  7. package/dist/admin/components/TruncatedText.js.map +1 -0
  8. package/dist/admin/components/TruncatedText.mjs.map +1 -0
  9. package/dist/admin/components/UploadProgressDialog.js +700 -0
  10. package/dist/admin/components/UploadProgressDialog.js.map +1 -0
  11. package/dist/admin/components/UploadProgressDialog.mjs +698 -0
  12. package/dist/admin/components/UploadProgressDialog.mjs.map +1 -0
  13. package/dist/admin/constants.js +7 -12
  14. package/dist/admin/constants.js.map +1 -1
  15. package/dist/admin/constants.mjs +7 -12
  16. package/dist/admin/constants.mjs.map +1 -1
  17. package/dist/admin/hooks/useAIMetadataEnabled.js +39 -0
  18. package/dist/admin/hooks/useAIMetadataEnabled.js.map +1 -0
  19. package/dist/admin/hooks/useAIMetadataEnabled.mjs +37 -0
  20. package/dist/admin/hooks/useAIMetadataEnabled.mjs.map +1 -0
  21. package/dist/admin/hooks/useApiErrorMessage.js.map +1 -0
  22. package/dist/admin/hooks/useApiErrorMessage.mjs.map +1 -0
  23. package/dist/admin/hooks/useMediaLibraryPermissions.js +24 -5
  24. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  25. package/dist/admin/hooks/useMediaLibraryPermissions.mjs +24 -5
  26. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  27. package/dist/admin/hooks/useTracking.js +39 -7
  28. package/dist/admin/hooks/useTracking.js.map +1 -1
  29. package/dist/admin/hooks/useTracking.mjs +38 -8
  30. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  31. package/dist/admin/index.js +18 -22
  32. package/dist/admin/index.js.map +1 -1
  33. package/dist/admin/index.mjs +18 -22
  34. package/dist/admin/index.mjs.map +1 -1
  35. package/dist/admin/legacy/ai/components/AIAssetCard.js +621 -0
  36. package/dist/admin/legacy/ai/components/AIAssetCard.js.map +1 -0
  37. package/dist/admin/legacy/ai/components/AIAssetCard.mjs +598 -0
  38. package/dist/admin/legacy/ai/components/AIAssetCard.mjs.map +1 -0
  39. package/dist/admin/legacy/ai/components/AIUploadModal.js.map +1 -0
  40. package/dist/admin/legacy/ai/components/AIUploadModal.mjs.map +1 -0
  41. package/dist/admin/legacy/components/AssetCard/AssetCard.js +67 -0
  42. package/dist/admin/legacy/components/AssetCard/AssetCard.js.map +1 -0
  43. package/dist/admin/legacy/components/AssetCard/AssetCard.mjs +65 -0
  44. package/dist/admin/legacy/components/AssetCard/AssetCard.mjs.map +1 -0
  45. package/dist/admin/legacy/components/AssetCard/AssetCardBase.js.map +1 -0
  46. package/dist/admin/legacy/components/AssetCard/AssetCardBase.mjs.map +1 -0
  47. package/dist/admin/legacy/components/AssetCard/AudioAssetCard.js.map +1 -0
  48. package/dist/admin/legacy/components/AssetCard/AudioAssetCard.mjs.map +1 -0
  49. package/dist/admin/legacy/components/AssetCard/AudioPreview.js.map +1 -0
  50. package/dist/admin/legacy/components/AssetCard/AudioPreview.mjs.map +1 -0
  51. package/dist/admin/legacy/components/AssetCard/DocAssetCard.js.map +1 -0
  52. package/dist/admin/legacy/components/AssetCard/DocAssetCard.mjs.map +1 -0
  53. package/dist/admin/legacy/components/AssetCard/ImageAssetCard.js.map +1 -0
  54. package/dist/admin/legacy/components/AssetCard/ImageAssetCard.mjs.map +1 -0
  55. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.js +154 -0
  56. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.js.map +1 -0
  57. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.mjs +132 -0
  58. package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.mjs.map +1 -0
  59. package/dist/admin/legacy/components/AssetCard/VideoAssetCard.js.map +1 -0
  60. package/dist/admin/legacy/components/AssetCard/VideoAssetCard.mjs.map +1 -0
  61. package/dist/admin/legacy/components/AssetCard/VideoPreview.js.map +1 -0
  62. package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs.map +1 -0
  63. package/dist/admin/legacy/components/AssetDialog/AssetDialog.js.map +1 -0
  64. package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs.map +1 -0
  65. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js +320 -0
  66. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -0
  67. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs +318 -0
  68. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -0
  69. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.js.map +1 -0
  70. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -0
  71. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PageSize.js.map +1 -0
  72. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -0
  73. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -0
  74. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -0
  75. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -0
  76. package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -0
  77. package/dist/admin/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -0
  78. package/dist/admin/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -0
  79. package/dist/admin/legacy/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -0
  80. package/dist/admin/legacy/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -0
  81. package/dist/admin/legacy/components/AssetDialog/DialogFooter.js.map +1 -0
  82. package/dist/admin/legacy/components/AssetDialog/DialogFooter.mjs.map +1 -0
  83. package/dist/admin/legacy/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -0
  84. package/dist/admin/legacy/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -0
  85. package/dist/admin/legacy/components/AssetGridList/AssetGridList.js.map +1 -0
  86. package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs.map +1 -0
  87. package/dist/admin/legacy/components/AssetGridList/Draggable.js.map +1 -0
  88. package/dist/admin/legacy/components/AssetGridList/Draggable.mjs.map +1 -0
  89. package/dist/admin/legacy/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
  90. package/dist/admin/legacy/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -0
  91. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -0
  92. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -0
  93. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -0
  94. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -0
  95. package/dist/admin/legacy/components/ContextInfo/ContextInfo.js.map +1 -0
  96. package/dist/admin/legacy/components/ContextInfo/ContextInfo.mjs.map +1 -0
  97. package/dist/admin/legacy/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
  98. package/dist/admin/legacy/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -0
  99. package/dist/admin/legacy/components/EditAssetDialog/DialogHeader.js.map +1 -0
  100. package/dist/admin/legacy/components/EditAssetDialog/DialogHeader.mjs.map +1 -0
  101. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js.map +1 -0
  102. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs.map +1 -0
  103. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.js +114 -0
  104. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -0
  105. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +89 -0
  106. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -0
  107. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -0
  108. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -0
  109. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -0
  110. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -0
  111. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.js +362 -0
  112. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -0
  113. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +337 -0
  114. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -0
  115. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -0
  116. package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -0
  117. package/dist/admin/legacy/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -0
  118. package/dist/admin/legacy/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -0
  119. package/dist/admin/legacy/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -0
  120. package/dist/admin/legacy/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -0
  121. package/dist/admin/legacy/components/EditFolderDialog/EditFolderDialog.js.map +1 -0
  122. package/dist/admin/legacy/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -0
  123. package/dist/admin/legacy/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -0
  124. package/dist/admin/legacy/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -0
  125. package/dist/admin/legacy/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -0
  126. package/dist/admin/legacy/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -0
  127. package/dist/admin/legacy/components/EmptyAssets/EmptyAssetGrid.js.map +1 -0
  128. package/dist/admin/legacy/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -0
  129. package/dist/admin/legacy/components/EmptyAssets/EmptyAssets.js.map +1 -0
  130. package/dist/admin/legacy/components/EmptyAssets/EmptyAssets.mjs.map +1 -0
  131. package/dist/admin/legacy/components/FilterList/FilterList.js.map +1 -0
  132. package/dist/admin/legacy/components/FilterList/FilterList.mjs.map +1 -0
  133. package/dist/admin/legacy/components/FilterList/FilterTag.js.map +1 -0
  134. package/dist/admin/legacy/components/FilterList/FilterTag.mjs.map +1 -0
  135. package/dist/admin/legacy/components/FilterPopover/FilterPopover.js.map +1 -0
  136. package/dist/admin/legacy/components/FilterPopover/FilterPopover.mjs.map +1 -0
  137. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js.map +1 -0
  138. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs.map +1 -0
  139. package/dist/admin/legacy/components/FilterPopover/utils/getFilterList.js.map +1 -0
  140. package/dist/admin/legacy/components/FilterPopover/utils/getFilterList.mjs.map +1 -0
  141. package/dist/admin/legacy/components/FolderCard/FolderCard/FolderCard.js.map +1 -0
  142. package/dist/admin/legacy/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -0
  143. package/dist/admin/legacy/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -0
  144. package/dist/admin/legacy/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -0
  145. package/dist/admin/legacy/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -0
  146. package/dist/admin/legacy/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -0
  147. package/dist/admin/legacy/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -0
  148. package/dist/admin/legacy/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -0
  149. package/dist/admin/legacy/components/FolderCard/contexts/FolderCard.js.map +1 -0
  150. package/dist/admin/legacy/components/FolderCard/contexts/FolderCard.mjs.map +1 -0
  151. package/dist/admin/legacy/components/FolderGridList/FolderGridList.js.map +1 -0
  152. package/dist/admin/legacy/components/FolderGridList/FolderGridList.mjs.map +1 -0
  153. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -0
  154. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -0
  155. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.js +89 -0
  156. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -0
  157. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +87 -0
  158. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -0
  159. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -0
  160. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -0
  161. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -0
  162. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -0
  163. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +111 -0
  164. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -0
  165. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +89 -0
  166. package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -0
  167. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -0
  168. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -0
  169. package/dist/admin/legacy/components/SelectTree/Option.js.map +1 -0
  170. package/dist/admin/legacy/components/SelectTree/Option.mjs.map +1 -0
  171. package/dist/admin/legacy/components/SelectTree/SelectTree.js.map +1 -0
  172. package/dist/admin/legacy/components/SelectTree/SelectTree.mjs.map +1 -0
  173. package/dist/admin/legacy/components/SelectTree/utils/flattenTree.js.map +1 -0
  174. package/dist/admin/legacy/components/SelectTree/utils/flattenTree.mjs.map +1 -0
  175. package/dist/admin/legacy/components/SelectTree/utils/getOpenValues.js.map +1 -0
  176. package/dist/admin/legacy/components/SelectTree/utils/getOpenValues.mjs.map +1 -0
  177. package/dist/admin/legacy/components/SelectTree/utils/getValuesToClose.js.map +1 -0
  178. package/dist/admin/legacy/components/SelectTree/utils/getValuesToClose.mjs.map +1 -0
  179. package/dist/admin/legacy/components/SortPicker/SortPicker.js +40 -0
  180. package/dist/admin/legacy/components/SortPicker/SortPicker.js.map +1 -0
  181. package/dist/admin/legacy/components/SortPicker/SortPicker.mjs +38 -0
  182. package/dist/admin/legacy/components/SortPicker/SortPicker.mjs.map +1 -0
  183. package/dist/admin/legacy/components/TableList/CellContent.js.map +1 -0
  184. package/dist/admin/legacy/components/TableList/CellContent.mjs.map +1 -0
  185. package/dist/admin/legacy/components/TableList/PreviewCell.js +116 -0
  186. package/dist/admin/legacy/components/TableList/PreviewCell.js.map +1 -0
  187. package/dist/admin/legacy/components/TableList/PreviewCell.mjs +114 -0
  188. package/dist/admin/legacy/components/TableList/PreviewCell.mjs.map +1 -0
  189. package/dist/admin/legacy/components/TableList/TableList.js +100 -0
  190. package/dist/admin/legacy/components/TableList/TableList.js.map +1 -0
  191. package/dist/admin/legacy/components/TableList/TableList.mjs +98 -0
  192. package/dist/admin/legacy/components/TableList/TableList.mjs.map +1 -0
  193. package/dist/admin/legacy/components/TableList/TableRows.js +105 -0
  194. package/dist/admin/legacy/components/TableList/TableRows.js.map +1 -0
  195. package/dist/admin/legacy/components/TableList/TableRows.mjs +103 -0
  196. package/dist/admin/legacy/components/TableList/TableRows.mjs.map +1 -0
  197. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -0
  198. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -0
  199. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +177 -0
  200. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -0
  201. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +155 -0
  202. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -0
  203. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -0
  204. package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -0
  205. package/dist/admin/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -0
  206. package/dist/admin/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -0
  207. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -0
  208. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -0
  209. package/dist/admin/legacy/components/UploadProgress/UploadProgress.js.map +1 -0
  210. package/dist/admin/legacy/components/UploadProgress/UploadProgress.mjs.map +1 -0
  211. package/dist/admin/legacy/hooks/useAiAvailability.js.map +1 -0
  212. package/dist/admin/legacy/hooks/useAiAvailability.mjs.map +1 -0
  213. package/dist/admin/legacy/hooks/useAssets.js +127 -0
  214. package/dist/admin/legacy/hooks/useAssets.js.map +1 -0
  215. package/dist/admin/legacy/hooks/useAssets.mjs +105 -0
  216. package/dist/admin/legacy/hooks/useAssets.mjs.map +1 -0
  217. package/dist/admin/legacy/hooks/useBulkEdit.js +65 -0
  218. package/dist/admin/legacy/hooks/useBulkEdit.js.map +1 -0
  219. package/dist/admin/legacy/hooks/useBulkEdit.mjs +63 -0
  220. package/dist/admin/legacy/hooks/useBulkEdit.mjs.map +1 -0
  221. package/dist/admin/legacy/hooks/useBulkMove.js +78 -0
  222. package/dist/admin/legacy/hooks/useBulkMove.js.map +1 -0
  223. package/dist/admin/legacy/hooks/useBulkMove.mjs +76 -0
  224. package/dist/admin/legacy/hooks/useBulkMove.mjs.map +1 -0
  225. package/dist/admin/legacy/hooks/useBulkRemove.js +83 -0
  226. package/dist/admin/legacy/hooks/useBulkRemove.js.map +1 -0
  227. package/dist/admin/legacy/hooks/useBulkRemove.mjs +81 -0
  228. package/dist/admin/legacy/hooks/useBulkRemove.mjs.map +1 -0
  229. package/dist/admin/legacy/hooks/useConfig.js +58 -0
  230. package/dist/admin/legacy/hooks/useConfig.js.map +1 -0
  231. package/dist/admin/legacy/hooks/useConfig.mjs +56 -0
  232. package/dist/admin/legacy/hooks/useConfig.mjs.map +1 -0
  233. package/dist/admin/legacy/hooks/useCropImg.js.map +1 -0
  234. package/dist/admin/legacy/hooks/useCropImg.mjs.map +1 -0
  235. package/dist/admin/legacy/hooks/useEditAsset.js +115 -0
  236. package/dist/admin/legacy/hooks/useEditAsset.js.map +1 -0
  237. package/dist/admin/legacy/hooks/useEditAsset.mjs +93 -0
  238. package/dist/admin/legacy/hooks/useEditAsset.mjs.map +1 -0
  239. package/dist/admin/legacy/hooks/useEditFolder.js +45 -0
  240. package/dist/admin/legacy/hooks/useEditFolder.js.map +1 -0
  241. package/dist/admin/legacy/hooks/useEditFolder.mjs +43 -0
  242. package/dist/admin/legacy/hooks/useEditFolder.mjs.map +1 -0
  243. package/dist/admin/legacy/hooks/useFolder.js +57 -0
  244. package/dist/admin/legacy/hooks/useFolder.js.map +1 -0
  245. package/dist/admin/legacy/hooks/useFolder.mjs +55 -0
  246. package/dist/admin/legacy/hooks/useFolder.mjs.map +1 -0
  247. package/dist/admin/legacy/hooks/useFolderStructure.js +52 -0
  248. package/dist/admin/legacy/hooks/useFolderStructure.js.map +1 -0
  249. package/dist/admin/legacy/hooks/useFolderStructure.mjs +50 -0
  250. package/dist/admin/legacy/hooks/useFolderStructure.mjs.map +1 -0
  251. package/dist/admin/legacy/hooks/useFolders.js +108 -0
  252. package/dist/admin/legacy/hooks/useFolders.js.map +1 -0
  253. package/dist/admin/legacy/hooks/useFolders.mjs +86 -0
  254. package/dist/admin/legacy/hooks/useFolders.mjs.map +1 -0
  255. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.js +16 -0
  256. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.js.map +1 -0
  257. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.mjs +14 -0
  258. package/dist/admin/legacy/hooks/useMediaLibraryPermissions.mjs.map +1 -0
  259. package/dist/admin/legacy/hooks/useModalQueryParams.js.map +1 -0
  260. package/dist/admin/legacy/hooks/useModalQueryParams.mjs.map +1 -0
  261. package/dist/admin/legacy/hooks/usePersistentState.js.map +1 -0
  262. package/dist/admin/legacy/hooks/usePersistentState.mjs.map +1 -0
  263. package/dist/admin/legacy/hooks/useRemoveAsset.js +58 -0
  264. package/dist/admin/legacy/hooks/useRemoveAsset.js.map +1 -0
  265. package/dist/admin/legacy/hooks/useRemoveAsset.mjs +56 -0
  266. package/dist/admin/legacy/hooks/useRemoveAsset.mjs.map +1 -0
  267. package/dist/admin/legacy/hooks/useSelectionState.js.map +1 -0
  268. package/dist/admin/legacy/hooks/useSelectionState.mjs.map +1 -0
  269. package/dist/admin/legacy/hooks/useSettings.js.map +1 -0
  270. package/dist/admin/legacy/hooks/useSettings.mjs.map +1 -0
  271. package/dist/admin/legacy/hooks/useTracking.js +25 -0
  272. package/dist/admin/legacy/hooks/useTracking.js.map +1 -0
  273. package/dist/admin/legacy/hooks/useTracking.mjs +23 -0
  274. package/dist/admin/legacy/hooks/useTracking.mjs.map +1 -0
  275. package/dist/admin/legacy/hooks/useUpload.js +109 -0
  276. package/dist/admin/legacy/hooks/useUpload.js.map +1 -0
  277. package/dist/admin/legacy/hooks/useUpload.mjs +87 -0
  278. package/dist/admin/legacy/hooks/useUpload.mjs.map +1 -0
  279. package/dist/admin/legacy/hooks/utils/renameKeys.js.map +1 -0
  280. package/dist/admin/legacy/hooks/utils/renameKeys.mjs.map +1 -0
  281. package/dist/admin/legacy/pages/App/App.js.map +1 -0
  282. package/dist/admin/legacy/pages/App/App.mjs.map +1 -0
  283. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js +145 -0
  284. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -0
  285. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs +120 -0
  286. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -0
  287. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.js +109 -0
  288. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.js.map +1 -0
  289. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.mjs +107 -0
  290. package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -0
  291. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.js +10 -0
  292. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -0
  293. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.mjs +7 -0
  294. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -0
  295. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actions.js.map +1 -0
  296. package/dist/admin/legacy/pages/App/ConfigureTheView/state/actions.mjs.map +1 -0
  297. package/dist/admin/legacy/pages/App/ConfigureTheView/state/init.js.map +1 -0
  298. package/dist/admin/legacy/pages/App/ConfigureTheView/state/init.mjs.map +1 -0
  299. package/dist/admin/legacy/pages/App/ConfigureTheView/state/reducer.js.map +1 -0
  300. package/dist/admin/legacy/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -0
  301. package/dist/admin/legacy/pages/App/MediaLibrary.js +469 -0
  302. package/dist/admin/legacy/pages/App/MediaLibrary.js.map +1 -0
  303. package/dist/admin/legacy/pages/App/MediaLibrary.mjs +447 -0
  304. package/dist/admin/legacy/pages/App/MediaLibrary.mjs.map +1 -0
  305. package/dist/admin/legacy/pages/App/components/BulkActions.js.map +1 -0
  306. package/dist/admin/legacy/pages/App/components/BulkActions.mjs.map +1 -0
  307. package/dist/admin/legacy/pages/App/components/BulkDeleteButton.js.map +1 -0
  308. package/dist/admin/legacy/pages/App/components/BulkDeleteButton.mjs.map +1 -0
  309. package/dist/admin/legacy/pages/App/components/BulkMoveButton.js.map +1 -0
  310. package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs.map +1 -0
  311. package/dist/admin/legacy/pages/App/components/EmptyOrNoPermissions.js.map +1 -0
  312. package/dist/admin/legacy/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -0
  313. package/dist/admin/legacy/pages/App/components/Filters.js.map +1 -0
  314. package/dist/admin/legacy/pages/App/components/Filters.mjs.map +1 -0
  315. package/dist/admin/legacy/pages/App/components/Header.js.map +1 -0
  316. package/dist/admin/legacy/pages/App/components/Header.mjs.map +1 -0
  317. package/dist/admin/legacy/utils/appendSearchParamsToUrl.js.map +1 -0
  318. package/dist/admin/legacy/utils/appendSearchParamsToUrl.mjs.map +1 -0
  319. package/dist/admin/legacy/utils/containsAssetFilter.js.map +1 -0
  320. package/dist/admin/legacy/utils/containsAssetFilter.mjs.map +1 -0
  321. package/dist/admin/legacy/utils/createAssetUrl.js.map +1 -0
  322. package/dist/admin/legacy/utils/createAssetUrl.mjs.map +1 -0
  323. package/dist/admin/legacy/utils/displayedFilters.js.map +1 -0
  324. package/dist/admin/legacy/utils/displayedFilters.mjs.map +1 -0
  325. package/dist/admin/legacy/utils/downloadFile.js +13 -0
  326. package/dist/admin/legacy/utils/downloadFile.js.map +1 -0
  327. package/dist/admin/legacy/utils/downloadFile.mjs +11 -0
  328. package/dist/admin/legacy/utils/downloadFile.mjs.map +1 -0
  329. package/dist/admin/legacy/utils/findRecursiveFolderByValue.js.map +1 -0
  330. package/dist/admin/legacy/utils/findRecursiveFolderByValue.mjs.map +1 -0
  331. package/dist/admin/legacy/utils/formatBytes.js.map +1 -0
  332. package/dist/admin/legacy/utils/formatBytes.mjs.map +1 -0
  333. package/dist/admin/legacy/utils/formatDuration.js.map +1 -0
  334. package/dist/admin/legacy/utils/formatDuration.mjs.map +1 -0
  335. package/dist/admin/legacy/utils/getAPIInnerErrors.js.map +1 -0
  336. package/dist/admin/legacy/utils/getAPIInnerErrors.mjs.map +1 -0
  337. package/dist/admin/legacy/utils/getAllowedFiles.js.map +1 -0
  338. package/dist/admin/legacy/utils/getAllowedFiles.mjs.map +1 -0
  339. package/dist/admin/legacy/utils/getBreadcrumbDataCM.js.map +1 -0
  340. package/dist/admin/legacy/utils/getBreadcrumbDataCM.mjs.map +1 -0
  341. package/dist/admin/legacy/utils/getBreadcrumbDataML.js.map +1 -0
  342. package/dist/admin/legacy/utils/getBreadcrumbDataML.mjs.map +1 -0
  343. package/dist/admin/legacy/utils/getFileExtension.js.map +1 -0
  344. package/dist/admin/legacy/utils/getFileExtension.mjs.map +1 -0
  345. package/dist/admin/legacy/utils/getFolderParents.js.map +1 -0
  346. package/dist/admin/legacy/utils/getFolderParents.mjs.map +1 -0
  347. package/dist/admin/legacy/utils/getFolderURL.js.map +1 -0
  348. package/dist/admin/legacy/utils/getFolderURL.mjs.map +1 -0
  349. package/dist/admin/legacy/utils/getTrad.js +8 -0
  350. package/dist/admin/legacy/utils/getTrad.js.map +1 -0
  351. package/dist/admin/legacy/utils/getTrad.mjs +6 -0
  352. package/dist/admin/legacy/utils/getTrad.mjs.map +1 -0
  353. package/dist/admin/legacy/utils/icons.js +23 -0
  354. package/dist/admin/legacy/utils/icons.js.map +1 -0
  355. package/dist/admin/legacy/utils/icons.mjs +19 -0
  356. package/dist/admin/legacy/utils/icons.mjs.map +1 -0
  357. package/dist/admin/legacy/utils/moveElement.js.map +1 -0
  358. package/dist/admin/legacy/utils/moveElement.mjs.map +1 -0
  359. package/dist/admin/legacy/utils/normalizeAPIError.js.map +1 -0
  360. package/dist/admin/legacy/utils/normalizeAPIError.mjs.map +1 -0
  361. package/dist/admin/legacy/utils/prefixFileUrlWithBackendUrl.js.map +1 -0
  362. package/dist/admin/legacy/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -0
  363. package/dist/admin/legacy/utils/prefixPluginTranslations.js.map +1 -0
  364. package/dist/admin/legacy/utils/prefixPluginTranslations.mjs.map +1 -0
  365. package/dist/admin/legacy/utils/rawFileToAsset.js +23 -0
  366. package/dist/admin/legacy/utils/rawFileToAsset.js.map +1 -0
  367. package/dist/admin/legacy/utils/rawFileToAsset.mjs +21 -0
  368. package/dist/admin/legacy/utils/rawFileToAsset.mjs.map +1 -0
  369. package/dist/admin/legacy/utils/resolveFileMime.js.map +1 -0
  370. package/dist/admin/legacy/utils/resolveFileMime.mjs.map +1 -0
  371. package/dist/admin/legacy/utils/toSingularTypes.js.map +1 -0
  372. package/dist/admin/legacy/utils/toSingularTypes.mjs.map +1 -0
  373. package/dist/admin/legacy/utils/urlYupSchema.js.map +1 -0
  374. package/dist/admin/legacy/utils/urlYupSchema.mjs.map +1 -0
  375. package/dist/admin/legacy/utils/urlsToAssets.js +42 -0
  376. package/dist/admin/legacy/utils/urlsToAssets.js.map +1 -0
  377. package/dist/admin/legacy/utils/urlsToAssets.mjs +40 -0
  378. package/dist/admin/legacy/utils/urlsToAssets.mjs.map +1 -0
  379. package/dist/admin/pages/Assets/AssetsPage.js +828 -0
  380. package/dist/admin/pages/Assets/AssetsPage.js.map +1 -0
  381. package/dist/admin/pages/Assets/AssetsPage.mjs +806 -0
  382. package/dist/admin/pages/Assets/AssetsPage.mjs.map +1 -0
  383. package/dist/admin/pages/Assets/components/ActionsMenuContent.js.map +1 -0
  384. package/dist/admin/pages/Assets/components/ActionsMenuContent.mjs.map +1 -0
  385. package/dist/admin/pages/Assets/components/AssetActionsMenu.js.map +1 -0
  386. package/dist/admin/pages/Assets/components/AssetActionsMenu.mjs.map +1 -0
  387. package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -0
  388. package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -0
  389. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +1202 -0
  390. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -0
  391. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +1175 -0
  392. package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -0
  393. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.js +261 -0
  394. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -0
  395. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs +239 -0
  396. package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -0
  397. package/dist/admin/pages/Assets/components/AssetDetails/useCropImg.js.map +1 -0
  398. package/dist/admin/pages/Assets/components/AssetDetails/useCropImg.mjs.map +1 -0
  399. package/dist/admin/pages/Assets/components/AssetsGrid.js +528 -0
  400. package/dist/admin/pages/Assets/components/AssetsGrid.js.map +1 -0
  401. package/dist/admin/pages/Assets/components/AssetsGrid.mjs +526 -0
  402. package/dist/admin/pages/Assets/components/AssetsGrid.mjs.map +1 -0
  403. package/dist/admin/pages/Assets/components/AssetsSearchInput.js.map +1 -0
  404. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs.map +1 -0
  405. package/dist/admin/pages/Assets/components/AssetsTable.js.map +1 -0
  406. package/dist/admin/pages/Assets/components/AssetsTable.mjs.map +1 -0
  407. package/dist/admin/pages/Assets/components/BulkActionsBar.js +431 -0
  408. package/dist/admin/pages/Assets/components/BulkActionsBar.js.map +1 -0
  409. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs +429 -0
  410. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs.map +1 -0
  411. package/dist/admin/pages/Assets/components/BulkMoveDialog.js.map +1 -0
  412. package/dist/admin/pages/Assets/components/BulkMoveDialog.mjs.map +1 -0
  413. package/dist/admin/pages/Assets/components/BusyOverlay.js.map +1 -0
  414. package/dist/admin/pages/Assets/components/BusyOverlay.mjs.map +1 -0
  415. package/dist/admin/pages/Assets/components/DateRangeCalendar.js.map +1 -0
  416. package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs.map +1 -0
  417. package/dist/admin/pages/Assets/components/DeleteItemsDialog.js.map +1 -0
  418. package/dist/admin/pages/Assets/components/DeleteItemsDialog.mjs.map +1 -0
  419. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.js +306 -0
  420. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.js.map +1 -0
  421. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.mjs +303 -0
  422. package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +1 -0
  423. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.js +147 -0
  424. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.js.map +1 -0
  425. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs +145 -0
  426. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +1 -0
  427. package/dist/admin/pages/Assets/components/Dnd/buildDragSet.js.map +1 -0
  428. package/dist/admin/pages/Assets/components/Dnd/buildDragSet.mjs.map +1 -0
  429. package/dist/admin/pages/Assets/components/Dnd/computeValidDropTargets.js.map +1 -0
  430. package/dist/admin/pages/Assets/components/Dnd/computeValidDropTargets.mjs.map +1 -0
  431. package/dist/admin/pages/Assets/components/Dnd/dndIds.js.map +1 -0
  432. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs.map +1 -0
  433. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -0
  434. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -0
  435. package/dist/admin/pages/Assets/components/Dnd/useFolderTreeDroppable.js.map +1 -0
  436. package/dist/admin/pages/Assets/components/Dnd/useFolderTreeDroppable.mjs.map +1 -0
  437. package/dist/admin/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -0
  438. package/dist/admin/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -0
  439. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -0
  440. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -0
  441. package/dist/admin/pages/Assets/components/EmptyState.js.map +1 -0
  442. package/dist/admin/pages/Assets/components/EmptyState.mjs.map +1 -0
  443. package/dist/admin/pages/Assets/components/FilterBadges.js.map +1 -0
  444. package/dist/admin/pages/Assets/components/FilterBadges.mjs.map +1 -0
  445. package/dist/admin/pages/Assets/components/FilterMenu.js.map +1 -0
  446. package/dist/admin/pages/Assets/components/FilterMenu.mjs.map +1 -0
  447. package/dist/admin/pages/Assets/components/FolderActionsMenu.js.map +1 -0
  448. package/dist/admin/pages/Assets/components/FolderActionsMenu.mjs.map +1 -0
  449. package/dist/admin/pages/Assets/components/FolderFormDialog.js.map +1 -0
  450. package/dist/admin/pages/Assets/components/FolderFormDialog.mjs.map +1 -0
  451. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js.map +1 -0
  452. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -0
  453. package/dist/admin/pages/Assets/components/FolderTree/useSpringLoadedExpand.js.map +1 -0
  454. package/dist/admin/pages/Assets/components/FolderTree/useSpringLoadedExpand.mjs.map +1 -0
  455. package/dist/admin/pages/Assets/components/ImportFromUrlDialog.js.map +1 -0
  456. package/dist/admin/pages/Assets/components/ImportFromUrlDialog.mjs.map +1 -0
  457. package/dist/admin/pages/Assets/components/MainAreaContextMenu.js.map +1 -0
  458. package/dist/admin/pages/Assets/components/MainAreaContextMenu.mjs.map +1 -0
  459. package/dist/admin/pages/Assets/components/SortMenu.js.map +1 -0
  460. package/dist/admin/pages/Assets/components/SortMenu.mjs.map +1 -0
  461. package/dist/admin/pages/Assets/constants.js.map +1 -0
  462. package/dist/admin/pages/Assets/constants.mjs.map +1 -0
  463. package/dist/admin/pages/Assets/hooks/useAssetSearch.js.map +1 -0
  464. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs.map +1 -0
  465. package/dist/admin/pages/Assets/hooks/useAssetSelection.js.map +1 -0
  466. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs.map +1 -0
  467. package/dist/admin/pages/Assets/hooks/useBusyAssets.js.map +1 -0
  468. package/dist/admin/pages/Assets/hooks/useBusyAssets.mjs.map +1 -0
  469. package/dist/admin/pages/Assets/hooks/useFolderInfo.js.map +1 -0
  470. package/dist/admin/pages/Assets/hooks/useFolderInfo.mjs.map +1 -0
  471. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js.map +1 -0
  472. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -0
  473. package/dist/admin/pages/Assets/hooks/useInfiniteAssets.js.map +1 -0
  474. package/dist/admin/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -0
  475. package/dist/admin/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +1 -0
  476. package/dist/admin/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +1 -0
  477. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +1 -0
  478. package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +1 -0
  479. package/dist/admin/pages/Assets/hooks/useListFilters.js.map +1 -0
  480. package/dist/admin/pages/Assets/hooks/useListFilters.mjs.map +1 -0
  481. package/dist/admin/pages/Assets/hooks/useListScrollRestoration.js.map +1 -0
  482. package/dist/admin/pages/Assets/hooks/useListScrollRestoration.mjs.map +1 -0
  483. package/dist/admin/pages/Assets/hooks/useListSort.js.map +1 -0
  484. package/dist/admin/pages/Assets/hooks/useListSort.mjs.map +1 -0
  485. package/dist/admin/pages/Assets/utils/buildAssetFilters.js.map +1 -0
  486. package/dist/admin/pages/Assets/utils/buildAssetFilters.mjs.map +1 -0
  487. package/dist/admin/pages/Assets/utils/listQueryKey.js.map +1 -0
  488. package/dist/admin/pages/Assets/utils/listQueryKey.mjs.map +1 -0
  489. package/dist/admin/pages/Assets/utils/mergeMixedList.js.map +1 -0
  490. package/dist/admin/pages/Assets/utils/mergeMixedList.mjs.map +1 -0
  491. package/dist/admin/pages/Assets/utils/mergeUploadedAssets.js.map +1 -0
  492. package/dist/admin/pages/Assets/utils/mergeUploadedAssets.mjs.map +1 -0
  493. package/dist/admin/pages/Assets/utils/renderedKeys.js.map +1 -0
  494. package/dist/admin/pages/Assets/utils/renderedKeys.mjs.map +1 -0
  495. package/dist/admin/pages/Assets/utils/selection.js.map +1 -0
  496. package/dist/admin/pages/Assets/utils/selection.mjs.map +1 -0
  497. package/dist/admin/pages/SettingsPage/SettingsPage.js +23 -28
  498. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  499. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +23 -28
  500. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  501. package/dist/admin/pages/SettingsPage/useAIMetadataJob.js +110 -0
  502. package/dist/admin/pages/SettingsPage/useAIMetadataJob.js.map +1 -0
  503. package/dist/admin/pages/SettingsPage/useAIMetadataJob.mjs +88 -0
  504. package/dist/admin/pages/SettingsPage/useAIMetadataJob.mjs.map +1 -0
  505. package/dist/admin/services/api.js +775 -0
  506. package/dist/admin/services/api.js.map +1 -0
  507. package/dist/admin/services/api.mjs +766 -0
  508. package/dist/admin/services/api.mjs.map +1 -0
  509. package/dist/admin/services/assets.js.map +1 -0
  510. package/dist/admin/services/assets.mjs.map +1 -0
  511. package/dist/admin/services/folders.js.map +1 -0
  512. package/dist/admin/services/folders.mjs.map +1 -0
  513. package/dist/admin/services/settings.js.map +1 -0
  514. package/dist/admin/services/settings.mjs.map +1 -0
  515. package/dist/admin/services/uploadFileViaXHR.js.map +1 -0
  516. package/dist/admin/services/uploadFileViaXHR.mjs.map +1 -0
  517. package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +19 -2
  518. package/dist/admin/src/hooks/useTracking.d.ts +26 -1
  519. package/dist/admin/src/legacy/ai/components/AIAssetCard.d.ts +13 -0
  520. package/dist/admin/src/legacy/ai/components/AIUploadModal.d.ts +55 -0
  521. package/dist/admin/src/legacy/components/AssetCard/AssetCard.d.ts +19 -0
  522. package/dist/admin/src/legacy/components/AssetCard/UploadingAssetCard.d.ts +17 -0
  523. package/dist/admin/src/legacy/components/AssetDialog/AssetDialog.d.ts +39 -0
  524. package/dist/admin/src/legacy/components/AssetDialog/BrowseStep/BrowseStep.d.ts +63 -0
  525. package/dist/admin/src/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +7 -0
  526. package/dist/admin/src/legacy/components/AssetDialog/SelectedStep/SelectedStep.d.ts +8 -0
  527. package/dist/admin/src/legacy/components/AssetGridList/AssetGridList.d.ts +13 -0
  528. package/dist/admin/src/legacy/components/BulkMoveDialog/BulkMoveDialog.d.ts +15 -0
  529. package/dist/admin/src/legacy/components/EditAssetDialog/EditAssetContent.d.ts +31 -0
  530. package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +8 -0
  531. package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +26 -0
  532. package/dist/admin/src/legacy/components/EditAssetDialog/RemoveAssetDialog.d.ts +8 -0
  533. package/dist/admin/src/legacy/components/EditFolderDialog/EditFolderDialog.d.ts +12 -0
  534. package/dist/admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +10 -0
  535. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +4 -0
  536. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +9 -0
  537. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +23 -0
  538. package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +10 -0
  539. package/dist/admin/src/legacy/components/SelectTree/Option.d.ts +16 -0
  540. package/dist/admin/src/legacy/components/SortPicker/SortPicker.d.ts +7 -0
  541. package/dist/admin/src/legacy/components/TableList/CellContent.d.ts +8 -0
  542. package/dist/admin/src/legacy/components/TableList/PreviewCell.d.ts +7 -0
  543. package/dist/admin/src/legacy/components/TableList/TableList.d.ts +31 -0
  544. package/dist/admin/src/legacy/components/TableList/TableRows.d.ts +22 -0
  545. package/dist/admin/src/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +13 -0
  546. package/dist/admin/src/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +22 -0
  547. package/dist/admin/src/legacy/components/UploadAssetDialog/UploadAssetDialog.d.ts +21 -0
  548. package/dist/admin/src/legacy/components/UploadProgress/UploadProgress.d.ts +7 -0
  549. package/dist/admin/src/legacy/hooks/useAssets.d.ts +14 -0
  550. package/dist/admin/src/legacy/hooks/useBulkEdit.d.ts +91 -0
  551. package/dist/admin/src/legacy/hooks/useBulkMove.d.ts +209 -0
  552. package/dist/admin/src/legacy/hooks/useBulkRemove.d.ts +241 -0
  553. package/dist/admin/src/legacy/hooks/useConfig.d.ts +5 -0
  554. package/dist/admin/src/legacy/hooks/useEditAsset.d.ts +119 -0
  555. package/dist/admin/src/legacy/hooks/useEditFolder.d.ts +72 -0
  556. package/dist/admin/src/legacy/hooks/useFolder.d.ts +7 -0
  557. package/dist/admin/src/legacy/hooks/useFolderStructure.d.ts +18 -0
  558. package/dist/admin/src/legacy/hooks/useFolders.d.ts +11 -0
  559. package/dist/admin/src/legacy/hooks/useMediaLibraryPermissions.d.ts +4 -0
  560. package/dist/admin/src/legacy/hooks/useModalQueryParams.d.ts +20 -0
  561. package/dist/admin/src/legacy/hooks/useRemoveAsset.d.ts +8 -0
  562. package/dist/admin/src/legacy/hooks/useTracking.d.ts +4 -0
  563. package/dist/admin/src/legacy/hooks/useUpload.d.ts +15 -0
  564. package/dist/admin/src/legacy/pages/App/ConfigureTheView/ConfigureTheView.d.ts +6 -0
  565. package/dist/admin/src/legacy/pages/App/ConfigureTheView/components/Settings.d.ts +13 -0
  566. package/dist/admin/src/legacy/pages/App/ConfigureTheView/state/actions.d.ts +12 -0
  567. package/dist/admin/src/legacy/pages/App/ConfigureTheView/state/init.d.ts +8 -0
  568. package/dist/admin/src/legacy/pages/App/MediaLibrary.d.ts +1 -0
  569. package/dist/admin/src/legacy/pages/App/components/BulkActions.d.ts +15 -0
  570. package/dist/admin/src/legacy/pages/App/components/BulkDeleteButton.d.ts +7 -0
  571. package/dist/admin/src/legacy/pages/App/components/BulkMoveButton.d.ts +15 -0
  572. package/dist/admin/src/legacy/pages/App/components/Header.d.ts +22 -0
  573. package/dist/admin/src/legacy/utils/containsAssetFilter.d.ts +2 -0
  574. package/dist/admin/src/legacy/utils/createAssetUrl.d.ts +2 -0
  575. package/dist/admin/src/legacy/utils/downloadFile.d.ts +1 -0
  576. package/dist/admin/src/legacy/utils/findRecursiveFolderByValue.d.ts +11 -0
  577. package/dist/admin/src/legacy/utils/getAllowedFiles.d.ts +14 -0
  578. package/dist/admin/src/legacy/utils/getBreadcrumbDataCM.d.ts +19 -0
  579. package/dist/admin/src/legacy/utils/getBreadcrumbDataML.d.ts +18 -0
  580. package/dist/admin/src/legacy/utils/getFolderParents.d.ts +11 -0
  581. package/dist/admin/src/legacy/utils/getFolderURL.d.ts +5 -0
  582. package/dist/admin/src/legacy/utils/icons.d.ts +15 -0
  583. package/dist/admin/src/legacy/utils/index.d.ts +26 -0
  584. package/dist/admin/src/legacy/utils/rawFileToAsset.d.ts +14 -0
  585. package/dist/admin/src/pages/Assets/components/ActionsMenuContent.d.ts +33 -0
  586. package/dist/admin/src/pages/Assets/components/AssetActionsMenu.d.ts +26 -0
  587. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +16 -0
  588. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +46 -0
  589. package/dist/admin/src/pages/Assets/components/AssetDetails/AssetPreview.d.ts +9 -0
  590. package/dist/admin/src/pages/Assets/components/AssetsGrid.d.ts +12 -0
  591. package/dist/admin/src/pages/Assets/components/AssetsTable.d.ts +18 -0
  592. package/dist/admin/src/pages/Assets/components/BulkActionsBar.d.ts +28 -0
  593. package/dist/admin/src/pages/Assets/components/Dnd/computeValidDropTargets.d.ts +7 -0
  594. package/dist/admin/src/pages/Assets/components/FolderActionsMenu.d.ts +21 -0
  595. package/dist/admin/src/pages/Assets/hooks/useFolderNavigation.d.ts +7 -0
  596. package/dist/admin/src/pages/Assets/hooks/useInfiniteAssets.d.ts +45 -0
  597. package/dist/admin/src/pages/Assets/utils/mergeMixedList.d.ts +40 -0
  598. package/dist/admin/src/pages/Assets/utils/mergeUploadedAssets.d.ts +35 -0
  599. package/dist/admin/src/pages/Assets/utils/renderedKeys.d.ts +19 -0
  600. package/dist/admin/src/pages/SettingsPage/useAIMetadataJob.d.ts +9 -0
  601. package/dist/admin/src/services/api.d.ts +99 -0
  602. package/dist/admin/src/services/assets.d.ts +33 -0
  603. package/dist/admin/src/services/folders.d.ts +37 -0
  604. package/dist/admin/src/services/settings.d.ts +2 -0
  605. package/dist/admin/src/services/uploadFileViaXHR.d.ts +23 -0
  606. package/dist/admin/src/store/uploadProgress.d.ts +201 -0
  607. package/dist/admin/src/utils/canDropItemOnFolder.d.ts +9 -0
  608. package/dist/admin/src/utils/downloadFile.d.ts +5 -0
  609. package/dist/admin/src/utils/flattenFolderStructure.d.ts +18 -0
  610. package/dist/admin/src/utils/getFolderLabel.d.ts +11 -0
  611. package/dist/admin/src/utils/itemLocations.d.ts +31 -0
  612. package/dist/admin/store/hooks.js.map +1 -0
  613. package/dist/admin/store/hooks.mjs.map +1 -0
  614. package/dist/admin/store/uploadProgress.js +373 -0
  615. package/dist/admin/store/uploadProgress.js.map +1 -0
  616. package/dist/admin/store/uploadProgress.mjs +349 -0
  617. package/dist/admin/store/uploadProgress.mjs.map +1 -0
  618. package/dist/admin/translations/en.json.js +0 -3
  619. package/dist/admin/translations/en.json.js.map +1 -1
  620. package/dist/admin/translations/en.json.mjs +0 -3
  621. package/dist/admin/translations/en.json.mjs.map +1 -1
  622. package/dist/admin/utils/buildBulkMovePayload.js.map +1 -0
  623. package/dist/admin/utils/buildBulkMovePayload.mjs.map +1 -0
  624. package/dist/admin/utils/buildDragSetFromSelection.js.map +1 -0
  625. package/dist/admin/utils/buildDragSetFromSelection.mjs.map +1 -0
  626. package/dist/admin/utils/canDropItemOnFolder.js.map +1 -0
  627. package/dist/admin/utils/canDropItemOnFolder.mjs.map +1 -0
  628. package/dist/admin/utils/createRafBatcher.js.map +1 -0
  629. package/dist/admin/utils/createRafBatcher.mjs.map +1 -0
  630. package/dist/admin/utils/downloadFile.js +13 -7
  631. package/dist/admin/utils/downloadFile.js.map +1 -1
  632. package/dist/admin/utils/downloadFile.mjs +13 -7
  633. package/dist/admin/utils/downloadFile.mjs.map +1 -1
  634. package/dist/admin/utils/files.js.map +1 -0
  635. package/dist/admin/utils/files.mjs.map +1 -0
  636. package/dist/admin/utils/flattenFolderStructure.js.map +1 -0
  637. package/dist/admin/utils/flattenFolderStructure.mjs.map +1 -0
  638. package/dist/admin/utils/formatMoveSuccessMessage.js.map +1 -0
  639. package/dist/admin/utils/formatMoveSuccessMessage.mjs.map +1 -0
  640. package/dist/admin/utils/getApiErrorMessage.js.map +1 -0
  641. package/dist/admin/utils/getApiErrorMessage.mjs.map +1 -0
  642. package/dist/admin/utils/getAssetIcon.js +28 -0
  643. package/dist/admin/utils/getAssetIcon.js.map +1 -0
  644. package/dist/admin/utils/getAssetIcon.mjs +26 -0
  645. package/dist/admin/utils/getAssetIcon.mjs.map +1 -0
  646. package/dist/admin/utils/getFolderLabel.js.map +1 -0
  647. package/dist/admin/utils/getFolderLabel.mjs.map +1 -0
  648. package/dist/admin/utils/getRelationId.js.map +1 -0
  649. package/dist/admin/utils/getRelationId.mjs.map +1 -0
  650. package/dist/admin/utils/isEventFromWithin.js.map +1 -0
  651. package/dist/admin/utils/isEventFromWithin.mjs.map +1 -0
  652. package/dist/admin/utils/itemLocations.js.map +1 -0
  653. package/dist/admin/utils/itemLocations.mjs.map +1 -0
  654. package/dist/admin/utils/itemSource.js.map +1 -0
  655. package/dist/admin/utils/itemSource.mjs.map +1 -0
  656. package/dist/admin/utils/searchQueryParam.js.map +1 -0
  657. package/dist/admin/utils/searchQueryParam.mjs.map +1 -0
  658. package/dist/admin/utils/translations.js +8 -0
  659. package/dist/admin/utils/translations.js.map +1 -0
  660. package/dist/admin/utils/translations.mjs +6 -0
  661. package/dist/admin/utils/translations.mjs.map +1 -0
  662. package/dist/server/bootstrap.js +11 -0
  663. package/dist/server/bootstrap.js.map +1 -1
  664. package/dist/server/bootstrap.mjs +11 -0
  665. package/dist/server/bootstrap.mjs.map +1 -1
  666. package/dist/server/controllers/admin-settings.js +1 -4
  667. package/dist/server/controllers/admin-settings.js.map +1 -1
  668. package/dist/server/controllers/admin-settings.mjs +1 -4
  669. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  670. package/dist/server/controllers/admin-upload.js +31 -1
  671. package/dist/server/controllers/admin-upload.js.map +1 -1
  672. package/dist/server/controllers/admin-upload.mjs +31 -1
  673. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  674. package/dist/server/controllers/utils/find-entity-and-check-permissions.js +15 -4
  675. package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
  676. package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs +15 -4
  677. package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -1
  678. package/dist/server/controllers/utils/folders.js +1 -1
  679. package/dist/server/controllers/utils/folders.js.map +1 -1
  680. package/dist/server/controllers/utils/folders.mjs +1 -1
  681. package/dist/server/controllers/utils/folders.mjs.map +1 -1
  682. package/dist/server/mcp/ambient-instance.js +46 -0
  683. package/dist/server/mcp/ambient-instance.js.map +1 -0
  684. package/dist/server/mcp/ambient-instance.mjs +43 -0
  685. package/dist/server/mcp/ambient-instance.mjs.map +1 -0
  686. package/dist/server/mcp/handlers/constants.js +60 -0
  687. package/dist/server/mcp/handlers/constants.js.map +1 -0
  688. package/dist/server/mcp/handlers/constants.mjs +45 -0
  689. package/dist/server/mcp/handlers/constants.mjs.map +1 -0
  690. package/dist/server/mcp/handlers/folder-handlers.js +308 -0
  691. package/dist/server/mcp/handlers/folder-handlers.js.map +1 -0
  692. package/dist/server/mcp/handlers/folder-handlers.mjs +303 -0
  693. package/dist/server/mcp/handlers/folder-handlers.mjs.map +1 -0
  694. package/dist/server/mcp/handlers/read-handlers.js +134 -0
  695. package/dist/server/mcp/handlers/read-handlers.js.map +1 -0
  696. package/dist/server/mcp/handlers/read-handlers.mjs +130 -0
  697. package/dist/server/mcp/handlers/read-handlers.mjs.map +1 -0
  698. package/dist/server/mcp/handlers/write-handlers.js +315 -0
  699. package/dist/server/mcp/handlers/write-handlers.js.map +1 -0
  700. package/dist/server/mcp/handlers/write-handlers.mjs +311 -0
  701. package/dist/server/mcp/handlers/write-handlers.mjs.map +1 -0
  702. package/dist/server/mcp/permissions.js +36 -0
  703. package/dist/server/mcp/permissions.js.map +1 -0
  704. package/dist/server/mcp/permissions.mjs +33 -0
  705. package/dist/server/mcp/permissions.mjs.map +1 -0
  706. package/dist/server/mcp/register-upload-mcp-tools.js +235 -0
  707. package/dist/server/mcp/register-upload-mcp-tools.js.map +1 -0
  708. package/dist/server/mcp/register-upload-mcp-tools.mjs +232 -0
  709. package/dist/server/mcp/register-upload-mcp-tools.mjs.map +1 -0
  710. package/dist/server/mcp/sanitizers/sanitize-media.js +97 -0
  711. package/dist/server/mcp/sanitizers/sanitize-media.js.map +1 -0
  712. package/dist/server/mcp/sanitizers/sanitize-media.mjs +93 -0
  713. package/dist/server/mcp/sanitizers/sanitize-media.mjs.map +1 -0
  714. package/dist/server/mcp/schemas/input-schemas.js +206 -0
  715. package/dist/server/mcp/schemas/input-schemas.js.map +1 -0
  716. package/dist/server/mcp/schemas/input-schemas.mjs +190 -0
  717. package/dist/server/mcp/schemas/input-schemas.mjs.map +1 -0
  718. package/dist/server/mcp/schemas/output-schemas.js +158 -0
  719. package/dist/server/mcp/schemas/output-schemas.js.map +1 -0
  720. package/dist/server/mcp/schemas/output-schemas.mjs +142 -0
  721. package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -0
  722. package/dist/server/mcp/utils.js +14 -0
  723. package/dist/server/mcp/utils.js.map +1 -0
  724. package/dist/server/mcp/utils.mjs +12 -0
  725. package/dist/server/mcp/utils.mjs.map +1 -0
  726. package/dist/server/media-library-default-notice.js +42 -0
  727. package/dist/server/media-library-default-notice.js.map +1 -0
  728. package/dist/server/media-library-default-notice.mjs +40 -0
  729. package/dist/server/media-library-default-notice.mjs.map +1 -0
  730. package/dist/server/migrations/unsign-richtext-and-blocks-urls.js +147 -0
  731. package/dist/server/migrations/unsign-richtext-and-blocks-urls.js.map +1 -0
  732. package/dist/server/migrations/unsign-richtext-and-blocks-urls.mjs +145 -0
  733. package/dist/server/migrations/unsign-richtext-and-blocks-urls.mjs.map +1 -0
  734. package/dist/server/register.js +8 -0
  735. package/dist/server/register.js.map +1 -1
  736. package/dist/server/register.mjs +8 -0
  737. package/dist/server/register.mjs.map +1 -1
  738. package/dist/server/routes/admin.js +4 -1
  739. package/dist/server/routes/admin.js.map +1 -1
  740. package/dist/server/routes/admin.mjs +4 -1
  741. package/dist/server/routes/admin.mjs.map +1 -1
  742. package/dist/server/services/ai-metadata.js +1 -1
  743. package/dist/server/services/ai-metadata.js.map +1 -1
  744. package/dist/server/services/ai-metadata.mjs +1 -1
  745. package/dist/server/services/ai-metadata.mjs.map +1 -1
  746. package/dist/server/services/extensions/index.js +17 -5
  747. package/dist/server/services/extensions/index.js.map +1 -1
  748. package/dist/server/services/extensions/index.mjs +16 -4
  749. package/dist/server/services/extensions/index.mjs.map +1 -1
  750. package/dist/server/services/extensions/utils.js +318 -19
  751. package/dist/server/services/extensions/utils.js.map +1 -1
  752. package/dist/server/services/extensions/utils.mjs +309 -20
  753. package/dist/server/services/extensions/utils.mjs.map +1 -1
  754. package/dist/server/services/folder.js.map +1 -1
  755. package/dist/server/services/folder.mjs.map +1 -1
  756. package/dist/server/services/metrics.js +4 -3
  757. package/dist/server/services/metrics.js.map +1 -1
  758. package/dist/server/services/metrics.mjs +4 -3
  759. package/dist/server/services/metrics.mjs.map +1 -1
  760. package/dist/server/services/upload.js +14 -2
  761. package/dist/server/services/upload.js.map +1 -1
  762. package/dist/server/services/upload.mjs +14 -2
  763. package/dist/server/services/upload.mjs.map +1 -1
  764. package/dist/server/src/bootstrap.d.ts.map +1 -1
  765. package/dist/server/src/controllers/admin-settings.d.ts +1 -1
  766. package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
  767. package/dist/server/src/controllers/admin-upload.d.ts +1 -0
  768. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  769. package/dist/server/src/controllers/index.d.ts +1 -1
  770. package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts +14 -1
  771. package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
  772. package/dist/server/src/controllers/utils/folders.d.ts +2 -1
  773. package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
  774. package/dist/server/src/index.d.ts +9 -3
  775. package/dist/server/src/index.d.ts.map +1 -1
  776. package/dist/server/src/mcp/ambient-instance.d.ts +65 -0
  777. package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -0
  778. package/dist/server/src/mcp/handlers/constants.d.ts +48 -0
  779. package/dist/server/src/mcp/handlers/constants.d.ts.map +1 -0
  780. package/dist/server/src/mcp/handlers/folder-handlers.d.ts +49 -0
  781. package/dist/server/src/mcp/handlers/folder-handlers.d.ts.map +1 -0
  782. package/dist/server/src/mcp/handlers/index.d.ts +5 -0
  783. package/dist/server/src/mcp/handlers/index.d.ts.map +1 -0
  784. package/dist/server/src/mcp/handlers/read-handlers.d.ts +35 -0
  785. package/dist/server/src/mcp/handlers/read-handlers.d.ts.map +1 -0
  786. package/dist/server/src/mcp/handlers/write-handlers.d.ts +66 -0
  787. package/dist/server/src/mcp/handlers/write-handlers.d.ts.map +1 -0
  788. package/dist/server/src/mcp/index.d.ts +3 -0
  789. package/dist/server/src/mcp/index.d.ts.map +1 -0
  790. package/dist/server/src/mcp/permissions.d.ts +22 -0
  791. package/dist/server/src/mcp/permissions.d.ts.map +1 -0
  792. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts +29 -0
  793. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts.map +1 -0
  794. package/dist/server/src/mcp/sanitizers/sanitize-media.d.ts +63 -0
  795. package/dist/server/src/mcp/sanitizers/sanitize-media.d.ts.map +1 -0
  796. package/dist/server/src/mcp/schemas/index.d.ts +3 -0
  797. package/dist/server/src/mcp/schemas/index.d.ts.map +1 -0
  798. package/dist/server/src/mcp/schemas/input-schemas.d.ts +148 -0
  799. package/dist/server/src/mcp/schemas/input-schemas.d.ts.map +1 -0
  800. package/dist/server/src/mcp/schemas/output-schemas.d.ts +276 -0
  801. package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -0
  802. package/dist/server/src/mcp/types.d.ts +19 -0
  803. package/dist/server/src/mcp/types.d.ts.map +1 -0
  804. package/dist/server/src/mcp/utils.d.ts +4 -0
  805. package/dist/server/src/mcp/utils.d.ts.map +1 -0
  806. package/dist/server/src/media-library-default-notice.d.ts +19 -0
  807. package/dist/server/src/media-library-default-notice.d.ts.map +1 -0
  808. package/dist/server/src/migrations/unsign-richtext-and-blocks-urls.d.ts +18 -0
  809. package/dist/server/src/migrations/unsign-richtext-and-blocks-urls.d.ts.map +1 -0
  810. package/dist/server/src/register.d.ts.map +1 -1
  811. package/dist/server/src/routes/admin.d.ts.map +1 -1
  812. package/dist/server/src/services/extensions/index.d.ts.map +1 -1
  813. package/dist/server/src/services/extensions/utils.d.ts +52 -2
  814. package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
  815. package/dist/server/src/services/folder.d.ts +6 -2
  816. package/dist/server/src/services/folder.d.ts.map +1 -1
  817. package/dist/server/src/services/index.d.ts +8 -2
  818. package/dist/server/src/services/index.d.ts.map +1 -1
  819. package/dist/server/src/services/metrics.d.ts.map +1 -1
  820. package/dist/server/src/services/upload.d.ts +8 -1
  821. package/dist/server/src/services/upload.d.ts.map +1 -1
  822. package/dist/server/src/types.d.ts +2 -2
  823. package/dist/server/src/types.d.ts.map +1 -1
  824. package/dist/server/src/utils/index.d.ts +2 -1
  825. package/dist/server/src/utils/index.d.ts.map +1 -1
  826. package/dist/server/utils/index.js +2 -2
  827. package/dist/server/utils/index.js.map +1 -1
  828. package/dist/server/utils/index.mjs +2 -2
  829. package/dist/server/utils/index.mjs.map +1 -1
  830. package/dist/shared/contracts/files.d.ts +22 -0
  831. package/dist/shared/contracts/files.d.ts.map +1 -1
  832. package/package.json +7 -6
  833. package/dist/admin/ai/components/AIAssetCard.js +0 -621
  834. package/dist/admin/ai/components/AIAssetCard.js.map +0 -1
  835. package/dist/admin/ai/components/AIAssetCard.mjs +0 -598
  836. package/dist/admin/ai/components/AIAssetCard.mjs.map +0 -1
  837. package/dist/admin/ai/components/AIUploadModal.js.map +0 -1
  838. package/dist/admin/ai/components/AIUploadModal.mjs.map +0 -1
  839. package/dist/admin/components/AssetCard/AssetCard.js +0 -67
  840. package/dist/admin/components/AssetCard/AssetCard.js.map +0 -1
  841. package/dist/admin/components/AssetCard/AssetCard.mjs +0 -65
  842. package/dist/admin/components/AssetCard/AssetCard.mjs.map +0 -1
  843. package/dist/admin/components/AssetCard/AssetCardBase.js.map +0 -1
  844. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +0 -1
  845. package/dist/admin/components/AssetCard/AudioAssetCard.js.map +0 -1
  846. package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +0 -1
  847. package/dist/admin/components/AssetCard/AudioPreview.js.map +0 -1
  848. package/dist/admin/components/AssetCard/AudioPreview.mjs.map +0 -1
  849. package/dist/admin/components/AssetCard/DocAssetCard.js.map +0 -1
  850. package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +0 -1
  851. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +0 -1
  852. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +0 -1
  853. package/dist/admin/components/AssetCard/UploadingAssetCard.js +0 -154
  854. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +0 -1
  855. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +0 -132
  856. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +0 -1
  857. package/dist/admin/components/AssetCard/VideoAssetCard.js.map +0 -1
  858. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +0 -1
  859. package/dist/admin/components/AssetCard/VideoPreview.js.map +0 -1
  860. package/dist/admin/components/AssetCard/VideoPreview.mjs.map +0 -1
  861. package/dist/admin/components/AssetDialog/AssetDialog.js.map +0 -1
  862. package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +0 -1
  863. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -320
  864. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +0 -1
  865. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -318
  866. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +0 -1
  867. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +0 -1
  868. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +0 -1
  869. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +0 -1
  870. package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +0 -1
  871. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +0 -1
  872. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +0 -1
  873. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +0 -1
  874. package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +0 -1
  875. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +0 -1
  876. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +0 -1
  877. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +0 -1
  878. package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +0 -1
  879. package/dist/admin/components/AssetDialog/DialogFooter.js.map +0 -1
  880. package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +0 -1
  881. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +0 -1
  882. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +0 -1
  883. package/dist/admin/components/AssetGridList/AssetGridList.js.map +0 -1
  884. package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +0 -1
  885. package/dist/admin/components/AssetGridList/Draggable.js.map +0 -1
  886. package/dist/admin/components/AssetGridList/Draggable.mjs.map +0 -1
  887. package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +0 -1
  888. package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +0 -1
  889. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +0 -1
  890. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +0 -1
  891. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +0 -1
  892. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +0 -1
  893. package/dist/admin/components/ContextInfo/ContextInfo.js.map +0 -1
  894. package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +0 -1
  895. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +0 -1
  896. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +0 -1
  897. package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +0 -1
  898. package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +0 -1
  899. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +0 -1
  900. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +0 -1
  901. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +0 -114
  902. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +0 -1
  903. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +0 -89
  904. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +0 -1
  905. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +0 -1
  906. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +0 -1
  907. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +0 -1
  908. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +0 -1
  909. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +0 -362
  910. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +0 -1
  911. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +0 -337
  912. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +0 -1
  913. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +0 -1
  914. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +0 -1
  915. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +0 -1
  916. package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +0 -1
  917. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +0 -1
  918. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +0 -1
  919. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +0 -1
  920. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +0 -1
  921. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +0 -1
  922. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +0 -1
  923. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +0 -1
  924. package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +0 -1
  925. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +0 -1
  926. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +0 -1
  927. package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +0 -1
  928. package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +0 -1
  929. package/dist/admin/components/FilterList/FilterList.js.map +0 -1
  930. package/dist/admin/components/FilterList/FilterList.mjs.map +0 -1
  931. package/dist/admin/components/FilterList/FilterTag.js.map +0 -1
  932. package/dist/admin/components/FilterList/FilterTag.mjs.map +0 -1
  933. package/dist/admin/components/FilterPopover/FilterPopover.js.map +0 -1
  934. package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +0 -1
  935. package/dist/admin/components/FilterPopover/FilterValueInput.js.map +0 -1
  936. package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +0 -1
  937. package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +0 -1
  938. package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +0 -1
  939. package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +0 -1
  940. package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +0 -1
  941. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +0 -1
  942. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +0 -1
  943. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +0 -1
  944. package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +0 -1
  945. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +0 -1
  946. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +0 -1
  947. package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +0 -1
  948. package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +0 -1
  949. package/dist/admin/components/FolderGridList/FolderGridList.js.map +0 -1
  950. package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +0 -1
  951. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +0 -1
  952. package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +0 -1
  953. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +0 -89
  954. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +0 -1
  955. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +0 -87
  956. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +0 -1
  957. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +0 -1
  958. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +0 -1
  959. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +0 -1
  960. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +0 -1
  961. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +0 -111
  962. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +0 -1
  963. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +0 -89
  964. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +0 -1
  965. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +0 -1
  966. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +0 -1
  967. package/dist/admin/components/SelectTree/Option.js.map +0 -1
  968. package/dist/admin/components/SelectTree/Option.mjs.map +0 -1
  969. package/dist/admin/components/SelectTree/SelectTree.js.map +0 -1
  970. package/dist/admin/components/SelectTree/SelectTree.mjs.map +0 -1
  971. package/dist/admin/components/SelectTree/utils/flattenTree.js.map +0 -1
  972. package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +0 -1
  973. package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +0 -1
  974. package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +0 -1
  975. package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +0 -1
  976. package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +0 -1
  977. package/dist/admin/components/SortPicker/SortPicker.js +0 -40
  978. package/dist/admin/components/SortPicker/SortPicker.js.map +0 -1
  979. package/dist/admin/components/SortPicker/SortPicker.mjs +0 -38
  980. package/dist/admin/components/SortPicker/SortPicker.mjs.map +0 -1
  981. package/dist/admin/components/TableList/CellContent.js.map +0 -1
  982. package/dist/admin/components/TableList/CellContent.mjs.map +0 -1
  983. package/dist/admin/components/TableList/PreviewCell.js +0 -116
  984. package/dist/admin/components/TableList/PreviewCell.js.map +0 -1
  985. package/dist/admin/components/TableList/PreviewCell.mjs +0 -114
  986. package/dist/admin/components/TableList/PreviewCell.mjs.map +0 -1
  987. package/dist/admin/components/TableList/TableList.js +0 -100
  988. package/dist/admin/components/TableList/TableList.js.map +0 -1
  989. package/dist/admin/components/TableList/TableList.mjs +0 -98
  990. package/dist/admin/components/TableList/TableList.mjs.map +0 -1
  991. package/dist/admin/components/TableList/TableRows.js +0 -105
  992. package/dist/admin/components/TableList/TableRows.js.map +0 -1
  993. package/dist/admin/components/TableList/TableRows.mjs +0 -103
  994. package/dist/admin/components/TableList/TableRows.mjs.map +0 -1
  995. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +0 -1
  996. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +0 -1
  997. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +0 -177
  998. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +0 -1
  999. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +0 -155
  1000. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +0 -1
  1001. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +0 -1
  1002. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +0 -1
  1003. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +0 -1
  1004. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +0 -1
  1005. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +0 -1
  1006. package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +0 -1
  1007. package/dist/admin/components/UploadProgress/UploadProgress.js.map +0 -1
  1008. package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +0 -1
  1009. package/dist/admin/future/App.js +0 -33
  1010. package/dist/admin/future/App.js.map +0 -1
  1011. package/dist/admin/future/App.mjs +0 -31
  1012. package/dist/admin/future/App.mjs.map +0 -1
  1013. package/dist/admin/future/components/BetaNotice.js +0 -72
  1014. package/dist/admin/future/components/BetaNotice.js.map +0 -1
  1015. package/dist/admin/future/components/BetaNotice.mjs +0 -70
  1016. package/dist/admin/future/components/BetaNotice.mjs.map +0 -1
  1017. package/dist/admin/future/components/Drawer.js.map +0 -1
  1018. package/dist/admin/future/components/Drawer.mjs.map +0 -1
  1019. package/dist/admin/future/components/TruncatedText.js.map +0 -1
  1020. package/dist/admin/future/components/TruncatedText.mjs.map +0 -1
  1021. package/dist/admin/future/components/UploadProgressDialog.js +0 -699
  1022. package/dist/admin/future/components/UploadProgressDialog.js.map +0 -1
  1023. package/dist/admin/future/components/UploadProgressDialog.mjs +0 -697
  1024. package/dist/admin/future/components/UploadProgressDialog.mjs.map +0 -1
  1025. package/dist/admin/future/hooks/useAIMetadataEnabled.js +0 -39
  1026. package/dist/admin/future/hooks/useAIMetadataEnabled.js.map +0 -1
  1027. package/dist/admin/future/hooks/useAIMetadataEnabled.mjs +0 -37
  1028. package/dist/admin/future/hooks/useAIMetadataEnabled.mjs.map +0 -1
  1029. package/dist/admin/future/hooks/useApiErrorMessage.js.map +0 -1
  1030. package/dist/admin/future/hooks/useApiErrorMessage.mjs.map +0 -1
  1031. package/dist/admin/future/hooks/useMediaLibraryPermissions.js +0 -35
  1032. package/dist/admin/future/hooks/useMediaLibraryPermissions.js.map +0 -1
  1033. package/dist/admin/future/hooks/useMediaLibraryPermissions.mjs +0 -33
  1034. package/dist/admin/future/hooks/useMediaLibraryPermissions.mjs.map +0 -1
  1035. package/dist/admin/future/hooks/useTracking.js +0 -57
  1036. package/dist/admin/future/hooks/useTracking.js.map +0 -1
  1037. package/dist/admin/future/hooks/useTracking.mjs +0 -53
  1038. package/dist/admin/future/hooks/useTracking.mjs.map +0 -1
  1039. package/dist/admin/future/pages/Assets/AssetsPage.js +0 -830
  1040. package/dist/admin/future/pages/Assets/AssetsPage.js.map +0 -1
  1041. package/dist/admin/future/pages/Assets/AssetsPage.mjs +0 -808
  1042. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +0 -1
  1043. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.js.map +0 -1
  1044. package/dist/admin/future/pages/Assets/components/ActionsMenuContent.mjs.map +0 -1
  1045. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js.map +0 -1
  1046. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs.map +0 -1
  1047. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +0 -1
  1048. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +0 -1
  1049. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +0 -1202
  1050. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +0 -1
  1051. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +0 -1175
  1052. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +0 -1
  1053. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +0 -261
  1054. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +0 -1
  1055. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +0 -239
  1056. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +0 -1
  1057. package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js.map +0 -1
  1058. package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs.map +0 -1
  1059. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +0 -534
  1060. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +0 -1
  1061. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +0 -532
  1062. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +0 -1
  1063. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.js.map +0 -1
  1064. package/dist/admin/future/pages/Assets/components/AssetsSearchInput.mjs.map +0 -1
  1065. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +0 -1
  1066. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +0 -1
  1067. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js +0 -431
  1068. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js.map +0 -1
  1069. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs +0 -429
  1070. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs.map +0 -1
  1071. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.js.map +0 -1
  1072. package/dist/admin/future/pages/Assets/components/BulkMoveDialog.mjs.map +0 -1
  1073. package/dist/admin/future/pages/Assets/components/BusyOverlay.js.map +0 -1
  1074. package/dist/admin/future/pages/Assets/components/BusyOverlay.mjs.map +0 -1
  1075. package/dist/admin/future/pages/Assets/components/DateRangeCalendar.js.map +0 -1
  1076. package/dist/admin/future/pages/Assets/components/DateRangeCalendar.mjs.map +0 -1
  1077. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.js.map +0 -1
  1078. package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.mjs.map +0 -1
  1079. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js +0 -299
  1080. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js.map +0 -1
  1081. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs +0 -296
  1082. package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +0 -1
  1083. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js +0 -144
  1084. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js.map +0 -1
  1085. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs +0 -142
  1086. package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +0 -1
  1087. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.js.map +0 -1
  1088. package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.mjs.map +0 -1
  1089. package/dist/admin/future/pages/Assets/components/Dnd/computeValidDropTargets.js.map +0 -1
  1090. package/dist/admin/future/pages/Assets/components/Dnd/computeValidDropTargets.mjs.map +0 -1
  1091. package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js.map +0 -1
  1092. package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs.map +0 -1
  1093. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js.map +0 -1
  1094. package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs.map +0 -1
  1095. package/dist/admin/future/pages/Assets/components/Dnd/useFolderTreeDroppable.js.map +0 -1
  1096. package/dist/admin/future/pages/Assets/components/Dnd/useFolderTreeDroppable.mjs.map +0 -1
  1097. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +0 -1
  1098. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +0 -1
  1099. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +0 -1
  1100. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +0 -1
  1101. package/dist/admin/future/pages/Assets/components/EmptyState.js.map +0 -1
  1102. package/dist/admin/future/pages/Assets/components/EmptyState.mjs.map +0 -1
  1103. package/dist/admin/future/pages/Assets/components/FilterBadges.js.map +0 -1
  1104. package/dist/admin/future/pages/Assets/components/FilterBadges.mjs.map +0 -1
  1105. package/dist/admin/future/pages/Assets/components/FilterMenu.js.map +0 -1
  1106. package/dist/admin/future/pages/Assets/components/FilterMenu.mjs.map +0 -1
  1107. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.js.map +0 -1
  1108. package/dist/admin/future/pages/Assets/components/FolderActionsMenu.mjs.map +0 -1
  1109. package/dist/admin/future/pages/Assets/components/FolderFormDialog.js.map +0 -1
  1110. package/dist/admin/future/pages/Assets/components/FolderFormDialog.mjs.map +0 -1
  1111. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js.map +0 -1
  1112. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs.map +0 -1
  1113. package/dist/admin/future/pages/Assets/components/FolderTree/useSpringLoadedExpand.js.map +0 -1
  1114. package/dist/admin/future/pages/Assets/components/FolderTree/useSpringLoadedExpand.mjs.map +0 -1
  1115. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +0 -1
  1116. package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs.map +0 -1
  1117. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.js.map +0 -1
  1118. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.mjs.map +0 -1
  1119. package/dist/admin/future/pages/Assets/components/SortMenu.js.map +0 -1
  1120. package/dist/admin/future/pages/Assets/components/SortMenu.mjs.map +0 -1
  1121. package/dist/admin/future/pages/Assets/constants.js.map +0 -1
  1122. package/dist/admin/future/pages/Assets/constants.mjs.map +0 -1
  1123. package/dist/admin/future/pages/Assets/hooks/useAssetSearch.js.map +0 -1
  1124. package/dist/admin/future/pages/Assets/hooks/useAssetSearch.mjs.map +0 -1
  1125. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.js.map +0 -1
  1126. package/dist/admin/future/pages/Assets/hooks/useAssetSelection.mjs.map +0 -1
  1127. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.js.map +0 -1
  1128. package/dist/admin/future/pages/Assets/hooks/useBusyAssets.mjs.map +0 -1
  1129. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +0 -1
  1130. package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +0 -1
  1131. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +0 -1
  1132. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +0 -1
  1133. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +0 -1
  1134. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +0 -1
  1135. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +0 -1
  1136. package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +0 -1
  1137. package/dist/admin/future/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +0 -1
  1138. package/dist/admin/future/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +0 -1
  1139. package/dist/admin/future/pages/Assets/hooks/useListFilters.js.map +0 -1
  1140. package/dist/admin/future/pages/Assets/hooks/useListFilters.mjs.map +0 -1
  1141. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.js.map +0 -1
  1142. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.mjs.map +0 -1
  1143. package/dist/admin/future/pages/Assets/hooks/useListSort.js.map +0 -1
  1144. package/dist/admin/future/pages/Assets/hooks/useListSort.mjs.map +0 -1
  1145. package/dist/admin/future/pages/Assets/utils/buildAssetFilters.js.map +0 -1
  1146. package/dist/admin/future/pages/Assets/utils/buildAssetFilters.mjs.map +0 -1
  1147. package/dist/admin/future/pages/Assets/utils/listQueryKey.js.map +0 -1
  1148. package/dist/admin/future/pages/Assets/utils/listQueryKey.mjs.map +0 -1
  1149. package/dist/admin/future/pages/Assets/utils/mergeMixedList.js.map +0 -1
  1150. package/dist/admin/future/pages/Assets/utils/mergeMixedList.mjs.map +0 -1
  1151. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.js.map +0 -1
  1152. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.mjs.map +0 -1
  1153. package/dist/admin/future/pages/Assets/utils/renderedKeys.js.map +0 -1
  1154. package/dist/admin/future/pages/Assets/utils/renderedKeys.mjs.map +0 -1
  1155. package/dist/admin/future/pages/Assets/utils/selection.js.map +0 -1
  1156. package/dist/admin/future/pages/Assets/utils/selection.mjs.map +0 -1
  1157. package/dist/admin/future/services/api.js +0 -758
  1158. package/dist/admin/future/services/api.js.map +0 -1
  1159. package/dist/admin/future/services/api.mjs +0 -749
  1160. package/dist/admin/future/services/api.mjs.map +0 -1
  1161. package/dist/admin/future/services/assets.js.map +0 -1
  1162. package/dist/admin/future/services/assets.mjs.map +0 -1
  1163. package/dist/admin/future/services/folders.js.map +0 -1
  1164. package/dist/admin/future/services/folders.mjs.map +0 -1
  1165. package/dist/admin/future/services/settings.js.map +0 -1
  1166. package/dist/admin/future/services/settings.mjs.map +0 -1
  1167. package/dist/admin/future/services/uploadFileViaXHR.js.map +0 -1
  1168. package/dist/admin/future/services/uploadFileViaXHR.mjs.map +0 -1
  1169. package/dist/admin/future/store/hooks.js.map +0 -1
  1170. package/dist/admin/future/store/hooks.mjs.map +0 -1
  1171. package/dist/admin/future/store/uploadProgress.js +0 -364
  1172. package/dist/admin/future/store/uploadProgress.js.map +0 -1
  1173. package/dist/admin/future/store/uploadProgress.mjs +0 -340
  1174. package/dist/admin/future/store/uploadProgress.mjs.map +0 -1
  1175. package/dist/admin/future/utils/buildBulkMovePayload.js.map +0 -1
  1176. package/dist/admin/future/utils/buildBulkMovePayload.mjs.map +0 -1
  1177. package/dist/admin/future/utils/buildDragSetFromSelection.js.map +0 -1
  1178. package/dist/admin/future/utils/buildDragSetFromSelection.mjs.map +0 -1
  1179. package/dist/admin/future/utils/canDropItemOnFolder.js.map +0 -1
  1180. package/dist/admin/future/utils/canDropItemOnFolder.mjs.map +0 -1
  1181. package/dist/admin/future/utils/createRafBatcher.js.map +0 -1
  1182. package/dist/admin/future/utils/createRafBatcher.mjs.map +0 -1
  1183. package/dist/admin/future/utils/downloadFile.js +0 -19
  1184. package/dist/admin/future/utils/downloadFile.js.map +0 -1
  1185. package/dist/admin/future/utils/downloadFile.mjs +0 -17
  1186. package/dist/admin/future/utils/downloadFile.mjs.map +0 -1
  1187. package/dist/admin/future/utils/files.js.map +0 -1
  1188. package/dist/admin/future/utils/files.mjs.map +0 -1
  1189. package/dist/admin/future/utils/flattenFolderStructure.js.map +0 -1
  1190. package/dist/admin/future/utils/flattenFolderStructure.mjs.map +0 -1
  1191. package/dist/admin/future/utils/formatMoveSuccessMessage.js.map +0 -1
  1192. package/dist/admin/future/utils/formatMoveSuccessMessage.mjs.map +0 -1
  1193. package/dist/admin/future/utils/getApiErrorMessage.js.map +0 -1
  1194. package/dist/admin/future/utils/getApiErrorMessage.mjs.map +0 -1
  1195. package/dist/admin/future/utils/getAssetIcon.js +0 -28
  1196. package/dist/admin/future/utils/getAssetIcon.js.map +0 -1
  1197. package/dist/admin/future/utils/getAssetIcon.mjs +0 -26
  1198. package/dist/admin/future/utils/getAssetIcon.mjs.map +0 -1
  1199. package/dist/admin/future/utils/getFolderLabel.js.map +0 -1
  1200. package/dist/admin/future/utils/getFolderLabel.mjs.map +0 -1
  1201. package/dist/admin/future/utils/getRelationId.js.map +0 -1
  1202. package/dist/admin/future/utils/getRelationId.mjs.map +0 -1
  1203. package/dist/admin/future/utils/isEventFromWithin.js.map +0 -1
  1204. package/dist/admin/future/utils/isEventFromWithin.mjs.map +0 -1
  1205. package/dist/admin/future/utils/itemLocations.js.map +0 -1
  1206. package/dist/admin/future/utils/itemLocations.mjs.map +0 -1
  1207. package/dist/admin/future/utils/itemSource.js.map +0 -1
  1208. package/dist/admin/future/utils/itemSource.mjs.map +0 -1
  1209. package/dist/admin/future/utils/searchQueryParam.js.map +0 -1
  1210. package/dist/admin/future/utils/searchQueryParam.mjs.map +0 -1
  1211. package/dist/admin/future/utils/translations.js +0 -8
  1212. package/dist/admin/future/utils/translations.js.map +0 -1
  1213. package/dist/admin/future/utils/translations.mjs +0 -6
  1214. package/dist/admin/future/utils/translations.mjs.map +0 -1
  1215. package/dist/admin/hooks/useAIMetadataJob.js +0 -114
  1216. package/dist/admin/hooks/useAIMetadataJob.js.map +0 -1
  1217. package/dist/admin/hooks/useAIMetadataJob.mjs +0 -92
  1218. package/dist/admin/hooks/useAIMetadataJob.mjs.map +0 -1
  1219. package/dist/admin/hooks/useAiAvailability.js.map +0 -1
  1220. package/dist/admin/hooks/useAiAvailability.mjs.map +0 -1
  1221. package/dist/admin/hooks/useAssets.js +0 -127
  1222. package/dist/admin/hooks/useAssets.js.map +0 -1
  1223. package/dist/admin/hooks/useAssets.mjs +0 -105
  1224. package/dist/admin/hooks/useAssets.mjs.map +0 -1
  1225. package/dist/admin/hooks/useBulkEdit.js +0 -65
  1226. package/dist/admin/hooks/useBulkEdit.js.map +0 -1
  1227. package/dist/admin/hooks/useBulkEdit.mjs +0 -63
  1228. package/dist/admin/hooks/useBulkEdit.mjs.map +0 -1
  1229. package/dist/admin/hooks/useBulkMove.js +0 -78
  1230. package/dist/admin/hooks/useBulkMove.js.map +0 -1
  1231. package/dist/admin/hooks/useBulkMove.mjs +0 -76
  1232. package/dist/admin/hooks/useBulkMove.mjs.map +0 -1
  1233. package/dist/admin/hooks/useBulkRemove.js +0 -83
  1234. package/dist/admin/hooks/useBulkRemove.js.map +0 -1
  1235. package/dist/admin/hooks/useBulkRemove.mjs +0 -81
  1236. package/dist/admin/hooks/useBulkRemove.mjs.map +0 -1
  1237. package/dist/admin/hooks/useConfig.js +0 -58
  1238. package/dist/admin/hooks/useConfig.js.map +0 -1
  1239. package/dist/admin/hooks/useConfig.mjs +0 -56
  1240. package/dist/admin/hooks/useConfig.mjs.map +0 -1
  1241. package/dist/admin/hooks/useCropImg.js.map +0 -1
  1242. package/dist/admin/hooks/useCropImg.mjs.map +0 -1
  1243. package/dist/admin/hooks/useEditAsset.js +0 -115
  1244. package/dist/admin/hooks/useEditAsset.js.map +0 -1
  1245. package/dist/admin/hooks/useEditAsset.mjs +0 -93
  1246. package/dist/admin/hooks/useEditAsset.mjs.map +0 -1
  1247. package/dist/admin/hooks/useEditFolder.js +0 -45
  1248. package/dist/admin/hooks/useEditFolder.js.map +0 -1
  1249. package/dist/admin/hooks/useEditFolder.mjs +0 -43
  1250. package/dist/admin/hooks/useEditFolder.mjs.map +0 -1
  1251. package/dist/admin/hooks/useFolder.js +0 -57
  1252. package/dist/admin/hooks/useFolder.js.map +0 -1
  1253. package/dist/admin/hooks/useFolder.mjs +0 -55
  1254. package/dist/admin/hooks/useFolder.mjs.map +0 -1
  1255. package/dist/admin/hooks/useFolderStructure.js +0 -52
  1256. package/dist/admin/hooks/useFolderStructure.js.map +0 -1
  1257. package/dist/admin/hooks/useFolderStructure.mjs +0 -50
  1258. package/dist/admin/hooks/useFolderStructure.mjs.map +0 -1
  1259. package/dist/admin/hooks/useFolders.js +0 -108
  1260. package/dist/admin/hooks/useFolders.js.map +0 -1
  1261. package/dist/admin/hooks/useFolders.mjs +0 -86
  1262. package/dist/admin/hooks/useFolders.mjs.map +0 -1
  1263. package/dist/admin/hooks/useModalQueryParams.js.map +0 -1
  1264. package/dist/admin/hooks/useModalQueryParams.mjs.map +0 -1
  1265. package/dist/admin/hooks/usePersistentState.js.map +0 -1
  1266. package/dist/admin/hooks/usePersistentState.mjs.map +0 -1
  1267. package/dist/admin/hooks/useRemoveAsset.js +0 -58
  1268. package/dist/admin/hooks/useRemoveAsset.js.map +0 -1
  1269. package/dist/admin/hooks/useRemoveAsset.mjs +0 -56
  1270. package/dist/admin/hooks/useRemoveAsset.mjs.map +0 -1
  1271. package/dist/admin/hooks/useSelectionState.js.map +0 -1
  1272. package/dist/admin/hooks/useSelectionState.mjs.map +0 -1
  1273. package/dist/admin/hooks/useSettings.js.map +0 -1
  1274. package/dist/admin/hooks/useSettings.mjs.map +0 -1
  1275. package/dist/admin/hooks/useUpload.js +0 -109
  1276. package/dist/admin/hooks/useUpload.js.map +0 -1
  1277. package/dist/admin/hooks/useUpload.mjs +0 -87
  1278. package/dist/admin/hooks/useUpload.mjs.map +0 -1
  1279. package/dist/admin/hooks/utils/renameKeys.js.map +0 -1
  1280. package/dist/admin/hooks/utils/renameKeys.mjs.map +0 -1
  1281. package/dist/admin/pages/App/App.js.map +0 -1
  1282. package/dist/admin/pages/App/App.mjs.map +0 -1
  1283. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +0 -145
  1284. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +0 -1
  1285. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -120
  1286. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +0 -1
  1287. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -109
  1288. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +0 -1
  1289. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -107
  1290. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +0 -1
  1291. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js +0 -10
  1292. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +0 -1
  1293. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs +0 -7
  1294. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +0 -1
  1295. package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +0 -1
  1296. package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +0 -1
  1297. package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +0 -1
  1298. package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +0 -1
  1299. package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +0 -1
  1300. package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +0 -1
  1301. package/dist/admin/pages/App/MediaLibrary.js +0 -469
  1302. package/dist/admin/pages/App/MediaLibrary.js.map +0 -1
  1303. package/dist/admin/pages/App/MediaLibrary.mjs +0 -447
  1304. package/dist/admin/pages/App/MediaLibrary.mjs.map +0 -1
  1305. package/dist/admin/pages/App/components/BulkActions.js.map +0 -1
  1306. package/dist/admin/pages/App/components/BulkActions.mjs.map +0 -1
  1307. package/dist/admin/pages/App/components/BulkDeleteButton.js.map +0 -1
  1308. package/dist/admin/pages/App/components/BulkDeleteButton.mjs.map +0 -1
  1309. package/dist/admin/pages/App/components/BulkMoveButton.js.map +0 -1
  1310. package/dist/admin/pages/App/components/BulkMoveButton.mjs.map +0 -1
  1311. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +0 -1
  1312. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +0 -1
  1313. package/dist/admin/pages/App/components/Filters.js.map +0 -1
  1314. package/dist/admin/pages/App/components/Filters.mjs.map +0 -1
  1315. package/dist/admin/pages/App/components/Header.js.map +0 -1
  1316. package/dist/admin/pages/App/components/Header.mjs.map +0 -1
  1317. package/dist/admin/src/ai/components/AIAssetCard.d.ts +0 -13
  1318. package/dist/admin/src/ai/components/AIUploadModal.d.ts +0 -55
  1319. package/dist/admin/src/components/AssetCard/AssetCard.d.ts +0 -19
  1320. package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +0 -17
  1321. package/dist/admin/src/components/AssetDialog/AssetDialog.d.ts +0 -39
  1322. package/dist/admin/src/components/AssetDialog/BrowseStep/BrowseStep.d.ts +0 -63
  1323. package/dist/admin/src/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +0 -7
  1324. package/dist/admin/src/components/AssetDialog/SelectedStep/SelectedStep.d.ts +0 -8
  1325. package/dist/admin/src/components/AssetGridList/AssetGridList.d.ts +0 -13
  1326. package/dist/admin/src/components/BulkMoveDialog/BulkMoveDialog.d.ts +0 -15
  1327. package/dist/admin/src/components/EditAssetDialog/EditAssetContent.d.ts +0 -31
  1328. package/dist/admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +0 -8
  1329. package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +0 -26
  1330. package/dist/admin/src/components/EditAssetDialog/RemoveAssetDialog.d.ts +0 -8
  1331. package/dist/admin/src/components/EditFolderDialog/EditFolderDialog.d.ts +0 -12
  1332. package/dist/admin/src/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +0 -10
  1333. package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +0 -4
  1334. package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +0 -9
  1335. package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +0 -23
  1336. package/dist/admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +0 -10
  1337. package/dist/admin/src/components/SelectTree/Option.d.ts +0 -16
  1338. package/dist/admin/src/components/SortPicker/SortPicker.d.ts +0 -7
  1339. package/dist/admin/src/components/TableList/CellContent.d.ts +0 -8
  1340. package/dist/admin/src/components/TableList/PreviewCell.d.ts +0 -7
  1341. package/dist/admin/src/components/TableList/TableList.d.ts +0 -31
  1342. package/dist/admin/src/components/TableList/TableRows.d.ts +0 -22
  1343. package/dist/admin/src/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +0 -13
  1344. package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +0 -22
  1345. package/dist/admin/src/components/UploadAssetDialog/UploadAssetDialog.d.ts +0 -21
  1346. package/dist/admin/src/components/UploadProgress/UploadProgress.d.ts +0 -7
  1347. package/dist/admin/src/future/App.d.ts +0 -1
  1348. package/dist/admin/src/future/components/BetaNotice.d.ts +0 -11
  1349. package/dist/admin/src/future/hooks/useMediaLibraryPermissions.d.ts +0 -21
  1350. package/dist/admin/src/future/hooks/useTracking.d.ts +0 -29
  1351. package/dist/admin/src/future/pages/Assets/components/ActionsMenuContent.d.ts +0 -33
  1352. package/dist/admin/src/future/pages/Assets/components/AssetActionsMenu.d.ts +0 -26
  1353. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +0 -16
  1354. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +0 -46
  1355. package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetPreview.d.ts +0 -9
  1356. package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +0 -12
  1357. package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +0 -18
  1358. package/dist/admin/src/future/pages/Assets/components/BulkActionsBar.d.ts +0 -28
  1359. package/dist/admin/src/future/pages/Assets/components/Dnd/computeValidDropTargets.d.ts +0 -7
  1360. package/dist/admin/src/future/pages/Assets/components/FolderActionsMenu.d.ts +0 -21
  1361. package/dist/admin/src/future/pages/Assets/hooks/useFolderNavigation.d.ts +0 -7
  1362. package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +0 -45
  1363. package/dist/admin/src/future/pages/Assets/utils/mergeMixedList.d.ts +0 -40
  1364. package/dist/admin/src/future/pages/Assets/utils/mergeUploadedAssets.d.ts +0 -35
  1365. package/dist/admin/src/future/pages/Assets/utils/renderedKeys.d.ts +0 -19
  1366. package/dist/admin/src/future/services/api.d.ts +0 -99
  1367. package/dist/admin/src/future/services/assets.d.ts +0 -33
  1368. package/dist/admin/src/future/services/folders.d.ts +0 -37
  1369. package/dist/admin/src/future/services/settings.d.ts +0 -2
  1370. package/dist/admin/src/future/services/uploadFileViaXHR.d.ts +0 -23
  1371. package/dist/admin/src/future/store/uploadProgress.d.ts +0 -207
  1372. package/dist/admin/src/future/utils/canDropItemOnFolder.d.ts +0 -9
  1373. package/dist/admin/src/future/utils/downloadFile.d.ts +0 -6
  1374. package/dist/admin/src/future/utils/flattenFolderStructure.d.ts +0 -18
  1375. package/dist/admin/src/future/utils/getFolderLabel.d.ts +0 -11
  1376. package/dist/admin/src/future/utils/itemLocations.d.ts +0 -31
  1377. package/dist/admin/src/hooks/useAIMetadataJob.d.ts +0 -9
  1378. package/dist/admin/src/hooks/useAssets.d.ts +0 -14
  1379. package/dist/admin/src/hooks/useBulkEdit.d.ts +0 -91
  1380. package/dist/admin/src/hooks/useBulkMove.d.ts +0 -209
  1381. package/dist/admin/src/hooks/useBulkRemove.d.ts +0 -241
  1382. package/dist/admin/src/hooks/useConfig.d.ts +0 -5
  1383. package/dist/admin/src/hooks/useEditAsset.d.ts +0 -119
  1384. package/dist/admin/src/hooks/useEditFolder.d.ts +0 -72
  1385. package/dist/admin/src/hooks/useFolder.d.ts +0 -7
  1386. package/dist/admin/src/hooks/useFolderStructure.d.ts +0 -18
  1387. package/dist/admin/src/hooks/useFolders.d.ts +0 -11
  1388. package/dist/admin/src/hooks/useModalQueryParams.d.ts +0 -20
  1389. package/dist/admin/src/hooks/useRemoveAsset.d.ts +0 -8
  1390. package/dist/admin/src/hooks/useUpload.d.ts +0 -15
  1391. package/dist/admin/src/pages/App/ConfigureTheView/ConfigureTheView.d.ts +0 -6
  1392. package/dist/admin/src/pages/App/ConfigureTheView/components/Settings.d.ts +0 -13
  1393. package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +0 -12
  1394. package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +0 -8
  1395. package/dist/admin/src/pages/App/components/BulkActions.d.ts +0 -15
  1396. package/dist/admin/src/pages/App/components/BulkDeleteButton.d.ts +0 -7
  1397. package/dist/admin/src/pages/App/components/BulkMoveButton.d.ts +0 -15
  1398. package/dist/admin/src/pages/App/components/Header.d.ts +0 -22
  1399. package/dist/admin/src/utils/containsAssetFilter.d.ts +0 -2
  1400. package/dist/admin/src/utils/createAssetUrl.d.ts +0 -2
  1401. package/dist/admin/src/utils/findRecursiveFolderByValue.d.ts +0 -11
  1402. package/dist/admin/src/utils/getAllowedFiles.d.ts +0 -14
  1403. package/dist/admin/src/utils/getBreadcrumbDataCM.d.ts +0 -19
  1404. package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +0 -18
  1405. package/dist/admin/src/utils/getFolderParents.d.ts +0 -11
  1406. package/dist/admin/src/utils/getFolderURL.d.ts +0 -5
  1407. package/dist/admin/src/utils/icons.d.ts +0 -15
  1408. package/dist/admin/src/utils/index.d.ts +0 -26
  1409. package/dist/admin/src/utils/rawFileToAsset.d.ts +0 -14
  1410. package/dist/admin/utils/appendSearchParamsToUrl.js.map +0 -1
  1411. package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +0 -1
  1412. package/dist/admin/utils/containsAssetFilter.js.map +0 -1
  1413. package/dist/admin/utils/containsAssetFilter.mjs.map +0 -1
  1414. package/dist/admin/utils/createAssetUrl.js.map +0 -1
  1415. package/dist/admin/utils/createAssetUrl.mjs.map +0 -1
  1416. package/dist/admin/utils/displayedFilters.js.map +0 -1
  1417. package/dist/admin/utils/displayedFilters.mjs.map +0 -1
  1418. package/dist/admin/utils/findRecursiveFolderByValue.js.map +0 -1
  1419. package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +0 -1
  1420. package/dist/admin/utils/formatBytes.js.map +0 -1
  1421. package/dist/admin/utils/formatBytes.mjs.map +0 -1
  1422. package/dist/admin/utils/formatDuration.js.map +0 -1
  1423. package/dist/admin/utils/formatDuration.mjs.map +0 -1
  1424. package/dist/admin/utils/getAPIInnerErrors.js.map +0 -1
  1425. package/dist/admin/utils/getAPIInnerErrors.mjs.map +0 -1
  1426. package/dist/admin/utils/getAllowedFiles.js.map +0 -1
  1427. package/dist/admin/utils/getAllowedFiles.mjs.map +0 -1
  1428. package/dist/admin/utils/getBreadcrumbDataCM.js.map +0 -1
  1429. package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +0 -1
  1430. package/dist/admin/utils/getBreadcrumbDataML.js.map +0 -1
  1431. package/dist/admin/utils/getBreadcrumbDataML.mjs.map +0 -1
  1432. package/dist/admin/utils/getFileExtension.js.map +0 -1
  1433. package/dist/admin/utils/getFileExtension.mjs.map +0 -1
  1434. package/dist/admin/utils/getFolderParents.js.map +0 -1
  1435. package/dist/admin/utils/getFolderParents.mjs.map +0 -1
  1436. package/dist/admin/utils/getFolderURL.js.map +0 -1
  1437. package/dist/admin/utils/getFolderURL.mjs.map +0 -1
  1438. package/dist/admin/utils/getTrad.js +0 -8
  1439. package/dist/admin/utils/getTrad.js.map +0 -1
  1440. package/dist/admin/utils/getTrad.mjs +0 -6
  1441. package/dist/admin/utils/getTrad.mjs.map +0 -1
  1442. package/dist/admin/utils/icons.js +0 -23
  1443. package/dist/admin/utils/icons.js.map +0 -1
  1444. package/dist/admin/utils/icons.mjs +0 -19
  1445. package/dist/admin/utils/icons.mjs.map +0 -1
  1446. package/dist/admin/utils/moveElement.js.map +0 -1
  1447. package/dist/admin/utils/moveElement.mjs.map +0 -1
  1448. package/dist/admin/utils/normalizeAPIError.js.map +0 -1
  1449. package/dist/admin/utils/normalizeAPIError.mjs.map +0 -1
  1450. package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +0 -1
  1451. package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +0 -1
  1452. package/dist/admin/utils/prefixPluginTranslations.js.map +0 -1
  1453. package/dist/admin/utils/prefixPluginTranslations.mjs.map +0 -1
  1454. package/dist/admin/utils/rawFileToAsset.js +0 -23
  1455. package/dist/admin/utils/rawFileToAsset.js.map +0 -1
  1456. package/dist/admin/utils/rawFileToAsset.mjs +0 -21
  1457. package/dist/admin/utils/rawFileToAsset.mjs.map +0 -1
  1458. package/dist/admin/utils/resolveFileMime.js.map +0 -1
  1459. package/dist/admin/utils/resolveFileMime.mjs.map +0 -1
  1460. package/dist/admin/utils/toSingularTypes.js.map +0 -1
  1461. package/dist/admin/utils/toSingularTypes.mjs.map +0 -1
  1462. package/dist/admin/utils/urlYupSchema.js.map +0 -1
  1463. package/dist/admin/utils/urlYupSchema.mjs.map +0 -1
  1464. package/dist/admin/utils/urlsToAssets.js +0 -42
  1465. package/dist/admin/utils/urlsToAssets.js.map +0 -1
  1466. package/dist/admin/utils/urlsToAssets.mjs +0 -40
  1467. package/dist/admin/utils/urlsToAssets.mjs.map +0 -1
  1468. /package/dist/admin/{future/components → components}/Drawer.js +0 -0
  1469. /package/dist/admin/{future/components → components}/Drawer.mjs +0 -0
  1470. /package/dist/admin/{future/components → components}/TruncatedText.js +0 -0
  1471. /package/dist/admin/{future/components → components}/TruncatedText.mjs +0 -0
  1472. /package/dist/admin/{future/hooks → hooks}/useApiErrorMessage.js +0 -0
  1473. /package/dist/admin/{future/hooks → hooks}/useApiErrorMessage.mjs +0 -0
  1474. /package/dist/admin/{ai → legacy/ai}/components/AIUploadModal.js +0 -0
  1475. /package/dist/admin/{ai → legacy/ai}/components/AIUploadModal.mjs +0 -0
  1476. /package/dist/admin/{components → legacy/components}/AssetCard/AssetCardBase.js +0 -0
  1477. /package/dist/admin/{components → legacy/components}/AssetCard/AssetCardBase.mjs +0 -0
  1478. /package/dist/admin/{components → legacy/components}/AssetCard/AudioAssetCard.js +0 -0
  1479. /package/dist/admin/{components → legacy/components}/AssetCard/AudioAssetCard.mjs +0 -0
  1480. /package/dist/admin/{components → legacy/components}/AssetCard/AudioPreview.js +0 -0
  1481. /package/dist/admin/{components → legacy/components}/AssetCard/AudioPreview.mjs +0 -0
  1482. /package/dist/admin/{components → legacy/components}/AssetCard/DocAssetCard.js +0 -0
  1483. /package/dist/admin/{components → legacy/components}/AssetCard/DocAssetCard.mjs +0 -0
  1484. /package/dist/admin/{components → legacy/components}/AssetCard/ImageAssetCard.js +0 -0
  1485. /package/dist/admin/{components → legacy/components}/AssetCard/ImageAssetCard.mjs +0 -0
  1486. /package/dist/admin/{components → legacy/components}/AssetCard/VideoAssetCard.js +0 -0
  1487. /package/dist/admin/{components → legacy/components}/AssetCard/VideoAssetCard.mjs +0 -0
  1488. /package/dist/admin/{components → legacy/components}/AssetCard/VideoPreview.js +0 -0
  1489. /package/dist/admin/{components → legacy/components}/AssetCard/VideoPreview.mjs +0 -0
  1490. /package/dist/admin/{components → legacy/components}/AssetDialog/AssetDialog.js +0 -0
  1491. /package/dist/admin/{components → legacy/components}/AssetDialog/AssetDialog.mjs +0 -0
  1492. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/Filters.js +0 -0
  1493. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/Filters.mjs +0 -0
  1494. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.js +0 -0
  1495. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.mjs +0 -0
  1496. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.js +0 -0
  1497. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs +0 -0
  1498. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js +0 -0
  1499. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs +0 -0
  1500. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +0 -0
  1501. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -0
  1502. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.js +0 -0
  1503. /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.mjs +0 -0
  1504. /package/dist/admin/{components → legacy/components}/AssetDialog/DialogFooter.js +0 -0
  1505. /package/dist/admin/{components → legacy/components}/AssetDialog/DialogFooter.mjs +0 -0
  1506. /package/dist/admin/{components → legacy/components}/AssetDialog/SelectedStep/SelectedStep.js +0 -0
  1507. /package/dist/admin/{components → legacy/components}/AssetDialog/SelectedStep/SelectedStep.mjs +0 -0
  1508. /package/dist/admin/{components → legacy/components}/AssetGridList/AssetGridList.js +0 -0
  1509. /package/dist/admin/{components → legacy/components}/AssetGridList/AssetGridList.mjs +0 -0
  1510. /package/dist/admin/{components → legacy/components}/AssetGridList/Draggable.js +0 -0
  1511. /package/dist/admin/{components → legacy/components}/AssetGridList/Draggable.mjs +0 -0
  1512. /package/dist/admin/{components → legacy/components}/Breadcrumbs/Breadcrumbs.js +0 -0
  1513. /package/dist/admin/{components → legacy/components}/Breadcrumbs/Breadcrumbs.mjs +0 -0
  1514. /package/dist/admin/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.js +0 -0
  1515. /package/dist/admin/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -0
  1516. /package/dist/admin/{components → legacy/components}/BulkMoveDialog/BulkMoveDialog.js +0 -0
  1517. /package/dist/admin/{components → legacy/components}/BulkMoveDialog/BulkMoveDialog.mjs +0 -0
  1518. /package/dist/admin/{components → legacy/components}/ContextInfo/ContextInfo.js +0 -0
  1519. /package/dist/admin/{components → legacy/components}/ContextInfo/ContextInfo.mjs +0 -0
  1520. /package/dist/admin/{components → legacy/components}/CopyLinkButton/CopyLinkButton.js +0 -0
  1521. /package/dist/admin/{components → legacy/components}/CopyLinkButton/CopyLinkButton.mjs +0 -0
  1522. /package/dist/admin/{components → legacy/components}/EditAssetDialog/DialogHeader.js +0 -0
  1523. /package/dist/admin/{components → legacy/components}/EditAssetDialog/DialogHeader.mjs +0 -0
  1524. /package/dist/admin/{components → legacy/components}/EditAssetDialog/EditAssetContent.js +0 -0
  1525. /package/dist/admin/{components → legacy/components}/EditAssetDialog/EditAssetContent.mjs +0 -0
  1526. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.js +0 -0
  1527. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -0
  1528. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -0
  1529. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -0
  1530. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.js +0 -0
  1531. /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.mjs +0 -0
  1532. /package/dist/admin/{components → legacy/components}/EditAssetDialog/RemoveAssetDialog.js +0 -0
  1533. /package/dist/admin/{components → legacy/components}/EditAssetDialog/RemoveAssetDialog.mjs +0 -0
  1534. /package/dist/admin/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.js +0 -0
  1535. /package/dist/admin/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.mjs +0 -0
  1536. /package/dist/admin/{components → legacy/components}/EditFolderDialog/EditFolderDialog.js +0 -0
  1537. /package/dist/admin/{components → legacy/components}/EditFolderDialog/EditFolderDialog.mjs +0 -0
  1538. /package/dist/admin/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.js +0 -0
  1539. /package/dist/admin/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -0
  1540. /package/dist/admin/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.js +0 -0
  1541. /package/dist/admin/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.mjs +0 -0
  1542. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.js +0 -0
  1543. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.mjs +0 -0
  1544. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssets.js +0 -0
  1545. /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssets.mjs +0 -0
  1546. /package/dist/admin/{components → legacy/components}/FilterList/FilterList.js +0 -0
  1547. /package/dist/admin/{components → legacy/components}/FilterList/FilterList.mjs +0 -0
  1548. /package/dist/admin/{components → legacy/components}/FilterList/FilterTag.js +0 -0
  1549. /package/dist/admin/{components → legacy/components}/FilterList/FilterTag.mjs +0 -0
  1550. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterPopover.js +0 -0
  1551. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterPopover.mjs +0 -0
  1552. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterValueInput.js +0 -0
  1553. /package/dist/admin/{components → legacy/components}/FilterPopover/FilterValueInput.mjs +0 -0
  1554. /package/dist/admin/{components → legacy/components}/FilterPopover/utils/getFilterList.js +0 -0
  1555. /package/dist/admin/{components → legacy/components}/FilterPopover/utils/getFilterList.mjs +0 -0
  1556. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCard/FolderCard.js +0 -0
  1557. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCard/FolderCard.mjs +0 -0
  1558. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.js +0 -0
  1559. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.mjs +0 -0
  1560. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js +0 -0
  1561. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs +0 -0
  1562. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js +0 -0
  1563. /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs +0 -0
  1564. /package/dist/admin/{components → legacy/components}/FolderCard/contexts/FolderCard.js +0 -0
  1565. /package/dist/admin/{components → legacy/components}/FolderCard/contexts/FolderCard.mjs +0 -0
  1566. /package/dist/admin/{components → legacy/components}/FolderGridList/FolderGridList.js +0 -0
  1567. /package/dist/admin/{components → legacy/components}/FolderGridList/FolderGridList.mjs +0 -0
  1568. /package/dist/admin/{components → legacy/components}/MediaLibraryDialog/MediaLibraryDialog.js +0 -0
  1569. /package/dist/admin/{components → legacy/components}/MediaLibraryDialog/MediaLibraryDialog.mjs +0 -0
  1570. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -0
  1571. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -0
  1572. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssets.js +0 -0
  1573. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssets.mjs +0 -0
  1574. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.js +0 -0
  1575. /package/dist/admin/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.mjs +0 -0
  1576. /package/dist/admin/{components → legacy/components}/SelectTree/Option.js +0 -0
  1577. /package/dist/admin/{components → legacy/components}/SelectTree/Option.mjs +0 -0
  1578. /package/dist/admin/{components → legacy/components}/SelectTree/SelectTree.js +0 -0
  1579. /package/dist/admin/{components → legacy/components}/SelectTree/SelectTree.mjs +0 -0
  1580. /package/dist/admin/{components → legacy/components}/SelectTree/utils/flattenTree.js +0 -0
  1581. /package/dist/admin/{components → legacy/components}/SelectTree/utils/flattenTree.mjs +0 -0
  1582. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getOpenValues.js +0 -0
  1583. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getOpenValues.mjs +0 -0
  1584. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getValuesToClose.js +0 -0
  1585. /package/dist/admin/{components → legacy/components}/SelectTree/utils/getValuesToClose.mjs +0 -0
  1586. /package/dist/admin/{components → legacy/components}/TableList/CellContent.js +0 -0
  1587. /package/dist/admin/{components → legacy/components}/TableList/CellContent.mjs +0 -0
  1588. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -0
  1589. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -0
  1590. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.js +0 -0
  1591. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -0
  1592. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +0 -0
  1593. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -0
  1594. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/UploadAssetDialog.js +0 -0
  1595. /package/dist/admin/{components → legacy/components}/UploadAssetDialog/UploadAssetDialog.mjs +0 -0
  1596. /package/dist/admin/{components → legacy/components}/UploadProgress/UploadProgress.js +0 -0
  1597. /package/dist/admin/{components → legacy/components}/UploadProgress/UploadProgress.mjs +0 -0
  1598. /package/dist/admin/{hooks → legacy/hooks}/useAiAvailability.js +0 -0
  1599. /package/dist/admin/{hooks → legacy/hooks}/useAiAvailability.mjs +0 -0
  1600. /package/dist/admin/{hooks → legacy/hooks}/useCropImg.js +0 -0
  1601. /package/dist/admin/{hooks → legacy/hooks}/useCropImg.mjs +0 -0
  1602. /package/dist/admin/{hooks → legacy/hooks}/useModalQueryParams.js +0 -0
  1603. /package/dist/admin/{hooks → legacy/hooks}/useModalQueryParams.mjs +0 -0
  1604. /package/dist/admin/{hooks → legacy/hooks}/usePersistentState.js +0 -0
  1605. /package/dist/admin/{hooks → legacy/hooks}/usePersistentState.mjs +0 -0
  1606. /package/dist/admin/{hooks → legacy/hooks}/useSelectionState.js +0 -0
  1607. /package/dist/admin/{hooks → legacy/hooks}/useSelectionState.mjs +0 -0
  1608. /package/dist/admin/{hooks → legacy/hooks}/useSettings.js +0 -0
  1609. /package/dist/admin/{hooks → legacy/hooks}/useSettings.mjs +0 -0
  1610. /package/dist/admin/{hooks → legacy/hooks}/utils/renameKeys.js +0 -0
  1611. /package/dist/admin/{hooks → legacy/hooks}/utils/renameKeys.mjs +0 -0
  1612. /package/dist/admin/{pages → legacy/pages}/App/App.js +0 -0
  1613. /package/dist/admin/{pages → legacy/pages}/App/App.mjs +0 -0
  1614. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/actions.js +0 -0
  1615. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/actions.mjs +0 -0
  1616. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/init.js +0 -0
  1617. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/init.mjs +0 -0
  1618. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.js +0 -0
  1619. /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.mjs +0 -0
  1620. /package/dist/admin/{pages → legacy/pages}/App/components/BulkActions.js +0 -0
  1621. /package/dist/admin/{pages → legacy/pages}/App/components/BulkActions.mjs +0 -0
  1622. /package/dist/admin/{pages → legacy/pages}/App/components/BulkDeleteButton.js +0 -0
  1623. /package/dist/admin/{pages → legacy/pages}/App/components/BulkDeleteButton.mjs +0 -0
  1624. /package/dist/admin/{pages → legacy/pages}/App/components/BulkMoveButton.js +0 -0
  1625. /package/dist/admin/{pages → legacy/pages}/App/components/BulkMoveButton.mjs +0 -0
  1626. /package/dist/admin/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.js +0 -0
  1627. /package/dist/admin/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.mjs +0 -0
  1628. /package/dist/admin/{pages → legacy/pages}/App/components/Filters.js +0 -0
  1629. /package/dist/admin/{pages → legacy/pages}/App/components/Filters.mjs +0 -0
  1630. /package/dist/admin/{pages → legacy/pages}/App/components/Header.js +0 -0
  1631. /package/dist/admin/{pages → legacy/pages}/App/components/Header.mjs +0 -0
  1632. /package/dist/admin/{utils → legacy/utils}/appendSearchParamsToUrl.js +0 -0
  1633. /package/dist/admin/{utils → legacy/utils}/appendSearchParamsToUrl.mjs +0 -0
  1634. /package/dist/admin/{utils → legacy/utils}/containsAssetFilter.js +0 -0
  1635. /package/dist/admin/{utils → legacy/utils}/containsAssetFilter.mjs +0 -0
  1636. /package/dist/admin/{utils → legacy/utils}/createAssetUrl.js +0 -0
  1637. /package/dist/admin/{utils → legacy/utils}/createAssetUrl.mjs +0 -0
  1638. /package/dist/admin/{utils → legacy/utils}/displayedFilters.js +0 -0
  1639. /package/dist/admin/{utils → legacy/utils}/displayedFilters.mjs +0 -0
  1640. /package/dist/admin/{utils → legacy/utils}/findRecursiveFolderByValue.js +0 -0
  1641. /package/dist/admin/{utils → legacy/utils}/findRecursiveFolderByValue.mjs +0 -0
  1642. /package/dist/admin/{utils → legacy/utils}/formatBytes.js +0 -0
  1643. /package/dist/admin/{utils → legacy/utils}/formatBytes.mjs +0 -0
  1644. /package/dist/admin/{utils → legacy/utils}/formatDuration.js +0 -0
  1645. /package/dist/admin/{utils → legacy/utils}/formatDuration.mjs +0 -0
  1646. /package/dist/admin/{utils → legacy/utils}/getAPIInnerErrors.js +0 -0
  1647. /package/dist/admin/{utils → legacy/utils}/getAPIInnerErrors.mjs +0 -0
  1648. /package/dist/admin/{utils → legacy/utils}/getAllowedFiles.js +0 -0
  1649. /package/dist/admin/{utils → legacy/utils}/getAllowedFiles.mjs +0 -0
  1650. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataCM.js +0 -0
  1651. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataCM.mjs +0 -0
  1652. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataML.js +0 -0
  1653. /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataML.mjs +0 -0
  1654. /package/dist/admin/{utils → legacy/utils}/getFileExtension.js +0 -0
  1655. /package/dist/admin/{utils → legacy/utils}/getFileExtension.mjs +0 -0
  1656. /package/dist/admin/{utils → legacy/utils}/getFolderParents.js +0 -0
  1657. /package/dist/admin/{utils → legacy/utils}/getFolderParents.mjs +0 -0
  1658. /package/dist/admin/{utils → legacy/utils}/getFolderURL.js +0 -0
  1659. /package/dist/admin/{utils → legacy/utils}/getFolderURL.mjs +0 -0
  1660. /package/dist/admin/{utils → legacy/utils}/moveElement.js +0 -0
  1661. /package/dist/admin/{utils → legacy/utils}/moveElement.mjs +0 -0
  1662. /package/dist/admin/{utils → legacy/utils}/normalizeAPIError.js +0 -0
  1663. /package/dist/admin/{utils → legacy/utils}/normalizeAPIError.mjs +0 -0
  1664. /package/dist/admin/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.js +0 -0
  1665. /package/dist/admin/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.mjs +0 -0
  1666. /package/dist/admin/{utils → legacy/utils}/prefixPluginTranslations.js +0 -0
  1667. /package/dist/admin/{utils → legacy/utils}/prefixPluginTranslations.mjs +0 -0
  1668. /package/dist/admin/{utils → legacy/utils}/resolveFileMime.js +0 -0
  1669. /package/dist/admin/{utils → legacy/utils}/resolveFileMime.mjs +0 -0
  1670. /package/dist/admin/{utils → legacy/utils}/toSingularTypes.js +0 -0
  1671. /package/dist/admin/{utils → legacy/utils}/toSingularTypes.mjs +0 -0
  1672. /package/dist/admin/{utils → legacy/utils}/urlYupSchema.js +0 -0
  1673. /package/dist/admin/{utils → legacy/utils}/urlYupSchema.mjs +0 -0
  1674. /package/dist/admin/{future/pages → pages}/Assets/components/ActionsMenuContent.js +0 -0
  1675. /package/dist/admin/{future/pages → pages}/Assets/components/ActionsMenuContent.mjs +0 -0
  1676. /package/dist/admin/{future/pages → pages}/Assets/components/AssetActionsMenu.js +0 -0
  1677. /package/dist/admin/{future/pages → pages}/Assets/components/AssetActionsMenu.mjs +0 -0
  1678. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/AssetCropEditor.js +0 -0
  1679. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/AssetCropEditor.mjs +0 -0
  1680. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.js +0 -0
  1681. /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.mjs +0 -0
  1682. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsSearchInput.js +0 -0
  1683. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsSearchInput.mjs +0 -0
  1684. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsTable.js +0 -0
  1685. /package/dist/admin/{future/pages → pages}/Assets/components/AssetsTable.mjs +0 -0
  1686. /package/dist/admin/{future/pages → pages}/Assets/components/BulkMoveDialog.js +0 -0
  1687. /package/dist/admin/{future/pages → pages}/Assets/components/BulkMoveDialog.mjs +0 -0
  1688. /package/dist/admin/{future/pages → pages}/Assets/components/BusyOverlay.js +0 -0
  1689. /package/dist/admin/{future/pages → pages}/Assets/components/BusyOverlay.mjs +0 -0
  1690. /package/dist/admin/{future/pages → pages}/Assets/components/DateRangeCalendar.js +0 -0
  1691. /package/dist/admin/{future/pages → pages}/Assets/components/DateRangeCalendar.mjs +0 -0
  1692. /package/dist/admin/{future/pages → pages}/Assets/components/DeleteItemsDialog.js +0 -0
  1693. /package/dist/admin/{future/pages → pages}/Assets/components/DeleteItemsDialog.mjs +0 -0
  1694. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/buildDragSet.js +0 -0
  1695. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/buildDragSet.mjs +0 -0
  1696. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/computeValidDropTargets.js +0 -0
  1697. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/computeValidDropTargets.mjs +0 -0
  1698. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/dndIds.js +0 -0
  1699. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/dndIds.mjs +0 -0
  1700. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.js +0 -0
  1701. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.mjs +0 -0
  1702. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.js +0 -0
  1703. /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.mjs +0 -0
  1704. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.js +0 -0
  1705. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.mjs +0 -0
  1706. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.js +0 -0
  1707. /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.mjs +0 -0
  1708. /package/dist/admin/{future/pages → pages}/Assets/components/EmptyState.js +0 -0
  1709. /package/dist/admin/{future/pages → pages}/Assets/components/EmptyState.mjs +0 -0
  1710. /package/dist/admin/{future/pages → pages}/Assets/components/FilterBadges.js +0 -0
  1711. /package/dist/admin/{future/pages → pages}/Assets/components/FilterBadges.mjs +0 -0
  1712. /package/dist/admin/{future/pages → pages}/Assets/components/FilterMenu.js +0 -0
  1713. /package/dist/admin/{future/pages → pages}/Assets/components/FilterMenu.mjs +0 -0
  1714. /package/dist/admin/{future/pages → pages}/Assets/components/FolderActionsMenu.js +0 -0
  1715. /package/dist/admin/{future/pages → pages}/Assets/components/FolderActionsMenu.mjs +0 -0
  1716. /package/dist/admin/{future/pages → pages}/Assets/components/FolderFormDialog.js +0 -0
  1717. /package/dist/admin/{future/pages → pages}/Assets/components/FolderFormDialog.mjs +0 -0
  1718. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/FolderTree.js +0 -0
  1719. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/FolderTree.mjs +0 -0
  1720. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.js +0 -0
  1721. /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.mjs +0 -0
  1722. /package/dist/admin/{future/pages → pages}/Assets/components/ImportFromUrlDialog.js +0 -0
  1723. /package/dist/admin/{future/pages → pages}/Assets/components/ImportFromUrlDialog.mjs +0 -0
  1724. /package/dist/admin/{future/pages → pages}/Assets/components/MainAreaContextMenu.js +0 -0
  1725. /package/dist/admin/{future/pages → pages}/Assets/components/MainAreaContextMenu.mjs +0 -0
  1726. /package/dist/admin/{future/pages → pages}/Assets/components/SortMenu.js +0 -0
  1727. /package/dist/admin/{future/pages → pages}/Assets/components/SortMenu.mjs +0 -0
  1728. /package/dist/admin/{future/pages → pages}/Assets/constants.js +0 -0
  1729. /package/dist/admin/{future/pages → pages}/Assets/constants.mjs +0 -0
  1730. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSearch.js +0 -0
  1731. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSearch.mjs +0 -0
  1732. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSelection.js +0 -0
  1733. /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSelection.mjs +0 -0
  1734. /package/dist/admin/{future/pages → pages}/Assets/hooks/useBusyAssets.js +0 -0
  1735. /package/dist/admin/{future/pages → pages}/Assets/hooks/useBusyAssets.mjs +0 -0
  1736. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderInfo.js +0 -0
  1737. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderInfo.mjs +0 -0
  1738. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderNavigation.js +0 -0
  1739. /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderNavigation.mjs +0 -0
  1740. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteAssets.js +0 -0
  1741. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteAssets.mjs +0 -0
  1742. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.js +0 -0
  1743. /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.mjs +0 -0
  1744. /package/dist/admin/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.js +0 -0
  1745. /package/dist/admin/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.mjs +0 -0
  1746. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListFilters.js +0 -0
  1747. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListFilters.mjs +0 -0
  1748. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListScrollRestoration.js +0 -0
  1749. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListScrollRestoration.mjs +0 -0
  1750. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListSort.js +0 -0
  1751. /package/dist/admin/{future/pages → pages}/Assets/hooks/useListSort.mjs +0 -0
  1752. /package/dist/admin/{future/pages → pages}/Assets/utils/buildAssetFilters.js +0 -0
  1753. /package/dist/admin/{future/pages → pages}/Assets/utils/buildAssetFilters.mjs +0 -0
  1754. /package/dist/admin/{future/pages → pages}/Assets/utils/listQueryKey.js +0 -0
  1755. /package/dist/admin/{future/pages → pages}/Assets/utils/listQueryKey.mjs +0 -0
  1756. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeMixedList.js +0 -0
  1757. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeMixedList.mjs +0 -0
  1758. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeUploadedAssets.js +0 -0
  1759. /package/dist/admin/{future/pages → pages}/Assets/utils/mergeUploadedAssets.mjs +0 -0
  1760. /package/dist/admin/{future/pages → pages}/Assets/utils/renderedKeys.js +0 -0
  1761. /package/dist/admin/{future/pages → pages}/Assets/utils/renderedKeys.mjs +0 -0
  1762. /package/dist/admin/{future/pages → pages}/Assets/utils/selection.js +0 -0
  1763. /package/dist/admin/{future/pages → pages}/Assets/utils/selection.mjs +0 -0
  1764. /package/dist/admin/{future/services → services}/assets.js +0 -0
  1765. /package/dist/admin/{future/services → services}/assets.mjs +0 -0
  1766. /package/dist/admin/{future/services → services}/folders.js +0 -0
  1767. /package/dist/admin/{future/services → services}/folders.mjs +0 -0
  1768. /package/dist/admin/{future/services → services}/settings.js +0 -0
  1769. /package/dist/admin/{future/services → services}/settings.mjs +0 -0
  1770. /package/dist/admin/{future/services → services}/uploadFileViaXHR.js +0 -0
  1771. /package/dist/admin/{future/services → services}/uploadFileViaXHR.mjs +0 -0
  1772. /package/dist/admin/src/{pages/App/MediaLibrary.d.ts → App.d.ts} +0 -0
  1773. /package/dist/admin/src/{future/components → components}/Drawer.d.ts +0 -0
  1774. /package/dist/admin/src/{future/components → components}/TruncatedText.d.ts +0 -0
  1775. /package/dist/admin/src/{future/components → components}/UploadProgressDialog.d.ts +0 -0
  1776. /package/dist/admin/src/{future/hooks → hooks}/useAIMetadataEnabled.d.ts +0 -0
  1777. /package/dist/admin/src/{future/hooks → hooks}/useApiErrorMessage.d.ts +0 -0
  1778. /package/dist/admin/src/{components → legacy/components}/AssetCard/AssetCardBase.d.ts +0 -0
  1779. /package/dist/admin/src/{components → legacy/components}/AssetCard/AudioAssetCard.d.ts +0 -0
  1780. /package/dist/admin/src/{components → legacy/components}/AssetCard/AudioPreview.d.ts +0 -0
  1781. /package/dist/admin/src/{components → legacy/components}/AssetCard/DocAssetCard.d.ts +0 -0
  1782. /package/dist/admin/src/{components → legacy/components}/AssetCard/ImageAssetCard.d.ts +0 -0
  1783. /package/dist/admin/src/{components → legacy/components}/AssetCard/VideoAssetCard.d.ts +0 -0
  1784. /package/dist/admin/src/{components → legacy/components}/AssetCard/VideoPreview.d.ts +0 -0
  1785. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/Filters.d.ts +0 -0
  1786. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.d.ts +0 -0
  1787. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.d.ts +0 -0
  1788. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.d.ts +0 -0
  1789. /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.d.ts +0 -0
  1790. /package/dist/admin/src/{components → legacy/components}/AssetDialog/DialogFooter.d.ts +0 -0
  1791. /package/dist/admin/src/{components → legacy/components}/AssetGridList/Draggable.d.ts +0 -0
  1792. /package/dist/admin/src/{components → legacy/components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
  1793. /package/dist/admin/src/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.d.ts +0 -0
  1794. /package/dist/admin/src/{components → legacy/components}/ContextInfo/ContextInfo.d.ts +0 -0
  1795. /package/dist/admin/src/{components → legacy/components}/CopyLinkButton/CopyLinkButton.d.ts +0 -0
  1796. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/DialogHeader.d.ts +0 -0
  1797. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.d.ts +0 -0
  1798. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.d.ts +0 -0
  1799. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +0 -0
  1800. /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.d.ts +0 -0
  1801. /package/dist/admin/src/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.d.ts +0 -0
  1802. /package/dist/admin/src/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.d.ts +0 -0
  1803. /package/dist/admin/src/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.d.ts +0 -0
  1804. /package/dist/admin/src/{components → legacy/components}/EmptyAssets/EmptyAssets.d.ts +0 -0
  1805. /package/dist/admin/src/{components → legacy/components}/FilterList/FilterList.d.ts +0 -0
  1806. /package/dist/admin/src/{components → legacy/components}/FilterList/FilterTag.d.ts +0 -0
  1807. /package/dist/admin/src/{components → legacy/components}/FilterPopover/FilterPopover.d.ts +0 -0
  1808. /package/dist/admin/src/{components → legacy/components}/FilterPopover/FilterValueInput.d.ts +0 -0
  1809. /package/dist/admin/src/{components → legacy/components}/FilterPopover/utils/getFilterList.d.ts +0 -0
  1810. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCard/FolderCard.d.ts +0 -0
  1811. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.d.ts +0 -0
  1812. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.d.ts +0 -0
  1813. /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.d.ts +0 -0
  1814. /package/dist/admin/src/{components → legacy/components}/FolderCard/contexts/FolderCard.d.ts +0 -0
  1815. /package/dist/admin/src/{components → legacy/components}/FolderGridList/FolderGridList.d.ts +0 -0
  1816. /package/dist/admin/src/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.d.ts +0 -0
  1817. /package/dist/admin/src/{components → legacy/components}/SelectTree/SelectTree.d.ts +0 -0
  1818. /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/flattenTree.d.ts +0 -0
  1819. /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/getOpenValues.d.ts +0 -0
  1820. /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/getValuesToClose.d.ts +0 -0
  1821. /package/dist/admin/src/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromComputerForm.d.ts +0 -0
  1822. /package/dist/admin/src/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.d.ts +0 -0
  1823. /package/dist/admin/src/{hooks → legacy/hooks}/useAiAvailability.d.ts +0 -0
  1824. /package/dist/admin/src/{hooks → legacy/hooks}/useCropImg.d.ts +0 -0
  1825. /package/dist/admin/src/{hooks → legacy/hooks}/usePersistentState.d.ts +0 -0
  1826. /package/dist/admin/src/{hooks → legacy/hooks}/useSelectionState.d.ts +0 -0
  1827. /package/dist/admin/src/{hooks → legacy/hooks}/useSettings.d.ts +0 -0
  1828. /package/dist/admin/src/{hooks → legacy/hooks}/utils/renameKeys.d.ts +0 -0
  1829. /package/dist/admin/src/{pages → legacy/pages}/App/App.d.ts +0 -0
  1830. /package/dist/admin/src/{pages → legacy/pages}/App/ConfigureTheView/state/actionTypes.d.ts +0 -0
  1831. /package/dist/admin/src/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.d.ts +0 -0
  1832. /package/dist/admin/src/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.d.ts +0 -0
  1833. /package/dist/admin/src/{pages → legacy/pages}/App/components/Filters.d.ts +0 -0
  1834. /package/dist/admin/src/{utils → legacy/utils}/appendSearchParamsToUrl.d.ts +0 -0
  1835. /package/dist/admin/src/{utils → legacy/utils}/displayedFilters.d.ts +0 -0
  1836. /package/dist/admin/src/{utils → legacy/utils}/formatBytes.d.ts +0 -0
  1837. /package/dist/admin/src/{utils → legacy/utils}/formatDuration.d.ts +0 -0
  1838. /package/dist/admin/src/{utils → legacy/utils}/getAPIInnerErrors.d.ts +0 -0
  1839. /package/dist/admin/src/{utils → legacy/utils}/getFileExtension.d.ts +0 -0
  1840. /package/dist/admin/src/{utils → legacy/utils}/getTrad.d.ts +0 -0
  1841. /package/dist/admin/src/{utils → legacy/utils}/moveElement.d.ts +0 -0
  1842. /package/dist/admin/src/{utils → legacy/utils}/normalizeAPIError.d.ts +0 -0
  1843. /package/dist/admin/src/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.d.ts +0 -0
  1844. /package/dist/admin/src/{utils → legacy/utils}/prefixPluginTranslations.d.ts +0 -0
  1845. /package/dist/admin/src/{utils → legacy/utils}/resolveFileMime.d.ts +0 -0
  1846. /package/dist/admin/src/{utils → legacy/utils}/toSingularTypes.d.ts +0 -0
  1847. /package/dist/admin/src/{utils → legacy/utils}/urlYupSchema.d.ts +0 -0
  1848. /package/dist/admin/src/{utils → legacy/utils}/urlsToAssets.d.ts +0 -0
  1849. /package/dist/admin/src/{future/pages → pages}/Assets/AssetsPage.d.ts +0 -0
  1850. /package/dist/admin/src/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.d.ts +0 -0
  1851. /package/dist/admin/src/{future/pages → pages}/Assets/components/AssetsSearchInput.d.ts +0 -0
  1852. /package/dist/admin/src/{future/pages → pages}/Assets/components/BulkMoveDialog.d.ts +0 -0
  1853. /package/dist/admin/src/{future/pages → pages}/Assets/components/BusyOverlay.d.ts +0 -0
  1854. /package/dist/admin/src/{future/pages → pages}/Assets/components/DateRangeCalendar.d.ts +0 -0
  1855. /package/dist/admin/src/{future/pages → pages}/Assets/components/DeleteItemsDialog.d.ts +0 -0
  1856. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/AssetsDndProvider.d.ts +0 -0
  1857. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/DragOverlayChip.d.ts +0 -0
  1858. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/buildDragSet.d.ts +0 -0
  1859. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/dndIds.d.ts +0 -0
  1860. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.d.ts +0 -0
  1861. /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.d.ts +0 -0
  1862. /package/dist/admin/src/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.d.ts +0 -0
  1863. /package/dist/admin/src/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.d.ts +0 -0
  1864. /package/dist/admin/src/{future/pages → pages}/Assets/components/EmptyState.d.ts +0 -0
  1865. /package/dist/admin/src/{future/pages → pages}/Assets/components/FilterBadges.d.ts +0 -0
  1866. /package/dist/admin/src/{future/pages → pages}/Assets/components/FilterMenu.d.ts +0 -0
  1867. /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderFormDialog.d.ts +0 -0
  1868. /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderTree/FolderTree.d.ts +0 -0
  1869. /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.d.ts +0 -0
  1870. /package/dist/admin/src/{future/pages → pages}/Assets/components/ImportFromUrlDialog.d.ts +0 -0
  1871. /package/dist/admin/src/{future/pages → pages}/Assets/components/MainAreaContextMenu.d.ts +0 -0
  1872. /package/dist/admin/src/{future/pages → pages}/Assets/components/SortMenu.d.ts +0 -0
  1873. /package/dist/admin/src/{future/pages → pages}/Assets/constants.d.ts +0 -0
  1874. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useAssetSearch.d.ts +0 -0
  1875. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useAssetSelection.d.ts +0 -0
  1876. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useBusyAssets.d.ts +0 -0
  1877. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useFolderInfo.d.ts +0 -0
  1878. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.d.ts +0 -0
  1879. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.d.ts +0 -0
  1880. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListFilters.d.ts +0 -0
  1881. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListScrollRestoration.d.ts +0 -0
  1882. /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListSort.d.ts +0 -0
  1883. /package/dist/admin/src/{future/pages → pages}/Assets/utils/buildAssetFilters.d.ts +0 -0
  1884. /package/dist/admin/src/{future/pages → pages}/Assets/utils/listQueryKey.d.ts +0 -0
  1885. /package/dist/admin/src/{future/pages → pages}/Assets/utils/selection.d.ts +0 -0
  1886. /package/dist/admin/src/{future/store → store}/hooks.d.ts +0 -0
  1887. /package/dist/admin/src/{future/types → types}/dnd.d.ts +0 -0
  1888. /package/dist/admin/src/{future/utils → utils}/buildBulkMovePayload.d.ts +0 -0
  1889. /package/dist/admin/src/{future/utils → utils}/buildDragSetFromSelection.d.ts +0 -0
  1890. /package/dist/admin/src/{future/utils → utils}/createRafBatcher.d.ts +0 -0
  1891. /package/dist/admin/src/{future/utils → utils}/files.d.ts +0 -0
  1892. /package/dist/admin/src/{future/utils → utils}/formatMoveSuccessMessage.d.ts +0 -0
  1893. /package/dist/admin/src/{future/utils → utils}/getApiErrorMessage.d.ts +0 -0
  1894. /package/dist/admin/src/{future/utils → utils}/getAssetIcon.d.ts +0 -0
  1895. /package/dist/admin/src/{future/utils → utils}/getRelationId.d.ts +0 -0
  1896. /package/dist/admin/src/{future/utils → utils}/isEventFromWithin.d.ts +0 -0
  1897. /package/dist/admin/src/{future/utils → utils}/itemSource.d.ts +0 -0
  1898. /package/dist/admin/src/{future/utils → utils}/searchQueryParam.d.ts +0 -0
  1899. /package/dist/admin/src/{future/utils → utils}/translations.d.ts +0 -0
  1900. /package/dist/admin/{future/store → store}/hooks.js +0 -0
  1901. /package/dist/admin/{future/store → store}/hooks.mjs +0 -0
  1902. /package/dist/admin/{future/utils → utils}/buildBulkMovePayload.js +0 -0
  1903. /package/dist/admin/{future/utils → utils}/buildBulkMovePayload.mjs +0 -0
  1904. /package/dist/admin/{future/utils → utils}/buildDragSetFromSelection.js +0 -0
  1905. /package/dist/admin/{future/utils → utils}/buildDragSetFromSelection.mjs +0 -0
  1906. /package/dist/admin/{future/utils → utils}/canDropItemOnFolder.js +0 -0
  1907. /package/dist/admin/{future/utils → utils}/canDropItemOnFolder.mjs +0 -0
  1908. /package/dist/admin/{future/utils → utils}/createRafBatcher.js +0 -0
  1909. /package/dist/admin/{future/utils → utils}/createRafBatcher.mjs +0 -0
  1910. /package/dist/admin/{future/utils → utils}/files.js +0 -0
  1911. /package/dist/admin/{future/utils → utils}/files.mjs +0 -0
  1912. /package/dist/admin/{future/utils → utils}/flattenFolderStructure.js +0 -0
  1913. /package/dist/admin/{future/utils → utils}/flattenFolderStructure.mjs +0 -0
  1914. /package/dist/admin/{future/utils → utils}/formatMoveSuccessMessage.js +0 -0
  1915. /package/dist/admin/{future/utils → utils}/formatMoveSuccessMessage.mjs +0 -0
  1916. /package/dist/admin/{future/utils → utils}/getApiErrorMessage.js +0 -0
  1917. /package/dist/admin/{future/utils → utils}/getApiErrorMessage.mjs +0 -0
  1918. /package/dist/admin/{future/utils → utils}/getFolderLabel.js +0 -0
  1919. /package/dist/admin/{future/utils → utils}/getFolderLabel.mjs +0 -0
  1920. /package/dist/admin/{future/utils → utils}/getRelationId.js +0 -0
  1921. /package/dist/admin/{future/utils → utils}/getRelationId.mjs +0 -0
  1922. /package/dist/admin/{future/utils → utils}/isEventFromWithin.js +0 -0
  1923. /package/dist/admin/{future/utils → utils}/isEventFromWithin.mjs +0 -0
  1924. /package/dist/admin/{future/utils → utils}/itemLocations.js +0 -0
  1925. /package/dist/admin/{future/utils → utils}/itemLocations.mjs +0 -0
  1926. /package/dist/admin/{future/utils → utils}/itemSource.js +0 -0
  1927. /package/dist/admin/{future/utils → utils}/itemSource.mjs +0 -0
  1928. /package/dist/admin/{future/utils → utils}/searchQueryParam.js +0 -0
  1929. /package/dist/admin/{future/utils → utils}/searchQueryParam.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export const routes = {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/settings',\n handler: 'admin-settings.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.settings.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/settings',\n handler: 'admin-settings.updateSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.settings.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/',\n handler: 'admin-upload.upload',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/actions/upload-from-urls',\n handler: 'admin-upload.uploadFromUrls',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'admin-file.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/files',\n handler: 'admin-upload.uploadFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'admin-file.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/files/:id',\n handler: 'admin-upload.updateFileInfo',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/files/:id/replace',\n handler: 'admin-upload.replaceFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'admin-file.destroy',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders/:id',\n handler: 'admin-folder.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders',\n handler: 'admin-folder.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/folders',\n handler: 'admin-folder.create',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.create'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/folders/:id',\n handler: 'admin-folder.update',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folder-structure',\n handler: 'admin-folder.getStructure',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-delete',\n handler: 'admin-folder-file.deleteMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-move',\n handler: 'admin-folder-file.moveMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-update',\n handler: 'admin-upload.bulkUpdateFileInfo',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/generate-ai-metadata',\n handler: 'admin-file.generateAIMetadata',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/ai-metadata-jobs',\n handler: 'admin-file.createAIMetadataJob',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/latest',\n handler: 'admin-file.getLatestAIMetadataJob',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/pending-count',\n handler: 'admin-file.getAIMetadataPendingCount',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n ],\n};\n"],"names":["routes","type","method","path","handler","config","policies","name","actions"],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export const routes = {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/settings',\n handler: 'admin-settings.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n // Not `settings.read`: the Media Library needs this payload to\n // work, and the default Editor and Author roles don't hold that\n // action. Writing still requires it (see the PUT below).\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/settings',\n handler: 'admin-settings.updateSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.settings.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/',\n handler: 'admin-upload.upload',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/actions/upload-from-urls',\n handler: 'admin-upload.uploadFromUrls',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'admin-file.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/files',\n handler: 'admin-upload.uploadFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'admin-file.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/files/:id',\n handler: 'admin-upload.updateFileInfo',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/files/:id/replace',\n handler: 'admin-upload.replaceFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'admin-file.destroy',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders/:id',\n handler: 'admin-folder.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders',\n handler: 'admin-folder.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/folders',\n handler: 'admin-folder.create',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.create'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/folders/:id',\n handler: 'admin-folder.update',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folder-structure',\n handler: 'admin-folder.getStructure',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-delete',\n handler: 'admin-folder-file.deleteMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-move',\n handler: 'admin-folder-file.moveMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-update',\n handler: 'admin-upload.bulkUpdateFileInfo',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/generate-ai-metadata',\n handler: 'admin-file.generateAIMetadata',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/ai-metadata-jobs',\n handler: 'admin-file.createAIMetadataJob',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/latest',\n handler: 'admin-file.getLatestAIMetadataJob',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/pending-count',\n handler: 'admin-file.getAIMetadataPendingCount',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n ],\n};\n"],"names":["routes","type","method","path","handler","config","policies","name","actions"],"mappings":"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"}
@@ -11,8 +11,11 @@ const routes = {
11
11
  {
12
12
  name: 'admin::hasPermissions',
13
13
  config: {
14
+ // Not `settings.read`: the Media Library needs this payload to
15
+ // work, and the default Editor and Author roles don't hold that
16
+ // action. Writing still requires it (see the PUT below).
14
17
  actions: [
15
- 'plugin::upload.settings.read'
18
+ 'plugin::upload.read'
16
19
  ]
17
20
  }
18
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export const routes = {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/settings',\n handler: 'admin-settings.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.settings.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/settings',\n handler: 'admin-settings.updateSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.settings.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/',\n handler: 'admin-upload.upload',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/actions/upload-from-urls',\n handler: 'admin-upload.uploadFromUrls',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'admin-file.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/files',\n handler: 'admin-upload.uploadFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'admin-file.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/files/:id',\n handler: 'admin-upload.updateFileInfo',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/files/:id/replace',\n handler: 'admin-upload.replaceFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'admin-file.destroy',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders/:id',\n handler: 'admin-folder.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders',\n handler: 'admin-folder.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/folders',\n handler: 'admin-folder.create',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.create'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/folders/:id',\n handler: 'admin-folder.update',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folder-structure',\n handler: 'admin-folder.getStructure',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-delete',\n handler: 'admin-folder-file.deleteMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-move',\n handler: 'admin-folder-file.moveMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-update',\n handler: 'admin-upload.bulkUpdateFileInfo',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/generate-ai-metadata',\n handler: 'admin-file.generateAIMetadata',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/ai-metadata-jobs',\n handler: 'admin-file.createAIMetadataJob',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/latest',\n handler: 'admin-file.getLatestAIMetadataJob',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/pending-count',\n handler: 'admin-file.getAIMetadataPendingCount',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n ],\n};\n"],"names":["routes","type","method","path","handler","config","policies","name","actions"],"mappings":"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"}
1
+ {"version":3,"file":"admin.mjs","sources":["../../../server/src/routes/admin.ts"],"sourcesContent":["export const routes = {\n type: 'admin',\n routes: [\n {\n method: 'GET',\n path: '/settings',\n handler: 'admin-settings.getSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n // Not `settings.read`: the Media Library needs this payload to\n // work, and the default Editor and Author roles don't hold that\n // action. Writing still requires it (see the PUT below).\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/settings',\n handler: 'admin-settings.updateSettings',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.settings.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/',\n handler: 'admin-upload.upload',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/actions/upload-from-urls',\n handler: 'admin-upload.uploadFromUrls',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files',\n handler: 'admin-file.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/files',\n handler: 'admin-upload.uploadFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/files/:id',\n handler: 'admin-file.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/files/:id',\n handler: 'admin-upload.updateFileInfo',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'POST',\n path: '/files/:id/replace',\n handler: 'admin-upload.replaceFile',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'DELETE',\n path: '/files/:id',\n handler: 'admin-file.destroy',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders/:id',\n handler: 'admin-folder.findOne',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folders',\n handler: 'admin-folder.find',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/folders',\n handler: 'admin-folder.create',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.create'],\n },\n },\n ],\n },\n },\n {\n method: 'PUT',\n path: '/folders/:id',\n handler: 'admin-folder.update',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/folder-structure',\n handler: 'admin-folder.getStructure',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-delete',\n handler: 'admin-folder-file.deleteMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-move',\n handler: 'admin-folder-file.moveMany',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/bulk-update',\n handler: 'admin-upload.bulkUpdateFileInfo',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/actions/generate-ai-metadata',\n handler: 'admin-file.generateAIMetadata',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'POST',\n path: '/ai-metadata-jobs',\n handler: 'admin-file.createAIMetadataJob',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.assets.update'],\n },\n },\n ],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/latest',\n handler: 'admin-file.getLatestAIMetadataJob',\n config: {\n policies: ['admin::isAuthenticatedAdmin'],\n },\n },\n {\n method: 'GET',\n path: '/ai-metadata-jobs/pending-count',\n handler: 'admin-file.getAIMetadataPendingCount',\n config: {\n policies: [\n 'admin::isAuthenticatedAdmin',\n {\n name: 'admin::hasPermissions',\n config: {\n actions: ['plugin::upload.read'],\n },\n },\n ],\n },\n },\n ],\n};\n"],"names":["routes","type","method","path","handler","config","policies","name","actions"],"mappings":"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"}
@@ -41,7 +41,7 @@ const createAIMetadataService = ({ strapi })=>{
41
41
  const aiServerUrl = process.env.STRAPI_AI_URL || 'https://strapi-ai.apps.strapi.io';
42
42
  return {
43
43
  async isEnabled () {
44
- if (strapi.ai.admin.isEnabled() === false) {
44
+ if (strapi.ai.admin.isStrapiManagedAiEnabled() === false) {
45
45
  return false;
46
46
  }
47
47
  const settings = await strapi.plugin('upload').service('upload').getSettings();
@@ -1 +1 @@
1
- {"version":3,"file":"ai-metadata.js","sources":["../../../server/src/services/ai-metadata.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\nimport { InputFile, File } from '../types';\nimport { Settings } from '../controllers/validation/admin/settings';\nimport { getService } from '../utils';\nimport { buildFormDataFromFiles } from '../utils/images';\nimport { AI_METADATA_CHUNK_SIZE, AI_METADATA_SUPPORTED_IMAGE_TYPES } from '../constants';\n\nimport { isAIMetadataSupportedMime } from '../../../shared/constants';\n\nimport type { GenerateAIMetadata } from '../../../shared/contracts/files';\n\nexport type AIMetadataFileResult = GenerateAIMetadata.FileResult;\n\n/**\n * Supported image types for AI metadata generation. Lives in `shared/` so the\n * admin panel gates the bulk action on exactly what the provider accepts.\n */\nconst SUPPORTED_IMAGE_TYPES = AI_METADATA_SUPPORTED_IMAGE_TYPES;\n\nconst isSupportedImage = (file: File): boolean => isAIMetadataSupportedMime(file.mime);\n\nconst chunk = <T>(items: T[], size: number): T[][] => {\n const chunks: T[][] = [];\n\n for (let i = 0; i < items.length; i += size) {\n chunks.push(items.slice(i, i + size));\n }\n\n return chunks;\n};\n\nconst createAIMetadataService = ({ strapi }: { strapi: Core.Strapi }) => {\n const aiServerUrl = process.env.STRAPI_AI_URL || 'https://strapi-ai.apps.strapi.io';\n\n return {\n async isEnabled() {\n if (strapi.ai.admin.isEnabled() === false) {\n return false;\n }\n const settings: Settings = await strapi.plugin('upload').service('upload').getSettings();\n return settings.aiMetadata ?? true;\n },\n\n async countImagesWithoutMetadata() {\n const imagesWithoutMetadataCountPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n const totalImagesPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n },\n });\n\n const [imagesWithoutMetadataCount, totalImages] = await Promise.all([\n imagesWithoutMetadataCountPromise,\n totalImagesPromise,\n ]);\n\n return { imagesWithoutMetadataCount, totalImages };\n },\n\n /**\n * Update files with AI-generated metadata\n * Shared logic used by both upload flow and retroactive processing\n */\n async updateFilesWithAIMetadata(\n files: File[],\n metadataResults: Array<{ altText: string; caption: string } | null>,\n user: { id: string | number }\n ) {\n const uploadService = strapi.plugin('upload').service('upload');\n\n await Promise.all(\n files.map(async (file, index) => {\n const aiMetadata = metadataResults[index];\n if (aiMetadata) {\n // Only update fields that are missing (null or empty string)\n const updateData: { alternativeText?: string; caption?: string } = {};\n\n if (!file.alternativeText || file.alternativeText === '') {\n updateData.alternativeText = aiMetadata.altText;\n }\n\n if (!file.caption || file.caption === '') {\n updateData.caption = aiMetadata.caption;\n }\n\n // Only update if there are fields to update\n if (Object.keys(updateData).length > 0) {\n await uploadService.updateFileInfo(file.id, updateData, { user });\n\n // Update in-memory file object (needed for upload flow response)\n if (updateData.alternativeText !== undefined) {\n file.alternativeText = updateData.alternativeText;\n }\n if (updateData.caption !== undefined) {\n file.caption = updateData.caption;\n }\n }\n }\n })\n );\n },\n\n /**\n * Process existing files with job tracking for progress updates\n */\n async processExistingFiles(jobId: number, user: { id: string | number }): Promise<void> {\n const jobService = getService('aiMetadataJobs');\n\n try {\n // Mark as processing\n await jobService.updateJob(jobId, { status: 'processing' });\n\n // Query all images without metadata\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n if (files.length === 0) {\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n return;\n }\n\n // Process all files at once\n const metadataResults = await this.processFiles(files);\n await this.updateFilesWithAIMetadata(files, metadataResults, user);\n\n // Mark as completed\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n } catch (error) {\n strapi.log.error('AI metadata job failed', {\n jobId,\n error: error instanceof Error ? error.message : String(error),\n });\n\n await jobService.updateJob(jobId, {\n status: 'failed',\n completedAt: new Date(),\n });\n }\n },\n\n /**\n * Generate AI metadata for an explicit selection of files, synchronously.\n *\n * Unlike `processExistingFiles`, this does not create a job and does not\n * filter on missing metadata — the selection is what the user asked for.\n * Existing alt text / captions are still preserved by\n * `updateFilesWithAIMetadata`, so a file that already has both is reported\n * as `success` without being modified.\n *\n * Images are processed in sequential chunks so one failing chunk only\n * affects its own files; every other chunk still runs.\n *\n * @experimental\n */\n async generateForFiles(\n fileIds: Array<number | string>,\n user: { id: string | number }\n ): Promise<AIMetadataFileResult[]> {\n // `yup.strapiID()` accepts both numbers and numeric strings without\n // coercing, so normalise here — otherwise a request sending `[\"1\"]`\n // would never match the numeric ids coming back from the database.\n const normalisedIds = fileIds.map(Number);\n const uniqueIds = [...new Set(normalisedIds)];\n\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: { id: { $in: uniqueIds } },\n });\n\n const filesById = new Map(files.map((file) => [file.id, file]));\n\n // Keyed by input id so the response order matches the request order.\n const resultsById = new Map<number, AIMetadataFileResult>();\n const images: File[] = [];\n\n uniqueIds.forEach((id) => {\n const file = filesById.get(id);\n\n if (!file) {\n resultsById.set(id, { id, status: 'error', error: 'File not found' });\n return;\n }\n\n // Only the formats the AI provider understands are sent; anything else\n // (non-images, but also exotic image formats like SVG or TIFF) is\n // reported as skipped rather than failed.\n if (!isSupportedImage(file)) {\n resultsById.set(id, { id, status: 'skipped' });\n return;\n }\n\n images.push(file);\n });\n\n for (const imageChunk of chunk(images, AI_METADATA_CHUNK_SIZE)) {\n try {\n const metadataResults = await this.processFiles(imageChunk);\n await this.updateFilesWithAIMetadata(imageChunk, metadataResults, user);\n\n imageChunk.forEach((file, index) => {\n resultsById.set(file.id, {\n id: file.id,\n status: metadataResults[index] ? 'success' : 'error',\n ...(metadataResults[index]\n ? {}\n : { error: 'AI metadata generation returned no result' }),\n });\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : 'AI metadata generation failed';\n\n strapi.log.error('AI metadata generation failed for a chunk of files', {\n fileIds: imageChunk.map((file) => file.id),\n message,\n });\n\n imageChunk.forEach((file) => {\n resultsById.set(file.id, { id: file.id, status: 'error', error: message });\n });\n }\n }\n\n return normalisedIds.map(\n (id) => resultsById.get(id) ?? { id, status: 'error', error: 'File not processed' }\n );\n },\n\n /**\n * Processes provided files for AI metadata generation\n */\n async processFiles(files: File[]): Promise<Array<{ altText: string; caption: string } | null>> {\n if (!(await this.isEnabled()) || !aiServerUrl) {\n throw new Error('AI Metadata service is not enabled');\n }\n\n // Filter for image files only and track their original positions\n // We need to maintain the original indices so we can map AI results back correctly\n const imageFiles = files\n .map((file, index) => ({ file, originalIndex: index }))\n .filter(({ file }) => file.mime?.startsWith('image/'));\n\n // Convert filtered image files to InputFile format (uses thumbnails when available)\n const imageInputFiles = imageFiles.map(({ file }) => {\n const thumbnail = (file.formats as any)?.thumbnail;\n return {\n filepath: thumbnail?.url || file.url || '',\n mimetype: file.mime,\n originalFilename: file.name,\n size: thumbnail?.size || file.size,\n provider: file.provider,\n } as InputFile;\n });\n const createEmptyMetadataResults = (): Array<{ altText: string; caption: string } | null> =>\n Array.from({ length: files.length }, () => null);\n\n // If no image files, return sparse array with all nulls to avoid calling the AI server\n // This maintains the same array length as input files for proper index alignment\n if (imageFiles.length === 0) {\n return createEmptyMetadataResults();\n }\n\n const formData = await buildFormDataFromFiles(\n imageInputFiles,\n strapi.config.get('server.absoluteUrl'),\n strapi.log\n );\n\n let token: string;\n try {\n const tokenData = await strapi.ai.admin.getAiToken();\n token = tokenData.token;\n } catch (error) {\n throw new Error('Failed to retrieve AI token', {\n cause: error instanceof Error ? error : undefined,\n });\n }\n\n strapi.log.http('Contacting AI Server for media metadata generation', {\n aiServerUrl,\n imageCount: imageFiles.length,\n });\n\n const res = await fetch(`${aiServerUrl}/media-library/generate-metadata`, {\n method: 'POST',\n body: formData,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (!res.ok) {\n const errorText = await res.text();\n throw Error(`AI metadata generation failed`, { cause: errorText });\n }\n\n const responseSchema = z.object({\n results: z.array(\n z.object({\n altText: z.string(),\n caption: z.string(),\n })\n ),\n });\n\n const { results } = responseSchema.parse(await res.json());\n strapi.log.http(`AI generated metadata successfully for ${results.length} files`);\n\n // Create sparse array with results at original indices\n // Example: files=[img1, pdf, img2] -> imageFiles=[{img1, index:0}, {img2, index:2}]\n // AI results=[meta1, meta2] -> sparse=[meta1, null, meta2]\n // This ensures metadata[i] corresponds to files[i], with null for non-images\n return imageFiles.reduce((sparseResults, { originalIndex }, resultIndex) => {\n sparseResults[originalIndex] = results[resultIndex];\n return sparseResults;\n }, createEmptyMetadataResults());\n },\n };\n};\n\nexport { createAIMetadataService };\n"],"names":["SUPPORTED_IMAGE_TYPES","AI_METADATA_SUPPORTED_IMAGE_TYPES","isSupportedImage","file","isAIMetadataSupportedMime","mime","chunk","items","size","chunks","i","length","push","slice","createAIMetadataService","strapi","aiServerUrl","process","env","STRAPI_AI_URL","isEnabled","ai","admin","settings","plugin","service","getSettings","aiMetadata","countImagesWithoutMetadata","imagesWithoutMetadataCountPromise","db","query","count","where","$in","$or","alternativeText","$null","caption","totalImagesPromise","imagesWithoutMetadataCount","totalImages","Promise","all","updateFilesWithAIMetadata","files","metadataResults","user","uploadService","map","index","updateData","altText","Object","keys","updateFileInfo","id","undefined","processExistingFiles","jobId","jobService","getService","updateJob","status","findMany","completedAt","Date","processFiles","error","log","Error","message","String","generateForFiles","fileIds","normalisedIds","Number","uniqueIds","Set","filesById","Map","resultsById","images","forEach","get","set","imageChunk","AI_METADATA_CHUNK_SIZE","imageFiles","originalIndex","filter","startsWith","imageInputFiles","thumbnail","formats","filepath","url","mimetype","originalFilename","name","provider","createEmptyMetadataResults","Array","from","formData","buildFormDataFromFiles","config","token","tokenData","getAiToken","cause","http","imageCount","res","fetch","method","body","headers","Authorization","ok","errorText","text","responseSchema","z","object","results","array","string","parse","json","reduce","sparseResults","resultIndex"],"mappings":"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"}
1
+ {"version":3,"file":"ai-metadata.js","sources":["../../../server/src/services/ai-metadata.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\nimport { InputFile, File } from '../types';\nimport { Settings } from '../controllers/validation/admin/settings';\nimport { getService } from '../utils';\nimport { buildFormDataFromFiles } from '../utils/images';\nimport { AI_METADATA_CHUNK_SIZE, AI_METADATA_SUPPORTED_IMAGE_TYPES } from '../constants';\n\nimport { isAIMetadataSupportedMime } from '../../../shared/constants';\n\nimport type { GenerateAIMetadata } from '../../../shared/contracts/files';\n\nexport type AIMetadataFileResult = GenerateAIMetadata.FileResult;\n\n/**\n * Supported image types for AI metadata generation. Lives in `shared/` so the\n * admin panel gates the bulk action on exactly what the provider accepts.\n */\nconst SUPPORTED_IMAGE_TYPES = AI_METADATA_SUPPORTED_IMAGE_TYPES;\n\nconst isSupportedImage = (file: File): boolean => isAIMetadataSupportedMime(file.mime);\n\nconst chunk = <T>(items: T[], size: number): T[][] => {\n const chunks: T[][] = [];\n\n for (let i = 0; i < items.length; i += size) {\n chunks.push(items.slice(i, i + size));\n }\n\n return chunks;\n};\n\nconst createAIMetadataService = ({ strapi }: { strapi: Core.Strapi }) => {\n const aiServerUrl = process.env.STRAPI_AI_URL || 'https://strapi-ai.apps.strapi.io';\n\n return {\n async isEnabled() {\n if (strapi.ai.admin.isStrapiManagedAiEnabled() === false) {\n return false;\n }\n const settings: Settings = await strapi.plugin('upload').service('upload').getSettings();\n return settings.aiMetadata ?? true;\n },\n\n async countImagesWithoutMetadata() {\n const imagesWithoutMetadataCountPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n const totalImagesPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n },\n });\n\n const [imagesWithoutMetadataCount, totalImages] = await Promise.all([\n imagesWithoutMetadataCountPromise,\n totalImagesPromise,\n ]);\n\n return { imagesWithoutMetadataCount, totalImages };\n },\n\n /**\n * Update files with AI-generated metadata\n * Shared logic used by both upload flow and retroactive processing\n */\n async updateFilesWithAIMetadata(\n files: File[],\n metadataResults: Array<{ altText: string; caption: string } | null>,\n user: { id: string | number }\n ) {\n const uploadService = strapi.plugin('upload').service('upload');\n\n await Promise.all(\n files.map(async (file, index) => {\n const aiMetadata = metadataResults[index];\n if (aiMetadata) {\n // Only update fields that are missing (null or empty string)\n const updateData: { alternativeText?: string; caption?: string } = {};\n\n if (!file.alternativeText || file.alternativeText === '') {\n updateData.alternativeText = aiMetadata.altText;\n }\n\n if (!file.caption || file.caption === '') {\n updateData.caption = aiMetadata.caption;\n }\n\n // Only update if there are fields to update\n if (Object.keys(updateData).length > 0) {\n await uploadService.updateFileInfo(file.id, updateData, { user });\n\n // Update in-memory file object (needed for upload flow response)\n if (updateData.alternativeText !== undefined) {\n file.alternativeText = updateData.alternativeText;\n }\n if (updateData.caption !== undefined) {\n file.caption = updateData.caption;\n }\n }\n }\n })\n );\n },\n\n /**\n * Process existing files with job tracking for progress updates\n */\n async processExistingFiles(jobId: number, user: { id: string | number }): Promise<void> {\n const jobService = getService('aiMetadataJobs');\n\n try {\n // Mark as processing\n await jobService.updateJob(jobId, { status: 'processing' });\n\n // Query all images without metadata\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n if (files.length === 0) {\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n return;\n }\n\n // Process all files at once\n const metadataResults = await this.processFiles(files);\n await this.updateFilesWithAIMetadata(files, metadataResults, user);\n\n // Mark as completed\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n } catch (error) {\n strapi.log.error('AI metadata job failed', {\n jobId,\n error: error instanceof Error ? error.message : String(error),\n });\n\n await jobService.updateJob(jobId, {\n status: 'failed',\n completedAt: new Date(),\n });\n }\n },\n\n /**\n * Generate AI metadata for an explicit selection of files, synchronously.\n *\n * Unlike `processExistingFiles`, this does not create a job and does not\n * filter on missing metadata — the selection is what the user asked for.\n * Existing alt text / captions are still preserved by\n * `updateFilesWithAIMetadata`, so a file that already has both is reported\n * as `success` without being modified.\n *\n * Images are processed in sequential chunks so one failing chunk only\n * affects its own files; every other chunk still runs.\n *\n * @experimental\n */\n async generateForFiles(\n fileIds: Array<number | string>,\n user: { id: string | number }\n ): Promise<AIMetadataFileResult[]> {\n // `yup.strapiID()` accepts both numbers and numeric strings without\n // coercing, so normalise here — otherwise a request sending `[\"1\"]`\n // would never match the numeric ids coming back from the database.\n const normalisedIds = fileIds.map(Number);\n const uniqueIds = [...new Set(normalisedIds)];\n\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: { id: { $in: uniqueIds } },\n });\n\n const filesById = new Map(files.map((file) => [file.id, file]));\n\n // Keyed by input id so the response order matches the request order.\n const resultsById = new Map<number, AIMetadataFileResult>();\n const images: File[] = [];\n\n uniqueIds.forEach((id) => {\n const file = filesById.get(id);\n\n if (!file) {\n resultsById.set(id, { id, status: 'error', error: 'File not found' });\n return;\n }\n\n // Only the formats the AI provider understands are sent; anything else\n // (non-images, but also exotic image formats like SVG or TIFF) is\n // reported as skipped rather than failed.\n if (!isSupportedImage(file)) {\n resultsById.set(id, { id, status: 'skipped' });\n return;\n }\n\n images.push(file);\n });\n\n for (const imageChunk of chunk(images, AI_METADATA_CHUNK_SIZE)) {\n try {\n const metadataResults = await this.processFiles(imageChunk);\n await this.updateFilesWithAIMetadata(imageChunk, metadataResults, user);\n\n imageChunk.forEach((file, index) => {\n resultsById.set(file.id, {\n id: file.id,\n status: metadataResults[index] ? 'success' : 'error',\n ...(metadataResults[index]\n ? {}\n : { error: 'AI metadata generation returned no result' }),\n });\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : 'AI metadata generation failed';\n\n strapi.log.error('AI metadata generation failed for a chunk of files', {\n fileIds: imageChunk.map((file) => file.id),\n message,\n });\n\n imageChunk.forEach((file) => {\n resultsById.set(file.id, { id: file.id, status: 'error', error: message });\n });\n }\n }\n\n return normalisedIds.map(\n (id) => resultsById.get(id) ?? { id, status: 'error', error: 'File not processed' }\n );\n },\n\n /**\n * Processes provided files for AI metadata generation\n */\n async processFiles(files: File[]): Promise<Array<{ altText: string; caption: string } | null>> {\n if (!(await this.isEnabled()) || !aiServerUrl) {\n throw new Error('AI Metadata service is not enabled');\n }\n\n // Filter for image files only and track their original positions\n // We need to maintain the original indices so we can map AI results back correctly\n const imageFiles = files\n .map((file, index) => ({ file, originalIndex: index }))\n .filter(({ file }) => file.mime?.startsWith('image/'));\n\n // Convert filtered image files to InputFile format (uses thumbnails when available)\n const imageInputFiles = imageFiles.map(({ file }) => {\n const thumbnail = (file.formats as any)?.thumbnail;\n return {\n filepath: thumbnail?.url || file.url || '',\n mimetype: file.mime,\n originalFilename: file.name,\n size: thumbnail?.size || file.size,\n provider: file.provider,\n } as InputFile;\n });\n const createEmptyMetadataResults = (): Array<{ altText: string; caption: string } | null> =>\n Array.from({ length: files.length }, () => null);\n\n // If no image files, return sparse array with all nulls to avoid calling the AI server\n // This maintains the same array length as input files for proper index alignment\n if (imageFiles.length === 0) {\n return createEmptyMetadataResults();\n }\n\n const formData = await buildFormDataFromFiles(\n imageInputFiles,\n strapi.config.get('server.absoluteUrl'),\n strapi.log\n );\n\n let token: string;\n try {\n const tokenData = await strapi.ai.admin.getAiToken();\n token = tokenData.token;\n } catch (error) {\n throw new Error('Failed to retrieve AI token', {\n cause: error instanceof Error ? error : undefined,\n });\n }\n\n strapi.log.http('Contacting AI Server for media metadata generation', {\n aiServerUrl,\n imageCount: imageFiles.length,\n });\n\n const res = await fetch(`${aiServerUrl}/media-library/generate-metadata`, {\n method: 'POST',\n body: formData,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (!res.ok) {\n const errorText = await res.text();\n throw Error(`AI metadata generation failed`, { cause: errorText });\n }\n\n const responseSchema = z.object({\n results: z.array(\n z.object({\n altText: z.string(),\n caption: z.string(),\n })\n ),\n });\n\n const { results } = responseSchema.parse(await res.json());\n strapi.log.http(`AI generated metadata successfully for ${results.length} files`);\n\n // Create sparse array with results at original indices\n // Example: files=[img1, pdf, img2] -> imageFiles=[{img1, index:0}, {img2, index:2}]\n // AI results=[meta1, meta2] -> sparse=[meta1, null, meta2]\n // This ensures metadata[i] corresponds to files[i], with null for non-images\n return imageFiles.reduce((sparseResults, { originalIndex }, resultIndex) => {\n sparseResults[originalIndex] = results[resultIndex];\n return sparseResults;\n }, createEmptyMetadataResults());\n },\n };\n};\n\nexport { createAIMetadataService };\n"],"names":["SUPPORTED_IMAGE_TYPES","AI_METADATA_SUPPORTED_IMAGE_TYPES","isSupportedImage","file","isAIMetadataSupportedMime","mime","chunk","items","size","chunks","i","length","push","slice","createAIMetadataService","strapi","aiServerUrl","process","env","STRAPI_AI_URL","isEnabled","ai","admin","isStrapiManagedAiEnabled","settings","plugin","service","getSettings","aiMetadata","countImagesWithoutMetadata","imagesWithoutMetadataCountPromise","db","query","count","where","$in","$or","alternativeText","$null","caption","totalImagesPromise","imagesWithoutMetadataCount","totalImages","Promise","all","updateFilesWithAIMetadata","files","metadataResults","user","uploadService","map","index","updateData","altText","Object","keys","updateFileInfo","id","undefined","processExistingFiles","jobId","jobService","getService","updateJob","status","findMany","completedAt","Date","processFiles","error","log","Error","message","String","generateForFiles","fileIds","normalisedIds","Number","uniqueIds","Set","filesById","Map","resultsById","images","forEach","get","set","imageChunk","AI_METADATA_CHUNK_SIZE","imageFiles","originalIndex","filter","startsWith","imageInputFiles","thumbnail","formats","filepath","url","mimetype","originalFilename","name","provider","createEmptyMetadataResults","Array","from","formData","buildFormDataFromFiles","config","token","tokenData","getAiToken","cause","http","imageCount","res","fetch","method","body","headers","Authorization","ok","errorText","text","responseSchema","z","object","results","array","string","parse","json","reduce","sparseResults","resultIndex"],"mappings":"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"}
@@ -19,7 +19,7 @@ const createAIMetadataService = ({ strapi })=>{
19
19
  const aiServerUrl = process.env.STRAPI_AI_URL || 'https://strapi-ai.apps.strapi.io';
20
20
  return {
21
21
  async isEnabled () {
22
- if (strapi.ai.admin.isEnabled() === false) {
22
+ if (strapi.ai.admin.isStrapiManagedAiEnabled() === false) {
23
23
  return false;
24
24
  }
25
25
  const settings = await strapi.plugin('upload').service('upload').getSettings();
@@ -1 +1 @@
1
- {"version":3,"file":"ai-metadata.mjs","sources":["../../../server/src/services/ai-metadata.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\nimport { InputFile, File } from '../types';\nimport { Settings } from '../controllers/validation/admin/settings';\nimport { getService } from '../utils';\nimport { buildFormDataFromFiles } from '../utils/images';\nimport { AI_METADATA_CHUNK_SIZE, AI_METADATA_SUPPORTED_IMAGE_TYPES } from '../constants';\n\nimport { isAIMetadataSupportedMime } from '../../../shared/constants';\n\nimport type { GenerateAIMetadata } from '../../../shared/contracts/files';\n\nexport type AIMetadataFileResult = GenerateAIMetadata.FileResult;\n\n/**\n * Supported image types for AI metadata generation. Lives in `shared/` so the\n * admin panel gates the bulk action on exactly what the provider accepts.\n */\nconst SUPPORTED_IMAGE_TYPES = AI_METADATA_SUPPORTED_IMAGE_TYPES;\n\nconst isSupportedImage = (file: File): boolean => isAIMetadataSupportedMime(file.mime);\n\nconst chunk = <T>(items: T[], size: number): T[][] => {\n const chunks: T[][] = [];\n\n for (let i = 0; i < items.length; i += size) {\n chunks.push(items.slice(i, i + size));\n }\n\n return chunks;\n};\n\nconst createAIMetadataService = ({ strapi }: { strapi: Core.Strapi }) => {\n const aiServerUrl = process.env.STRAPI_AI_URL || 'https://strapi-ai.apps.strapi.io';\n\n return {\n async isEnabled() {\n if (strapi.ai.admin.isEnabled() === false) {\n return false;\n }\n const settings: Settings = await strapi.plugin('upload').service('upload').getSettings();\n return settings.aiMetadata ?? true;\n },\n\n async countImagesWithoutMetadata() {\n const imagesWithoutMetadataCountPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n const totalImagesPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n },\n });\n\n const [imagesWithoutMetadataCount, totalImages] = await Promise.all([\n imagesWithoutMetadataCountPromise,\n totalImagesPromise,\n ]);\n\n return { imagesWithoutMetadataCount, totalImages };\n },\n\n /**\n * Update files with AI-generated metadata\n * Shared logic used by both upload flow and retroactive processing\n */\n async updateFilesWithAIMetadata(\n files: File[],\n metadataResults: Array<{ altText: string; caption: string } | null>,\n user: { id: string | number }\n ) {\n const uploadService = strapi.plugin('upload').service('upload');\n\n await Promise.all(\n files.map(async (file, index) => {\n const aiMetadata = metadataResults[index];\n if (aiMetadata) {\n // Only update fields that are missing (null or empty string)\n const updateData: { alternativeText?: string; caption?: string } = {};\n\n if (!file.alternativeText || file.alternativeText === '') {\n updateData.alternativeText = aiMetadata.altText;\n }\n\n if (!file.caption || file.caption === '') {\n updateData.caption = aiMetadata.caption;\n }\n\n // Only update if there are fields to update\n if (Object.keys(updateData).length > 0) {\n await uploadService.updateFileInfo(file.id, updateData, { user });\n\n // Update in-memory file object (needed for upload flow response)\n if (updateData.alternativeText !== undefined) {\n file.alternativeText = updateData.alternativeText;\n }\n if (updateData.caption !== undefined) {\n file.caption = updateData.caption;\n }\n }\n }\n })\n );\n },\n\n /**\n * Process existing files with job tracking for progress updates\n */\n async processExistingFiles(jobId: number, user: { id: string | number }): Promise<void> {\n const jobService = getService('aiMetadataJobs');\n\n try {\n // Mark as processing\n await jobService.updateJob(jobId, { status: 'processing' });\n\n // Query all images without metadata\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n if (files.length === 0) {\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n return;\n }\n\n // Process all files at once\n const metadataResults = await this.processFiles(files);\n await this.updateFilesWithAIMetadata(files, metadataResults, user);\n\n // Mark as completed\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n } catch (error) {\n strapi.log.error('AI metadata job failed', {\n jobId,\n error: error instanceof Error ? error.message : String(error),\n });\n\n await jobService.updateJob(jobId, {\n status: 'failed',\n completedAt: new Date(),\n });\n }\n },\n\n /**\n * Generate AI metadata for an explicit selection of files, synchronously.\n *\n * Unlike `processExistingFiles`, this does not create a job and does not\n * filter on missing metadata — the selection is what the user asked for.\n * Existing alt text / captions are still preserved by\n * `updateFilesWithAIMetadata`, so a file that already has both is reported\n * as `success` without being modified.\n *\n * Images are processed in sequential chunks so one failing chunk only\n * affects its own files; every other chunk still runs.\n *\n * @experimental\n */\n async generateForFiles(\n fileIds: Array<number | string>,\n user: { id: string | number }\n ): Promise<AIMetadataFileResult[]> {\n // `yup.strapiID()` accepts both numbers and numeric strings without\n // coercing, so normalise here — otherwise a request sending `[\"1\"]`\n // would never match the numeric ids coming back from the database.\n const normalisedIds = fileIds.map(Number);\n const uniqueIds = [...new Set(normalisedIds)];\n\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: { id: { $in: uniqueIds } },\n });\n\n const filesById = new Map(files.map((file) => [file.id, file]));\n\n // Keyed by input id so the response order matches the request order.\n const resultsById = new Map<number, AIMetadataFileResult>();\n const images: File[] = [];\n\n uniqueIds.forEach((id) => {\n const file = filesById.get(id);\n\n if (!file) {\n resultsById.set(id, { id, status: 'error', error: 'File not found' });\n return;\n }\n\n // Only the formats the AI provider understands are sent; anything else\n // (non-images, but also exotic image formats like SVG or TIFF) is\n // reported as skipped rather than failed.\n if (!isSupportedImage(file)) {\n resultsById.set(id, { id, status: 'skipped' });\n return;\n }\n\n images.push(file);\n });\n\n for (const imageChunk of chunk(images, AI_METADATA_CHUNK_SIZE)) {\n try {\n const metadataResults = await this.processFiles(imageChunk);\n await this.updateFilesWithAIMetadata(imageChunk, metadataResults, user);\n\n imageChunk.forEach((file, index) => {\n resultsById.set(file.id, {\n id: file.id,\n status: metadataResults[index] ? 'success' : 'error',\n ...(metadataResults[index]\n ? {}\n : { error: 'AI metadata generation returned no result' }),\n });\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : 'AI metadata generation failed';\n\n strapi.log.error('AI metadata generation failed for a chunk of files', {\n fileIds: imageChunk.map((file) => file.id),\n message,\n });\n\n imageChunk.forEach((file) => {\n resultsById.set(file.id, { id: file.id, status: 'error', error: message });\n });\n }\n }\n\n return normalisedIds.map(\n (id) => resultsById.get(id) ?? { id, status: 'error', error: 'File not processed' }\n );\n },\n\n /**\n * Processes provided files for AI metadata generation\n */\n async processFiles(files: File[]): Promise<Array<{ altText: string; caption: string } | null>> {\n if (!(await this.isEnabled()) || !aiServerUrl) {\n throw new Error('AI Metadata service is not enabled');\n }\n\n // Filter for image files only and track their original positions\n // We need to maintain the original indices so we can map AI results back correctly\n const imageFiles = files\n .map((file, index) => ({ file, originalIndex: index }))\n .filter(({ file }) => file.mime?.startsWith('image/'));\n\n // Convert filtered image files to InputFile format (uses thumbnails when available)\n const imageInputFiles = imageFiles.map(({ file }) => {\n const thumbnail = (file.formats as any)?.thumbnail;\n return {\n filepath: thumbnail?.url || file.url || '',\n mimetype: file.mime,\n originalFilename: file.name,\n size: thumbnail?.size || file.size,\n provider: file.provider,\n } as InputFile;\n });\n const createEmptyMetadataResults = (): Array<{ altText: string; caption: string } | null> =>\n Array.from({ length: files.length }, () => null);\n\n // If no image files, return sparse array with all nulls to avoid calling the AI server\n // This maintains the same array length as input files for proper index alignment\n if (imageFiles.length === 0) {\n return createEmptyMetadataResults();\n }\n\n const formData = await buildFormDataFromFiles(\n imageInputFiles,\n strapi.config.get('server.absoluteUrl'),\n strapi.log\n );\n\n let token: string;\n try {\n const tokenData = await strapi.ai.admin.getAiToken();\n token = tokenData.token;\n } catch (error) {\n throw new Error('Failed to retrieve AI token', {\n cause: error instanceof Error ? error : undefined,\n });\n }\n\n strapi.log.http('Contacting AI Server for media metadata generation', {\n aiServerUrl,\n imageCount: imageFiles.length,\n });\n\n const res = await fetch(`${aiServerUrl}/media-library/generate-metadata`, {\n method: 'POST',\n body: formData,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (!res.ok) {\n const errorText = await res.text();\n throw Error(`AI metadata generation failed`, { cause: errorText });\n }\n\n const responseSchema = z.object({\n results: z.array(\n z.object({\n altText: z.string(),\n caption: z.string(),\n })\n ),\n });\n\n const { results } = responseSchema.parse(await res.json());\n strapi.log.http(`AI generated metadata successfully for ${results.length} files`);\n\n // Create sparse array with results at original indices\n // Example: files=[img1, pdf, img2] -> imageFiles=[{img1, index:0}, {img2, index:2}]\n // AI results=[meta1, meta2] -> sparse=[meta1, null, meta2]\n // This ensures metadata[i] corresponds to files[i], with null for non-images\n return imageFiles.reduce((sparseResults, { originalIndex }, resultIndex) => {\n sparseResults[originalIndex] = results[resultIndex];\n return sparseResults;\n }, createEmptyMetadataResults());\n },\n };\n};\n\nexport { createAIMetadataService };\n"],"names":["SUPPORTED_IMAGE_TYPES","AI_METADATA_SUPPORTED_IMAGE_TYPES","isSupportedImage","file","isAIMetadataSupportedMime","mime","chunk","items","size","chunks","i","length","push","slice","createAIMetadataService","strapi","aiServerUrl","process","env","STRAPI_AI_URL","isEnabled","ai","admin","settings","plugin","service","getSettings","aiMetadata","countImagesWithoutMetadata","imagesWithoutMetadataCountPromise","db","query","count","where","$in","$or","alternativeText","$null","caption","totalImagesPromise","imagesWithoutMetadataCount","totalImages","Promise","all","updateFilesWithAIMetadata","files","metadataResults","user","uploadService","map","index","updateData","altText","Object","keys","updateFileInfo","id","undefined","processExistingFiles","jobId","jobService","getService","updateJob","status","findMany","completedAt","Date","processFiles","error","log","Error","message","String","generateForFiles","fileIds","normalisedIds","Number","uniqueIds","Set","filesById","Map","resultsById","images","forEach","get","set","imageChunk","AI_METADATA_CHUNK_SIZE","imageFiles","originalIndex","filter","startsWith","imageInputFiles","thumbnail","formats","filepath","url","mimetype","originalFilename","name","provider","createEmptyMetadataResults","Array","from","formData","buildFormDataFromFiles","config","token","tokenData","getAiToken","cause","http","imageCount","res","fetch","method","body","headers","Authorization","ok","errorText","text","responseSchema","z","object","results","array","string","parse","json","reduce","sparseResults","resultIndex"],"mappings":"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"}
1
+ {"version":3,"file":"ai-metadata.mjs","sources":["../../../server/src/services/ai-metadata.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport * as z from 'zod/v4';\nimport { InputFile, File } from '../types';\nimport { Settings } from '../controllers/validation/admin/settings';\nimport { getService } from '../utils';\nimport { buildFormDataFromFiles } from '../utils/images';\nimport { AI_METADATA_CHUNK_SIZE, AI_METADATA_SUPPORTED_IMAGE_TYPES } from '../constants';\n\nimport { isAIMetadataSupportedMime } from '../../../shared/constants';\n\nimport type { GenerateAIMetadata } from '../../../shared/contracts/files';\n\nexport type AIMetadataFileResult = GenerateAIMetadata.FileResult;\n\n/**\n * Supported image types for AI metadata generation. Lives in `shared/` so the\n * admin panel gates the bulk action on exactly what the provider accepts.\n */\nconst SUPPORTED_IMAGE_TYPES = AI_METADATA_SUPPORTED_IMAGE_TYPES;\n\nconst isSupportedImage = (file: File): boolean => isAIMetadataSupportedMime(file.mime);\n\nconst chunk = <T>(items: T[], size: number): T[][] => {\n const chunks: T[][] = [];\n\n for (let i = 0; i < items.length; i += size) {\n chunks.push(items.slice(i, i + size));\n }\n\n return chunks;\n};\n\nconst createAIMetadataService = ({ strapi }: { strapi: Core.Strapi }) => {\n const aiServerUrl = process.env.STRAPI_AI_URL || 'https://strapi-ai.apps.strapi.io';\n\n return {\n async isEnabled() {\n if (strapi.ai.admin.isStrapiManagedAiEnabled() === false) {\n return false;\n }\n const settings: Settings = await strapi.plugin('upload').service('upload').getSettings();\n return settings.aiMetadata ?? true;\n },\n\n async countImagesWithoutMetadata() {\n const imagesWithoutMetadataCountPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n const totalImagesPromise = strapi.db.query('plugin::upload.file').count({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n },\n });\n\n const [imagesWithoutMetadataCount, totalImages] = await Promise.all([\n imagesWithoutMetadataCountPromise,\n totalImagesPromise,\n ]);\n\n return { imagesWithoutMetadataCount, totalImages };\n },\n\n /**\n * Update files with AI-generated metadata\n * Shared logic used by both upload flow and retroactive processing\n */\n async updateFilesWithAIMetadata(\n files: File[],\n metadataResults: Array<{ altText: string; caption: string } | null>,\n user: { id: string | number }\n ) {\n const uploadService = strapi.plugin('upload').service('upload');\n\n await Promise.all(\n files.map(async (file, index) => {\n const aiMetadata = metadataResults[index];\n if (aiMetadata) {\n // Only update fields that are missing (null or empty string)\n const updateData: { alternativeText?: string; caption?: string } = {};\n\n if (!file.alternativeText || file.alternativeText === '') {\n updateData.alternativeText = aiMetadata.altText;\n }\n\n if (!file.caption || file.caption === '') {\n updateData.caption = aiMetadata.caption;\n }\n\n // Only update if there are fields to update\n if (Object.keys(updateData).length > 0) {\n await uploadService.updateFileInfo(file.id, updateData, { user });\n\n // Update in-memory file object (needed for upload flow response)\n if (updateData.alternativeText !== undefined) {\n file.alternativeText = updateData.alternativeText;\n }\n if (updateData.caption !== undefined) {\n file.caption = updateData.caption;\n }\n }\n }\n })\n );\n },\n\n /**\n * Process existing files with job tracking for progress updates\n */\n async processExistingFiles(jobId: number, user: { id: string | number }): Promise<void> {\n const jobService = getService('aiMetadataJobs');\n\n try {\n // Mark as processing\n await jobService.updateJob(jobId, { status: 'processing' });\n\n // Query all images without metadata\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: {\n mime: {\n $in: SUPPORTED_IMAGE_TYPES,\n },\n $or: [\n { alternativeText: { $null: true } },\n { alternativeText: '' },\n { caption: { $null: true } },\n { caption: '' },\n ],\n },\n });\n\n if (files.length === 0) {\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n return;\n }\n\n // Process all files at once\n const metadataResults = await this.processFiles(files);\n await this.updateFilesWithAIMetadata(files, metadataResults, user);\n\n // Mark as completed\n await jobService.updateJob(jobId, {\n status: 'completed',\n completedAt: new Date(),\n });\n } catch (error) {\n strapi.log.error('AI metadata job failed', {\n jobId,\n error: error instanceof Error ? error.message : String(error),\n });\n\n await jobService.updateJob(jobId, {\n status: 'failed',\n completedAt: new Date(),\n });\n }\n },\n\n /**\n * Generate AI metadata for an explicit selection of files, synchronously.\n *\n * Unlike `processExistingFiles`, this does not create a job and does not\n * filter on missing metadata — the selection is what the user asked for.\n * Existing alt text / captions are still preserved by\n * `updateFilesWithAIMetadata`, so a file that already has both is reported\n * as `success` without being modified.\n *\n * Images are processed in sequential chunks so one failing chunk only\n * affects its own files; every other chunk still runs.\n *\n * @experimental\n */\n async generateForFiles(\n fileIds: Array<number | string>,\n user: { id: string | number }\n ): Promise<AIMetadataFileResult[]> {\n // `yup.strapiID()` accepts both numbers and numeric strings without\n // coercing, so normalise here — otherwise a request sending `[\"1\"]`\n // would never match the numeric ids coming back from the database.\n const normalisedIds = fileIds.map(Number);\n const uniqueIds = [...new Set(normalisedIds)];\n\n const files: File[] = await strapi.db.query('plugin::upload.file').findMany({\n where: { id: { $in: uniqueIds } },\n });\n\n const filesById = new Map(files.map((file) => [file.id, file]));\n\n // Keyed by input id so the response order matches the request order.\n const resultsById = new Map<number, AIMetadataFileResult>();\n const images: File[] = [];\n\n uniqueIds.forEach((id) => {\n const file = filesById.get(id);\n\n if (!file) {\n resultsById.set(id, { id, status: 'error', error: 'File not found' });\n return;\n }\n\n // Only the formats the AI provider understands are sent; anything else\n // (non-images, but also exotic image formats like SVG or TIFF) is\n // reported as skipped rather than failed.\n if (!isSupportedImage(file)) {\n resultsById.set(id, { id, status: 'skipped' });\n return;\n }\n\n images.push(file);\n });\n\n for (const imageChunk of chunk(images, AI_METADATA_CHUNK_SIZE)) {\n try {\n const metadataResults = await this.processFiles(imageChunk);\n await this.updateFilesWithAIMetadata(imageChunk, metadataResults, user);\n\n imageChunk.forEach((file, index) => {\n resultsById.set(file.id, {\n id: file.id,\n status: metadataResults[index] ? 'success' : 'error',\n ...(metadataResults[index]\n ? {}\n : { error: 'AI metadata generation returned no result' }),\n });\n });\n } catch (error) {\n const message = error instanceof Error ? error.message : 'AI metadata generation failed';\n\n strapi.log.error('AI metadata generation failed for a chunk of files', {\n fileIds: imageChunk.map((file) => file.id),\n message,\n });\n\n imageChunk.forEach((file) => {\n resultsById.set(file.id, { id: file.id, status: 'error', error: message });\n });\n }\n }\n\n return normalisedIds.map(\n (id) => resultsById.get(id) ?? { id, status: 'error', error: 'File not processed' }\n );\n },\n\n /**\n * Processes provided files for AI metadata generation\n */\n async processFiles(files: File[]): Promise<Array<{ altText: string; caption: string } | null>> {\n if (!(await this.isEnabled()) || !aiServerUrl) {\n throw new Error('AI Metadata service is not enabled');\n }\n\n // Filter for image files only and track their original positions\n // We need to maintain the original indices so we can map AI results back correctly\n const imageFiles = files\n .map((file, index) => ({ file, originalIndex: index }))\n .filter(({ file }) => file.mime?.startsWith('image/'));\n\n // Convert filtered image files to InputFile format (uses thumbnails when available)\n const imageInputFiles = imageFiles.map(({ file }) => {\n const thumbnail = (file.formats as any)?.thumbnail;\n return {\n filepath: thumbnail?.url || file.url || '',\n mimetype: file.mime,\n originalFilename: file.name,\n size: thumbnail?.size || file.size,\n provider: file.provider,\n } as InputFile;\n });\n const createEmptyMetadataResults = (): Array<{ altText: string; caption: string } | null> =>\n Array.from({ length: files.length }, () => null);\n\n // If no image files, return sparse array with all nulls to avoid calling the AI server\n // This maintains the same array length as input files for proper index alignment\n if (imageFiles.length === 0) {\n return createEmptyMetadataResults();\n }\n\n const formData = await buildFormDataFromFiles(\n imageInputFiles,\n strapi.config.get('server.absoluteUrl'),\n strapi.log\n );\n\n let token: string;\n try {\n const tokenData = await strapi.ai.admin.getAiToken();\n token = tokenData.token;\n } catch (error) {\n throw new Error('Failed to retrieve AI token', {\n cause: error instanceof Error ? error : undefined,\n });\n }\n\n strapi.log.http('Contacting AI Server for media metadata generation', {\n aiServerUrl,\n imageCount: imageFiles.length,\n });\n\n const res = await fetch(`${aiServerUrl}/media-library/generate-metadata`, {\n method: 'POST',\n body: formData,\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (!res.ok) {\n const errorText = await res.text();\n throw Error(`AI metadata generation failed`, { cause: errorText });\n }\n\n const responseSchema = z.object({\n results: z.array(\n z.object({\n altText: z.string(),\n caption: z.string(),\n })\n ),\n });\n\n const { results } = responseSchema.parse(await res.json());\n strapi.log.http(`AI generated metadata successfully for ${results.length} files`);\n\n // Create sparse array with results at original indices\n // Example: files=[img1, pdf, img2] -> imageFiles=[{img1, index:0}, {img2, index:2}]\n // AI results=[meta1, meta2] -> sparse=[meta1, null, meta2]\n // This ensures metadata[i] corresponds to files[i], with null for non-images\n return imageFiles.reduce((sparseResults, { originalIndex }, resultIndex) => {\n sparseResults[originalIndex] = results[resultIndex];\n return sparseResults;\n }, createEmptyMetadataResults());\n },\n };\n};\n\nexport { createAIMetadataService };\n"],"names":["SUPPORTED_IMAGE_TYPES","AI_METADATA_SUPPORTED_IMAGE_TYPES","isSupportedImage","file","isAIMetadataSupportedMime","mime","chunk","items","size","chunks","i","length","push","slice","createAIMetadataService","strapi","aiServerUrl","process","env","STRAPI_AI_URL","isEnabled","ai","admin","isStrapiManagedAiEnabled","settings","plugin","service","getSettings","aiMetadata","countImagesWithoutMetadata","imagesWithoutMetadataCountPromise","db","query","count","where","$in","$or","alternativeText","$null","caption","totalImagesPromise","imagesWithoutMetadataCount","totalImages","Promise","all","updateFilesWithAIMetadata","files","metadataResults","user","uploadService","map","index","updateData","altText","Object","keys","updateFileInfo","id","undefined","processExistingFiles","jobId","jobService","getService","updateJob","status","findMany","completedAt","Date","processFiles","error","log","Error","message","String","generateForFiles","fileIds","normalisedIds","Number","uniqueIds","Set","filesById","Map","resultsById","images","forEach","get","set","imageChunk","AI_METADATA_CHUNK_SIZE","imageFiles","originalIndex","filter","startsWith","imageInputFiles","thumbnail","formats","filepath","url","mimetype","originalFilename","name","provider","createEmptyMetadataResults","Array","from","formData","buildFormDataFromFiles","config","token","tokenData","getAiToken","cause","http","imageCount","res","fetch","method","body","headers","Authorization","ok","errorText","text","responseSchema","z","object","results","array","string","parse","json","reduce","sparseResults","resultIndex"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var utils = require('@strapi/utils');
4
- var utils$1 = require('./utils.js');
3
+ var utils$1 = require('@strapi/utils');
4
+ var utils = require('./utils.js');
5
5
 
6
6
  const signFileUrlsOnDocumentService = async ()=>{
7
7
  const { provider } = strapi.plugins.upload;
@@ -12,21 +12,33 @@ const signFileUrlsOnDocumentService = async ()=>{
12
12
  }
13
13
  strapi.documents.use(async (ctx, next)=>{
14
14
  const uid = ctx.uid;
15
+ // One presign per distinct richtext URL for this call, whichever entry it
16
+ // appears in. Scoped to the call: a signed URL is only as fresh as the
17
+ // request that produced it.
18
+ const cache = utils.createSignCache();
19
+ // Never persist a signature: richtext / blocks embed the URL itself, so an
20
+ // expiring one would be frozen in the row. `clone` is included because the
21
+ // submitted data is merged over the source row, so it can carry signed
22
+ // values too. The response is signed again below, so callers still get a
23
+ // usable URL back.
24
+ if ((ctx.action === 'create' || ctx.action === 'update' || ctx.action === 'clone') && ctx.params?.data) {
25
+ ctx.params.data = await utils.unsignEntityMedia(ctx.params.data, uid, cache);
26
+ }
15
27
  const result = await next();
16
28
  if (ctx.action === 'findMany') {
17
29
  // Shape: [ entry ]
18
- return utils.async.map(result, (entry)=>utils$1.signEntityMedia(entry, uid));
30
+ return utils$1.async.map(result, (entry)=>utils.signEntityMedia(entry, uid, cache));
19
31
  }
20
32
  if (ctx.action === 'findFirst' || ctx.action === 'findOne' || ctx.action === 'create' || ctx.action === 'update') {
21
33
  // Shape: entry
22
- return utils$1.signEntityMedia(result, uid);
34
+ return utils.signEntityMedia(result, uid, cache);
23
35
  }
24
36
  if (ctx.action === 'delete' || ctx.action === 'clone' || ctx.action === 'publish' || ctx.action === 'unpublish' || ctx.action === 'discardDraft') {
25
37
  // Shape: { entries: [ entry ] }
26
38
  // ...
27
39
  return {
28
40
  ...result,
29
- entries: await utils.async.map(result.entries, (entry)=>utils$1.signEntityMedia(entry, uid))
41
+ entries: await utils$1.async.map(result.entries, (entry)=>utils.signEntityMedia(entry, uid, cache))
30
42
  };
31
43
  }
32
44
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../server/src/services/extensions/index.ts"],"sourcesContent":["import { async } from '@strapi/utils';\nimport { signEntityMedia } from './utils';\n\nconst signFileUrlsOnDocumentService = async () => {\n const { provider } = strapi.plugins.upload;\n const isPrivate = await provider.isPrivate();\n\n // We only need to sign the file urls if the provider is private\n if (!isPrivate) {\n return;\n }\n\n strapi.documents.use(async (ctx, next) => {\n const uid = ctx.uid;\n const result: any = await next();\n\n if (ctx.action === 'findMany') {\n // Shape: [ entry ]\n return async.map(result, (entry: any) => signEntityMedia(entry, uid));\n }\n\n if (\n ctx.action === 'findFirst' ||\n ctx.action === 'findOne' ||\n ctx.action === 'create' ||\n ctx.action === 'update'\n ) {\n // Shape: entry\n return signEntityMedia(result, uid);\n }\n\n if (\n ctx.action === 'delete' ||\n ctx.action === 'clone' ||\n ctx.action === 'publish' ||\n ctx.action === 'unpublish' ||\n ctx.action === 'discardDraft'\n ) {\n // Shape: { entries: [ entry ] }\n // ...\n return {\n ...result,\n entries: await async.map(result.entries, (entry: any) => signEntityMedia(entry, uid)),\n };\n }\n\n return result;\n });\n};\n\nexport default {\n signFileUrlsOnDocumentService,\n};\n"],"names":["signFileUrlsOnDocumentService","provider","strapi","plugins","upload","isPrivate","documents","use","ctx","next","uid","result","action","async","map","entry","signEntityMedia","entries"],"mappings":";;;;;AAGA,MAAMA,6BAAAA,GAAgC,UAAA;AACpC,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAACC,MAAM;IAC1C,MAAMC,SAAAA,GAAY,MAAMJ,QAAAA,CAASI,SAAS,EAAA;;AAG1C,IAAA,IAAI,CAACA,SAAAA,EAAW;AACd,QAAA;AACF,IAAA;AAEAH,IAAAA,MAAAA,CAAOI,SAAS,CAACC,GAAG,CAAC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QAC/B,MAAMC,GAAAA,GAAMF,IAAIE,GAAG;AACnB,QAAA,MAAMC,SAAc,MAAMF,IAAAA,EAAAA;QAE1B,IAAID,GAAAA,CAAII,MAAM,KAAK,UAAA,EAAY;;AAE7B,YAAA,OAAOC,YAAMC,GAAG,CAACH,QAAQ,CAACI,KAAAA,GAAeC,wBAAgBD,KAAAA,EAAOL,GAAAA,CAAAA,CAAAA;AAClE,QAAA;AAEA,QAAA,IACEF,GAAAA,CAAII,MAAM,KAAK,WAAA,IACfJ,IAAII,MAAM,KAAK,SAAA,IACfJ,GAAAA,CAAII,MAAM,KAAK,QAAA,IACfJ,GAAAA,CAAII,MAAM,KAAK,QAAA,EACf;;AAEA,YAAA,OAAOI,wBAAgBL,MAAAA,EAAQD,GAAAA,CAAAA;AACjC,QAAA;AAEA,QAAA,IACEF,IAAII,MAAM,KAAK,YACfJ,GAAAA,CAAII,MAAM,KAAK,OAAA,IACfJ,GAAAA,CAAII,MAAM,KAAK,SAAA,IACfJ,IAAII,MAAM,KAAK,eACfJ,GAAAA,CAAII,MAAM,KAAK,cAAA,EACf;;;YAGA,OAAO;AACL,gBAAA,GAAGD,MAAM;gBACTM,OAAAA,EAAS,MAAMJ,WAAAA,CAAMC,GAAG,CAACH,MAAAA,CAAOM,OAAO,EAAE,CAACF,KAAAA,GAAeC,uBAAAA,CAAgBD,KAAAA,EAAOL,GAAAA,CAAAA;AAClF,aAAA;AACF,QAAA;QAEA,OAAOC,MAAAA;AACT,IAAA,CAAA,CAAA;AACF,CAAA;AAEA,iBAAe;AACbX,IAAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../server/src/services/extensions/index.ts"],"sourcesContent":["import { async } from '@strapi/utils';\nimport { createSignCache, signEntityMedia, unsignEntityMedia } from './utils';\n\nconst signFileUrlsOnDocumentService = async () => {\n const { provider } = strapi.plugins.upload;\n const isPrivate = await provider.isPrivate();\n\n // We only need to sign the file urls if the provider is private\n if (!isPrivate) {\n return;\n }\n\n strapi.documents.use(async (ctx, next) => {\n const uid = ctx.uid;\n\n // One presign per distinct richtext URL for this call, whichever entry it\n // appears in. Scoped to the call: a signed URL is only as fresh as the\n // request that produced it.\n const cache = createSignCache();\n\n // Never persist a signature: richtext / blocks embed the URL itself, so an\n // expiring one would be frozen in the row. `clone` is included because the\n // submitted data is merged over the source row, so it can carry signed\n // values too. The response is signed again below, so callers still get a\n // usable URL back.\n if (\n (ctx.action === 'create' || ctx.action === 'update' || ctx.action === 'clone') &&\n ctx.params?.data\n ) {\n ctx.params.data = await unsignEntityMedia(ctx.params.data, uid, cache);\n }\n\n const result: any = await next();\n\n if (ctx.action === 'findMany') {\n // Shape: [ entry ]\n return async.map(result, (entry: any) => signEntityMedia(entry, uid, cache));\n }\n\n if (\n ctx.action === 'findFirst' ||\n ctx.action === 'findOne' ||\n ctx.action === 'create' ||\n ctx.action === 'update'\n ) {\n // Shape: entry\n return signEntityMedia(result, uid, cache);\n }\n\n if (\n ctx.action === 'delete' ||\n ctx.action === 'clone' ||\n ctx.action === 'publish' ||\n ctx.action === 'unpublish' ||\n ctx.action === 'discardDraft'\n ) {\n // Shape: { entries: [ entry ] }\n // ...\n return {\n ...result,\n entries: await async.map(result.entries, (entry: any) =>\n signEntityMedia(entry, uid, cache)\n ),\n };\n }\n\n return result;\n });\n};\n\nexport default {\n signFileUrlsOnDocumentService,\n};\n"],"names":["signFileUrlsOnDocumentService","provider","strapi","plugins","upload","isPrivate","documents","use","ctx","next","uid","cache","createSignCache","action","params","data","unsignEntityMedia","result","async","map","entry","signEntityMedia","entries"],"mappings":";;;;;AAGA,MAAMA,6BAAAA,GAAgC,UAAA;AACpC,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAACC,MAAM;IAC1C,MAAMC,SAAAA,GAAY,MAAMJ,QAAAA,CAASI,SAAS,EAAA;;AAG1C,IAAA,IAAI,CAACA,SAAAA,EAAW;AACd,QAAA;AACF,IAAA;AAEAH,IAAAA,MAAAA,CAAOI,SAAS,CAACC,GAAG,CAAC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QAC/B,MAAMC,GAAAA,GAAMF,IAAIE,GAAG;;;;AAKnB,QAAA,MAAMC,KAAAA,GAAQC,qBAAAA,EAAAA;;;;;;AAOd,QAAA,IACE,CAACJ,GAAAA,CAAIK,MAAM,KAAK,QAAA,IAAYL,IAAIK,MAAM,KAAK,QAAA,IAAYL,GAAAA,CAAIK,MAAM,KAAK,OAAM,KAC5EL,GAAAA,CAAIM,MAAM,EAAEC,IAAAA,EACZ;YACAP,GAAAA,CAAIM,MAAM,CAACC,IAAI,GAAG,MAAMC,uBAAAA,CAAkBR,GAAAA,CAAIM,MAAM,CAACC,IAAI,EAAEL,GAAAA,EAAKC,KAAAA,CAAAA;AAClE,QAAA;AAEA,QAAA,MAAMM,SAAc,MAAMR,IAAAA,EAAAA;QAE1B,IAAID,GAAAA,CAAIK,MAAM,KAAK,UAAA,EAAY;;YAE7B,OAAOK,aAAAA,CAAMC,GAAG,CAACF,MAAAA,EAAQ,CAACG,KAAAA,GAAeC,qBAAAA,CAAgBD,OAAOV,GAAAA,EAAKC,KAAAA,CAAAA,CAAAA;AACvE,QAAA;AAEA,QAAA,IACEH,GAAAA,CAAIK,MAAM,KAAK,WAAA,IACfL,IAAIK,MAAM,KAAK,SAAA,IACfL,GAAAA,CAAIK,MAAM,KAAK,QAAA,IACfL,GAAAA,CAAIK,MAAM,KAAK,QAAA,EACf;;YAEA,OAAOQ,qBAAAA,CAAgBJ,QAAQP,GAAAA,EAAKC,KAAAA,CAAAA;AACtC,QAAA;AAEA,QAAA,IACEH,IAAIK,MAAM,KAAK,YACfL,GAAAA,CAAIK,MAAM,KAAK,OAAA,IACfL,GAAAA,CAAIK,MAAM,KAAK,SAAA,IACfL,IAAIK,MAAM,KAAK,eACfL,GAAAA,CAAIK,MAAM,KAAK,cAAA,EACf;;;YAGA,OAAO;AACL,gBAAA,GAAGI,MAAM;gBACTK,OAAAA,EAAS,MAAMJ,aAAAA,CAAMC,GAAG,CAACF,MAAAA,CAAOK,OAAO,EAAE,CAACF,KAAAA,GACxCC,qBAAAA,CAAgBD,KAAAA,EAAOV,GAAAA,EAAKC,KAAAA,CAAAA;AAEhC,aAAA;AACF,QAAA;QAEA,OAAOM,MAAAA;AACT,IAAA,CAAA,CAAA;AACF,CAAA;AAEA,iBAAe;AACbjB,IAAAA;AACF,CAAA;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { async } from '@strapi/utils';
2
- import { signEntityMedia } from './utils.mjs';
2
+ import { unsignEntityMedia, signEntityMedia, createSignCache } from './utils.mjs';
3
3
 
4
4
  const signFileUrlsOnDocumentService = async ()=>{
5
5
  const { provider } = strapi.plugins.upload;
@@ -10,21 +10,33 @@ const signFileUrlsOnDocumentService = async ()=>{
10
10
  }
11
11
  strapi.documents.use(async (ctx, next)=>{
12
12
  const uid = ctx.uid;
13
+ // One presign per distinct richtext URL for this call, whichever entry it
14
+ // appears in. Scoped to the call: a signed URL is only as fresh as the
15
+ // request that produced it.
16
+ const cache = createSignCache();
17
+ // Never persist a signature: richtext / blocks embed the URL itself, so an
18
+ // expiring one would be frozen in the row. `clone` is included because the
19
+ // submitted data is merged over the source row, so it can carry signed
20
+ // values too. The response is signed again below, so callers still get a
21
+ // usable URL back.
22
+ if ((ctx.action === 'create' || ctx.action === 'update' || ctx.action === 'clone') && ctx.params?.data) {
23
+ ctx.params.data = await unsignEntityMedia(ctx.params.data, uid, cache);
24
+ }
13
25
  const result = await next();
14
26
  if (ctx.action === 'findMany') {
15
27
  // Shape: [ entry ]
16
- return async.map(result, (entry)=>signEntityMedia(entry, uid));
28
+ return async.map(result, (entry)=>signEntityMedia(entry, uid, cache));
17
29
  }
18
30
  if (ctx.action === 'findFirst' || ctx.action === 'findOne' || ctx.action === 'create' || ctx.action === 'update') {
19
31
  // Shape: entry
20
- return signEntityMedia(result, uid);
32
+ return signEntityMedia(result, uid, cache);
21
33
  }
22
34
  if (ctx.action === 'delete' || ctx.action === 'clone' || ctx.action === 'publish' || ctx.action === 'unpublish' || ctx.action === 'discardDraft') {
23
35
  // Shape: { entries: [ entry ] }
24
36
  // ...
25
37
  return {
26
38
  ...result,
27
- entries: await async.map(result.entries, (entry)=>signEntityMedia(entry, uid))
39
+ entries: await async.map(result.entries, (entry)=>signEntityMedia(entry, uid, cache))
28
40
  };
29
41
  }
30
42
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/extensions/index.ts"],"sourcesContent":["import { async } from '@strapi/utils';\nimport { signEntityMedia } from './utils';\n\nconst signFileUrlsOnDocumentService = async () => {\n const { provider } = strapi.plugins.upload;\n const isPrivate = await provider.isPrivate();\n\n // We only need to sign the file urls if the provider is private\n if (!isPrivate) {\n return;\n }\n\n strapi.documents.use(async (ctx, next) => {\n const uid = ctx.uid;\n const result: any = await next();\n\n if (ctx.action === 'findMany') {\n // Shape: [ entry ]\n return async.map(result, (entry: any) => signEntityMedia(entry, uid));\n }\n\n if (\n ctx.action === 'findFirst' ||\n ctx.action === 'findOne' ||\n ctx.action === 'create' ||\n ctx.action === 'update'\n ) {\n // Shape: entry\n return signEntityMedia(result, uid);\n }\n\n if (\n ctx.action === 'delete' ||\n ctx.action === 'clone' ||\n ctx.action === 'publish' ||\n ctx.action === 'unpublish' ||\n ctx.action === 'discardDraft'\n ) {\n // Shape: { entries: [ entry ] }\n // ...\n return {\n ...result,\n entries: await async.map(result.entries, (entry: any) => signEntityMedia(entry, uid)),\n };\n }\n\n return result;\n });\n};\n\nexport default {\n signFileUrlsOnDocumentService,\n};\n"],"names":["signFileUrlsOnDocumentService","provider","strapi","plugins","upload","isPrivate","documents","use","ctx","next","uid","result","action","async","map","entry","signEntityMedia","entries"],"mappings":";;;AAGA,MAAMA,6BAAAA,GAAgC,UAAA;AACpC,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAACC,MAAM;IAC1C,MAAMC,SAAAA,GAAY,MAAMJ,QAAAA,CAASI,SAAS,EAAA;;AAG1C,IAAA,IAAI,CAACA,SAAAA,EAAW;AACd,QAAA;AACF,IAAA;AAEAH,IAAAA,MAAAA,CAAOI,SAAS,CAACC,GAAG,CAAC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QAC/B,MAAMC,GAAAA,GAAMF,IAAIE,GAAG;AACnB,QAAA,MAAMC,SAAc,MAAMF,IAAAA,EAAAA;QAE1B,IAAID,GAAAA,CAAII,MAAM,KAAK,UAAA,EAAY;;AAE7B,YAAA,OAAOC,MAAMC,GAAG,CAACH,QAAQ,CAACI,KAAAA,GAAeC,gBAAgBD,KAAAA,EAAOL,GAAAA,CAAAA,CAAAA;AAClE,QAAA;AAEA,QAAA,IACEF,GAAAA,CAAII,MAAM,KAAK,WAAA,IACfJ,IAAII,MAAM,KAAK,SAAA,IACfJ,GAAAA,CAAII,MAAM,KAAK,QAAA,IACfJ,GAAAA,CAAII,MAAM,KAAK,QAAA,EACf;;AAEA,YAAA,OAAOI,gBAAgBL,MAAAA,EAAQD,GAAAA,CAAAA;AACjC,QAAA;AAEA,QAAA,IACEF,IAAII,MAAM,KAAK,YACfJ,GAAAA,CAAII,MAAM,KAAK,OAAA,IACfJ,GAAAA,CAAII,MAAM,KAAK,SAAA,IACfJ,IAAII,MAAM,KAAK,eACfJ,GAAAA,CAAII,MAAM,KAAK,cAAA,EACf;;;YAGA,OAAO;AACL,gBAAA,GAAGD,MAAM;gBACTM,OAAAA,EAAS,MAAMJ,KAAAA,CAAMC,GAAG,CAACH,MAAAA,CAAOM,OAAO,EAAE,CAACF,KAAAA,GAAeC,eAAAA,CAAgBD,KAAAA,EAAOL,GAAAA,CAAAA;AAClF,aAAA;AACF,QAAA;QAEA,OAAOC,MAAAA;AACT,IAAA,CAAA,CAAA;AACF,CAAA;AAEA,iBAAe;AACbX,IAAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../server/src/services/extensions/index.ts"],"sourcesContent":["import { async } from '@strapi/utils';\nimport { createSignCache, signEntityMedia, unsignEntityMedia } from './utils';\n\nconst signFileUrlsOnDocumentService = async () => {\n const { provider } = strapi.plugins.upload;\n const isPrivate = await provider.isPrivate();\n\n // We only need to sign the file urls if the provider is private\n if (!isPrivate) {\n return;\n }\n\n strapi.documents.use(async (ctx, next) => {\n const uid = ctx.uid;\n\n // One presign per distinct richtext URL for this call, whichever entry it\n // appears in. Scoped to the call: a signed URL is only as fresh as the\n // request that produced it.\n const cache = createSignCache();\n\n // Never persist a signature: richtext / blocks embed the URL itself, so an\n // expiring one would be frozen in the row. `clone` is included because the\n // submitted data is merged over the source row, so it can carry signed\n // values too. The response is signed again below, so callers still get a\n // usable URL back.\n if (\n (ctx.action === 'create' || ctx.action === 'update' || ctx.action === 'clone') &&\n ctx.params?.data\n ) {\n ctx.params.data = await unsignEntityMedia(ctx.params.data, uid, cache);\n }\n\n const result: any = await next();\n\n if (ctx.action === 'findMany') {\n // Shape: [ entry ]\n return async.map(result, (entry: any) => signEntityMedia(entry, uid, cache));\n }\n\n if (\n ctx.action === 'findFirst' ||\n ctx.action === 'findOne' ||\n ctx.action === 'create' ||\n ctx.action === 'update'\n ) {\n // Shape: entry\n return signEntityMedia(result, uid, cache);\n }\n\n if (\n ctx.action === 'delete' ||\n ctx.action === 'clone' ||\n ctx.action === 'publish' ||\n ctx.action === 'unpublish' ||\n ctx.action === 'discardDraft'\n ) {\n // Shape: { entries: [ entry ] }\n // ...\n return {\n ...result,\n entries: await async.map(result.entries, (entry: any) =>\n signEntityMedia(entry, uid, cache)\n ),\n };\n }\n\n return result;\n });\n};\n\nexport default {\n signFileUrlsOnDocumentService,\n};\n"],"names":["signFileUrlsOnDocumentService","provider","strapi","plugins","upload","isPrivate","documents","use","ctx","next","uid","cache","createSignCache","action","params","data","unsignEntityMedia","result","async","map","entry","signEntityMedia","entries"],"mappings":";;;AAGA,MAAMA,6BAAAA,GAAgC,UAAA;AACpC,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,MAAAA,CAAOC,OAAO,CAACC,MAAM;IAC1C,MAAMC,SAAAA,GAAY,MAAMJ,QAAAA,CAASI,SAAS,EAAA;;AAG1C,IAAA,IAAI,CAACA,SAAAA,EAAW;AACd,QAAA;AACF,IAAA;AAEAH,IAAAA,MAAAA,CAAOI,SAAS,CAACC,GAAG,CAAC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;QAC/B,MAAMC,GAAAA,GAAMF,IAAIE,GAAG;;;;AAKnB,QAAA,MAAMC,KAAAA,GAAQC,eAAAA,EAAAA;;;;;;AAOd,QAAA,IACE,CAACJ,GAAAA,CAAIK,MAAM,KAAK,QAAA,IAAYL,IAAIK,MAAM,KAAK,QAAA,IAAYL,GAAAA,CAAIK,MAAM,KAAK,OAAM,KAC5EL,GAAAA,CAAIM,MAAM,EAAEC,IAAAA,EACZ;YACAP,GAAAA,CAAIM,MAAM,CAACC,IAAI,GAAG,MAAMC,iBAAAA,CAAkBR,GAAAA,CAAIM,MAAM,CAACC,IAAI,EAAEL,GAAAA,EAAKC,KAAAA,CAAAA;AAClE,QAAA;AAEA,QAAA,MAAMM,SAAc,MAAMR,IAAAA,EAAAA;QAE1B,IAAID,GAAAA,CAAIK,MAAM,KAAK,UAAA,EAAY;;YAE7B,OAAOK,KAAAA,CAAMC,GAAG,CAACF,MAAAA,EAAQ,CAACG,KAAAA,GAAeC,eAAAA,CAAgBD,OAAOV,GAAAA,EAAKC,KAAAA,CAAAA,CAAAA;AACvE,QAAA;AAEA,QAAA,IACEH,GAAAA,CAAIK,MAAM,KAAK,WAAA,IACfL,IAAIK,MAAM,KAAK,SAAA,IACfL,GAAAA,CAAIK,MAAM,KAAK,QAAA,IACfL,GAAAA,CAAIK,MAAM,KAAK,QAAA,EACf;;YAEA,OAAOQ,eAAAA,CAAgBJ,QAAQP,GAAAA,EAAKC,KAAAA,CAAAA;AACtC,QAAA;AAEA,QAAA,IACEH,IAAIK,MAAM,KAAK,YACfL,GAAAA,CAAIK,MAAM,KAAK,OAAA,IACfL,GAAAA,CAAIK,MAAM,KAAK,SAAA,IACfL,IAAIK,MAAM,KAAK,eACfL,GAAAA,CAAIK,MAAM,KAAK,cAAA,EACf;;;YAGA,OAAO;AACL,gBAAA,GAAGI,MAAM;gBACTK,OAAAA,EAAS,MAAMJ,KAAAA,CAAMC,GAAG,CAACF,MAAAA,CAAOK,OAAO,EAAE,CAACF,KAAAA,GACxCC,eAAAA,CAAgBD,KAAAA,EAAOV,GAAAA,EAAKC,KAAAA,CAAAA;AAEhC,aAAA;AACF,QAAA;QAEA,OAAOM,MAAAA;AACT,IAAA,CAAA,CAAA;AACF,CAAA;AAEA,iBAAe;AACbjB,IAAAA;AACF,CAAA;;;;"}