@internxt/cli 1.6.4 → 1.6.6
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 +94 -40
- package/dist/commands/add-cert.d.ts +4 -1
- package/dist/commands/add-cert.js +4 -1
- package/dist/commands/config.js +1 -0
- package/dist/commands/create-folder.js +1 -0
- package/dist/commands/delete-permanently-file.js +1 -0
- package/dist/commands/delete-permanently-folder.js +1 -0
- package/dist/commands/download-file.js +1 -0
- package/dist/commands/list.js +1 -0
- package/dist/commands/login-legacy.js +3 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.js +4 -0
- package/dist/commands/logout.d.ts +4 -1
- package/dist/commands/logout.js +4 -1
- package/dist/commands/logs.d.ts +4 -1
- package/dist/commands/logs.js +4 -1
- package/dist/commands/move-file.js +1 -0
- package/dist/commands/move-folder.js +1 -0
- package/dist/commands/rename-file.js +1 -0
- package/dist/commands/rename-folder.js +1 -0
- package/dist/commands/trash-clear.js +1 -0
- package/dist/commands/trash-file.js +1 -0
- package/dist/commands/trash-folder.js +1 -0
- package/dist/commands/trash-list.d.ts +2 -0
- package/dist/commands/trash-list.js +2 -0
- package/dist/commands/trash-restore-file.js +1 -0
- package/dist/commands/trash-restore-folder.js +1 -0
- package/dist/commands/upload-file.js +16 -26
- package/dist/commands/upload-folder.js +1 -0
- package/dist/commands/webdav-config.js +1 -0
- package/dist/commands/webdav.d.ts +4 -1
- package/dist/commands/webdav.js +4 -1
- package/dist/commands/whoami.d.ts +4 -1
- package/dist/commands/whoami.js +4 -1
- package/dist/commands/workspaces-list.js +1 -0
- package/dist/commands/workspaces-unset.js +1 -0
- package/dist/commands/workspaces-use.js +1 -0
- package/dist/hooks/prerun/auth_check.js +2 -0
- package/dist/services/auth.service.js +10 -1
- package/dist/services/cache.service.d.ts +13 -0
- package/dist/services/cache.service.js +36 -0
- package/dist/services/config.service.js +19 -3
- package/dist/services/database/database.service.d.ts +1 -1
- package/dist/services/database/database.service.js +6 -5
- package/dist/services/database/drive-item/drive-item.attributes.d.ts +7 -0
- package/dist/services/database/drive-item/drive-item.domain.d.ts +10 -0
- package/dist/services/database/drive-item/drive-item.domain.js +27 -0
- package/dist/services/database/drive-item/drive-item.model.d.ts +8 -0
- package/dist/services/database/{drive-folder/drive-folder.model.js → drive-item/drive-item.model.js} +11 -23
- package/dist/services/database/drive-item/drive-item.repository.d.ts +12 -0
- package/dist/services/database/drive-item/drive-item.repository.js +88 -0
- package/dist/services/drive/drive-file.service.d.ts +2 -3
- package/dist/services/drive/drive-file.service.js +9 -34
- package/dist/services/drive/drive-folder.service.d.ts +1 -3
- package/dist/services/drive/drive-folder.service.js +9 -87
- package/dist/services/drive/drive-item.service.d.ts +8 -0
- package/dist/services/drive/drive-item.service.js +98 -0
- package/dist/services/network/network-facade.service.d.ts +1 -3
- package/dist/services/network/network-facade.service.js +5 -8
- package/dist/services/network/upload/upload-file.service.js +2 -1
- package/dist/services/thumbnail.service.js +2 -2
- package/dist/services/usage.service.d.ts +2 -0
- package/dist/services/usage.service.js +18 -0
- package/dist/utils/cli.utils.d.ts +5 -3
- package/dist/utils/cli.utils.js +36 -18
- package/dist/utils/format.utils.js +3 -2
- package/dist/utils/upload.utils.d.ts +19 -0
- package/dist/utils/upload.utils.js +40 -0
- package/dist/utils/webdav.utils.d.ts +4 -2
- package/dist/utils/webdav.utils.js +14 -18
- package/dist/utils/xml.utils.js +5 -1
- package/dist/webdav/handlers/DELETE.handler.js +2 -0
- package/dist/webdav/handlers/LOCK.handler.d.ts +5 -0
- package/dist/webdav/handlers/LOCK.handler.js +50 -0
- package/dist/webdav/handlers/MKCOL.handler.js +15 -3
- package/dist/webdav/handlers/MOVE.handler.js +11 -0
- package/dist/webdav/handlers/OPTIONS.handler.js +4 -4
- package/dist/webdav/handlers/PROPFIND.handler.js +30 -9
- package/dist/webdav/handlers/PUT.handler.js +44 -40
- package/dist/webdav/handlers/UNLOCK.handler.d.ts +5 -0
- package/dist/webdav/handlers/UNLOCK.handler.js +12 -0
- package/dist/webdav/middewares/auth.middleware.js +9 -2
- package/dist/webdav/middewares/errors.middleware.js +2 -0
- package/dist/webdav/middewares/request-logger.middleware.js +10 -6
- package/dist/webdav/middewares/webdav-auth.middleware.js +0 -3
- package/dist/webdav/webdav-server.js +4 -0
- package/oclif.manifest.json +134 -1
- package/package.json +47 -46
- package/dist/services/database/drive-file/drive-file.attributes.d.ts +0 -14
- package/dist/services/database/drive-file/drive-file.domain.d.ts +0 -20
- package/dist/services/database/drive-file/drive-file.domain.js +0 -68
- package/dist/services/database/drive-file/drive-file.model.d.ts +0 -15
- package/dist/services/database/drive-file/drive-file.model.js +0 -67
- package/dist/services/database/drive-file/drive-file.repository.d.ts +0 -11
- package/dist/services/database/drive-file/drive-file.repository.js +0 -63
- package/dist/services/database/drive-folder/drive-folder.attributes.d.ts +0 -10
- package/dist/services/database/drive-folder/drive-folder.attributes.js +0 -2
- package/dist/services/database/drive-folder/drive-folder.domain.d.ts +0 -16
- package/dist/services/database/drive-folder/drive-folder.domain.js +0 -53
- package/dist/services/database/drive-folder/drive-folder.model.d.ts +0 -11
- package/dist/services/database/drive-folder/drive-folder.repository.d.ts +0 -13
- package/dist/services/database/drive-folder/drive-folder.repository.js +0 -99
- package/dist/utils/database.utils.d.ts +0 -11
- package/dist/utils/database.utils.js +0 -26
- /package/dist/services/database/{drive-file/drive-file.attributes.js → drive-item/drive-item.attributes.js} +0 -0
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileRepository = void 0;
|
|
4
|
-
const typeorm_1 = require("typeorm");
|
|
5
|
-
const database_utils_1 = require("../../../utils/database.utils");
|
|
6
|
-
const errors_utils_1 = require("../../../utils/errors.utils");
|
|
7
|
-
const database_service_1 = require("../database.service");
|
|
8
|
-
const drive_file_domain_1 = require("./drive-file.domain");
|
|
9
|
-
const drive_file_model_1 = require("./drive-file.model");
|
|
10
|
-
class FileRepository {
|
|
11
|
-
static instance = new FileRepository();
|
|
12
|
-
fileRepository = database_service_1.DatabaseService.instance.dataSource.getRepository(drive_file_model_1.DriveFileModel);
|
|
13
|
-
createOrUpdate = async (files) => {
|
|
14
|
-
try {
|
|
15
|
-
for (let i = 0; i < files.length; i += database_utils_1.DatabaseUtils.CREATE_BATCH_SIZE) {
|
|
16
|
-
const chunk = files.slice(i, i + database_utils_1.DatabaseUtils.CREATE_BATCH_SIZE);
|
|
17
|
-
await this.fileRepository.upsert(chunk, { conflictPaths: ['uuid'] });
|
|
18
|
-
}
|
|
19
|
-
return files.map((file) => drive_file_domain_1.DriveFile.build(file));
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
errors_utils_1.ErrorUtils.report(error, { createOrUpdate: files });
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
updateByUuid = async (uuid, update) => {
|
|
26
|
-
try {
|
|
27
|
-
return await this.fileRepository.update({ uuid }, update);
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
errors_utils_1.ErrorUtils.report(error, { updateByUuid: uuid });
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
delete = async (uuids) => {
|
|
34
|
-
try {
|
|
35
|
-
return await this.fileRepository.delete(uuids);
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
errors_utils_1.ErrorUtils.report(error, { delete: uuids });
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
deleteByParentUuid = async (parentUuid) => {
|
|
42
|
-
try {
|
|
43
|
-
return await this.fileRepository.delete({ folderUuid: parentUuid });
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
errors_utils_1.ErrorUtils.report(error, { deleteByParentUuid: parentUuid });
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
getByParentUuidNameAndType = async (parentUuid, name, type) => {
|
|
50
|
-
try {
|
|
51
|
-
const typeCondition = type ?? (0, typeorm_1.IsNull)();
|
|
52
|
-
const file = await this.fileRepository.findOneBy({ folderUuid: parentUuid, name, type: typeCondition });
|
|
53
|
-
if (!file) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
return drive_file_domain_1.DriveFile.build(file);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
errors_utils_1.ErrorUtils.report(error, { getByParentuuidAndName: { parentUuid, name, type } });
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
exports.FileRepository = FileRepository;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { DriveFolderItem } from '../../../types/drive.types';
|
|
2
|
-
import { DriveFolderAttributes } from './drive-folder.attributes';
|
|
3
|
-
export declare class DriveFolder implements DriveFolderAttributes {
|
|
4
|
-
name: string;
|
|
5
|
-
uuid: string;
|
|
6
|
-
parentUuid: string | null;
|
|
7
|
-
status: DriveFolderAttributes['status'];
|
|
8
|
-
createdAt: Date;
|
|
9
|
-
updatedAt: Date;
|
|
10
|
-
creationTime: Date;
|
|
11
|
-
modificationTime: Date;
|
|
12
|
-
constructor({ name, uuid, parentUuid, createdAt, updatedAt, status, creationTime, modificationTime, }: DriveFolderAttributes);
|
|
13
|
-
static build(folder: DriveFolderAttributes): DriveFolder;
|
|
14
|
-
toJSON(): DriveFolderAttributes;
|
|
15
|
-
toItem(): DriveFolderItem;
|
|
16
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DriveFolder = void 0;
|
|
4
|
-
class DriveFolder {
|
|
5
|
-
name;
|
|
6
|
-
uuid;
|
|
7
|
-
parentUuid;
|
|
8
|
-
status;
|
|
9
|
-
createdAt;
|
|
10
|
-
updatedAt;
|
|
11
|
-
creationTime;
|
|
12
|
-
modificationTime;
|
|
13
|
-
constructor({ name, uuid, parentUuid, createdAt, updatedAt, status, creationTime, modificationTime, }) {
|
|
14
|
-
this.name = name;
|
|
15
|
-
this.uuid = uuid;
|
|
16
|
-
this.parentUuid = parentUuid;
|
|
17
|
-
this.status = status;
|
|
18
|
-
this.createdAt = createdAt;
|
|
19
|
-
this.updatedAt = updatedAt;
|
|
20
|
-
this.creationTime = creationTime;
|
|
21
|
-
this.modificationTime = modificationTime;
|
|
22
|
-
}
|
|
23
|
-
static build(folder) {
|
|
24
|
-
return new DriveFolder(folder);
|
|
25
|
-
}
|
|
26
|
-
toJSON() {
|
|
27
|
-
return {
|
|
28
|
-
name: this.name,
|
|
29
|
-
uuid: this.uuid,
|
|
30
|
-
status: this.status,
|
|
31
|
-
parentUuid: this.parentUuid,
|
|
32
|
-
createdAt: this.createdAt,
|
|
33
|
-
updatedAt: this.updatedAt,
|
|
34
|
-
creationTime: this.creationTime,
|
|
35
|
-
modificationTime: this.modificationTime,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
toItem() {
|
|
39
|
-
return {
|
|
40
|
-
itemType: 'folder',
|
|
41
|
-
name: this.name,
|
|
42
|
-
uuid: this.uuid,
|
|
43
|
-
status: this.status,
|
|
44
|
-
parentUuid: this.parentUuid,
|
|
45
|
-
createdAt: this.createdAt,
|
|
46
|
-
updatedAt: this.updatedAt,
|
|
47
|
-
creationTime: this.creationTime,
|
|
48
|
-
modificationTime: this.modificationTime,
|
|
49
|
-
bucket: null,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.DriveFolder = DriveFolder;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DriveFolderAttributes } from './drive-folder.attributes';
|
|
2
|
-
export declare class DriveFolderModel implements DriveFolderAttributes {
|
|
3
|
-
uuid: string;
|
|
4
|
-
name: string;
|
|
5
|
-
status: 'EXISTS' | 'TRASHED';
|
|
6
|
-
parentUuid: string | null;
|
|
7
|
-
createdAt: Date;
|
|
8
|
-
updatedAt: Date;
|
|
9
|
-
creationTime: Date;
|
|
10
|
-
modificationTime: Date;
|
|
11
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { DriveFolder } from './drive-folder.domain';
|
|
2
|
-
import { DriveFolderModel } from './drive-folder.model';
|
|
3
|
-
export declare class FolderRepository {
|
|
4
|
-
static readonly instance: FolderRepository;
|
|
5
|
-
private readonly folderRepository;
|
|
6
|
-
getByUuid: (uuid: string) => Promise<DriveFolder | undefined>;
|
|
7
|
-
getAllByParentUuid: (parentUuid?: string) => Promise<DriveFolder[] | undefined>;
|
|
8
|
-
getByParentUuidAndName: (parentUuid: string, name: string) => Promise<DriveFolder | undefined>;
|
|
9
|
-
getByPath: (path: string, parentUuid: string) => Promise<DriveFolder | undefined>;
|
|
10
|
-
createOrUpdate: (files: DriveFolderModel[]) => Promise<DriveFolder[] | undefined>;
|
|
11
|
-
updateByUuid: (uuid: string, update: Partial<DriveFolderModel>) => Promise<import("typeorm").UpdateResult | undefined>;
|
|
12
|
-
delete: (uuids: string[]) => Promise<import("typeorm").DeleteResult | undefined>;
|
|
13
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FolderRepository = void 0;
|
|
4
|
-
const errors_utils_1 = require("../../../utils/errors.utils");
|
|
5
|
-
const database_service_1 = require("../database.service");
|
|
6
|
-
const drive_folder_domain_1 = require("./drive-folder.domain");
|
|
7
|
-
const drive_folder_model_1 = require("./drive-folder.model");
|
|
8
|
-
const database_utils_1 = require("../../../utils/database.utils");
|
|
9
|
-
class FolderRepository {
|
|
10
|
-
static instance = new FolderRepository();
|
|
11
|
-
folderRepository = database_service_1.DatabaseService.instance.dataSource.getRepository(drive_folder_model_1.DriveFolderModel);
|
|
12
|
-
getByUuid = async (uuid) => {
|
|
13
|
-
try {
|
|
14
|
-
const folder = await this.folderRepository.findOneBy({ uuid });
|
|
15
|
-
if (!folder) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
return drive_folder_domain_1.DriveFolder.build(folder);
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
errors_utils_1.ErrorUtils.report(error, { getByUuid: uuid });
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
getAllByParentUuid = async (parentUuid) => {
|
|
25
|
-
try {
|
|
26
|
-
const folders = await this.folderRepository.findBy({ parentUuid });
|
|
27
|
-
if (!folders) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
return folders.map((folder) => drive_folder_domain_1.DriveFolder.build(folder));
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
errors_utils_1.ErrorUtils.report(error, { getAllByParentUuid: parentUuid });
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
getByParentUuidAndName = async (parentUuid, name) => {
|
|
37
|
-
try {
|
|
38
|
-
const folder = await this.folderRepository.findOneBy({ parentUuid, name });
|
|
39
|
-
if (!folder) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
return drive_folder_domain_1.DriveFolder.build(folder);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
errors_utils_1.ErrorUtils.report(error, { getByParentuuidAndName: { parentUuid, name } });
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
getByPath = async (path, parentUuid) => {
|
|
49
|
-
try {
|
|
50
|
-
const onFound = async (uuid) => {
|
|
51
|
-
const folder = await this.folderRepository.findOneBy({ uuid });
|
|
52
|
-
if (!folder) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
return drive_folder_domain_1.DriveFolder.build(folder);
|
|
56
|
-
};
|
|
57
|
-
return database_utils_1.DatabaseUtils.getFolderByPathGeneric({
|
|
58
|
-
path,
|
|
59
|
-
parentUuid,
|
|
60
|
-
onFound,
|
|
61
|
-
getByParentAndName: this.getByParentUuidAndName.bind(this),
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
errors_utils_1.ErrorUtils.report(error, { getByPath: path });
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
createOrUpdate = async (files) => {
|
|
69
|
-
if (files.length === 0)
|
|
70
|
-
return;
|
|
71
|
-
try {
|
|
72
|
-
for (let i = 0; i < files.length; i += database_utils_1.DatabaseUtils.CREATE_BATCH_SIZE) {
|
|
73
|
-
const chunk = files.slice(i, i + database_utils_1.DatabaseUtils.CREATE_BATCH_SIZE);
|
|
74
|
-
await this.folderRepository.upsert(chunk, { conflictPaths: ['uuid'] });
|
|
75
|
-
}
|
|
76
|
-
return files.map((file) => drive_folder_domain_1.DriveFolder.build(file));
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
errors_utils_1.ErrorUtils.report(error, { createOrUpdate: files });
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
updateByUuid = async (uuid, update) => {
|
|
83
|
-
try {
|
|
84
|
-
return await this.folderRepository.update({ uuid }, update);
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
errors_utils_1.ErrorUtils.report(error, { updateByUuid: uuid });
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
delete = async (uuids) => {
|
|
91
|
-
try {
|
|
92
|
-
return await this.folderRepository.delete(uuids);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
errors_utils_1.ErrorUtils.report(error, { delete: uuids });
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
exports.FolderRepository = FolderRepository;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare class DatabaseUtils {
|
|
2
|
-
static readonly CREATE_BATCH_SIZE = 100;
|
|
3
|
-
static readonly getFolderByPathGeneric: <T>({ path, parentUuid, onFound, getByParentAndName, }: {
|
|
4
|
-
path: string;
|
|
5
|
-
parentUuid: string;
|
|
6
|
-
onFound: (uuid: string) => Promise<T>;
|
|
7
|
-
getByParentAndName: (parentUuid: string, name: string) => Promise<{
|
|
8
|
-
uuid: string;
|
|
9
|
-
} | null | undefined>;
|
|
10
|
-
}) => Promise<T | undefined>;
|
|
11
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DatabaseUtils = void 0;
|
|
4
|
-
class DatabaseUtils {
|
|
5
|
-
static CREATE_BATCH_SIZE = 100;
|
|
6
|
-
static getFolderByPathGeneric = async ({ path, parentUuid, onFound, getByParentAndName, }) => {
|
|
7
|
-
path = path.replace(/^\//, '').replace(/\/$/, '');
|
|
8
|
-
if (path.trim().length === 0) {
|
|
9
|
-
return onFound(parentUuid);
|
|
10
|
-
}
|
|
11
|
-
const slashIndex = path.indexOf('/');
|
|
12
|
-
const currentFolder = slashIndex === -1 ? path : path.substring(0, slashIndex);
|
|
13
|
-
const nextPath = slashIndex === -1 ? '' : path.substring(slashIndex + 1);
|
|
14
|
-
const folder = await getByParentAndName(parentUuid, currentFolder);
|
|
15
|
-
if (!folder) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
return this.getFolderByPathGeneric({
|
|
19
|
-
path: nextPath,
|
|
20
|
-
parentUuid: folder.uuid,
|
|
21
|
-
onFound,
|
|
22
|
-
getByParentAndName,
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
exports.DatabaseUtils = DatabaseUtils;
|
|
File without changes
|