@mojojs/core 0.32.0 → 0.33.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/cgi.d.ts +22 -0
- package/lib/cgi.js +78 -0
- package/lib/cgi.js.map +1 -0
- package/lib/cli/cgi.d.ts +10 -0
- package/lib/cli/cgi.js +16 -0
- package/lib/cli/cgi.js.map +1 -0
- package/lib/cli/server.js +1 -1
- package/lib/cli/server.js.map +1 -1
- package/lib/cli.d.ts +4 -0
- package/lib/cli.js +14 -1
- package/lib/cli.js.map +1 -1
- package/lib/headers.d.ts +11 -3
- package/lib/headers.js +26 -24
- package/lib/headers.js.map +1 -1
- package/lib/server.d.ts +4 -5
- package/lib/server.js +3 -3
- package/lib/server.js.map +1 -1
- package/lib/types.d.ts +15 -0
- package/lib/util.d.ts +1 -0
- package/lib/util.js +85 -15
- package/lib/util.js.map +1 -1
- package/lib/websocket.d.ts +6 -7
- package/lib/websocket.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,8 +21,8 @@ If you want to stay up to date on the latest developments join us on [Matrix](ht
|
|
|
21
21
|
* A real-time web framework, allowing you to easily grow single file prototypes into well-structured MVC web
|
|
22
22
|
applications.
|
|
23
23
|
* Powerful out of the box with RESTful routes, WebSockets, plugins, commands, logging, templates, content negotiation,
|
|
24
|
-
session management, form and JSON validation, testing framework, static file server, cluster mode,
|
|
25
|
-
Unicode support and much more for you to discover.
|
|
24
|
+
session management, form and JSON validation, testing framework, static file server, cluster mode, CGI detection,
|
|
25
|
+
first class Unicode support and much more for you to discover.
|
|
26
26
|
|
|
27
27
|
* A powerful web development toolkit, that you can use for all kinds of applications, independently of the web
|
|
28
28
|
framework.
|
package/lib/cgi.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import type { MojoApp, ServerResponseBody } from './types.js';
|
|
4
|
+
import type { Readable } from 'stream';
|
|
5
|
+
import { ServerRequest } from './server/request.js';
|
|
6
|
+
import { ServerResponse } from './server/response.js';
|
|
7
|
+
/**
|
|
8
|
+
* CGI class. Is this a joke? Yes. Could you use it in production anyway? Probably.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CGI {
|
|
11
|
+
app: MojoApp;
|
|
12
|
+
constructor(app: MojoApp);
|
|
13
|
+
/**
|
|
14
|
+
* Create a request object for a CGI environment.
|
|
15
|
+
*/
|
|
16
|
+
static envToRequest(env: NodeJS.ProcessEnv, body: Readable): ServerRequest;
|
|
17
|
+
/**
|
|
18
|
+
* Run CGI application.
|
|
19
|
+
*/
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
_sendResponse(res: ServerResponse, body: ServerResponseBody): void;
|
|
22
|
+
}
|
package/lib/cgi.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Stream } from 'stream';
|
|
2
|
+
import { ServerRequest } from './server/request.js';
|
|
3
|
+
import { ServerResponse } from './server/response.js';
|
|
4
|
+
import { httpStatusMessages } from './util.js';
|
|
5
|
+
/**
|
|
6
|
+
* CGI class. Is this a joke? Yes. Could you use it in production anyway? Probably.
|
|
7
|
+
*/
|
|
8
|
+
export class CGI {
|
|
9
|
+
constructor(app) {
|
|
10
|
+
this.app = app;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a request object for a CGI environment.
|
|
14
|
+
*/
|
|
15
|
+
static envToRequest(env, body) {
|
|
16
|
+
// Method
|
|
17
|
+
const method = env.REQUEST_METHOD ?? 'GET';
|
|
18
|
+
// URL
|
|
19
|
+
let url = env.PATH_INFO ?? '/';
|
|
20
|
+
const name = env.SCRIPT_NAME;
|
|
21
|
+
if (name !== undefined && url.startsWith(name) === true)
|
|
22
|
+
url = url.replace(name, '');
|
|
23
|
+
const query = env.QUERY_STRING;
|
|
24
|
+
if (query !== undefined && query !== '')
|
|
25
|
+
url += `?${query}`;
|
|
26
|
+
// Headers
|
|
27
|
+
const headers = [];
|
|
28
|
+
for (const [name, value] of Object.entries(env)) {
|
|
29
|
+
const nameMatch = name.match(/^HTTP_(.+)$/);
|
|
30
|
+
if (nameMatch === null || value === undefined)
|
|
31
|
+
continue;
|
|
32
|
+
headers.push(nameMatch[1].replaceAll('_', '-'), value);
|
|
33
|
+
}
|
|
34
|
+
// Special headers
|
|
35
|
+
if (env.CONTENT_LENGTH !== undefined)
|
|
36
|
+
headers.push('Content-Length', env.CONTENT_LENGTH);
|
|
37
|
+
if (env.CONTENT_TYPE !== undefined)
|
|
38
|
+
headers.push('Content-Type', env.CONTENT_TYPE);
|
|
39
|
+
// HTTPS
|
|
40
|
+
const isSecure = (env.HTTPS ?? '').toUpperCase() === 'ON';
|
|
41
|
+
return new ServerRequest({
|
|
42
|
+
body,
|
|
43
|
+
headers,
|
|
44
|
+
isSecure,
|
|
45
|
+
isWebSocket: false,
|
|
46
|
+
method,
|
|
47
|
+
reverseProxy: false,
|
|
48
|
+
url
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Run CGI application.
|
|
53
|
+
*/
|
|
54
|
+
async run() {
|
|
55
|
+
const app = this.app;
|
|
56
|
+
await app.hooks.runHook('server:start', app);
|
|
57
|
+
const ctx = app.newContext(CGI.envToRequest(process.env, process.stdin), new ServerResponse(async (res, body) => {
|
|
58
|
+
this._sendResponse(res, body);
|
|
59
|
+
}));
|
|
60
|
+
await app.handleRequest(ctx).catch(error => ctx.exception(error));
|
|
61
|
+
await app.hooks.runHook('server:stop', app);
|
|
62
|
+
}
|
|
63
|
+
_sendResponse(res, body) {
|
|
64
|
+
const code = res.statusCode;
|
|
65
|
+
res.headers.set('Status', `${code} ${httpStatusMessages[code]}`);
|
|
66
|
+
const stdout = process.stdout;
|
|
67
|
+
if (typeof body === 'string' || Buffer.isBuffer(body)) {
|
|
68
|
+
res.length(Buffer.byteLength(body));
|
|
69
|
+
stdout.write(res.headers.toString());
|
|
70
|
+
stdout.write(body);
|
|
71
|
+
}
|
|
72
|
+
else if (body instanceof Stream) {
|
|
73
|
+
stdout.write(res.headers.toString());
|
|
74
|
+
body.pipe(stdout);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=cgi.js.map
|
package/lib/cgi.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cgi.js","sourceRoot":"","sources":["../src/cgi.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/cgi.d.ts
ADDED
package/lib/cli/cgi.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CGI } from '../cgi.js';
|
|
2
|
+
/**
|
|
3
|
+
* CGI command.
|
|
4
|
+
*/
|
|
5
|
+
export default async function cgiCommand(app) {
|
|
6
|
+
await new CGI(app).run();
|
|
7
|
+
}
|
|
8
|
+
cgiCommand.description = 'Start application with CGI';
|
|
9
|
+
cgiCommand.usage = `Usage: APPLICATION cgi [OPTIONS]
|
|
10
|
+
|
|
11
|
+
node index.js cgi
|
|
12
|
+
|
|
13
|
+
Options:
|
|
14
|
+
-h, --help Show this summary of available options
|
|
15
|
+
`;
|
|
16
|
+
//# sourceMappingURL=cgi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cgi.js","sourceRoot":"","sources":["../../src/cli/cgi.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AAE9B;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CAAC,GAAY;IACnD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3B,CAAC;AAED,UAAU,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACtD,UAAU,CAAC,KAAK,GAAG;;;;;;CAMlB,CAAC"}
|
package/lib/cli/server.js
CHANGED
|
@@ -35,7 +35,7 @@ export default async function serverCommand(app, args) {
|
|
|
35
35
|
EVENTS.forEach(signal => process.on(signal, listener));
|
|
36
36
|
await server.start();
|
|
37
37
|
}
|
|
38
|
-
serverCommand.description = 'Start application with HTTP server';
|
|
38
|
+
serverCommand.description = 'Start application with HTTP and WebSocket server';
|
|
39
39
|
serverCommand.usage = `Usage: APPLICATION server [OPTIONS]
|
|
40
40
|
|
|
41
41
|
node index.js server
|
package/lib/cli/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CACjB;QACE,OAAO,EAAE,OAAO;QAChB,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,MAAM;QAC5B,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;QAChB,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,MAAM;KAChB,EACD,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAC,EAC5F,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,oBAAoB,EAAE,MAAM,CAAC,QAAQ;QACrC,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC,KAAK;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CACjB;QACE,OAAO,EAAE,OAAO;QAChB,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,MAAM;QAC5B,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;QAChB,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,MAAM;KAChB,EACD,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAC,EAC5F,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,oBAAoB,EAAE,MAAM,CAAC,QAAQ;QACrC,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC,KAAK;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,kDAAkD,CAAC;AAC/E,aAAa,CAAC,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCrB,CAAC"}
|
package/lib/cli.d.ts
CHANGED
package/lib/cli.js
CHANGED
|
@@ -23,13 +23,26 @@ export class CLI {
|
|
|
23
23
|
addCommand(name, command) {
|
|
24
24
|
this.commands[name] = command;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect command from environment.
|
|
28
|
+
*/
|
|
29
|
+
detectCommand() {
|
|
30
|
+
const env = process.env;
|
|
31
|
+
if (env.MOJO_NO_DETECT === '1')
|
|
32
|
+
return null;
|
|
33
|
+
// CGI detection
|
|
34
|
+
if (env.PATH_INFO !== undefined || env.GATEWAY_INTERFACE !== undefined)
|
|
35
|
+
return 'cgi';
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
26
38
|
/**
|
|
27
39
|
* Start command line interface.
|
|
28
40
|
*/
|
|
29
41
|
async start(command, ...args) {
|
|
30
42
|
if (this._loaded === undefined)
|
|
31
43
|
await this._loadCommands();
|
|
32
|
-
const
|
|
44
|
+
const detected = this.detectCommand();
|
|
45
|
+
const commandArgs = detected !== null ? ['', '', detected] : command === undefined ? process.argv : ['', '', command, ...args];
|
|
33
46
|
const app = this._app.deref();
|
|
34
47
|
if (app === undefined)
|
|
35
48
|
return;
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB;;GAEG;AACH,MAAM,OAAO,GAAG;IAad,YAAY,GAAQ;QAZpB;;WAEG;QACH,iBAAY,GAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxE;;WAEG;QACH,aAAQ,GAA4B,EAAE,CAAC;QAGvC,YAAO,GAAwB,SAAS,CAAC;QAGvC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAY,EAAE,OAAgB;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAgB,EAAE,GAAG,IAAc;QAC7C,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3D,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/headers.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
declare type HeaderBuffer = Record<string, {
|
|
2
|
+
normalCase: string;
|
|
3
|
+
values: string[];
|
|
4
|
+
}>;
|
|
1
5
|
/**
|
|
2
6
|
* HTTP header class.
|
|
3
7
|
*/
|
|
4
8
|
export declare class Headers {
|
|
5
|
-
_headers?:
|
|
9
|
+
_headers?: HeaderBuffer;
|
|
6
10
|
_init: string[];
|
|
7
|
-
_normalCase: Record<string, string>;
|
|
8
11
|
constructor(init?: string[]);
|
|
9
12
|
/**
|
|
10
13
|
* Append header value.
|
|
@@ -30,5 +33,10 @@ export declare class Headers {
|
|
|
30
33
|
* Convert headers into a plain object.
|
|
31
34
|
*/
|
|
32
35
|
toObject(): Record<string, string>;
|
|
33
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Convert headers to string.
|
|
38
|
+
*/
|
|
39
|
+
toString(): string;
|
|
40
|
+
_getHeaders(): HeaderBuffer;
|
|
34
41
|
}
|
|
42
|
+
export {};
|
package/lib/headers.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class Headers {
|
|
5
5
|
constructor(init = []) {
|
|
6
|
-
this._normalCase = {};
|
|
7
6
|
this._init = init;
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
@@ -15,26 +14,26 @@ export class Headers {
|
|
|
15
14
|
if (headers[lowerCase] === undefined)
|
|
16
15
|
return this.set(name, value);
|
|
17
16
|
if (lowerCase === 'set-cookie') {
|
|
18
|
-
headers[lowerCase].push(value);
|
|
17
|
+
headers[lowerCase].values.push(value);
|
|
19
18
|
}
|
|
20
19
|
else {
|
|
21
|
-
headers[lowerCase] = [[...headers[lowerCase], value].join(', ')];
|
|
20
|
+
headers[lowerCase].values = [[...headers[lowerCase].values, value].join(', ')];
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
/**
|
|
25
24
|
* Get header value.
|
|
26
25
|
*/
|
|
27
26
|
get(name) {
|
|
28
|
-
const
|
|
29
|
-
if (
|
|
27
|
+
const header = this._getHeaders()[name.toLowerCase()];
|
|
28
|
+
if (header === undefined)
|
|
30
29
|
return null;
|
|
31
|
-
return values.join(', ');
|
|
30
|
+
return header.values.join(', ');
|
|
32
31
|
}
|
|
33
32
|
/**
|
|
34
33
|
* Get all headers values individually.
|
|
35
34
|
*/
|
|
36
35
|
getAll(name) {
|
|
37
|
-
const values = this._getHeaders()[name.toLowerCase()] ?? [];
|
|
36
|
+
const values = this._getHeaders()[name.toLowerCase()]?.values ?? [];
|
|
38
37
|
return [...values];
|
|
39
38
|
}
|
|
40
39
|
/**
|
|
@@ -42,21 +41,16 @@ export class Headers {
|
|
|
42
41
|
*/
|
|
43
42
|
set(name, value) {
|
|
44
43
|
const lowerCase = name.toLowerCase();
|
|
45
|
-
|
|
46
|
-
this._normalCase[lowerCase] = name;
|
|
47
|
-
this._getHeaders()[lowerCase] = [value];
|
|
44
|
+
this._getHeaders()[lowerCase] = { normalCase: name, values: [value] };
|
|
48
45
|
}
|
|
49
46
|
/**
|
|
50
47
|
* Convert headers into a plain array of name/value pairs.
|
|
51
48
|
*/
|
|
52
49
|
toArray() {
|
|
53
50
|
const array = [];
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const normal = normalCase[name];
|
|
58
|
-
for (const value of values) {
|
|
59
|
-
array.push(normal, value);
|
|
51
|
+
for (const header of Object.values(this._getHeaders())) {
|
|
52
|
+
for (const value of header.values) {
|
|
53
|
+
array.push(header.normalCase, value);
|
|
60
54
|
}
|
|
61
55
|
}
|
|
62
56
|
return array;
|
|
@@ -66,28 +60,36 @@ export class Headers {
|
|
|
66
60
|
*/
|
|
67
61
|
toObject() {
|
|
68
62
|
const object = {};
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
for (const [name, values] of Object.entries(headers)) {
|
|
72
|
-
object[normalCase[name]] = values.join(', ');
|
|
63
|
+
for (const header of Object.values(this._getHeaders())) {
|
|
64
|
+
object[header.normalCase] = header.values.join(', ');
|
|
73
65
|
}
|
|
74
66
|
return object;
|
|
75
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Convert headers to string.
|
|
70
|
+
*/
|
|
71
|
+
toString() {
|
|
72
|
+
const lines = [];
|
|
73
|
+
for (const header of Object.values(this._getHeaders())) {
|
|
74
|
+
for (const value of header.values) {
|
|
75
|
+
lines.push(`${header.normalCase}: ${value}\r\n`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return lines.join('') + '\r\n';
|
|
79
|
+
}
|
|
76
80
|
_getHeaders() {
|
|
77
81
|
if (this._headers === undefined) {
|
|
78
82
|
const headers = (this._headers = {});
|
|
79
|
-
const normalCase = this._normalCase;
|
|
80
83
|
const init = this._init;
|
|
81
84
|
for (let i = 0; i < init.length; i += 2) {
|
|
82
85
|
const name = init[i];
|
|
83
86
|
const value = init[i + 1];
|
|
84
87
|
const lowerCase = name.toLowerCase();
|
|
85
|
-
normalCase[lowerCase] = name;
|
|
86
88
|
if (headers[lowerCase] === undefined) {
|
|
87
|
-
headers[lowerCase] = [value];
|
|
89
|
+
headers[lowerCase] = { normalCase: name, values: [value] };
|
|
88
90
|
}
|
|
89
91
|
else {
|
|
90
|
-
headers[lowerCase].push(value);
|
|
92
|
+
headers[lowerCase].values.push(value);
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
}
|
package/lib/headers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"headers.js","sourceRoot":"","sources":["../src/headers.ts"],"names":[],"mappings":"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"}
|
package/lib/server.d.ts
CHANGED
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/// <reference types="node" />
|
|
5
5
|
/// <reference types="node" />
|
|
6
|
-
import type {
|
|
7
|
-
import type { ServerOptions } from './types.js';
|
|
6
|
+
import type { MojoApp, ServerOptions } from './types.js';
|
|
8
7
|
import type { Socket } from 'net';
|
|
9
8
|
import http from 'http';
|
|
10
9
|
import https from 'https';
|
|
@@ -13,13 +12,13 @@ import { ServerRequest } from './server/request.js';
|
|
|
13
12
|
import { WebSocketServer } from 'ws';
|
|
14
13
|
declare type ListenArgs = any[];
|
|
15
14
|
/**
|
|
16
|
-
*
|
|
15
|
+
* HTTP and WebSocket server class.
|
|
17
16
|
*/
|
|
18
17
|
export declare class Server {
|
|
19
18
|
/**
|
|
20
19
|
* Application this server handles.
|
|
21
20
|
*/
|
|
22
|
-
app:
|
|
21
|
+
app: MojoApp;
|
|
23
22
|
/**
|
|
24
23
|
* Limit the amount of time the parser will wait to receive the complete HTTP headers, defaults to `60000`
|
|
25
24
|
* (60 seconds).
|
|
@@ -51,7 +50,7 @@ export declare class Server {
|
|
|
51
50
|
_servers: Array<http.Server | https.Server>;
|
|
52
51
|
_quiet: boolean;
|
|
53
52
|
_workers: number;
|
|
54
|
-
constructor(app:
|
|
53
|
+
constructor(app: MojoApp, options?: ServerOptions);
|
|
55
54
|
/**
|
|
56
55
|
* Turn URL into listen arguments.
|
|
57
56
|
*/
|
package/lib/server.js
CHANGED
|
@@ -19,7 +19,7 @@ const certs = Path.currentFile().dirname().sibling('vendor', 'certs');
|
|
|
19
19
|
const devCert = certs.child('development.crt').toString();
|
|
20
20
|
const devKey = certs.child('development.key').toString();
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
22
|
+
* HTTP and WebSocket server class.
|
|
23
23
|
*/
|
|
24
24
|
export class Server {
|
|
25
25
|
constructor(app, options = {}) {
|
|
@@ -140,7 +140,7 @@ export class Server {
|
|
|
140
140
|
_handleRequest(req, raw) {
|
|
141
141
|
const app = this.app;
|
|
142
142
|
const socket = req.socket;
|
|
143
|
-
const ctx = app.newContext(this._prepareRequest(req, socket, false), new ServerResponse(
|
|
143
|
+
const ctx = app.newContext(this._prepareRequest(req, socket, false), new ServerResponse((res, body) => {
|
|
144
144
|
_sendResponse(res, body, raw);
|
|
145
145
|
}));
|
|
146
146
|
raw.on('finish', () => ctx.emit('finish'));
|
|
@@ -148,7 +148,7 @@ export class Server {
|
|
|
148
148
|
}
|
|
149
149
|
_handleUpgrade(wss, req, socket, head) {
|
|
150
150
|
const app = this.app;
|
|
151
|
-
const ctx = app.newContext(this._prepareRequest(req, socket, true), new ServerResponse(
|
|
151
|
+
const ctx = app.newContext(this._prepareRequest(req, socket, true), new ServerResponse((res, body) => {
|
|
152
152
|
_sendResponse(res, body, new http.ServerResponse(req));
|
|
153
153
|
}));
|
|
154
154
|
app
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { Context } from './context.js';
|
|
|
9
9
|
import type { ValidatorResult } from './validator/result.js';
|
|
10
10
|
import type { Agent } from 'http';
|
|
11
11
|
import type { Readable } from 'stream';
|
|
12
|
+
import type { Stream } from 'stream';
|
|
12
13
|
import type { CookieJar } from 'tough-cookie';
|
|
13
14
|
import type { URL } from 'url';
|
|
14
15
|
export declare type Expand<T> = T extends infer O ? {
|
|
@@ -98,6 +99,7 @@ export interface ServerRequestOptions {
|
|
|
98
99
|
reverseProxy: boolean;
|
|
99
100
|
url?: string;
|
|
100
101
|
}
|
|
102
|
+
export declare type ServerResponseBody = string | Buffer | Stream | undefined;
|
|
101
103
|
export interface UserAgentOptions {
|
|
102
104
|
baseURL?: string | URL;
|
|
103
105
|
cookieJar?: CookieJar;
|
|
@@ -134,4 +136,17 @@ export interface ValidationError {
|
|
|
134
136
|
schemaPath: string;
|
|
135
137
|
}
|
|
136
138
|
export declare type ValidatorFunction = (data: JSONObject) => ValidatorResult;
|
|
139
|
+
interface WebSocketBackendEvents {
|
|
140
|
+
close: () => void;
|
|
141
|
+
error: (this: WebSocketBackend, error: Error) => void;
|
|
142
|
+
message: (this: WebSocketBackend, message: Buffer, isBinary: boolean) => void;
|
|
143
|
+
ping: () => void;
|
|
144
|
+
pong: () => void;
|
|
145
|
+
}
|
|
146
|
+
export interface WebSocketBackend {
|
|
147
|
+
close: (code?: number, reason?: string | Buffer) => void;
|
|
148
|
+
on: <T extends keyof WebSocketBackendEvents>(event: T, listener: WebSocketBackendEvents[T]) => this;
|
|
149
|
+
ping: (data?: any, mask?: boolean, cb?: (err: Error) => void) => void;
|
|
150
|
+
send: (data: any, cb?: (err?: Error) => void) => void;
|
|
151
|
+
}
|
|
137
152
|
export {};
|
package/lib/util.d.ts
CHANGED
package/lib/util.js
CHANGED
|
@@ -1,38 +1,98 @@
|
|
|
1
|
+
import stream from 'stream';
|
|
1
2
|
import { setTimeout } from 'timers/promises';
|
|
2
3
|
import Path from '@mojojs/path';
|
|
3
4
|
import Template from '@mojojs/template';
|
|
4
5
|
import chalk from 'chalk';
|
|
5
6
|
export { SafeString } from '@mojojs/template';
|
|
7
|
+
// Unmarked codes are from RFC 7231
|
|
8
|
+
export const httpStatusMessages = {
|
|
9
|
+
100: 'Continue',
|
|
10
|
+
101: 'Switching Protocols',
|
|
11
|
+
102: 'Processing',
|
|
12
|
+
103: 'Early Hints',
|
|
13
|
+
200: 'OK',
|
|
14
|
+
201: 'Created',
|
|
15
|
+
202: 'Accepted',
|
|
16
|
+
203: 'Non-Authoritative Information',
|
|
17
|
+
204: 'No Content',
|
|
18
|
+
205: 'Reset Content',
|
|
19
|
+
206: 'Partial Content',
|
|
20
|
+
207: 'Multi-Status',
|
|
21
|
+
208: 'Already Reported',
|
|
22
|
+
226: 'IM Used',
|
|
23
|
+
300: 'Multiple Choices',
|
|
24
|
+
301: 'Moved Permanently',
|
|
25
|
+
302: 'Found',
|
|
26
|
+
303: 'See Other',
|
|
27
|
+
304: 'Not Modified',
|
|
28
|
+
305: 'Use Proxy',
|
|
29
|
+
307: 'Temporary Redirect',
|
|
30
|
+
308: 'Permanent Redirect',
|
|
31
|
+
400: 'Bad Request',
|
|
32
|
+
401: 'Unauthorized',
|
|
33
|
+
402: 'Payment Required',
|
|
34
|
+
403: 'Forbidden',
|
|
35
|
+
404: 'Not Found',
|
|
36
|
+
405: 'Method Not Allowed',
|
|
37
|
+
406: 'Not Acceptable',
|
|
38
|
+
407: 'Proxy Authentication Required',
|
|
39
|
+
408: 'Request Timeout',
|
|
40
|
+
409: 'Conflict',
|
|
41
|
+
410: 'Gone',
|
|
42
|
+
411: 'Length Required',
|
|
43
|
+
412: 'Precondition Failed',
|
|
44
|
+
413: 'Request Entity Too Large',
|
|
45
|
+
414: 'Request-URI Too Long',
|
|
46
|
+
415: 'Unsupported Media Type',
|
|
47
|
+
416: 'Request Range Not Satisfiable',
|
|
48
|
+
417: 'Expectation Failed',
|
|
49
|
+
418: "I'm a teapot",
|
|
50
|
+
421: 'Misdirected Request',
|
|
51
|
+
422: 'Unprocessable Entity',
|
|
52
|
+
423: 'Locked',
|
|
53
|
+
424: 'Failed Dependency',
|
|
54
|
+
425: 'Too Early',
|
|
55
|
+
426: 'Upgrade Required',
|
|
56
|
+
428: 'Precondition Required',
|
|
57
|
+
429: 'Too Many Requests',
|
|
58
|
+
431: 'Request Header Fields Too Large',
|
|
59
|
+
451: 'Unavailable For Legal Reasons',
|
|
60
|
+
500: 'Internal Server Error',
|
|
61
|
+
501: 'Not Implemented',
|
|
62
|
+
502: 'Bad Gateway',
|
|
63
|
+
503: 'Service Unavailable',
|
|
64
|
+
504: 'Gateway Timeout',
|
|
65
|
+
505: 'HTTP Version Not Supported',
|
|
66
|
+
506: 'Variant Also Negotiates',
|
|
67
|
+
507: 'Insufficient Storage',
|
|
68
|
+
508: 'Loop Detected',
|
|
69
|
+
509: 'Bandwidth Limit Exceeded',
|
|
70
|
+
510: 'Not Extended',
|
|
71
|
+
511: 'Network Authentication Required' // RFC 6585
|
|
72
|
+
};
|
|
6
73
|
/**
|
|
7
74
|
* Capture STDOUT/STDERR output.
|
|
8
75
|
*/
|
|
9
76
|
export async function captureOutput(fn, options = {}) {
|
|
10
77
|
if (options.stdout === undefined)
|
|
11
78
|
options.stdout = true;
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const stdoutWrite = stdout.write;
|
|
16
|
-
const stderrWrite = stderr.write;
|
|
79
|
+
const stream = new CaptureStream();
|
|
80
|
+
const stdoutWrite = process.stdout.write;
|
|
81
|
+
const stderrWrite = process.stderr.write;
|
|
17
82
|
if (options.stdout === true) {
|
|
18
|
-
stdout.write = (
|
|
19
|
-
output.push(chunk);
|
|
20
|
-
return true;
|
|
21
|
-
};
|
|
83
|
+
process.stdout.write = stdoutWrite.bind(stream);
|
|
22
84
|
}
|
|
23
85
|
if (options.stderr === true) {
|
|
24
|
-
stderr.write = (
|
|
25
|
-
output.push(chunk);
|
|
26
|
-
return true;
|
|
27
|
-
};
|
|
86
|
+
process.stderr.write = stderrWrite.bind(stream);
|
|
28
87
|
}
|
|
29
88
|
try {
|
|
30
89
|
await fn();
|
|
31
90
|
}
|
|
32
91
|
finally {
|
|
33
|
-
stdout.write = stdoutWrite;
|
|
34
|
-
stderr.write = stderrWrite;
|
|
92
|
+
process.stdout.write = stdoutWrite;
|
|
93
|
+
process.stderr.write = stderrWrite;
|
|
35
94
|
}
|
|
95
|
+
const output = stream.output;
|
|
36
96
|
return output.length > 0 && Buffer.isBuffer(output[0]) ? Buffer.concat(output) : output.join('');
|
|
37
97
|
}
|
|
38
98
|
/**
|
|
@@ -214,4 +274,14 @@ export function termEscape(value) {
|
|
|
214
274
|
/^[\x00-\x09\x0b-\x1f\x7f\x80-\x9f]$/.test(char) ? '\\x' + char.charCodeAt(0).toString(16).padStart(2, '0') : char)
|
|
215
275
|
.join('');
|
|
216
276
|
}
|
|
277
|
+
class CaptureStream extends stream.Writable {
|
|
278
|
+
constructor() {
|
|
279
|
+
super(...arguments);
|
|
280
|
+
this.output = [];
|
|
281
|
+
}
|
|
282
|
+
_write(chunk, enc, next) {
|
|
283
|
+
this.output.push(chunk);
|
|
284
|
+
next();
|
|
285
|
+
}
|
|
286
|
+
}
|
|
217
287
|
//# sourceMappingURL=util.js.map
|
package/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAe5C
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAe5C,mCAAmC;AACnC,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,+BAA+B;IACpC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,4BAA4B;IACjC,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,iCAAiC,CAAC,WAAW;CACnD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAA8B,EAC9B,UAAgD,EAAE;IAElD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAExD,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjD;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjD;IAED,IAAI;QACF,MAAM,EAAE,EAAE,CAAC;KACZ;YAAS;QACR,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;KACpC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnG,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO;KACR;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,GAAG,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,QAAgB,EAChB,SAA8B,EAAE,EAChC,UAA0B,EAAE;IAE5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,EAAE;QAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO;KACR;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QAC/B,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/F,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACjC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAsB,EAAE;IAC1D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,IAAI,GAAwB,CAAC;IAC7B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,EAAE;QACnC,GAAG,GAAG,EAAE,CAAC;KACV;SAAM;QACL,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KACtD;IAED,mCAAmC;IACnC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC;IAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,SAAS;QACT,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;SAChD;QACD,QAAQ;aACH,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SAC5D;QACD,SAAS;aACJ;YACH,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC9C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACxD;SACF;KACF;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI;QACF,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAClC;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAY,EACZ,UAA4B,EAAE;IAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAClF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAE5E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;IACnE,MAAM,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;IAEnC,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;IAC1E,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,EAAE;QACvD,WAAW,EAAE,CAAC;QACd,IAAI,WAAW,GAAG,SAAS;YAAE,SAAS;QACtC,IAAI,WAAW,GAAG,OAAO;YAAE,MAAM;QAEjC,MAAM,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7C;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,OAAe;IAC3D,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhF,IAAI,IAAI,GAAQ,KAAK,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEnE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;YAC9E,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;SACxB;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAClE,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAClC;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK;YAAE,SAAS;QAC7C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,EAAE;YACpD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK;gBAAE,SAAS;YACxD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,GAAG;iBACb,QAAQ,CAAC,IAAI,CAAC;iBACd,OAAO,EAAE;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;SACzC;KACF;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAAmB,EAAE;IAC3C,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAC3B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACxB,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;YACvD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnH,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,CAAC,GAAG,KAAK,CAAC;SACd,GAAG,CAAC,IAAI,CAAC,EAAE;IACV,4CAA4C;IAC5C,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CACnH;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,aAAc,SAAQ,MAAM,CAAC,QAAQ;IAA3C;;QACE,WAAM,GAAiB,EAAE,CAAC;IAM5B,CAAC;IAJC,MAAM,CAAC,KAAiB,EAAE,GAAW,EAAE,IAAgB;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,EAAE,CAAC;IACT,CAAC;CACF"}
|
package/lib/websocket.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
import type { JSONValue } from './types.js';
|
|
3
|
+
import type { JSONValue, WebSocketBackend } from './types.js';
|
|
4
4
|
import type { UserAgentResponse } from './user-agent/response.js';
|
|
5
|
-
import type WS from 'ws';
|
|
6
5
|
import EventEmitter from 'events';
|
|
7
6
|
interface WebSocketControlEvents {
|
|
8
|
-
close: (...args: any[]) => void;
|
|
9
|
-
ping: (...args: any[]) => void;
|
|
10
|
-
pong: (...args: any[]) => void;
|
|
7
|
+
close: (this: WebSocket, ...args: any[]) => void;
|
|
8
|
+
ping: (this: WebSocket, ...args: any[]) => void;
|
|
9
|
+
pong: (this: WebSocket, ...args: any[]) => void;
|
|
11
10
|
}
|
|
12
11
|
interface WebSocketEvents extends WebSocketControlEvents {
|
|
13
12
|
error: (this: WebSocket, error: Error) => void;
|
|
@@ -29,8 +28,8 @@ declare class WebSocket extends EventEmitter {
|
|
|
29
28
|
* JSON mode.
|
|
30
29
|
*/
|
|
31
30
|
jsonMode: boolean;
|
|
32
|
-
_ws:
|
|
33
|
-
constructor(ws:
|
|
31
|
+
_ws: WebSocketBackend;
|
|
32
|
+
constructor(ws: WebSocketBackend, handshake: UserAgentResponse | null, options: {
|
|
34
33
|
jsonMode: boolean;
|
|
35
34
|
});
|
|
36
35
|
[Symbol.asyncIterator](): AsyncIterableIterator<JSONValue | Buffer>;
|
package/lib/websocket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../src/websocket.ts"],"names":[],"mappings":"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"}
|