@zola_do/seaweed 0.3.5 → 0.3.7

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 @@
1
+ export declare function buildContentDispositionAttachment(filename: string | undefined): string;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildContentDispositionAttachment = buildContentDispositionAttachment;
4
+ const sanitizeFilename = (filename) => {
5
+ const cleaned = String(filename !== null && filename !== void 0 ? filename : 'download')
6
+ .replace(/[\r\n\x00-\x1f]/g, '')
7
+ .replace(/[/\\]/g, '_')
8
+ .trim();
9
+ return cleaned || 'download';
10
+ };
11
+ function buildContentDispositionAttachment(filename) {
12
+ const safe = sanitizeFilename(filename);
13
+ const asciiFallback = safe
14
+ .replace(/[^\x20-\x7E]/g, '_')
15
+ .replace(/["\\]/g, '_')
16
+ .trim() || 'download';
17
+ return `attachment; filename="${asciiFallback}"; filename*=UTF-8''${encodeURIComponent(safe)}`;
18
+ }
19
+ //# sourceMappingURL=content-disposition.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-disposition.helper.js","sourceRoot":"","sources":["../src/content-disposition.helper.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG,CAAC,QAA4B,EAAU,EAAE;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,UAAU,CAAC;SAC3C,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,IAAI,EAAE,CAAC;IAEV,OAAO,OAAO,IAAI,UAAU,CAAC;AAC/B,CAAC,CAAC;AAGF,2CACE,QAA4B;IAE5B,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI;SACvB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,IAAI,EAAE,IAAI,UAAU,CAAC;IAExB,OAAO,yBAAyB,aAAa,uBAAuB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACjG,CAAC"}
@@ -14,6 +14,7 @@ const common_1 = require("@nestjs/common");
14
14
  const types_1 = require("../types");
15
15
  const crypto_1 = require("crypto");
16
16
  const path_1 = require("path");
17
+ const content_disposition_helper_1 = require("../content-disposition.helper");
17
18
  let StorageService = class StorageService {
18
19
  constructor(s3) {
19
20
  this.s3 = s3;
@@ -33,7 +34,7 @@ let StorageService = class StorageService {
33
34
  var _a;
34
35
  const result = await this.s3.getObject(fileInfo.bucketName, fileInfo.filepath);
35
36
  response.setHeader('Content-Type', fileInfo.contentType);
36
- response.setHeader('Content-Disposition', `attachment; filename=${(_a = fileInfo.originalname) !== null && _a !== void 0 ? _a : fileInfo.filepath}`);
37
+ response.setHeader('Content-Disposition', (0, content_disposition_helper_1.buildContentDispositionAttachment)((_a = fileInfo.originalname) !== null && _a !== void 0 ? _a : fileInfo.filepath));
37
38
  return response.send(result);
38
39
  }
39
40
  async generatePresignedDownloadUrl(fileInfo) {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/services/storage.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/services/storage.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zola_do/seaweed",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "AWS S3-compatible storage for NestJS",
5
5
  "author": "zolaDO",
6
6
  "license": "ISC",