@zola_do/seaweed 0.2.17 → 0.3.1

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.
package/README.md CHANGED
@@ -440,3 +440,16 @@ ISC
440
440
  - [Contributing](../../CONTRIBUTING.md)
441
441
  - [Code of Conduct](../../CODE_OF_CONDUCT.md)
442
442
  - [Security Policy](../../SECURITY.md)
443
+
444
+
445
+ ## Configuration Validation
446
+
447
+ Validate S3-compatible storage settings before bootstrap:
448
+
449
+ ```typescript
450
+ import { validateSeaweedEnv } from '@zola_do/seaweed';
451
+
452
+ validateSeaweedEnv();
453
+ ```
454
+
455
+ Required variables: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_ENDPOINT`.
package/dist/index.d.ts CHANGED
@@ -3,3 +3,5 @@ export * from './types';
3
3
  export * from './services/storage.service';
4
4
  export * from './services/seaweed.zola-object-storage';
5
5
  export * from './exceptions';
6
+ export * from './validate-seaweed-env.helper';
7
+ export * from './seaweed-error-response.type';
package/dist/index.js CHANGED
@@ -19,4 +19,6 @@ __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./services/storage.service"), exports);
20
20
  __exportStar(require("./services/seaweed.zola-object-storage"), exports);
21
21
  __exportStar(require("./exceptions"), exports);
22
+ __exportStar(require("./validate-seaweed-env.helper"), exports);
23
+ __exportStar(require("./seaweed-error-response.type"), exports);
22
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,0CAAwB;AACxB,6DAA2C;AAC3C,yEAAuD;AACvD,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,0CAAwB;AACxB,6DAA2C;AAC3C,yEAAuD;AACvD,+CAA6B;AAC7B,gEAA8C;AAC9C,gEAA8C"}
@@ -0,0 +1,9 @@
1
+ export type SeaweedErrorResponse = {
2
+ statusCode: number;
3
+ message: string | string[];
4
+ timestamp?: string;
5
+ path?: string;
6
+ error?: string;
7
+ bucketName?: string;
8
+ filepath?: string;
9
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=seaweed-error-response.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seaweed-error-response.type.js","sourceRoot":"","sources":["../src/seaweed-error-response.type.ts"],"names":[],"mappings":""}
@@ -5,6 +5,10 @@ export type SeaweedStoredFileRef = {
5
5
  contentType: string;
6
6
  originalname: string;
7
7
  };
8
+ export type SeaweedStoredFileMetadata = SeaweedStoredFileRef & {
9
+ size?: number;
10
+ metadata?: Record<string, string>;
11
+ };
8
12
  export declare class SeaweedZolaObjectStorage {
9
13
  private readonly storage;
10
14
  constructor(storage: StorageService);
@@ -18,4 +22,7 @@ export declare class SeaweedZolaObjectStorage {
18
22
  file: SeaweedStoredFileRef;
19
23
  }>;
20
24
  generatePresignedDownloadUrl(fileInfo: Pick<SeaweedStoredFileRef, 'bucketName' | 'filepath' | 'contentType' | 'originalname'>): Promise<string>;
25
+ deleteFile(fileInfo: Pick<SeaweedStoredFileRef, 'bucketName' | 'filepath'>): Promise<void>;
26
+ fileExists(fileInfo: Pick<SeaweedStoredFileRef, 'bucketName' | 'filepath'>): Promise<boolean>;
27
+ getFileMetadata(fileInfo: Pick<SeaweedStoredFileRef, 'bucketName' | 'filepath' | 'contentType' | 'originalname'>): Promise<SeaweedStoredFileMetadata>;
21
28
  }
@@ -38,6 +38,15 @@ let SeaweedZolaObjectStorage = class SeaweedZolaObjectStorage {
38
38
  async generatePresignedDownloadUrl(fileInfo) {
39
39
  return this.storage.generatePresignedDownloadUrl(fileInfo);
40
40
  }
41
+ deleteFile(fileInfo) {
42
+ return this.storage.deleteFile(fileInfo);
43
+ }
44
+ fileExists(fileInfo) {
45
+ return this.storage.fileExists(fileInfo);
46
+ }
47
+ getFileMetadata(fileInfo) {
48
+ return this.storage.getFileMetadata(fileInfo);
49
+ }
41
50
  };
42
51
  exports.SeaweedZolaObjectStorage = SeaweedZolaObjectStorage;
43
52
  exports.SeaweedZolaObjectStorage = SeaweedZolaObjectStorage = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"seaweed.zola-object-storage.js","sourceRoot":"","sources":["../../src/services/seaweed.zola-object-storage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uDAAmD;AAc5C,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,UAAU,CACR,IAAyB,EACzB,UAAkB,EAClB,SAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,EACJ,UAAU,CACsB,CAAC;IACrC,CAAC;IAED,YAAY,CACV,MAAc,EACd,YAAoB,EACpB,QAAgB,EAChB,UAAkB;QAElB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAC9B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,UAAU,CACsB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,QAAwD,EACxD,UAAkB;;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC;YAClE,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,WAAW,EAAE,MAAA,QAAQ,CAAC,WAAW,mCAAI,0BAA0B;YAC/D,UAAU;YACV,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,IAAI,EAAE,MAAM,CAAC,IAA4B;SAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,QAGC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;CACF,CAAA;AApDY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAE2B,gCAAc;GADzC,wBAAwB,CAoDpC"}
1
+ {"version":3,"file":"seaweed.zola-object-storage.js","sourceRoot":"","sources":["../../src/services/seaweed.zola-object-storage.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uDAAmD;AAmB5C,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,UAAU,CACR,IAAyB,EACzB,UAAkB,EAClB,SAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,EACJ,UAAU,CACsB,CAAC;IACrC,CAAC;IAED,YAAY,CACV,MAAc,EACd,YAAoB,EACpB,QAAgB,EAChB,UAAkB;QAElB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAC9B,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,UAAU,CACsB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,QAAwD,EACxD,UAAkB;;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC;YAClE,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,WAAW,EAAE,MAAA,QAAQ,CAAC,WAAW,mCAAI,0BAA0B;YAC/D,UAAU;YACV,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,IAAI,EAAE,MAAM,CAAC,IAA4B;SAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,QAGC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,UAAU,CAAC,QAA+D;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,QAA+D;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe,CACb,QAGC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAuC,CAAC;IACtF,CAAC;CACF,CAAA;AApEY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAE2B,gCAAc;GADzC,wBAAwB,CAoEpC"}
@@ -12,4 +12,9 @@ export declare class StorageService {
12
12
  file: FileInfo;
13
13
  }>;
14
14
  uploadBuffer(buffer: Buffer, originalname: string, mimetype: string, bucketName: string): Promise<FileInfo>;
15
+ deleteFile(fileInfo: Pick<FileInfo, 'bucketName' | 'filepath'>): Promise<void>;
16
+ fileExists(fileInfo: Pick<FileInfo, 'bucketName' | 'filepath'>): Promise<boolean>;
17
+ getFileMetadata(fileInfo: Pick<FileInfo, 'bucketName' | 'filepath' | 'contentType' | 'originalname'>): Promise<FileInfo & {
18
+ size?: number;
19
+ }>;
15
20
  }
@@ -64,6 +64,28 @@ let StorageService = class StorageService {
64
64
  originalname,
65
65
  };
66
66
  }
67
+ async deleteFile(fileInfo) {
68
+ await this.s3.deleteObject(fileInfo.bucketName, fileInfo.filepath);
69
+ }
70
+ async fileExists(fileInfo) {
71
+ try {
72
+ await this.s3.getObject(fileInfo.bucketName, fileInfo.filepath);
73
+ return true;
74
+ }
75
+ catch (_a) {
76
+ return false;
77
+ }
78
+ }
79
+ async getFileMetadata(fileInfo) {
80
+ const buffer = await this.s3.getObject(fileInfo.bucketName, fileInfo.filepath);
81
+ return {
82
+ filepath: fileInfo.filepath,
83
+ bucketName: fileInfo.bucketName,
84
+ contentType: fileInfo.contentType,
85
+ originalname: fileInfo.originalname,
86
+ size: Buffer.isBuffer(buffer) ? buffer.byteLength : undefined,
87
+ };
88
+ }
67
89
  };
68
90
  exports.StorageService = StorageService;
69
91
  exports.StorageService = StorageService = __decorate([
@@ -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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"}
@@ -0,0 +1,4 @@
1
+ export type ValidateSeaweedEnvOptions = {
2
+ required?: boolean;
3
+ };
4
+ export declare function validateSeaweedEnv(options?: ValidateSeaweedEnvOptions): void;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSeaweedEnv = validateSeaweedEnv;
4
+ function validateSeaweedEnv(options = {}) {
5
+ const { required = true } = options;
6
+ if (!required) {
7
+ return;
8
+ }
9
+ for (const key of [
10
+ 'AWS_ACCESS_KEY_ID',
11
+ 'AWS_SECRET_ACCESS_KEY',
12
+ 'AWS_ENDPOINT',
13
+ ]) {
14
+ if (!process.env[key]) {
15
+ throw new Error(`${key} is required`);
16
+ }
17
+ }
18
+ }
19
+ //# sourceMappingURL=validate-seaweed-env.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-seaweed-env.helper.js","sourceRoot":"","sources":["../src/validate-seaweed-env.helper.ts"],"names":[],"mappings":";;AAIA,gDAiBC;AAjBD,SAAgB,kBAAkB,CAChC,UAAqC,EAAE;IAEvC,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI;QAChB,mBAAmB;QACnB,uBAAuB;QACvB,cAAc;KACf,EAAE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zola_do/seaweed",
3
- "version": "0.2.17",
3
+ "version": "0.3.1",
4
4
  "description": "AWS S3-compatible storage for NestJS",
5
5
  "author": "zolaDO",
6
6
  "license": "ISC",