@strapi/upload 5.12.1 → 5.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/AssetCard/AssetCard.js +59 -0
- package/dist/admin/components/AssetCard/AssetCard.js.map +1 -0
- package/dist/admin/components/AssetCard/AssetCard.mjs +57 -0
- package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -0
- package/dist/admin/components/AssetCard/AssetCardBase.js +130 -0
- package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -0
- package/dist/admin/components/AssetCard/AssetCardBase.mjs +128 -0
- package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -0
- package/dist/admin/components/AssetCard/AudioAssetCard.js +40 -0
- package/dist/admin/components/AssetCard/AudioAssetCard.js.map +1 -0
- package/dist/admin/components/AssetCard/AudioAssetCard.mjs +38 -0
- package/dist/admin/components/AssetCard/AudioAssetCard.mjs.map +1 -0
- package/dist/admin/components/AssetCard/AudioPreview.js +17 -0
- package/dist/admin/components/AssetCard/AudioPreview.js.map +1 -0
- package/dist/admin/components/AssetCard/AudioPreview.mjs +15 -0
- package/dist/admin/components/AssetCard/AudioPreview.mjs.map +1 -0
- package/dist/admin/components/AssetCard/DocAssetCard.js +61 -0
- package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -0
- package/dist/admin/components/AssetCard/DocAssetCard.mjs +59 -0
- package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -0
- package/dist/admin/components/AssetCard/ImageAssetCard.js +37 -0
- package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -0
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs +35 -0
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -0
- package/dist/admin/components/AssetCard/UploadingAssetCard.js +152 -0
- package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -0
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +131 -0
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -0
- package/dist/admin/components/AssetCard/VideoAssetCard.js +72 -0
- package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -0
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs +51 -0
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -0
- package/dist/admin/components/AssetCard/VideoPreview.js +50 -0
- package/dist/admin/components/AssetCard/VideoPreview.js.map +1 -0
- package/dist/admin/components/AssetCard/VideoPreview.mjs +48 -0
- package/dist/admin/components/AssetCard/VideoPreview.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/AssetDialog.js +321 -0
- package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -0
- package/dist/admin/components/AssetDialog/AssetDialog.mjs +299 -0
- package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +313 -0
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +311 -0
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +70 -0
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +49 -0
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js +58 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs +56 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PageSize.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js +55 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs +33 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js +378 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs +376 -0
- package/dist/admin/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +102 -0
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +81 -0
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js +14 -0
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.js.map +1 -0
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs +12 -0
- package/dist/admin/components/AssetDialog/BrowseStep/utils/isSelectable.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/DialogFooter.js +31 -0
- package/dist/admin/components/AssetDialog/DialogFooter.js.map +1 -0
- package/dist/admin/components/AssetDialog/DialogFooter.mjs +29 -0
- package/dist/admin/components/AssetDialog/DialogFooter.mjs.map +1 -0
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +60 -0
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -0
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +58 -0
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -0
- package/dist/admin/components/AssetGridList/AssetGridList.js +72 -0
- package/dist/admin/components/AssetGridList/AssetGridList.js.map +1 -0
- package/dist/admin/components/AssetGridList/AssetGridList.mjs +70 -0
- package/dist/admin/components/AssetGridList/AssetGridList.mjs.map +1 -0
- package/dist/admin/components/AssetGridList/Draggable.js +65 -0
- package/dist/admin/components/AssetGridList/Draggable.js.map +1 -0
- package/dist/admin/components/AssetGridList/Draggable.mjs +44 -0
- package/dist/admin/components/AssetGridList/Draggable.mjs.map +1 -0
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.js +49 -0
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs +47 -0
- package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -0
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +89 -0
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -0
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +68 -0
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -0
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +154 -0
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -0
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +152 -0
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -0
- package/dist/admin/components/ContextInfo/ContextInfo.js +44 -0
- package/dist/admin/components/ContextInfo/ContextInfo.js.map +1 -0
- package/dist/admin/components/ContextInfo/ContextInfo.mjs +42 -0
- package/dist/admin/components/ContextInfo/ContextInfo.mjs.map +1 -0
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +43 -0
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +41 -0
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/DialogHeader.js +20 -0
- package/dist/admin/components/EditAssetDialog/DialogHeader.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/DialogHeader.mjs +18 -0
- package/dist/admin/components/EditAssetDialog/DialogHeader.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js +403 -0
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +380 -0
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +127 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +106 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +111 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +109 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +260 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +239 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js +75 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs +68 -0
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js +27 -0
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs +25 -0
- package/dist/admin/components/EditAssetDialog/RemoveAssetDialog.mjs.map +1 -0
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +79 -0
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -0
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +58 -0
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -0
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +336 -0
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -0
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +313 -0
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -0
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +29 -0
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -0
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +27 -0
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -0
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js +18 -0
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.js.map +1 -0
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs +16 -0
- package/dist/admin/components/EditFolderDialog/RemoveFolderDialog.mjs.map +1 -0
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js +31 -0
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -0
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs +29 -0
- package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -0
- package/dist/admin/components/EmptyAssets/EmptyAssets.js +53 -0
- package/dist/admin/components/EmptyAssets/EmptyAssets.js.map +1 -0
- package/dist/admin/components/EmptyAssets/EmptyAssets.mjs +51 -0
- package/dist/admin/components/EmptyAssets/EmptyAssets.mjs.map +1 -0
- package/dist/admin/components/FilterList/FilterList.js +74 -0
- package/dist/admin/components/FilterList/FilterList.js.map +1 -0
- package/dist/admin/components/FilterList/FilterList.mjs +72 -0
- package/dist/admin/components/FilterList/FilterList.mjs.map +1 -0
- package/dist/admin/components/FilterList/FilterTag.js +50 -0
- package/dist/admin/components/FilterList/FilterTag.js.map +1 -0
- package/dist/admin/components/FilterList/FilterTag.mjs +48 -0
- package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -0
- package/dist/admin/components/FilterPopover/FilterPopover.js +275 -0
- package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -0
- package/dist/admin/components/FilterPopover/FilterPopover.mjs +254 -0
- package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +1 -0
- package/dist/admin/components/FilterPopover/FilterValueInput.js +39 -0
- package/dist/admin/components/FilterPopover/FilterValueInput.js.map +1 -0
- package/dist/admin/components/FilterPopover/FilterValueInput.mjs +37 -0
- package/dist/admin/components/FilterPopover/FilterValueInput.mjs.map +1 -0
- package/dist/admin/components/FilterPopover/utils/getFilterList.js +114 -0
- package/dist/admin/components/FilterPopover/utils/getFilterList.js.map +1 -0
- package/dist/admin/components/FilterPopover/utils/getFilterList.mjs +112 -0
- package/dist/admin/components/FilterPopover/utils/getFilterList.mjs.map +1 -0
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.js +125 -0
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.js.map +1 -0
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs +104 -0
- package/dist/admin/components/FolderCard/FolderCard/FolderCard.mjs.map +1 -0
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js +26 -0
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -0
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs +24 -0
- package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -0
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js +40 -0
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.js.map +1 -0
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs +38 -0
- package/dist/admin/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.mjs.map +1 -0
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js +20 -0
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -0
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs +18 -0
- package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -0
- package/dist/admin/components/FolderCard/contexts/FolderCard.js +12 -0
- package/dist/admin/components/FolderCard/contexts/FolderCard.js.map +1 -0
- package/dist/admin/components/FolderCard/contexts/FolderCard.mjs +9 -0
- package/dist/admin/components/FolderCard/contexts/FolderCard.mjs.map +1 -0
- package/dist/admin/components/FolderGridList/FolderGridList.js +29 -0
- package/dist/admin/components/FolderGridList/FolderGridList.js.map +1 -0
- package/dist/admin/components/FolderGridList/FolderGridList.mjs +27 -0
- package/dist/admin/components/FolderGridList/FolderGridList.mjs.map +1 -0
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js +71 -0
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -0
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs +50 -0
- package/dist/admin/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +78 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +76 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +52 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +50 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js +112 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs +91 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +116 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +95 -0
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -0
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +216 -0
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -0
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +195 -0
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -0
- package/dist/admin/components/SelectTree/Option.js +70 -0
- package/dist/admin/components/SelectTree/Option.js.map +1 -0
- package/dist/admin/components/SelectTree/Option.mjs +68 -0
- package/dist/admin/components/SelectTree/Option.mjs.map +1 -0
- package/dist/admin/components/SelectTree/SelectTree.js +276 -0
- package/dist/admin/components/SelectTree/SelectTree.js.map +1 -0
- package/dist/admin/components/SelectTree/SelectTree.mjs +255 -0
- package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -0
- package/dist/admin/components/SelectTree/utils/flattenTree.js +19 -0
- package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -0
- package/dist/admin/components/SelectTree/utils/flattenTree.mjs +17 -0
- package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -0
- package/dist/admin/components/SelectTree/utils/getOpenValues.js +24 -0
- package/dist/admin/components/SelectTree/utils/getOpenValues.js.map +1 -0
- package/dist/admin/components/SelectTree/utils/getOpenValues.mjs +22 -0
- package/dist/admin/components/SelectTree/utils/getOpenValues.mjs.map +1 -0
- package/dist/admin/components/SelectTree/utils/getValuesToClose.js +12 -0
- package/dist/admin/components/SelectTree/utils/getValuesToClose.js.map +1 -0
- package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs +10 -0
- package/dist/admin/components/SelectTree/utils/getValuesToClose.mjs.map +1 -0
- package/dist/admin/components/SortPicker/SortPicker.js +39 -0
- package/dist/admin/components/SortPicker/SortPicker.js.map +1 -0
- package/dist/admin/components/SortPicker/SortPicker.mjs +37 -0
- package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -0
- package/dist/admin/components/TableList/CellContent.js +76 -0
- package/dist/admin/components/TableList/CellContent.js.map +1 -0
- package/dist/admin/components/TableList/CellContent.mjs +74 -0
- package/dist/admin/components/TableList/CellContent.mjs.map +1 -0
- package/dist/admin/components/TableList/PreviewCell.js +82 -0
- package/dist/admin/components/TableList/PreviewCell.js.map +1 -0
- package/dist/admin/components/TableList/PreviewCell.mjs +80 -0
- package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -0
- package/dist/admin/components/TableList/TableList.js +99 -0
- package/dist/admin/components/TableList/TableList.js.map +1 -0
- package/dist/admin/components/TableList/TableList.mjs +97 -0
- package/dist/admin/components/TableList/TableList.mjs.map +1 -0
- package/dist/admin/components/TableList/TableRows.js +101 -0
- package/dist/admin/components/TableList/TableRows.js.map +1 -0
- package/dist/admin/components/TableList/TableRows.mjs +99 -0
- package/dist/admin/components/TableList/TableRows.mjs.map +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +84 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +82 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +203 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +182 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +127 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +106 -0
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -0
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +206 -0
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -0
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +185 -0
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -0
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js +129 -0
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -0
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs +108 -0
- package/dist/admin/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -0
- package/dist/admin/components/UploadProgress/UploadProgress.js +88 -0
- package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -0
- package/dist/admin/components/UploadProgress/UploadProgress.mjs +86 -0
- package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -0
- package/dist/admin/constants.js +205 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +198 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/hooks/useAssets.js +124 -0
- package/dist/admin/hooks/useAssets.js.map +1 -0
- package/dist/admin/hooks/useAssets.mjs +103 -0
- package/dist/admin/hooks/useAssets.mjs.map +1 -0
- package/dist/admin/hooks/useBulkMove.js +79 -0
- package/dist/admin/hooks/useBulkMove.js.map +1 -0
- package/dist/admin/hooks/useBulkMove.mjs +77 -0
- package/dist/admin/hooks/useBulkMove.mjs.map +1 -0
- package/dist/admin/hooks/useBulkRemove.js +79 -0
- package/dist/admin/hooks/useBulkRemove.js.map +1 -0
- package/dist/admin/hooks/useBulkRemove.mjs +77 -0
- package/dist/admin/hooks/useBulkRemove.mjs.map +1 -0
- package/dist/admin/hooks/useConfig.js +57 -0
- package/dist/admin/hooks/useConfig.js.map +1 -0
- package/dist/admin/hooks/useConfig.mjs +55 -0
- package/dist/admin/hooks/useConfig.mjs.map +1 -0
- package/dist/admin/hooks/useCropImg.js +96 -0
- package/dist/admin/hooks/useCropImg.js.map +1 -0
- package/dist/admin/hooks/useCropImg.mjs +75 -0
- package/dist/admin/hooks/useCropImg.mjs.map +1 -0
- package/dist/admin/hooks/useEditAsset.js +114 -0
- package/dist/admin/hooks/useEditAsset.js.map +1 -0
- package/dist/admin/hooks/useEditAsset.mjs +93 -0
- package/dist/admin/hooks/useEditAsset.mjs.map +1 -0
- package/dist/admin/hooks/useEditFolder.js +44 -0
- package/dist/admin/hooks/useEditFolder.js.map +1 -0
- package/dist/admin/hooks/useEditFolder.mjs +42 -0
- package/dist/admin/hooks/useEditFolder.mjs.map +1 -0
- package/dist/admin/hooks/useFolder.js +58 -0
- package/dist/admin/hooks/useFolder.js.map +1 -0
- package/dist/admin/hooks/useFolder.mjs +56 -0
- package/dist/admin/hooks/useFolder.mjs.map +1 -0
- package/dist/admin/hooks/useFolderStructure.js +53 -0
- package/dist/admin/hooks/useFolderStructure.js.map +1 -0
- package/dist/admin/hooks/useFolderStructure.mjs +51 -0
- package/dist/admin/hooks/useFolderStructure.mjs.map +1 -0
- package/dist/admin/hooks/useFolders.js +107 -0
- package/dist/admin/hooks/useFolders.js.map +1 -0
- package/dist/admin/hooks/useFolders.mjs +86 -0
- package/dist/admin/hooks/useFolders.mjs.map +1 -0
- package/dist/admin/hooks/useMediaLibraryPermissions.js +16 -0
- package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -0
- package/dist/admin/hooks/useMediaLibraryPermissions.mjs +14 -0
- package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -0
- package/dist/admin/hooks/useModalQueryParams.js +138 -0
- package/dist/admin/hooks/useModalQueryParams.js.map +1 -0
- package/dist/admin/hooks/useModalQueryParams.mjs +117 -0
- package/dist/admin/hooks/useModalQueryParams.mjs.map +1 -0
- package/dist/admin/hooks/usePersistentState.js +31 -0
- package/dist/admin/hooks/usePersistentState.js.map +1 -0
- package/dist/admin/hooks/usePersistentState.mjs +29 -0
- package/dist/admin/hooks/usePersistentState.mjs.map +1 -0
- package/dist/admin/hooks/useRemoveAsset.js +53 -0
- package/dist/admin/hooks/useRemoveAsset.js.map +1 -0
- package/dist/admin/hooks/useRemoveAsset.mjs +51 -0
- package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -0
- package/dist/admin/hooks/useSelectionState.js +85 -0
- package/dist/admin/hooks/useSelectionState.js.map +1 -0
- package/dist/admin/hooks/useSelectionState.mjs +64 -0
- package/dist/admin/hooks/useSelectionState.mjs.map +1 -0
- package/dist/admin/hooks/useUpload.js +86 -0
- package/dist/admin/hooks/useUpload.js.map +1 -0
- package/dist/admin/hooks/useUpload.mjs +65 -0
- package/dist/admin/hooks/useUpload.mjs.map +1 -0
- package/dist/admin/hooks/utils/renameKeys.js +12 -0
- package/dist/admin/hooks/utils/renameKeys.js.map +1 -0
- package/dist/admin/hooks/utils/renameKeys.mjs +10 -0
- package/dist/admin/hooks/utils/renameKeys.mjs.map +1 -0
- package/dist/admin/index.js +104 -22
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +105 -21
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/package.json.js +161 -0
- package/dist/admin/package.json.js.map +1 -0
- package/dist/admin/package.json.mjs +143 -0
- package/dist/admin/package.json.mjs.map +1 -0
- package/dist/admin/pages/App/App.js +94 -0
- package/dist/admin/pages/App/App.js.map +1 -0
- package/dist/admin/pages/App/App.mjs +73 -0
- package/dist/admin/pages/App/App.mjs.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +142 -0
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +121 -0
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +108 -0
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +106 -0
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js +10 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs +7 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actions.js +16 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actions.js.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs +13 -0
- package/dist/admin/pages/App/ConfigureTheView/state/actions.mjs.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/init.js +17 -0
- package/dist/admin/pages/App/ConfigureTheView/state/init.js.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/init.mjs +14 -0
- package/dist/admin/pages/App/ConfigureTheView/state/init.mjs.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.js +40 -0
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.js.map +1 -0
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs +38 -0
- package/dist/admin/pages/App/ConfigureTheView/state/reducer.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js +453 -0
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs +432 -0
- package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkActions.js +49 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkActions.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkActions.mjs +47 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkActions.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkDeleteButton.js +38 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkDeleteButton.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkDeleteButton.mjs +36 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkDeleteButton.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkMoveButton.js +61 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkMoveButton.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkMoveButton.mjs +40 -0
- package/dist/admin/pages/App/MediaLibrary/components/BulkMoveButton.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.js +66 -0
- package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.mjs +64 -0
- package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/Filters.js +94 -0
- package/dist/admin/pages/App/MediaLibrary/components/Filters.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs +73 -0
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/Header.js +76 -0
- package/dist/admin/pages/App/MediaLibrary/components/Header.js.map +1 -0
- package/dist/admin/pages/App/MediaLibrary/components/Header.mjs +74 -0
- package/dist/admin/pages/App/MediaLibrary/components/Header.mjs.map +1 -0
- package/dist/admin/{chunks/SettingsPage-DcdF16oj.js → pages/SettingsPage/SettingsPage.js} +18 -67
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -0
- package/dist/admin/{chunks/SettingsPage-kY2dZHnP.mjs → pages/SettingsPage/SettingsPage.mjs} +6 -55
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -0
- package/dist/admin/pages/SettingsPage/init.js +8 -0
- package/dist/admin/pages/SettingsPage/init.js.map +1 -0
- package/dist/admin/pages/SettingsPage/init.mjs +6 -0
- package/dist/admin/pages/SettingsPage/init.mjs.map +1 -0
- package/dist/admin/pages/SettingsPage/reducer.js +43 -0
- package/dist/admin/pages/SettingsPage/reducer.js.map +1 -0
- package/dist/admin/pages/SettingsPage/reducer.mjs +40 -0
- package/dist/admin/pages/SettingsPage/reducer.mjs.map +1 -0
- package/dist/admin/pluginId.js +8 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +6 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/{chunks/ca-pCOhKIn8.js → translations/ca.json.js} +2 -2
- package/dist/admin/translations/ca.json.js.map +1 -0
- package/dist/admin/{chunks/ca-Bi4qskZD.mjs → translations/ca.json.mjs} +1 -1
- package/dist/admin/translations/ca.json.mjs.map +1 -0
- package/dist/admin/{chunks/de-DUjKLmOP.js → translations/de.json.js} +2 -2
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/{chunks/de-BlbX8Dl_.mjs → translations/de.json.mjs} +1 -1
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-DSsspA0e.js → translations/dk.json.js} +2 -2
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-C2ydE6A7.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-UjETkewz.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-Bw_Cb2IV.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-qAL8YcZz.js → translations/es.json.js} +2 -2
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-CiEgbw0k.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-BL0Uyj6j.js → translations/fr.json.js} +2 -2
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-CwRt2FJu.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/he-BAmhVpfZ.js → translations/he.json.js} +2 -2
- package/dist/admin/translations/he.json.js.map +1 -0
- package/dist/admin/{chunks/he-DdpYNQdt.mjs → translations/he.json.mjs} +1 -1
- package/dist/admin/translations/he.json.mjs.map +1 -0
- package/dist/admin/{chunks/it-_NQZYepl.js → translations/it.json.js} +2 -2
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/{chunks/it-Be4kgSNB.mjs → translations/it.json.mjs} +1 -1
- package/dist/admin/translations/it.json.mjs.map +1 -0
- package/dist/admin/{chunks/ja-B75QiyXf.js → translations/ja.json.js} +2 -2
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/{chunks/ja-U1NhT0bU.mjs → translations/ja.json.mjs} +1 -1
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-BOvUcJqv.js → translations/ko.json.js} +2 -2
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-BciqXefq.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/{chunks/ms-B7Zl6Lm9.js → translations/ms.json.js} +2 -2
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/{chunks/ms-D-8McNeg.mjs → translations/ms.json.mjs} +1 -1
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-cYDYHOEf.js → translations/pl.json.js} +2 -2
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-DdUYocl5.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-BR-D1u_azCM.js → translations/pt-BR.json.js} +2 -2
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BR-Demjoq41.mjs → translations/pt-BR.json.mjs} +1 -1
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-L2DZeTPL.js → translations/pt.json.js} +2 -2
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/{chunks/pt-D8is2LpS.mjs → translations/pt.json.mjs} +1 -1
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-Uxbk_WWv.js → translations/ru.json.js} +2 -2
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-CGgHRTey.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sk-BlLP5HAX.js → translations/sk.json.js} +2 -2
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/{chunks/sk-xtSwaPXq.mjs → translations/sk.json.mjs} +1 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/{chunks/th-DNxPLegS.js → translations/th.json.js} +2 -2
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/{chunks/th-BOpLVfmg.mjs → translations/th.json.mjs} +1 -1
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-DWgXG75k.js → translations/tr.json.js} +2 -2
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-BmAPh-f1.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-Cfm1dM3v.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-DPZD6U8g.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-B8qxMQIl.js → translations/zh-Hans.json.js} +2 -2
- package/dist/admin/{chunks/ca-Bi4qskZD.mjs.map → translations/zh-Hans.json.js.map} +1 -1
- package/dist/admin/{chunks/zh-Hans-B1GabBRx.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-MemsyMV6.js → translations/zh.json.js} +2 -2
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-BIl0qgBy.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/appendSearchParamsToUrl.js +17 -0
- package/dist/admin/utils/appendSearchParamsToUrl.js.map +1 -0
- package/dist/admin/utils/appendSearchParamsToUrl.mjs +15 -0
- package/dist/admin/utils/appendSearchParamsToUrl.mjs.map +1 -0
- package/dist/admin/utils/containsAssetFilter.js +18 -0
- package/dist/admin/utils/containsAssetFilter.js.map +1 -0
- package/dist/admin/utils/containsAssetFilter.mjs +16 -0
- package/dist/admin/utils/containsAssetFilter.mjs.map +1 -0
- package/dist/admin/utils/createAssetUrl.js +14 -0
- package/dist/admin/utils/createAssetUrl.js.map +1 -0
- package/dist/admin/utils/createAssetUrl.mjs +12 -0
- package/dist/admin/utils/createAssetUrl.mjs.map +1 -0
- package/dist/admin/utils/displayedFilters.js +52 -0
- package/dist/admin/utils/displayedFilters.js.map +1 -0
- package/dist/admin/utils/displayedFilters.mjs +50 -0
- package/dist/admin/utils/displayedFilters.mjs.map +1 -0
- package/dist/admin/utils/downloadFile.js +13 -0
- package/dist/admin/utils/downloadFile.js.map +1 -0
- package/dist/admin/utils/downloadFile.mjs +11 -0
- package/dist/admin/utils/downloadFile.mjs.map +1 -0
- package/dist/admin/utils/findRecursiveFolderByValue.js +17 -0
- package/dist/admin/utils/findRecursiveFolderByValue.js.map +1 -0
- package/dist/admin/utils/findRecursiveFolderByValue.mjs +15 -0
- package/dist/admin/utils/findRecursiveFolderByValue.mjs.map +1 -0
- package/dist/admin/utils/formatBytes.js +17 -0
- package/dist/admin/utils/formatBytes.js.map +1 -0
- package/dist/admin/utils/formatBytes.mjs +15 -0
- package/dist/admin/utils/formatBytes.mjs.map +1 -0
- package/dist/admin/utils/formatDuration.js +15 -0
- package/dist/admin/utils/formatDuration.js.map +1 -0
- package/dist/admin/utils/formatDuration.mjs +13 -0
- package/dist/admin/utils/formatDuration.mjs.map +1 -0
- package/dist/admin/utils/getAPIInnerErrors.js +26 -0
- package/dist/admin/utils/getAPIInnerErrors.js.map +1 -0
- package/dist/admin/utils/getAPIInnerErrors.mjs +24 -0
- package/dist/admin/utils/getAPIInnerErrors.mjs.map +1 -0
- package/dist/admin/utils/getAllowedFiles.js +25 -0
- package/dist/admin/utils/getAllowedFiles.js.map +1 -0
- package/dist/admin/utils/getAllowedFiles.mjs +23 -0
- package/dist/admin/utils/getAllowedFiles.mjs.map +1 -0
- package/dist/admin/utils/getBreadcrumbDataCM.js +36 -0
- package/dist/admin/utils/getBreadcrumbDataCM.js.map +1 -0
- package/dist/admin/utils/getBreadcrumbDataCM.mjs +34 -0
- package/dist/admin/utils/getBreadcrumbDataCM.mjs.map +1 -0
- package/dist/admin/utils/getBreadcrumbDataML.js +40 -0
- package/dist/admin/utils/getBreadcrumbDataML.js.map +1 -0
- package/dist/admin/utils/getBreadcrumbDataML.mjs +38 -0
- package/dist/admin/utils/getBreadcrumbDataML.mjs.map +1 -0
- package/dist/admin/utils/getFileExtension.js +6 -0
- package/dist/admin/utils/getFileExtension.js.map +1 -0
- package/dist/admin/utils/getFileExtension.mjs +4 -0
- package/dist/admin/utils/getFileExtension.mjs.map +1 -0
- package/dist/admin/utils/getFolderParents.js +26 -0
- package/dist/admin/utils/getFolderParents.js.map +1 -0
- package/dist/admin/utils/getFolderParents.mjs +24 -0
- package/dist/admin/utils/getFolderParents.mjs.map +1 -0
- package/dist/admin/utils/getFolderURL.js +20 -0
- package/dist/admin/utils/getFolderURL.js.map +1 -0
- package/dist/admin/utils/getFolderURL.mjs +18 -0
- package/dist/admin/utils/getFolderURL.mjs.map +1 -0
- package/dist/admin/utils/getTrad.js +8 -0
- package/dist/admin/utils/getTrad.js.map +1 -0
- package/dist/admin/utils/getTrad.mjs +6 -0
- package/dist/admin/utils/getTrad.mjs.map +1 -0
- package/dist/admin/utils/moveElement.js +16 -0
- package/dist/admin/utils/moveElement.js.map +1 -0
- package/dist/admin/utils/moveElement.mjs +14 -0
- package/dist/admin/utils/moveElement.mjs.map +1 -0
- package/dist/admin/utils/normalizeAPIError.js +55 -0
- package/dist/admin/utils/normalizeAPIError.js.map +1 -0
- package/dist/admin/utils/normalizeAPIError.mjs +53 -0
- package/dist/admin/utils/normalizeAPIError.mjs.map +1 -0
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.js +8 -0
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -0
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs +6 -0
- package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +14 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +12 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/rawFileToAsset.js +21 -0
- package/dist/admin/utils/rawFileToAsset.js.map +1 -0
- package/dist/admin/utils/rawFileToAsset.mjs +19 -0
- package/dist/admin/utils/rawFileToAsset.mjs.map +1 -0
- package/dist/admin/utils/toSingularTypes.js +11 -0
- package/dist/admin/utils/toSingularTypes.js.map +1 -0
- package/dist/admin/utils/toSingularTypes.mjs +9 -0
- package/dist/admin/utils/toSingularTypes.mjs.map +1 -0
- package/dist/admin/utils/typeFromMime.js +19 -0
- package/dist/admin/utils/typeFromMime.js.map +1 -0
- package/dist/admin/utils/typeFromMime.mjs +17 -0
- package/dist/admin/utils/typeFromMime.mjs.map +1 -0
- package/dist/admin/utils/urlYupSchema.js +72 -0
- package/dist/admin/utils/urlYupSchema.js.map +1 -0
- package/dist/admin/utils/urlYupSchema.mjs +51 -0
- package/dist/admin/utils/urlYupSchema.mjs.map +1 -0
- package/dist/admin/utils/urlsToAssets.js +39 -0
- package/dist/admin/utils/urlsToAssets.js.map +1 -0
- package/dist/admin/utils/urlsToAssets.mjs +37 -0
- package/dist/admin/utils/urlsToAssets.mjs.map +1 -0
- package/dist/server/bootstrap.js +98 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +96 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config.js +14 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +12 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/constants.js +35 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/constants.mjs +28 -0
- package/dist/server/constants.mjs.map +1 -0
- package/dist/server/content-types/file.js +155 -0
- package/dist/server/content-types/file.js.map +1 -0
- package/dist/server/content-types/file.mjs +153 -0
- package/dist/server/content-types/file.mjs.map +1 -0
- package/dist/server/content-types/folder.js +78 -0
- package/dist/server/content-types/folder.js.map +1 -0
- package/dist/server/content-types/folder.mjs +76 -0
- package/dist/server/content-types/folder.mjs.map +1 -0
- package/dist/server/content-types/index.js +12 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +10 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/controllers/admin-file.js +61 -0
- package/dist/server/controllers/admin-file.js.map +1 -0
- package/dist/server/controllers/admin-file.mjs +59 -0
- package/dist/server/controllers/admin-file.mjs.map +1 -0
- package/dist/server/controllers/admin-folder-file.js +189 -0
- package/dist/server/controllers/admin-folder-file.js.map +1 -0
- package/dist/server/controllers/admin-folder-file.mjs +187 -0
- package/dist/server/controllers/admin-folder-file.mjs.map +1 -0
- package/dist/server/controllers/admin-folder.js +104 -0
- package/dist/server/controllers/admin-folder.js.map +1 -0
- package/dist/server/controllers/admin-folder.mjs +102 -0
- package/dist/server/controllers/admin-folder.mjs.map +1 -0
- package/dist/server/controllers/admin-settings.js +32 -0
- package/dist/server/controllers/admin-settings.js.map +1 -0
- package/dist/server/controllers/admin-settings.mjs +30 -0
- package/dist/server/controllers/admin-settings.mjs.map +1 -0
- package/dist/server/controllers/admin-upload.js +88 -0
- package/dist/server/controllers/admin-upload.js.map +1 -0
- package/dist/server/controllers/admin-upload.mjs +86 -0
- package/dist/server/controllers/admin-upload.mjs.map +1 -0
- package/dist/server/controllers/content-api.js +122 -0
- package/dist/server/controllers/content-api.js.map +1 -0
- package/dist/server/controllers/content-api.mjs +120 -0
- package/dist/server/controllers/content-api.mjs.map +1 -0
- package/dist/server/controllers/index.js +22 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +20 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/utils/find-entity-and-check-permissions.js +38 -0
- package/dist/server/controllers/utils/find-entity-and-check-permissions.js.map +1 -0
- package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs +36 -0
- package/dist/server/controllers/utils/find-entity-and-check-permissions.mjs.map +1 -0
- package/dist/server/controllers/utils/folders.js +6 -0
- package/dist/server/controllers/utils/folders.js.map +1 -0
- package/dist/server/controllers/utils/folders.mjs +4 -0
- package/dist/server/controllers/utils/folders.mjs.map +1 -0
- package/dist/server/controllers/validation/admin/configureView.js +13 -0
- package/dist/server/controllers/validation/admin/configureView.js.map +1 -0
- package/dist/server/controllers/validation/admin/configureView.mjs +11 -0
- package/dist/server/controllers/validation/admin/configureView.mjs.map +1 -0
- package/dist/server/controllers/validation/admin/folder-file.js +88 -0
- package/dist/server/controllers/validation/admin/folder-file.js.map +1 -0
- package/dist/server/controllers/validation/admin/folder-file.mjs +85 -0
- package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -0
- package/dist/server/controllers/validation/admin/folder.js +69 -0
- package/dist/server/controllers/validation/admin/folder.js.map +1 -0
- package/dist/server/controllers/validation/admin/folder.mjs +66 -0
- package/dist/server/controllers/validation/admin/folder.mjs.map +1 -0
- package/dist/server/controllers/validation/admin/settings.js +13 -0
- package/dist/server/controllers/validation/admin/settings.js.map +1 -0
- package/dist/server/controllers/validation/admin/settings.mjs +11 -0
- package/dist/server/controllers/validation/admin/settings.mjs.map +1 -0
- package/dist/server/controllers/validation/admin/upload.js +35 -0
- package/dist/server/controllers/validation/admin/upload.js.map +1 -0
- package/dist/server/controllers/validation/admin/upload.mjs +33 -0
- package/dist/server/controllers/validation/admin/upload.mjs.map +1 -0
- package/dist/server/controllers/validation/admin/utils.js +17 -0
- package/dist/server/controllers/validation/admin/utils.js.map +1 -0
- package/dist/server/controllers/validation/admin/utils.mjs +15 -0
- package/dist/server/controllers/validation/admin/utils.mjs.map +1 -0
- package/dist/server/controllers/validation/content-api/upload.js +24 -0
- package/dist/server/controllers/validation/content-api/upload.js.map +1 -0
- package/dist/server/controllers/validation/content-api/upload.mjs +22 -0
- package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -0
- package/dist/server/controllers/view-configuration.js +28 -0
- package/dist/server/controllers/view-configuration.js.map +1 -0
- package/dist/server/controllers/view-configuration.mjs +26 -0
- package/dist/server/controllers/view-configuration.mjs.map +1 -0
- package/dist/server/documentation/content-api.json.js +290 -0
- package/dist/server/documentation/content-api.json.js.map +1 -0
- package/dist/server/documentation/content-api.json.mjs +284 -0
- package/dist/server/documentation/content-api.json.mjs.map +1 -0
- package/dist/server/{chunks/graphql-CwNPX8zo.js → graphql.js} +3 -16
- package/dist/server/graphql.js.map +1 -0
- package/dist/server/{chunks/graphql-K9HaGS9d.mjs → graphql.mjs} +2 -15
- package/dist/server/graphql.mjs.map +1 -0
- package/dist/server/index.js +17 -16
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +19 -14
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/upload.js +38 -0
- package/dist/server/middlewares/upload.js.map +1 -0
- package/dist/server/middlewares/upload.mjs +36 -0
- package/dist/server/middlewares/upload.mjs.map +1 -0
- package/dist/server/register.js +88 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +86 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/admin.js +236 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +234 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +30 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +28 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +14 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +12 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/view-configuration.js +40 -0
- package/dist/server/routes/view-configuration.js.map +1 -0
- package/dist/server/routes/view-configuration.mjs +38 -0
- package/dist/server/routes/view-configuration.mjs.map +1 -0
- package/dist/server/services/api-upload-folder.js +52 -0
- package/dist/server/services/api-upload-folder.js.map +1 -0
- package/dist/server/services/api-upload-folder.mjs +50 -0
- package/dist/server/services/api-upload-folder.mjs.map +1 -0
- package/dist/server/services/extensions/index.js +40 -0
- package/dist/server/services/extensions/index.js.map +1 -0
- package/dist/server/services/extensions/index.mjs +38 -0
- package/dist/server/services/extensions/index.mjs.map +1 -0
- package/dist/server/services/extensions/utils.js +53 -0
- package/dist/server/services/extensions/utils.js.map +1 -0
- package/dist/server/services/extensions/utils.mjs +51 -0
- package/dist/server/services/extensions/utils.mjs.map +1 -0
- package/dist/server/services/file.js +57 -0
- package/dist/server/services/file.js.map +1 -0
- package/dist/server/services/file.mjs +55 -0
- package/dist/server/services/file.mjs.map +1 -0
- package/dist/server/services/folder.js +275 -0
- package/dist/server/services/folder.js.map +1 -0
- package/dist/server/services/folder.mjs +273 -0
- package/dist/server/services/folder.mjs.map +1 -0
- package/dist/server/services/image-manipulation.js +255 -0
- package/dist/server/services/image-manipulation.js.map +1 -0
- package/dist/server/services/image-manipulation.mjs +253 -0
- package/dist/server/services/image-manipulation.mjs.map +1 -0
- package/dist/server/services/index.js +26 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +24 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/metrics.js +19 -0
- package/dist/server/services/metrics.js.map +1 -0
- package/dist/server/services/metrics.mjs +17 -0
- package/dist/server/services/metrics.mjs.map +1 -0
- package/dist/server/services/provider.js +33 -0
- package/dist/server/services/provider.js.map +1 -0
- package/dist/server/services/provider.mjs +31 -0
- package/dist/server/services/provider.mjs.map +1 -0
- package/dist/server/services/upload.js +445 -0
- package/dist/server/services/upload.js.map +1 -0
- package/dist/server/services/upload.mjs +443 -0
- package/dist/server/services/upload.mjs.map +1 -0
- package/dist/server/services/weekly-metrics.js +127 -0
- package/dist/server/services/weekly-metrics.js.map +1 -0
- package/dist/server/services/weekly-metrics.mjs +125 -0
- package/dist/server/services/weekly-metrics.mjs.map +1 -0
- package/dist/server/utils/cron.js +6 -0
- package/dist/server/utils/cron.js.map +1 -0
- package/dist/server/utils/cron.mjs +4 -0
- package/dist/server/utils/cron.mjs.map +1 -0
- package/dist/server/utils/index.js +8 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +6 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/package.json +5 -5
- package/dist/admin/chunks/App-G8sLZSN0.js +0 -993
- package/dist/admin/chunks/App-G8sLZSN0.js.map +0 -1
- package/dist/admin/chunks/App-h5xGw9X8.mjs +0 -972
- package/dist/admin/chunks/App-h5xGw9X8.mjs.map +0 -1
- package/dist/admin/chunks/ConfigureTheView-CO72K73d.mjs +0 -276
- package/dist/admin/chunks/ConfigureTheView-CO72K73d.mjs.map +0 -1
- package/dist/admin/chunks/ConfigureTheView-D9XLMDtA.js +0 -297
- package/dist/admin/chunks/ConfigureTheView-D9XLMDtA.js.map +0 -1
- package/dist/admin/chunks/SettingsPage-DcdF16oj.js.map +0 -1
- package/dist/admin/chunks/SettingsPage-kY2dZHnP.mjs.map +0 -1
- package/dist/admin/chunks/ca-pCOhKIn8.js.map +0 -1
- package/dist/admin/chunks/de-BlbX8Dl_.mjs.map +0 -1
- package/dist/admin/chunks/de-DUjKLmOP.js.map +0 -1
- package/dist/admin/chunks/dk-C2ydE6A7.mjs.map +0 -1
- package/dist/admin/chunks/dk-DSsspA0e.js.map +0 -1
- package/dist/admin/chunks/en-Bw_Cb2IV.mjs.map +0 -1
- package/dist/admin/chunks/en-UjETkewz.js.map +0 -1
- package/dist/admin/chunks/es-CiEgbw0k.mjs.map +0 -1
- package/dist/admin/chunks/es-qAL8YcZz.js.map +0 -1
- package/dist/admin/chunks/fr-BL0Uyj6j.js.map +0 -1
- package/dist/admin/chunks/fr-CwRt2FJu.mjs.map +0 -1
- package/dist/admin/chunks/he-BAmhVpfZ.js.map +0 -1
- package/dist/admin/chunks/he-DdpYNQdt.mjs.map +0 -1
- package/dist/admin/chunks/index-BUqiOq3Y.mjs +0 -7349
- package/dist/admin/chunks/index-BUqiOq3Y.mjs.map +0 -1
- package/dist/admin/chunks/index-DDQjAhM2.js +0 -7406
- package/dist/admin/chunks/index-DDQjAhM2.js.map +0 -1
- package/dist/admin/chunks/it-Be4kgSNB.mjs.map +0 -1
- package/dist/admin/chunks/it-_NQZYepl.js.map +0 -1
- package/dist/admin/chunks/ja-B75QiyXf.js.map +0 -1
- package/dist/admin/chunks/ja-U1NhT0bU.mjs.map +0 -1
- package/dist/admin/chunks/ko-BOvUcJqv.js.map +0 -1
- package/dist/admin/chunks/ko-BciqXefq.mjs.map +0 -1
- package/dist/admin/chunks/ms-B7Zl6Lm9.js.map +0 -1
- package/dist/admin/chunks/ms-D-8McNeg.mjs.map +0 -1
- package/dist/admin/chunks/pl-DdUYocl5.mjs.map +0 -1
- package/dist/admin/chunks/pl-cYDYHOEf.js.map +0 -1
- package/dist/admin/chunks/pt-BR-D1u_azCM.js.map +0 -1
- package/dist/admin/chunks/pt-BR-Demjoq41.mjs.map +0 -1
- package/dist/admin/chunks/pt-D8is2LpS.mjs.map +0 -1
- package/dist/admin/chunks/pt-L2DZeTPL.js.map +0 -1
- package/dist/admin/chunks/ru-CGgHRTey.mjs.map +0 -1
- package/dist/admin/chunks/ru-Uxbk_WWv.js.map +0 -1
- package/dist/admin/chunks/sk-BlLP5HAX.js.map +0 -1
- package/dist/admin/chunks/sk-xtSwaPXq.mjs.map +0 -1
- package/dist/admin/chunks/th-BOpLVfmg.mjs.map +0 -1
- package/dist/admin/chunks/th-DNxPLegS.js.map +0 -1
- package/dist/admin/chunks/tr-BmAPh-f1.mjs.map +0 -1
- package/dist/admin/chunks/tr-DWgXG75k.js.map +0 -1
- package/dist/admin/chunks/uk-Cfm1dM3v.js.map +0 -1
- package/dist/admin/chunks/uk-DPZD6U8g.mjs.map +0 -1
- package/dist/admin/chunks/zh-BIl0qgBy.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-B1GabBRx.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-B8qxMQIl.js.map +0 -1
- package/dist/admin/chunks/zh-MemsyMV6.js.map +0 -1
- package/dist/server/chunks/graphql-CwNPX8zo.js.map +0 -1
- package/dist/server/chunks/graphql-K9HaGS9d.mjs.map +0 -1
- package/dist/server/chunks/index-BzVus140.mjs +0 -3161
- package/dist/server/chunks/index-BzVus140.mjs.map +0 -1
- package/dist/server/chunks/index-D2QOphAI.js +0 -3164
- package/dist/server/chunks/index-D2QOphAI.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../server/src/services/extensions/index.ts"],"sourcesContent":["import { async } from '@strapi/utils';\nimport { signEntityMedia } from './utils';\n\nconst signFileUrlsOnDocumentService = async () => {\n const { provider } = strapi.plugins.upload;\n const isPrivate = await provider.isPrivate();\n\n // We only need to sign the file urls if the provider is private\n if (!isPrivate) {\n return;\n }\n\n strapi.documents.use(async (ctx, next) => {\n const uid = ctx.uid;\n const result: any = await next();\n\n if (ctx.action === 'findMany') {\n // Shape: [ entry ]\n return async.map(result, (entry: any) => signEntityMedia(entry, uid));\n }\n\n if (\n ctx.action === 'findFirst' ||\n ctx.action === 'findOne' ||\n ctx.action === 'create' ||\n ctx.action === 'update'\n ) {\n // Shape: entry\n return signEntityMedia(result, uid);\n }\n\n if (\n ctx.action === 'delete' ||\n ctx.action === 'clone' ||\n ctx.action === 'publish' ||\n ctx.action === 'unpublish' ||\n ctx.action === 'discardDraft'\n ) {\n // Shape: { entries: [ entry ] }\n // ...\n return {\n ...result,\n entries: await async.map(result.entries, (entry: any) => signEntityMedia(entry, uid)),\n };\n }\n\n return result;\n });\n};\n\nexport default {\n signFileUrlsOnDocumentService,\n};\n"],"names":["signFileUrlsOnDocumentService","provider","strapi","plugins","upload","isPrivate","documents","use","ctx","next","uid","result","action","async","map","entry","signEntityMedia","entries"],"mappings":";;;AAGA,MAAMA,6BAAgC,GAAA,UAAA;AACpC,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,MAAOC,CAAAA,OAAO,CAACC,MAAM;IAC1C,MAAMC,SAAAA,GAAY,MAAMJ,QAAAA,CAASI,SAAS,EAAA;;AAG1C,IAAA,IAAI,CAACA,SAAW,EAAA;AACd,QAAA;AACF;AAEAH,IAAAA,MAAAA,CAAOI,SAAS,CAACC,GAAG,CAAC,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;QAC/B,MAAMC,GAAAA,GAAMF,IAAIE,GAAG;AACnB,QAAA,MAAMC,SAAc,MAAMF,IAAAA,EAAAA;QAE1B,IAAID,GAAAA,CAAII,MAAM,KAAK,UAAY,EAAA;;AAE7B,YAAA,OAAOC,MAAMC,GAAG,CAACH,QAAQ,CAACI,KAAAA,GAAeC,gBAAgBD,KAAOL,EAAAA,GAAAA,CAAAA,CAAAA;AAClE;AAEA,QAAA,IACEF,GAAII,CAAAA,MAAM,KAAK,WAAA,IACfJ,IAAII,MAAM,KAAK,SACfJ,IAAAA,GAAAA,CAAII,MAAM,KAAK,QAAA,IACfJ,GAAII,CAAAA,MAAM,KAAK,QACf,EAAA;;AAEA,YAAA,OAAOI,gBAAgBL,MAAQD,EAAAA,GAAAA,CAAAA;AACjC;AAEA,QAAA,IACEF,IAAII,MAAM,KAAK,YACfJ,GAAII,CAAAA,MAAM,KAAK,OACfJ,IAAAA,GAAAA,CAAII,MAAM,KAAK,SAAA,IACfJ,IAAII,MAAM,KAAK,eACfJ,GAAII,CAAAA,MAAM,KAAK,cACf,EAAA;;;YAGA,OAAO;AACL,gBAAA,GAAGD,MAAM;gBACTM,OAAS,EAAA,MAAMJ,KAAMC,CAAAA,GAAG,CAACH,MAAAA,CAAOM,OAAO,EAAE,CAACF,KAAeC,GAAAA,eAAAA,CAAgBD,KAAOL,EAAAA,GAAAA,CAAAA;AAClF,aAAA;AACF;QAEA,OAAOC,MAAAA;AACT,KAAA,CAAA;AACF,CAAA;AAEA,iBAAe;AACbX,IAAAA;AACF,CAAE;;;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@strapi/utils');
|
|
4
|
+
var index = require('../../utils/index.js');
|
|
5
|
+
|
|
6
|
+
function isFile(value, attribute) {
|
|
7
|
+
if (!value || attribute.type !== 'media') {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Visitor function to sign media URLs
|
|
14
|
+
*/ const signEntityMediaVisitor = async ({ key, value, attribute }, { set })=>{
|
|
15
|
+
const { signFileUrls } = index.getService('file');
|
|
16
|
+
if (!attribute) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (attribute.type !== 'media') {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (isFile(value, attribute)) {
|
|
23
|
+
// If the attribute is repeatable sign each file
|
|
24
|
+
if (attribute.multiple) {
|
|
25
|
+
const signedFiles = await utils.async.map(value, signFileUrls);
|
|
26
|
+
set(key, signedFiles);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// If the attribute is not repeatable only sign a single file
|
|
30
|
+
const signedFile = await signFileUrls(value);
|
|
31
|
+
set(key, signedFile);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
* Iterate through an entity manager result
|
|
37
|
+
* Check which modelAttributes are media and pre sign the image URLs
|
|
38
|
+
* if they are from the current upload provider
|
|
39
|
+
*
|
|
40
|
+
* @param {Object} entity
|
|
41
|
+
* @param {Object} modelAttributes
|
|
42
|
+
* @returns
|
|
43
|
+
*/ const signEntityMedia = async (entity, uid)=>{
|
|
44
|
+
const model = strapi.getModel(uid);
|
|
45
|
+
return utils.traverseEntity(// @ts-expect-error - FIXME: fix traverseEntity using wrong types
|
|
46
|
+
signEntityMediaVisitor, {
|
|
47
|
+
schema: model,
|
|
48
|
+
getModel: strapi.getModel.bind(strapi)
|
|
49
|
+
}, entity);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.signEntityMedia = signEntityMedia;
|
|
53
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../server/src/services/extensions/utils.ts"],"sourcesContent":["import { async, traverseEntity } from '@strapi/utils';\n\nimport type { Schema, UID } from '@strapi/types';\n\nimport { getService } from '../../utils';\n\nimport type { File } from '../../types';\n\ntype SignEntityMediaVisitor = (\n args: {\n key: string;\n value: unknown;\n attribute: Schema.Attribute.AnyAttribute;\n },\n utils: {\n set: (key: string, value: unknown) => void;\n }\n) => Promise<void>;\n\nfunction isFile(value: unknown, attribute: Schema.Attribute.AnyAttribute): value is File {\n if (!value || attribute.type !== 'media') {\n return false;\n }\n\n return true;\n}\n\n/**\n * Visitor function to sign media URLs\n */\nconst signEntityMediaVisitor: SignEntityMediaVisitor = async (\n { key, value, attribute },\n { set }\n) => {\n const { signFileUrls } = getService('file');\n\n if (!attribute) {\n return;\n }\n\n if (attribute.type !== 'media') {\n return;\n }\n\n if (isFile(value, attribute)) {\n // If the attribute is repeatable sign each file\n if (attribute.multiple) {\n const signedFiles = await async.map(value, signFileUrls);\n set(key, signedFiles);\n return;\n }\n\n // If the attribute is not repeatable only sign a single file\n const signedFile = await signFileUrls(value);\n set(key, signedFile);\n }\n};\n\n/**\n *\n * Iterate through an entity manager result\n * Check which modelAttributes are media and pre sign the image URLs\n * if they are from the current upload provider\n *\n * @param {Object} entity\n * @param {Object} modelAttributes\n * @returns\n */\nconst signEntityMedia = async (entity: any, uid: UID.Schema) => {\n const model = strapi.getModel(uid);\n return traverseEntity(\n // @ts-expect-error - FIXME: fix traverseEntity using wrong types\n signEntityMediaVisitor,\n { schema: model, getModel: strapi.getModel.bind(strapi) },\n entity\n );\n};\n\nexport { signEntityMedia };\n"],"names":["isFile","value","attribute","type","signEntityMediaVisitor","key","set","signFileUrls","getService","multiple","signedFiles","async","map","signedFile","signEntityMedia","entity","uid","model","strapi","getModel","traverseEntity","schema","bind"],"mappings":";;;;;AAmBA,SAASA,MAAAA,CAAOC,KAAc,EAAEC,SAAwC,EAAA;AACtE,IAAA,IAAI,CAACD,KAAAA,IAASC,SAAUC,CAAAA,IAAI,KAAK,OAAS,EAAA;QACxC,OAAO,KAAA;AACT;IAEA,OAAO,IAAA;AACT;AAEA;;AAEC,IACD,MAAMC,sBAAAA,GAAiD,OACrD,EAAEC,GAAG,EAAEJ,KAAK,EAAEC,SAAS,EAAE,EACzB,EAAEI,GAAG,EAAE,GAAA;AAEP,IAAA,MAAM,EAAEC,YAAY,EAAE,GAAGC,gBAAW,CAAA,MAAA,CAAA;AAEpC,IAAA,IAAI,CAACN,SAAW,EAAA;AACd,QAAA;AACF;IAEA,IAAIA,SAAAA,CAAUC,IAAI,KAAK,OAAS,EAAA;AAC9B,QAAA;AACF;IAEA,IAAIH,MAAAA,CAAOC,OAAOC,SAAY,CAAA,EAAA;;QAE5B,IAAIA,SAAAA,CAAUO,QAAQ,EAAE;AACtB,YAAA,MAAMC,WAAc,GAAA,MAAMC,WAAMC,CAAAA,GAAG,CAACX,KAAOM,EAAAA,YAAAA,CAAAA;AAC3CD,YAAAA,GAAAA,CAAID,GAAKK,EAAAA,WAAAA,CAAAA;AACT,YAAA;AACF;;QAGA,MAAMG,UAAAA,GAAa,MAAMN,YAAaN,CAAAA,KAAAA,CAAAA;AACtCK,QAAAA,GAAAA,CAAID,GAAKQ,EAAAA,UAAAA,CAAAA;AACX;AACF,CAAA;AAEA;;;;;;;;;IAUA,MAAMC,eAAkB,GAAA,OAAOC,MAAaC,EAAAA,GAAAA,GAAAA;IAC1C,MAAMC,KAAAA,GAAQC,MAAOC,CAAAA,QAAQ,CAACH,GAAAA,CAAAA;AAC9B,IAAA,OAAOI;IAELhB,sBACA,EAAA;QAAEiB,MAAQJ,EAAAA,KAAAA;AAAOE,QAAAA,QAAAA,EAAUD,MAAOC,CAAAA,QAAQ,CAACG,IAAI,CAACJ,MAAAA;KAChDH,EAAAA,MAAAA,CAAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { traverseEntity, async } from '@strapi/utils';
|
|
2
|
+
import { getService } from '../../utils/index.mjs';
|
|
3
|
+
|
|
4
|
+
function isFile(value, attribute) {
|
|
5
|
+
if (!value || attribute.type !== 'media') {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Visitor function to sign media URLs
|
|
12
|
+
*/ const signEntityMediaVisitor = async ({ key, value, attribute }, { set })=>{
|
|
13
|
+
const { signFileUrls } = getService('file');
|
|
14
|
+
if (!attribute) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (attribute.type !== 'media') {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (isFile(value, attribute)) {
|
|
21
|
+
// If the attribute is repeatable sign each file
|
|
22
|
+
if (attribute.multiple) {
|
|
23
|
+
const signedFiles = await async.map(value, signFileUrls);
|
|
24
|
+
set(key, signedFiles);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// If the attribute is not repeatable only sign a single file
|
|
28
|
+
const signedFile = await signFileUrls(value);
|
|
29
|
+
set(key, signedFile);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* Iterate through an entity manager result
|
|
35
|
+
* Check which modelAttributes are media and pre sign the image URLs
|
|
36
|
+
* if they are from the current upload provider
|
|
37
|
+
*
|
|
38
|
+
* @param {Object} entity
|
|
39
|
+
* @param {Object} modelAttributes
|
|
40
|
+
* @returns
|
|
41
|
+
*/ const signEntityMedia = async (entity, uid)=>{
|
|
42
|
+
const model = strapi.getModel(uid);
|
|
43
|
+
return traverseEntity(// @ts-expect-error - FIXME: fix traverseEntity using wrong types
|
|
44
|
+
signEntityMediaVisitor, {
|
|
45
|
+
schema: model,
|
|
46
|
+
getModel: strapi.getModel.bind(strapi)
|
|
47
|
+
}, entity);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export { signEntityMedia };
|
|
51
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../../server/src/services/extensions/utils.ts"],"sourcesContent":["import { async, traverseEntity } from '@strapi/utils';\n\nimport type { Schema, UID } from '@strapi/types';\n\nimport { getService } from '../../utils';\n\nimport type { File } from '../../types';\n\ntype SignEntityMediaVisitor = (\n args: {\n key: string;\n value: unknown;\n attribute: Schema.Attribute.AnyAttribute;\n },\n utils: {\n set: (key: string, value: unknown) => void;\n }\n) => Promise<void>;\n\nfunction isFile(value: unknown, attribute: Schema.Attribute.AnyAttribute): value is File {\n if (!value || attribute.type !== 'media') {\n return false;\n }\n\n return true;\n}\n\n/**\n * Visitor function to sign media URLs\n */\nconst signEntityMediaVisitor: SignEntityMediaVisitor = async (\n { key, value, attribute },\n { set }\n) => {\n const { signFileUrls } = getService('file');\n\n if (!attribute) {\n return;\n }\n\n if (attribute.type !== 'media') {\n return;\n }\n\n if (isFile(value, attribute)) {\n // If the attribute is repeatable sign each file\n if (attribute.multiple) {\n const signedFiles = await async.map(value, signFileUrls);\n set(key, signedFiles);\n return;\n }\n\n // If the attribute is not repeatable only sign a single file\n const signedFile = await signFileUrls(value);\n set(key, signedFile);\n }\n};\n\n/**\n *\n * Iterate through an entity manager result\n * Check which modelAttributes are media and pre sign the image URLs\n * if they are from the current upload provider\n *\n * @param {Object} entity\n * @param {Object} modelAttributes\n * @returns\n */\nconst signEntityMedia = async (entity: any, uid: UID.Schema) => {\n const model = strapi.getModel(uid);\n return traverseEntity(\n // @ts-expect-error - FIXME: fix traverseEntity using wrong types\n signEntityMediaVisitor,\n { schema: model, getModel: strapi.getModel.bind(strapi) },\n entity\n );\n};\n\nexport { signEntityMedia };\n"],"names":["isFile","value","attribute","type","signEntityMediaVisitor","key","set","signFileUrls","getService","multiple","signedFiles","async","map","signedFile","signEntityMedia","entity","uid","model","strapi","getModel","traverseEntity","schema","bind"],"mappings":";;;AAmBA,SAASA,MAAAA,CAAOC,KAAc,EAAEC,SAAwC,EAAA;AACtE,IAAA,IAAI,CAACD,KAAAA,IAASC,SAAUC,CAAAA,IAAI,KAAK,OAAS,EAAA;QACxC,OAAO,KAAA;AACT;IAEA,OAAO,IAAA;AACT;AAEA;;AAEC,IACD,MAAMC,sBAAAA,GAAiD,OACrD,EAAEC,GAAG,EAAEJ,KAAK,EAAEC,SAAS,EAAE,EACzB,EAAEI,GAAG,EAAE,GAAA;AAEP,IAAA,MAAM,EAAEC,YAAY,EAAE,GAAGC,UAAW,CAAA,MAAA,CAAA;AAEpC,IAAA,IAAI,CAACN,SAAW,EAAA;AACd,QAAA;AACF;IAEA,IAAIA,SAAAA,CAAUC,IAAI,KAAK,OAAS,EAAA;AAC9B,QAAA;AACF;IAEA,IAAIH,MAAAA,CAAOC,OAAOC,SAAY,CAAA,EAAA;;QAE5B,IAAIA,SAAAA,CAAUO,QAAQ,EAAE;AACtB,YAAA,MAAMC,WAAc,GAAA,MAAMC,KAAMC,CAAAA,GAAG,CAACX,KAAOM,EAAAA,YAAAA,CAAAA;AAC3CD,YAAAA,GAAAA,CAAID,GAAKK,EAAAA,WAAAA,CAAAA;AACT,YAAA;AACF;;QAGA,MAAMG,UAAAA,GAAa,MAAMN,YAAaN,CAAAA,KAAAA,CAAAA;AACtCK,QAAAA,GAAAA,CAAID,GAAKQ,EAAAA,UAAAA,CAAAA;AACX;AACF,CAAA;AAEA;;;;;;;;;IAUA,MAAMC,eAAkB,GAAA,OAAOC,MAAaC,EAAAA,GAAAA,GAAAA;IAC1C,MAAMC,KAAAA,GAAQC,MAAOC,CAAAA,QAAQ,CAACH,GAAAA,CAAAA;AAC9B,IAAA,OAAOI;IAELhB,sBACA,EAAA;QAAEiB,MAAQJ,EAAAA,KAAAA;AAAOE,QAAAA,QAAAA,EAAUD,MAAOC,CAAAA,QAAQ,CAACG,IAAI,CAACJ,MAAAA;KAChDH,EAAAA,MAAAA,CAAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var constants = require('../constants.js');
|
|
6
|
+
var index = require('../utils/index.js');
|
|
7
|
+
|
|
8
|
+
const getFolderPath = async (folderId)=>{
|
|
9
|
+
if (!folderId) return '/';
|
|
10
|
+
const parentFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
11
|
+
where: {
|
|
12
|
+
id: folderId
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return parentFolder.path;
|
|
16
|
+
};
|
|
17
|
+
const deleteByIds = async (ids = [])=>{
|
|
18
|
+
const filesToDelete = await strapi.db.query(constants.FILE_MODEL_UID).findMany({
|
|
19
|
+
where: {
|
|
20
|
+
id: {
|
|
21
|
+
$in: ids
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
await Promise.all(filesToDelete.map((file)=>index.getService('upload').remove(file)));
|
|
26
|
+
return filesToDelete;
|
|
27
|
+
};
|
|
28
|
+
const signFileUrls = async (file)=>{
|
|
29
|
+
const { provider } = strapi.plugins.upload;
|
|
30
|
+
const { provider: providerConfig } = strapi.config.get('plugin::upload');
|
|
31
|
+
const isPrivate = await provider.isPrivate();
|
|
32
|
+
file.isUrlSigned = false;
|
|
33
|
+
// Check file provider and if provider is private
|
|
34
|
+
if (file.provider !== providerConfig || !isPrivate) {
|
|
35
|
+
return file;
|
|
36
|
+
}
|
|
37
|
+
const signUrl = async (file)=>{
|
|
38
|
+
const signedUrl = await provider.getSignedUrl(file);
|
|
39
|
+
file.url = signedUrl.url;
|
|
40
|
+
file.isUrlSigned = true;
|
|
41
|
+
};
|
|
42
|
+
const signedFile = fp.cloneDeep(file);
|
|
43
|
+
// Sign each file format
|
|
44
|
+
await signUrl(signedFile);
|
|
45
|
+
if (file.formats) {
|
|
46
|
+
await utils.async.map(Object.values(signedFile.formats ?? {}), signUrl);
|
|
47
|
+
}
|
|
48
|
+
return signedFile;
|
|
49
|
+
};
|
|
50
|
+
var file = {
|
|
51
|
+
getFolderPath,
|
|
52
|
+
deleteByIds,
|
|
53
|
+
signFileUrls
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
module.exports = file;
|
|
57
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sources":["../../../server/src/services/file.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport { async } from '@strapi/utils';\n\nimport { FOLDER_MODEL_UID, FILE_MODEL_UID } from '../constants';\nimport { getService } from '../utils';\n\nimport { Config, type File } from '../types';\n\nconst getFolderPath = async (folderId?: number | null) => {\n if (!folderId) return '/';\n\n const parentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id: folderId } });\n\n return parentFolder.path;\n};\n\nconst deleteByIds = async (ids: number[] = []) => {\n const filesToDelete = await strapi.db\n .query(FILE_MODEL_UID)\n .findMany({ where: { id: { $in: ids } } });\n\n await Promise.all(filesToDelete.map((file: File) => getService('upload').remove(file)));\n\n return filesToDelete;\n};\n\nconst signFileUrls = async (file: File) => {\n const { provider } = strapi.plugins.upload;\n const { provider: providerConfig } = strapi.config.get<Config>('plugin::upload');\n const isPrivate = await provider.isPrivate();\n file.isUrlSigned = false;\n\n // Check file provider and if provider is private\n if (file.provider !== providerConfig || !isPrivate) {\n return file;\n }\n\n const signUrl = async (file: File) => {\n const signedUrl = await provider.getSignedUrl(file);\n file.url = signedUrl.url;\n file.isUrlSigned = true;\n };\n\n const signedFile = cloneDeep(file);\n\n // Sign each file format\n await signUrl(signedFile);\n if (file.formats) {\n await async.map(Object.values(signedFile.formats ?? {}), signUrl);\n }\n\n return signedFile;\n};\n\nexport default { getFolderPath, deleteByIds, signFileUrls };\n"],"names":["getFolderPath","folderId","parentFolder","strapi","db","query","FOLDER_MODEL_UID","findOne","where","id","path","deleteByIds","ids","filesToDelete","FILE_MODEL_UID","findMany","$in","Promise","all","map","file","getService","remove","signFileUrls","provider","plugins","upload","providerConfig","config","get","isPrivate","isUrlSigned","signUrl","signedUrl","getSignedUrl","url","signedFile","cloneDeep","formats","async","Object","values"],"mappings":";;;;;;;AAQA,MAAMA,gBAAgB,OAAOC,QAAAA,GAAAA;IAC3B,IAAI,CAACA,UAAU,OAAO,GAAA;IAEtB,MAAMC,YAAAA,GAAe,MAAMC,MAAOC,CAAAA,EAAE,CAACC,KAAK,CAACC,0BAAkBC,CAAAA,CAAAA,OAAO,CAAC;QAAEC,KAAO,EAAA;YAAEC,EAAIR,EAAAA;AAAS;AAAE,KAAA,CAAA;AAE/F,IAAA,OAAOC,aAAaQ,IAAI;AAC1B,CAAA;AAEA,MAAMC,WAAAA,GAAc,OAAOC,GAAAA,GAAgB,EAAE,GAAA;IAC3C,MAAMC,aAAAA,GAAgB,MAAMV,MAAOC,CAAAA,EAAE,CAClCC,KAAK,CAACS,wBACNC,CAAAA,CAAAA,QAAQ,CAAC;QAAEP,KAAO,EAAA;YAAEC,EAAI,EAAA;gBAAEO,GAAKJ,EAAAA;AAAI;AAAE;AAAE,KAAA,CAAA;IAE1C,MAAMK,OAAAA,CAAQC,GAAG,CAACL,aAAcM,CAAAA,GAAG,CAAC,CAACC,IAAeC,GAAAA,gBAAAA,CAAW,QAAUC,CAAAA,CAAAA,MAAM,CAACF,IAAAA,CAAAA,CAAAA,CAAAA;IAEhF,OAAOP,aAAAA;AACT,CAAA;AAEA,MAAMU,eAAe,OAAOH,IAAAA,GAAAA;AAC1B,IAAA,MAAM,EAAEI,QAAQ,EAAE,GAAGrB,MAAOsB,CAAAA,OAAO,CAACC,MAAM;IAC1C,MAAM,EAAEF,UAAUG,cAAc,EAAE,GAAGxB,MAAOyB,CAAAA,MAAM,CAACC,GAAG,CAAS,gBAAA,CAAA;IAC/D,MAAMC,SAAAA,GAAY,MAAMN,QAAAA,CAASM,SAAS,EAAA;AAC1CV,IAAAA,IAAAA,CAAKW,WAAW,GAAG,KAAA;;AAGnB,IAAA,IAAIX,IAAKI,CAAAA,QAAQ,KAAKG,cAAAA,IAAkB,CAACG,SAAW,EAAA;QAClD,OAAOV,IAAAA;AACT;AAEA,IAAA,MAAMY,UAAU,OAAOZ,IAAAA,GAAAA;AACrB,QAAA,MAAMa,SAAY,GAAA,MAAMT,QAASU,CAAAA,YAAY,CAACd,IAAAA,CAAAA;QAC9CA,IAAKe,CAAAA,GAAG,GAAGF,SAAAA,CAAUE,GAAG;AACxBf,QAAAA,IAAAA,CAAKW,WAAW,GAAG,IAAA;AACrB,KAAA;AAEA,IAAA,MAAMK,aAAaC,YAAUjB,CAAAA,IAAAA,CAAAA;;AAG7B,IAAA,MAAMY,OAAQI,CAAAA,UAAAA,CAAAA;IACd,IAAIhB,IAAAA,CAAKkB,OAAO,EAAE;QAChB,MAAMC,WAAAA,CAAMpB,GAAG,CAACqB,MAAOC,CAAAA,MAAM,CAACL,UAAWE,CAAAA,OAAO,IAAI,EAAKN,CAAAA,EAAAA,OAAAA,CAAAA;AAC3D;IAEA,OAAOI,UAAAA;AACT,CAAA;AAEA,WAAe;AAAEpC,IAAAA,aAAAA;AAAeW,IAAAA,WAAAA;AAAaY,IAAAA;AAAa,CAAE;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { cloneDeep } from 'lodash/fp';
|
|
2
|
+
import { async } from '@strapi/utils';
|
|
3
|
+
import { FOLDER_MODEL_UID, FILE_MODEL_UID } from '../constants.mjs';
|
|
4
|
+
import { getService } from '../utils/index.mjs';
|
|
5
|
+
|
|
6
|
+
const getFolderPath = async (folderId)=>{
|
|
7
|
+
if (!folderId) return '/';
|
|
8
|
+
const parentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({
|
|
9
|
+
where: {
|
|
10
|
+
id: folderId
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
return parentFolder.path;
|
|
14
|
+
};
|
|
15
|
+
const deleteByIds = async (ids = [])=>{
|
|
16
|
+
const filesToDelete = await strapi.db.query(FILE_MODEL_UID).findMany({
|
|
17
|
+
where: {
|
|
18
|
+
id: {
|
|
19
|
+
$in: ids
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
await Promise.all(filesToDelete.map((file)=>getService('upload').remove(file)));
|
|
24
|
+
return filesToDelete;
|
|
25
|
+
};
|
|
26
|
+
const signFileUrls = async (file)=>{
|
|
27
|
+
const { provider } = strapi.plugins.upload;
|
|
28
|
+
const { provider: providerConfig } = strapi.config.get('plugin::upload');
|
|
29
|
+
const isPrivate = await provider.isPrivate();
|
|
30
|
+
file.isUrlSigned = false;
|
|
31
|
+
// Check file provider and if provider is private
|
|
32
|
+
if (file.provider !== providerConfig || !isPrivate) {
|
|
33
|
+
return file;
|
|
34
|
+
}
|
|
35
|
+
const signUrl = async (file)=>{
|
|
36
|
+
const signedUrl = await provider.getSignedUrl(file);
|
|
37
|
+
file.url = signedUrl.url;
|
|
38
|
+
file.isUrlSigned = true;
|
|
39
|
+
};
|
|
40
|
+
const signedFile = cloneDeep(file);
|
|
41
|
+
// Sign each file format
|
|
42
|
+
await signUrl(signedFile);
|
|
43
|
+
if (file.formats) {
|
|
44
|
+
await async.map(Object.values(signedFile.formats ?? {}), signUrl);
|
|
45
|
+
}
|
|
46
|
+
return signedFile;
|
|
47
|
+
};
|
|
48
|
+
var file = {
|
|
49
|
+
getFolderPath,
|
|
50
|
+
deleteByIds,
|
|
51
|
+
signFileUrls
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { file as default };
|
|
55
|
+
//# sourceMappingURL=file.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.mjs","sources":["../../../server/src/services/file.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport { async } from '@strapi/utils';\n\nimport { FOLDER_MODEL_UID, FILE_MODEL_UID } from '../constants';\nimport { getService } from '../utils';\n\nimport { Config, type File } from '../types';\n\nconst getFolderPath = async (folderId?: number | null) => {\n if (!folderId) return '/';\n\n const parentFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({ where: { id: folderId } });\n\n return parentFolder.path;\n};\n\nconst deleteByIds = async (ids: number[] = []) => {\n const filesToDelete = await strapi.db\n .query(FILE_MODEL_UID)\n .findMany({ where: { id: { $in: ids } } });\n\n await Promise.all(filesToDelete.map((file: File) => getService('upload').remove(file)));\n\n return filesToDelete;\n};\n\nconst signFileUrls = async (file: File) => {\n const { provider } = strapi.plugins.upload;\n const { provider: providerConfig } = strapi.config.get<Config>('plugin::upload');\n const isPrivate = await provider.isPrivate();\n file.isUrlSigned = false;\n\n // Check file provider and if provider is private\n if (file.provider !== providerConfig || !isPrivate) {\n return file;\n }\n\n const signUrl = async (file: File) => {\n const signedUrl = await provider.getSignedUrl(file);\n file.url = signedUrl.url;\n file.isUrlSigned = true;\n };\n\n const signedFile = cloneDeep(file);\n\n // Sign each file format\n await signUrl(signedFile);\n if (file.formats) {\n await async.map(Object.values(signedFile.formats ?? {}), signUrl);\n }\n\n return signedFile;\n};\n\nexport default { getFolderPath, deleteByIds, signFileUrls };\n"],"names":["getFolderPath","folderId","parentFolder","strapi","db","query","FOLDER_MODEL_UID","findOne","where","id","path","deleteByIds","ids","filesToDelete","FILE_MODEL_UID","findMany","$in","Promise","all","map","file","getService","remove","signFileUrls","provider","plugins","upload","providerConfig","config","get","isPrivate","isUrlSigned","signUrl","signedUrl","getSignedUrl","url","signedFile","cloneDeep","formats","async","Object","values"],"mappings":";;;;;AAQA,MAAMA,gBAAgB,OAAOC,QAAAA,GAAAA;IAC3B,IAAI,CAACA,UAAU,OAAO,GAAA;IAEtB,MAAMC,YAAAA,GAAe,MAAMC,MAAOC,CAAAA,EAAE,CAACC,KAAK,CAACC,gBAAkBC,CAAAA,CAAAA,OAAO,CAAC;QAAEC,KAAO,EAAA;YAAEC,EAAIR,EAAAA;AAAS;AAAE,KAAA,CAAA;AAE/F,IAAA,OAAOC,aAAaQ,IAAI;AAC1B,CAAA;AAEA,MAAMC,WAAAA,GAAc,OAAOC,GAAAA,GAAgB,EAAE,GAAA;IAC3C,MAAMC,aAAAA,GAAgB,MAAMV,MAAOC,CAAAA,EAAE,CAClCC,KAAK,CAACS,cACNC,CAAAA,CAAAA,QAAQ,CAAC;QAAEP,KAAO,EAAA;YAAEC,EAAI,EAAA;gBAAEO,GAAKJ,EAAAA;AAAI;AAAE;AAAE,KAAA,CAAA;IAE1C,MAAMK,OAAAA,CAAQC,GAAG,CAACL,aAAcM,CAAAA,GAAG,CAAC,CAACC,IAAeC,GAAAA,UAAAA,CAAW,QAAUC,CAAAA,CAAAA,MAAM,CAACF,IAAAA,CAAAA,CAAAA,CAAAA;IAEhF,OAAOP,aAAAA;AACT,CAAA;AAEA,MAAMU,eAAe,OAAOH,IAAAA,GAAAA;AAC1B,IAAA,MAAM,EAAEI,QAAQ,EAAE,GAAGrB,MAAOsB,CAAAA,OAAO,CAACC,MAAM;IAC1C,MAAM,EAAEF,UAAUG,cAAc,EAAE,GAAGxB,MAAOyB,CAAAA,MAAM,CAACC,GAAG,CAAS,gBAAA,CAAA;IAC/D,MAAMC,SAAAA,GAAY,MAAMN,QAAAA,CAASM,SAAS,EAAA;AAC1CV,IAAAA,IAAAA,CAAKW,WAAW,GAAG,KAAA;;AAGnB,IAAA,IAAIX,IAAKI,CAAAA,QAAQ,KAAKG,cAAAA,IAAkB,CAACG,SAAW,EAAA;QAClD,OAAOV,IAAAA;AACT;AAEA,IAAA,MAAMY,UAAU,OAAOZ,IAAAA,GAAAA;AACrB,QAAA,MAAMa,SAAY,GAAA,MAAMT,QAASU,CAAAA,YAAY,CAACd,IAAAA,CAAAA;QAC9CA,IAAKe,CAAAA,GAAG,GAAGF,SAAAA,CAAUE,GAAG;AACxBf,QAAAA,IAAAA,CAAKW,WAAW,GAAG,IAAA;AACrB,KAAA;AAEA,IAAA,MAAMK,aAAaC,SAAUjB,CAAAA,IAAAA,CAAAA;;AAG7B,IAAA,MAAMY,OAAQI,CAAAA,UAAAA,CAAAA;IACd,IAAIhB,IAAAA,CAAKkB,OAAO,EAAE;QAChB,MAAMC,KAAAA,CAAMpB,GAAG,CAACqB,MAAOC,CAAAA,MAAM,CAACL,UAAWE,CAAAA,OAAO,IAAI,EAAKN,CAAAA,EAAAA,OAAAA,CAAAA;AAC3D;IAEA,OAAOI,UAAAA;AACT,CAAA;AAEA,WAAe;AAAEpC,IAAAA,aAAAA;AAAeW,IAAAA,WAAAA;AAAaY,IAAAA;AAAa,CAAE;;;;"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var constants = require('../constants.js');
|
|
6
|
+
var index = require('../utils/index.js');
|
|
7
|
+
|
|
8
|
+
const setPathIdAndPath = async (folder)=>{
|
|
9
|
+
const { max } = await strapi.db.queryBuilder(constants.FOLDER_MODEL_UID).max('pathId').first().execute();
|
|
10
|
+
const pathId = max + 1;
|
|
11
|
+
let parentPath = '/';
|
|
12
|
+
if (folder.parent) {
|
|
13
|
+
const parentFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
14
|
+
where: {
|
|
15
|
+
id: folder.parent
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
parentPath = parentFolder.path;
|
|
19
|
+
}
|
|
20
|
+
return Object.assign(folder, {
|
|
21
|
+
pathId,
|
|
22
|
+
path: utils.strings.joinBy('/', parentPath, `${pathId}`)
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const create = async (folderData, opts)=>{
|
|
26
|
+
const folderService = index.getService('folder');
|
|
27
|
+
const { user } = opts || {};
|
|
28
|
+
let enrichedFolder = await folderService.setPathIdAndPath(folderData);
|
|
29
|
+
if (user) {
|
|
30
|
+
enrichedFolder = await utils.setCreatorFields({
|
|
31
|
+
user
|
|
32
|
+
})(enrichedFolder);
|
|
33
|
+
}
|
|
34
|
+
const folder = await strapi.db.query(constants.FOLDER_MODEL_UID).create({
|
|
35
|
+
data: enrichedFolder
|
|
36
|
+
});
|
|
37
|
+
strapi.eventHub.emit('media-folder.create', {
|
|
38
|
+
folder
|
|
39
|
+
});
|
|
40
|
+
return folder;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Recursively delete folders and included files
|
|
44
|
+
* @param ids ids of the folders to delete
|
|
45
|
+
* @returns {Promise<Object[]>}
|
|
46
|
+
*/ const deleteByIds = async (ids = [])=>{
|
|
47
|
+
const folders = await strapi.db.query(constants.FOLDER_MODEL_UID).findMany({
|
|
48
|
+
where: {
|
|
49
|
+
id: {
|
|
50
|
+
$in: ids
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
if (folders.length === 0) {
|
|
55
|
+
return {
|
|
56
|
+
folders: [],
|
|
57
|
+
totalFolderNumber: 0,
|
|
58
|
+
totalFileNumber: 0
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const pathsToDelete = fp.map('path', folders);
|
|
62
|
+
// delete files
|
|
63
|
+
const filesToDelete = await strapi.db.query(constants.FILE_MODEL_UID).findMany({
|
|
64
|
+
where: {
|
|
65
|
+
$or: pathsToDelete.flatMap((path)=>[
|
|
66
|
+
{
|
|
67
|
+
folderPath: {
|
|
68
|
+
$eq: path
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
folderPath: {
|
|
73
|
+
$startsWith: `${path}/`
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
])
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
await Promise.all(filesToDelete.map((file)=>index.getService('upload').remove(file)));
|
|
80
|
+
// delete folders and subfolders
|
|
81
|
+
const { count: totalFolderNumber } = await strapi.db.query(constants.FOLDER_MODEL_UID).deleteMany({
|
|
82
|
+
where: {
|
|
83
|
+
$or: pathsToDelete.flatMap((path)=>[
|
|
84
|
+
{
|
|
85
|
+
path: {
|
|
86
|
+
$eq: path
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
path: {
|
|
91
|
+
$startsWith: `${path}/`
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
])
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
strapi.eventHub.emit('media-folder.delete', {
|
|
98
|
+
folders
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
folders,
|
|
102
|
+
totalFolderNumber,
|
|
103
|
+
totalFileNumber: filesToDelete.length
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Update name and location of a folder and its belonging folders and files
|
|
108
|
+
*/ const update = async (id, { name, parent }, { user })=>{
|
|
109
|
+
// only name is updated
|
|
110
|
+
if (fp.isUndefined(parent)) {
|
|
111
|
+
const existingFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
112
|
+
where: {
|
|
113
|
+
id
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
if (!existingFolder) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
const newFolder = utils.setCreatorFields({
|
|
120
|
+
user,
|
|
121
|
+
isEdition: true
|
|
122
|
+
})({
|
|
123
|
+
name,
|
|
124
|
+
parent
|
|
125
|
+
});
|
|
126
|
+
if (fp.isUndefined(parent)) {
|
|
127
|
+
const folder = await strapi.db.query(constants.FOLDER_MODEL_UID).update({
|
|
128
|
+
where: {
|
|
129
|
+
id
|
|
130
|
+
},
|
|
131
|
+
data: newFolder
|
|
132
|
+
});
|
|
133
|
+
return folder;
|
|
134
|
+
}
|
|
135
|
+
// location is updated => using transaction
|
|
136
|
+
} else {
|
|
137
|
+
const trx = await strapi.db.transaction();
|
|
138
|
+
try {
|
|
139
|
+
// fetch existing folder
|
|
140
|
+
const existingFolder = await strapi.db.queryBuilder(constants.FOLDER_MODEL_UID).select([
|
|
141
|
+
'pathId',
|
|
142
|
+
'path'
|
|
143
|
+
]).where({
|
|
144
|
+
id
|
|
145
|
+
}).transacting(trx.get()).forUpdate().first().execute();
|
|
146
|
+
// update parent folder (delete + insert; upsert not possible)
|
|
147
|
+
// @ts-expect-error - no dynamic types
|
|
148
|
+
const { joinTable } = strapi.db.metadata.get(constants.FOLDER_MODEL_UID).attributes.parent;
|
|
149
|
+
await strapi.db.queryBuilder(joinTable.name).transacting(trx.get()).delete().where({
|
|
150
|
+
[joinTable.joinColumn.name]: id
|
|
151
|
+
}).execute();
|
|
152
|
+
if (parent !== null) {
|
|
153
|
+
await strapi.db.queryBuilder(joinTable.name).transacting(trx.get()).insert({
|
|
154
|
+
[joinTable.inverseJoinColumn.name]: parent,
|
|
155
|
+
[joinTable.joinColumn.name]: id
|
|
156
|
+
}).where({
|
|
157
|
+
[joinTable.joinColumn.name]: id
|
|
158
|
+
}).execute();
|
|
159
|
+
}
|
|
160
|
+
// fetch destinationFolder path
|
|
161
|
+
let destinationFolderPath = '/';
|
|
162
|
+
if (parent !== null) {
|
|
163
|
+
const destinationFolder = await strapi.db.queryBuilder(constants.FOLDER_MODEL_UID).select('path').where({
|
|
164
|
+
id: parent
|
|
165
|
+
}).transacting(trx.get()).first().execute();
|
|
166
|
+
destinationFolderPath = destinationFolder.path;
|
|
167
|
+
}
|
|
168
|
+
const folderTable = strapi.getModel(constants.FOLDER_MODEL_UID).collectionName;
|
|
169
|
+
const fileTable = strapi.getModel(constants.FILE_MODEL_UID).collectionName;
|
|
170
|
+
const folderPathColumnName = // @ts-expect-error - no dynamic types
|
|
171
|
+
strapi.db.metadata.get(constants.FILE_MODEL_UID).attributes.folderPath.columnName;
|
|
172
|
+
// @ts-expect-error - no dynamic types
|
|
173
|
+
const pathColumnName = strapi.db.metadata.get(constants.FOLDER_MODEL_UID).attributes.path.columnName;
|
|
174
|
+
// update folders below
|
|
175
|
+
await strapi.db.getConnection(folderTable).transacting(trx.get()).where(pathColumnName, existingFolder.path).orWhere(pathColumnName, 'like', `${existingFolder.path}/%`).update(pathColumnName, strapi.db.connection.raw('REPLACE(??, ?, ?)', [
|
|
176
|
+
pathColumnName,
|
|
177
|
+
existingFolder.path,
|
|
178
|
+
utils.strings.joinBy('/', destinationFolderPath, `${existingFolder.pathId}`)
|
|
179
|
+
]));
|
|
180
|
+
// update files below
|
|
181
|
+
await strapi.db.getConnection(fileTable).transacting(trx.get()).where(folderPathColumnName, existingFolder.path).orWhere(folderPathColumnName, 'like', `${existingFolder.path}/%`).update(folderPathColumnName, strapi.db.connection.raw('REPLACE(??, ?, ?)', [
|
|
182
|
+
folderPathColumnName,
|
|
183
|
+
existingFolder.path,
|
|
184
|
+
utils.strings.joinBy('/', destinationFolderPath, `${existingFolder.pathId}`)
|
|
185
|
+
]));
|
|
186
|
+
await trx.commit();
|
|
187
|
+
} catch (e) {
|
|
188
|
+
await trx.rollback();
|
|
189
|
+
throw e;
|
|
190
|
+
}
|
|
191
|
+
// update less critical information (name + updatedBy)
|
|
192
|
+
const newFolder = utils.setCreatorFields({
|
|
193
|
+
user,
|
|
194
|
+
isEdition: true
|
|
195
|
+
})({
|
|
196
|
+
name
|
|
197
|
+
});
|
|
198
|
+
const folder = await strapi.db.query(constants.FOLDER_MODEL_UID).update({
|
|
199
|
+
where: {
|
|
200
|
+
id
|
|
201
|
+
},
|
|
202
|
+
data: newFolder
|
|
203
|
+
});
|
|
204
|
+
strapi.eventHub.emit('media-folder.update', {
|
|
205
|
+
folder
|
|
206
|
+
});
|
|
207
|
+
return folder;
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Check if a folder exists in database
|
|
212
|
+
* @param params query params to find the folder
|
|
213
|
+
* @returns {Promise<boolean>}
|
|
214
|
+
*/ const exists = async (params = {})=>{
|
|
215
|
+
const count = await strapi.db.query(constants.FOLDER_MODEL_UID).count({
|
|
216
|
+
where: params
|
|
217
|
+
});
|
|
218
|
+
return count > 0;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Returns the nested structure of folders
|
|
222
|
+
* @returns {Promise<array>}
|
|
223
|
+
*/ const getStructure = async ()=>{
|
|
224
|
+
// @ts-expect-error - no dynamic types
|
|
225
|
+
const { joinTable } = strapi.db.metadata.get(constants.FOLDER_MODEL_UID).attributes.parent;
|
|
226
|
+
const qb = strapi.db.queryBuilder(constants.FOLDER_MODEL_UID);
|
|
227
|
+
const alias = qb.getAlias();
|
|
228
|
+
const folders = await qb.select([
|
|
229
|
+
'id',
|
|
230
|
+
'name',
|
|
231
|
+
`${alias}.${joinTable.inverseJoinColumn.name} as parent`
|
|
232
|
+
]).join({
|
|
233
|
+
alias,
|
|
234
|
+
referencedTable: joinTable.name,
|
|
235
|
+
referencedColumn: joinTable.joinColumn.name,
|
|
236
|
+
rootColumn: joinTable.joinColumn.referencedColumn,
|
|
237
|
+
rootTable: qb.alias
|
|
238
|
+
}).execute({
|
|
239
|
+
mapResults: false
|
|
240
|
+
});
|
|
241
|
+
const folderMap = {
|
|
242
|
+
null: {
|
|
243
|
+
children: []
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
folders.forEach((f)=>{
|
|
247
|
+
folderMap[f.id] = {
|
|
248
|
+
...f,
|
|
249
|
+
children: []
|
|
250
|
+
};
|
|
251
|
+
});
|
|
252
|
+
folders.forEach((f)=>{
|
|
253
|
+
const parentId = f.parent || 'null';
|
|
254
|
+
if (!folderMap[parentId]) {
|
|
255
|
+
folderMap[parentId] = {
|
|
256
|
+
children: []
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
folderMap[parentId].children.push(folderMap[f.id]);
|
|
260
|
+
folderMap[parentId].children = fp.sortBy('name', folderMap[parentId].children);
|
|
261
|
+
delete folderMap[f.id].parent;
|
|
262
|
+
});
|
|
263
|
+
return folderMap.null.children;
|
|
264
|
+
};
|
|
265
|
+
var folder = {
|
|
266
|
+
create,
|
|
267
|
+
exists,
|
|
268
|
+
deleteByIds,
|
|
269
|
+
update,
|
|
270
|
+
setPathIdAndPath,
|
|
271
|
+
getStructure
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
module.exports = folder;
|
|
275
|
+
//# sourceMappingURL=folder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folder.js","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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"}
|