@toa.io/extensions.exposition 1.0.0-alpha.274 → 1.0.0-alpha.276
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/CHANGELOG.md +12 -0
- package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -1
- package/documentation/protocol.md +24 -0
- package/features/octets.cloudinary.feature +8 -2
- package/features/octets.download.feature +3 -1
- package/features/probes.feature +8 -4
- package/features/steps/Common.ts +24 -1
- package/features/steps/Gateway.ts +9 -1
- package/features/steps/Parameters.ts +4 -0
- package/features/steps/Probe.ts +34 -0
- package/package.json +3 -2
- package/readme.md +7 -13
- package/schemas/annotation.cos.yaml +11 -0
- package/source/Annotation.ts +11 -0
- package/source/HTTP/Context.ts +1 -6
- package/source/HTTP/Probe.ts +112 -0
- package/source/HTTP/Server.ts +123 -74
- package/source/HTTP/Timing.ts +1 -1
- package/source/HTTP/index.ts +2 -0
- package/source/HTTP/messages.test.ts +2 -5
- package/source/HTTP/messages.ts +38 -42
- package/source/HTTP/types.ts +39 -0
- package/source/deployment.ts +12 -4
- package/source/directives/octets/Get.ts +3 -3
- package/transpiled/Annotation.d.ts +10 -0
- package/transpiled/HTTP/Context.d.ts +1 -6
- package/transpiled/HTTP/Context.js.map +1 -1
- package/transpiled/HTTP/Probe.d.ts +36 -0
- package/transpiled/HTTP/Probe.js +117 -0
- package/transpiled/HTTP/Probe.js.map +1 -0
- package/transpiled/HTTP/Server.d.ts +11 -7
- package/transpiled/HTTP/Server.js +92 -58
- package/transpiled/HTTP/Server.js.map +1 -1
- package/transpiled/HTTP/Timing.d.ts +1 -2
- package/transpiled/HTTP/index.d.ts +2 -0
- package/transpiled/HTTP/index.js +2 -0
- package/transpiled/HTTP/index.js.map +1 -1
- package/transpiled/HTTP/messages.d.ts +8 -3
- package/transpiled/HTTP/messages.js +31 -37
- package/transpiled/HTTP/messages.js.map +1 -1
- package/transpiled/HTTP/types.d.ts +40 -0
- package/transpiled/HTTP/types.js +3 -0
- package/transpiled/HTTP/types.js.map +1 -0
- package/transpiled/deployment.js +8 -2
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/directives/octets/Get.js +3 -3
- package/transpiled/directives/octets/Get.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
3
|
import { Timing } from './Timing';
|
|
5
4
|
import { type Format } from './formats';
|
|
6
5
|
import type { OutgoingMessage } from './messages';
|
|
7
|
-
import type
|
|
6
|
+
import type { IncomingMessage } from './types';
|
|
8
7
|
export declare class Context {
|
|
9
8
|
readonly id: string;
|
|
10
9
|
readonly authority: string;
|
|
@@ -21,10 +20,6 @@ export declare class Context {
|
|
|
21
20
|
body<T>(): Promise<T>;
|
|
22
21
|
private log;
|
|
23
22
|
}
|
|
24
|
-
export interface IncomingMessage extends http.IncomingMessage {
|
|
25
|
-
url: string;
|
|
26
|
-
method: string;
|
|
27
|
-
}
|
|
28
23
|
interface Pipelines {
|
|
29
24
|
body: Array<(input: unknown) => unknown>;
|
|
30
25
|
response: Array<(output: OutgoingMessage) => void | Promise<void>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../source/HTTP/Context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../source/HTTP/Context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The readiness probe, on a port of its own.
|
|
3
|
+
*
|
|
4
|
+
* It cannot share the port the gateway serves traffic on: kubelet speaks HTTP/1.1 only, and a
|
|
5
|
+
* cleartext HTTP/2 server answers nothing else on its port — there is no ALPN to negotiate with.
|
|
6
|
+
*
|
|
7
|
+
* It is the gateway's own readiness, not the process's. The identity composition nested in this
|
|
8
|
+
* process connects before route discovery has settled, so a probe tied to that composition would
|
|
9
|
+
* report ready while the gateway still had no routes and no open port.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Probe {
|
|
12
|
+
private readonly server;
|
|
13
|
+
private readonly port;
|
|
14
|
+
private readonly path;
|
|
15
|
+
private ready;
|
|
16
|
+
private startedAt;
|
|
17
|
+
private listening;
|
|
18
|
+
private skipped;
|
|
19
|
+
constructor(port: number, path?: string);
|
|
20
|
+
listen(): Promise<void>;
|
|
21
|
+
/** The gateway is listening and has routes: answer `200`. */
|
|
22
|
+
complete(): void;
|
|
23
|
+
close(): Promise<void>;
|
|
24
|
+
private listener;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Reserved for this probe. `8001` is the Telemetry readiness probe's, and `toa export` refuses a
|
|
28
|
+
* port claimed twice — `toa mono` and a local run put every service in one process.
|
|
29
|
+
*/
|
|
30
|
+
export declare const PROBE = 8004;
|
|
31
|
+
export declare const PATH = "/.ready";
|
|
32
|
+
/**
|
|
33
|
+
* The initial delay of the readiness probe. The server does not sleep for it: whoever
|
|
34
|
+
* probes is the one that waits, and doing it here as well only delayed the process twice.
|
|
35
|
+
*/
|
|
36
|
+
export declare const DELAY = 3;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.DELAY = exports.PATH = exports.PROBE = exports.Probe = void 0;
|
|
27
|
+
const http = __importStar(require("node:http"));
|
|
28
|
+
const openspan_1 = require("openspan");
|
|
29
|
+
/**
|
|
30
|
+
* The readiness probe, on a port of its own.
|
|
31
|
+
*
|
|
32
|
+
* It cannot share the port the gateway serves traffic on: kubelet speaks HTTP/1.1 only, and a
|
|
33
|
+
* cleartext HTTP/2 server answers nothing else on its port — there is no ALPN to negotiate with.
|
|
34
|
+
*
|
|
35
|
+
* It is the gateway's own readiness, not the process's. The identity composition nested in this
|
|
36
|
+
* process connects before route discovery has settled, so a probe tied to that composition would
|
|
37
|
+
* report ready while the gateway still had no routes and no open port.
|
|
38
|
+
*/
|
|
39
|
+
class Probe {
|
|
40
|
+
server = http.createServer();
|
|
41
|
+
port;
|
|
42
|
+
path;
|
|
43
|
+
ready = false;
|
|
44
|
+
startedAt = 0;
|
|
45
|
+
listening = false;
|
|
46
|
+
skipped = false;
|
|
47
|
+
constructor(port, path = exports.PATH) {
|
|
48
|
+
this.port = port;
|
|
49
|
+
this.path = path;
|
|
50
|
+
this.server.on('request', (request, response) => this.listener(request, response));
|
|
51
|
+
}
|
|
52
|
+
async listen() {
|
|
53
|
+
this.startedAt = Date.now();
|
|
54
|
+
try {
|
|
55
|
+
await new Promise((resolve, reject) => {
|
|
56
|
+
this.server.once('error', reject);
|
|
57
|
+
this.server.listen(this.port, () => {
|
|
58
|
+
this.server.removeListener('error', reject);
|
|
59
|
+
resolve();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// processes sharing a host share the port; in a pod nothing else claims it
|
|
65
|
+
if (error?.code === 'EADDRINUSE') {
|
|
66
|
+
this.skipped = true;
|
|
67
|
+
openspan_1.console.warn('Ready probe port already in use, skipping', { port: this.port });
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
this.listening = true;
|
|
73
|
+
// a probe answers while the process runs; it must never be the reason it keeps running
|
|
74
|
+
this.server.unref();
|
|
75
|
+
}
|
|
76
|
+
/** The gateway is listening and has routes: answer `200`. */
|
|
77
|
+
complete() {
|
|
78
|
+
this.ready = true;
|
|
79
|
+
// the IPC signal is not tied to the probe: a process that gave up the shared port is
|
|
80
|
+
// still ready, and pm2 `wait_ready` would otherwise block until `listen_timeout`
|
|
81
|
+
process.send?.('ready');
|
|
82
|
+
}
|
|
83
|
+
async close() {
|
|
84
|
+
this.ready = false;
|
|
85
|
+
if (!this.listening || this.skipped)
|
|
86
|
+
return;
|
|
87
|
+
this.listening = false;
|
|
88
|
+
// keep-alive connections would otherwise hold the server handle, delaying the exit
|
|
89
|
+
this.server.closeAllConnections();
|
|
90
|
+
await new Promise((resolve) => this.server.close(() => resolve()));
|
|
91
|
+
}
|
|
92
|
+
listener(request, response) {
|
|
93
|
+
if (request.url !== this.path) {
|
|
94
|
+
response.writeHead(404).end();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (this.ready)
|
|
98
|
+
response.writeHead(200, { 'cache-control': 'no-store' }).end();
|
|
99
|
+
else {
|
|
100
|
+
const remaining = Math.ceil((Date.now() - this.startedAt) / 1000).toString();
|
|
101
|
+
response.writeHead(503, { 'retry-after': remaining }).end();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
exports.Probe = Probe;
|
|
106
|
+
/**
|
|
107
|
+
* Reserved for this probe. `8001` is the Telemetry readiness probe's, and `toa export` refuses a
|
|
108
|
+
* port claimed twice — `toa mono` and a local run put every service in one process.
|
|
109
|
+
*/
|
|
110
|
+
exports.PROBE = 8004;
|
|
111
|
+
exports.PATH = '/.ready';
|
|
112
|
+
/**
|
|
113
|
+
* The initial delay of the readiness probe. The server does not sleep for it: whoever
|
|
114
|
+
* probes is the one that waits, and doing it here as well only delayed the process twice.
|
|
115
|
+
*/
|
|
116
|
+
exports.DELAY = 3; // seconds
|
|
117
|
+
//# sourceMappingURL=Probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Probe.js","sourceRoot":"","sources":["../../source/HTTP/Probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { Connector } from '@toa.io/core';
|
|
2
2
|
import { type OutgoingMessage } from './messages';
|
|
3
3
|
import { Context } from './Context';
|
|
4
|
+
import type { Protocol } from './types';
|
|
4
5
|
export declare class Server extends Connector {
|
|
5
6
|
private readonly server;
|
|
6
7
|
private readonly properties;
|
|
7
8
|
private readonly authorities;
|
|
9
|
+
/** Tracked for the drain: `Http2Server` has no `closeIdleConnections`. */
|
|
10
|
+
private readonly sessions;
|
|
11
|
+
private readonly probe;
|
|
8
12
|
private process?;
|
|
9
|
-
private ready;
|
|
10
|
-
private startedAt;
|
|
11
13
|
private constructor();
|
|
12
14
|
static create(options: Options): Server;
|
|
13
15
|
attach(process: Processor): void;
|
|
14
16
|
protected open(): Promise<void>;
|
|
15
17
|
protected close(): Promise<void>;
|
|
18
|
+
/** A malformed HTTP/1.1 request has no framing to answer in, so the status line is written by hand. */
|
|
19
|
+
private h1;
|
|
20
|
+
/** HTTP/2 has no `clientError`: failures surface per session, per stream, or per frame. */
|
|
21
|
+
private h2;
|
|
16
22
|
private listener;
|
|
17
23
|
private serve;
|
|
18
24
|
private success;
|
|
19
25
|
private fail;
|
|
20
26
|
}
|
|
21
27
|
export declare const PORT = 8000;
|
|
22
|
-
/**
|
|
23
|
-
* The initial delay of the readiness probe. The server does not sleep for it: whoever
|
|
24
|
-
* probes is the one that waits, and doing it here as well only delayed the process twice.
|
|
25
|
-
*/
|
|
26
|
-
export declare const DELAY = 3;
|
|
27
28
|
export declare const DRAIN = 10;
|
|
28
29
|
interface Properties {
|
|
29
30
|
authorities: Record<string, string>;
|
|
@@ -31,6 +32,9 @@ interface Properties {
|
|
|
31
32
|
debug: boolean;
|
|
32
33
|
port: number;
|
|
33
34
|
drain: number;
|
|
35
|
+
protocol: Protocol;
|
|
36
|
+
/** Port of the readiness probe, which is HTTP/1.1 whatever the gateway serves. */
|
|
37
|
+
probe: number;
|
|
34
38
|
}
|
|
35
39
|
export type Options = {
|
|
36
40
|
authorities: Properties['authorities'];
|
|
@@ -26,11 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.DRAIN = exports.
|
|
29
|
+
exports.DRAIN = exports.PORT = exports.Server = void 0;
|
|
30
30
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
31
31
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
32
32
|
const node_os_1 = __importDefault(require("node:os"));
|
|
33
33
|
const http = __importStar(require("node:http"));
|
|
34
|
+
const http2 = __importStar(require("node:http2"));
|
|
34
35
|
const node_events_1 = require("node:events");
|
|
35
36
|
const promises_1 = require("node:timers/promises");
|
|
36
37
|
const openspan_1 = require("openspan");
|
|
@@ -38,25 +39,26 @@ const core_1 = require("@toa.io/core");
|
|
|
38
39
|
const messages_1 = require("./messages");
|
|
39
40
|
const exceptions_1 = require("./exceptions");
|
|
40
41
|
const Context_1 = require("./Context");
|
|
42
|
+
const Probe_1 = require("./Probe");
|
|
41
43
|
class Server extends core_1.Connector {
|
|
42
|
-
server
|
|
44
|
+
server;
|
|
43
45
|
properties;
|
|
44
46
|
authorities;
|
|
47
|
+
/** Tracked for the drain: `Http2Server` has no `closeIdleConnections`. */
|
|
48
|
+
sessions = new Set();
|
|
49
|
+
probe;
|
|
45
50
|
process;
|
|
46
|
-
ready = false;
|
|
47
|
-
startedAt = 0;
|
|
48
51
|
constructor(properties) {
|
|
49
52
|
super();
|
|
50
53
|
this.properties = properties;
|
|
51
54
|
this.authorities = Object.fromEntries(Object.entries(properties.authorities).map(([key, value]) => [value, key]));
|
|
55
|
+
this.server = instantiate(properties.protocol);
|
|
56
|
+
this.probe = new Probe_1.Probe(properties.probe);
|
|
52
57
|
this.server.on('request', (req, res) => this.listener(req, res));
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
else
|
|
58
|
-
socket.destroy();
|
|
59
|
-
});
|
|
58
|
+
if (properties.protocol === 'h1')
|
|
59
|
+
this.h1(this.server);
|
|
60
|
+
else
|
|
61
|
+
this.h2(this.server);
|
|
60
62
|
}
|
|
61
63
|
static create(options) {
|
|
62
64
|
const properties = { ...DEFAULTS, ...options };
|
|
@@ -66,39 +68,77 @@ class Server extends core_1.Connector {
|
|
|
66
68
|
this.process = process;
|
|
67
69
|
}
|
|
68
70
|
async open() {
|
|
69
|
-
|
|
71
|
+
// answers 503 from here; the gateway's dependencies have settled by the time `open` runs
|
|
72
|
+
await this.probe.listen();
|
|
70
73
|
this.server.listen(this.properties.port);
|
|
71
74
|
await (0, node_events_1.once)(this.server, 'listening');
|
|
72
75
|
openspan_1.console.info('HTTP Server is listening');
|
|
73
|
-
this.
|
|
76
|
+
this.probe.complete();
|
|
74
77
|
openspan_1.console.info('Ready');
|
|
75
|
-
process.send?.('ready');
|
|
76
78
|
}
|
|
77
79
|
async close() {
|
|
78
|
-
this.
|
|
80
|
+
await this.probe.close();
|
|
79
81
|
this.server.close();
|
|
80
|
-
|
|
82
|
+
// GOAWAY lets in-flight streams finish; `Http2Server` has no `closeIdleConnections`
|
|
83
|
+
if (this.properties.protocol === 'h1')
|
|
84
|
+
this.server.closeIdleConnections();
|
|
85
|
+
else
|
|
86
|
+
for (const session of this.sessions)
|
|
87
|
+
session.close();
|
|
81
88
|
openspan_1.console.info('Stopped accepting new connections');
|
|
82
89
|
// keep-alive clients hold connections open indefinitely, so the drain is bounded
|
|
83
90
|
await Promise.race([
|
|
84
91
|
(0, node_events_1.once)(this.server, 'close'),
|
|
85
92
|
(0, promises_1.setTimeout)(this.properties.drain, undefined, { ref: false })
|
|
86
93
|
]);
|
|
87
|
-
this.
|
|
94
|
+
if (this.properties.protocol === 'h1')
|
|
95
|
+
this.server.closeAllConnections();
|
|
96
|
+
else
|
|
97
|
+
for (const session of this.sessions)
|
|
98
|
+
session.destroy();
|
|
88
99
|
openspan_1.console.info('Stopped');
|
|
89
100
|
}
|
|
101
|
+
/** A malformed HTTP/1.1 request has no framing to answer in, so the status line is written by hand. */
|
|
102
|
+
h1(server) {
|
|
103
|
+
server.on('clientError', (error, socket) => {
|
|
104
|
+
openspan_1.console.warn('Client connection error', error);
|
|
105
|
+
if (socket.writable)
|
|
106
|
+
socket.end('HTTP/1.1 400 Bad Request\r\n\r\n');
|
|
107
|
+
else
|
|
108
|
+
socket.destroy();
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/** HTTP/2 has no `clientError`: failures surface per session, per stream, or per frame. */
|
|
112
|
+
h2(server) {
|
|
113
|
+
server.on('session', (session) => {
|
|
114
|
+
this.sessions.add(session);
|
|
115
|
+
session.on('close', () => this.sessions.delete(session));
|
|
116
|
+
});
|
|
117
|
+
server.on('sessionError', (error) => openspan_1.console.warn('Session error', error));
|
|
118
|
+
server.on('streamError', (error) => openspan_1.console.warn('Stream error', error));
|
|
119
|
+
server.on('unknownProtocol', (socket) => {
|
|
120
|
+
openspan_1.console.warn('Unknown protocol');
|
|
121
|
+
socket.destroy();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
90
124
|
listener(request, response) {
|
|
91
125
|
request.once('error', (error) => {
|
|
92
126
|
openspan_1.console.warn('Request error', errorAttributes(request, error));
|
|
93
127
|
if (!response.writableEnded)
|
|
94
128
|
response.destroy();
|
|
95
129
|
});
|
|
96
|
-
request.socket
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
130
|
+
// no listener on `request.socket`: under HTTP/2 it is the session's socket, shared by
|
|
131
|
+
// every concurrent stream, and removing listeners on it would strip the siblings'
|
|
132
|
+
const host = authorityOf(request);
|
|
133
|
+
if (host === undefined) {
|
|
134
|
+
openspan_1.console.warn('Request without an authority', errorAttributes(request, new Error('No authority')));
|
|
135
|
+
response.writeHead(400).end();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// directives and components read `host`; HTTP/2 sends `:authority` instead, and what a
|
|
139
|
+
// component sees must not depend on the protocol the request arrived over
|
|
140
|
+
request.headers.host ??= host;
|
|
141
|
+
const url = parse(request, host);
|
|
102
142
|
if (url instanceof Error) {
|
|
103
143
|
openspan_1.console.warn('Invalid request', errorAttributes(request, url));
|
|
104
144
|
response.writeHead(400).end();
|
|
@@ -108,17 +148,7 @@ class Server extends core_1.Connector {
|
|
|
108
148
|
response.writeHead(501).end();
|
|
109
149
|
return;
|
|
110
150
|
}
|
|
111
|
-
if (request.url === '/.ready') {
|
|
112
|
-
if (this.ready)
|
|
113
|
-
response.writeHead(200, { 'cache-control': 'no-store' }).end();
|
|
114
|
-
else {
|
|
115
|
-
const remaining = (Math.ceil((Date.now() - this.startedAt) / 1000)).toString();
|
|
116
|
-
response.writeHead(503, { 'retry-after': remaining }).end();
|
|
117
|
-
}
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
151
|
(0, node_assert_1.default)(this.process !== undefined, 'Request processor is not attached');
|
|
121
|
-
const host = request.headers.host;
|
|
122
152
|
const authority = this.authorities[host] ?? host;
|
|
123
153
|
// if the request carries no trace context, the trace starts here
|
|
124
154
|
const remote = trace(request.headers);
|
|
@@ -144,10 +174,7 @@ class Server extends core_1.Connector {
|
|
|
144
174
|
await this.process(context)
|
|
145
175
|
.then(this.success(context, response))
|
|
146
176
|
.catch(this.fail(context, response))
|
|
147
|
-
.finally(() =>
|
|
148
|
-
request.removeAllListeners('error');
|
|
149
|
-
request.socket.removeAllListeners('error');
|
|
150
|
-
});
|
|
177
|
+
.finally(() => request.removeAllListeners('error'));
|
|
151
178
|
});
|
|
152
179
|
}
|
|
153
180
|
success(context, response) {
|
|
@@ -169,7 +196,9 @@ class Server extends core_1.Connector {
|
|
|
169
196
|
fail(context, response) {
|
|
170
197
|
return async (exception) => {
|
|
171
198
|
try {
|
|
172
|
-
|
|
199
|
+
// Over HTTP/2 the reply is followed by RST_STREAM(NO_ERROR), which tells the client
|
|
200
|
+
// to stop sending without discarding the response — so the body is never read.
|
|
201
|
+
if (!context.request.complete && this.properties.protocol === 'h1')
|
|
173
202
|
await adam(context.request);
|
|
174
203
|
const status = exception instanceof exceptions_1.Exception ? exception.status : 500;
|
|
175
204
|
const span = (0, openspan_1.current)();
|
|
@@ -207,10 +236,26 @@ class Server extends core_1.Connector {
|
|
|
207
236
|
}
|
|
208
237
|
}
|
|
209
238
|
exports.Server = Server;
|
|
239
|
+
function instantiate(protocol) {
|
|
240
|
+
if (protocol === 'h1')
|
|
241
|
+
return http.createServer();
|
|
242
|
+
return http2.createServer({
|
|
243
|
+
// realtime pins one stream per subscription, and they all share a session
|
|
244
|
+
maxSessionMemory: SESSION_MEMORY,
|
|
245
|
+
settings: { initialWindowSize: WINDOW }
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The authority the request is addressed to. HTTP/2 carries it in `:authority` and omits
|
|
250
|
+
* `host` entirely, so reading `host` alone would leave every HTTP/2 request unattributed.
|
|
251
|
+
*/
|
|
252
|
+
function authorityOf(request) {
|
|
253
|
+
return request.headers[':authority'] ?? request.headers.host;
|
|
254
|
+
}
|
|
210
255
|
/** Parsing the URL is how a request is validated, so the `Context` is handed the result. */
|
|
211
|
-
function parse(request) {
|
|
256
|
+
function parse(request, authority) {
|
|
212
257
|
try {
|
|
213
|
-
return new URL(request.url, `https://${
|
|
258
|
+
return new URL(request.url, `https://${authority}`);
|
|
214
259
|
}
|
|
215
260
|
catch (error) {
|
|
216
261
|
return error;
|
|
@@ -236,12 +281,11 @@ function errorAttributes(request, error) {
|
|
|
236
281
|
return attributes;
|
|
237
282
|
}
|
|
238
283
|
exports.PORT = 8000;
|
|
239
|
-
/**
|
|
240
|
-
* The initial delay of the readiness probe. The server does not sleep for it: whoever
|
|
241
|
-
* probes is the one that waits, and doing it here as well only delayed the process twice.
|
|
242
|
-
*/
|
|
243
|
-
exports.DELAY = 3; // seconds
|
|
244
284
|
exports.DRAIN = 10; // seconds
|
|
285
|
+
/** Megabytes a single HTTP/2 session may hold, over Node's default of 10. */
|
|
286
|
+
const SESSION_MEMORY = 128;
|
|
287
|
+
/** Per-stream flow control window. The default 64 KiB throttles in proportion to RTT. */
|
|
288
|
+
const WINDOW = 1024 * 1024;
|
|
245
289
|
/**
|
|
246
290
|
* Extracts the remote trace context from the request headers.
|
|
247
291
|
*
|
|
@@ -262,18 +306,8 @@ const DEFAULTS = {
|
|
|
262
306
|
methods: new Set(['OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'LOCK', 'UNLOCK']),
|
|
263
307
|
debug: false,
|
|
264
308
|
port: exports.PORT,
|
|
265
|
-
drain: exports.DRAIN * 1000
|
|
309
|
+
drain: exports.DRAIN * 1000,
|
|
310
|
+
protocol: 'h1',
|
|
311
|
+
probe: Probe_1.PROBE
|
|
266
312
|
};
|
|
267
|
-
/**
|
|
268
|
-
* I'm too fucking dumb to figure out how to handle this in a better way.
|
|
269
|
-
* It can be reproduced by calling `response.destroy()` on the client side while reading
|
|
270
|
-
* an empty stream.
|
|
271
|
-
*/
|
|
272
|
-
process.on('uncaughtException', (err) => {
|
|
273
|
-
const code = err.code;
|
|
274
|
-
if (code === 'ECONNRESET' || code === 'EPIPE')
|
|
275
|
-
openspan_1.console.warn('Connection reset by peer', code);
|
|
276
|
-
else
|
|
277
|
-
throw err;
|
|
278
|
-
});
|
|
279
313
|
//# sourceMappingURL=Server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../source/HTTP/Server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Server.js","sourceRoot":"","sources":["../../source/HTTP/Server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgC;AAChC,sDAAwB;AACxB,sDAAwB;AACxB,gDAAiC;AACjC,kDAAmC;AACnC,6CAAkC;AAClC,mDAAiD;AACjD,uCAAkF;AAClF,uCAAwC;AACxC,yCAAwD;AACxD,6CAAqD;AACrD,uCAAmC;AACnC,mCAAsC;AAGtC,MAAa,MAAO,SAAQ,gBAAS;IAClB,MAAM,CAAiC;IACvC,UAAU,CAAY;IACtB,WAAW,CAAwB;IAEpD,0EAA0E;IACzD,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;IAE9C,KAAK,CAAO;IAErB,OAAO,CAAY;IAE3B,YAAqB,UAAsB;QACzC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACjH,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAExC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACrC,IAAI,CAAC,QAAQ,CAAC,GAAiC,EAAE,GAAgC,CAAC,CAAC,CAAA;QAErF,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI;YAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAA;;YAChE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAA2B,CAAC,CAAA;IAChD,CAAC;IAEM,MAAM,CAAC,MAAM,CAAE,OAAgB;QACpC,MAAM,UAAU,GAAe,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAA;QAE1D,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;IAEM,MAAM,CAAE,OAAkB;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,yFAAyF;QACzF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAA;QAEzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAExC,MAAM,IAAA,kBAAI,EAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAEpC,kBAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QAExC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;QAErB,kBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC;IAEkB,KAAK,CAAC,KAAK;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAExB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QAEnB,oFAAoF;QACpF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI;YAClC,IAAI,CAAC,MAAsB,CAAC,oBAAoB,EAAE,CAAA;;YAEnD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,KAAK,EAAE,CAAA;QAEtD,kBAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;QAEjD,iFAAiF;QACjF,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAA,kBAAI,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC1B,IAAA,qBAAU,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;SAC7D,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI;YAClC,IAAI,CAAC,MAAsB,CAAC,mBAAmB,EAAE,CAAA;;YAElD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QAExD,kBAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAED,uGAAuG;IAC/F,EAAE,CAAE,MAAmB;QAC7B,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACzC,kBAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;YAE9C,IAAI,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;;gBAC9D,MAAM,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,2FAA2F;IACnF,EAAE,CAAE,MAAyB;QACnC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC1B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAO,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;QAExE,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;YACtC,kBAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;YAChC,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,QAAQ,CAAE,OAAwB,EAAE,QAAwB;QAClE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,kBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;YAE9D,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACzB,QAAQ,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;QAEF,sFAAsF;QACtF,kFAAkF;QAElF,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;QAEjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,kBAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,eAAe,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;YAEjG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;YAE7B,OAAM;QACR,CAAC;QAED,uFAAuF;QACvF,0EAA0E;QAC1E,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAA;QAE7B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAEhC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,kBAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAE9D,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;YAE7B,OAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;YAE7B,OAAM;QACR,CAAC;QAED,IAAA,qBAAM,EAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,mCAAmC,CAAC,CAAA;QAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;QAEhD,iEAAiE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAErC,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI;YAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC;YAC/C,CAAC,CAAC,IAAA,cAAG,EAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;QAEhF,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACzB,kBAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;YAEjD,IAAI,CAAC,QAAQ,CAAC,aAAa;gBACzB,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sCAAsC;IAC9B,KAAK,CAAC,KAAK,CAAE,OAAwB,EAC3C,QAAwB,EACxB,SAAiB,EACjB,GAAQ;QACR,MAAM,kBAAO,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE;SACpE,EAAE,KAAK,IAAI,EAAE;YACZ,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,IAAA,kBAAO,GAAG,CAAC,OAAO,CAAC,CAAA;YAE7C,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YAErE,MAAM,IAAI,CAAC,OAAQ,CAAC,OAAO,CAAC;iBACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACrC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACnC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,OAAO,CAAE,OAAgB,EAAE,QAAwB;QACzD,OAAO,KAAK,EAAE,OAAwB,EAAE,EAAE;YACxC,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YAE3B,IAAI,MAAM,KAAK,SAAS;gBACtB,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;oBACvB,MAAM,GAAG,GAAG,CAAA;qBACT,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;oBACxC,MAAM,GAAG,GAAG,CAAA;qBACT,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;oBACtE,MAAM,GAAG,GAAG,CAAA;;oBAEZ,MAAM,GAAG,GAAG,CAAA;YAEhB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;YAEvB,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACzC,CAAC,CAAA;IACH,CAAC;IAEO,IAAI,CAAE,OAAgB,EAAE,QAAwB;QACtD,OAAO,KAAK,EAAE,SAAgB,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,oFAAoF;gBACpF,+EAA+E;gBAC/E,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,IAAI;oBAChE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAE7B,MAAM,MAAM,GAAG,SAAS,YAAY,sBAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;gBACtE,MAAM,IAAI,GAAG,IAAA,kBAAO,GAAE,CAAA;gBAEtB,sEAAsE;gBACtE,IAAI,MAAM,IAAI,GAAG,IAAI,IAAI,KAAK,SAAS;oBACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;gBAEvB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC5B,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAA;oBAE5B,MAAM,OAAO,GAAoB,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAA;oBAEhE,qCAAqC;oBACrC,IAAI,SAAS,YAAY,sBAAS,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS;wBACnE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;oBAErC,qCAAqC;oBACrC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;wBAC1B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAA;yBACrB,IAAI,SAAS,YAAY,wBAAW,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;wBAChE,OAAO,CAAC,IAAI;4BACV,SAAS,YAAY,sBAAS;gCAC5B,CAAC,CAAC,SAAS,CAAC,IAAI;gCAChB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAA;oBAEvE,MAAM,IAAA,gBAAK,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;gBACzC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kBAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;gBAE9C,IAAI,CAAC,QAAQ,CAAC,aAAa;oBACzB,IAAI,CAAC;wBACH,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;oBAC/B,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,yBAAyB;oBAC3B,CAAC;YACL,CAAC;QACH,CAAC,CAAA;IACH,CAAC;CACF;AA9PD,wBA8PC;AAED,SAAS,WAAW,CAAE,QAAkB;IACtC,IAAI,QAAQ,KAAK,IAAI;QACnB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;IAE5B,OAAO,KAAK,CAAC,YAAY,CAAC;QACxB,0EAA0E;QAC1E,gBAAgB,EAAE,cAAc;QAChC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE;KACxC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAE,OAAwB;IAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;AAC9D,CAAC;AAED,4FAA4F;AAC5F,SAAS,KAAK,CAAE,OAAwB,EAAE,SAAiB;IACzD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,SAAS,EAAE,CAAC,CAAA;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAc,CAAA;IACvB,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,KAAK,UAAU,IAAI,CAAE,OAAwB;IAC3C,MAAM,OAAO,GAAG,iBAAE,CAAC,iBAAiB,CAAC,iBAAE,CAAC,OAAO,CAAC,CAAA;IAEhD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAElD,MAAM,IAAA,kBAAI,EAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,SAAS,eAAe,CAAE,OAAwB,EAAE,KAAkB;IACpE,MAAM,UAAU,GAA2B;QACzC,IAAI,EAAE,OAAO,CAAC,GAAG;QACjB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAA;IAED,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAChC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IAE9B,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QACjC,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IAEhC,OAAO,UAAU,CAAA;AACnB,CAAC;AAEY,QAAA,IAAI,GAAG,IAAI,CAAA;AAEX,QAAA,KAAK,GAAG,EAAE,CAAA,CAAC,UAAU;AAElC,6EAA6E;AAC7E,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,yFAAyF;AACzF,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1B;;;;;GAKG;AACH,SAAS,KAAK,CAAE,OAAmC;IACjD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;QACzC,OAAO,IAAA,iBAAM,EAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAEpC,kDAAkD;IAClD,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ;QACtF,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAA,iBAAM,GAAE,EAAE,CAAA;IAElE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,GAAG,GAAG,gBAAgB,CAAA;AAC5B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAE/B,MAAM,QAAQ,GAAoC;IAChD,OAAO,EAAE,IAAI,GAAG,CAAS,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxG,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,YAAI;IACV,KAAK,EAAE,aAAK,GAAG,IAAI;IACnB,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,aAAK;CACb,CAAA"}
|
package/transpiled/HTTP/index.js
CHANGED
|
@@ -18,4 +18,6 @@ __exportStar(require("./Server"), exports);
|
|
|
18
18
|
__exportStar(require("./messages"), exports);
|
|
19
19
|
__exportStar(require("./exceptions"), exports);
|
|
20
20
|
__exportStar(require("./Context"), exports);
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
|
+
__exportStar(require("./Probe"), exports);
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/HTTP/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,4CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/HTTP/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,6CAA0B;AAC1B,+CAA4B;AAC5B,4CAAyB;AACzB,0CAAuB;AACvB,0CAAuB"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
2
3
|
import type { Context } from './Context';
|
|
3
|
-
import type
|
|
4
|
-
export declare function write(context: Context, response:
|
|
4
|
+
import type { ServerResponse } from './types';
|
|
5
|
+
export declare function write(context: Context, response: ServerResponse, message: OutgoingMessage): Promise<void>;
|
|
5
6
|
export declare function read(context: Context): Promise<any>;
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Frames an object stream as `multipart/*`: an `ACK` part, the parts themselves, then `FIN`.
|
|
9
|
+
* The body is a `Readable`; `write` reached here by testing it.
|
|
10
|
+
*/
|
|
11
|
+
export declare function multipart(message: OutgoingMessage, context: Context, response: ServerResponse): Readable;
|
|
7
12
|
export interface OutgoingMessage {
|
|
8
13
|
status?: number;
|
|
9
14
|
headers?: Headers;
|