@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.
- package/README.md +148 -6
- package/cjs/config/index.js +0 -1
- package/cjs/config/storage.constants.js +0 -17
- package/cjs/controllers/file-manager.controller.js +44 -1
- package/cjs/controllers/folder.controller.js +44 -1
- package/cjs/controllers/storage-config.controller.js +44 -1
- package/cjs/controllers/upload.controller.js +18 -29
- package/cjs/docs/storage-swagger.config.js +24 -136
- package/cjs/dtos/file-manager.dto.js +70 -34
- package/cjs/dtos/folder.dto.js +15 -9
- package/cjs/dtos/storage-config.dto.js +4 -85
- package/cjs/dtos/upload.dto.js +24 -17
- package/cjs/entities/file-manager-with-company.entity.js +3 -4
- package/cjs/entities/file-manager.entity.js +71 -3
- package/cjs/entities/folder-with-company.entity.js +3 -4
- package/cjs/entities/folder.entity.js +19 -3
- package/cjs/entities/index.js +9 -10
- package/cjs/entities/storage-config-with-company.entity.js +3 -4
- package/cjs/entities/storage-config.entity.js +74 -3
- package/cjs/interfaces/index.js +0 -1
- package/cjs/middlewares/file-serve.middleware.js +113 -100
- package/cjs/modules/storage.module.js +82 -136
- package/cjs/providers/azure-provider.optional.js +10 -38
- package/cjs/providers/local-provider.js +38 -31
- package/cjs/providers/s3-provider.optional.js +19 -40
- package/cjs/providers/storage-factory.service.js +54 -99
- package/cjs/providers/storage-provider.registry.js +8 -18
- package/cjs/services/file-manager.service.js +238 -323
- package/cjs/services/folder.service.js +8 -11
- package/cjs/services/index.js +1 -0
- package/cjs/{config → services}/storage-config.service.js +32 -76
- package/cjs/services/storage-datasource.provider.js +16 -26
- package/cjs/services/storage-provider-config.service.js +15 -37
- package/cjs/services/upload.service.js +72 -88
- package/cjs/utils/file-validator.util.js +458 -0
- package/cjs/utils/image-compressor.util.js +3 -8
- package/config/index.d.ts +0 -1
- package/config/storage.constants.d.ts +0 -8
- package/controllers/upload.controller.d.ts +3 -6
- package/dtos/file-manager.dto.d.ts +12 -5
- package/dtos/folder.dto.d.ts +5 -5
- package/dtos/storage-config.dto.d.ts +7 -13
- package/entities/file-manager-with-company.entity.d.ts +2 -2
- package/entities/file-manager.entity.d.ts +12 -2
- package/entities/folder-with-company.entity.d.ts +2 -2
- package/entities/folder.entity.d.ts +4 -2
- package/entities/index.d.ts +3 -4
- package/entities/storage-config-with-company.entity.d.ts +2 -2
- package/entities/storage-config.entity.d.ts +8 -2
- package/fesm/config/index.js +0 -1
- package/fesm/config/storage.constants.js +0 -8
- package/fesm/controllers/file-manager.controller.js +45 -2
- package/fesm/controllers/folder.controller.js +45 -2
- package/fesm/controllers/storage-config.controller.js +45 -2
- package/fesm/controllers/upload.controller.js +19 -30
- package/fesm/docs/storage-swagger.config.js +27 -142
- package/fesm/dtos/file-manager.dto.js +71 -35
- package/fesm/dtos/folder.dto.js +16 -10
- package/fesm/dtos/storage-config.dto.js +8 -95
- package/fesm/dtos/upload.dto.js +25 -19
- package/fesm/entities/file-manager-with-company.entity.js +3 -4
- package/fesm/entities/file-manager.entity.js +72 -4
- package/fesm/entities/folder-with-company.entity.js +3 -4
- package/fesm/entities/folder.entity.js +20 -4
- package/fesm/entities/index.js +5 -13
- package/fesm/entities/storage-config-with-company.entity.js +3 -4
- package/fesm/entities/storage-config.entity.js +75 -4
- package/fesm/interfaces/index.js +0 -1
- package/fesm/interfaces/storage-config.interface.js +1 -3
- package/fesm/middlewares/file-serve.middleware.js +114 -101
- package/fesm/modules/storage.module.js +83 -136
- package/fesm/providers/azure-provider.optional.js +11 -42
- package/fesm/providers/local-provider.js +38 -31
- package/fesm/providers/s3-provider.optional.js +20 -44
- package/fesm/providers/storage-factory.service.js +52 -97
- package/fesm/providers/storage-provider.registry.js +10 -20
- package/fesm/services/file-manager.service.js +237 -322
- package/fesm/services/folder.service.js +6 -9
- package/fesm/services/index.js +1 -0
- package/fesm/{config → services}/storage-config.service.js +32 -76
- package/fesm/services/storage-datasource.provider.js +16 -26
- package/fesm/services/storage-provider-config.service.js +13 -35
- package/fesm/services/upload.service.js +71 -87
- package/fesm/utils/file-validator.util.js +451 -0
- package/fesm/utils/image-compressor.util.js +3 -8
- package/interfaces/file-manager.interface.d.ts +7 -4
- package/interfaces/index.d.ts +0 -1
- package/interfaces/storage-config.interface.d.ts +0 -20
- package/interfaces/storage-module-options.interface.d.ts +0 -5
- package/middlewares/file-serve.middleware.d.ts +9 -1
- package/modules/storage.module.d.ts +1 -2
- package/package.json +6 -6
- package/providers/azure-provider.optional.d.ts +8 -6
- package/providers/local-provider.d.ts +2 -7
- package/providers/s3-provider.optional.d.ts +9 -7
- package/providers/storage-factory.service.d.ts +8 -9
- package/providers/storage-provider.registry.d.ts +4 -4
- package/services/file-manager.service.d.ts +23 -16
- package/services/folder.service.d.ts +4 -4
- package/services/index.d.ts +1 -0
- package/services/storage-config.service.d.ts +24 -0
- package/services/storage-datasource.provider.d.ts +3 -4
- package/services/storage-provider-config.service.d.ts +4 -4
- package/services/upload.service.d.ts +3 -2
- package/utils/file-validator.util.d.ts +19 -0
- package/cjs/entities/file-manager-base.entity.js +0 -115
- package/cjs/entities/folder-base.entity.js +0 -55
- package/cjs/entities/storage-config-base.entity.js +0 -93
- package/cjs/interfaces/file-upload-response.interface.js +0 -4
- package/config/storage-config.service.d.ts +0 -22
- package/entities/file-manager-base.entity.d.ts +0 -13
- package/entities/folder-base.entity.d.ts +0 -5
- package/entities/storage-config-base.entity.d.ts +0 -9
- package/fesm/entities/file-manager-base.entity.js +0 -108
- package/fesm/entities/folder-base.entity.js +0 -48
- package/fesm/entities/storage-config-base.entity.js +0 -83
- package/fesm/interfaces/file-upload-response.interface.js +0 -1
- 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 { };
|