@internxt/cli 1.5.2 → 1.5.3
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 +25 -25
- package/dist/commands/add-cert.d.ts +1 -1
- package/dist/commands/add-cert.js +23 -23
- package/dist/commands/config.js +8 -3
- package/dist/commands/create-folder.js +10 -5
- package/dist/commands/delete-permanently-file.js +8 -3
- package/dist/commands/delete-permanently-folder.js +8 -3
- package/dist/commands/download-file.js +21 -16
- package/dist/commands/list.js +8 -3
- package/dist/commands/login.js +8 -3
- package/dist/commands/logout.js +8 -3
- package/dist/commands/logs.js +8 -3
- package/dist/commands/move-file.js +8 -3
- package/dist/commands/move-folder.js +8 -3
- package/dist/commands/rename-file.js +8 -3
- package/dist/commands/rename-folder.js +8 -3
- package/dist/commands/trash-clear.js +8 -3
- package/dist/commands/trash-file.js +8 -3
- package/dist/commands/trash-folder.js +8 -3
- package/dist/commands/trash-list.js +8 -3
- package/dist/commands/trash-restore-file.js +8 -3
- package/dist/commands/trash-restore-folder.js +8 -3
- package/dist/commands/upload-file.js +15 -9
- package/dist/commands/webdav-config.js +8 -3
- package/dist/commands/webdav.js +22 -22
- package/dist/commands/whoami.js +8 -3
- package/dist/hooks/prerun/auth_check.js +13 -7
- package/dist/utils/cli.utils.d.ts +13 -4
- package/dist/utils/cli.utils.js +44 -10
- package/dist/utils/xml.utils.d.ts +1 -1
- package/dist/utils/xml.utils.js +3 -3
- package/dist/webdav/handlers/PROPFIND.handler.js +12 -1
- package/dist/webdav/middewares/auth.middleware.js +10 -2
- package/dist/webdav/middewares/errors.middleware.js +8 -13
- package/dist/webdav/webdav-server.d.ts +2 -1
- package/dist/webdav/webdav-server.js +6 -3
- package/oclif.manifest.json +1 -1
- package/package.json +8 -8
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AuthMiddleware = void 0;
|
|
4
4
|
const sdk_manager_service_1 = require("../../services/sdk-manager.service");
|
|
5
5
|
const logger_utils_1 = require("../../utils/logger.utils");
|
|
6
|
+
const xml_utils_1 = require("../../utils/xml.utils");
|
|
6
7
|
const AuthMiddleware = (authService) => {
|
|
7
8
|
return (req, res, next) => {
|
|
8
9
|
(async () => {
|
|
@@ -19,8 +20,15 @@ const AuthMiddleware = (authService) => {
|
|
|
19
20
|
next();
|
|
20
21
|
}
|
|
21
22
|
catch (error) {
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
let message = 'Authentication required to access this resource.';
|
|
24
|
+
if ('message' in error && error.message.trim().length > 0) {
|
|
25
|
+
message = error.message;
|
|
26
|
+
}
|
|
27
|
+
logger_utils_1.webdavLogger.error('Error from AuthMiddleware: ' + message);
|
|
28
|
+
const errorBodyXML = xml_utils_1.XMLUtils.toWebDavXML({
|
|
29
|
+
[xml_utils_1.XMLUtils.addDefaultNamespace('responsedescription')]: message,
|
|
30
|
+
}, {}, 'error');
|
|
31
|
+
res.status(401).send(errorBodyXML);
|
|
24
32
|
}
|
|
25
33
|
})();
|
|
26
34
|
};
|
|
@@ -2,21 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ErrorHandlingMiddleware = void 0;
|
|
4
4
|
const logger_utils_1 = require("../../utils/logger.utils");
|
|
5
|
+
const xml_utils_1 = require("../../utils/xml.utils");
|
|
5
6
|
const ErrorHandlingMiddleware = (err, req, res, _) => {
|
|
6
7
|
logger_utils_1.webdavLogger.error(`[ERROR MIDDLEWARE] [${req.method.toUpperCase()} - ${req.url}]`, err);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
res.status(500).send({
|
|
16
|
-
error: {
|
|
17
|
-
message: 'message' in err ? err.message : 'Something went wrong',
|
|
18
|
-
},
|
|
19
|
-
});
|
|
8
|
+
const errorBodyXML = xml_utils_1.XMLUtils.toWebDavXML({
|
|
9
|
+
[xml_utils_1.XMLUtils.addDefaultNamespace('responsedescription')]: 'message' in err ? err.message : 'Something went wrong',
|
|
10
|
+
}, {}, 'error');
|
|
11
|
+
let statusCode = 500;
|
|
12
|
+
if ('statusCode' in err && !isNaN(err.statusCode)) {
|
|
13
|
+
statusCode = err.statusCode;
|
|
20
14
|
}
|
|
15
|
+
res.status(statusCode).send(errorBodyXML);
|
|
21
16
|
};
|
|
22
17
|
exports.ErrorHandlingMiddleware = ErrorHandlingMiddleware;
|
|
@@ -17,7 +17,8 @@ export declare class WebDavServer {
|
|
|
17
17
|
private readonly trashService;
|
|
18
18
|
constructor(app: Express, configService: ConfigService, driveFileService: DriveFileService, driveFolderService: DriveFolderService, downloadService: DownloadService, authService: AuthService, cryptoService: CryptoService, trashService: TrashService);
|
|
19
19
|
private readonly getNetworkFacade;
|
|
20
|
-
private readonly
|
|
20
|
+
private readonly registerStartMiddlewares;
|
|
21
|
+
private readonly registerEndMiddleWares;
|
|
21
22
|
private readonly registerHandlers;
|
|
22
23
|
start: () => Promise<void>;
|
|
23
24
|
}
|
|
@@ -67,8 +67,7 @@ class WebDavServer {
|
|
|
67
67
|
const networkFacade = new network_facade_service_1.NetworkFacade(networkModule, environment, download_service_1.DownloadService.instance, crypto_service_1.CryptoService.instance);
|
|
68
68
|
return networkFacade;
|
|
69
69
|
};
|
|
70
|
-
|
|
71
|
-
this.app.use(errors_middleware_1.ErrorHandlingMiddleware);
|
|
70
|
+
registerStartMiddlewares = () => {
|
|
72
71
|
this.app.use((0, auth_middleware_1.AuthMiddleware)(auth_service_1.AuthService.instance));
|
|
73
72
|
this.app.use((0, request_logger_middleware_1.RequestLoggerMiddleware)({
|
|
74
73
|
enable: true,
|
|
@@ -76,6 +75,9 @@ class WebDavServer {
|
|
|
76
75
|
this.app.use(body_parser_1.default.text({ type: ['application/xml', 'text/xml'] }));
|
|
77
76
|
this.app.use(mkcol_middleware_1.MkcolMiddleware);
|
|
78
77
|
};
|
|
78
|
+
registerEndMiddleWares = () => {
|
|
79
|
+
this.app.use(errors_middleware_1.ErrorHandlingMiddleware);
|
|
80
|
+
};
|
|
79
81
|
registerHandlers = async () => {
|
|
80
82
|
const serverListenPath = /(.*)/;
|
|
81
83
|
const networkFacade = await this.getNetworkFacade();
|
|
@@ -119,8 +121,9 @@ class WebDavServer {
|
|
|
119
121
|
start = async () => {
|
|
120
122
|
const configs = await this.configService.readWebdavConfig();
|
|
121
123
|
this.app.disable('x-powered-by');
|
|
122
|
-
|
|
124
|
+
this.registerStartMiddlewares();
|
|
123
125
|
await this.registerHandlers();
|
|
126
|
+
this.registerEndMiddleWares();
|
|
124
127
|
const plainHttp = configs.protocol === 'http';
|
|
125
128
|
let server;
|
|
126
129
|
if (plainHttp) {
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Internxt <hello@internxt.com>",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.3",
|
|
4
4
|
"description": "Internxt CLI to manage your encrypted storage",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "yarn clean && tsc",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"express": "5.1.0",
|
|
52
52
|
"express-async-handler": "1.2.0",
|
|
53
53
|
"express-basic-auth": "1.2.1",
|
|
54
|
-
"fast-xml-parser": "5.2.
|
|
54
|
+
"fast-xml-parser": "5.2.2",
|
|
55
55
|
"mime-types": "3.0.1",
|
|
56
56
|
"openpgp": "5.11.2",
|
|
57
57
|
"pm2": "6.0.5",
|
|
@@ -71,13 +71,13 @@
|
|
|
71
71
|
"@types/cli-progress": "3.11.6",
|
|
72
72
|
"@types/express": "5.0.1",
|
|
73
73
|
"@types/mime-types": "2.1.4",
|
|
74
|
-
"@types/node": "22.15.
|
|
74
|
+
"@types/node": "22.15.16",
|
|
75
75
|
"@types/range-parser": "1.2.7",
|
|
76
|
-
"@vitest/coverage-istanbul": "3.1.
|
|
77
|
-
"@vitest/spy": "3.1.
|
|
78
|
-
"eslint": "9.
|
|
76
|
+
"@vitest/coverage-istanbul": "3.1.3",
|
|
77
|
+
"@vitest/spy": "3.1.3",
|
|
78
|
+
"eslint": "9.26.0",
|
|
79
79
|
"husky": "9.1.7",
|
|
80
|
-
"lint-staged": "15.5.
|
|
80
|
+
"lint-staged": "15.5.2",
|
|
81
81
|
"nock": "14.0.4",
|
|
82
82
|
"nodemon": "3.1.10",
|
|
83
83
|
"oclif": "4.17.46",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"rimraf": "6.0.1",
|
|
86
86
|
"ts-node": "10.9.2",
|
|
87
87
|
"typescript": "5.8.3",
|
|
88
|
-
"vitest": "3.1.
|
|
88
|
+
"vitest": "3.1.3",
|
|
89
89
|
"vitest-mock-express": "2.2.0"
|
|
90
90
|
},
|
|
91
91
|
"engines": {
|