@aldb2b/common 1.0.732 → 1.0.735

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.
@@ -0,0 +1,7 @@
1
+ import { RedisClient } from '../utils/redis-client';
2
+ export declare class FileManager {
3
+ static _expireDuration: number;
4
+ static _redisInstance: RedisClient;
5
+ static get _redisClient(): RedisClient;
6
+ static getFileKey(key: string, bucket: string, readFromCache?: boolean): Promise<any>;
7
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileManager = void 0;
4
+ const redis_client_1 = require("../utils/redis-client");
5
+ const is_valid_file_1 = require("./is-valid-file");
6
+ const is_valid_url_1 = require("./is-valid-url");
7
+ const storage_manager_1 = require("./storage-manager");
8
+ class FileManager {
9
+ static get _redisClient() {
10
+ if (!this._redisInstance) {
11
+ this._redisInstance = new redis_client_1.RedisClient();
12
+ }
13
+ return this._redisInstance;
14
+ }
15
+ static async getFileKey(key, bucket, readFromCache = true) {
16
+ if ((0, is_valid_url_1.isValidUrl)(key)) {
17
+ return key;
18
+ }
19
+ else if ((0, is_valid_file_1.isValidFile)(key)) {
20
+ return key;
21
+ }
22
+ else {
23
+ let signedUrl = null;
24
+ if (readFromCache) {
25
+ const redisKey = bucket + '-' + key;
26
+ signedUrl = await this._redisClient.getData(redisKey);
27
+ if (!signedUrl) {
28
+ signedUrl = await storage_manager_1.StorageInstance.getSigendUrl(key, bucket, this._expireDuration);
29
+ if (signedUrl) {
30
+ await this._redisClient.setData(redisKey, signedUrl, this._expireDuration);
31
+ }
32
+ }
33
+ }
34
+ else {
35
+ signedUrl = await storage_manager_1.StorageInstance.getSigendUrl(key, bucket, this._expireDuration);
36
+ }
37
+ return signedUrl;
38
+ }
39
+ }
40
+ }
41
+ exports.FileManager = FileManager;
42
+ FileManager._expireDuration = 360;
43
+ FileManager._redisInstance = null;
44
+ //# sourceMappingURL=file-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/utils/file-manager.ts"],"names":[],"mappings":";;;AAAA,wDAAmD;AACnD,mDAA6C;AAC7C,iDAA2C;AAC3C,uDAAmD;AAEnD,MAAa,WAAW;IAItB,MAAM,KAAK,YAAY;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,0BAAW,EAAE,CAAA;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,MAAc,EAAE,aAAa,GAAG,IAAI;QACvE,IAAI,IAAA,yBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,CAAA;QACZ,CAAC;aAAM,IAAI,IAAA,2BAAW,EAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAA;QACZ,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,GAAG,IAAI,CAAA;YACpB,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA;gBACnC,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACrD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,MAAM,iCAAe,CAAC,YAAY,CAC5C,GAAG,EACH,MAAM,EACN,IAAI,CAAC,eAAe,CACrB,CAAA;oBACD,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAC7B,QAAQ,EACR,SAAS,EACT,IAAI,CAAC,eAAe,CACrB,CAAA;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,MAAM,iCAAe,CAAC,YAAY,CAC5C,GAAG,EACH,MAAM,EACN,IAAI,CAAC,eAAe,CACrB,CAAA;YACH,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;;AA5CH,kCA6CC;AA5CQ,2BAAe,GAAG,GAAG,CAAA;AACrB,0BAAc,GAAgB,IAAI,CAAA"}
@@ -6,6 +6,9 @@ function getParsedQuery(data, queryField = 'query') {
6
6
  if (data[queryField]) {
7
7
  return parseObject(data[queryField]);
8
8
  }
9
+ else {
10
+ return {};
11
+ }
9
12
  }
10
13
  else {
11
14
  return parseObject(data);
@@ -1 +1 @@
1
- {"version":3,"file":"get-parsed-query.js","sourceRoot":"","sources":["../../src/utils/get-parsed-query.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,IAAS,EAAE,aAAqB,OAAO;IACpE,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AARD,wCAQC;AAED,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,EAAE;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"get-parsed-query.js","sourceRoot":"","sources":["../../src/utils/get-parsed-query.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,IAAS,EAAE,aAAqB,OAAO;IACpE,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACrB,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,WAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AAVD,wCAUC;AAED,MAAM,WAAW,GAAG,CAAC,IAAS,EAAE,EAAE;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function isValidFile(value: string): boolean;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidFile = void 0;
4
+ function isValidFile(value) {
5
+ try {
6
+ return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(value);
7
+ }
8
+ catch (err) {
9
+ return false;
10
+ }
11
+ }
12
+ exports.isValidFile = isValidFile;
13
+ //# sourceMappingURL=is-valid-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-file.js","sourceRoot":"","sources":["../../src/utils/is-valid-file.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC;QACH,OAAO,kFAAkF,CAAC,IAAI,CAC5F,KAAK,CACN,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AARD,kCAQC"}
@@ -0,0 +1 @@
1
+ export declare function isValidUrl(value: string): boolean;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidUrl = void 0;
4
+ function isValidUrl(value) {
5
+ try {
6
+ new URL(value);
7
+ return true;
8
+ }
9
+ catch (err) {
10
+ return false;
11
+ }
12
+ }
13
+ exports.isValidUrl = isValidUrl;
14
+ //# sourceMappingURL=is-valid-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-url.js","sourceRoot":"","sources":["../../src/utils/is-valid-url.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAPD,gCAOC"}
@@ -0,0 +1,9 @@
1
+ declare class StorageManager {
2
+ _AuthorizedAWS: any;
3
+ _AuthorizedS3: any;
4
+ _AuthorizedSNS: any;
5
+ constructor();
6
+ getSigendUrl(key: string, bucketName: string, expireDuration: number): Promise<any>;
7
+ }
8
+ export declare const StorageInstance: Readonly<StorageManager>;
9
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageInstance = void 0;
4
+ const AWS = require("aws-sdk");
5
+ class StorageManager {
6
+ constructor() {
7
+ AWS.config.update({
8
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
9
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
10
+ region: process.env.AWS_REGION,
11
+ signatureVersion: 'v4',
12
+ });
13
+ this._AuthorizedAWS = AWS;
14
+ this._AuthorizedS3 = new AWS.S3();
15
+ this._AuthorizedSNS = new AWS.SNS();
16
+ }
17
+ async getSigendUrl(key, bucketName, expireDuration) {
18
+ const url = await this._AuthorizedS3.getSignedUrlPromise('getObject', {
19
+ Bucket: bucketName,
20
+ Key: key,
21
+ Expires: expireDuration,
22
+ });
23
+ return url;
24
+ }
25
+ }
26
+ const _instance = new StorageManager();
27
+ exports.StorageInstance = Object.freeze(_instance);
28
+ //# sourceMappingURL=storage-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-manager.js","sourceRoot":"","sources":["../../src/utils/storage-manager.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAE9B,MAAM,cAAc;IAKlB;QACE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YAC1C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAClD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;YAC9B,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAA;QAEF,IAAI,CAAC,cAAc,GAAG,GAAG,CAAA;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,CAAA;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,UAAkB,EAAE,cAAsB;QACxE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,WAAW,EAAE;YACpE,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,GAAG;YACR,OAAO,EAAE,cAAc;SACxB,CAAC,CAAA;QACF,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAED,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAA;AACzB,QAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aldb2b/common",
3
- "version": "1.0.732",
3
+ "version": "1.0.735",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
@@ -29,6 +29,7 @@
29
29
  "@types/express": "^4.17.21",
30
30
  "amqp-connection-manager": "^4.1.14",
31
31
  "amqplib": "^0.10.4",
32
+ "aws-sdk": "^2.1658.0",
32
33
  "class-transformer": "^0.5.1",
33
34
  "class-validator": "^0.14.1",
34
35
  "cryptr": "^6.3.0",