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
|
@@ -3,11 +3,13 @@ import _Algorithm from "./algorithm/Algorithm.js";
|
|
|
3
3
|
import _JwtUtils from "./JwtUtils.js";
|
|
4
4
|
import _KeyEntry from "./KeyEntry.js";
|
|
5
5
|
import _Jwt from "./Jwt.js";
|
|
6
|
+
import _JwtError from "./JwtError.js";
|
|
6
7
|
export { KeyGenerator } from "./KeyGenerator.js";
|
|
7
8
|
export { Algorithm } from "./algorithm/Algorithm.js";
|
|
8
9
|
export { JwtUtils } from "./JwtUtils.js";
|
|
9
10
|
export { KeyEntry as KIDEntry } from "./KeyEntry.js";
|
|
10
11
|
export { Jwt } from "./Jwt.js";
|
|
12
|
+
export { JwtError } from "./JwtError.js";
|
|
11
13
|
export class JwtManager {
|
|
12
14
|
KIDMap = {};
|
|
13
15
|
defaultEntry;
|
|
@@ -45,28 +47,42 @@ export class JwtManager {
|
|
|
45
47
|
const kid = header.kid || this.defaultEntry.kid;
|
|
46
48
|
const entry = this.KIDMap[kid];
|
|
47
49
|
if (!entry)
|
|
48
|
-
throw new
|
|
50
|
+
throw new JwtManager.JwtError('KEY_NOT_FOUND', `No key found for kid: ${kid}`);
|
|
49
51
|
const { signer, alg } = entry;
|
|
50
52
|
header = { ...header, alg, kid, typ: 'jwt' };
|
|
51
53
|
const encodedHeader = JwtManager.JwtUtils.objectToBase64Url(header);
|
|
52
54
|
const encodedPayload = JwtManager.JwtUtils.objectToBase64Url(payload);
|
|
53
55
|
const content = `${encodedHeader}.${encodedPayload}`;
|
|
54
|
-
|
|
56
|
+
let signature = '';
|
|
57
|
+
try {
|
|
58
|
+
signature = signer.sign(content);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw new JwtManager.JwtError('SIGN_FAILED', 'Failed to sign token', { cause: error });
|
|
62
|
+
}
|
|
55
63
|
return `${content}.${signature}`;
|
|
56
64
|
}
|
|
57
65
|
parse(token) {
|
|
58
|
-
|
|
66
|
+
let tokenParts;
|
|
67
|
+
try {
|
|
68
|
+
tokenParts = JwtManager.JwtUtils.getJwtParts(token);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
throw new JwtManager.JwtError('TOKEN_INVALID', 'Invalid token', { cause: error });
|
|
72
|
+
}
|
|
73
|
+
const { header, payload, signature, encodedHeader, encodedPayload } = tokenParts;
|
|
59
74
|
const kid = header.kid || this.defaultEntry.kid;
|
|
60
75
|
const entry = this.KIDMap[kid];
|
|
61
76
|
if (!entry)
|
|
62
|
-
throw new
|
|
77
|
+
throw new JwtManager.JwtError('KEY_NOT_FOUND', `No key found for kid: ${kid}`);
|
|
63
78
|
const signer = entry.signer;
|
|
64
79
|
const content = `${encodedHeader}.${encodedPayload}`;
|
|
65
|
-
if (!signer.verify(content, signature))
|
|
66
|
-
throw new
|
|
80
|
+
if (!signer.verify(content, signature)) {
|
|
81
|
+
throw new JwtManager.JwtError('INVALID_SIGNATURE', 'Invalid signature');
|
|
82
|
+
}
|
|
67
83
|
const jwt = new JwtManager.Jwt(header, payload, signature, signer);
|
|
68
84
|
if (jwt.expired)
|
|
69
|
-
throw new
|
|
85
|
+
throw new JwtManager.JwtError('TOKEN_EXPIRED', 'Token has expired');
|
|
70
86
|
return jwt;
|
|
71
87
|
}
|
|
72
88
|
// toJSON(): object { return { algorithm: this.algorithmName }; }
|
|
@@ -90,6 +106,7 @@ export class JwtManager {
|
|
|
90
106
|
JwtManager.JwtUtils = _JwtUtils;
|
|
91
107
|
JwtManager.KeyEntry = _KeyEntry;
|
|
92
108
|
JwtManager.Jwt = _Jwt;
|
|
109
|
+
JwtManager.JwtError = _JwtError;
|
|
93
110
|
})(JwtManager || (JwtManager = {}));
|
|
94
111
|
export default JwtManager;
|
|
95
112
|
//# sourceMappingURL=JwtManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JwtManager.js","sourceRoot":"","sources":["../../../src/beta/JwtManager/JwtManager.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"JwtManager.js","sourceRoot":"","sources":["../../../src/beta/JwtManager/JwtManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,12 @@ export declare class BodyParser {
|
|
|
59
59
|
* @param body - The request body.
|
|
60
60
|
*/
|
|
61
61
|
private inferBoundary;
|
|
62
|
+
/**
|
|
63
|
+
* Safely decodes a URI component, returning the original value if decoding fails.
|
|
64
|
+
* @param value - The value to decode.
|
|
65
|
+
* @returns The decoded value or the original if decoding fails.
|
|
66
|
+
*/
|
|
67
|
+
private safeDecodeURIComponent;
|
|
62
68
|
}
|
|
63
69
|
export declare namespace BodyParser {
|
|
64
70
|
namespace Body {
|
|
@@ -41,8 +41,9 @@ export class BodyParser {
|
|
|
41
41
|
this.httpRequest.on('end', () => resolve(Buffer.concat(chunks)));
|
|
42
42
|
this.httpRequest.on('error', (error) => reject(Error('fail parsing request body', { cause: error })));
|
|
43
43
|
this.httpRequest.on('data', (chunk) => {
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
const size = chunks.reduce((total, current) => total + current.length, 0) + chunk.length;
|
|
45
|
+
if (size > 1e+8)
|
|
46
|
+
return void this.httpRequest.destroy(Error('Request body is too large'));
|
|
46
47
|
chunks.push(chunk);
|
|
47
48
|
});
|
|
48
49
|
});
|
|
@@ -90,7 +91,8 @@ export class BodyParser {
|
|
|
90
91
|
const fragments = decoded.split('&');
|
|
91
92
|
fragments.forEach((pair) => {
|
|
92
93
|
const [key, value] = pair.split('=');
|
|
93
|
-
|
|
94
|
+
const normalizedKey = this.safeDecodeURIComponent(key.replace(/\+/g, ' '));
|
|
95
|
+
content[normalizedKey] = this.safeDecodeURIComponent((value ?? '').replace(/\+/g, ' '));
|
|
94
96
|
});
|
|
95
97
|
return {
|
|
96
98
|
mimeType: 'application/x-www-form-urlencoded',
|
|
@@ -157,6 +159,19 @@ export class BodyParser {
|
|
|
157
159
|
return null;
|
|
158
160
|
return result[1];
|
|
159
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Safely decodes a URI component, returning the original value if decoding fails.
|
|
164
|
+
* @param value - The value to decode.
|
|
165
|
+
* @returns The decoded value or the original if decoding fails.
|
|
166
|
+
*/
|
|
167
|
+
safeDecodeURIComponent(value) {
|
|
168
|
+
try {
|
|
169
|
+
return decodeURIComponent(value);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return value;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
160
175
|
}
|
|
161
176
|
export default BodyParser;
|
|
162
177
|
//# sourceMappingURL=BodyParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BodyParser.js","sourceRoot":"","sources":["../../src/server/BodyParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,UAAU;IAGI;IACA;IAHf,MAAM,CAAC,uBAAuB,GAAG,oHAAoH,CAAC;IAC9J,YACuB,OAAiC,EACjC,WAAiC;QADjC,YAAO,GAAP,OAAO,CAA0B;QACjC,gBAAW,GAAX,WAAW,CAAsB;IACrD,CAAC;IACJ;;;;OAIA;IACO,KAAK,CAAC,KAAK;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,QAAO,MAAM,EAAE,CAAC;YACrB,KAAK,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,kBAAkB,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,mCAAmC,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9E,KAAK,qBAAqB,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;IACC,CAAC;IACD;;;;OAIA;IACQ,KAAK,CAAC,WAAW;QACrB,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACtG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,
|
|
1
|
+
{"version":3,"file":"BodyParser.js","sourceRoot":"","sources":["../../src/server/BodyParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,UAAU;IAGI;IACA;IAHf,MAAM,CAAC,uBAAuB,GAAG,oHAAoH,CAAC;IAC9J,YACuB,OAAiC,EACjC,WAAiC;QADjC,YAAO,GAAP,OAAO,CAA0B;QACjC,gBAAW,GAAX,WAAW,CAAsB;IACrD,CAAC;IACJ;;;;OAIA;IACO,KAAK,CAAC,KAAK;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,QAAO,MAAM,EAAE,CAAC;YACrB,KAAK,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,kBAAkB,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,mCAAmC,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9E,KAAK,qBAAqB,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;IACC,CAAC;IACD;;;;OAIA;IACQ,KAAK,CAAC,WAAW;QACrB,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YACtG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzF,IAAI,IAAI,GAAG,IAAI;oBAAE,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBAC1F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIA;IACQ,WAAW,CAAC,IAAY;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO;YACH,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;SACd,CAAC;IACN,CAAC;IACD;;;;;OAKA;IACQ,WAAW,CAAC,IAAY;QAC5B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO;gBACH,QAAQ,EAAE,kBAAkB;gBAC5B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACzB,KAAK,EAAE,IAAI;aACd,CAAC;QACN,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAAC,CAAC;IACtF,CAAC;IACD;;;;OAIA;IACQ,iBAAiB,CAAC,IAAY;QAClC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QACG,OAAO;YACH,QAAQ,EAAE,mCAAmC;YAC7C,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,IAAI;SACd,CAAA;IACL,CAAC;IACD;;;;;;OAMA;IACQ,eAAe,CAAC,IAAY,EAAE,UAAoB,EAAE;QACxD,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,MAAM,KAAK,GAA6B,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxG,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,IAAI,IAAI,IAAI;gBAAE,OAAO;YACzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG;gBAClB,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;gBACpC,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAA;QACL,CAAC,CAAC,CAAC;QACH,OAAO;YACH,QAAQ,EAAE,qBAAqB;YAC/B,OAAO,EAAE,KAAK;SACjB,CAAC;IACN,CAAC;IACD;;;;OAIA;IACQ,gBAAgB,CAAC,IAAY;QACjC,MAAM,IAAI,GAAG,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,CAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,CAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;YACzD,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC;YAC9C,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YACtF,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;SACzF,CAAC;IACN,CAAC;IACJ;;;OAGG;IACK,aAAa,CAAC,IAAY;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9D,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACE;;;;OAIA;IACQ,sBAAsB,CAAC,KAAa;QACxC,IAAI,CAAC;YAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACzC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC3B,CAAC;;AAuEL,eAAe,UAAU,CAAC"}
|
|
@@ -13,15 +13,15 @@ export declare class Request {
|
|
|
13
13
|
headers: Request.Headers;
|
|
14
14
|
/** Contains the request cookies. */
|
|
15
15
|
cookies: Cookie;
|
|
16
|
-
/** Contains the
|
|
16
|
+
/** Contains the query string parameters sent. */
|
|
17
17
|
searchParams: Request.SearchParams;
|
|
18
18
|
/** Contains the IP address of the requester. */
|
|
19
19
|
ip?: string | string[];
|
|
20
20
|
/** Contains the request method. */
|
|
21
21
|
method: Request.Method;
|
|
22
|
-
/** Contains the POSTParser. */
|
|
23
|
-
session: Session;
|
|
24
22
|
/** Contains the session of the device that made the request. */
|
|
23
|
+
session: Session;
|
|
24
|
+
/** Contains the request body parser. */
|
|
25
25
|
private body;
|
|
26
26
|
/** Contains the HTTP request received by the server. */
|
|
27
27
|
private httpRequest;
|
|
@@ -45,6 +45,7 @@ export declare class Request {
|
|
|
45
45
|
* @param Url - The URL received from the HTTP request.
|
|
46
46
|
*/
|
|
47
47
|
private getSearchParams;
|
|
48
|
+
private normalizeUrl;
|
|
48
49
|
}
|
|
49
50
|
export declare namespace Request {
|
|
50
51
|
export import BodyParser = _BodyParser;
|
|
@@ -58,6 +59,7 @@ export declare namespace Request {
|
|
|
58
59
|
}
|
|
59
60
|
interface SearchParams extends Document {
|
|
60
61
|
}
|
|
61
|
-
type
|
|
62
|
+
type KnownMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'ALL';
|
|
63
|
+
type Method = KnownMethod | (string & {});
|
|
62
64
|
}
|
|
63
65
|
export default Request;
|
package/build/server/Request.js
CHANGED
|
@@ -13,15 +13,15 @@ export class Request {
|
|
|
13
13
|
headers;
|
|
14
14
|
/** Contains the request cookies. */
|
|
15
15
|
cookies;
|
|
16
|
-
/** Contains the
|
|
16
|
+
/** Contains the query string parameters sent. */
|
|
17
17
|
searchParams;
|
|
18
18
|
/** Contains the IP address of the requester. */
|
|
19
19
|
ip;
|
|
20
20
|
/** Contains the request method. */
|
|
21
21
|
method;
|
|
22
|
-
/** Contains the POSTParser. */
|
|
23
|
-
session;
|
|
24
22
|
/** Contains the session of the device that made the request. */
|
|
23
|
+
session;
|
|
24
|
+
/** Contains the request body parser. */
|
|
25
25
|
body;
|
|
26
26
|
/** Contains the HTTP request received by the server. */
|
|
27
27
|
httpRequest;
|
|
@@ -37,12 +37,12 @@ export class Request {
|
|
|
37
37
|
const forwardedIP = httpRequest.headers['x-forwarded-for'];
|
|
38
38
|
const remoteIP = httpRequest.socket.remoteAddress;
|
|
39
39
|
const method = httpRequest.method ?? 'GET';
|
|
40
|
-
|
|
40
|
+
let url = httpRequest.url ?? '/';
|
|
41
41
|
this.httpRequest = httpRequest;
|
|
42
42
|
this.ip = forwardedIP ? forwardedIP : remoteIP ? remoteIP : '0.0.0.0';
|
|
43
43
|
this.method = this.getMethod(method);
|
|
44
44
|
this.url = url.split('?')[0];
|
|
45
|
-
this.url =
|
|
45
|
+
this.url = this.normalizeUrl(this.url);
|
|
46
46
|
this.headers = httpRequest.headers;
|
|
47
47
|
this.cookies = new Cookie(this.headers.cookie);
|
|
48
48
|
this.session = Session.get(this.cookies);
|
|
@@ -55,11 +55,9 @@ export class Request {
|
|
|
55
55
|
* @param method - The method used for the request.
|
|
56
56
|
*/
|
|
57
57
|
getMethod(method) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
: method == 'DELETE' ? 'DELETE'
|
|
62
|
-
: 'GET';
|
|
58
|
+
method = method.trim().toUpperCase();
|
|
59
|
+
method = method.length > 0 ? method : 'GET';
|
|
60
|
+
return method;
|
|
63
61
|
}
|
|
64
62
|
/**
|
|
65
63
|
* Retrieves the data sent via URL QUERY.
|
|
@@ -71,6 +69,13 @@ export class Request {
|
|
|
71
69
|
UrlObject.searchParams.forEach((value, name) => searchParams[name] = value);
|
|
72
70
|
return searchParams;
|
|
73
71
|
}
|
|
72
|
+
normalizeUrl(url) {
|
|
73
|
+
url = url.split('?')[0];
|
|
74
|
+
url = decodeURI(url.endsWith('/') ? url : url + '/');
|
|
75
|
+
url = url.length > 1 && url.endsWith('/') ? url.slice(0, -1) : url;
|
|
76
|
+
url = url.startsWith('/') ? url : '/' + url;
|
|
77
|
+
return url;
|
|
78
|
+
}
|
|
74
79
|
}
|
|
75
80
|
(function (Request) {
|
|
76
81
|
Request.BodyParser = _BodyParser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../src/server/Request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,OAAO;IACnB,oCAAoC;IAC7B,OAAO,CAAkB;IAChC,oCAAoC;IAC7B,OAAO,CAAS;IACvB,
|
|
1
|
+
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../src/server/Request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,OAAO;IACnB,oCAAoC;IAC7B,OAAO,CAAkB;IAChC,oCAAoC;IAC7B,OAAO,CAAS;IACvB,iDAAiD;IAC1C,YAAY,CAAuB;IAC1C,gDAAgD;IACzC,EAAE,CAAqB;IAC9B,mCAAmC;IAC5B,MAAM,CAAiB;IAC9B,gEAAgE;IACzD,OAAO,CAAU;IACxB,wCAAwC;IAChC,IAAI,CAAqB;IACjC,wDAAwD;IAChD,WAAW,CAAuB;IAC1C,gCAAgC;IACzB,GAAG,CAAS;IACnB,6BAA6B;IACtB,UAAU,GAAuB,EAAE,CAAC;IAC3C;;;OAGG;IACH,YAAmB,WAAiC;QAC7C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;QAClD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC;QAC3C,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,IAAU,GAAG,CAAA;QAC5C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;IACD,IAAW,IAAI,KAAuC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF;;;OAGG;IACK,SAAS,CAAC,MAAc;QAC/B,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5C,OAAO,MAAM,CAAC;IACf,CAAC;IACD;;;OAGG;IACK,eAAe,CAAC,GAAW;QAClC,IAAI,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,YAAY,GAAyB,EAAE,CAAC;QAC9C,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5E,OAAO,YAAY,CAAC;IACrB,CAAC;IACO,YAAY,CAAC,GAAW;QAC/B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACrD,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;QAC5C,OAAO,GAAG,CAAC;IACZ,CAAC;CACD;AAED,WAAiB,OAAO;IACT,kBAAU,GAAG,WAAW,CAAC;IAQa,CAAC;AAGtD,CAAC,EAZgB,OAAO,KAAP,OAAO,QAYvB;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import HTTP from 'http';
|
|
7
7
|
import FS from 'fs';
|
|
8
|
+
import { Readable } from 'stream';
|
|
8
9
|
import Request from './Request.js';
|
|
9
10
|
import Config from './config/Config.js';
|
|
10
11
|
export declare class Response {
|
|
12
|
+
static readonly contentTypeMap: Response.contentTypeMap;
|
|
13
|
+
static readonly acceptRangeFormats: string[];
|
|
14
|
+
private static readonly version;
|
|
11
15
|
/** Contains the request received by the server. */
|
|
12
16
|
request: Request;
|
|
13
17
|
/** Contains the list of server response templates. */
|
|
@@ -29,7 +33,7 @@ export declare class Response {
|
|
|
29
33
|
* More types will be supported over time.
|
|
30
34
|
* @param extension - The file extension.
|
|
31
35
|
*/
|
|
32
|
-
generateHeaders(extension: string):
|
|
36
|
+
generateHeaders(extension: string): HTTP.OutgoingHttpHeaders;
|
|
33
37
|
/**
|
|
34
38
|
* Sends response headers.
|
|
35
39
|
* @param code - The HTTP status code.
|
|
@@ -41,7 +45,17 @@ export declare class Response {
|
|
|
41
45
|
* @param data - The data to be sent.
|
|
42
46
|
* @param encode - The encoding used for the response.
|
|
43
47
|
*/
|
|
44
|
-
send(data: Response.data, options?: Response.options): void
|
|
48
|
+
send(data: Response.data, options?: Response.options): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Sends a readable stream as a response.
|
|
51
|
+
* @param data - The readable stream to be sent.
|
|
52
|
+
* @param options - The response options.
|
|
53
|
+
* @throws If an error occurs while sending the stream.
|
|
54
|
+
* @returns A promise that resolves when the stream has been sent.
|
|
55
|
+
* @remarks This method is used for sending large data, such as files or templates, without loading them entirely into memory.
|
|
56
|
+
* It handles backpressure and ensures efficient streaming of data to the client.
|
|
57
|
+
*/
|
|
58
|
+
private sendReadable;
|
|
45
59
|
/**
|
|
46
60
|
* Sends a file as a response.
|
|
47
61
|
* @param path - The file path to send.
|
|
@@ -51,11 +65,11 @@ export declare class Response {
|
|
|
51
65
|
sendFile(path: string, options?: Response.options): Promise<void>;
|
|
52
66
|
/**
|
|
53
67
|
* Sends the listing of a folder as a response.
|
|
54
|
-
* @param
|
|
55
|
-
* @param
|
|
68
|
+
* @param base - The routing rule base path.
|
|
69
|
+
* @param plus - The relative path received in the request.
|
|
56
70
|
* @throws If the folder does not exist or is invalid.
|
|
57
71
|
*/
|
|
58
|
-
sendFolder(
|
|
72
|
+
sendFolder(base: string, plus?: string): Promise<void>;
|
|
59
73
|
/**
|
|
60
74
|
* Sends a `.vhtml` template as a response.
|
|
61
75
|
* @param path - The template file path.
|
|
@@ -69,25 +83,26 @@ export declare class Response {
|
|
|
69
83
|
* @param data - The data to send.
|
|
70
84
|
* @param options - The response options.
|
|
71
85
|
*/
|
|
72
|
-
sendJson(data: any, options?: Response.options): void
|
|
86
|
+
sendJson(data: any, options?: Response.options): Promise<void>;
|
|
73
87
|
/**
|
|
74
88
|
* Sends an error as a response.
|
|
75
89
|
* @param status - The HTTP status code of the error.
|
|
76
90
|
* @param message - The error message.
|
|
77
91
|
*/
|
|
78
92
|
sendError(status: number, message: string): Promise<void>;
|
|
79
|
-
private
|
|
93
|
+
private getFsErrorStatus;
|
|
94
|
+
private static loadVersion;
|
|
80
95
|
}
|
|
81
96
|
export declare namespace Response {
|
|
82
97
|
interface options {
|
|
83
98
|
status?: number;
|
|
84
|
-
headers?:
|
|
99
|
+
headers?: HTTP.OutgoingHttpHeaders;
|
|
85
100
|
encode?: BufferEncoding;
|
|
86
101
|
}
|
|
87
102
|
interface contentTypeMap {
|
|
88
103
|
[key: string]: string | undefined;
|
|
89
104
|
}
|
|
90
|
-
type data = string | Buffer | FS.ReadStream;
|
|
105
|
+
type data = string | Buffer | Readable | FS.ReadStream;
|
|
91
106
|
type Extensions = ('HTML' | 'JS' | 'CSS' | 'JSON' | 'XML' | 'TXT' | 'SVG' | 'PNG' | 'JPG' | 'JPEG' | 'MP3' | 'WAV' | 'MP4');
|
|
92
107
|
}
|
|
93
108
|
export default Response;
|