@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,120 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import utils from '@strapi/utils';
|
|
3
|
+
import { getService } from '../utils/index.mjs';
|
|
4
|
+
import { FILE_MODEL_UID } from '../constants.mjs';
|
|
5
|
+
import { validateUploadBody } from './validation/content-api/upload.mjs';
|
|
6
|
+
|
|
7
|
+
const { ValidationError } = utils.errors;
|
|
8
|
+
var contentApi = (({ strapi })=>{
|
|
9
|
+
const sanitizeOutput = async (data, ctx)=>{
|
|
10
|
+
const schema = strapi.getModel(FILE_MODEL_UID);
|
|
11
|
+
const { auth } = ctx.state;
|
|
12
|
+
return strapi.contentAPI.sanitize.output(data, schema, {
|
|
13
|
+
auth
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
const validateQuery = async (data, ctx)=>{
|
|
17
|
+
const schema = strapi.getModel(FILE_MODEL_UID);
|
|
18
|
+
const { auth } = ctx.state;
|
|
19
|
+
return strapi.contentAPI.validate.query(data, schema, {
|
|
20
|
+
auth
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
const sanitizeQuery = async (data, ctx)=>{
|
|
24
|
+
const schema = strapi.getModel(FILE_MODEL_UID);
|
|
25
|
+
const { auth } = ctx.state;
|
|
26
|
+
return strapi.contentAPI.sanitize.query(data, schema, {
|
|
27
|
+
auth
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
return {
|
|
31
|
+
async find (ctx) {
|
|
32
|
+
await validateQuery(ctx.query, ctx);
|
|
33
|
+
const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
|
|
34
|
+
const files = await getService('upload').findMany(sanitizedQuery);
|
|
35
|
+
ctx.body = await sanitizeOutput(files, ctx);
|
|
36
|
+
},
|
|
37
|
+
async findOne (ctx) {
|
|
38
|
+
const { params: { id } } = ctx;
|
|
39
|
+
await validateQuery(ctx.query, ctx);
|
|
40
|
+
const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);
|
|
41
|
+
const file = await getService('upload').findOne(id, sanitizedQuery.populate);
|
|
42
|
+
if (!file) {
|
|
43
|
+
return ctx.notFound('file.notFound');
|
|
44
|
+
}
|
|
45
|
+
ctx.body = await sanitizeOutput(file, ctx);
|
|
46
|
+
},
|
|
47
|
+
async destroy (ctx) {
|
|
48
|
+
const { params: { id } } = ctx;
|
|
49
|
+
const file = await getService('upload').findOne(id);
|
|
50
|
+
if (!file) {
|
|
51
|
+
return ctx.notFound('file.notFound');
|
|
52
|
+
}
|
|
53
|
+
await getService('upload').remove(file);
|
|
54
|
+
ctx.body = await sanitizeOutput(file, ctx);
|
|
55
|
+
},
|
|
56
|
+
async updateFileInfo (ctx) {
|
|
57
|
+
const { query: { id }, request: { body } } = ctx;
|
|
58
|
+
const data = await validateUploadBody(body);
|
|
59
|
+
if (!id || typeof id !== 'string' && typeof id !== 'number') {
|
|
60
|
+
throw new ValidationError('File id is required and must be a single value');
|
|
61
|
+
}
|
|
62
|
+
const result = await getService('upload').updateFileInfo(id, data.fileInfo);
|
|
63
|
+
ctx.body = await sanitizeOutput(result, ctx);
|
|
64
|
+
},
|
|
65
|
+
async replaceFile (ctx) {
|
|
66
|
+
const { query: { id }, request: { body, files: { files } = {} } } = ctx;
|
|
67
|
+
// cannot replace with more than one file
|
|
68
|
+
if (Array.isArray(files)) {
|
|
69
|
+
throw new ValidationError('Cannot replace a file with multiple ones');
|
|
70
|
+
}
|
|
71
|
+
if (!id || typeof id !== 'string' && typeof id !== 'number') {
|
|
72
|
+
throw new ValidationError('File id is required and must be a single value');
|
|
73
|
+
}
|
|
74
|
+
const data = await validateUploadBody(body);
|
|
75
|
+
const replacedFiles = await getService('upload').replace(id, {
|
|
76
|
+
data,
|
|
77
|
+
file: files
|
|
78
|
+
});
|
|
79
|
+
ctx.body = await sanitizeOutput(replacedFiles, ctx);
|
|
80
|
+
},
|
|
81
|
+
async uploadFiles (ctx) {
|
|
82
|
+
const { request: { body, files: { files } = {} } } = ctx;
|
|
83
|
+
const data = await validateUploadBody(body, Array.isArray(files));
|
|
84
|
+
const apiUploadFolderService = getService('api-upload-folder');
|
|
85
|
+
const apiUploadFolder = await apiUploadFolderService.getAPIUploadFolder();
|
|
86
|
+
if (Array.isArray(files)) {
|
|
87
|
+
data.fileInfo = data.fileInfo || [];
|
|
88
|
+
data.fileInfo = files.map((_f, i)=>({
|
|
89
|
+
...data.fileInfo[i],
|
|
90
|
+
folder: apiUploadFolder.id
|
|
91
|
+
}));
|
|
92
|
+
} else {
|
|
93
|
+
data.fileInfo = {
|
|
94
|
+
...data.fileInfo,
|
|
95
|
+
folder: apiUploadFolder.id
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const uploadedFiles = await getService('upload').upload({
|
|
99
|
+
data,
|
|
100
|
+
files
|
|
101
|
+
});
|
|
102
|
+
ctx.body = await sanitizeOutput(uploadedFiles, ctx);
|
|
103
|
+
ctx.status = 201;
|
|
104
|
+
},
|
|
105
|
+
// TODO: split into multiple endpoints
|
|
106
|
+
async upload (ctx) {
|
|
107
|
+
const { query: { id }, request: { files: { files } = {} } } = ctx;
|
|
108
|
+
if (_.isEmpty(files) || !Array.isArray(files) && files.size === 0) {
|
|
109
|
+
if (id) {
|
|
110
|
+
return this.updateFileInfo(ctx);
|
|
111
|
+
}
|
|
112
|
+
throw new ValidationError('Files are empty');
|
|
113
|
+
}
|
|
114
|
+
await (id ? this.replaceFile : this.uploadFiles)(ctx);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export { contentApi as default };
|
|
120
|
+
//# sourceMappingURL=content-api.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-api.mjs","sources":["../../../server/src/controllers/content-api.ts"],"sourcesContent":["import _ from 'lodash';\nimport utils from '@strapi/utils';\n\nimport type { Context } from 'koa';\nimport type { Core } from '@strapi/types';\n\nimport { getService } from '../utils';\nimport { FILE_MODEL_UID } from '../constants';\nimport { validateUploadBody } from './validation/content-api/upload';\nimport { FileInfo } from '../types';\n\nconst { ValidationError } = utils.errors;\n\nexport default ({ strapi }: { strapi: Core.Strapi }) => {\n const sanitizeOutput = async (data: unknown | unknown[], ctx: Context) => {\n const schema = strapi.getModel(FILE_MODEL_UID);\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.output(data, schema, { auth });\n };\n\n const validateQuery = async (data: Record<string, unknown>, ctx: Context) => {\n const schema = strapi.getModel(FILE_MODEL_UID);\n const { auth } = ctx.state;\n\n return strapi.contentAPI.validate.query(data, schema, { auth });\n };\n\n const sanitizeQuery = async (data: Record<string, unknown>, ctx: Context) => {\n const schema = strapi.getModel(FILE_MODEL_UID);\n const { auth } = ctx.state;\n\n return strapi.contentAPI.sanitize.query(data, schema, { auth });\n };\n\n return {\n async find(ctx: Context) {\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n const files = await getService('upload').findMany(sanitizedQuery);\n\n ctx.body = await sanitizeOutput(files, ctx);\n },\n\n async findOne(ctx: Context) {\n const {\n params: { id },\n } = ctx;\n\n await validateQuery(ctx.query, ctx);\n const sanitizedQuery = await sanitizeQuery(ctx.query, ctx);\n\n const file = await getService('upload').findOne(id, sanitizedQuery.populate!);\n\n if (!file) {\n return ctx.notFound('file.notFound');\n }\n\n ctx.body = await sanitizeOutput(file, ctx);\n },\n\n async destroy(ctx: Context) {\n const {\n params: { id },\n } = ctx;\n\n const file = await getService('upload').findOne(id);\n\n if (!file) {\n return ctx.notFound('file.notFound');\n }\n\n await getService('upload').remove(file);\n\n ctx.body = await sanitizeOutput(file, ctx);\n },\n\n async updateFileInfo(ctx: Context) {\n const {\n query: { id },\n request: { body },\n } = ctx;\n const data = await validateUploadBody(body);\n\n if (!id || (typeof id !== 'string' && typeof id !== 'number')) {\n throw new ValidationError('File id is required and must be a single value');\n }\n\n const result = await getService('upload').updateFileInfo(id, data.fileInfo as any);\n\n ctx.body = await sanitizeOutput(result, ctx);\n },\n\n async replaceFile(ctx: Context) {\n const {\n query: { id },\n request: { body, files: { files } = {} },\n } = ctx;\n\n // cannot replace with more than one file\n if (Array.isArray(files)) {\n throw new ValidationError('Cannot replace a file with multiple ones');\n }\n\n if (!id || (typeof id !== 'string' && typeof id !== 'number')) {\n throw new ValidationError('File id is required and must be a single value');\n }\n\n const data = (await validateUploadBody(body)) as { fileInfo: FileInfo };\n\n const replacedFiles = await getService('upload').replace(id, { data, file: files });\n\n ctx.body = await sanitizeOutput(replacedFiles, ctx);\n },\n\n async uploadFiles(ctx: Context) {\n const {\n request: { body, files: { files } = {} },\n } = ctx;\n\n const data: any = await validateUploadBody(body, Array.isArray(files));\n\n const apiUploadFolderService = getService('api-upload-folder');\n\n const apiUploadFolder = await apiUploadFolderService.getAPIUploadFolder();\n\n if (Array.isArray(files)) {\n data.fileInfo = data.fileInfo || [];\n data.fileInfo = files.map((_f, i) => ({ ...data.fileInfo[i], folder: apiUploadFolder.id }));\n } else {\n data.fileInfo = { ...data.fileInfo, folder: apiUploadFolder.id };\n }\n\n const uploadedFiles = await getService('upload').upload({\n data,\n files,\n });\n\n ctx.body = await sanitizeOutput(uploadedFiles as any, ctx);\n ctx.status = 201;\n },\n\n // TODO: split into multiple endpoints\n async upload(ctx: Context) {\n const {\n query: { id },\n request: { files: { files } = {} },\n } = ctx;\n\n if (_.isEmpty(files) || (!Array.isArray(files) && files.size === 0)) {\n if (id) {\n return this.updateFileInfo(ctx);\n }\n\n throw new ValidationError('Files are empty');\n }\n\n await (id ? this.replaceFile : this.uploadFiles)(ctx);\n },\n };\n};\n"],"names":["ValidationError","utils","errors","strapi","sanitizeOutput","data","ctx","schema","getModel","FILE_MODEL_UID","auth","state","contentAPI","sanitize","output","validateQuery","validate","query","sanitizeQuery","find","sanitizedQuery","files","getService","findMany","body","findOne","params","id","file","populate","notFound","destroy","remove","updateFileInfo","request","validateUploadBody","result","fileInfo","replaceFile","Array","isArray","replacedFiles","replace","uploadFiles","apiUploadFolderService","apiUploadFolder","getAPIUploadFolder","map","_f","i","folder","uploadedFiles","upload","status","_","isEmpty","size"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var adminFile = require('./admin-file.js');
|
|
4
|
+
var adminFolder = require('./admin-folder.js');
|
|
5
|
+
var adminFolderFile = require('./admin-folder-file.js');
|
|
6
|
+
var adminSettings = require('./admin-settings.js');
|
|
7
|
+
var adminUpload = require('./admin-upload.js');
|
|
8
|
+
var contentApi = require('./content-api.js');
|
|
9
|
+
var viewConfiguration = require('./view-configuration.js');
|
|
10
|
+
|
|
11
|
+
const controllers = {
|
|
12
|
+
'admin-file': adminFile,
|
|
13
|
+
'admin-folder': adminFolder,
|
|
14
|
+
'admin-folder-file': adminFolderFile,
|
|
15
|
+
'admin-settings': adminSettings,
|
|
16
|
+
'admin-upload': adminUpload,
|
|
17
|
+
'content-api': contentApi,
|
|
18
|
+
'view-configuration': viewConfiguration
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.controllers = controllers;
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import adminFile from './admin-file';\nimport adminFolder from './admin-folder';\nimport adminFolderFile from './admin-folder-file';\nimport adminSettings from './admin-settings';\nimport adminUpload from './admin-upload';\nimport contentApi from './content-api';\nimport viewConfiguration from './view-configuration';\n\nexport const controllers = {\n 'admin-file': adminFile,\n 'admin-folder': adminFolder,\n 'admin-folder-file': adminFolderFile,\n 'admin-settings': adminSettings,\n 'admin-upload': adminUpload,\n 'content-api': contentApi,\n 'view-configuration': viewConfiguration,\n};\n"],"names":["controllers","adminFile","adminFolder","adminFolderFile","adminSettings","adminUpload","contentApi","viewConfiguration"],"mappings":";;;;;;;;;;MAQaA,WAAc,GAAA;IACzB,YAAcC,EAAAA,SAAAA;IACd,cAAgBC,EAAAA,WAAAA;IAChB,mBAAqBC,EAAAA,eAAAA;IACrB,gBAAkBC,EAAAA,aAAAA;IAClB,cAAgBC,EAAAA,WAAAA;IAChB,aAAeC,EAAAA,UAAAA;IACf,oBAAsBC,EAAAA;AACxB;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import adminFile from './admin-file.mjs';
|
|
2
|
+
import adminFolder from './admin-folder.mjs';
|
|
3
|
+
import adminFolderFile from './admin-folder-file.mjs';
|
|
4
|
+
import adminSettings from './admin-settings.mjs';
|
|
5
|
+
import adminUpload from './admin-upload.mjs';
|
|
6
|
+
import contentApi from './content-api.mjs';
|
|
7
|
+
import viewConfiguration from './view-configuration.mjs';
|
|
8
|
+
|
|
9
|
+
const controllers = {
|
|
10
|
+
'admin-file': adminFile,
|
|
11
|
+
'admin-folder': adminFolder,
|
|
12
|
+
'admin-folder-file': adminFolderFile,
|
|
13
|
+
'admin-settings': adminSettings,
|
|
14
|
+
'admin-upload': adminUpload,
|
|
15
|
+
'content-api': contentApi,
|
|
16
|
+
'view-configuration': viewConfiguration
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { controllers };
|
|
20
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/controllers/index.ts"],"sourcesContent":["import adminFile from './admin-file';\nimport adminFolder from './admin-folder';\nimport adminFolderFile from './admin-folder-file';\nimport adminSettings from './admin-settings';\nimport adminUpload from './admin-upload';\nimport contentApi from './content-api';\nimport viewConfiguration from './view-configuration';\n\nexport const controllers = {\n 'admin-file': adminFile,\n 'admin-folder': adminFolder,\n 'admin-folder-file': adminFolderFile,\n 'admin-settings': adminSettings,\n 'admin-upload': adminUpload,\n 'content-api': contentApi,\n 'view-configuration': viewConfiguration,\n};\n"],"names":["controllers","adminFile","adminFolder","adminFolderFile","adminSettings","adminUpload","contentApi","viewConfiguration"],"mappings":";;;;;;;;MAQaA,WAAc,GAAA;IACzB,YAAcC,EAAAA,SAAAA;IACd,cAAgBC,EAAAA,WAAAA;IAChB,mBAAqBC,EAAAA,eAAAA;IACrB,gBAAkBC,EAAAA,aAAAA;IAClB,cAAgBC,EAAAA,WAAAA;IAChB,aAAeC,EAAAA,UAAAA;IACf,oBAAsBC,EAAAA;AACxB;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _ = require('lodash');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var index = require('../../utils/index.js');
|
|
6
|
+
|
|
7
|
+
const findEntityAndCheckPermissions = async (ability, action, model, id)=>{
|
|
8
|
+
const file = await index.getService('upload').findOne(id, [
|
|
9
|
+
utils.contentTypes.constants.CREATED_BY_ATTRIBUTE,
|
|
10
|
+
'folder'
|
|
11
|
+
]);
|
|
12
|
+
if (_.isNil(file)) {
|
|
13
|
+
throw new utils.errors.NotFoundError();
|
|
14
|
+
}
|
|
15
|
+
const pm = strapi.service('admin::permission').createPermissionsManager({
|
|
16
|
+
ability,
|
|
17
|
+
action,
|
|
18
|
+
model
|
|
19
|
+
});
|
|
20
|
+
const creatorId = _.get(file, [
|
|
21
|
+
utils.contentTypes.constants.CREATED_BY_ATTRIBUTE,
|
|
22
|
+
'id'
|
|
23
|
+
]);
|
|
24
|
+
const author = creatorId ? await strapi.service('admin::user').findOne(creatorId, [
|
|
25
|
+
'roles'
|
|
26
|
+
]) : null;
|
|
27
|
+
const fileWithRoles = _.set(_.cloneDeep(file), 'createdBy', author);
|
|
28
|
+
if (pm.ability.cannot(pm.action, pm.toSubject(fileWithRoles))) {
|
|
29
|
+
throw new utils.errors.ForbiddenError();
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
pm,
|
|
33
|
+
file
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.findEntityAndCheckPermissions = findEntityAndCheckPermissions;
|
|
38
|
+
//# sourceMappingURL=find-entity-and-check-permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-entity-and-check-permissions.js","sources":["../../../../server/src/controllers/utils/find-entity-and-check-permissions.ts"],"sourcesContent":["import _ from 'lodash';\nimport { errors, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport { getService } from '../../utils';\n\nconst findEntityAndCheckPermissions = async (\n ability: unknown,\n action: string,\n model: string,\n id: string | number\n) => {\n const file = await getService('upload').findOne(id, [\n contentTypesUtils.constants.CREATED_BY_ATTRIBUTE,\n 'folder',\n ]);\n\n if (_.isNil(file)) {\n throw new errors.NotFoundError();\n }\n\n const pm = strapi\n .service('admin::permission')\n .createPermissionsManager({ ability, action, model });\n\n const creatorId = _.get(file, [contentTypesUtils.constants.CREATED_BY_ATTRIBUTE, 'id']);\n const author = creatorId\n ? await strapi.service('admin::user').findOne(creatorId, ['roles'])\n : null;\n\n const fileWithRoles = _.set(_.cloneDeep(file), 'createdBy', author);\n\n if (pm.ability.cannot(pm.action, pm.toSubject(fileWithRoles))) {\n throw new errors.ForbiddenError();\n }\n\n return { pm, file };\n};\n\nexport { findEntityAndCheckPermissions };\n"],"names":["findEntityAndCheckPermissions","ability","action","model","id","file","getService","findOne","contentTypesUtils","constants","CREATED_BY_ATTRIBUTE","_","isNil","errors","NotFoundError","pm","strapi","service","createPermissionsManager","creatorId","get","author","fileWithRoles","set","cloneDeep","cannot","toSubject","ForbiddenError"],"mappings":";;;;;;AAIA,MAAMA,6BAAgC,GAAA,OACpCC,OACAC,EAAAA,MAAAA,EACAC,KACAC,EAAAA,EAAAA,GAAAA;AAEA,IAAA,MAAMC,OAAO,MAAMC,gBAAAA,CAAW,QAAUC,CAAAA,CAAAA,OAAO,CAACH,EAAI,EAAA;QAClDI,kBAAkBC,CAAAA,SAAS,CAACC,oBAAoB;AAChD,QAAA;AACD,KAAA,CAAA;IAED,IAAIC,CAAAA,CAAEC,KAAK,CAACP,IAAO,CAAA,EAAA;QACjB,MAAM,IAAIQ,aAAOC,aAAa,EAAA;AAChC;AAEA,IAAA,MAAMC,KAAKC,MACRC,CAAAA,OAAO,CAAC,mBAAA,CAAA,CACRC,wBAAwB,CAAC;AAAEjB,QAAAA,OAAAA;AAASC,QAAAA,MAAAA;AAAQC,QAAAA;AAAM,KAAA,CAAA;AAErD,IAAA,MAAMgB,SAAYR,GAAAA,CAAAA,CAAES,GAAG,CAACf,IAAM,EAAA;QAACG,kBAAkBC,CAAAA,SAAS,CAACC,oBAAoB;AAAE,QAAA;AAAK,KAAA,CAAA;IACtF,MAAMW,MAAAA,GAASF,YACX,MAAMH,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeV,OAAO,CAACY,SAAW,EAAA;AAAC,QAAA;KAAQ,CAChE,GAAA,IAAA;IAEJ,MAAMG,aAAAA,GAAgBX,EAAEY,GAAG,CAACZ,EAAEa,SAAS,CAACnB,OAAO,WAAagB,EAAAA,MAAAA,CAAAA;IAE5D,IAAIN,EAAAA,CAAGd,OAAO,CAACwB,MAAM,CAACV,EAAGb,CAAAA,MAAM,EAAEa,EAAAA,CAAGW,SAAS,CAACJ,aAAiB,CAAA,CAAA,EAAA;QAC7D,MAAM,IAAIT,aAAOc,cAAc,EAAA;AACjC;IAEA,OAAO;AAAEZ,QAAAA,EAAAA;AAAIV,QAAAA;AAAK,KAAA;AACpB;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { contentTypes, errors } from '@strapi/utils';
|
|
3
|
+
import { getService } from '../../utils/index.mjs';
|
|
4
|
+
|
|
5
|
+
const findEntityAndCheckPermissions = async (ability, action, model, id)=>{
|
|
6
|
+
const file = await getService('upload').findOne(id, [
|
|
7
|
+
contentTypes.constants.CREATED_BY_ATTRIBUTE,
|
|
8
|
+
'folder'
|
|
9
|
+
]);
|
|
10
|
+
if (_.isNil(file)) {
|
|
11
|
+
throw new errors.NotFoundError();
|
|
12
|
+
}
|
|
13
|
+
const pm = strapi.service('admin::permission').createPermissionsManager({
|
|
14
|
+
ability,
|
|
15
|
+
action,
|
|
16
|
+
model
|
|
17
|
+
});
|
|
18
|
+
const creatorId = _.get(file, [
|
|
19
|
+
contentTypes.constants.CREATED_BY_ATTRIBUTE,
|
|
20
|
+
'id'
|
|
21
|
+
]);
|
|
22
|
+
const author = creatorId ? await strapi.service('admin::user').findOne(creatorId, [
|
|
23
|
+
'roles'
|
|
24
|
+
]) : null;
|
|
25
|
+
const fileWithRoles = _.set(_.cloneDeep(file), 'createdBy', author);
|
|
26
|
+
if (pm.ability.cannot(pm.action, pm.toSubject(fileWithRoles))) {
|
|
27
|
+
throw new errors.ForbiddenError();
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
pm,
|
|
31
|
+
file
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export { findEntityAndCheckPermissions };
|
|
36
|
+
//# sourceMappingURL=find-entity-and-check-permissions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-entity-and-check-permissions.mjs","sources":["../../../../server/src/controllers/utils/find-entity-and-check-permissions.ts"],"sourcesContent":["import _ from 'lodash';\nimport { errors, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport { getService } from '../../utils';\n\nconst findEntityAndCheckPermissions = async (\n ability: unknown,\n action: string,\n model: string,\n id: string | number\n) => {\n const file = await getService('upload').findOne(id, [\n contentTypesUtils.constants.CREATED_BY_ATTRIBUTE,\n 'folder',\n ]);\n\n if (_.isNil(file)) {\n throw new errors.NotFoundError();\n }\n\n const pm = strapi\n .service('admin::permission')\n .createPermissionsManager({ ability, action, model });\n\n const creatorId = _.get(file, [contentTypesUtils.constants.CREATED_BY_ATTRIBUTE, 'id']);\n const author = creatorId\n ? await strapi.service('admin::user').findOne(creatorId, ['roles'])\n : null;\n\n const fileWithRoles = _.set(_.cloneDeep(file), 'createdBy', author);\n\n if (pm.ability.cannot(pm.action, pm.toSubject(fileWithRoles))) {\n throw new errors.ForbiddenError();\n }\n\n return { pm, file };\n};\n\nexport { findEntityAndCheckPermissions };\n"],"names":["findEntityAndCheckPermissions","ability","action","model","id","file","getService","findOne","contentTypesUtils","constants","CREATED_BY_ATTRIBUTE","_","isNil","errors","NotFoundError","pm","strapi","service","createPermissionsManager","creatorId","get","author","fileWithRoles","set","cloneDeep","cannot","toSubject","ForbiddenError"],"mappings":";;;;AAIA,MAAMA,6BAAgC,GAAA,OACpCC,OACAC,EAAAA,MAAAA,EACAC,KACAC,EAAAA,EAAAA,GAAAA;AAEA,IAAA,MAAMC,OAAO,MAAMC,UAAAA,CAAW,QAAUC,CAAAA,CAAAA,OAAO,CAACH,EAAI,EAAA;QAClDI,YAAkBC,CAAAA,SAAS,CAACC,oBAAoB;AAChD,QAAA;AACD,KAAA,CAAA;IAED,IAAIC,CAAAA,CAAEC,KAAK,CAACP,IAAO,CAAA,EAAA;QACjB,MAAM,IAAIQ,OAAOC,aAAa,EAAA;AAChC;AAEA,IAAA,MAAMC,KAAKC,MACRC,CAAAA,OAAO,CAAC,mBAAA,CAAA,CACRC,wBAAwB,CAAC;AAAEjB,QAAAA,OAAAA;AAASC,QAAAA,MAAAA;AAAQC,QAAAA;AAAM,KAAA,CAAA;AAErD,IAAA,MAAMgB,SAAYR,GAAAA,CAAAA,CAAES,GAAG,CAACf,IAAM,EAAA;QAACG,YAAkBC,CAAAA,SAAS,CAACC,oBAAoB;AAAE,QAAA;AAAK,KAAA,CAAA;IACtF,MAAMW,MAAAA,GAASF,YACX,MAAMH,MAAAA,CAAOC,OAAO,CAAC,aAAA,CAAA,CAAeV,OAAO,CAACY,SAAW,EAAA;AAAC,QAAA;KAAQ,CAChE,GAAA,IAAA;IAEJ,MAAMG,aAAAA,GAAgBX,EAAEY,GAAG,CAACZ,EAAEa,SAAS,CAACnB,OAAO,WAAagB,EAAAA,MAAAA,CAAAA;IAE5D,IAAIN,EAAAA,CAAGd,OAAO,CAACwB,MAAM,CAACV,EAAGb,CAAAA,MAAM,EAAEa,EAAAA,CAAGW,SAAS,CAACJ,aAAiB,CAAA,CAAA,EAAA;QAC7D,MAAM,IAAIT,OAAOc,cAAc,EAAA;AACjC;IAEA,OAAO;AAAEZ,QAAAA,EAAAA;AAAIV,QAAAA;AAAK,KAAA;AACpB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folders.js","sources":["../../../../server/src/controllers/utils/folders.ts"],"sourcesContent":["import { Folder } from '../../types';\n\nconst isFolderOrChild = (folderOrChild: Folder, folder: Folder) =>\n folderOrChild.path === folder.path || folderOrChild.path.startsWith(`${folder.path}/`);\n\nexport { isFolderOrChild };\n"],"names":["isFolderOrChild","folderOrChild","folder","path","startsWith"],"mappings":";;AAEMA,MAAAA,eAAAA,GAAkB,CAACC,aAAuBC,EAAAA,MAAAA,GAC9CD,cAAcE,IAAI,KAAKD,OAAOC,IAAI,IAAIF,cAAcE,IAAI,CAACC,UAAU,CAAC,CAAC,EAAEF,MAAOC,CAAAA,IAAI,CAAC,CAAC,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folders.mjs","sources":["../../../../server/src/controllers/utils/folders.ts"],"sourcesContent":["import { Folder } from '../../types';\n\nconst isFolderOrChild = (folderOrChild: Folder, folder: Folder) =>\n folderOrChild.path === folder.path || folderOrChild.path.startsWith(`${folder.path}/`);\n\nexport { isFolderOrChild };\n"],"names":["isFolderOrChild","folderOrChild","folder","path","startsWith"],"mappings":"AAEMA,MAAAA,eAAAA,GAAkB,CAACC,aAAuBC,EAAAA,MAAAA,GAC9CD,cAAcE,IAAI,KAAKD,OAAOC,IAAI,IAAIF,cAAcE,IAAI,CAACC,UAAU,CAAC,CAAC,EAAEF,MAAOC,CAAAA,IAAI,CAAC,CAAC,CAAC;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@strapi/utils');
|
|
4
|
+
var constants = require('../../../constants.js');
|
|
5
|
+
|
|
6
|
+
const configSchema = utils.yup.object({
|
|
7
|
+
pageSize: utils.yup.number().required(),
|
|
8
|
+
sort: utils.yup.mixed().oneOf(constants.ALLOWED_SORT_STRINGS)
|
|
9
|
+
});
|
|
10
|
+
const validateViewConfiguration = utils.validateYupSchema(configSchema);
|
|
11
|
+
|
|
12
|
+
exports.validateViewConfiguration = validateViewConfiguration;
|
|
13
|
+
//# sourceMappingURL=configureView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureView.js","sources":["../../../../../server/src/controllers/validation/admin/configureView.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { ALLOWED_SORT_STRINGS } from '../../../constants';\n\nconst configSchema = yup.object({\n pageSize: yup.number().required(),\n sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS),\n});\n\nexport const validateViewConfiguration = validateYupSchema(configSchema);\n\nexport type ViewConfiguration = yup.InferType<typeof configSchema>;\n"],"names":["configSchema","yup","object","pageSize","number","required","sort","mixed","oneOf","ALLOWED_SORT_STRINGS","validateViewConfiguration","validateYupSchema"],"mappings":";;;;;AAGA,MAAMA,YAAAA,GAAeC,SAAIC,CAAAA,MAAM,CAAC;IAC9BC,QAAUF,EAAAA,SAAAA,CAAIG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC/BC,IAAAA,IAAAA,EAAML,SAAIM,CAAAA,KAAK,EAAGC,CAAAA,KAAK,CAACC,8BAAAA;AAC1B,CAAA,CAAA;AAEO,MAAMC,yBAA4BC,GAAAA,uBAAAA,CAAkBX,YAAc;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { yup, validateYupSchema } from '@strapi/utils';
|
|
2
|
+
import { ALLOWED_SORT_STRINGS } from '../../../constants.mjs';
|
|
3
|
+
|
|
4
|
+
const configSchema = yup.object({
|
|
5
|
+
pageSize: yup.number().required(),
|
|
6
|
+
sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS)
|
|
7
|
+
});
|
|
8
|
+
const validateViewConfiguration = validateYupSchema(configSchema);
|
|
9
|
+
|
|
10
|
+
export { validateViewConfiguration };
|
|
11
|
+
//# sourceMappingURL=configureView.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureView.mjs","sources":["../../../../../server/src/controllers/validation/admin/configureView.ts"],"sourcesContent":["import { yup, validateYupSchema } from '@strapi/utils';\nimport { ALLOWED_SORT_STRINGS } from '../../../constants';\n\nconst configSchema = yup.object({\n pageSize: yup.number().required(),\n sort: yup.mixed().oneOf(ALLOWED_SORT_STRINGS),\n});\n\nexport const validateViewConfiguration = validateYupSchema(configSchema);\n\nexport type ViewConfiguration = yup.InferType<typeof configSchema>;\n"],"names":["configSchema","yup","object","pageSize","number","required","sort","mixed","oneOf","ALLOWED_SORT_STRINGS","validateViewConfiguration","validateYupSchema"],"mappings":";;;AAGA,MAAMA,YAAAA,GAAeC,GAAIC,CAAAA,MAAM,CAAC;IAC9BC,QAAUF,EAAAA,GAAAA,CAAIG,MAAM,EAAA,CAAGC,QAAQ,EAAA;AAC/BC,IAAAA,IAAAA,EAAML,GAAIM,CAAAA,KAAK,EAAGC,CAAAA,KAAK,CAACC,oBAAAA;AAC1B,CAAA,CAAA;AAEO,MAAMC,yBAA4BC,GAAAA,iBAAAA,CAAkBX,YAAc;;;;"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var constants = require('../../../constants.js');
|
|
6
|
+
var utils$1 = require('./utils.js');
|
|
7
|
+
var folders = require('../../utils/folders.js');
|
|
8
|
+
|
|
9
|
+
const validateDeleteManyFoldersFilesSchema = utils.yup.object().shape({
|
|
10
|
+
fileIds: utils.yup.array().of(utils.yup.strapiID().required()),
|
|
11
|
+
folderIds: utils.yup.array().of(utils.yup.strapiID().required())
|
|
12
|
+
}).noUnknown().required();
|
|
13
|
+
const validateStructureMoveManyFoldersFilesSchema = utils.yup.object().shape({
|
|
14
|
+
destinationFolderId: utils.yup.strapiID().nullable().defined().test('folder-exists', 'destination folder does not exist', utils$1.folderExists),
|
|
15
|
+
fileIds: utils.yup.array().of(utils.yup.strapiID().required()),
|
|
16
|
+
folderIds: utils.yup.array().of(utils.yup.strapiID().required())
|
|
17
|
+
}).noUnknown().required();
|
|
18
|
+
const validateDuplicatesMoveManyFoldersFilesSchema = utils.yup.object().test('are-folders-unique', 'some folders already exist', async function areFoldersUnique(value) {
|
|
19
|
+
const { folderIds, destinationFolderId } = value;
|
|
20
|
+
if (fp.isEmpty(folderIds)) return true;
|
|
21
|
+
const folders = await strapi.db.query(constants.FOLDER_MODEL_UID).findMany({
|
|
22
|
+
select: [
|
|
23
|
+
'name'
|
|
24
|
+
],
|
|
25
|
+
where: {
|
|
26
|
+
id: {
|
|
27
|
+
$in: folderIds
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const existingFolders = await strapi.db.query(constants.FOLDER_MODEL_UID).findMany({
|
|
32
|
+
select: [
|
|
33
|
+
'name'
|
|
34
|
+
],
|
|
35
|
+
where: {
|
|
36
|
+
parent: {
|
|
37
|
+
id: destinationFolderId
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const duplicatedNames = fp.intersection(fp.map('name', folders), fp.map('name', existingFolders));
|
|
42
|
+
if (duplicatedNames.length > 0) {
|
|
43
|
+
return this.createError({
|
|
44
|
+
message: `some folders already exists: ${duplicatedNames.join(', ')}`
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
});
|
|
49
|
+
const validateMoveFoldersNotInsideThemselvesSchema = utils.yup.object().test('dont-move-inside-self', 'folders cannot be moved inside themselves or one of its children', async function validateMoveFoldersNotInsideThemselves(value) {
|
|
50
|
+
const { folderIds, destinationFolderId } = value;
|
|
51
|
+
if (destinationFolderId === null || fp.isEmpty(folderIds)) return true;
|
|
52
|
+
const destinationFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
53
|
+
select: [
|
|
54
|
+
'path'
|
|
55
|
+
],
|
|
56
|
+
where: {
|
|
57
|
+
id: destinationFolderId
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
const folders$1 = await strapi.db.query(constants.FOLDER_MODEL_UID).findMany({
|
|
61
|
+
select: [
|
|
62
|
+
'name',
|
|
63
|
+
'path'
|
|
64
|
+
],
|
|
65
|
+
where: {
|
|
66
|
+
id: {
|
|
67
|
+
$in: folderIds
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
const unmovableFoldersNames = folders$1.filter((folder)=>folders.isFolderOrChild(destinationFolder, folder)).map((f)=>f.name);
|
|
72
|
+
if (unmovableFoldersNames.length > 0) {
|
|
73
|
+
return this.createError({
|
|
74
|
+
message: `folders cannot be moved inside themselves or one of its children: ${unmovableFoldersNames.join(', ')}`
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return true;
|
|
78
|
+
});
|
|
79
|
+
const validateDeleteManyFoldersFiles = utils.validateYupSchema(validateDeleteManyFoldersFilesSchema);
|
|
80
|
+
async function validateMoveManyFoldersFiles(body) {
|
|
81
|
+
await utils.validateYupSchema(validateStructureMoveManyFoldersFilesSchema)(body);
|
|
82
|
+
await utils.validateYupSchema(validateDuplicatesMoveManyFoldersFilesSchema)(body);
|
|
83
|
+
await utils.validateYupSchema(validateMoveFoldersNotInsideThemselvesSchema)(body);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
exports.validateDeleteManyFoldersFiles = validateDeleteManyFoldersFiles;
|
|
87
|
+
exports.validateMoveManyFoldersFiles = validateMoveManyFoldersFiles;
|
|
88
|
+
//# sourceMappingURL=folder-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folder-file.js","sources":["../../../../../server/src/controllers/validation/admin/folder-file.ts"],"sourcesContent":["import { intersection, map, isEmpty } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nimport type { Folder } from '../../../types';\n\nconst validateDeleteManyFoldersFilesSchema = yup\n .object()\n .shape({\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateStructureMoveManyFoldersFilesSchema = yup\n .object()\n .shape({\n destinationFolderId: yup\n .strapiID()\n .nullable()\n .defined()\n .test('folder-exists', 'destination folder does not exist', folderExists),\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateDuplicatesMoveManyFoldersFilesSchema = yup\n .object()\n .test('are-folders-unique', 'some folders already exist', async function areFoldersUnique(value) {\n const { folderIds, destinationFolderId } = value;\n if (isEmpty(folderIds)) return true;\n\n const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { id: { $in: folderIds } },\n });\n\n const existingFolders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { parent: { id: destinationFolderId } },\n });\n\n const duplicatedNames = intersection(map('name', folders), map('name', existingFolders));\n if (duplicatedNames.length > 0) {\n return this.createError({\n message: `some folders already exists: ${duplicatedNames.join(', ')}`,\n });\n }\n\n return true;\n });\n\nconst validateMoveFoldersNotInsideThemselvesSchema = yup\n .object()\n .test(\n 'dont-move-inside-self',\n 'folders cannot be moved inside themselves or one of its children',\n async function validateMoveFoldersNotInsideThemselves(value) {\n const { folderIds, destinationFolderId } = value;\n if (destinationFolderId === null || isEmpty(folderIds)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: destinationFolderId },\n });\n\n const folders: Folder[] = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name', 'path'],\n where: { id: { $in: folderIds } },\n });\n\n const unmovableFoldersNames = folders\n .filter((folder) => isFolderOrChild(destinationFolder, folder))\n .map((f) => f.name);\n\n if (unmovableFoldersNames.length > 0) {\n return this.createError({\n message: `folders cannot be moved inside themselves or one of its children: ${unmovableFoldersNames.join(\n ', '\n )}`,\n });\n }\n\n return true;\n }\n );\n\nexport const validateDeleteManyFoldersFiles = validateYupSchema(\n validateDeleteManyFoldersFilesSchema\n);\n\nexport async function validateMoveManyFoldersFiles(body: unknown) {\n await validateYupSchema(validateStructureMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateDuplicatesMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateMoveFoldersNotInsideThemselvesSchema)(body);\n}\n"],"names":["validateDeleteManyFoldersFilesSchema","yup","object","shape","fileIds","array","of","strapiID","required","folderIds","noUnknown","validateStructureMoveManyFoldersFilesSchema","destinationFolderId","nullable","defined","test","folderExists","validateDuplicatesMoveManyFoldersFilesSchema","areFoldersUnique","value","isEmpty","folders","strapi","db","query","FOLDER_MODEL_UID","findMany","select","where","id","$in","existingFolders","parent","duplicatedNames","intersection","map","length","createError","message","join","validateMoveFoldersNotInsideThemselvesSchema","validateMoveFoldersNotInsideThemselves","destinationFolder","findOne","unmovableFoldersNames","filter","folder","isFolderOrChild","f","name","validateDeleteManyFoldersFiles","validateYupSchema","validateMoveManyFoldersFiles","body"],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { isEmpty, intersection, map } from 'lodash/fp';
|
|
2
|
+
import { yup, validateYupSchema } from '@strapi/utils';
|
|
3
|
+
import { FOLDER_MODEL_UID } from '../../../constants.mjs';
|
|
4
|
+
import { folderExists } from './utils.mjs';
|
|
5
|
+
import { isFolderOrChild } from '../../utils/folders.mjs';
|
|
6
|
+
|
|
7
|
+
const validateDeleteManyFoldersFilesSchema = yup.object().shape({
|
|
8
|
+
fileIds: yup.array().of(yup.strapiID().required()),
|
|
9
|
+
folderIds: yup.array().of(yup.strapiID().required())
|
|
10
|
+
}).noUnknown().required();
|
|
11
|
+
const validateStructureMoveManyFoldersFilesSchema = yup.object().shape({
|
|
12
|
+
destinationFolderId: yup.strapiID().nullable().defined().test('folder-exists', 'destination folder does not exist', folderExists),
|
|
13
|
+
fileIds: yup.array().of(yup.strapiID().required()),
|
|
14
|
+
folderIds: yup.array().of(yup.strapiID().required())
|
|
15
|
+
}).noUnknown().required();
|
|
16
|
+
const validateDuplicatesMoveManyFoldersFilesSchema = yup.object().test('are-folders-unique', 'some folders already exist', async function areFoldersUnique(value) {
|
|
17
|
+
const { folderIds, destinationFolderId } = value;
|
|
18
|
+
if (isEmpty(folderIds)) return true;
|
|
19
|
+
const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({
|
|
20
|
+
select: [
|
|
21
|
+
'name'
|
|
22
|
+
],
|
|
23
|
+
where: {
|
|
24
|
+
id: {
|
|
25
|
+
$in: folderIds
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const existingFolders = await strapi.db.query(FOLDER_MODEL_UID).findMany({
|
|
30
|
+
select: [
|
|
31
|
+
'name'
|
|
32
|
+
],
|
|
33
|
+
where: {
|
|
34
|
+
parent: {
|
|
35
|
+
id: destinationFolderId
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const duplicatedNames = intersection(map('name', folders), map('name', existingFolders));
|
|
40
|
+
if (duplicatedNames.length > 0) {
|
|
41
|
+
return this.createError({
|
|
42
|
+
message: `some folders already exists: ${duplicatedNames.join(', ')}`
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
});
|
|
47
|
+
const validateMoveFoldersNotInsideThemselvesSchema = yup.object().test('dont-move-inside-self', 'folders cannot be moved inside themselves or one of its children', async function validateMoveFoldersNotInsideThemselves(value) {
|
|
48
|
+
const { folderIds, destinationFolderId } = value;
|
|
49
|
+
if (destinationFolderId === null || isEmpty(folderIds)) return true;
|
|
50
|
+
const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({
|
|
51
|
+
select: [
|
|
52
|
+
'path'
|
|
53
|
+
],
|
|
54
|
+
where: {
|
|
55
|
+
id: destinationFolderId
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({
|
|
59
|
+
select: [
|
|
60
|
+
'name',
|
|
61
|
+
'path'
|
|
62
|
+
],
|
|
63
|
+
where: {
|
|
64
|
+
id: {
|
|
65
|
+
$in: folderIds
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const unmovableFoldersNames = folders.filter((folder)=>isFolderOrChild(destinationFolder, folder)).map((f)=>f.name);
|
|
70
|
+
if (unmovableFoldersNames.length > 0) {
|
|
71
|
+
return this.createError({
|
|
72
|
+
message: `folders cannot be moved inside themselves or one of its children: ${unmovableFoldersNames.join(', ')}`
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
});
|
|
77
|
+
const validateDeleteManyFoldersFiles = validateYupSchema(validateDeleteManyFoldersFilesSchema);
|
|
78
|
+
async function validateMoveManyFoldersFiles(body) {
|
|
79
|
+
await validateYupSchema(validateStructureMoveManyFoldersFilesSchema)(body);
|
|
80
|
+
await validateYupSchema(validateDuplicatesMoveManyFoldersFilesSchema)(body);
|
|
81
|
+
await validateYupSchema(validateMoveFoldersNotInsideThemselvesSchema)(body);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { validateDeleteManyFoldersFiles, validateMoveManyFoldersFiles };
|
|
85
|
+
//# sourceMappingURL=folder-file.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folder-file.mjs","sources":["../../../../../server/src/controllers/validation/admin/folder-file.ts"],"sourcesContent":["import { intersection, map, isEmpty } from 'lodash/fp';\nimport { yup, validateYupSchema } from '@strapi/utils';\nimport { FOLDER_MODEL_UID } from '../../../constants';\nimport { folderExists } from './utils';\nimport { isFolderOrChild } from '../../utils/folders';\n\nimport type { Folder } from '../../../types';\n\nconst validateDeleteManyFoldersFilesSchema = yup\n .object()\n .shape({\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateStructureMoveManyFoldersFilesSchema = yup\n .object()\n .shape({\n destinationFolderId: yup\n .strapiID()\n .nullable()\n .defined()\n .test('folder-exists', 'destination folder does not exist', folderExists),\n fileIds: yup.array().of(yup.strapiID().required()),\n folderIds: yup.array().of(yup.strapiID().required()),\n })\n .noUnknown()\n .required();\n\nconst validateDuplicatesMoveManyFoldersFilesSchema = yup\n .object()\n .test('are-folders-unique', 'some folders already exist', async function areFoldersUnique(value) {\n const { folderIds, destinationFolderId } = value;\n if (isEmpty(folderIds)) return true;\n\n const folders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { id: { $in: folderIds } },\n });\n\n const existingFolders = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name'],\n where: { parent: { id: destinationFolderId } },\n });\n\n const duplicatedNames = intersection(map('name', folders), map('name', existingFolders));\n if (duplicatedNames.length > 0) {\n return this.createError({\n message: `some folders already exists: ${duplicatedNames.join(', ')}`,\n });\n }\n\n return true;\n });\n\nconst validateMoveFoldersNotInsideThemselvesSchema = yup\n .object()\n .test(\n 'dont-move-inside-self',\n 'folders cannot be moved inside themselves or one of its children',\n async function validateMoveFoldersNotInsideThemselves(value) {\n const { folderIds, destinationFolderId } = value;\n if (destinationFolderId === null || isEmpty(folderIds)) return true;\n\n const destinationFolder = await strapi.db.query(FOLDER_MODEL_UID).findOne({\n select: ['path'],\n where: { id: destinationFolderId },\n });\n\n const folders: Folder[] = await strapi.db.query(FOLDER_MODEL_UID).findMany({\n select: ['name', 'path'],\n where: { id: { $in: folderIds } },\n });\n\n const unmovableFoldersNames = folders\n .filter((folder) => isFolderOrChild(destinationFolder, folder))\n .map((f) => f.name);\n\n if (unmovableFoldersNames.length > 0) {\n return this.createError({\n message: `folders cannot be moved inside themselves or one of its children: ${unmovableFoldersNames.join(\n ', '\n )}`,\n });\n }\n\n return true;\n }\n );\n\nexport const validateDeleteManyFoldersFiles = validateYupSchema(\n validateDeleteManyFoldersFilesSchema\n);\n\nexport async function validateMoveManyFoldersFiles(body: unknown) {\n await validateYupSchema(validateStructureMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateDuplicatesMoveManyFoldersFilesSchema)(body);\n await validateYupSchema(validateMoveFoldersNotInsideThemselvesSchema)(body);\n}\n"],"names":["validateDeleteManyFoldersFilesSchema","yup","object","shape","fileIds","array","of","strapiID","required","folderIds","noUnknown","validateStructureMoveManyFoldersFilesSchema","destinationFolderId","nullable","defined","test","folderExists","validateDuplicatesMoveManyFoldersFilesSchema","areFoldersUnique","value","isEmpty","folders","strapi","db","query","FOLDER_MODEL_UID","findMany","select","where","id","$in","existingFolders","parent","duplicatedNames","intersection","map","length","createError","message","join","validateMoveFoldersNotInsideThemselvesSchema","validateMoveFoldersNotInsideThemselves","destinationFolder","findOne","unmovableFoldersNames","filter","folder","isFolderOrChild","f","name","validateDeleteManyFoldersFiles","validateYupSchema","validateMoveManyFoldersFiles","body"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fp = require('lodash/fp');
|
|
4
|
+
var utils = require('@strapi/utils');
|
|
5
|
+
var index = require('../../../utils/index.js');
|
|
6
|
+
var constants = require('../../../constants.js');
|
|
7
|
+
var utils$1 = require('./utils.js');
|
|
8
|
+
var folders = require('../../utils/folders.js');
|
|
9
|
+
|
|
10
|
+
const NO_SLASH_REGEX = /^[^/]+$/;
|
|
11
|
+
const NO_SPACES_AROUND = RegExp("^(?! ).+(?<! )$");
|
|
12
|
+
const isNameUniqueInFolder = (id)=>{
|
|
13
|
+
return async function test(name) {
|
|
14
|
+
const { exists } = index.getService('folder');
|
|
15
|
+
const filters = {
|
|
16
|
+
name,
|
|
17
|
+
parent: this.parent.parent || null
|
|
18
|
+
};
|
|
19
|
+
if (id) {
|
|
20
|
+
filters.id = {
|
|
21
|
+
$ne: id
|
|
22
|
+
};
|
|
23
|
+
if (fp.isUndefined(name)) {
|
|
24
|
+
const existingFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
25
|
+
where: {
|
|
26
|
+
id
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
filters.name = fp.get('name', existingFolder);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const doesExist = await exists(filters);
|
|
33
|
+
return !doesExist;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const validateCreateFolderSchema = utils.yup.object().shape({
|
|
37
|
+
name: utils.yup.string().min(1).matches(NO_SLASH_REGEX, 'name cannot contain slashes').matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace').required().test('is-folder-unique', 'A folder with this name already exists', isNameUniqueInFolder()),
|
|
38
|
+
parent: utils.yup.strapiID().nullable().test('folder-exists', 'parent folder does not exist', utils$1.folderExists)
|
|
39
|
+
}).noUnknown().required();
|
|
40
|
+
const validateUpdateFolderSchema = (id)=>utils.yup.object().shape({
|
|
41
|
+
name: utils.yup.string().min(1).matches(NO_SLASH_REGEX, 'name cannot contain slashes').matches(NO_SPACES_AROUND, 'name cannot start or end with a whitespace').test('is-folder-unique', 'A folder with this name already exists', isNameUniqueInFolder(id)),
|
|
42
|
+
parent: utils.yup.strapiID().nullable().test('folder-exists', 'parent folder does not exist', utils$1.folderExists).test('dont-move-inside-self', 'folder cannot be moved inside itself', async function test(parent) {
|
|
43
|
+
if (fp.isNil(parent)) return true;
|
|
44
|
+
const destinationFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
45
|
+
select: [
|
|
46
|
+
'path'
|
|
47
|
+
],
|
|
48
|
+
where: {
|
|
49
|
+
id: parent
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const currentFolder = await strapi.db.query(constants.FOLDER_MODEL_UID).findOne({
|
|
53
|
+
select: [
|
|
54
|
+
'path'
|
|
55
|
+
],
|
|
56
|
+
where: {
|
|
57
|
+
id
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
if (!destinationFolder || !currentFolder) return true;
|
|
61
|
+
return !folders.isFolderOrChild(destinationFolder, currentFolder);
|
|
62
|
+
})
|
|
63
|
+
}).noUnknown().required();
|
|
64
|
+
const validateCreateFolder = utils.validateYupSchema(validateCreateFolderSchema);
|
|
65
|
+
const validateUpdateFolder = (id)=>utils.validateYupSchema(validateUpdateFolderSchema(id));
|
|
66
|
+
|
|
67
|
+
exports.validateCreateFolder = validateCreateFolder;
|
|
68
|
+
exports.validateUpdateFolder = validateUpdateFolder;
|
|
69
|
+
//# sourceMappingURL=folder.js.map
|