@flusys/nestjs-storage 1.1.0-beta → 2.0.0-rc.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 (118) hide show
  1. package/README.md +148 -6
  2. package/cjs/config/index.js +0 -1
  3. package/cjs/config/storage.constants.js +0 -17
  4. package/cjs/controllers/file-manager.controller.js +44 -1
  5. package/cjs/controllers/folder.controller.js +44 -1
  6. package/cjs/controllers/storage-config.controller.js +44 -1
  7. package/cjs/controllers/upload.controller.js +18 -29
  8. package/cjs/docs/storage-swagger.config.js +24 -136
  9. package/cjs/dtos/file-manager.dto.js +70 -34
  10. package/cjs/dtos/folder.dto.js +15 -9
  11. package/cjs/dtos/storage-config.dto.js +4 -85
  12. package/cjs/dtos/upload.dto.js +24 -17
  13. package/cjs/entities/file-manager-with-company.entity.js +3 -4
  14. package/cjs/entities/file-manager.entity.js +71 -3
  15. package/cjs/entities/folder-with-company.entity.js +3 -4
  16. package/cjs/entities/folder.entity.js +19 -3
  17. package/cjs/entities/index.js +9 -10
  18. package/cjs/entities/storage-config-with-company.entity.js +3 -4
  19. package/cjs/entities/storage-config.entity.js +74 -3
  20. package/cjs/interfaces/index.js +0 -1
  21. package/cjs/middlewares/file-serve.middleware.js +113 -100
  22. package/cjs/modules/storage.module.js +82 -136
  23. package/cjs/providers/azure-provider.optional.js +10 -38
  24. package/cjs/providers/local-provider.js +38 -31
  25. package/cjs/providers/s3-provider.optional.js +19 -40
  26. package/cjs/providers/storage-factory.service.js +54 -99
  27. package/cjs/providers/storage-provider.registry.js +8 -18
  28. package/cjs/services/file-manager.service.js +238 -323
  29. package/cjs/services/folder.service.js +8 -11
  30. package/cjs/services/index.js +1 -0
  31. package/cjs/{config → services}/storage-config.service.js +32 -76
  32. package/cjs/services/storage-datasource.provider.js +16 -26
  33. package/cjs/services/storage-provider-config.service.js +15 -37
  34. package/cjs/services/upload.service.js +72 -88
  35. package/cjs/utils/file-validator.util.js +458 -0
  36. package/cjs/utils/image-compressor.util.js +3 -8
  37. package/config/index.d.ts +0 -1
  38. package/config/storage.constants.d.ts +0 -8
  39. package/controllers/upload.controller.d.ts +3 -6
  40. package/dtos/file-manager.dto.d.ts +12 -5
  41. package/dtos/folder.dto.d.ts +5 -5
  42. package/dtos/storage-config.dto.d.ts +7 -13
  43. package/entities/file-manager-with-company.entity.d.ts +2 -2
  44. package/entities/file-manager.entity.d.ts +12 -2
  45. package/entities/folder-with-company.entity.d.ts +2 -2
  46. package/entities/folder.entity.d.ts +4 -2
  47. package/entities/index.d.ts +3 -4
  48. package/entities/storage-config-with-company.entity.d.ts +2 -2
  49. package/entities/storage-config.entity.d.ts +8 -2
  50. package/fesm/config/index.js +0 -1
  51. package/fesm/config/storage.constants.js +0 -8
  52. package/fesm/controllers/file-manager.controller.js +45 -2
  53. package/fesm/controllers/folder.controller.js +45 -2
  54. package/fesm/controllers/storage-config.controller.js +45 -2
  55. package/fesm/controllers/upload.controller.js +19 -30
  56. package/fesm/docs/storage-swagger.config.js +27 -142
  57. package/fesm/dtos/file-manager.dto.js +71 -35
  58. package/fesm/dtos/folder.dto.js +16 -10
  59. package/fesm/dtos/storage-config.dto.js +8 -95
  60. package/fesm/dtos/upload.dto.js +25 -19
  61. package/fesm/entities/file-manager-with-company.entity.js +3 -4
  62. package/fesm/entities/file-manager.entity.js +72 -4
  63. package/fesm/entities/folder-with-company.entity.js +3 -4
  64. package/fesm/entities/folder.entity.js +20 -4
  65. package/fesm/entities/index.js +5 -13
  66. package/fesm/entities/storage-config-with-company.entity.js +3 -4
  67. package/fesm/entities/storage-config.entity.js +75 -4
  68. package/fesm/interfaces/index.js +0 -1
  69. package/fesm/interfaces/storage-config.interface.js +1 -3
  70. package/fesm/middlewares/file-serve.middleware.js +114 -101
  71. package/fesm/modules/storage.module.js +83 -136
  72. package/fesm/providers/azure-provider.optional.js +11 -42
  73. package/fesm/providers/local-provider.js +38 -31
  74. package/fesm/providers/s3-provider.optional.js +20 -44
  75. package/fesm/providers/storage-factory.service.js +52 -97
  76. package/fesm/providers/storage-provider.registry.js +10 -20
  77. package/fesm/services/file-manager.service.js +237 -322
  78. package/fesm/services/folder.service.js +6 -9
  79. package/fesm/services/index.js +1 -0
  80. package/fesm/{config → services}/storage-config.service.js +32 -76
  81. package/fesm/services/storage-datasource.provider.js +16 -26
  82. package/fesm/services/storage-provider-config.service.js +13 -35
  83. package/fesm/services/upload.service.js +71 -87
  84. package/fesm/utils/file-validator.util.js +451 -0
  85. package/fesm/utils/image-compressor.util.js +3 -8
  86. package/interfaces/file-manager.interface.d.ts +7 -4
  87. package/interfaces/index.d.ts +0 -1
  88. package/interfaces/storage-config.interface.d.ts +0 -20
  89. package/interfaces/storage-module-options.interface.d.ts +0 -5
  90. package/middlewares/file-serve.middleware.d.ts +9 -1
  91. package/modules/storage.module.d.ts +1 -2
  92. package/package.json +6 -6
  93. package/providers/azure-provider.optional.d.ts +8 -6
  94. package/providers/local-provider.d.ts +2 -7
  95. package/providers/s3-provider.optional.d.ts +9 -7
  96. package/providers/storage-factory.service.d.ts +8 -9
  97. package/providers/storage-provider.registry.d.ts +4 -4
  98. package/services/file-manager.service.d.ts +23 -16
  99. package/services/folder.service.d.ts +4 -4
  100. package/services/index.d.ts +1 -0
  101. package/services/storage-config.service.d.ts +24 -0
  102. package/services/storage-datasource.provider.d.ts +3 -4
  103. package/services/storage-provider-config.service.d.ts +4 -4
  104. package/services/upload.service.d.ts +3 -2
  105. package/utils/file-validator.util.d.ts +19 -0
  106. package/cjs/entities/file-manager-base.entity.js +0 -115
  107. package/cjs/entities/folder-base.entity.js +0 -55
  108. package/cjs/entities/storage-config-base.entity.js +0 -93
  109. package/cjs/interfaces/file-upload-response.interface.js +0 -4
  110. package/config/storage-config.service.d.ts +0 -22
  111. package/entities/file-manager-base.entity.d.ts +0 -13
  112. package/entities/folder-base.entity.d.ts +0 -5
  113. package/entities/storage-config-base.entity.d.ts +0 -9
  114. package/fesm/entities/file-manager-base.entity.js +0 -108
  115. package/fesm/entities/folder-base.entity.js +0 -48
  116. package/fesm/entities/storage-config-base.entity.js +0 -83
  117. package/fesm/interfaces/file-upload-response.interface.js +0 -1
  118. package/interfaces/file-upload-response.interface.d.ts +0 -6
