@levrbet/shared 0.1.137 → 0.1.138

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,11 @@
1
+ /**
2
+ * Handles AWS S3 presigned URL generation
3
+ */
4
+ declare class PresignedUrlService {
5
+ private initialized;
6
+ private s3?;
7
+ init(): void;
8
+ generatePresignedImageUrl(keyId: string): Promise<string>;
9
+ }
10
+ export declare const presignedUrlService: PresignedUrlService;
11
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.presignedUrlService = void 0;
4
+ const client_s3_1 = require("@aws-sdk/client-s3");
5
+ const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
6
+ const core_1 = require("../../core");
7
+ const config_1 = require("../config");
8
+ /**
9
+ * Handles AWS S3 presigned URL generation
10
+ */
11
+ class PresignedUrlService {
12
+ constructor() {
13
+ this.initialized = false;
14
+ }
15
+ init() {
16
+ if (this.initialized)
17
+ return;
18
+ this.initialized = true;
19
+ const { AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY } = core_1.Config.init(config_1.awsCredsSchema);
20
+ this.s3 = new client_s3_1.S3Client({
21
+ region: "ap-south-1",
22
+ credentials: {
23
+ accessKeyId: AWS_ACCESS_KEY_ID,
24
+ secretAccessKey: AWS_SECRET_ACCESS_KEY,
25
+ },
26
+ });
27
+ }
28
+ async generatePresignedImageUrl(keyId) {
29
+ if (!this.s3) {
30
+ throw new Error("S3 client not initialized. Call presignedUrlService.init().");
31
+ }
32
+ const command = new client_s3_1.GetObjectCommand({
33
+ Bucket: "leagues",
34
+ Key: keyId,
35
+ });
36
+ const imageUrl = await (0, s3_request_presigner_1.getSignedUrl)(this.s3, command, { expiresIn: 3600 }); // 1 hour expiry
37
+ return imageUrl;
38
+ }
39
+ }
40
+ exports.presignedUrlService = new PresignedUrlService();
41
+ //# sourceMappingURL=presigned.urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presigned.urls.js","sourceRoot":"","sources":["../../../src/server/services/presigned.urls.ts"],"names":[],"mappings":";;;AAAA,kDAA+D;AAC/D,wEAA4D;AAC5D,qCAAmC;AACnC,sCAA0C;AAE1C;;GAEG;AACH,MAAM,mBAAmB;IAAzB;QACY,gBAAW,GAAG,KAAK,CAAA;IA8B/B,CAAC;IA3BG,IAAI;QACA,IAAI,IAAI,CAAC,WAAW;YAAE,OAAM;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAEvB,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,GAAG,aAAM,CAAC,IAAI,CAAC,uBAAc,CAAC,CAAA;QAChF,IAAI,CAAC,EAAE,GAAG,IAAI,oBAAQ,CAAC;YACnB,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE;gBACT,WAAW,EAAE,iBAAiB;gBAC9B,eAAe,EAAE,qBAAqB;aACzC;SACJ,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,KAAa;QACzC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAClF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;YACjC,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,KAAK;SACb,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,mCAAY,EAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,gBAAgB;QAC3F,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AAEY,QAAA,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levrbet/shared",
3
- "version": "0.1.137",
3
+ "version": "0.1.138",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -74,7 +74,9 @@
74
74
  },
75
75
  "dependencies": {
76
76
  "@aws-sdk/client-kms": "^3.913.0",
77
+ "@aws-sdk/client-s3": "^3.926.0",
77
78
  "@aws-sdk/client-sts": "^3.913.0",
79
+ "@aws-sdk/s3-request-presigner": "^3.926.0",
78
80
  "@opentelemetry/api": "^1.9.0",
79
81
  "@opentelemetry/auto-instrumentations-node": "0.65.0",
80
82
  "@opentelemetry/exporter-metrics-otlp-http": "^0.206.0",