@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.
- package/dist/admin/App.js +33 -0
- package/dist/admin/App.js.map +1 -0
- package/dist/admin/App.mjs +31 -0
- package/dist/admin/App.mjs.map +1 -0
- package/dist/admin/components/Drawer.js.map +1 -0
- package/dist/admin/components/Drawer.mjs.map +1 -0
- package/dist/admin/components/TruncatedText.js.map +1 -0
- package/dist/admin/components/TruncatedText.mjs.map +1 -0
- package/dist/admin/components/UploadProgressDialog.js +700 -0
- package/dist/admin/components/UploadProgressDialog.js.map +1 -0
- package/dist/admin/components/UploadProgressDialog.mjs +698 -0
- package/dist/admin/components/UploadProgressDialog.mjs.map +1 -0
- package/dist/admin/constants.js +7 -12
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs +7 -12
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/hooks/useAIMetadataEnabled.js +39 -0
- package/dist/admin/hooks/useAIMetadataEnabled.js.map +1 -0
- package/dist/admin/hooks/useAIMetadataEnabled.mjs +37 -0
- package/dist/admin/hooks/useAIMetadataEnabled.mjs.map +1 -0
- package/dist/admin/hooks/useApiErrorMessage.js.map +1 -0
- package/dist/admin/hooks/useApiErrorMessage.mjs.map +1 -0
- package/dist/admin/hooks/useMediaLibraryPermissions.js +24 -5
- package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
- package/dist/admin/hooks/useMediaLibraryPermissions.mjs +24 -5
- package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
- package/dist/admin/hooks/useTracking.js +39 -7
- package/dist/admin/hooks/useTracking.js.map +1 -1
- package/dist/admin/hooks/useTracking.mjs +38 -8
- package/dist/admin/hooks/useTracking.mjs.map +1 -1
- package/dist/admin/index.js +18 -22
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +18 -22
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/legacy/ai/components/AIAssetCard.js +621 -0
- package/dist/admin/legacy/ai/components/AIAssetCard.js.map +1 -0
- package/dist/admin/legacy/ai/components/AIAssetCard.mjs +598 -0
- package/dist/admin/legacy/ai/components/AIAssetCard.mjs.map +1 -0
- package/dist/admin/legacy/ai/components/AIUploadModal.js.map +1 -0
- package/dist/admin/legacy/ai/components/AIUploadModal.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AssetCard.js +67 -0
- package/dist/admin/legacy/components/AssetCard/AssetCard.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AssetCard.mjs +65 -0
- package/dist/admin/legacy/components/AssetCard/AssetCard.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AssetCardBase.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AssetCardBase.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AudioAssetCard.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AudioAssetCard.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AudioPreview.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/AudioPreview.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/DocAssetCard.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/DocAssetCard.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/ImageAssetCard.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/ImageAssetCard.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.js +154 -0
- package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.mjs +132 -0
- package/dist/admin/legacy/components/AssetCard/UploadingAssetCard.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/VideoAssetCard.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/VideoAssetCard.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetCard/VideoPreview.js.map +1 -0
- package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/AssetDialog.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js +320 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs +318 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/PageSize.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/DialogFooter.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/DialogFooter.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -0
- package/dist/admin/legacy/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetGridList/AssetGridList.js.map +1 -0
- package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs.map +1 -0
- package/dist/admin/legacy/components/AssetGridList/Draggable.js.map +1 -0
- package/dist/admin/legacy/components/AssetGridList/Draggable.mjs.map +1 -0
- package/dist/admin/legacy/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/admin/legacy/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -0
- package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -0
- package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -0
- package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -0
- package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/ContextInfo/ContextInfo.js.map +1 -0
- package/dist/admin/legacy/components/ContextInfo/ContextInfo.mjs.map +1 -0
- package/dist/admin/legacy/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
- package/dist/admin/legacy/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/DialogHeader.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/DialogHeader.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.js +114 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +89 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.js +362 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +337 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -0
- package/dist/admin/legacy/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -0
- package/dist/admin/legacy/components/EditFolderDialog/EditFolderDialog.js.map +1 -0
- package/dist/admin/legacy/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -0
- package/dist/admin/legacy/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -0
- package/dist/admin/legacy/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -0
- package/dist/admin/legacy/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/EmptyAssets/EmptyAssetGrid.js.map +1 -0
- package/dist/admin/legacy/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -0
- package/dist/admin/legacy/components/EmptyAssets/EmptyAssets.js.map +1 -0
- package/dist/admin/legacy/components/EmptyAssets/EmptyAssets.mjs.map +1 -0
- package/dist/admin/legacy/components/FilterList/FilterList.js.map +1 -0
- package/dist/admin/legacy/components/FilterList/FilterList.mjs.map +1 -0
- package/dist/admin/legacy/components/FilterList/FilterTag.js.map +1 -0
- package/dist/admin/legacy/components/FilterList/FilterTag.mjs.map +1 -0
- package/dist/admin/legacy/components/FilterPopover/FilterPopover.js.map +1 -0
- package/dist/admin/legacy/components/FilterPopover/FilterPopover.mjs.map +1 -0
- package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js.map +1 -0
- package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs.map +1 -0
- package/dist/admin/legacy/components/FilterPopover/utils/getFilterList.js.map +1 -0
- package/dist/admin/legacy/components/FilterPopover/utils/getFilterList.mjs.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCard/FolderCard.js.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -0
- package/dist/admin/legacy/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -0
- package/dist/admin/legacy/components/FolderCard/contexts/FolderCard.js.map +1 -0
- package/dist/admin/legacy/components/FolderCard/contexts/FolderCard.mjs.map +1 -0
- package/dist/admin/legacy/components/FolderGridList/FolderGridList.js.map +1 -0
- package/dist/admin/legacy/components/FolderGridList/FolderGridList.mjs.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.js +89 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +87 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +111 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +89 -0
- package/dist/admin/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -0
- package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -0
- package/dist/admin/legacy/components/SelectTree/Option.js.map +1 -0
- package/dist/admin/legacy/components/SelectTree/Option.mjs.map +1 -0
- package/dist/admin/legacy/components/SelectTree/SelectTree.js.map +1 -0
- package/dist/admin/legacy/components/SelectTree/SelectTree.mjs.map +1 -0
- package/dist/admin/legacy/components/SelectTree/utils/flattenTree.js.map +1 -0
- package/dist/admin/legacy/components/SelectTree/utils/flattenTree.mjs.map +1 -0
- package/dist/admin/legacy/components/SelectTree/utils/getOpenValues.js.map +1 -0
- package/dist/admin/legacy/components/SelectTree/utils/getOpenValues.mjs.map +1 -0
- package/dist/admin/legacy/components/SelectTree/utils/getValuesToClose.js.map +1 -0
- package/dist/admin/legacy/components/SelectTree/utils/getValuesToClose.mjs.map +1 -0
- package/dist/admin/legacy/components/SortPicker/SortPicker.js +40 -0
- package/dist/admin/legacy/components/SortPicker/SortPicker.js.map +1 -0
- package/dist/admin/legacy/components/SortPicker/SortPicker.mjs +38 -0
- package/dist/admin/legacy/components/SortPicker/SortPicker.mjs.map +1 -0
- package/dist/admin/legacy/components/TableList/CellContent.js.map +1 -0
- package/dist/admin/legacy/components/TableList/CellContent.mjs.map +1 -0
- package/dist/admin/legacy/components/TableList/PreviewCell.js +116 -0
- package/dist/admin/legacy/components/TableList/PreviewCell.js.map +1 -0
- package/dist/admin/legacy/components/TableList/PreviewCell.mjs +114 -0
- package/dist/admin/legacy/components/TableList/PreviewCell.mjs.map +1 -0
- package/dist/admin/legacy/components/TableList/TableList.js +100 -0
- package/dist/admin/legacy/components/TableList/TableList.js.map +1 -0
- package/dist/admin/legacy/components/TableList/TableList.mjs +98 -0
- package/dist/admin/legacy/components/TableList/TableList.mjs.map +1 -0
- package/dist/admin/legacy/components/TableList/TableRows.js +105 -0
- package/dist/admin/legacy/components/TableList/TableRows.js.map +1 -0
- package/dist/admin/legacy/components/TableList/TableRows.mjs +103 -0
- package/dist/admin/legacy/components/TableList/TableRows.mjs.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +177 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +155 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -0
- package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -0
- package/dist/admin/legacy/components/UploadProgress/UploadProgress.js.map +1 -0
- package/dist/admin/legacy/components/UploadProgress/UploadProgress.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useAiAvailability.js.map +1 -0
- package/dist/admin/legacy/hooks/useAiAvailability.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useAssets.js +127 -0
- package/dist/admin/legacy/hooks/useAssets.js.map +1 -0
- package/dist/admin/legacy/hooks/useAssets.mjs +105 -0
- package/dist/admin/legacy/hooks/useAssets.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useBulkEdit.js +65 -0
- package/dist/admin/legacy/hooks/useBulkEdit.js.map +1 -0
- package/dist/admin/legacy/hooks/useBulkEdit.mjs +63 -0
- package/dist/admin/legacy/hooks/useBulkEdit.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useBulkMove.js +78 -0
- package/dist/admin/legacy/hooks/useBulkMove.js.map +1 -0
- package/dist/admin/legacy/hooks/useBulkMove.mjs +76 -0
- package/dist/admin/legacy/hooks/useBulkMove.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useBulkRemove.js +83 -0
- package/dist/admin/legacy/hooks/useBulkRemove.js.map +1 -0
- package/dist/admin/legacy/hooks/useBulkRemove.mjs +81 -0
- package/dist/admin/legacy/hooks/useBulkRemove.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useConfig.js +58 -0
- package/dist/admin/legacy/hooks/useConfig.js.map +1 -0
- package/dist/admin/legacy/hooks/useConfig.mjs +56 -0
- package/dist/admin/legacy/hooks/useConfig.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useCropImg.js.map +1 -0
- package/dist/admin/legacy/hooks/useCropImg.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useEditAsset.js +115 -0
- package/dist/admin/legacy/hooks/useEditAsset.js.map +1 -0
- package/dist/admin/legacy/hooks/useEditAsset.mjs +93 -0
- package/dist/admin/legacy/hooks/useEditAsset.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useEditFolder.js +45 -0
- package/dist/admin/legacy/hooks/useEditFolder.js.map +1 -0
- package/dist/admin/legacy/hooks/useEditFolder.mjs +43 -0
- package/dist/admin/legacy/hooks/useEditFolder.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useFolder.js +57 -0
- package/dist/admin/legacy/hooks/useFolder.js.map +1 -0
- package/dist/admin/legacy/hooks/useFolder.mjs +55 -0
- package/dist/admin/legacy/hooks/useFolder.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useFolderStructure.js +52 -0
- package/dist/admin/legacy/hooks/useFolderStructure.js.map +1 -0
- package/dist/admin/legacy/hooks/useFolderStructure.mjs +50 -0
- package/dist/admin/legacy/hooks/useFolderStructure.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useFolders.js +108 -0
- package/dist/admin/legacy/hooks/useFolders.js.map +1 -0
- package/dist/admin/legacy/hooks/useFolders.mjs +86 -0
- package/dist/admin/legacy/hooks/useFolders.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useMediaLibraryPermissions.js +16 -0
- package/dist/admin/legacy/hooks/useMediaLibraryPermissions.js.map +1 -0
- package/dist/admin/legacy/hooks/useMediaLibraryPermissions.mjs +14 -0
- package/dist/admin/legacy/hooks/useMediaLibraryPermissions.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useModalQueryParams.js.map +1 -0
- package/dist/admin/legacy/hooks/useModalQueryParams.mjs.map +1 -0
- package/dist/admin/legacy/hooks/usePersistentState.js.map +1 -0
- package/dist/admin/legacy/hooks/usePersistentState.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useRemoveAsset.js +58 -0
- package/dist/admin/legacy/hooks/useRemoveAsset.js.map +1 -0
- package/dist/admin/legacy/hooks/useRemoveAsset.mjs +56 -0
- package/dist/admin/legacy/hooks/useRemoveAsset.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useSelectionState.js.map +1 -0
- package/dist/admin/legacy/hooks/useSelectionState.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useSettings.js.map +1 -0
- package/dist/admin/legacy/hooks/useSettings.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useTracking.js +25 -0
- package/dist/admin/legacy/hooks/useTracking.js.map +1 -0
- package/dist/admin/legacy/hooks/useTracking.mjs +23 -0
- package/dist/admin/legacy/hooks/useTracking.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useUpload.js +109 -0
- package/dist/admin/legacy/hooks/useUpload.js.map +1 -0
- package/dist/admin/legacy/hooks/useUpload.mjs +87 -0
- package/dist/admin/legacy/hooks/useUpload.mjs.map +1 -0
- package/dist/admin/legacy/hooks/utils/renameKeys.js.map +1 -0
- package/dist/admin/legacy/hooks/utils/renameKeys.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/App.js.map +1 -0
- package/dist/admin/legacy/pages/App/App.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js +145 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs +120 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.js +109 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.js.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.mjs +107 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.js +10 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.mjs +7 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/actions.js.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/actions.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/init.js.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/init.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/reducer.js.map +1 -0
- package/dist/admin/legacy/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/MediaLibrary.js +469 -0
- package/dist/admin/legacy/pages/App/MediaLibrary.js.map +1 -0
- package/dist/admin/legacy/pages/App/MediaLibrary.mjs +447 -0
- package/dist/admin/legacy/pages/App/MediaLibrary.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/components/BulkActions.js.map +1 -0
- package/dist/admin/legacy/pages/App/components/BulkActions.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/components/BulkDeleteButton.js.map +1 -0
- package/dist/admin/legacy/pages/App/components/BulkDeleteButton.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/components/BulkMoveButton.js.map +1 -0
- package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/components/EmptyOrNoPermissions.js.map +1 -0
- package/dist/admin/legacy/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/components/Filters.js.map +1 -0
- package/dist/admin/legacy/pages/App/components/Filters.mjs.map +1 -0
- package/dist/admin/legacy/pages/App/components/Header.js.map +1 -0
- package/dist/admin/legacy/pages/App/components/Header.mjs.map +1 -0
- package/dist/admin/legacy/utils/appendSearchParamsToUrl.js.map +1 -0
- package/dist/admin/legacy/utils/appendSearchParamsToUrl.mjs.map +1 -0
- package/dist/admin/legacy/utils/containsAssetFilter.js.map +1 -0
- package/dist/admin/legacy/utils/containsAssetFilter.mjs.map +1 -0
- package/dist/admin/legacy/utils/createAssetUrl.js.map +1 -0
- package/dist/admin/legacy/utils/createAssetUrl.mjs.map +1 -0
- package/dist/admin/legacy/utils/displayedFilters.js.map +1 -0
- package/dist/admin/legacy/utils/displayedFilters.mjs.map +1 -0
- package/dist/admin/legacy/utils/downloadFile.js +13 -0
- package/dist/admin/legacy/utils/downloadFile.js.map +1 -0
- package/dist/admin/legacy/utils/downloadFile.mjs +11 -0
- package/dist/admin/legacy/utils/downloadFile.mjs.map +1 -0
- package/dist/admin/legacy/utils/findRecursiveFolderByValue.js.map +1 -0
- package/dist/admin/legacy/utils/findRecursiveFolderByValue.mjs.map +1 -0
- package/dist/admin/legacy/utils/formatBytes.js.map +1 -0
- package/dist/admin/legacy/utils/formatBytes.mjs.map +1 -0
- package/dist/admin/legacy/utils/formatDuration.js.map +1 -0
- package/dist/admin/legacy/utils/formatDuration.mjs.map +1 -0
- package/dist/admin/legacy/utils/getAPIInnerErrors.js.map +1 -0
- package/dist/admin/legacy/utils/getAPIInnerErrors.mjs.map +1 -0
- package/dist/admin/legacy/utils/getAllowedFiles.js.map +1 -0
- package/dist/admin/legacy/utils/getAllowedFiles.mjs.map +1 -0
- package/dist/admin/legacy/utils/getBreadcrumbDataCM.js.map +1 -0
- package/dist/admin/legacy/utils/getBreadcrumbDataCM.mjs.map +1 -0
- package/dist/admin/legacy/utils/getBreadcrumbDataML.js.map +1 -0
- package/dist/admin/legacy/utils/getBreadcrumbDataML.mjs.map +1 -0
- package/dist/admin/legacy/utils/getFileExtension.js.map +1 -0
- package/dist/admin/legacy/utils/getFileExtension.mjs.map +1 -0
- package/dist/admin/legacy/utils/getFolderParents.js.map +1 -0
- package/dist/admin/legacy/utils/getFolderParents.mjs.map +1 -0
- package/dist/admin/legacy/utils/getFolderURL.js.map +1 -0
- package/dist/admin/legacy/utils/getFolderURL.mjs.map +1 -0
- package/dist/admin/legacy/utils/getTrad.js +8 -0
- package/dist/admin/legacy/utils/getTrad.js.map +1 -0
- package/dist/admin/legacy/utils/getTrad.mjs +6 -0
- package/dist/admin/legacy/utils/getTrad.mjs.map +1 -0
- package/dist/admin/legacy/utils/icons.js +23 -0
- package/dist/admin/legacy/utils/icons.js.map +1 -0
- package/dist/admin/legacy/utils/icons.mjs +19 -0
- package/dist/admin/legacy/utils/icons.mjs.map +1 -0
- package/dist/admin/legacy/utils/moveElement.js.map +1 -0
- package/dist/admin/legacy/utils/moveElement.mjs.map +1 -0
- package/dist/admin/legacy/utils/normalizeAPIError.js.map +1 -0
- package/dist/admin/legacy/utils/normalizeAPIError.mjs.map +1 -0
- package/dist/admin/legacy/utils/prefixFileUrlWithBackendUrl.js.map +1 -0
- package/dist/admin/legacy/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -0
- package/dist/admin/legacy/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/legacy/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/legacy/utils/rawFileToAsset.js +23 -0
- package/dist/admin/legacy/utils/rawFileToAsset.js.map +1 -0
- package/dist/admin/legacy/utils/rawFileToAsset.mjs +21 -0
- package/dist/admin/legacy/utils/rawFileToAsset.mjs.map +1 -0
- package/dist/admin/legacy/utils/resolveFileMime.js.map +1 -0
- package/dist/admin/legacy/utils/resolveFileMime.mjs.map +1 -0
- package/dist/admin/legacy/utils/toSingularTypes.js.map +1 -0
- package/dist/admin/legacy/utils/toSingularTypes.mjs.map +1 -0
- package/dist/admin/legacy/utils/urlYupSchema.js.map +1 -0
- package/dist/admin/legacy/utils/urlYupSchema.mjs.map +1 -0
- package/dist/admin/legacy/utils/urlsToAssets.js +42 -0
- package/dist/admin/legacy/utils/urlsToAssets.js.map +1 -0
- package/dist/admin/legacy/utils/urlsToAssets.mjs +40 -0
- package/dist/admin/legacy/utils/urlsToAssets.mjs.map +1 -0
- package/dist/admin/pages/Assets/AssetsPage.js +828 -0
- package/dist/admin/pages/Assets/AssetsPage.js.map +1 -0
- package/dist/admin/pages/Assets/AssetsPage.mjs +806 -0
- package/dist/admin/pages/Assets/AssetsPage.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/ActionsMenuContent.js.map +1 -0
- package/dist/admin/pages/Assets/components/ActionsMenuContent.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetActionsMenu.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetActionsMenu.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +1202 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +1175 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.js +261 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs +239 -0
- package/dist/admin/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/useCropImg.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetDetails/useCropImg.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetsGrid.js +528 -0
- package/dist/admin/pages/Assets/components/AssetsGrid.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetsGrid.mjs +526 -0
- package/dist/admin/pages/Assets/components/AssetsGrid.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetsSearchInput.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/AssetsTable.js.map +1 -0
- package/dist/admin/pages/Assets/components/AssetsTable.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/BulkActionsBar.js +431 -0
- package/dist/admin/pages/Assets/components/BulkActionsBar.js.map +1 -0
- package/dist/admin/pages/Assets/components/BulkActionsBar.mjs +429 -0
- package/dist/admin/pages/Assets/components/BulkActionsBar.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/BulkMoveDialog.js.map +1 -0
- package/dist/admin/pages/Assets/components/BulkMoveDialog.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/BusyOverlay.js.map +1 -0
- package/dist/admin/pages/Assets/components/BusyOverlay.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/DateRangeCalendar.js.map +1 -0
- package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/DeleteItemsDialog.js.map +1 -0
- package/dist/admin/pages/Assets/components/DeleteItemsDialog.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.js +306 -0
- package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.mjs +303 -0
- package/dist/admin/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.js +147 -0
- package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs +145 -0
- package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/buildDragSet.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/buildDragSet.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/computeValidDropTargets.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/computeValidDropTargets.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/dndIds.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/useFolderTreeDroppable.js.map +1 -0
- package/dist/admin/pages/Assets/components/Dnd/useFolderTreeDroppable.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -0
- package/dist/admin/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -0
- package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/EmptyState.js.map +1 -0
- package/dist/admin/pages/Assets/components/EmptyState.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/FilterBadges.js.map +1 -0
- package/dist/admin/pages/Assets/components/FilterBadges.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/FilterMenu.js.map +1 -0
- package/dist/admin/pages/Assets/components/FilterMenu.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/FolderActionsMenu.js.map +1 -0
- package/dist/admin/pages/Assets/components/FolderActionsMenu.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/FolderFormDialog.js.map +1 -0
- package/dist/admin/pages/Assets/components/FolderFormDialog.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js.map +1 -0
- package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/FolderTree/useSpringLoadedExpand.js.map +1 -0
- package/dist/admin/pages/Assets/components/FolderTree/useSpringLoadedExpand.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/ImportFromUrlDialog.js.map +1 -0
- package/dist/admin/pages/Assets/components/ImportFromUrlDialog.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/MainAreaContextMenu.js.map +1 -0
- package/dist/admin/pages/Assets/components/MainAreaContextMenu.mjs.map +1 -0
- package/dist/admin/pages/Assets/components/SortMenu.js.map +1 -0
- package/dist/admin/pages/Assets/components/SortMenu.mjs.map +1 -0
- package/dist/admin/pages/Assets/constants.js.map +1 -0
- package/dist/admin/pages/Assets/constants.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useAssetSearch.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useAssetSelection.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useBusyAssets.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useBusyAssets.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useFolderInfo.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useFolderInfo.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useFolderNavigation.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useInfiniteAssets.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useListFilters.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useListFilters.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useListScrollRestoration.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useListScrollRestoration.mjs.map +1 -0
- package/dist/admin/pages/Assets/hooks/useListSort.js.map +1 -0
- package/dist/admin/pages/Assets/hooks/useListSort.mjs.map +1 -0
- package/dist/admin/pages/Assets/utils/buildAssetFilters.js.map +1 -0
- package/dist/admin/pages/Assets/utils/buildAssetFilters.mjs.map +1 -0
- package/dist/admin/pages/Assets/utils/listQueryKey.js.map +1 -0
- package/dist/admin/pages/Assets/utils/listQueryKey.mjs.map +1 -0
- package/dist/admin/pages/Assets/utils/mergeMixedList.js.map +1 -0
- package/dist/admin/pages/Assets/utils/mergeMixedList.mjs.map +1 -0
- package/dist/admin/pages/Assets/utils/mergeUploadedAssets.js.map +1 -0
- package/dist/admin/pages/Assets/utils/mergeUploadedAssets.mjs.map +1 -0
- package/dist/admin/pages/Assets/utils/renderedKeys.js.map +1 -0
- package/dist/admin/pages/Assets/utils/renderedKeys.mjs.map +1 -0
- package/dist/admin/pages/Assets/utils/selection.js.map +1 -0
- package/dist/admin/pages/Assets/utils/selection.mjs.map +1 -0
- package/dist/admin/pages/SettingsPage/SettingsPage.js +23 -28
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs +23 -28
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/useAIMetadataJob.js +110 -0
- package/dist/admin/pages/SettingsPage/useAIMetadataJob.js.map +1 -0
- package/dist/admin/pages/SettingsPage/useAIMetadataJob.mjs +88 -0
- package/dist/admin/pages/SettingsPage/useAIMetadataJob.mjs.map +1 -0
- package/dist/admin/services/api.js +775 -0
- package/dist/admin/services/api.js.map +1 -0
- package/dist/admin/services/api.mjs +766 -0
- package/dist/admin/services/api.mjs.map +1 -0
- package/dist/admin/services/assets.js.map +1 -0
- package/dist/admin/services/assets.mjs.map +1 -0
- package/dist/admin/services/folders.js.map +1 -0
- package/dist/admin/services/folders.mjs.map +1 -0
- package/dist/admin/services/settings.js.map +1 -0
- package/dist/admin/services/settings.mjs.map +1 -0
- package/dist/admin/services/uploadFileViaXHR.js.map +1 -0
- package/dist/admin/services/uploadFileViaXHR.mjs.map +1 -0
- package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +19 -2
- package/dist/admin/src/hooks/useTracking.d.ts +26 -1
- package/dist/admin/src/legacy/ai/components/AIAssetCard.d.ts +13 -0
- package/dist/admin/src/legacy/ai/components/AIUploadModal.d.ts +55 -0
- package/dist/admin/src/legacy/components/AssetCard/AssetCard.d.ts +19 -0
- package/dist/admin/src/legacy/components/AssetCard/UploadingAssetCard.d.ts +17 -0
- package/dist/admin/src/legacy/components/AssetDialog/AssetDialog.d.ts +39 -0
- package/dist/admin/src/legacy/components/AssetDialog/BrowseStep/BrowseStep.d.ts +63 -0
- package/dist/admin/src/legacy/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +7 -0
- package/dist/admin/src/legacy/components/AssetDialog/SelectedStep/SelectedStep.d.ts +8 -0
- package/dist/admin/src/legacy/components/AssetGridList/AssetGridList.d.ts +13 -0
- package/dist/admin/src/legacy/components/BulkMoveDialog/BulkMoveDialog.d.ts +15 -0
- package/dist/admin/src/legacy/components/EditAssetDialog/EditAssetContent.d.ts +31 -0
- package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +8 -0
- package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +26 -0
- package/dist/admin/src/legacy/components/EditAssetDialog/RemoveAssetDialog.d.ts +8 -0
- package/dist/admin/src/legacy/components/EditFolderDialog/EditFolderDialog.d.ts +12 -0
- package/dist/admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +10 -0
- package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +4 -0
- package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +9 -0
- package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +23 -0
- package/dist/admin/src/legacy/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +10 -0
- package/dist/admin/src/legacy/components/SelectTree/Option.d.ts +16 -0
- package/dist/admin/src/legacy/components/SortPicker/SortPicker.d.ts +7 -0
- package/dist/admin/src/legacy/components/TableList/CellContent.d.ts +8 -0
- package/dist/admin/src/legacy/components/TableList/PreviewCell.d.ts +7 -0
- package/dist/admin/src/legacy/components/TableList/TableList.d.ts +31 -0
- package/dist/admin/src/legacy/components/TableList/TableRows.d.ts +22 -0
- package/dist/admin/src/legacy/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +13 -0
- package/dist/admin/src/legacy/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +22 -0
- package/dist/admin/src/legacy/components/UploadAssetDialog/UploadAssetDialog.d.ts +21 -0
- package/dist/admin/src/legacy/components/UploadProgress/UploadProgress.d.ts +7 -0
- package/dist/admin/src/legacy/hooks/useAssets.d.ts +14 -0
- package/dist/admin/src/legacy/hooks/useBulkEdit.d.ts +91 -0
- package/dist/admin/src/legacy/hooks/useBulkMove.d.ts +209 -0
- package/dist/admin/src/legacy/hooks/useBulkRemove.d.ts +241 -0
- package/dist/admin/src/legacy/hooks/useConfig.d.ts +5 -0
- package/dist/admin/src/legacy/hooks/useEditAsset.d.ts +119 -0
- package/dist/admin/src/legacy/hooks/useEditFolder.d.ts +72 -0
- package/dist/admin/src/legacy/hooks/useFolder.d.ts +7 -0
- package/dist/admin/src/legacy/hooks/useFolderStructure.d.ts +18 -0
- package/dist/admin/src/legacy/hooks/useFolders.d.ts +11 -0
- package/dist/admin/src/legacy/hooks/useMediaLibraryPermissions.d.ts +4 -0
- package/dist/admin/src/legacy/hooks/useModalQueryParams.d.ts +20 -0
- package/dist/admin/src/legacy/hooks/useRemoveAsset.d.ts +8 -0
- package/dist/admin/src/legacy/hooks/useTracking.d.ts +4 -0
- package/dist/admin/src/legacy/hooks/useUpload.d.ts +15 -0
- package/dist/admin/src/legacy/pages/App/ConfigureTheView/ConfigureTheView.d.ts +6 -0
- package/dist/admin/src/legacy/pages/App/ConfigureTheView/components/Settings.d.ts +13 -0
- package/dist/admin/src/legacy/pages/App/ConfigureTheView/state/actions.d.ts +12 -0
- package/dist/admin/src/legacy/pages/App/ConfigureTheView/state/init.d.ts +8 -0
- package/dist/admin/src/legacy/pages/App/MediaLibrary.d.ts +1 -0
- package/dist/admin/src/legacy/pages/App/components/BulkActions.d.ts +15 -0
- package/dist/admin/src/legacy/pages/App/components/BulkDeleteButton.d.ts +7 -0
- package/dist/admin/src/legacy/pages/App/components/BulkMoveButton.d.ts +15 -0
- package/dist/admin/src/legacy/pages/App/components/Header.d.ts +22 -0
- package/dist/admin/src/legacy/utils/containsAssetFilter.d.ts +2 -0
- package/dist/admin/src/legacy/utils/createAssetUrl.d.ts +2 -0
- package/dist/admin/src/legacy/utils/downloadFile.d.ts +1 -0
- package/dist/admin/src/legacy/utils/findRecursiveFolderByValue.d.ts +11 -0
- package/dist/admin/src/legacy/utils/getAllowedFiles.d.ts +14 -0
- package/dist/admin/src/legacy/utils/getBreadcrumbDataCM.d.ts +19 -0
- package/dist/admin/src/legacy/utils/getBreadcrumbDataML.d.ts +18 -0
- package/dist/admin/src/legacy/utils/getFolderParents.d.ts +11 -0
- package/dist/admin/src/legacy/utils/getFolderURL.d.ts +5 -0
- package/dist/admin/src/legacy/utils/icons.d.ts +15 -0
- package/dist/admin/src/legacy/utils/index.d.ts +26 -0
- package/dist/admin/src/legacy/utils/rawFileToAsset.d.ts +14 -0
- package/dist/admin/src/pages/Assets/components/ActionsMenuContent.d.ts +33 -0
- package/dist/admin/src/pages/Assets/components/AssetActionsMenu.d.ts +26 -0
- package/dist/admin/src/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +16 -0
- package/dist/admin/src/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +46 -0
- package/dist/admin/src/pages/Assets/components/AssetDetails/AssetPreview.d.ts +9 -0
- package/dist/admin/src/pages/Assets/components/AssetsGrid.d.ts +12 -0
- package/dist/admin/src/pages/Assets/components/AssetsTable.d.ts +18 -0
- package/dist/admin/src/pages/Assets/components/BulkActionsBar.d.ts +28 -0
- package/dist/admin/src/pages/Assets/components/Dnd/computeValidDropTargets.d.ts +7 -0
- package/dist/admin/src/pages/Assets/components/FolderActionsMenu.d.ts +21 -0
- package/dist/admin/src/pages/Assets/hooks/useFolderNavigation.d.ts +7 -0
- package/dist/admin/src/pages/Assets/hooks/useInfiniteAssets.d.ts +45 -0
- package/dist/admin/src/pages/Assets/utils/mergeMixedList.d.ts +40 -0
- package/dist/admin/src/pages/Assets/utils/mergeUploadedAssets.d.ts +35 -0
- package/dist/admin/src/pages/Assets/utils/renderedKeys.d.ts +19 -0
- package/dist/admin/src/pages/SettingsPage/useAIMetadataJob.d.ts +9 -0
- package/dist/admin/src/services/api.d.ts +99 -0
- package/dist/admin/src/services/assets.d.ts +33 -0
- package/dist/admin/src/services/folders.d.ts +37 -0
- package/dist/admin/src/services/settings.d.ts +2 -0
- package/dist/admin/src/services/uploadFileViaXHR.d.ts +23 -0
- package/dist/admin/src/store/uploadProgress.d.ts +201 -0
- package/dist/admin/src/utils/canDropItemOnFolder.d.ts +9 -0
- package/dist/admin/src/utils/downloadFile.d.ts +5 -0
- package/dist/admin/src/utils/flattenFolderStructure.d.ts +18 -0
- package/dist/admin/src/utils/getFolderLabel.d.ts +11 -0
- package/dist/admin/src/utils/itemLocations.d.ts +31 -0
- package/dist/admin/store/hooks.js.map +1 -0
- package/dist/admin/store/hooks.mjs.map +1 -0
- package/dist/admin/store/uploadProgress.js +373 -0
- package/dist/admin/store/uploadProgress.js.map +1 -0
- package/dist/admin/store/uploadProgress.mjs +349 -0
- package/dist/admin/store/uploadProgress.mjs.map +1 -0
- package/dist/admin/translations/en.json.js +0 -3
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +0 -3
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/utils/buildBulkMovePayload.js.map +1 -0
- package/dist/admin/utils/buildBulkMovePayload.mjs.map +1 -0
- package/dist/admin/utils/buildDragSetFromSelection.js.map +1 -0
- package/dist/admin/utils/buildDragSetFromSelection.mjs.map +1 -0
- package/dist/admin/utils/canDropItemOnFolder.js.map +1 -0
- package/dist/admin/utils/canDropItemOnFolder.mjs.map +1 -0
- package/dist/admin/utils/createRafBatcher.js.map +1 -0
- package/dist/admin/utils/createRafBatcher.mjs.map +1 -0
- package/dist/admin/utils/downloadFile.js +13 -7
- package/dist/admin/utils/downloadFile.js.map +1 -1
- package/dist/admin/utils/downloadFile.mjs +13 -7
- package/dist/admin/utils/downloadFile.mjs.map +1 -1
- package/dist/admin/utils/files.js.map +1 -0
- package/dist/admin/utils/files.mjs.map +1 -0
- package/dist/admin/utils/flattenFolderStructure.js.map +1 -0
- package/dist/admin/utils/flattenFolderStructure.mjs.map +1 -0
- package/dist/admin/utils/formatMoveSuccessMessage.js.map +1 -0
- package/dist/admin/utils/formatMoveSuccessMessage.mjs.map +1 -0
- package/dist/admin/utils/getApiErrorMessage.js.map +1 -0
- package/dist/admin/utils/getApiErrorMessage.mjs.map +1 -0
- package/dist/admin/utils/getAssetIcon.js +28 -0
- package/dist/admin/utils/getAssetIcon.js.map +1 -0
- package/dist/admin/utils/getAssetIcon.mjs +26 -0
- package/dist/admin/utils/getAssetIcon.mjs.map +1 -0
- package/dist/admin/utils/getFolderLabel.js.map +1 -0
- package/dist/admin/utils/getFolderLabel.mjs.map +1 -0
- package/dist/admin/utils/getRelationId.js.map +1 -0
- package/dist/admin/utils/getRelationId.mjs.map +1 -0
- package/dist/admin/utils/isEventFromWithin.js.map +1 -0
- package/dist/admin/utils/isEventFromWithin.mjs.map +1 -0
- package/dist/admin/utils/itemLocations.js.map +1 -0
- package/dist/admin/utils/itemLocations.mjs.map +1 -0
- package/dist/admin/utils/itemSource.js.map +1 -0
- package/dist/admin/utils/itemSource.mjs.map +1 -0
- package/dist/admin/utils/searchQueryParam.js.map +1 -0
- package/dist/admin/utils/searchQueryParam.mjs.map +1 -0
- package/dist/admin/utils/translations.js +8 -0
- package/dist/admin/utils/translations.js.map +1 -0
- package/dist/admin/utils/translations.mjs +6 -0
- package/dist/admin/utils/translations.mjs.map +1 -0
- package/dist/server/bootstrap.js +11 -0
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +11 -0
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/controllers/admin-settings.js +1 -4
- package/dist/server/controllers/admin-settings.js.map +1 -1
- package/dist/server/controllers/admin-settings.mjs +1 -4
- package/dist/server/controllers/admin-settings.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +31 -1
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +31 -1
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/controllers/utils/find-entity-and-check-permissions.js +15 -4
- package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -1
- package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs +15 -4
- package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -1
- package/dist/server/controllers/utils/folders.js +1 -1
- package/dist/server/controllers/utils/folders.js.map +1 -1
- package/dist/server/controllers/utils/folders.mjs +1 -1
- package/dist/server/controllers/utils/folders.mjs.map +1 -1
- package/dist/server/mcp/ambient-instance.js +46 -0
- package/dist/server/mcp/ambient-instance.js.map +1 -0
- package/dist/server/mcp/ambient-instance.mjs +43 -0
- package/dist/server/mcp/ambient-instance.mjs.map +1 -0
- package/dist/server/mcp/handlers/constants.js +60 -0
- package/dist/server/mcp/handlers/constants.js.map +1 -0
- package/dist/server/mcp/handlers/constants.mjs +45 -0
- package/dist/server/mcp/handlers/constants.mjs.map +1 -0
- package/dist/server/mcp/handlers/folder-handlers.js +308 -0
- package/dist/server/mcp/handlers/folder-handlers.js.map +1 -0
- package/dist/server/mcp/handlers/folder-handlers.mjs +303 -0
- package/dist/server/mcp/handlers/folder-handlers.mjs.map +1 -0
- package/dist/server/mcp/handlers/read-handlers.js +134 -0
- package/dist/server/mcp/handlers/read-handlers.js.map +1 -0
- package/dist/server/mcp/handlers/read-handlers.mjs +130 -0
- package/dist/server/mcp/handlers/read-handlers.mjs.map +1 -0
- package/dist/server/mcp/handlers/write-handlers.js +315 -0
- package/dist/server/mcp/handlers/write-handlers.js.map +1 -0
- package/dist/server/mcp/handlers/write-handlers.mjs +311 -0
- package/dist/server/mcp/handlers/write-handlers.mjs.map +1 -0
- package/dist/server/mcp/permissions.js +36 -0
- package/dist/server/mcp/permissions.js.map +1 -0
- package/dist/server/mcp/permissions.mjs +33 -0
- package/dist/server/mcp/permissions.mjs.map +1 -0
- package/dist/server/mcp/register-upload-mcp-tools.js +235 -0
- package/dist/server/mcp/register-upload-mcp-tools.js.map +1 -0
- package/dist/server/mcp/register-upload-mcp-tools.mjs +232 -0
- package/dist/server/mcp/register-upload-mcp-tools.mjs.map +1 -0
- package/dist/server/mcp/sanitizers/sanitize-media.js +97 -0
- package/dist/server/mcp/sanitizers/sanitize-media.js.map +1 -0
- package/dist/server/mcp/sanitizers/sanitize-media.mjs +93 -0
- package/dist/server/mcp/sanitizers/sanitize-media.mjs.map +1 -0
- package/dist/server/mcp/schemas/input-schemas.js +206 -0
- package/dist/server/mcp/schemas/input-schemas.js.map +1 -0
- package/dist/server/mcp/schemas/input-schemas.mjs +190 -0
- package/dist/server/mcp/schemas/input-schemas.mjs.map +1 -0
- package/dist/server/mcp/schemas/output-schemas.js +158 -0
- package/dist/server/mcp/schemas/output-schemas.js.map +1 -0
- package/dist/server/mcp/schemas/output-schemas.mjs +142 -0
- package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -0
- package/dist/server/mcp/utils.js +14 -0
- package/dist/server/mcp/utils.js.map +1 -0
- package/dist/server/mcp/utils.mjs +12 -0
- package/dist/server/mcp/utils.mjs.map +1 -0
- package/dist/server/media-library-default-notice.js +42 -0
- package/dist/server/media-library-default-notice.js.map +1 -0
- package/dist/server/media-library-default-notice.mjs +40 -0
- package/dist/server/media-library-default-notice.mjs.map +1 -0
- package/dist/server/migrations/unsign-richtext-and-blocks-urls.js +147 -0
- package/dist/server/migrations/unsign-richtext-and-blocks-urls.js.map +1 -0
- package/dist/server/migrations/unsign-richtext-and-blocks-urls.mjs +145 -0
- package/dist/server/migrations/unsign-richtext-and-blocks-urls.mjs.map +1 -0
- package/dist/server/register.js +8 -0
- package/dist/server/register.js.map +1 -1
- package/dist/server/register.mjs +8 -0
- package/dist/server/register.mjs.map +1 -1
- package/dist/server/routes/admin.js +4 -1
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs +4 -1
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/services/ai-metadata.js +1 -1
- package/dist/server/services/ai-metadata.js.map +1 -1
- package/dist/server/services/ai-metadata.mjs +1 -1
- package/dist/server/services/ai-metadata.mjs.map +1 -1
- package/dist/server/services/extensions/index.js +17 -5
- package/dist/server/services/extensions/index.js.map +1 -1
- package/dist/server/services/extensions/index.mjs +16 -4
- package/dist/server/services/extensions/index.mjs.map +1 -1
- package/dist/server/services/extensions/utils.js +318 -19
- package/dist/server/services/extensions/utils.js.map +1 -1
- package/dist/server/services/extensions/utils.mjs +309 -20
- package/dist/server/services/extensions/utils.mjs.map +1 -1
- package/dist/server/services/folder.js.map +1 -1
- package/dist/server/services/folder.mjs.map +1 -1
- package/dist/server/services/metrics.js +4 -3
- package/dist/server/services/metrics.js.map +1 -1
- package/dist/server/services/metrics.mjs +4 -3
- package/dist/server/services/metrics.mjs.map +1 -1
- package/dist/server/services/upload.js +14 -2
- package/dist/server/services/upload.js.map +1 -1
- package/dist/server/services/upload.mjs +14 -2
- package/dist/server/services/upload.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-settings.d.ts +1 -1
- package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-upload.d.ts +1 -0
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -1
- package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts +14 -1
- package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/folders.d.ts +2 -1
- package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +9 -3
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/mcp/ambient-instance.d.ts +65 -0
- package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/constants.d.ts +48 -0
- package/dist/server/src/mcp/handlers/constants.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/folder-handlers.d.ts +49 -0
- package/dist/server/src/mcp/handlers/folder-handlers.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/index.d.ts +5 -0
- package/dist/server/src/mcp/handlers/index.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/read-handlers.d.ts +35 -0
- package/dist/server/src/mcp/handlers/read-handlers.d.ts.map +1 -0
- package/dist/server/src/mcp/handlers/write-handlers.d.ts +66 -0
- package/dist/server/src/mcp/handlers/write-handlers.d.ts.map +1 -0
- package/dist/server/src/mcp/index.d.ts +3 -0
- package/dist/server/src/mcp/index.d.ts.map +1 -0
- package/dist/server/src/mcp/permissions.d.ts +22 -0
- package/dist/server/src/mcp/permissions.d.ts.map +1 -0
- package/dist/server/src/mcp/register-upload-mcp-tools.d.ts +29 -0
- package/dist/server/src/mcp/register-upload-mcp-tools.d.ts.map +1 -0
- package/dist/server/src/mcp/sanitizers/sanitize-media.d.ts +63 -0
- package/dist/server/src/mcp/sanitizers/sanitize-media.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/index.d.ts +3 -0
- package/dist/server/src/mcp/schemas/index.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/input-schemas.d.ts +148 -0
- package/dist/server/src/mcp/schemas/input-schemas.d.ts.map +1 -0
- package/dist/server/src/mcp/schemas/output-schemas.d.ts +276 -0
- package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -0
- package/dist/server/src/mcp/types.d.ts +19 -0
- package/dist/server/src/mcp/types.d.ts.map +1 -0
- package/dist/server/src/mcp/utils.d.ts +4 -0
- package/dist/server/src/mcp/utils.d.ts.map +1 -0
- package/dist/server/src/media-library-default-notice.d.ts +19 -0
- package/dist/server/src/media-library-default-notice.d.ts.map +1 -0
- package/dist/server/src/migrations/unsign-richtext-and-blocks-urls.d.ts +18 -0
- package/dist/server/src/migrations/unsign-richtext-and-blocks-urls.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/services/extensions/index.d.ts.map +1 -1
- package/dist/server/src/services/extensions/utils.d.ts +52 -2
- package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
- package/dist/server/src/services/folder.d.ts +6 -2
- package/dist/server/src/services/folder.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +8 -2
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/upload.d.ts +8 -1
- package/dist/server/src/services/upload.d.ts.map +1 -1
- package/dist/server/src/types.d.ts +2 -2
- package/dist/server/src/types.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +2 -1
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/index.js +2 -2
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs +2 -2
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/shared/contracts/files.d.ts +22 -0
- package/dist/shared/contracts/files.d.ts.map +1 -1
- package/package.json +7 -6
- package/dist/admin/ai/components/AIAssetCard.js +0 -621
- package/dist/admin/ai/components/AIAssetCard.js.map +0 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +0 -598
- package/dist/admin/ai/components/AIAssetCard.mjs.map +0 -1
- package/dist/admin/ai/components/AIUploadModal.js.map +0 -1
- package/dist/admin/ai/components/AIUploadModal.mjs.map +0 -1
- package/dist/admin/components/AssetCard/AssetCard.js +0 -67
- package/dist/admin/components/AssetCard/AssetCard.js.map +0 -1
- package/dist/admin/components/AssetCard/AssetCard.mjs +0 -65
- package/dist/admin/components/AssetCard/AssetCard.mjs.map +0 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js.map +0 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +0 -1
- package/dist/admin/components/AssetCard/AudioAssetCard.js.map +0 -1
- package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +0 -1
- package/dist/admin/components/AssetCard/AudioPreview.js.map +0 -1
- package/dist/admin/components/AssetCard/AudioPreview.mjs.map +0 -1
- package/dist/admin/components/AssetCard/DocAssetCard.js.map +0 -1
- package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +0 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js.map +0 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +0 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.js +0 -154
- package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +0 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +0 -132
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +0 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js.map +0 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +0 -1
- package/dist/admin/components/AssetCard/VideoPreview.js.map +0 -1
- package/dist/admin/components/AssetCard/VideoPreview.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js.map +0 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -320
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -318
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/DialogFooter.js.map +0 -1
- package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +0 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +0 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +0 -1
- package/dist/admin/components/AssetGridList/AssetGridList.js.map +0 -1
- package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +0 -1
- package/dist/admin/components/AssetGridList/Draggable.js.map +0 -1
- package/dist/admin/components/AssetGridList/Draggable.mjs.map +0 -1
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +0 -1
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +0 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +0 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +0 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +0 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +0 -1
- package/dist/admin/components/ContextInfo/ContextInfo.js.map +0 -1
- package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +0 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +0 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +0 -114
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +0 -89
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +0 -362
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +0 -337
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +0 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +0 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +0 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +0 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +0 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +0 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +0 -1
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +0 -1
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +0 -1
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +0 -1
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +0 -1
- package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +0 -1
- package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +0 -1
- package/dist/admin/components/FilterList/FilterList.js.map +0 -1
- package/dist/admin/components/FilterList/FilterList.mjs.map +0 -1
- package/dist/admin/components/FilterList/FilterTag.js.map +0 -1
- package/dist/admin/components/FilterList/FilterTag.mjs.map +0 -1
- package/dist/admin/components/FilterPopover/FilterPopover.js.map +0 -1
- package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +0 -1
- package/dist/admin/components/FilterPopover/FilterValueInput.js.map +0 -1
- package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +0 -1
- package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +0 -1
- package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +0 -1
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +0 -1
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +0 -1
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +0 -1
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +0 -1
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +0 -1
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +0 -1
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +0 -1
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +0 -1
- package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +0 -1
- package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +0 -1
- package/dist/admin/components/FolderGridList/FolderGridList.js.map +0 -1
- package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +0 -1
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +0 -1
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +0 -89
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +0 -87
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +0 -111
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +0 -89
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +0 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +0 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +0 -1
- package/dist/admin/components/SelectTree/Option.js.map +0 -1
- package/dist/admin/components/SelectTree/Option.mjs.map +0 -1
- package/dist/admin/components/SelectTree/SelectTree.js.map +0 -1
- package/dist/admin/components/SelectTree/SelectTree.mjs.map +0 -1
- package/dist/admin/components/SelectTree/utils/flattenTree.js.map +0 -1
- package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +0 -1
- package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +0 -1
- package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +0 -1
- package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +0 -1
- package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +0 -1
- package/dist/admin/components/SortPicker/SortPicker.js +0 -40
- package/dist/admin/components/SortPicker/SortPicker.js.map +0 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs +0 -38
- package/dist/admin/components/SortPicker/SortPicker.mjs.map +0 -1
- package/dist/admin/components/TableList/CellContent.js.map +0 -1
- package/dist/admin/components/TableList/CellContent.mjs.map +0 -1
- package/dist/admin/components/TableList/PreviewCell.js +0 -116
- package/dist/admin/components/TableList/PreviewCell.js.map +0 -1
- package/dist/admin/components/TableList/PreviewCell.mjs +0 -114
- package/dist/admin/components/TableList/PreviewCell.mjs.map +0 -1
- package/dist/admin/components/TableList/TableList.js +0 -100
- package/dist/admin/components/TableList/TableList.js.map +0 -1
- package/dist/admin/components/TableList/TableList.mjs +0 -98
- package/dist/admin/components/TableList/TableList.mjs.map +0 -1
- package/dist/admin/components/TableList/TableRows.js +0 -105
- package/dist/admin/components/TableList/TableRows.js.map +0 -1
- package/dist/admin/components/TableList/TableRows.mjs +0 -103
- package/dist/admin/components/TableList/TableRows.mjs.map +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +0 -177
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +0 -155
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +0 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +0 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +0 -1
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +0 -1
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +0 -1
- package/dist/admin/components/UploadProgress/UploadProgress.js.map +0 -1
- package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +0 -1
- package/dist/admin/future/App.js +0 -33
- package/dist/admin/future/App.js.map +0 -1
- package/dist/admin/future/App.mjs +0 -31
- package/dist/admin/future/App.mjs.map +0 -1
- package/dist/admin/future/components/BetaNotice.js +0 -72
- package/dist/admin/future/components/BetaNotice.js.map +0 -1
- package/dist/admin/future/components/BetaNotice.mjs +0 -70
- package/dist/admin/future/components/BetaNotice.mjs.map +0 -1
- package/dist/admin/future/components/Drawer.js.map +0 -1
- package/dist/admin/future/components/Drawer.mjs.map +0 -1
- package/dist/admin/future/components/TruncatedText.js.map +0 -1
- package/dist/admin/future/components/TruncatedText.mjs.map +0 -1
- package/dist/admin/future/components/UploadProgressDialog.js +0 -699
- package/dist/admin/future/components/UploadProgressDialog.js.map +0 -1
- package/dist/admin/future/components/UploadProgressDialog.mjs +0 -697
- package/dist/admin/future/components/UploadProgressDialog.mjs.map +0 -1
- package/dist/admin/future/hooks/useAIMetadataEnabled.js +0 -39
- package/dist/admin/future/hooks/useAIMetadataEnabled.js.map +0 -1
- package/dist/admin/future/hooks/useAIMetadataEnabled.mjs +0 -37
- package/dist/admin/future/hooks/useAIMetadataEnabled.mjs.map +0 -1
- package/dist/admin/future/hooks/useApiErrorMessage.js.map +0 -1
- package/dist/admin/future/hooks/useApiErrorMessage.mjs.map +0 -1
- package/dist/admin/future/hooks/useMediaLibraryPermissions.js +0 -35
- package/dist/admin/future/hooks/useMediaLibraryPermissions.js.map +0 -1
- package/dist/admin/future/hooks/useMediaLibraryPermissions.mjs +0 -33
- package/dist/admin/future/hooks/useMediaLibraryPermissions.mjs.map +0 -1
- package/dist/admin/future/hooks/useTracking.js +0 -57
- package/dist/admin/future/hooks/useTracking.js.map +0 -1
- package/dist/admin/future/hooks/useTracking.mjs +0 -53
- package/dist/admin/future/hooks/useTracking.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/AssetsPage.js +0 -830
- package/dist/admin/future/pages/Assets/AssetsPage.js.map +0 -1
- package/dist/admin/future/pages/Assets/AssetsPage.mjs +0 -808
- package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/ActionsMenuContent.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/ActionsMenuContent.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +0 -1202
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +0 -1175
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +0 -261
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +0 -239
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js +0 -534
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +0 -532
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetsSearchInput.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetsSearchInput.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/BulkActionsBar.js +0 -431
- package/dist/admin/future/pages/Assets/components/BulkActionsBar.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs +0 -429
- package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/BulkMoveDialog.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/BulkMoveDialog.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/BusyOverlay.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/BusyOverlay.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/DateRangeCalendar.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/DateRangeCalendar.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/DeleteItemsDialog.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js +0 -299
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs +0 -296
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js +0 -144
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs +0 -142
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/buildDragSet.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/computeValidDropTargets.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/computeValidDropTargets.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/useFolderTreeDroppable.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/Dnd/useFolderTreeDroppable.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/EmptyState.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/EmptyState.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/FilterBadges.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/FilterBadges.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/FilterMenu.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/FilterMenu.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderActionsMenu.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderActionsMenu.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderFormDialog.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderFormDialog.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderTree/useSpringLoadedExpand.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/FolderTree/useSpringLoadedExpand.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/ImportFromUrlDialog.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/components/SortMenu.js.map +0 -1
- package/dist/admin/future/pages/Assets/components/SortMenu.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/constants.js.map +0 -1
- package/dist/admin/future/pages/Assets/constants.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useAssetSearch.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useAssetSearch.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useAssetSelection.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useAssetSelection.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useBusyAssets.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useBusyAssets.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderInfo.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useInfiniteScrollSentinel.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useIsAssetDetailsOpen.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useIsAssetDetailsOpen.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useListFilters.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useListFilters.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useListSort.js.map +0 -1
- package/dist/admin/future/pages/Assets/hooks/useListSort.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/utils/buildAssetFilters.js.map +0 -1
- package/dist/admin/future/pages/Assets/utils/buildAssetFilters.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/utils/listQueryKey.js.map +0 -1
- package/dist/admin/future/pages/Assets/utils/listQueryKey.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/utils/mergeMixedList.js.map +0 -1
- package/dist/admin/future/pages/Assets/utils/mergeMixedList.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.js.map +0 -1
- package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/utils/renderedKeys.js.map +0 -1
- package/dist/admin/future/pages/Assets/utils/renderedKeys.mjs.map +0 -1
- package/dist/admin/future/pages/Assets/utils/selection.js.map +0 -1
- package/dist/admin/future/pages/Assets/utils/selection.mjs.map +0 -1
- package/dist/admin/future/services/api.js +0 -758
- package/dist/admin/future/services/api.js.map +0 -1
- package/dist/admin/future/services/api.mjs +0 -749
- package/dist/admin/future/services/api.mjs.map +0 -1
- package/dist/admin/future/services/assets.js.map +0 -1
- package/dist/admin/future/services/assets.mjs.map +0 -1
- package/dist/admin/future/services/folders.js.map +0 -1
- package/dist/admin/future/services/folders.mjs.map +0 -1
- package/dist/admin/future/services/settings.js.map +0 -1
- package/dist/admin/future/services/settings.mjs.map +0 -1
- package/dist/admin/future/services/uploadFileViaXHR.js.map +0 -1
- package/dist/admin/future/services/uploadFileViaXHR.mjs.map +0 -1
- package/dist/admin/future/store/hooks.js.map +0 -1
- package/dist/admin/future/store/hooks.mjs.map +0 -1
- package/dist/admin/future/store/uploadProgress.js +0 -364
- package/dist/admin/future/store/uploadProgress.js.map +0 -1
- package/dist/admin/future/store/uploadProgress.mjs +0 -340
- package/dist/admin/future/store/uploadProgress.mjs.map +0 -1
- package/dist/admin/future/utils/buildBulkMovePayload.js.map +0 -1
- package/dist/admin/future/utils/buildBulkMovePayload.mjs.map +0 -1
- package/dist/admin/future/utils/buildDragSetFromSelection.js.map +0 -1
- package/dist/admin/future/utils/buildDragSetFromSelection.mjs.map +0 -1
- package/dist/admin/future/utils/canDropItemOnFolder.js.map +0 -1
- package/dist/admin/future/utils/canDropItemOnFolder.mjs.map +0 -1
- package/dist/admin/future/utils/createRafBatcher.js.map +0 -1
- package/dist/admin/future/utils/createRafBatcher.mjs.map +0 -1
- package/dist/admin/future/utils/downloadFile.js +0 -19
- package/dist/admin/future/utils/downloadFile.js.map +0 -1
- package/dist/admin/future/utils/downloadFile.mjs +0 -17
- package/dist/admin/future/utils/downloadFile.mjs.map +0 -1
- package/dist/admin/future/utils/files.js.map +0 -1
- package/dist/admin/future/utils/files.mjs.map +0 -1
- package/dist/admin/future/utils/flattenFolderStructure.js.map +0 -1
- package/dist/admin/future/utils/flattenFolderStructure.mjs.map +0 -1
- package/dist/admin/future/utils/formatMoveSuccessMessage.js.map +0 -1
- package/dist/admin/future/utils/formatMoveSuccessMessage.mjs.map +0 -1
- package/dist/admin/future/utils/getApiErrorMessage.js.map +0 -1
- package/dist/admin/future/utils/getApiErrorMessage.mjs.map +0 -1
- package/dist/admin/future/utils/getAssetIcon.js +0 -28
- package/dist/admin/future/utils/getAssetIcon.js.map +0 -1
- package/dist/admin/future/utils/getAssetIcon.mjs +0 -26
- package/dist/admin/future/utils/getAssetIcon.mjs.map +0 -1
- package/dist/admin/future/utils/getFolderLabel.js.map +0 -1
- package/dist/admin/future/utils/getFolderLabel.mjs.map +0 -1
- package/dist/admin/future/utils/getRelationId.js.map +0 -1
- package/dist/admin/future/utils/getRelationId.mjs.map +0 -1
- package/dist/admin/future/utils/isEventFromWithin.js.map +0 -1
- package/dist/admin/future/utils/isEventFromWithin.mjs.map +0 -1
- package/dist/admin/future/utils/itemLocations.js.map +0 -1
- package/dist/admin/future/utils/itemLocations.mjs.map +0 -1
- package/dist/admin/future/utils/itemSource.js.map +0 -1
- package/dist/admin/future/utils/itemSource.mjs.map +0 -1
- package/dist/admin/future/utils/searchQueryParam.js.map +0 -1
- package/dist/admin/future/utils/searchQueryParam.mjs.map +0 -1
- package/dist/admin/future/utils/translations.js +0 -8
- package/dist/admin/future/utils/translations.js.map +0 -1
- package/dist/admin/future/utils/translations.mjs +0 -6
- package/dist/admin/future/utils/translations.mjs.map +0 -1
- package/dist/admin/hooks/useAIMetadataJob.js +0 -114
- package/dist/admin/hooks/useAIMetadataJob.js.map +0 -1
- package/dist/admin/hooks/useAIMetadataJob.mjs +0 -92
- package/dist/admin/hooks/useAIMetadataJob.mjs.map +0 -1
- package/dist/admin/hooks/useAiAvailability.js.map +0 -1
- package/dist/admin/hooks/useAiAvailability.mjs.map +0 -1
- package/dist/admin/hooks/useAssets.js +0 -127
- package/dist/admin/hooks/useAssets.js.map +0 -1
- package/dist/admin/hooks/useAssets.mjs +0 -105
- package/dist/admin/hooks/useAssets.mjs.map +0 -1
- package/dist/admin/hooks/useBulkEdit.js +0 -65
- package/dist/admin/hooks/useBulkEdit.js.map +0 -1
- package/dist/admin/hooks/useBulkEdit.mjs +0 -63
- package/dist/admin/hooks/useBulkEdit.mjs.map +0 -1
- package/dist/admin/hooks/useBulkMove.js +0 -78
- package/dist/admin/hooks/useBulkMove.js.map +0 -1
- package/dist/admin/hooks/useBulkMove.mjs +0 -76
- package/dist/admin/hooks/useBulkMove.mjs.map +0 -1
- package/dist/admin/hooks/useBulkRemove.js +0 -83
- package/dist/admin/hooks/useBulkRemove.js.map +0 -1
- package/dist/admin/hooks/useBulkRemove.mjs +0 -81
- package/dist/admin/hooks/useBulkRemove.mjs.map +0 -1
- package/dist/admin/hooks/useConfig.js +0 -58
- package/dist/admin/hooks/useConfig.js.map +0 -1
- package/dist/admin/hooks/useConfig.mjs +0 -56
- package/dist/admin/hooks/useConfig.mjs.map +0 -1
- package/dist/admin/hooks/useCropImg.js.map +0 -1
- package/dist/admin/hooks/useCropImg.mjs.map +0 -1
- package/dist/admin/hooks/useEditAsset.js +0 -115
- package/dist/admin/hooks/useEditAsset.js.map +0 -1
- package/dist/admin/hooks/useEditAsset.mjs +0 -93
- package/dist/admin/hooks/useEditAsset.mjs.map +0 -1
- package/dist/admin/hooks/useEditFolder.js +0 -45
- package/dist/admin/hooks/useEditFolder.js.map +0 -1
- package/dist/admin/hooks/useEditFolder.mjs +0 -43
- package/dist/admin/hooks/useEditFolder.mjs.map +0 -1
- package/dist/admin/hooks/useFolder.js +0 -57
- package/dist/admin/hooks/useFolder.js.map +0 -1
- package/dist/admin/hooks/useFolder.mjs +0 -55
- package/dist/admin/hooks/useFolder.mjs.map +0 -1
- package/dist/admin/hooks/useFolderStructure.js +0 -52
- package/dist/admin/hooks/useFolderStructure.js.map +0 -1
- package/dist/admin/hooks/useFolderStructure.mjs +0 -50
- package/dist/admin/hooks/useFolderStructure.mjs.map +0 -1
- package/dist/admin/hooks/useFolders.js +0 -108
- package/dist/admin/hooks/useFolders.js.map +0 -1
- package/dist/admin/hooks/useFolders.mjs +0 -86
- package/dist/admin/hooks/useFolders.mjs.map +0 -1
- package/dist/admin/hooks/useModalQueryParams.js.map +0 -1
- package/dist/admin/hooks/useModalQueryParams.mjs.map +0 -1
- package/dist/admin/hooks/usePersistentState.js.map +0 -1
- package/dist/admin/hooks/usePersistentState.mjs.map +0 -1
- package/dist/admin/hooks/useRemoveAsset.js +0 -58
- package/dist/admin/hooks/useRemoveAsset.js.map +0 -1
- package/dist/admin/hooks/useRemoveAsset.mjs +0 -56
- package/dist/admin/hooks/useRemoveAsset.mjs.map +0 -1
- package/dist/admin/hooks/useSelectionState.js.map +0 -1
- package/dist/admin/hooks/useSelectionState.mjs.map +0 -1
- package/dist/admin/hooks/useSettings.js.map +0 -1
- package/dist/admin/hooks/useSettings.mjs.map +0 -1
- package/dist/admin/hooks/useUpload.js +0 -109
- package/dist/admin/hooks/useUpload.js.map +0 -1
- package/dist/admin/hooks/useUpload.mjs +0 -87
- package/dist/admin/hooks/useUpload.mjs.map +0 -1
- package/dist/admin/hooks/utils/renameKeys.js.map +0 -1
- package/dist/admin/hooks/utils/renameKeys.mjs.map +0 -1
- package/dist/admin/pages/App/App.js.map +0 -1
- package/dist/admin/pages/App/App.mjs.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +0 -145
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -120
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -109
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -107
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js +0 -10
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs +0 -7
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +0 -1
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +0 -1
- package/dist/admin/pages/App/MediaLibrary.js +0 -469
- package/dist/admin/pages/App/MediaLibrary.js.map +0 -1
- package/dist/admin/pages/App/MediaLibrary.mjs +0 -447
- package/dist/admin/pages/App/MediaLibrary.mjs.map +0 -1
- package/dist/admin/pages/App/components/BulkActions.js.map +0 -1
- package/dist/admin/pages/App/components/BulkActions.mjs.map +0 -1
- package/dist/admin/pages/App/components/BulkDeleteButton.js.map +0 -1
- package/dist/admin/pages/App/components/BulkDeleteButton.mjs.map +0 -1
- package/dist/admin/pages/App/components/BulkMoveButton.js.map +0 -1
- package/dist/admin/pages/App/components/BulkMoveButton.mjs.map +0 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +0 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +0 -1
- package/dist/admin/pages/App/components/Filters.js.map +0 -1
- package/dist/admin/pages/App/components/Filters.mjs.map +0 -1
- package/dist/admin/pages/App/components/Header.js.map +0 -1
- package/dist/admin/pages/App/components/Header.mjs.map +0 -1
- package/dist/admin/src/ai/components/AIAssetCard.d.ts +0 -13
- package/dist/admin/src/ai/components/AIUploadModal.d.ts +0 -55
- package/dist/admin/src/components/AssetCard/AssetCard.d.ts +0 -19
- package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +0 -17
- package/dist/admin/src/components/AssetDialog/AssetDialog.d.ts +0 -39
- package/dist/admin/src/components/AssetDialog/BrowseStep/BrowseStep.d.ts +0 -63
- package/dist/admin/src/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +0 -7
- package/dist/admin/src/components/AssetDialog/SelectedStep/SelectedStep.d.ts +0 -8
- package/dist/admin/src/components/AssetGridList/AssetGridList.d.ts +0 -13
- package/dist/admin/src/components/BulkMoveDialog/BulkMoveDialog.d.ts +0 -15
- package/dist/admin/src/components/EditAssetDialog/EditAssetContent.d.ts +0 -31
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +0 -8
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +0 -26
- package/dist/admin/src/components/EditAssetDialog/RemoveAssetDialog.d.ts +0 -8
- package/dist/admin/src/components/EditFolderDialog/EditFolderDialog.d.ts +0 -12
- package/dist/admin/src/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +0 -10
- package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +0 -4
- package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +0 -9
- package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +0 -23
- package/dist/admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +0 -10
- package/dist/admin/src/components/SelectTree/Option.d.ts +0 -16
- package/dist/admin/src/components/SortPicker/SortPicker.d.ts +0 -7
- package/dist/admin/src/components/TableList/CellContent.d.ts +0 -8
- package/dist/admin/src/components/TableList/PreviewCell.d.ts +0 -7
- package/dist/admin/src/components/TableList/TableList.d.ts +0 -31
- package/dist/admin/src/components/TableList/TableRows.d.ts +0 -22
- package/dist/admin/src/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +0 -13
- package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +0 -22
- package/dist/admin/src/components/UploadAssetDialog/UploadAssetDialog.d.ts +0 -21
- package/dist/admin/src/components/UploadProgress/UploadProgress.d.ts +0 -7
- package/dist/admin/src/future/App.d.ts +0 -1
- package/dist/admin/src/future/components/BetaNotice.d.ts +0 -11
- package/dist/admin/src/future/hooks/useMediaLibraryPermissions.d.ts +0 -21
- package/dist/admin/src/future/hooks/useTracking.d.ts +0 -29
- package/dist/admin/src/future/pages/Assets/components/ActionsMenuContent.d.ts +0 -33
- package/dist/admin/src/future/pages/Assets/components/AssetActionsMenu.d.ts +0 -26
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +0 -16
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.d.ts +0 -46
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetPreview.d.ts +0 -9
- package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +0 -12
- package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +0 -18
- package/dist/admin/src/future/pages/Assets/components/BulkActionsBar.d.ts +0 -28
- package/dist/admin/src/future/pages/Assets/components/Dnd/computeValidDropTargets.d.ts +0 -7
- package/dist/admin/src/future/pages/Assets/components/FolderActionsMenu.d.ts +0 -21
- package/dist/admin/src/future/pages/Assets/hooks/useFolderNavigation.d.ts +0 -7
- package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +0 -45
- package/dist/admin/src/future/pages/Assets/utils/mergeMixedList.d.ts +0 -40
- package/dist/admin/src/future/pages/Assets/utils/mergeUploadedAssets.d.ts +0 -35
- package/dist/admin/src/future/pages/Assets/utils/renderedKeys.d.ts +0 -19
- package/dist/admin/src/future/services/api.d.ts +0 -99
- package/dist/admin/src/future/services/assets.d.ts +0 -33
- package/dist/admin/src/future/services/folders.d.ts +0 -37
- package/dist/admin/src/future/services/settings.d.ts +0 -2
- package/dist/admin/src/future/services/uploadFileViaXHR.d.ts +0 -23
- package/dist/admin/src/future/store/uploadProgress.d.ts +0 -207
- package/dist/admin/src/future/utils/canDropItemOnFolder.d.ts +0 -9
- package/dist/admin/src/future/utils/downloadFile.d.ts +0 -6
- package/dist/admin/src/future/utils/flattenFolderStructure.d.ts +0 -18
- package/dist/admin/src/future/utils/getFolderLabel.d.ts +0 -11
- package/dist/admin/src/future/utils/itemLocations.d.ts +0 -31
- package/dist/admin/src/hooks/useAIMetadataJob.d.ts +0 -9
- package/dist/admin/src/hooks/useAssets.d.ts +0 -14
- package/dist/admin/src/hooks/useBulkEdit.d.ts +0 -91
- package/dist/admin/src/hooks/useBulkMove.d.ts +0 -209
- package/dist/admin/src/hooks/useBulkRemove.d.ts +0 -241
- package/dist/admin/src/hooks/useConfig.d.ts +0 -5
- package/dist/admin/src/hooks/useEditAsset.d.ts +0 -119
- package/dist/admin/src/hooks/useEditFolder.d.ts +0 -72
- package/dist/admin/src/hooks/useFolder.d.ts +0 -7
- package/dist/admin/src/hooks/useFolderStructure.d.ts +0 -18
- package/dist/admin/src/hooks/useFolders.d.ts +0 -11
- package/dist/admin/src/hooks/useModalQueryParams.d.ts +0 -20
- package/dist/admin/src/hooks/useRemoveAsset.d.ts +0 -8
- package/dist/admin/src/hooks/useUpload.d.ts +0 -15
- package/dist/admin/src/pages/App/ConfigureTheView/ConfigureTheView.d.ts +0 -6
- package/dist/admin/src/pages/App/ConfigureTheView/components/Settings.d.ts +0 -13
- package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +0 -12
- package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +0 -8
- package/dist/admin/src/pages/App/components/BulkActions.d.ts +0 -15
- package/dist/admin/src/pages/App/components/BulkDeleteButton.d.ts +0 -7
- package/dist/admin/src/pages/App/components/BulkMoveButton.d.ts +0 -15
- package/dist/admin/src/pages/App/components/Header.d.ts +0 -22
- package/dist/admin/src/utils/containsAssetFilter.d.ts +0 -2
- package/dist/admin/src/utils/createAssetUrl.d.ts +0 -2
- package/dist/admin/src/utils/findRecursiveFolderByValue.d.ts +0 -11
- package/dist/admin/src/utils/getAllowedFiles.d.ts +0 -14
- package/dist/admin/src/utils/getBreadcrumbDataCM.d.ts +0 -19
- package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +0 -18
- package/dist/admin/src/utils/getFolderParents.d.ts +0 -11
- package/dist/admin/src/utils/getFolderURL.d.ts +0 -5
- package/dist/admin/src/utils/icons.d.ts +0 -15
- package/dist/admin/src/utils/index.d.ts +0 -26
- package/dist/admin/src/utils/rawFileToAsset.d.ts +0 -14
- package/dist/admin/utils/appendSearchParamsToUrl.js.map +0 -1
- package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +0 -1
- package/dist/admin/utils/containsAssetFilter.js.map +0 -1
- package/dist/admin/utils/containsAssetFilter.mjs.map +0 -1
- package/dist/admin/utils/createAssetUrl.js.map +0 -1
- package/dist/admin/utils/createAssetUrl.mjs.map +0 -1
- package/dist/admin/utils/displayedFilters.js.map +0 -1
- package/dist/admin/utils/displayedFilters.mjs.map +0 -1
- package/dist/admin/utils/findRecursiveFolderByValue.js.map +0 -1
- package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +0 -1
- package/dist/admin/utils/formatBytes.js.map +0 -1
- package/dist/admin/utils/formatBytes.mjs.map +0 -1
- package/dist/admin/utils/formatDuration.js.map +0 -1
- package/dist/admin/utils/formatDuration.mjs.map +0 -1
- package/dist/admin/utils/getAPIInnerErrors.js.map +0 -1
- package/dist/admin/utils/getAPIInnerErrors.mjs.map +0 -1
- package/dist/admin/utils/getAllowedFiles.js.map +0 -1
- package/dist/admin/utils/getAllowedFiles.mjs.map +0 -1
- package/dist/admin/utils/getBreadcrumbDataCM.js.map +0 -1
- package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +0 -1
- package/dist/admin/utils/getBreadcrumbDataML.js.map +0 -1
- package/dist/admin/utils/getBreadcrumbDataML.mjs.map +0 -1
- package/dist/admin/utils/getFileExtension.js.map +0 -1
- package/dist/admin/utils/getFileExtension.mjs.map +0 -1
- package/dist/admin/utils/getFolderParents.js.map +0 -1
- package/dist/admin/utils/getFolderParents.mjs.map +0 -1
- package/dist/admin/utils/getFolderURL.js.map +0 -1
- package/dist/admin/utils/getFolderURL.mjs.map +0 -1
- package/dist/admin/utils/getTrad.js +0 -8
- package/dist/admin/utils/getTrad.js.map +0 -1
- package/dist/admin/utils/getTrad.mjs +0 -6
- package/dist/admin/utils/getTrad.mjs.map +0 -1
- package/dist/admin/utils/icons.js +0 -23
- package/dist/admin/utils/icons.js.map +0 -1
- package/dist/admin/utils/icons.mjs +0 -19
- package/dist/admin/utils/icons.mjs.map +0 -1
- package/dist/admin/utils/moveElement.js.map +0 -1
- package/dist/admin/utils/moveElement.mjs.map +0 -1
- package/dist/admin/utils/normalizeAPIError.js.map +0 -1
- package/dist/admin/utils/normalizeAPIError.mjs.map +0 -1
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +0 -1
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +0 -1
- package/dist/admin/utils/prefixPluginTranslations.js.map +0 -1
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +0 -1
- package/dist/admin/utils/rawFileToAsset.js +0 -23
- package/dist/admin/utils/rawFileToAsset.js.map +0 -1
- package/dist/admin/utils/rawFileToAsset.mjs +0 -21
- package/dist/admin/utils/rawFileToAsset.mjs.map +0 -1
- package/dist/admin/utils/resolveFileMime.js.map +0 -1
- package/dist/admin/utils/resolveFileMime.mjs.map +0 -1
- package/dist/admin/utils/toSingularTypes.js.map +0 -1
- package/dist/admin/utils/toSingularTypes.mjs.map +0 -1
- package/dist/admin/utils/urlYupSchema.js.map +0 -1
- package/dist/admin/utils/urlYupSchema.mjs.map +0 -1
- package/dist/admin/utils/urlsToAssets.js +0 -42
- package/dist/admin/utils/urlsToAssets.js.map +0 -1
- package/dist/admin/utils/urlsToAssets.mjs +0 -40
- package/dist/admin/utils/urlsToAssets.mjs.map +0 -1
- /package/dist/admin/{future/components → components}/Drawer.js +0 -0
- /package/dist/admin/{future/components → components}/Drawer.mjs +0 -0
- /package/dist/admin/{future/components → components}/TruncatedText.js +0 -0
- /package/dist/admin/{future/components → components}/TruncatedText.mjs +0 -0
- /package/dist/admin/{future/hooks → hooks}/useApiErrorMessage.js +0 -0
- /package/dist/admin/{future/hooks → hooks}/useApiErrorMessage.mjs +0 -0
- /package/dist/admin/{ai → legacy/ai}/components/AIUploadModal.js +0 -0
- /package/dist/admin/{ai → legacy/ai}/components/AIUploadModal.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/AssetCardBase.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/AssetCardBase.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/AudioAssetCard.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/AudioAssetCard.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/AudioPreview.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/AudioPreview.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/DocAssetCard.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/DocAssetCard.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/ImageAssetCard.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/ImageAssetCard.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/VideoAssetCard.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/VideoAssetCard.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/VideoPreview.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetCard/VideoPreview.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/AssetDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/AssetDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/Filters.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/Filters.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/DialogFooter.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/DialogFooter.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/SelectedStep/SelectedStep.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetDialog/SelectedStep/SelectedStep.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetGridList/AssetGridList.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetGridList/AssetGridList.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/AssetGridList/Draggable.js +0 -0
- /package/dist/admin/{components → legacy/components}/AssetGridList/Draggable.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/Breadcrumbs/Breadcrumbs.js +0 -0
- /package/dist/admin/{components → legacy/components}/Breadcrumbs/Breadcrumbs.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.js +0 -0
- /package/dist/admin/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/BulkMoveDialog/BulkMoveDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/BulkMoveDialog/BulkMoveDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/ContextInfo/ContextInfo.js +0 -0
- /package/dist/admin/{components → legacy/components}/ContextInfo/ContextInfo.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/CopyLinkButton/CopyLinkButton.js +0 -0
- /package/dist/admin/{components → legacy/components}/CopyLinkButton/CopyLinkButton.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/DialogHeader.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/DialogHeader.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/EditAssetContent.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/EditAssetContent.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/RemoveAssetDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/RemoveAssetDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditFolderDialog/EditFolderDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditFolderDialog/EditFolderDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.js +0 -0
- /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssets.js +0 -0
- /package/dist/admin/{components → legacy/components}/EmptyAssets/EmptyAssets.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FilterList/FilterList.js +0 -0
- /package/dist/admin/{components → legacy/components}/FilterList/FilterList.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FilterList/FilterTag.js +0 -0
- /package/dist/admin/{components → legacy/components}/FilterList/FilterTag.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FilterPopover/FilterPopover.js +0 -0
- /package/dist/admin/{components → legacy/components}/FilterPopover/FilterPopover.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FilterPopover/FilterValueInput.js +0 -0
- /package/dist/admin/{components → legacy/components}/FilterPopover/FilterValueInput.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FilterPopover/utils/getFilterList.js +0 -0
- /package/dist/admin/{components → legacy/components}/FilterPopover/utils/getFilterList.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCard/FolderCard.js +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCard/FolderCard.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.js +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/contexts/FolderCard.js +0 -0
- /package/dist/admin/{components → legacy/components}/FolderCard/contexts/FolderCard.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/FolderGridList/FolderGridList.js +0 -0
- /package/dist/admin/{components → legacy/components}/FolderGridList/FolderGridList.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryDialog/MediaLibraryDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryDialog/MediaLibraryDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssets.js +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryInput/Carousel/CarouselAssets.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.js +0 -0
- /package/dist/admin/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/Option.js +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/Option.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/SelectTree.js +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/SelectTree.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/utils/flattenTree.js +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/utils/flattenTree.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/utils/getOpenValues.js +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/utils/getOpenValues.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/utils/getValuesToClose.js +0 -0
- /package/dist/admin/{components → legacy/components}/SelectTree/utils/getValuesToClose.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/TableList/CellContent.js +0 -0
- /package/dist/admin/{components → legacy/components}/TableList/CellContent.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.js +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/UploadAssetDialog.js +0 -0
- /package/dist/admin/{components → legacy/components}/UploadAssetDialog/UploadAssetDialog.mjs +0 -0
- /package/dist/admin/{components → legacy/components}/UploadProgress/UploadProgress.js +0 -0
- /package/dist/admin/{components → legacy/components}/UploadProgress/UploadProgress.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useAiAvailability.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useAiAvailability.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useCropImg.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useCropImg.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useModalQueryParams.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useModalQueryParams.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/usePersistentState.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/usePersistentState.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useSelectionState.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useSelectionState.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useSettings.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/useSettings.mjs +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/utils/renameKeys.js +0 -0
- /package/dist/admin/{hooks → legacy/hooks}/utils/renameKeys.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/App.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/App.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/actions.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/actions.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/init.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/init.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/BulkActions.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/BulkActions.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/BulkDeleteButton.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/BulkDeleteButton.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/BulkMoveButton.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/BulkMoveButton.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/Filters.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/Filters.mjs +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/Header.js +0 -0
- /package/dist/admin/{pages → legacy/pages}/App/components/Header.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/appendSearchParamsToUrl.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/appendSearchParamsToUrl.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/containsAssetFilter.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/containsAssetFilter.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/createAssetUrl.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/createAssetUrl.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/displayedFilters.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/displayedFilters.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/findRecursiveFolderByValue.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/findRecursiveFolderByValue.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/formatBytes.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/formatBytes.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/formatDuration.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/formatDuration.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getAPIInnerErrors.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getAPIInnerErrors.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getAllowedFiles.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getAllowedFiles.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataCM.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataCM.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataML.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getBreadcrumbDataML.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getFileExtension.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getFileExtension.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getFolderParents.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getFolderParents.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/getFolderURL.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/getFolderURL.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/moveElement.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/moveElement.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/normalizeAPIError.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/normalizeAPIError.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/prefixPluginTranslations.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/prefixPluginTranslations.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/resolveFileMime.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/resolveFileMime.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/toSingularTypes.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/toSingularTypes.mjs +0 -0
- /package/dist/admin/{utils → legacy/utils}/urlYupSchema.js +0 -0
- /package/dist/admin/{utils → legacy/utils}/urlYupSchema.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/ActionsMenuContent.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/ActionsMenuContent.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetActionsMenu.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetActionsMenu.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/AssetCropEditor.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/AssetCropEditor.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetsSearchInput.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetsSearchInput.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetsTable.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/AssetsTable.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/BulkMoveDialog.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/BulkMoveDialog.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/BusyOverlay.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/BusyOverlay.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DateRangeCalendar.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DateRangeCalendar.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DeleteItemsDialog.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DeleteItemsDialog.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/buildDragSet.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/buildDragSet.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/computeValidDropTargets.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/computeValidDropTargets.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/dndIds.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/dndIds.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/EmptyState.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/EmptyState.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FilterBadges.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FilterBadges.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FilterMenu.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FilterMenu.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderActionsMenu.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderActionsMenu.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderFormDialog.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderFormDialog.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/FolderTree.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/FolderTree.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/ImportFromUrlDialog.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/ImportFromUrlDialog.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/MainAreaContextMenu.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/MainAreaContextMenu.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/SortMenu.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/components/SortMenu.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/constants.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/constants.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSearch.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSearch.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSelection.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useAssetSelection.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useBusyAssets.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useBusyAssets.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderInfo.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderInfo.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderNavigation.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useFolderNavigation.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteAssets.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteAssets.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useListFilters.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useListFilters.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useListScrollRestoration.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useListScrollRestoration.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useListSort.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/hooks/useListSort.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/buildAssetFilters.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/buildAssetFilters.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/listQueryKey.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/listQueryKey.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/mergeMixedList.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/mergeMixedList.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/mergeUploadedAssets.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/mergeUploadedAssets.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/renderedKeys.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/renderedKeys.mjs +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/selection.js +0 -0
- /package/dist/admin/{future/pages → pages}/Assets/utils/selection.mjs +0 -0
- /package/dist/admin/{future/services → services}/assets.js +0 -0
- /package/dist/admin/{future/services → services}/assets.mjs +0 -0
- /package/dist/admin/{future/services → services}/folders.js +0 -0
- /package/dist/admin/{future/services → services}/folders.mjs +0 -0
- /package/dist/admin/{future/services → services}/settings.js +0 -0
- /package/dist/admin/{future/services → services}/settings.mjs +0 -0
- /package/dist/admin/{future/services → services}/uploadFileViaXHR.js +0 -0
- /package/dist/admin/{future/services → services}/uploadFileViaXHR.mjs +0 -0
- /package/dist/admin/src/{pages/App/MediaLibrary.d.ts → App.d.ts} +0 -0
- /package/dist/admin/src/{future/components → components}/Drawer.d.ts +0 -0
- /package/dist/admin/src/{future/components → components}/TruncatedText.d.ts +0 -0
- /package/dist/admin/src/{future/components → components}/UploadProgressDialog.d.ts +0 -0
- /package/dist/admin/src/{future/hooks → hooks}/useAIMetadataEnabled.d.ts +0 -0
- /package/dist/admin/src/{future/hooks → hooks}/useApiErrorMessage.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/AssetCardBase.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/AudioAssetCard.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/AudioPreview.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/DocAssetCard.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/ImageAssetCard.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/VideoAssetCard.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetCard/VideoPreview.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/Filters.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PageSize.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/Pagination.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetDialog/BrowseStep/utils/isSelectable.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetDialog/DialogFooter.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/AssetGridList/Draggable.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/Breadcrumbs/CrumbSimpleMenuAsync.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/ContextInfo/ContextInfo.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/CopyLinkButton/CopyLinkButton.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/DialogHeader.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/CroppingActions.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/FocalPointActions.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditAssetDialog/ReplaceMediaButton.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditFolderDialog/ModalHeader/ModalHeader.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EditFolderDialog/RemoveFolderDialog.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EmptyAssets/EmptyAssetGrid.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/EmptyAssets/EmptyAssets.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FilterList/FilterList.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FilterList/FilterTag.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FilterPopover/FilterPopover.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FilterPopover/FilterValueInput.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FilterPopover/utils/getFilterList.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCard/FolderCard.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardBody/FolderCardBody.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardBodyAction/FolderCardBodyAction.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FolderCard/FolderCardCheckbox/FolderCardCheckbox.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FolderCard/contexts/FolderCard.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/FolderGridList/FolderGridList.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/MediaLibraryInput/MediaLibraryInput.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/SelectTree/SelectTree.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/flattenTree.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/getOpenValues.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/SelectTree/utils/getValuesToClose.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromComputerForm.d.ts +0 -0
- /package/dist/admin/src/{components → legacy/components}/UploadAssetDialog/AddAssetStep/FromUrlForm.d.ts +0 -0
- /package/dist/admin/src/{hooks → legacy/hooks}/useAiAvailability.d.ts +0 -0
- /package/dist/admin/src/{hooks → legacy/hooks}/useCropImg.d.ts +0 -0
- /package/dist/admin/src/{hooks → legacy/hooks}/usePersistentState.d.ts +0 -0
- /package/dist/admin/src/{hooks → legacy/hooks}/useSelectionState.d.ts +0 -0
- /package/dist/admin/src/{hooks → legacy/hooks}/useSettings.d.ts +0 -0
- /package/dist/admin/src/{hooks → legacy/hooks}/utils/renameKeys.d.ts +0 -0
- /package/dist/admin/src/{pages → legacy/pages}/App/App.d.ts +0 -0
- /package/dist/admin/src/{pages → legacy/pages}/App/ConfigureTheView/state/actionTypes.d.ts +0 -0
- /package/dist/admin/src/{pages → legacy/pages}/App/ConfigureTheView/state/reducer.d.ts +0 -0
- /package/dist/admin/src/{pages → legacy/pages}/App/components/EmptyOrNoPermissions.d.ts +0 -0
- /package/dist/admin/src/{pages → legacy/pages}/App/components/Filters.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/appendSearchParamsToUrl.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/displayedFilters.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/formatBytes.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/formatDuration.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/getAPIInnerErrors.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/getFileExtension.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/getTrad.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/moveElement.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/normalizeAPIError.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/prefixFileUrlWithBackendUrl.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/prefixPluginTranslations.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/resolveFileMime.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/toSingularTypes.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/urlYupSchema.d.ts +0 -0
- /package/dist/admin/src/{utils → legacy/utils}/urlsToAssets.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/AssetsPage.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/AssetDetails/useCropImg.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/AssetsSearchInput.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/BulkMoveDialog.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/BusyOverlay.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/DateRangeCalendar.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/DeleteItemsDialog.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/AssetsDndProvider.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/DragOverlayChip.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/buildDragSet.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/dndIds.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/useAssetDnd.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/Dnd/useFolderTreeDroppable.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/DropZone/UploadDropZone.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/DropZone/UploadDropZoneContext.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/EmptyState.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/FilterBadges.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/FilterMenu.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderFormDialog.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderTree/FolderTree.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/FolderTree/useSpringLoadedExpand.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/ImportFromUrlDialog.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/MainAreaContextMenu.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/components/SortMenu.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/constants.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useAssetSearch.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useAssetSelection.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useBusyAssets.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useFolderInfo.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useInfiniteScrollSentinel.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useIsAssetDetailsOpen.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListFilters.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListScrollRestoration.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/hooks/useListSort.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/utils/buildAssetFilters.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/utils/listQueryKey.d.ts +0 -0
- /package/dist/admin/src/{future/pages → pages}/Assets/utils/selection.d.ts +0 -0
- /package/dist/admin/src/{future/store → store}/hooks.d.ts +0 -0
- /package/dist/admin/src/{future/types → types}/dnd.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/buildBulkMovePayload.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/buildDragSetFromSelection.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/createRafBatcher.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/files.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/formatMoveSuccessMessage.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/getApiErrorMessage.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/getAssetIcon.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/getRelationId.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/isEventFromWithin.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/itemSource.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/searchQueryParam.d.ts +0 -0
- /package/dist/admin/src/{future/utils → utils}/translations.d.ts +0 -0
- /package/dist/admin/{future/store → store}/hooks.js +0 -0
- /package/dist/admin/{future/store → store}/hooks.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/buildBulkMovePayload.js +0 -0
- /package/dist/admin/{future/utils → utils}/buildBulkMovePayload.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/buildDragSetFromSelection.js +0 -0
- /package/dist/admin/{future/utils → utils}/buildDragSetFromSelection.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/canDropItemOnFolder.js +0 -0
- /package/dist/admin/{future/utils → utils}/canDropItemOnFolder.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/createRafBatcher.js +0 -0
- /package/dist/admin/{future/utils → utils}/createRafBatcher.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/files.js +0 -0
- /package/dist/admin/{future/utils → utils}/files.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/flattenFolderStructure.js +0 -0
- /package/dist/admin/{future/utils → utils}/flattenFolderStructure.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/formatMoveSuccessMessage.js +0 -0
- /package/dist/admin/{future/utils → utils}/formatMoveSuccessMessage.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/getApiErrorMessage.js +0 -0
- /package/dist/admin/{future/utils → utils}/getApiErrorMessage.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/getFolderLabel.js +0 -0
- /package/dist/admin/{future/utils → utils}/getFolderLabel.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/getRelationId.js +0 -0
- /package/dist/admin/{future/utils → utils}/getRelationId.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/isEventFromWithin.js +0 -0
- /package/dist/admin/{future/utils → utils}/isEventFromWithin.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/itemLocations.js +0 -0
- /package/dist/admin/{future/utils → utils}/itemLocations.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/itemSource.js +0 -0
- /package/dist/admin/{future/utils → utils}/itemSource.mjs +0 -0
- /package/dist/admin/{future/utils → utils}/searchQueryParam.js +0 -0
- /package/dist/admin/{future/utils → utils}/searchQueryParam.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder.mjs","sources":["../../../server/src/services/folder.ts"],"sourcesContent":["import { sortBy, map, isUndefined } from 'lodash/fp';\nimport { strings, setCreatorFields } from '@strapi/utils';\nimport { FOLDER_MODEL_UID, FILE_MODEL_UID } from '../constants';\nimport { getService } from '../utils';\n\nimport type { File, Folder } from '../types';\n\ntype FolderMap = {\n [key: string]: Partial<Folder> & {\n children: FolderNode[];\n };\n};\n\ntype FolderNode = Partial<Folder> & {\n children: FolderNode[];\n};\n\nconst setPathIdAndPath = async (folder: Pick<Folder, 'parent'>) => {\n const { max } = await strapi.db\n .queryBuilder(FOLDER_MODEL_UID)\n .max('pathId')\n .first()\n .execute<{ max: number }>();\n\n const pathId = max + 1;\n let parentPath = '/';\n if (folder.parent) {\n const parentFolder = await strapi.db\n .query(FOLDER_MODEL_UID)\n .findOne({ where: { id: folder.parent } });\n\n parentPath = parentFolder.path;\n }\n\n return Object.assign(folder, {\n pathId,\n path: strings.joinBy('/', parentPath, `${pathId}`),\n });\n};\n\nconst create = async (\n folderData: Pick<Folder, 'name' | 'parent'>,\n opts?: { user: { id: string | number } }\n) => {\n const folderService = getService('folder');\n\n const { user } = opts || {};\n\n let enrichedFolder = await folderService.setPathIdAndPath(folderData);\n if (user) {\n enrichedFolder = await setCreatorFields({ user })(enrichedFolder);\n }\n\n const folder = await strapi.db.query(FOLDER_MODEL_UID).create({ data: enrichedFolder });\n\n strapi.eventHub.emit('media-folder.create', { folder });\n\n return folder;\n};\n\n/**\n * Recursively delete folders and included files\n * @param ids ids of the folders to delete\n * @returns {Promise<Object[]>}\n */\nconst deleteByIds = async (ids = []) => {\n const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({ where: { id: { $in: ids } } });\n if (folders.length === 0) {\n return {\n folders: [],\n totalFolderNumber: 0,\n totalFileNumber: 0,\n };\n }\n\n const pathsToDelete = map('path', folders);\n\n // delete files\n const filesToDelete = await strapi.db.query(FILE_MODEL_UID).findMany({\n where: {\n $or: pathsToDelete.flatMap((path) => [\n { folderPath: { $eq: path } },\n { folderPath: { $startsWith: `${path}/` } },\n ]),\n },\n });\n\n await Promise.all(filesToDelete.map((file: File) => getService('upload').remove(file)));\n\n // delete folders and subfolders\n const { count: totalFolderNumber } = await strapi.db.query(FOLDER_MODEL_UID).deleteMany({\n where: {\n $or: pathsToDelete.flatMap((path) => [\n { path: { $eq: path } },\n { path: { $startsWith: `${path}/` } },\n ]),\n },\n });\n\n strapi.eventHub.emit('media-folder.delete', { folders });\n\n return {\n folders,\n totalFolderNumber,\n totalFileNumber: filesToDelete.length,\n };\n};\n\n/**\n * Update name and location of a folder and its belonging folders and files\n */\nconst update = async (\n id: number,\n {\n name,\n parent,\n }: {\n name: string;\n parent: number | null;\n },\n { user }: { user: { id: string | number } }\n) => {\n // only name is updated\n if (isUndefined(parent)) {\n const existingFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id } });\n\n if (!existingFolder) {\n return undefined;\n }\n\n const newFolder = setCreatorFields({ user, isEdition: true })({ name, parent });\n\n if (isUndefined(parent)) {\n const folder = await strapi.db\n .query(FOLDER_MODEL_UID)\n .update({ where: { id }, data: newFolder });\n\n return folder;\n }\n // location is updated => using transaction\n } else {\n const trx = await strapi.db.transaction();\n try {\n // fetch existing folder\n const existingFolder = await strapi.db\n .queryBuilder(FOLDER_MODEL_UID)\n .select(['pathId', 'path'])\n .where({ id })\n .transacting(trx.get())\n .forUpdate()\n .first()\n .execute<Folder>();\n\n // update parent folder (delete + insert; upsert not possible)\n // @ts-expect-error - no dynamic types\n const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent;\n await strapi.db\n .queryBuilder(joinTable.name)\n .transacting(trx.get())\n .delete()\n .where({ [joinTable.joinColumn.name]: id })\n .execute();\n\n if (parent !== null) {\n await strapi.db\n .queryBuilder(joinTable.name)\n .transacting(trx.get())\n .insert({ [joinTable.inverseJoinColumn.name]: parent, [joinTable.joinColumn.name]: id })\n .where({ [joinTable.joinColumn.name]: id })\n .execute();\n }\n\n // fetch destinationFolder path\n let destinationFolderPath = '/';\n if (parent !== null) {\n const destinationFolder = await strapi.db\n .queryBuilder(FOLDER_MODEL_UID)\n .select('path')\n .where({ id: parent })\n .transacting(trx.get())\n .first()\n .execute<Folder>();\n destinationFolderPath = destinationFolder.path;\n }\n\n const folderTable = strapi.getModel(FOLDER_MODEL_UID).collectionName;\n const fileTable = strapi.getModel(FILE_MODEL_UID).collectionName;\n const folderPathColumnName =\n // @ts-expect-error - no dynamic types\n strapi.db.metadata.get(FILE_MODEL_UID).attributes.folderPath.columnName;\n // @ts-expect-error - no dynamic types\n const pathColumnName = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.path.columnName;\n\n // update folders below\n await strapi.db\n .getConnection(folderTable)\n .transacting(trx.get())\n .where(pathColumnName, existingFolder.path)\n .orWhere(pathColumnName, 'like', `${existingFolder.path}/%`)\n .update(\n pathColumnName,\n strapi.db.connection.raw('REPLACE(??, ?, ?)', [\n pathColumnName,\n existingFolder.path,\n strings.joinBy('/', destinationFolderPath, `${existingFolder.pathId}`),\n ])\n );\n\n // update files below\n await strapi.db\n .getConnection(fileTable)\n .transacting(trx.get())\n .where(folderPathColumnName, existingFolder.path)\n .orWhere(folderPathColumnName, 'like', `${existingFolder.path}/%`)\n .update(\n folderPathColumnName,\n strapi.db.connection.raw('REPLACE(??, ?, ?)', [\n folderPathColumnName,\n existingFolder.path,\n strings.joinBy('/', destinationFolderPath, `${existingFolder.pathId}`),\n ])\n );\n\n await trx.commit();\n } catch (e) {\n await trx.rollback();\n throw e;\n }\n\n // update less critical information (name + updatedBy)\n const newFolder = setCreatorFields({ user, isEdition: true })({ name });\n\n const folder = await strapi.db\n .query(FOLDER_MODEL_UID)\n .update({ where: { id }, data: newFolder });\n\n strapi.eventHub.emit('media-folder.update', { folder });\n return folder;\n }\n};\n\n/**\n * Check if a folder exists in database\n * @param params query params to find the folder\n * @returns {Promise<boolean>}\n */\nconst exists = async (params = {}) => {\n const count = await strapi.db.query(FOLDER_MODEL_UID).count({ where: params });\n return count > 0;\n};\n\n/**\n * Returns the nested structure of folders\n * @returns {Promise<array>}\n */\nconst getStructure = async () => {\n // @ts-expect-error - no dynamic types\n const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent;\n const qb = strapi.db.queryBuilder(FOLDER_MODEL_UID);\n const alias = qb.getAlias();\n const folders = (await qb\n .select(['id', 'name', `${alias}.${joinTable.inverseJoinColumn.name} as parent`])\n .join({\n alias,\n referencedTable: joinTable.name,\n referencedColumn: joinTable.joinColumn.name,\n rootColumn: joinTable.joinColumn.referencedColumn,\n rootTable: qb.alias,\n })\n .execute({ mapResults: false })) as Folder[];\n\n const folderMap: FolderMap = {\n null: { children: [] },\n };\n\n folders.forEach((f) => {\n folderMap[f.id] = { ...f, children: [] };\n });\n\n folders.forEach((f) => {\n const parentId = f.parent || 'null';\n\n if (!folderMap[parentId]) {\n folderMap[parentId] = { children: [] };\n }\n\n folderMap[parentId].children.push(folderMap[f.id]);\n folderMap[parentId].children = sortBy('name', folderMap[parentId].children);\n delete folderMap[f.id].parent;\n });\n\n return folderMap.null.children;\n};\n\nexport default {\n create,\n exists,\n deleteByIds,\n update,\n setPathIdAndPath,\n getStructure,\n};\n"],"names":["setPathIdAndPath","folder","max","strapi","db","queryBuilder","FOLDER_MODEL_UID","first","execute","pathId","parentPath","parent","parentFolder","query","findOne","where","id","path","Object","assign","strings","joinBy","create","folderData","opts","folderService","getService","user","enrichedFolder","setCreatorFields","data","eventHub","emit","deleteByIds","ids","folders","findMany","$in","length","totalFolderNumber","totalFileNumber","pathsToDelete","map","filesToDelete","FILE_MODEL_UID","$or","flatMap","folderPath","$eq","$startsWith","Promise","all","file","remove","count","deleteMany","update","name","isUndefined","existingFolder","undefined","newFolder","isEdition","trx","transaction","select","transacting","get","forUpdate","joinTable","metadata","attributes","delete","joinColumn","insert","inverseJoinColumn","destinationFolderPath","destinationFolder","folderTable","getModel","collectionName","fileTable","folderPathColumnName","columnName","pathColumnName","getConnection","orWhere","connection","raw","commit","e","rollback","exists","params","getStructure","qb","alias","getAlias","join","referencedTable","referencedColumn","rootColumn","rootTable","mapResults","folderMap","null","children","forEach","f","parentId","push","sortBy"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"folder.mjs","sources":["../../../server/src/services/folder.ts"],"sourcesContent":["import { sortBy, map, isUndefined } from 'lodash/fp';\nimport { strings, setCreatorFields } from '@strapi/utils';\nimport { FOLDER_MODEL_UID, FILE_MODEL_UID } from '../constants';\nimport { getService } from '../utils';\n\nimport type { File, Folder } from '../types';\n\ntype FolderMap = {\n [key: string]: Partial<Folder> & {\n children: FolderNode[];\n };\n};\n\ntype FolderNode = Partial<Folder> & {\n children: FolderNode[];\n};\n\nconst setPathIdAndPath = async (folder: Pick<Folder, 'parent'>) => {\n const { max } = await strapi.db\n .queryBuilder(FOLDER_MODEL_UID)\n .max('pathId')\n .first()\n .execute<{ max: number }>();\n\n const pathId = max + 1;\n let parentPath = '/';\n if (folder.parent) {\n const parentFolder = await strapi.db\n .query(FOLDER_MODEL_UID)\n .findOne({ where: { id: folder.parent } });\n\n parentPath = parentFolder.path;\n }\n\n return Object.assign(folder, {\n pathId,\n path: strings.joinBy('/', parentPath, `${pathId}`),\n });\n};\n\nconst create = async (\n folderData: Pick<Folder, 'name' | 'parent'>,\n opts?: { user: { id: string | number } }\n) => {\n const folderService = getService('folder');\n\n const { user } = opts || {};\n\n let enrichedFolder = await folderService.setPathIdAndPath(folderData);\n if (user) {\n enrichedFolder = await setCreatorFields({ user })(enrichedFolder);\n }\n\n const folder = await strapi.db.query(FOLDER_MODEL_UID).create({ data: enrichedFolder });\n\n strapi.eventHub.emit('media-folder.create', { folder });\n\n return folder;\n};\n\n/**\n * Recursively delete folders and included files\n * @param ids ids of the folders to delete\n * @returns {Promise<Object[]>}\n */\nconst deleteByIds = async (ids: number[] = []) => {\n const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({ where: { id: { $in: ids } } });\n if (folders.length === 0) {\n return {\n folders: [],\n totalFolderNumber: 0,\n totalFileNumber: 0,\n };\n }\n\n const pathsToDelete = map('path', folders);\n\n // delete files\n const filesToDelete = await strapi.db.query(FILE_MODEL_UID).findMany({\n where: {\n $or: pathsToDelete.flatMap((path) => [\n { folderPath: { $eq: path } },\n { folderPath: { $startsWith: `${path}/` } },\n ]),\n },\n });\n\n await Promise.all(filesToDelete.map((file: File) => getService('upload').remove(file)));\n\n // delete folders and subfolders\n const { count: totalFolderNumber } = await strapi.db.query(FOLDER_MODEL_UID).deleteMany({\n where: {\n $or: pathsToDelete.flatMap((path) => [\n { path: { $eq: path } },\n { path: { $startsWith: `${path}/` } },\n ]),\n },\n });\n\n strapi.eventHub.emit('media-folder.delete', { folders });\n\n return {\n folders,\n totalFolderNumber,\n totalFileNumber: filesToDelete.length,\n };\n};\n\n/**\n * Update name and location of a folder and its belonging folders and files\n */\nconst update = async (\n id: number,\n {\n name,\n parent,\n }: {\n name: string;\n /**\n * Omit to rename in place: the name-only branch skips the transaction that rewrites\n * descendant paths. Pass a number to re-parent, or null to move to the root.\n */\n parent?: number | null;\n },\n { user }: { user: { id: string | number } }\n) => {\n // only name is updated\n if (isUndefined(parent)) {\n const existingFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id } });\n\n if (!existingFolder) {\n return undefined;\n }\n\n const newFolder = setCreatorFields({ user, isEdition: true })({ name, parent });\n\n if (isUndefined(parent)) {\n const folder = await strapi.db\n .query(FOLDER_MODEL_UID)\n .update({ where: { id }, data: newFolder });\n\n return folder;\n }\n // location is updated => using transaction\n } else {\n const trx = await strapi.db.transaction();\n try {\n // fetch existing folder\n const existingFolder = await strapi.db\n .queryBuilder(FOLDER_MODEL_UID)\n .select(['pathId', 'path'])\n .where({ id })\n .transacting(trx.get())\n .forUpdate()\n .first()\n .execute<Folder>();\n\n // update parent folder (delete + insert; upsert not possible)\n // @ts-expect-error - no dynamic types\n const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent;\n await strapi.db\n .queryBuilder(joinTable.name)\n .transacting(trx.get())\n .delete()\n .where({ [joinTable.joinColumn.name]: id })\n .execute();\n\n if (parent !== null) {\n await strapi.db\n .queryBuilder(joinTable.name)\n .transacting(trx.get())\n .insert({ [joinTable.inverseJoinColumn.name]: parent, [joinTable.joinColumn.name]: id })\n .where({ [joinTable.joinColumn.name]: id })\n .execute();\n }\n\n // fetch destinationFolder path\n let destinationFolderPath = '/';\n if (parent !== null) {\n const destinationFolder = await strapi.db\n .queryBuilder(FOLDER_MODEL_UID)\n .select('path')\n .where({ id: parent })\n .transacting(trx.get())\n .first()\n .execute<Folder>();\n destinationFolderPath = destinationFolder.path;\n }\n\n const folderTable = strapi.getModel(FOLDER_MODEL_UID).collectionName;\n const fileTable = strapi.getModel(FILE_MODEL_UID).collectionName;\n const folderPathColumnName =\n // @ts-expect-error - no dynamic types\n strapi.db.metadata.get(FILE_MODEL_UID).attributes.folderPath.columnName;\n // @ts-expect-error - no dynamic types\n const pathColumnName = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.path.columnName;\n\n // update folders below\n await strapi.db\n .getConnection(folderTable)\n .transacting(trx.get())\n .where(pathColumnName, existingFolder.path)\n .orWhere(pathColumnName, 'like', `${existingFolder.path}/%`)\n .update(\n pathColumnName,\n strapi.db.connection.raw('REPLACE(??, ?, ?)', [\n pathColumnName,\n existingFolder.path,\n strings.joinBy('/', destinationFolderPath, `${existingFolder.pathId}`),\n ])\n );\n\n // update files below\n await strapi.db\n .getConnection(fileTable)\n .transacting(trx.get())\n .where(folderPathColumnName, existingFolder.path)\n .orWhere(folderPathColumnName, 'like', `${existingFolder.path}/%`)\n .update(\n folderPathColumnName,\n strapi.db.connection.raw('REPLACE(??, ?, ?)', [\n folderPathColumnName,\n existingFolder.path,\n strings.joinBy('/', destinationFolderPath, `${existingFolder.pathId}`),\n ])\n );\n\n await trx.commit();\n } catch (e) {\n await trx.rollback();\n throw e;\n }\n\n // update less critical information (name + updatedBy)\n const newFolder = setCreatorFields({ user, isEdition: true })({ name });\n\n const folder = await strapi.db\n .query(FOLDER_MODEL_UID)\n .update({ where: { id }, data: newFolder });\n\n strapi.eventHub.emit('media-folder.update', { folder });\n return folder;\n }\n};\n\n/**\n * Check if a folder exists in database\n * @param params query params to find the folder\n * @returns {Promise<boolean>}\n */\nconst exists = async (params = {}) => {\n const count = await strapi.db.query(FOLDER_MODEL_UID).count({ where: params });\n return count > 0;\n};\n\n/**\n * Returns the nested structure of folders\n * @returns {Promise<array>}\n */\nconst getStructure = async () => {\n // @ts-expect-error - no dynamic types\n const { joinTable } = strapi.db.metadata.get(FOLDER_MODEL_UID).attributes.parent;\n const qb = strapi.db.queryBuilder(FOLDER_MODEL_UID);\n const alias = qb.getAlias();\n const folders = (await qb\n .select(['id', 'name', `${alias}.${joinTable.inverseJoinColumn.name} as parent`])\n .join({\n alias,\n referencedTable: joinTable.name,\n referencedColumn: joinTable.joinColumn.name,\n rootColumn: joinTable.joinColumn.referencedColumn,\n rootTable: qb.alias,\n })\n .execute({ mapResults: false })) as Folder[];\n\n const folderMap: FolderMap = {\n null: { children: [] },\n };\n\n folders.forEach((f) => {\n folderMap[f.id] = { ...f, children: [] };\n });\n\n folders.forEach((f) => {\n const parentId = f.parent || 'null';\n\n if (!folderMap[parentId]) {\n folderMap[parentId] = { children: [] };\n }\n\n folderMap[parentId].children.push(folderMap[f.id]);\n folderMap[parentId].children = sortBy('name', folderMap[parentId].children);\n delete folderMap[f.id].parent;\n });\n\n return folderMap.null.children;\n};\n\nexport default {\n create,\n exists,\n deleteByIds,\n update,\n setPathIdAndPath,\n getStructure,\n};\n"],"names":["setPathIdAndPath","folder","max","strapi","db","queryBuilder","FOLDER_MODEL_UID","first","execute","pathId","parentPath","parent","parentFolder","query","findOne","where","id","path","Object","assign","strings","joinBy","create","folderData","opts","folderService","getService","user","enrichedFolder","setCreatorFields","data","eventHub","emit","deleteByIds","ids","folders","findMany","$in","length","totalFolderNumber","totalFileNumber","pathsToDelete","map","filesToDelete","FILE_MODEL_UID","$or","flatMap","folderPath","$eq","$startsWith","Promise","all","file","remove","count","deleteMany","update","name","isUndefined","existingFolder","undefined","newFolder","isEdition","trx","transaction","select","transacting","get","forUpdate","joinTable","metadata","attributes","delete","joinColumn","insert","inverseJoinColumn","destinationFolderPath","destinationFolder","folderTable","getModel","collectionName","fileTable","folderPathColumnName","columnName","pathColumnName","getConnection","orWhere","connection","raw","commit","e","rollback","exists","params","getStructure","qb","alias","getAlias","join","referencedTable","referencedColumn","rootColumn","rootTable","mapResults","folderMap","null","children","forEach","f","parentId","push","sortBy"],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var index = require('../utils/index.js');
|
|
4
|
+
|
|
3
5
|
const getProviderName = ()=>strapi.config.get('plugin::upload.provider', 'local');
|
|
4
6
|
const isProviderPrivate = async ()=>strapi.plugin('upload').provider.isPrivate();
|
|
5
7
|
var metrics = (({ strapi: strapi1 })=>({
|
|
6
8
|
async trackUsage (event, properties) {
|
|
7
|
-
const
|
|
8
|
-
const isAiAvailable = strapi1.ai.admin.isEnabled();
|
|
9
|
+
const isAiAvailable = strapi1.ai.admin.isStrapiManagedAiEnabled();
|
|
9
10
|
return strapi1.telemetry.send(event, {
|
|
10
11
|
...properties,
|
|
11
12
|
eventProperties: {
|
|
12
13
|
...properties?.eventProperties,
|
|
13
14
|
...isAiAvailable === true ? {
|
|
14
|
-
isAiMediaLibraryConfigured:
|
|
15
|
+
isAiMediaLibraryConfigured: await index.getService('aiMetadata').isEnabled()
|
|
15
16
|
} : {}
|
|
16
17
|
}
|
|
17
18
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sources":["../../../server/src/services/metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport {
|
|
1
|
+
{"version":3,"file":"metrics.js","sources":["../../../server/src/services/metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst getProviderName = () => strapi.config.get('plugin::upload.provider', 'local');\nconst isProviderPrivate = async () => strapi.plugin('upload').provider.isPrivate();\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n async trackUsage(event: string, properties?: Record<string, any>) {\n const isAiAvailable = strapi.ai.admin.isStrapiManagedAiEnabled();\n\n return strapi.telemetry.send(event, {\n ...properties,\n eventProperties: {\n ...properties?.eventProperties,\n ...(isAiAvailable === true\n ? { isAiMediaLibraryConfigured: await getService('aiMetadata').isEnabled() }\n : {}),\n },\n });\n },\n async sendUploadPluginMetrics() {\n const uploadProvider = getProviderName();\n const privateProvider = await isProviderPrivate();\n\n await this.trackUsage('didInitializePluginUpload', {\n groupProperties: {\n uploadProvider,\n privateProvider,\n },\n });\n },\n});\n"],"names":["getProviderName","strapi","config","get","isProviderPrivate","plugin","provider","isPrivate","trackUsage","event","properties","isAiAvailable","ai","admin","isStrapiManagedAiEnabled","telemetry","send","eventProperties","isAiMediaLibraryConfigured","getService","isEnabled","sendUploadPluginMetrics","uploadProvider","privateProvider","groupProperties"],"mappings":";;;;AAGA,MAAMA,kBAAkB,IAAMC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,OAAA,CAAA;AAC3E,MAAMC,iBAAAA,GAAoB,UAAYH,MAAAA,CAAOI,MAAM,CAAC,QAAA,CAAA,CAAUC,QAAQ,CAACC,SAAS,EAAA;AAEhF,cAAe,CAAA,CAAC,EAAEN,QAAAA,OAAM,EAA2B,IAAM;QACvD,MAAMO,UAAAA,CAAAA,CAAWC,KAAa,EAAEC,UAAgC,EAAA;AAC9D,YAAA,MAAMC,gBAAgBV,OAAAA,CAAOW,EAAE,CAACC,KAAK,CAACC,wBAAwB,EAAA;AAE9D,YAAA,OAAOb,OAAAA,CAAOc,SAAS,CAACC,IAAI,CAACP,KAAAA,EAAO;AAClC,gBAAA,GAAGC,UAAU;gBACbO,eAAAA,EAAiB;AACf,oBAAA,GAAGP,YAAYO,eAAe;AAC9B,oBAAA,GAAIN,kBAAkB,IAAA,GAClB;wBAAEO,0BAAAA,EAA4B,MAAMC,gBAAAA,CAAW,YAAA,CAAA,CAAcC,SAAS;AAAG,qBAAA,GACzE;AACN;AACF,aAAA,CAAA;AACF,QAAA,CAAA;QACA,MAAMC,uBAAAA,CAAAA,GAAAA;AACJ,YAAA,MAAMC,cAAAA,GAAiBtB,eAAAA,EAAAA;AACvB,YAAA,MAAMuB,kBAAkB,MAAMnB,iBAAAA,EAAAA;AAE9B,YAAA,MAAM,IAAI,CAACI,UAAU,CAAC,2BAAA,EAA6B;gBACjDgB,eAAAA,EAAiB;AACfF,oBAAAA,cAAAA;AACAC,oBAAAA;AACF;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import { getService } from '../utils/index.mjs';
|
|
2
|
+
|
|
1
3
|
const getProviderName = ()=>strapi.config.get('plugin::upload.provider', 'local');
|
|
2
4
|
const isProviderPrivate = async ()=>strapi.plugin('upload').provider.isPrivate();
|
|
3
5
|
var metrics = (({ strapi: strapi1 })=>({
|
|
4
6
|
async trackUsage (event, properties) {
|
|
5
|
-
const
|
|
6
|
-
const isAiAvailable = strapi1.ai.admin.isEnabled();
|
|
7
|
+
const isAiAvailable = strapi1.ai.admin.isStrapiManagedAiEnabled();
|
|
7
8
|
return strapi1.telemetry.send(event, {
|
|
8
9
|
...properties,
|
|
9
10
|
eventProperties: {
|
|
10
11
|
...properties?.eventProperties,
|
|
11
12
|
...isAiAvailable === true ? {
|
|
12
|
-
isAiMediaLibraryConfigured:
|
|
13
|
+
isAiMediaLibraryConfigured: await getService('aiMetadata').isEnabled()
|
|
13
14
|
} : {}
|
|
14
15
|
}
|
|
15
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.mjs","sources":["../../../server/src/services/metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport {
|
|
1
|
+
{"version":3,"file":"metrics.mjs","sources":["../../../server/src/services/metrics.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { getService } from '../utils';\n\nconst getProviderName = () => strapi.config.get('plugin::upload.provider', 'local');\nconst isProviderPrivate = async () => strapi.plugin('upload').provider.isPrivate();\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => ({\n async trackUsage(event: string, properties?: Record<string, any>) {\n const isAiAvailable = strapi.ai.admin.isStrapiManagedAiEnabled();\n\n return strapi.telemetry.send(event, {\n ...properties,\n eventProperties: {\n ...properties?.eventProperties,\n ...(isAiAvailable === true\n ? { isAiMediaLibraryConfigured: await getService('aiMetadata').isEnabled() }\n : {}),\n },\n });\n },\n async sendUploadPluginMetrics() {\n const uploadProvider = getProviderName();\n const privateProvider = await isProviderPrivate();\n\n await this.trackUsage('didInitializePluginUpload', {\n groupProperties: {\n uploadProvider,\n privateProvider,\n },\n });\n },\n});\n"],"names":["getProviderName","strapi","config","get","isProviderPrivate","plugin","provider","isPrivate","trackUsage","event","properties","isAiAvailable","ai","admin","isStrapiManagedAiEnabled","telemetry","send","eventProperties","isAiMediaLibraryConfigured","getService","isEnabled","sendUploadPluginMetrics","uploadProvider","privateProvider","groupProperties"],"mappings":";;AAGA,MAAMA,kBAAkB,IAAMC,MAAAA,CAAOC,MAAM,CAACC,GAAG,CAAC,yBAAA,EAA2B,OAAA,CAAA;AAC3E,MAAMC,iBAAAA,GAAoB,UAAYH,MAAAA,CAAOI,MAAM,CAAC,QAAA,CAAA,CAAUC,QAAQ,CAACC,SAAS,EAAA;AAEhF,cAAe,CAAA,CAAC,EAAEN,QAAAA,OAAM,EAA2B,IAAM;QACvD,MAAMO,UAAAA,CAAAA,CAAWC,KAAa,EAAEC,UAAgC,EAAA;AAC9D,YAAA,MAAMC,gBAAgBV,OAAAA,CAAOW,EAAE,CAACC,KAAK,CAACC,wBAAwB,EAAA;AAE9D,YAAA,OAAOb,OAAAA,CAAOc,SAAS,CAACC,IAAI,CAACP,KAAAA,EAAO;AAClC,gBAAA,GAAGC,UAAU;gBACbO,eAAAA,EAAiB;AACf,oBAAA,GAAGP,YAAYO,eAAe;AAC9B,oBAAA,GAAIN,kBAAkB,IAAA,GAClB;wBAAEO,0BAAAA,EAA4B,MAAMC,UAAAA,CAAW,YAAA,CAAA,CAAcC,SAAS;AAAG,qBAAA,GACzE;AACN;AACF,aAAA,CAAA;AACF,QAAA,CAAA;QACA,MAAMC,uBAAAA,CAAAA,GAAAA;AACJ,YAAA,MAAMC,cAAAA,GAAiBtB,eAAAA,EAAAA;AACvB,YAAA,MAAMuB,kBAAkB,MAAMnB,iBAAAA,EAAAA;AAE9B,YAAA,MAAM,IAAI,CAACI,UAAU,CAAC,2BAAA,EAA6B;gBACjDgB,eAAAA,EAAiB;AACfF,oBAAAA,cAAAA;AACAC,oBAAAA;AACF;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAC;;;;"}
|
|
@@ -353,8 +353,12 @@ var upload = (({ strapi })=>{
|
|
|
353
353
|
const tmpWorkingDirectory = await createAndAssignTmpWorkingDirectoryToFiles(file);
|
|
354
354
|
let fileData;
|
|
355
355
|
try {
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
// `refId` / `ref` / `field` are dropped rather than forwarded: `formatFileInfo` turns
|
|
357
|
+
// them into a one-element `related` array, and a bare array reaches the morph join as
|
|
358
|
+
// `set` — which deletes every row for this file, detaching it from every other entry
|
|
359
|
+
// that uses it. Attaching an existing file to an entry is the content API's job.
|
|
360
|
+
const { fileInfo, refId: _refId, ref: _ref, field: _field, ...metas } = data;
|
|
361
|
+
fileData = await enhanceAndValidateFile(file, fileInfo, metas);
|
|
358
362
|
// Replacing a file writes new bytes just like creating one, so it has to
|
|
359
363
|
// respect sizeLimit too. Checked before any provider write, and measured on
|
|
360
364
|
// the same post-optimization file as the create path (uploadFileAndPersist).
|
|
@@ -364,6 +368,14 @@ var upload = (({ strapi })=>{
|
|
|
364
368
|
hash: dbFile.hash,
|
|
365
369
|
ext: dbFile.ext
|
|
366
370
|
});
|
|
371
|
+
// A plain replace sends no folder, so `formatFileInfo` resolved folderPath to
|
|
372
|
+
// '/' while the relation survived — and folder deletion selects by folderPath,
|
|
373
|
+
// which orphaned the file. An explicitly sent folder still moves it.
|
|
374
|
+
if (fileInfo?.folder === undefined) {
|
|
375
|
+
___default.default.assign(fileData, {
|
|
376
|
+
folderPath: dbFile.folderPath
|
|
377
|
+
});
|
|
378
|
+
}
|
|
367
379
|
// clear old formats — replaceImage / replace will set new ones
|
|
368
380
|
___default.default.set(fileData, 'formats', {});
|
|
369
381
|
if (dbFile.provider === config.provider) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sources":["../../../server/src/services/upload.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport fs from 'fs';\nimport fse from 'fs-extra';\nimport _ from 'lodash';\nimport { extension } from 'mime-types';\nimport {\n async,\n sanitize,\n contentTypes as contentTypesUtils,\n errors,\n file as fileUtils,\n pagination as paginationUtils,\n} from '@strapi/utils';\nimport { has, toNumber, isNil } from 'lodash/fp';\n\nimport type { Core, UID } from '@strapi/types';\n\nimport { FILE_MODEL_UID, ALLOWED_WEBHOOK_EVENTS } from '../constants';\nimport { getService } from '../utils';\n\nimport type { Config, File, InputFile, UploadableFile, FileInfo } from '../types';\nimport type { ViewConfiguration } from '../controllers/validation/admin/configureView';\nimport type { Settings } from '../controllers/validation/admin/settings';\n\ntype User = {\n id: string | number;\n};\n\ntype ID = string | number;\n\ntype CommonOptions = {\n user?: User;\n};\n\ntype Metas = {\n refId?: ID;\n ref?: string;\n field?: string;\n path?: string;\n tmpWorkingDirectory?: string;\n};\n\nconst { UPDATED_BY_ATTRIBUTE, CREATED_BY_ATTRIBUTE } = contentTypesUtils.constants;\nconst { MEDIA_CREATE, MEDIA_UPDATE, MEDIA_DELETE } = ALLOWED_WEBHOOK_EVENTS;\n\nconst { ApplicationError, NotFoundError } = errors;\nconst { bytesToKbytes } = fileUtils;\n\n/**\n * Queue a provider operation for a later `Promise.all`, with a rejection handler\n * attached in the same turn so a fast failure is never an unhandled rejection.\n *\n * `Promise.resolve` first — a provider may hand back a plain value, which\n * `Promise.all` accepts but `.catch` would throw on.\n */\nconst queueConcurrentOperation = <T>(queue: Promise<T>[], operation: Promise<T>) => {\n Promise.resolve(operation).catch(() => undefined);\n queue.push(operation);\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const fileService = getService('file');\n\n const sendMediaMetrics = async (data: Pick<File, 'caption' | 'alternativeText'>) => {\n if (_.has(data, 'caption') && !_.isEmpty(data.caption)) {\n await getService('metrics').trackUsage('didSaveMediaWithCaption');\n }\n\n if (_.has(data, 'alternativeText') && !_.isEmpty(data.alternativeText)) {\n await getService('metrics').trackUsage('didSaveMediaWithAlternativeText');\n }\n };\n\n const createAndAssignTmpWorkingDirectoryToFiles = async (\n files: InputFile | InputFile[]\n ): Promise<string> => {\n const tmpWorkingDirectory = await fse.mkdtemp(path.join(os.tmpdir(), 'strapi-upload-'));\n\n if (Array.isArray(files)) {\n files.forEach((file) => {\n file.tmpWorkingDirectory = tmpWorkingDirectory;\n });\n } else {\n files.tmpWorkingDirectory = tmpWorkingDirectory;\n }\n\n return tmpWorkingDirectory;\n };\n\n function filenameReservedRegex() {\n // eslint-disable-next-line no-control-regex\n return /[<>:\"/\\\\|?*\\u0000-\\u001F]/g;\n }\n\n function windowsReservedNameRegex() {\n return /^(con|prn|aux|nul|com\\d|lpt\\d)$/i;\n }\n\n /**\n * Copied from https://github.com/sindresorhus/valid-filename package\n */\n function isValidFilename(string: string) {\n if (!string || string.length > 255) {\n return false;\n }\n if (filenameReservedRegex().test(string) || windowsReservedNameRegex().test(string)) {\n return false;\n }\n if (string === '.' || string === '..') {\n return false;\n }\n return true;\n }\n\n async function emitEvent(event: string, data: Record<string, any>) {\n const modelDef = strapi.getModel(FILE_MODEL_UID);\n const sanitizedData = await sanitize.sanitizers.defaultSanitizeOutput(\n {\n schema: modelDef,\n getModel(uid: string) {\n return strapi.getModel(uid as UID.Schema);\n },\n },\n data\n );\n\n strapi.eventHub.emit(event, { media: sanitizedData });\n }\n\n async function formatFileInfo(\n { filename, type, size }: { filename: string; type: string; size: number },\n fileInfo: Partial<FileInfo> = {},\n metas: {\n refId?: ID;\n ref?: string;\n field?: string;\n path?: string;\n tmpWorkingDirectory?: string;\n } = {}\n ): Promise<Omit<UploadableFile, 'getStream'>> {\n const fileService = getService('file');\n const imageManipulationService = getService('image-manipulation');\n\n if (!isValidFilename(filename)) {\n throw new ApplicationError('File name contains invalid characters');\n }\n\n let ext = path.extname(filename);\n if (!ext) {\n ext = `.${extension(type)}`;\n }\n const usedName = (fileInfo.name || filename).normalize();\n const basename = path.basename(usedName, ext);\n\n // Prevent null characters in file name\n if (!isValidFilename(filename)) {\n throw new ApplicationError('File name contains invalid characters');\n }\n\n const entity: Omit<UploadableFile, 'getStream'> = {\n name: usedName,\n alternativeText: fileInfo.alternativeText,\n caption: fileInfo.caption,\n focalPoint: fileInfo.focalPoint,\n folder: fileInfo.folder,\n folderPath: await fileService.getFolderPath(fileInfo.folder),\n hash: imageManipulationService.generateFileName(basename),\n ext,\n mime: type,\n size: bytesToKbytes(size),\n sizeInBytes: size,\n };\n\n const { refId, ref, field } = metas;\n\n if (refId && ref && field) {\n entity.related = [\n {\n id: refId,\n __type: ref,\n __pivot: { field },\n },\n ];\n }\n\n if (metas.path) {\n entity.path = metas.path;\n }\n\n if (metas.tmpWorkingDirectory) {\n entity.tmpWorkingDirectory = metas.tmpWorkingDirectory;\n }\n\n return entity;\n }\n\n async function enhanceAndValidateFile(\n file: InputFile,\n fileInfo: FileInfo,\n metas?: Metas\n ): Promise<UploadableFile> {\n // Prefer detected MIME type from security validation. Treat application/octet-stream as\n // undeclared so we use detected type when the client sends no real Content-Type.\n const detected = (file as any).detectedMimeType;\n const declared = file.mimetype || '';\n const mimeType =\n detected ||\n (declared && declared !== 'application/octet-stream' ? declared : undefined) ||\n 'application/octet-stream';\n\n const currentFile = (await formatFileInfo(\n {\n filename: file.originalFilename ?? 'unamed',\n type: mimeType,\n size: file.size,\n },\n fileInfo,\n {\n ...metas,\n tmpWorkingDirectory: file.tmpWorkingDirectory,\n }\n )) as UploadableFile;\n\n currentFile.filepath = file.filepath;\n currentFile.getStream = () => fs.createReadStream(file.filepath);\n\n const { optimize, isImage, isFaultyImage, isOptimizableImage } = strapi\n .plugin('upload')\n .service('image-manipulation');\n\n if (await isImage(currentFile)) {\n if (await isFaultyImage(currentFile)) {\n throw new ApplicationError('File is not a valid image');\n }\n if (await isOptimizableImage(currentFile)) {\n return optimize(currentFile);\n }\n }\n\n return currentFile;\n }\n\n async function upload(\n {\n data,\n files,\n }: {\n data: Record<string, unknown>;\n files: InputFile[];\n },\n opts?: CommonOptions\n ) {\n const { user } = opts ?? {};\n // create temporary folder to store files for stream manipulation\n const tmpWorkingDirectory = await createAndAssignTmpWorkingDirectoryToFiles(files);\n\n const uploadedFiles = [];\n try {\n const { fileInfo, ...metas } = data;\n\n const fileArray = Array.isArray(files) ? files : [files];\n const fileInfoArray = Array.isArray(fileInfo) ? fileInfo : [fileInfo];\n\n const doUpload = async (file: InputFile, fileInfo: FileInfo) => {\n const fileData = await enhanceAndValidateFile(file, fileInfo, metas);\n return uploadFileAndPersist(fileData, { user });\n };\n\n const concurrentUploadSize = Math.max(\n 1,\n strapi.config.get<Config>('plugin::upload').concurrentUploadSize ?? 1\n );\n\n const fileBatches = _.chunk(\n fileArray.map((file, idx) => ({ file, fileInfo: fileInfoArray[idx] || {} })),\n concurrentUploadSize\n );\n\n for (const batch of fileBatches) {\n const results = await Promise.all(\n batch.map(({ file, fileInfo }) => doUpload(file, fileInfo))\n );\n uploadedFiles.push(...results);\n }\n } finally {\n // delete temporary folder\n await fse.remove(tmpWorkingDirectory);\n }\n\n return uploadedFiles;\n }\n\n /**\n * When uploading an image, an additional thumbnail is generated.\n * Also, if there are responsive formats defined, another set of images will be generated too.\n *\n * @param {*} fileData\n */\n async function uploadImage(fileData: UploadableFile) {\n const { getDimensions, generateThumbnail, generateResponsiveFormats, isResizableImage } =\n getService('image-manipulation');\n\n // Store width and height of the original image\n const { width, height } = await getDimensions(fileData);\n\n // Make sure this is assigned before calling any upload\n // That way it can mutate the width and height\n _.assign(fileData, {\n width,\n height,\n });\n\n // For performance reasons, all uploads are wrapped in a single Promise.all\n const uploadThumbnail = async (thumbnailFile: UploadableFile) => {\n await getService('provider').upload(thumbnailFile);\n _.set(fileData, 'formats.thumbnail', thumbnailFile);\n };\n\n // Generate thumbnail and responsive formats\n const uploadResponsiveFormat = async (format: { key: string; file: UploadableFile }) => {\n const { key, file } = format;\n await getService('provider').upload(file);\n _.set(fileData, ['formats', key], file);\n };\n\n const uploadPromises: Promise<void>[] = [];\n\n // Upload image\n queueConcurrentOperation(uploadPromises, getService('provider').upload(fileData));\n\n // Generate & Upload thumbnail and responsive formats\n if (await isResizableImage(fileData)) {\n const thumbnailFile = await generateThumbnail(fileData);\n if (thumbnailFile) {\n queueConcurrentOperation(uploadPromises, uploadThumbnail(thumbnailFile));\n }\n\n const formats = await generateResponsiveFormats(fileData);\n if (Array.isArray(formats) && formats.length > 0) {\n for (const format of formats) {\n // eslint-disable-next-line no-continue\n if (!format) continue;\n queueConcurrentOperation(uploadPromises, uploadResponsiveFormat(format));\n }\n }\n }\n // Wait for all uploads to finish\n await Promise.all(uploadPromises);\n }\n\n /**\n * Like uploadImage, but pairs the main file and each format with its old\n * counterpart and routes through provider.replace so providers that implement\n * an atomic replace can use it. Formats that no longer exist on the new image\n * are deleted; formats that didn't exist on the old image are uploaded fresh.\n */\n async function replaceImage(fileData: UploadableFile, oldFile: File) {\n const { getDimensions, generateThumbnail, generateResponsiveFormats, isResizableImage } =\n getService('image-manipulation');\n\n const { width, height } = await getDimensions(fileData);\n\n _.assign(fileData, {\n width,\n height,\n });\n\n const replaceFormat = async (key: string, newFormat: UploadableFile) => {\n const oldFormat = oldFile.formats?.[key] as File | undefined;\n if (oldFormat) {\n await getService('provider').replace(newFormat, oldFormat);\n } else {\n await getService('provider').upload(newFormat);\n }\n _.set(fileData, ['formats', key], newFormat);\n };\n\n const promises: Promise<unknown>[] = [];\n\n // Replace the main file\n queueConcurrentOperation(promises, getService('provider').replace(fileData, oldFile));\n\n const newFormatKeys = new Set<string>();\n\n if (await isResizableImage(fileData)) {\n const thumbnailFile = await generateThumbnail(fileData);\n if (thumbnailFile) {\n newFormatKeys.add('thumbnail');\n queueConcurrentOperation(promises, replaceFormat('thumbnail', thumbnailFile));\n }\n\n const formats = await generateResponsiveFormats(fileData);\n if (Array.isArray(formats) && formats.length > 0) {\n for (const format of formats) {\n // eslint-disable-next-line no-continue\n if (!format) continue;\n newFormatKeys.add(format.key);\n queueConcurrentOperation(promises, replaceFormat(format.key, format.file));\n }\n }\n }\n\n // Delete any formats that existed on the old file but are not present on the new one\n if (\n oldFile.formats &&\n oldFile.provider === strapi.config.get<Config>('plugin::upload').provider\n ) {\n for (const oldKey of Object.keys(oldFile.formats)) {\n if (!newFormatKeys.has(oldKey)) {\n const oldFormat = oldFile.formats[oldKey] as File;\n queueConcurrentOperation(promises, strapi.plugin('upload').provider.delete(oldFormat));\n }\n }\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Upload a file. If it is an image it will generate a thumbnail\n * and responsive formats (if enabled).\n */\n async function uploadFileAndPersist(fileData: UploadableFile, opts?: CommonOptions) {\n const { user } = opts ?? {};\n\n const config = strapi.config.get<Config>('plugin::upload');\n const { isImage } = getService('image-manipulation');\n\n await getService('provider').checkFileSize(fileData);\n\n if (await isImage(fileData)) {\n await uploadImage(fileData);\n } else {\n await getService('provider').upload(fileData);\n }\n\n _.set(fileData, 'provider', config.provider);\n\n // Persist file(s)\n return add(fileData, { user });\n }\n\n async function updateFileInfo(\n id: ID,\n { name, alternativeText, caption, focalPoint, folder }: FileInfo,\n opts?: CommonOptions\n ) {\n const { user } = opts ?? {};\n\n const dbFile = await findOne(id);\n\n if (!dbFile) {\n throw new NotFoundError();\n }\n\n const fileService = getService('file');\n\n const newName = _.isNil(name) ? dbFile.name : name;\n const newInfos = {\n name: newName,\n alternativeText: _.isNil(alternativeText) ? dbFile.alternativeText : alternativeText,\n caption: _.isNil(caption) ? dbFile.caption : caption,\n focalPoint: _.isNil(focalPoint) ? dbFile.focalPoint : focalPoint,\n folder: _.isUndefined(folder) ? dbFile.folder : folder,\n folderPath: _.isUndefined(folder)\n ? dbFile.folderPath\n : await fileService.getFolderPath(folder),\n };\n\n return update(id, newInfos, { user });\n }\n\n async function replace(\n id: ID,\n { data, file }: { data: { fileInfo: FileInfo }; file: InputFile },\n opts?: CommonOptions\n ) {\n const { user } = opts ?? {};\n\n const config = strapi.config.get<Config>('plugin::upload');\n\n const { isImage } = getService('image-manipulation');\n\n const dbFile = await findOne(id);\n if (!dbFile) {\n throw new NotFoundError();\n }\n\n // create temporary folder to store files for stream manipulation\n const tmpWorkingDirectory = await createAndAssignTmpWorkingDirectoryToFiles(file);\n\n let fileData: UploadableFile;\n\n try {\n const { fileInfo } = data;\n fileData = await enhanceAndValidateFile(file, fileInfo);\n\n // Replacing a file writes new bytes just like creating one, so it has to\n // respect sizeLimit too. Checked before any provider write, and measured on\n // the same post-optimization file as the create path (uploadFileAndPersist).\n await getService('provider').checkFileSize(fileData);\n\n // keep a constant hash and extension so the file url doesn't change when the file is replaced\n _.assign(fileData, {\n hash: dbFile.hash,\n ext: dbFile.ext,\n });\n\n // clear old formats — replaceImage / replace will set new ones\n _.set(fileData, 'formats', {});\n\n if (dbFile.provider === config.provider) {\n if (await isImage(fileData)) {\n await replaceImage(fileData, dbFile);\n } else {\n // The new file is not an image, so it has no formats. Replace the main\n // file, then delete any formats the old image left behind — otherwise\n // they're orphaned in storage since the DB record no longer tracks them.\n await getService('provider').replace(fileData, dbFile);\n if (dbFile.formats) {\n await Promise.all(\n Object.keys(dbFile.formats).map((key) =>\n strapi.plugin('upload').provider.delete(dbFile.formats![key] as File)\n )\n );\n }\n }\n } else if (await isImage(fileData)) {\n // Cross-provider replacement: no delete on the old provider, upload to the new one.\n await uploadImage(fileData);\n } else {\n await getService('provider').upload(fileData);\n }\n\n _.set(fileData, 'provider', config.provider);\n } finally {\n // delete temporary folder\n await fse.remove(tmpWorkingDirectory);\n }\n\n return update(id, fileData, { user });\n }\n\n async function update(id: ID, values: Partial<File>, opts?: CommonOptions) {\n const { user } = opts ?? {};\n\n const fileValues = { ...values };\n if (user) {\n Object.assign(fileValues, {\n [UPDATED_BY_ATTRIBUTE]: user.id,\n });\n }\n\n await sendMediaMetrics(fileValues);\n\n const res = await strapi.db.query(FILE_MODEL_UID).update({ where: { id }, data: fileValues });\n\n await emitEvent(MEDIA_UPDATE, res);\n\n return res;\n }\n\n async function add(values: any, opts?: CommonOptions) {\n const { user } = opts ?? {};\n\n const fileValues = { ...values };\n if (user) {\n Object.assign(fileValues, {\n [UPDATED_BY_ATTRIBUTE]: user.id,\n [CREATED_BY_ATTRIBUTE]: user.id,\n });\n }\n\n await sendMediaMetrics(fileValues);\n\n const res = await strapi.db.query(FILE_MODEL_UID).create({ data: fileValues });\n\n await emitEvent(MEDIA_CREATE, res);\n\n return res;\n }\n\n async function findOne(id: ID, populate = {}) {\n const query = strapi.get('query-params').transform(FILE_MODEL_UID, {\n populate,\n });\n\n const file = await strapi.db.query(FILE_MODEL_UID).findOne({\n where: { id },\n ...query,\n });\n\n if (!file) return file;\n\n // Sign file URLs if using private provider\n return fileService.signFileUrls(file);\n }\n\n async function findMany(query: any = {}): Promise<File[]> {\n const files = await strapi.db\n .query(FILE_MODEL_UID)\n .findMany(strapi.get('query-params').transform(FILE_MODEL_UID, query));\n\n // Sign file URLs if using private provider\n return async.map(files, (file: File) => fileService.signFileUrls(file));\n }\n\n async function findPage(query: any = {}) {\n const result = await strapi.db\n .query(FILE_MODEL_UID)\n .findPage(strapi.get('query-params').transform(FILE_MODEL_UID, query));\n\n // Sign file URLs if using private provider\n const signedResults = await async.map(result.results, (file: File) =>\n fileService.signFileUrls(file)\n );\n\n return {\n ...result,\n results: signedResults,\n };\n }\n\n /**\n * Resolve whether the count query should run, mirroring core-api's `shouldCount`.\n * Defaults to the `api.rest.withCount` config (true) when not specified on the request.\n */\n function resolveWithCount(pagination: Record<string, unknown>): boolean {\n if (has('withCount', pagination)) {\n const withCount = pagination.withCount;\n\n if (typeof withCount === 'boolean') {\n return withCount;\n }\n\n if (typeof withCount === 'undefined') {\n return false;\n }\n\n if (['true', 't', '1', 1].includes(withCount as string | number)) {\n return true;\n }\n\n if (['false', 'f', '0', 0].includes(withCount as string | number)) {\n return false;\n }\n\n throw new errors.ValidationError(\n 'Invalid withCount parameter. Expected \"t\",\"1\",\"true\",\"false\",\"0\",\"f\"'\n );\n }\n\n return Boolean(strapi.config.get('api.rest.withCount', true));\n }\n\n /**\n * REST-aware paginated find for the content API.\n *\n * Unlike `findPage` (used by the admin API), this honors the standard nested\n * `pagination` query object (`pagination[page]`, `pagination[pageSize]`,\n * `pagination[start]`, `pagination[limit]`, `pagination[withCount]`) and the\n * `api.rest.defaultLimit` / `api.rest.maxLimit` / `api.rest.withCount` config,\n * exactly like every other Strapi REST collection-type endpoint.\n */\n async function findAndCountPage(query: any = {}) {\n const { pagination = {} } = query;\n\n const defaultLimit = toNumber(strapi.config.get('api.rest.defaultLimit', 25));\n const maxLimit = toNumber(strapi.config.get('api.rest.maxLimit')) || null;\n\n // Whether the consumer used page-based pagination (default) vs offset-based.\n const isOffset = has('start', pagination) || has('limit', pagination);\n const isPaged = !isOffset;\n\n // Resolve start/limit applying defaults and the maxLimit cap.\n const { start, limit } = paginationUtils.withDefaultPagination(pagination, {\n defaults: { offset: { limit: defaultLimit }, page: { pageSize: defaultLimit } },\n maxLimit: maxLimit || -1,\n });\n\n // Feed the transform the resolved offset/limit so it ignores the nested\n // `pagination` object (which it cannot read) and applies real bounds.\n const transformed = strapi\n .get('query-params')\n .transform(FILE_MODEL_UID, { ...query, pagination: undefined, start, limit });\n\n const shouldCount = resolveWithCount(pagination);\n\n const [results, total] = await Promise.all([\n strapi.db.query(FILE_MODEL_UID).findMany(transformed),\n shouldCount ? strapi.db.query(FILE_MODEL_UID).count(transformed) : Promise.resolve(undefined),\n ]);\n\n const signedResults = await async.map(results, (file: File) => fileService.signFileUrls(file));\n\n const transform = isPaged\n ? paginationUtils.transformPagedPaginationInfo\n : paginationUtils.transformOffsetPaginationInfo;\n\n const paginationInfo = transform({ start, limit }, total as number);\n\n return {\n results: signedResults,\n // Omit total & pageCount when counting is disabled (withCount=false).\n pagination: isNil(total) ? _.omit(paginationInfo, ['total', 'pageCount']) : paginationInfo,\n };\n }\n\n async function remove(file: File) {\n const config = strapi.config.get<Config>('plugin::upload');\n\n // execute delete function of the provider\n if (file.provider === config.provider) {\n await strapi.plugin('upload').provider.delete(file);\n\n if (file.formats) {\n const keys = Object.keys(file.formats);\n\n await Promise.all(\n keys.map((key) => {\n return strapi.plugin('upload').provider.delete(file.formats![key]);\n })\n );\n }\n }\n\n const media = await strapi.db.query(FILE_MODEL_UID).findOne({\n where: { id: file.id },\n });\n\n await emitEvent(MEDIA_DELETE, media);\n\n return strapi.db.query(FILE_MODEL_UID).delete({ where: { id: file.id } });\n }\n\n async function getSettings() {\n const res = await strapi.store!({ type: 'plugin', name: 'upload', key: 'settings' }).get({});\n\n return res as Settings | null;\n }\n\n async function setSettings(value: Settings) {\n if (value.responsiveDimensions === true) {\n await getService('metrics').trackUsage('didEnableResponsiveDimensions');\n } else {\n await getService('metrics').trackUsage('didDisableResponsiveDimensions');\n }\n\n return strapi.store!({ type: 'plugin', name: 'upload', key: 'settings' }).set({ value });\n }\n\n async function getConfiguration() {\n const res = await strapi.store!({\n type: 'plugin',\n name: 'upload',\n key: 'view_configuration',\n }).get({});\n\n return res as ViewConfiguration | null;\n }\n\n function setConfiguration(value: ViewConfiguration) {\n return strapi.store!({ type: 'plugin', name: 'upload', key: 'view_configuration' }).set({\n value,\n });\n }\n\n return {\n formatFileInfo,\n upload,\n updateFileInfo,\n replace,\n findOne,\n findMany,\n findPage,\n findAndCountPage,\n remove,\n getSettings,\n setSettings,\n getConfiguration,\n setConfiguration,\n\n /**\n * exposed for testing only\n * @internal\n */\n _uploadImage: uploadImage,\n _replaceImage: replaceImage,\n _queueConcurrentOperation: queueConcurrentOperation,\n };\n};\n"],"names":["UPDATED_BY_ATTRIBUTE","CREATED_BY_ATTRIBUTE","contentTypesUtils","constants","MEDIA_CREATE","MEDIA_UPDATE","MEDIA_DELETE","ALLOWED_WEBHOOK_EVENTS","ApplicationError","NotFoundError","errors","bytesToKbytes","fileUtils","queueConcurrentOperation","queue","operation","Promise","resolve","catch","undefined","push","strapi","fileService","getService","sendMediaMetrics","data","_","has","isEmpty","caption","trackUsage","alternativeText","createAndAssignTmpWorkingDirectoryToFiles","files","tmpWorkingDirectory","fse","mkdtemp","path","join","os","tmpdir","Array","isArray","forEach","file","filenameReservedRegex","windowsReservedNameRegex","isValidFilename","string","length","test","emitEvent","event","modelDef","getModel","FILE_MODEL_UID","sanitizedData","sanitize","sanitizers","defaultSanitizeOutput","schema","uid","eventHub","emit","media","formatFileInfo","filename","type","size","fileInfo","metas","imageManipulationService","ext","extname","extension","usedName","name","normalize","basename","entity","focalPoint","folder","folderPath","getFolderPath","hash","generateFileName","mime","sizeInBytes","refId","ref","field","related","id","__type","__pivot","enhanceAndValidateFile","detected","detectedMimeType","declared","mimetype","mimeType","currentFile","originalFilename","filepath","getStream","fs","createReadStream","optimize","isImage","isFaultyImage","isOptimizableImage","plugin","service","upload","opts","user","uploadedFiles","fileArray","fileInfoArray","doUpload","fileData","uploadFileAndPersist","concurrentUploadSize","Math","max","config","get","fileBatches","chunk","map","idx","batch","results","all","remove","uploadImage","getDimensions","generateThumbnail","generateResponsiveFormats","isResizableImage","width","height","assign","uploadThumbnail","thumbnailFile","set","uploadResponsiveFormat","format","key","uploadPromises","formats","replaceImage","oldFile","replaceFormat","newFormat","oldFormat","replace","promises","newFormatKeys","Set","add","provider","oldKey","Object","keys","delete","checkFileSize","updateFileInfo","dbFile","findOne","newName","isNil","newInfos","isUndefined","update","values","fileValues","res","db","query","where","create","populate","transform","signFileUrls","findMany","async","findPage","result","signedResults","resolveWithCount","pagination","withCount","includes","ValidationError","Boolean","findAndCountPage","defaultLimit","toNumber","maxLimit","isOffset","isPaged","start","limit","paginationUtils","withDefaultPagination","defaults","offset","page","pageSize","transformed","shouldCount","total","count","transformPagedPaginationInfo","transformOffsetPaginationInfo","paginationInfo","omit","getSettings","store","setSettings","value","responsiveDimensions","getConfiguration","setConfiguration","_uploadImage","_replaceImage","_queueConcurrentOperation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload.js","sources":["../../../server/src/services/upload.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport fs from 'fs';\nimport fse from 'fs-extra';\nimport _ from 'lodash';\nimport { extension } from 'mime-types';\nimport {\n async,\n sanitize,\n contentTypes as contentTypesUtils,\n errors,\n file as fileUtils,\n pagination as paginationUtils,\n} from '@strapi/utils';\nimport { has, toNumber, isNil } from 'lodash/fp';\n\nimport type { Core, UID } from '@strapi/types';\n\nimport { FILE_MODEL_UID, ALLOWED_WEBHOOK_EVENTS } from '../constants';\nimport { getService } from '../utils';\n\nimport type { Config, File, InputFile, UploadableFile, FileInfo } from '../types';\nimport type { ViewConfiguration } from '../controllers/validation/admin/configureView';\nimport type { Settings } from '../controllers/validation/admin/settings';\n\ntype User = {\n id: string | number;\n};\n\ntype ID = string | number;\n\ntype CommonOptions = {\n user?: User;\n};\n\ntype Metas = {\n refId?: ID;\n ref?: string;\n field?: string;\n path?: string;\n tmpWorkingDirectory?: string;\n};\n\nconst { UPDATED_BY_ATTRIBUTE, CREATED_BY_ATTRIBUTE } = contentTypesUtils.constants;\nconst { MEDIA_CREATE, MEDIA_UPDATE, MEDIA_DELETE } = ALLOWED_WEBHOOK_EVENTS;\n\nconst { ApplicationError, NotFoundError } = errors;\nconst { bytesToKbytes } = fileUtils;\n\n/**\n * Queue a provider operation for a later `Promise.all`, with a rejection handler\n * attached in the same turn so a fast failure is never an unhandled rejection.\n *\n * `Promise.resolve` first — a provider may hand back a plain value, which\n * `Promise.all` accepts but `.catch` would throw on.\n */\nconst queueConcurrentOperation = <T>(queue: Promise<T>[], operation: Promise<T>) => {\n Promise.resolve(operation).catch(() => undefined);\n queue.push(operation);\n};\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const fileService = getService('file');\n\n const sendMediaMetrics = async (data: Pick<File, 'caption' | 'alternativeText'>) => {\n if (_.has(data, 'caption') && !_.isEmpty(data.caption)) {\n await getService('metrics').trackUsage('didSaveMediaWithCaption');\n }\n\n if (_.has(data, 'alternativeText') && !_.isEmpty(data.alternativeText)) {\n await getService('metrics').trackUsage('didSaveMediaWithAlternativeText');\n }\n };\n\n const createAndAssignTmpWorkingDirectoryToFiles = async (\n files: InputFile | InputFile[]\n ): Promise<string> => {\n const tmpWorkingDirectory = await fse.mkdtemp(path.join(os.tmpdir(), 'strapi-upload-'));\n\n if (Array.isArray(files)) {\n files.forEach((file) => {\n file.tmpWorkingDirectory = tmpWorkingDirectory;\n });\n } else {\n files.tmpWorkingDirectory = tmpWorkingDirectory;\n }\n\n return tmpWorkingDirectory;\n };\n\n function filenameReservedRegex() {\n // eslint-disable-next-line no-control-regex\n return /[<>:\"/\\\\|?*\\u0000-\\u001F]/g;\n }\n\n function windowsReservedNameRegex() {\n return /^(con|prn|aux|nul|com\\d|lpt\\d)$/i;\n }\n\n /**\n * Copied from https://github.com/sindresorhus/valid-filename package\n */\n function isValidFilename(string: string) {\n if (!string || string.length > 255) {\n return false;\n }\n if (filenameReservedRegex().test(string) || windowsReservedNameRegex().test(string)) {\n return false;\n }\n if (string === '.' || string === '..') {\n return false;\n }\n return true;\n }\n\n async function emitEvent(event: string, data: Record<string, any>) {\n const modelDef = strapi.getModel(FILE_MODEL_UID);\n const sanitizedData = await sanitize.sanitizers.defaultSanitizeOutput(\n {\n schema: modelDef,\n getModel(uid: string) {\n return strapi.getModel(uid as UID.Schema);\n },\n },\n data\n );\n\n strapi.eventHub.emit(event, { media: sanitizedData });\n }\n\n async function formatFileInfo(\n { filename, type, size }: { filename: string; type: string; size: number },\n fileInfo: Partial<FileInfo> = {},\n metas: {\n refId?: ID;\n ref?: string;\n field?: string;\n path?: string;\n tmpWorkingDirectory?: string;\n } = {}\n ): Promise<Omit<UploadableFile, 'getStream'>> {\n const fileService = getService('file');\n const imageManipulationService = getService('image-manipulation');\n\n if (!isValidFilename(filename)) {\n throw new ApplicationError('File name contains invalid characters');\n }\n\n let ext = path.extname(filename);\n if (!ext) {\n ext = `.${extension(type)}`;\n }\n const usedName = (fileInfo.name || filename).normalize();\n const basename = path.basename(usedName, ext);\n\n // Prevent null characters in file name\n if (!isValidFilename(filename)) {\n throw new ApplicationError('File name contains invalid characters');\n }\n\n const entity: Omit<UploadableFile, 'getStream'> = {\n name: usedName,\n alternativeText: fileInfo.alternativeText,\n caption: fileInfo.caption,\n focalPoint: fileInfo.focalPoint,\n folder: fileInfo.folder,\n folderPath: await fileService.getFolderPath(fileInfo.folder),\n hash: imageManipulationService.generateFileName(basename),\n ext,\n mime: type,\n size: bytesToKbytes(size),\n sizeInBytes: size,\n };\n\n const { refId, ref, field } = metas;\n\n if (refId && ref && field) {\n entity.related = [\n {\n id: refId,\n __type: ref,\n __pivot: { field },\n },\n ];\n }\n\n if (metas.path) {\n entity.path = metas.path;\n }\n\n if (metas.tmpWorkingDirectory) {\n entity.tmpWorkingDirectory = metas.tmpWorkingDirectory;\n }\n\n return entity;\n }\n\n async function enhanceAndValidateFile(\n file: InputFile,\n fileInfo: FileInfo,\n metas?: Metas\n ): Promise<UploadableFile> {\n // Prefer detected MIME type from security validation. Treat application/octet-stream as\n // undeclared so we use detected type when the client sends no real Content-Type.\n const detected = (file as any).detectedMimeType;\n const declared = file.mimetype || '';\n const mimeType =\n detected ||\n (declared && declared !== 'application/octet-stream' ? declared : undefined) ||\n 'application/octet-stream';\n\n const currentFile = (await formatFileInfo(\n {\n filename: file.originalFilename ?? 'unamed',\n type: mimeType,\n size: file.size,\n },\n fileInfo,\n {\n ...metas,\n tmpWorkingDirectory: file.tmpWorkingDirectory,\n }\n )) as UploadableFile;\n\n currentFile.filepath = file.filepath;\n currentFile.getStream = () => fs.createReadStream(file.filepath);\n\n const { optimize, isImage, isFaultyImage, isOptimizableImage } = strapi\n .plugin('upload')\n .service('image-manipulation');\n\n if (await isImage(currentFile)) {\n if (await isFaultyImage(currentFile)) {\n throw new ApplicationError('File is not a valid image');\n }\n if (await isOptimizableImage(currentFile)) {\n return optimize(currentFile);\n }\n }\n\n return currentFile;\n }\n\n async function upload(\n {\n data,\n files,\n }: {\n data: Record<string, unknown>;\n files: InputFile[];\n },\n opts?: CommonOptions\n ) {\n const { user } = opts ?? {};\n // create temporary folder to store files for stream manipulation\n const tmpWorkingDirectory = await createAndAssignTmpWorkingDirectoryToFiles(files);\n\n const uploadedFiles = [];\n try {\n const { fileInfo, ...metas } = data;\n\n const fileArray = Array.isArray(files) ? files : [files];\n const fileInfoArray = Array.isArray(fileInfo) ? fileInfo : [fileInfo];\n\n const doUpload = async (file: InputFile, fileInfo: FileInfo) => {\n const fileData = await enhanceAndValidateFile(file, fileInfo, metas);\n return uploadFileAndPersist(fileData, { user });\n };\n\n const concurrentUploadSize = Math.max(\n 1,\n strapi.config.get<Config>('plugin::upload').concurrentUploadSize ?? 1\n );\n\n const fileBatches = _.chunk(\n fileArray.map((file, idx) => ({ file, fileInfo: fileInfoArray[idx] || {} })),\n concurrentUploadSize\n );\n\n for (const batch of fileBatches) {\n const results = await Promise.all(\n batch.map(({ file, fileInfo }) => doUpload(file, fileInfo))\n );\n uploadedFiles.push(...results);\n }\n } finally {\n // delete temporary folder\n await fse.remove(tmpWorkingDirectory);\n }\n\n return uploadedFiles;\n }\n\n /**\n * When uploading an image, an additional thumbnail is generated.\n * Also, if there are responsive formats defined, another set of images will be generated too.\n *\n * @param {*} fileData\n */\n async function uploadImage(fileData: UploadableFile) {\n const { getDimensions, generateThumbnail, generateResponsiveFormats, isResizableImage } =\n getService('image-manipulation');\n\n // Store width and height of the original image\n const { width, height } = await getDimensions(fileData);\n\n // Make sure this is assigned before calling any upload\n // That way it can mutate the width and height\n _.assign(fileData, {\n width,\n height,\n });\n\n // For performance reasons, all uploads are wrapped in a single Promise.all\n const uploadThumbnail = async (thumbnailFile: UploadableFile) => {\n await getService('provider').upload(thumbnailFile);\n _.set(fileData, 'formats.thumbnail', thumbnailFile);\n };\n\n // Generate thumbnail and responsive formats\n const uploadResponsiveFormat = async (format: { key: string; file: UploadableFile }) => {\n const { key, file } = format;\n await getService('provider').upload(file);\n _.set(fileData, ['formats', key], file);\n };\n\n const uploadPromises: Promise<void>[] = [];\n\n // Upload image\n queueConcurrentOperation(uploadPromises, getService('provider').upload(fileData));\n\n // Generate & Upload thumbnail and responsive formats\n if (await isResizableImage(fileData)) {\n const thumbnailFile = await generateThumbnail(fileData);\n if (thumbnailFile) {\n queueConcurrentOperation(uploadPromises, uploadThumbnail(thumbnailFile));\n }\n\n const formats = await generateResponsiveFormats(fileData);\n if (Array.isArray(formats) && formats.length > 0) {\n for (const format of formats) {\n // eslint-disable-next-line no-continue\n if (!format) continue;\n queueConcurrentOperation(uploadPromises, uploadResponsiveFormat(format));\n }\n }\n }\n // Wait for all uploads to finish\n await Promise.all(uploadPromises);\n }\n\n /**\n * Like uploadImage, but pairs the main file and each format with its old\n * counterpart and routes through provider.replace so providers that implement\n * an atomic replace can use it. Formats that no longer exist on the new image\n * are deleted; formats that didn't exist on the old image are uploaded fresh.\n */\n async function replaceImage(fileData: UploadableFile, oldFile: File) {\n const { getDimensions, generateThumbnail, generateResponsiveFormats, isResizableImage } =\n getService('image-manipulation');\n\n const { width, height } = await getDimensions(fileData);\n\n _.assign(fileData, {\n width,\n height,\n });\n\n const replaceFormat = async (key: string, newFormat: UploadableFile) => {\n const oldFormat = oldFile.formats?.[key] as File | undefined;\n if (oldFormat) {\n await getService('provider').replace(newFormat, oldFormat);\n } else {\n await getService('provider').upload(newFormat);\n }\n _.set(fileData, ['formats', key], newFormat);\n };\n\n const promises: Promise<unknown>[] = [];\n\n // Replace the main file\n queueConcurrentOperation(promises, getService('provider').replace(fileData, oldFile));\n\n const newFormatKeys = new Set<string>();\n\n if (await isResizableImage(fileData)) {\n const thumbnailFile = await generateThumbnail(fileData);\n if (thumbnailFile) {\n newFormatKeys.add('thumbnail');\n queueConcurrentOperation(promises, replaceFormat('thumbnail', thumbnailFile));\n }\n\n const formats = await generateResponsiveFormats(fileData);\n if (Array.isArray(formats) && formats.length > 0) {\n for (const format of formats) {\n // eslint-disable-next-line no-continue\n if (!format) continue;\n newFormatKeys.add(format.key);\n queueConcurrentOperation(promises, replaceFormat(format.key, format.file));\n }\n }\n }\n\n // Delete any formats that existed on the old file but are not present on the new one\n if (\n oldFile.formats &&\n oldFile.provider === strapi.config.get<Config>('plugin::upload').provider\n ) {\n for (const oldKey of Object.keys(oldFile.formats)) {\n if (!newFormatKeys.has(oldKey)) {\n const oldFormat = oldFile.formats[oldKey] as File;\n queueConcurrentOperation(promises, strapi.plugin('upload').provider.delete(oldFormat));\n }\n }\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Upload a file. If it is an image it will generate a thumbnail\n * and responsive formats (if enabled).\n */\n async function uploadFileAndPersist(fileData: UploadableFile, opts?: CommonOptions) {\n const { user } = opts ?? {};\n\n const config = strapi.config.get<Config>('plugin::upload');\n const { isImage } = getService('image-manipulation');\n\n await getService('provider').checkFileSize(fileData);\n\n if (await isImage(fileData)) {\n await uploadImage(fileData);\n } else {\n await getService('provider').upload(fileData);\n }\n\n _.set(fileData, 'provider', config.provider);\n\n // Persist file(s)\n return add(fileData, { user });\n }\n\n async function updateFileInfo(\n id: ID,\n { name, alternativeText, caption, focalPoint, folder }: FileInfo,\n opts?: CommonOptions\n ) {\n const { user } = opts ?? {};\n\n const dbFile = await findOne(id);\n\n if (!dbFile) {\n throw new NotFoundError();\n }\n\n const fileService = getService('file');\n\n const newName = _.isNil(name) ? dbFile.name : name;\n const newInfos = {\n name: newName,\n alternativeText: _.isNil(alternativeText) ? dbFile.alternativeText : alternativeText,\n caption: _.isNil(caption) ? dbFile.caption : caption,\n focalPoint: _.isNil(focalPoint) ? dbFile.focalPoint : focalPoint,\n folder: _.isUndefined(folder) ? dbFile.folder : folder,\n folderPath: _.isUndefined(folder)\n ? dbFile.folderPath\n : await fileService.getFolderPath(folder),\n };\n\n return update(id, newInfos, { user });\n }\n\n async function replace(\n id: ID,\n { data, file }: { data: { fileInfo: FileInfo } & Metas; file: InputFile },\n opts?: CommonOptions\n ) {\n const { user } = opts ?? {};\n\n const config = strapi.config.get<Config>('plugin::upload');\n\n const { isImage } = getService('image-manipulation');\n\n const dbFile = await findOne(id);\n if (!dbFile) {\n throw new NotFoundError();\n }\n\n // create temporary folder to store files for stream manipulation\n const tmpWorkingDirectory = await createAndAssignTmpWorkingDirectoryToFiles(file);\n\n let fileData: UploadableFile;\n\n try {\n // `refId` / `ref` / `field` are dropped rather than forwarded: `formatFileInfo` turns\n // them into a one-element `related` array, and a bare array reaches the morph join as\n // `set` — which deletes every row for this file, detaching it from every other entry\n // that uses it. Attaching an existing file to an entry is the content API's job.\n const { fileInfo, refId: _refId, ref: _ref, field: _field, ...metas } = data;\n fileData = await enhanceAndValidateFile(file, fileInfo, metas);\n\n // Replacing a file writes new bytes just like creating one, so it has to\n // respect sizeLimit too. Checked before any provider write, and measured on\n // the same post-optimization file as the create path (uploadFileAndPersist).\n await getService('provider').checkFileSize(fileData);\n\n // keep a constant hash and extension so the file url doesn't change when the file is replaced\n _.assign(fileData, {\n hash: dbFile.hash,\n ext: dbFile.ext,\n });\n\n // A plain replace sends no folder, so `formatFileInfo` resolved folderPath to\n // '/' while the relation survived — and folder deletion selects by folderPath,\n // which orphaned the file. An explicitly sent folder still moves it.\n if (fileInfo?.folder === undefined) {\n _.assign(fileData, { folderPath: dbFile.folderPath });\n }\n\n // clear old formats — replaceImage / replace will set new ones\n _.set(fileData, 'formats', {});\n\n if (dbFile.provider === config.provider) {\n if (await isImage(fileData)) {\n await replaceImage(fileData, dbFile);\n } else {\n // The new file is not an image, so it has no formats. Replace the main\n // file, then delete any formats the old image left behind — otherwise\n // they're orphaned in storage since the DB record no longer tracks them.\n await getService('provider').replace(fileData, dbFile);\n if (dbFile.formats) {\n await Promise.all(\n Object.keys(dbFile.formats).map((key) =>\n strapi.plugin('upload').provider.delete(dbFile.formats![key] as File)\n )\n );\n }\n }\n } else if (await isImage(fileData)) {\n // Cross-provider replacement: no delete on the old provider, upload to the new one.\n await uploadImage(fileData);\n } else {\n await getService('provider').upload(fileData);\n }\n\n _.set(fileData, 'provider', config.provider);\n } finally {\n // delete temporary folder\n await fse.remove(tmpWorkingDirectory);\n }\n\n return update(id, fileData, { user });\n }\n\n async function update(id: ID, values: Partial<File>, opts?: CommonOptions) {\n const { user } = opts ?? {};\n\n const fileValues = { ...values };\n if (user) {\n Object.assign(fileValues, {\n [UPDATED_BY_ATTRIBUTE]: user.id,\n });\n }\n\n await sendMediaMetrics(fileValues);\n\n const res = await strapi.db.query(FILE_MODEL_UID).update({ where: { id }, data: fileValues });\n\n await emitEvent(MEDIA_UPDATE, res);\n\n return res;\n }\n\n async function add(values: any, opts?: CommonOptions) {\n const { user } = opts ?? {};\n\n const fileValues = { ...values };\n if (user) {\n Object.assign(fileValues, {\n [UPDATED_BY_ATTRIBUTE]: user.id,\n [CREATED_BY_ATTRIBUTE]: user.id,\n });\n }\n\n await sendMediaMetrics(fileValues);\n\n const res = await strapi.db.query(FILE_MODEL_UID).create({ data: fileValues });\n\n await emitEvent(MEDIA_CREATE, res);\n\n return res;\n }\n\n async function findOne(id: ID, populate = {}) {\n const query = strapi.get('query-params').transform(FILE_MODEL_UID, {\n populate,\n });\n\n const file = await strapi.db.query(FILE_MODEL_UID).findOne({\n where: { id },\n ...query,\n });\n\n if (!file) return file;\n\n // Sign file URLs if using private provider\n return fileService.signFileUrls(file);\n }\n\n async function findMany(query: any = {}): Promise<File[]> {\n const files = await strapi.db\n .query(FILE_MODEL_UID)\n .findMany(strapi.get('query-params').transform(FILE_MODEL_UID, query));\n\n // Sign file URLs if using private provider\n return async.map(files, (file: File) => fileService.signFileUrls(file));\n }\n\n async function findPage(query: any = {}) {\n const result = await strapi.db\n .query(FILE_MODEL_UID)\n .findPage(strapi.get('query-params').transform(FILE_MODEL_UID, query));\n\n // Sign file URLs if using private provider\n const signedResults = await async.map(result.results, (file: File) =>\n fileService.signFileUrls(file)\n );\n\n return {\n ...result,\n results: signedResults,\n };\n }\n\n /**\n * Resolve whether the count query should run, mirroring core-api's `shouldCount`.\n * Defaults to the `api.rest.withCount` config (true) when not specified on the request.\n */\n function resolveWithCount(pagination: Record<string, unknown>): boolean {\n if (has('withCount', pagination)) {\n const withCount = pagination.withCount;\n\n if (typeof withCount === 'boolean') {\n return withCount;\n }\n\n if (typeof withCount === 'undefined') {\n return false;\n }\n\n if (['true', 't', '1', 1].includes(withCount as string | number)) {\n return true;\n }\n\n if (['false', 'f', '0', 0].includes(withCount as string | number)) {\n return false;\n }\n\n throw new errors.ValidationError(\n 'Invalid withCount parameter. Expected \"t\",\"1\",\"true\",\"false\",\"0\",\"f\"'\n );\n }\n\n return Boolean(strapi.config.get('api.rest.withCount', true));\n }\n\n /**\n * REST-aware paginated find for the content API.\n *\n * Unlike `findPage` (used by the admin API), this honors the standard nested\n * `pagination` query object (`pagination[page]`, `pagination[pageSize]`,\n * `pagination[start]`, `pagination[limit]`, `pagination[withCount]`) and the\n * `api.rest.defaultLimit` / `api.rest.maxLimit` / `api.rest.withCount` config,\n * exactly like every other Strapi REST collection-type endpoint.\n */\n async function findAndCountPage(query: any = {}) {\n const { pagination = {} } = query;\n\n const defaultLimit = toNumber(strapi.config.get('api.rest.defaultLimit', 25));\n const maxLimit = toNumber(strapi.config.get('api.rest.maxLimit')) || null;\n\n // Whether the consumer used page-based pagination (default) vs offset-based.\n const isOffset = has('start', pagination) || has('limit', pagination);\n const isPaged = !isOffset;\n\n // Resolve start/limit applying defaults and the maxLimit cap.\n const { start, limit } = paginationUtils.withDefaultPagination(pagination, {\n defaults: { offset: { limit: defaultLimit }, page: { pageSize: defaultLimit } },\n maxLimit: maxLimit || -1,\n });\n\n // Feed the transform the resolved offset/limit so it ignores the nested\n // `pagination` object (which it cannot read) and applies real bounds.\n const transformed = strapi\n .get('query-params')\n .transform(FILE_MODEL_UID, { ...query, pagination: undefined, start, limit });\n\n const shouldCount = resolveWithCount(pagination);\n\n const [results, total] = await Promise.all([\n strapi.db.query(FILE_MODEL_UID).findMany(transformed),\n shouldCount ? strapi.db.query(FILE_MODEL_UID).count(transformed) : Promise.resolve(undefined),\n ]);\n\n const signedResults = await async.map(results, (file: File) => fileService.signFileUrls(file));\n\n const transform = isPaged\n ? paginationUtils.transformPagedPaginationInfo\n : paginationUtils.transformOffsetPaginationInfo;\n\n const paginationInfo = transform({ start, limit }, total as number);\n\n return {\n results: signedResults,\n // Omit total & pageCount when counting is disabled (withCount=false).\n pagination: isNil(total) ? _.omit(paginationInfo, ['total', 'pageCount']) : paginationInfo,\n };\n }\n\n async function remove(file: File) {\n const config = strapi.config.get<Config>('plugin::upload');\n\n // execute delete function of the provider\n if (file.provider === config.provider) {\n await strapi.plugin('upload').provider.delete(file);\n\n if (file.formats) {\n const keys = Object.keys(file.formats);\n\n await Promise.all(\n keys.map((key) => {\n return strapi.plugin('upload').provider.delete(file.formats![key]);\n })\n );\n }\n }\n\n const media = await strapi.db.query(FILE_MODEL_UID).findOne({\n where: { id: file.id },\n });\n\n await emitEvent(MEDIA_DELETE, media);\n\n return strapi.db.query(FILE_MODEL_UID).delete({ where: { id: file.id } });\n }\n\n async function getSettings() {\n const res = await strapi.store!({ type: 'plugin', name: 'upload', key: 'settings' }).get({});\n\n return res as Settings | null;\n }\n\n async function setSettings(value: Settings) {\n if (value.responsiveDimensions === true) {\n await getService('metrics').trackUsage('didEnableResponsiveDimensions');\n } else {\n await getService('metrics').trackUsage('didDisableResponsiveDimensions');\n }\n\n return strapi.store!({ type: 'plugin', name: 'upload', key: 'settings' }).set({ value });\n }\n\n async function getConfiguration() {\n const res = await strapi.store!({\n type: 'plugin',\n name: 'upload',\n key: 'view_configuration',\n }).get({});\n\n return res as ViewConfiguration | null;\n }\n\n function setConfiguration(value: ViewConfiguration) {\n return strapi.store!({ type: 'plugin', name: 'upload', key: 'view_configuration' }).set({\n value,\n });\n }\n\n return {\n formatFileInfo,\n upload,\n updateFileInfo,\n replace,\n findOne,\n findMany,\n findPage,\n findAndCountPage,\n remove,\n getSettings,\n setSettings,\n getConfiguration,\n setConfiguration,\n\n /**\n * exposed for testing only\n * @internal\n */\n _uploadImage: uploadImage,\n _replaceImage: replaceImage,\n _queueConcurrentOperation: queueConcurrentOperation,\n };\n};\n"],"names":["UPDATED_BY_ATTRIBUTE","CREATED_BY_ATTRIBUTE","contentTypesUtils","constants","MEDIA_CREATE","MEDIA_UPDATE","MEDIA_DELETE","ALLOWED_WEBHOOK_EVENTS","ApplicationError","NotFoundError","errors","bytesToKbytes","fileUtils","queueConcurrentOperation","queue","operation","Promise","resolve","catch","undefined","push","strapi","fileService","getService","sendMediaMetrics","data","_","has","isEmpty","caption","trackUsage","alternativeText","createAndAssignTmpWorkingDirectoryToFiles","files","tmpWorkingDirectory","fse","mkdtemp","path","join","os","tmpdir","Array","isArray","forEach","file","filenameReservedRegex","windowsReservedNameRegex","isValidFilename","string","length","test","emitEvent","event","modelDef","getModel","FILE_MODEL_UID","sanitizedData","sanitize","sanitizers","defaultSanitizeOutput","schema","uid","eventHub","emit","media","formatFileInfo","filename","type","size","fileInfo","metas","imageManipulationService","ext","extname","extension","usedName","name","normalize","basename","entity","focalPoint","folder","folderPath","getFolderPath","hash","generateFileName","mime","sizeInBytes","refId","ref","field","related","id","__type","__pivot","enhanceAndValidateFile","detected","detectedMimeType","declared","mimetype","mimeType","currentFile","originalFilename","filepath","getStream","fs","createReadStream","optimize","isImage","isFaultyImage","isOptimizableImage","plugin","service","upload","opts","user","uploadedFiles","fileArray","fileInfoArray","doUpload","fileData","uploadFileAndPersist","concurrentUploadSize","Math","max","config","get","fileBatches","chunk","map","idx","batch","results","all","remove","uploadImage","getDimensions","generateThumbnail","generateResponsiveFormats","isResizableImage","width","height","assign","uploadThumbnail","thumbnailFile","set","uploadResponsiveFormat","format","key","uploadPromises","formats","replaceImage","oldFile","replaceFormat","newFormat","oldFormat","replace","promises","newFormatKeys","Set","add","provider","oldKey","Object","keys","delete","checkFileSize","updateFileInfo","dbFile","findOne","newName","isNil","newInfos","isUndefined","update","_refId","_ref","_field","values","fileValues","res","db","query","where","create","populate","transform","signFileUrls","findMany","async","findPage","result","signedResults","resolveWithCount","pagination","withCount","includes","ValidationError","Boolean","findAndCountPage","defaultLimit","toNumber","maxLimit","isOffset","isPaged","start","limit","paginationUtils","withDefaultPagination","defaults","offset","page","pageSize","transformed","shouldCount","total","count","transformPagedPaginationInfo","transformOffsetPaginationInfo","paginationInfo","omit","getSettings","store","setSettings","value","responsiveDimensions","getConfiguration","setConfiguration","_uploadImage","_replaceImage","_queueConcurrentOperation"],"mappings":"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"}
|
|
@@ -343,8 +343,12 @@ var upload = (({ strapi })=>{
|
|
|
343
343
|
const tmpWorkingDirectory = await createAndAssignTmpWorkingDirectoryToFiles(file);
|
|
344
344
|
let fileData;
|
|
345
345
|
try {
|
|
346
|
-
|
|
347
|
-
|
|
346
|
+
// `refId` / `ref` / `field` are dropped rather than forwarded: `formatFileInfo` turns
|
|
347
|
+
// them into a one-element `related` array, and a bare array reaches the morph join as
|
|
348
|
+
// `set` — which deletes every row for this file, detaching it from every other entry
|
|
349
|
+
// that uses it. Attaching an existing file to an entry is the content API's job.
|
|
350
|
+
const { fileInfo, refId: _refId, ref: _ref, field: _field, ...metas } = data;
|
|
351
|
+
fileData = await enhanceAndValidateFile(file, fileInfo, metas);
|
|
348
352
|
// Replacing a file writes new bytes just like creating one, so it has to
|
|
349
353
|
// respect sizeLimit too. Checked before any provider write, and measured on
|
|
350
354
|
// the same post-optimization file as the create path (uploadFileAndPersist).
|
|
@@ -354,6 +358,14 @@ var upload = (({ strapi })=>{
|
|
|
354
358
|
hash: dbFile.hash,
|
|
355
359
|
ext: dbFile.ext
|
|
356
360
|
});
|
|
361
|
+
// A plain replace sends no folder, so `formatFileInfo` resolved folderPath to
|
|
362
|
+
// '/' while the relation survived — and folder deletion selects by folderPath,
|
|
363
|
+
// which orphaned the file. An explicitly sent folder still moves it.
|
|
364
|
+
if (fileInfo?.folder === undefined) {
|
|
365
|
+
_.assign(fileData, {
|
|
366
|
+
folderPath: dbFile.folderPath
|
|
367
|
+
});
|
|
368
|
+
}
|
|
357
369
|
// clear old formats — replaceImage / replace will set new ones
|
|
358
370
|
_.set(fileData, 'formats', {});
|
|
359
371
|
if (dbFile.provider === config.provider) {
|