@internxt/cli 1.6.3 → 1.6.5

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 (74) hide show
  1. package/README.md +32 -32
  2. package/dist/commands/login-legacy.js +2 -0
  3. package/dist/commands/login.js +2 -0
  4. package/dist/commands/upload-file.js +25 -36
  5. package/dist/services/auth.service.js +10 -1
  6. package/dist/services/cache.service.d.ts +13 -0
  7. package/dist/services/cache.service.js +36 -0
  8. package/dist/services/config.service.js +19 -3
  9. package/dist/services/database/database.service.d.ts +1 -1
  10. package/dist/services/database/database.service.js +6 -5
  11. package/dist/services/database/drive-item/drive-item.attributes.d.ts +7 -0
  12. package/dist/services/database/drive-item/drive-item.domain.d.ts +10 -0
  13. package/dist/services/database/drive-item/drive-item.domain.js +27 -0
  14. package/dist/services/database/drive-item/drive-item.model.d.ts +8 -0
  15. package/dist/services/database/{drive-folder/drive-folder.model.js → drive-item/drive-item.model.js} +11 -23
  16. package/dist/services/database/drive-item/drive-item.repository.d.ts +12 -0
  17. package/dist/services/database/drive-item/drive-item.repository.js +88 -0
  18. package/dist/services/drive/drive-file.service.d.ts +2 -3
  19. package/dist/services/drive/drive-file.service.js +9 -34
  20. package/dist/services/drive/drive-folder.service.d.ts +1 -3
  21. package/dist/services/drive/drive-folder.service.js +9 -87
  22. package/dist/services/drive/drive-item.service.d.ts +8 -0
  23. package/dist/services/drive/drive-item.service.js +98 -0
  24. package/dist/services/network/network-facade.service.d.ts +7 -2
  25. package/dist/services/network/network-facade.service.js +11 -25
  26. package/dist/services/network/upload/upload-file.service.js +7 -8
  27. package/dist/services/thumbnail.service.js +7 -9
  28. package/dist/services/usage.service.d.ts +2 -0
  29. package/dist/services/usage.service.js +18 -0
  30. package/dist/utils/cli.utils.d.ts +3 -2
  31. package/dist/utils/cli.utils.js +22 -18
  32. package/dist/utils/format.utils.js +3 -2
  33. package/dist/utils/upload.utils.d.ts +19 -0
  34. package/dist/utils/upload.utils.js +40 -0
  35. package/dist/utils/webdav.utils.d.ts +4 -1
  36. package/dist/utils/webdav.utils.js +33 -18
  37. package/dist/utils/xml.utils.d.ts +1 -1
  38. package/dist/utils/xml.utils.js +5 -1
  39. package/dist/webdav/handlers/DELETE.handler.js +3 -17
  40. package/dist/webdav/handlers/LOCK.handler.d.ts +5 -0
  41. package/dist/webdav/handlers/LOCK.handler.js +50 -0
  42. package/dist/webdav/handlers/MKCOL.handler.js +15 -3
  43. package/dist/webdav/handlers/MOVE.handler.js +11 -0
  44. package/dist/webdav/handlers/OPTIONS.handler.js +4 -4
  45. package/dist/webdav/handlers/PROPFIND.handler.js +30 -9
  46. package/dist/webdav/handlers/PUT.handler.js +59 -59
  47. package/dist/webdav/handlers/UNLOCK.handler.d.ts +5 -0
  48. package/dist/webdav/handlers/UNLOCK.handler.js +12 -0
  49. package/dist/webdav/middewares/auth.middleware.js +9 -2
  50. package/dist/webdav/middewares/errors.middleware.js +2 -0
  51. package/dist/webdav/middewares/request-logger.middleware.js +10 -6
  52. package/dist/webdav/middewares/webdav-auth.middleware.js +0 -3
  53. package/dist/webdav/webdav-server.js +4 -0
  54. package/oclif.manifest.json +1 -1
  55. package/package.json +47 -46
  56. package/dist/services/database/drive-file/drive-file.attributes.d.ts +0 -14
  57. package/dist/services/database/drive-file/drive-file.domain.d.ts +0 -20
  58. package/dist/services/database/drive-file/drive-file.domain.js +0 -68
  59. package/dist/services/database/drive-file/drive-file.model.d.ts +0 -15
  60. package/dist/services/database/drive-file/drive-file.model.js +0 -67
  61. package/dist/services/database/drive-file/drive-file.repository.d.ts +0 -11
  62. package/dist/services/database/drive-file/drive-file.repository.js +0 -63
  63. package/dist/services/database/drive-folder/drive-folder.attributes.d.ts +0 -10
  64. package/dist/services/database/drive-folder/drive-folder.attributes.js +0 -2
  65. package/dist/services/database/drive-folder/drive-folder.domain.d.ts +0 -16
  66. package/dist/services/database/drive-folder/drive-folder.domain.js +0 -53
  67. package/dist/services/database/drive-folder/drive-folder.model.d.ts +0 -11
  68. package/dist/services/database/drive-folder/drive-folder.repository.d.ts +0 -13
  69. package/dist/services/database/drive-folder/drive-folder.repository.js +0 -99
  70. package/dist/types/fast-xml-parser.types.d.ts +0 -59
  71. package/dist/types/fast-xml-parser.types.js +0 -2
  72. package/dist/utils/database.utils.d.ts +0 -11
  73. package/dist/utils/database.utils.js +0 -26
  74. /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,10 +0,0 @@
