@flusys/nestjs-storage 7.1.0 → 8.0.0

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
package/fesm/537.js ADDED
@@ -0,0 +1,1157 @@
1
+ import { ApiResponseDto, CurrentUser, RequirePermission } from "@flusys/nestjs-shared/decorators";
2
+ import { JwtAuthGuard, PermissionGuard } from "@flusys/nestjs-shared/guards";
3
+ import { FileInterceptor, FilesInterceptor } from "@nestjs/platform-express";
4
+ import * as __rspack_external__flusys_nestjs_shared_dtos_c4585026 from "@flusys/nestjs-shared/dtos";
5
+ export const __rspack_esm_id = 537;
6
+ export const __rspack_esm_ids = [537];
7
+ export const __webpack_modules__ = {
8
+ 488(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
+
10
+ // EXPORTS
11
+ __webpack_require__.d(__webpack_exports__, {
12
+ AE: () => (/* reexport */ FileManagerController),
13
+ X$: () => (/* reexport */ FolderController),
14
+ Iz: () => (/* reexport */ StorageConfigController),
15
+ I7: () => (/* reexport */ UploadController)
16
+ });
17
+
18
+ // EXTERNAL MODULE: external "@nestjs/common"
19
+ var common_ = __webpack_require__(157);
20
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/classes"
21
+ var classes_ = __webpack_require__(937);
22
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/config/message-keys.ts
23
+ var message_keys = __webpack_require__(450);
24
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/decorators"
25
+
26
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/dtos"
27
+ var dtos_ = __webpack_require__(873);
28
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/guards"
29
+
30
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/dtos/index.ts + 3 modules
31
+ var dtos = __webpack_require__(775);
32
+ // EXTERNAL MODULE: external "@nestjs/swagger"
33
+ var swagger_ = __webpack_require__(176);
34
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/services/file-manager.service.ts
35
+ var file_manager_service = __webpack_require__(955);
36
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/controllers/file-manager.controller.ts
37
+ function _ts_decorate(decorators, target, key, desc) {
38
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
40
+ r = Reflect.decorate(decorators, target, key, desc);
41
+ } else {
42
+ for(var i = decorators.length - 1; i >= 0; i--){
43
+ if (d = decorators[i]) {
44
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45
+ }
46
+ }
47
+ }
48
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
49
+ }
50
+ function _ts_metadata(metadataKey, metadataValue) {
51
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
52
+ return Reflect.metadata(metadataKey, metadataValue);
53
+ }
54
+ }
55
+ function _ts_param(paramIndex, decorator) {
56
+ return function(target, key) {
57
+ decorator(target, key, paramIndex);
58
+ };
59
+ }
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+ class FileManagerController extends (0,classes_.createApiController)(dtos/* .CreateFileManagerDto */.rY, dtos/* .UpdateFileManagerDto */.Ue, dtos/* .FileManagerResponseDto */.Sn, {
70
+ entityName: 'file',
71
+ security: {
72
+ insert: {
73
+ level: 'permission',
74
+ permissions: [
75
+ classes_.FILE_PERMISSIONS.CREATE
76
+ ]
77
+ },
78
+ insertMany: {
79
+ level: 'permission',
80
+ permissions: [
81
+ classes_.FILE_PERMISSIONS.CREATE
82
+ ]
83
+ },
84
+ getById: {
85
+ level: 'permission',
86
+ permissions: [
87
+ classes_.FILE_PERMISSIONS.READ
88
+ ]
89
+ },
90
+ getAll: {
91
+ level: 'permission',
92
+ permissions: [
93
+ classes_.FILE_PERMISSIONS.READ
94
+ ]
95
+ },
96
+ update: {
97
+ level: 'permission',
98
+ permissions: [
99
+ classes_.FILE_PERMISSIONS.UPDATE
100
+ ]
101
+ },
102
+ updateMany: {
103
+ level: 'permission',
104
+ permissions: [
105
+ classes_.FILE_PERMISSIONS.UPDATE
106
+ ]
107
+ },
108
+ delete: {
109
+ level: 'permission',
110
+ permissions: [
111
+ classes_.FILE_PERMISSIONS.DELETE
112
+ ]
113
+ }
114
+ }
115
+ }) {
116
+ fileService;
117
+ constructor(fileService){
118
+ super(fileService), this.fileService = fileService;
119
+ }
120
+ async getFiles(dto, req, user) {
121
+ if (!dto || !dto.length) {
122
+ throw new common_.BadRequestException({
123
+ message: 'No files provided',
124
+ messageKey: message_keys/* .UPLOAD_MESSAGES.NO_FILES_PROVIDED */.dS.NO_FILES_PROVIDED
125
+ });
126
+ }
127
+ const files = await this.fileService.getFiles(dto, req.protocol, req.get('host') || req.hostname, user);
128
+ return {
129
+ success: true,
130
+ message: 'Files retrieved successfully',
131
+ messageKey: message_keys/* .FILE_MESSAGES.GET_ALL_SUCCESS */.uA.GET_ALL_SUCCESS,
132
+ data: files
133
+ };
134
+ }
135
+ }
136
+ _ts_decorate([
137
+ (0,common_.Post)('get-files'),
138
+ (0,common_.UseGuards)(JwtAuthGuard),
139
+ (0,swagger_.ApiBearerAuth)(),
140
+ (0,common_.HttpCode)(200),
141
+ (0,swagger_.ApiBody)({
142
+ type: dtos/* .GetFilesRequestDto */.AZ,
143
+ isArray: true
144
+ }),
145
+ (0,swagger_.ApiOperation)({
146
+ summary: 'Get multiple files by IDs with authentication (local or S3)'
147
+ }),
148
+ (0,swagger_.ApiResponse)({
149
+ status: 200,
150
+ description: 'Files retrieved successfully',
151
+ type: dtos_.SingleResponseDto
152
+ }),
153
+ _ts_param(0, (0,common_.Body)()),
154
+ _ts_param(1, (0,common_.Req)()),
155
+ _ts_param(2, CurrentUser()),
156
+ _ts_metadata("design:type", Function),
157
+ _ts_metadata("design:paramtypes", [
158
+ typeof Array === "undefined" ? Object : Array,
159
+ typeof Request === "undefined" ? Object : Request,
160
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
161
+ ]),
162
+ _ts_metadata("design:returntype", Promise)
163
+ ], FileManagerController.prototype, "getFiles", null);
164
+ FileManagerController = _ts_decorate([
165
+ (0,swagger_.ApiTags)('Files'),
166
+ (0,common_.Controller)('storage/file-manager'),
167
+ _ts_param(0, (0,common_.Inject)(file_manager_service/* .FileManagerService */.D)),
168
+ _ts_metadata("design:type", Function),
169
+ _ts_metadata("design:paramtypes", [
170
+ typeof file_manager_service/* .FileManagerService */.D === "undefined" ? Object : file_manager_service/* .FileManagerService */.D
171
+ ])
172
+ ], FileManagerController);
173
+
174
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/services/folder.service.ts
175
+ var folder_service = __webpack_require__(195);
176
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/controllers/folder.controller.ts
177
+ function folder_controller_ts_decorate(decorators, target, key, desc) {
178
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
179
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
180
+ r = Reflect.decorate(decorators, target, key, desc);
181
+ } else {
182
+ for(var i = decorators.length - 1; i >= 0; i--){
183
+ if (d = decorators[i]) {
184
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
185
+ }
186
+ }
187
+ }
188
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
189
+ }
190
+ function folder_controller_ts_metadata(metadataKey, metadataValue) {
191
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
192
+ return Reflect.metadata(metadataKey, metadataValue);
193
+ }
194
+ }
195
+ function folder_controller_ts_param(paramIndex, decorator) {
196
+ return function(target, key) {
197
+ decorator(target, key, paramIndex);
198
+ };
199
+ }
200
+
201
+
202
+
203
+
204
+
205
+ class FolderController extends (0,classes_.createApiController)(dtos/* .CreateFolderDto */._5, dtos/* .UpdateFolderDto */.vN, dtos/* .FolderResponseDto */.X4, {
206
+ entityName: 'folder',
207
+ security: {
208
+ insert: {
209
+ level: 'permission',
210
+ permissions: [
211
+ classes_.FOLDER_PERMISSIONS.CREATE
212
+ ]
213
+ },
214
+ insertMany: {
215
+ level: 'permission',
216
+ permissions: [
217
+ classes_.FOLDER_PERMISSIONS.CREATE
218
+ ]
219
+ },
220
+ getById: {
221
+ level: 'permission',
222
+ permissions: [
223
+ classes_.FOLDER_PERMISSIONS.READ
224
+ ]
225
+ },
226
+ getAll: {
227
+ level: 'permission',
228
+ permissions: [
229
+ classes_.FOLDER_PERMISSIONS.READ
230
+ ]
231
+ },
232
+ update: {
233
+ level: 'permission',
234
+ permissions: [
235
+ classes_.FOLDER_PERMISSIONS.UPDATE
236
+ ]
237
+ },
238
+ updateMany: {
239
+ level: 'permission',
240
+ permissions: [
241
+ classes_.FOLDER_PERMISSIONS.UPDATE
242
+ ]
243
+ },
244
+ delete: {
245
+ level: 'permission',
246
+ permissions: [
247
+ classes_.FOLDER_PERMISSIONS.DELETE
248
+ ]
249
+ }
250
+ }
251
+ }) {
252
+ folderService;
253
+ constructor(folderService){
254
+ super(folderService), this.folderService = folderService;
255
+ }
256
+ }
257
+ FolderController = folder_controller_ts_decorate([
258
+ (0,swagger_.ApiTags)('Folders'),
259
+ (0,common_.Controller)('storage/folder'),
260
+ folder_controller_ts_param(0, (0,common_.Inject)(folder_service/* .FolderService */.k)),
261
+ folder_controller_ts_metadata("design:type", Function),
262
+ folder_controller_ts_metadata("design:paramtypes", [
263
+ typeof folder_service/* .FolderService */.k === "undefined" ? Object : folder_service/* .FolderService */.k
264
+ ])
265
+ ], FolderController);
266
+
267
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/services/storage-provider-config.service.ts
268
+ var storage_provider_config_service = __webpack_require__(623);
269
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/controllers/storage-config.controller.ts
270
+ function storage_config_controller_ts_decorate(decorators, target, key, desc) {
271
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
272
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
273
+ r = Reflect.decorate(decorators, target, key, desc);
274
+ } else {
275
+ for(var i = decorators.length - 1; i >= 0; i--){
276
+ if (d = decorators[i]) {
277
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
278
+ }
279
+ }
280
+ }
281
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
282
+ }
283
+ function storage_config_controller_ts_metadata(metadataKey, metadataValue) {
284
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
285
+ return Reflect.metadata(metadataKey, metadataValue);
286
+ }
287
+ }
288
+ function storage_config_controller_ts_param(paramIndex, decorator) {
289
+ return function(target, key) {
290
+ decorator(target, key, paramIndex);
291
+ };
292
+ }
293
+
294
+
295
+
296
+
297
+
298
+ class StorageConfigController extends (0,classes_.createApiController)(dtos/* .CreateStorageConfigDto */.rb, dtos/* .UpdateStorageConfigDto */.g$, dtos/* .StorageConfigResponseDto */.OC, {
299
+ entityName: 'storage.config',
300
+ security: {
301
+ insert: {
302
+ level: 'permission',
303
+ permissions: [
304
+ classes_.STORAGE_CONFIG_PERMISSIONS.CREATE
305
+ ]
306
+ },
307
+ insertMany: {
308
+ level: 'permission',
309
+ permissions: [
310
+ classes_.STORAGE_CONFIG_PERMISSIONS.CREATE
311
+ ]
312
+ },
313
+ getById: {
314
+ level: 'permission',
315
+ permissions: [
316
+ classes_.STORAGE_CONFIG_PERMISSIONS.READ
317
+ ]
318
+ },
319
+ getAll: {
320
+ level: 'permission',
321
+ permissions: [
322
+ classes_.STORAGE_CONFIG_PERMISSIONS.READ
323
+ ]
324
+ },
325
+ update: {
326
+ level: 'permission',
327
+ permissions: [
328
+ classes_.STORAGE_CONFIG_PERMISSIONS.UPDATE
329
+ ]
330
+ },
331
+ updateMany: {
332
+ level: 'permission',
333
+ permissions: [
334
+ classes_.STORAGE_CONFIG_PERMISSIONS.UPDATE
335
+ ]
336
+ },
337
+ delete: {
338
+ level: 'permission',
339
+ permissions: [
340
+ classes_.STORAGE_CONFIG_PERMISSIONS.DELETE
341
+ ]
342
+ }
343
+ }
344
+ }) {
345
+ storageConfigService;
346
+ constructor(storageConfigService){
347
+ super(storageConfigService), this.storageConfigService = storageConfigService;
348
+ }
349
+ }
350
+ StorageConfigController = storage_config_controller_ts_decorate([
351
+ (0,swagger_.ApiTags)('Storage Config'),
352
+ (0,common_.Controller)('storage/storage-config'),
353
+ storage_config_controller_ts_param(0, (0,common_.Inject)(storage_provider_config_service/* .StorageProviderConfigService */.o)),
354
+ storage_config_controller_ts_metadata("design:type", Function),
355
+ storage_config_controller_ts_metadata("design:paramtypes", [
356
+ typeof storage_provider_config_service/* .StorageProviderConfigService */.o === "undefined" ? Object : storage_provider_config_service/* .StorageProviderConfigService */.o
357
+ ])
358
+ ], StorageConfigController);
359
+
360
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared"
361
+ var nestjs_shared_ = __webpack_require__(422);
362
+ ;// CONCATENATED MODULE: external "@nestjs/platform-express"
363
+
364
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/services/upload.service.ts + 1 modules
365
+ var upload_service = __webpack_require__(18);
366
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/controllers/upload.controller.ts
367
+ function upload_controller_ts_decorate(decorators, target, key, desc) {
368
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
369
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
370
+ r = Reflect.decorate(decorators, target, key, desc);
371
+ } else {
372
+ for(var i = decorators.length - 1; i >= 0; i--){
373
+ if (d = decorators[i]) {
374
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
375
+ }
376
+ }
377
+ }
378
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
379
+ }
380
+ function upload_controller_ts_metadata(metadataKey, metadataValue) {
381
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
382
+ return Reflect.metadata(metadataKey, metadataValue);
383
+ }
384
+ }
385
+ function upload_controller_ts_param(paramIndex, decorator) {
386
+ return function(target, key) {
387
+ decorator(target, key, paramIndex);
388
+ };
389
+ }
390
+ /// <reference types="multer" />
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+ class UploadController {
401
+ uploadService;
402
+ constructor(uploadService){
403
+ this.uploadService = uploadService;
404
+ }
405
+ buildFileResponse(file) {
406
+ return {
407
+ size: this.uploadService.bytesToKb(file.size),
408
+ name: file.name,
409
+ key: file.key,
410
+ contentType: file.contentType,
411
+ location: file.location || 'local',
412
+ storageConfigId: file.storageConfigId || ''
413
+ };
414
+ }
415
+ async uploadSingleFile(file, options, user) {
416
+ const result = await this.uploadService.uploadSingleFile(file, options, user);
417
+ return {
418
+ success: true,
419
+ message: 'File uploaded successfully',
420
+ messageKey: message_keys/* .UPLOAD_MESSAGES.SUCCESS */.dS.SUCCESS,
421
+ data: this.buildFileResponse(result)
422
+ };
423
+ }
424
+ async uploadMultipleFiles(files, options, user) {
425
+ const uploadResponses = await this.uploadService.uploadMultipleFiles(files, options, user);
426
+ return {
427
+ success: true,
428
+ message: 'Files uploaded successfully',
429
+ messageKey: message_keys/* .UPLOAD_MESSAGES.MANY_SUCCESS */.dS.MANY_SUCCESS,
430
+ data: uploadResponses.map((file)=>this.buildFileResponse(file))
431
+ };
432
+ }
433
+ async deleteSingleFile(dto, user) {
434
+ const data = await this.uploadService.deleteSingleFile(dto.key, dto.storageConfigId, user);
435
+ return {
436
+ success: true,
437
+ message: 'File deleted successfully',
438
+ messageKey: message_keys/* .FILE_MESSAGES.DELETE_SUCCESS */.uA.DELETE_SUCCESS,
439
+ data
440
+ };
441
+ }
442
+ async deleteMultipleFile(dto, user) {
443
+ const data = await this.uploadService.deleteMultipleFile(dto.keys, dto.storageConfigId, user);
444
+ return {
445
+ success: true,
446
+ message: 'Files deleted successfully',
447
+ messageKey: message_keys/* .FILE_MESSAGES.DELETE_SUCCESS */.uA.DELETE_SUCCESS,
448
+ data
449
+ };
450
+ }
451
+ }
452
+ upload_controller_ts_decorate([
453
+ (0,common_.Post)('single-file'),
454
+ ApiResponseDto(dtos/* .FileUploadResponsePayloadDto */.My, false),
455
+ (0,swagger_.ApiOperation)({
456
+ summary: 'Upload a single file'
457
+ }),
458
+ (0,swagger_.ApiConsumes)('multipart/form-data'),
459
+ (0,swagger_.ApiQuery)({
460
+ name: 'folderPath',
461
+ type: String,
462
+ required: false,
463
+ description: 'Optional folder path to store the file'
464
+ }),
465
+ (0,swagger_.ApiBody)({
466
+ description: 'File upload form data',
467
+ schema: {
468
+ type: 'object',
469
+ properties: {
470
+ file: {
471
+ type: 'string',
472
+ format: 'binary',
473
+ description: 'File to be uploaded'
474
+ }
475
+ },
476
+ required: [
477
+ 'file'
478
+ ]
479
+ }
480
+ }),
481
+ (0,common_.UseInterceptors)(FileInterceptor('file')),
482
+ upload_controller_ts_param(0, (0,common_.UploadedFile)()),
483
+ upload_controller_ts_param(1, (0,common_.Query)()),
484
+ upload_controller_ts_param(2, CurrentUser()),
485
+ upload_controller_ts_metadata("design:type", Function),
486
+ upload_controller_ts_metadata("design:paramtypes", [
487
+ typeof Express === "undefined" || typeof Express.Multer === "undefined" || typeof Express.Multer.File === "undefined" ? Object : Express.Multer.File,
488
+ typeof dtos/* .UploadOptionsDto */.hL === "undefined" ? Object : dtos/* .UploadOptionsDto */.hL,
489
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
490
+ ]),
491
+ upload_controller_ts_metadata("design:returntype", Promise)
492
+ ], UploadController.prototype, "uploadSingleFile", null);
493
+ upload_controller_ts_decorate([
494
+ (0,common_.Post)('multiple-file'),
495
+ (0,swagger_.ApiOperation)({
496
+ summary: 'Upload multiple files (up to 50)'
497
+ }),
498
+ (0,swagger_.ApiConsumes)('multipart/form-data'),
499
+ (0,swagger_.ApiQuery)({
500
+ name: 'folderPath',
501
+ type: String,
502
+ required: false,
503
+ description: 'Optional folder path to store uploaded files'
504
+ }),
505
+ (0,swagger_.ApiBody)({
506
+ description: 'Form data for multiple file uploads',
507
+ schema: {
508
+ type: 'object',
509
+ properties: {
510
+ files: {
511
+ type: 'array',
512
+ items: {
513
+ type: 'string',
514
+ format: 'binary'
515
+ },
516
+ description: 'List of files to be uploaded'
517
+ }
518
+ },
519
+ required: [
520
+ 'files'
521
+ ]
522
+ }
523
+ }),
524
+ ApiResponseDto(dtos/* .FileUploadResponsePayloadDto */.My, false),
525
+ (0,common_.UseInterceptors)(FilesInterceptor('files', 50)),
526
+ upload_controller_ts_param(0, (0,common_.UploadedFiles)()),
527
+ upload_controller_ts_param(1, (0,common_.Query)()),
528
+ upload_controller_ts_param(2, CurrentUser()),
529
+ upload_controller_ts_metadata("design:type", Function),
530
+ upload_controller_ts_metadata("design:paramtypes", [
531
+ Array,
532
+ typeof dtos/* .UploadOptionsDto */.hL === "undefined" ? Object : dtos/* .UploadOptionsDto */.hL,
533
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
534
+ ]),
535
+ upload_controller_ts_metadata("design:returntype", Promise)
536
+ ], UploadController.prototype, "uploadMultipleFiles", null);
537
+ upload_controller_ts_decorate([
538
+ (0,common_.Post)('delete-single-file'),
539
+ (0,common_.UseGuards)(PermissionGuard),
540
+ RequirePermission(nestjs_shared_.UPLOAD_CONFIG_PERMISSIONS.DELETE),
541
+ (0,swagger_.ApiOperation)({
542
+ summary: 'Delete a single file'
543
+ }),
544
+ (0,swagger_.ApiBody)({
545
+ type: dtos/* .DeleteSingleFileDto */.Pd
546
+ }),
547
+ upload_controller_ts_param(0, (0,common_.Body)()),
548
+ upload_controller_ts_param(1, CurrentUser()),
549
+ upload_controller_ts_metadata("design:type", Function),
550
+ upload_controller_ts_metadata("design:paramtypes", [
551
+ typeof dtos/* .DeleteSingleFileDto */.Pd === "undefined" ? Object : dtos/* .DeleteSingleFileDto */.Pd,
552
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
553
+ ]),
554
+ upload_controller_ts_metadata("design:returntype", Promise)
555
+ ], UploadController.prototype, "deleteSingleFile", null);
556
+ upload_controller_ts_decorate([
557
+ (0,common_.Post)('delete-multiple-file'),
558
+ (0,common_.UseGuards)(PermissionGuard),
559
+ RequirePermission(nestjs_shared_.UPLOAD_CONFIG_PERMISSIONS.DELETE),
560
+ (0,swagger_.ApiOperation)({
561
+ summary: 'Delete multiple files'
562
+ }),
563
+ (0,swagger_.ApiBody)({
564
+ type: dtos/* .DeleteMultipleFileDto */.$V
565
+ }),
566
+ upload_controller_ts_param(0, (0,common_.Body)()),
567
+ upload_controller_ts_param(1, CurrentUser()),
568
+ upload_controller_ts_metadata("design:type", Function),
569
+ upload_controller_ts_metadata("design:paramtypes", [
570
+ typeof dtos/* .DeleteMultipleFileDto */.$V === "undefined" ? Object : dtos/* .DeleteMultipleFileDto */.$V,
571
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
572
+ ]),
573
+ upload_controller_ts_metadata("design:returntype", Promise)
574
+ ], UploadController.prototype, "deleteMultipleFile", null);
575
+ UploadController = upload_controller_ts_decorate([
576
+ (0,swagger_.ApiTags)('Upload'),
577
+ (0,swagger_.ApiBearerAuth)(),
578
+ (0,common_.Controller)('storage/upload'),
579
+ (0,common_.UseGuards)(JwtAuthGuard),
580
+ upload_controller_ts_param(0, (0,common_.Inject)(upload_service/* .UploadService */.B)),
581
+ upload_controller_ts_metadata("design:type", Function),
582
+ upload_controller_ts_metadata("design:paramtypes", [
583
+ typeof upload_service/* .UploadService */.B === "undefined" ? Object : upload_service/* .UploadService */.B
584
+ ])
585
+ ], UploadController);
586
+
587
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/controllers/index.ts
588
+
589
+
590
+
591
+
592
+
593
+
594
+ },
595
+ 775(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
596
+
597
+ // EXPORTS
598
+ __webpack_require__.d(__webpack_exports__, {
599
+ rY: () => (/* reexport */ CreateFileManagerDto),
600
+ _5: () => (/* reexport */ CreateFolderDto),
601
+ rb: () => (/* reexport */ CreateStorageConfigDto),
602
+ $V: () => (/* reexport */ upload_dto/* .DeleteMultipleFileDto */.$V),
603
+ Pd: () => (/* reexport */ upload_dto/* .DeleteSingleFileDto */.Pd),
604
+ Sn: () => (/* reexport */ FileManagerResponseDto),
605
+ My: () => (/* reexport */ upload_dto/* .FileUploadResponsePayloadDto */.My),
606
+ gh: () => (/* reexport */ FilesResponseDto),
607
+ X4: () => (/* reexport */ FolderResponseDto),
608
+ AZ: () => (/* reexport */ GetFilesRequestDto),
609
+ f5: () => (/* reexport */ upload_dto/* .ImageFormat */.f5),
610
+ OC: () => (/* reexport */ StorageConfigResponseDto),
611
+ Ue: () => (/* reexport */ UpdateFileManagerDto),
612
+ vN: () => (/* reexport */ UpdateFolderDto),
613
+ g$: () => (/* reexport */ UpdateStorageConfigDto),
614
+ hL: () => (/* reexport */ upload_dto/* .UploadOptionsDto */.hL)
615
+ });
616
+
617
+ // EXTERNAL MODULE: external "@nestjs/swagger"
618
+ var swagger_ = __webpack_require__(176);
619
+ // EXTERNAL MODULE: external "class-transformer"
620
+ var external_class_transformer_ = __webpack_require__(812);
621
+ // EXTERNAL MODULE: external "class-validator"
622
+ var external_class_validator_ = __webpack_require__(421);
623
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/dtos/folder.dto.ts
624
+ function _ts_decorate(decorators, target, key, desc) {
625
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
626
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
627
+ r = Reflect.decorate(decorators, target, key, desc);
628
+ } else {
629
+ for(var i = decorators.length - 1; i >= 0; i--){
630
+ if (d = decorators[i]) {
631
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
632
+ }
633
+ }
634
+ }
635
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
636
+ }
637
+ function _ts_metadata(metadataKey, metadataValue) {
638
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
639
+ return Reflect.metadata(metadataKey, metadataValue);
640
+ }
641
+ }
642
+
643
+
644
+
645
+ class CreateFolderDto {
646
+ name;
647
+ }
648
+ _ts_decorate([
649
+ (0,swagger_.ApiProperty)({
650
+ description: 'Name of the folder',
651
+ example: 'Invoices'
652
+ }),
653
+ (0,external_class_validator_.IsNotEmpty)(),
654
+ (0,external_class_validator_.IsString)(),
655
+ _ts_metadata("design:type", String)
656
+ ], CreateFolderDto.prototype, "name", void 0);
657
+ class UpdateFolderDto extends (0,swagger_.PartialType)(CreateFolderDto) {
658
+ id;
659
+ }
660
+ _ts_decorate([
661
+ (0,swagger_.ApiProperty)({
662
+ description: 'Unique identifier of the folder',
663
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
664
+ }),
665
+ (0,external_class_validator_.IsUUID)(),
666
+ (0,external_class_validator_.IsNotEmpty)(),
667
+ _ts_metadata("design:type", String)
668
+ ], UpdateFolderDto.prototype, "id", void 0);
669
+ class FolderResponseDto {
670
+ id;
671
+ name;
672
+ slug;
673
+ }
674
+ _ts_decorate([
675
+ (0,external_class_transformer_.Expose)(),
676
+ (0,swagger_.ApiProperty)({
677
+ description: 'Unique identifier of the folder',
678
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
679
+ }),
680
+ _ts_metadata("design:type", String)
681
+ ], FolderResponseDto.prototype, "id", void 0);
682
+ _ts_decorate([
683
+ (0,external_class_transformer_.Expose)(),
684
+ (0,swagger_.ApiProperty)({
685
+ description: 'Human-readable name of the folder',
686
+ example: 'Profile Photos'
687
+ }),
688
+ _ts_metadata("design:type", String)
689
+ ], FolderResponseDto.prototype, "name", void 0);
690
+ _ts_decorate([
691
+ (0,external_class_transformer_.Expose)(),
692
+ (0,swagger_.ApiProperty)({
693
+ description: 'URL-friendly unique identifier derived from the folder name',
694
+ example: 'profile-photos'
695
+ }),
696
+ _ts_metadata("design:type", String)
697
+ ], FolderResponseDto.prototype, "slug", void 0);
698
+
699
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/enums/file-location.enum.ts
700
+ var file_location_enum = __webpack_require__(733);
701
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/dtos/file-manager.dto.ts
702
+ function file_manager_dto_ts_decorate(decorators, target, key, desc) {
703
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
704
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
705
+ r = Reflect.decorate(decorators, target, key, desc);
706
+ } else {
707
+ for(var i = decorators.length - 1; i >= 0; i--){
708
+ if (d = decorators[i]) {
709
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
710
+ }
711
+ }
712
+ }
713
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
714
+ }
715
+ function file_manager_dto_ts_metadata(metadataKey, metadataValue) {
716
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
717
+ return Reflect.metadata(metadataKey, metadataValue);
718
+ }
719
+ }
720
+
721
+
722
+
723
+
724
+ class CreateFileManagerDto {
725
+ name;
726
+ key;
727
+ size;
728
+ contentType;
729
+ isPrivate;
730
+ folderId;
731
+ storageConfigId;
732
+ location;
733
+ }
734
+ file_manager_dto_ts_decorate([
735
+ (0,swagger_.ApiProperty)({
736
+ description: 'Original file name',
737
+ example: 'vacation-photo.jpg'
738
+ }),
739
+ (0,external_class_validator_.IsNotEmpty)(),
740
+ (0,external_class_validator_.IsString)(),
741
+ file_manager_dto_ts_metadata("design:type", String)
742
+ ], CreateFileManagerDto.prototype, "name", void 0);
743
+ file_manager_dto_ts_decorate([
744
+ (0,swagger_.ApiProperty)({
745
+ description: 'Storage key or path of the file',
746
+ example: 'uploads/abc123-vacation-photo.jpg'
747
+ }),
748
+ (0,external_class_validator_.IsNotEmpty)(),
749
+ (0,external_class_validator_.IsString)(),
750
+ file_manager_dto_ts_metadata("design:type", String)
751
+ ], CreateFileManagerDto.prototype, "key", void 0);
752
+ file_manager_dto_ts_decorate([
753
+ (0,swagger_.ApiProperty)({
754
+ description: 'Size of the file in bytes',
755
+ example: '1024'
756
+ }),
757
+ (0,external_class_validator_.IsNotEmpty)(),
758
+ (0,external_class_validator_.IsString)(),
759
+ file_manager_dto_ts_metadata("design:type", String)
760
+ ], CreateFileManagerDto.prototype, "size", void 0);
761
+ file_manager_dto_ts_decorate([
762
+ (0,swagger_.ApiProperty)({
763
+ description: 'MIME type of file',
764
+ example: 'image/jpeg'
765
+ }),
766
+ (0,external_class_validator_.IsNotEmpty)(),
767
+ (0,external_class_validator_.IsString)(),
768
+ file_manager_dto_ts_metadata("design:type", String)
769
+ ], CreateFileManagerDto.prototype, "contentType", void 0);
770
+ file_manager_dto_ts_decorate([
771
+ (0,swagger_.ApiProperty)({
772
+ description: 'Indicates if the file is private',
773
+ example: true
774
+ }),
775
+ (0,external_class_validator_.IsNotEmpty)(),
776
+ (0,external_class_validator_.IsBoolean)(),
777
+ file_manager_dto_ts_metadata("design:type", Boolean)
778
+ ], CreateFileManagerDto.prototype, "isPrivate", void 0);
779
+ file_manager_dto_ts_decorate([
780
+ (0,swagger_.ApiPropertyOptional)({
781
+ description: 'Folder ID (UUID)',
782
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
783
+ }),
784
+ (0,external_class_validator_.IsOptional)(),
785
+ (0,external_class_validator_.IsUUID)(),
786
+ file_manager_dto_ts_metadata("design:type", String)
787
+ ], CreateFileManagerDto.prototype, "folderId", void 0);
788
+ file_manager_dto_ts_decorate([
789
+ (0,swagger_.ApiPropertyOptional)({
790
+ description: 'Storage configuration ID',
791
+ example: '123e4567-e89b-12d3-a456-426614174000'
792
+ }),
793
+ (0,external_class_validator_.IsOptional)(),
794
+ (0,external_class_validator_.IsUUID)(),
795
+ file_manager_dto_ts_metadata("design:type", String)
796
+ ], CreateFileManagerDto.prototype, "storageConfigId", void 0);
797
+ file_manager_dto_ts_decorate([
798
+ (0,swagger_.ApiPropertyOptional)({
799
+ description: 'Storage location type',
800
+ enum: file_location_enum/* .FileLocationEnum */.N,
801
+ example: file_location_enum/* .FileLocationEnum.AWS */.N.AWS
802
+ }),
803
+ (0,external_class_validator_.IsOptional)(),
804
+ (0,external_class_validator_.IsEnum)(file_location_enum/* .FileLocationEnum */.N),
805
+ file_manager_dto_ts_metadata("design:type", String)
806
+ ], CreateFileManagerDto.prototype, "location", void 0);
807
+ class UpdateFileManagerDto extends (0,swagger_.PartialType)(CreateFileManagerDto) {
808
+ id;
809
+ }
810
+ file_manager_dto_ts_decorate([
811
+ (0,swagger_.ApiProperty)({
812
+ description: 'Unique identifier of the file',
813
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
814
+ }),
815
+ (0,external_class_validator_.IsUUID)(),
816
+ (0,external_class_validator_.IsNotEmpty)(),
817
+ file_manager_dto_ts_metadata("design:type", String)
818
+ ], UpdateFileManagerDto.prototype, "id", void 0);
819
+ class FileManagerResponseDto {
820
+ id;
821
+ name;
822
+ key;
823
+ size;
824
+ contentType;
825
+ isPrivate;
826
+ folderId;
827
+ storageConfigId;
828
+ location;
829
+ providerName;
830
+ }
831
+ file_manager_dto_ts_decorate([
832
+ (0,external_class_transformer_.Expose)(),
833
+ (0,swagger_.ApiProperty)({
834
+ description: 'Unique identifier of the file',
835
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
836
+ }),
837
+ file_manager_dto_ts_metadata("design:type", String)
838
+ ], FileManagerResponseDto.prototype, "id", void 0);
839
+ file_manager_dto_ts_decorate([
840
+ (0,external_class_transformer_.Expose)(),
841
+ (0,swagger_.ApiProperty)({
842
+ description: 'Original filename as uploaded',
843
+ example: 'profile-photo.png'
844
+ }),
845
+ file_manager_dto_ts_metadata("design:type", String)
846
+ ], FileManagerResponseDto.prototype, "name", void 0);
847
+ file_manager_dto_ts_decorate([
848
+ (0,external_class_transformer_.Expose)(),
849
+ (0,swagger_.ApiProperty)({
850
+ description: 'Storage key / path used to retrieve the file from the provider',
851
+ example: 'uploads/users/abc123/profile-photo.png'
852
+ }),
853
+ file_manager_dto_ts_metadata("design:type", String)
854
+ ], FileManagerResponseDto.prototype, "key", void 0);
855
+ file_manager_dto_ts_decorate([
856
+ (0,external_class_transformer_.Expose)(),
857
+ (0,swagger_.ApiProperty)({
858
+ description: 'File size in bytes',
859
+ example: '204800'
860
+ }),
861
+ file_manager_dto_ts_metadata("design:type", String)
862
+ ], FileManagerResponseDto.prototype, "size", void 0);
863
+ file_manager_dto_ts_decorate([
864
+ (0,external_class_transformer_.Expose)(),
865
+ (0,swagger_.ApiProperty)({
866
+ description: 'MIME type of the file',
867
+ example: 'image/png'
868
+ }),
869
+ file_manager_dto_ts_metadata("design:type", String)
870
+ ], FileManagerResponseDto.prototype, "contentType", void 0);
871
+ file_manager_dto_ts_decorate([
872
+ (0,external_class_transformer_.Expose)(),
873
+ (0,swagger_.ApiProperty)({
874
+ description: 'Whether the file is private and requires signed URL access',
875
+ example: false
876
+ }),
877
+ file_manager_dto_ts_metadata("design:type", Boolean)
878
+ ], FileManagerResponseDto.prototype, "isPrivate", void 0);
879
+ file_manager_dto_ts_decorate([
880
+ (0,external_class_transformer_.Expose)(),
881
+ (0,swagger_.ApiPropertyOptional)({
882
+ description: 'ID of the folder this file belongs to; absent if in root',
883
+ example: 'a1b2c3d4-0000-0000-0000-000000000001'
884
+ }),
885
+ file_manager_dto_ts_metadata("design:type", String)
886
+ ], FileManagerResponseDto.prototype, "folderId", void 0);
887
+ file_manager_dto_ts_decorate([
888
+ (0,external_class_transformer_.Expose)(),
889
+ (0,swagger_.ApiPropertyOptional)({
890
+ description: 'ID of the storage configuration used to store this file',
891
+ example: 'a1b2c3d4-0000-0000-0000-000000000002'
892
+ }),
893
+ file_manager_dto_ts_metadata("design:type", String)
894
+ ], FileManagerResponseDto.prototype, "storageConfigId", void 0);
895
+ file_manager_dto_ts_decorate([
896
+ (0,external_class_transformer_.Expose)(),
897
+ (0,swagger_.ApiPropertyOptional)({
898
+ description: 'Storage provider type (e.g. s3, gcs, local)',
899
+ example: 's3'
900
+ }),
901
+ file_manager_dto_ts_metadata("design:type", String)
902
+ ], FileManagerResponseDto.prototype, "location", void 0);
903
+ file_manager_dto_ts_decorate([
904
+ (0,external_class_transformer_.Expose)(),
905
+ (0,swagger_.ApiPropertyOptional)({
906
+ description: 'Human-readable name of the storage provider',
907
+ example: 'AWS S3 — Production Bucket'
908
+ }),
909
+ file_manager_dto_ts_metadata("design:type", String)
910
+ ], FileManagerResponseDto.prototype, "providerName", void 0);
911
+ class GetFilesRequestDto {
912
+ id;
913
+ }
914
+ file_manager_dto_ts_decorate([
915
+ (0,swagger_.ApiProperty)({
916
+ description: 'Unique identifier of the file to retrieve',
917
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
918
+ }),
919
+ (0,external_class_validator_.IsUUID)(),
920
+ (0,external_class_validator_.IsNotEmpty)(),
921
+ file_manager_dto_ts_metadata("design:type", String)
922
+ ], GetFilesRequestDto.prototype, "id", void 0);
923
+ class FilesResponseDto {
924
+ id;
925
+ name;
926
+ contentType;
927
+ url;
928
+ location;
929
+ storageConfigId;
930
+ providerName;
931
+ }
932
+ file_manager_dto_ts_decorate([
933
+ (0,external_class_transformer_.Expose)(),
934
+ (0,swagger_.ApiProperty)({
935
+ description: 'Unique identifier of the file',
936
+ example: 'f2e9c8d0-7a2a-11eb-9439-0242ac130002'
937
+ }),
938
+ file_manager_dto_ts_metadata("design:type", String)
939
+ ], FilesResponseDto.prototype, "id", void 0);
940
+ file_manager_dto_ts_decorate([
941
+ (0,external_class_transformer_.Expose)(),
942
+ (0,swagger_.ApiProperty)({
943
+ description: 'Original filename as uploaded',
944
+ example: 'quarterly-report.pdf'
945
+ }),
946
+ file_manager_dto_ts_metadata("design:type", String)
947
+ ], FilesResponseDto.prototype, "name", void 0);
948
+ file_manager_dto_ts_decorate([
949
+ (0,external_class_transformer_.Expose)(),
950
+ (0,swagger_.ApiProperty)({
951
+ description: 'MIME type of the file',
952
+ example: 'application/pdf'
953
+ }),
954
+ file_manager_dto_ts_metadata("design:type", String)
955
+ ], FilesResponseDto.prototype, "contentType", void 0);
956
+ file_manager_dto_ts_decorate([
957
+ (0,external_class_transformer_.Expose)(),
958
+ (0,swagger_.ApiProperty)({
959
+ description: 'Publicly accessible or pre-signed URL to download the file',
960
+ example: 'https://cdn.example.com/uploads/quarterly-report.pdf'
961
+ }),
962
+ file_manager_dto_ts_metadata("design:type", String)
963
+ ], FilesResponseDto.prototype, "url", void 0);
964
+ file_manager_dto_ts_decorate([
965
+ (0,external_class_transformer_.Expose)(),
966
+ (0,swagger_.ApiPropertyOptional)({
967
+ description: 'Storage provider type (e.g. s3, gcs, local)',
968
+ example: 'gcs'
969
+ }),
970
+ file_manager_dto_ts_metadata("design:type", String)
971
+ ], FilesResponseDto.prototype, "location", void 0);
972
+ file_manager_dto_ts_decorate([
973
+ (0,external_class_transformer_.Expose)(),
974
+ (0,swagger_.ApiPropertyOptional)({
975
+ description: 'ID of the storage configuration used to store this file',
976
+ example: 'a1b2c3d4-0000-0000-0000-000000000002'
977
+ }),
978
+ file_manager_dto_ts_metadata("design:type", String)
979
+ ], FilesResponseDto.prototype, "storageConfigId", void 0);
980
+ file_manager_dto_ts_decorate([
981
+ (0,external_class_transformer_.Expose)(),
982
+ (0,swagger_.ApiPropertyOptional)({
983
+ description: 'Human-readable name of the storage provider',
984
+ example: 'Google Cloud Storage — EU'
985
+ }),
986
+ file_manager_dto_ts_metadata("design:type", String)
987
+ ], FilesResponseDto.prototype, "providerName", void 0);
988
+
989
+ // EXTERNAL MODULE: ./projects/nestjs-storage/src/dtos/upload.dto.ts
990
+ var upload_dto = __webpack_require__(322);
991
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/dtos"
992
+ var dtos_ = __webpack_require__(873);
993
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/utils"
994
+ var utils_ = __webpack_require__(216);
995
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/dtos/storage-config.dto.ts
996
+ function storage_config_dto_ts_decorate(decorators, target, key, desc) {
997
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
998
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
999
+ r = Reflect.decorate(decorators, target, key, desc);
1000
+ } else {
1001
+ for(var i = decorators.length - 1; i >= 0; i--){
1002
+ if (d = decorators[i]) {
1003
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1004
+ }
1005
+ }
1006
+ }
1007
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1008
+ }
1009
+ function storage_config_dto_ts_metadata(metadataKey, metadataValue) {
1010
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
1011
+ return Reflect.metadata(metadataKey, metadataValue);
1012
+ }
1013
+ }
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+ class CreateStorageConfigDto {
1021
+ name;
1022
+ storage;
1023
+ config;
1024
+ isActive;
1025
+ isDefault;
1026
+ }
1027
+ storage_config_dto_ts_decorate([
1028
+ (0,swagger_.ApiProperty)({
1029
+ example: 'Production AWS S3'
1030
+ }),
1031
+ (0,external_class_validator_.IsString)(),
1032
+ (0,external_class_validator_.IsNotEmpty)(),
1033
+ (0,external_class_validator_.MaxLength)(255),
1034
+ storage_config_dto_ts_metadata("design:type", String)
1035
+ ], CreateStorageConfigDto.prototype, "name", void 0);
1036
+ storage_config_dto_ts_decorate([
1037
+ (0,swagger_.ApiProperty)({
1038
+ enum: file_location_enum/* .FileLocationEnum */.N,
1039
+ example: file_location_enum/* .FileLocationEnum.AWS */.N.AWS,
1040
+ description: 'Storage provider type'
1041
+ }),
1042
+ (0,external_class_validator_.IsEnum)(file_location_enum/* .FileLocationEnum */.N),
1043
+ (0,external_class_validator_.IsNotEmpty)(),
1044
+ storage_config_dto_ts_metadata("design:type", String)
1045
+ ], CreateStorageConfigDto.prototype, "storage", void 0);
1046
+ storage_config_dto_ts_decorate([
1047
+ (0,swagger_.ApiProperty)({
1048
+ description: 'Provider-specific configuration',
1049
+ example: {
1050
+ region: 'us-east-1',
1051
+ bucket: 'my-bucket'
1052
+ }
1053
+ }),
1054
+ (0,external_class_validator_.IsObject)(),
1055
+ (0,external_class_validator_.IsNotEmpty)(),
1056
+ storage_config_dto_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
1057
+ ], CreateStorageConfigDto.prototype, "config", void 0);
1058
+ storage_config_dto_ts_decorate([
1059
+ (0,swagger_.ApiPropertyOptional)({
1060
+ example: true,
1061
+ description: 'Whether storage configuration is active'
1062
+ }),
1063
+ (0,external_class_validator_.IsBoolean)(),
1064
+ (0,external_class_validator_.IsOptional)(),
1065
+ storage_config_dto_ts_metadata("design:type", Boolean)
1066
+ ], CreateStorageConfigDto.prototype, "isActive", void 0);
1067
+ storage_config_dto_ts_decorate([
1068
+ (0,swagger_.ApiPropertyOptional)({
1069
+ example: false,
1070
+ description: 'Set as default storage configuration'
1071
+ }),
1072
+ (0,external_class_validator_.IsBoolean)(),
1073
+ (0,external_class_validator_.IsOptional)(),
1074
+ storage_config_dto_ts_metadata("design:type", Boolean)
1075
+ ], CreateStorageConfigDto.prototype, "isDefault", void 0);
1076
+ class UpdateStorageConfigDto extends (0,swagger_.PartialType)((0,swagger_.OmitType)(CreateStorageConfigDto, [])) {
1077
+ id;
1078
+ }
1079
+ storage_config_dto_ts_decorate([
1080
+ (0,swagger_.ApiProperty)({
1081
+ example: '123e4567-e89b-12d3-a456-426614174000'
1082
+ }),
1083
+ (0,external_class_validator_.IsUUID)(),
1084
+ (0,external_class_validator_.IsNotEmpty)(),
1085
+ storage_config_dto_ts_metadata("design:type", String)
1086
+ ], UpdateStorageConfigDto.prototype, "id", void 0);
1087
+ class StorageConfigResponseDto extends dtos_.IdentityResponseDto {
1088
+ name;
1089
+ storage;
1090
+ config;
1091
+ isActive;
1092
+ isDefault;
1093
+ }
1094
+ storage_config_dto_ts_decorate([
1095
+ (0,external_class_transformer_.Expose)(),
1096
+ (0,swagger_.ApiProperty)({
1097
+ description: 'Human-readable name for this storage configuration',
1098
+ example: 'AWS S3 — Production Bucket'
1099
+ }),
1100
+ storage_config_dto_ts_metadata("design:type", String)
1101
+ ], StorageConfigResponseDto.prototype, "name", void 0);
1102
+ storage_config_dto_ts_decorate([
1103
+ (0,external_class_transformer_.Expose)(),
1104
+ (0,swagger_.ApiProperty)({
1105
+ description: 'Storage provider type',
1106
+ example: 's3'
1107
+ }),
1108
+ storage_config_dto_ts_metadata("design:type", String)
1109
+ ], StorageConfigResponseDto.prototype, "storage", void 0);
1110
+ storage_config_dto_ts_decorate([
1111
+ (0,external_class_transformer_.Expose)(),
1112
+ (0,external_class_transformer_.Transform)(({ value })=>(0,utils_.sanitizeEventPayload)(value)),
1113
+ (0,swagger_.ApiProperty)({
1114
+ description: 'Provider-specific configuration key-value pairs. Credential-like keys ' + '(accessKeyId, secretAccessKey, password, privateKey, connectionString, etc.) are redacted.',
1115
+ type: 'object',
1116
+ additionalProperties: true,
1117
+ example: {
1118
+ bucket: 'my-production-bucket',
1119
+ region: 'us-east-1',
1120
+ endpoint: 'https://s3.amazonaws.com'
1121
+ }
1122
+ }),
1123
+ storage_config_dto_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
1124
+ ], StorageConfigResponseDto.prototype, "config", void 0);
1125
+ storage_config_dto_ts_decorate([
1126
+ (0,external_class_transformer_.Expose)(),
1127
+ (0,swagger_.ApiProperty)({
1128
+ description: 'Whether this storage configuration is currently active',
1129
+ example: true
1130
+ }),
1131
+ storage_config_dto_ts_metadata("design:type", Boolean)
1132
+ ], StorageConfigResponseDto.prototype, "isActive", void 0);
1133
+ storage_config_dto_ts_decorate([
1134
+ (0,external_class_transformer_.Expose)(),
1135
+ (0,swagger_.ApiProperty)({
1136
+ description: 'Whether this is the default storage configuration',
1137
+ example: false
1138
+ }),
1139
+ storage_config_dto_ts_metadata("design:type", Boolean)
1140
+ ], StorageConfigResponseDto.prototype, "isDefault", void 0);
1141
+
1142
+ ;// CONCATENATED MODULE: ./projects/nestjs-storage/src/dtos/index.ts
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+ },
1150
+ 873(module) {
1151
+
1152
+ module.exports = __rspack_external__flusys_nestjs_shared_dtos_c4585026;
1153
+
1154
+
1155
+ },
1156
+
1157
+ };