@flusys/nestjs-storage 7.0.2 → 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.
Files changed (202) hide show
  1. package/config/index.d.ts +3 -3
  2. package/controllers/file-manager.controller.d.ts +4 -4
  3. package/controllers/folder.controller.d.ts +2 -2
  4. package/controllers/index.d.ts +4 -4
  5. package/controllers/storage-config.controller.d.ts +2 -2
  6. package/controllers/upload.controller.d.ts +3 -3
  7. package/docs/index.d.ts +1 -1
  8. package/docs/storage-swagger.config.d.ts +2 -2
  9. package/dtos/index.d.ts +4 -4
  10. package/entities/file-manager-with-company.entity.d.ts +2 -2
  11. package/entities/file-manager.entity.d.ts +1 -1
  12. package/entities/folder-with-company.entity.d.ts +1 -1
  13. package/entities/index.d.ts +15 -15
  14. package/entities/storage-config-with-company.entity.d.ts +1 -1
  15. package/enums/index.d.ts +1 -1
  16. package/fesm/493.js +2768 -0
  17. package/fesm/537.js +1157 -0
  18. package/fesm/562.js +786 -0
  19. package/fesm/{providers/azure-provider.optional.js → chunks/190.js} +33 -30
  20. package/fesm/chunks/252.js +12 -0
  21. package/fesm/chunks/327.js +12 -0
  22. package/fesm/chunks/385.js +12 -0
  23. package/fesm/{providers/s3-provider.optional.js → chunks/591.js} +37 -34
  24. package/fesm/chunks/746.js +12 -0
  25. package/fesm/chunks/798.js +12 -0
  26. package/fesm/{providers/sftp-provider.optional.js → chunks/918.js} +35 -31
  27. package/fesm/config/index.js +119 -3
  28. package/fesm/controllers/index.js +16 -4
  29. package/fesm/docs/index.js +206 -1
  30. package/fesm/dtos/index.js +879 -4
  31. package/fesm/entities/index.js +463 -18
  32. package/fesm/enums/index.js +36 -1
  33. package/fesm/index.js +398 -12
  34. package/fesm/interfaces/index.js +19 -5
  35. package/fesm/modules/index.js +16 -1
  36. package/fesm/providers/index.js +364 -3
  37. package/fesm/runtime.js +252 -0
  38. package/fesm/services/index.js +16 -6
  39. package/fesm/utils/index.js +149 -1
  40. package/index.d.ts +11 -11
  41. package/interfaces/file-manager.interface.d.ts +1 -1
  42. package/interfaces/folder.interface.d.ts +1 -1
  43. package/interfaces/index.d.ts +5 -5
  44. package/interfaces/storage-config.interface.d.ts +1 -1
  45. package/interfaces/storage-module-options.interface.d.ts +3 -3
  46. package/interfaces/storage-provider.interface.d.ts +1 -1
  47. package/middlewares/file-serve.middleware.d.ts +4 -3
  48. package/middlewares/index.d.ts +1 -1
  49. package/modules/index.d.ts +1 -1
  50. package/modules/storage.module.d.ts +2 -2
  51. package/package.json +30 -41
  52. package/providers/azure-provider.optional.d.ts +2 -2
  53. package/providers/index.d.ts +3 -3
  54. package/providers/local-provider.d.ts +2 -2
  55. package/providers/s3-provider.optional.d.ts +2 -2
  56. package/providers/sftp-provider.optional.d.ts +2 -2
  57. package/providers/storage-factory.service.d.ts +3 -3
  58. package/providers/storage-provider.registry.d.ts +2 -2
  59. package/services/file-manager.service.d.ts +9 -8
  60. package/services/folder.service.d.ts +6 -6
  61. package/services/index.d.ts +6 -6
  62. package/services/storage-config.service.d.ts +3 -3
  63. package/services/storage-datasource.provider.d.ts +3 -3
  64. package/services/storage-provider-config.service.d.ts +7 -7
  65. package/services/upload.service.d.ts +6 -6
  66. package/utils/image-compressor.util.d.ts +1 -1
  67. package/utils/index.d.ts +1 -1
  68. package/cjs/config/event-actions.js +0 -34
  69. package/cjs/config/index.js +0 -20
  70. package/cjs/config/message-keys.js +0 -46
  71. package/cjs/config/storage.constants.js +0 -28
  72. package/cjs/controllers/file-manager.controller.js +0 -152
  73. package/cjs/controllers/file-manager.controller.spec.js +0 -135
  74. package/cjs/controllers/folder.controller.js +0 -102
  75. package/cjs/controllers/folder.controller.spec.js +0 -86
  76. package/cjs/controllers/index.js +0 -21
  77. package/cjs/controllers/storage-config.controller.js +0 -102
  78. package/cjs/controllers/storage-config.controller.spec.js +0 -85
  79. package/cjs/controllers/upload.controller.js +0 -234
  80. package/cjs/controllers/upload.controller.spec.js +0 -132
  81. package/cjs/docs/index.js +0 -11
  82. package/cjs/docs/storage-swagger.config.js +0 -188
  83. package/cjs/docs/storage-swagger.config.spec.js +0 -72
  84. package/cjs/dtos/file-manager.dto.js +0 -327
  85. package/cjs/dtos/folder.dto.js +0 -105
  86. package/cjs/dtos/index.js +0 -21
  87. package/cjs/dtos/storage-config.dto.js +0 -170
  88. package/cjs/dtos/upload.dto.js +0 -272
  89. package/cjs/entities/file-manager-with-company.entity.js +0 -61
  90. package/cjs/entities/file-manager.entity.js +0 -122
  91. package/cjs/entities/folder-with-company.entity.js +0 -55
  92. package/cjs/entities/folder.entity.js +0 -64
  93. package/cjs/entities/index.js +0 -63
  94. package/cjs/entities/index.spec.js +0 -18
  95. package/cjs/entities/storage-config-with-company.entity.js +0 -51
  96. package/cjs/entities/storage-config.entity.js +0 -96
  97. package/cjs/enums/file-location.enum.js +0 -17
  98. package/cjs/enums/index.js +0 -18
  99. package/cjs/index.js +0 -29
  100. package/cjs/interfaces/file-manager.interface.js +0 -4
  101. package/cjs/interfaces/folder.interface.js +0 -4
  102. package/cjs/interfaces/index.js +0 -22
  103. package/cjs/interfaces/storage-config.interface.js +0 -4
  104. package/cjs/interfaces/storage-module-options.interface.js +0 -4
  105. package/cjs/interfaces/storage-provider.interface.js +0 -4
  106. package/cjs/middlewares/file-serve.middleware.js +0 -241
  107. package/cjs/middlewares/file-serve.middleware.spec.js +0 -211
  108. package/cjs/middlewares/index.js +0 -18
  109. package/cjs/modules/index.js +0 -18
  110. package/cjs/modules/storage.module.js +0 -165
  111. package/cjs/modules/storage.module.spec.js +0 -184
  112. package/cjs/providers/azure-provider.optional.js +0 -155
  113. package/cjs/providers/azure-provider.optional.spec.js +0 -228
  114. package/cjs/providers/index.js +0 -26
  115. package/cjs/providers/local-provider.js +0 -230
  116. package/cjs/providers/local-provider.spec.js +0 -239
  117. package/cjs/providers/s3-provider.optional.js +0 -175
  118. package/cjs/providers/s3-provider.optional.spec.js +0 -243
  119. package/cjs/providers/sftp-provider.optional.js +0 -203
  120. package/cjs/providers/sftp-provider.optional.spec.js +0 -217
  121. package/cjs/providers/storage-factory.service.js +0 -175
  122. package/cjs/providers/storage-factory.service.spec.js +0 -253
  123. package/cjs/providers/storage-provider.registry.js +0 -41
  124. package/cjs/providers/storage-provider.registry.spec.js +0 -67
  125. package/cjs/services/file-manager.service.js +0 -387
  126. package/cjs/services/file-manager.service.spec.js +0 -580
  127. package/cjs/services/folder.service.js +0 -101
  128. package/cjs/services/folder.service.spec.js +0 -167
  129. package/cjs/services/index.js +0 -23
  130. package/cjs/services/storage-config.service.js +0 -129
  131. package/cjs/services/storage-config.service.spec.js +0 -257
  132. package/cjs/services/storage-datasource.provider.js +0 -137
  133. package/cjs/services/storage-datasource.provider.spec.js +0 -217
  134. package/cjs/services/storage-provider-config.service.js +0 -171
  135. package/cjs/services/storage-provider-config.service.spec.js +0 -265
  136. package/cjs/services/upload.service.js +0 -376
  137. package/cjs/services/upload.service.spec.js +0 -426
  138. package/cjs/utils/file-validator.util.js +0 -440
  139. package/cjs/utils/file-validator.util.spec.js +0 -259
  140. package/cjs/utils/image-compressor.util.js +0 -162
  141. package/cjs/utils/image-compressor.util.spec.js +0 -166
  142. package/cjs/utils/index.js +0 -18
  143. package/fesm/config/event-actions.js +0 -13
  144. package/fesm/config/message-keys.js +0 -22
  145. package/fesm/config/storage.constants.js +0 -7
  146. package/fesm/controllers/file-manager.controller.js +0 -142
  147. package/fesm/controllers/file-manager.controller.spec.js +0 -131
  148. package/fesm/controllers/folder.controller.js +0 -92
  149. package/fesm/controllers/folder.controller.spec.js +0 -82
  150. package/fesm/controllers/storage-config.controller.js +0 -92
  151. package/fesm/controllers/storage-config.controller.spec.js +0 -81
  152. package/fesm/controllers/upload.controller.js +0 -224
  153. package/fesm/controllers/upload.controller.spec.js +0 -128
  154. package/fesm/docs/storage-swagger.config.js +0 -181
  155. package/fesm/docs/storage-swagger.config.spec.js +0 -68
  156. package/fesm/dtos/file-manager.dto.js +0 -300
  157. package/fesm/dtos/folder.dto.js +0 -84
  158. package/fesm/dtos/storage-config.dto.js +0 -149
  159. package/fesm/dtos/upload.dto.js +0 -245
  160. package/fesm/entities/file-manager-with-company.entity.js +0 -51
  161. package/fesm/entities/file-manager.entity.js +0 -112
  162. package/fesm/entities/folder-with-company.entity.js +0 -45
  163. package/fesm/entities/folder.entity.js +0 -54
  164. package/fesm/entities/index.spec.js +0 -14
  165. package/fesm/entities/storage-config-with-company.entity.js +0 -41
  166. package/fesm/entities/storage-config.entity.js +0 -86
  167. package/fesm/enums/file-location.enum.js +0 -7
  168. package/fesm/interfaces/file-manager.interface.js +0 -1
  169. package/fesm/interfaces/folder.interface.js +0 -1
  170. package/fesm/interfaces/storage-config.interface.js +0 -1
  171. package/fesm/interfaces/storage-module-options.interface.js +0 -3
  172. package/fesm/interfaces/storage-provider.interface.js +0 -4
  173. package/fesm/middlewares/file-serve.middleware.js +0 -190
  174. package/fesm/middlewares/file-serve.middleware.spec.js +0 -207
  175. package/fesm/middlewares/index.js +0 -1
  176. package/fesm/modules/storage.module.js +0 -156
  177. package/fesm/modules/storage.module.spec.js +0 -180
  178. package/fesm/providers/azure-provider.optional.spec.js +0 -224
  179. package/fesm/providers/local-provider.js +0 -182
  180. package/fesm/providers/local-provider.spec.js +0 -194
  181. package/fesm/providers/s3-provider.optional.spec.js +0 -239
  182. package/fesm/providers/sftp-provider.optional.spec.js +0 -213
  183. package/fesm/providers/storage-factory.service.js +0 -124
  184. package/fesm/providers/storage-factory.service.spec.js +0 -249
  185. package/fesm/providers/storage-provider.registry.js +0 -34
  186. package/fesm/providers/storage-provider.registry.spec.js +0 -63
  187. package/fesm/services/file-manager.service.js +0 -336
  188. package/fesm/services/file-manager.service.spec.js +0 -576
  189. package/fesm/services/folder.service.js +0 -91
  190. package/fesm/services/folder.service.spec.js +0 -163
  191. package/fesm/services/storage-config.service.js +0 -119
  192. package/fesm/services/storage-config.service.spec.js +0 -253
  193. package/fesm/services/storage-datasource.provider.js +0 -86
  194. package/fesm/services/storage-datasource.provider.spec.js +0 -172
  195. package/fesm/services/storage-provider-config.service.js +0 -161
  196. package/fesm/services/storage-provider-config.service.spec.js +0 -261
  197. package/fesm/services/upload.service.js +0 -366
  198. package/fesm/services/upload.service.spec.js +0 -422
  199. package/fesm/utils/file-validator.util.js +0 -433
  200. package/fesm/utils/file-validator.util.spec.js +0 -255
  201. package/fesm/utils/image-compressor.util.js +0 -114
  202. package/fesm/utils/image-compressor.util.spec.js +0 -162
