@venizia/ignis-helpers 0.0.1-5 → 0.0.1-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.
Files changed (41) hide show
  1. package/dist/common/constants/http.d.ts +10 -2
  2. package/dist/common/constants/http.d.ts.map +1 -1
  3. package/dist/common/constants/http.js +10 -2
  4. package/dist/common/constants/http.js.map +1 -1
  5. package/dist/helpers/inversion/common/keys.d.ts +0 -1
  6. package/dist/helpers/inversion/common/keys.d.ts.map +1 -1
  7. package/dist/helpers/inversion/common/keys.js +0 -2
  8. package/dist/helpers/inversion/common/keys.js.map +1 -1
  9. package/dist/helpers/inversion/registry.d.ts +1 -8
  10. package/dist/helpers/inversion/registry.d.ts.map +1 -1
  11. package/dist/helpers/inversion/registry.js +0 -9
  12. package/dist/helpers/inversion/registry.js.map +1 -1
  13. package/dist/helpers/storage/base.d.ts +62 -0
  14. package/dist/helpers/storage/base.d.ts.map +1 -0
  15. package/dist/helpers/storage/base.js +74 -0
  16. package/dist/helpers/storage/base.js.map +1 -0
  17. package/dist/helpers/storage/disk/helper.d.ts +61 -0
  18. package/dist/helpers/storage/disk/helper.d.ts.map +1 -0
  19. package/dist/helpers/storage/disk/helper.js +250 -0
  20. package/dist/helpers/storage/disk/helper.js.map +1 -0
  21. package/dist/helpers/storage/disk/index.d.ts +2 -0
  22. package/dist/helpers/storage/disk/index.d.ts.map +1 -0
  23. package/dist/helpers/storage/disk/index.js +18 -0
  24. package/dist/helpers/storage/disk/index.js.map +1 -0
  25. package/dist/helpers/storage/index.d.ts +3 -0
  26. package/dist/helpers/storage/index.d.ts.map +1 -1
  27. package/dist/helpers/storage/index.js +3 -0
  28. package/dist/helpers/storage/index.js.map +1 -1
  29. package/dist/helpers/storage/minio/helper.d.ts +23 -26
  30. package/dist/helpers/storage/minio/helper.d.ts.map +1 -1
  31. package/dist/helpers/storage/minio/helper.js +66 -54
  32. package/dist/helpers/storage/minio/helper.js.map +1 -1
  33. package/dist/helpers/storage/types.d.ts +95 -0
  34. package/dist/helpers/storage/types.d.ts.map +1 -0
  35. package/dist/helpers/storage/types.js +3 -0
  36. package/dist/helpers/storage/types.js.map +1 -0
  37. package/dist/utilities/request.utility.d.ts +13 -0
  38. package/dist/utilities/request.utility.d.ts.map +1 -1
  39. package/dist/utilities/request.utility.js +44 -1
  40. package/dist/utilities/request.utility.js.map +1 -1
  41. package/package.json +6 -5
@@ -0,0 +1,2 @@
1
+ export * from './helper';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/helpers/storage/disk/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./helper"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/storage/disk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
@@ -1,3 +1,6 @@
1
+ export * from './base';
2
+ export * from './disk';
1
3
  export * from './in-memory';
2
4
  export * from './minio';
5
+ export * from './types';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/helpers/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./base"), exports);
18
+ __exportStar(require("./disk"), exports);
17
19
  __exportStar(require("./in-memory"), exports);
18
20
  __exportStar(require("./minio"), exports);
21
+ __exportStar(require("./types"), exports);
19
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/storage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/storage/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,8CAA4B;AAC5B,0CAAwB;AACxB,0CAAwB"}
@@ -1,41 +1,37 @@
1
- import { BaseHelper } from '../../../helpers/base';
2
1
  import { Client, ClientOptions } from 'minio';
3
2
  import { Readable } from 'node:stream';
