@mojojs/core 0.12.3 → 0.14.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/README.md +25 -2
- package/lib/app.js +3 -3
- package/lib/app.js.map +1 -1
- package/lib/body.js +9 -8
- package/lib/body.js.map +1 -1
- package/lib/cli/create-lite-app.js +2 -3
- package/lib/cli/create-lite-app.js.map +1 -1
- package/lib/context.d.ts +4 -1
- package/lib/context.js +19 -0
- package/lib/context.js.map +1 -1
- package/lib/core.js +2 -1
- package/lib/core.js.map +1 -1
- package/lib/plugins/header-conditions.js +1 -1
- package/lib/plugins/header-conditions.js.map +1 -1
- package/lib/plugins/json-config.js +2 -2
- package/lib/plugins/json-config.js.map +1 -1
- package/lib/plugins/view-helpers.js +7 -9
- package/lib/plugins/view-helpers.js.map +1 -1
- package/lib/renderer.js +1 -1
- package/lib/renderer.js.map +1 -1
- package/lib/router/pattern.js +8 -8
- package/lib/router/pattern.js.map +1 -1
- package/lib/router.js +3 -3
- package/lib/router.js.map +1 -1
- package/lib/server/response.js +1 -1
- package/lib/server/response.js.map +1 -1
- package/lib/server.js +12 -6
- package/lib/server.js.map +1 -1
- package/lib/session.d.ts +3 -2
- package/lib/session.js +12 -3
- package/lib/session.js.map +1 -1
- package/lib/static.js +1 -1
- package/lib/static.js.map +1 -1
- package/lib/types.d.ts +12 -1
- package/lib/user-agent/cookie-jar.d.ts +9 -0
- package/lib/user-agent/cookie-jar.js +27 -0
- package/lib/user-agent/cookie-jar.js.map +1 -0
- package/lib/user-agent/mock.js +1 -0
- package/lib/user-agent/mock.js.map +1 -1
- package/lib/user-agent/test.d.ts +1 -0
- package/lib/user-agent/test.js +5 -1
- package/lib/user-agent/test.js.map +1 -1
- package/lib/user-agent/transport/http.d.ts +12 -0
- package/lib/user-agent/transport/http.js +42 -0
- package/lib/user-agent/transport/http.js.map +1 -0
- package/lib/user-agent/transport/https.d.ts +11 -0
- package/lib/user-agent/transport/https.js +22 -0
- package/lib/user-agent/transport/https.js.map +1 -0
- package/lib/user-agent/transport/ws.d.ts +5 -0
- package/lib/user-agent/transport/ws.js +21 -0
- package/lib/user-agent/transport/ws.js.map +1 -0
- package/lib/user-agent.d.ts +67 -11
- package/lib/user-agent.js +78 -85
- package/lib/user-agent.js.map +1 -1
- package/lib/util.js +8 -8
- package/lib/util.js.map +1 -1
- package/lib/websocket.js +2 -2
- package/lib/websocket.js.map +1 -1
- package/package.json +4 -4
- package/lib/validator/schema.d.ts +0 -8
- package/lib/validator/schema.js +0 -19
- package/lib/validator/schema.js.map +0 -1
package/lib/server.js
CHANGED
|
@@ -28,7 +28,7 @@ export class Server {
|
|
|
28
28
|
listen.push(parseInt(port));
|
|
29
29
|
listen.push(hostname === '*' ? '0.0.0.0' : hostname.replace(/^\[/, '').replace(/]$/, ''));
|
|
30
30
|
}
|
|
31
|
-
else if (params.has('fd')) {
|
|
31
|
+
else if (params.has('fd') === true) {
|
|
32
32
|
listen.push({ fd: parseInt(params.get('fd') ?? '') });
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
@@ -38,7 +38,7 @@ export class Server {
|
|
|
38
38
|
}
|
|
39
39
|
async start() {
|
|
40
40
|
await this.app.hooks.runHook('start', this.app);
|
|
41
|
-
if (this._cluster && cluster.isPrimary) {
|
|
41
|
+
if (this._cluster === true && cluster.isPrimary === true) {
|
|
42
42
|
for (let i = 0; i < this._workers; i++) {
|
|
43
43
|
cluster.fork();
|
|
44
44
|
}
|
|
@@ -87,8 +87,14 @@ export class Server {
|
|
|
87
87
|
const host = address.family === 'IPv6' ? `[${address.address}]` : address.address;
|
|
88
88
|
const realLocation = new URL(`${url.protocol}//${host}:${address.port}`);
|
|
89
89
|
this.urls.push(realLocation);
|
|
90
|
-
if (
|
|
91
|
-
|
|
90
|
+
if (this._quiet === false) {
|
|
91
|
+
if (this._cluster === true) {
|
|
92
|
+
console.log(`[${process.pid}] Web application available at ${realLocation}`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.log(`Web application available at ${realLocation}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
92
98
|
resolve();
|
|
93
99
|
});
|
|
94
100
|
});
|
|
@@ -104,7 +110,7 @@ export class Server {
|
|
|
104
110
|
app
|
|
105
111
|
.handleRequest(ctx)
|
|
106
112
|
.then(() => {
|
|
107
|
-
if (ctx.isAccepted) {
|
|
113
|
+
if (ctx.isAccepted === true) {
|
|
108
114
|
wss.handleUpgrade(req, socket, head, ws => {
|
|
109
115
|
ctx.handleUpgrade(new WebSocket(ws, null, { jsonMode: ctx.jsonMode }));
|
|
110
116
|
});
|
|
@@ -114,7 +120,7 @@ export class Server {
|
|
|
114
120
|
}
|
|
115
121
|
})
|
|
116
122
|
.catch(error => {
|
|
117
|
-
if (
|
|
123
|
+
if (ctx.isAccepted === false)
|
|
118
124
|
socket.destroy();
|
|
119
125
|
return ctx.exception(error);
|
|
120
126
|
});
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,EAAC,eAAe,EAAC,MAAM,IAAI,CAAC;AAYnC,MAAM,OAAO,MAAM;IAUjB,YAAY,GAAQ,EAAE,UAAyB,EAAE;QAPjD,SAAI,GAAU,EAAE,CAAC;QAGjB,aAAQ,GAAsC,EAAE,CAAC;QAK/C,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAQ;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC;QAEhC,IAAI,IAAI,KAAK,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;SAC3F;aAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/lib/session.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { App } from './app.js';
|
|
2
2
|
import type { Context } from './context.js';
|
|
3
|
+
import type { SessionData } from './types.js';
|
|
3
4
|
export declare class Session {
|
|
4
5
|
cookieName: string;
|
|
5
6
|
cookiePath: string;
|
|
@@ -11,6 +12,6 @@ export declare class Session {
|
|
|
11
12
|
constructor(app: App);
|
|
12
13
|
static decrypt(secrets: string[], encrypted: string): Promise<string | null>;
|
|
13
14
|
static encrypt(secret: string, value: string): Promise<string>;
|
|
14
|
-
load(ctx: Context): Promise<
|
|
15
|
-
store(ctx: Context, data:
|
|
15
|
+
load(ctx: Context): Promise<SessionData | null>;
|
|
16
|
+
store(ctx: Context, data: SessionData): Promise<void>;
|
|
16
17
|
}
|
package/lib/session.js
CHANGED
|
@@ -55,17 +55,26 @@ export class Session {
|
|
|
55
55
|
delete data.expires;
|
|
56
56
|
if (expires <= Math.round(Date.now() / 1000))
|
|
57
57
|
return null;
|
|
58
|
+
if (data.nextFlash !== undefined) {
|
|
59
|
+
data.flash = data.nextFlash;
|
|
60
|
+
delete data.nextFlash;
|
|
61
|
+
}
|
|
58
62
|
return data;
|
|
59
63
|
}
|
|
60
64
|
async store(ctx, data) {
|
|
61
|
-
if (typeof data.expires !== 'number')
|
|
62
|
-
|
|
65
|
+
if (typeof data.expires !== 'number') {
|
|
66
|
+
const expiration = data.expiration ?? this.expiration;
|
|
67
|
+
if (expiration > 0)
|
|
68
|
+
data.expires = Math.round(Date.now() / 1000) + expiration;
|
|
69
|
+
}
|
|
63
70
|
const app = this._app.deref();
|
|
64
71
|
if (app === undefined)
|
|
65
72
|
return;
|
|
73
|
+
delete data.flash;
|
|
66
74
|
const encrypted = await Session.encrypt(app.secrets[0], JSON.stringify(data));
|
|
75
|
+
const expires = data.expires;
|
|
67
76
|
ctx.res.setCookie(this.cookieName, encrypted, {
|
|
68
|
-
expires: new Date(
|
|
77
|
+
expires: expires === undefined ? undefined : new Date(expires * 1000),
|
|
69
78
|
httpOnly: this.httpOnly,
|
|
70
79
|
path: this.cookiePath,
|
|
71
80
|
sameSite: this.sameSite,
|
package/lib/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/lib/static.js
CHANGED
package/lib/static.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static.js","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,cAAc,CAAC;AAEhC,MAAM,OAAO,MAAM;IAAnB;QACE,WAAM,GAAG,SAAS,CAAC;QACnB,gBAAW,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IA2GlF,CAAC;IAzGC,KAAK,CAAC,QAAQ,CAAC,GAAgB;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;QAC5B,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAExD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAErF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI;gBAAE,SAAS;YAC/F,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,
|
|
1
|
+
{"version":3,"file":"static.js","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -26,6 +26,17 @@ export declare type MojoAction = (ctx: MojoContext, ...args: any[]) => any;
|
|
|
26
26
|
export declare type AnyArguments = Array<string | string[] | MojoAction | Record<string, string[] | RegExp>>;
|
|
27
27
|
export declare type RouteArguments = Array<string | MojoAction | Record<string, string[] | RegExp>>;
|
|
28
28
|
export declare type PlaceholderType = RegExp | string | string[];
|
|
29
|
+
export interface SessionData {
|
|
30
|
+
expiration?: number;
|
|
31
|
+
expires?: number;
|
|
32
|
+
flash?: {
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
};
|
|
35
|
+
nextFlash?: {
|
|
36
|
+
[key: string]: any;
|
|
37
|
+
};
|
|
38
|
+
[key: string]: any;
|
|
39
|
+
}
|
|
29
40
|
export interface AppOptions {
|
|
30
41
|
config?: Record<string, any>;
|
|
31
42
|
exceptionFormat?: string;
|
|
@@ -87,7 +98,7 @@ export interface UserAgentRequestOptions extends SharedUserAgentRequestOptions {
|
|
|
87
98
|
body?: string | Buffer | NodeJS.ReadableStream;
|
|
88
99
|
form?: Record<string, string>;
|
|
89
100
|
formData?: Record<string, string> | FormData;
|
|
90
|
-
|
|
101
|
+
insecure?: boolean;
|
|
91
102
|
json?: JSONValue;
|
|
92
103
|
method?: string;
|
|
93
104
|
servername?: string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { URL } from 'url';
|
|
3
|
+
import tough from 'tough-cookie';
|
|
4
|
+
export declare class CookieJar {
|
|
5
|
+
storage: tough.CookieJar;
|
|
6
|
+
loadCookies(url: URL): Promise<string | null>;
|
|
7
|
+
storeCookies(url: URL, header?: string[]): Promise<void>;
|
|
8
|
+
_cookieURL(currentURL: URL): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { format } from 'url';
|
|
2
|
+
import tough from 'tough-cookie';
|
|
3
|
+
export class CookieJar {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.storage = new tough.CookieJar();
|
|
6
|
+
}
|
|
7
|
+
async loadCookies(url) {
|
|
8
|
+
const cookies = await this.storage.getCookies(this._cookieURL(url));
|
|
9
|
+
if (cookies.length > 0)
|
|
10
|
+
return cookies.map(cookie => cookie.cookieString()).join('; ');
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
async storeCookies(url, header) {
|
|
14
|
+
if (header === undefined)
|
|
15
|
+
return;
|
|
16
|
+
const cookieURL = this._cookieURL(url);
|
|
17
|
+
for (const cookie of header.map(value => tough.Cookie.parse(value ?? ''))) {
|
|
18
|
+
if (cookie === undefined)
|
|
19
|
+
continue;
|
|
20
|
+
await this.storage.setCookie(cookie, cookieURL);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
_cookieURL(currentURL) {
|
|
24
|
+
return format(currentURL, { auth: false, fragment: false, search: false });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=cookie-jar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie-jar.js","sourceRoot":"","sources":["../../src/user-agent/cookie-jar.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,MAAM,OAAO,SAAS;IAAtB;QACE,YAAO,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IAqBlC,CAAC;IAnBC,KAAK,CAAC,WAAW,CAAC,GAAQ;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAQ,EAAE,MAAiB;QAC5C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE;YACzE,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAS;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjD;IACH,CAAC;IAED,UAAU,CAAC,UAAe;QACxB,OAAO,MAAM,CAAC,UAAU,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
package/lib/user-agent/mock.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/user-agent/mock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3C,MAAM,OAAO,aAAc,SAAQ,SAAS;IAG1C,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAQ,EAAE,OAA0B;QAChE,OAAO,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACtC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/user-agent/mock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAE3C,MAAM,OAAO,aAAc,SAAQ,SAAS;IAG1C,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAQ,EAAE,OAA0B;QAChE,OAAO,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO;QACtC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAClC,CAAC;CACF"}
|
package/lib/user-agent/test.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ export declare class TestUserAgent extends MockUserAgent {
|
|
|
48
48
|
get res(): UserAgentResponse;
|
|
49
49
|
sendOk(message: JSONValue | Buffer): Promise<void>;
|
|
50
50
|
statusIs(status: number): this;
|
|
51
|
+
textLike(selector: string, regex: RegExp): this;
|
|
51
52
|
typeIs(value: string): this;
|
|
52
53
|
typeLike(regex: RegExp): this;
|
|
53
54
|
websocketOk(url: string | URL, options?: UserAgentWebSocketOptions): Promise<void>;
|
package/lib/user-agent/test.js
CHANGED
|
@@ -100,7 +100,7 @@ export class TestUserAgent extends MockUserAgent {
|
|
|
100
100
|
}
|
|
101
101
|
async messageOk() {
|
|
102
102
|
if (this._messages === undefined)
|
|
103
|
-
throw new Error('No
|
|
103
|
+
throw new Error('No active WebSocket connection');
|
|
104
104
|
const message = (await this._messages.next()).value[0];
|
|
105
105
|
this.assert('ok', [true], 'message received', this.messageOk);
|
|
106
106
|
return message;
|
|
@@ -135,6 +135,10 @@ export class TestUserAgent extends MockUserAgent {
|
|
|
135
135
|
this.assert('equal', [this.res.status, status], `response status is ${status}`, this.statusIs);
|
|
136
136
|
return this;
|
|
137
137
|
}
|
|
138
|
+
textLike(selector, regex) {
|
|
139
|
+
this.assert('match', [this._html.at(selector)?.text() ?? '', regex], `similar match for selector "${selector}"`, this.textLike);
|
|
140
|
+
return this;
|
|
141
|
+
}
|
|
138
142
|
typeIs(value) {
|
|
139
143
|
this.assert('equal', [this.res.type, value], `Content-Type: ${value}`, this.typeIs);
|
|
140
144
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/user-agent/test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/user-agent/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { UserAgentRequestOptions } from '../../types.js';
|
|
3
|
+
import type { URL } from 'url';
|
|
4
|
+
import http from 'http';
|
|
5
|
+
import { UserAgentResponse } from '../response.js';
|
|
6
|
+
export declare class HTTPTransport {
|
|
7
|
+
agent: http.Agent;
|
|
8
|
+
destroy(): void;
|
|
9
|
+
request(config: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
10
|
+
_prepareOptions(config: UserAgentRequestOptions): http.RequestOptions;
|
|
11
|
+
_sendRequest(url: URL, options: http.RequestOptions, cb: (res: http.IncomingMessage) => void): http.ClientRequest;
|
|
12
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import http from 'http';
|
|
2
|
+
import Stream from 'stream';
|
|
3
|
+
import { UserAgentResponse } from '../response.js';
|
|
4
|
+
export class HTTPTransport {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.agent = new http.Agent();
|
|
7
|
+
}
|
|
8
|
+
destroy() {
|
|
9
|
+
this.agent.destroy();
|
|
10
|
+
}
|
|
11
|
+
async request(config) {
|
|
12
|
+
const options = this._prepareOptions(config);
|
|
13
|
+
return await new Promise((resolve, reject) => {
|
|
14
|
+
const req = this._sendRequest(config.url, options, res => resolve(new UserAgentResponse(res)));
|
|
15
|
+
req.once('error', reject);
|
|
16
|
+
req.once('close', reject);
|
|
17
|
+
if (config.body instanceof Buffer) {
|
|
18
|
+
req.end(config.body);
|
|
19
|
+
}
|
|
20
|
+
else if (config.body instanceof Stream) {
|
|
21
|
+
config.body.pipe(req);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
req.end();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
_prepareOptions(config) {
|
|
29
|
+
const options = { headers: config.headers, method: (config.method ?? '').toUpperCase() };
|
|
30
|
+
if (config.agent !== undefined)
|
|
31
|
+
options.agent = config.agent;
|
|
32
|
+
if (options.agent === undefined)
|
|
33
|
+
options.agent = this.agent;
|
|
34
|
+
if (config.auth !== undefined)
|
|
35
|
+
options.auth = config.auth;
|
|
36
|
+
return options;
|
|
37
|
+
}
|
|
38
|
+
_sendRequest(url, options, cb) {
|
|
39
|
+
return http.request(url, options, cb);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/user-agent/transport/http.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAEjD,MAAM,OAAO,aAAa;IAA1B;QACE,UAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;IAmC3B,CAAC;IAjCC,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA+B;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAU,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE1B,IAAI,MAAM,CAAC,IAAI,YAAY,MAAM,EAAE;gBACjC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACtB;iBAAM,IAAI,MAAM,CAAC,IAAI,YAAY,MAAM,EAAE;gBACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvB;iBAAM;gBACL,GAAG,CAAC,GAAG,EAAE,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,MAA+B;QAC7C,MAAM,OAAO,GAAwB,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC;QAC5G,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,GAAQ,EAAE,OAA4B,EAAE,EAAuC;QAC1F,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { UserAgentRequestOptions } from '../../types.js';
|
|
3
|
+
import type http from 'http';
|
|
4
|
+
import type { URL } from 'url';
|
|
5
|
+
import https from 'https';
|
|
6
|
+
import { HTTPTransport } from './http.js';
|
|
7
|
+
export declare class HTTPSTransport extends HTTPTransport {
|
|
8
|
+
agent: https.Agent;
|
|
9
|
+
_prepareOptions(config: UserAgentRequestOptions): https.RequestOptions;
|
|
10
|
+
_sendRequest(url: URL, options: https.RequestOptions, cb: (res: http.IncomingMessage) => void): http.ClientRequest;
|
|
11
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import https from 'https';
|
|
2
|
+
import { HTTPTransport } from './http.js';
|
|
3
|
+
export class HTTPSTransport extends HTTPTransport {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.agent = new https.Agent();
|
|
7
|
+
}
|
|
8
|
+
_prepareOptions(config) {
|
|
9
|
+
const options = super._prepareOptions(config);
|
|
10
|
+
if (config.ca !== undefined)
|
|
11
|
+
options.ca = config.ca;
|
|
12
|
+
if (config.insecure !== undefined)
|
|
13
|
+
options.rejectUnauthorized = config.insecure !== true;
|
|
14
|
+
if (config.servername !== undefined)
|
|
15
|
+
options.servername = config.servername;
|
|
16
|
+
return options;
|
|
17
|
+
}
|
|
18
|
+
_sendRequest(url, options, cb) {
|
|
19
|
+
return https.request(url, options, cb);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=https.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"https.js","sourceRoot":"","sources":["../../../src/user-agent/transport/https.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAC;AAExC,MAAM,OAAO,cAAe,SAAQ,aAAa;IAAjD;;QACE,UAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAa5B,CAAC;IAXC,eAAe,CAAC,MAA+B;QAC7C,MAAM,OAAO,GAAyB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;QACzF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAY,CAAC,GAAQ,EAAE,OAA6B,EAAE,EAAuC;QAC3F,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WebSocket } from '../../websocket.js';
|
|
2
|
+
import { UserAgentResponse } from '../response.js';
|
|
3
|
+
import WS from 'ws';
|
|
4
|
+
export class WSTransport {
|
|
5
|
+
async connect(config) {
|
|
6
|
+
const ws = new WS(config.url ?? '', config.protocols, { headers: config.headers });
|
|
7
|
+
return await new Promise((resolve, reject) => {
|
|
8
|
+
let handshake;
|
|
9
|
+
ws.on('upgrade', res => (handshake = new UserAgentResponse(res)));
|
|
10
|
+
ws.on('error', reject);
|
|
11
|
+
ws.on('open', () => {
|
|
12
|
+
// Workaround for a race condition where the first message arrives before the promise resolves
|
|
13
|
+
const socket = handshake.raw.socket;
|
|
14
|
+
socket.pause();
|
|
15
|
+
queueMicrotask(() => socket.resume());
|
|
16
|
+
resolve(new WebSocket(ws, handshake, { jsonMode: config.json ?? false }));
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ws.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../../src/user-agent/transport/ws.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,OAAO,CAAC,MAAiC;QAC7C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QACjF,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,SAA4B,CAAC;YACjC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEvB,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjB,8FAA8F;gBAC9F,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBACpC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,EAAC,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/lib/user-agent.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { UserAgentOptions, UserAgentRequestOptions, UserAgentWebSocketOptions } from './types.js';
|
|
3
|
+
import type { UserAgentResponse } from './user-agent/response.js';
|
|
4
|
+
import type { WebSocket } from './websocket.js';
|
|
3
5
|
import EventEmitter from 'events';
|
|
4
|
-
import http from 'http';
|
|
5
6
|
import { URL } from 'url';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
7
|
+
import { CookieJar } from './user-agent/cookie-jar.js';
|
|
8
|
+
import { HTTPTransport } from './user-agent/transport/http.js';
|
|
9
|
+
import { HTTPSTransport } from './user-agent/transport/https.js';
|
|
10
|
+
import { WSTransport } from './user-agent/transport/ws.js';
|
|
8
11
|
import FormData from 'form-data';
|
|
9
|
-
import tough from 'tough-cookie';
|
|
10
12
|
interface Upload {
|
|
11
13
|
content: string;
|
|
12
14
|
filename: string;
|
|
@@ -20,29 +22,83 @@ declare interface UserAgent {
|
|
|
20
22
|
on: <T extends keyof UserAgentEvents>(event: T, listener: UserAgentEvents[T]) => this;
|
|
21
23
|
emit: <T extends keyof UserAgentEvents>(event: T, ...args: Parameters<UserAgentEvents[T]>) => boolean;
|
|
22
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* HTTP and WebSocket user agent.
|
|
27
|
+
*/
|
|
23
28
|
declare class UserAgent extends EventEmitter {
|
|
29
|
+
/**
|
|
30
|
+
* Base URL to be used to resolve all relative request URLs with.
|
|
31
|
+
*/
|
|
24
32
|
baseUrl: string | URL | undefined;
|
|
25
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Cookie jar to use.
|
|
35
|
+
*/
|
|
36
|
+
cookieJar: CookieJar | null;
|
|
37
|
+
/**
|
|
38
|
+
* Transport backend to perform HTTP requests with.
|
|
39
|
+
*/
|
|
40
|
+
httpTransport: HTTPTransport;
|
|
41
|
+
/**
|
|
42
|
+
* Transport backend to perform HTTPS requests with.
|
|
43
|
+
*/
|
|
44
|
+
httpsTransport: HTTPSTransport;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum number of redirects to follow, default to `0`.
|
|
47
|
+
*/
|
|
26
48
|
maxRedirects: number;
|
|
49
|
+
/**
|
|
50
|
+
* Name of user agent to send with `User-Agent` header.
|
|
51
|
+
*/
|
|
27
52
|
name: string | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Transport backend to use for WebSocket connections.
|
|
55
|
+
*/
|
|
56
|
+
wsTransport: WSTransport;
|
|
28
57
|
constructor(options?: UserAgentOptions);
|
|
58
|
+
/**
|
|
59
|
+
* Destroy all active keep-alive connections.
|
|
60
|
+
*/
|
|
61
|
+
destroy(): void;
|
|
62
|
+
/**
|
|
63
|
+
* Perform `DELETE` request.
|
|
64
|
+
*/
|
|
29
65
|
delete(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
66
|
+
/**
|
|
67
|
+
* Perform `GET` request.
|
|
68
|
+
*/
|
|
30
69
|
get(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
70
|
+
/**
|
|
71
|
+
* Perform `HEAD` request.
|
|
72
|
+
*/
|
|
31
73
|
head(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
74
|
+
/**
|
|
75
|
+
* Perform `OPTIONS` request.
|
|
76
|
+
*/
|
|
32
77
|
options(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
78
|
+
/**
|
|
79
|
+
* Perform `PATCH` request.
|
|
80
|
+
*/
|
|
33
81
|
patch(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
82
|
+
/**
|
|
83
|
+
* Perform `POST` request.
|
|
84
|
+
*/
|
|
34
85
|
post(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
86
|
+
/**
|
|
87
|
+
* Perform `PUT` request.
|
|
88
|
+
*/
|
|
35
89
|
put(url: string | URL, options: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
90
|
+
/**
|
|
91
|
+
* Perform HTTP request.
|
|
92
|
+
*/
|
|
36
93
|
request(config: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
94
|
+
/**
|
|
95
|
+
* Open WebSocket connection.
|
|
96
|
+
*/
|
|
37
97
|
websocket(url: string | URL, options?: UserAgentWebSocketOptions): Promise<WebSocket>;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_filterSharedConfig(config: Record<string, any>): Record<string, any>;
|
|
98
|
+
_filterConfig(config: UserAgentRequestOptions): Promise<Record<string, any>>;
|
|
99
|
+
_filterSharedConfig(config: UserAgentRequestOptions | UserAgentWebSocketOptions): Promise<Record<string, any>>;
|
|
41
100
|
_formData(values?: Record<string, string | Upload>): FormData;
|
|
42
101
|
_handleRedirect(config: Record<string, any>, res: UserAgentResponse): Promise<UserAgentResponse>;
|
|
43
|
-
_handleResponse(config: Record<string, any>, raw: http.IncomingMessage): Promise<UserAgentResponse>;
|
|
44
|
-
_loadCookies(url: URL, config: Record<string, any>): Promise<void>;
|
|
45
102
|
_requestConfig(method: string, url?: string | URL, options?: UserAgentRequestOptions): Promise<UserAgentResponse>;
|
|
46
|
-
_storeCookies(url: URL, res: UserAgentResponse): Promise<void>;
|
|
47
103
|
}
|
|
48
104
|
export { UserAgent };
|