@flusys/nestjs-storage 1.0.0-rc → 1.0.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 (103) hide show
  1. package/README.md +44 -1
  2. package/cjs/config/index.js +0 -1
  3. package/cjs/config/storage.constants.js +0 -9
  4. package/cjs/controllers/upload.controller.js +12 -17
  5. package/cjs/docs/storage-swagger.config.js +24 -136
  6. package/cjs/dtos/file-manager.dto.js +65 -32
  7. package/cjs/dtos/folder.dto.js +15 -9
  8. package/cjs/dtos/storage-config.dto.js +5 -86
  9. package/cjs/dtos/upload.dto.js +17 -17
  10. package/cjs/entities/file-manager-with-company.entity.js +3 -4
  11. package/cjs/entities/file-manager.entity.js +71 -3
  12. package/cjs/entities/folder-with-company.entity.js +3 -4
  13. package/cjs/entities/folder.entity.js +19 -3
  14. package/cjs/entities/index.js +9 -10
  15. package/cjs/entities/storage-config-with-company.entity.js +3 -4
  16. package/cjs/entities/storage-config.entity.js +73 -3
  17. package/cjs/middlewares/file-serve.middleware.js +107 -100
  18. package/cjs/modules/storage.module.js +82 -136
  19. package/cjs/providers/azure-provider.optional.js +10 -38
  20. package/cjs/providers/local-provider.js +0 -43
  21. package/cjs/providers/s3-provider.optional.js +19 -40
  22. package/cjs/providers/storage-factory.service.js +54 -99
  23. package/cjs/providers/storage-provider.registry.js +8 -18
  24. package/cjs/services/file-manager.service.js +239 -337
  25. package/cjs/services/folder.service.js +3 -3
  26. package/cjs/services/index.js +1 -0
  27. package/cjs/{config → services}/storage-config.service.js +30 -79
  28. package/cjs/services/storage-datasource.provider.js +16 -26
  29. package/cjs/services/storage-provider-config.service.js +3 -3
  30. package/cjs/services/upload.service.js +33 -61
  31. package/cjs/utils/file-validator.util.js +54 -66
  32. package/cjs/utils/image-compressor.util.js +2 -5
  33. package/config/index.d.ts +0 -1
  34. package/config/storage.constants.d.ts +0 -6
  35. package/controllers/upload.controller.d.ts +1 -0
  36. package/dtos/file-manager.dto.d.ts +11 -3
  37. package/dtos/folder.dto.d.ts +3 -1
  38. package/dtos/storage-config.dto.d.ts +7 -11
  39. package/entities/file-manager-with-company.entity.d.ts +2 -2
  40. package/entities/file-manager.entity.d.ts +11 -2
  41. package/entities/folder-with-company.entity.d.ts +2 -2
  42. package/entities/folder.entity.d.ts +4 -2
  43. package/entities/index.d.ts +3 -4
  44. package/entities/storage-config-with-company.entity.d.ts +2 -2
  45. package/entities/storage-config.entity.d.ts +7 -2
  46. package/fesm/config/index.js +0 -1
  47. package/fesm/config/storage.constants.js +0 -6
  48. package/fesm/controllers/upload.controller.js +12 -17
  49. package/fesm/docs/storage-swagger.config.js +27 -142
  50. package/fesm/dtos/file-manager.dto.js +66 -33
  51. package/fesm/dtos/folder.dto.js +16 -10
  52. package/fesm/dtos/storage-config.dto.js +7 -88
  53. package/fesm/dtos/upload.dto.js +17 -18
  54. package/fesm/entities/file-manager-with-company.entity.js +3 -4
  55. package/fesm/entities/file-manager.entity.js +72 -4
  56. package/fesm/entities/folder-with-company.entity.js +3 -4
  57. package/fesm/entities/folder.entity.js +20 -4
  58. package/fesm/entities/index.js +4 -8
  59. package/fesm/entities/storage-config-with-company.entity.js +3 -4
  60. package/fesm/entities/storage-config.entity.js +74 -4
  61. package/fesm/middlewares/file-serve.middleware.js +107 -100
  62. package/fesm/modules/storage.module.js +83 -136
  63. package/fesm/providers/azure-provider.optional.js +14 -45
  64. package/fesm/providers/local-provider.js +0 -43
  65. package/fesm/providers/s3-provider.optional.js +23 -47
  66. package/fesm/providers/storage-factory.service.js +52 -97
  67. package/fesm/providers/storage-provider.registry.js +10 -20
  68. package/fesm/services/file-manager.service.js +237 -335
  69. package/fesm/services/folder.service.js +1 -1
  70. package/fesm/services/index.js +1 -0
  71. package/fesm/{config → services}/storage-config.service.js +30 -79
  72. package/fesm/services/storage-datasource.provider.js +16 -26
  73. package/fesm/services/storage-provider-config.service.js +1 -1
  74. package/fesm/services/upload.service.js +31 -59
  75. package/fesm/utils/file-validator.util.js +54 -66
  76. package/fesm/utils/image-compressor.util.js +2 -5
  77. package/interfaces/storage-config.interface.d.ts +1 -2
  78. package/interfaces/storage-module-options.interface.d.ts +0 -5
  79. package/middlewares/file-serve.middleware.d.ts +9 -1
  80. package/modules/storage.module.d.ts +1 -2
  81. package/package.json +3 -3
  82. package/providers/azure-provider.optional.d.ts +8 -6
  83. package/providers/local-provider.d.ts +0 -7
  84. package/providers/s3-provider.optional.d.ts +9 -7
  85. package/providers/storage-factory.service.d.ts +8 -9
  86. package/providers/storage-provider.registry.d.ts +4 -4
  87. package/services/file-manager.service.d.ts +21 -14
  88. package/services/folder.service.d.ts +4 -4
  89. package/services/index.d.ts +1 -0
  90. package/{config → services}/storage-config.service.d.ts +9 -10
  91. package/services/storage-datasource.provider.d.ts +3 -4
  92. package/services/storage-provider-config.service.d.ts +5 -6
  93. package/services/upload.service.d.ts +5 -5
  94. package/utils/file-validator.util.d.ts +3 -0
  95. package/cjs/entities/file-manager-base.entity.js +0 -115
  96. package/cjs/entities/folder-base.entity.js +0 -55
  97. package/cjs/entities/storage-config-base.entity.js +0 -93
  98. package/entities/file-manager-base.entity.d.ts +0 -13
  99. package/entities/folder-base.entity.d.ts +0 -5
  100. package/entities/storage-config-base.entity.d.ts +0 -9
  101. package/fesm/entities/file-manager-base.entity.js +0 -108
  102. package/fesm/entities/folder-base.entity.js +0 -48
  103. package/fesm/entities/storage-config-base.entity.js +0 -83
@@ -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);