@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
|
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.multipart = exports.read = exports.write = void 0;
|
|
27
27
|
const node_stream_1 = require("node:stream");
|
|
28
|
+
const promises_1 = require("node:stream/promises");
|
|
28
29
|
const node_crypto_1 = require("node:crypto");
|
|
29
30
|
const contentType = __importStar(require("content-type"));
|
|
30
31
|
const openspan_1 = require("openspan");
|
|
@@ -88,11 +89,10 @@ function send(message, context, response) {
|
|
|
88
89
|
const buf = context.encoder.encode(message.body);
|
|
89
90
|
if (message.etag === true && conditional(context, response, buf))
|
|
90
91
|
return;
|
|
91
|
-
response
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
.end(buf);
|
|
92
|
+
response.setHeader('content-type', context.encoder.type);
|
|
93
|
+
response.setHeader('content-length', buf.length.toString());
|
|
94
|
+
response.appendHeader('vary', 'accept');
|
|
95
|
+
response.end(buf);
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
98
|
* Tags a reply that carries no version with a hash of the body being sent, and answers
|
|
@@ -105,54 +105,48 @@ function conditional(context, response, buf) {
|
|
|
105
105
|
response.setHeader('etag', etag);
|
|
106
106
|
if (context.request.headers['if-none-match'] !== etag)
|
|
107
107
|
return false;
|
|
108
|
-
response
|
|
109
|
-
|
|
110
|
-
.appendHeader('vary', 'accept');
|
|
108
|
+
response.setHeader('content-length', '0');
|
|
109
|
+
response.appendHeader('vary', 'accept');
|
|
111
110
|
response.statusCode = 304;
|
|
112
111
|
response.end();
|
|
113
112
|
return true;
|
|
114
113
|
}
|
|
115
114
|
function stream(message, context, response) {
|
|
116
115
|
const encoded = message.headers !== undefined && message.headers.has('content-type');
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
116
|
+
const source = encoded ? message.body : multipart(message, context, response);
|
|
117
|
+
// not awaited: a reply that streams is written long after the request is answered, and a
|
|
118
|
+
// realtime subscription outlives the span the reply was produced in
|
|
119
|
+
//
|
|
120
|
+
// `pipeline` carries an error to every stage and destroys them. `pipe` leaves the stages it
|
|
121
|
+
// built behind, and an `error` on a stream nobody listens to is an uncaught exception.
|
|
122
|
+
(0, promises_1.pipeline)(source, response)
|
|
123
|
+
.catch((exception) => openspan_1.console.warn('Message stream error', { path: context.url.pathname, exception }));
|
|
125
124
|
if (context.debug)
|
|
126
125
|
debugStream(context, response);
|
|
127
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Frames an object stream as `multipart/*`: an `ACK` part, the parts themselves, then `FIN`.
|
|
129
|
+
* The body is a `Readable`; `write` reached here by testing it.
|
|
130
|
+
*/
|
|
128
131
|
function multipart(message, context, response) {
|
|
129
132
|
if (context.encoder === null)
|
|
130
133
|
throw new exceptions_1.NotAcceptable();
|
|
131
134
|
const encoder = context.encoder;
|
|
132
135
|
response.setHeader('content-type', `${encoder.multipart}; boundary=${BOUNDARY}`);
|
|
133
|
-
|
|
134
|
-
CUT,
|
|
135
|
-
CRLF,
|
|
136
|
-
encoder.encode('ACK'),
|
|
137
|
-
CRLF,
|
|
138
|
-
CUT
|
|
139
|
-
]));
|
|
140
|
-
message.body
|
|
141
|
-
.map((part) => Buffer.concat([
|
|
142
|
-
CRLF /* indicates no boundary headers */,
|
|
143
|
-
encoder.encode(part),
|
|
144
|
-
CRLF,
|
|
145
|
-
CUT
|
|
146
|
-
]))
|
|
147
|
-
.on('end', () => response.end(Buffer.concat([
|
|
148
|
-
CRLF,
|
|
149
|
-
encoder.encode('FIN'),
|
|
150
|
-
CRLF,
|
|
151
|
-
FINALCUT
|
|
152
|
-
])))
|
|
153
|
-
.pipe(response);
|
|
136
|
+
return node_stream_1.Readable.from(frames(message.body, encoder));
|
|
154
137
|
}
|
|
155
138
|
exports.multipart = multipart;
|
|
139
|
+
async function* frames(body, encoder) {
|
|
140
|
+
yield Buffer.concat([CUT, CRLF, encoder.encode('ACK'), CRLF, CUT]);
|
|
141
|
+
for await (const part of body)
|
|
142
|
+
yield Buffer.concat([
|
|
143
|
+
CRLF /* indicates no boundary headers */,
|
|
144
|
+
encoder.encode(part),
|
|
145
|
+
CRLF,
|
|
146
|
+
CUT
|
|
147
|
+
]);
|
|
148
|
+
yield Buffer.concat([CRLF, encoder.encode('FIN'), CRLF, FINALCUT]);
|
|
149
|
+
}
|
|
156
150
|
const BOUNDARY = 'cut';
|
|
157
151
|
const CUT = Buffer.from(`--${BOUNDARY}\r\n`);
|
|
158
152
|
const CRLF = Buffer.from('\r\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,6CAAwC;AACxC,0DAA2C;AAC3C,uCAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../source/HTTP/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
import type { Readable, Writable } from 'node:stream';
|
|
5
|
+
import type { OutgoingHttpHeaders } from 'node:http';
|
|
6
|
+
import type { IncomingHttpHeaders } from 'node:http2';
|
|
7
|
+
/**
|
|
8
|
+
* What Exposition requires of a request. Both `http.IncomingMessage` and
|
|
9
|
+
* `http2.Http2ServerRequest` satisfy it, so the pipeline is written once.
|
|
10
|
+
*/
|
|
11
|
+
export interface IncomingMessage extends Readable {
|
|
12
|
+
url: string;
|
|
13
|
+
method: string;
|
|
14
|
+
complete: boolean;
|
|
15
|
+
headers: IncomingHeaders;
|
|
16
|
+
socket: {
|
|
17
|
+
remoteAddress?: string | undefined;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* What Exposition requires of a response.
|
|
22
|
+
*
|
|
23
|
+
* `setHeader` and `appendHeader` return `void` because `Http2ServerResponse` returns
|
|
24
|
+
* nothing from them, so neither can be chained.
|
|
25
|
+
*/
|
|
26
|
+
export interface ServerResponse extends Writable {
|
|
27
|
+
statusCode: number;
|
|
28
|
+
writableEnded: boolean;
|
|
29
|
+
setHeader: (name: string, value: number | string | string[]) => void;
|
|
30
|
+
appendHeader: (name: string, value: string | string[]) => void;
|
|
31
|
+
hasHeader: (name: string) => boolean;
|
|
32
|
+
writeHead: (status: number, headers?: OutgoingHttpHeaders) => ServerResponse;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* HTTP/2's header map: HTTP/1.1's, plus the pseudo-headers. `:authority` is typed here
|
|
36
|
+
* so the authority can be read without narrowing at every call site.
|
|
37
|
+
*/
|
|
38
|
+
export type IncomingHeaders = IncomingHttpHeaders;
|
|
39
|
+
/** `h2c` is cleartext HTTP/2: there is no in-process TLS to negotiate ALPN with. */
|
|
40
|
+
export type Protocol = 'h1' | 'h2c';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/HTTP/types.ts"],"names":[],"mappings":""}
|
package/transpiled/deployment.js
CHANGED
|
@@ -48,7 +48,7 @@ function deployment(_, annotation) {
|
|
|
48
48
|
ingress: { path: '/', hosts: [] },
|
|
49
49
|
probe: {
|
|
50
50
|
path: '/.ready',
|
|
51
|
-
port: HTTP_1.
|
|
51
|
+
port: HTTP_1.PROBE,
|
|
52
52
|
delay: HTTP_1.DELAY
|
|
53
53
|
}
|
|
54
54
|
};
|
|
@@ -66,14 +66,20 @@ function deployment(_, annotation) {
|
|
|
66
66
|
service.ingress.class = annotation.class;
|
|
67
67
|
if (annotation.annotations !== undefined)
|
|
68
68
|
service.ingress.annotations = annotation.annotations;
|
|
69
|
+
if (annotation.service?.annotations !== undefined)
|
|
70
|
+
service.annotations = annotation.service.annotations;
|
|
69
71
|
const properties = { authorities };
|
|
70
72
|
if (debug === true)
|
|
71
73
|
properties.debug = true;
|
|
74
|
+
if (annotation.protocol !== undefined)
|
|
75
|
+
properties.protocol = annotation.protocol;
|
|
72
76
|
service.variables.push({
|
|
73
77
|
name: 'TOA_EXPOSITION_PROPERTIES',
|
|
74
78
|
value: JSON.stringify(properties)
|
|
75
79
|
});
|
|
76
|
-
//
|
|
80
|
+
// The identity composition nested in this process connects before route discovery settles,
|
|
81
|
+
// so telemetry's probe — which tracks that composition — would report ready too early.
|
|
82
|
+
// The gateway answers for itself, on the same port telemetry would have used.
|
|
77
83
|
service.variables.push({
|
|
78
84
|
name: 'TOA_TELEMETRY_READY',
|
|
79
85
|
value: JSON.stringify(false)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgC;AAGhC,mDAAoC;AACpC,2CAAuC;AACvC,+CAA0C;AAC1C,yCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../source/deployment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgC;AAGhC,mDAAoC;AACpC,2CAAuC;AACvC,+CAA0C;AAC1C,yCAAoC;AACpC,iCAA2C;AAE3C,SAAgB,UAAU,CAAE,CAAU,EAAE,UAAuB;IAC7D,qBAAM,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,EAAE,2CAA2C,CAAC,CAAA;IAChF,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEvC,MAAM,MAAM,GAAG,IAAA,wBAAU,GAAE,CAAC,MAAM,CAAA;IAElC,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAI;QACV,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO;QAC3C,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACjC,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAK;YACX,KAAK,EAAE,YAAK;SACb;KACF,CAAA;IAED,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,UAAU,CAAC,GAAG,CAAC,EAAE,qBAAS,CAAC,CAAA;QAE9C,OAAO,CAAC,SAAU,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC5B,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,UAAU,CAAA;IAEzC,OAAO,CAAC,OAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnD,6EAA6E;IAC7E,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;QAChC,OAAO,CAAC,OAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE3C,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS;QACtC,OAAO,CAAC,OAAQ,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAA;IAEvD,IAAI,UAAU,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS;QAC/C,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAA;IAEtD,MAAM,UAAU,GAAe,EAAE,WAAW,EAAE,CAAA;IAE9C,IAAI,KAAK,KAAK,IAAI;QAChB,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;IAEzB,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;QACnC,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAE3C,OAAO,CAAC,SAAU,CAAC,IAAI,CAAC;QACtB,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;KAClC,CAAC,CAAA;IAEF,2FAA2F;IAC3F,uFAAuF;IACvF,8EAA8E;IAC9E,OAAO,CAAC,SAAU,CAAC,IAAI,CAAC;QACtB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC7B,CAAC,CAAA;IAEF,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAA;AAChC,CAAC;AAnED,gCAmEC"}
|
|
@@ -70,9 +70,9 @@ class Get extends Directive_1.Directive {
|
|
|
70
70
|
});
|
|
71
71
|
if (entry.range !== undefined)
|
|
72
72
|
headers.set('content-range', entry.range);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
// an absent content-length is what says the length is unknown; naming the encoding
|
|
74
|
+
// is redundant over HTTP/1.1 and forbidden over HTTP/2
|
|
75
|
+
if (entry.size !== null)
|
|
76
76
|
headers.set('content-length', entry.size.toString());
|
|
77
77
|
return {
|
|
78
78
|
status: entry.partial === true ? 206 : 200,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Get.js","sourceRoot":"","sources":["../../../source/directives/octets/Get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAgD;AAChD,mDAAoC;AACpC,2CAAuC;AAOvC,MAAa,GAAI,SAAQ,qBAAS;IAChB,QAAQ,GAAG,IAAI,CAAA;IAEd,OAAO,GAAsB;QAC5C,IAAI,EAAE,KAAK;KACZ,CAAA;IAEgB,SAAS,CAAoB;IACtC,OAAO,CAAY;IAE3B,YAAoB,OAAuB,EAAE,SAA6B;QACxE,KAAK,EAAE,CAAA;QAEP,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAEpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAC/C,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,IAAI,KAAK,CAAC,OAAO,KAAK,cAAc;YAClC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI;gBACnB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;;gBAEhC,MAAM,IAAI,gBAAS,CAAC,4BAA4B,CAAC,CAAA;;YAEnD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,GAAG,CAAE,OAAe,EAAE,KAAY;QAC9C,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO;YAC1C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;QAEhE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAgB,QAAQ,EAAE;YAC/D,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;gBACvB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;gBAClC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;aAC3C;SACF,CAAC,CAAA;QAEF,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,cAAc,EAAE,KAAK,CAAC,IAAI;YAC1B,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,GAAG;SAC5B,CAAC,CAAA;QAEF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAE3C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YACrB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Get.js","sourceRoot":"","sources":["../../../source/directives/octets/Get.ts"],"names":[],"mappings":"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"}
|