@internxt/cli 1.5.8 → 1.6.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.
- package/README.md +187 -95
- package/dist/commands/create-folder.d.ts +3 -3
- package/dist/commands/delete-permanently-file.d.ts +2 -2
- package/dist/commands/delete-permanently-folder.d.ts +2 -2
- package/dist/commands/download-file.d.ts +4 -5
- package/dist/commands/download-file.js +22 -37
- package/dist/commands/list.d.ts +4 -4
- package/dist/commands/login-legacy.d.ts +24 -0
- package/dist/commands/login-legacy.js +175 -0
- package/dist/commands/login.d.ts +3 -9
- package/dist/commands/login.js +18 -132
- package/dist/commands/move-file.d.ts +4 -4
- package/dist/commands/move-folder.d.ts +3 -3
- package/dist/commands/rename-file.d.ts +3 -3
- package/dist/commands/rename-folder.d.ts +3 -3
- package/dist/commands/trash-clear.d.ts +2 -2
- package/dist/commands/trash-file.d.ts +2 -2
- package/dist/commands/trash-file.js +1 -1
- package/dist/commands/trash-folder.d.ts +2 -2
- package/dist/commands/trash-folder.js +1 -1
- package/dist/commands/trash-list.d.ts +2 -2
- package/dist/commands/trash-restore-file.d.ts +4 -4
- package/dist/commands/trash-restore-folder.d.ts +3 -3
- package/dist/commands/upload-file.d.ts +8 -8
- package/dist/commands/upload-file.js +7 -40
- package/dist/commands/upload-folder.d.ts +16 -0
- package/dist/commands/upload-folder.js +87 -0
- package/dist/commands/webdav-config.d.ts +6 -6
- package/dist/commands/webdav.d.ts +1 -1
- package/dist/commands/whoami.js +1 -1
- package/dist/hooks/prerun/auth_check.js +2 -1
- package/dist/services/auth.service.d.ts +1 -2
- package/dist/services/auth.service.js +11 -26
- package/dist/services/crypto.service.js +1 -1
- package/dist/services/database/drive-file/drive-file.domain.js +1 -0
- package/dist/services/database/drive-folder/drive-folder.domain.js +1 -0
- package/dist/services/drive/drive-file.service.js +1 -0
- package/dist/services/drive/drive-folder.service.d.ts +1 -1
- package/dist/services/drive/trash.service.d.ts +1 -1
- package/dist/services/local-filesystem/local-filesystem.service.d.ts +6 -0
- package/dist/services/local-filesystem/local-filesystem.service.js +57 -0
- package/dist/services/local-filesystem/local-filesystem.types.d.ts +13 -0
- package/dist/services/local-filesystem/local-filesystem.types.js +2 -0
- package/dist/services/network/upload/upload-facade.service.d.ts +9 -0
- package/dist/services/network/upload/upload-facade.service.js +53 -0
- package/dist/services/network/upload/upload-file.service.d.ts +7 -0
- package/dist/services/network/upload/upload-file.service.js +112 -0
- package/dist/services/network/upload/upload-folder.service.d.ts +6 -0
- package/dist/services/network/upload/upload-folder.service.js +62 -0
- package/dist/services/network/upload/upload.types.d.ts +53 -0
- package/dist/services/network/upload/upload.types.js +6 -0
- package/dist/services/thumbnail.service.js +1 -34
- package/dist/services/universal-link.service.d.ts +10 -0
- package/dist/services/universal-link.service.js +85 -0
- package/dist/types/command.types.d.ts +3 -2
- package/dist/types/command.types.js +8 -1
- package/dist/types/drive.types.d.ts +2 -0
- package/dist/types/fast-xml-parser.types.d.ts +59 -0
- package/dist/types/fast-xml-parser.types.js +2 -0
- package/dist/types/webdav.types.d.ts +0 -1
- package/dist/utils/cli.utils.d.ts +13 -2
- package/dist/utils/cli.utils.js +47 -0
- package/dist/utils/drive.utils.js +3 -0
- package/dist/utils/errors.utils.d.ts +1 -0
- package/dist/utils/errors.utils.js +5 -0
- package/dist/utils/logger.utils.js +10 -0
- package/dist/utils/network.utils.d.ts +2 -2
- package/dist/utils/network.utils.js +7 -5
- package/dist/utils/thumbnail.utils.d.ts +17 -0
- package/dist/utils/thumbnail.utils.js +29 -1
- package/dist/utils/webdav.utils.d.ts +12 -10
- package/dist/utils/webdav.utils.js +39 -29
- package/dist/utils/xml.utils.d.ts +1 -1
- package/dist/webdav/handlers/DELETE.handler.js +5 -5
- package/dist/webdav/handlers/GET.handler.js +43 -33
- package/dist/webdav/handlers/HEAD.handler.js +5 -10
- package/dist/webdav/handlers/MKCOL.handler.js +4 -4
- package/dist/webdav/handlers/MOVE.handler.js +19 -17
- package/dist/webdav/handlers/OPTIONS.handler.js +3 -3
- package/dist/webdav/handlers/PROPFIND.handler.js +7 -31
- package/dist/webdav/handlers/PUT.handler.d.ts +2 -0
- package/dist/webdav/handlers/PUT.handler.js +10 -8
- package/dist/webdav/services/webdav-folder.service.js +5 -4
- package/dist/webdav/webdav-server.js +1 -0
- package/oclif.manifest.json +121 -3
- package/package.json +33 -32
|
@@ -5,8 +5,8 @@ const webdav_utils_1 = require("../../utils/webdav.utils");
|
|
|
5
5
|
const logger_utils_1 = require("../../utils/logger.utils");
|
|
6
6
|
class OPTIONSRequestHandler {
|
|
7
7
|
handle = async (req, res) => {
|
|
8
|
-
const resource = await webdav_utils_1.WebDavUtils.getRequestedResource(req);
|
|
9
|
-
logger_utils_1.webdavLogger.info(`[OPTIONS] Request received for
|
|
8
|
+
const resource = await webdav_utils_1.WebDavUtils.getRequestedResource(req.url);
|
|
9
|
+
logger_utils_1.webdavLogger.info(`[OPTIONS] Request received for item at ${resource.url}`);
|
|
10
10
|
if (resource.url === '/' || resource.url === '') {
|
|
11
11
|
const allowedMethods = 'DELETE, GET, HEAD, MKCOL, MOVE, OPTIONS, PROPFIND, PUT';
|
|
12
12
|
logger_utils_1.webdavLogger.info(`[OPTIONS] Returning Allowed Options: ${allowedMethods}`);
|
|
@@ -14,7 +14,7 @@ class OPTIONSRequestHandler {
|
|
|
14
14
|
res.header('DAV', '1, 2, ordered-collections');
|
|
15
15
|
res.status(200).send();
|
|
16
16
|
}
|
|
17
|
-
else if (resource.
|
|
17
|
+
else if (resource.url.endsWith('/')) {
|
|
18
18
|
const allowedMethods = 'DELETE, HEAD, MKCOL, MOVE, OPTIONS, PROPFIND';
|
|
19
19
|
logger_utils_1.webdavLogger.info(`[OPTIONS] Returning Allowed Options: ${allowedMethods}`);
|
|
20
20
|
res.header('Allow', allowedMethods);
|
|
@@ -18,29 +18,18 @@ class PROPFINDRequestHandler {
|
|
|
18
18
|
}
|
|
19
19
|
handle = async (req, res) => {
|
|
20
20
|
const { driveFolderService, driveFileService } = this.dependencies;
|
|
21
|
-
const resource = await webdav_utils_1.WebDavUtils.getRequestedResource(req);
|
|
22
|
-
logger_utils_1.webdavLogger.info(`[PROPFIND] Request received for
|
|
21
|
+
const resource = await webdav_utils_1.WebDavUtils.getRequestedResource(req.url);
|
|
22
|
+
logger_utils_1.webdavLogger.info(`[PROPFIND] Request received for item at ${resource.url}`);
|
|
23
23
|
const driveItem = await webdav_utils_1.WebDavUtils.getDriveItemFromResource({
|
|
24
24
|
resource,
|
|
25
25
|
driveFolderService,
|
|
26
26
|
driveFileService,
|
|
27
27
|
});
|
|
28
28
|
if (!driveItem) {
|
|
29
|
-
res.status(
|
|
30
|
-
[xml_utils_1.XMLUtils.addDefaultNamespace('response')]: {
|
|
31
|
-
[xml_utils_1.XMLUtils.addDefaultNamespace('href')]: xml_utils_1.XMLUtils.encodeWebDavUri(resource.url),
|
|
32
|
-
[xml_utils_1.XMLUtils.addDefaultNamespace('propstat')]: {
|
|
33
|
-
[xml_utils_1.XMLUtils.addDefaultNamespace('status')]: 'HTTP/1.1 404 Not Found',
|
|
34
|
-
[xml_utils_1.XMLUtils.addDefaultNamespace('prop')]: {},
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
}, {
|
|
38
|
-
ignoreAttributes: false,
|
|
39
|
-
suppressEmptyNode: true,
|
|
40
|
-
}));
|
|
29
|
+
res.status(404).send();
|
|
41
30
|
return;
|
|
42
31
|
}
|
|
43
|
-
switch (
|
|
32
|
+
switch (driveItem.itemType) {
|
|
44
33
|
case 'file': {
|
|
45
34
|
const fileMetaXML = await this.getFileMetaXML(resource, driveItem);
|
|
46
35
|
res.status(207).send(fileMetaXML);
|
|
@@ -55,22 +44,7 @@ class PROPFINDRequestHandler {
|
|
|
55
44
|
}
|
|
56
45
|
};
|
|
57
46
|
getFileMetaXML = async (resource, driveFileItem) => {
|
|
58
|
-
const driveFile = this.driveFileItemToXMLNode(
|
|
59
|
-
name: driveFileItem.name,
|
|
60
|
-
type: driveFileItem.type,
|
|
61
|
-
bucket: driveFileItem.bucket,
|
|
62
|
-
id: driveFileItem.id,
|
|
63
|
-
uuid: driveFileItem.uuid,
|
|
64
|
-
fileId: driveFileItem.fileId,
|
|
65
|
-
size: driveFileItem.size,
|
|
66
|
-
createdAt: driveFileItem.createdAt,
|
|
67
|
-
updatedAt: driveFileItem.updatedAt,
|
|
68
|
-
status: driveFileItem.status,
|
|
69
|
-
folderId: driveFileItem.folderId,
|
|
70
|
-
folderUuid: driveFileItem.folderUuid,
|
|
71
|
-
creationTime: driveFileItem.creationTime,
|
|
72
|
-
modificationTime: driveFileItem.modificationTime,
|
|
73
|
-
}, resource.url);
|
|
47
|
+
const driveFile = this.driveFileItemToXMLNode(driveFileItem, resource.url);
|
|
74
48
|
const xml = xml_utils_1.XMLUtils.toWebDavXML([driveFile], {
|
|
75
49
|
arrayNodeName: xml_utils_1.XMLUtils.addDefaultNamespace('response'),
|
|
76
50
|
});
|
|
@@ -114,6 +88,7 @@ class PROPFINDRequestHandler {
|
|
|
114
88
|
const foldersXML = folderContent.folders.map((folder) => {
|
|
115
89
|
const folderRelativePath = webdav_utils_1.WebDavUtils.joinURL(relativePath, folder.plainName, '/');
|
|
116
90
|
return this.driveFolderItemToXMLNode({
|
|
91
|
+
itemType: 'folder',
|
|
117
92
|
name: folder.plainName,
|
|
118
93
|
bucket: folder.bucket,
|
|
119
94
|
status: folder.deleted || folder.removed ? 'TRASHED' : 'EXISTS',
|
|
@@ -129,6 +104,7 @@ class PROPFINDRequestHandler {
|
|
|
129
104
|
const filesXML = folderContent.files.map((file) => {
|
|
130
105
|
const fileRelativePath = webdav_utils_1.WebDavUtils.joinURL(relativePath, file.type ? `${file.plainName}.${file.type}` : file.plainName);
|
|
131
106
|
return this.driveFileItemToXMLNode({
|
|
107
|
+
itemType: 'file',
|
|
132
108
|
name: file.plainName,
|
|
133
109
|
bucket: file.bucket,
|
|
134
110
|
id: file.id,
|
|
@@ -5,10 +5,12 @@ import { AuthService } from '../../services/auth.service';
|
|
|
5
5
|
import { WebDavMethodHandler } from '../../types/webdav.types';
|
|
6
6
|
import { TrashService } from '../../services/drive/trash.service';
|
|
7
7
|
import { WebDavFolderService } from '../services/webdav-folder.service';
|
|
8
|
+
import { DriveFolderService } from '../../services/drive/drive-folder.service';
|
|
8
9
|
export declare class PUTRequestHandler implements WebDavMethodHandler {
|
|
9
10
|
private readonly dependencies;
|
|
10
11
|
constructor(dependencies: {
|
|
11
12
|
driveFileService: DriveFileService;
|
|
13
|
+
driveFolderService: DriveFolderService;
|
|
12
14
|
webDavFolderService: WebDavFolderService;
|
|
13
15
|
trashService: TrashService;
|
|
14
16
|
authService: AuthService;
|
|
@@ -21,22 +21,24 @@ class PUTRequestHandler {
|
|
|
21
21
|
if (!contentLength || isNaN(contentLength) || contentLength <= 0) {
|
|
22
22
|
throw new errors_utils_1.UnsupportedMediaTypeError('Empty files are not supported');
|
|
23
23
|
}
|
|
24
|
-
const resource = await webdav_utils_1.WebDavUtils.getRequestedResource(req);
|
|
25
|
-
|
|
24
|
+
const resource = await webdav_utils_1.WebDavUtils.getRequestedResource(req.url);
|
|
25
|
+
const driveFileItem = await webdav_utils_1.WebDavUtils.getDriveItemFromResource({
|
|
26
|
+
resource: resource,
|
|
27
|
+
driveFileService: this.dependencies.driveFileService,
|
|
28
|
+
driveFolderService: this.dependencies.driveFolderService,
|
|
29
|
+
});
|
|
30
|
+
if (driveFileItem?.itemType === 'folder') {
|
|
26
31
|
throw new errors_utils_1.NotFoundError('Folders cannot be created with PUT. Use MKCOL instead.');
|
|
27
|
-
|
|
32
|
+
}
|
|
33
|
+
logger_utils_1.webdavLogger.info(`[PUT] Request received for file at ${resource.url}`);
|
|
28
34
|
logger_utils_1.webdavLogger.info(`[PUT] Uploading '${resource.name}' to '${resource.parentPath}'`);
|
|
29
35
|
const parentDriveFolderItem = (await this.dependencies.webDavFolderService.getDriveFolderItemFromPath(resource.parentPath)) ??
|
|
30
36
|
(await this.dependencies.webDavFolderService.createParentPathOrThrow(resource.parentPath));
|
|
31
37
|
try {
|
|
32
|
-
const driveFileItem = await webdav_utils_1.WebDavUtils.getDriveItemFromResource({
|
|
33
|
-
resource: resource,
|
|
34
|
-
driveFileService: this.dependencies.driveFileService,
|
|
35
|
-
});
|
|
36
38
|
if (driveFileItem && driveFileItem.status === 'EXISTS') {
|
|
37
39
|
logger_utils_1.webdavLogger.info(`[PUT] File '${resource.name}' already exists in '${resource.path.dir}', trashing it...`);
|
|
38
40
|
await this.dependencies.trashService.trashItems({
|
|
39
|
-
items: [{ type:
|
|
41
|
+
items: [{ type: driveFileItem.itemType, uuid: driveFileItem.uuid }],
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
}
|
|
@@ -12,9 +12,9 @@ class WebDavFolderService {
|
|
|
12
12
|
this.dependencies = dependencies;
|
|
13
13
|
}
|
|
14
14
|
getDriveFolderItemFromPath = async (path) => {
|
|
15
|
-
const
|
|
16
|
-
return await webdav_utils_1.WebDavUtils.
|
|
17
|
-
|
|
15
|
+
const { url } = await webdav_utils_1.WebDavUtils.getRequestedResource(path, false);
|
|
16
|
+
return await webdav_utils_1.WebDavUtils.getDriveFolderFromResource({
|
|
17
|
+
url,
|
|
18
18
|
driveFolderService: this.dependencies.driveFolderService,
|
|
19
19
|
});
|
|
20
20
|
};
|
|
@@ -30,7 +30,8 @@ class WebDavFolderService {
|
|
|
30
30
|
createParentPathOrThrow = async (parentPath) => {
|
|
31
31
|
const { createFullPath } = await this.dependencies.configService.readWebdavConfig();
|
|
32
32
|
if (!createFullPath) {
|
|
33
|
-
throw new errors_utils_1.ConflictError(`Parent folders not found on Internxt Drive at ${webdav_utils_1.WebDavUtils.decodeUrl(parentPath, false)}
|
|
33
|
+
throw new errors_utils_1.ConflictError(`Parent folders not found on Internxt Drive at ${webdav_utils_1.WebDavUtils.decodeUrl(parentPath, false)},
|
|
34
|
+
createFullPath flag is set to: ${createFullPath}`);
|
|
34
35
|
}
|
|
35
36
|
const folders = parentPath.split('/').filter((f) => f.length > 0);
|
|
36
37
|
const { user } = await auth_service_1.AuthService.instance.getAuthDetails();
|
|
@@ -104,6 +104,7 @@ class WebDavServer {
|
|
|
104
104
|
}).handle));
|
|
105
105
|
this.app.put(serverListenPath, (0, express_async_handler_1.default)(new PUT_handler_1.PUTRequestHandler({
|
|
106
106
|
driveFileService: this.driveFileService,
|
|
107
|
+
driveFolderService: this.driveFolderService,
|
|
107
108
|
webDavFolderService: webDavFolderService,
|
|
108
109
|
authService: this.authService,
|
|
109
110
|
trashService: this.trashService,
|
package/oclif.manifest.json
CHANGED
|
@@ -351,10 +351,10 @@
|
|
|
351
351
|
"list.js"
|
|
352
352
|
]
|
|
353
353
|
},
|
|
354
|
-
"login": {
|
|
354
|
+
"login-legacy": {
|
|
355
355
|
"aliases": [],
|
|
356
356
|
"args": {},
|
|
357
|
-
"description": "Logs into an Internxt account. If the account is two-factor protected, then an extra code will be required.",
|
|
357
|
+
"description": "[Legacy] Logs into an Internxt account using user and password. If the account is two-factor protected, then an extra code will be required.",
|
|
358
358
|
"examples": [
|
|
359
359
|
"<%= config.bin %> <%= command.id %>"
|
|
360
360
|
],
|
|
@@ -435,6 +435,63 @@
|
|
|
435
435
|
},
|
|
436
436
|
"hasDynamicHelp": false,
|
|
437
437
|
"hiddenAliases": [],
|
|
438
|
+
"id": "login-legacy",
|
|
439
|
+
"pluginAlias": "@internxt/cli",
|
|
440
|
+
"pluginName": "@internxt/cli",
|
|
441
|
+
"pluginType": "core",
|
|
442
|
+
"strict": true,
|
|
443
|
+
"enableJsonFlag": true,
|
|
444
|
+
"isESM": false,
|
|
445
|
+
"relativePath": [
|
|
446
|
+
"dist",
|
|
447
|
+
"commands",
|
|
448
|
+
"login-legacy.js"
|
|
449
|
+
]
|
|
450
|
+
},
|
|
451
|
+
"login": {
|
|
452
|
+
"aliases": [],
|
|
453
|
+
"args": {},
|
|
454
|
+
"description": "Logs into your Internxt account using the web-based login flow. A temporary local server is started to securely receive the authentication response.",
|
|
455
|
+
"examples": [
|
|
456
|
+
"<%= config.bin %> <%= command.id %>"
|
|
457
|
+
],
|
|
458
|
+
"flags": {
|
|
459
|
+
"json": {
|
|
460
|
+
"description": "Format output as json.",
|
|
461
|
+
"helpGroup": "GLOBAL",
|
|
462
|
+
"name": "json",
|
|
463
|
+
"allowNo": false,
|
|
464
|
+
"type": "boolean"
|
|
465
|
+
},
|
|
466
|
+
"host": {
|
|
467
|
+
"aliases": [
|
|
468
|
+
"host"
|
|
469
|
+
],
|
|
470
|
+
"char": "h",
|
|
471
|
+
"description": "IP address of the machine where the CLI is running. If you are opening the login page in a browser on another device, set this to the IP address of the machine running the CLI. Defaults to 127.0.0.1.",
|
|
472
|
+
"env": "INXT_LOGIN_SERVER_HOST",
|
|
473
|
+
"name": "host",
|
|
474
|
+
"required": false,
|
|
475
|
+
"hasDynamicHelp": false,
|
|
476
|
+
"multiple": false,
|
|
477
|
+
"type": "option"
|
|
478
|
+
},
|
|
479
|
+
"port": {
|
|
480
|
+
"aliases": [
|
|
481
|
+
"port"
|
|
482
|
+
],
|
|
483
|
+
"char": "p",
|
|
484
|
+
"description": "Port used by the temporary local server to handle the login callback. If not specified, a random available port will be used automatically.",
|
|
485
|
+
"env": "INXT_LOGIN_SERVER_PORT",
|
|
486
|
+
"name": "port",
|
|
487
|
+
"required": false,
|
|
488
|
+
"hasDynamicHelp": false,
|
|
489
|
+
"multiple": false,
|
|
490
|
+
"type": "option"
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"hasDynamicHelp": false,
|
|
494
|
+
"hiddenAliases": [],
|
|
438
495
|
"id": "login",
|
|
439
496
|
"pluginAlias": "@internxt/cli",
|
|
440
497
|
"pluginName": "@internxt/cli",
|
|
@@ -1133,6 +1190,67 @@
|
|
|
1133
1190
|
"upload-file.js"
|
|
1134
1191
|
]
|
|
1135
1192
|
},
|
|
1193
|
+
"upload-folder": {
|
|
1194
|
+
"aliases": [
|
|
1195
|
+
"upload:folder"
|
|
1196
|
+
],
|
|
1197
|
+
"args": {},
|
|
1198
|
+
"description": "Upload a folder to Internxt Drive",
|
|
1199
|
+
"examples": [
|
|
1200
|
+
"<%= config.bin %> <%= command.id %>"
|
|
1201
|
+
],
|
|
1202
|
+
"flags": {
|
|
1203
|
+
"json": {
|
|
1204
|
+
"description": "Format output as json.",
|
|
1205
|
+
"helpGroup": "GLOBAL",
|
|
1206
|
+
"name": "json",
|
|
1207
|
+
"allowNo": false,
|
|
1208
|
+
"type": "boolean"
|
|
1209
|
+
},
|
|
1210
|
+
"non-interactive": {
|
|
1211
|
+
"char": "x",
|
|
1212
|
+
"description": "Prevents the CLI from being interactive. When enabled, the CLI will not request input through the console and will throw errors directly.",
|
|
1213
|
+
"env": "INXT_NONINTERACTIVE",
|
|
1214
|
+
"helpGroup": "helper",
|
|
1215
|
+
"name": "non-interactive",
|
|
1216
|
+
"required": false,
|
|
1217
|
+
"allowNo": false,
|
|
1218
|
+
"type": "boolean"
|
|
1219
|
+
},
|
|
1220
|
+
"folder": {
|
|
1221
|
+
"char": "f",
|
|
1222
|
+
"description": "The path to the folder on your system.",
|
|
1223
|
+
"name": "folder",
|
|
1224
|
+
"required": false,
|
|
1225
|
+
"hasDynamicHelp": false,
|
|
1226
|
+
"multiple": false,
|
|
1227
|
+
"type": "option"
|
|
1228
|
+
},
|
|
1229
|
+
"destination": {
|
|
1230
|
+
"char": "i",
|
|
1231
|
+
"description": "The folder id where the folder is going to be uploaded to. Leave empty for the root folder.",
|
|
1232
|
+
"name": "destination",
|
|
1233
|
+
"required": false,
|
|
1234
|
+
"hasDynamicHelp": false,
|
|
1235
|
+
"multiple": false,
|
|
1236
|
+
"type": "option"
|
|
1237
|
+
}
|
|
1238
|
+
},
|
|
1239
|
+
"hasDynamicHelp": false,
|
|
1240
|
+
"hiddenAliases": [],
|
|
1241
|
+
"id": "upload-folder",
|
|
1242
|
+
"pluginAlias": "@internxt/cli",
|
|
1243
|
+
"pluginName": "@internxt/cli",
|
|
1244
|
+
"pluginType": "core",
|
|
1245
|
+
"strict": true,
|
|
1246
|
+
"enableJsonFlag": true,
|
|
1247
|
+
"isESM": false,
|
|
1248
|
+
"relativePath": [
|
|
1249
|
+
"dist",
|
|
1250
|
+
"commands",
|
|
1251
|
+
"upload-folder.js"
|
|
1252
|
+
]
|
|
1253
|
+
},
|
|
1136
1254
|
"webdav-config": {
|
|
1137
1255
|
"aliases": [],
|
|
1138
1256
|
"args": {},
|
|
@@ -1298,5 +1416,5 @@
|
|
|
1298
1416
|
]
|
|
1299
1417
|
}
|
|
1300
1418
|
},
|
|
1301
|
-
"version": "1.
|
|
1419
|
+
"version": "1.6.1"
|
|
1302
1420
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Internxt <hello@internxt.com>",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "Internxt CLI to manage your encrypted storage",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "yarn clean && tsc",
|
|
7
7
|
"clean": "rimraf dist coverage tsconfig.tsbuildinfo oclif.manifest.json",
|
|
8
8
|
"lint": "eslint .",
|
|
9
|
-
"
|
|
9
|
+
"format": "prettier --write **/*.{js,jsx,tsx,ts}",
|
|
10
10
|
"postpack": "rimraf oclif.manifest.json",
|
|
11
11
|
"posttest": "yarn lint",
|
|
12
12
|
"prepack": "yarn build && oclif manifest && oclif readme",
|
|
@@ -36,58 +36,59 @@
|
|
|
36
36
|
"/oclif.manifest.json"
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@inquirer/prompts": "
|
|
39
|
+
"@inquirer/prompts": "8.1.0",
|
|
40
40
|
"@internxt/inxt-js": "2.2.9",
|
|
41
|
-
"@internxt/lib": "1.
|
|
42
|
-
"@internxt/sdk": "1.11.
|
|
43
|
-
"@oclif/core": "4.
|
|
44
|
-
"@oclif/plugin-autocomplete": "3.2.
|
|
45
|
-
"axios": "1.
|
|
41
|
+
"@internxt/lib": "1.4.1",
|
|
42
|
+
"@internxt/sdk": "1.11.25",
|
|
43
|
+
"@oclif/core": "4.8.0",
|
|
44
|
+
"@oclif/plugin-autocomplete": "3.2.39",
|
|
45
|
+
"axios": "1.13.2",
|
|
46
46
|
"bip39": "3.1.0",
|
|
47
|
-
"body-parser": "2.2.
|
|
47
|
+
"body-parser": "2.2.1",
|
|
48
48
|
"cli-progress": "3.12.0",
|
|
49
|
-
"dayjs": "1.11.
|
|
49
|
+
"dayjs": "1.11.19",
|
|
50
50
|
"dotenv": "17.2.3",
|
|
51
|
-
"express": "5.1
|
|
51
|
+
"express": "5.2.1",
|
|
52
52
|
"express-async-handler": "1.2.0",
|
|
53
|
-
"fast-xml-parser": "5.3.
|
|
54
|
-
"mime-types": "3.0.
|
|
55
|
-
"
|
|
53
|
+
"fast-xml-parser": "5.3.3",
|
|
54
|
+
"mime-types": "3.0.2",
|
|
55
|
+
"open": "11.0.0",
|
|
56
|
+
"openpgp": "6.3.0",
|
|
56
57
|
"otpauth": "9.4.1",
|
|
57
|
-
"pm2": "6.0.
|
|
58
|
+
"pm2": "6.0.14",
|
|
58
59
|
"range-parser": "1.2.1",
|
|
59
|
-
"selfsigned": "
|
|
60
|
-
"tty-table": "
|
|
61
|
-
"winston": "3.
|
|
60
|
+
"selfsigned": "5.2.0",
|
|
61
|
+
"tty-table": "5.0.0",
|
|
62
|
+
"winston": "3.19.0"
|
|
62
63
|
},
|
|
63
64
|
"devDependencies": {
|
|
64
65
|
"@internxt/eslint-config-internxt": "2.0.1",
|
|
65
66
|
"@internxt/prettier-config": "internxt/prettier-config#v1.0.2",
|
|
66
|
-
"@openpgp/web-stream-tools": "0.
|
|
67
|
+
"@openpgp/web-stream-tools": "0.3.0",
|
|
67
68
|
"@types/cli-progress": "3.11.6",
|
|
68
|
-
"@types/express": "5.0.
|
|
69
|
+
"@types/express": "5.0.6",
|
|
69
70
|
"@types/mime-types": "3.0.1",
|
|
70
|
-
"@types/node": "
|
|
71
|
+
"@types/node": "25.0.3",
|
|
71
72
|
"@types/range-parser": "1.2.7",
|
|
72
|
-
"@vitest/coverage-istanbul": "
|
|
73
|
-
"@vitest/spy": "
|
|
74
|
-
"eslint": "9.
|
|
73
|
+
"@vitest/coverage-istanbul": "4.0.16",
|
|
74
|
+
"@vitest/spy": "4.0.16",
|
|
75
|
+
"eslint": "9.39.2",
|
|
75
76
|
"husky": "9.1.7",
|
|
76
|
-
"lint-staged": "16.2.
|
|
77
|
-
"nodemon": "3.1.
|
|
78
|
-
"oclif": "4.22.
|
|
79
|
-
"prettier": "3.
|
|
80
|
-
"rimraf": "6.
|
|
77
|
+
"lint-staged": "16.2.7",
|
|
78
|
+
"nodemon": "3.1.11",
|
|
79
|
+
"oclif": "4.22.57",
|
|
80
|
+
"prettier": "3.7.4",
|
|
81
|
+
"rimraf": "6.1.2",
|
|
81
82
|
"ts-node": "10.9.2",
|
|
82
83
|
"typescript": "5.9.3",
|
|
83
|
-
"vitest": "
|
|
84
|
+
"vitest": "4.0.16",
|
|
84
85
|
"vitest-mock-express": "2.2.0"
|
|
85
86
|
},
|
|
86
87
|
"optionalDependencies": {
|
|
87
|
-
"sharp": "0.34.
|
|
88
|
+
"sharp": "0.34.5"
|
|
88
89
|
},
|
|
89
90
|
"engines": {
|
|
90
|
-
"node": ">=22.
|
|
91
|
+
"node": ">=22.13.0"
|
|
91
92
|
},
|
|
92
93
|
"bin": {
|
|
93
94
|
"internxt": "./bin/run.js"
|