@@ -1,108 +0,0 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- function _ts_decorate(decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
- }
23
- import { Identity } from '@flusys/nestjs-shared/entities';
24
- import { FileLocationEnum } from '../enums';
25
- import { Column } from 'typeorm';
26
- /**
27
- * Base FileManager Entity
28
- * Contains common fields shared by both FileManager and FileManagerWithCompany
29
- */ export class FileManagerBase extends Identity {
30
- constructor(...args){
31
- super(...args), _define_property(this, "name", void 0 // Store original name of the file
32
- ), _define_property(this, "contentType", void 0 // MIME type of the file
33
- ), _define_property(this, "size", void 0 // Size of the file in KB
34
- ), _define_property(this, "key", void 0 // Storage key or path of the file
35
- ), _define_property(this, "url", void 0 // Accessible URL of the file
36
- ), _define_property(this, "location", void 0 // aws, azure, sftp
37
- ), _define_property(this, "storageConfigId", void 0 // Reference to storage_config table
38
- ), _define_property(this, "expiresAt", null) // Expiration timestamp for the URL
39
- , _define_property(this, "isPrivate", void 0);
40
- }
41
- }
42
- _ts_decorate([
43
- Column({
44
- type: 'varchar',
45
- length: 255,
46
- nullable: false
47
- }),
48
- _ts_metadata("design:type", String)
49
- ], FileManagerBase.prototype, "name", void 0);
50
- _ts_decorate([
51
- Column({
52
- type: 'varchar',
53
- length: 255,
54
- nullable: false
55
- }),
56
- _ts_metadata("design:type", String)
57
- ], FileManagerBase.prototype, "contentType", void 0);
58
- _ts_decorate([
59
- Column({
60
- type: 'varchar',
61
- length: 255,
62
- nullable: false
63
- }),
64
- _ts_metadata("design:type", String)
65
- ], FileManagerBase.prototype, "size", void 0);
66
- _ts_decorate([
67
- Column({
68
- type: 'text',
69
- nullable: false
70
- }),
71
- _ts_metadata("design:type", String)
72
- ], FileManagerBase.prototype, "key", void 0);
73
- _ts_decorate([
74
- Column({
75
- type: 'text',
76
- nullable: true
77
- }),
78
- _ts_metadata("design:type", Object)
79
- ], FileManagerBase.prototype, "url", void 0);
80
- _ts_decorate([
81
- Column({
82
- type: 'text',
83
- nullable: false
84
- }),
85
- _ts_metadata("design:type", typeof FileLocationEnum === "undefined" ? Object : FileLocationEnum)
86
- ], FileManagerBase.prototype, "location", void 0);
87
- _ts_decorate([
88
- Column({
89
- type: 'uuid',
90
- nullable: true
91
- }),
92
- _ts_metadata("design:type", Object)
93
- ], FileManagerBase.prototype, "storageConfigId", void 0);
94
- _ts_decorate([
95
- Column({
96
- type: 'bigint',
97
- nullable: true
98
- }),
99
- _ts_metadata("design:type", Object)
100
- ], FileManagerBase.prototype, "expiresAt", void 0);
101
- _ts_decorate([
102
- Column({
103
- type: 'boolean',
104
- nullable: false,
105
- default: false
106
- }),
107
- _ts_metadata("design:type", Boolean)
108
- ], FileManagerBase.prototype, "isPrivate", void 0);
@@ -1,48 +0,0 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- function _ts_decorate(decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
- }
23
- import { Identity } from '@flusys/nestjs-shared/entities';
24
- import { Column } from 'typeorm';
25
- /**
26
- * Base Folder Entity
27
- * Contains common fields shared by both Folder and FolderWithCompany
28
- */ export class FolderBase extends Identity {
29
- constructor(...args){
30
- super(...args), _define_property(this, "name", void 0), _define_property(this, "slug", void 0);
31
- }
32
- }
33
- _ts_decorate([
34
- Column({
35
- type: 'varchar',
36
- length: 255,
37
- nullable: false
38
- }),
39
- _ts_metadata("design:type", String)
40
- ], FolderBase.prototype, "name", void 0);
41
- _ts_decorate([
42
- Column({
43
- type: 'varchar',
44
- length: 255,
45
- nullable: false
46
- }),
47
- _ts_metadata("design:type", String)
48
- ], FolderBase.prototype, "slug", void 0);
@@ -1,83 +0,0 @@
1
- function _define_property(obj, key, value) {
2
- if (key in obj) {
3
- Object.defineProperty(obj, key, {
4
- value: value,
5
- enumerable: true,
6
- configurable: true,
7
- writable: true
8
- });
9
- } else {
10
- obj[key] = value;
11
- }
12
- return obj;
13
- }
14
- function _ts_decorate(decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- }
20
- function _ts_metadata(k, v) {
21
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
- }
23
- import { Identity } from '@flusys/nestjs-shared/entities';
24
- import { FileLocationEnum } from '../enums';
25
- import { Column, Index } from 'typeorm';
26
- export class StorageConfigBase extends Identity {
27
- constructor(...args){
28
- super(...args), _define_property(this, "name", void 0), _define_property(this, "storage", void 0), _define_property(this, "config", void 0), _define_property(this, "isActive", void 0), _define_property(this, "isDefault", void 0);
29
- }
30
- }
31
- _ts_decorate([
32
- Column({
33
- type: 'varchar',
34
- length: 255,
35
- nullable: false
36
- }),
37
- _ts_metadata("design:type", String)
38
- ], StorageConfigBase.prototype, "name", void 0);
39
- _ts_decorate([
40
- Column({
41
- type: 'enum',
42
- enum: FileLocationEnum,
43
- nullable: false
44
- }),
45
- _ts_metadata("design:type", typeof FileLocationEnum === "undefined" ? Object : FileLocationEnum)
46
- ], StorageConfigBase.prototype, "storage", void 0);
47
- _ts_decorate([
48
- Column({
49
- type: 'json',
50
- nullable: false
51
- }),
52
- _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
53
- ], StorageConfigBase.prototype, "config", void 0);
54
- _ts_decorate([
55
- Column({
56
- type: 'boolean',
57
- default: true,
58
- name: 'is_active'
59
- }),
60
- _ts_metadata("design:type", Boolean)
61
- ], StorageConfigBase.prototype, "isActive", void 0);
62
- _ts_decorate([
63
- Column({
64
- type: 'boolean',
65
- default: false,
66
- name: 'is_default'
67
- }),
68
- _ts_metadata("design:type", Boolean)
69
- ], StorageConfigBase.prototype, "isDefault", void 0);
70
- StorageConfigBase = _ts_decorate([
71
- Index([
72
- 'name'
73
- ]),
74
- Index([
75
- 'storage'
76
- ]),
77
- Index([
78
- 'isActive'
79
- ]),
80
- Index([
81
- 'isDefault'
82
- ])
83
- ], StorageConfigBase);
@@ -1 +0,0 @@
1
- export { };
@@ -1,6 +0,0 @@
1
- export interface IFileUploadResponse {
2
- name: string;
3
- contentType: string;
4
- size: number;
5
- key: string;
6
- }