4
- export interface IUploadFile {
5
- originalname: string;
6
- mimetype: string;
7
- buffer: Buffer;
8
- size: number;
9
- encoding: string;
10
- [key: string | symbol]: any;
3
+ import { BaseStorageHelper } from '../base';
4
+ import { IBucketInfo, IFileStat, IObjectInfo, IStorageHelperOptions, IUploadFile, IUploadResult } from '../types';
5
+ export interface IMinioHelperOptions extends IStorageHelperOptions, ClientOptions {
11
6
  }
12
- export declare class MinioHelper extends BaseHelper {
7
+ export declare class MinioHelper extends BaseStorageHelper {
13
8
  client: Client;
14
- constructor(options: ClientOptions);
9
+ constructor(options: IMinioHelperOptions);
15
10
  isBucketExists(opts: {
16
11
  name: string;
17
12
  }): Promise<boolean>;
18
- getBuckets(): Promise<import("minio").BucketItemFromList[]>;
13
+ getBuckets(): Promise<IBucketInfo[]>;
19
14
  getBucket(opts: {
20
15
  name: string;
21
- }): Promise<import("minio").BucketItemFromList | null | undefined>;
16
+ }): Promise<IBucketInfo | null>;
22
17
  createBucket(opts: {
23
18
  name: string;
24
- }): Promise<import("minio").BucketItemFromList | null | undefined>;
19
+ }): Promise<IBucketInfo | null>;
25
20
  removeBucket(opts: {
26
21
  name: string;
27
22
  }): Promise<boolean>;
28
- getFileType(opts: {
29
- mimeType: string;
30
- }): "unknown" | "image" | "video" | "text";
31
23
  upload(opts: {
32
24
  bucket: string;
33
- files: Array<IUploadFile>;
34
- }): Promise<Array<{
35
- bucket: string;
36
- fileName: string;
37
- link: string;
38
- }>>;
25
+ files: IUploadFile[];
26
+ normalizeNameFn?: (opts: {
27
+ originalName: string;
28
+ folderPath?: string;
29
+ }) => string;
30
+ normalizeLinkFn?: (opts: {
31
+ bucketName: string;
32
+ normalizeName: string;
33
+ }) => string;
34
+ }): Promise<IUploadResult[]>;
39
35
  getFile(opts: {
40
36
  bucket: string;
41
37
  name: string;
@@ -49,19 +45,20 @@ export declare class MinioHelper extends BaseHelper {
49
45
  getStat(opts: {
50
46
  bucket: string;
51
47
  name: string;
52
- }): Promise<import("minio").BucketItemStat>;
48
+ }): Promise<IFileStat>;
53
49
  removeObject(opts: {
54
50
  bucket: string;
55
51
  name: string;
56
52
  }): Promise<void>;
57
53
  removeObjects(opts: {
58
54
  bucket: string;
59
- names: Array<string>;
55
+ names: string[];
60
56
  }): Promise<void>;
61
- getListObjects(opts: {
57
+ listObjects(opts: {
62
58
  bucket: string;
63
59
  prefix?: string;
64
60
  useRecursive?: boolean;
65
- }): import("minio").BucketStream<import("minio/dist/main/internal/type.js").ObjectInfo>;
61
+ maxKeys?: number;
62
+ }): Promise<IObjectInfo[]>;
66
63
  }
67
64
  //# sourceMappingURL=helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/helpers/storage/minio/helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC7B;AAGD,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,EAAE,MAAM,CAAC;gBAEH,OAAO,EAAE,aAAa;IAM5B,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAWrC,UAAU;IAMV,SAAS,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAYhC,YAAY,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAcnC,YAAY,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAazC,WAAW,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAkBhC,MAAM,CAAC,IAAI,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;KAC3B,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IA8DtE,OAAO,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMf,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAO9C,YAAY,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAMnD,aAAa,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE;IAMlE,cAAc,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;CAKjF"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/helpers/storage/minio/helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB,EAAE,aAAa;CAAG;AAGpF,qBAAa,WAAY,SAAQ,iBAAiB;IAChD,MAAM,EAAE,MAAM,CAAC;gBAEH,OAAO,EAAE,mBAAmB;IASlC,cAAc,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAWrC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMpC,SAAS,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAY9D,YAAY,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAcjE,YAAY,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD,MAAM,CAAC,IAAI,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,CAAC;QAClF,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,CAAC;KACnF,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqE5B,OAAO,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE;YACR,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACH,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMf,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAanE,YAAY,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,aAAa,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE,WAAW,CAAC,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAyB3B"}
@@ -1,24 +1,22 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.MinioHelper = void 0;
7
- const common_1 = require("../../../common");
8
- const base_1 = require("../../../helpers/base");
9
4
  const error_1 = require("../../../helpers/error");
10
- const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
11
5
  const minio_1 = require("minio");
