@webiny/api-file-manager 6.4.12-beta.4 → 6.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{contants.js → constants.js} +1 -1
- package/constants.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +2 -1
- package/delivery/AssetDelivery/Asset.js +4 -1
- package/delivery/AssetDelivery/Asset.js.map +1 -1
- package/delivery/AssetDelivery/AssetRequest.d.ts +4 -3
- package/delivery/AssetDelivery/AssetRequest.js +3 -0
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -1
- package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +2 -1
- package/delivery/AssetDelivery/abstractions/AssetReply.js +5 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -1
- package/delivery/index.d.ts +3 -3
- package/delivery/index.js +0 -2
- package/delivery/setupAssetDelivery.js +4 -1
- package/delivery/setupAssetDelivery.js.map +1 -1
- package/domain/file/file.model.js +5 -1
- package/domain/file/file.model.js.map +1 -1
- package/domain/settings/validation.js +1 -1
- package/domain/settings/validation.js.map +1 -1
- package/exports/api/file-manager/assetDelivery.d.ts +18 -0
- package/exports/api/file-manager/assetDelivery.js +15 -0
- package/exports/api/file-manager/file.d.ts +1 -0
- package/exports/api/file-manager/file.js +1 -0
- package/features/FileManagerFeature.js +12 -0
- package/features/FileManagerFeature.js.map +1 -1
- package/features/assetDelivery/Asset/Asset.d.ts +8 -0
- package/features/assetDelivery/Asset/Asset.js +14 -0
- package/features/assetDelivery/Asset/Asset.js.map +1 -0
- package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
- package/features/assetDelivery/Asset/abstractions.js +5 -0
- package/features/assetDelivery/Asset/abstractions.js.map +1 -0
- package/features/assetDelivery/Asset/index.d.ts +1 -0
- package/features/assetDelivery/Asset/index.js +1 -0
- package/features/assetDelivery/AssetRequest/AssetRequest.d.ts +8 -0
- package/features/assetDelivery/AssetRequest/AssetRequest.js +14 -0
- package/features/assetDelivery/AssetRequest/AssetRequest.js.map +1 -0
- package/features/assetDelivery/AssetRequest/abstractions.d.ts +11 -0
- package/features/assetDelivery/AssetRequest/abstractions.js +5 -0
- package/features/assetDelivery/AssetRequest/abstractions.js.map +1 -0
- package/features/assetDelivery/AssetRequest/index.d.ts +1 -0
- package/features/assetDelivery/AssetRequest/index.js +1 -0
- package/features/assetDelivery/FilesAssetRequestResolver.d.ts +9 -7
- package/features/assetDelivery/FilesAssetRequestResolver.js +19 -15
- package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
- package/features/assetDelivery/NullAssetOutputStrategy.d.ts +6 -6
- package/features/assetDelivery/NullAssetOutputStrategy.js +6 -6
- package/features/assetDelivery/NullAssetOutputStrategy.js.map +1 -1
- package/features/assetDelivery/NullAssetReply.d.ts +2 -1
- package/features/assetDelivery/NullAssetReply.js +3 -0
- package/features/assetDelivery/NullAssetReply.js.map +1 -1
- package/features/assetDelivery/NullAssetResolver.d.ts +6 -6
- package/features/assetDelivery/NullAssetResolver.js +5 -5
- package/features/assetDelivery/NullAssetResolver.js.map +1 -1
- package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
- package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
- package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
- package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
- package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
- package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
- package/features/assetDelivery/ObjectKey/index.js +1 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
- package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
- package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
- package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
- package/features/assetDelivery/StreamAssetReply/index.js +1 -0
- package/features/assetDelivery/abstractions/AssetAuthorizer.d.ts +9 -0
- package/features/assetDelivery/abstractions/AssetAuthorizer.js +5 -0
- package/features/assetDelivery/abstractions/AssetAuthorizer.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetContentsReader.d.ts +9 -0
- package/features/assetDelivery/abstractions/AssetContentsReader.js +5 -0
- package/features/assetDelivery/abstractions/AssetContentsReader.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetOutputStrategy.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetOutputStrategy.js +5 -0
- package/features/assetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetProcessor.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetProcessor.js +5 -0
- package/features/assetDelivery/abstractions/AssetProcessor.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetRequestResolver.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetRequestResolver.js +5 -0
- package/features/assetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetResolver.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetResolver.js +5 -0
- package/features/assetDelivery/abstractions/AssetResolver.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetTransformationStrategy.d.ts +11 -0
- package/features/assetDelivery/abstractions/AssetTransformationStrategy.js +5 -0
- package/features/assetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
- package/features/assetDelivery/abstractions/AssetType.d.ts +17 -0
- package/features/assetDelivery/abstractions/AssetType.js +5 -0
- package/features/assetDelivery/abstractions/AssetType.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.d.ts +12 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js +30 -0
- package/features/assetDelivery/assetTypes/image/AssetKeyGenerator.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.d.ts +9 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js +18 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetType.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js +5 -0
- package/features/assetDelivery/assetTypes/image/ImageAssetTypeHandler.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.d.ts +8 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js +22 -0
- package/features/assetDelivery/assetTypes/image/WidthCollection.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js +51 -0
- package/features/assetDelivery/assetTypes/image/imageFormat.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.d.ts +39 -0
- package/features/assetDelivery/assetTypes/image/imageTypes.js +0 -0
- package/features/assetDelivery/assetTypes/image/index.d.ts +5 -0
- package/features/assetDelivery/assetTypes/image/index.js +4 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.d.ts +6 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js +56 -0
- package/features/assetDelivery/assetTypes/image/normalizeImageOptions.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/transformImage.d.ts +59 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js +146 -0
- package/features/assetDelivery/assetTypes/image/transformImage.js.map +1 -0
- package/features/assetDelivery/assetTypes/image/utils.d.ts +26 -0
- package/features/assetDelivery/assetTypes/image/utils.js +47 -0
- package/features/assetDelivery/assetTypes/image/utils.js.map +1 -0
- package/features/assetDelivery/feature.js +25 -16
- package/features/assetDelivery/feature.js.map +1 -1
- package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +2 -2
- package/features/assetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +3 -3
- package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +1 -1
- package/features/assetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateCache.d.ts +3 -3
- package/features/assetDelivery/privateFiles/PrivateCache.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +9 -8
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +15 -12
- package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +8 -8
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js +8 -7
- package/features/assetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -1
- package/features/assetDelivery/privateFiles/PublicCache.d.ts +3 -3
- package/features/assetDelivery/privateFiles/PublicCache.js.map +1 -1
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +5 -4
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +4 -1
- package/features/assetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -1
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +5 -4
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +4 -1
- package/features/assetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -1
- package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
- package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
- package/features/assetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -10
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js +13 -11
- package/features/assetDelivery/transformation/TransformationAssetProcessor.js.map +1 -1
- package/features/assetDelivery/transformation/index.d.ts +5 -0
- package/features/assetDelivery/transformation/index.js +4 -0
- package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
- package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
- package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
- package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
- package/features/extractMetadata/ExtractMetadataInput.js +0 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +15 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js +33 -0
- package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
- package/features/file/FileUrlGenerator/abstractions.d.ts +3 -4
- package/features/file/FileUrlGenerator/abstractions.js +1 -1
- package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
- package/features/file/FileUrlGenerator/feature.d.ts +4 -0
- package/features/file/FileUrlGenerator/feature.js +11 -0
- package/features/file/FileUrlGenerator/feature.js.map +1 -0
- package/features/file/FileUrlGenerator/index.d.ts +1 -0
- package/features/file/FileUrlGenerator/index.js +1 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
- package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
- package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
- package/features/file/GetFileByUrl/abstractions.js +5 -0
- package/features/file/GetFileByUrl/abstractions.js.map +1 -0
- package/features/file/GetFileByUrl/feature.d.ts +4 -0
- package/features/file/GetFileByUrl/feature.js +11 -0
- package/features/file/GetFileByUrl/feature.js.map +1 -0
- package/features/file/GetFileByUrl/index.d.ts +1 -0
- package/features/file/GetFileByUrl/index.js +1 -0
- package/features/settings/SettingsInstaller/SettingsInstaller.js +1 -1
- package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
- package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CompleteMultiPartUpload/index.js +1 -0
- package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
- package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
- package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
- package/features/upload/CreateMultiPartUpload/index.js +1 -0
- package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
- package/features/upload/GetUploadPayload/abstractions.js +5 -0
- package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
- package/features/upload/GetUploadPayload/index.d.ts +1 -0
- package/features/upload/GetUploadPayload/index.js +1 -0
- package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
- package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
- package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
- package/features/upload/ReadFileMetadata/abstractions.js +5 -0
- package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
- package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
- package/features/upload/ReadFileMetadata/feature.js +11 -0
- package/features/upload/ReadFileMetadata/feature.js.map +1 -0
- package/features/upload/ReadFileMetadata/index.d.ts +1 -0
- package/features/upload/ReadFileMetadata/index.js +1 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
- package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.d.ts +11 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js +22 -0
- package/features/upload/WriteFileMetadata/WriteMetadataAfterUpdateHandler.js.map +1 -0
- package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
- package/features/upload/WriteFileMetadata/abstractions.js +5 -0
- package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
- package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
- package/features/upload/WriteFileMetadata/feature.js +17 -0
- package/features/upload/WriteFileMetadata/feature.js.map +1 -0
- package/features/upload/index.d.ts +17 -0
- package/features/upload/index.js +10 -0
- package/features/upload/types.d.ts +28 -0
- package/features/upload/types.js +0 -0
- package/features/upload/utils/FileExtension.d.ts +6 -0
- package/features/upload/utils/FileExtension.js +16 -0
- package/features/upload/utils/FileExtension.js.map +1 -0
- package/features/upload/utils/FileKey.d.ts +11 -0
- package/features/upload/utils/FileKey.js +33 -0
- package/features/upload/utils/FileKey.js.map +1 -0
- package/features/upload/utils/FileNormalizer.d.ts +13 -0
- package/features/upload/utils/FileNormalizer.js +41 -0
- package/features/upload/utils/FileNormalizer.js.map +1 -0
- package/features/upload/utils/FileUploadModifier.d.ts +30 -0
- package/features/upload/utils/FileUploadModifier.js +39 -0
- package/features/upload/utils/FileUploadModifier.js.map +1 -0
- package/features/upload/utils/checkPermissions.d.ts +5 -0
- package/features/upload/utils/checkPermissions.js +22 -0
- package/features/upload/utils/checkPermissions.js.map +1 -0
- package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
- package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
- package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
- package/features/upload/utils/mimeTypes.d.ts +1 -0
- package/features/upload/utils/mimeTypes.js +9 -0
- package/features/upload/utils/mimeTypes.js.map +1 -0
- package/graphql/FmGraphQLSchema.d.ts +25 -0
- package/graphql/FmGraphQLSchema.js +451 -0
- package/graphql/FmGraphQLSchema.js.map +1 -0
- package/graphql/FmUploadGraphQLSchema.d.ts +11 -0
- package/graphql/FmUploadGraphQLSchema.js +231 -0
- package/graphql/FmUploadGraphQLSchema.js.map +1 -0
- package/index.d.ts +0 -3
- package/index.js +16 -17
- package/index.js.map +1 -1
- package/package.json +24 -18
- package/contants.js.map +0 -1
- package/features/assetDelivery/abstractions.d.ts +0 -54
- package/features/assetDelivery/abstractions.js +0 -11
- package/features/assetDelivery/abstractions.js.map +0 -1
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +0 -9
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js +0 -13
- package/features/assetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +0 -1
- package/graphql/baseSchema.d.ts +0 -3
- package/graphql/baseSchema.js +0 -100
- package/graphql/baseSchema.js.map +0 -1
- package/graphql/createFilesTypeDefs.d.ts +0 -8
- package/graphql/createFilesTypeDefs.js +0 -191
- package/graphql/createFilesTypeDefs.js.map +0 -1
- package/graphql/filesSchema.d.ts +0 -4
- package/graphql/filesSchema.js +0 -97
- package/graphql/filesSchema.js.map +0 -1
- package/graphql/getFileByUrl.d.ts +0 -3
- package/graphql/getFileByUrl.js +0 -64
- package/graphql/getFileByUrl.js.map +0 -1
- package/graphql/index.d.ts +0 -4
- package/graphql/index.js +0 -48
- package/graphql/index.js.map +0 -1
- package/graphql/utils.d.ts +0 -11
- package/graphql/utils.js +0 -12
- package/graphql/utils.js.map +0 -1
- package/modelModifier/CmsModelModifier.d.ts +0 -26
- package/modelModifier/CmsModelModifier.js +0 -51
- package/modelModifier/CmsModelModifier.js.map +0 -1
- /package/{contants.d.ts → constants.d.ts} +0 -0
package/constants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const ROOT_FOLDER = \"root\";\n"],"names":["ROOT_FOLDER"],"mappings":"AAAO,MAAMA,cAAc"}
|
|
@@ -11,7 +11,8 @@ export declare class Asset {
|
|
|
11
11
|
protected readonly props: AssetData;
|
|
12
12
|
private outputStrategy;
|
|
13
13
|
private contentsReader;
|
|
14
|
-
|
|
14
|
+
static create(props: AssetData): Asset;
|
|
15
|
+
private constructor();
|
|
15
16
|
clone(): Asset;
|
|
16
17
|
withProps(props: Partial<AssetData>): Asset;
|
|
17
18
|
getId(): string;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
class Asset {
|
|
2
|
+
static create(props) {
|
|
3
|
+
return new Asset(props);
|
|
4
|
+
}
|
|
2
5
|
constructor(props){
|
|
3
6
|
this.props = props;
|
|
4
7
|
}
|
|
@@ -6,7 +9,7 @@ class Asset {
|
|
|
6
9
|
return this.withProps(structuredClone(this.props));
|
|
7
10
|
}
|
|
8
11
|
withProps(props) {
|
|
9
|
-
const newAsset =
|
|
12
|
+
const newAsset = Asset.create({
|
|
10
13
|
...this.props,
|
|
11
14
|
...props
|
|
12
15
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery/AssetDelivery/Asset.js","sources":["../../../src/delivery/AssetDelivery/Asset.ts"],"sourcesContent":["import type { AssetContentsReader, AssetOutputStrategy } from \"~/delivery/index.js\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n key: string;\n size: number;\n contentType: string;\n}\
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/Asset.js","sources":["../../../src/delivery/AssetDelivery/Asset.ts"],"sourcesContent":["import type { AssetContentsReader, AssetOutputStrategy } from \"~/delivery/index.js\";\n\ntype Setter<T> = (arg: T | undefined) => T;\n\nexport interface AssetData {\n id: string;\n tenant: string;\n key: string;\n size: number;\n contentType: string;\n}\nexport class Asset {\n protected readonly props: AssetData;\n private outputStrategy: AssetOutputStrategy | undefined;\n private contentsReader: AssetContentsReader | undefined;\n\n public static create(props: AssetData) {\n return new Asset(props);\n }\n\n private constructor(props: AssetData) {\n this.props = props;\n }\n\n public clone() {\n return this.withProps(structuredClone(this.props));\n }\n\n public withProps(props: Partial<AssetData>) {\n const newAsset = Asset.create({ ...this.props, ...props });\n newAsset.contentsReader = this.contentsReader;\n newAsset.outputStrategy = this.outputStrategy;\n return newAsset;\n }\n\n public getId() {\n return this.props.id;\n }\n\n public getTenant() {\n return this.props.tenant;\n }\n\n public getKey() {\n return this.props.key;\n }\n\n public getSize() {\n return this.props.size;\n }\n\n public getContentType() {\n return this.props.contentType;\n }\n\n public getExtension() {\n return this.getKey().split(\".\").pop() ?? \"\";\n }\n\n public getContents() {\n if (!this.contentsReader) {\n throw Error(`Asset contents reader was not configured!`);\n }\n return this.contentsReader.read(this);\n }\n\n public setContentsReader(reader: AssetContentsReader) {\n this.contentsReader = reader;\n }\n\n public output() {\n if (!this.outputStrategy) {\n throw Error(`Asset output strategy was not configured!`);\n }\n\n return this.outputStrategy.output(this);\n }\n\n public setOutputStrategy(setter: Setter<AssetOutputStrategy> | AssetOutputStrategy) {\n if (typeof setter === \"function\") {\n this.outputStrategy = setter(this.outputStrategy);\n } else {\n this.outputStrategy = setter;\n }\n }\n}\n"],"names":["Asset","props","structuredClone","newAsset","Error","reader","setter"],"mappings":"AAWO,MAAMA;IAKT,OAAc,OAAOC,KAAgB,EAAE;QACnC,OAAO,IAAID,MAAMC;IACrB;IAEA,YAAoBA,KAAgB,CAAE;QAClC,IAAI,CAAC,KAAK,GAAGA;IACjB;IAEO,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAACC,gBAAgB,IAAI,CAAC,KAAK;IACpD;IAEO,UAAUD,KAAyB,EAAE;QACxC,MAAME,WAAWH,MAAM,MAAM,CAAC;YAAE,GAAG,IAAI,CAAC,KAAK;YAAE,GAAGC,KAAK;QAAC;QACxDE,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7CA,SAAS,cAAc,GAAG,IAAI,CAAC,cAAc;QAC7C,OAAOA;IACX;IAEO,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;IACxB;IAEO,YAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;IAC5B;IAEO,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG;IACzB;IAEO,UAAU;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B;IAEO,iBAAiB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;IACjC;IAEO,eAAe;QAClB,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM;IAC7C;IAEO,cAAc;QACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMC,MAAM;QAEhB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;IACxC;IAEO,kBAAkBC,MAA2B,EAAE;QAClD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEO,SAAS;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,EACpB,MAAMD,MAAM;QAGhB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI;IAC1C;IAEO,kBAAkBE,MAAyD,EAAE;QAChF,IAAI,AAAkB,cAAlB,OAAOA,QACP,IAAI,CAAC,cAAc,GAAGA,OAAO,IAAI,CAAC,cAAc;aAEhD,IAAI,CAAC,cAAc,GAAGA;IAE9B;AACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { GenericRecord } from "@webiny/api/types.js";
|
|
2
2
|
export interface AssetRequestOptions {
|
|
3
3
|
original?: boolean;
|
|
4
|
-
|
|
4
|
+
[key: string]: unknown;
|
|
5
5
|
}
|
|
6
6
|
export type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {
|
|
7
7
|
/**
|
|
@@ -15,8 +15,9 @@ export interface AssetRequestData<TOptions> {
|
|
|
15
15
|
options: TOptions;
|
|
16
16
|
}
|
|
17
17
|
export declare class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {
|
|
18
|
-
private data;
|
|
19
|
-
|
|
18
|
+
private readonly data;
|
|
19
|
+
static create<TOptions extends AssetRequestOptions = AssetRequestOptions>(data: AssetRequestData<TOptions>): AssetRequest<TOptions>;
|
|
20
|
+
private constructor();
|
|
20
21
|
getKey(): string;
|
|
21
22
|
getOptions(): TOptions;
|
|
22
23
|
setOptions(options: TOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery/AssetDelivery/AssetRequest.js","sources":["../../../src/delivery/AssetDelivery/AssetRequest.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/AssetRequest.js","sources":["../../../src/delivery/AssetDelivery/AssetRequest.ts"],"sourcesContent":["import type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface AssetRequestOptions {\n original?: boolean;\n [key: string]: unknown;\n}\n\nexport type AssetRequestContext<T extends GenericRecord = GenericRecord> = T & {\n /**\n * Asset request URL.\n */\n url: string;\n};\n\nexport interface AssetRequestData<TOptions> {\n key: string;\n context: AssetRequestContext;\n options: TOptions;\n}\nexport class AssetRequest<TOptions extends AssetRequestOptions = AssetRequestOptions> {\n private readonly data: AssetRequestData<TOptions>;\n\n public static create<TOptions extends AssetRequestOptions = AssetRequestOptions>(\n data: AssetRequestData<TOptions>\n ) {\n return new AssetRequest(data);\n }\n\n private constructor(data: AssetRequestData<TOptions>) {\n this.data = data;\n }\n\n public getKey() {\n return this.data.key;\n }\n\n public getOptions(): TOptions {\n return this.data.options;\n }\n\n public setOptions(options: TOptions) {\n this.data.options = options;\n }\n\n public getContext<T extends GenericRecord = GenericRecord>() {\n return this.data.context as AssetRequestContext<T>;\n }\n\n public getExtension() {\n return this.data.key.split(\".\").pop();\n }\n}\n"],"names":["AssetRequest","data","options"],"mappings":"AAmBO,MAAMA;IAGT,OAAc,OACVC,IAAgC,EAClC;QACE,OAAO,IAAID,aAAaC;IAC5B;IAEA,YAAoBA,IAAgC,CAAE;QAClD,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEO,SAAS;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG;IACxB;IAEO,aAAuB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEO,WAAWC,OAAiB,EAAE;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAGA;IACxB;IAEO,aAAsD;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;IAC5B;IAEO,eAAe;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG;IACvC;AACJ"}
|
|
@@ -14,7 +14,8 @@ export declare class AssetReply {
|
|
|
14
14
|
private headers;
|
|
15
15
|
private code;
|
|
16
16
|
private body;
|
|
17
|
-
|
|
17
|
+
static create(params?: AssetReplyParams): AssetReply;
|
|
18
|
+
protected constructor(params?: AssetReplyParams);
|
|
18
19
|
setHeaders(cb: HeadersSetter): void;
|
|
19
20
|
getHeaders(): ResponseHeaders;
|
|
20
21
|
setCode(code: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery/AssetDelivery/abstractions/AssetReply.js","sources":["../../../../src/delivery/AssetDelivery/abstractions/AssetReply.ts"],"sourcesContent":["import { ResponseHeaders } from \"@webiny/handler\";\n\ninterface HeadersSetter {\n (headers: ResponseHeaders): ResponseHeaders;\n}\n\ninterface AssetReplyParams {\n code: number;\n headers?: ResponseHeaders;\n body?: AssetReplyBody;\n}\n\ninterface AssetReplyBody {\n (): Promise<unknown> | unknown;\n}\n\nconst defaultBody = () => \"\";\n\nexport class AssetReply {\n private headers: ResponseHeaders;\n private code: number;\n private body: AssetReplyBody;\n\n constructor(params: AssetReplyParams = { code: 200 }) {\n this.code = params.code;\n this.headers = params.headers || ResponseHeaders.create();\n this.body = params.body || defaultBody;\n }\n\n setHeaders(cb: HeadersSetter) {\n this.headers = cb(this.headers);\n }\n\n getHeaders() {\n return this.headers;\n }\n\n setCode(code: number) {\n this.code = code;\n }\n\n getCode() {\n return this.code;\n }\n\n setBody(body: AssetReplyBody) {\n this.body = body;\n }\n\n getBody() {\n return this.body();\n }\n}\n"],"names":["defaultBody","AssetReply","params","ResponseHeaders","cb","code","body"],"mappings":";AAgBA,MAAMA,cAAc,IAAM;AAEnB,MAAMC;IAKT,
|
|
1
|
+
{"version":3,"file":"delivery/AssetDelivery/abstractions/AssetReply.js","sources":["../../../../src/delivery/AssetDelivery/abstractions/AssetReply.ts"],"sourcesContent":["import { ResponseHeaders } from \"@webiny/handler\";\n\ninterface HeadersSetter {\n (headers: ResponseHeaders): ResponseHeaders;\n}\n\ninterface AssetReplyParams {\n code: number;\n headers?: ResponseHeaders;\n body?: AssetReplyBody;\n}\n\ninterface AssetReplyBody {\n (): Promise<unknown> | unknown;\n}\n\nconst defaultBody = () => \"\";\n\nexport class AssetReply {\n private headers: ResponseHeaders;\n private code: number;\n private body: AssetReplyBody;\n\n public static create(params: AssetReplyParams = { code: 200 }) {\n return new AssetReply(params);\n }\n\n protected constructor(params: AssetReplyParams = { code: 200 }) {\n this.code = params.code;\n this.headers = params.headers || ResponseHeaders.create();\n this.body = params.body || defaultBody;\n }\n\n public setHeaders(cb: HeadersSetter) {\n this.headers = cb(this.headers);\n }\n\n public getHeaders() {\n return this.headers;\n }\n\n public setCode(code: number) {\n this.code = code;\n }\n\n public getCode() {\n return this.code;\n }\n\n public setBody(body: AssetReplyBody) {\n this.body = body;\n }\n\n public getBody() {\n return this.body();\n }\n}\n"],"names":["defaultBody","AssetReply","params","ResponseHeaders","cb","code","body"],"mappings":";AAgBA,MAAMA,cAAc,IAAM;AAEnB,MAAMC;IAKT,OAAc,OAAOC,SAA2B;QAAE,MAAM;IAAI,CAAC,EAAE;QAC3D,OAAO,IAAID,WAAWC;IAC1B;IAEA,YAAsBA,SAA2B;QAAE,MAAM;IAAI,CAAC,CAAE;QAC5D,IAAI,CAAC,IAAI,GAAGA,OAAO,IAAI;QACvB,IAAI,CAAC,OAAO,GAAGA,OAAO,OAAO,IAAIC,gBAAgB,MAAM;QACvD,IAAI,CAAC,IAAI,GAAGD,OAAO,IAAI,IAAIF;IAC/B;IAEO,WAAWI,EAAiB,EAAE;QACjC,IAAI,CAAC,OAAO,GAAGA,GAAG,IAAI,CAAC,OAAO;IAClC;IAEO,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO;IACvB;IAEO,QAAQC,IAAY,EAAE;QACzB,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEO,UAAU;QACb,OAAO,IAAI,CAAC,IAAI;IACpB;IAEO,QAAQC,IAAoB,EAAE;QACjC,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEO,UAAU;QACb,OAAO,IAAI,CAAC,IAAI;IACpB;AACJ"}
|
package/delivery/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export * from "./AssetDelivery/Asset.js";
|
|
|
2
2
|
export * from "./AssetDelivery/AssetRequest.js";
|
|
3
3
|
export * from "./AssetDelivery/abstractions/AssetReply.js";
|
|
4
4
|
export * from "./AssetDelivery/createAssetDeliveryPluginLoader.js";
|
|
5
|
-
export type {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
5
|
+
export type { IAssetResolver as AssetResolver } from "../features/assetDelivery/abstractions/AssetResolver.js";
|
|
6
|
+
export type { IAssetOutputStrategy as AssetOutputStrategy } from "../features/assetDelivery/abstractions/AssetOutputStrategy.js";
|
|
7
|
+
export type { IAssetContentsReader as AssetContentsReader } from "../features/assetDelivery/abstractions/AssetContentsReader.js";
|
package/delivery/index.js
CHANGED
|
@@ -2,5 +2,3 @@ export * from "./AssetDelivery/Asset.js";
|
|
|
2
2
|
export * from "./AssetDelivery/AssetRequest.js";
|
|
3
3
|
export * from "./AssetDelivery/abstractions/AssetReply.js";
|
|
4
4
|
export * from "./AssetDelivery/createAssetDeliveryPluginLoader.js";
|
|
5
|
-
export { PublicCache } from "../features/assetDelivery/privateFiles/PublicCache.js";
|
|
6
|
-
export { PrivateCache } from "../features/assetDelivery/privateFiles/PrivateCache.js";
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { ResponseHeaders, createHandlerOnRequest, createModifyFastifyPlugin, createRoute } from "@webiny/handler";
|
|
2
|
-
import {
|
|
2
|
+
import { AssetRequestResolver } from "../features/assetDelivery/abstractions/AssetRequestResolver.js";
|
|
3
|
+
import { AssetResolver } from "../features/assetDelivery/abstractions/AssetResolver.js";
|
|
4
|
+
import { AssetProcessor } from "../features/assetDelivery/abstractions/AssetProcessor.js";
|
|
5
|
+
import { AssetOutputStrategy } from "../features/assetDelivery/abstractions/AssetOutputStrategy.js";
|
|
3
6
|
const noCacheHeaders = ResponseHeaders.create({
|
|
4
7
|
"content-type": "application/json",
|
|
5
8
|
"cache-control": "no-cache, no-store, must-revalidate"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery/setupAssetDelivery.js","sources":["../../src/delivery/setupAssetDelivery.ts"],"sourcesContent":["import {\n createHandlerOnRequest,\n createModifyFastifyPlugin,\n createRoute,\n ResponseHeaders\n} from \"@webiny/handler\";\nimport type { Asset, AssetRequest } from \"./index.js\";\nimport type { Reply } from \"@webiny/handler/types.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport {\
|
|
1
|
+
{"version":3,"file":"delivery/setupAssetDelivery.js","sources":["../../src/delivery/setupAssetDelivery.ts"],"sourcesContent":["import {\n createHandlerOnRequest,\n createModifyFastifyPlugin,\n createRoute,\n ResponseHeaders\n} from \"@webiny/handler\";\nimport type { Asset, AssetRequest } from \"./index.js\";\nimport type { Reply } from \"@webiny/handler/types.js\";\nimport type { ApiCoreContext } from \"@webiny/api-core/types/core.js\";\nimport { AssetRequestResolver } from \"~/features/assetDelivery/abstractions/AssetRequestResolver.js\";\nimport { AssetResolver } from \"~/features/assetDelivery/abstractions/AssetResolver.js\";\nimport { AssetProcessor } from \"~/features/assetDelivery/abstractions/AssetProcessor.js\";\nimport { AssetOutputStrategy } from \"~/features/assetDelivery/abstractions/AssetOutputStrategy.js\";\n\nconst noCacheHeaders = ResponseHeaders.create({\n \"content-type\": \"application/json\",\n \"cache-control\": \"no-cache, no-store, must-revalidate\"\n});\n\nfunction assertAssetRequestWasResolved(request: any): asserts request is AssetRequest {\n if (request === undefined) {\n throw new Error(\"Not an AssetRequest!\");\n }\n}\n\nfunction assertAssetWasResolved(asset: Asset | undefined): asserts asset is Asset {\n if (asset === undefined) {\n throw new Error(\"Not an Asset!\");\n }\n}\n\nexport const setupAssetDelivery = () => {\n const outputAsset = async (reply: Reply, asset: Asset) => {\n const assetReply = await asset.output();\n const headers = assetReply.getHeaders();\n\n headers.set(\"x-webiny-base64-encoded\", \"true\");\n\n reply.code(assetReply.getCode());\n reply.headers(headers.getHeaders());\n return reply.send(await assetReply.getBody());\n };\n\n return [\n createModifyFastifyPlugin(app => {\n const container = app.webiny.container;\n\n let resolvedRequest: AssetRequest | undefined;\n let resolvedAsset: Asset | undefined;\n\n const handlerOnRequest = createHandlerOnRequest(async (request, reply) => {\n const requestResolver = container.resolve(AssetRequestResolver);\n resolvedRequest = await requestResolver.resolve(request);\n\n if (!resolvedRequest) {\n reply\n .code(404)\n .headers(noCacheHeaders.getHeaders())\n .send({ error: \"Unable to resolve the request!\" })\n .hijack();\n\n return false;\n }\n\n const assetResolver = container.resolve(AssetResolver);\n resolvedAsset = await assetResolver.resolve(resolvedRequest);\n\n if (!resolvedAsset) {\n reply\n .code(404)\n .headers(noCacheHeaders.getHeaders())\n .send({ error: \"Asset not found!\" })\n .hijack();\n\n return false;\n }\n\n request.headers = {\n ...request.headers,\n \"x-tenant\": resolvedAsset.getTenant()\n };\n\n return;\n });\n\n const deliveryRoute = createRoute<ApiCoreContext>(({ onGet, context }) => {\n onGet(\n \"*\",\n async (_, reply) => {\n assertAssetRequestWasResolved(resolvedRequest);\n assertAssetWasResolved(resolvedAsset);\n\n const outputStrategy = context.container.resolve(AssetOutputStrategy);\n resolvedAsset.setOutputStrategy(outputStrategy);\n\n const assetProcessor = context.container.resolve(AssetProcessor);\n const processedAsset = await assetProcessor.process(\n resolvedRequest,\n resolvedAsset\n );\n\n console.log(`Output asset (size: ${processedAsset.getSize()} bytes).`);\n return outputAsset(reply, processedAsset);\n },\n { override: true }\n );\n });\n\n app.webiny.plugins.register(handlerOnRequest, deliveryRoute);\n })\n ];\n};\n"],"names":["noCacheHeaders","ResponseHeaders","assertAssetRequestWasResolved","request","undefined","Error","assertAssetWasResolved","asset","setupAssetDelivery","outputAsset","reply","assetReply","headers","createModifyFastifyPlugin","app","container","resolvedRequest","resolvedAsset","handlerOnRequest","createHandlerOnRequest","requestResolver","AssetRequestResolver","assetResolver","AssetResolver","deliveryRoute","createRoute","onGet","context","_","outputStrategy","AssetOutputStrategy","assetProcessor","AssetProcessor","processedAsset","console"],"mappings":";;;;;AAcA,MAAMA,iBAAiBC,gBAAgB,MAAM,CAAC;IAC1C,gBAAgB;IAChB,iBAAiB;AACrB;AAEA,SAASC,8BAA8BC,OAAY;IAC/C,IAAIA,AAAYC,WAAZD,SACA,MAAM,IAAIE,MAAM;AAExB;AAEA,SAASC,uBAAuBC,KAAwB;IACpD,IAAIA,AAAUH,WAAVG,OACA,MAAM,IAAIF,MAAM;AAExB;AAEO,MAAMG,qBAAqB;IAC9B,MAAMC,cAAc,OAAOC,OAAcH;QACrC,MAAMI,aAAa,MAAMJ,MAAM,MAAM;QACrC,MAAMK,UAAUD,WAAW,UAAU;QAErCC,QAAQ,GAAG,CAAC,2BAA2B;QAEvCF,MAAM,IAAI,CAACC,WAAW,OAAO;QAC7BD,MAAM,OAAO,CAACE,QAAQ,UAAU;QAChC,OAAOF,MAAM,IAAI,CAAC,MAAMC,WAAW,OAAO;IAC9C;IAEA,OAAO;QACHE,0BAA0BC,CAAAA;YACtB,MAAMC,YAAYD,IAAI,MAAM,CAAC,SAAS;YAEtC,IAAIE;YACJ,IAAIC;YAEJ,MAAMC,mBAAmBC,uBAAuB,OAAOhB,SAASO;gBAC5D,MAAMU,kBAAkBL,UAAU,OAAO,CAACM;gBAC1CL,kBAAkB,MAAMI,gBAAgB,OAAO,CAACjB;gBAEhD,IAAI,CAACa,iBAAiB;oBAClBN,MACK,IAAI,CAAC,KACL,OAAO,CAACV,eAAe,UAAU,IACjC,IAAI,CAAC;wBAAE,OAAO;oBAAiC,GAC/C,MAAM;oBAEX,OAAO;gBACX;gBAEA,MAAMsB,gBAAgBP,UAAU,OAAO,CAACQ;gBACxCN,gBAAgB,MAAMK,cAAc,OAAO,CAACN;gBAE5C,IAAI,CAACC,eAAe;oBAChBP,MACK,IAAI,CAAC,KACL,OAAO,CAACV,eAAe,UAAU,IACjC,IAAI,CAAC;wBAAE,OAAO;oBAAmB,GACjC,MAAM;oBAEX,OAAO;gBACX;gBAEAG,QAAQ,OAAO,GAAG;oBACd,GAAGA,QAAQ,OAAO;oBAClB,YAAYc,cAAc,SAAS;gBACvC;YAGJ;YAEA,MAAMO,gBAAgBC,YAA4B,CAAC,EAAEC,KAAK,EAAEC,OAAO,EAAE;gBACjED,MACI,KACA,OAAOE,GAAGlB;oBACNR,8BAA8Bc;oBAC9BV,uBAAuBW;oBAEvB,MAAMY,iBAAiBF,QAAQ,SAAS,CAAC,OAAO,CAACG;oBACjDb,cAAc,iBAAiB,CAACY;oBAEhC,MAAME,iBAAiBJ,QAAQ,SAAS,CAAC,OAAO,CAACK;oBACjD,MAAMC,iBAAiB,MAAMF,eAAe,OAAO,CAC/Cf,iBACAC;oBAGJiB,QAAQ,GAAG,CAAC,CAAC,oBAAoB,EAAED,eAAe,OAAO,GAAG,QAAQ,CAAC;oBACrE,OAAOxB,YAAYC,OAAOuB;gBAC9B,GACA;oBAAE,UAAU;gBAAK;YAEzB;YAEAnB,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAACI,kBAAkBM;QAClD;KACH;AACL"}
|
|
@@ -21,7 +21,11 @@ class FilePrivateModelImpl {
|
|
|
21
21
|
width: fields.number().label("Width"),
|
|
22
22
|
height: fields.number().label("Height"),
|
|
23
23
|
format: fields.text().label("Format"),
|
|
24
|
-
orientation: fields.number().label("Orientation")
|
|
24
|
+
orientation: fields.number().label("Orientation"),
|
|
25
|
+
crop: fields.json().label("Crop"),
|
|
26
|
+
focalPoint: fields.json().label("Focal point"),
|
|
27
|
+
alt: fields.text().label("Alt text"),
|
|
28
|
+
caption: fields.text().label("Caption")
|
|
25
29
|
})),
|
|
26
30
|
exif: fields.searchableJson().label("EXIF Data"),
|
|
27
31
|
iptc: fields.searchableJson().label("IPTC Data")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain/file/file.model.js","sources":["../../../src/domain/file/file.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\n\nexport const FILE_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"fmFile\" : \"wbyFmFile\";\n\nclass FilePrivateModelImpl implements ModelFactory.Interface {\n public constructor(private wcp: WcpContext.Interface) {}\n\n public async execute(builder: ModelFactory.Builder) {\n const model = builder.private({\n modelId: FILE_MODEL_ID,\n name: \"FmFile\"\n });\n const privateFiles = this.wcp.canUsePrivateFiles();\n\n model.fields(fields => ({\n name: fields.text().label(\"Name\").required(\"Value is required.\"),\n key: fields.text().label(\"Key\").required(\"Value is required.\"),\n type: fields.text().label(\"Type\").required(\"Value is required.\"),\n size: fields.number().label(\"Size\").required(\"Value is required.\"),\n metadata: fields\n .object()\n .label(\"Metadata\")\n .renderer(\"hidden\")\n .fields(fields => ({\n image: fields\n .object()\n .label(\"Image\")\n .fields(fields => ({\n width: fields.number().label(\"Width\"),\n height: fields.number().label(\"Height\"),\n format: fields.text().label(\"Format\"),\n orientation: fields.number().label(\"Orientation\")\n })),\n // Store complete raw EXIF as JSON\n exif: fields.searchableJson().label(\"EXIF Data\"),\n // Store complete raw IPTC as JSON\n iptc: fields.searchableJson().label(\"IPTC Data\")\n })),\n tags: fields\n .text()\n .label(\"Tags\")\n .tags([\"$bulk-edit\"])\n .list()\n .required(\"Value is required.\"),\n description: fields.text().label(\"Description\").defaultValue(\"\")\n }));\n\n if (privateFiles) {\n model.fields(fields => ({\n accessControl: fields\n .object()\n .label(\"Access Control\")\n .tags([\"$bulk-edit\"])\n .fields(fields => ({\n type: fields\n .text()\n .label(\"Type\")\n .predefinedValues([\n {\n label: \"Public\",\n value: \"public\",\n selected: true\n },\n {\n label: \"Private\",\n value: \"private-authenticated\",\n selected: false\n }\n ])\n }))\n }));\n }\n\n return [model];\n }\n}\n\nexport const FileModel = ModelFactory.createImplementation({\n implementation: FilePrivateModelImpl,\n dependencies: [WcpContext]\n});\n"],"names":["FILE_MODEL_ID","process","FilePrivateModelImpl","wcp","builder","model","privateFiles","fields","FileModel","ModelFactory","WcpContext"],"mappings":";;AAGO,MAAMA,gBAAgBC,QAAQ,GAAG,CAAC,wBAAwB,GAAG,WAAW;AAE/E,MAAMC;IACF,YAA2BC,GAAyB,CAAE;aAA3BA,GAAG,GAAHA;IAA4B;IAEvD,MAAa,QAAQC,OAA6B,EAAE;QAChD,MAAMC,QAAQD,QAAQ,OAAO,CAAC;YAC1B,SAASJ;YACT,MAAM;QACV;QACA,MAAMM,eAAe,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAEhDD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,KAAKA,OAAO,IAAI,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC;gBACzC,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,MAAMA,OAAO,MAAM,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC7C,UAAUA,OACL,MAAM,GACN,KAAK,CAAC,YACN,QAAQ,CAAC,UACT,MAAM,CAACA,CAAAA,SAAW;wBACf,OAAOA,OACF,MAAM,GACN,KAAK,CAAC,SACN,MAAM,CAACA,CAAAA,SAAW;gCACf,OAAOA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC7B,QAAQA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC9B,QAAQA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAC5B,aAAaA,OAAO,MAAM,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"domain/file/file.model.js","sources":["../../../src/domain/file/file.model.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WcpContext } from \"@webiny/api-core/features/wcp/WcpContext/index.js\";\n\nexport const FILE_MODEL_ID = process.env.WEBINY_API_LEGACY_MODELS ? \"fmFile\" : \"wbyFmFile\";\n\nclass FilePrivateModelImpl implements ModelFactory.Interface {\n public constructor(private wcp: WcpContext.Interface) {}\n\n public async execute(builder: ModelFactory.Builder) {\n const model = builder.private({\n modelId: FILE_MODEL_ID,\n name: \"FmFile\"\n });\n const privateFiles = this.wcp.canUsePrivateFiles();\n\n model.fields(fields => ({\n name: fields.text().label(\"Name\").required(\"Value is required.\"),\n key: fields.text().label(\"Key\").required(\"Value is required.\"),\n type: fields.text().label(\"Type\").required(\"Value is required.\"),\n size: fields.number().label(\"Size\").required(\"Value is required.\"),\n metadata: fields\n .object()\n .label(\"Metadata\")\n .renderer(\"hidden\")\n .fields(fields => ({\n image: fields\n .object()\n .label(\"Image\")\n .fields(fields => ({\n width: fields.number().label(\"Width\"),\n height: fields.number().label(\"Height\"),\n format: fields.text().label(\"Format\"),\n orientation: fields.number().label(\"Orientation\"),\n crop: fields.json().label(\"Crop\"),\n focalPoint: fields.json().label(\"Focal point\"),\n alt: fields.text().label(\"Alt text\"),\n caption: fields.text().label(\"Caption\")\n })),\n // Store complete raw EXIF as JSON\n exif: fields.searchableJson().label(\"EXIF Data\"),\n // Store complete raw IPTC as JSON\n iptc: fields.searchableJson().label(\"IPTC Data\")\n })),\n tags: fields\n .text()\n .label(\"Tags\")\n .tags([\"$bulk-edit\"])\n .list()\n .required(\"Value is required.\"),\n description: fields.text().label(\"Description\").defaultValue(\"\")\n }));\n\n if (privateFiles) {\n model.fields(fields => ({\n accessControl: fields\n .object()\n .label(\"Access Control\")\n .tags([\"$bulk-edit\"])\n .fields(fields => ({\n type: fields\n .text()\n .label(\"Type\")\n .predefinedValues([\n {\n label: \"Public\",\n value: \"public\",\n selected: true\n },\n {\n label: \"Private\",\n value: \"private-authenticated\",\n selected: false\n }\n ])\n }))\n }));\n }\n\n return [model];\n }\n}\n\nexport const FileModel = ModelFactory.createImplementation({\n implementation: FilePrivateModelImpl,\n dependencies: [WcpContext]\n});\n"],"names":["FILE_MODEL_ID","process","FilePrivateModelImpl","wcp","builder","model","privateFiles","fields","FileModel","ModelFactory","WcpContext"],"mappings":";;AAGO,MAAMA,gBAAgBC,QAAQ,GAAG,CAAC,wBAAwB,GAAG,WAAW;AAE/E,MAAMC;IACF,YAA2BC,GAAyB,CAAE;aAA3BA,GAAG,GAAHA;IAA4B;IAEvD,MAAa,QAAQC,OAA6B,EAAE;QAChD,MAAMC,QAAQD,QAAQ,OAAO,CAAC;YAC1B,SAASJ;YACT,MAAM;QACV;QACA,MAAMM,eAAe,IAAI,CAAC,GAAG,CAAC,kBAAkB;QAEhDD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,KAAKA,OAAO,IAAI,GAAG,KAAK,CAAC,OAAO,QAAQ,CAAC;gBACzC,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC3C,MAAMA,OAAO,MAAM,GAAG,KAAK,CAAC,QAAQ,QAAQ,CAAC;gBAC7C,UAAUA,OACL,MAAM,GACN,KAAK,CAAC,YACN,QAAQ,CAAC,UACT,MAAM,CAACA,CAAAA,SAAW;wBACf,OAAOA,OACF,MAAM,GACN,KAAK,CAAC,SACN,MAAM,CAACA,CAAAA,SAAW;gCACf,OAAOA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC7B,QAAQA,OAAO,MAAM,GAAG,KAAK,CAAC;gCAC9B,QAAQA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAC5B,aAAaA,OAAO,MAAM,GAAG,KAAK,CAAC;gCACnC,MAAMA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAC1B,YAAYA,OAAO,IAAI,GAAG,KAAK,CAAC;gCAChC,KAAKA,OAAO,IAAI,GAAG,KAAK,CAAC;gCACzB,SAASA,OAAO,IAAI,GAAG,KAAK,CAAC;4BACjC;wBAEJ,MAAMA,OAAO,cAAc,GAAG,KAAK,CAAC;wBAEpC,MAAMA,OAAO,cAAc,GAAG,KAAK,CAAC;oBACxC;gBACJ,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,IAAI,CAAC;oBAAC;iBAAa,EACnB,IAAI,GACJ,QAAQ,CAAC;gBACd,aAAaA,OAAO,IAAI,GAAG,KAAK,CAAC,eAAe,YAAY,CAAC;YACjE;QAEA,IAAID,cACAD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,eAAeA,OACV,MAAM,GACN,KAAK,CAAC,kBACN,IAAI,CAAC;oBAAC;iBAAa,EACnB,MAAM,CAACA,CAAAA,SAAW;wBACf,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,gBAAgB,CAAC;4BACd;gCACI,OAAO;gCACP,OAAO;gCACP,UAAU;4BACd;4BACA;gCACI,OAAO;gCACP,OAAO;gCACP,UAAU;4BACd;yBACH;oBACT;YACR;QAGJ,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,YAAYC,aAAa,oBAAoB,CAAC;IACvD,gBAAgBP;IAChB,cAAc;QAACQ;KAAW;AAC9B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import zod from "zod";
|
|
2
|
-
import { ServiceDiscovery } from "@webiny/api";
|
|
2
|
+
import { ServiceDiscovery } from "@webiny/api-core/features/serviceDiscovery/index.js";
|
|
3
3
|
const MIN_FILE_SIZE = 0;
|
|
4
4
|
const MAX_FILE_SIZE = 10737418240;
|
|
5
5
|
const uploadMinFileSizeValidation = zod.number().min(MIN_FILE_SIZE, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain/settings/validation.js","sources":["../../../src/domain/settings/validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { ServiceDiscovery } from \"@webiny/api\";\n\nconst MIN_FILE_SIZE = 0;\nconst MAX_FILE_SIZE = 10737418240;\n\nconst uploadMinFileSizeValidation = zod\n .number()\n .min(MIN_FILE_SIZE, {\n message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MIN_FILE_SIZE;\n })\n .optional();\n\nconst uploadMaxFileSizeValidation = zod\n .number()\n .max(MAX_FILE_SIZE, {\n message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MAX_FILE_SIZE;\n })\n .optional();\n\nexport const updateSettingsValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation,\n uploadMaxFileSize: uploadMaxFileSizeValidation,\n srcPrefix: zod\n .string()\n .optional()\n .transform(async value => {\n if (!value) {\n const manifest = await ServiceDiscovery.load();\n if (!manifest || !manifest.api) {\n return \"\";\n }\n\n const { domain } = manifest.api.cloudfront;\n\n return `https://${domain}/files/`;\n }\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n"],"names":["MIN_FILE_SIZE","MAX_FILE_SIZE","uploadMinFileSizeValidation","zod","value","uploadMaxFileSizeValidation","updateSettingsValidation","manifest","ServiceDiscovery","domain"],"mappings":";;AAGA,MAAMA,gBAAgB;AACtB,MAAMC,gBAAgB;AAEtB,MAAMC,8BAA8BC,IAAAA,MACzB,GACN,GAAG,CAACH,eAAe;IAChB,SAAS,CAAC,2CAA2C,EAAEA,cAAc,CAAC,CAAC;AAC3E,GACC,OAAO,GACP,SAAS,CAACI,CAAAA,QACAA,SAASJ,eAEnB,QAAQ;AAEb,MAAMK,8BAA8BF,IAAAA,MACzB,GACN,GAAG,CAACF,eAAe;IAChB,SAAS,CAAC,0CAA0C,EAAEA,cAAc,CAAC,CAAC;AAC1E,GACC,OAAO,GACP,SAAS,CAACG,CAAAA,QACAA,SAASH,eAEnB,QAAQ;AAEN,MAAMK,2BAA2BH,IAAI,MAAM,CAAC;IAC/C,mBAAmBD;IACnB,mBAAmBG;IACnB,WAAWF,IAAAA,MACA,GACN,QAAQ,GACR,SAAS,CAAC,OAAMC;QACb,IAAI,CAACA,OAAO;YACR,MAAMG,WAAW,MAAMC,iBAAiB,IAAI;YAC5C,IAAI,CAACD,YAAY,CAACA,SAAS,GAAG,EAC1B,OAAO;YAGX,MAAM,EAAEE,MAAM,EAAE,GAAGF,SAAS,GAAG,CAAC,UAAU;YAE1C,OAAO,CAAC,QAAQ,EAAEE,OAAO,OAAO,CAAC;QACrC;QACA,IAAI,AAAiB,YAAjB,OAAOL,OACP,OAAOA,MAAM,QAAQ,CAAC,OAAOA,QAAQA,QAAQ;QAEjD,OAAOA;IACX;AACR"}
|
|
1
|
+
{"version":3,"file":"domain/settings/validation.js","sources":["../../../src/domain/settings/validation.ts"],"sourcesContent":["import zod from \"zod\";\nimport { ServiceDiscovery } from \"@webiny/api-core/features/serviceDiscovery/index.js\";\n\nconst MIN_FILE_SIZE = 0;\nconst MAX_FILE_SIZE = 10737418240;\n\nconst uploadMinFileSizeValidation = zod\n .number()\n .min(MIN_FILE_SIZE, {\n message: `Value needs to be greater than or equal to ${MIN_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MIN_FILE_SIZE;\n })\n .optional();\n\nconst uploadMaxFileSizeValidation = zod\n .number()\n .max(MAX_FILE_SIZE, {\n message: `Value needs to be lesser than or equal to ${MAX_FILE_SIZE}.`\n })\n .nullish()\n .transform(value => {\n return value || MAX_FILE_SIZE;\n })\n .optional();\n\nexport const updateSettingsValidation = zod.object({\n uploadMinFileSize: uploadMinFileSizeValidation,\n uploadMaxFileSize: uploadMaxFileSizeValidation,\n srcPrefix: zod\n .string()\n .optional()\n .transform(async value => {\n if (!value) {\n const manifest = await ServiceDiscovery.load();\n if (!manifest || !manifest.api) {\n return \"\";\n }\n\n const { domain } = manifest.api.cloudfront;\n\n return `https://${domain}/files/`;\n }\n if (typeof value === \"string\") {\n return value.endsWith(\"/\") ? value : value + \"/\";\n }\n return value;\n })\n});\n"],"names":["MIN_FILE_SIZE","MAX_FILE_SIZE","uploadMinFileSizeValidation","zod","value","uploadMaxFileSizeValidation","updateSettingsValidation","manifest","ServiceDiscovery","domain"],"mappings":";;AAGA,MAAMA,gBAAgB;AACtB,MAAMC,gBAAgB;AAEtB,MAAMC,8BAA8BC,IAAAA,MACzB,GACN,GAAG,CAACH,eAAe;IAChB,SAAS,CAAC,2CAA2C,EAAEA,cAAc,CAAC,CAAC;AAC3E,GACC,OAAO,GACP,SAAS,CAACI,CAAAA,QACAA,SAASJ,eAEnB,QAAQ;AAEb,MAAMK,8BAA8BF,IAAAA,MACzB,GACN,GAAG,CAACF,eAAe;IAChB,SAAS,CAAC,0CAA0C,EAAEA,cAAc,CAAC,CAAC;AAC1E,GACC,OAAO,GACP,SAAS,CAACG,CAAAA,QACAA,SAASH,eAEnB,QAAQ;AAEN,MAAMK,2BAA2BH,IAAI,MAAM,CAAC;IAC/C,mBAAmBD;IACnB,mBAAmBG;IACnB,WAAWF,IAAAA,MACA,GACN,QAAQ,GACR,SAAS,CAAC,OAAMC;QACb,IAAI,CAACA,OAAO;YACR,MAAMG,WAAW,MAAMC,iBAAiB,IAAI;YAC5C,IAAI,CAACD,YAAY,CAACA,SAAS,GAAG,EAC1B,OAAO;YAGX,MAAM,EAAEE,MAAM,EAAE,GAAGF,SAAS,GAAG,CAAC,UAAU;YAE1C,OAAO,CAAC,QAAQ,EAAEE,OAAO,OAAO,CAAC;QACrC;QACA,IAAI,AAAiB,YAAjB,OAAOL,OACP,OAAOA,MAAM,QAAQ,CAAC,OAAOA,QAAQA,QAAQ;QAEjD,OAAOA;IACX;AACR"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { Asset } from "../../../delivery/AssetDelivery/Asset.js";
|
|
2
|
+
export type { AssetData } from "../../../delivery/AssetDelivery/Asset.js";
|
|
3
|
+
export { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
|
|
4
|
+
export type { AssetRequestOptions } from "../../../delivery/AssetDelivery/AssetRequest.js";
|
|
5
|
+
export { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
|
|
6
|
+
export { createAssetDeliveryPluginLoader } from "../../../delivery/AssetDelivery/createAssetDeliveryPluginLoader.js";
|
|
7
|
+
export { AssetRequestResolver } from "../../../features/assetDelivery/abstractions/AssetRequestResolver.js";
|
|
8
|
+
export { AssetResolver } from "../../../features/assetDelivery/abstractions/AssetResolver.js";
|
|
9
|
+
export { AssetProcessor } from "../../../features/assetDelivery/abstractions/AssetProcessor.js";
|
|
10
|
+
export { AssetOutputStrategy } from "../../../features/assetDelivery/abstractions/AssetOutputStrategy.js";
|
|
11
|
+
export { AssetType } from "../../../features/assetDelivery/abstractions/AssetType.js";
|
|
12
|
+
export type { IAssetType, IAssetTypeHandler } from "../../../features/assetDelivery/abstractions/AssetType.js";
|
|
13
|
+
export { AssetContentsReader } from "../../../features/assetDelivery/abstractions/AssetContentsReader.js";
|
|
14
|
+
export { AssetAuthorizer } from "../../../features/assetDelivery/abstractions/AssetAuthorizer.js";
|
|
15
|
+
export { AssetFactory } from "../../../features/assetDelivery/Asset/abstractions.js";
|
|
16
|
+
export { AssetRequestFactory } from "../../../features/assetDelivery/AssetRequest/abstractions.js";
|
|
17
|
+
export { StreamAssetReply } from "../../../features/assetDelivery/StreamAssetReply/abstractions.js";
|
|
18
|
+
export { ObjectKey } from "../../../features/assetDelivery/ObjectKey/abstractions.js";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { Asset } from "../../../delivery/AssetDelivery/Asset.js";
|
|
2
|
+
export { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
|
|
3
|
+
export { AssetReply } from "../../../delivery/AssetDelivery/abstractions/AssetReply.js";
|
|
4
|
+
export { createAssetDeliveryPluginLoader } from "../../../delivery/AssetDelivery/createAssetDeliveryPluginLoader.js";
|
|
5
|
+
export { AssetRequestResolver } from "../../../features/assetDelivery/abstractions/AssetRequestResolver.js";
|
|
6
|
+
export { AssetResolver } from "../../../features/assetDelivery/abstractions/AssetResolver.js";
|
|
7
|
+
export { AssetProcessor } from "../../../features/assetDelivery/abstractions/AssetProcessor.js";
|
|
8
|
+
export { AssetOutputStrategy } from "../../../features/assetDelivery/abstractions/AssetOutputStrategy.js";
|
|
9
|
+
export { AssetType } from "../../../features/assetDelivery/abstractions/AssetType.js";
|
|
10
|
+
export { AssetContentsReader } from "../../../features/assetDelivery/abstractions/AssetContentsReader.js";
|
|
11
|
+
export { AssetAuthorizer } from "../../../features/assetDelivery/abstractions/AssetAuthorizer.js";
|
|
12
|
+
export { AssetFactory } from "../../../features/assetDelivery/Asset/abstractions.js";
|
|
13
|
+
export { AssetRequestFactory } from "../../../features/assetDelivery/AssetRequest/abstractions.js";
|
|
14
|
+
export { StreamAssetReply } from "../../../features/assetDelivery/StreamAssetReply/abstractions.js";
|
|
15
|
+
export { ObjectKey } from "../../../features/assetDelivery/ObjectKey/abstractions.js";
|
|
@@ -8,5 +8,6 @@ export { DeleteFileRepository, DeleteFileUseCase } from "../../../features/file/
|
|
|
8
8
|
export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "../../../features/file/DeleteFile/events.js";
|
|
9
9
|
export { FileUrlGenerator } from "../../../features/file/FileUrlGenerator/abstractions.js";
|
|
10
10
|
export { GetFileRepository, GetFileUseCase } from "../../../features/file/GetFile/abstractions.js";
|
|
11
|
+
export { GetFileByUrlUseCase } from "../../../features/file/GetFileByUrl/abstractions.js";
|
|
11
12
|
export { ListFilesRepository, ListFilesUseCase } from "../../../features/file/ListFiles/abstractions.js";
|
|
12
13
|
export { ListTagsRepository, ListTagsUseCase } from "../../../features/file/ListTags/abstractions.js";
|
|
@@ -8,5 +8,6 @@ export { DeleteFileRepository, DeleteFileUseCase } from "../../../features/file/
|
|
|
8
8
|
export { FileAfterDeleteEventHandler, FileBeforeDeleteEventHandler } from "../../../features/file/DeleteFile/events.js";
|
|
9
9
|
export { FileUrlGenerator } from "../../../features/file/FileUrlGenerator/abstractions.js";
|
|
10
10
|
export { GetFileRepository, GetFileUseCase } from "../../../features/file/GetFile/abstractions.js";
|
|
11
|
+
export { GetFileByUrlUseCase } from "../../../features/file/GetFileByUrl/abstractions.js";
|
|
11
12
|
export { ListFilesRepository, ListFilesUseCase } from "../../../features/file/ListFiles/abstractions.js";
|
|
12
13
|
export { ListTagsRepository, ListTagsUseCase } from "../../../features/file/ListTags/abstractions.js";
|
|
@@ -10,6 +10,12 @@ import { SettingsInstallerFeature } from "./settings/SettingsInstaller/feature.j
|
|
|
10
10
|
import { GetSettingsFeature } from "./settings/GetSettings/feature.js";
|
|
11
11
|
import { UpdateSettingsFeature } from "./settings/UpdateSettings/feature.js";
|
|
12
12
|
import { ListImagesByTagToolFeature } from "./file/ListImagesByTagTool/feature.js";
|
|
13
|
+
import { FileUrlGeneratorFeature } from "./file/FileUrlGenerator/feature.js";
|
|
14
|
+
import { GetFileByUrlFeature } from "./file/GetFileByUrl/feature.js";
|
|
15
|
+
import { ReadFileMetadataFeature } from "./upload/ReadFileMetadata/feature.js";
|
|
16
|
+
import { WriteFileMetadataFeature } from "./upload/WriteFileMetadata/feature.js";
|
|
17
|
+
import { FmGraphQLSchema } from "../graphql/FmGraphQLSchema.js";
|
|
18
|
+
import { FmUploadGraphQLSchema } from "../graphql/FmUploadGraphQLSchema.js";
|
|
13
19
|
const FileManagerFeature = createFeature({
|
|
14
20
|
name: "FileManager",
|
|
15
21
|
register (container) {
|
|
@@ -24,6 +30,12 @@ const FileManagerFeature = createFeature({
|
|
|
24
30
|
GetSettingsFeature.register(container);
|
|
25
31
|
UpdateSettingsFeature.register(container);
|
|
26
32
|
ListImagesByTagToolFeature.register(container);
|
|
33
|
+
FileUrlGeneratorFeature.register(container);
|
|
34
|
+
GetFileByUrlFeature.register(container);
|
|
35
|
+
ReadFileMetadataFeature.register(container);
|
|
36
|
+
WriteFileMetadataFeature.register(container);
|
|
37
|
+
container.register(FmGraphQLSchema);
|
|
38
|
+
container.register(FmUploadGraphQLSchema);
|
|
27
39
|
}
|
|
28
40
|
});
|
|
29
41
|
export { FileManagerFeature };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features/FileManagerFeature.js","sources":["../../src/features/FileManagerFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileFeature } from \"~/features/file/CreateFile/feature.js\";\nimport { CreateFilesInBatchFeature } from \"~/features/file/CreateFilesInBatch/feature.js\";\nimport { DeleteFileFeature } from \"~/features/file/DeleteFile/feature.js\";\nimport { GetFileFeature } from \"~/features/file/GetFile/feature.js\";\nimport { ListFilesFeature } from \"~/features/file/ListFiles/feature.js\";\nimport { ListTagsFeature } from \"~/features/file/ListTags/feature.js\";\nimport { UpdateFileFeature } from \"~/features/file/UpdateFile/feature.js\";\nimport { SettingsInstallerFeature } from \"~/features/settings/SettingsInstaller/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/GetSettings/feature.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/UpdateSettings/feature.js\";\nimport { ListImagesByTagToolFeature } from \"~/features/file/ListImagesByTagTool/feature.js\";\n\nexport const FileManagerFeature = createFeature({\n name: \"FileManager\",\n register(container) {\n CreateFileFeature.register(container);\n CreateFilesInBatchFeature.register(container);\n UpdateFileFeature.register(container);\n DeleteFileFeature.register(container);\n GetFileFeature.register(container);\n ListFilesFeature.register(container);\n ListTagsFeature.register(container);\n SettingsInstallerFeature.register(container);\n GetSettingsFeature.register(container);\n UpdateSettingsFeature.register(container);\n ListImagesByTagToolFeature.register(container);\n }\n});\n"],"names":["FileManagerFeature","createFeature","container","CreateFileFeature","CreateFilesInBatchFeature","UpdateFileFeature","DeleteFileFeature","GetFileFeature","ListFilesFeature","ListTagsFeature","SettingsInstallerFeature","GetSettingsFeature","UpdateSettingsFeature","ListImagesByTagToolFeature"],"mappings":"
|
|
1
|
+
{"version":3,"file":"features/FileManagerFeature.js","sources":["../../src/features/FileManagerFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateFileFeature } from \"~/features/file/CreateFile/feature.js\";\nimport { CreateFilesInBatchFeature } from \"~/features/file/CreateFilesInBatch/feature.js\";\nimport { DeleteFileFeature } from \"~/features/file/DeleteFile/feature.js\";\nimport { GetFileFeature } from \"~/features/file/GetFile/feature.js\";\nimport { ListFilesFeature } from \"~/features/file/ListFiles/feature.js\";\nimport { ListTagsFeature } from \"~/features/file/ListTags/feature.js\";\nimport { UpdateFileFeature } from \"~/features/file/UpdateFile/feature.js\";\nimport { SettingsInstallerFeature } from \"~/features/settings/SettingsInstaller/feature.js\";\nimport { GetSettingsFeature } from \"~/features/settings/GetSettings/feature.js\";\nimport { UpdateSettingsFeature } from \"~/features/settings/UpdateSettings/feature.js\";\nimport { ListImagesByTagToolFeature } from \"~/features/file/ListImagesByTagTool/feature.js\";\nimport { FileUrlGeneratorFeature } from \"~/features/file/FileUrlGenerator/feature.js\";\nimport { GetFileByUrlFeature } from \"~/features/file/GetFileByUrl/feature.js\";\nimport { ReadFileMetadataFeature } from \"~/features/upload/ReadFileMetadata/feature.js\";\nimport { WriteFileMetadataFeature } from \"~/features/upload/WriteFileMetadata/feature.js\";\nimport { FmGraphQLSchema } from \"~/graphql/FmGraphQLSchema.js\";\nimport { FmUploadGraphQLSchema } from \"~/graphql/FmUploadGraphQLSchema.js\";\n\nexport const FileManagerFeature = createFeature({\n name: \"FileManager\",\n register(container) {\n CreateFileFeature.register(container);\n CreateFilesInBatchFeature.register(container);\n UpdateFileFeature.register(container);\n DeleteFileFeature.register(container);\n GetFileFeature.register(container);\n ListFilesFeature.register(container);\n ListTagsFeature.register(container);\n SettingsInstallerFeature.register(container);\n GetSettingsFeature.register(container);\n UpdateSettingsFeature.register(container);\n ListImagesByTagToolFeature.register(container);\n FileUrlGeneratorFeature.register(container);\n GetFileByUrlFeature.register(container);\n ReadFileMetadataFeature.register(container);\n WriteFileMetadataFeature.register(container);\n\n /* GraphQL schema factories. */\n container.register(FmGraphQLSchema);\n container.register(FmUploadGraphQLSchema);\n }\n});\n"],"names":["FileManagerFeature","createFeature","container","CreateFileFeature","CreateFilesInBatchFeature","UpdateFileFeature","DeleteFileFeature","GetFileFeature","ListFilesFeature","ListTagsFeature","SettingsInstallerFeature","GetSettingsFeature","UpdateSettingsFeature","ListImagesByTagToolFeature","FileUrlGeneratorFeature","GetFileByUrlFeature","ReadFileMetadataFeature","WriteFileMetadataFeature","FmGraphQLSchema","FmUploadGraphQLSchema"],"mappings":";;;;;;;;;;;;;;;;;;AAmBO,MAAMA,qBAAqBC,cAAc;IAC5C,MAAM;IACN,UAASC,SAAS;QACdC,kBAAkB,QAAQ,CAACD;QAC3BE,0BAA0B,QAAQ,CAACF;QACnCG,kBAAkB,QAAQ,CAACH;QAC3BI,kBAAkB,QAAQ,CAACJ;QAC3BK,eAAe,QAAQ,CAACL;QACxBM,iBAAiB,QAAQ,CAACN;QAC1BO,gBAAgB,QAAQ,CAACP;QACzBQ,yBAAyB,QAAQ,CAACR;QAClCS,mBAAmB,QAAQ,CAACT;QAC5BU,sBAAsB,QAAQ,CAACV;QAC/BW,2BAA2B,QAAQ,CAACX;QACpCY,wBAAwB,QAAQ,CAACZ;QACjCa,oBAAoB,QAAQ,CAACb;QAC7Bc,wBAAwB,QAAQ,CAACd;QACjCe,yBAAyB,QAAQ,CAACf;QAGlCA,UAAU,QAAQ,CAACgB;QACnBhB,UAAU,QAAQ,CAACiB;IACvB;AACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AssetFactory as AssetFactoryAbstraction, type IAssetFactory } from "./abstractions.js";
|
|
2
|
+
declare class AssetFactoryImpl implements IAssetFactory {
|
|
3
|
+
create(data: AssetFactoryAbstraction.AssetData): AssetFactoryAbstraction.Asset;
|
|
4
|
+
}
|
|
5
|
+
export declare const AssetFactory: typeof AssetFactoryImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<IAssetFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Asset } from "../../../delivery/AssetDelivery/Asset.js";
|
|
2
|
+
import { AssetFactory } from "./abstractions.js";
|
|
3
|
+
class AssetFactoryImpl {
|
|
4
|
+
create(data) {
|
|
5
|
+
return Asset.create(data);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
const Asset_AssetFactory = AssetFactory.createImplementation({
|
|
9
|
+
implementation: AssetFactoryImpl,
|
|
10
|
+
dependencies: []
|
|
11
|
+
});
|
|
12
|
+
export { Asset_AssetFactory as AssetFactory };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=Asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/assetDelivery/Asset/Asset.js","sources":["../../../../src/features/assetDelivery/Asset/Asset.ts"],"sourcesContent":["import { Asset } from \"~/delivery/AssetDelivery/Asset.js\";\nimport { AssetFactory as AssetFactoryAbstraction, type IAssetFactory } from \"./abstractions.js\";\n\nclass AssetFactoryImpl implements IAssetFactory {\n create(data: AssetFactoryAbstraction.AssetData): AssetFactoryAbstraction.Asset {\n return Asset.create(data);\n }\n}\n\nexport const AssetFactory = AssetFactoryAbstraction.createImplementation({\n implementation: AssetFactoryImpl,\n dependencies: []\n});\n"],"names":["AssetFactoryImpl","data","Asset","AssetFactory","AssetFactoryAbstraction"],"mappings":";;AAGA,MAAMA;IACF,OAAOC,IAAuC,EAAiC;QAC3E,OAAOC,MAAM,MAAM,CAACD;IACxB;AACJ;AAEO,MAAME,qBAAeC,aAAAA,oBAA4C,CAAC;IACrE,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Asset as IAsset, AssetData as IAssetData } from "../../../delivery/AssetDelivery/Asset.js";
|
|
2
|
+
export interface IAssetFactory {
|
|
3
|
+
create(data: IAssetData): IAsset;
|
|
4
|
+
}
|
|
5
|
+
export declare const AssetFactory: import("@webiny/di").Abstraction<IAssetFactory>;
|
|
6
|
+
export declare namespace AssetFactory {
|
|
7
|
+
type Interface = IAssetFactory;
|
|
8
|
+
type Asset = IAsset;
|
|
9
|
+
type AssetData = IAssetData;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/assetDelivery/Asset/abstractions.js","sources":["../../../../src/features/assetDelivery/Asset/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Asset as IAsset, AssetData as IAssetData } from \"~/delivery/AssetDelivery/Asset.js\";\n\nexport interface IAssetFactory {\n create(data: IAssetData): IAsset;\n}\n\nexport const AssetFactory = createAbstraction<IAssetFactory>(\"AssetDelivery/AssetFactory\");\n\nexport namespace AssetFactory {\n export type Interface = IAssetFactory;\n export type Asset = IAsset;\n export type AssetData = IAssetData;\n}\n"],"names":["AssetFactory","createAbstraction"],"mappings":";AAOO,MAAMA,eAAeC,kBAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AssetFactory } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AssetFactory } from "./abstractions.js";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AssetRequestFactory as AssetRequestFactoryAbstraction, type IAssetRequestFactory } from "./abstractions.js";
|
|
2
|
+
declare class AssetRequestFactoryImpl implements IAssetRequestFactory {
|
|
3
|
+
create(data: AssetRequestFactoryAbstraction.AssetRequestData): AssetRequestFactoryAbstraction.AssetRequest;
|
|
4
|
+
}
|
|
5
|
+
export declare const AssetRequestFactory: typeof AssetRequestFactoryImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<IAssetRequestFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AssetRequest } from "../../../delivery/AssetDelivery/AssetRequest.js";
|
|
2
|
+
import { AssetRequestFactory } from "./abstractions.js";
|
|
3
|
+
class AssetRequestFactoryImpl {
|
|
4
|
+
create(data) {
|
|
5
|
+
return AssetRequest.create(data);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
const AssetRequest_AssetRequestFactory = AssetRequestFactory.createImplementation({
|
|
9
|
+
implementation: AssetRequestFactoryImpl,
|
|
10
|
+
dependencies: []
|
|
11
|
+
});
|
|
12
|
+
export { AssetRequest_AssetRequestFactory as AssetRequestFactory };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=AssetRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/assetDelivery/AssetRequest/AssetRequest.js","sources":["../../../../src/features/assetDelivery/AssetRequest/AssetRequest.ts"],"sourcesContent":["import { AssetRequest } from \"~/delivery/AssetDelivery/AssetRequest.js\";\nimport {\n AssetRequestFactory as AssetRequestFactoryAbstraction,\n type IAssetRequestFactory\n} from \"./abstractions.js\";\n\nclass AssetRequestFactoryImpl implements IAssetRequestFactory {\n create(\n data: AssetRequestFactoryAbstraction.AssetRequestData\n ): AssetRequestFactoryAbstraction.AssetRequest {\n return AssetRequest.create(data);\n }\n}\n\nexport const AssetRequestFactory = AssetRequestFactoryAbstraction.createImplementation({\n implementation: AssetRequestFactoryImpl,\n dependencies: []\n});\n"],"names":["AssetRequestFactoryImpl","data","AssetRequest","AssetRequestFactory","AssetRequestFactoryAbstraction"],"mappings":";;AAMA,MAAMA;IACF,OACIC,IAAqD,EACV;QAC3C,OAAOC,aAAa,MAAM,CAACD;IAC/B;AACJ;AAEO,MAAME,mCAAsBC,oBAAAA,oBAAmD,CAAC;IACnF,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AssetRequest as IAssetRequest, AssetRequestData as IAssetRequestData, AssetRequestOptions as IAssetRequestOptions } from "../../../delivery/AssetDelivery/AssetRequest.js";
|
|
2
|
+
export interface IAssetRequestFactory {
|
|
3
|
+
create(data: IAssetRequestData<IAssetRequestOptions>): IAssetRequest;
|
|
4
|
+
}
|
|
5
|
+
export declare const AssetRequestFactory: import("@webiny/di").Abstraction<IAssetRequestFactory>;
|
|
6
|
+
export declare namespace AssetRequestFactory {
|
|
7
|
+
type Interface = IAssetRequestFactory;
|
|
8
|
+
type AssetRequest = IAssetRequest;
|
|
9
|
+
type AssetRequestData = IAssetRequestData<IAssetRequestOptions>;
|
|
10
|
+
type AssetRequestOptions = IAssetRequestOptions;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/assetDelivery/AssetRequest/abstractions.js","sources":["../../../../src/features/assetDelivery/AssetRequest/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type {\n AssetRequest as IAssetRequest,\n AssetRequestData as IAssetRequestData,\n AssetRequestOptions as IAssetRequestOptions\n} from \"~/delivery/AssetDelivery/AssetRequest.js\";\n\nexport interface IAssetRequestFactory {\n create(data: IAssetRequestData<IAssetRequestOptions>): IAssetRequest;\n}\n\nexport const AssetRequestFactory = createAbstraction<IAssetRequestFactory>(\n \"AssetDelivery/AssetRequestFactory\"\n);\n\nexport namespace AssetRequestFactory {\n export type Interface = IAssetRequestFactory;\n export type AssetRequest = IAssetRequest;\n export type AssetRequestData = IAssetRequestData<IAssetRequestOptions>;\n export type AssetRequestOptions = IAssetRequestOptions;\n}\n"],"names":["AssetRequestFactory","createAbstraction"],"mappings":";AAWO,MAAMA,sBAAsBC,kBAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AssetRequestFactory } from "./abstractions.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AssetRequestFactory } from "./abstractions.js";
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { AssetRequestResolver } from "./abstractions/AssetRequestResolver.js";
|
|
2
|
+
import { AssetRequestFactory } from "./AssetRequest/abstractions.js";
|
|
3
|
+
declare class FilesAssetRequestResolverImpl implements AssetRequestResolver.Interface {
|
|
4
|
+
private readonly assetRequestFactory;
|
|
5
|
+
constructor(assetRequestFactory: AssetRequestFactory.Interface);
|
|
6
|
+
resolve(request: AssetRequestResolver.Request): Promise<AssetRequestResolver.AssetRequest | undefined>;
|
|
6
7
|
}
|
|
7
|
-
export declare const
|
|
8
|
-
__abstraction: import("@webiny/di").Abstraction<IAssetRequestResolver>;
|
|
8
|
+
export declare const FilesAssetRequestResolver: typeof FilesAssetRequestResolverImpl & {
|
|
9
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions/AssetRequestResolver.js").IAssetRequestResolver>;
|
|
9
10
|
};
|
|
11
|
+
export {};
|
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
class
|
|
1
|
+
import { AssetRequestResolver } from "./abstractions/AssetRequestResolver.js";
|
|
2
|
+
import { AssetRequestFactory } from "./AssetRequest/abstractions.js";
|
|
3
|
+
class FilesAssetRequestResolverImpl {
|
|
4
|
+
constructor(assetRequestFactory){
|
|
5
|
+
this.assetRequestFactory = assetRequestFactory;
|
|
6
|
+
}
|
|
4
7
|
async resolve(request) {
|
|
5
8
|
if (!request.url.startsWith("/files/")) return;
|
|
6
9
|
const params = request.params ?? {};
|
|
7
10
|
const query = request.query ?? {};
|
|
8
11
|
const path = params["*"];
|
|
9
|
-
|
|
10
|
-
...query,
|
|
11
|
-
original: "original" in query
|
|
12
|
-
};
|
|
13
|
-
if (query.width) options.width = parseInt(query.width);
|
|
14
|
-
return new AssetRequest({
|
|
12
|
+
return this.assetRequestFactory.create({
|
|
15
13
|
key: decodeURI(path).replace("/files/", ""),
|
|
16
14
|
context: {
|
|
17
|
-
url: request.url
|
|
15
|
+
url: request.url,
|
|
16
|
+
accept: request.headers?.accept
|
|
18
17
|
},
|
|
19
|
-
options
|
|
18
|
+
options: {
|
|
19
|
+
...query,
|
|
20
|
+
original: "original" in query
|
|
21
|
+
}
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
|
-
const
|
|
24
|
-
implementation:
|
|
25
|
-
dependencies: [
|
|
25
|
+
const FilesAssetRequestResolver = AssetRequestResolver.createImplementation({
|
|
26
|
+
implementation: FilesAssetRequestResolverImpl,
|
|
27
|
+
dependencies: [
|
|
28
|
+
AssetRequestFactory
|
|
29
|
+
]
|
|
26
30
|
});
|
|
27
|
-
export { FilesAssetRequestResolver
|
|
31
|
+
export { FilesAssetRequestResolver };
|
|
28
32
|
|
|
29
33
|
//# sourceMappingURL=FilesAssetRequestResolver.js.map
|