@@ -1 +1,149 @@
1
- export * from './image-compressor.util';
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';
@@ -1,4 +1,4 @@
1
- import { IIdentity } from '@flusys/nestjs-shared/interfaces';
1
+ import { type IIdentity } from '@flusys/nestjs-shared/interfaces';
2
2
  export interface IFileManager extends IIdentity {
3
3
  name?: string;
4
4
  key?: string;
@@ -1,4 +1,4 @@
1
- import { IIdentity } from '@flusys/nestjs-shared/interfaces';
1
+ import { type IIdentity } from '@flusys/nestjs-shared/interfaces';
2
2
  export interface IFolder extends IIdentity {
3
3
  name?: string;
4
4
  slug?: string;
@@ -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,4 +1,4 @@
1
- import { IIdentity } from '@flusys/nestjs-shared/interfaces';
1
+ import { type IIdentity } from '@flusys/nestjs-shared/interfaces';
2
2
  export interface IStorageConfig extends IIdentity {
3
3
  name: string;
4
4
  storage: string;
@@ -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,4 +1,4 @@
1
- import { UploadOptionsDto } from '../dtos/upload.dto';
1
+ import { UploadOptionsDto } from '../dtos/upload.dto.js';
2
2
  export interface IStorageProviderConfig {
3
3
  provider: string;
4
4
  config: Record<string, any>;
@@ -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;
@@ -1 +1 @@
1
- export * from './file-serve.middleware';
1
+ export * from './file-serve.middleware.js';
@@ -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": "7.0.2",
3
+ "version": "8.0.0-beta.1",
4
4
  "description": "Modular storage package with optional AWS S3, Azure Blob, and SFTP providers",
5
- "main": "cjs/index.js",
6
- "module": "fesm/index.js",
7
- "types": "index.d.ts",
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": "./*.js",
84
- "require": "./*.js"
72
+ "import": "./fesm/*.js"
85
73
  }
86
74
  },
87
75
  "peerDependencies": {
88
- "@nestjs/common": "^11.0.0",
89
- "@nestjs/config": "^4.0.0",
90
- "@nestjs/core": "^11.0.0",
91
- "@nestjs/platform-express": "^11.0.0",
92
- "@nestjs/swagger": "^11.0.0",
93
- "@nestjs/typeorm": "^11.0.0",
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": "7.0.2",
133
- "@flusys/nestjs-shared": "7.0.2"
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;
@@ -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;
@@ -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;
@@ -1,4 +1,4 @@
1
- import { ImageFormat } from '../dtos/upload.dto';
1
+ import { ImageFormat } from '../dtos/upload.dto.js';
2
2
  interface CompressionOptions {
3
3
  maxWidth?: number;
4
4
  maxHeight?: number;
package/utils/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './image-compressor.util';
1
+ export * from './image-compressor.util.js';