1
- export interface DriveFolderAttributes {
2
- uuid: string;
3
- name: string;
4
- status: 'EXISTS' | 'TRASHED';
5
- parentUuid: string | null;
6
- createdAt: Date;
7
- updatedAt: Date;
8
- creationTime: Date;
9
- modificationTime: Date;
10
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -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,59 +0,0 @@
1
- type strnumOptions = {
2
- hex: boolean;
3
- leadingZeros: boolean;
4
- skipLike?: RegExp;
5
- eNotation?: boolean;
6
- };
7
- export type X2jOptions = {
8
- preserveOrder?: boolean;
9
- attributeNamePrefix?: string;
10
- attributesGroupName?: false | string;
11
- textNodeName?: string;
12
- ignoreAttributes?: boolean | (string | RegExp)[] | ((attrName: string, jPath: string) => boolean);
13
- removeNSPrefix?: boolean;
14
- allowBooleanAttributes?: boolean;
15
- parseTagValue?: boolean;
16
- parseAttributeValue?: boolean;
17
- trimValues?: boolean;
18
- cdataPropName?: false | string;
19
- commentPropName?: false | string;
20
- tagValueProcessor?: (tagName: string, tagValue: string, jPath: string, hasAttributes: boolean, isLeafNode: boolean) => unknown;
21
- attributeValueProcessor?: (attrName: string, attrValue: string, jPath: string) => unknown;
22
- numberParseOptions?: strnumOptions;
23
- stopNodes?: string[];
24
- unpairedTags?: string[];
25
- alwaysCreateTextNode?: boolean;
26
- isArray?: (tagName: string, jPath: string, isLeafNode: boolean, isAttribute: boolean) => boolean;
27
- processEntities?: boolean;
28
- htmlEntities?: boolean;
29
- ignoreDeclaration?: boolean;
30
- ignorePiTags?: boolean;
31
- transformTagName?: ((tagName: string) => string) | false;
32
- transformAttributeName?: ((attributeName: string) => string) | false;
33
- updateTag?: (tagName: string, jPath: string, attrs: {
34
- [k: string]: string;
35
- }) => string | boolean;
36
- captureMetaData?: boolean;
37
- };
38
- export type XmlBuilderOptions = {
39
- attributeNamePrefix?: string;
40
- attributesGroupName?: false | string;
41
- textNodeName?: string;
42
- ignoreAttributes?: boolean | (string | RegExp)[] | ((attrName: string, jPath: string) => boolean);
43
- cdataPropName?: false | string;
44
- commentPropName?: false | string;
45
- format?: boolean;
46
- indentBy?: string;
47
- arrayNodeName?: string;
48
- suppressEmptyNode?: boolean;
49
- suppressUnpairedNode?: boolean;
50
- suppressBooleanAttributes?: boolean;
51
- preserveOrder?: boolean;
52
- unpairedTags?: string[];
53
- stopNodes?: string[];
54
- tagValueProcessor?: (name: string, value: unknown) => unknown;
55
- attributeValueProcessor?: (name: string, value: unknown) => unknown;
56
- processEntities?: boolean;
57
- oneListGroup?: boolean;
58
- };
59
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -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;