@toa.io/extensions.exposition 1.0.0-alpha.273 → 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 +209 -0
- package/components/identity.basic/manifest.toa.yaml +1 -1
- package/components/identity.basic/operations/authenticate.js +1 -1
- package/components/identity.basic/operations/authenticate.js.map +1 -1
- package/components/identity.basic/operations/transit.js +1 -1
- package/components/identity.basic/operations/transit.js.map +1 -1
- package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.basic/operations/types.d.ts +2 -2
- package/components/identity.basic/source/authenticate.ts +1 -1
- package/components/identity.basic/source/transit.ts +1 -1
- package/components/identity.basic/source/types.ts +2 -2
- package/components/identity.credentials/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/lib/exchange.js +2 -2
- package/components/identity.federation/operations/lib/exchange.js.map +1 -1
- package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.federation/operations/types/configuration.d.ts +3 -2
- package/components/identity.federation/source/lib/exchange.ts +2 -2
- package/components/identity.federation/source/types/configuration.ts +4 -2
- package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.otp/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/operations/decrypt.js +1 -1
- package/components/identity.tokens/operations/decrypt.js.map +1 -1
- package/components/identity.tokens/operations/encrypt.js +1 -1
- package/components/identity.tokens/operations/encrypt.js.map +1 -1
- package/components/identity.tokens/operations/lib/types.d.ts +3 -2
- package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
- package/components/identity.tokens/source/authenticate.test.ts +7 -2
- package/components/identity.tokens/source/decrypt.test.ts +13 -7
- package/components/identity.tokens/source/decrypt.ts +1 -1
- package/components/identity.tokens/source/encrypt.test.ts +9 -4
- package/components/identity.tokens/source/encrypt.ts +1 -1
- package/components/identity.tokens/source/lib/types.ts +3 -2
- package/context.toa.yaml +2 -2
- package/documentation/components.md +1 -1
- package/documentation/protocol.md +24 -0
- package/features/configuration.feature +207 -0
- package/features/identity.federation.feature +15 -7
- package/features/introspection.map.feature +16 -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/Components.ts +29 -0
- package/features/steps/Gateway.ts +57 -11
- package/features/steps/Parameters.ts +4 -0
- package/features/steps/Probe.ts +34 -0
- package/package.json +4 -3
- 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/formats/yaml.test.ts +6 -0
- package/source/HTTP/formats/yaml.ts +21 -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/formats/yaml.js +15 -1
- package/transpiled/HTTP/formats/yaml.js.map +1 -1
- 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,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;
|
|
@@ -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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"}
|