@crowdin/app-project-module 0.98.0-cf-16 → 0.98.0-cf-17
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.
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -10,20 +33,41 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
33
|
};
|
|
11
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
35
|
exports.applyFileProcessorsModuleDefaults = void 0;
|
|
13
|
-
|
|
14
|
-
|
|
36
|
+
function loadAwsSdk() {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
try {
|
|
39
|
+
const [s3Client, s3Presigner] = yield Promise.all([
|
|
40
|
+
Promise.resolve().then(() => __importStar(require('@aws-sdk/client-s3'))),
|
|
41
|
+
Promise.resolve().then(() => __importStar(require('@aws-sdk/s3-request-presigner'))),
|
|
42
|
+
]);
|
|
43
|
+
return {
|
|
44
|
+
S3Client: s3Client.S3Client,
|
|
45
|
+
GetObjectCommand: s3Client.GetObjectCommand,
|
|
46
|
+
PutObjectCommand: s3Client.PutObjectCommand,
|
|
47
|
+
getSignedUrl: s3Presigner.getSignedUrl,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
catch (_a) {
|
|
51
|
+
throw new Error('AWS SDK is not installed. To use S3 file storage, install required packages:\n' +
|
|
52
|
+
'npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner');
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
15
56
|
function applyFileProcessorsModuleDefaults(config, fileModule) {
|
|
16
57
|
var _a, _b;
|
|
17
58
|
const AWS_TMP_BUCKET_NAME = (_a = config.awsConfig) === null || _a === void 0 ? void 0 : _a.tmpBucketName;
|
|
18
59
|
const AWS_REGION = (_b = config.awsConfig) === null || _b === void 0 ? void 0 : _b.region;
|
|
19
60
|
if (AWS_TMP_BUCKET_NAME && AWS_REGION && !fileModule.storeFile) {
|
|
20
|
-
|
|
61
|
+
let initPromise = null;
|
|
62
|
+
const getS3 = () => (initPromise !== null && initPromise !== void 0 ? initPromise : (initPromise = loadAwsSdk().then(sdk => ({ sdk, s3: new sdk.S3Client({ region: AWS_REGION }) }))));
|
|
21
63
|
fileModule.storeFile = (content) => __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const { sdk, s3 } = yield getS3();
|
|
65
|
+
const { GetObjectCommand, PutObjectCommand, getSignedUrl } = sdk;
|
|
22
66
|
const fileName = `file-${config.identifier}-${Date.now()}`;
|
|
23
|
-
const command = new
|
|
67
|
+
const command = new PutObjectCommand({ Bucket: AWS_TMP_BUCKET_NAME, Key: fileName, Body: content });
|
|
24
68
|
yield s3.send(command);
|
|
25
|
-
const getObjectCommand = new
|
|
26
|
-
return
|
|
69
|
+
const getObjectCommand = new GetObjectCommand({ Bucket: AWS_TMP_BUCKET_NAME, Key: fileName });
|
|
70
|
+
return getSignedUrl(s3, getObjectCommand, { expiresIn: 3600 });
|
|
27
71
|
});
|
|
28
72
|
}
|
|
29
73
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crowdin/app-project-module",
|
|
3
|
-
"version": "0.98.0-cf-
|
|
3
|
+
"version": "0.98.0-cf-17",
|
|
4
4
|
"description": "Module that generates for you all common endpoints for serving standalone Crowdin App",
|
|
5
5
|
"main": "out/index.js",
|
|
6
6
|
"types": "out/index.d.ts",
|
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
"out/**/*"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@aws-sdk/client-s3": "^3.758.0",
|
|
23
|
-
"@aws-sdk/s3-request-presigner": "^3.758.0",
|
|
24
22
|
"@crowdin/crowdin-apps-functions": "^0.12.0",
|
|
25
23
|
"@crowdin/logs-formatter": "^2.1.8",
|
|
26
24
|
"@godaddy/terminus": "^4.12.1",
|
|
@@ -43,7 +41,21 @@
|
|
|
43
41
|
"swagger-jsdoc": "^6.2.8",
|
|
44
42
|
"uuid": "^8.3.2"
|
|
45
43
|
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"@aws-sdk/client-s3": "^3.758.0",
|
|
46
|
+
"@aws-sdk/s3-request-presigner": "^3.758.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"@aws-sdk/client-s3": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
52
|
+
"@aws-sdk/s3-request-presigner": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
46
56
|
"devDependencies": {
|
|
57
|
+
"@aws-sdk/client-s3": "^3.758.0",
|
|
58
|
+
"@aws-sdk/s3-request-presigner": "^3.758.0",
|
|
47
59
|
"@babel/preset-react": "^7.26.3",
|
|
48
60
|
"@cloudflare/workers-types": "^4.20251117.0",
|
|
49
61
|
"@emotion/react": "^11.14.0",
|