@flusys/nestjs-storage 7.1.0 → 8.0.0-beta.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/config/index.d.ts +3 -3
- package/controllers/file-manager.controller.d.ts +4 -4
- package/controllers/folder.controller.d.ts +2 -2
- package/controllers/index.d.ts +4 -4
- package/controllers/storage-config.controller.d.ts +2 -2
- package/controllers/upload.controller.d.ts +3 -3
- package/docs/index.d.ts +1 -1
- package/docs/storage-swagger.config.d.ts +2 -2
- package/dtos/index.d.ts +4 -4
- package/entities/file-manager-with-company.entity.d.ts +2 -2
- package/entities/file-manager.entity.d.ts +1 -1
- package/entities/folder-with-company.entity.d.ts +1 -1
- package/entities/index.d.ts +15 -15
- package/entities/storage-config-with-company.entity.d.ts +1 -1
- package/enums/index.d.ts +1 -1
- package/fesm/493.js +2768 -0
- package/fesm/537.js +1157 -0
- package/fesm/562.js +786 -0
- package/fesm/{providers/azure-provider.optional.js → chunks/190.js} +33 -30
- package/fesm/chunks/252.js +12 -0
- package/fesm/chunks/327.js +12 -0
- package/fesm/chunks/385.js +12 -0
- package/fesm/{providers/s3-provider.optional.js → chunks/591.js} +37 -34
- package/fesm/chunks/746.js +12 -0
- package/fesm/chunks/798.js +12 -0
- package/fesm/{providers/sftp-provider.optional.js → chunks/918.js} +35 -31
- package/fesm/config/index.js +119 -3
- package/fesm/controllers/index.js +16 -4
- package/fesm/docs/index.js +206 -1
- package/fesm/dtos/index.js +879 -4
- package/fesm/entities/index.js +463 -18
- package/fesm/enums/index.js +36 -1
- package/fesm/index.js +398 -12
- package/fesm/interfaces/index.js +19 -5
- package/fesm/modules/index.js +16 -1
- package/fesm/providers/index.js +364 -3
- package/fesm/runtime.js +252 -0
- package/fesm/services/index.js +16 -6
- package/fesm/utils/index.js +149 -1
- package/index.d.ts +11 -11
- package/interfaces/file-manager.interface.d.ts +1 -1
- package/interfaces/folder.interface.d.ts +1 -1
- package/interfaces/index.d.ts +5 -5
- package/interfaces/storage-config.interface.d.ts +1 -1
- package/interfaces/storage-module-options.interface.d.ts +3 -3
- package/interfaces/storage-provider.interface.d.ts +1 -1
- package/middlewares/file-serve.middleware.d.ts +4 -3
- package/middlewares/index.d.ts +1 -1
- package/modules/index.d.ts +1 -1
- package/modules/storage.module.d.ts +2 -2
- package/package.json +30 -41
- package/providers/azure-provider.optional.d.ts +2 -2
- package/providers/index.d.ts +3 -3
- package/providers/local-provider.d.ts +2 -2
- package/providers/s3-provider.optional.d.ts +2 -2
- package/providers/sftp-provider.optional.d.ts +2 -2
- package/providers/storage-factory.service.d.ts +3 -3
- package/providers/storage-provider.registry.d.ts +2 -2
- package/services/file-manager.service.d.ts +9 -8
- package/services/folder.service.d.ts +6 -6
- package/services/index.d.ts +6 -6
- package/services/storage-config.service.d.ts +3 -3
- package/services/storage-datasource.provider.d.ts +3 -3
- package/services/storage-provider-config.service.d.ts +7 -7
- package/services/upload.service.d.ts +6 -6
- package/utils/image-compressor.util.d.ts +1 -1
- package/utils/index.d.ts +1 -1
- package/cjs/config/event-actions.js +0 -34
- package/cjs/config/index.js +0 -20
- package/cjs/config/message-keys.js +0 -46
- package/cjs/config/storage.constants.js +0 -28
- package/cjs/controllers/file-manager.controller.js +0 -152
- package/cjs/controllers/file-manager.controller.spec.js +0 -135
- package/cjs/controllers/folder.controller.js +0 -102
- package/cjs/controllers/folder.controller.spec.js +0 -86
- package/cjs/controllers/index.js +0 -21
- package/cjs/controllers/storage-config.controller.js +0 -102
- package/cjs/controllers/storage-config.controller.spec.js +0 -85
- package/cjs/controllers/upload.controller.js +0 -234
- package/cjs/controllers/upload.controller.spec.js +0 -132
- package/cjs/docs/index.js +0 -11
- package/cjs/docs/storage-swagger.config.js +0 -188
- package/cjs/docs/storage-swagger.config.spec.js +0 -72
- package/cjs/dtos/file-manager.dto.js +0 -327
- package/cjs/dtos/folder.dto.js +0 -105
- package/cjs/dtos/index.js +0 -21
- package/cjs/dtos/storage-config.dto.js +0 -170
- package/cjs/dtos/upload.dto.js +0 -272
- package/cjs/entities/file-manager-with-company.entity.js +0 -61
- package/cjs/entities/file-manager.entity.js +0 -122
- package/cjs/entities/folder-with-company.entity.js +0 -55
- package/cjs/entities/folder.entity.js +0 -64
- package/cjs/entities/index.js +0 -63
- package/cjs/entities/index.spec.js +0 -18
- package/cjs/entities/storage-config-with-company.entity.js +0 -51
- package/cjs/entities/storage-config.entity.js +0 -96
- package/cjs/enums/file-location.enum.js +0 -17
- package/cjs/enums/index.js +0 -18
- package/cjs/index.js +0 -29
- package/cjs/interfaces/file-manager.interface.js +0 -4
- package/cjs/interfaces/folder.interface.js +0 -4
- package/cjs/interfaces/index.js +0 -22
- package/cjs/interfaces/storage-config.interface.js +0 -4
- package/cjs/interfaces/storage-module-options.interface.js +0 -4
- package/cjs/interfaces/storage-provider.interface.js +0 -4
- package/cjs/middlewares/file-serve.middleware.js +0 -241
- package/cjs/middlewares/file-serve.middleware.spec.js +0 -211
- package/cjs/middlewares/index.js +0 -18
- package/cjs/modules/index.js +0 -18
- package/cjs/modules/storage.module.js +0 -165
- package/cjs/modules/storage.module.spec.js +0 -184
- package/cjs/providers/azure-provider.optional.js +0 -155
- package/cjs/providers/azure-provider.optional.spec.js +0 -228
- package/cjs/providers/index.js +0 -26
- package/cjs/providers/local-provider.js +0 -230
- package/cjs/providers/local-provider.spec.js +0 -239
- package/cjs/providers/s3-provider.optional.js +0 -175
- package/cjs/providers/s3-provider.optional.spec.js +0 -243
- package/cjs/providers/sftp-provider.optional.js +0 -203
- package/cjs/providers/sftp-provider.optional.spec.js +0 -217
- package/cjs/providers/storage-factory.service.js +0 -175
- package/cjs/providers/storage-factory.service.spec.js +0 -253
- package/cjs/providers/storage-provider.registry.js +0 -41
- package/cjs/providers/storage-provider.registry.spec.js +0 -67
- package/cjs/services/file-manager.service.js +0 -387
- package/cjs/services/file-manager.service.spec.js +0 -580
- package/cjs/services/folder.service.js +0 -101
- package/cjs/services/folder.service.spec.js +0 -167
- package/cjs/services/index.js +0 -23
- package/cjs/services/storage-config.service.js +0 -129
- package/cjs/services/storage-config.service.spec.js +0 -257
- package/cjs/services/storage-datasource.provider.js +0 -137
- package/cjs/services/storage-datasource.provider.spec.js +0 -217
- package/cjs/services/storage-provider-config.service.js +0 -171
- package/cjs/services/storage-provider-config.service.spec.js +0 -265
- package/cjs/services/upload.service.js +0 -376
- package/cjs/services/upload.service.spec.js +0 -426
- package/cjs/utils/file-validator.util.js +0 -440
- package/cjs/utils/file-validator.util.spec.js +0 -259
- package/cjs/utils/image-compressor.util.js +0 -162
- package/cjs/utils/image-compressor.util.spec.js +0 -166
- package/cjs/utils/index.js +0 -18
- package/fesm/config/event-actions.js +0 -13
- package/fesm/config/message-keys.js +0 -22
- package/fesm/config/storage.constants.js +0 -7
- package/fesm/controllers/file-manager.controller.js +0 -142
- package/fesm/controllers/file-manager.controller.spec.js +0 -131
- package/fesm/controllers/folder.controller.js +0 -92
- package/fesm/controllers/folder.controller.spec.js +0 -82
- package/fesm/controllers/storage-config.controller.js +0 -92
- package/fesm/controllers/storage-config.controller.spec.js +0 -81
- package/fesm/controllers/upload.controller.js +0 -224
- package/fesm/controllers/upload.controller.spec.js +0 -128
- package/fesm/docs/storage-swagger.config.js +0 -181
- package/fesm/docs/storage-swagger.config.spec.js +0 -68
- package/fesm/dtos/file-manager.dto.js +0 -300
- package/fesm/dtos/folder.dto.js +0 -84
- package/fesm/dtos/storage-config.dto.js +0 -149
- package/fesm/dtos/upload.dto.js +0 -245
- package/fesm/entities/file-manager-with-company.entity.js +0 -51
- package/fesm/entities/file-manager.entity.js +0 -112
- package/fesm/entities/folder-with-company.entity.js +0 -45
- package/fesm/entities/folder.entity.js +0 -54
- package/fesm/entities/index.spec.js +0 -14
- package/fesm/entities/storage-config-with-company.entity.js +0 -41
- package/fesm/entities/storage-config.entity.js +0 -86
- package/fesm/enums/file-location.enum.js +0 -7
- package/fesm/interfaces/file-manager.interface.js +0 -1
- package/fesm/interfaces/folder.interface.js +0 -1
- package/fesm/interfaces/storage-config.interface.js +0 -1
- package/fesm/interfaces/storage-module-options.interface.js +0 -3
- package/fesm/interfaces/storage-provider.interface.js +0 -4
- package/fesm/middlewares/file-serve.middleware.js +0 -190
- package/fesm/middlewares/file-serve.middleware.spec.js +0 -207
- package/fesm/middlewares/index.js +0 -1
- package/fesm/modules/storage.module.js +0 -156
- package/fesm/modules/storage.module.spec.js +0 -180
- package/fesm/providers/azure-provider.optional.spec.js +0 -224
- package/fesm/providers/local-provider.js +0 -182
- package/fesm/providers/local-provider.spec.js +0 -194
- package/fesm/providers/s3-provider.optional.spec.js +0 -239
- package/fesm/providers/sftp-provider.optional.spec.js +0 -213
- package/fesm/providers/storage-factory.service.js +0 -124
- package/fesm/providers/storage-factory.service.spec.js +0 -249
- package/fesm/providers/storage-provider.registry.js +0 -34
- package/fesm/providers/storage-provider.registry.spec.js +0 -63
- package/fesm/services/file-manager.service.js +0 -336
- package/fesm/services/file-manager.service.spec.js +0 -576
- package/fesm/services/folder.service.js +0 -91
- package/fesm/services/folder.service.spec.js +0 -163
- package/fesm/services/storage-config.service.js +0 -119
- package/fesm/services/storage-config.service.spec.js +0 -253
- package/fesm/services/storage-datasource.provider.js +0 -86
- package/fesm/services/storage-datasource.provider.spec.js +0 -172
- package/fesm/services/storage-provider-config.service.js +0 -161
- package/fesm/services/storage-provider-config.service.spec.js +0 -261
- package/fesm/services/upload.service.js +0 -366
- package/fesm/services/upload.service.spec.js +0 -422
- package/fesm/utils/file-validator.util.js +0 -433
- package/fesm/utils/file-validator.util.spec.js +0 -255
- package/fesm/utils/image-compressor.util.js +0 -114
- package/fesm/utils/image-compressor.util.spec.js +0 -162
package/fesm/utils/index.js
CHANGED
|
@@ -1 +1,149 @@
|
|
|
1
|
-
|
|
1
|
+
import * as __rspack_external_sharp from "sharp";
|
|
2
|
+
export const __rspack_esm_id = 152;
|
|
3
|
+
export const __rspack_esm_ids = [152];
|
|
4
|
+
export const __webpack_modules__ = {
|
|
5
|
+
872(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
|
|
7
|
+
// EXPORTS
|
|
8
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
J: () => (/* binding */ ImageCompressor)
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
;// CONCATENATED MODULE: external "sharp"
|
|
13
|
+
|
|
14
|
+
;// CONCATENATED MODULE: ./projects/nestjs-storage/src/utils/image-compressor.util.ts
|
|
15
|
+
|
|
16
|
+
// Handle ESM/CJS interop - sharp exports differently in each module system
|
|
17
|
+
const sharp = __rspack_external_sharp["default"] || __rspack_external_sharp;
|
|
18
|
+
/**
|
|
19
|
+
* Image Compression Utility
|
|
20
|
+
* Handles image compression and format conversion using sharp
|
|
21
|
+
*/ class ImageCompressor {
|
|
22
|
+
/**
|
|
23
|
+
* Dynamically compresses an image based on its format and provided options.
|
|
24
|
+
* - Preserves original format if not overridden
|
|
25
|
+
* - Adjusts compression settings for each codec
|
|
26
|
+
*/ static async compress(buffer, mimetype, options = {}) {
|
|
27
|
+
const { maxWidth = 1280, maxHeight = 1280, quality = 85, format = 'original' } = options;
|
|
28
|
+
// Skip processing for SVG
|
|
29
|
+
if (mimetype === 'image/svg+xml') {
|
|
30
|
+
return {
|
|
31
|
+
buffer,
|
|
32
|
+
format: mimetype
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// Initialize sharp with improved error handling
|
|
36
|
+
const image = sharp(buffer, {
|
|
37
|
+
failOnError: false,
|
|
38
|
+
density: 300
|
|
39
|
+
});
|
|
40
|
+
// Apply initial resize
|
|
41
|
+
image.resize({
|
|
42
|
+
width: maxWidth,
|
|
43
|
+
height: maxHeight,
|
|
44
|
+
fit: 'inside',
|
|
45
|
+
withoutEnlargement: true
|
|
46
|
+
});
|
|
47
|
+
// Determine target format
|
|
48
|
+
let targetFormat = format !== 'original' ? format : mimetype.split('/')[1];
|
|
49
|
+
// Format-specific optimizations
|
|
50
|
+
switch(targetFormat.toLowerCase()){
|
|
51
|
+
case 'jpeg':
|
|
52
|
+
case 'jpg':
|
|
53
|
+
image.jpeg({
|
|
54
|
+
quality,
|
|
55
|
+
mozjpeg: true,
|
|
56
|
+
chromaSubsampling: '4:4:4'
|
|
57
|
+
});
|
|
58
|
+
break;
|
|
59
|
+
case 'png':
|
|
60
|
+
image.png({
|
|
61
|
+
compressionLevel: 9,
|
|
62
|
+
adaptiveFiltering: true,
|
|
63
|
+
palette: true,
|
|
64
|
+
quality,
|
|
65
|
+
colors: 256,
|
|
66
|
+
dither: 1.0
|
|
67
|
+
});
|
|
68
|
+
break;
|
|
69
|
+
case 'webp':
|
|
70
|
+
image.webp({
|
|
71
|
+
quality,
|
|
72
|
+
smartSubsample: true,
|
|
73
|
+
effort: 6,
|
|
74
|
+
lossless: quality === 100
|
|
75
|
+
});
|
|
76
|
+
break;
|
|
77
|
+
case 'avif':
|
|
78
|
+
image.avif({
|
|
79
|
+
quality,
|
|
80
|
+
effort: 6,
|
|
81
|
+
chromaSubsampling: '4:4:4'
|
|
82
|
+
});
|
|
83
|
+
break;
|
|
84
|
+
case 'tiff':
|
|
85
|
+
image.tiff({
|
|
86
|
+
quality,
|
|
87
|
+
compression: 'lzw',
|
|
88
|
+
predictor: 'horizontal',
|
|
89
|
+
pyramid: true
|
|
90
|
+
});
|
|
91
|
+
break;
|
|
92
|
+
case 'gif':
|
|
93
|
+
image.gif({
|
|
94
|
+
colours: 256,
|
|
95
|
+
effort: 10,
|
|
96
|
+
dither: 1
|
|
97
|
+
});
|
|
98
|
+
break;
|
|
99
|
+
case 'jp2':
|
|
100
|
+
image.jp2({
|
|
101
|
+
quality,
|
|
102
|
+
lossless: quality === 100
|
|
103
|
+
});
|
|
104
|
+
break;
|
|
105
|
+
default:
|
|
106
|
+
// Fallback to WebP for best compression/quality ratio
|
|
107
|
+
targetFormat = 'webp';
|
|
108
|
+
image.webp({
|
|
109
|
+
quality,
|
|
110
|
+
smartSubsample: true,
|
|
111
|
+
effort: 6
|
|
112
|
+
});
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
try {
|
|
116
|
+
const compressedBuffer = await image.toBuffer();
|
|
117
|
+
return {
|
|
118
|
+
buffer: compressedBuffer,
|
|
119
|
+
format: `image/${targetFormat}`
|
|
120
|
+
};
|
|
121
|
+
} catch {
|
|
122
|
+
return {
|
|
123
|
+
buffer,
|
|
124
|
+
format: mimetype
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
},
|
|
132
|
+
857(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
133
|
+
/* import */ var _image_compressor_util_js__rspack_import_0 = __webpack_require__(872);
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
137
|
+
J: () => (/* reexport safe */ _image_compressor_util_js__rspack_import_0.J)
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
};
|
|
144
|
+
import { __webpack_require__ } from '../runtime.js';
|
|
145
|
+
var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
|
|
146
|
+
import * as __rspack_chunk_1 from './index.js';
|
|
147
|
+
__webpack_require__.C(__rspack_chunk_1);
|
|
148
|
+
var __webpack_exports__ = __webpack_exec__(857);var __webpack_exports__ImageCompressor = __webpack_exports__.J;
|
|
149
|
+
export { __webpack_exports__ImageCompressor as ImageCompressor };
|
package/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from './controllers';
|
|
2
|
-
export * from './services';
|
|
3
|
-
export * from './entities';
|
|
4
|
-
export * from './modules';
|
|
5
|
-
export * from './config';
|
|
6
|
-
export * from './docs';
|
|
7
|
-
export * from './dtos';
|
|
8
|
-
export * from './enums';
|
|
9
|
-
export * from './interfaces';
|
|
10
|
-
export * from './providers';
|
|
11
|
-
export * from './utils';
|
|
1
|
+
export * from './controllers/index.js';
|
|
2
|
+
export * from './services/index.js';
|
|
3
|
+
export * from './entities/index.js';
|
|
4
|
+
export * from './modules/index.js';
|
|
5
|
+
export * from './config/index.js';
|
|
6
|
+
export * from './docs/index.js';
|
|
7
|
+
export * from './dtos/index.js';
|
|
8
|
+
export * from './enums/index.js';
|
|
9
|
+
export * from './interfaces/index.js';
|
|
10
|
+
export * from './providers/index.js';
|
|
11
|
+
export * from './utils/index.js';
|
package/interfaces/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './file-manager.interface';
|
|
2
|
-
export * from './folder.interface';
|
|
3
|
-
export * from './storage-config.interface';
|
|
4
|
-
export * from './storage-module-options.interface';
|
|
5
|
-
export * from './storage-provider.interface';
|
|
1
|
+
export * from './file-manager.interface.js';
|
|
2
|
+
export * from './folder.interface.js';
|
|
3
|
+
export * from './storage-config.interface.js';
|
|
4
|
+
export * from './storage-module-options.interface.js';
|
|
5
|
+
export * from './storage-provider.interface.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IBootstrapAppConfig, IDataSourceServiceOptions, IDynamicModuleConfig } from '@flusys/nestjs-core';
|
|
2
|
-
import { IModuleEventsConfig } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
-
import { ModuleMetadata, Type } from '@nestjs/common';
|
|
1
|
+
import { type IBootstrapAppConfig, type IDataSourceServiceOptions, type IDynamicModuleConfig } from '@flusys/nestjs-core';
|
|
2
|
+
import { type IModuleEventsConfig } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { type ModuleMetadata, type Type } from '@nestjs/common';
|
|
4
4
|
export interface IStorageModuleConfig extends IDataSourceServiceOptions {
|
|
5
5
|
maxFileSize?: number;
|
|
6
6
|
allowedFileTypes?: string[];
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { NestMiddleware } from '@nestjs/common';
|
|
2
|
-
import { Request, Response, NextFunction } from 'express';
|
|
3
|
-
import { UploadService } from '../services/upload.service';
|
|
1
|
+
import { type NestMiddleware } from '@nestjs/common';
|
|
2
|
+
import { type Request, type Response, type NextFunction } from 'express';
|
|
3
|
+
import { UploadService } from '../services/upload.service.js';
|
|
4
4
|
export declare class FileServeMiddleware implements NestMiddleware {
|
|
5
5
|
private uploadService;
|
|
6
6
|
private readonly uploadDir;
|
|
7
7
|
constructor(uploadService: UploadService);
|
|
8
8
|
use(req: Request, res: Response, next: NextFunction): Promise<void>;
|
|
9
|
+
private serveFile;
|
|
9
10
|
private extractFilePath;
|
|
10
11
|
private resolveFilePath;
|
|
11
12
|
private tryFallbackPaths;
|
package/middlewares/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './file-serve.middleware';
|
|
1
|
+
export * from './file-serve.middleware.js';
|
package/modules/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './storage.module';
|
|
1
|
+
export * from './storage.module.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DynamicModule, MiddlewareConsumer, NestModule } from '@nestjs/common';
|
|
2
|
-
import { StorageModuleAsyncOptions, StorageModuleOptions } from '../interfaces';
|
|
1
|
+
import { type DynamicModule, type MiddlewareConsumer, type NestModule } from '@nestjs/common';
|
|
2
|
+
import { type StorageModuleAsyncOptions, type StorageModuleOptions } from '../interfaces/index.js';
|
|
3
3
|
export declare class StorageModule implements NestModule {
|
|
4
4
|
configure(consumer: MiddlewareConsumer): void;
|
|
5
5
|
static forRoot(options: StorageModuleOptions): DynamicModule;
|
package/package.json
CHANGED
|
@@ -1,96 +1,84 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flusys/nestjs-storage",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-beta.1",
|
|
4
4
|
"description": "Modular storage package with optional AWS S3, Azure Blob, and SFTP providers",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./fesm/index.js",
|
|
7
|
+
"module": "./fesm/index.js",
|
|
8
|
+
"types": "./index.d.ts",
|
|
8
9
|
"sideEffects": false,
|
|
9
10
|
"keywords": [
|
|
10
11
|
"nestjs",
|
|
12
|
+
"@flusys",
|
|
11
13
|
"storage",
|
|
12
14
|
"aws",
|
|
13
15
|
"s3",
|
|
14
16
|
"azure",
|
|
15
17
|
"sftp",
|
|
16
|
-
"upload"
|
|
17
|
-
"@flusys"
|
|
18
|
+
"upload"
|
|
18
19
|
],
|
|
19
20
|
"license": "UNLICENSED",
|
|
20
21
|
"exports": {
|
|
21
22
|
".": {
|
|
22
23
|
"types": "./index.d.ts",
|
|
23
|
-
"import": "./fesm/index.js"
|
|
24
|
-
"require": "./cjs/index.js"
|
|
24
|
+
"import": "./fesm/index.js"
|
|
25
25
|
},
|
|
26
26
|
"./config": {
|
|
27
27
|
"types": "./config/index.d.ts",
|
|
28
|
-
"import": "./fesm/config/index.js"
|
|
29
|
-
"require": "./cjs/config/index.js"
|
|
28
|
+
"import": "./fesm/config/index.js"
|
|
30
29
|
},
|
|
31
30
|
"./controllers": {
|
|
32
31
|
"types": "./controllers/index.d.ts",
|
|
33
|
-
"import": "./fesm/controllers/index.js"
|
|
34
|
-
"require": "./cjs/controllers/index.js"
|
|
32
|
+
"import": "./fesm/controllers/index.js"
|
|
35
33
|
},
|
|
36
34
|
"./docs": {
|
|
37
35
|
"types": "./docs/index.d.ts",
|
|
38
|
-
"import": "./fesm/docs/index.js"
|
|
39
|
-
"require": "./cjs/docs/index.js"
|
|
36
|
+
"import": "./fesm/docs/index.js"
|
|
40
37
|
},
|
|
41
38
|
"./dtos": {
|
|
42
39
|
"types": "./dtos/index.d.ts",
|
|
43
|
-
"import": "./fesm/dtos/index.js"
|
|
44
|
-
"require": "./cjs/dtos/index.js"
|
|
40
|
+
"import": "./fesm/dtos/index.js"
|
|
45
41
|
},
|
|
46
42
|
"./entities": {
|
|
47
43
|
"types": "./entities/index.d.ts",
|
|
48
|
-
"import": "./fesm/entities/index.js"
|
|
49
|
-
"require": "./cjs/entities/index.js"
|
|
44
|
+
"import": "./fesm/entities/index.js"
|
|
50
45
|
},
|
|
51
46
|
"./enums": {
|
|
52
47
|
"types": "./enums/index.d.ts",
|
|
53
|
-
"import": "./fesm/enums/index.js"
|
|
54
|
-
"require": "./cjs/enums/index.js"
|
|
48
|
+
"import": "./fesm/enums/index.js"
|
|
55
49
|
},
|
|
56
50
|
"./interfaces": {
|
|
57
51
|
"types": "./interfaces/index.d.ts",
|
|
58
|
-
"import": "./fesm/interfaces/index.js"
|
|
59
|
-
"require": "./cjs/interfaces/index.js"
|
|
52
|
+
"import": "./fesm/interfaces/index.js"
|
|
60
53
|
},
|
|
61
54
|
"./modules": {
|
|
62
55
|
"types": "./modules/index.d.ts",
|
|
63
|
-
"import": "./fesm/modules/index.js"
|
|
64
|
-
"require": "./cjs/modules/index.js"
|
|
56
|
+
"import": "./fesm/modules/index.js"
|
|
65
57
|
},
|
|
66
58
|
"./providers": {
|
|
67
59
|
"types": "./providers/index.d.ts",
|
|
68
|
-
"import": "./fesm/providers/index.js"
|
|
69
|
-
"require": "./cjs/providers/index.js"
|
|
60
|
+
"import": "./fesm/providers/index.js"
|
|
70
61
|
},
|
|
71
62
|
"./services": {
|
|
72
63
|
"types": "./services/index.d.ts",
|
|
73
|
-
"import": "./fesm/services/index.js"
|
|
74
|
-
"require": "./cjs/services/index.js"
|
|
64
|
+
"import": "./fesm/services/index.js"
|
|
75
65
|
},
|
|
76
66
|
"./utils": {
|
|
77
67
|
"types": "./utils/index.d.ts",
|
|
78
|
-
"import": "./fesm/utils/index.js"
|
|
79
|
-
"require": "./cjs/utils/index.js"
|
|
68
|
+
"import": "./fesm/utils/index.js"
|
|
80
69
|
},
|
|
81
70
|
"./*": {
|
|
82
71
|
"types": "./*.d.ts",
|
|
83
|
-
"import": "
|
|
84
|
-
"require": "./*.js"
|
|
72
|
+
"import": "./fesm/*.js"
|
|
85
73
|
}
|
|
86
74
|
},
|
|
87
75
|
"peerDependencies": {
|
|
88
|
-
"@nestjs/common": "^
|
|
89
|
-
"@nestjs/config": "^
|
|
90
|
-
"@nestjs/core": "^
|
|
91
|
-
"@nestjs/platform-express": "^
|
|
92
|
-
"@nestjs/swagger": "^
|
|
93
|
-
"@nestjs/typeorm": "^
|
|
76
|
+
"@nestjs/common": "^12.0.0",
|
|
77
|
+
"@nestjs/config": "^12.0.0",
|
|
78
|
+
"@nestjs/core": "^12.0.0",
|
|
79
|
+
"@nestjs/platform-express": "^12.0.0",
|
|
80
|
+
"@nestjs/swagger": "^12.0.0",
|
|
81
|
+
"@nestjs/typeorm": "^12.0.0",
|
|
94
82
|
"class-transformer": "^0.5.1",
|
|
95
83
|
"class-validator": "^0.15.0",
|
|
96
84
|
"typeorm": "^0.3.0",
|
|
@@ -103,7 +91,8 @@
|
|
|
103
91
|
"@aws-sdk/s3-request-presigner": "^3.900.0",
|
|
104
92
|
"@azure/storage-blob": "^12.29.0",
|
|
105
93
|
"ssh2-sftp-client": "^12.1.0",
|
|
106
|
-
"express": "^5.0.0"
|
|
94
|
+
"express": "^5.0.0",
|
|
95
|
+
"passport": "^0.7.0"
|
|
107
96
|
},
|
|
108
97
|
"peerDependenciesMeta": {
|
|
109
98
|
"sharp": {
|
|
@@ -129,7 +118,7 @@
|
|
|
129
118
|
}
|
|
130
119
|
},
|
|
131
120
|
"dependencies": {
|
|
132
|
-
"@flusys/nestjs-core": "
|
|
133
|
-
"@flusys/nestjs-shared": "
|
|
121
|
+
"@flusys/nestjs-core": "8.0.0-beta.1",
|
|
122
|
+
"@flusys/nestjs-shared": "8.0.0-beta.1"
|
|
134
123
|
}
|
|
135
124
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UploadOptionsDto } from '../dtos';
|
|
2
|
-
import { IStorageProvider, IUploadedFileInfo } from '../interfaces';
|
|
1
|
+
import { UploadOptionsDto } from '../dtos/index.js';
|
|
2
|
+
import { type IStorageProvider, type IUploadedFileInfo } from '../interfaces/index.js';
|
|
3
3
|
interface AzureConfig {
|
|
4
4
|
accountName: string;
|
|
5
5
|
accountKey: string;
|
package/providers/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './storage-factory.service';
|
|
2
|
-
export * from './storage-provider.registry';
|
|
3
|
-
export * from './local-provider';
|
|
1
|
+
export * from './storage-factory.service.js';
|
|
2
|
+
export * from './storage-provider.registry.js';
|
|
3
|
+
export * from './local-provider.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UploadOptionsDto } from '../dtos/upload.dto';
|
|
2
|
-
import { IStorageProvider, IUploadedFileInfo } from '../interfaces/storage-provider.interface';
|
|
1
|
+
import { UploadOptionsDto } from '../dtos/upload.dto.js';
|
|
2
|
+
import { type IStorageProvider, type IUploadedFileInfo } from '../interfaces/storage-provider.interface.js';
|
|
3
3
|
export declare class LocalProvider implements IStorageProvider {
|
|
4
4
|
private basePath;
|
|
5
5
|
private baseUrl;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UploadOptionsDto } from '../dtos';
|
|
2
|
-
import { IStorageProvider, IUploadedFileInfo } from '../interfaces';
|
|
1
|
+
import { UploadOptionsDto } from '../dtos/index.js';
|
|
2
|
+
import { type IStorageProvider, type IUploadedFileInfo } from '../interfaces/index.js';
|
|
3
3
|
interface S3Config {
|
|
4
4
|
region: string;
|
|
5
5
|
bucket: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UploadOptionsDto } from '../dtos';
|
|
2
|
-
import { IStorageProvider, IUploadedFileInfo } from '../interfaces';
|
|
1
|
+
import { UploadOptionsDto } from '../dtos/index.js';
|
|
2
|
+
import { type IStorageProvider, type IUploadedFileInfo } from '../interfaces/index.js';
|
|
3
3
|
export declare class SftpProvider implements IStorageProvider {
|
|
4
4
|
private sftp;
|
|
5
5
|
private config;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { OnModuleDestroy } from '@nestjs/common';
|
|
2
|
-
import { IStorageProvider, IStorageProviderConfig } from '../interfaces/storage-provider.interface';
|
|
3
|
-
import { StorageConfigService } from '../services';
|
|
1
|
+
import { type OnModuleDestroy } from '@nestjs/common';
|
|
2
|
+
import { type IStorageProvider, type IStorageProviderConfig } from '../interfaces/storage-provider.interface.js';
|
|
3
|
+
import { StorageConfigService } from '../services/index.js';
|
|
4
4
|
export declare class StorageFactoryService implements OnModuleDestroy {
|
|
5
5
|
private readonly configService;
|
|
6
6
|
private readonly cache;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Type } from '@nestjs/common';
|
|
2
|
-
import { IStorageProvider } from '../interfaces';
|
|
1
|
+
import { type Type } from '@nestjs/common';
|
|
2
|
+
import { type IStorageProvider } from '../interfaces/index.js';
|
|
3
3
|
export declare class StorageProviderRegistry {
|
|
4
4
|
private static providers;
|
|
5
5
|
static register(name: string, providerClass: Type<IStorageProvider>): void;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ApiService, HybridCache } from '@flusys/nestjs-shared/classes';
|
|
2
2
|
import { DeleteDto, FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
|
|
3
|
-
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { type ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { SharedPermissionCacheService, UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
|
-
import { QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
|
-
import { CreateFileManagerDto, FilesResponseDto, GetFilesRequestDto, UpdateFileManagerDto } from '../dtos';
|
|
7
|
-
import { FileManager, FileManagerBase } from '../entities';
|
|
8
|
-
import { IFileManager } from '../interfaces';
|
|
9
|
-
import { StorageConfigService } from './storage-config.service';
|
|
10
|
-
import { StorageDataSourceProvider } from './storage-datasource.provider';
|
|
11
|
-
import { UploadService } from './upload.service';
|
|
5
|
+
import { type QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
|
+
import { CreateFileManagerDto, FilesResponseDto, GetFilesRequestDto, UpdateFileManagerDto } from '../dtos/index.js';
|
|
7
|
+
import { FileManager, FileManagerBase } from '../entities/index.js';
|
|
8
|
+
import { type IFileManager } from '../interfaces/index.js';
|
|
9
|
+
import { StorageConfigService } from './storage-config.service.js';
|
|
10
|
+
import { StorageDataSourceProvider } from './storage-datasource.provider.js';
|
|
11
|
+
import { UploadService } from './upload.service.js';
|
|
12
12
|
export declare class FileManagerService extends ApiService<CreateFileManagerDto, UpdateFileManagerDto, IFileManager, FileManagerBase> {
|
|
13
13
|
protected cacheManager: HybridCache;
|
|
14
14
|
protected utilsService: UtilsService;
|
|
@@ -38,6 +38,7 @@ export declare class FileManagerService extends ApiService<CreateFileManagerDto,
|
|
|
38
38
|
private validateFolder;
|
|
39
39
|
private resolveStorageLocation;
|
|
40
40
|
private applyContentTypeFilter;
|
|
41
|
+
private scopeFilesToRequester;
|
|
41
42
|
private applyPrivateFileFilter;
|
|
42
43
|
private groupFilesByConfig;
|
|
43
44
|
private getFileBaseUrl;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { HybridCache, ApiService } from '@flusys/nestjs-shared/classes';
|
|
2
|
-
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
2
|
+
import { type ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
3
3
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
4
4
|
import { SelectQueryBuilder } from 'typeorm';
|
|
5
|
-
import { CreateFolderDto, UpdateFolderDto } from '../dtos';
|
|
6
|
-
import { Folder, FolderBase } from '../entities';
|
|
7
|
-
import { IFolder } from '../interfaces';
|
|
8
|
-
import { StorageConfigService } from './storage-config.service';
|
|
9
|
-
import { StorageDataSourceProvider } from './storage-datasource.provider';
|
|
5
|
+
import { CreateFolderDto, UpdateFolderDto } from '../dtos/index.js';
|
|
6
|
+
import { Folder, FolderBase } from '../entities/index.js';
|
|
7
|
+
import { type IFolder } from '../interfaces/index.js';
|
|
8
|
+
import { StorageConfigService } from './storage-config.service.js';
|
|
9
|
+
import { StorageDataSourceProvider } from './storage-datasource.provider.js';
|
|
10
10
|
export declare class FolderService extends ApiService<CreateFolderDto, UpdateFolderDto, IFolder, FolderBase> {
|
|
11
11
|
protected cacheManager: HybridCache;
|
|
12
12
|
protected utilsService: UtilsService;
|
package/services/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './file-manager.service';
|
|
2
|
-
export * from './folder.service';
|
|
3
|
-
export * from './storage-config.service';
|
|
4
|
-
export * from './storage-provider-config.service';
|
|
5
|
-
export * from './storage-datasource.provider';
|
|
6
|
-
export * from './upload.service';
|
|
1
|
+
export * from './file-manager.service.js';
|
|
2
|
+
export * from './folder.service.js';
|
|
3
|
+
export * from './storage-config.service.js';
|
|
4
|
+
export * from './storage-provider-config.service.js';
|
|
5
|
+
export * from './storage-datasource.provider.js';
|
|
6
|
+
export * from './upload.service.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DatabaseMode } from '@flusys/nestjs-core';
|
|
2
|
-
import { IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
-
import { StorageModuleOptions } from '../interfaces';
|
|
1
|
+
import { type DatabaseMode } from '@flusys/nestjs-core';
|
|
2
|
+
import { type IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { type StorageModuleOptions } from '../interfaces/index.js';
|
|
4
4
|
interface ValidationResult {
|
|
5
5
|
valid: boolean;
|
|
6
6
|
message?: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IDatabaseConfig, ITenantDatabaseConfig } from '@flusys/nestjs-core';
|
|
1
|
+
import { type IDatabaseConfig, type ITenantDatabaseConfig } from '@flusys/nestjs-core';
|
|
2
2
|
import { MultiTenantDataSourceService } from '@flusys/nestjs-shared/modules';
|
|
3
|
-
import { Request } from 'express';
|
|
3
|
+
import { type Request } from 'express';
|
|
4
4
|
import { DataSource } from 'typeorm';
|
|
5
|
-
import { StorageConfigService } from './storage-config.service';
|
|
5
|
+
import { StorageConfigService } from './storage-config.service.js';
|
|
6
6
|
export declare class StorageDataSourceProvider extends MultiTenantDataSourceService {
|
|
7
7
|
private readonly configService;
|
|
8
8
|
protected static readonly tenantConnections: Map<string, DataSource>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { HybridCache, ApiService } from '@flusys/nestjs-shared/classes';
|
|
2
2
|
import { DeleteDto } from '@flusys/nestjs-shared/dtos';
|
|
3
|
-
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { type ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
|
-
import { QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
|
-
import { CreateStorageConfigDto, UpdateStorageConfigDto } from '../dtos';
|
|
7
|
-
import { StorageConfig, StorageConfigBase } from '../entities';
|
|
8
|
-
import { IStorageConfig } from '../interfaces';
|
|
9
|
-
import { StorageConfigService } from './storage-config.service';
|
|
10
|
-
import { StorageDataSourceProvider } from './storage-datasource.provider';
|
|
5
|
+
import { type QueryRunner, SelectQueryBuilder } from 'typeorm';
|
|
6
|
+
import { CreateStorageConfigDto, UpdateStorageConfigDto } from '../dtos/index.js';
|
|
7
|
+
import { StorageConfig, StorageConfigBase } from '../entities/index.js';
|
|
8
|
+
import { type IStorageConfig } from '../interfaces/index.js';
|
|
9
|
+
import { StorageConfigService } from './storage-config.service.js';
|
|
10
|
+
import { StorageDataSourceProvider } from './storage-datasource.provider.js';
|
|
11
11
|
export declare class StorageProviderConfigService extends ApiService<CreateStorageConfigDto, UpdateStorageConfigDto, IStorageConfig, StorageConfigBase> {
|
|
12
12
|
protected cacheManager: HybridCache;
|
|
13
13
|
protected utilsService: UtilsService;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
2
|
-
import { UploadOptionsDto } from '../dtos/upload.dto';
|
|
3
|
-
import { IUploadedFileInfo } from '../interfaces/storage-provider.interface';
|
|
4
|
-
import { StorageFactoryService } from '../providers/storage-factory.service';
|
|
5
|
-
import { StorageConfigService } from './storage-config.service';
|
|
6
|
-
import { StorageProviderConfigService } from './storage-provider-config.service';
|
|
1
|
+
import { type ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
2
|
+
import { UploadOptionsDto } from '../dtos/upload.dto.js';
|
|
3
|
+
import { type IUploadedFileInfo } from '../interfaces/storage-provider.interface.js';
|
|
4
|
+
import { StorageFactoryService } from '../providers/storage-factory.service.js';
|
|
5
|
+
import { StorageConfigService } from './storage-config.service.js';
|
|
6
|
+
import { StorageProviderConfigService } from './storage-provider-config.service.js';
|
|
7
7
|
export declare class UploadService {
|
|
8
8
|
private readonly storageFactory;
|
|
9
9
|
private readonly storageConfigService;
|
package/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './image-compressor.util';
|
|
1
|
+
export * from './image-compressor.util.js';
|