@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
- const client_s3_1 = require("@aws-sdk/client-s3");
14
- const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
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
- const s3 = new client_s3_1.S3Client({ region: AWS_REGION });
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 client_s3_1.PutObjectCommand({ Bucket: AWS_TMP_BUCKET_NAME, Key: fileName, Body: content });
67
+ const command = new PutObjectCommand({ Bucket: AWS_TMP_BUCKET_NAME, Key: fileName, Body: content });
24
68
  yield s3.send(command);
25
- const getObjectCommand = new client_s3_1.GetObjectCommand({ Bucket: AWS_TMP_BUCKET_NAME, Key: fileName });
26
- return (0, s3_request_presigner_1.getSignedUrl)(s3, getObjectCommand, { expiresIn: 3600 });
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-16",
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",