@webiny/api-file-manager 0.0.0-mt-3 → 0.0.0-unstable.06b2ede40f
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/FileManagerContextSetup.d.ts +13 -0
- package/FileManagerContextSetup.js +115 -0
- package/FileManagerContextSetup.js.map +1 -0
- package/README.md +1 -1
- package/cmsFileStorage/CmsFilesStorage.d.ts +27 -0
- package/cmsFileStorage/CmsFilesStorage.js +164 -0
- package/cmsFileStorage/CmsFilesStorage.js.map +1 -0
- package/cmsFileStorage/ListFilesWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js +33 -0
- package/cmsFileStorage/ListFilesWhereProcessor.js.map +1 -0
- package/cmsFileStorage/ListTagsWhereProcessor.d.ts +7 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js +33 -0
- package/cmsFileStorage/ListTagsWhereProcessor.js.map +1 -0
- package/cmsFileStorage/file.model.d.ts +6 -0
- package/cmsFileStorage/file.model.js +158 -0
- package/cmsFileStorage/file.model.js.map +1 -0
- package/contants.d.ts +1 -0
- package/contants.js +9 -0
- package/contants.js.map +1 -0
- package/createFileManager/files.crud.d.ts +3 -0
- package/createFileManager/files.crud.js +328 -0
- package/createFileManager/files.crud.js.map +1 -0
- package/createFileManager/index.d.ts +3 -0
- package/createFileManager/index.js +23 -0
- package/createFileManager/index.js.map +1 -0
- package/createFileManager/permissions/FilesPermissions.d.ts +4 -0
- package/createFileManager/permissions/FilesPermissions.js +11 -0
- package/createFileManager/permissions/FilesPermissions.js.map +1 -0
- package/createFileManager/permissions/SettingsPermissions.d.ts +4 -0
- package/createFileManager/permissions/SettingsPermissions.js +11 -0
- package/createFileManager/permissions/SettingsPermissions.js.map +1 -0
- package/createFileManager/settings.crud.d.ts +3 -0
- package/createFileManager/settings.crud.js +117 -0
- package/createFileManager/settings.crud.js.map +1 -0
- package/createFileManager/system.crud.d.ts +3 -0
- package/createFileManager/system.crud.js +88 -0
- package/createFileManager/system.crud.js.map +1 -0
- package/createFileManager/types.d.ts +16 -0
- package/createFileManager/types.js +7 -0
- package/createFileManager/types.js.map +1 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.d.ts +11 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js +74 -0
- package/delivery/AssetDelivery/AliasAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/Asset.d.ts +32 -0
- package/delivery/AssetDelivery/Asset.js +69 -0
- package/delivery/AssetDelivery/Asset.js.map +1 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.d.ts +63 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.js +102 -0
- package/delivery/AssetDelivery/AssetDeliveryConfig.js.map +1 -0
- package/delivery/AssetDelivery/AssetRequest.d.ts +25 -0
- package/delivery/AssetDelivery/AssetRequest.js +29 -0
- package/delivery/AssetDelivery/AssetRequest.js.map +1 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.d.ts +6 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js +37 -0
- package/delivery/AssetDelivery/FilesAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js +15 -0
- package/delivery/AssetDelivery/NullAssetOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetReply.d.ts +4 -0
- package/delivery/AssetDelivery/NullAssetReply.js +20 -0
- package/delivery/AssetDelivery/NullAssetReply.js.map +1 -0
- package/delivery/AssetDelivery/NullAssetResolver.d.ts +5 -0
- package/delivery/AssetDelivery/NullAssetResolver.js +14 -0
- package/delivery/AssetDelivery/NullAssetResolver.js.map +1 -0
- package/delivery/AssetDelivery/NullRequestResolver.d.ts +4 -0
- package/delivery/AssetDelivery/NullRequestResolver.js +14 -0
- package/delivery/AssetDelivery/NullRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.d.ts +8 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.js +25 -0
- package/delivery/AssetDelivery/SetCacheControlHeaders.js.map +1 -0
- package/delivery/AssetDelivery/SetResponseHeaders.d.ts +18 -0
- package/delivery/AssetDelivery/SetResponseHeaders.js +25 -0
- package/delivery/AssetDelivery/SetResponseHeaders.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.d.ts +6 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetContentsReader.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.d.ts +25 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js +38 -0
- package/delivery/AssetDelivery/abstractions/AssetReply.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.d.ts +5 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetResolver.js.map +1 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js +7 -0
- package/delivery/AssetDelivery/abstractions/AssetTransformationStrategy.js.map +1 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.d.ts +2 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js +15 -0
- package/delivery/AssetDelivery/createAssetDeliveryPluginLoader.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js +7 -0
- package/delivery/AssetDelivery/privateFiles/AssetAuthorizer.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js +26 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedAssetReply.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js +15 -0
- package/delivery/AssetDelivery/privateFiles/NotAuthorizedOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js +28 -0
- package/delivery/AssetDelivery/privateFiles/PrivateAuthenticatedAuthorizer.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js +28 -0
- package/delivery/AssetDelivery/privateFiles/PrivateCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.d.ts +8 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +37 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.d.ts +13 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js +63 -0
- package/delivery/AssetDelivery/privateFiles/PrivateFilesAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.d.ts +6 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js +28 -0
- package/delivery/AssetDelivery/privateFiles/PublicCache.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js +27 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPrivateUrlOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js +27 -0
- package/delivery/AssetDelivery/privateFiles/RedirectToPublicUrlOutputStrategy.js.map +1 -0
- package/delivery/AssetDelivery/privateFiles/internalIdentity.d.ts +7 -0
- package/delivery/AssetDelivery/privateFiles/internalIdentity.js +18 -0
- package/delivery/AssetDelivery/privateFiles/internalIdentity.js.map +1 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.d.ts +4 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js +14 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetProcessor.js.map +1 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.d.ts +4 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js +14 -0
- package/delivery/AssetDelivery/transformation/PassthroughAssetTransformationStrategy.js.map +1 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.d.ts +6 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js +26 -0
- package/delivery/AssetDelivery/transformation/TransformationAssetProcessor.js.map +1 -0
- package/delivery/index.d.ts +17 -0
- package/delivery/index.js +194 -0
- package/delivery/index.js.map +1 -0
- package/delivery/setupAssetDelivery.d.ts +6 -0
- package/delivery/setupAssetDelivery.js +128 -0
- package/delivery/setupAssetDelivery.js.map +1 -0
- package/enterprise/applyThreatScanning.d.ts +2 -0
- package/enterprise/applyThreatScanning.js +20 -0
- package/enterprise/applyThreatScanning.js.map +1 -0
- package/graphql/baseSchema.d.ts +3 -0
- package/graphql/baseSchema.js +121 -0
- package/graphql/baseSchema.js.map +1 -0
- package/graphql/createFilesTypeDefs.d.ts +7 -0
- package/graphql/createFilesTypeDefs.js +184 -0
- package/graphql/createFilesTypeDefs.js.map +1 -0
- package/graphql/filesSchema.d.ts +4 -0
- package/graphql/filesSchema.js +89 -0
- package/graphql/filesSchema.js.map +1 -0
- package/graphql/getFileByUrl.d.ts +3 -0
- package/graphql/getFileByUrl.js +78 -0
- package/graphql/getFileByUrl.js.map +1 -0
- package/graphql/index.d.ts +4 -0
- package/graphql/index.js +55 -0
- package/graphql/index.js.map +1 -0
- package/graphql/utils.d.ts +11 -0
- package/graphql/utils.js +24 -0
- package/graphql/utils.js.map +1 -0
- package/handlers/manage/imageManager.d.ts +14 -0
- package/handlers/manage/imageManager.js +75 -0
- package/handlers/manage/imageManager.js.map +1 -0
- package/handlers/manage/index.d.ts +5 -3
- package/handlers/manage/index.js +48 -59
- package/handlers/manage/index.js.map +1 -0
- package/handlers/{transform/utils.d.ts → manage/legacyUtils.d.ts} +2 -2
- package/handlers/{transform/utils.js → manage/legacyUtils.js} +7 -19
- package/handlers/manage/legacyUtils.js.map +1 -0
- package/handlers/manage/utils.d.ts +12 -0
- package/handlers/manage/utils.js +34 -0
- package/handlers/manage/utils.js.map +1 -0
- package/handlers/types.d.ts +8 -0
- package/handlers/types.js +7 -0
- package/handlers/types.js.map +1 -0
- package/handlers/utils/getEnvironment.js +2 -2
- package/handlers/utils/getEnvironment.js.map +1 -0
- package/handlers/utils/getObjectParams.d.ts +3 -4
- package/handlers/utils/getObjectParams.js +3 -7
- package/handlers/utils/getObjectParams.js.map +1 -0
- package/handlers/utils/index.d.ts +0 -1
- package/handlers/utils/index.js +3 -12
- package/handlers/utils/index.js.map +1 -0
- package/index.d.ts +10 -0
- package/index.js +76 -0
- package/index.js.map +1 -0
- package/modelModifier/CmsModelModifier.d.ts +26 -0
- package/modelModifier/CmsModelModifier.js +62 -0
- package/modelModifier/CmsModelModifier.js.map +1 -0
- package/package.json +26 -36
- package/plugins/FilePhysicalStoragePlugin.d.ts +22 -0
- package/plugins/{definitions/FilePhysicalStoragePlugin.js → FilePhysicalStoragePlugin.js} +4 -15
- package/plugins/FilePhysicalStoragePlugin.js.map +1 -0
- package/plugins/{definitions/FileStorageTransformPlugin.d.ts → FileStorageTransformPlugin.d.ts} +10 -10
- package/plugins/{definitions/FileStorageTransformPlugin.js → FileStorageTransformPlugin.js} +4 -16
- package/plugins/FileStorageTransformPlugin.js.map +1 -0
- package/plugins/index.d.ts +2 -2
- package/plugins/index.js +23 -18
- package/plugins/index.js.map +1 -0
- package/storage/FileStorage.d.ts +34 -0
- package/storage/FileStorage.js +90 -0
- package/storage/FileStorage.js.map +1 -0
- package/types/file.d.ts +49 -0
- package/types/file.js +7 -0
- package/types/file.js.map +1 -0
- package/types/file.lifecycle.d.ts +44 -0
- package/types/file.lifecycle.js +7 -0
- package/types/file.lifecycle.js.map +1 -0
- package/types.d.ts +104 -89
- package/types.js +25 -1
- package/types.js.map +1 -0
- package/handlers/download/index.d.ts +0 -3
- package/handlers/download/index.js +0 -125
- package/handlers/transform/index.d.ts +0 -3
- package/handlers/transform/index.js +0 -96
- package/handlers/transform/loaders/imageLoader.d.ts +0 -13
- package/handlers/transform/loaders/imageLoader.js +0 -106
- package/handlers/transform/loaders/index.d.ts +0 -13
- package/handlers/transform/loaders/index.js +0 -13
- package/handlers/transform/loaders/sanitizeImageTransformations.d.ts +0 -7
- package/handlers/transform/loaders/sanitizeImageTransformations.js +0 -51
- package/handlers/transform/managers/imageManager.d.ts +0 -9
- package/handlers/transform/managers/imageManager.js +0 -55
- package/handlers/transform/managers/index.d.ts +0 -9
- package/handlers/transform/managers/index.js +0 -13
- package/handlers/transform/optimizeImage.d.ts +0 -2
- package/handlers/transform/optimizeImage.js +0 -45
- package/handlers/transform/transformImage.d.ts +0 -9
- package/handlers/transform/transformImage.js +0 -30
- package/handlers/utils/createHandler.d.ts +0 -24
- package/handlers/utils/createHandler.js +0 -68
- package/plugins/crud/files/validation.d.ts +0 -3
- package/plugins/crud/files/validation.js +0 -41
- package/plugins/crud/files.crud.d.ts +0 -4
- package/plugins/crud/files.crud.js +0 -427
- package/plugins/crud/settings.crud.d.ts +0 -5
- package/plugins/crud/settings.crud.js +0 -115
- package/plugins/crud/system.crud.d.ts +0 -4
- package/plugins/crud/system.crud.js +0 -145
- package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
- package/plugins/crud/utils/checkBasePermissions.js +0 -33
- package/plugins/crud/utils/createFileModel.d.ts +0 -2
- package/plugins/crud/utils/createFileModel.js +0 -64
- package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
- package/plugins/crud/utils/lifecycleEvents.js +0 -33
- package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -22
- package/plugins/definitions/FilePlugin.d.ts +0 -133
- package/plugins/definitions/FilePlugin.js +0 -64
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/InstallationPlugin.d.ts +0 -19
- package/plugins/definitions/InstallationPlugin.js +0 -40
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
- package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
- package/plugins/graphql.d.ts +0 -4
- package/plugins/graphql.js +0 -274
- package/plugins/storage/FileStorage.d.ts +0 -31
- package/plugins/storage/FileStorage.js +0 -95
- package/plugins/storage/index.d.ts +0 -4
- package/plugins/storage/index.js +0 -22
- package/utils.d.ts +0 -4
- package/utils.js +0 -16
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
11
|
-
|
|
12
|
-
var _sanitizeFilename = _interopRequireDefault(require("sanitize-filename"));
|
|
13
|
-
|
|
14
|
-
var _path = _interopRequireDefault(require("path"));
|
|
15
|
-
|
|
16
|
-
var _utils = require("../utils");
|
|
17
|
-
|
|
18
|
-
var _loaders = _interopRequireDefault(require("../transform/loaders"));
|
|
19
|
-
|
|
20
|
-
const MAX_RETURN_CONTENT_LENGTH = 5000000; // ~4.77MB
|
|
21
|
-
|
|
22
|
-
const DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Based on given path, extracts file key and additional options sent via query params.
|
|
26
|
-
* @param event
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
const extractFilenameOptions = event => {
|
|
30
|
-
const path = (0, _sanitizeFilename.default)(event.pathParameters.path);
|
|
31
|
-
return {
|
|
32
|
-
filename: decodeURI(path),
|
|
33
|
-
options: event.queryStringParameters,
|
|
34
|
-
extension: _path.default.extname(path)
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const getS3Object = async (event, s3, context) => {
|
|
39
|
-
const {
|
|
40
|
-
options,
|
|
41
|
-
filename,
|
|
42
|
-
extension
|
|
43
|
-
} = extractFilenameOptions(event);
|
|
44
|
-
|
|
45
|
-
for (let i = 0; i < _loaders.default.length; i++) {
|
|
46
|
-
const loader = _loaders.default[i];
|
|
47
|
-
const canProcess = loader.canProcess({
|
|
48
|
-
context,
|
|
49
|
-
s3,
|
|
50
|
-
options,
|
|
51
|
-
file: {
|
|
52
|
-
name: filename,
|
|
53
|
-
extension
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
if (canProcess) {
|
|
58
|
-
return loader.process({
|
|
59
|
-
context,
|
|
60
|
-
s3,
|
|
61
|
-
options,
|
|
62
|
-
file: {
|
|
63
|
-
name: filename,
|
|
64
|
-
extension
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
} // If no processors handled the file request, just return the S3 object by default.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const params = (0, _utils.getObjectParams)(filename);
|
|
72
|
-
return {
|
|
73
|
-
object: await s3.getObject(params).promise(),
|
|
74
|
-
params: params
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
var _default = () => ({
|
|
79
|
-
type: "handler",
|
|
80
|
-
name: "handler-download-file",
|
|
81
|
-
|
|
82
|
-
async handle(context) {
|
|
83
|
-
const event = context.invocationArgs;
|
|
84
|
-
const handler = (0, _utils.createHandler)(async event => {
|
|
85
|
-
const {
|
|
86
|
-
region
|
|
87
|
-
} = (0, _utils.getEnvironment)();
|
|
88
|
-
const s3 = new _s.default({
|
|
89
|
-
region
|
|
90
|
-
});
|
|
91
|
-
const {
|
|
92
|
-
params,
|
|
93
|
-
object
|
|
94
|
-
} = await getS3Object(event, s3, context);
|
|
95
|
-
|
|
96
|
-
if (object.ContentLength < MAX_RETURN_CONTENT_LENGTH) {
|
|
97
|
-
return {
|
|
98
|
-
data: object.Body,
|
|
99
|
-
headers: {
|
|
100
|
-
"Content-Type": object.ContentType,
|
|
101
|
-
"Cache-Control": "public, max-age=" + DEFAULT_CACHE_MAX_AGE
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
} // Lambda can return max 6MB of content, so if our object's size is larger, we are sending
|
|
105
|
-
// a 301 Redirect, redirecting the user to the public URL of the object in S3.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
await s3.putObjectAcl({
|
|
109
|
-
Bucket: params.Bucket,
|
|
110
|
-
ACL: "public-read",
|
|
111
|
-
Key: params.Key
|
|
112
|
-
}).promise();
|
|
113
|
-
return {
|
|
114
|
-
statusCode: 301,
|
|
115
|
-
headers: {
|
|
116
|
-
Location: `https://${params.Bucket}.s3.amazonaws.com/${params.Key}`
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
});
|
|
120
|
-
return await handler(event);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
exports.default = _default;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _s = _interopRequireDefault(require("aws-sdk/clients/s3"));
|
|
13
|
-
|
|
14
|
-
var _transformImage = _interopRequireDefault(require("./transformImage"));
|
|
15
|
-
|
|
16
|
-
var _optimizeImage = _interopRequireDefault(require("./optimizeImage"));
|
|
17
|
-
|
|
18
|
-
var _utils = require("../utils");
|
|
19
|
-
|
|
20
|
-
var _utils2 = require("./utils");
|
|
21
|
-
|
|
22
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
-
|
|
24
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
25
|
-
|
|
26
|
-
var _default = () => ({
|
|
27
|
-
type: "handler",
|
|
28
|
-
name: "handler-download-file",
|
|
29
|
-
|
|
30
|
-
async handle(context) {
|
|
31
|
-
const event = context.invocationArgs;
|
|
32
|
-
const handler = (0, _utils.createHandler)(async ({
|
|
33
|
-
body: {
|
|
34
|
-
transformations,
|
|
35
|
-
key
|
|
36
|
-
}
|
|
37
|
-
}) => {
|
|
38
|
-
try {
|
|
39
|
-
const env = (0, _utils.getEnvironment)();
|
|
40
|
-
const s3 = new _s.default({
|
|
41
|
-
region: env.region
|
|
42
|
-
});
|
|
43
|
-
let optimizedImageObject;
|
|
44
|
-
const params = {
|
|
45
|
-
initial: (0, _utils.getObjectParams)(key),
|
|
46
|
-
optimized: (0, _utils.getObjectParams)((0, _utils2.getImageKey)({
|
|
47
|
-
key
|
|
48
|
-
})),
|
|
49
|
-
optimizedTransformed: (0, _utils.getObjectParams)((0, _utils2.getImageKey)({
|
|
50
|
-
key,
|
|
51
|
-
transformations
|
|
52
|
-
}))
|
|
53
|
-
}; // 1. Get optimized image.
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
optimizedImageObject = await s3.getObject(params.optimized).promise();
|
|
57
|
-
} catch (e) {
|
|
58
|
-
// If not found, try to create it by loading the initially uploaded image.
|
|
59
|
-
optimizedImageObject = await s3.getObject(params.initial).promise();
|
|
60
|
-
await s3.putObject(_objectSpread(_objectSpread({}, params.optimized), {}, {
|
|
61
|
-
ContentType: optimizedImageObject.ContentType,
|
|
62
|
-
Body: await (0, _optimizeImage.default)(optimizedImageObject.Body, optimizedImageObject.ContentType)
|
|
63
|
-
})).promise();
|
|
64
|
-
optimizedImageObject = await s3.getObject(params.optimized).promise();
|
|
65
|
-
} // 2. If no transformations requested, just exit.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (!transformations) {
|
|
69
|
-
return {
|
|
70
|
-
error: false,
|
|
71
|
-
message: ""
|
|
72
|
-
};
|
|
73
|
-
} // 3. If transformations requested, apply them in save it into the bucket.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
await s3.putObject(_objectSpread(_objectSpread({}, params.optimizedTransformed), {}, {
|
|
77
|
-
ContentType: optimizedImageObject.ContentType,
|
|
78
|
-
Body: await (0, _transformImage.default)(optimizedImageObject.Body, transformations)
|
|
79
|
-
})).promise();
|
|
80
|
-
return {
|
|
81
|
-
error: false,
|
|
82
|
-
message: ""
|
|
83
|
-
};
|
|
84
|
-
} catch (e) {
|
|
85
|
-
return {
|
|
86
|
-
error: true,
|
|
87
|
-
message: e.message
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
return await handler(event);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
exports.default = _default;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _sanitizeImageTransformations = _interopRequireDefault(require("./sanitizeImageTransformations"));
|
|
11
|
-
|
|
12
|
-
var _utils = require("../../utils");
|
|
13
|
-
|
|
14
|
-
var _utils2 = require("../utils");
|
|
15
|
-
|
|
16
|
-
// @ts-ignore
|
|
17
|
-
const IMAGE_TRANSFORMER_FUNCTION = process.env.IMAGE_TRANSFORMER_FUNCTION;
|
|
18
|
-
|
|
19
|
-
const callImageTransformerLambda = async ({
|
|
20
|
-
key,
|
|
21
|
-
transformations,
|
|
22
|
-
context
|
|
23
|
-
}) => {
|
|
24
|
-
return await context.handlerClient.invoke({
|
|
25
|
-
name: IMAGE_TRANSFORMER_FUNCTION,
|
|
26
|
-
payload: {
|
|
27
|
-
body: {
|
|
28
|
-
key,
|
|
29
|
-
transformations
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
var _default = {
|
|
36
|
-
canProcess: opts => {
|
|
37
|
-
return _utils2.SUPPORTED_IMAGES.includes(opts.file.extension);
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
async process({
|
|
41
|
-
s3,
|
|
42
|
-
file,
|
|
43
|
-
options,
|
|
44
|
-
context
|
|
45
|
-
}) {
|
|
46
|
-
// Loaders must return {object, params} object.
|
|
47
|
-
let objectParams;
|
|
48
|
-
const transformations = (0, _sanitizeImageTransformations.default)(options);
|
|
49
|
-
|
|
50
|
-
if (transformations && _utils2.SUPPORTED_TRANSFORMABLE_IMAGES.includes(file.extension)) {
|
|
51
|
-
objectParams = (0, _utils.getObjectParams)((0, _utils2.getImageKey)({
|
|
52
|
-
key: file.name,
|
|
53
|
-
transformations
|
|
54
|
-
}));
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
return {
|
|
58
|
-
object: await s3.getObject(objectParams).promise(),
|
|
59
|
-
params: objectParams
|
|
60
|
-
};
|
|
61
|
-
} catch (e) {
|
|
62
|
-
const imageTransformerLambdaResponse = await callImageTransformerLambda({
|
|
63
|
-
key: file.name,
|
|
64
|
-
transformations,
|
|
65
|
-
context
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
if (imageTransformerLambdaResponse.error) {
|
|
69
|
-
throw Error(imageTransformerLambdaResponse.message);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return {
|
|
73
|
-
object: await s3.getObject(objectParams).promise(),
|
|
74
|
-
params: objectParams
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
objectParams = (0, _utils.getObjectParams)((0, _utils2.getImageKey)({
|
|
80
|
-
key: file.name
|
|
81
|
-
}));
|
|
82
|
-
|
|
83
|
-
try {
|
|
84
|
-
return {
|
|
85
|
-
object: await s3.getObject(objectParams).promise(),
|
|
86
|
-
params: objectParams
|
|
87
|
-
};
|
|
88
|
-
} catch (e) {
|
|
89
|
-
const imageTransformerLambdaResponse = await callImageTransformerLambda({
|
|
90
|
-
key: file.name,
|
|
91
|
-
context
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
if (imageTransformerLambdaResponse.error) {
|
|
95
|
-
throw Error(imageTransformerLambdaResponse.message);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return {
|
|
99
|
-
object: await s3.getObject(objectParams).promise(),
|
|
100
|
-
params: objectParams
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
};
|
|
106
|
-
exports.default = _default;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _imageLoader = _interopRequireDefault(require("./imageLoader"));
|
|
11
|
-
|
|
12
|
-
var _default = [_imageLoader.default];
|
|
13
|
-
exports.default = _default;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
const SUPPORTED_IMAGE_RESIZE_WIDTHS = [100, 300, 500, 750, 1000, 1500, 2500];
|
|
8
|
-
/**
|
|
9
|
-
* Takes only allowed transformations into consideration, and discards the rest.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
var _default = args => {
|
|
13
|
-
const transformations = {};
|
|
14
|
-
|
|
15
|
-
if (args) {
|
|
16
|
-
const width = parseInt(args.width);
|
|
17
|
-
|
|
18
|
-
if (width > 0) {
|
|
19
|
-
transformations.width = SUPPORTED_IMAGE_RESIZE_WIDTHS[0];
|
|
20
|
-
let i = SUPPORTED_IMAGE_RESIZE_WIDTHS.length;
|
|
21
|
-
|
|
22
|
-
while (i >= 0) {
|
|
23
|
-
if (width === SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
|
|
24
|
-
transformations.width = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (width > SUPPORTED_IMAGE_RESIZE_WIDTHS[i]) {
|
|
29
|
-
// Use next larger width. If there isn't any, use current.
|
|
30
|
-
transformations.width = SUPPORTED_IMAGE_RESIZE_WIDTHS[i + 1];
|
|
31
|
-
|
|
32
|
-
if (!transformations.width) {
|
|
33
|
-
transformations.width = SUPPORTED_IMAGE_RESIZE_WIDTHS[i];
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
i--;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (Object.keys(transformations).length > 0) {
|
|
45
|
-
return transformations;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return null;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
exports.default = _default;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _utils = require("../../utils");
|
|
9
|
-
|
|
10
|
-
var _utils2 = require("../utils");
|
|
11
|
-
|
|
12
|
-
var _default = {
|
|
13
|
-
canProcess: opts => {
|
|
14
|
-
const {
|
|
15
|
-
key,
|
|
16
|
-
extension
|
|
17
|
-
} = opts;
|
|
18
|
-
|
|
19
|
-
if (!_utils2.SUPPORTED_IMAGES.includes(extension)) {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (key.startsWith(_utils2.OPTIMIZED_IMAGE_PREFIX || key.startsWith(_utils2.OPTIMIZED_TRANSFORMED_IMAGE_PREFIX))) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return true;
|
|
28
|
-
},
|
|
29
|
-
|
|
30
|
-
async process({
|
|
31
|
-
s3,
|
|
32
|
-
key,
|
|
33
|
-
extension
|
|
34
|
-
}) {
|
|
35
|
-
// 1. Get optimized image's key.
|
|
36
|
-
await s3.deleteObject((0, _utils.getObjectParams)((0, _utils2.getImageKey)({
|
|
37
|
-
key
|
|
38
|
-
}))).promise(); // 2. Search for all transformed images and delete those too.
|
|
39
|
-
|
|
40
|
-
if (_utils2.SUPPORTED_TRANSFORMABLE_IMAGES.includes(extension)) {
|
|
41
|
-
const env = (0, _utils.getEnvironment)();
|
|
42
|
-
const imagesList = await s3.listObjects({
|
|
43
|
-
Bucket: env.bucket,
|
|
44
|
-
Prefix: (0, _utils2.getOptimizedTransformedImageKeyPrefix)(key)
|
|
45
|
-
}).promise();
|
|
46
|
-
|
|
47
|
-
for (let i = 0; i < imagesList.Contents.length; i++) {
|
|
48
|
-
const imageObject = imagesList.Contents[i];
|
|
49
|
-
await s3.deleteObject((0, _utils.getObjectParams)(imageObject.Key)).promise();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
exports.default = _default;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _imageManager = _interopRequireDefault(require("./imageManager"));
|
|
11
|
-
|
|
12
|
-
var _default = [_imageManager.default];
|
|
13
|
-
exports.default = _default;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _sharp = _interopRequireDefault(require("sharp"));
|
|
11
|
-
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
var _default = async (buffer, type) => {
|
|
14
|
-
switch (type) {
|
|
15
|
-
case "image/png":
|
|
16
|
-
{
|
|
17
|
-
return await (0, _sharp.default)(buffer).resize({
|
|
18
|
-
width: 2560,
|
|
19
|
-
withoutEnlargement: true,
|
|
20
|
-
fit: "inside"
|
|
21
|
-
}).png({
|
|
22
|
-
compressionLevel: 9,
|
|
23
|
-
adaptiveFiltering: true,
|
|
24
|
-
force: true
|
|
25
|
-
}).withMetadata().toBuffer();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
case "image/jpeg":
|
|
29
|
-
case "image/jpg":
|
|
30
|
-
{
|
|
31
|
-
return await (0, _sharp.default)(buffer).resize({
|
|
32
|
-
width: 2560,
|
|
33
|
-
withoutEnlargement: true,
|
|
34
|
-
fit: "inside"
|
|
35
|
-
}).toFormat("jpeg", {
|
|
36
|
-
quality: 90
|
|
37
|
-
}).toBuffer();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
default:
|
|
41
|
-
return buffer;
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
exports.default = _default;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare const _default: (buffer: any, transformations: any) => Promise<any>;
|
|
2
|
-
/**
|
|
3
|
-
* Only processing "width" at the moment.
|
|
4
|
-
* Check "sanitizeImageTransformations.js" to allow additional image processing transformations.
|
|
5
|
-
* @param buffer
|
|
6
|
-
* @param transformations
|
|
7
|
-
* @returns {Promise<Buffer>}
|
|
8
|
-
*/
|
|
9
|
-
export default _default;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _sharp = _interopRequireDefault(require("sharp"));
|
|
11
|
-
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Only processing "width" at the moment.
|
|
16
|
-
* Check "sanitizeImageTransformations.js" to allow additional image processing transformations.
|
|
17
|
-
* @param buffer
|
|
18
|
-
* @param transformations
|
|
19
|
-
* @returns {Promise<Buffer>}
|
|
20
|
-
*/
|
|
21
|
-
var _default = async (buffer, transformations) => {
|
|
22
|
-
const {
|
|
23
|
-
width
|
|
24
|
-
} = transformations;
|
|
25
|
-
return await (0, _sharp.default)(buffer).resize({
|
|
26
|
-
width
|
|
27
|
-
}).toBuffer();
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
exports.default = _default;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
declare const _default: (handler: any) => (event: any) => Promise<{
|
|
2
|
-
body: string;
|
|
3
|
-
statusCode: number;
|
|
4
|
-
headers: {
|
|
5
|
-
"Cache-Control": string;
|
|
6
|
-
"Access-Control-Allow-Origin": string;
|
|
7
|
-
"Access-Control-Allow-Credentials": boolean;
|
|
8
|
-
};
|
|
9
|
-
isBase64Encoded?: undefined;
|
|
10
|
-
} | {
|
|
11
|
-
isBase64Encoded: boolean;
|
|
12
|
-
statusCode: any;
|
|
13
|
-
headers: any;
|
|
14
|
-
body: any;
|
|
15
|
-
} | {
|
|
16
|
-
statusCode: number;
|
|
17
|
-
headers: {
|
|
18
|
-
"Access-Control-Allow-Origin": string;
|
|
19
|
-
"Access-Control-Allow-Credentials": boolean;
|
|
20
|
-
};
|
|
21
|
-
body: string;
|
|
22
|
-
isBase64Encoded?: undefined;
|
|
23
|
-
}>;
|
|
24
|
-
export default _default;
|