vortez 5.0.2 → 6.0.0-dev.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/build/Template/Template.d.ts +0 -5
- package/build/Template/Template.js +5 -5
- package/build/Template/Template.js.map +1 -1
- package/build/Vortez.d.ts +2 -2
- package/build/Vortez.js +2 -2
- package/build/Vortez.js.map +1 -1
- package/build/beta/Mail.d.ts +2 -8
- package/build/beta/Mail.js +7 -2
- package/build/beta/Mail.js.map +1 -1
- package/build/server/Cookie.d.ts +9 -5
- package/build/server/Cookie.js +28 -24
- package/build/server/Cookie.js.map +1 -1
- package/build/server/LoggerManager.d.ts +1 -1
- package/build/server/LoggerManager.js +5 -5
- package/build/server/LoggerManager.js.map +1 -1
- package/build/server/Response.js +11 -11
- package/build/server/Response.js.map +1 -1
- package/build/server/Server.js +4 -4
- package/build/server/Server.js.map +1 -1
- package/build/server/ServerDebug.d.ts +1 -1
- package/build/server/ServerDebug.js +1 -1
- package/build/server/ServerDebug.js.map +1 -1
- package/build/server/config/Config.d.ts +7 -7
- package/build/server/config/Config.js +4 -3
- package/build/server/config/Config.js.map +1 -1
- package/build/server/config/Loader.js +5 -5
- package/build/server/config/Loader.js.map +1 -1
- package/build/server/router/HttpRule.d.ts +2 -2
- package/build/server/router/HttpRule.js +1 -1
- package/build/server/router/HttpRule.js.map +1 -1
- package/build/server/router/Router.d.ts +1 -1
- package/build/server/router/Router.js +5 -5
- package/build/server/router/Router.js.map +1 -1
- package/build/server/router/Rule.d.ts +1 -1
- package/build/server/router/WsRule.d.ts +2 -2
- package/build/server/router/WsRule.js +2 -2
- package/build/server/router/WsRule.js.map +1 -1
- package/build/server/router/algorithm/Algorithm.d.ts +1 -1
- package/build/server/router/algorithm/Algorithm.js +2 -2
- package/build/server/router/algorithm/Algorithm.js.map +1 -1
- package/build/server/router/algorithm/FIFO.d.ts +1 -1
- package/build/server/router/algorithm/FIFO.js +2 -2
- package/build/server/router/algorithm/FIFO.js.map +1 -1
- package/build/server/router/algorithm/Tree.d.ts +1 -1
- package/build/server/router/algorithm/Tree.js.map +1 -1
- package/build/server/router/middleware/Middleware.d.ts +5 -5
- package/build/server/router/middleware/WsMiddleware.d.ts +4 -4
- package/build/server/router/middleware/WsMiddleware.js +24 -23
- package/build/server/router/middleware/WsMiddleware.js.map +1 -1
- package/build/server/security/PathSecurity.js +5 -5
- package/build/server/security/PathSecurity.js.map +1 -1
- package/build/server/websocket/Codec.d.ts +128 -0
- package/build/server/websocket/Codec.js +192 -0
- package/build/server/websocket/Codec.js.map +1 -0
- package/build/server/websocket/Websocket.d.ts +38 -84
- package/build/server/websocket/Websocket.js +41 -221
- package/build/server/websocket/Websocket.js.map +1 -1
- package/build/server/websocket/WebsocketBase.d.ts +130 -0
- package/build/server/websocket/WebsocketBase.js +272 -0
- package/build/server/websocket/WebsocketBase.js.map +1 -0
- package/build/server/websocket/WebsocketCSInit.d.ts +57 -0
- package/build/server/websocket/WebsocketCSInit.js +95 -0
- package/build/server/websocket/WebsocketCSInit.js.map +1 -0
- package/build/server/websocket/WebsocketSSInit.d.ts +24 -0
- package/build/server/websocket/WebsocketSSInit.js +46 -0
- package/build/server/websocket/WebsocketSSInit.js.map +1 -0
- package/build/server/websocket/frame/Frame.d.ts +31 -0
- package/build/server/websocket/frame/Frame.js +45 -0
- package/build/server/websocket/frame/Frame.js.map +1 -0
- package/build/server/websocket/frame/Header.d.ts +31 -0
- package/build/server/websocket/frame/Header.js +31 -0
- package/build/server/websocket/frame/Header.js.map +1 -0
- package/build/server/websocket/frame/HeaderParser.d.ts +58 -0
- package/build/server/websocket/frame/HeaderParser.js +109 -0
- package/build/server/websocket/frame/HeaderParser.js.map +1 -0
- package/build/server/websocket/handshake/CSHandshaker.d.ts +46 -0
- package/build/server/websocket/handshake/CSHandshaker.js +122 -0
- package/build/server/websocket/handshake/CSHandshaker.js.map +1 -0
- package/build/server/websocket/handshake/SSHandshaker.d.ts +57 -0
- package/build/server/websocket/handshake/SSHandshaker.js +113 -0
- package/build/server/websocket/handshake/SSHandshaker.js.map +1 -0
- package/build/server/websocket/messageAssembler/Message.d.ts +21 -0
- package/build/server/websocket/messageAssembler/Message.js +20 -0
- package/build/server/websocket/messageAssembler/Message.js.map +1 -0
- package/build/server/websocket/messageAssembler/MessageAssembler.d.ts +25 -0
- package/build/server/websocket/messageAssembler/MessageAssembler.js +47 -0
- package/build/server/websocket/messageAssembler/MessageAssembler.js.map +1 -0
- package/changes.md +28 -0
- package/package.json +6 -1
- package/build/logger/Debug.d.ts +0 -174
- package/build/logger/Debug.js +0 -295
- package/build/logger/Debug.js.map +0 -1
- package/build/logger/Logger.d.ts +0 -38
- package/build/logger/Logger.js +0 -48
- package/build/logger/Logger.js.map +0 -1
- package/build/server/websocket/Chunk.d.ts +0 -36
- package/build/server/websocket/Chunk.js +0 -81
- package/build/server/websocket/Chunk.js.map +0 -1
- package/build/utilities/ConsoleUI.d.ts +0 -89
- package/build/utilities/ConsoleUI.js +0 -142
- package/build/utilities/ConsoleUI.js.map +0 -1
- package/build/utilities/DebugUI.d.ts +0 -66
- package/build/utilities/DebugUI.js +0 -98
- package/build/utilities/DebugUI.js.map +0 -1
- package/build/utilities/Encoding.d.ts +0 -22
- package/build/utilities/Encoding.js +0 -26
- package/build/utilities/Encoding.js.map +0 -1
- package/build/utilities/Env.d.ts +0 -81
- package/build/utilities/Env.js +0 -140
- package/build/utilities/Env.js.map +0 -1
- package/build/utilities/File.d.ts +0 -10
- package/build/utilities/File.js +0 -19
- package/build/utilities/File.js.map +0 -1
- package/build/utilities/Flatten.d.ts +0 -73
- package/build/utilities/Flatten.js +0 -76
- package/build/utilities/Flatten.js.map +0 -1
- package/build/utilities/Object.d.ts +0 -16
- package/build/utilities/Object.js +0 -48
- package/build/utilities/Object.js.map +0 -1
- package/build/utilities/Path.d.ts +0 -44
- package/build/utilities/Path.js +0 -69
- package/build/utilities/Path.js.map +0 -1
- package/build/utilities/Time.d.ts +0 -21
- package/build/utilities/Time.js +0 -25
- package/build/utilities/Time.js.map +0 -1
- package/build/utilities/Utilities.d.ts +0 -118
- package/build/utilities/Utilities.js +0 -112
- package/build/utilities/Utilities.js.map +0 -1
- package/build/utilities/schema/Introspection.d.ts +0 -24
- package/build/utilities/schema/Introspection.js +0 -87
- package/build/utilities/schema/Introspection.js.map +0 -1
- package/build/utilities/schema/JSONSchema.d.ts +0 -68
- package/build/utilities/schema/JSONSchema.js +0 -13
- package/build/utilities/schema/JSONSchema.js.map +0 -1
- package/build/utilities/schema/Schema.d.ts +0 -253
- package/build/utilities/schema/Schema.js +0 -241
- package/build/utilities/schema/Schema.js.map +0 -1
- package/build/utilities/schema/SchemaError.d.ts +0 -10
- package/build/utilities/schema/SchemaError.js +0 -13
- package/build/utilities/schema/SchemaError.js.map +0 -1
- package/build/utilities/schema/Validator.d.ts +0 -94
- package/build/utilities/schema/Validator.js +0 -246
- package/build/utilities/schema/Validator.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Schema, Flatten } from "@netfeez/common";
|
|
2
2
|
import _Loader from "./Loader.js";
|
|
3
3
|
export declare const DEFAULT_FOLDER_TEMPLATE: string;
|
|
4
4
|
export declare const DEFAULT_ERROR_TEMPLATE: string;
|
|
5
|
-
export declare const SCHEMA_LOGGER_PROP:
|
|
5
|
+
export declare const SCHEMA_LOGGER_PROP: Schema<{
|
|
6
6
|
readonly show: {
|
|
7
7
|
readonly type: "boolean";
|
|
8
8
|
readonly default: true;
|
|
@@ -12,7 +12,7 @@ export declare const SCHEMA_LOGGER_PROP: Utilities.Schema<{
|
|
|
12
12
|
readonly default: true;
|
|
13
13
|
};
|
|
14
14
|
}>;
|
|
15
|
-
export declare const SCHEMA_LOGGER:
|
|
15
|
+
export declare const SCHEMA_LOGGER: Schema<{
|
|
16
16
|
readonly showAll: {
|
|
17
17
|
readonly type: "boolean";
|
|
18
18
|
readonly default: false;
|
|
@@ -74,7 +74,7 @@ export declare const SCHEMA_LOGGER: Utilities.Schema<{
|
|
|
74
74
|
};
|
|
75
75
|
};
|
|
76
76
|
}>;
|
|
77
|
-
export declare const SCHEMA_SSL:
|
|
77
|
+
export declare const SCHEMA_SSL: Schema<{
|
|
78
78
|
readonly cert: {
|
|
79
79
|
readonly type: "string";
|
|
80
80
|
readonly required: true;
|
|
@@ -90,7 +90,7 @@ export declare const SCHEMA_SSL: Utilities.Schema<{
|
|
|
90
90
|
readonly maximum: 65535;
|
|
91
91
|
};
|
|
92
92
|
}>;
|
|
93
|
-
export declare const SCHEMA_TEMPLATES:
|
|
93
|
+
export declare const SCHEMA_TEMPLATES: Schema<{
|
|
94
94
|
readonly folder: {
|
|
95
95
|
readonly type: "string";
|
|
96
96
|
readonly default: string;
|
|
@@ -100,14 +100,14 @@ export declare const SCHEMA_TEMPLATES: Utilities.Schema<{
|
|
|
100
100
|
readonly default: string;
|
|
101
101
|
};
|
|
102
102
|
}>;
|
|
103
|
-
export declare const SCHEMA_ROUTING:
|
|
103
|
+
export declare const SCHEMA_ROUTING: Schema<{
|
|
104
104
|
readonly algorithm: {
|
|
105
105
|
readonly type: "string";
|
|
106
106
|
readonly enum: readonly ["FIFO", "Tree"];
|
|
107
107
|
readonly default: "FIFO";
|
|
108
108
|
};
|
|
109
109
|
}>;
|
|
110
|
-
export declare const SCHEMA_HANDLER:
|
|
110
|
+
export declare const SCHEMA_HANDLER: Schema<{
|
|
111
111
|
readonly host: {
|
|
112
112
|
readonly type: "string";
|
|
113
113
|
readonly default: "localhost";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Schema, Flatten } from "@netfeez/common";
|
|
2
|
+
import { Path } from "@netfeez/common-node";
|
|
2
3
|
import _Loader from "./Loader.js";
|
|
3
|
-
export const DEFAULT_FOLDER_TEMPLATE =
|
|
4
|
-
export const DEFAULT_ERROR_TEMPLATE =
|
|
4
|
+
export const DEFAULT_FOLDER_TEMPLATE = Path.module('global/template/folder.vhtml');
|
|
5
|
+
export const DEFAULT_ERROR_TEMPLATE = Path.module('global/template/error.vhtml');
|
|
5
6
|
export const SCHEMA_LOGGER_PROP = new Schema({
|
|
6
7
|
show: { type: 'boolean', default: true },
|
|
7
8
|
save: { type: 'boolean', default: true }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/server/config/Config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/server/config/Config.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* @license Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { promises as FSP } from "fs";
|
|
7
|
-
import Logger from "
|
|
7
|
+
import { Logger } from "@netfeez/vterm";
|
|
8
|
+
import { File, Path } from "@netfeez/common-node";
|
|
8
9
|
import Config from "./Config.js";
|
|
9
|
-
|
|
10
|
-
const logger = new Logger({ prefix: 'Config' });
|
|
10
|
+
const logger = new Logger({ name: 'Config' });
|
|
11
11
|
export class Loader {
|
|
12
12
|
/**
|
|
13
13
|
* Loads the config from the given path.
|
|
@@ -16,7 +16,7 @@ export class Loader {
|
|
|
16
16
|
*/
|
|
17
17
|
static async load(path) {
|
|
18
18
|
logger.log(`loading config from &C6[${path}]`);
|
|
19
|
-
if (!await
|
|
19
|
+
if (!await File.exists(path)) {
|
|
20
20
|
const config = new Config({});
|
|
21
21
|
logger.log(`config file &C6[${path}]&R does not exist, creating it`);
|
|
22
22
|
await Loader.save(path, config);
|
|
@@ -40,7 +40,7 @@ export class Loader {
|
|
|
40
40
|
* @returns A promise that resolves when the config is saved.
|
|
41
41
|
*/
|
|
42
42
|
static async save(path, config) {
|
|
43
|
-
const dir =
|
|
43
|
+
const dir = Path.dirname(path);
|
|
44
44
|
await FSP.mkdir(dir, { recursive: true });
|
|
45
45
|
const content = config.toJson();
|
|
46
46
|
await FSP.writeFile(path, content, 'utf8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../../src/server/config/Loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"Loader.js","sourceRoot":"","sources":["../../../src/server/config/Loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE9C,MAAM,OAAO,MAAM;IACf;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY;QACjC,MAAM,CAAC,GAAG,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,iCAAiC,CAAC,CAAC;YACrE,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,mBAAmB,IAAI,iCAAiC,CAAC,CAAC;YACrE,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,4BAA4B,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,MAAc;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;CACJ;AAED,eAAe,MAAM,CAAC"}
|
|
@@ -14,7 +14,7 @@ export declare class HttpRule extends BaseRule<HttpRule.action> {
|
|
|
14
14
|
* @param middleware - The middleware to clone.
|
|
15
15
|
*/
|
|
16
16
|
constructor(method: Request.Method, urlRule: string, action: HttpRule.action, middleware?: HttpMiddleware);
|
|
17
|
-
exec(request: Request, response: Response, state?: Middleware.State): void
|
|
17
|
+
exec(request: Request, response: Response, state?: Middleware.State): Promise<void>;
|
|
18
18
|
test(request: Request): boolean;
|
|
19
19
|
/**
|
|
20
20
|
* Adds a middleware to this specific rule.
|
|
@@ -64,6 +64,6 @@ export declare class HttpRule extends BaseRule<HttpRule.action> {
|
|
|
64
64
|
private static sendFile;
|
|
65
65
|
}
|
|
66
66
|
export declare namespace HttpRule {
|
|
67
|
-
type action = (request: Request, response: Response, state: Middleware.State) =>
|
|
67
|
+
type action = (request: Request, response: Response, state: Middleware.State) => Promise<void>;
|
|
68
68
|
}
|
|
69
69
|
export default HttpRule;
|
|
@@ -17,7 +17,7 @@ export class HttpRule extends BaseRule {
|
|
|
17
17
|
}
|
|
18
18
|
exec(request, response, state) {
|
|
19
19
|
request.ruleParams = this.getParams(request.url);
|
|
20
|
-
this.middleware.run(request, response, this.action, state);
|
|
20
|
+
return this.middleware.run(request, response, this.action, state);
|
|
21
21
|
}
|
|
22
22
|
test(request) {
|
|
23
23
|
return (this.method == request.method || this.method == 'ALL') && super.test(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRule.js","sourceRoot":"","sources":["../../../src/server/router/HttpRule.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAG5D,MAAM,OAAO,QAAS,SAAQ,QAAyB;IASxC;IAES;IAVpB;;;;;;OAMG;IACH,YACW,MAAsB,EAC7B,OAAe,EAAE,MAAuB,EACxB,aAA6B,IAAI,cAAc,EAAE;QACjE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAHhB,WAAM,GAAN,MAAM,CAAgB;QAEb,eAAU,GAAV,UAAU,CAAuC;IACzC,CAAC;IACtB,IAAI,CAAC,OAAgB,EAAE,QAAkB,EAAE,KAAwB;QACtE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpRule.js","sourceRoot":"","sources":["../../../src/server/router/HttpRule.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,7 +85,7 @@ export declare class Router {
|
|
|
85
85
|
* @remarks This method attempts to route the incoming WebSocket upgrade request using the routing algorithm.
|
|
86
86
|
* If a matching route is found, it processes the request and returns true; otherwise, it returns false, indicating that no suitable route was found for the request.
|
|
87
87
|
*/
|
|
88
|
-
routeWebSocket(request: Request,
|
|
88
|
+
routeWebSocket(request: Request, websocket: Websocket.WebsocketSSInit): boolean;
|
|
89
89
|
/**
|
|
90
90
|
* Adds multiple routing rules to the server.
|
|
91
91
|
* @param rules - An array of rules to be added.
|
|
@@ -103,12 +103,12 @@ export class Router {
|
|
|
103
103
|
*/
|
|
104
104
|
upgradeManager(HttpRequest, Socket) {
|
|
105
105
|
const request = new Request(HttpRequest);
|
|
106
|
-
const
|
|
106
|
+
const websocket = new Websocket.WebsocketSSInit(request, Socket);
|
|
107
107
|
const sessionID = request.cookies.get('Session');
|
|
108
108
|
logger.webSocket.log(request.ip, request.method, request.url, sessionID);
|
|
109
|
-
const isRouted = this.routeWebSocket(request,
|
|
109
|
+
const isRouted = this.routeWebSocket(request, websocket);
|
|
110
110
|
if (!isRouted)
|
|
111
|
-
|
|
111
|
+
websocket.reject(404, `No route for: ${request.method} -> ${request.url}`);
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Routes incoming HTTP requests to be processed.
|
|
@@ -129,8 +129,8 @@ export class Router {
|
|
|
129
129
|
* @remarks This method attempts to route the incoming WebSocket upgrade request using the routing algorithm.
|
|
130
130
|
* If a matching route is found, it processes the request and returns true; otherwise, it returns false, indicating that no suitable route was found for the request.
|
|
131
131
|
*/
|
|
132
|
-
routeWebSocket(request,
|
|
133
|
-
return this.algorithm.route(request,
|
|
132
|
+
routeWebSocket(request, websocket) {
|
|
133
|
+
return this.algorithm.route(request, websocket);
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
136
136
|
* Adds multiple routing rules to the server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/server/router/Router.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/server/router/Router.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export declare abstract class Rule<T extends any> {
|
|
|
27
27
|
* @param request - The Request that matched the rule.
|
|
28
28
|
* @param client - The client that made the request.
|
|
29
29
|
*/
|
|
30
|
-
abstract exec(request: Request, client: Rule.ClientType):
|
|
30
|
+
abstract exec(request: Request, client: Rule.ClientType): Promise<void>;
|
|
31
31
|
/**
|
|
32
32
|
* Checks whether a URL matches this route.
|
|
33
33
|
* Also sets the Request.ruleParams.
|
|
@@ -6,7 +6,7 @@ import Rule from './Rule.js';
|
|
|
6
6
|
export declare class WsRule extends Rule<WsRule.action> {
|
|
7
7
|
readonly middleware: WsMiddleware;
|
|
8
8
|
constructor(urlRule: string, action: WsRule.action, middleware?: WsMiddleware);
|
|
9
|
-
exec(request: Request,
|
|
9
|
+
exec(request: Request, connection: Websocket.WebsocketSSInit, state?: Middleware.State): Promise<void>;
|
|
10
10
|
test(request: Request): boolean;
|
|
11
11
|
/**
|
|
12
12
|
* Adds a middleware to this specific rule.
|
|
@@ -20,6 +20,6 @@ export declare class WsRule extends Rule<WsRule.action> {
|
|
|
20
20
|
useError(action: Middleware.errorAction.ws): this;
|
|
21
21
|
}
|
|
22
22
|
export declare namespace WsRule {
|
|
23
|
-
type action = (request: Request, client: Websocket, state: Middleware.State) => void
|
|
23
|
+
type action = (request: Request, client: Websocket, state: Middleware.State) => Promise<void>;
|
|
24
24
|
}
|
|
25
25
|
export default WsRule;
|
|
@@ -6,9 +6,9 @@ export class WsRule extends Rule {
|
|
|
6
6
|
super(urlRule, action);
|
|
7
7
|
this.middleware = middleware;
|
|
8
8
|
}
|
|
9
|
-
exec(request,
|
|
9
|
+
exec(request, connection, state) {
|
|
10
10
|
request.ruleParams = this.getParams(request.url);
|
|
11
|
-
this.middleware.run(request,
|
|
11
|
+
return this.middleware.run(request, connection, this.action, state);
|
|
12
12
|
}
|
|
13
13
|
test(request) {
|
|
14
14
|
return super.test(request);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WsRule.js","sourceRoot":"","sources":["../../../src/server/router/WsRule.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,MAAO,SAAQ,IAAmB;IAGvB;IAFpB,YACI,OAAe,EAAE,MAAqB,EACtB,aAA2B,IAAI,YAAY,EAAE;QAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QADP,eAAU,GAAV,UAAU,CAAmC;IACrC,CAAC;IACtB,IAAI,CAAC,OAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"WsRule.js","sourceRoot":"","sources":["../../../src/server/router/WsRule.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,MAAO,SAAQ,IAAmB;IAGvB;IAFpB,YACI,OAAe,EAAE,MAAqB,EACtB,aAA2B,IAAI,YAAY,EAAE;QAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QADP,eAAU,GAAV,UAAU,CAAmC;IACrC,CAAC;IACtB,IAAI,CAAC,OAAgB,EAAE,UAAqC,EAAE,KAAwB;QACzF,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IACM,IAAI,CAAC,OAAgB;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD;;;OAGG;IACI,GAAG,CAAC,MAA4B;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;;;OAGG;IACI,QAAQ,CAAC,MAAiC;QAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAID,eAAe,MAAM,CAAC"}
|
|
@@ -31,7 +31,7 @@ export declare abstract class Algorithm {
|
|
|
31
31
|
* @param client - The client to route the request to.
|
|
32
32
|
* @returns True if the request was routed, false otherwise.
|
|
33
33
|
*/
|
|
34
|
-
route(request: Request, client: Response | Websocket): boolean;
|
|
34
|
+
route(request: Request, client: Response | Websocket.WebsocketSSInit): boolean;
|
|
35
35
|
}
|
|
36
36
|
export declare namespace Algorithm {
|
|
37
37
|
type ruleType = HttpRule | WsRule;
|
|
@@ -10,10 +10,10 @@ export class Algorithm {
|
|
|
10
10
|
route(request, client) {
|
|
11
11
|
if (client instanceof Response)
|
|
12
12
|
return this.routeHttp(request, client);
|
|
13
|
-
else if (client instanceof Websocket)
|
|
13
|
+
else if (client instanceof Websocket.WebsocketSSInit)
|
|
14
14
|
return this.routeWebsocket(request, client);
|
|
15
15
|
else
|
|
16
|
-
throw new Error(
|
|
16
|
+
throw new Error(`Invalid client type`);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
export default Algorithm;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Algorithm.js","sourceRoot":"","sources":["../../../../src/server/router/algorithm/Algorithm.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAIrD,MAAM,OAAgB,SAAS;IAsB3B;;;;;OAKG;IACI,KAAK,CAAC,OAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"Algorithm.js","sourceRoot":"","sources":["../../../../src/server/router/algorithm/Algorithm.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAIrD,MAAM,OAAgB,SAAS;IAsB3B;;;;;OAKG;IACI,KAAK,CAAC,OAAgB,EAAE,MAA4C;QACvE,IAAI,MAAM,YAAY,QAAQ;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aAClE,IAAI,MAAM,YAAY,SAAS,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;;YAC7F,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAChD,CAAC;CACJ;AAID,eAAe,SAAS,CAAC"}
|
|
@@ -9,7 +9,7 @@ export declare class FIFO extends Algorithm {
|
|
|
9
9
|
get allRules(): (HttpRule | WsRule)[];
|
|
10
10
|
add(...rules: Algorithm.ruleType[]): Promise<void> | void;
|
|
11
11
|
protected routeHttp(request: Request, client: Response): boolean;
|
|
12
|
-
protected routeWebsocket(request: Request,
|
|
12
|
+
protected routeWebsocket(request: Request, connection: Websocket.WebsocketSSInit): boolean;
|
|
13
13
|
}
|
|
14
14
|
export declare namespace FIFO { }
|
|
15
15
|
export default FIFO;
|
|
@@ -12,11 +12,11 @@ export class FIFO extends Algorithm {
|
|
|
12
12
|
rule.exec(request, client);
|
|
13
13
|
return true;
|
|
14
14
|
}
|
|
15
|
-
routeWebsocket(request,
|
|
15
|
+
routeWebsocket(request, connection) {
|
|
16
16
|
const rule = this.rules.find((rule) => rule instanceof WsRule && rule.test(request));
|
|
17
17
|
if (!rule)
|
|
18
18
|
return false;
|
|
19
|
-
rule.exec(request,
|
|
19
|
+
rule.exec(request, connection);
|
|
20
20
|
return true;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FIFO.js","sourceRoot":"","sources":["../../../../src/server/router/algorithm/FIFO.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAKvC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,MAAM,OAAO,IAAK,SAAQ,SAAS;IACrB,KAAK,GAA0B,EAAE,CAAC;IAC5C,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,KAA2B,IAA0B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,SAAS,CAAC,OAAgB,EAAE,MAAgB;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,IAAI,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IACkB,cAAc,CAAC,OAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"FIFO.js","sourceRoot":"","sources":["../../../../src/server/router/algorithm/FIFO.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAKvC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,MAAM,OAAO,IAAK,SAAQ,SAAS;IACrB,KAAK,GAA0B,EAAE,CAAC;IAC5C,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,KAA2B,IAA0B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,SAAS,CAAC,OAAgB,EAAE,MAAgB;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,IAAI,YAAY,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IACkB,cAAc,CAAC,OAAgB,EAAE,UAAqC;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,YAAY,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -20,7 +20,7 @@ export declare class Tree extends Algorithm {
|
|
|
20
20
|
* @param client - The client to route the request to.
|
|
21
21
|
* @returns True if the request was routed, false otherwise.
|
|
22
22
|
*/
|
|
23
|
-
protected routeWebsocket(request: Request, client: Websocket): boolean;
|
|
23
|
+
protected routeWebsocket(request: Request, client: Websocket.WebsocketSSInit): boolean;
|
|
24
24
|
/**
|
|
25
25
|
* Navigate to a route node.
|
|
26
26
|
* @param request - The request to navigate to.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/server/router/algorithm/Tree.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/server/router/algorithm/Tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,14 +62,14 @@ export declare namespace Middleware {
|
|
|
62
62
|
interface State {
|
|
63
63
|
[key: string]: any;
|
|
64
64
|
}
|
|
65
|
-
type next = (error?: unknown) => void
|
|
65
|
+
type next = (error?: unknown) => Promise<void>;
|
|
66
66
|
namespace action {
|
|
67
|
-
type http = (request: Request, response: Response, next: next, state: State) =>
|
|
68
|
-
type ws = (request: Request, client: Websocket, next: next, state: State) =>
|
|
67
|
+
type http = (request: Request, response: Response, next: next, state: State) => Promise<void>;
|
|
68
|
+
type ws = (request: Request, client: Websocket.WebsocketSSInit, next: next, state: State) => Promise<void>;
|
|
69
69
|
}
|
|
70
70
|
namespace errorAction {
|
|
71
|
-
type http = (error: unknown, request: Request, response: Response, next: next, state: State) =>
|
|
72
|
-
type ws = (error: unknown, request: Request, client: Websocket, next: next, state: State) =>
|
|
71
|
+
type http = (error: unknown, request: Request, response: Response, next: next, state: State) => Promise<void>;
|
|
72
|
+
type ws = (error: unknown, request: Request, client: Websocket.WebsocketSSInit, next: next, state: State) => Promise<void>;
|
|
73
73
|
}
|
|
74
74
|
type action<Rule extends HttpRule | WsRule> = Rule extends WsRule ? action.ws : action.http;
|
|
75
75
|
type errorAction<Rule extends HttpRule | WsRule> = Rule extends WsRule ? errorAction.ws : errorAction.http;
|
|
@@ -12,13 +12,13 @@ export declare class WsMiddleware extends Middleware<WsRule> {
|
|
|
12
12
|
/**
|
|
13
13
|
* Runs the middleware pipeline.
|
|
14
14
|
* @param request The request received by the server.
|
|
15
|
-
* @param
|
|
15
|
+
* @param websocket The WebSocket connection.
|
|
16
16
|
* @param action The action to execute after the middleware pipeline.
|
|
17
17
|
* @param state The state to pass to the middleware and action.
|
|
18
18
|
*/
|
|
19
|
-
run(request: Request,
|
|
20
|
-
runError(error: unknown, request: Request,
|
|
21
|
-
protected errorHandler(error: unknown, request: Request,
|
|
19
|
+
run(request: Request, websocket: Websocket.WebsocketSSInit, action: WsRule.action, state?: Middleware.State): Promise<void>;
|
|
20
|
+
runError(error: unknown, request: Request, websocket: Websocket.WebsocketSSInit, state?: Middleware.State): Promise<void>;
|
|
21
|
+
protected errorHandler(error: unknown, request: Request, websocket: Websocket.WebsocketSSInit): Promise<void>;
|
|
22
22
|
}
|
|
23
23
|
export declare namespace WsMiddleware { }
|
|
24
24
|
export default WsMiddleware;
|
|
@@ -12,77 +12,78 @@ export class WsMiddleware extends Middleware {
|
|
|
12
12
|
/**
|
|
13
13
|
* Runs the middleware pipeline.
|
|
14
14
|
* @param request The request received by the server.
|
|
15
|
-
* @param
|
|
15
|
+
* @param websocket The WebSocket connection.
|
|
16
16
|
* @param action The action to execute after the middleware pipeline.
|
|
17
17
|
* @param state The state to pass to the middleware and action.
|
|
18
18
|
*/
|
|
19
|
-
async run(request,
|
|
19
|
+
async run(request, websocket, action, state = {}) {
|
|
20
20
|
try {
|
|
21
21
|
let index = 0;
|
|
22
22
|
const next = async (error) => {
|
|
23
23
|
if (error)
|
|
24
24
|
throw error;
|
|
25
|
-
if (
|
|
25
|
+
if (websocket.isClosed)
|
|
26
26
|
return void logger.warn('websocket was closed when calling next()');
|
|
27
|
-
if (
|
|
27
|
+
if (websocket.status === 'closed')
|
|
28
28
|
return void logger.warn('websocket was rejected when calling next()');
|
|
29
29
|
if (index >= this.pipeline.length) {
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
if (websocket.status === 'handshake')
|
|
31
|
+
websocket.accept();
|
|
32
|
+
await action(request, websocket, state);
|
|
33
|
+
return websocket.flush();
|
|
33
34
|
}
|
|
34
35
|
const current = this.pipeline[index++];
|
|
35
|
-
return await current(request,
|
|
36
|
+
return await current(request, websocket, next, state);
|
|
36
37
|
};
|
|
37
38
|
await next();
|
|
38
39
|
}
|
|
39
40
|
catch (error) {
|
|
40
41
|
if (this.errorPipeline.length === 0)
|
|
41
|
-
return this.errorHandler(error, request,
|
|
42
|
+
return this.errorHandler(error, request, websocket);
|
|
42
43
|
else
|
|
43
|
-
return this.runError(error, request,
|
|
44
|
+
return this.runError(error, request, websocket, state);
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
|
-
async runError(error, request,
|
|
47
|
+
async runError(error, request, websocket, state = {}) {
|
|
47
48
|
try {
|
|
48
49
|
let index = 0;
|
|
49
50
|
const next = async (caughtError) => {
|
|
50
51
|
if (caughtError)
|
|
51
52
|
throw caughtError;
|
|
52
53
|
if (index >= this.errorPipeline.length)
|
|
53
|
-
return await this.errorHandler(error, request,
|
|
54
|
+
return await this.errorHandler(error, request, websocket);
|
|
54
55
|
const current = this.errorPipeline[index++];
|
|
55
|
-
return await current(error, request,
|
|
56
|
+
return await current(error, request, websocket, next, state);
|
|
56
57
|
};
|
|
57
58
|
await next();
|
|
58
59
|
}
|
|
59
60
|
catch (error) {
|
|
60
|
-
return this.errorHandler(error, request,
|
|
61
|
+
return this.errorHandler(error, request, websocket);
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
async errorHandler(error, request,
|
|
64
|
+
async errorHandler(error, request, websocket) {
|
|
64
65
|
if (error instanceof ServerError) {
|
|
65
66
|
if (error.isSended)
|
|
66
67
|
return;
|
|
67
|
-
if (
|
|
68
|
+
if (websocket.isClosed)
|
|
68
69
|
return void logger.error(error);
|
|
69
|
-
if (
|
|
70
|
+
if (websocket.status !== 'handshake')
|
|
70
71
|
return;
|
|
71
|
-
|
|
72
|
+
websocket.reject(error.status, error.message);
|
|
72
73
|
}
|
|
73
74
|
else if (error instanceof Error) {
|
|
74
75
|
logger.error(error);
|
|
75
|
-
if (
|
|
76
|
+
if (websocket.isClosed || websocket.status !== 'handshake')
|
|
76
77
|
return;
|
|
77
|
-
|
|
78
|
+
websocket.reject(500, error.message);
|
|
78
79
|
}
|
|
79
80
|
else {
|
|
80
81
|
logger.error(error);
|
|
81
|
-
if (
|
|
82
|
+
if (websocket.isClosed || websocket.status !== 'handshake')
|
|
82
83
|
return;
|
|
83
|
-
if (
|
|
84
|
+
if (websocket.isClosed)
|
|
84
85
|
return;
|
|
85
|
-
|
|
86
|
+
websocket.reject(500, 'Internal Server Error');
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WsMiddleware.js","sourceRoot":"","sources":["../../../../src/server/router/middleware/WsMiddleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAGzC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;AAE3C,MAAM,OAAO,YAAa,SAAQ,UAAkB;IACzC,KAAK,KAAmB,OAAO,IAAI,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG;;;;;;OAMG;IACI,KAAK,CAAC,GAAG,CAAC,OAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"WsMiddleware.js","sourceRoot":"","sources":["../../../../src/server/router/middleware/WsMiddleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAGzC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;AAE3C,MAAM,OAAO,YAAa,SAAQ,UAAkB;IACzC,KAAK,KAAmB,OAAO,IAAI,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG;;;;;;OAMG;IACI,KAAK,CAAC,GAAG,CAAC,OAAgB,EAAE,SAAoC,EAAE,MAAqB,EAAE,QAA0B,EAAE;QACxH,IAAI,CAAC;YACD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,GAAoB,KAAK,EAAE,KAAe,EAAE,EAAE;gBACpD,IAAI,KAAK;oBAAE,MAAM,KAAK,CAAC;gBACvB,IAAI,SAAS,CAAC,QAAQ;oBAAE,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBAC5F,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ;oBAAE,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBACzG,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAChC,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW;wBAAE,SAAS,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;oBACxC,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC7B,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC,CAAC;YACF,MAAM,IAAI,EAAE,CAAC;QACjB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;;gBACpF,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,KAAc,EAAE,OAAgB,EAAE,SAAoC,EAAE,QAA0B,EAAE;QACtH,IAAI,CAAC;YACD,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,GAAoB,KAAK,EAAE,WAAqB,EAAE,EAAE;gBAC1D,IAAI,WAAW;oBAAE,MAAM,WAAW,CAAC;gBACnC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;oBAAE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAClG,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5C,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC,CAAC;YACF,MAAM,IAAI,EAAE,CAAC;QACjB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;IAC3E,CAAC;IACS,KAAK,CAAC,YAAY,CAAC,KAAc,EAAE,OAAgB,EAAE,SAAoC;QAC/F,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,SAAS,CAAC,QAAQ;gBAAE,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO;YAC7C,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO;YACnE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO;YACnE,IAAI,SAAS,CAAC,QAAQ;gBAAE,OAAO;YAC/B,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;CACJ;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import FS from 'fs';
|
|
7
7
|
import PATH from 'path';
|
|
8
|
-
import
|
|
8
|
+
import { Path } from '@netfeez/common-node';
|
|
9
9
|
export class PathSecurity {
|
|
10
10
|
static maxRealPathCacheSize = 128;
|
|
11
11
|
static realPathCache = new Map();
|
|
@@ -16,8 +16,8 @@ export class PathSecurity {
|
|
|
16
16
|
* @returns A safe absolute path or null if the path escapes the base.
|
|
17
17
|
*/
|
|
18
18
|
static async resolveInsideBase(base, plus) {
|
|
19
|
-
base =
|
|
20
|
-
plus =
|
|
19
|
+
base = Path.resolve(base);
|
|
20
|
+
plus = Path.normalize(plus);
|
|
21
21
|
if (this.hasTraversalUnderflow(plus))
|
|
22
22
|
return null;
|
|
23
23
|
const candidate = this.getCandidate(base, plus);
|
|
@@ -69,8 +69,8 @@ export class PathSecurity {
|
|
|
69
69
|
*/
|
|
70
70
|
static getCandidate(base, plus) {
|
|
71
71
|
plus = plus.replace(/^[\\/]+/, '');
|
|
72
|
-
const candidate =
|
|
73
|
-
return
|
|
72
|
+
const candidate = Path.join(base, plus);
|
|
73
|
+
return Path.resolve(candidate);
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
76
|
* Retrieves a safe real path for the given base path, using caching to optimize performance while preventing cache overflow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathSecurity.js","sourceRoot":"","sources":["../../../src/server/security/PathSecurity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"PathSecurity.js","sourceRoot":"","sources":["../../../src/server/security/PathSecurity.ts"],"names":[],"mappings":"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"}
|