12
- // ---------------------------------------------------------------------
13
- class MinioHelper extends base_1.BaseHelper {
6
+ const base_1 = require("../base");
7
+ // ================================================================================
8
+ class MinioHelper extends base_1.BaseStorageHelper {
14
9
  constructor(options) {
15
- super({ scope: MinioHelper.name, identifier: MinioHelper.name });
10
+ super({
11
+ scope: options.scope ?? MinioHelper.name,
12
+ identifier: options.identifier ?? MinioHelper.name,
13
+ });
16
14
  this.client = new minio_1.Client(options);
17
15
  }
18
16
  // ---------------------------------------------------------------------
19
17
  async isBucketExists(opts) {
20
18
  const { name } = opts;
21
- if (!name || (0, isEmpty_1.default)(name)) {
19
+ if (!this.isValidName(name)) {
22
20
  return false;
23
21
  }
24
22
  const isExists = await this.client.bucketExists(name);
@@ -35,14 +33,14 @@ class MinioHelper extends base_1.BaseHelper {
35
33
  if (!isExists) {
36
34
  return null;
37
35
  }
38
- const allBuckets = await this.getBuckets();
39
- const bucket = allBuckets.find(el => el.name === opts.name);
40
- return bucket;
36
+ const buckets = await this.getBuckets();
37
+ const bucket = buckets.find(el => el.name === opts.name);
38
+ return bucket ?? null;
41
39
  }
42
40
  // ---------------------------------------------------------------------
43
41
  async createBucket(opts) {
44
42
  const { name } = opts;
45
- if (!name || (0, isEmpty_1.default)(name)) {
43
+ if (!this.isValidName(name)) {
46
44
  throw (0, error_1.getError)({
47
45
  message: '[createBucket] Invalid name to create bucket!',
48
46
  });
@@ -54,7 +52,7 @@ class MinioHelper extends base_1.BaseHelper {
54
52
  // ---------------------------------------------------------------------
55
53
  async removeBucket(opts) {
56
54
  const { name } = opts;
57
- if (!name || (0, isEmpty_1.default)(name)) {
55
+ if (!this.isValidName(name)) {
58
56
  throw (0, error_1.getError)({
59
57
  message: '[removeBucket] Invalid name to remove bucket!',
60
58
  });
@@ -63,61 +61,53 @@ class MinioHelper extends base_1.BaseHelper {
63
61
  return true;
64
62
  }
65
63
  // ---------------------------------------------------------------------
66
- getFileType(opts) {
67
- const { mimeType } = opts;
68
- if (mimeType?.toLowerCase()?.startsWith(common_1.MimeTypes.IMAGE)) {
69
- return common_1.MimeTypes.IMAGE;
70
- }
71
- if (mimeType?.toLowerCase()?.startsWith(common_1.MimeTypes.VIDEO)) {
72
- return common_1.MimeTypes.VIDEO;
73
- }
74
- if (mimeType?.toLowerCase()?.startsWith(common_1.MimeTypes.TEXT)) {
75
- return common_1.MimeTypes.TEXT;
76
- }
77
- return common_1.MimeTypes.UNKNOWN;
78
- }
79
- // ---------------------------------------------------------------------
80
64
  async upload(opts) {
81
- const { bucket, files } = opts;
65
+ const { bucket, files, normalizeNameFn, normalizeLinkFn } = opts;
82
66
  if (!files || files.length === 0) {
83
67
  return [];
84
68
  }
85
69
  const isExists = await this.isBucketExists({ name: bucket });
86
70
  if (!isExists) {
87
- return [];
71
+ throw (0, error_1.getError)({
72
+ message: `[upload] Bucket does not exist | name: ${bucket}`,
73
+ });
88
74
  }
89
75
  // Validate all files first
90
76
  for (const file of files) {
91
- const { originalname: originalName, size } = file;
92
- if (!originalName || (0, isEmpty_1.default)(originalName)) {
93
- this.logger.error('[upload] Invalid original name!');
94
- throw (0, error_1.getError)({
95
- message: '[upload] Invalid original file name | please check again files!',
96
- });
77
+ const { originalName, size, folderPath } = file;
78
+ if (!this.isValidName(originalName)) {
79
+ throw (0, error_1.getError)({ message: '[upload] Invalid original file name' });
80
+ }
81
+ if (folderPath && !this.isValidName(folderPath)) {
82
+ throw (0, error_1.getError)({ message: '[upload] Invalid folder path' });
97
83
  }
98
84
  if (!size) {
99
- throw (0, error_1.getError)({
100
- message: `[upload] Invalid file size | please check again update file | name: ${originalName}`,
101
- });
85
+ throw (0, error_1.getError)({ message: `[upload] Invalid file size` });
102
86
  }
103
87
  }
104
- // Upload all files
105
88
  const uploadPromises = files.map(async (file) => {
106
- const { originalname: originalName, mimetype: mimeType, buffer, size, encoding } = file;
107
- const normalizeName = originalName.toLowerCase().replace(/ /g, '_');
108
- const t = new Date().getTime();
109
- const uploadInfo = await this.client.putObject(bucket, normalizeName, buffer, size, {
89
+ const { folderPath, originalName, mimetype: mimeType, buffer, size, encoding } = file;
90
+ const t = performance.now();
91
+ const normalizeName = normalizeNameFn
92
+ ? normalizeNameFn({ originalName, folderPath })
93
+ : folderPath
94
+ ? `${folderPath.toLowerCase().replace(/ /g, '_')}/${originalName.toLowerCase().replace(/ /g, '_')}`
95
+ : originalName.toLowerCase().replace(/ /g, '_');
96
+ const normalizeLink = normalizeLinkFn
97
+ ? normalizeLinkFn({ bucketName: bucket, normalizeName })
98
+ : `/static-assets/${bucket}/${encodeURIComponent(normalizeName)}`;
99
+ await this.client.putObject(bucket, normalizeName, buffer, size, {
110
100
  originalName,
111
101
  normalizeName,
112
102
  size,
113
103
  encoding,
114
104
  mimeType,
115
105
  });
116
- this.logger.info('[upload] Uploaded: %j | Took: %s (ms)', uploadInfo, new Date().getTime() - t);
106
+ this.logger.info('[upload] Uploaded: %j | Took: %s (ms)', { normalizeName, normalizeLink, mimeType, encoding, size }, performance.now() - t);
117
107
  return {
118
- bucket,
119
- fileName: normalizeName,
120
- link: `/static-assets/${bucket}/${encodeURIComponent(normalizeName)}`,
108
+ bucketName: bucket,
109
+ objectName: normalizeName,
110
+ link: normalizeLink,
121
111
  };
122
112
  });
123
113
  return Promise.all(uploadPromises);
@@ -131,7 +121,13 @@ class MinioHelper extends base_1.BaseHelper {
131
121
  async getStat(opts) {
132
122
  const { bucket, name } = opts;
133
123
  const stat = await this.client.statObject(bucket, name);
134
- return stat;
124
+ return {
125
+ size: stat.size,
126
+ metadata: stat.metaData,
127
+ lastModified: stat.lastModified,
128
+ etag: stat.etag,
129
+ versionId: stat.versionId ?? undefined,
130
+ };
135
131
  }
136
132
  // ---------------------------------------------------------------------
137
133
  async removeObject(opts) {
@@ -144,10 +140,26 @@ class MinioHelper extends base_1.BaseHelper {
144
140
  await this.client.removeObjects(bucket, names);
145
141
  }
146
142
  // ---------------------------------------------------------------------
147
- getListObjects(opts) {
148
- const { bucket, prefix = '', useRecursive = false } = opts;
149
- const listObjects = this.client.listObjects(bucket, prefix, useRecursive);
150
- return listObjects;
143
+ async listObjects(opts) {
144
+ const { bucket, prefix = '', useRecursive = false, maxKeys } = opts;
145
+ return new Promise((resolve, reject) => {
146
+ const objects = [];
147
+ const stream = this.client.listObjects(bucket, prefix, useRecursive);
148
+ stream.on('data', obj => {
149
+ objects.push({
150
+ name: obj.name,
151
+ size: obj.size,
152
+ lastModified: obj.lastModified,
153
+ etag: obj.etag,
154
+ prefix: obj.prefix,
155
+ });
156
+ if (maxKeys && objects.length >= maxKeys) {
157
+ stream.destroy();
158
+ }
159
+ });
160
+ stream.on('end', () => resolve(objects));
161
+ stream.on('error', err => reject(err));
162
+ });
151
163
  }
152
164
  }
153
165
  exports.MinioHelper = MinioHelper;
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../src/helpers/storage/minio/helper.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAqC;AACrC,yCAA4C;AAC5C,2CAA2C;AAC3C,6DAAqC;AACrC,iCAA8C;AAa9C,wEAAwE;AACxE,MAAa,WAAY,SAAQ,iBAAU;IAGzC,YAAY,OAAsB;QAChC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,GAAG,IAAI,cAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,cAAc,CAAC,IAAsB;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,SAAS,CAAC,IAAsB;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,YAAY,CAAC,IAAsB;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAA,gBAAQ,EAAC;gBACb,OAAO,EAAE,+CAA+C;aACzD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,YAAY,CAAC,IAAsB;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAA,gBAAQ,EAAC;gBACb,OAAO,EAAE,+CAA+C;aACzD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,WAAW,CAAC,IAA0B;QACpC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,kBAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,kBAAS,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,IAAI,QAAQ,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,kBAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,kBAAS,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,IAAI,QAAQ,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,kBAAS,CAAC,IAAI,CAAC;QACxB,CAAC;QAED,OAAO,kBAAS,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,MAAM,CAAC,IAGZ;QACC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAE/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,2BAA2B;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YAElD,IAAI,CAAC,YAAY,IAAI,IAAA,iBAAO,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACrD,MAAM,IAAA,gBAAQ,EAAC;oBACb,OAAO,EAAE,iEAAiE;iBAC3E,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAA,gBAAQ,EAAC;oBACb,OAAO,EAAE,uEAAuE,YAAY,EAAE;iBAC/F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;YAC5C,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAExF,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAE/B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE;gBAClF,YAAY;gBACZ,aAAa;gBACb,IAAI;gBACJ,QAAQ;gBACR,QAAQ;aACT,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,uCAAuC,EACvC,UAAU,EACV,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CACzB,CAAC;YAEF,OAAO;gBACL,MAAM;gBACN,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,kBAAkB,MAAM,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAE;aACtE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrC,CAAC;IAED,wEAAwE;IACxE,OAAO,CAAC,IASP;QACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,OAAO,CAAC,IAAsC;QAClD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,YAAY,CAAC,IAAsC;QACvD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,aAAa,CAAC,IAA8C;QAChE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,cAAc,CAAC,IAAiE;QAC9E,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA3LD,kCA2LC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../src/helpers/storage/minio/helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { Readable } from 'node:stream';
2
+ export interface IUploadFile {
3
+ originalName: string;
4
+ mimetype: string;
5
+ buffer: Buffer;
6
+ size: number;
7
+ encoding?: string;
8
+ folderPath?: string;
9
+ [key: string | symbol]: any;
10
+ }
11
+ export interface IUploadResult {
12
+ bucketName: string;
13
+ objectName: string;
14
+ link: string;
15
+ metaLink?: any;
16
+ metaLinkError?: any;
17
+ }
18
+ export interface IFileStat {
19
+ size: number;
20
+ metadata: Record<string, any>;
21
+ lastModified?: Date;
22
+ etag?: string;
23
+ versionId?: string;
24
+ }
25
+ export interface IBucketInfo {
26
+ name: string;
27
+ creationDate: Date;
28
+ }
29
+ export interface IObjectInfo {
30
+ name?: string;
31
+ size?: number;
32
+ lastModified?: Date;
33
+ etag?: string;
34
+ prefix?: string;
35
+ }
36
+ export interface IListObjectsOptions {
37
+ bucket: string;
38
+ prefix?: string;
39
+ useRecursive?: boolean;
40
+ maxKeys?: number;
41
+ }
42
+ export interface IStorageHelperOptions {
43
+ scope?: string;
44
+ identifier?: string;
45
+ }
46
+ export interface IStorageHelper {
47
+ isValidName(name: string): boolean;
48
+ isBucketExists(opts: {
49
+ name: string;
50
+ }): Promise<boolean>;
51
+ getBuckets(): Promise<IBucketInfo[]>;
52
+ getBucket(opts: {
53
+ name: string;
54
+ }): Promise<IBucketInfo | null>;
55
+ createBucket(opts: {
56
+ name: string;
57
+ }): Promise<IBucketInfo | null>;
58
+ removeBucket(opts: {
59
+ name: string;
60
+ }): Promise<boolean>;
61
+ upload(opts: {
62
+ bucket: string;
63
+ files: IUploadFile[];
64
+ normalizeNameFn?: (opts: {
65
+ originalName: string;
66
+ folderPath?: string;
67
+ }) => string;
68
+ normalizeLinkFn?: (opts: {
69
+ bucketName: string;
70
+ normalizeName: string;
71
+ }) => string;
72
+ }): Promise<IUploadResult[]>;
73
+ getFile(opts: {
74
+ bucket: string;
75
+ name: string;
76
+ options?: any;
77
+ }): Promise<Readable>;
78
+ getStat(opts: {
79
+ bucket: string;
80
+ name: string;
81
+ }): Promise<IFileStat>;
82
+ removeObject(opts: {
83
+ bucket: string;
84
+ name: string;
85
+ }): Promise<void>;
86
+ removeObjects(opts: {
87
+ bucket: string;
88
+ names: string[];
89
+ }): Promise<void>;
90
+ listObjects(opts: IListObjectsOptions): Promise<IObjectInfo[]>;
91
+ getFileType(opts: {
92
+ mimeType: string;
93
+ }): string;
94
+ }
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/helpers/storage/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/helpers/storage/types.ts"],"names":[],"mappings":""}
@@ -28,5 +28,18 @@ export declare const parseMultipartBody: <C extends {
28
28
  } = {
29
29
  req: any;
30
30
  }>(opts: IParseMultipartOptions<C>) => Promise<IParsedFile[]>;
31
+ /**
32
+ * Sanitizes a filename for safe use, removing path components and dangerous characters.
33
+ * Useful for HTTP headers (e.g., Content-Disposition) and general file handling.
34
+ *
35
+ * @param filename - The original filename to sanitize.
36
+ * @returns A safe, sanitized filename string.
37
+ */
38
+ export declare const sanitizeFilename: (filename: string) => string;
39
+ export declare const encodeRFC5987: (filename: string) => string;
40
+ export declare const createContentDispositionHeader: (opts: {
41
+ filename: string;
42
+ type: "attachment" | "inline";
43
+ }) => string;
31
44
  export {};
32
45
  //# sourceMappingURL=request.utility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC/B;AAED,UAAU,sBAAsB,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE;IACpE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,kBAAkB,GAAU,CAAC,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,EAC5E,MAAM,sBAAsB,CAAC,CAAC,CAAC,KAC9B,OAAO,CAAC,WAAW,EAAE,CA0DvB,CAAC"}
1
+ {"version":3,"file":"request.utility.d.ts","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;CAC/B;AAED,UAAU,sBAAsB,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE;IACpE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,kBAAkB,GAAU,CAAC,SAAS;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,EAC5E,MAAM,sBAAsB,CAAC,CAAC,CAAC,KAC9B,OAAO,CAAC,WAAW,EAAE,CA0DvB,CAAC;AAGF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,KAAG,MAgBnD,CAAC;AAGF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG,MAIhD,CAAC;AAGF,eAAO,MAAM,8BAA8B,GAAI,MAAM;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;CAC/B,KAAG,MAQH,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseMultipartBody = void 0;
6
+ exports.createContentDispositionHeader = exports.encodeRFC5987 = exports.sanitizeFilename = exports.parseMultipartBody = void 0;
7
7
  const error_1 = require("../helpers/error");
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
@@ -57,4 +57,47 @@ const parseMultipartBody = async (opts) => {
57
57
  return files;
58
58
  };
59
59
  exports.parseMultipartBody = parseMultipartBody;
60
+ // -------------------------------------------------------------------------
61
+ /**
62
+ * Sanitizes a filename for safe use, removing path components and dangerous characters.
63
+ * Useful for HTTP headers (e.g., Content-Disposition) and general file handling.
64
+ *
65
+ * @param filename - The original filename to sanitize.
66
+ * @returns A safe, sanitized filename string.
67
+ */
68
+ const sanitizeFilename = (filename) => {
69
+ const basename = node_path_1.default.basename(filename);
70
+ // Remove or replace dangerous characters
71
+ // Allow only alphanumeric, spaces, hyphens, underscores, and dots
72
+ let sanitized = basename.replace(/[^\w\s.-]/g, '_');
73
+ // Remove leading dots
74
+ sanitized = sanitized.replace(/^\.+/, '');
75
+ // Replace consecutive dots with a single dot
76
+ sanitized = sanitized.replace(/\.{2,}/g, '.');
77
+ // Remove any occurrence of ".."
78
+ sanitized = sanitized.replace(/\.\./g, '.');
79
+ // Prevent empty filename or suspicious patterns
80
+ if (!sanitized || sanitized === '.' || sanitized.includes('..')) {
81
+ sanitized = 'download';
82
+ }
83
+ return sanitized;
84
+ };
85
+ exports.sanitizeFilename = sanitizeFilename;
86
+ // Create RFC 5987 encoded filename
87
+ const encodeRFC5987 = (filename) => {
88
+ return encodeURIComponent(filename)
89
+ .replace(/['()]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase())
90
+ .replace(/\*/g, '%2A');
91
+ };
92
+ exports.encodeRFC5987 = encodeRFC5987;
93
+ // Create safe Content-Disposition header
94
+ const createContentDispositionHeader = (opts) => {
95
+ const { filename, type } = opts;
96
+ const sanitized = (0, exports.sanitizeFilename)(filename);
97
+ const encoded = (0, exports.encodeRFC5987)(sanitized);
98
+ // Use both ASCII fallback and UTF-8 encoded version for better compatibility
99
+ // filename= for old browsers, filename*= for modern browsers with UTF-8 support
100
+ return `${type}; filename="${sanitized}"; filename*=UTF-8''${encoded}`;
101
+ };
102
+ exports.createContentDispositionHeader = createContentDispositionHeader;
60
103
  //# sourceMappingURL=request.utility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.utility.js","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA2C;AAC3C,sDAAyB;AACzB,0DAA6B;AA2BtB,MAAM,kBAAkB,GAAG,KAAK,EACrC,IAA+B,EACP,EAAE;IAC1B,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,SAAS,GAAG,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEtE,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,KAAa,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAExC,MAAM,UAAU,GAAgB;YAC9B,SAAS;YACT,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,QAAQ,EAAE,MAAM,EAAE,mBAAmB;YACrC,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QAEF,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,4CAA4C;gBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7D,8CAA8C;gBAC9C,MAAM,aAAa,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;gBAChF,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;gBACjE,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAEhD,iBAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAEnC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBAC/B,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC3B,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,gBAAQ,EAAC;oBACb,OAAO,EAAE,iCAAiC,OAAO,sDAAsD;iBACxG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AA5DW,QAAA,kBAAkB,sBA4D7B"}
1
+ {"version":3,"file":"request.utility.js","sourceRoot":"","sources":["../../src/utilities/request.utility.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ignis-helpers",
3
- "version": "0.0.1-5",
3
+ "version": "0.0.1-7",
4
4
  "description": "Utility helpers for the Ignis Framework - logging, cron, Redis, queues, storage, and more",
5
5
  "keywords": [
6
6
  "ignis",
@@ -52,7 +52,8 @@
52
52
  "dist",
53
53
  "!/**/tests",
54
54
  "!/**/dist/tests",
55
- "!/**/__tests__"
55
+ "!/**/__tests__",
56
+ "!**/*.tsbuildinfo"
56
57
  ],
57
58
  "publishConfig": {
58
59
  "access": "public"
@@ -85,12 +86,12 @@
85
86
  "bugs": {
86
87
  "url": "https://github.com/VENIZIA-AI/ignis/issues"
87
88
  },
88
- "homepage": "https://github.com/VENIZIA-AI/ignis/wiki",
89
+ "homepage": "https://venizia-ai.github.io/ignis",
89
90
  "license": "MIT",
90
91
  "dependencies": {
91
92
  "@socket.io/redis-adapter": "^8.3.0",
92
93
  "@socket.io/redis-emitter": "^5.1.0",
93
- "@venizia/ignis-inversion": "^0.0.1-3",
94
+ "@venizia/ignis-inversion": "^0.0.1-8",
94
95
  "axios": "^1.12.2",
95
96
  "bullmq": "^5.63.1",
96
97
  "cron": "^4.3.3",
@@ -125,7 +126,7 @@
125
126
  "@hono/zod-openapi": "^1.1.5",
126
127
  "@types/bun": "^1.3.4",
127
128
  "@types/lodash": "^4.17.20",
128
- "@venizia/dev-configs": "^0.0.1-3",
129
+ "@venizia/dev-configs": "^0.0.1-4",
129
130
  "eslint": "^9.36.0",
130
131
  "prettier": "^3.6.2",
131
132
  "tsc-alias": "^1.8.16",