@hyperttp/core 1.4.4 → 1.4.6

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/utils/response.js CHANGED
@@ -57,12 +57,36 @@ const STATIC_DECODER = new TextDecoder();
57
57
  * @en Frozen empty headers object to avoid redundant allocations.
58
58
  */
59
59
  const EMPTY_HEADERS = Object.freeze({});
60
+ /**
61
+ * @ru Быстрая проверка, является ли значение ReadableStream.
62
+ * @en Fast check to determine if a value is a ReadableStream.
63
+ * @param value - The value to check.
64
+ * @returns True if the value is a ReadableStream.
65
+ */
60
66
  function isReadableStream(value) {
61
- return (typeof value === "object" && value !== null && typeof value.getReader === "function");
67
+ return (typeof value === "object" &&
68
+ value !== null &&
69
+ "getReader" in value &&
70
+ typeof value.getReader === "function");
62
71
  }
72
+ /**
73
+ * @ru Быстрая проверка, является ли значение Blob.
74
+ * @en Fast check to determine if a value is a Blob.
75
+ * @param value - The value to check.
76
+ * @returns True if the value is a Blob.
77
+ */
63
78
  function isBlob(value) {
64
79
  return typeof Blob !== "undefined" && value instanceof Blob;
65
80
  }
81
+ /**
82
+ * @ru Высокопроизводительное глубокое клонирование тела ответа.
83
+ * Избегает накладных расходов structuredClone для простых объектов.
84
+ * @en High-performance deep cloning of the response body.
85
+ * Avoids structuredClone overhead for simple objects.
86
+ * @template T - The type of the body.
87
+ * @param body - The body to clone.
88
+ * @returns The cloned body.
89
+ */
66
90
  export const cloneBodyFast = (body) => {
67
91
  if (typeof body !== "object" || body === null)
68
92
  return body;
@@ -72,6 +96,10 @@ export const cloneBodyFast = (body) => {
72
96
  typeof obj.getReader === "function") {
73
97
  return body;
74
98
  }
99
+ const proto = Object.getPrototypeOf(body);
100
+ if (proto === Object.prototype || proto === null) {
101
+ return { ...body };
102
+ }
75
103
  try {
76
104
  return structuredClone(body);
77
105
  }
@@ -105,12 +133,23 @@ export class HyperHttpResponse {
105
133
  [JSON_CACHE] = undefined;
106
134
  [ARRAY_BUFFER_CACHE] = undefined;
107
135
  _bodyConsumed = false;
136
+ _raw;
137
+ /**
138
+ * @ru Создаёт экземпляр ответа из сырых данных транспорта.
139
+ * @en Creates a response instance from raw transport data.
140
+ * @param rawResponse - The raw response from the transport layer.
141
+ */
108
142
  constructor(rawResponse) {
109
143
  this.status = rawResponse.status;
110
144
  this.headers = rawResponse.headers || EMPTY_HEADERS;
111
145
  this.body = rawResponse.body;
112
146
  this.url = rawResponse.url ?? "";
147
+ this._raw = rawResponse._raw;
113
148
  }
149
+ /**
150
+ * @ru Лениво вычитывает и кэширует тело ответа в виде ArrayBuffer и текста.
151
+ * @en Lazily consumes and caches the response body as ArrayBuffer and text.
152
+ */
114
153
  async _consumeBody() {
115
154
  if (this._bodyConsumed)
116
155
  return;
@@ -135,12 +174,7 @@ export class HyperHttpResponse {
135
174
  this[TEXT_CACHE] = STATIC_DECODER.decode(body);
136
175
  return;
137
176
  }
138
- if (CURRENT_RUNTIME === "bun" && typeof body.arrayBuffer === "function") {
139
- const buf = await body.arrayBuffer();
140
- this[ARRAY_BUFFER_CACHE] = buf;
141
- this[TEXT_CACHE] = STATIC_DECODER.decode(buf);
142
- }
143
- else if (isReadableStream(body) || isBlob(body)) {
177
+ if (isReadableStream(body) || isBlob(body)) {
144
178
  if (isReadableStream(body) && body.locked) {
145
179
  throw new Error("[Hyperttp] Stream is locked.");
146
180
  }
@@ -153,6 +187,11 @@ export class HyperHttpResponse {
153
187
  this.body = new Uint8Array(this[ARRAY_BUFFER_CACHE]);
154
188
  }
155
189
  }
190
+ /**
191
+ * @ru Возвращает тело ответа как ArrayBuffer. Результат кэшируется.
192
+ * @en Returns the response body as an ArrayBuffer. Result is cached.
193
+ * @returns Promise resolving to the ArrayBuffer or SharedArrayBuffer.
194
+ */
156
195
  async arrayBuffer() {
157
196
  if (this[ARRAY_BUFFER_CACHE] !== undefined)
158
197
  return this[ARRAY_BUFFER_CACHE];
@@ -166,8 +205,16 @@ export class HyperHttpResponse {
166
205
  if (body instanceof ArrayBuffer) {
167
206
  return (this[ARRAY_BUFFER_CACHE] = body);
168
207
  }
169
- if (CURRENT_RUNTIME === "bun" && typeof body.arrayBuffer === "function") {
170
- return (this[ARRAY_BUFFER_CACHE] = await body.arrayBuffer());
208
+ if (this._raw && body === this._raw.body && typeof this._raw.arrayBuffer === "function") {
209
+ this._bodyConsumed = true;
210
+ return (this[ARRAY_BUFFER_CACHE] = await this._raw.arrayBuffer());
211
+ }
212
+ if (CURRENT_RUNTIME === "bun" && body && typeof body === "object" && "arrayBuffer" in body) {
213
+ const bunBody = body;
214
+ if (typeof bunBody.arrayBuffer === "function") {
215
+ this._bodyConsumed = true;
216
+ return (this[ARRAY_BUFFER_CACHE] = await bunBody.arrayBuffer());
217
+ }
171
218
  }
172
219
  if (isBlob(body)) {
173
220
  return (this[ARRAY_BUFFER_CACHE] = await body.arrayBuffer());
@@ -175,6 +222,11 @@ export class HyperHttpResponse {
175
222
  await this._consumeBody();
176
223
  return this[ARRAY_BUFFER_CACHE];
177
224
  }
225
+ /**
226
+ * @ru Возвращает тело ответа как текст. Результат кэшируется.
227
+ * @en Returns the response body as text. Result is cached.
228
+ * @returns Promise resolving to the text string.
229
+ */
178
230
  async text() {
179
231
  if (this[TEXT_CACHE] !== undefined)
180
232
  return this[TEXT_CACHE];
@@ -191,9 +243,16 @@ export class HyperHttpResponse {
191
243
  this._bodyConsumed = true;
192
244
  return (this[TEXT_CACHE] = STATIC_DECODER.decode(body));
193
245
  }
194
- if (CURRENT_RUNTIME === "bun" && typeof body.text === "function") {
246
+ if (this._raw && body === this._raw.body && typeof this._raw.text === "function") {
195
247
  this._bodyConsumed = true;
196
- return (this[TEXT_CACHE] = await body.text());
248
+ return (this[TEXT_CACHE] = await this._raw.text());
249
+ }
250
+ if (CURRENT_RUNTIME === "bun" && body && typeof body === "object" && "text" in body) {
251
+ const bunBody = body;
252
+ if (typeof bunBody.text === "function") {
253
+ this._bodyConsumed = true;
254
+ return (this[TEXT_CACHE] = await bunBody.text());
255
+ }
197
256
  }
198
257
  if (isBlob(body)) {
199
258
  this._bodyConsumed = true;
@@ -202,6 +261,12 @@ export class HyperHttpResponse {
202
261
  await this._consumeBody();
203
262
  return this[TEXT_CACHE];
204
263
  }
264
+ /**
265
+ * @ru Парсит тело ответа как JSON. Результат кэшируется.
266
+ * @en Parses the response body as JSON. Result is cached.
267
+ * @template TJson - Expected type of the parsed JSON.
268
+ * @returns Promise resolving to the parsed JSON object.
269
+ */
205
270
  async json() {
206
271
  if (this[JSON_CACHE] !== undefined)
207
272
  return this[JSON_CACHE];
@@ -217,12 +282,25 @@ export class HyperHttpResponse {
217
282
  !(body instanceof ArrayBuffer)) {
218
283
  return (this[JSON_CACHE] = body);
219
284
  }
220
- if (CURRENT_RUNTIME === "bun" && typeof body.json === "function") {
221
- return (this[JSON_CACHE] = await body.json());
285
+ if (this._raw && body === this._raw.body && typeof this._raw.json === "function") {
286
+ this._bodyConsumed = true;
287
+ return (this[JSON_CACHE] = await this._raw.json());
288
+ }
289
+ if (CURRENT_RUNTIME === "bun" && body && typeof body === "object" && "json" in body) {
290
+ const bunBody = body;
291
+ if (typeof bunBody.json === "function") {
292
+ this._bodyConsumed = true;
293
+ return (this[JSON_CACHE] = await bunBody.json());
294
+ }
222
295
  }
223
296
  const str = await this.text();
224
297
  return (this[JSON_CACHE] = JSON.parse(str));
225
298
  }
299
+ /**
300
+ * @ru Отбрасывает тело ответа для освобождения ресурсов (сокета).
301
+ * @en Discards the response body to free up resources (socket).
302
+ * @returns Promise that resolves when the body is drained.
303
+ */
226
304
  async dump() {
227
305
  if (this._bodyConsumed)
228
306
  return;
@@ -236,6 +314,13 @@ export class HyperHttpResponse {
236
314
  await body.arrayBuffer();
237
315
  }
238
316
  }
317
+ /**
318
+ * @ru Создаёт глубокую изолированную копию ответа.
319
+ * Для стримов использует tee() для безопасного раздвоения потока.
320
+ * @en Creates a deep isolated copy of the response.
321
+ * Uses tee() for streams to safely duplicate the flow.
322
+ * @returns A new HttpResponse instance with cloned data.
323
+ */
239
324
  clone() {
240
325
  const cloned = Object.create(HyperHttpResponse.prototype);
241
326
  cloned.status = this.status;
@@ -243,6 +328,7 @@ export class HyperHttpResponse {
243
328
  cloned.url = this.url;
244
329
  cloned.data = this.data ? cloneBodyFast(this.data) : null;
245
330
  cloned._bodyConsumed = this._bodyConsumed;
331
+ cloned._raw = this._bodyConsumed ? undefined : this._raw;
246
332
  cloned[TEXT_CACHE] = this[TEXT_CACHE];
247
333
  cloned[JSON_CACHE] = this[JSON_CACHE];
248
334
  cloned[ARRAY_BUFFER_CACHE] = this[ARRAY_BUFFER_CACHE];
@@ -262,15 +348,36 @@ export class HyperHttpResponse {
262
348
  return cloned;
263
349
  }
264
350
  }
351
+ /**
352
+ * @ru Быстрое создание экземпляра HyperHttpResponse из сырого ответа транспорта.
353
+ * @en Fast creation of a HyperHttpResponse instance from a raw transport response.
354
+ * @param rawResponse - The raw transport response.
355
+ * @returns A new HyperHttpResponse instance.
356
+ */
265
357
  export const mapResponseFast = (rawResponse) => {
266
358
  return new HyperHttpResponse(rawResponse);
267
359
  };
360
+ /**
361
+ * @ru Быстрое создание объекта StreamResponse без overhead-а классов.
362
+ * @en Fast creation of a StreamResponse object without class overhead.
363
+ * @param rawResponse - The raw transport response.
364
+ * @returns A lightweight StreamResponse object.
365
+ */
268
366
  export const mapStreamFast = (rawResponse) => ({
269
367
  status: rawResponse.status,
270
368
  headers: rawResponse.headers,
271
369
  body: rawResponse.body,
272
370
  url: rawResponse.url ?? "",
273
371
  });
372
+ /**
373
+ * @ru Оптимизированное слияние заголовков.
374
+ * Использует ранний возврат при первой итерации цикла, что быстрее, чем Object.keys().length > 0.
375
+ * @en Optimized headers merging.
376
+ * Uses early return on the first loop iteration, which is faster than Object.keys().length > 0.
377
+ * @param base - Base headers object.
378
+ * @param override - Headers to override or add.
379
+ * @returns Merged headers object.
380
+ */
274
381
  export const mergeHeadersFast = (base, override) => {
275
382
  if (!override)
276
383
  return base;
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { TransportStreamExtensions } from "@hyperttp/types";
2
- type StreamPayload = ReadableStream<Uint8Array> & TransportStreamExtensions;
3
- type BufferPayload = Uint8Array & TransportStreamExtensions;
4
- /**
5
- * @ru Декомпрессирует буфер с поддержкой множественных кодировок.
6
- * Сначала пытается Web API, затем fallback на node:zlib для серверных сред.
7
- * @en Decompresses a buffer with support for multiple encodings.
8
- * Tries Web API first, then falls back to node:zlib for server environments.
9
- * @param body - The compressed Uint8Array.
10
- * @param encoding - The Content-Encoding header value (e.g., 'gzip, br').
11
- * @returns The decompressed buffer with dump() method attached.
12
- */
13
- export declare function decompressBuffer(body: Uint8Array, encoding: string): Promise<BufferPayload>;
14
- /**
15
- * @ru Создаёт декомпрессированный стрим с поддержкой множественных кодировок.
16
- * Использует DecompressionStream для Web и node:zlib для Node.js.
17
- * @en Creates a decompressed stream with support for multiple encodings.
18
- * Uses DecompressionStream for Web and node:zlib for Node.js.
19
- * @param body - The compressed ReadableStream.
20
- * @param encoding - The Content-Encoding header value (e.g., 'gzip, br').
21
- * @returns The decompressed stream with dump() method attached.
22
- */
23
- export declare function createDecompressStream(body: ReadableStream<Uint8Array>, encoding: string): Promise<StreamPayload>;
24
- export {};
25
- //# sourceMappingURL=decompress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../src/utils/decompress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,KAAK,aAAa,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,yBAAyB,CAAC;AAC5E,KAAK,aAAa,GAAG,UAAU,GAAG,yBAAyB,CAAC;AAiJ5D;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAsBjG;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAoCxB"}
@@ -1,208 +0,0 @@
1
- import { runtimeImport } from "../transports/manager.js";
2
- /**
3
- * @ru Флаг серверного окружения (Node.js/Bun/Deno).
4
- * @en Server environment flag (Node.js/Bun/Deno).
5
- */
6
- const IS_SERVER = typeof window === "undefined" && typeof self === "undefined";
7
- /**
8
- * @ru No-op функция для dump() буферов. Буферы не требуют освобождения ресурсов.
9
- * @en No-op function for buffer dump(). Buffers don't require resource cleanup.
10
- */
11
- const NOOP_DUMP = async () => { };
12
- /**
13
- * @ru Парсит строку Content-Encoding в массив кодировок.
14
- * Игнорирует 'identity' (без сжатия) и пустые значения.
15
- * @en Parses Content-Encoding string into an array of encodings.
16
- * Ignores 'identity' (no compression) and empty values.
17
- * @param encoding - The Content-Encoding header value.
18
- * @returns Array of normalized encoding names.
19
- */
20
- function parseEncodings(encoding) {
21
- return encoding
22
- .split(",")
23
- .map((part) => part.trim().toLowerCase())
24
- .filter((part) => part.length > 0 && part !== "identity");
25
- }
26
- /**
27
- * @ru Добавляет no-op метод dump() к буферу.
28
- * @en Attaches a no-op dump() method to the buffer.
29
- * @param buffer - The Uint8Array to extend.
30
- * @returns The buffer with dump() method attached.
31
- */
32
- function attachNoopDump(buffer) {
33
- const payload = buffer;
34
- payload.dump = NOOP_DUMP;
35
- return payload;
36
- }
37
- /**
38
- * @ru Добавляет метод dump() к стриму для отмены и освобождения сокета.
39
- * @en Attaches a dump() method to the stream for cancellation and socket release.
40
- * @param stream - The ReadableStream to extend.
41
- * @returns The stream with dump() method attached.
42
- */
43
- function attachStreamDump(stream) {
44
- const payload = stream;
45
- payload.dump = async () => {
46
- try {
47
- await payload.cancel();
48
- }
49
- catch {
50
- //
51
- }
52
- };
53
- return payload;
54
- }
55
- /**
56
- * @ru Декомпрессирует буфер с использованием Web API (DecompressionStream).
57
- * Поддерживает gzip и deflate. Возвращает исходный буфер, если декомпрессия невозможна.
58
- * @en Decompresses a buffer using Web API (DecompressionStream).
59
- * Supports gzip and deflate. Returns the original buffer if decompression is not possible.
60
- * @param input - The compressed Uint8Array.
61
- * @param encoding - The compression encoding ('gzip', 'deflate').
62
- * @returns The decompressed Uint8Array, or the original input if not applicable.
63
- */
64
- async function decompressOnceWeb(input, encoding) {
65
- const enc = encoding.trim().toLowerCase();
66
- if (typeof globalThis.DecompressionStream === "undefined")
67
- return input;
68
- const isGzip = enc === "gzip" || enc === "x-gzip";
69
- const isDeflate = enc === "deflate";
70
- if (!isGzip && !isDeflate)
71
- return input;
72
- const format = isGzip ? "gzip" : "deflate";
73
- const inputStream = new ReadableStream({
74
- start(controller) {
75
- controller.enqueue(input);
76
- controller.close();
77
- },
78
- });
79
- const decompressedStream = inputStream.pipeThrough(new globalThis.DecompressionStream(format));
80
- const reader = decompressedStream.getReader();
81
- const chunks = [];
82
- let totalLength = 0;
83
- try {
84
- while (true) {
85
- const { done, value } = await reader.read();
86
- if (done)
87
- break;
88
- if (value) {
89
- chunks.push(value);
90
- totalLength += value.byteLength;
91
- }
92
- }
93
- }
94
- finally {
95
- reader.releaseLock();
96
- }
97
- if (chunks.length === 0)
98
- return new Uint8Array(0);
99
- if (chunks.length === 1)
100
- return chunks[0];
101
- const result = new Uint8Array(totalLength);
102
- let offset = 0;
103
- for (const chunk of chunks) {
104
- result.set(chunk, offset);
105
- offset += chunk.byteLength;
106
- }
107
- return result;
108
- }
109
- /**
110
- * @ru Декомпрессирует буфер с использованием node:zlib.
111
- * Поддерживает gzip, deflate и brotli.
112
- * @en Decompresses a buffer using node:zlib.
113
- * Supports gzip, deflate, and brotli.
114
- * @param input - The compressed Uint8Array.
115
- * @param encoding - The compression encoding.
116
- * @returns The decompressed Uint8Array.
117
- */
118
- async function decompressOnceNode(input, encoding) {
119
- const enc = encoding.trim().toLowerCase();
120
- const zlib = await runtimeImport("node:zlib");
121
- const buffer = Buffer.from(input.buffer, input.byteOffset, input.byteLength);
122
- switch (enc) {
123
- case "gzip":
124
- case "x-gzip":
125
- return new Uint8Array(zlib.gunzipSync(buffer));
126
- case "deflate":
127
- return new Uint8Array(zlib.inflateSync(buffer));
128
- case "br":
129
- return new Uint8Array(zlib.brotliDecompressSync(buffer));
130
- default:
131
- return input;
132
- }
133
- }
134
- /**
135
- * @ru Декомпрессирует буфер с поддержкой множественных кодировок.
136
- * Сначала пытается Web API, затем fallback на node:zlib для серверных сред.
137
- * @en Decompresses a buffer with support for multiple encodings.
138
- * Tries Web API first, then falls back to node:zlib for server environments.
139
- * @param body - The compressed Uint8Array.
140
- * @param encoding - The Content-Encoding header value (e.g., 'gzip, br').
141
- * @returns The decompressed buffer with dump() method attached.
142
- */
143
- export async function decompressBuffer(body, encoding) {
144
- let current = body;
145
- const encodings = parseEncodings(encoding);
146
- for (let i = 0; i < encodings.length; i++) {
147
- const enc = encodings[i];
148
- const webResult = await decompressOnceWeb(current, enc);
149
- if (webResult !== current) {
150
- current = webResult;
151
- continue;
152
- }
153
- if (IS_SERVER && (enc === "br" || enc === "gzip" || enc === "deflate" || enc === "x-gzip")) {
154
- try {
155
- current = await decompressOnceNode(current, enc);
156
- }
157
- catch {
158
- continue;
159
- }
160
- }
161
- }
162
- return attachNoopDump(current);
163
- }
164
- /**
165
- * @ru Создаёт декомпрессированный стрим с поддержкой множественных кодировок.
166
- * Использует DecompressionStream для Web и node:zlib для Node.js.
167
- * @en Creates a decompressed stream with support for multiple encodings.
168
- * Uses DecompressionStream for Web and node:zlib for Node.js.
169
- * @param body - The compressed ReadableStream.
170
- * @param encoding - The Content-Encoding header value (e.g., 'gzip, br').
171
- * @returns The decompressed stream with dump() method attached.
172
- */
173
- export async function createDecompressStream(body, encoding) {
174
- const encodings = parseEncodings(encoding);
175
- if (encodings.length === 0)
176
- return attachStreamDump(body);
177
- let current = body;
178
- for (let i = 0; i < encodings.length; i++) {
179
- const enc = encodings[i];
180
- const isGzip = enc === "gzip" || enc === "x-gzip";
181
- const isDeflate = enc === "deflate";
182
- const isBrotli = enc === "br";
183
- if ((isGzip || isDeflate) && typeof globalThis.DecompressionStream !== "undefined") {
184
- const format = isGzip ? "gzip" : "deflate";
185
- current = current.pipeThrough(new globalThis.DecompressionStream(format));
186
- }
187
- else if (IS_SERVER) {
188
- try {
189
- const { Readable } = await runtimeImport("node:stream");
190
- const zlib = await runtimeImport("node:zlib");
191
- const nodeReadableStream = Readable.fromWeb(current);
192
- let transformer = nodeReadableStream;
193
- if (isGzip)
194
- transformer = nodeReadableStream.pipe(zlib.createGunzip());
195
- else if (isDeflate)
196
- transformer = nodeReadableStream.pipe(zlib.createInflate());
197
- else if (isBrotli)
198
- transformer = nodeReadableStream.pipe(zlib.createBrotliDecompress());
199
- current = Readable.toWeb(transformer);
200
- }
201
- catch {
202
- continue;
203
- }
204
- }
205
- }
206
- return attachStreamDump(current);
207
- }
208
- //# sourceMappingURL=decompress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decompress.js","sourceRoot":"","sources":["../../src/utils/decompress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD;;;GAGG;AACH,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,KAAK,WAAW,CAAC;AAE/E;;;GAGG;AACH,MAAM,SAAS,GAAG,KAAK,IAAmB,EAAE,GAAE,CAAC,CAAC;AAEhD;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ;SACZ,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAAkB;IACxC,MAAM,OAAO,GAAG,MAAuB,CAAC;IACxC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAAkC;IAC1D,MAAM,OAAO,GAAG,MAAuB,CAAC;IACxC,OAAO,CAAC,IAAI,GAAG,KAAK,IAAmB,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,EAAE;QACJ,CAAC;IACH,CAAC,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,iBAAiB,CAAC,KAAiB,EAAE,QAAgB;IAClE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,OAAO,UAAU,CAAC,mBAAmB,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAExE,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3C,MAAM,WAAW,GAAG,IAAI,cAAc,CAAa;QACjD,KAAK,CAAC,UAAU;YACd,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAChD,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAA4C,CACtF,CAAC;IAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;IAE3C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,kBAAkB,CAAC,KAAiB,EAAE,QAAgB;IACnE,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAM,WAAW,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE7E,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,KAAK,SAAS;YACZ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,KAAK,IAAI;YACP,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3D;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAgB,EAAE,QAAgB;IACvE,IAAI,OAAO,GAAe,IAAI,CAAC;IAC/B,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAE1B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,GAAG,SAAS,CAAC;YACpB,SAAS;QACX,CAAC;QAED,IAAI,SAAS,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAgC,EAChC,QAAgB;IAEhB,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,OAAO,GAA+B,IAAI,CAAC;IAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,CAAC;QAClD,MAAM,SAAS,GAAG,GAAG,KAAK,SAAS,CAAC;QACpC,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,CAAC;QAE9B,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,OAAO,UAAU,CAAC,mBAAmB,KAAK,WAAW,EAAE,CAAC;YACnF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3C,OAAO,GAAG,OAAO,CAAC,WAAW,CAC3B,IAAI,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAA4C,CACtF,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAM,aAAa,CAAC,CAAC;gBAC7D,MAAM,IAAI,GAAG,MAAM,aAAa,CAAM,WAAW,CAAC,CAAC;gBAEnD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAc,CAAC,CAAC;gBAC5D,IAAI,WAAW,GAAQ,kBAAkB,CAAC;gBAE1C,IAAI,MAAM;oBAAE,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;qBAClE,IAAI,SAAS;oBAAE,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;qBAC3E,IAAI,QAAQ;oBAAE,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;gBAExF,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAA0C,CAAC;YACjF,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}