vortez 5.0.0-dev.19 → 5.0.0
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/.gitignore +2 -0
- package/README.md +26 -9
- package/build/Template/Compiler.d.ts +70 -0
- package/build/Template/Compiler.js +135 -0
- package/build/Template/Compiler.js.map +1 -0
- package/build/Template/StreamCompiler.d.ts +16 -0
- package/build/Template/StreamCompiler.js +54 -0
- package/build/Template/StreamCompiler.js.map +1 -0
- package/build/Template/Template.d.ts +49 -0
- package/build/Template/Template.js +77 -0
- package/build/Template/Template.js.map +1 -0
- package/build/Vortez.d.ts +1 -1
- package/build/Vortez.js +1 -1
- package/build/Vortez.js.map +1 -1
- package/build/beta/JwtManager/JwtError.d.ts +8 -0
- package/build/beta/JwtManager/JwtError.js +10 -0
- package/build/beta/JwtManager/JwtError.js.map +1 -0
- package/build/beta/JwtManager/JwtManager.d.ts +3 -0
- package/build/beta/JwtManager/JwtManager.js +24 -7
- package/build/beta/JwtManager/JwtManager.js.map +1 -1
- package/build/server/BodyParser.d.ts +6 -0
- package/build/server/BodyParser.js +18 -3
- package/build/server/BodyParser.js.map +1 -1
- package/build/server/Request.d.ts +6 -4
- package/build/server/Request.js +15 -10
- package/build/server/Request.js.map +1 -1
- package/build/server/Response.d.ts +24 -9
- package/build/server/Response.js +160 -74
- package/build/server/Response.js.map +1 -1
- package/build/server/Server.js +29 -6
- package/build/server/Server.js.map +1 -1
- package/build/server/config/Config.d.ts +15 -13
- package/build/server/config/Config.js +8 -6
- package/build/server/config/Config.js.map +1 -1
- package/build/server/config/Loader.js +1 -1
- package/build/server/config/Loader.js.map +1 -1
- package/build/server/router/Router.d.ts +1 -1
- package/build/server/router/Router.js +3 -3
- package/build/server/router/Router.js.map +1 -1
- package/build/server/router/middleware/HttpMiddleware.js +1 -1
- package/build/server/router/middleware/HttpMiddleware.js.map +1 -1
- package/build/server/router/middleware/WsMiddleware.js +1 -1
- package/build/server/router/middleware/WsMiddleware.js.map +1 -1
- package/build/server/security/PathSecurity.d.ts +45 -0
- package/build/server/security/PathSecurity.js +108 -0
- package/build/server/security/PathSecurity.js.map +1 -0
- package/build/server/websocket/Websocket.js +4 -1
- package/build/server/websocket/Websocket.js.map +1 -1
- package/build/utilities/ConsoleUI.d.ts +2 -1
- package/build/utilities/ConsoleUI.js +2 -1
- package/build/utilities/ConsoleUI.js.map +1 -1
- package/build/utilities/DebugUI.d.ts +1 -1
- package/build/utilities/DebugUI.js +1 -1
- package/build/utilities/Encoding.d.ts +22 -0
- package/build/utilities/Encoding.js +26 -0
- package/build/utilities/Encoding.js.map +1 -0
- package/build/utilities/Env.js +7 -2
- package/build/utilities/Env.js.map +1 -1
- package/build/utilities/File.d.ts +10 -0
- package/build/utilities/File.js +19 -0
- package/build/utilities/File.js.map +1 -0
- package/build/utilities/Flatten.d.ts +18 -1
- package/build/utilities/Flatten.js +18 -1
- package/build/utilities/Flatten.js.map +1 -1
- package/build/utilities/Object.d.ts +16 -0
- package/build/utilities/Object.js +48 -0
- package/build/utilities/Object.js.map +1 -0
- package/build/utilities/Path.d.ts +31 -11
- package/build/utilities/Path.js +48 -15
- package/build/utilities/Path.js.map +1 -1
- package/build/utilities/Time.d.ts +21 -0
- package/build/utilities/Time.js +25 -0
- package/build/utilities/Time.js.map +1 -0
- package/build/utilities/Utilities.d.ts +43 -34
- package/build/utilities/Utilities.js +48 -38
- package/build/utilities/Utilities.js.map +1 -1
- package/changes.md +4 -0
- package/docs/ARCHITECTURE.md +142 -0
- package/global/style/template/error.css +29 -0
- package/global/style/template/folder.css +79 -0
- package/global/{Style/Template/Template.css → style/template/template.css} +60 -68
- package/global/template/error.vhtml +29 -0
- package/global/template/folder.vhtml +54 -0
- package/package.json +2 -2
- package/build/Template.d.ts +0 -46
- package/build/Template.js +0 -81
- package/build/Template.js.map +0 -1
- package/global/Style/Template/Error.css +0 -30
- package/global/Style/Template/Folder.css +0 -77
- package/global/Template/Error.vhtml +0 -29
- package/global/Template/Folder.vhtml +0 -41
- package/tests/Template/template.js +0 -18
- package/tests/Template/template.txt +0 -13
- package/tests/Template/template.vhtml +0 -23
- package/tests/config/config.js +0 -233
- package/tests/debug.js +0 -34
- package/tests/jwtManager/jwtManager.js +0 -342
- package/tests/router.js +0 -596
- package/tests/schema/schema.js +0 -368
- package/tests/test.env +0 -0
- package/tests/test.js +0 -131
- package/tests/test.vhtml +0 -14
- package/tests/utilities.js +0 -28
- package/tests/websocket.vhtml +0 -86
- /package/global/{Source/Logo_960.png → source/logo_960.png} +0 -0
- /package/global/{Source/Logo_SM_960.png → source/logo_SM_960.png} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/server/config/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/server/config/Config.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC;IACzC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IACxC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC;IACpC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;IAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE;IAC1E,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE;IAC3E,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE;IAC5E,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE;CAChF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;CACrE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC;IACvC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE;IAC5D,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;IACrC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;CACzE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC;IACrC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;IAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;IACjE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;IACjF,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;YAChC,SAAS,EAAE,MAAM;SACpB,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE;IAClC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;YAC9B,MAAM,EAAE,uBAAuB;YAC/B,KAAK,EAAE,sBAAsB;SAChC,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM;KACrC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;YAC/B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAClC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YACnC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YACpC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SACxC,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE;CACpC,CAAC,CAAC;AAIH,MAAM,OAAO,MAAM;IACR,IAAI,CAAc;IACf,KAAK,CAAe;IAC9B,YAAmB,IAAsB;QACrC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACI,GAAG,CAA+B,IAAO;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACM,GAAG,CAA+B,IAAO,EAAE,KAAsB;QACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD;;;;OAIG;IACI,IAAI,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,4CAA4C;IACrC,MAAM,KAAa,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CACzE;AACD,WAAiB,MAAM;IACL,aAAM,GAAG,OAAO,CAAC;AAKnC,CAAC,EANgB,MAAM,KAAN,MAAM,QAMtB;AACD,eAAe,MAAM,CAAC"}
|
|
@@ -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 Utilities.
|
|
19
|
+
if (!await Utilities.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);
|
|
@@ -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,wBAAwB,CAAC;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAErD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEhD,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,SAAS,CAAC,
|
|
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,wBAAwB,CAAC;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,SAAS,MAAM,8BAA8B,CAAC;AAErD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEhD,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,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,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,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,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"}
|
|
@@ -58,7 +58,7 @@ export declare class Router {
|
|
|
58
58
|
* @remarks This method attempts to route the incoming HTTP request using the routing algorithm.
|
|
59
59
|
* 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.
|
|
60
60
|
*/
|
|
61
|
-
requestManager(HttpRequest: HTTP.IncomingMessage, HttpResponse: HTTP.ServerResponse): void
|
|
61
|
+
requestManager(HttpRequest: HTTP.IncomingMessage, HttpResponse: HTTP.ServerResponse): Promise<void>;
|
|
62
62
|
/**
|
|
63
63
|
* Triggered when the server receives a WebSocket upgrade request.
|
|
64
64
|
* @param request - The received WebSocket upgrade request.
|
|
@@ -84,14 +84,14 @@ export class Router {
|
|
|
84
84
|
* @remarks This method attempts to route the incoming HTTP request using the routing algorithm.
|
|
85
85
|
* 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.
|
|
86
86
|
*/
|
|
87
|
-
requestManager(HttpRequest, HttpResponse) {
|
|
87
|
+
async requestManager(HttpRequest, HttpResponse) {
|
|
88
88
|
const request = new Request(HttpRequest);
|
|
89
89
|
const response = new Response(request, HttpResponse, this.config.data.templates);
|
|
90
90
|
const sessionID = request.cookies.get('Session');
|
|
91
91
|
logger.request.log(request.ip, request.method, request.url, sessionID);
|
|
92
92
|
const isRouted = this.routeRequest(request, response);
|
|
93
93
|
if (!isRouted)
|
|
94
|
-
response.sendError(
|
|
94
|
+
await response.sendError(404, `No route for: ${request.method} -> ${request.url}`);
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
97
|
* Triggered when the server receives a WebSocket upgrade request.
|
|
@@ -108,7 +108,7 @@ export class Router {
|
|
|
108
108
|
logger.webSocket.log(request.ip, request.method, request.url, sessionID);
|
|
109
109
|
const isRouted = this.routeWebSocket(request, webSocket);
|
|
110
110
|
if (!isRouted)
|
|
111
|
-
webSocket.reject(
|
|
111
|
+
webSocket.reject(404, `No route for: ${request.method} -> ${request.url}`);
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
114
|
* Routes incoming HTTP requests to be processed.
|
|
@@ -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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"}
|
|
@@ -8,7 +8,7 @@ import LoggerManager from '../../LoggerManager.js';
|
|
|
8
8
|
import Middleware from './Middleware.js';
|
|
9
9
|
const logger = LoggerManager.getInstance();
|
|
10
10
|
export class HttpMiddleware extends Middleware {
|
|
11
|
-
clone() { return new HttpMiddleware(this.pipeline, this.errorPipeline); }
|
|
11
|
+
clone() { return new HttpMiddleware([...this.pipeline], [...this.errorPipeline]); }
|
|
12
12
|
/**
|
|
13
13
|
* Runs the middleware pipeline.
|
|
14
14
|
* @param request - The request received by the server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpMiddleware.js","sourceRoot":"","sources":["../../../../src/server/router/middleware/HttpMiddleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAGnD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;AAE3C,MAAM,OAAO,cAAe,SAAQ,UAAoB;IAC7C,KAAK,KAAqB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpMiddleware.js","sourceRoot":"","sources":["../../../../src/server/router/middleware/HttpMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import LoggerManager from '../../LoggerManager.js';
|
|
|
8
8
|
import Middleware from './Middleware.js';
|
|
9
9
|
const logger = LoggerManager.getInstance();
|
|
10
10
|
export class WsMiddleware extends Middleware {
|
|
11
|
-
clone() { return new WsMiddleware(this.pipeline, this.errorPipeline); }
|
|
11
|
+
clone() { return new WsMiddleware([...this.pipeline], [...this.errorPipeline]); }
|
|
12
12
|
/**
|
|
13
13
|
* Runs the middleware pipeline.
|
|
14
14
|
* @param request The request received by the server.
|
|
@@ -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,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;
|
|
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,MAAiB,EAAE,MAAqB,EAAE,QAA0B,EAAE;QACrG,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,MAAM,CAAC,QAAQ;oBAAE,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;gBACzF,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;oBAAE,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBACxG,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;wBAAE,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjD,OAAO,MAAM,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAChD,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvC,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACvD,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,MAAM,CAAC,CAAC;;gBACjF,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,KAAc,EAAE,OAAgB,EAAE,MAAiB,EAAE,QAA0B,EAAE;QACnG,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,MAAM,CAAC,CAAC;gBAC/F,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5C,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC,CAAC;YACF,MAAM,IAAI,EAAE,CAAC;QACjB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;IACxE,CAAC;IACS,KAAK,CAAC,YAAY,CAAC,KAAc,EAAE,OAAgB,EAAE,MAAiB;QAC5E,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YACxC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YAC3D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO;YAC3D,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO;YAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;CACJ;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare class PathSecurity {
|
|
2
|
+
private static readonly maxRealPathCacheSize;
|
|
3
|
+
private static readonly realPathCache;
|
|
4
|
+
/**
|
|
5
|
+
* Resolves a path relative to a base path while preventing traversal outside the base.
|
|
6
|
+
* @param base - The base path.
|
|
7
|
+
* @param plus - The user-controlled relative path.
|
|
8
|
+
* @returns A safe absolute path or null if the path escapes the base.
|
|
9
|
+
*/
|
|
10
|
+
static resolveInsideBase(base: string, plus: string): Promise<string | null>;
|
|
11
|
+
/**
|
|
12
|
+
* Checks if the given path contains directory traversal that would escape the base directory, by analyzing the path segments for '..' components that would underflow the directory structure.
|
|
13
|
+
* @param path - The path to check for traversal underflow.
|
|
14
|
+
* @returns True if the path contains traversal that escapes the base, false otherwise.
|
|
15
|
+
*/
|
|
16
|
+
private static hasTraversalUnderflow;
|
|
17
|
+
/**
|
|
18
|
+
* Checks if a candidate path is located within a base path, preventing directory traversal attacks.
|
|
19
|
+
* @param basePath - The base path to check against.
|
|
20
|
+
* @param candidatePath - The candidate path to verify.
|
|
21
|
+
* @returns True if the candidate path is inside the base path, false otherwise.
|
|
22
|
+
*/
|
|
23
|
+
private static isPathInside;
|
|
24
|
+
/**
|
|
25
|
+
* Generates a candidate path by joining a base path with a user-controlled relative path, ensuring that the relative path does not start with slashes to prevent bypassing the base directory.
|
|
26
|
+
* @param base - The base path.
|
|
27
|
+
* @param plus - The user-controlled relative path.
|
|
28
|
+
* @returns The generated candidate path.
|
|
29
|
+
* @remarks This method does not perform any security checks and should be used in conjunction with `resolveInsideBase` to ensure safety.
|
|
30
|
+
*/
|
|
31
|
+
private static getCandidate;
|
|
32
|
+
/**
|
|
33
|
+
* Retrieves a safe real path for the given base path, using caching to optimize performance while preventing cache overflow.
|
|
34
|
+
* @param basePath - The base path for which to retrieve the real path.
|
|
35
|
+
* @returns The real path corresponding to the base path, or the original base path if resolution fails.
|
|
36
|
+
*/
|
|
37
|
+
private static getSafeBase;
|
|
38
|
+
/**
|
|
39
|
+
* Attempts to resolve the real path of a given path, returning null if it fails (e.g., if the path does not exist).
|
|
40
|
+
* @param path - The path to resolve.
|
|
41
|
+
* @returns The real path as a string, or null if resolution fails.
|
|
42
|
+
*/
|
|
43
|
+
private static tryReal;
|
|
44
|
+
}
|
|
45
|
+
export default PathSecurity;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
+
* @description Provides security utilities for handling file paths in `Vortez`.
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import FS from 'fs';
|
|
7
|
+
import PATH from 'path';
|
|
8
|
+
import Utilities from '../../utilities/Utilities.js';
|
|
9
|
+
export class PathSecurity {
|
|
10
|
+
static maxRealPathCacheSize = 128;
|
|
11
|
+
static realPathCache = new Map();
|
|
12
|
+
/**
|
|
13
|
+
* Resolves a path relative to a base path while preventing traversal outside the base.
|
|
14
|
+
* @param base - The base path.
|
|
15
|
+
* @param plus - The user-controlled relative path.
|
|
16
|
+
* @returns A safe absolute path or null if the path escapes the base.
|
|
17
|
+
*/
|
|
18
|
+
static async resolveInsideBase(base, plus) {
|
|
19
|
+
base = Utilities.Path.resolve(base);
|
|
20
|
+
plus = Utilities.Path.normalize(plus);
|
|
21
|
+
if (this.hasTraversalUnderflow(plus))
|
|
22
|
+
return null;
|
|
23
|
+
const candidate = this.getCandidate(base, plus);
|
|
24
|
+
if (!this.isPathInside(base, candidate))
|
|
25
|
+
return null;
|
|
26
|
+
const [safeBase, safeCandidate] = await Promise.all([
|
|
27
|
+
this.getSafeBase(base),
|
|
28
|
+
this.tryReal(candidate).then(path => path ?? candidate),
|
|
29
|
+
]);
|
|
30
|
+
return this.isPathInside(safeBase, safeCandidate) ? safeCandidate : null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Checks if the given path contains directory traversal that would escape the base directory, by analyzing the path segments for '..' components that would underflow the directory structure.
|
|
34
|
+
* @param path - The path to check for traversal underflow.
|
|
35
|
+
* @returns True if the path contains traversal that escapes the base, false otherwise.
|
|
36
|
+
*/
|
|
37
|
+
static hasTraversalUnderflow(path) {
|
|
38
|
+
const parts = path.split(/[\\/]+/);
|
|
39
|
+
let depth = 0;
|
|
40
|
+
for (const part of parts) {
|
|
41
|
+
if (!part || part === '.')
|
|
42
|
+
continue;
|
|
43
|
+
if (part === '..') {
|
|
44
|
+
if (depth === 0)
|
|
45
|
+
return true;
|
|
46
|
+
depth -= 1;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
depth += 1;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Checks if a candidate path is located within a base path, preventing directory traversal attacks.
|
|
55
|
+
* @param basePath - The base path to check against.
|
|
56
|
+
* @param candidatePath - The candidate path to verify.
|
|
57
|
+
* @returns True if the candidate path is inside the base path, false otherwise.
|
|
58
|
+
*/
|
|
59
|
+
static isPathInside(basePath, candidatePath) {
|
|
60
|
+
const relativePath = PATH.relative(basePath, candidatePath);
|
|
61
|
+
return relativePath === '' || (!relativePath.startsWith('..') && !PATH.isAbsolute(relativePath));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Generates a candidate path by joining a base path with a user-controlled relative path, ensuring that the relative path does not start with slashes to prevent bypassing the base directory.
|
|
65
|
+
* @param base - The base path.
|
|
66
|
+
* @param plus - The user-controlled relative path.
|
|
67
|
+
* @returns The generated candidate path.
|
|
68
|
+
* @remarks This method does not perform any security checks and should be used in conjunction with `resolveInsideBase` to ensure safety.
|
|
69
|
+
*/
|
|
70
|
+
static getCandidate(base, plus) {
|
|
71
|
+
plus = plus.replace(/^[\\/]+/, '');
|
|
72
|
+
const candidate = Utilities.Path.join(base, plus);
|
|
73
|
+
return Utilities.Path.resolve(candidate);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Retrieves a safe real path for the given base path, using caching to optimize performance while preventing cache overflow.
|
|
77
|
+
* @param basePath - The base path for which to retrieve the real path.
|
|
78
|
+
* @returns The real path corresponding to the base path, or the original base path if resolution fails.
|
|
79
|
+
*/
|
|
80
|
+
static async getSafeBase(basePath) {
|
|
81
|
+
const cached = this.realPathCache.get(basePath);
|
|
82
|
+
if (cached)
|
|
83
|
+
return cached;
|
|
84
|
+
const resolved = await this.tryReal(basePath) ?? basePath;
|
|
85
|
+
if (this.realPathCache.size >= this.maxRealPathCacheSize) {
|
|
86
|
+
const firstKey = this.realPathCache.keys().next().value;
|
|
87
|
+
if (typeof firstKey === 'string')
|
|
88
|
+
this.realPathCache.delete(firstKey);
|
|
89
|
+
}
|
|
90
|
+
this.realPathCache.set(basePath, resolved);
|
|
91
|
+
return resolved;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Attempts to resolve the real path of a given path, returning null if it fails (e.g., if the path does not exist).
|
|
95
|
+
* @param path - The path to resolve.
|
|
96
|
+
* @returns The real path as a string, or null if resolution fails.
|
|
97
|
+
*/
|
|
98
|
+
static async tryReal(path) {
|
|
99
|
+
try {
|
|
100
|
+
return await FS.promises.realpath(path);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export default PathSecurity;
|
|
108
|
+
//# sourceMappingURL=PathSecurity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathSecurity.js","sourceRoot":"","sources":["../../../src/server/security/PathSecurity.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import EVENTS from 'events';
|
|
|
7
7
|
import CRYPTO from 'crypto';
|
|
8
8
|
import Chunk from './Chunk.js';
|
|
9
9
|
import LoggerManager from '../LoggerManager.js';
|
|
10
|
+
import ServerError from '../ServerError.js';
|
|
10
11
|
const logger = LoggerManager.getInstance().webSocket;
|
|
11
12
|
export { Chunk } from './Chunk.js';
|
|
12
13
|
export class Websocket extends EVENTS {
|
|
@@ -31,8 +32,10 @@ export class Websocket extends EVENTS {
|
|
|
31
32
|
* Accepts the connection with the client.
|
|
32
33
|
*/
|
|
33
34
|
accept() {
|
|
34
|
-
this._status = 'accepted';
|
|
35
35
|
const key = this.request.headers['sec-websocket-key']?.trim();
|
|
36
|
+
if (!key)
|
|
37
|
+
throw new ServerError('Missing Sec-WebSocket-Key header', 400);
|
|
38
|
+
this._status = 'accepted';
|
|
36
39
|
const acceptToken = CRYPTO.createHash('SHA1').update(key + Websocket.WEBSOCKET_GUID).digest('base64');
|
|
37
40
|
const headers = this.buildHeaders([
|
|
38
41
|
'HTTP/1.1 101 Switching Protocols',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../src/server/websocket/Websocket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,aAAa,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../src/server/websocket/Websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description Provides
|
|
3
|
+
* @description Provides a console-based user interface for formatting text with colors and styles, as well as sending messages to the console.
|
|
4
|
+
* This is useful for enhancing the readability of console output and providing a more engaging user experience when interacting with the command line.
|
|
4
5
|
* @license Apache-2.0
|
|
5
6
|
*/
|
|
6
7
|
export declare class ConsoleUI {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description Provides
|
|
3
|
+
* @description Provides a console-based user interface for formatting text with colors and styles, as well as sending messages to the console.
|
|
4
|
+
* This is useful for enhancing the readability of console output and providing a more engaging user experience when interacting with the command line.
|
|
4
5
|
* @license Apache-2.0
|
|
5
6
|
*/
|
|
6
7
|
export class ConsoleUI {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsoleUI.js","sourceRoot":"","sources":["../../src/utilities/ConsoleUI.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ConsoleUI.js","sourceRoot":"","sources":["../../src/utilities/ConsoleUI.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description
|
|
3
|
+
* @description Provides a console-based debugging interface for the Vortez project, allowing developers to execute commands and receive feedback in real-time. This is useful for testing and debugging purposes, providing a simple way to interact with the application through a command-line interface.
|
|
4
4
|
* @license Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import Logger from '../logger/Logger.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
-
* @description
|
|
3
|
+
* @description Provides a console-based debugging interface for the Vortez project, allowing developers to execute commands and receive feedback in real-time. This is useful for testing and debugging purposes, providing a simple way to interact with the application through a command-line interface.
|
|
4
4
|
* @license Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import ConsoleUI from './ConsoleUI.js';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
+
* @description Provides utilities for encoding and decoding data, such as base64url encoding.
|
|
4
|
+
* This is useful for handling data transformations that are commonly needed in web applications, such as encoding data for transmission or storage.
|
|
5
|
+
* @license Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
export declare class Encoding {
|
|
8
|
+
/**
|
|
9
|
+
* Encodes a string to base64url format.
|
|
10
|
+
* @param data - The string to encode.
|
|
11
|
+
* @returns The base64url-encoded string.
|
|
12
|
+
*/
|
|
13
|
+
static base64UrlEncode(data: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Decodes a base64url-encoded string.
|
|
16
|
+
* @param data - The base64url-encoded string to decode.
|
|
17
|
+
* @returns The decoded UTF-8 string.
|
|
18
|
+
*/
|
|
19
|
+
static base64UrlDecode(data: string): string;
|
|
20
|
+
}
|
|
21
|
+
export declare namespace Encoding { }
|
|
22
|
+
export default Encoding;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
+
* @description Provides utilities for encoding and decoding data, such as base64url encoding.
|
|
4
|
+
* This is useful for handling data transformations that are commonly needed in web applications, such as encoding data for transmission or storage.
|
|
5
|
+
* @license Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
export class Encoding {
|
|
8
|
+
/**
|
|
9
|
+
* Encodes a string to base64url format.
|
|
10
|
+
* @param data - The string to encode.
|
|
11
|
+
* @returns The base64url-encoded string.
|
|
12
|
+
*/
|
|
13
|
+
static base64UrlEncode(data) {
|
|
14
|
+
return Buffer.from(data).toString('base64url');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Decodes a base64url-encoded string.
|
|
18
|
+
* @param data - The base64url-encoded string to decode.
|
|
19
|
+
* @returns The decoded UTF-8 string.
|
|
20
|
+
*/
|
|
21
|
+
static base64UrlDecode(data) {
|
|
22
|
+
return Buffer.from(data, 'base64url').toString('utf8');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export default Encoding;
|
|
26
|
+
//# sourceMappingURL=Encoding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Encoding.js","sourceRoot":"","sources":["../../src/utilities/Encoding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IACjB;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;CACJ;AAGD,eAAe,QAAQ,CAAC"}
|
package/build/utilities/Env.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
+
* @description Provides utilities for environment variable management, including loading from .env files, getting and setting environment variables, and converting objects to .env format. This is useful for managing configuration in a flexible way that can be easily integrated into different environments.
|
|
4
|
+
* @license Apache-2.0
|
|
5
|
+
*/
|
|
1
6
|
import FS, { promises as FSP } from "fs";
|
|
2
7
|
import PATH from "path";
|
|
3
8
|
import Debug from "../logger/Debug.js";
|
|
4
|
-
import
|
|
9
|
+
import File from './File.js';
|
|
5
10
|
export class Env {
|
|
6
11
|
/**
|
|
7
12
|
* Gets all current environment variables.
|
|
@@ -20,7 +25,7 @@ export class Env {
|
|
|
20
25
|
Debug.log(`loading environment variables from &C6[${path}]`);
|
|
21
26
|
const defaultEnv = options.defaultEnv ?? {};
|
|
22
27
|
const setEnv = options.setEnv ?? true;
|
|
23
|
-
if (!await
|
|
28
|
+
if (!await File.exists(path)) {
|
|
24
29
|
try {
|
|
25
30
|
Debug.log(`environment variables file &C6[${path}]&R does not exist, creating it`);
|
|
26
31
|
await FSP.mkdir(PATH.dirname(path), { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Env.js","sourceRoot":"","sources":["../../src/utilities/Env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"Env.js","sourceRoot":"","sources":["../../src/utilities/Env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class File {
|
|
2
|
+
/**
|
|
3
|
+
* Checks if a file exists asynchronously.
|
|
4
|
+
* @param path - The path to the file.
|
|
5
|
+
* @returns A promise that resolves to true if the file exists, false otherwise.
|
|
6
|
+
*/
|
|
7
|
+
static exists(path: string): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
export declare namespace File { }
|
|
10
|
+
export default File;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author NetFeez <netfeez.dev@gmail.com>
|
|
3
|
+
* @description Provides utilities for file operations, such as checking if a file exists.
|
|
4
|
+
* This is useful for performing asynchronous file checks in a way that integrates well with modern JavaScript practices.
|
|
5
|
+
* @license Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { promises as FSP } from 'fs';
|
|
8
|
+
export class File {
|
|
9
|
+
/**
|
|
10
|
+
* Checks if a file exists asynchronously.
|
|
11
|
+
* @param path - The path to the file.
|
|
12
|
+
* @returns A promise that resolves to true if the file exists, false otherwise.
|
|
13
|
+
*/
|
|
14
|
+
static async exists(path) {
|
|
15
|
+
return FSP.access(path).then(() => true).catch(() => false);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export default File;
|
|
19
|
+
//# sourceMappingURL=File.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/utilities/File.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,IAAI,CAAC;AAErC,MAAM,OAAO,IAAI;IACb;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAY;QACnC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;CACJ;AAGD,eAAe,IAAI,CAAC"}
|
|
@@ -7,13 +7,30 @@ export declare class Flatten {
|
|
|
7
7
|
/**
|
|
8
8
|
* Flattens a nested plain-object into dot-notation keys.
|
|
9
9
|
* Non-plain objects (Date, RegExp, Map, Set, etc.) are treated as leaf values.
|
|
10
|
+
* @param object - The object to flatten.
|
|
11
|
+
* @param depth - The maximum depth to flatten (default is 10).
|
|
12
|
+
* @returns A new object with flattened keys.
|
|
10
13
|
*/
|
|
11
14
|
static object<T extends Flatten.Document, D extends number = 10>(object: T, depth?: D): Flatten.Object<T, D>;
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
16
|
+
* Unflattens a flattened object back into its original nested structure.
|
|
17
|
+
* @param obj - The flattened object to unflatten.
|
|
18
|
+
* @returns A new object with the original nested structure.
|
|
14
19
|
*/
|
|
15
20
|
static unObject<Result extends any = any>(obj: Flatten.Document): Result;
|
|
21
|
+
/**
|
|
22
|
+
* Core recursive function to flatten an object. It handles the actual flattening logic, while the public `object` method provides type safety and a cleaner interface.
|
|
23
|
+
* @param object - The object to flatten.
|
|
24
|
+
* @param depth - The remaining depth to flatten.
|
|
25
|
+
* @param prefix - The current key prefix for nested keys.
|
|
26
|
+
* @returns A flattened object with dot-notation keys.
|
|
27
|
+
*/
|
|
16
28
|
private static flattenCore;
|
|
29
|
+
/**
|
|
30
|
+
* Checks if a value is a plain object (i.e., an object created by the Object constructor or with a null prototype). This is used to determine whether to flatten a value or treat it as a leaf.
|
|
31
|
+
* @param value - The value to check.
|
|
32
|
+
* @returns True if the value is a plain object, false otherwise.
|
|
33
|
+
*/
|
|
17
34
|
private static isPlainObject;
|
|
18
35
|
}
|
|
19
36
|
export declare namespace Flatten {
|