@workflow/world-testing 5.0.0-beta.42 → 5.0.0-beta.43
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.
|
@@ -16177,6 +16177,18 @@ function envNumber2(name, fallback, options = {}) {
|
|
|
16177
16177
|
}
|
|
16178
16178
|
return parsed;
|
|
16179
16179
|
}
|
|
16180
|
+
function envFlag(name, fallback, env = process.env) {
|
|
16181
|
+
const raw = env[name];
|
|
16182
|
+
if (raw === void 0 || raw === "")
|
|
16183
|
+
return fallback;
|
|
16184
|
+
const normalized = raw.toLowerCase();
|
|
16185
|
+
if (normalized === "0" || normalized === "false")
|
|
16186
|
+
return false;
|
|
16187
|
+
if (normalized === "1" || normalized === "true")
|
|
16188
|
+
return true;
|
|
16189
|
+
warnOnce2(`${name}=${raw}`, `Ignoring ${name}: expected 0/1/true/false; using default ${fallback}`);
|
|
16190
|
+
return fallback;
|
|
16191
|
+
}
|
|
16180
16192
|
function getMaxEventsPerRun() {
|
|
16181
16193
|
const maxEvents = envNumber2("WORKFLOW_MAX_EVENTS", DEFAULT_MAX_EVENTS_PER_RUN, { integer: true });
|
|
16182
16194
|
return maxEvents > 0 ? maxEvents : DEFAULT_MAX_EVENTS_PER_RUN;
|
|
@@ -16191,6 +16203,7 @@ var init_env_config2 = __esm({
|
|
|
16191
16203
|
warnedEnvValues2 = /* @__PURE__ */ new Set();
|
|
16192
16204
|
__name(warnOnce2, "warnOnce");
|
|
16193
16205
|
__name(envNumber2, "envNumber");
|
|
16206
|
+
__name(envFlag, "envFlag");
|
|
16194
16207
|
DEFAULT_MAX_EVENTS_PER_RUN = 25e3;
|
|
16195
16208
|
__name(getMaxEventsPerRun, "getMaxEventsPerRun");
|
|
16196
16209
|
__name(_resetEnvWarnCacheForTests, "_resetEnvWarnCacheForTests");
|
|
@@ -16497,6 +16510,21 @@ var init_hooks2 = __esm({
|
|
|
16497
16510
|
}
|
|
16498
16511
|
});
|
|
16499
16512
|
|
|
16513
|
+
// ../world/dist/node-http-flag.js
|
|
16514
|
+
function isNodeHttpEnabled(env = process.env) {
|
|
16515
|
+
return envFlag(NODE_HTTP_ENV_VAR, NODE_HTTP_DEFAULT, env);
|
|
16516
|
+
}
|
|
16517
|
+
var NODE_HTTP_ENV_VAR, NODE_HTTP_DEFAULT;
|
|
16518
|
+
var init_node_http_flag2 = __esm({
|
|
16519
|
+
"../world/dist/node-http-flag.js"() {
|
|
16520
|
+
"use strict";
|
|
16521
|
+
init_env_config2();
|
|
16522
|
+
NODE_HTTP_ENV_VAR = "WORKFLOW_NODE_HTTP";
|
|
16523
|
+
NODE_HTTP_DEFAULT = false;
|
|
16524
|
+
__name(isNodeHttpEnabled, "isNodeHttpEnabled");
|
|
16525
|
+
}
|
|
16526
|
+
});
|
|
16527
|
+
|
|
16500
16528
|
// ../world/dist/recovery.js
|
|
16501
16529
|
async function reenqueueActiveRuns(runs, enqueue, label, namespace) {
|
|
16502
16530
|
const workflowQueuePrefix = getQueueTopicPrefix2("workflow", resolveQueueNamespace2(namespace));
|
|
@@ -16921,6 +16949,8 @@ __export(dist_exports, {
|
|
|
16921
16949
|
LegacySerializedDataSchemaV1: () => LegacySerializedDataSchemaV12,
|
|
16922
16950
|
MAX_EVENT_SLOT: () => MAX_EVENT_SLOT2,
|
|
16923
16951
|
MessageId: () => MessageId2,
|
|
16952
|
+
NODE_HTTP_DEFAULT: () => NODE_HTTP_DEFAULT,
|
|
16953
|
+
NODE_HTTP_ENV_VAR: () => NODE_HTTP_ENV_VAR,
|
|
16924
16954
|
PARENT_RUN_ID_ATTRIBUTE: () => PARENT_RUN_ID_ATTRIBUTE2,
|
|
16925
16955
|
PaginatedResponseSchema: () => PaginatedResponseSchema,
|
|
16926
16956
|
QueuePayloadSchema: () => QueuePayloadSchema2,
|
|
@@ -16960,6 +16990,7 @@ __export(dist_exports, {
|
|
|
16960
16990
|
_resetEnvWarnCacheForTests: () => _resetEnvWarnCacheForTests,
|
|
16961
16991
|
applyAttributeChanges: () => applyAttributeChanges,
|
|
16962
16992
|
entityEventClass: () => entityEventClass,
|
|
16993
|
+
envFlag: () => envFlag,
|
|
16963
16994
|
envNumber: () => envNumber2,
|
|
16964
16995
|
eventIdToSlot: () => eventIdToSlot,
|
|
16965
16996
|
getEventDataPayloadField: () => getEventDataPayloadField,
|
|
@@ -16971,6 +17002,7 @@ __export(dist_exports, {
|
|
|
16971
17002
|
isHookEventRequiringExistence: () => isHookEventRequiringExistence,
|
|
16972
17003
|
isHookLifecycleEventType: () => isHookLifecycleEventType,
|
|
16973
17004
|
isLegacySpecVersion: () => isLegacySpecVersion2,
|
|
17005
|
+
isNodeHttpEnabled: () => isNodeHttpEnabled,
|
|
16974
17006
|
isRunEventType: () => isRunEventType,
|
|
16975
17007
|
isSlotBody: () => isSlotBody,
|
|
16976
17008
|
isSlotEventId: () => isSlotEventId,
|
|
@@ -17002,6 +17034,7 @@ var init_dist6 = __esm({
|
|
|
17002
17034
|
init_env_config2();
|
|
17003
17035
|
init_events2();
|
|
17004
17036
|
init_hooks2();
|
|
17037
|
+
init_node_http_flag2();
|
|
17005
17038
|
init_queue2();
|
|
17006
17039
|
init_recovery2();
|
|
17007
17040
|
init_runs2();
|
|
@@ -20444,6 +20477,281 @@ var init_instrumentObject = __esm({
|
|
|
20444
20477
|
}
|
|
20445
20478
|
});
|
|
20446
20479
|
|
|
20480
|
+
// ../world/dist/node-http.js
|
|
20481
|
+
import { Buffer as Buffer2 } from "node:buffer";
|
|
20482
|
+
import http from "node:http";
|
|
20483
|
+
import https from "node:https";
|
|
20484
|
+
import { Transform } from "node:stream";
|
|
20485
|
+
import zlib from "node:zlib";
|
|
20486
|
+
function createNodeHttpAgents(options) {
|
|
20487
|
+
const shared = {
|
|
20488
|
+
keepAlive: true,
|
|
20489
|
+
keepAliveMsecs: options.keepAliveMs,
|
|
20490
|
+
maxSockets: options.maxSockets
|
|
20491
|
+
};
|
|
20492
|
+
return { http: new http.Agent(shared), https: new https.Agent(shared) };
|
|
20493
|
+
}
|
|
20494
|
+
function destroyNodeHttpAgents(agents) {
|
|
20495
|
+
agents.http.destroy();
|
|
20496
|
+
agents.https.destroy();
|
|
20497
|
+
}
|
|
20498
|
+
function transportError(message, code3) {
|
|
20499
|
+
return Object.assign(new Error(message), { code: code3 });
|
|
20500
|
+
}
|
|
20501
|
+
function toOutgoingHeaders(headers) {
|
|
20502
|
+
const outgoing = {};
|
|
20503
|
+
headers?.forEach((value, name) => {
|
|
20504
|
+
outgoing[name] = value;
|
|
20505
|
+
});
|
|
20506
|
+
return outgoing;
|
|
20507
|
+
}
|
|
20508
|
+
function toResponseHeaders(message) {
|
|
20509
|
+
const headers = new Headers();
|
|
20510
|
+
for (const [name, value] of Object.entries(message.headers)) {
|
|
20511
|
+
if (value === void 0)
|
|
20512
|
+
continue;
|
|
20513
|
+
if (Array.isArray(value)) {
|
|
20514
|
+
for (const entry of value)
|
|
20515
|
+
headers.append(name, entry);
|
|
20516
|
+
} else {
|
|
20517
|
+
headers.append(name, value);
|
|
20518
|
+
}
|
|
20519
|
+
}
|
|
20520
|
+
return headers;
|
|
20521
|
+
}
|
|
20522
|
+
function decodeBody(message) {
|
|
20523
|
+
const encoding = message.headers["content-encoding"]?.toLowerCase().trim();
|
|
20524
|
+
if (!encoding || encoding === "identity")
|
|
20525
|
+
return message;
|
|
20526
|
+
let decoder6;
|
|
20527
|
+
if (encoding === "gzip" || encoding === "x-gzip") {
|
|
20528
|
+
decoder6 = zlib.createGunzip(ZLIB_OPTIONS);
|
|
20529
|
+
} else if (encoding === "deflate") {
|
|
20530
|
+
decoder6 = new InflateAuto();
|
|
20531
|
+
} else if (encoding === "br") {
|
|
20532
|
+
decoder6 = zlib.createBrotliDecompress(BROTLI_OPTIONS);
|
|
20533
|
+
} else {
|
|
20534
|
+
return message;
|
|
20535
|
+
}
|
|
20536
|
+
message.on("error", (error95) => decoder6.destroy(error95));
|
|
20537
|
+
message.on("close", () => {
|
|
20538
|
+
if (message.complete)
|
|
20539
|
+
return;
|
|
20540
|
+
decoder6.destroy(transportError("socket hang up", "ECONNRESET"));
|
|
20541
|
+
});
|
|
20542
|
+
decoder6.on("close", () => {
|
|
20543
|
+
if (!message.complete)
|
|
20544
|
+
message.destroy();
|
|
20545
|
+
});
|
|
20546
|
+
return message.pipe(decoder6);
|
|
20547
|
+
}
|
|
20548
|
+
function toWebStream(source, hooks) {
|
|
20549
|
+
let closed = false;
|
|
20550
|
+
const finish = /* @__PURE__ */ __name((fn) => {
|
|
20551
|
+
if (closed)
|
|
20552
|
+
return;
|
|
20553
|
+
closed = true;
|
|
20554
|
+
hooks.done();
|
|
20555
|
+
fn();
|
|
20556
|
+
}, "finish");
|
|
20557
|
+
return new ReadableStream({
|
|
20558
|
+
start(controller) {
|
|
20559
|
+
source.on("data", (chunk) => {
|
|
20560
|
+
hooks.progress();
|
|
20561
|
+
controller.enqueue(new Uint8Array(chunk));
|
|
20562
|
+
if ((controller.desiredSize ?? 1) <= 0)
|
|
20563
|
+
source.pause();
|
|
20564
|
+
});
|
|
20565
|
+
source.on("end", () => finish(() => controller.close()));
|
|
20566
|
+
source.on("error", (error95) => finish(() => controller.error(hooks.failure(error95))));
|
|
20567
|
+
source.on("close", () => finish(() => controller.error(hooks.failure())));
|
|
20568
|
+
},
|
|
20569
|
+
pull() {
|
|
20570
|
+
source.resume();
|
|
20571
|
+
},
|
|
20572
|
+
cancel(reason) {
|
|
20573
|
+
finish(() => {
|
|
20574
|
+
});
|
|
20575
|
+
source.destroy?.(reason instanceof Error ? reason : void 0);
|
|
20576
|
+
}
|
|
20577
|
+
});
|
|
20578
|
+
}
|
|
20579
|
+
function nodeHttpFetch(url3, init = {}) {
|
|
20580
|
+
const { method = "GET", headers, body, signal, agents, headersTimeoutMs, bodyTimeoutMs } = init;
|
|
20581
|
+
const target2 = new URL(url3);
|
|
20582
|
+
const secure = target2.protocol === "https:";
|
|
20583
|
+
if (!secure && target2.protocol !== "http:") {
|
|
20584
|
+
return Promise.reject(new TypeError(`node:http transport cannot request ${target2.protocol}// URLs`));
|
|
20585
|
+
}
|
|
20586
|
+
const outgoing = toOutgoingHeaders(headers);
|
|
20587
|
+
const payload = body == null ? void 0 : typeof body === "string" ? Buffer2.from(body, "utf8") : Buffer2.from(body.buffer, body.byteOffset, body.byteLength);
|
|
20588
|
+
if (payload)
|
|
20589
|
+
outgoing["content-length"] = String(payload.byteLength);
|
|
20590
|
+
if (!("accept-encoding" in outgoing)) {
|
|
20591
|
+
outgoing["accept-encoding"] = ACCEPTED_ENCODINGS;
|
|
20592
|
+
}
|
|
20593
|
+
return new Promise((resolve3, reject) => {
|
|
20594
|
+
if (signal?.aborted) {
|
|
20595
|
+
reject(signal.reason);
|
|
20596
|
+
return;
|
|
20597
|
+
}
|
|
20598
|
+
let settled = false;
|
|
20599
|
+
let headersTimer;
|
|
20600
|
+
let bodyTimer;
|
|
20601
|
+
let teardownReason;
|
|
20602
|
+
const clearTimers = /* @__PURE__ */ __name(() => {
|
|
20603
|
+
clearTimeout(headersTimer);
|
|
20604
|
+
clearTimeout(bodyTimer);
|
|
20605
|
+
headersTimer = void 0;
|
|
20606
|
+
bodyTimer = void 0;
|
|
20607
|
+
}, "clearTimers");
|
|
20608
|
+
const request = (secure ? https : http).request(target2, {
|
|
20609
|
+
method,
|
|
20610
|
+
headers: outgoing,
|
|
20611
|
+
agent: agents ? secure ? agents.https : agents.http : void 0
|
|
20612
|
+
});
|
|
20613
|
+
const abort = /* @__PURE__ */ __name(() => {
|
|
20614
|
+
if (signal?.reason instanceof Error)
|
|
20615
|
+
teardownReason = signal.reason;
|
|
20616
|
+
request.destroy(signal?.reason);
|
|
20617
|
+
}, "abort");
|
|
20618
|
+
signal?.addEventListener("abort", abort, { once: true });
|
|
20619
|
+
const detach = /* @__PURE__ */ __name(() => {
|
|
20620
|
+
signal?.removeEventListener("abort", abort);
|
|
20621
|
+
}, "detach");
|
|
20622
|
+
const fail = /* @__PURE__ */ __name((error95) => {
|
|
20623
|
+
clearTimers();
|
|
20624
|
+
detach();
|
|
20625
|
+
if (settled)
|
|
20626
|
+
return;
|
|
20627
|
+
settled = true;
|
|
20628
|
+
reject(error95);
|
|
20629
|
+
}, "fail");
|
|
20630
|
+
if (headersTimeoutMs) {
|
|
20631
|
+
request.on("socket", () => {
|
|
20632
|
+
headersTimer = setTimeout(() => {
|
|
20633
|
+
request.destroy(transportError(`no response headers within ${headersTimeoutMs}ms`, TIMEOUT_CODE));
|
|
20634
|
+
}, headersTimeoutMs);
|
|
20635
|
+
});
|
|
20636
|
+
}
|
|
20637
|
+
request.on("error", fail);
|
|
20638
|
+
request.on("response", (message) => {
|
|
20639
|
+
clearTimeout(headersTimer);
|
|
20640
|
+
headersTimer = void 0;
|
|
20641
|
+
const status = message.statusCode ?? 0;
|
|
20642
|
+
if (status < 200 || status > 599) {
|
|
20643
|
+
request.destroy();
|
|
20644
|
+
fail(transportError(`origin returned an unusable status line (${status})`, "UNSUPPORTED_STATUS"));
|
|
20645
|
+
return;
|
|
20646
|
+
}
|
|
20647
|
+
const responseHeaders = toResponseHeaders(message);
|
|
20648
|
+
const statusText = message.statusMessage ?? "";
|
|
20649
|
+
const bodiless = NULL_BODY_STATUSES.has(status) || method.toUpperCase() === "HEAD";
|
|
20650
|
+
if (bodiless) {
|
|
20651
|
+
message.resume();
|
|
20652
|
+
clearTimers();
|
|
20653
|
+
detach();
|
|
20654
|
+
settled = true;
|
|
20655
|
+
resolve3(new Response(null, { status, statusText, headers: responseHeaders }));
|
|
20656
|
+
return;
|
|
20657
|
+
}
|
|
20658
|
+
const armBodyTimer = /* @__PURE__ */ __name(() => {
|
|
20659
|
+
if (!bodyTimeoutMs)
|
|
20660
|
+
return;
|
|
20661
|
+
clearTimeout(bodyTimer);
|
|
20662
|
+
bodyTimer = setTimeout(() => {
|
|
20663
|
+
teardownReason = transportError(`no response body progress for ${bodyTimeoutMs}ms`, TIMEOUT_CODE);
|
|
20664
|
+
request.destroy(teardownReason);
|
|
20665
|
+
}, bodyTimeoutMs);
|
|
20666
|
+
}, "armBodyTimer");
|
|
20667
|
+
armBodyTimer();
|
|
20668
|
+
const decoded = decodeBody(message);
|
|
20669
|
+
if (decoded !== message) {
|
|
20670
|
+
responseHeaders.delete("content-encoding");
|
|
20671
|
+
responseHeaders.delete("content-length");
|
|
20672
|
+
}
|
|
20673
|
+
const stream = toWebStream(decoded, {
|
|
20674
|
+
progress: armBodyTimer,
|
|
20675
|
+
done: /* @__PURE__ */ __name(() => {
|
|
20676
|
+
clearTimers();
|
|
20677
|
+
detach();
|
|
20678
|
+
}, "done"),
|
|
20679
|
+
// A deliberate teardown (body deadline, caller abort) reaches the
|
|
20680
|
+
// socket as a plain reset, so the reason we tore it down for wins over
|
|
20681
|
+
// whatever the socket reported.
|
|
20682
|
+
failure: /* @__PURE__ */ __name((cause) => teardownReason ?? cause ?? transportError("socket hang up", "ECONNRESET"), "failure")
|
|
20683
|
+
});
|
|
20684
|
+
settled = true;
|
|
20685
|
+
resolve3(new Response(stream, { status, statusText, headers: responseHeaders }));
|
|
20686
|
+
});
|
|
20687
|
+
if (payload)
|
|
20688
|
+
request.write(payload);
|
|
20689
|
+
request.end();
|
|
20690
|
+
});
|
|
20691
|
+
}
|
|
20692
|
+
var NULL_BODY_STATUSES, ACCEPTED_ENCODINGS, TIMEOUT_CODE, ZLIB_OPTIONS, BROTLI_OPTIONS, InflateAuto;
|
|
20693
|
+
var init_node_http = __esm({
|
|
20694
|
+
"../world/dist/node-http.js"() {
|
|
20695
|
+
"use strict";
|
|
20696
|
+
__name(createNodeHttpAgents, "createNodeHttpAgents");
|
|
20697
|
+
__name(destroyNodeHttpAgents, "destroyNodeHttpAgents");
|
|
20698
|
+
NULL_BODY_STATUSES = /* @__PURE__ */ new Set([204, 205, 304]);
|
|
20699
|
+
ACCEPTED_ENCODINGS = "gzip, deflate, br";
|
|
20700
|
+
TIMEOUT_CODE = "ETIMEDOUT";
|
|
20701
|
+
__name(transportError, "transportError");
|
|
20702
|
+
__name(toOutgoingHeaders, "toOutgoingHeaders");
|
|
20703
|
+
__name(toResponseHeaders, "toResponseHeaders");
|
|
20704
|
+
ZLIB_OPTIONS = {
|
|
20705
|
+
flush: zlib.constants.Z_SYNC_FLUSH,
|
|
20706
|
+
finishFlush: zlib.constants.Z_SYNC_FLUSH
|
|
20707
|
+
};
|
|
20708
|
+
BROTLI_OPTIONS = {
|
|
20709
|
+
flush: zlib.constants.BROTLI_OPERATION_FLUSH,
|
|
20710
|
+
finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH
|
|
20711
|
+
};
|
|
20712
|
+
InflateAuto = class extends Transform {
|
|
20713
|
+
static {
|
|
20714
|
+
__name(this, "InflateAuto");
|
|
20715
|
+
}
|
|
20716
|
+
inner;
|
|
20717
|
+
_transform(chunk, _encoding, callback) {
|
|
20718
|
+
if (!this.inner) {
|
|
20719
|
+
if (chunk.length === 0) {
|
|
20720
|
+
callback();
|
|
20721
|
+
return;
|
|
20722
|
+
}
|
|
20723
|
+
const inner = (chunk[0] & 15) === 8 ? zlib.createInflate(ZLIB_OPTIONS) : zlib.createInflateRaw(ZLIB_OPTIONS);
|
|
20724
|
+
inner.on("data", (decoded) => this.push(decoded));
|
|
20725
|
+
inner.on("end", () => this.push(null));
|
|
20726
|
+
inner.on("error", (error95) => this.destroy(error95));
|
|
20727
|
+
this.inner = inner;
|
|
20728
|
+
}
|
|
20729
|
+
this.inner.write(chunk, callback);
|
|
20730
|
+
}
|
|
20731
|
+
/**
|
|
20732
|
+
* Overriding `_final` keeps the readable side open past the end of the
|
|
20733
|
+
* writable one, so the last inflated bytes still reach the consumer. It is
|
|
20734
|
+
* closed by the inner stream's `end`, or here when there was no body at all.
|
|
20735
|
+
*/
|
|
20736
|
+
_final(callback) {
|
|
20737
|
+
if (this.inner) {
|
|
20738
|
+
this.inner.end();
|
|
20739
|
+
} else {
|
|
20740
|
+
this.push(null);
|
|
20741
|
+
}
|
|
20742
|
+
callback();
|
|
20743
|
+
}
|
|
20744
|
+
_destroy(error95, callback) {
|
|
20745
|
+
this.inner?.destroy();
|
|
20746
|
+
callback(error95);
|
|
20747
|
+
}
|
|
20748
|
+
};
|
|
20749
|
+
__name(decodeBody, "decodeBody");
|
|
20750
|
+
__name(toWebStream, "toWebStream");
|
|
20751
|
+
__name(nodeHttpFetch, "nodeHttpFetch");
|
|
20752
|
+
}
|
|
20753
|
+
});
|
|
20754
|
+
|
|
20447
20755
|
// ../../node_modules/.pnpm/async-sema@3.1.1/node_modules/async-sema/lib/index.js
|
|
20448
20756
|
var require_lib = __commonJS({
|
|
20449
20757
|
"../../node_modules/.pnpm/async-sema@3.1.1/node_modules/async-sema/lib/index.js"(exports) {
|
|
@@ -21704,7 +22012,7 @@ var require_tree = __commonJS({
|
|
|
21704
22012
|
var require_util = __commonJS({
|
|
21705
22013
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/util.js"(exports, module) {
|
|
21706
22014
|
"use strict";
|
|
21707
|
-
var
|
|
22015
|
+
var assert7 = __require("node:assert");
|
|
21708
22016
|
var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols();
|
|
21709
22017
|
var { IncomingMessage } = __require("node:http");
|
|
21710
22018
|
var stream = __require("node:stream");
|
|
@@ -21725,7 +22033,7 @@ var require_util = __commonJS({
|
|
|
21725
22033
|
this[kBodyUsed] = false;
|
|
21726
22034
|
}
|
|
21727
22035
|
async *[Symbol.asyncIterator]() {
|
|
21728
|
-
|
|
22036
|
+
assert7(!this[kBodyUsed], "disturbed");
|
|
21729
22037
|
this[kBodyUsed] = true;
|
|
21730
22038
|
yield* this[kBody];
|
|
21731
22039
|
}
|
|
@@ -21737,7 +22045,7 @@ var require_util = __commonJS({
|
|
|
21737
22045
|
if (isStream(body)) {
|
|
21738
22046
|
if (bodyLength(body) === 0) {
|
|
21739
22047
|
body.on("data", function() {
|
|
21740
|
-
|
|
22048
|
+
assert7(false);
|
|
21741
22049
|
});
|
|
21742
22050
|
}
|
|
21743
22051
|
if (typeof body.readableDidRead !== "boolean") {
|
|
@@ -21857,7 +22165,7 @@ var require_util = __commonJS({
|
|
|
21857
22165
|
function getHostname(host) {
|
|
21858
22166
|
if (host[0] === "[") {
|
|
21859
22167
|
const idx2 = host.indexOf("]");
|
|
21860
|
-
|
|
22168
|
+
assert7(idx2 !== -1);
|
|
21861
22169
|
return host.substring(1, idx2);
|
|
21862
22170
|
}
|
|
21863
22171
|
const idx = host.indexOf(":");
|
|
@@ -21869,7 +22177,7 @@ var require_util = __commonJS({
|
|
|
21869
22177
|
if (!host) {
|
|
21870
22178
|
return null;
|
|
21871
22179
|
}
|
|
21872
|
-
|
|
22180
|
+
assert7(typeof host === "string");
|
|
21873
22181
|
const servername = getHostname(host);
|
|
21874
22182
|
if (net2.isIP(servername)) {
|
|
21875
22183
|
return "";
|
|
@@ -22427,7 +22735,7 @@ var require_util = __commonJS({
|
|
|
22427
22735
|
function errorRequest(client, request, err) {
|
|
22428
22736
|
try {
|
|
22429
22737
|
request.onError(err);
|
|
22430
|
-
|
|
22738
|
+
assert7(request.aborted);
|
|
22431
22739
|
} catch (err2) {
|
|
22432
22740
|
client.emit("error", err2);
|
|
22433
22741
|
}
|
|
@@ -22833,7 +23141,7 @@ var require_request = __commonJS({
|
|
|
22833
23141
|
InvalidArgumentError,
|
|
22834
23142
|
NotSupportedError
|
|
22835
23143
|
} = require_errors();
|
|
22836
|
-
var
|
|
23144
|
+
var assert7 = __require("node:assert");
|
|
22837
23145
|
var {
|
|
22838
23146
|
isValidHTTPToken,
|
|
22839
23147
|
isValidHeaderValue,
|
|
@@ -23035,8 +23343,8 @@ var require_request = __commonJS({
|
|
|
23035
23343
|
}
|
|
23036
23344
|
}
|
|
23037
23345
|
onConnect(abort) {
|
|
23038
|
-
|
|
23039
|
-
|
|
23346
|
+
assert7(!this.aborted);
|
|
23347
|
+
assert7(!this.completed);
|
|
23040
23348
|
if (this.error) {
|
|
23041
23349
|
abort(this.error);
|
|
23042
23350
|
} else {
|
|
@@ -23048,8 +23356,8 @@ var require_request = __commonJS({
|
|
|
23048
23356
|
return this[kHandler].onResponseStarted?.();
|
|
23049
23357
|
}
|
|
23050
23358
|
onHeaders(statusCode, headers, resume, statusText) {
|
|
23051
|
-
|
|
23052
|
-
|
|
23359
|
+
assert7(!this.aborted);
|
|
23360
|
+
assert7(!this.completed);
|
|
23053
23361
|
if (channels.headers.hasSubscribers) {
|
|
23054
23362
|
channels.headers.publish({ request: this, response: { statusCode, headers, statusText } });
|
|
23055
23363
|
}
|
|
@@ -23060,8 +23368,8 @@ var require_request = __commonJS({
|
|
|
23060
23368
|
}
|
|
23061
23369
|
}
|
|
23062
23370
|
onData(chunk) {
|
|
23063
|
-
|
|
23064
|
-
|
|
23371
|
+
assert7(!this.aborted);
|
|
23372
|
+
assert7(!this.completed);
|
|
23065
23373
|
if (channels.bodyChunkReceived.hasSubscribers) {
|
|
23066
23374
|
channels.bodyChunkReceived.publish({ request: this, chunk });
|
|
23067
23375
|
}
|
|
@@ -23073,14 +23381,14 @@ var require_request = __commonJS({
|
|
|
23073
23381
|
}
|
|
23074
23382
|
}
|
|
23075
23383
|
onUpgrade(statusCode, headers, socket) {
|
|
23076
|
-
|
|
23077
|
-
|
|
23384
|
+
assert7(!this.aborted);
|
|
23385
|
+
assert7(!this.completed);
|
|
23078
23386
|
return this[kHandler].onUpgrade(statusCode, headers, socket);
|
|
23079
23387
|
}
|
|
23080
23388
|
onComplete(trailers) {
|
|
23081
23389
|
this.onFinally();
|
|
23082
|
-
|
|
23083
|
-
|
|
23390
|
+
assert7(!this.aborted);
|
|
23391
|
+
assert7(!this.completed);
|
|
23084
23392
|
this.completed = true;
|
|
23085
23393
|
if (channels.trailers.hasSubscribers) {
|
|
23086
23394
|
channels.trailers.publish({ request: this, trailers });
|
|
@@ -23595,7 +23903,7 @@ var require_connect = __commonJS({
|
|
|
23595
23903
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/connect.js"(exports, module) {
|
|
23596
23904
|
"use strict";
|
|
23597
23905
|
var net2 = __require("node:net");
|
|
23598
|
-
var
|
|
23906
|
+
var assert7 = __require("node:assert");
|
|
23599
23907
|
var util = require_util();
|
|
23600
23908
|
var { InvalidArgumentError } = require_errors();
|
|
23601
23909
|
var tls;
|
|
@@ -23658,7 +23966,7 @@ var require_connect = __commonJS({
|
|
|
23658
23966
|
}
|
|
23659
23967
|
servername = servername || options.servername || util.getServerName(host) || null;
|
|
23660
23968
|
const sessionKey = servername || hostname5;
|
|
23661
|
-
|
|
23969
|
+
assert7(sessionKey);
|
|
23662
23970
|
const session = customSession || sessionCache.get(sessionKey) || null;
|
|
23663
23971
|
port = port || 443;
|
|
23664
23972
|
socket = tls.connect({
|
|
@@ -23678,7 +23986,7 @@ var require_connect = __commonJS({
|
|
|
23678
23986
|
sessionCache.set(sessionKey, session2);
|
|
23679
23987
|
});
|
|
23680
23988
|
} else {
|
|
23681
|
-
|
|
23989
|
+
assert7(!httpSocket, "httpSocket can only be sent on TLS update");
|
|
23682
23990
|
port = port || 80;
|
|
23683
23991
|
socket = net2.connect({
|
|
23684
23992
|
highWaterMark: 64 * 1024,
|
|
@@ -24364,12 +24672,12 @@ var require_constants4 = __commonJS({
|
|
|
24364
24672
|
var require_llhttp_wasm = __commonJS({
|
|
24365
24673
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module) {
|
|
24366
24674
|
"use strict";
|
|
24367
|
-
var { Buffer:
|
|
24675
|
+
var { Buffer: Buffer4 } = __require("node:buffer");
|
|
24368
24676
|
var wasmBase64 = "AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==";
|
|
24369
24677
|
var wasmBuffer;
|
|
24370
24678
|
Object.defineProperty(module, "exports", {
|
|
24371
24679
|
get: /* @__PURE__ */ __name(() => {
|
|
24372
|
-
return wasmBuffer ? wasmBuffer : wasmBuffer =
|
|
24680
|
+
return wasmBuffer ? wasmBuffer : wasmBuffer = Buffer4.from(wasmBase64, "base64");
|
|
24373
24681
|
}, "get")
|
|
24374
24682
|
});
|
|
24375
24683
|
}
|
|
@@ -24379,12 +24687,12 @@ var require_llhttp_wasm = __commonJS({
|
|
|
24379
24687
|
var require_llhttp_simd_wasm = __commonJS({
|
|
24380
24688
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module) {
|
|
24381
24689
|
"use strict";
|
|
24382
|
-
var { Buffer:
|
|
24690
|
+
var { Buffer: Buffer4 } = __require("node:buffer");
|
|
24383
24691
|
var wasmBase64 = "AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==";
|
|
24384
24692
|
var wasmBuffer;
|
|
24385
24693
|
Object.defineProperty(module, "exports", {
|
|
24386
24694
|
get: /* @__PURE__ */ __name(() => {
|
|
24387
|
-
return wasmBuffer ? wasmBuffer : wasmBuffer =
|
|
24695
|
+
return wasmBuffer ? wasmBuffer : wasmBuffer = Buffer4.from(wasmBase64, "base64");
|
|
24388
24696
|
}, "get")
|
|
24389
24697
|
});
|
|
24390
24698
|
}
|
|
@@ -24678,7 +24986,7 @@ var require_encoding = __commonJS({
|
|
|
24678
24986
|
var require_infra = __commonJS({
|
|
24679
24987
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/infra/index.js"(exports, module) {
|
|
24680
24988
|
"use strict";
|
|
24681
|
-
var
|
|
24989
|
+
var assert7 = __require("node:assert");
|
|
24682
24990
|
var { utf8DecodeBytes } = require_encoding();
|
|
24683
24991
|
function collectASequenceOfCodePoints(condition, input, position3) {
|
|
24684
24992
|
let result2 = "";
|
|
@@ -24749,7 +25057,7 @@ var require_infra = __commonJS({
|
|
|
24749
25057
|
__name(isomorphicDecode, "isomorphicDecode");
|
|
24750
25058
|
var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/;
|
|
24751
25059
|
function isomorphicEncode(input) {
|
|
24752
|
-
|
|
25060
|
+
assert7(!invalidIsomorphicEncodeValueRegex.test(input));
|
|
24753
25061
|
return input;
|
|
24754
25062
|
}
|
|
24755
25063
|
__name(isomorphicEncode, "isomorphicEncode");
|
|
@@ -24778,7 +25086,7 @@ var require_infra = __commonJS({
|
|
|
24778
25086
|
if (result2 === void 0) {
|
|
24779
25087
|
throw new TypeError("Value is not JSON serializable");
|
|
24780
25088
|
}
|
|
24781
|
-
|
|
25089
|
+
assert7(typeof result2 === "string");
|
|
24782
25090
|
return result2;
|
|
24783
25091
|
}
|
|
24784
25092
|
__name(serializeJavascriptValueToJSONString, "serializeJavascriptValueToJSONString");
|
|
@@ -24801,14 +25109,14 @@ var require_infra = __commonJS({
|
|
|
24801
25109
|
var require_data_url = __commonJS({
|
|
24802
25110
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/data-url.js"(exports, module) {
|
|
24803
25111
|
"use strict";
|
|
24804
|
-
var
|
|
25112
|
+
var assert7 = __require("node:assert");
|
|
24805
25113
|
var { forgivingBase64, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, isomorphicDecode, removeASCIIWhitespace, removeChars } = require_infra();
|
|
24806
25114
|
var encoder4 = new TextEncoder();
|
|
24807
25115
|
var HTTP_TOKEN_CODEPOINTS = /^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u;
|
|
24808
25116
|
var HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/u;
|
|
24809
25117
|
var HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;
|
|
24810
25118
|
function dataURLProcessor(dataURL) {
|
|
24811
|
-
|
|
25119
|
+
assert7(dataURL.protocol === "data:");
|
|
24812
25120
|
let input = URLSerializer(dataURL, true);
|
|
24813
25121
|
input = input.slice(5);
|
|
24814
25122
|
const position3 = { position: 0 };
|
|
@@ -24980,7 +25288,7 @@ var require_data_url = __commonJS({
|
|
|
24980
25288
|
function collectAnHTTPQuotedString(input, position3, extractValue = false) {
|
|
24981
25289
|
const positionStart = position3.position;
|
|
24982
25290
|
let value = "";
|
|
24983
|
-
|
|
25291
|
+
assert7(input[position3.position] === '"');
|
|
24984
25292
|
position3.position++;
|
|
24985
25293
|
while (true) {
|
|
24986
25294
|
value += collectASequenceOfCodePoints(
|
|
@@ -25001,7 +25309,7 @@ var require_data_url = __commonJS({
|
|
|
25001
25309
|
value += input[position3.position];
|
|
25002
25310
|
position3.position++;
|
|
25003
25311
|
} else {
|
|
25004
|
-
|
|
25312
|
+
assert7(quoteOrBackslash === '"');
|
|
25005
25313
|
break;
|
|
25006
25314
|
}
|
|
25007
25315
|
}
|
|
@@ -25012,7 +25320,7 @@ var require_data_url = __commonJS({
|
|
|
25012
25320
|
}
|
|
25013
25321
|
__name(collectAnHTTPQuotedString, "collectAnHTTPQuotedString");
|
|
25014
25322
|
function serializeAMimeType(mimeType) {
|
|
25015
|
-
|
|
25323
|
+
assert7(mimeType !== "failure");
|
|
25016
25324
|
const { parameters, essence } = mimeType;
|
|
25017
25325
|
let serialization = essence;
|
|
25018
25326
|
for (let [name, value] of parameters.entries()) {
|
|
@@ -25200,7 +25508,7 @@ var require_runtime_features = __commonJS({
|
|
|
25200
25508
|
var require_webidl = __commonJS({
|
|
25201
25509
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/webidl/index.js"(exports, module) {
|
|
25202
25510
|
"use strict";
|
|
25203
|
-
var
|
|
25511
|
+
var assert7 = __require("node:assert");
|
|
25204
25512
|
var { types: types10, inspect: inspect2 } = __require("node:util");
|
|
25205
25513
|
var { runtimeFeatures } = require_runtime_features();
|
|
25206
25514
|
var UNDEFINED3 = 1;
|
|
@@ -25556,7 +25864,7 @@ var require_webidl = __commonJS({
|
|
|
25556
25864
|
offset = jsBufferSource.byteOffset;
|
|
25557
25865
|
length = jsBufferSource.byteLength;
|
|
25558
25866
|
} else {
|
|
25559
|
-
|
|
25867
|
+
assert7(types10.isAnyArrayBuffer(jsBufferSource));
|
|
25560
25868
|
length = jsBufferSource.byteLength;
|
|
25561
25869
|
}
|
|
25562
25870
|
if (jsArrayBuffer.detached) {
|
|
@@ -25802,14 +26110,14 @@ var require_webidl = __commonJS({
|
|
|
25802
26110
|
var require_util2 = __commonJS({
|
|
25803
26111
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/fetch/util.js"(exports, module) {
|
|
25804
26112
|
"use strict";
|
|
25805
|
-
var { Transform } = __require("node:stream");
|
|
25806
|
-
var
|
|
26113
|
+
var { Transform: Transform2 } = __require("node:stream");
|
|
26114
|
+
var zlib2 = __require("node:zlib");
|
|
25807
26115
|
var { redirectStatusSet, referrerPolicyTokens, badPortsSet } = require_constants5();
|
|
25808
26116
|
var { getGlobalOrigin } = require_global();
|
|
25809
26117
|
var { collectAnHTTPQuotedString, parseMIMEType } = require_data_url();
|
|
25810
26118
|
var { performance: performance2 } = __require("node:perf_hooks");
|
|
25811
26119
|
var { ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util();
|
|
25812
|
-
var
|
|
26120
|
+
var assert7 = __require("node:assert");
|
|
25813
26121
|
var { isUint8Array } = __require("node:util/types");
|
|
25814
26122
|
var { webidl } = require_webidl();
|
|
25815
26123
|
var { isomorphicEncode, collectASequenceOfCodePoints, removeChars } = require_infra();
|
|
@@ -26013,7 +26321,7 @@ var require_util2 = __commonJS({
|
|
|
26013
26321
|
__name(clonePolicyContainer, "clonePolicyContainer");
|
|
26014
26322
|
function determineRequestsReferrer(request) {
|
|
26015
26323
|
const policy = request.referrerPolicy;
|
|
26016
|
-
|
|
26324
|
+
assert7(policy);
|
|
26017
26325
|
let referrerSource = null;
|
|
26018
26326
|
if (request.referrer === "client") {
|
|
26019
26327
|
const globalOrigin = getGlobalOrigin();
|
|
@@ -26077,7 +26385,7 @@ var require_util2 = __commonJS({
|
|
|
26077
26385
|
}
|
|
26078
26386
|
__name(determineRequestsReferrer, "determineRequestsReferrer");
|
|
26079
26387
|
function stripURLForReferrer(url3, originOnly = false) {
|
|
26080
|
-
|
|
26388
|
+
assert7(webidl.is.URL(url3));
|
|
26081
26389
|
url3 = new URL(url3);
|
|
26082
26390
|
if (urlIsLocal(url3)) {
|
|
26083
26391
|
return "no-referrer";
|
|
@@ -26341,7 +26649,7 @@ var require_util2 = __commonJS({
|
|
|
26341
26649
|
}
|
|
26342
26650
|
__name(readAllBytes, "readAllBytes");
|
|
26343
26651
|
function urlIsLocal(url3) {
|
|
26344
|
-
|
|
26652
|
+
assert7("protocol" in url3);
|
|
26345
26653
|
const protocol = url3.protocol;
|
|
26346
26654
|
return protocol === "about:" || protocol === "blob:" || protocol === "data:";
|
|
26347
26655
|
}
|
|
@@ -26351,7 +26659,7 @@ var require_util2 = __commonJS({
|
|
|
26351
26659
|
}
|
|
26352
26660
|
__name(urlHasHttpsScheme, "urlHasHttpsScheme");
|
|
26353
26661
|
function urlIsHttpHttpsScheme(url3) {
|
|
26354
|
-
|
|
26662
|
+
assert7("protocol" in url3);
|
|
26355
26663
|
const protocol = url3.protocol;
|
|
26356
26664
|
return protocol === "http:" || protocol === "https:";
|
|
26357
26665
|
}
|
|
@@ -26438,7 +26746,7 @@ var require_util2 = __commonJS({
|
|
|
26438
26746
|
return contentRange;
|
|
26439
26747
|
}
|
|
26440
26748
|
__name(buildContentRange, "buildContentRange");
|
|
26441
|
-
var InflateStream = class extends
|
|
26749
|
+
var InflateStream = class extends Transform2 {
|
|
26442
26750
|
static {
|
|
26443
26751
|
__name(this, "InflateStream");
|
|
26444
26752
|
}
|
|
@@ -26454,7 +26762,7 @@ var require_util2 = __commonJS({
|
|
|
26454
26762
|
callback();
|
|
26455
26763
|
return;
|
|
26456
26764
|
}
|
|
26457
|
-
this._inflateStream = (chunk[0] & 15) === 8 ?
|
|
26765
|
+
this._inflateStream = (chunk[0] & 15) === 8 ? zlib2.createInflate(this.#zlibOptions) : zlib2.createInflateRaw(this.#zlibOptions);
|
|
26458
26766
|
this._inflateStream.on("data", this.push.bind(this));
|
|
26459
26767
|
this._inflateStream.on("end", () => this.push(null));
|
|
26460
26768
|
this._inflateStream.on("error", (err) => this.destroy(err));
|
|
@@ -26524,7 +26832,7 @@ var require_util2 = __commonJS({
|
|
|
26524
26832
|
continue;
|
|
26525
26833
|
}
|
|
26526
26834
|
} else {
|
|
26527
|
-
|
|
26835
|
+
assert7(input.charCodeAt(position3.position) === 44);
|
|
26528
26836
|
position3.position++;
|
|
26529
26837
|
}
|
|
26530
26838
|
}
|
|
@@ -26800,7 +27108,7 @@ var require_formdata_parser = __commonJS({
|
|
|
26800
27108
|
var { HTTP_TOKEN_CODEPOINTS } = require_data_url();
|
|
26801
27109
|
var { makeEntry } = require_formdata();
|
|
26802
27110
|
var { webidl } = require_webidl();
|
|
26803
|
-
var
|
|
27111
|
+
var assert7 = __require("node:assert");
|
|
26804
27112
|
var { isomorphicDecode } = require_infra();
|
|
26805
27113
|
var dd = Buffer.from("--");
|
|
26806
27114
|
var decoder6 = new TextDecoder();
|
|
@@ -26829,7 +27137,7 @@ var require_formdata_parser = __commonJS({
|
|
|
26829
27137
|
}
|
|
26830
27138
|
__name(validateBoundary, "validateBoundary");
|
|
26831
27139
|
function multipartFormDataParser(input, mimeType) {
|
|
26832
|
-
|
|
27140
|
+
assert7(mimeType !== "failure" && mimeType.essence === "multipart/form-data");
|
|
26833
27141
|
const boundaryString = mimeType.parameters.get("boundary");
|
|
26834
27142
|
if (boundaryString === void 0) {
|
|
26835
27143
|
throw parsingError("missing boundary in content-type header");
|
|
@@ -26885,8 +27193,8 @@ var require_formdata_parser = __commonJS({
|
|
|
26885
27193
|
} else {
|
|
26886
27194
|
value = decoderIgnoreBOM.decode(Buffer.from(body));
|
|
26887
27195
|
}
|
|
26888
|
-
|
|
26889
|
-
|
|
27196
|
+
assert7(webidl.is.USVString(name));
|
|
27197
|
+
assert7(typeof value === "string" && webidl.is.USVString(value) || webidl.is.File(value));
|
|
26890
27198
|
entryList.push(makeEntry(name, value, filename));
|
|
26891
27199
|
}
|
|
26892
27200
|
}
|
|
@@ -27167,7 +27475,7 @@ var require_body = __commonJS({
|
|
|
27167
27475
|
} = require_util2();
|
|
27168
27476
|
var { FormData, setFormDataState } = require_formdata();
|
|
27169
27477
|
var { webidl } = require_webidl();
|
|
27170
|
-
var
|
|
27478
|
+
var assert7 = __require("node:assert");
|
|
27171
27479
|
var { isErrored, isDisturbed } = __require("node:stream");
|
|
27172
27480
|
var { isUint8Array } = __require("node:util/types");
|
|
27173
27481
|
var { serializeAMimeType } = require_data_url();
|
|
@@ -27206,7 +27514,7 @@ var require_body = __commonJS({
|
|
|
27206
27514
|
type: "bytes"
|
|
27207
27515
|
});
|
|
27208
27516
|
}
|
|
27209
|
-
|
|
27517
|
+
assert7(webidl.is.ReadableStream(stream));
|
|
27210
27518
|
let action = null;
|
|
27211
27519
|
let source = null;
|
|
27212
27520
|
let length = null;
|
|
@@ -27315,8 +27623,8 @@ Content-Type: ${value.type || "application/octet-stream"}\r
|
|
|
27315
27623
|
__name(extractBody, "extractBody");
|
|
27316
27624
|
function safelyExtractBody(object3, keepalive = false) {
|
|
27317
27625
|
if (webidl.is.ReadableStream(object3)) {
|
|
27318
|
-
|
|
27319
|
-
|
|
27626
|
+
assert7(!util.isDisturbed(object3), "The body has already been consumed.");
|
|
27627
|
+
assert7(!object3.locked, "The stream is locked.");
|
|
27320
27628
|
}
|
|
27321
27629
|
return extractBody(object3, keepalive);
|
|
27322
27630
|
}
|
|
@@ -27450,7 +27758,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r
|
|
|
27450
27758
|
var require_client_h1 = __commonJS({
|
|
27451
27759
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client-h1.js"(exports, module) {
|
|
27452
27760
|
"use strict";
|
|
27453
|
-
var
|
|
27761
|
+
var assert7 = __require("node:assert");
|
|
27454
27762
|
var util = require_util();
|
|
27455
27763
|
var { channels } = require_diagnostics();
|
|
27456
27764
|
var timers = require_timers();
|
|
@@ -27545,7 +27853,7 @@ var require_client_h1 = __commonJS({
|
|
|
27545
27853
|
* @returns {number}
|
|
27546
27854
|
*/
|
|
27547
27855
|
wasm_on_status: /* @__PURE__ */ __name((p, at, len) => {
|
|
27548
|
-
|
|
27856
|
+
assert7(currentParser.ptr === p);
|
|
27549
27857
|
const start3 = at - currentBufferPtr + currentBufferRef.byteOffset;
|
|
27550
27858
|
return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start3, len));
|
|
27551
27859
|
}, "wasm_on_status"),
|
|
@@ -27554,7 +27862,7 @@ var require_client_h1 = __commonJS({
|
|
|
27554
27862
|
* @returns {number}
|
|
27555
27863
|
*/
|
|
27556
27864
|
wasm_on_message_begin: /* @__PURE__ */ __name((p) => {
|
|
27557
|
-
|
|
27865
|
+
assert7(currentParser.ptr === p);
|
|
27558
27866
|
return currentParser.onMessageBegin();
|
|
27559
27867
|
}, "wasm_on_message_begin"),
|
|
27560
27868
|
/**
|
|
@@ -27564,7 +27872,7 @@ var require_client_h1 = __commonJS({
|
|
|
27564
27872
|
* @returns {number}
|
|
27565
27873
|
*/
|
|
27566
27874
|
wasm_on_header_field: /* @__PURE__ */ __name((p, at, len) => {
|
|
27567
|
-
|
|
27875
|
+
assert7(currentParser.ptr === p);
|
|
27568
27876
|
const start3 = at - currentBufferPtr + currentBufferRef.byteOffset;
|
|
27569
27877
|
return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start3, len));
|
|
27570
27878
|
}, "wasm_on_header_field"),
|
|
@@ -27575,7 +27883,7 @@ var require_client_h1 = __commonJS({
|
|
|
27575
27883
|
* @returns {number}
|
|
27576
27884
|
*/
|
|
27577
27885
|
wasm_on_header_value: /* @__PURE__ */ __name((p, at, len) => {
|
|
27578
|
-
|
|
27886
|
+
assert7(currentParser.ptr === p);
|
|
27579
27887
|
const start3 = at - currentBufferPtr + currentBufferRef.byteOffset;
|
|
27580
27888
|
return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start3, len));
|
|
27581
27889
|
}, "wasm_on_header_value"),
|
|
@@ -27587,7 +27895,7 @@ var require_client_h1 = __commonJS({
|
|
|
27587
27895
|
* @returns {number}
|
|
27588
27896
|
*/
|
|
27589
27897
|
wasm_on_headers_complete: /* @__PURE__ */ __name((p, statusCode, upgrade, shouldKeepAlive) => {
|
|
27590
|
-
|
|
27898
|
+
assert7(currentParser.ptr === p);
|
|
27591
27899
|
return currentParser.onHeadersComplete(statusCode, upgrade === 1, shouldKeepAlive === 1);
|
|
27592
27900
|
}, "wasm_on_headers_complete"),
|
|
27593
27901
|
/**
|
|
@@ -27597,7 +27905,7 @@ var require_client_h1 = __commonJS({
|
|
|
27597
27905
|
* @returns {number}
|
|
27598
27906
|
*/
|
|
27599
27907
|
wasm_on_body: /* @__PURE__ */ __name((p, at, len) => {
|
|
27600
|
-
|
|
27908
|
+
assert7(currentParser.ptr === p);
|
|
27601
27909
|
const start3 = at - currentBufferPtr + currentBufferRef.byteOffset;
|
|
27602
27910
|
return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start3, len));
|
|
27603
27911
|
}, "wasm_on_body"),
|
|
@@ -27606,7 +27914,7 @@ var require_client_h1 = __commonJS({
|
|
|
27606
27914
|
* @returns {number}
|
|
27607
27915
|
*/
|
|
27608
27916
|
wasm_on_message_complete: /* @__PURE__ */ __name((p) => {
|
|
27609
|
-
|
|
27917
|
+
assert7(currentParser.ptr === p);
|
|
27610
27918
|
return currentParser.onMessageComplete();
|
|
27611
27919
|
}, "wasm_on_message_complete")
|
|
27612
27920
|
}
|
|
@@ -27682,10 +27990,10 @@ var require_client_h1 = __commonJS({
|
|
|
27682
27990
|
if (this.socket.destroyed || !this.paused) {
|
|
27683
27991
|
return;
|
|
27684
27992
|
}
|
|
27685
|
-
|
|
27686
|
-
|
|
27993
|
+
assert7(this.ptr != null);
|
|
27994
|
+
assert7(currentParser === null);
|
|
27687
27995
|
this.llhttp.llhttp_resume(this.ptr);
|
|
27688
|
-
|
|
27996
|
+
assert7(this.timeoutType === TIMEOUT_BODY);
|
|
27689
27997
|
if (this.timeout) {
|
|
27690
27998
|
if (this.timeout.refresh) {
|
|
27691
27999
|
this.timeout.refresh();
|
|
@@ -27708,9 +28016,9 @@ var require_client_h1 = __commonJS({
|
|
|
27708
28016
|
* @param {Buffer} chunk
|
|
27709
28017
|
*/
|
|
27710
28018
|
execute(chunk) {
|
|
27711
|
-
|
|
27712
|
-
|
|
27713
|
-
|
|
28019
|
+
assert7(currentParser === null);
|
|
28020
|
+
assert7(this.ptr != null);
|
|
28021
|
+
assert7(!this.paused);
|
|
27714
28022
|
const { socket, llhttp } = this;
|
|
27715
28023
|
if (chunk.length > currentBufferSize) {
|
|
27716
28024
|
if (currentBufferPtr) {
|
|
@@ -27746,9 +28054,9 @@ var require_client_h1 = __commonJS({
|
|
|
27746
28054
|
}
|
|
27747
28055
|
}
|
|
27748
28056
|
finish() {
|
|
27749
|
-
|
|
27750
|
-
|
|
27751
|
-
|
|
28057
|
+
assert7(currentParser === null);
|
|
28058
|
+
assert7(this.ptr != null);
|
|
28059
|
+
assert7(!this.paused);
|
|
27752
28060
|
const { llhttp } = this;
|
|
27753
28061
|
let ret;
|
|
27754
28062
|
try {
|
|
@@ -27780,8 +28088,8 @@ var require_client_h1 = __commonJS({
|
|
|
27780
28088
|
return new HTTPParserError(message, constants2.ERROR[ret], data);
|
|
27781
28089
|
}
|
|
27782
28090
|
destroy() {
|
|
27783
|
-
|
|
27784
|
-
|
|
28091
|
+
assert7(currentParser === null);
|
|
28092
|
+
assert7(this.ptr != null);
|
|
27785
28093
|
this.llhttp.llhttp_free(this.ptr);
|
|
27786
28094
|
this.ptr = null;
|
|
27787
28095
|
this.timeout && timers.clearTimeout(this.timeout);
|
|
@@ -27871,14 +28179,14 @@ var require_client_h1 = __commonJS({
|
|
|
27871
28179
|
*/
|
|
27872
28180
|
onUpgrade(head) {
|
|
27873
28181
|
const { upgrade, client, socket, headers, statusCode } = this;
|
|
27874
|
-
|
|
27875
|
-
|
|
27876
|
-
|
|
27877
|
-
|
|
27878
|
-
|
|
28182
|
+
assert7(upgrade);
|
|
28183
|
+
assert7(client[kSocket] === socket);
|
|
28184
|
+
assert7(!socket.destroyed);
|
|
28185
|
+
assert7(!this.paused);
|
|
28186
|
+
assert7((headers.length & 1) === 0);
|
|
27879
28187
|
const request = client[kQueue][client[kRunningIdx]];
|
|
27880
|
-
|
|
27881
|
-
|
|
28188
|
+
assert7(request);
|
|
28189
|
+
assert7(request.upgrade || request.method === "CONNECT");
|
|
27882
28190
|
this.statusCode = 0;
|
|
27883
28191
|
this.statusText = "";
|
|
27884
28192
|
this.shouldKeepAlive = false;
|
|
@@ -27920,8 +28228,8 @@ var require_client_h1 = __commonJS({
|
|
|
27920
28228
|
if (!request) {
|
|
27921
28229
|
return -1;
|
|
27922
28230
|
}
|
|
27923
|
-
|
|
27924
|
-
|
|
28231
|
+
assert7(!this.upgrade);
|
|
28232
|
+
assert7(this.statusCode < 200);
|
|
27925
28233
|
if (statusCode === 100) {
|
|
27926
28234
|
util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
|
|
27927
28235
|
return -1;
|
|
@@ -27930,7 +28238,7 @@ var require_client_h1 = __commonJS({
|
|
|
27930
28238
|
util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket)));
|
|
27931
28239
|
return -1;
|
|
27932
28240
|
}
|
|
27933
|
-
|
|
28241
|
+
assert7(this.timeoutType === TIMEOUT_HEADERS);
|
|
27934
28242
|
this.statusCode = statusCode;
|
|
27935
28243
|
this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD.
|
|
27936
28244
|
request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive";
|
|
@@ -27943,16 +28251,16 @@ var require_client_h1 = __commonJS({
|
|
|
27943
28251
|
}
|
|
27944
28252
|
}
|
|
27945
28253
|
if (request.method === "CONNECT") {
|
|
27946
|
-
|
|
28254
|
+
assert7(client[kRunning] === 1);
|
|
27947
28255
|
this.upgrade = true;
|
|
27948
28256
|
return 2;
|
|
27949
28257
|
}
|
|
27950
28258
|
if (upgrade) {
|
|
27951
|
-
|
|
28259
|
+
assert7(client[kRunning] === 1);
|
|
27952
28260
|
this.upgrade = true;
|
|
27953
28261
|
return 2;
|
|
27954
28262
|
}
|
|
27955
|
-
|
|
28263
|
+
assert7((this.headers.length & 1) === 0);
|
|
27956
28264
|
this.headers = [];
|
|
27957
28265
|
this.headersSize = 0;
|
|
27958
28266
|
if (this.shouldKeepAlive && client[kPipelining]) {
|
|
@@ -27999,14 +28307,14 @@ var require_client_h1 = __commonJS({
|
|
|
27999
28307
|
return -1;
|
|
28000
28308
|
}
|
|
28001
28309
|
const request = client[kQueue][client[kRunningIdx]];
|
|
28002
|
-
|
|
28003
|
-
|
|
28310
|
+
assert7(request);
|
|
28311
|
+
assert7(this.timeoutType === TIMEOUT_BODY);
|
|
28004
28312
|
if (this.timeout) {
|
|
28005
28313
|
if (this.timeout.refresh) {
|
|
28006
28314
|
this.timeout.refresh();
|
|
28007
28315
|
}
|
|
28008
28316
|
}
|
|
28009
|
-
|
|
28317
|
+
assert7(statusCode >= 200);
|
|
28010
28318
|
if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) {
|
|
28011
28319
|
util.destroy(socket, new ResponseExceededMaxSizeError());
|
|
28012
28320
|
return -1;
|
|
@@ -28028,10 +28336,10 @@ var require_client_h1 = __commonJS({
|
|
|
28028
28336
|
if (upgrade) {
|
|
28029
28337
|
return 0;
|
|
28030
28338
|
}
|
|
28031
|
-
|
|
28032
|
-
|
|
28339
|
+
assert7(statusCode >= 100);
|
|
28340
|
+
assert7((this.headers.length & 1) === 0);
|
|
28033
28341
|
const request = client[kQueue][client[kRunningIdx]];
|
|
28034
|
-
|
|
28342
|
+
assert7(request);
|
|
28035
28343
|
this.statusCode = 0;
|
|
28036
28344
|
this.statusText = "";
|
|
28037
28345
|
this.bytesRead = 0;
|
|
@@ -28051,7 +28359,7 @@ var require_client_h1 = __commonJS({
|
|
|
28051
28359
|
client[kQueue][client[kRunningIdx]++] = null;
|
|
28052
28360
|
socket[kSocketUsed] = client[kPending] === 0;
|
|
28053
28361
|
if (socket[kWriting]) {
|
|
28054
|
-
|
|
28362
|
+
assert7(client[kRunning] === 0);
|
|
28055
28363
|
util.destroy(socket, new InformationalError("reset"));
|
|
28056
28364
|
return constants2.ERROR.PAUSED;
|
|
28057
28365
|
} else if (!shouldKeepAlive) {
|
|
@@ -28076,7 +28384,7 @@ var require_client_h1 = __commonJS({
|
|
|
28076
28384
|
const { socket, timeoutType, client, paused } = parser;
|
|
28077
28385
|
if (timeoutType === TIMEOUT_HEADERS) {
|
|
28078
28386
|
if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) {
|
|
28079
|
-
|
|
28387
|
+
assert7(!paused, "cannot be paused while waiting for headers");
|
|
28080
28388
|
util.destroy(socket, new HeadersTimeoutError());
|
|
28081
28389
|
}
|
|
28082
28390
|
} else if (timeoutType === TIMEOUT_BODY) {
|
|
@@ -28084,7 +28392,7 @@ var require_client_h1 = __commonJS({
|
|
|
28084
28392
|
util.destroy(socket, new BodyTimeoutError());
|
|
28085
28393
|
}
|
|
28086
28394
|
} else if (timeoutType === TIMEOUT_KEEP_ALIVE) {
|
|
28087
|
-
|
|
28395
|
+
assert7(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]);
|
|
28088
28396
|
util.destroy(socket, new InformationalError("socket idle timeout"));
|
|
28089
28397
|
}
|
|
28090
28398
|
}
|
|
@@ -28166,7 +28474,7 @@ var require_client_h1 = __commonJS({
|
|
|
28166
28474
|
}
|
|
28167
28475
|
__name(connectH1, "connectH1");
|
|
28168
28476
|
function onHttpSocketError(err) {
|
|
28169
|
-
|
|
28477
|
+
assert7(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
|
|
28170
28478
|
const parser = this[kParser];
|
|
28171
28479
|
if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) {
|
|
28172
28480
|
const parserErr = parser.finish();
|
|
@@ -28211,7 +28519,7 @@ var require_client_h1 = __commonJS({
|
|
|
28211
28519
|
client[kSocket] = null;
|
|
28212
28520
|
client[kHTTPContext] = null;
|
|
28213
28521
|
if (client.destroyed) {
|
|
28214
|
-
|
|
28522
|
+
assert7(client[kPending] === 0);
|
|
28215
28523
|
const requests = client[kQueue].splice(client[kRunningIdx]);
|
|
28216
28524
|
for (let i = 0; i < requests.length; i++) {
|
|
28217
28525
|
const request = requests[i];
|
|
@@ -28223,7 +28531,7 @@ var require_client_h1 = __commonJS({
|
|
|
28223
28531
|
util.errorRequest(client, request, err);
|
|
28224
28532
|
}
|
|
28225
28533
|
client[kPendingIdx] = client[kRunningIdx];
|
|
28226
|
-
|
|
28534
|
+
assert7(client[kRunning] === 0);
|
|
28227
28535
|
client.emit("disconnect", client[kUrl], [client], err);
|
|
28228
28536
|
client[kResume]();
|
|
28229
28537
|
}
|
|
@@ -28434,13 +28742,13 @@ upgrade: ${upgrade}\r
|
|
|
28434
28742
|
} else if (util.isIterable(body)) {
|
|
28435
28743
|
writeIterable(abort, body, client, request, socket, contentLength2, header, expectsPayload);
|
|
28436
28744
|
} else {
|
|
28437
|
-
|
|
28745
|
+
assert7(false);
|
|
28438
28746
|
}
|
|
28439
28747
|
return true;
|
|
28440
28748
|
}
|
|
28441
28749
|
__name(writeH1, "writeH1");
|
|
28442
28750
|
function writeStream(abort, body, client, request, socket, contentLength2, header, expectsPayload) {
|
|
28443
|
-
|
|
28751
|
+
assert7(contentLength2 !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
|
|
28444
28752
|
let finished = false;
|
|
28445
28753
|
const writer = new AsyncWriter({ abort, socket, request, contentLength: contentLength2, client, expectsPayload, header });
|
|
28446
28754
|
const onData = /* @__PURE__ */ __name(function(chunk) {
|
|
@@ -28477,7 +28785,7 @@ upgrade: ${upgrade}\r
|
|
|
28477
28785
|
return;
|
|
28478
28786
|
}
|
|
28479
28787
|
finished = true;
|
|
28480
|
-
|
|
28788
|
+
assert7(socket.destroyed || socket[kWriting] && client[kRunning] <= 1);
|
|
28481
28789
|
socket.off("drain", onDrain).off("error", onFinished);
|
|
28482
28790
|
body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose);
|
|
28483
28791
|
if (!err) {
|
|
@@ -28517,12 +28825,12 @@ upgrade: ${upgrade}\r
|
|
|
28517
28825
|
\r
|
|
28518
28826
|
`, "latin1");
|
|
28519
28827
|
} else {
|
|
28520
|
-
|
|
28828
|
+
assert7(contentLength2 === null, "no body must not have content length");
|
|
28521
28829
|
socket.write(`${header}\r
|
|
28522
28830
|
`, "latin1");
|
|
28523
28831
|
}
|
|
28524
28832
|
} else if (util.isBuffer(body)) {
|
|
28525
|
-
|
|
28833
|
+
assert7(contentLength2 === body.byteLength, "buffer body must have content length");
|
|
28526
28834
|
socket.cork();
|
|
28527
28835
|
socket.write(`${header}content-length: ${contentLength2}\r
|
|
28528
28836
|
\r
|
|
@@ -28542,7 +28850,7 @@ upgrade: ${upgrade}\r
|
|
|
28542
28850
|
}
|
|
28543
28851
|
__name(writeBuffer2, "writeBuffer");
|
|
28544
28852
|
async function writeBlob(abort, body, client, request, socket, contentLength2, header, expectsPayload) {
|
|
28545
|
-
|
|
28853
|
+
assert7(contentLength2 === body.size, "blob body must have content length");
|
|
28546
28854
|
try {
|
|
28547
28855
|
if (contentLength2 != null && contentLength2 !== body.size) {
|
|
28548
28856
|
throw new RequestContentLengthMismatchError();
|
|
@@ -28566,7 +28874,7 @@ upgrade: ${upgrade}\r
|
|
|
28566
28874
|
}
|
|
28567
28875
|
__name(writeBlob, "writeBlob");
|
|
28568
28876
|
async function writeIterable(abort, body, client, request, socket, contentLength2, header, expectsPayload) {
|
|
28569
|
-
|
|
28877
|
+
assert7(contentLength2 !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
|
|
28570
28878
|
let callback = null;
|
|
28571
28879
|
function onDrain() {
|
|
28572
28880
|
if (callback) {
|
|
@@ -28577,7 +28885,7 @@ upgrade: ${upgrade}\r
|
|
|
28577
28885
|
}
|
|
28578
28886
|
__name(onDrain, "onDrain");
|
|
28579
28887
|
const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve3, reject) => {
|
|
28580
|
-
|
|
28888
|
+
assert7(callback === null);
|
|
28581
28889
|
if (socket[kError]) {
|
|
28582
28890
|
reject(socket[kError]);
|
|
28583
28891
|
} else {
|
|
@@ -28730,7 +29038,7 @@ ${len.toString(16)}\r
|
|
|
28730
29038
|
const { socket, client, abort } = this;
|
|
28731
29039
|
socket[kWriting] = false;
|
|
28732
29040
|
if (err) {
|
|
28733
|
-
|
|
29041
|
+
assert7(client[kRunning] <= 1, "pipeline should only contain this request");
|
|
28734
29042
|
abort(err);
|
|
28735
29043
|
}
|
|
28736
29044
|
}
|
|
@@ -28743,7 +29051,7 @@ ${len.toString(16)}\r
|
|
|
28743
29051
|
var require_client_h2 = __commonJS({
|
|
28744
29052
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client-h2.js"(exports, module) {
|
|
28745
29053
|
"use strict";
|
|
28746
|
-
var
|
|
29054
|
+
var assert7 = __require("node:assert");
|
|
28747
29055
|
var { pipeline } = __require("node:stream");
|
|
28748
29056
|
var util = require_util();
|
|
28749
29057
|
var {
|
|
@@ -28969,7 +29277,7 @@ var require_client_h2 = __commonJS({
|
|
|
28969
29277
|
}
|
|
28970
29278
|
__name(onHttp2SendPing, "onHttp2SendPing");
|
|
28971
29279
|
function onHttp2SessionError(err) {
|
|
28972
|
-
|
|
29280
|
+
assert7(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
|
|
28973
29281
|
this[kSocket][kError] = err;
|
|
28974
29282
|
this[kClient][kOnError](err);
|
|
28975
29283
|
}
|
|
@@ -29002,7 +29310,7 @@ var require_client_h2 = __commonJS({
|
|
|
29002
29310
|
util.errorRequest(client, request, err);
|
|
29003
29311
|
client[kPendingIdx] = client[kRunningIdx];
|
|
29004
29312
|
}
|
|
29005
|
-
|
|
29313
|
+
assert7(client[kRunning] === 0);
|
|
29006
29314
|
client.emit("disconnect", client[kUrl], [client], err);
|
|
29007
29315
|
client.emit("connectionError", client[kUrl], [client], err);
|
|
29008
29316
|
client[kResume]();
|
|
@@ -29019,7 +29327,7 @@ var require_client_h2 = __commonJS({
|
|
|
29019
29327
|
state.ping.interval = null;
|
|
29020
29328
|
}
|
|
29021
29329
|
if (client.destroyed) {
|
|
29022
|
-
|
|
29330
|
+
assert7(client[kPending] === 0);
|
|
29023
29331
|
const requests = client[kQueue].splice(client[kRunningIdx]);
|
|
29024
29332
|
for (let i = 0; i < requests.length; i++) {
|
|
29025
29333
|
const request = requests[i];
|
|
@@ -29037,13 +29345,13 @@ var require_client_h2 = __commonJS({
|
|
|
29037
29345
|
this[kHTTP2Session].destroy(err);
|
|
29038
29346
|
}
|
|
29039
29347
|
client[kPendingIdx] = client[kRunningIdx];
|
|
29040
|
-
|
|
29348
|
+
assert7(client[kRunning] === 0);
|
|
29041
29349
|
client.emit("disconnect", client[kUrl], [client], err);
|
|
29042
29350
|
client[kResume]();
|
|
29043
29351
|
}
|
|
29044
29352
|
__name(onHttp2SocketClose, "onHttp2SocketClose");
|
|
29045
29353
|
function onHttp2SocketError(err) {
|
|
29046
|
-
|
|
29354
|
+
assert7(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
|
|
29047
29355
|
this[kError] = err;
|
|
29048
29356
|
this[kClient][kOnError](err);
|
|
29049
29357
|
}
|
|
@@ -29200,7 +29508,7 @@ var require_client_h2 = __commonJS({
|
|
|
29200
29508
|
process.emitWarning(new RequestContentLengthMismatchError());
|
|
29201
29509
|
}
|
|
29202
29510
|
if (contentLength2 != null) {
|
|
29203
|
-
|
|
29511
|
+
assert7(body || contentLength2 === 0, "no body must not have content length");
|
|
29204
29512
|
headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength2}`;
|
|
29205
29513
|
}
|
|
29206
29514
|
session.ref();
|
|
@@ -29369,7 +29677,7 @@ var require_client_h2 = __commonJS({
|
|
|
29369
29677
|
expectsPayload
|
|
29370
29678
|
);
|
|
29371
29679
|
} else {
|
|
29372
|
-
|
|
29680
|
+
assert7(false);
|
|
29373
29681
|
}
|
|
29374
29682
|
}
|
|
29375
29683
|
__name(writeBodyH2, "writeBodyH2");
|
|
@@ -29378,7 +29686,7 @@ var require_client_h2 = __commonJS({
|
|
|
29378
29686
|
function writeBuffer2(abort, h2stream, body, client, request, socket, contentLength2, expectsPayload) {
|
|
29379
29687
|
try {
|
|
29380
29688
|
if (body != null && util.isBuffer(body)) {
|
|
29381
|
-
|
|
29689
|
+
assert7(contentLength2 === body.byteLength, "buffer body must have content length");
|
|
29382
29690
|
h2stream.cork();
|
|
29383
29691
|
h2stream.write(body);
|
|
29384
29692
|
h2stream.uncork();
|
|
@@ -29396,7 +29704,7 @@ var require_client_h2 = __commonJS({
|
|
|
29396
29704
|
}
|
|
29397
29705
|
__name(writeBuffer2, "writeBuffer");
|
|
29398
29706
|
function writeStream(abort, socket, expectsPayload, h2stream, body, client, request, contentLength2) {
|
|
29399
|
-
|
|
29707
|
+
assert7(contentLength2 !== 0 || client[kRunning] === 0, "stream body cannot be pipelined");
|
|
29400
29708
|
const pipe3 = pipeline(
|
|
29401
29709
|
body,
|
|
29402
29710
|
h2stream,
|
|
@@ -29422,7 +29730,7 @@ var require_client_h2 = __commonJS({
|
|
|
29422
29730
|
}
|
|
29423
29731
|
__name(writeStream, "writeStream");
|
|
29424
29732
|
async function writeBlob(abort, h2stream, body, client, request, socket, contentLength2, expectsPayload) {
|
|
29425
|
-
|
|
29733
|
+
assert7(contentLength2 === body.size, "blob body must have content length");
|
|
29426
29734
|
try {
|
|
29427
29735
|
if (contentLength2 != null && contentLength2 !== body.size) {
|
|
29428
29736
|
throw new RequestContentLengthMismatchError();
|
|
@@ -29444,7 +29752,7 @@ var require_client_h2 = __commonJS({
|
|
|
29444
29752
|
}
|
|
29445
29753
|
__name(writeBlob, "writeBlob");
|
|
29446
29754
|
async function writeIterable(abort, h2stream, body, client, request, socket, contentLength2, expectsPayload) {
|
|
29447
|
-
|
|
29755
|
+
assert7(contentLength2 !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined");
|
|
29448
29756
|
let callback = null;
|
|
29449
29757
|
function onDrain() {
|
|
29450
29758
|
if (callback) {
|
|
@@ -29455,7 +29763,7 @@ var require_client_h2 = __commonJS({
|
|
|
29455
29763
|
}
|
|
29456
29764
|
__name(onDrain, "onDrain");
|
|
29457
29765
|
const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve3, reject) => {
|
|
29458
|
-
|
|
29766
|
+
assert7(callback === null);
|
|
29459
29767
|
if (socket[kError]) {
|
|
29460
29768
|
reject(socket[kError]);
|
|
29461
29769
|
} else {
|
|
@@ -29495,9 +29803,9 @@ var require_client_h2 = __commonJS({
|
|
|
29495
29803
|
var require_client = __commonJS({
|
|
29496
29804
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/dispatcher/client.js"(exports, module) {
|
|
29497
29805
|
"use strict";
|
|
29498
|
-
var
|
|
29806
|
+
var assert7 = __require("node:assert");
|
|
29499
29807
|
var net2 = __require("node:net");
|
|
29500
|
-
var
|
|
29808
|
+
var http2 = __require("node:http");
|
|
29501
29809
|
var util = require_util();
|
|
29502
29810
|
var { ClientStats } = require_stats();
|
|
29503
29811
|
var { channels } = require_diagnostics();
|
|
@@ -29555,7 +29863,7 @@ var require_client = __commonJS({
|
|
|
29555
29863
|
var connectH1 = require_client_h1();
|
|
29556
29864
|
var connectH2 = require_client_h2();
|
|
29557
29865
|
var kClosedResolve = /* @__PURE__ */ Symbol("kClosedResolve");
|
|
29558
|
-
var getDefaultNodeMaxHeaderSize =
|
|
29866
|
+
var getDefaultNodeMaxHeaderSize = http2 && http2.maxHeaderSize && Number.isInteger(http2.maxHeaderSize) && http2.maxHeaderSize > 0 ? () => http2.maxHeaderSize : () => {
|
|
29559
29867
|
throw new InvalidArgumentError("http module not available or http.maxHeaderSize invalid");
|
|
29560
29868
|
};
|
|
29561
29869
|
var noop3 = /* @__PURE__ */ __name(() => {
|
|
@@ -29814,25 +30122,25 @@ var require_client = __commonJS({
|
|
|
29814
30122
|
};
|
|
29815
30123
|
function onError(client, err) {
|
|
29816
30124
|
if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") {
|
|
29817
|
-
|
|
30125
|
+
assert7(client[kPendingIdx] === client[kRunningIdx]);
|
|
29818
30126
|
const requests = client[kQueue].splice(client[kRunningIdx]);
|
|
29819
30127
|
for (let i = 0; i < requests.length; i++) {
|
|
29820
30128
|
const request = requests[i];
|
|
29821
30129
|
util.errorRequest(client, request, err);
|
|
29822
30130
|
}
|
|
29823
|
-
|
|
30131
|
+
assert7(client[kSize] === 0);
|
|
29824
30132
|
}
|
|
29825
30133
|
}
|
|
29826
30134
|
__name(onError, "onError");
|
|
29827
30135
|
function connect2(client) {
|
|
29828
|
-
|
|
29829
|
-
|
|
30136
|
+
assert7(!client[kConnecting]);
|
|
30137
|
+
assert7(!client[kHTTPContext]);
|
|
29830
30138
|
let { host, hostname: hostname5, protocol, port } = client[kUrl];
|
|
29831
30139
|
if (hostname5[0] === "[") {
|
|
29832
30140
|
const idx = hostname5.indexOf("]");
|
|
29833
|
-
|
|
30141
|
+
assert7(idx !== -1);
|
|
29834
30142
|
const ip = hostname5.substring(1, idx);
|
|
29835
|
-
|
|
30143
|
+
assert7(net2.isIPv6(ip));
|
|
29836
30144
|
hostname5 = ip;
|
|
29837
30145
|
}
|
|
29838
30146
|
client[kConnecting] = true;
|
|
@@ -29869,7 +30177,7 @@ var require_client = __commonJS({
|
|
|
29869
30177
|
client[kResume]();
|
|
29870
30178
|
return;
|
|
29871
30179
|
}
|
|
29872
|
-
|
|
30180
|
+
assert7(socket);
|
|
29873
30181
|
try {
|
|
29874
30182
|
client[kHTTPContext] = socket.alpnProtocol === "h2" ? connectH2(client, socket) : connectH1(client, socket);
|
|
29875
30183
|
} catch (err2) {
|
|
@@ -29928,7 +30236,7 @@ var require_client = __commonJS({
|
|
|
29928
30236
|
});
|
|
29929
30237
|
}
|
|
29930
30238
|
if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") {
|
|
29931
|
-
|
|
30239
|
+
assert7(client[kRunning] === 0);
|
|
29932
30240
|
while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) {
|
|
29933
30241
|
const request = client[kQueue][client[kPendingIdx]++];
|
|
29934
30242
|
util.errorRequest(client, request, err);
|
|
@@ -29961,7 +30269,7 @@ var require_client = __commonJS({
|
|
|
29961
30269
|
function _resume(client, sync) {
|
|
29962
30270
|
while (true) {
|
|
29963
30271
|
if (client.destroyed) {
|
|
29964
|
-
|
|
30272
|
+
assert7(client[kPending] === 0);
|
|
29965
30273
|
return;
|
|
29966
30274
|
}
|
|
29967
30275
|
if (client[kClosedResolve] && !client[kSize]) {
|
|
@@ -30805,7 +31113,7 @@ var require_agent = __commonJS({
|
|
|
30805
31113
|
var require_socks5_utils = __commonJS({
|
|
30806
31114
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/socks5-utils.js"(exports, module) {
|
|
30807
31115
|
"use strict";
|
|
30808
|
-
var { Buffer:
|
|
31116
|
+
var { Buffer: Buffer4 } = __require("node:buffer");
|
|
30809
31117
|
var net2 = __require("node:net");
|
|
30810
31118
|
var { InvalidArgumentError } = require_errors();
|
|
30811
31119
|
function parseAddress(address) {
|
|
@@ -30814,7 +31122,7 @@ var require_socks5_utils = __commonJS({
|
|
|
30814
31122
|
return {
|
|
30815
31123
|
type: 1,
|
|
30816
31124
|
// IPv4
|
|
30817
|
-
buffer:
|
|
31125
|
+
buffer: Buffer4.from(parts)
|
|
30818
31126
|
};
|
|
30819
31127
|
}
|
|
30820
31128
|
if (net2.isIPv6(address)) {
|
|
@@ -30824,19 +31132,19 @@ var require_socks5_utils = __commonJS({
|
|
|
30824
31132
|
buffer: parseIPv6(address)
|
|
30825
31133
|
};
|
|
30826
31134
|
}
|
|
30827
|
-
const domainBuffer =
|
|
31135
|
+
const domainBuffer = Buffer4.from(address, "utf8");
|
|
30828
31136
|
if (domainBuffer.length > 255) {
|
|
30829
31137
|
throw new InvalidArgumentError("Domain name too long (max 255 bytes)");
|
|
30830
31138
|
}
|
|
30831
31139
|
return {
|
|
30832
31140
|
type: 3,
|
|
30833
31141
|
// Domain
|
|
30834
|
-
buffer:
|
|
31142
|
+
buffer: Buffer4.concat([Buffer4.from([domainBuffer.length]), domainBuffer])
|
|
30835
31143
|
};
|
|
30836
31144
|
}
|
|
30837
31145
|
__name(parseAddress, "parseAddress");
|
|
30838
31146
|
function parseIPv6(address) {
|
|
30839
|
-
const buffer3 =
|
|
31147
|
+
const buffer3 = Buffer4.alloc(16);
|
|
30840
31148
|
let normalizedAddress = address;
|
|
30841
31149
|
if (address.includes(".")) {
|
|
30842
31150
|
const lastColonIndex = address.lastIndexOf(":");
|
|
@@ -30874,10 +31182,10 @@ var require_socks5_utils = __commonJS({
|
|
|
30874
31182
|
}
|
|
30875
31183
|
__name(parseIPv6, "parseIPv6");
|
|
30876
31184
|
function buildAddressBuffer(type, addressBuffer, port) {
|
|
30877
|
-
const portBuffer =
|
|
31185
|
+
const portBuffer = Buffer4.allocUnsafe(2);
|
|
30878
31186
|
portBuffer.writeUInt16BE(port, 0);
|
|
30879
|
-
return
|
|
30880
|
-
|
|
31187
|
+
return Buffer4.concat([
|
|
31188
|
+
Buffer4.from([type]),
|
|
30881
31189
|
addressBuffer,
|
|
30882
31190
|
portBuffer
|
|
30883
31191
|
]);
|
|
@@ -30972,12 +31280,12 @@ var require_socks5_client = __commonJS({
|
|
|
30972
31280
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/core/socks5-client.js"(exports, module) {
|
|
30973
31281
|
"use strict";
|
|
30974
31282
|
var { EventEmitter: EventEmitter2 } = __require("node:events");
|
|
30975
|
-
var { Buffer:
|
|
31283
|
+
var { Buffer: Buffer4 } = __require("node:buffer");
|
|
30976
31284
|
var { InvalidArgumentError, Socks5ProxyError } = require_errors();
|
|
30977
31285
|
var { debuglog } = __require("node:util");
|
|
30978
31286
|
var { parseAddress } = require_socks5_utils();
|
|
30979
31287
|
var debug = debuglog("undici:socks5");
|
|
30980
|
-
var EMPTY_BUFFER =
|
|
31288
|
+
var EMPTY_BUFFER = Buffer4.alloc(0);
|
|
30981
31289
|
var SOCKS_VERSION = 5;
|
|
30982
31290
|
var AUTH_METHODS = {
|
|
30983
31291
|
NO_AUTH: 0,
|
|
@@ -31046,7 +31354,7 @@ var require_socks5_client = __commonJS({
|
|
|
31046
31354
|
*/
|
|
31047
31355
|
onData(data) {
|
|
31048
31356
|
debug("received data", data.length, "bytes in state", this.state);
|
|
31049
|
-
this.buffer =
|
|
31357
|
+
this.buffer = Buffer4.concat([this.buffer, data]);
|
|
31050
31358
|
try {
|
|
31051
31359
|
switch (this.state) {
|
|
31052
31360
|
case STATES.HANDSHAKING:
|
|
@@ -31101,7 +31409,7 @@ var require_socks5_client = __commonJS({
|
|
|
31101
31409
|
}
|
|
31102
31410
|
debug("starting handshake with", this.authMethods.length, "auth methods");
|
|
31103
31411
|
this.state = STATES.HANDSHAKING;
|
|
31104
|
-
const request =
|
|
31412
|
+
const request = Buffer4.alloc(2 + this.authMethods.length);
|
|
31105
31413
|
request[0] = SOCKS_VERSION;
|
|
31106
31414
|
request[1] = this.authMethods.length;
|
|
31107
31415
|
this.authMethods.forEach((method, i) => {
|
|
@@ -31144,12 +31452,12 @@ var require_socks5_client = __commonJS({
|
|
|
31144
31452
|
throw new InvalidArgumentError("Username and password required for authentication");
|
|
31145
31453
|
}
|
|
31146
31454
|
debug("sending username/password auth");
|
|
31147
|
-
const usernameBuffer =
|
|
31148
|
-
const passwordBuffer =
|
|
31455
|
+
const usernameBuffer = Buffer4.from(username);
|
|
31456
|
+
const passwordBuffer = Buffer4.from(password);
|
|
31149
31457
|
if (usernameBuffer.length > 255 || passwordBuffer.length > 255) {
|
|
31150
31458
|
throw new InvalidArgumentError("Username or password too long");
|
|
31151
31459
|
}
|
|
31152
|
-
const request =
|
|
31460
|
+
const request = Buffer4.alloc(3 + usernameBuffer.length + passwordBuffer.length);
|
|
31153
31461
|
request[0] = 1;
|
|
31154
31462
|
request[1] = usernameBuffer.length;
|
|
31155
31463
|
usernameBuffer.copy(request, 2);
|
|
@@ -31198,7 +31506,7 @@ var require_socks5_client = __commonJS({
|
|
|
31198
31506
|
*/
|
|
31199
31507
|
buildConnectRequest(command, address, port) {
|
|
31200
31508
|
const { type: addressType, buffer: addressBuffer } = parseAddress(address);
|
|
31201
|
-
const request =
|
|
31509
|
+
const request = Buffer4.alloc(4 + addressBuffer.length + 2);
|
|
31202
31510
|
request[0] = SOCKS_VERSION;
|
|
31203
31511
|
request[1] = command;
|
|
31204
31512
|
request[2] = 0;
|
|
@@ -31907,7 +32215,7 @@ var require_env_http_proxy_agent = __commonJS({
|
|
|
31907
32215
|
var require_retry_handler = __commonJS({
|
|
31908
32216
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/retry-handler.js"(exports, module) {
|
|
31909
32217
|
"use strict";
|
|
31910
|
-
var
|
|
32218
|
+
var assert7 = __require("node:assert");
|
|
31911
32219
|
var { kRetryHandlerDefaultRetry } = require_symbols();
|
|
31912
32220
|
var { RequestRetryError } = require_errors();
|
|
31913
32221
|
var WrapHandler = require_wrap_handler();
|
|
@@ -32113,8 +32421,8 @@ var require_retry_handler = __commonJS({
|
|
|
32113
32421
|
}
|
|
32114
32422
|
validatePartialResponseContentLength(headers, contentRange, statusCode, this.retryCount);
|
|
32115
32423
|
const { start: start3, size, end = size ? size - 1 : null } = contentRange;
|
|
32116
|
-
|
|
32117
|
-
|
|
32424
|
+
assert7(this.start === start3, "content-range mismatch");
|
|
32425
|
+
assert7(this.end == null || this.end === end, "content-range mismatch");
|
|
32118
32426
|
return;
|
|
32119
32427
|
}
|
|
32120
32428
|
if (this.end == null) {
|
|
@@ -32132,11 +32440,11 @@ var require_retry_handler = __commonJS({
|
|
|
32132
32440
|
}
|
|
32133
32441
|
validatePartialResponseContentLength(headers, range2, statusCode, this.retryCount);
|
|
32134
32442
|
const { start: start3, size, end = size ? size - 1 : null } = range2;
|
|
32135
|
-
|
|
32443
|
+
assert7(
|
|
32136
32444
|
start3 != null && Number.isFinite(start3),
|
|
32137
32445
|
"content-range mismatch"
|
|
32138
32446
|
);
|
|
32139
|
-
|
|
32447
|
+
assert7(end != null && Number.isFinite(end), "invalid content-length");
|
|
32140
32448
|
this.start = start3;
|
|
32141
32449
|
this.end = end;
|
|
32142
32450
|
}
|
|
@@ -32144,8 +32452,8 @@ var require_retry_handler = __commonJS({
|
|
|
32144
32452
|
const contentLength2 = headers["content-length"];
|
|
32145
32453
|
this.end = contentLength2 != null ? Number(contentLength2) - 1 : null;
|
|
32146
32454
|
}
|
|
32147
|
-
|
|
32148
|
-
|
|
32455
|
+
assert7(Number.isFinite(this.start));
|
|
32456
|
+
assert7(
|
|
32149
32457
|
this.end == null || Number.isFinite(this.end),
|
|
32150
32458
|
"invalid content-length"
|
|
32151
32459
|
);
|
|
@@ -32326,7 +32634,7 @@ var require_h2c_client = __commonJS({
|
|
|
32326
32634
|
var require_readable = __commonJS({
|
|
32327
32635
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/readable.js"(exports, module) {
|
|
32328
32636
|
"use strict";
|
|
32329
|
-
var
|
|
32637
|
+
var assert7 = __require("node:assert");
|
|
32330
32638
|
var { Readable } = __require("node:stream");
|
|
32331
32639
|
var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = require_errors();
|
|
32332
32640
|
var util = require_util();
|
|
@@ -32523,7 +32831,7 @@ var require_readable = __commonJS({
|
|
|
32523
32831
|
this[kBody] = ReadableStreamFrom(this);
|
|
32524
32832
|
if (this[kConsume]) {
|
|
32525
32833
|
this[kBody].getReader();
|
|
32526
|
-
|
|
32834
|
+
assert7(this[kBody].locked);
|
|
32527
32835
|
}
|
|
32528
32836
|
}
|
|
32529
32837
|
return this[kBody];
|
|
@@ -32594,7 +32902,7 @@ var require_readable = __commonJS({
|
|
|
32594
32902
|
}
|
|
32595
32903
|
__name(isUnusable, "isUnusable");
|
|
32596
32904
|
function consume(stream, type) {
|
|
32597
|
-
|
|
32905
|
+
assert7(!stream[kConsume]);
|
|
32598
32906
|
return new Promise((resolve3, reject) => {
|
|
32599
32907
|
if (isUnusable(stream)) {
|
|
32600
32908
|
const rState = stream._readableState;
|
|
@@ -32740,7 +33048,7 @@ var require_readable = __commonJS({
|
|
|
32740
33048
|
var require_api_request = __commonJS({
|
|
32741
33049
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-request.js"(exports, module) {
|
|
32742
33050
|
"use strict";
|
|
32743
|
-
var
|
|
33051
|
+
var assert7 = __require("node:assert");
|
|
32744
33052
|
var { AsyncResource } = __require("node:async_hooks");
|
|
32745
33053
|
var { Readable } = require_readable();
|
|
32746
33054
|
var { InvalidArgumentError, RequestAbortedError } = require_errors();
|
|
@@ -32811,7 +33119,7 @@ var require_api_request = __commonJS({
|
|
|
32811
33119
|
abort(this.reason);
|
|
32812
33120
|
return;
|
|
32813
33121
|
}
|
|
32814
|
-
|
|
33122
|
+
assert7(this.callback);
|
|
32815
33123
|
this.abort = abort;
|
|
32816
33124
|
this.context = context2;
|
|
32817
33125
|
}
|
|
@@ -32978,7 +33286,7 @@ var require_abort_signal = __commonJS({
|
|
|
32978
33286
|
var require_api_stream = __commonJS({
|
|
32979
33287
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-stream.js"(exports, module) {
|
|
32980
33288
|
"use strict";
|
|
32981
|
-
var
|
|
33289
|
+
var assert7 = __require("node:assert");
|
|
32982
33290
|
var { finished } = __require("node:stream");
|
|
32983
33291
|
var { AsyncResource } = __require("node:async_hooks");
|
|
32984
33292
|
var { InvalidArgumentError, InvalidReturnValueError } = require_errors();
|
|
@@ -33041,7 +33349,7 @@ var require_api_stream = __commonJS({
|
|
|
33041
33349
|
abort(this.reason);
|
|
33042
33350
|
return;
|
|
33043
33351
|
}
|
|
33044
|
-
|
|
33352
|
+
assert7(this.callback);
|
|
33045
33353
|
this.abort = abort;
|
|
33046
33354
|
this.context = context2;
|
|
33047
33355
|
}
|
|
@@ -33149,7 +33457,7 @@ var require_api_pipeline = __commonJS({
|
|
|
33149
33457
|
Duplex,
|
|
33150
33458
|
PassThrough
|
|
33151
33459
|
} = __require("node:stream");
|
|
33152
|
-
var
|
|
33460
|
+
var assert7 = __require("node:assert");
|
|
33153
33461
|
var { AsyncResource } = __require("node:async_hooks");
|
|
33154
33462
|
var {
|
|
33155
33463
|
InvalidArgumentError,
|
|
@@ -33273,7 +33581,7 @@ var require_api_pipeline = __commonJS({
|
|
|
33273
33581
|
abort(this.reason);
|
|
33274
33582
|
return;
|
|
33275
33583
|
}
|
|
33276
|
-
|
|
33584
|
+
assert7(!res, "pipeline cannot be retried");
|
|
33277
33585
|
this.abort = abort;
|
|
33278
33586
|
this.context = context2;
|
|
33279
33587
|
}
|
|
@@ -33358,7 +33666,7 @@ var require_api_upgrade = __commonJS({
|
|
|
33358
33666
|
"use strict";
|
|
33359
33667
|
var { InvalidArgumentError, SocketError } = require_errors();
|
|
33360
33668
|
var { AsyncResource } = __require("node:async_hooks");
|
|
33361
|
-
var
|
|
33669
|
+
var assert7 = __require("node:assert");
|
|
33362
33670
|
var util = require_util();
|
|
33363
33671
|
var { kHTTP2Stream } = require_symbols();
|
|
33364
33672
|
var { addSignal, removeSignal } = require_abort_signal();
|
|
@@ -33390,7 +33698,7 @@ var require_api_upgrade = __commonJS({
|
|
|
33390
33698
|
abort(this.reason);
|
|
33391
33699
|
return;
|
|
33392
33700
|
}
|
|
33393
|
-
|
|
33701
|
+
assert7(this.callback);
|
|
33394
33702
|
this.abort = abort;
|
|
33395
33703
|
this.context = null;
|
|
33396
33704
|
}
|
|
@@ -33398,7 +33706,7 @@ var require_api_upgrade = __commonJS({
|
|
|
33398
33706
|
throw new SocketError("bad upgrade", null);
|
|
33399
33707
|
}
|
|
33400
33708
|
onUpgrade(statusCode, rawHeaders, socket) {
|
|
33401
|
-
|
|
33709
|
+
assert7(socket[kHTTP2Stream] === true ? statusCode === 200 : statusCode === 101);
|
|
33402
33710
|
const { callback, opaque, context: context2 } = this;
|
|
33403
33711
|
removeSignal(this);
|
|
33404
33712
|
this.callback = null;
|
|
@@ -33454,7 +33762,7 @@ var require_api_upgrade = __commonJS({
|
|
|
33454
33762
|
var require_api_connect = __commonJS({
|
|
33455
33763
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/api/api-connect.js"(exports, module) {
|
|
33456
33764
|
"use strict";
|
|
33457
|
-
var
|
|
33765
|
+
var assert7 = __require("node:assert");
|
|
33458
33766
|
var { AsyncResource } = __require("node:async_hooks");
|
|
33459
33767
|
var { InvalidArgumentError, SocketError } = require_errors();
|
|
33460
33768
|
var util = require_util();
|
|
@@ -33486,7 +33794,7 @@ var require_api_connect = __commonJS({
|
|
|
33486
33794
|
abort(this.reason);
|
|
33487
33795
|
return;
|
|
33488
33796
|
}
|
|
33489
|
-
|
|
33797
|
+
assert7(this.callback);
|
|
33490
33798
|
this.abort = abort;
|
|
33491
33799
|
this.context = context2;
|
|
33492
33800
|
}
|
|
@@ -34537,7 +34845,7 @@ var require_mock_pool = __commonJS({
|
|
|
34537
34845
|
var require_pending_interceptors_formatter = __commonJS({
|
|
34538
34846
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module) {
|
|
34539
34847
|
"use strict";
|
|
34540
|
-
var { Transform } = __require("node:stream");
|
|
34848
|
+
var { Transform: Transform2 } = __require("node:stream");
|
|
34541
34849
|
var { Console } = __require("node:console");
|
|
34542
34850
|
var PERSISTENT = process.versions.icu ? "\u2705" : "Y ";
|
|
34543
34851
|
var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N ";
|
|
@@ -34546,7 +34854,7 @@ var require_pending_interceptors_formatter = __commonJS({
|
|
|
34546
34854
|
__name(this, "PendingInterceptorsFormatter");
|
|
34547
34855
|
}
|
|
34548
34856
|
constructor({ disableColors } = {}) {
|
|
34549
|
-
this.transform = new
|
|
34857
|
+
this.transform = new Transform2({
|
|
34550
34858
|
transform(chunk, _enc, cb) {
|
|
34551
34859
|
cb(null, chunk);
|
|
34552
34860
|
}
|
|
@@ -35588,7 +35896,7 @@ var require_global2 = __commonJS({
|
|
|
35588
35896
|
var require_decorator_handler = __commonJS({
|
|
35589
35897
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/decorator-handler.js"(exports, module) {
|
|
35590
35898
|
"use strict";
|
|
35591
|
-
var
|
|
35899
|
+
var assert7 = __require("node:assert");
|
|
35592
35900
|
var WrapHandler = require_wrap_handler();
|
|
35593
35901
|
module.exports = class DecoratorHandler {
|
|
35594
35902
|
static {
|
|
@@ -35608,25 +35916,25 @@ var require_decorator_handler = __commonJS({
|
|
|
35608
35916
|
this.#handler.onRequestStart?.(...args);
|
|
35609
35917
|
}
|
|
35610
35918
|
onRequestUpgrade(...args) {
|
|
35611
|
-
|
|
35612
|
-
|
|
35919
|
+
assert7(!this.#onCompleteCalled);
|
|
35920
|
+
assert7(!this.#onErrorCalled);
|
|
35613
35921
|
return this.#handler.onRequestUpgrade?.(...args);
|
|
35614
35922
|
}
|
|
35615
35923
|
onResponseStart(...args) {
|
|
35616
|
-
|
|
35617
|
-
|
|
35618
|
-
|
|
35924
|
+
assert7(!this.#onCompleteCalled);
|
|
35925
|
+
assert7(!this.#onErrorCalled);
|
|
35926
|
+
assert7(!this.#onResponseStartCalled);
|
|
35619
35927
|
this.#onResponseStartCalled = true;
|
|
35620
35928
|
return this.#handler.onResponseStart?.(...args);
|
|
35621
35929
|
}
|
|
35622
35930
|
onResponseData(...args) {
|
|
35623
|
-
|
|
35624
|
-
|
|
35931
|
+
assert7(!this.#onCompleteCalled);
|
|
35932
|
+
assert7(!this.#onErrorCalled);
|
|
35625
35933
|
return this.#handler.onResponseData?.(...args);
|
|
35626
35934
|
}
|
|
35627
35935
|
onResponseEnd(...args) {
|
|
35628
|
-
|
|
35629
|
-
|
|
35936
|
+
assert7(!this.#onCompleteCalled);
|
|
35937
|
+
assert7(!this.#onErrorCalled);
|
|
35630
35938
|
this.#onCompleteCalled = true;
|
|
35631
35939
|
return this.#handler.onResponseEnd?.(...args);
|
|
35632
35940
|
}
|
|
@@ -35649,7 +35957,7 @@ var require_redirect_handler = __commonJS({
|
|
|
35649
35957
|
"use strict";
|
|
35650
35958
|
var util = require_util();
|
|
35651
35959
|
var { kBodyUsed } = require_symbols();
|
|
35652
|
-
var
|
|
35960
|
+
var assert7 = __require("node:assert");
|
|
35653
35961
|
var { InvalidArgumentError } = require_errors();
|
|
35654
35962
|
var EE = __require("node:events");
|
|
35655
35963
|
var redirectableStatusCodes = [300, 301, 302, 303, 307, 308];
|
|
@@ -35665,7 +35973,7 @@ var require_redirect_handler = __commonJS({
|
|
|
35665
35973
|
this[kBodyUsed] = false;
|
|
35666
35974
|
}
|
|
35667
35975
|
async *[Symbol.asyncIterator]() {
|
|
35668
|
-
|
|
35976
|
+
assert7(!this[kBodyUsed], "disturbed");
|
|
35669
35977
|
this[kBodyUsed] = true;
|
|
35670
35978
|
yield* this[kBody];
|
|
35671
35979
|
}
|
|
@@ -35695,7 +36003,7 @@ var require_redirect_handler = __commonJS({
|
|
|
35695
36003
|
if (util.isStream(this.opts.body)) {
|
|
35696
36004
|
if (util.bodyLength(this.opts.body) === 0) {
|
|
35697
36005
|
this.opts.body.on("data", function() {
|
|
35698
|
-
|
|
36006
|
+
assert7(false);
|
|
35699
36007
|
});
|
|
35700
36008
|
}
|
|
35701
36009
|
if (typeof this.opts.body.readableDidRead !== "boolean") {
|
|
@@ -35802,7 +36110,7 @@ var require_redirect_handler = __commonJS({
|
|
|
35802
36110
|
}
|
|
35803
36111
|
}
|
|
35804
36112
|
} else {
|
|
35805
|
-
|
|
36113
|
+
assert7(headers == null, "headers must be an object or an array");
|
|
35806
36114
|
}
|
|
35807
36115
|
return ret;
|
|
35808
36116
|
}
|
|
@@ -38253,7 +38561,7 @@ var require_memory_cache_store = __commonJS({
|
|
|
38253
38561
|
var require_cache_revalidation_handler = __commonJS({
|
|
38254
38562
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports, module) {
|
|
38255
38563
|
"use strict";
|
|
38256
|
-
var
|
|
38564
|
+
var assert7 = __require("node:assert");
|
|
38257
38565
|
var CacheRevalidationHandler = class {
|
|
38258
38566
|
static {
|
|
38259
38567
|
__name(this, "CacheRevalidationHandler");
|
|
@@ -38293,7 +38601,7 @@ var require_cache_revalidation_handler = __commonJS({
|
|
|
38293
38601
|
this.#handler.onRequestUpgrade?.(controller, statusCode, headers, socket);
|
|
38294
38602
|
}
|
|
38295
38603
|
onResponseStart(controller, statusCode, headers, statusMessage) {
|
|
38296
|
-
|
|
38604
|
+
assert7(this.#callback != null);
|
|
38297
38605
|
this.#successful = statusCode === 304 || this.#allowErrorStatusCodes && statusCode >= 500 && statusCode <= 504;
|
|
38298
38606
|
this.#callback(this.#successful, this.#context, statusCode, headers);
|
|
38299
38607
|
this.#callback = null;
|
|
@@ -38343,7 +38651,7 @@ var require_cache_revalidation_handler = __commonJS({
|
|
|
38343
38651
|
var require_cache3 = __commonJS({
|
|
38344
38652
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/interceptor/cache.js"(exports, module) {
|
|
38345
38653
|
"use strict";
|
|
38346
|
-
var
|
|
38654
|
+
var assert7 = __require("node:assert");
|
|
38347
38655
|
var { Readable } = __require("node:stream");
|
|
38348
38656
|
var util = require_util();
|
|
38349
38657
|
var CacheHandler = require_cache_handler();
|
|
@@ -38528,8 +38836,8 @@ var require_cache3 = __commonJS({
|
|
|
38528
38836
|
__name(handleUncachedResponse, "handleUncachedResponse");
|
|
38529
38837
|
function sendCachedValue(handler, opts, result2, age, context2, isStale2) {
|
|
38530
38838
|
const stream = util.isStream(result2.body) ? result2.body : Readable.from(result2.body ?? []);
|
|
38531
|
-
|
|
38532
|
-
|
|
38839
|
+
assert7(!stream.destroyed, "stream should not be destroyed");
|
|
38840
|
+
assert7(!stream.readableDidRead, "stream should not be readableDidRead");
|
|
38533
38841
|
const controller = {
|
|
38534
38842
|
resume() {
|
|
38535
38843
|
stream.resume();
|
|
@@ -39808,7 +40116,7 @@ var require_headers2 = __commonJS({
|
|
|
39808
40116
|
isValidHeaderValue
|
|
39809
40117
|
} = require_util2();
|
|
39810
40118
|
var { webidl } = require_webidl();
|
|
39811
|
-
var
|
|
40119
|
+
var assert7 = __require("node:assert");
|
|
39812
40120
|
var util = __require("node:util");
|
|
39813
40121
|
function isHTTPWhiteSpaceCharCode(code3) {
|
|
39814
40122
|
return code3 === 10 || code3 === 13 || code3 === 9 || code3 === 32;
|
|
@@ -40033,11 +40341,11 @@ var require_headers2 = __commonJS({
|
|
|
40033
40341
|
const iterator = this.headersMap[Symbol.iterator]();
|
|
40034
40342
|
const firstValue = iterator.next().value;
|
|
40035
40343
|
array3[0] = [firstValue[0], firstValue[1].value];
|
|
40036
|
-
|
|
40344
|
+
assert7(firstValue[1].value !== null);
|
|
40037
40345
|
for (let i = 1, j = 0, right = 0, left = 0, pivot = 0, x, value; i < size; ++i) {
|
|
40038
40346
|
value = iterator.next().value;
|
|
40039
40347
|
x = array3[i] = [value[0], value[1].value];
|
|
40040
|
-
|
|
40348
|
+
assert7(x[1] !== null);
|
|
40041
40349
|
left = 0;
|
|
40042
40350
|
right = i;
|
|
40043
40351
|
while (left < right) {
|
|
@@ -40064,7 +40372,7 @@ var require_headers2 = __commonJS({
|
|
|
40064
40372
|
let i = 0;
|
|
40065
40373
|
for (const { 0: name, 1: { value } } of this.headersMap) {
|
|
40066
40374
|
array3[i++] = [name, value];
|
|
40067
|
-
|
|
40375
|
+
assert7(value !== null);
|
|
40068
40376
|
}
|
|
40069
40377
|
return array3.sort(compareHeaderName);
|
|
40070
40378
|
}
|
|
@@ -40292,7 +40600,7 @@ var require_response = __commonJS({
|
|
|
40292
40600
|
var { webidl } = require_webidl();
|
|
40293
40601
|
var { URLSerializer } = require_data_url();
|
|
40294
40602
|
var { kConstruct } = require_symbols();
|
|
40295
|
-
var
|
|
40603
|
+
var assert7 = __require("node:assert");
|
|
40296
40604
|
var { isomorphicEncode, serializeJavascriptValueToJSONString } = require_infra();
|
|
40297
40605
|
var textEncoder2 = new TextEncoder("utf-8");
|
|
40298
40606
|
var Response2 = class _Response {
|
|
@@ -40556,7 +40864,7 @@ var require_response = __commonJS({
|
|
|
40556
40864
|
return p in state ? state[p] : target2[p];
|
|
40557
40865
|
},
|
|
40558
40866
|
set(target2, p, value) {
|
|
40559
|
-
|
|
40867
|
+
assert7(!(p in state));
|
|
40560
40868
|
target2[p] = value;
|
|
40561
40869
|
return true;
|
|
40562
40870
|
}
|
|
@@ -40591,12 +40899,12 @@ var require_response = __commonJS({
|
|
|
40591
40899
|
body: null
|
|
40592
40900
|
});
|
|
40593
40901
|
} else {
|
|
40594
|
-
|
|
40902
|
+
assert7(false);
|
|
40595
40903
|
}
|
|
40596
40904
|
}
|
|
40597
40905
|
__name(filterResponse, "filterResponse");
|
|
40598
40906
|
function makeAppropriateNetworkError(fetchParams, err = null) {
|
|
40599
|
-
|
|
40907
|
+
assert7(isCancelled(fetchParams));
|
|
40600
40908
|
return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err }));
|
|
40601
40909
|
}
|
|
40602
40910
|
__name(makeAppropriateNetworkError, "makeAppropriateNetworkError");
|
|
@@ -40730,7 +41038,7 @@ var require_request2 = __commonJS({
|
|
|
40730
41038
|
var { webidl } = require_webidl();
|
|
40731
41039
|
var { URLSerializer } = require_data_url();
|
|
40732
41040
|
var { kConstruct } = require_symbols();
|
|
40733
|
-
var
|
|
41041
|
+
var assert7 = __require("node:assert");
|
|
40734
41042
|
var { getMaxListeners, setMaxListeners, defaultMaxListeners } = __require("node:events");
|
|
40735
41043
|
var kAbortController = /* @__PURE__ */ Symbol("abortController");
|
|
40736
41044
|
var requestFinalizer = new FinalizationRegistry(({ signal, abort }) => {
|
|
@@ -40811,7 +41119,7 @@ var require_request2 = __commonJS({
|
|
|
40811
41119
|
request = makeRequest2({ urlList: [parsedURL] });
|
|
40812
41120
|
fallbackMode = "cors";
|
|
40813
41121
|
} else {
|
|
40814
|
-
|
|
41122
|
+
assert7(webidl.is.Request(input));
|
|
40815
41123
|
request = input.#state;
|
|
40816
41124
|
signal = input.#signal;
|
|
40817
41125
|
this.#dispatcher = init.dispatcher || input.#dispatcher;
|
|
@@ -41471,7 +41779,7 @@ var require_request2 = __commonJS({
|
|
|
41471
41779
|
var require_subresource_integrity = __commonJS({
|
|
41472
41780
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports, module) {
|
|
41473
41781
|
"use strict";
|
|
41474
|
-
var
|
|
41782
|
+
var assert7 = __require("node:assert");
|
|
41475
41783
|
var { runtimeFeatures } = require_runtime_features();
|
|
41476
41784
|
var validSRIHashAlgorithmTokenSet = /* @__PURE__ */ new Map([["sha256", 0], ["sha384", 1], ["sha512", 2]]);
|
|
41477
41785
|
var crypto4;
|
|
@@ -41519,7 +41827,7 @@ var require_subresource_integrity = __commonJS({
|
|
|
41519
41827
|
const result2 = [];
|
|
41520
41828
|
let strongest = null;
|
|
41521
41829
|
for (const item of metadataList) {
|
|
41522
|
-
|
|
41830
|
+
assert7(isValidSRIHashAlgorithm(item.alg), "Invalid SRI hash algorithm token");
|
|
41523
41831
|
if (result2.length === 0) {
|
|
41524
41832
|
result2.push(item);
|
|
41525
41833
|
strongest = item;
|
|
@@ -41623,7 +41931,7 @@ var require_fetch = __commonJS({
|
|
|
41623
41931
|
} = require_response();
|
|
41624
41932
|
var { HeadersList } = require_headers2();
|
|
41625
41933
|
var { Request: Request2, cloneRequest, getRequestDispatcher, getRequestState } = require_request2();
|
|
41626
|
-
var
|
|
41934
|
+
var zlib2 = __require("node:zlib");
|
|
41627
41935
|
var {
|
|
41628
41936
|
makePolicyContainer,
|
|
41629
41937
|
clonePolicyContainer,
|
|
@@ -41658,7 +41966,7 @@ var require_fetch = __commonJS({
|
|
|
41658
41966
|
includesCredentials,
|
|
41659
41967
|
isTraversableNavigable
|
|
41660
41968
|
} = require_util2();
|
|
41661
|
-
var
|
|
41969
|
+
var assert7 = __require("node:assert");
|
|
41662
41970
|
var { safelyExtractBody, extractBody } = require_body();
|
|
41663
41971
|
var {
|
|
41664
41972
|
redirectStatusSet,
|
|
@@ -41745,7 +42053,7 @@ var require_fetch = __commonJS({
|
|
|
41745
42053
|
requestObject.signal,
|
|
41746
42054
|
() => {
|
|
41747
42055
|
locallyAborted = true;
|
|
41748
|
-
|
|
42056
|
+
assert7(controller != null);
|
|
41749
42057
|
controller.abort(requestObject.signal.reason);
|
|
41750
42058
|
const realResponse = responseObject?.deref();
|
|
41751
42059
|
abortFetch(p, request, realResponse, requestObject.signal.reason, controller.controller);
|
|
@@ -41851,7 +42159,7 @@ var require_fetch = __commonJS({
|
|
|
41851
42159
|
requestObject = null
|
|
41852
42160
|
// Keep alive to prevent AbortController GC, see #4627
|
|
41853
42161
|
}) {
|
|
41854
|
-
|
|
42162
|
+
assert7(dispatcher);
|
|
41855
42163
|
let taskDestination = null;
|
|
41856
42164
|
let crossOriginIsolatedCapability = false;
|
|
41857
42165
|
if (request.client != null) {
|
|
@@ -41876,7 +42184,7 @@ var require_fetch = __commonJS({
|
|
|
41876
42184
|
// Keep requestObject alive to prevent its AbortController from being GC'd
|
|
41877
42185
|
requestObject
|
|
41878
42186
|
};
|
|
41879
|
-
|
|
42187
|
+
assert7(!request.body || request.body.stream);
|
|
41880
42188
|
if (request.window === "client") {
|
|
41881
42189
|
request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window";
|
|
41882
42190
|
}
|
|
@@ -41966,7 +42274,7 @@ var require_fetch = __commonJS({
|
|
|
41966
42274
|
} else if (request.responseTainting === "opaque") {
|
|
41967
42275
|
response = filterResponse(response, "opaque");
|
|
41968
42276
|
} else {
|
|
41969
|
-
|
|
42277
|
+
assert7(false);
|
|
41970
42278
|
}
|
|
41971
42279
|
}
|
|
41972
42280
|
let internalResponse = response.status === 0 ? response : response.internalResponse;
|
|
@@ -42200,7 +42508,7 @@ var require_fetch = __commonJS({
|
|
|
42200
42508
|
} else if (request.redirect === "follow") {
|
|
42201
42509
|
response = await httpRedirectFetch(fetchParams, response);
|
|
42202
42510
|
} else {
|
|
42203
|
-
|
|
42511
|
+
assert7(false);
|
|
42204
42512
|
}
|
|
42205
42513
|
}
|
|
42206
42514
|
response.timingInfo = timingInfo;
|
|
@@ -42254,7 +42562,7 @@ var require_fetch = __commonJS({
|
|
|
42254
42562
|
request.headersList.delete("host", true);
|
|
42255
42563
|
}
|
|
42256
42564
|
if (request.body != null) {
|
|
42257
|
-
|
|
42565
|
+
assert7(request.body.source != null);
|
|
42258
42566
|
request.body = safelyExtractBody(request.body.source)[0];
|
|
42259
42567
|
}
|
|
42260
42568
|
const timingInfo = fetchParams.timingInfo;
|
|
@@ -42416,7 +42724,7 @@ var require_fetch = __commonJS({
|
|
|
42416
42724
|
}
|
|
42417
42725
|
__name(httpNetworkOrCacheFetch, "httpNetworkOrCacheFetch");
|
|
42418
42726
|
async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) {
|
|
42419
|
-
|
|
42727
|
+
assert7(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed);
|
|
42420
42728
|
fetchParams.controller.connection = {
|
|
42421
42729
|
abort: null,
|
|
42422
42730
|
destroyed: false,
|
|
@@ -42641,28 +42949,28 @@ var require_fetch = __commonJS({
|
|
|
42641
42949
|
for (let i = codings.length - 1; i >= 0; --i) {
|
|
42642
42950
|
const coding = codings[i].trim();
|
|
42643
42951
|
if (coding === "x-gzip" || coding === "gzip") {
|
|
42644
|
-
decoders.push(
|
|
42952
|
+
decoders.push(zlib2.createGunzip({
|
|
42645
42953
|
// Be less strict when decoding compressed responses, since sometimes
|
|
42646
42954
|
// servers send slightly invalid responses that are still accepted
|
|
42647
42955
|
// by common browsers.
|
|
42648
42956
|
// Always using Z_SYNC_FLUSH is what cURL does.
|
|
42649
|
-
flush:
|
|
42650
|
-
finishFlush:
|
|
42957
|
+
flush: zlib2.constants.Z_SYNC_FLUSH,
|
|
42958
|
+
finishFlush: zlib2.constants.Z_SYNC_FLUSH
|
|
42651
42959
|
}));
|
|
42652
42960
|
} else if (coding === "deflate") {
|
|
42653
42961
|
decoders.push(createInflate({
|
|
42654
|
-
flush:
|
|
42655
|
-
finishFlush:
|
|
42962
|
+
flush: zlib2.constants.Z_SYNC_FLUSH,
|
|
42963
|
+
finishFlush: zlib2.constants.Z_SYNC_FLUSH
|
|
42656
42964
|
}));
|
|
42657
42965
|
} else if (coding === "br") {
|
|
42658
|
-
decoders.push(
|
|
42659
|
-
flush:
|
|
42660
|
-
finishFlush:
|
|
42966
|
+
decoders.push(zlib2.createBrotliDecompress({
|
|
42967
|
+
flush: zlib2.constants.BROTLI_OPERATION_FLUSH,
|
|
42968
|
+
finishFlush: zlib2.constants.BROTLI_OPERATION_FLUSH
|
|
42661
42969
|
}));
|
|
42662
42970
|
} else if (coding === "zstd" && hasZstd) {
|
|
42663
|
-
decoders.push(
|
|
42664
|
-
flush:
|
|
42665
|
-
finishFlush:
|
|
42971
|
+
decoders.push(zlib2.createZstdDecompress({
|
|
42972
|
+
flush: zlib2.constants.ZSTD_e_continue,
|
|
42973
|
+
finishFlush: zlib2.constants.ZSTD_e_end
|
|
42666
42974
|
}));
|
|
42667
42975
|
} else {
|
|
42668
42976
|
decoders.length = 0;
|
|
@@ -42775,7 +43083,7 @@ var require_fetch = __commonJS({
|
|
|
42775
43083
|
var require_util3 = __commonJS({
|
|
42776
43084
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/util.js"(exports, module) {
|
|
42777
43085
|
"use strict";
|
|
42778
|
-
var
|
|
43086
|
+
var assert7 = __require("node:assert");
|
|
42779
43087
|
var { URLSerializer } = require_data_url();
|
|
42780
43088
|
var { isValidHeaderName } = require_util2();
|
|
42781
43089
|
function urlEquals(A, B, excludeFragment = false) {
|
|
@@ -42785,7 +43093,7 @@ var require_util3 = __commonJS({
|
|
|
42785
43093
|
}
|
|
42786
43094
|
__name(urlEquals, "urlEquals");
|
|
42787
43095
|
function getFieldValues(header) {
|
|
42788
|
-
|
|
43096
|
+
assert7(header !== null);
|
|
42789
43097
|
const values = [];
|
|
42790
43098
|
for (let value of header.split(",")) {
|
|
42791
43099
|
value = value.trim();
|
|
@@ -42807,7 +43115,7 @@ var require_util3 = __commonJS({
|
|
|
42807
43115
|
var require_cache4 = __commonJS({
|
|
42808
43116
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/cache/cache.js"(exports, module) {
|
|
42809
43117
|
"use strict";
|
|
42810
|
-
var
|
|
43118
|
+
var assert7 = __require("node:assert");
|
|
42811
43119
|
var { kConstruct } = require_symbols();
|
|
42812
43120
|
var { urlEquals, getFieldValues } = require_util3();
|
|
42813
43121
|
var { kEnumerableProperty, isDisturbed } = require_util();
|
|
@@ -43060,7 +43368,7 @@ var require_cache4 = __commonJS({
|
|
|
43060
43368
|
return false;
|
|
43061
43369
|
}
|
|
43062
43370
|
} else {
|
|
43063
|
-
|
|
43371
|
+
assert7(typeof request === "string");
|
|
43064
43372
|
r = getRequestState(new Request2(request));
|
|
43065
43373
|
}
|
|
43066
43374
|
const operations = [];
|
|
@@ -43171,7 +43479,7 @@ var require_cache4 = __commonJS({
|
|
|
43171
43479
|
}
|
|
43172
43480
|
for (const requestResponse of requestResponses) {
|
|
43173
43481
|
const idx = cache.indexOf(requestResponse);
|
|
43174
|
-
|
|
43482
|
+
assert7(idx !== -1);
|
|
43175
43483
|
cache.splice(idx, 1);
|
|
43176
43484
|
}
|
|
43177
43485
|
} else if (operation.type === "put") {
|
|
@@ -43203,7 +43511,7 @@ var require_cache4 = __commonJS({
|
|
|
43203
43511
|
requestResponses = this.#queryCache(operation.request);
|
|
43204
43512
|
for (const requestResponse of requestResponses) {
|
|
43205
43513
|
const idx = cache.indexOf(requestResponse);
|
|
43206
|
-
|
|
43514
|
+
assert7(idx !== -1);
|
|
43207
43515
|
cache.splice(idx, 1);
|
|
43208
43516
|
}
|
|
43209
43517
|
cache.push([operation.request, operation.response]);
|
|
@@ -43705,7 +44013,7 @@ var require_parse2 = __commonJS({
|
|
|
43705
44013
|
var { collectASequenceOfCodePointsFast } = require_infra();
|
|
43706
44014
|
var { maxNameValuePairSize, maxAttributeValueSize } = require_constants6();
|
|
43707
44015
|
var { isCTLExcludingHtab } = require_util4();
|
|
43708
|
-
var
|
|
44016
|
+
var assert7 = __require("node:assert");
|
|
43709
44017
|
function parseSetCookie(header) {
|
|
43710
44018
|
if (isCTLExcludingHtab(header)) {
|
|
43711
44019
|
return null;
|
|
@@ -43748,7 +44056,7 @@ var require_parse2 = __commonJS({
|
|
|
43748
44056
|
if (unparsedAttributes.length === 0) {
|
|
43749
44057
|
return cookieAttributeList;
|
|
43750
44058
|
}
|
|
43751
|
-
|
|
44059
|
+
assert7(unparsedAttributes[0] === ";");
|
|
43752
44060
|
unparsedAttributes = unparsedAttributes.slice(1);
|
|
43753
44061
|
let cookieAv = "";
|
|
43754
44062
|
if (unparsedAttributes.includes(";")) {
|
|
@@ -44623,7 +44931,7 @@ var require_connection = __commonJS({
|
|
|
44623
44931
|
var { Headers: Headers2, getHeadersList } = require_headers2();
|
|
44624
44932
|
var { getDecodeSplit } = require_util2();
|
|
44625
44933
|
var { WebsocketFrameSend } = require_frame();
|
|
44626
|
-
var
|
|
44934
|
+
var assert7 = __require("node:assert");
|
|
44627
44935
|
var { runtimeFeatures } = require_runtime_features();
|
|
44628
44936
|
var crypto4 = runtimeFeatures.has("crypto") ? __require("node:crypto") : null;
|
|
44629
44937
|
var warningEmitted = false;
|
|
@@ -44730,7 +45038,7 @@ var require_connection = __commonJS({
|
|
|
44730
45038
|
if (reason.length !== 0 && code3 === null) {
|
|
44731
45039
|
code3 = 1e3;
|
|
44732
45040
|
}
|
|
44733
|
-
|
|
45041
|
+
assert7(code3 === null || Number.isInteger(code3));
|
|
44734
45042
|
if (code3 === null && reason.length === 0) {
|
|
44735
45043
|
frame3.frameData = emptyBuffer;
|
|
44736
45044
|
} else if (code3 !== null && reason === null) {
|
|
@@ -44860,7 +45168,7 @@ var require_receiver2 = __commonJS({
|
|
|
44860
45168
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/websocket/receiver.js"(exports, module) {
|
|
44861
45169
|
"use strict";
|
|
44862
45170
|
var { Writable } = __require("node:stream");
|
|
44863
|
-
var
|
|
45171
|
+
var assert7 = __require("node:assert");
|
|
44864
45172
|
var { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants7();
|
|
44865
45173
|
var {
|
|
44866
45174
|
isValidStatusCode,
|
|
@@ -45147,7 +45455,7 @@ var require_receiver2 = __commonJS({
|
|
|
45147
45455
|
return output;
|
|
45148
45456
|
}
|
|
45149
45457
|
parseCloseBody(data) {
|
|
45150
|
-
|
|
45458
|
+
assert7(data.length !== 1);
|
|
45151
45459
|
let code3;
|
|
45152
45460
|
if (data.length >= 2) {
|
|
45153
45461
|
code3 = data.readUInt16BE(0);
|
|
@@ -46231,14 +46539,14 @@ var require_util6 = __commonJS({
|
|
|
46231
46539
|
var require_eventsource_stream = __commonJS({
|
|
46232
46540
|
"../../node_modules/.pnpm/undici@7.29.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module) {
|
|
46233
46541
|
"use strict";
|
|
46234
|
-
var { Transform } = __require("node:stream");
|
|
46542
|
+
var { Transform: Transform2 } = __require("node:stream");
|
|
46235
46543
|
var { isASCIINumber, isValidLastEventId } = require_util6();
|
|
46236
46544
|
var BOM = [239, 187, 191];
|
|
46237
46545
|
var LF = 10;
|
|
46238
46546
|
var CR = 13;
|
|
46239
46547
|
var COLON = 58;
|
|
46240
46548
|
var SPACE = 32;
|
|
46241
|
-
var EventSourceStream = class extends
|
|
46549
|
+
var EventSourceStream = class extends Transform2 {
|
|
46242
46550
|
static {
|
|
46243
46551
|
__name(this, "EventSourceStream");
|
|
46244
46552
|
}
|
|
@@ -47009,7 +47317,12 @@ function isDetachedArrayBufferQueueError(error95) {
|
|
|
47009
47317
|
return false;
|
|
47010
47318
|
}
|
|
47011
47319
|
function createQueue(config4) {
|
|
47012
|
-
const
|
|
47320
|
+
const agentOptions = getQueueAgentOptions();
|
|
47321
|
+
const nodeHttpAgents = isNodeHttpEnabled() ? createNodeHttpAgents({
|
|
47322
|
+
maxSockets: agentOptions.connections,
|
|
47323
|
+
keepAliveMs: agentOptions.keepAliveTimeout
|
|
47324
|
+
}) : void 0;
|
|
47325
|
+
const httpAgent = nodeHttpAgents ? void 0 : new import_undici.Agent(agentOptions);
|
|
47013
47326
|
const transport = new TypedJsonTransport();
|
|
47014
47327
|
const generateId3 = monotonicFactory2();
|
|
47015
47328
|
const semaphore = new import_async_sema.Sema(WORKFLOW_LOCAL_QUEUE_CONCURRENCY);
|
|
@@ -47070,13 +47383,24 @@ function createQueue(config4) {
|
|
|
47070
47383
|
response = await directHandler(req);
|
|
47071
47384
|
} else {
|
|
47072
47385
|
const baseUrl = await resolveBaseUrl(config4);
|
|
47073
|
-
|
|
47386
|
+
const url3 = createWorkflowUrl(baseUrl, { type: "flow" });
|
|
47387
|
+
response = nodeHttpAgents ? await nodeHttpFetch(url3, {
|
|
47074
47388
|
method: "POST",
|
|
47075
|
-
|
|
47076
|
-
|
|
47077
|
-
|
|
47078
|
-
|
|
47079
|
-
|
|
47389
|
+
headers: new Headers(headers),
|
|
47390
|
+
body,
|
|
47391
|
+
agents: nodeHttpAgents,
|
|
47392
|
+
headersTimeoutMs: agentOptions.headersTimeout,
|
|
47393
|
+
bodyTimeoutMs: agentOptions.bodyTimeout
|
|
47394
|
+
}) : (
|
|
47395
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
|
|
47396
|
+
await fetch(url3, {
|
|
47397
|
+
method: "POST",
|
|
47398
|
+
duplex: "half",
|
|
47399
|
+
dispatcher: httpAgent,
|
|
47400
|
+
headers,
|
|
47401
|
+
body
|
|
47402
|
+
})
|
|
47403
|
+
);
|
|
47080
47404
|
}
|
|
47081
47405
|
delivery++;
|
|
47082
47406
|
text = await response.text();
|
|
@@ -47203,7 +47527,9 @@ function createQueue(config4) {
|
|
|
47203
47527
|
if (closeSignal.aborted)
|
|
47204
47528
|
return;
|
|
47205
47529
|
closeController.abort();
|
|
47206
|
-
|
|
47530
|
+
if (nodeHttpAgents)
|
|
47531
|
+
destroyNodeHttpAgents(nodeHttpAgents);
|
|
47532
|
+
await httpAgent?.close();
|
|
47207
47533
|
}
|
|
47208
47534
|
};
|
|
47209
47535
|
}
|
|
@@ -47213,6 +47539,7 @@ var init_queue3 = __esm({
|
|
|
47213
47539
|
"use strict";
|
|
47214
47540
|
init_dist5();
|
|
47215
47541
|
init_dist6();
|
|
47542
|
+
init_node_http();
|
|
47216
47543
|
import_async_sema = __toESM(require_lib(), 1);
|
|
47217
47544
|
init_node2();
|
|
47218
47545
|
import_undici = __toESM(require_undici(), 1);
|
|
@@ -48352,7 +48679,7 @@ var require_signal_exit = __commonJS({
|
|
|
48352
48679
|
};
|
|
48353
48680
|
};
|
|
48354
48681
|
} else {
|
|
48355
|
-
|
|
48682
|
+
assert7 = __require("assert");
|
|
48356
48683
|
signals = require_signals();
|
|
48357
48684
|
isWin = /^win/i.test(process4.platform);
|
|
48358
48685
|
EE = __require("events");
|
|
@@ -48375,7 +48702,7 @@ var require_signal_exit = __commonJS({
|
|
|
48375
48702
|
return function() {
|
|
48376
48703
|
};
|
|
48377
48704
|
}
|
|
48378
|
-
|
|
48705
|
+
assert7.equal(typeof cb, "function", "a callback must be provided for exit handler");
|
|
48379
48706
|
if (loaded === false) {
|
|
48380
48707
|
load();
|
|
48381
48708
|
}
|
|
@@ -48481,7 +48808,7 @@ var require_signal_exit = __commonJS({
|
|
|
48481
48808
|
}
|
|
48482
48809
|
}, "processEmit");
|
|
48483
48810
|
}
|
|
48484
|
-
var
|
|
48811
|
+
var assert7;
|
|
48485
48812
|
var signals;
|
|
48486
48813
|
var isWin;
|
|
48487
48814
|
var EE;
|
|
@@ -53842,7 +54169,7 @@ function typedArrayEncoder(tag, size) {
|
|
|
53842
54169
|
let length = typedArray.byteLength;
|
|
53843
54170
|
let offset = typedArray.byteOffset || 0;
|
|
53844
54171
|
let buffer3 = typedArray.buffer || typedArray;
|
|
53845
|
-
encode8(hasNodeBuffer ?
|
|
54172
|
+
encode8(hasNodeBuffer ? Buffer3.from(buffer3, offset, length) : new Uint8Array(buffer3, offset, length));
|
|
53846
54173
|
}, "writeExtBuffer")
|
|
53847
54174
|
};
|
|
53848
54175
|
}
|
|
@@ -53899,7 +54226,7 @@ function writeBundles(start3, encode8) {
|
|
|
53899
54226
|
encode8(writeStrings[0]);
|
|
53900
54227
|
encode8(writeStrings[1]);
|
|
53901
54228
|
}
|
|
53902
|
-
var textEncoder, extensions, extensionClasses,
|
|
54229
|
+
var textEncoder, extensions, extensionClasses, Buffer3, hasNodeBuffer, ByteArrayAllocate, ByteArray, MAX_STRUCTURES, MAX_BUFFER_SIZE, throwOnIterable, target, targetView, position2, safeEnd, bundledStrings2, MAX_BUNDLE_SIZE, hasNonLatin, RECORD_SYMBOL, Encoder, SharedData, BlobConstructor, isLittleEndianMachine2, defaultEncoder, encode5, encodeAsIterable, encodeAsAsyncIterable, NEVER3, ALWAYS, DECIMAL_ROUND, DECIMAL_FIT, REUSE_BUFFER_MODE, RESET_BUFFER_MODE, THROW_ON_ITERABLE;
|
|
53903
54230
|
var init_encode = __esm({
|
|
53904
54231
|
"../../node_modules/.pnpm/cbor-x@1.6.0/node_modules/cbor-x/encode.js"() {
|
|
53905
54232
|
init_decode();
|
|
@@ -53909,10 +54236,10 @@ var init_encode = __esm({
|
|
|
53909
54236
|
textEncoder = new TextEncoder();
|
|
53910
54237
|
} catch (error95) {
|
|
53911
54238
|
}
|
|
53912
|
-
|
|
53913
|
-
hasNodeBuffer = typeof
|
|
53914
|
-
ByteArrayAllocate = hasNodeBuffer ?
|
|
53915
|
-
ByteArray = hasNodeBuffer ?
|
|
54239
|
+
Buffer3 = typeof globalThis === "object" && globalThis.Buffer;
|
|
54240
|
+
hasNodeBuffer = typeof Buffer3 !== "undefined";
|
|
54241
|
+
ByteArrayAllocate = hasNodeBuffer ? Buffer3.allocUnsafeSlow : Uint8Array;
|
|
54242
|
+
ByteArray = hasNodeBuffer ? Buffer3 : Uint8Array;
|
|
53916
54243
|
MAX_STRUCTURES = 256;
|
|
53917
54244
|
MAX_BUFFER_SIZE = hasNodeBuffer ? 4294967296 : 2144337920;
|
|
53918
54245
|
position2 = 0;
|
|
@@ -55651,17 +55978,36 @@ function createDispatcherRecycler(factory, label) {
|
|
|
55651
55978
|
function noteEventsTransportOutcome(dispatcher, error95) {
|
|
55652
55979
|
eventsRecycler.note(dispatcher, error95);
|
|
55653
55980
|
}
|
|
55981
|
+
function resolveDispatcher(config4, buildDefault) {
|
|
55982
|
+
if (config4?.dispatcher)
|
|
55983
|
+
return config4.dispatcher;
|
|
55984
|
+
return isNodeHttpEnabled() ? void 0 : buildDefault();
|
|
55985
|
+
}
|
|
55986
|
+
function getNodeHttpAgents(config4) {
|
|
55987
|
+
if (config4?.dispatcher)
|
|
55988
|
+
return void 0;
|
|
55989
|
+
if (!isNodeHttpEnabled())
|
|
55990
|
+
return void 0;
|
|
55991
|
+
_nodeHttpAgents ??= createNodeHttpAgents({
|
|
55992
|
+
maxSockets: BASE_AGENT_OPTIONS.connections,
|
|
55993
|
+
keepAliveMs: BASE_AGENT_OPTIONS.keepAliveTimeout
|
|
55994
|
+
});
|
|
55995
|
+
return _nodeHttpAgents;
|
|
55996
|
+
}
|
|
55654
55997
|
function getDispatcher(config4) {
|
|
55998
|
+
return resolveDispatcher(config4, getDefaultDispatcher);
|
|
55999
|
+
}
|
|
56000
|
+
function getQueueDispatcher(config4) {
|
|
55655
56001
|
return config4?.dispatcher ?? getDefaultDispatcher();
|
|
55656
56002
|
}
|
|
55657
56003
|
function getEventsDispatcher(config4) {
|
|
55658
|
-
return config4
|
|
56004
|
+
return resolveDispatcher(config4, () => eventsRecycler.get());
|
|
55659
56005
|
}
|
|
55660
56006
|
function getStreamDispatcher(config4) {
|
|
55661
|
-
return config4
|
|
56007
|
+
return resolveDispatcher(config4, getDefaultStreamDispatcher);
|
|
55662
56008
|
}
|
|
55663
56009
|
function getStreamCloseDispatcher(config4) {
|
|
55664
|
-
return config4
|
|
56010
|
+
return resolveDispatcher(config4, getDefaultStreamCloseDispatcher);
|
|
55665
56011
|
}
|
|
55666
56012
|
function makeRetryDispatcher(agentOptions, retryOptions) {
|
|
55667
56013
|
return new import_undici2.RetryAgent(new import_undici2.Agent(agentOptions), retryOptions);
|
|
@@ -55697,15 +56043,19 @@ function getDefaultStreamCloseDispatcher() {
|
|
|
55697
56043
|
_streamCloseDispatcher ??= createStreamDispatcher(STREAM_CLOSE_RETRY_OPTIONS);
|
|
55698
56044
|
return _streamCloseDispatcher;
|
|
55699
56045
|
}
|
|
55700
|
-
var import_undici2, _dispatcher, _streamDispatcher, _streamCloseDispatcher, BASE_AGENT_OPTIONS, H2_MAX_IN_FLIGHT_STREAMS, H2_STREAM_WINDOW_BYTES, H2_CONNECTION_WINDOW_BYTES, DEFAULT_AGENT_OPTIONS, EVENTS_AGENT_OPTIONS, EVENTS_AGENT_OPTIONS_NO_H2, STREAM_AGENT_OPTIONS, RETRY_AGENT_OPTIONS, STREAM_RETRY_OPTIONS, STREAM_CLOSE_RETRY_OPTIONS, H2_REBUFFER_MAX_BYTES, EVENTS_RECYCLE_AFTER_CONSECUTIVE_FAILURES, RECYCLE_MIN_INTERVAL_MS, RETIRED_CLOSE_DELAY_MS, RETIRED_DESTROY_DELAY_MS, RECYCLABLE_ERROR_CODES, MAX_CAUSE_DEPTH, eventsRecycler;
|
|
56046
|
+
var import_undici2, _dispatcher, _streamDispatcher, _streamCloseDispatcher, _nodeHttpAgents, BASE_AGENT_OPTIONS, NODE_HTTP_HEADERS_TIMEOUT_MS, NODE_HTTP_BODY_TIMEOUT_MS, H2_MAX_IN_FLIGHT_STREAMS, H2_STREAM_WINDOW_BYTES, H2_CONNECTION_WINDOW_BYTES, DEFAULT_AGENT_OPTIONS, EVENTS_AGENT_OPTIONS, EVENTS_AGENT_OPTIONS_NO_H2, STREAM_AGENT_OPTIONS, RETRY_AGENT_OPTIONS, STREAM_RETRY_OPTIONS, STREAM_CLOSE_RETRY_OPTIONS, H2_REBUFFER_MAX_BYTES, EVENTS_RECYCLE_AFTER_CONSECUTIVE_FAILURES, RECYCLE_MIN_INTERVAL_MS, RETIRED_CLOSE_DELAY_MS, RETIRED_DESTROY_DELAY_MS, RECYCLABLE_ERROR_CODES, MAX_CAUSE_DEPTH, eventsRecycler;
|
|
55701
56047
|
var init_http_client = __esm({
|
|
55702
56048
|
"../world-vercel/dist/http-client.js"() {
|
|
55703
56049
|
"use strict";
|
|
56050
|
+
init_dist6();
|
|
56051
|
+
init_node_http();
|
|
55704
56052
|
import_undici2 = __toESM(require_undici(), 1);
|
|
55705
56053
|
BASE_AGENT_OPTIONS = {
|
|
55706
56054
|
connections: 8,
|
|
55707
56055
|
keepAliveTimeout: 1e4
|
|
55708
56056
|
};
|
|
56057
|
+
NODE_HTTP_HEADERS_TIMEOUT_MS = 3e5;
|
|
56058
|
+
NODE_HTTP_BODY_TIMEOUT_MS = 3e5;
|
|
55709
56059
|
H2_MAX_IN_FLIGHT_STREAMS = 100;
|
|
55710
56060
|
H2_STREAM_WINDOW_BYTES = 4 * 1024 * 1024;
|
|
55711
56061
|
H2_CONNECTION_WINDOW_BYTES = 16 * 1024 * 1024;
|
|
@@ -55776,7 +56126,10 @@ var init_http_client = __esm({
|
|
|
55776
56126
|
__name(createDispatcherRecycler, "createDispatcherRecycler");
|
|
55777
56127
|
eventsRecycler = createDispatcherRecycler(() => createEventsDispatcher(), "events transport");
|
|
55778
56128
|
__name(noteEventsTransportOutcome, "noteEventsTransportOutcome");
|
|
56129
|
+
__name(resolveDispatcher, "resolveDispatcher");
|
|
56130
|
+
__name(getNodeHttpAgents, "getNodeHttpAgents");
|
|
55779
56131
|
__name(getDispatcher, "getDispatcher");
|
|
56132
|
+
__name(getQueueDispatcher, "getQueueDispatcher");
|
|
55780
56133
|
__name(getEventsDispatcher, "getEventsDispatcher");
|
|
55781
56134
|
__name(getStreamDispatcher, "getStreamDispatcher");
|
|
55782
56135
|
__name(getStreamCloseDispatcher, "getStreamCloseDispatcher");
|
|
@@ -55882,7 +56235,7 @@ async function injectTraceContextIntoHeaders(headers) {
|
|
|
55882
56235
|
function SemanticConvention3(...names) {
|
|
55883
56236
|
return (value) => Object.fromEntries(names.map((name) => [name, value]));
|
|
55884
56237
|
}
|
|
55885
|
-
var otelApiPromise2, tracerPromise2, otelDiagLogged2, HttpRequestMethod2, UrlFull2, ServerAddress2, ServerPort2, HttpResponseStatusCode2, ErrorType2, NetworkProtocolName, WorldParseFormat2, PeerService3, RpcSystem3, RpcService3, RpcMethod3, WorkflowRunId3, StepId3, WorkflowStreamName, WorkflowStreamOperation, WorkflowStreamStartIndex, WorkflowEventsTransport, WorkflowEventType, WorkflowClientVersion, StepStsoMs2, StepLatencyOptimizations2, WorkflowWsUrl, WorkflowWsRequestId, WorkflowWsReconnectAttempt;
|
|
56238
|
+
var otelApiPromise2, tracerPromise2, otelDiagLogged2, HttpRequestMethod2, UrlFull2, ServerAddress2, ServerPort2, HttpResponseStatusCode2, ErrorType2, NetworkProtocolName, WorldParseFormat2, PeerService3, RpcSystem3, RpcService3, RpcMethod3, WorkflowRunId3, StepId3, WorkflowStreamName, WorkflowStreamOperation, WorkflowStreamStartIndex, WorkflowEventsTransport, WorkflowHttpTransport, WorkflowEventType, WorkflowClientVersion, StepStsoMs2, StepLatencyOptimizations2, WorkflowWsUrl, WorkflowWsRequestId, WorkflowWsReconnectAttempt;
|
|
55886
56239
|
var init_telemetry3 = __esm({
|
|
55887
56240
|
"../world-vercel/dist/telemetry.js"() {
|
|
55888
56241
|
"use strict";
|
|
@@ -55915,6 +56268,7 @@ var init_telemetry3 = __esm({
|
|
|
55915
56268
|
WorkflowStreamOperation = SemanticConvention3("workflow.stream.operation");
|
|
55916
56269
|
WorkflowStreamStartIndex = SemanticConvention3("workflow.stream.start_index");
|
|
55917
56270
|
WorkflowEventsTransport = SemanticConvention3("workflow.events.transport");
|
|
56271
|
+
WorkflowHttpTransport = SemanticConvention3("workflow.http.transport");
|
|
55918
56272
|
WorkflowEventType = SemanticConvention3("workflow.event.type");
|
|
55919
56273
|
WorkflowClientVersion = SemanticConvention3("workflow.client.version");
|
|
55920
56274
|
StepStsoMs2 = SemanticConvention3("step.stso_ms");
|
|
@@ -56060,7 +56414,23 @@ async function instrumentedFetch(opts) {
|
|
|
56060
56414
|
const start3 = Date.now();
|
|
56061
56415
|
let response;
|
|
56062
56416
|
try {
|
|
56063
|
-
|
|
56417
|
+
const nodeAgents = dispatcher ? void 0 : getNodeHttpAgents();
|
|
56418
|
+
span?.setAttributes({
|
|
56419
|
+
...WorkflowHttpTransport(nodeAgents ? "node-http" : "undici")
|
|
56420
|
+
});
|
|
56421
|
+
response = nodeAgents ? await nodeHttpFetch(url3, {
|
|
56422
|
+
method,
|
|
56423
|
+
headers,
|
|
56424
|
+
body,
|
|
56425
|
+
signal,
|
|
56426
|
+
agents: nodeAgents,
|
|
56427
|
+
// Match undici's per-phase defaults (which the undici agents
|
|
56428
|
+
// inherit implicitly): without these the node:http path arms no
|
|
56429
|
+
// stalled-socket deadline, and a `timeoutMs: null` caller would
|
|
56430
|
+
// have no deadline at all.
|
|
56431
|
+
headersTimeoutMs: NODE_HTTP_HEADERS_TIMEOUT_MS,
|
|
56432
|
+
bodyTimeoutMs: NODE_HTTP_BODY_TIMEOUT_MS
|
|
56433
|
+
}) : await fetch(url3, {
|
|
56064
56434
|
method,
|
|
56065
56435
|
headers,
|
|
56066
56436
|
body,
|
|
@@ -56110,6 +56480,8 @@ var init_http_core = __esm({
|
|
|
56110
56480
|
import_oidc = __toESM(require_dist(), 1);
|
|
56111
56481
|
init_dist7();
|
|
56112
56482
|
init_dist6();
|
|
56483
|
+
init_node_http();
|
|
56484
|
+
init_http_client();
|
|
56113
56485
|
init_telemetry3();
|
|
56114
56486
|
REQUEST_TIMEOUT_MS = 6e4;
|
|
56115
56487
|
getRequestTimeoutMs = /* @__PURE__ */ __name(() => envNumber2("WORKFLOW_REQUEST_TIMEOUT_MS", REQUEST_TIMEOUT_MS, {
|
|
@@ -56144,7 +56516,7 @@ var version4;
|
|
|
56144
56516
|
var init_version3 = __esm({
|
|
56145
56517
|
"../world-vercel/dist/version.js"() {
|
|
56146
56518
|
"use strict";
|
|
56147
|
-
version4 = "5.0.0-beta.
|
|
56519
|
+
version4 = "5.0.0-beta.39";
|
|
56148
56520
|
}
|
|
56149
56521
|
});
|
|
56150
56522
|
|
|
@@ -56192,7 +56564,7 @@ async function getHttpConfig(config4) {
|
|
|
56192
56564
|
return { baseUrl, headers, usingProxy };
|
|
56193
56565
|
}
|
|
56194
56566
|
async function makeRequest({ endpoint, options = {}, config: config4 = {}, schema, data, onResponse, retryConnectTimeout = false }) {
|
|
56195
|
-
const method = options.method || "GET";
|
|
56567
|
+
const method = (options.method || "GET").toUpperCase();
|
|
56196
56568
|
const { baseUrl, headers } = await getHttpConfig(config4);
|
|
56197
56569
|
const url3 = `${baseUrl}${endpoint}`;
|
|
56198
56570
|
return trace4(`http ${method}`, { kind: await getSpanKind3("CLIENT") }, async (span) => {
|
|
@@ -56208,23 +56580,33 @@ async function makeRequest({ endpoint, options = {}, config: config4 = {}, schem
|
|
|
56208
56580
|
headers.set("Content-Type", "application/cbor");
|
|
56209
56581
|
body = encode5(data);
|
|
56210
56582
|
}
|
|
56211
|
-
const canRetryRead = IDEMPOTENT_METHODS.has(method
|
|
56583
|
+
const canRetryRead = IDEMPOTENT_METHODS.has(method);
|
|
56212
56584
|
let parseResult;
|
|
56213
56585
|
let responseDiagnostics = "";
|
|
56214
56586
|
for (let attempt = 0; ; attempt++) {
|
|
56215
56587
|
headers.set("X-Request-Time", Date.now().toString());
|
|
56216
56588
|
const timeoutSignal = AbortSignal.timeout(getRequestTimeoutMs());
|
|
56217
56589
|
const signal = options.signal ? AbortSignal.any([options.signal, timeoutSignal]) : timeoutSignal;
|
|
56218
|
-
const request = new Request(url3, {
|
|
56219
|
-
...options,
|
|
56220
|
-
body,
|
|
56221
|
-
headers,
|
|
56222
|
-
signal
|
|
56223
|
-
});
|
|
56224
56590
|
const fetchStart = Date.now();
|
|
56225
56591
|
let response;
|
|
56226
56592
|
try {
|
|
56227
|
-
|
|
56593
|
+
const nodeAgents = getNodeHttpAgents(config4);
|
|
56594
|
+
span?.setAttributes({
|
|
56595
|
+
...WorkflowHttpTransport(nodeAgents ? "node-http" : "undici")
|
|
56596
|
+
});
|
|
56597
|
+
response = nodeAgents ? await nodeHttpFetch(url3, {
|
|
56598
|
+
method,
|
|
56599
|
+
headers,
|
|
56600
|
+
body,
|
|
56601
|
+
signal,
|
|
56602
|
+
agents: nodeAgents,
|
|
56603
|
+
// Match undici's per-phase defaults (which the undici agents
|
|
56604
|
+
// inherit implicitly): without these the node:http path arms
|
|
56605
|
+
// no stalled-socket deadline.
|
|
56606
|
+
headersTimeoutMs: NODE_HTTP_HEADERS_TIMEOUT_MS,
|
|
56607
|
+
bodyTimeoutMs: NODE_HTTP_BODY_TIMEOUT_MS
|
|
56608
|
+
}) : await fetch(new Request(url3, { ...options, body, headers, signal }), {
|
|
56609
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- undici v7 dispatcher types don't match @types/node's RequestInit
|
|
56228
56610
|
dispatcher: getDispatcher(config4)
|
|
56229
56611
|
});
|
|
56230
56612
|
} catch (error95) {
|
|
@@ -56241,10 +56623,10 @@ async function makeRequest({ endpoint, options = {}, config: config4 = {}, schem
|
|
|
56241
56623
|
await new Promise((resolve3) => setTimeout(resolve3, BODY_PARSE_RETRY_BASE_MS));
|
|
56242
56624
|
continue;
|
|
56243
56625
|
}
|
|
56244
|
-
const
|
|
56626
|
+
const transportError2 = new WorkflowWorldError2(`${method} ${endpoint} transport failure after ${elapsed}ms (${transportCode})`, { url: url3, code: "TRANSPORT", cause: error95 });
|
|
56245
56627
|
span?.setAttributes({ ...ErrorType2("TRANSPORT") });
|
|
56246
|
-
span?.recordException?.(
|
|
56247
|
-
throw
|
|
56628
|
+
span?.recordException?.(transportError2);
|
|
56629
|
+
throw transportError2;
|
|
56248
56630
|
}
|
|
56249
56631
|
throw error95;
|
|
56250
56632
|
}
|
|
@@ -56257,9 +56639,9 @@ async function makeRequest({ endpoint, options = {}, config: config4 = {}, schem
|
|
|
56257
56639
|
if (!response.ok) {
|
|
56258
56640
|
const errorData = await parseResponseBody(response).then((r) => r.data).catch(() => ({}));
|
|
56259
56641
|
const errorCode = errorData.code ?? errorData.error;
|
|
56260
|
-
logCurlRepro(
|
|
56642
|
+
logCurlRepro(method, url3, headers);
|
|
56261
56643
|
const retryAfter = parseRetryAfter(response.headers.get("Retry-After"));
|
|
56262
|
-
const defaultMessage = (errorData.message || `${
|
|
56644
|
+
const defaultMessage = (errorData.message || `${method} ${endpoint} -> HTTP ${response.status}: ${response.statusText}`) + responseDiagnostics;
|
|
56263
56645
|
const error95 = errorForResponse(response.status, defaultMessage, {
|
|
56264
56646
|
url: url3,
|
|
56265
56647
|
code: errorCode,
|
|
@@ -56345,6 +56727,7 @@ var init_utils4 = __esm({
|
|
|
56345
56727
|
"use strict";
|
|
56346
56728
|
import_oidc2 = __toESM(require_dist(), 1);
|
|
56347
56729
|
init_dist7();
|
|
56730
|
+
init_node_http();
|
|
56348
56731
|
init_node_index();
|
|
56349
56732
|
init_http_client();
|
|
56350
56733
|
init_http_core();
|
|
@@ -56366,7 +56749,8 @@ var init_utils4 = __esm({
|
|
|
56366
56749
|
"ECONNREFUSED",
|
|
56367
56750
|
"ENOTFOUND",
|
|
56368
56751
|
"EAI_AGAIN",
|
|
56369
|
-
"EPIPE"
|
|
56752
|
+
"EPIPE",
|
|
56753
|
+
"ETIMEDOUT"
|
|
56370
56754
|
]);
|
|
56371
56755
|
__name(getTransientTransportCode, "getTransientTransportCode");
|
|
56372
56756
|
getWorkflowServerUrlOverride = /* @__PURE__ */ __name(() => WORKFLOW_SERVER_URL_OVERRIDE || process.env.VERCEL_WORKFLOW_SERVER_URL || "", "getWorkflowServerUrlOverride");
|
|
@@ -58273,7 +58657,7 @@ var require_limiter2 = __commonJS({
|
|
|
58273
58657
|
var require_permessage_deflate3 = __commonJS({
|
|
58274
58658
|
"../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
|
|
58275
58659
|
"use strict";
|
|
58276
|
-
var
|
|
58660
|
+
var zlib2 = __require("zlib");
|
|
58277
58661
|
var bufferUtil = require_buffer_util2();
|
|
58278
58662
|
var Limiter = require_limiter2();
|
|
58279
58663
|
var { kStatusCode } = require_constants8();
|
|
@@ -58543,8 +58927,8 @@ var require_permessage_deflate3 = __commonJS({
|
|
|
58543
58927
|
const endpoint = this._isServer ? "client" : "server";
|
|
58544
58928
|
if (!this._inflate) {
|
|
58545
58929
|
const key = `${endpoint}_max_window_bits`;
|
|
58546
|
-
const windowBits = typeof this.params[key] !== "number" ?
|
|
58547
|
-
this._inflate =
|
|
58930
|
+
const windowBits = typeof this.params[key] !== "number" ? zlib2.Z_DEFAULT_WINDOWBITS : this.params[key];
|
|
58931
|
+
this._inflate = zlib2.createInflateRaw({
|
|
58548
58932
|
...this._options.zlibInflateOptions,
|
|
58549
58933
|
windowBits
|
|
58550
58934
|
});
|
|
@@ -58594,8 +58978,8 @@ var require_permessage_deflate3 = __commonJS({
|
|
|
58594
58978
|
const endpoint = this._isServer ? "server" : "client";
|
|
58595
58979
|
if (!this._deflate) {
|
|
58596
58980
|
const key = `${endpoint}_max_window_bits`;
|
|
58597
|
-
const windowBits = typeof this.params[key] !== "number" ?
|
|
58598
|
-
this._deflate =
|
|
58981
|
+
const windowBits = typeof this.params[key] !== "number" ? zlib2.Z_DEFAULT_WINDOWBITS : this.params[key];
|
|
58982
|
+
this._deflate = zlib2.createDeflateRaw({
|
|
58599
58983
|
...this._options.zlibDeflateOptions,
|
|
58600
58984
|
windowBits
|
|
58601
58985
|
});
|
|
@@ -58605,7 +58989,7 @@ var require_permessage_deflate3 = __commonJS({
|
|
|
58605
58989
|
}
|
|
58606
58990
|
this._deflate[kCallback] = callback;
|
|
58607
58991
|
this._deflate.write(data);
|
|
58608
|
-
this._deflate.flush(
|
|
58992
|
+
this._deflate.flush(zlib2.Z_SYNC_FLUSH, () => {
|
|
58609
58993
|
if (!this._deflate) {
|
|
58610
58994
|
return;
|
|
58611
58995
|
}
|
|
@@ -60353,8 +60737,8 @@ var require_websocket4 = __commonJS({
|
|
|
60353
60737
|
"../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket.js"(exports, module) {
|
|
60354
60738
|
"use strict";
|
|
60355
60739
|
var EventEmitter2 = __require("events");
|
|
60356
|
-
var
|
|
60357
|
-
var
|
|
60740
|
+
var https2 = __require("https");
|
|
60741
|
+
var http2 = __require("http");
|
|
60358
60742
|
var net2 = __require("net");
|
|
60359
60743
|
var tls = __require("tls");
|
|
60360
60744
|
var { randomBytes, createHash: createHash3 } = __require("crypto");
|
|
@@ -60891,7 +61275,7 @@ var require_websocket4 = __commonJS({
|
|
|
60891
61275
|
}
|
|
60892
61276
|
const defaultPort = isSecure ? 443 : 80;
|
|
60893
61277
|
const key = randomBytes(16).toString("base64");
|
|
60894
|
-
const request = isSecure ?
|
|
61278
|
+
const request = isSecure ? https2.request : http2.request;
|
|
60895
61279
|
const protocolSet = /* @__PURE__ */ new Set();
|
|
60896
61280
|
let perMessageDeflate;
|
|
60897
61281
|
opts.createConnection = opts.createConnection || (isSecure ? tlsConnect : netConnect);
|
|
@@ -61410,7 +61794,7 @@ var require_websocket_server2 = __commonJS({
|
|
|
61410
61794
|
"../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket-server.js"(exports, module) {
|
|
61411
61795
|
"use strict";
|
|
61412
61796
|
var EventEmitter2 = __require("events");
|
|
61413
|
-
var
|
|
61797
|
+
var http2 = __require("http");
|
|
61414
61798
|
var { Duplex } = __require("stream");
|
|
61415
61799
|
var { createHash: createHash3 } = __require("crypto");
|
|
61416
61800
|
var extension2 = require_extension2();
|
|
@@ -61488,8 +61872,8 @@ var require_websocket_server2 = __commonJS({
|
|
|
61488
61872
|
);
|
|
61489
61873
|
}
|
|
61490
61874
|
if (options.port != null) {
|
|
61491
|
-
this._server =
|
|
61492
|
-
const body =
|
|
61875
|
+
this._server = http2.createServer((req, res) => {
|
|
61876
|
+
const body = http2.STATUS_CODES[426];
|
|
61493
61877
|
res.writeHead(426, {
|
|
61494
61878
|
"Content-Length": body.length,
|
|
61495
61879
|
"Content-Type": "text/plain"
|
|
@@ -61779,7 +62163,7 @@ var require_websocket_server2 = __commonJS({
|
|
|
61779
62163
|
}
|
|
61780
62164
|
__name(socketOnError, "socketOnError");
|
|
61781
62165
|
function abortHandshake(socket, code3, message, headers) {
|
|
61782
|
-
message = message ||
|
|
62166
|
+
message = message || http2.STATUS_CODES[code3];
|
|
61783
62167
|
headers = {
|
|
61784
62168
|
Connection: "close",
|
|
61785
62169
|
"Content-Type": "text/html",
|
|
@@ -61788,7 +62172,7 @@ var require_websocket_server2 = __commonJS({
|
|
|
61788
62172
|
};
|
|
61789
62173
|
socket.once("finish", socket.destroy);
|
|
61790
62174
|
socket.end(
|
|
61791
|
-
`HTTP/1.1 ${code3} ${
|
|
62175
|
+
`HTTP/1.1 ${code3} ${http2.STATUS_CODES[code3]}\r
|
|
61792
62176
|
` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
|
|
61793
62177
|
);
|
|
61794
62178
|
}
|
|
@@ -62065,13 +62449,36 @@ function instrumentObject2(prefix, o) {
|
|
|
62065
62449
|
spanName = `${prefix}.${methodName} ${eventType}`;
|
|
62066
62450
|
}
|
|
62067
62451
|
}
|
|
62452
|
+
let batchAttributes;
|
|
62453
|
+
if (prefix === "world.events" && methodName === "createBatch") {
|
|
62454
|
+
const events = args[1];
|
|
62455
|
+
if (Array.isArray(events)) {
|
|
62456
|
+
const counts = /* @__PURE__ */ new Map();
|
|
62457
|
+
for (const item of events) {
|
|
62458
|
+
const eventType = item?.event?.eventType;
|
|
62459
|
+
if (typeof eventType === "string") {
|
|
62460
|
+
counts.set(eventType, (counts.get(eventType) ?? 0) + 1);
|
|
62461
|
+
}
|
|
62462
|
+
}
|
|
62463
|
+
batchAttributes = {
|
|
62464
|
+
"workflow.batch.size": events.length,
|
|
62465
|
+
// Sorted by type, so the same batch composition always renders
|
|
62466
|
+
// the same string. Map iteration is first-seen order, which
|
|
62467
|
+
// depends on frame order — a pre-claimed fold leads with a
|
|
62468
|
+
// pair while a pure eager fold leads with its creates — and an
|
|
62469
|
+
// unstable string is not groupable as a telemetry dimension.
|
|
62470
|
+
"workflow.batch.shape": [...counts].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([type, count2]) => `${type}:${count2}`).join(",")
|
|
62471
|
+
};
|
|
62472
|
+
}
|
|
62473
|
+
}
|
|
62068
62474
|
return trace4(spanName, { kind: await getSpanKind3("CLIENT") }, async (span) => {
|
|
62069
62475
|
span?.setAttributes({
|
|
62070
62476
|
...PeerService3(WORKFLOW_SERVER_SERVICE.peerService),
|
|
62071
62477
|
...RpcSystem3(WORKFLOW_SERVER_SERVICE.rpcSystem),
|
|
62072
62478
|
...RpcService3(WORKFLOW_SERVER_SERVICE.rpcService),
|
|
62073
62479
|
...RpcMethod3(spanName),
|
|
62074
|
-
...extractWorkflowAttributes2(prefix, methodName, args)
|
|
62480
|
+
...extractWorkflowAttributes2(prefix, methodName, args),
|
|
62481
|
+
...batchAttributes
|
|
62075
62482
|
});
|
|
62076
62483
|
const result2 = await f(...args);
|
|
62077
62484
|
const resultRunId = getRunIdFromResult2(result2);
|
|
@@ -64530,7 +64937,7 @@ var require_picocolors = __commonJS({
|
|
|
64530
64937
|
}
|
|
64531
64938
|
});
|
|
64532
64939
|
|
|
64533
|
-
// ../../node_modules/.pnpm/@vercel+queue@0.
|
|
64940
|
+
// ../../node_modules/.pnpm/@vercel+queue@0.5.0_@opentelemetry+api@1.9.1/node_modules/@vercel/queue/dist/index.mjs
|
|
64534
64941
|
import * as fs8 from "fs";
|
|
64535
64942
|
import * as net from "net";
|
|
64536
64943
|
import * as path13 from "path";
|
|
@@ -65062,6 +65469,14 @@ function filePathToUrlPath(filePath) {
|
|
|
65062
65469
|
}
|
|
65063
65470
|
return urlPath;
|
|
65064
65471
|
}
|
|
65472
|
+
function importAtRuntime(absolutePath) {
|
|
65473
|
+
return import(
|
|
65474
|
+
/* webpackIgnore: true */
|
|
65475
|
+
/* turbopackIgnore: true */
|
|
65476
|
+
/* @vite-ignore */
|
|
65477
|
+
absolutePath
|
|
65478
|
+
);
|
|
65479
|
+
}
|
|
65065
65480
|
async function ensureHandlersLoaded(topicName, options = {}) {
|
|
65066
65481
|
const diagnostics = {
|
|
65067
65482
|
triedPorts: collectPrimePorts(),
|
|
@@ -65088,7 +65503,7 @@ async function ensureHandlersLoaded(topicName, options = {}) {
|
|
|
65088
65503
|
if (!alreadyRegistered) {
|
|
65089
65504
|
const absolutePath = path13.resolve(process.cwd(), route.filePath);
|
|
65090
65505
|
try {
|
|
65091
|
-
await
|
|
65506
|
+
await importAtRuntime(absolutePath);
|
|
65092
65507
|
} catch (error95) {
|
|
65093
65508
|
diagnostics.importFailures.push({
|
|
65094
65509
|
filePath: route.filePath,
|
|
@@ -65598,7 +66013,9 @@ function throwCommonHttpError(status, statusText, errorText, operation, badReque
|
|
|
65598
66013
|
errorText || `Server error: ${status} ${statusText}`
|
|
65599
66014
|
);
|
|
65600
66015
|
}
|
|
65601
|
-
throw new Error(
|
|
66016
|
+
throw new Error(
|
|
66017
|
+
errorText || `Failed to ${operation}: ${status} ${statusText}`
|
|
66018
|
+
);
|
|
65602
66019
|
}
|
|
65603
66020
|
function parseQueueHeaders(headers) {
|
|
65604
66021
|
const messageId = headers.get("Vqs-Message-Id");
|
|
@@ -65677,9 +66094,9 @@ function resolveRegion2(region) {
|
|
|
65677
66094
|
}
|
|
65678
66095
|
return DEFAULT_REGION;
|
|
65679
66096
|
}
|
|
65680
|
-
var import_picocolors, import_oidc3, JsonTransport, MessageNotFoundError, MessageNotAvailableError, MessageCorruptedError, TooManyRequestsError, UnauthorizedError, ForbiddenError, BadRequestError, InternalServerError, InvalidLimitError, MessageAlreadyProcessedError,
|
|
66097
|
+
var import_picocolors, import_oidc3, JsonTransport, MessageNotFoundError, MessageNotAvailableError, MessageCorruptedError, TooManyRequestsError, UnauthorizedError, ForbiddenError, BadRequestError, InternalServerError, InvalidLimitError, MessageAlreadyProcessedError, ConsumerDiscoveryError, ConsumerRegistryNotConfiguredError, DEFAULT_VISIBILITY_TIMEOUT_SECONDS, MIN_VISIBILITY_TIMEOUT_SECONDS, MAX_RENEWAL_INTERVAL_SECONDS, MIN_RENEWAL_INTERVAL_SECONDS, RETRY_INTERVAL_MS, DIRECTIVE_CALL_ATTEMPTS, DIRECTIVE_CALL_RETRY_DELAY_MS, ConsumerGroup, Topic, CLOUD_EVENT_TYPE_V1BETA, CLOUD_EVENT_TYPE_V2BETA, PREFIX, OK, FAIL, RETRY, ROUTE_MAPPINGS_KEY, _sdkPackageDir, HANDLER_REGISTRY_KEY, DEV_RETRY_INITIAL_DELAY_MS, DEV_RETRY_MAX_WAIT_MS, DEV_RETRY_BACKOFF, PORT_CHECK_TIMEOUT_MS, PRIME_PORT_ENV_KEYS, PRIME_URL_ENV_KEYS, DEV_REDELIVERY_MAX_DELAY_S, DEV_REDELIVERY_DEFAULT_DELAY_S, DEV_REDELIVERY_MAX_ATTEMPTS, DEFAULT_RETENTION_S, otelApiPromise3, INJECTED_CONTEXT_HEADERS, CONSUMER_TRACEPARENT_HEADER, CONSUMER_TRACESTATE_HEADER, CONSUMER_BAGGAGE_HEADER, REGION_PATTERN, DEFAULT_BASE_URL_RESOLVER, BASE_PATH, ApiClient, apiClients, API_CLIENT_KEY, DEFAULT_REGION, QueueClient;
|
|
65681
66098
|
var init_dist10 = __esm({
|
|
65682
|
-
"../../node_modules/.pnpm/@vercel+queue@0.
|
|
66099
|
+
"../../node_modules/.pnpm/@vercel+queue@0.5.0_@opentelemetry+api@1.9.1/node_modules/@vercel/queue/dist/index.mjs"() {
|
|
65683
66100
|
init_dist9();
|
|
65684
66101
|
init_esm4();
|
|
65685
66102
|
import_picocolors = __toESM(require_picocolors(), 1);
|
|
@@ -65805,17 +66222,6 @@ var init_dist10 = __esm({
|
|
|
65805
66222
|
this.name = "MessageAlreadyProcessedError";
|
|
65806
66223
|
}
|
|
65807
66224
|
};
|
|
65808
|
-
DuplicateMessageError = class extends Error {
|
|
65809
|
-
static {
|
|
65810
|
-
__name(this, "DuplicateMessageError");
|
|
65811
|
-
}
|
|
65812
|
-
idempotencyKey;
|
|
65813
|
-
constructor(message, idempotencyKey) {
|
|
65814
|
-
super(message);
|
|
65815
|
-
this.name = "DuplicateMessageError";
|
|
65816
|
-
this.idempotencyKey = idempotencyKey;
|
|
65817
|
-
}
|
|
65818
|
-
};
|
|
65819
66225
|
ConsumerDiscoveryError = class extends Error {
|
|
65820
66226
|
static {
|
|
65821
66227
|
__name(this, "ConsumerDiscoveryError");
|
|
@@ -66298,6 +66704,7 @@ var init_dist10 = __esm({
|
|
|
66298
66704
|
__name(isPortListening, "isPortListening");
|
|
66299
66705
|
__name(invokeWithRetry, "invokeWithRetry");
|
|
66300
66706
|
__name(filePathToUrlPath, "filePathToUrlPath");
|
|
66707
|
+
__name(importAtRuntime, "importAtRuntime");
|
|
66301
66708
|
__name(ensureHandlersLoaded, "ensureHandlersLoaded");
|
|
66302
66709
|
__name(buildNoHandlerWarning, "buildNoHandlerWarning");
|
|
66303
66710
|
__name(isHandlerRegistered, "isHandlerRegistered");
|
|
@@ -66479,7 +66886,7 @@ Cause: ${cause}`
|
|
|
66479
66886
|
}
|
|
66480
66887
|
console.debug("[VQS Debug] Request:", JSON.stringify(logData, null, 2));
|
|
66481
66888
|
}
|
|
66482
|
-
init.headers.set("User-Agent", `@vercel/queue/${"0.
|
|
66889
|
+
init.headers.set("User-Agent", `@vercel/queue/${"0.5.0"}`);
|
|
66483
66890
|
init.headers.set("Vqs-Client-Ts", (/* @__PURE__ */ new Date()).toISOString());
|
|
66484
66891
|
const fetchInit = this.dispatcher ? { ...init, dispatcher: this.dispatcher } : init;
|
|
66485
66892
|
const response = await fetch(url3, fetchInit);
|
|
@@ -66550,17 +66957,12 @@ Cause: ${cause}`
|
|
|
66550
66957
|
const response = await this.fetch(this.buildUrl(queueName), {
|
|
66551
66958
|
method: "POST",
|
|
66552
66959
|
body,
|
|
66553
|
-
headers
|
|
66960
|
+
headers,
|
|
66961
|
+
...body instanceof ReadableStream && { duplex: "half" }
|
|
66554
66962
|
});
|
|
66555
66963
|
if (!response.ok) {
|
|
66556
66964
|
const errorText = await response.text();
|
|
66557
|
-
if (response.status ===
|
|
66558
|
-
throw new DuplicateMessageError(
|
|
66559
|
-
errorText || "Duplicate idempotency key detected",
|
|
66560
|
-
idempotencyKey
|
|
66561
|
-
);
|
|
66562
|
-
}
|
|
66563
|
-
if (response.status === 502) {
|
|
66965
|
+
if (response.status === 502 && response.headers.get("Vqs-Error-Code") === "consumer_discovery_failed") {
|
|
66564
66966
|
throw new ConsumerDiscoveryError(
|
|
66565
66967
|
errorText || "Consumer discovery failed",
|
|
66566
66968
|
deploymentId
|
|
@@ -67054,16 +67456,24 @@ async function* decodeFrames(source) {
|
|
|
67054
67456
|
const chunks = Symbol.asyncIterator in source ? source[Symbol.asyncIterator]() : readerToIterator(source.getReader());
|
|
67055
67457
|
let buffer3 = new Uint8Array(0);
|
|
67056
67458
|
const refill = /* @__PURE__ */ __name(async (needed) => {
|
|
67057
|
-
|
|
67058
|
-
|
|
67059
|
-
|
|
67459
|
+
if (buffer3.byteLength >= needed)
|
|
67460
|
+
return true;
|
|
67461
|
+
const parts = [buffer3];
|
|
67462
|
+
let byteLength = buffer3.byteLength;
|
|
67463
|
+
while (byteLength < needed) {
|
|
67464
|
+
const chunk = await chunks.next();
|
|
67465
|
+
if (chunk.done)
|
|
67060
67466
|
return false;
|
|
67061
|
-
if (
|
|
67467
|
+
if (chunk.value.byteLength === 0)
|
|
67062
67468
|
continue;
|
|
67063
|
-
|
|
67064
|
-
|
|
67065
|
-
|
|
67066
|
-
|
|
67469
|
+
parts.push(chunk.value);
|
|
67470
|
+
byteLength += chunk.value.byteLength;
|
|
67471
|
+
}
|
|
67472
|
+
buffer3 = new Uint8Array(byteLength);
|
|
67473
|
+
let offset = 0;
|
|
67474
|
+
for (const part of parts) {
|
|
67475
|
+
buffer3.set(part, offset);
|
|
67476
|
+
offset += part.byteLength;
|
|
67067
67477
|
}
|
|
67068
67478
|
return true;
|
|
67069
67479
|
}, "refill");
|
|
@@ -67724,7 +68134,7 @@ function createQueue2(config4) {
|
|
|
67724
68134
|
const jsonTransport = new JsonTransport2();
|
|
67725
68135
|
const dualTransport = new DualTransport();
|
|
67726
68136
|
const clientOptions = {
|
|
67727
|
-
dispatcher:
|
|
68137
|
+
dispatcher: getQueueDispatcher(config4),
|
|
67728
68138
|
transport: dualTransport,
|
|
67729
68139
|
...usingProxy && {
|
|
67730
68140
|
// final path will be /queues-proxy/api/v3/topic/...
|
|
@@ -67769,28 +68179,19 @@ function createQueue2(config4) {
|
|
|
67769
68179
|
deploymentId: opts?.deploymentId
|
|
67770
68180
|
};
|
|
67771
68181
|
const sanitizedQueueName = getPhysicalQueueName(queueName, payload).replace(/[^A-Za-z0-9-_]/g, "-");
|
|
67772
|
-
|
|
67773
|
-
|
|
67774
|
-
|
|
67775
|
-
|
|
67776
|
-
|
|
67777
|
-
|
|
67778
|
-
...opts?.headers
|
|
67779
|
-
}
|
|
67780
|
-
});
|
|
67781
|
-
return {
|
|
67782
|
-
// messageId may be null when VQS fails over to a different region —
|
|
67783
|
-
// the event is ingested but the responding region cannot return an ID.
|
|
67784
|
-
messageId: messageId ? MessageId2.parse(messageId) : null
|
|
67785
|
-
};
|
|
67786
|
-
} catch (error95) {
|
|
67787
|
-
if (error95 instanceof DuplicateMessageError) {
|
|
67788
|
-
return {
|
|
67789
|
-
messageId: MessageId2.parse(`msg_duplicate_${error95.idempotencyKey ?? opts?.idempotencyKey ?? "unknown"}`)
|
|
67790
|
-
};
|
|
68182
|
+
const { messageId } = await client.send(sanitizedQueueName, wrapper, {
|
|
68183
|
+
idempotencyKey: opts?.idempotencyKey,
|
|
68184
|
+
delaySeconds: opts?.delaySeconds,
|
|
68185
|
+
headers: {
|
|
68186
|
+
...getHeadersFromPayload(payload),
|
|
68187
|
+
...opts?.headers
|
|
67791
68188
|
}
|
|
67792
|
-
|
|
67793
|
-
|
|
68189
|
+
});
|
|
68190
|
+
return {
|
|
68191
|
+
// messageId may be null when the queue fails over to a different region:
|
|
68192
|
+
// the event is ingested but the responding region cannot return an ID.
|
|
68193
|
+
messageId: messageId ? MessageId2.parse(messageId) : null
|
|
68194
|
+
};
|
|
67794
68195
|
}, "queue");
|
|
67795
68196
|
const createQueueHandler = /* @__PURE__ */ __name((_prefix, handler) => {
|
|
67796
68197
|
const client = new QueueClient(clientOptions);
|
|
@@ -68108,6 +68509,9 @@ function createThrottleWaiter(eventType) {
|
|
|
68108
68509
|
};
|
|
68109
68510
|
}
|
|
68110
68511
|
function isEligibleForTransientRetry(eventType, options) {
|
|
68512
|
+
if (options?.batchIdempotent !== void 0) {
|
|
68513
|
+
return options.batchIdempotent;
|
|
68514
|
+
}
|
|
68111
68515
|
return eventType === "hook_received" && options?.idempotentHookResume === true || (EVENT_RETRY_ELIGIBILITY[eventType]?.retryable ?? false);
|
|
68112
68516
|
}
|
|
68113
68517
|
async function withEventPostRetry(fn, eventType, options) {
|
|
@@ -68287,8 +68691,8 @@ function hasSerializedDataFormatPrefix(value) {
|
|
|
68287
68691
|
return format !== null && SERIALIZED_DATA_FORMAT_PREFIXES.has(format);
|
|
68288
68692
|
}
|
|
68289
68693
|
function decompress2(format, payload) {
|
|
68290
|
-
const
|
|
68291
|
-
const decompress4 = format === ZSTD_FORMAT_PREFIX ?
|
|
68694
|
+
const zlib2 = getNodeZlib2();
|
|
68695
|
+
const decompress4 = format === ZSTD_FORMAT_PREFIX ? zlib2?.zstdDecompressSync : zlib2?.gunzipSync;
|
|
68292
68696
|
if (!decompress4) {
|
|
68293
68697
|
throw new WorkflowWorldError2(`Received ${format}-compressed workflow data, but this Node.js runtime does not support ${format} decompression. Use a compatible Node.js runtime or request unresolved data.`);
|
|
68294
68698
|
}
|
|
@@ -68730,6 +69134,51 @@ async function createWorkflowRunStartedEventV4(input, config4) {
|
|
|
68730
69134
|
}
|
|
68731
69135
|
return { events, ...page, maxEvents: maxEvents.data };
|
|
68732
69136
|
}
|
|
69137
|
+
async function createWorkflowRunEventsBatchV4(input, config4) {
|
|
69138
|
+
assert4(input.events.length > 0, "v4 createEventBatch: empty batch");
|
|
69139
|
+
const { baseUrl, headers: baseHeaders } = await getHttpConfig(config4);
|
|
69140
|
+
const headers = new Headers(baseHeaders);
|
|
69141
|
+
headers.set("Content-Type", "application/octet-stream");
|
|
69142
|
+
const frames = input.events.map((event) => encodeFrame(buildPostFrameMeta(event), event.payload ?? new Uint8Array(0)));
|
|
69143
|
+
let total = 0;
|
|
69144
|
+
for (const frame3 of frames)
|
|
69145
|
+
total += frame3.byteLength;
|
|
69146
|
+
const body = new Uint8Array(total);
|
|
69147
|
+
let offset = 0;
|
|
69148
|
+
for (const frame3 of frames) {
|
|
69149
|
+
body.set(frame3, offset);
|
|
69150
|
+
offset += frame3.byteLength;
|
|
69151
|
+
}
|
|
69152
|
+
const url3 = `${baseUrl}/v4/runs/${encodeURIComponent(input.runId)}/events/batch`;
|
|
69153
|
+
const response = await fetchV4(url3, { method: "POST", headers, body }, config4, "createEventBatch", {
|
|
69154
|
+
...WorkflowEventsTransport("http"),
|
|
69155
|
+
"workflow.batch.bytes": body.byteLength
|
|
69156
|
+
});
|
|
69157
|
+
const bodyBytes = new Uint8Array(await response.arrayBuffer());
|
|
69158
|
+
const decoded = bodyBytes.byteLength > 0 ? decode5(bodyBytes) : {};
|
|
69159
|
+
if (!Array.isArray(decoded.results) || decoded.results.length !== input.events.length) {
|
|
69160
|
+
throw new WorkflowWorldError2(`v4 createEventBatch: response \`results\` length (${Array.isArray(decoded.results) ? decoded.results.length : "non-array"}) != ${input.events.length} submitted frames`, { code: "SCHEMA_VALIDATION" });
|
|
69161
|
+
}
|
|
69162
|
+
const results = decoded.results.map((raw, index) => {
|
|
69163
|
+
const failure = BatchItemFailureSchema.safeParse(raw);
|
|
69164
|
+
if (failure.success && failure.data.status !== 200) {
|
|
69165
|
+
return failure.data;
|
|
69166
|
+
}
|
|
69167
|
+
if (raw?.status !== 200) {
|
|
69168
|
+
throw new WorkflowWorldError2(`v4 createEventBatch: result at index ${index} is neither a success (status 200) nor a well-formed failure`, { code: "SCHEMA_VALIDATION" });
|
|
69169
|
+
}
|
|
69170
|
+
const eventType = input.events[index].eventType;
|
|
69171
|
+
const parsed = CreateEventV4BodySchemas[eventType].safeParse(raw);
|
|
69172
|
+
if (!parsed.success) {
|
|
69173
|
+
throw new WorkflowWorldError2(`v4 createEventBatch: invalid result body at index ${index} (${eventType})`, { code: "SCHEMA_VALIDATION", cause: parsed.error });
|
|
69174
|
+
}
|
|
69175
|
+
if (parsed.data.event.eventType !== eventType) {
|
|
69176
|
+
throw new WorkflowWorldError2(`v4 createEventBatch: result at index ${index} carries a ${parsed.data.event.eventType} event, expected ${eventType}`, { code: "SCHEMA_VALIDATION" });
|
|
69177
|
+
}
|
|
69178
|
+
return { status: 200, ...parsed.data };
|
|
69179
|
+
});
|
|
69180
|
+
return { results };
|
|
69181
|
+
}
|
|
68733
69182
|
function replyMetaToHeaderRecord(meta5) {
|
|
68734
69183
|
const out = {};
|
|
68735
69184
|
if (typeof meta5.eventId === "string")
|
|
@@ -68912,7 +69361,7 @@ async function getEventsByCorrelationIdV4(correlationId, runId, params = {}, con
|
|
|
68912
69361
|
const page = await consumeListFrameStream(url3, headers, config4, "listEventsByCorrelationId", events);
|
|
68913
69362
|
return { events, ...page };
|
|
68914
69363
|
}
|
|
68915
|
-
var EVENT_ID_HEADER, MAX_EVENTS_HEADER, CreateEventV4BodyBaseSchema, CreateEventV4PageSchema, CreateEventV4BodySchema, CreateEventV4BodySchemas, MaxEventsHeaderSchema, EventStreamEndSchema, legacyStructuredErrorEventTypes;
|
|
69364
|
+
var EVENT_ID_HEADER, MAX_EVENTS_HEADER, CreateEventV4BodyBaseSchema, CreateEventV4PageSchema, CreateEventV4BodySchema, CreateEventV4BodySchemas, MaxEventsHeaderSchema, EventStreamEndSchema, legacyStructuredErrorEventTypes, BatchItemFailureSchema;
|
|
68916
69365
|
var init_events_v4 = __esm({
|
|
68917
69366
|
"../world-vercel/dist/events-v4.js"() {
|
|
68918
69367
|
"use strict";
|
|
@@ -69007,6 +69456,12 @@ var init_events_v4 = __esm({
|
|
|
69007
69456
|
__name(createWorkflowRunEventV4, "createWorkflowRunEventV4");
|
|
69008
69457
|
__name(decodeCreateEventResponse, "decodeCreateEventResponse");
|
|
69009
69458
|
__name(createWorkflowRunStartedEventV4, "createWorkflowRunStartedEventV4");
|
|
69459
|
+
BatchItemFailureSchema = external_exports2.object({
|
|
69460
|
+
status: external_exports2.number().int(),
|
|
69461
|
+
error: external_exports2.string(),
|
|
69462
|
+
message: external_exports2.string()
|
|
69463
|
+
});
|
|
69464
|
+
__name(createWorkflowRunEventsBatchV4, "createWorkflowRunEventsBatchV4");
|
|
69010
69465
|
__name(replyMetaToHeaderRecord, "replyMetaToHeaderRecord");
|
|
69011
69466
|
__name(wsReplyStatus, "wsReplyStatus");
|
|
69012
69467
|
__name(postEventFrameOverWs, "postEventFrameOverWs");
|
|
@@ -69343,6 +69798,59 @@ async function getWorkflowRunEvents(params, config4) {
|
|
|
69343
69798
|
hasMore: result2.hasMore
|
|
69344
69799
|
};
|
|
69345
69800
|
}
|
|
69801
|
+
async function createWorkflowRunEventBatch(runId, events, params, config4) {
|
|
69802
|
+
if (events.length === 0) {
|
|
69803
|
+
throw new WorkflowWorldError2("world-vercel: createBatch requires at least one event", { status: 400 });
|
|
69804
|
+
}
|
|
69805
|
+
if (events.some(({ event }) => event.eventType === "hook_received")) {
|
|
69806
|
+
throw new WorkflowWorldError2("world-vercel: hook_received cannot be batched (it has no entity condition, so a batch retry would append the delivery twice); send it through the single-event path", { status: 400 });
|
|
69807
|
+
}
|
|
69808
|
+
const inputs = events.map(({ event, occurredAt, computeInstanceId }) => {
|
|
69809
|
+
const { payload, meta: meta5 } = splitEventDataForV4(event);
|
|
69810
|
+
return {
|
|
69811
|
+
runId,
|
|
69812
|
+
eventType: event.eventType,
|
|
69813
|
+
specVersion: event.specVersion ?? 2,
|
|
69814
|
+
...event.correlationId ? { correlationId: event.correlationId } : {},
|
|
69815
|
+
// Under slot identity this is the source of the durable createdAt, so
|
|
69816
|
+
// the caller's logical time is what every replay observes.
|
|
69817
|
+
occurredAt: occurredAt ?? /* @__PURE__ */ new Date(),
|
|
69818
|
+
// Per-event compute attribution (pre-claimed inline starts) — rides the
|
|
69819
|
+
// frame meta exactly like the single POST's CreateEventParams field.
|
|
69820
|
+
...computeInstanceId !== void 0 ? { computeInstanceId } : {},
|
|
69821
|
+
// Batch responses carry entities for bookkeeping, not payload reads —
|
|
69822
|
+
// default to lazy refs unless the caller explicitly asks for resolved
|
|
69823
|
+
// data (the same `resolveData` mapping the read paths use).
|
|
69824
|
+
remoteRefBehavior: params?.resolveData === "all" ? "resolve" : "lazy",
|
|
69825
|
+
// Per-write request attribution, exactly like the single POST's
|
|
69826
|
+
// `params.requestId` → `vercelId` threading — stamped per frame so
|
|
69827
|
+
// batched usage facts carry the same attribution.
|
|
69828
|
+
...params?.requestId ? { vercelId: params.requestId } : {},
|
|
69829
|
+
payload,
|
|
69830
|
+
...meta5
|
|
69831
|
+
};
|
|
69832
|
+
});
|
|
69833
|
+
const retryConvergent = events.every(({ event }) => event.eventType !== "step_started" && event.eventType !== "step_retrying");
|
|
69834
|
+
const wire = await withEventPostRetry(() => createWorkflowRunEventsBatchV4({ runId, events: inputs }, config4), events[0].event.eventType, { batchIdempotent: retryConvergent });
|
|
69835
|
+
return {
|
|
69836
|
+
results: wire.results.map((item) => {
|
|
69837
|
+
if (item.error !== void 0) {
|
|
69838
|
+
return {
|
|
69839
|
+
status: item.status,
|
|
69840
|
+
error: item.error,
|
|
69841
|
+
message: item.message
|
|
69842
|
+
};
|
|
69843
|
+
}
|
|
69844
|
+
return {
|
|
69845
|
+
status: 200,
|
|
69846
|
+
event: item.event,
|
|
69847
|
+
...item.run ? { run: item.run } : {},
|
|
69848
|
+
...item.step ? { step: item.step } : {},
|
|
69849
|
+
...item.wait ? { wait: item.wait } : {}
|
|
69850
|
+
};
|
|
69851
|
+
})
|
|
69852
|
+
};
|
|
69853
|
+
}
|
|
69346
69854
|
async function createWorkflowRunEvent(id, data, params, config4) {
|
|
69347
69855
|
try {
|
|
69348
69856
|
const result2 = await withEventPostRetry(() => createWorkflowRunEventInner(id, data, params, config4), data.eventType, {
|
|
@@ -69545,6 +70053,7 @@ var init_events3 = __esm({
|
|
|
69545
70053
|
__name(splitEventDataForV4, "splitEventDataForV4");
|
|
69546
70054
|
__name(getEvent, "getEvent");
|
|
69547
70055
|
__name(getWorkflowRunEvents, "getWorkflowRunEvents");
|
|
70056
|
+
__name(createWorkflowRunEventBatch, "createWorkflowRunEventBatch");
|
|
69548
70057
|
__name(createWorkflowRunEvent, "createWorkflowRunEvent");
|
|
69549
70058
|
__name(createWorkflowRunEventInner, "createWorkflowRunEventInner");
|
|
69550
70059
|
__name(reconstructRunFromReplayEvents, "reconstructRunFromReplayEvents");
|
|
@@ -69651,6 +70160,7 @@ function createStorage2(config4) {
|
|
|
69651
70160
|
},
|
|
69652
70161
|
events: {
|
|
69653
70162
|
create: /* @__PURE__ */ __name((runId, data, params) => createWorkflowRunEvent(runId, data, params, config4), "create"),
|
|
70163
|
+
createBatch: /* @__PURE__ */ __name((runId, events, params) => createWorkflowRunEventBatch(runId, events, params, config4), "createBatch"),
|
|
69654
70164
|
get: /* @__PURE__ */ __name((runId, eventId, params) => getEvent(runId, eventId, params, config4), "get"),
|
|
69655
70165
|
list: /* @__PURE__ */ __name((params) => getWorkflowRunEvents(params, config4), "list"),
|
|
69656
70166
|
listByCorrelationId: /* @__PURE__ */ __name((params) => getWorkflowRunEvents(params, config4), "listByCorrelationId")
|
|
@@ -71156,6 +71666,10 @@ async function recordElapsedSpan2(spanName, startEpochMs, opts) {
|
|
|
71156
71666
|
return;
|
|
71157
71667
|
tracer.startSpan(spanName, { ...opts, startTime: startEpochMs }).end();
|
|
71158
71668
|
}
|
|
71669
|
+
async function recordStepExecutionDuration(durationMs, status) {
|
|
71670
|
+
const histogram = await StepExecutionDurationHistogram2.value;
|
|
71671
|
+
histogram?.record(durationMs, { "workflow.step.status": status });
|
|
71672
|
+
}
|
|
71159
71673
|
function applyWorkflowSuspensionToSpan2(error95, span) {
|
|
71160
71674
|
span.setAttributes({
|
|
71161
71675
|
...WorkflowSuspensionState2("suspended"),
|
|
@@ -71217,7 +71731,7 @@ async function withWorkflowBaggage(context2, fn) {
|
|
|
71217
71731
|
const contextWithBaggage = otel.propagation.setBaggage(otel.context.active(), baggage);
|
|
71218
71732
|
return otel.context.with(contextWithBaggage, () => fn());
|
|
71219
71733
|
}
|
|
71220
|
-
var warnedUnrecognizedTraceModes, OtelApi2, Tracer2, otelDiagLogged3;
|
|
71734
|
+
var warnedUnrecognizedTraceModes, OtelApi2, Tracer2, StepExecutionDurationHistogram2, otelDiagLogged3;
|
|
71221
71735
|
var init_telemetry4 = __esm({
|
|
71222
71736
|
"../core/dist/telemetry.js"() {
|
|
71223
71737
|
"use strict";
|
|
@@ -71249,10 +71763,20 @@ var init_telemetry4 = __esm({
|
|
|
71249
71763
|
logOtelDiagnosticOnce3(api, tracer);
|
|
71250
71764
|
return tracer;
|
|
71251
71765
|
});
|
|
71766
|
+
StepExecutionDurationHistogram2 = once2(async () => {
|
|
71767
|
+
const otel = await OtelApi2.value;
|
|
71768
|
+
if (!otel)
|
|
71769
|
+
return null;
|
|
71770
|
+
return otel.metrics.getMeter("workflow").createHistogram("workflow.step.execute.duration", {
|
|
71771
|
+
description: "Duration of user step execution",
|
|
71772
|
+
unit: "ms"
|
|
71773
|
+
});
|
|
71774
|
+
});
|
|
71252
71775
|
otelDiagLogged3 = false;
|
|
71253
71776
|
__name(logOtelDiagnosticOnce3, "logOtelDiagnosticOnce");
|
|
71254
71777
|
__name(trace5, "trace");
|
|
71255
71778
|
__name(recordElapsedSpan2, "recordElapsedSpan");
|
|
71779
|
+
__name(recordStepExecutionDuration, "recordStepExecutionDuration");
|
|
71256
71780
|
__name(applyWorkflowSuspensionToSpan2, "applyWorkflowSuspensionToSpan");
|
|
71257
71781
|
__name(getSpanContextForTraceCarrier2, "getSpanContextForTraceCarrier");
|
|
71258
71782
|
__name(getActiveSpan3, "getActiveSpan");
|
|
@@ -71454,12 +71978,6 @@ function registerDeliveryBarrier(ctx, eventIndex, kind, options = {}) {
|
|
|
71454
71978
|
}
|
|
71455
71979
|
let done = false;
|
|
71456
71980
|
const { promise: promise3, resolve: resolve3 } = withResolvers2();
|
|
71457
|
-
const entry = {
|
|
71458
|
-
kind,
|
|
71459
|
-
delivered: promise3,
|
|
71460
|
-
armed: options.armed ?? true
|
|
71461
|
-
};
|
|
71462
|
-
barriers.set(eventIndex, entry);
|
|
71463
71981
|
const finish = /* @__PURE__ */ __name(() => {
|
|
71464
71982
|
if (done) {
|
|
71465
71983
|
return;
|
|
@@ -71470,7 +71988,14 @@ function registerDeliveryBarrier(ctx, eventIndex, kind, options = {}) {
|
|
|
71470
71988
|
}
|
|
71471
71989
|
resolve3();
|
|
71472
71990
|
}, "finish");
|
|
71473
|
-
|
|
71991
|
+
const entry = {
|
|
71992
|
+
kind,
|
|
71993
|
+
delivered: promise3,
|
|
71994
|
+
armed: options.armed ?? true,
|
|
71995
|
+
retire: finish
|
|
71996
|
+
};
|
|
71997
|
+
barriers.set(eventIndex, entry);
|
|
71998
|
+
ensureBarrierSafetyNet(ctx);
|
|
71474
71999
|
return {
|
|
71475
72000
|
markDelivered: finish,
|
|
71476
72001
|
arm: /* @__PURE__ */ __name(() => {
|
|
@@ -71478,6 +72003,45 @@ function registerDeliveryBarrier(ctx, eventIndex, kind, options = {}) {
|
|
|
71478
72003
|
}, "arm")
|
|
71479
72004
|
};
|
|
71480
72005
|
}
|
|
72006
|
+
function ensureBarrierSafetyNet(ctx) {
|
|
72007
|
+
const barriers = ctx.pendingDeliveryBarriers;
|
|
72008
|
+
if (!barriers || activeBarrierSafetyNets.has(ctx)) {
|
|
72009
|
+
return;
|
|
72010
|
+
}
|
|
72011
|
+
activeBarrierSafetyNets.add(ctx);
|
|
72012
|
+
const rearm = /* @__PURE__ */ __name(() => {
|
|
72013
|
+
setTimeout(check3, 0);
|
|
72014
|
+
}, "rearm");
|
|
72015
|
+
const rearmAfterRejection = /* @__PURE__ */ __name(() => {
|
|
72016
|
+
setTimeout(check3, 50);
|
|
72017
|
+
}, "rearmAfterRejection");
|
|
72018
|
+
const check3 = /* @__PURE__ */ __name(() => {
|
|
72019
|
+
if (barriers.size === 0) {
|
|
72020
|
+
activeBarrierSafetyNets.delete(ctx);
|
|
72021
|
+
return;
|
|
72022
|
+
}
|
|
72023
|
+
if (!canRetireAbandonedBarriers(ctx)) {
|
|
72024
|
+
ctx.promiseQueue.then(rearm, rearmAfterRejection);
|
|
72025
|
+
return;
|
|
72026
|
+
}
|
|
72027
|
+
while (barriers.size > 0 && canRetireAbandonedBarriers(ctx)) {
|
|
72028
|
+
let lowestIndex;
|
|
72029
|
+
let lowestEntry;
|
|
72030
|
+
for (const [index, entry] of barriers) {
|
|
72031
|
+
if (lowestIndex === void 0 || index < lowestIndex) {
|
|
72032
|
+
lowestIndex = index;
|
|
72033
|
+
lowestEntry = entry;
|
|
72034
|
+
}
|
|
72035
|
+
}
|
|
72036
|
+
lowestEntry?.retire();
|
|
72037
|
+
}
|
|
72038
|
+
setTimeout(check3, 0);
|
|
72039
|
+
}, "check");
|
|
72040
|
+
setTimeout(check3, 0);
|
|
72041
|
+
}
|
|
72042
|
+
function canRetireAbandonedBarriers(ctx) {
|
|
72043
|
+
return ctx.pendingDeliveries === 0 && !hasParkedCommittedDelivery(ctx);
|
|
72044
|
+
}
|
|
71481
72045
|
function hasParkedCommittedDelivery(ctx) {
|
|
71482
72046
|
const barriers = ctx.pendingDeliveryBarriers;
|
|
71483
72047
|
if (!barriers || barriers.size === 0) {
|
|
@@ -71492,7 +72056,7 @@ function hasParkedCommittedDelivery(ctx) {
|
|
|
71492
72056
|
return false;
|
|
71493
72057
|
}
|
|
71494
72058
|
function isDeliveryIdle(ctx) {
|
|
71495
|
-
return ctx.pendingDeliveries === 0 && !
|
|
72059
|
+
return ctx.pendingDeliveries === 0 && (!ctx.pendingDeliveryBarriers || ctx.pendingDeliveryBarriers.size === 0);
|
|
71496
72060
|
}
|
|
71497
72061
|
function scheduleWhenIdle(ctx, fn) {
|
|
71498
72062
|
const check3 = /* @__PURE__ */ __name(() => {
|
|
@@ -71506,7 +72070,7 @@ function scheduleWhenIdle(ctx, fn) {
|
|
|
71506
72070
|
}, "check");
|
|
71507
72071
|
setTimeout(check3, 0);
|
|
71508
72072
|
}
|
|
71509
|
-
var RegisteredStepsKey2, globalSymbols3, registeredSteps2, BUILTIN_RESPONSE_STEP_NAMES2, DEFER_BEHIND;
|
|
72073
|
+
var RegisteredStepsKey2, globalSymbols3, registeredSteps2, BUILTIN_RESPONSE_STEP_NAMES2, DEFER_BEHIND, activeBarrierSafetyNets;
|
|
71510
72074
|
var init_private2 = __esm({
|
|
71511
72075
|
"../core/dist/private.js"() {
|
|
71512
72076
|
"use strict";
|
|
@@ -71532,6 +72096,9 @@ var init_private2 = __esm({
|
|
|
71532
72096
|
__name(computeResolvesOnItsOwn, "computeResolvesOnItsOwn");
|
|
71533
72097
|
__name(awaitEarlierDeliveries, "awaitEarlierDeliveries");
|
|
71534
72098
|
__name(registerDeliveryBarrier, "registerDeliveryBarrier");
|
|
72099
|
+
activeBarrierSafetyNets = /* @__PURE__ */ new WeakSet();
|
|
72100
|
+
__name(ensureBarrierSafetyNet, "ensureBarrierSafetyNet");
|
|
72101
|
+
__name(canRetireAbandonedBarriers, "canRetireAbandonedBarriers");
|
|
71535
72102
|
__name(hasParkedCommittedDelivery, "hasParkedCommittedDelivery");
|
|
71536
72103
|
__name(isDeliveryIdle, "isDeliveryIdle");
|
|
71537
72104
|
__name(scheduleWhenIdle, "scheduleWhenIdle");
|
|
@@ -77238,7 +77805,7 @@ var version5;
|
|
|
77238
77805
|
var init_version4 = __esm({
|
|
77239
77806
|
"../core/dist/version.js"() {
|
|
77240
77807
|
"use strict";
|
|
77241
|
-
version5 = "5.0.0-beta.
|
|
77808
|
+
version5 = "5.0.0-beta.43";
|
|
77242
77809
|
}
|
|
77243
77810
|
});
|
|
77244
77811
|
|
|
@@ -78289,6 +78856,16 @@ function createReconnectingFramedStream2(runId, name, startIndex) {
|
|
|
78289
78856
|
reader = stream.getReader();
|
|
78290
78857
|
}
|
|
78291
78858
|
__name(connect2, "connect");
|
|
78859
|
+
async function isVerifiedComplete() {
|
|
78860
|
+
try {
|
|
78861
|
+
const world = await getWorldLazy2();
|
|
78862
|
+
const info = await world.streams.getInfo(runId, name);
|
|
78863
|
+
return info.done && currentStartIndex + consumedFrames > info.tailIndex;
|
|
78864
|
+
} catch {
|
|
78865
|
+
return true;
|
|
78866
|
+
}
|
|
78867
|
+
}
|
|
78868
|
+
__name(isVerifiedComplete, "isVerifiedComplete");
|
|
78292
78869
|
async function reconnect() {
|
|
78293
78870
|
if (reader) {
|
|
78294
78871
|
await reader.cancel().catch(() => {
|
|
@@ -78350,6 +78927,15 @@ function createReconnectingFramedStream2(runId, name, startIndex) {
|
|
|
78350
78927
|
}
|
|
78351
78928
|
if (result2.done || !result2.value) {
|
|
78352
78929
|
reader = void 0;
|
|
78930
|
+
if (reconnectSupported && !await isVerifiedComplete()) {
|
|
78931
|
+
try {
|
|
78932
|
+
await reconnect();
|
|
78933
|
+
} catch (reconnectErr) {
|
|
78934
|
+
controller.error(reconnectErr);
|
|
78935
|
+
return;
|
|
78936
|
+
}
|
|
78937
|
+
continue;
|
|
78938
|
+
}
|
|
78353
78939
|
if (readStart !== void 0) {
|
|
78354
78940
|
recordStreamReadComplete2(readStart, runId, name, chunksDelivered, bytesDelivered, totalReconnectCount);
|
|
78355
78941
|
}
|
|
@@ -80012,6 +80598,12 @@ function getMaxInlineSteps() {
|
|
|
80012
80598
|
function isResilientStepDispatchEnabled() {
|
|
80013
80599
|
return process.env.WORKFLOW_RESILIENT_STEP_DISPATCH === "1";
|
|
80014
80600
|
}
|
|
80601
|
+
function isBatchTransitionsEnabled() {
|
|
80602
|
+
const raw = process.env.WORKFLOW_BATCH_TRANSITIONS;
|
|
80603
|
+
if (raw === void 0 || raw === "")
|
|
80604
|
+
return true;
|
|
80605
|
+
return !(raw === "0" || raw.toLowerCase() === "false");
|
|
80606
|
+
}
|
|
80015
80607
|
function getMaxEventsOverride() {
|
|
80016
80608
|
const raw = process.env.WORKFLOW_MAX_EVENTS_OVERRIDE;
|
|
80017
80609
|
if (!raw)
|
|
@@ -80080,7 +80672,7 @@ function getPreconditionReinvokeDelaySeconds() {
|
|
|
80080
80672
|
function getDeploymentMismatchMaxRetries() {
|
|
80081
80673
|
return envNumber2("WORKFLOW_DEPLOYMENT_MISMATCH_MAX_RETRIES", DEPLOYMENT_MISMATCH_MAX_RETRIES, { integer: true, min: 0 });
|
|
80082
80674
|
}
|
|
80083
|
-
var MAX_QUEUE_DELIVERIES, REPLAY_TIMEOUT_MS, MIN_REPLAY_TIMEOUT_MS, MAX_REPLAY_TIMEOUT_MS, warnedReplayTimeoutValues, REPLAY_TIMEOUT_MAX_RETRIES, MAX_INLINE_STEPS, MIN_MAX_INLINE_STEPS, MAX_MAX_INLINE_STEPS, warnedMaxInlineStepsValues, MAX_RESILIENT_STEP_INPUT_BYTES, warnedMaxEventsValues, INLINE_OWNERSHIP_LEASE_SECONDS, MAX_INLINE_OWNERSHIP_LEASE_SECONDS, REPLAY_DIVERGENCE_MAX_RETRIES, PRECONDITION_MAX_INPROCESS_RESTARTS, PRECONDITION_MAX_REINVOCATIONS, PRECONDITION_REINVOKE_DELAY_SECONDS, DEPLOYMENT_MISMATCH_MAX_RETRIES;
|
|
80675
|
+
var MAX_QUEUE_DELIVERIES, REPLAY_TIMEOUT_MS, MIN_REPLAY_TIMEOUT_MS, MAX_REPLAY_TIMEOUT_MS, warnedReplayTimeoutValues, REPLAY_TIMEOUT_MAX_RETRIES, MAX_INLINE_STEPS, MIN_MAX_INLINE_STEPS, MAX_MAX_INLINE_STEPS, warnedMaxInlineStepsValues, MAX_RESILIENT_STEP_INPUT_BYTES, MAX_BATCH_FANOUT_EVENTS, warnedMaxEventsValues, INLINE_OWNERSHIP_LEASE_SECONDS, MAX_INLINE_OWNERSHIP_LEASE_SECONDS, REPLAY_DIVERGENCE_MAX_RETRIES, PRECONDITION_MAX_INPROCESS_RESTARTS, PRECONDITION_MAX_REINVOCATIONS, PRECONDITION_REINVOKE_DELAY_SECONDS, DEPLOYMENT_MISMATCH_MAX_RETRIES;
|
|
80084
80676
|
var init_constants3 = __esm({
|
|
80085
80677
|
"../core/dist/runtime/constants.js"() {
|
|
80086
80678
|
"use strict";
|
|
@@ -80103,6 +80695,8 @@ var init_constants3 = __esm({
|
|
|
80103
80695
|
__name(getMaxInlineSteps, "getMaxInlineSteps");
|
|
80104
80696
|
MAX_RESILIENT_STEP_INPUT_BYTES = 128 * 1024;
|
|
80105
80697
|
__name(isResilientStepDispatchEnabled, "isResilientStepDispatchEnabled");
|
|
80698
|
+
__name(isBatchTransitionsEnabled, "isBatchTransitionsEnabled");
|
|
80699
|
+
MAX_BATCH_FANOUT_EVENTS = 32;
|
|
80106
80700
|
warnedMaxEventsValues = /* @__PURE__ */ new Set();
|
|
80107
80701
|
__name(getMaxEventsOverride, "getMaxEventsOverride");
|
|
80108
80702
|
__name(isOptimisticInlineStartEnabled, "isOptimisticInlineStartEnabled");
|
|
@@ -80631,6 +81225,8 @@ function computeStepLatencyEventData(params) {
|
|
|
80631
81225
|
optimizations.push("lazyStepStart");
|
|
80632
81226
|
if (params.optimisticStart)
|
|
80633
81227
|
optimizations.push("optimisticStart");
|
|
81228
|
+
if (params.preclaimedStart)
|
|
81229
|
+
optimizations.push("preclaimedStart");
|
|
80634
81230
|
return {
|
|
80635
81231
|
...ttfs !== void 0 ? { ttfs } : {},
|
|
80636
81232
|
...stso !== void 0 ? { stso } : {},
|
|
@@ -80662,6 +81258,7 @@ var init_step_latency = __esm({
|
|
|
80662
81258
|
});
|
|
80663
81259
|
|
|
80664
81260
|
// ../core/dist/runtime/step-executor.js
|
|
81261
|
+
import assert5 from "node:assert/strict";
|
|
80665
81262
|
import { types as types7 } from "node:util";
|
|
80666
81263
|
function extractInlineDelta(result2, requested) {
|
|
80667
81264
|
if (!requested)
|
|
@@ -80703,6 +81300,10 @@ async function executeStep(params) {
|
|
|
80703
81300
|
observeSlot(result2);
|
|
80704
81301
|
return result2;
|
|
80705
81302
|
}, "createEvent");
|
|
81303
|
+
const stepStartedEventParams = {
|
|
81304
|
+
computeInstanceId: COMPUTE_INSTANCE_ID,
|
|
81305
|
+
...params.requestId ? { requestId: params.requestId } : {}
|
|
81306
|
+
};
|
|
80706
81307
|
const spanName = `step.execute ${stepDisplayName(stepName)}`;
|
|
80707
81308
|
return trace5(spanName, {}, async (span) => {
|
|
80708
81309
|
span?.setAttributes({
|
|
@@ -80711,6 +81312,24 @@ async function executeStep(params) {
|
|
|
80711
81312
|
...WorkflowRunId4(workflowRunId),
|
|
80712
81313
|
...StepId4(stepId)
|
|
80713
81314
|
});
|
|
81315
|
+
assert5(!(params.lazyStepInput !== void 0 && params.preclaimedStart), "executeStep: lazyStepInput and preclaimedStart are mutually exclusive");
|
|
81316
|
+
if (params.preclaimedStart && params.preclaimedStart.owned === false) {
|
|
81317
|
+
runtimeLogger2.debug("Pre-claimed step start lost, skipping", {
|
|
81318
|
+
stepName,
|
|
81319
|
+
stepId,
|
|
81320
|
+
workflowRunId
|
|
81321
|
+
});
|
|
81322
|
+
span?.setAttributes({
|
|
81323
|
+
...StepSkipped2(true),
|
|
81324
|
+
// `running`, not `completed`: the pair's 409 says the step already
|
|
81325
|
+
// EXISTS, and the writer that won the create-claim is executing it.
|
|
81326
|
+
// The other skip site below is a genuine terminal-state conflict —
|
|
81327
|
+
// tagging both `completed` would make the attribute read 100%
|
|
81328
|
+
// `completed` and lose the only distinction worth querying it for.
|
|
81329
|
+
...StepSkipReason2("running")
|
|
81330
|
+
});
|
|
81331
|
+
return { type: "skipped" };
|
|
81332
|
+
}
|
|
80714
81333
|
const getEncryptionKey = memoizeEncryptionKey(world, workflowRunId);
|
|
80715
81334
|
const stepFn = getStepFunction2(stepName);
|
|
80716
81335
|
if (!stepFn || typeof stepFn !== "function") {
|
|
@@ -80739,7 +81358,7 @@ async function executeStep(params) {
|
|
|
80739
81358
|
// lazy start.
|
|
80740
81359
|
...params.ownerMessageId !== void 0 ? { ownerMessageId: params.ownerMessageId } : {}
|
|
80741
81360
|
}
|
|
80742
|
-
},
|
|
81361
|
+
}, stepStartedEventParams);
|
|
80743
81362
|
} catch (startErr) {
|
|
80744
81363
|
if (EntityConflictError2.is(startErr)) {
|
|
80745
81364
|
return { type: "skipped" };
|
|
@@ -80853,14 +81472,17 @@ async function executeStep(params) {
|
|
|
80853
81472
|
}
|
|
80854
81473
|
return void 0;
|
|
80855
81474
|
}, "startErrorToResult");
|
|
80856
|
-
const optimisticStart =
|
|
80857
|
-
|
|
80858
|
-
|
|
80859
|
-
|
|
81475
|
+
const optimisticStart = (
|
|
81476
|
+
// A pre-claimed start already settled its claim in the suspension
|
|
81477
|
+
// batch; there is nothing to fire optimistically (lazyStepInput is
|
|
81478
|
+
// also absent on that path — this term is documentation).
|
|
81479
|
+
params.preclaimedStart === void 0 && params.lazyStepInput !== void 0 && // Stale-sensitive guarded batches await the claim so the 412 fence
|
|
81480
|
+
// covers the body, not just durable writes — see
|
|
81481
|
+
// StepExecutorParams.suppressOptimisticStart.
|
|
81482
|
+
params.suppressOptimisticStart !== true && (isOptimisticInlineStartEnabled() || params.forceOptimisticStart === true && !isOptimisticInlineStartExplicitlyDisabled())
|
|
81483
|
+
);
|
|
80860
81484
|
let step;
|
|
80861
|
-
const startEventParams =
|
|
80862
|
-
computeInstanceId: COMPUTE_INSTANCE_ID
|
|
80863
|
-
};
|
|
81485
|
+
const startEventParams = stepStartedEventParams;
|
|
80864
81486
|
let stepStartPostSentAtMs;
|
|
80865
81487
|
let stepClaimCompletedAtMs;
|
|
80866
81488
|
let optimisticStartSettled;
|
|
@@ -80875,7 +81497,11 @@ async function executeStep(params) {
|
|
|
80875
81497
|
throw settled.err;
|
|
80876
81498
|
return mapped;
|
|
80877
81499
|
}, "reconcileOptimisticStart");
|
|
80878
|
-
if (
|
|
81500
|
+
if (params.preclaimedStart?.owned) {
|
|
81501
|
+
step = params.preclaimedStart.step;
|
|
81502
|
+
stepStartPostSentAtMs = params.preclaimedStart.batchPostSentAtMs;
|
|
81503
|
+
stepClaimCompletedAtMs = params.preclaimedStart.claimCompletedAtMs;
|
|
81504
|
+
} else if (optimisticStart) {
|
|
80879
81505
|
const startedPromise = (params.runReadyBarrier ?? Promise.resolve()).then(() => {
|
|
80880
81506
|
stepStartPostSentAtMs = Date.now();
|
|
80881
81507
|
return createEvent(
|
|
@@ -81041,6 +81667,7 @@ async function executeStep(params) {
|
|
|
81041
81667
|
attempt,
|
|
81042
81668
|
lazyStepStart: params.lazyStepInput !== void 0,
|
|
81043
81669
|
optimisticStart,
|
|
81670
|
+
preclaimedStart: params.preclaimedStart !== void 0,
|
|
81044
81671
|
stepStartPostSentAtMs
|
|
81045
81672
|
});
|
|
81046
81673
|
if (latencyEventData) {
|
|
@@ -81068,6 +81695,8 @@ async function executeStep(params) {
|
|
|
81068
81695
|
tracking.reported = true;
|
|
81069
81696
|
span?.setAttributes(attributes);
|
|
81070
81697
|
}, "reportResumeTtr");
|
|
81698
|
+
let stepExecutionStatus = "ok";
|
|
81699
|
+
const stepExecutionStartTime = performance.now();
|
|
81071
81700
|
try {
|
|
81072
81701
|
result2 = await trace5("step.execute", {}, async () => {
|
|
81073
81702
|
return await contextStorage2.run({
|
|
@@ -81101,8 +81730,11 @@ async function executeStep(params) {
|
|
|
81101
81730
|
});
|
|
81102
81731
|
});
|
|
81103
81732
|
} catch (err) {
|
|
81733
|
+
stepExecutionStatus = "error";
|
|
81104
81734
|
userCodeError = err;
|
|
81105
81735
|
userCodeFailed = true;
|
|
81736
|
+
} finally {
|
|
81737
|
+
void recordStepExecutionDuration(performance.now() - stepExecutionStartTime, stepExecutionStatus);
|
|
81106
81738
|
}
|
|
81107
81739
|
const executionTimeMs = Date.now() - executionStartTime;
|
|
81108
81740
|
cancelAbortReaders(...args, thisVal, hydratedInput.closureVars);
|
|
@@ -89640,7 +90272,7 @@ async function dispatchPendingOps(params) {
|
|
|
89640
90272
|
return { createdAttributeEvent, createdGetConflictHook, queuedStepCids };
|
|
89641
90273
|
}
|
|
89642
90274
|
async function runWorkflowWithQuickJS(params) {
|
|
89643
|
-
const { workflowCode: workflowCode2, workflowName, workflowRun, preloadedEvents, preloadedEventsComplete, runInput, parentSpan, maxEventsLimit, deliveryAttempt, ownerMessageId, namespace } = params;
|
|
90275
|
+
const { workflowCode: workflowCode2, workflowName, workflowRun, preloadedEvents, preloadedEventsComplete, runInput, parentSpan, maxEventsLimit, deliveryAttempt, ownerMessageId, requestId, namespace } = params;
|
|
89644
90276
|
const nextTraceCarrier = params.nextTraceCarrier ?? (() => serializeTraceCarrier2());
|
|
89645
90277
|
const world = await getWorld();
|
|
89646
90278
|
const runId = workflowRun.runId;
|
|
@@ -90016,6 +90648,7 @@ async function runWorkflowWithQuickJS(params) {
|
|
|
90016
90648
|
workflowDeploymentId: workflowRun.deploymentId,
|
|
90017
90649
|
workflowName: workflowRun.workflowName,
|
|
90018
90650
|
workflowStartedAt,
|
|
90651
|
+
requestId,
|
|
90019
90652
|
rootRunId,
|
|
90020
90653
|
stepId: step.correlationId,
|
|
90021
90654
|
stepName: step.stepId,
|
|
@@ -108810,6 +109443,12 @@ var init_hooks = __esm2({
|
|
|
108810
109443
|
});
|
|
108811
109444
|
}
|
|
108812
109445
|
});
|
|
109446
|
+
var init_node_http_flag = __esm2({
|
|
109447
|
+
"../world/dist/node-http-flag.js"() {
|
|
109448
|
+
"use strict";
|
|
109449
|
+
init_env_config();
|
|
109450
|
+
}
|
|
109451
|
+
});
|
|
108813
109452
|
var init_recovery = __esm2({
|
|
108814
109453
|
"../world/dist/recovery.js"() {
|
|
108815
109454
|
"use strict";
|
|
@@ -109065,6 +109704,7 @@ var init_dist4 = __esm2({
|
|
|
109065
109704
|
init_env_config();
|
|
109066
109705
|
init_events();
|
|
109067
109706
|
init_hooks();
|
|
109707
|
+
init_node_http_flag();
|
|
109068
109708
|
init_queue();
|
|
109069
109709
|
init_recovery();
|
|
109070
109710
|
init_runs();
|
|
@@ -114919,6 +115559,7 @@ async function linkToTraceCarrier(carrier) {
|
|
|
114919
115559
|
__name(linkToTraceCarrier, "linkToTraceCarrier");
|
|
114920
115560
|
var OtelApi;
|
|
114921
115561
|
var Tracer;
|
|
115562
|
+
var StepExecutionDurationHistogram;
|
|
114922
115563
|
var otelDiagLogged;
|
|
114923
115564
|
var init_telemetry = __esm2({
|
|
114924
115565
|
"../core/dist/telemetry.js"() {
|
|
@@ -114944,6 +115585,14 @@ var init_telemetry = __esm2({
|
|
|
114944
115585
|
logOtelDiagnosticOnce(api, tracer);
|
|
114945
115586
|
return tracer;
|
|
114946
115587
|
});
|
|
115588
|
+
StepExecutionDurationHistogram = once(async () => {
|
|
115589
|
+
const otel = await OtelApi.value;
|
|
115590
|
+
if (!otel) return null;
|
|
115591
|
+
return otel.metrics.getMeter("workflow").createHistogram("workflow.step.execute.duration", {
|
|
115592
|
+
description: "Duration of user step execution",
|
|
115593
|
+
unit: "ms"
|
|
115594
|
+
});
|
|
115595
|
+
});
|
|
114947
115596
|
otelDiagLogged = false;
|
|
114948
115597
|
__name2(logOtelDiagnosticOnce, "logOtelDiagnosticOnce");
|
|
114949
115598
|
__name2(trace, "trace");
|
|
@@ -117320,7 +117969,7 @@ var version2;
|
|
|
117320
117969
|
var init_version = __esm2({
|
|
117321
117970
|
"../core/dist/version.js"() {
|
|
117322
117971
|
"use strict";
|
|
117323
|
-
version2 = "5.0.0-beta.
|
|
117972
|
+
version2 = "5.0.0-beta.43";
|
|
117324
117973
|
}
|
|
117325
117974
|
});
|
|
117326
117975
|
function getWorkflowQueueName(workflowName, namespace) {
|
|
@@ -119266,7 +119915,7 @@ var require_limiter = __commonJS2({
|
|
|
119266
119915
|
var require_permessage_deflate = __commonJS2({
|
|
119267
119916
|
"../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
|
|
119268
119917
|
"use strict";
|
|
119269
|
-
var
|
|
119918
|
+
var zlib2 = __require2("zlib");
|
|
119270
119919
|
var bufferUtil = require_buffer_util();
|
|
119271
119920
|
var Limiter = require_limiter();
|
|
119272
119921
|
var { kStatusCode } = require_constants2();
|
|
@@ -119530,8 +120179,8 @@ var require_permessage_deflate = __commonJS2({
|
|
|
119530
120179
|
const endpoint = this._isServer ? "client" : "server";
|
|
119531
120180
|
if (!this._inflate) {
|
|
119532
120181
|
const key = `${endpoint}_max_window_bits`;
|
|
119533
|
-
const windowBits = typeof this.params[key] !== "number" ?
|
|
119534
|
-
this._inflate =
|
|
120182
|
+
const windowBits = typeof this.params[key] !== "number" ? zlib2.Z_DEFAULT_WINDOWBITS : this.params[key];
|
|
120183
|
+
this._inflate = zlib2.createInflateRaw({
|
|
119535
120184
|
...this._options.zlibInflateOptions,
|
|
119536
120185
|
windowBits
|
|
119537
120186
|
});
|
|
@@ -119578,8 +120227,8 @@ var require_permessage_deflate = __commonJS2({
|
|
|
119578
120227
|
const endpoint = this._isServer ? "server" : "client";
|
|
119579
120228
|
if (!this._deflate) {
|
|
119580
120229
|
const key = `${endpoint}_max_window_bits`;
|
|
119581
|
-
const windowBits = typeof this.params[key] !== "number" ?
|
|
119582
|
-
this._deflate =
|
|
120230
|
+
const windowBits = typeof this.params[key] !== "number" ? zlib2.Z_DEFAULT_WINDOWBITS : this.params[key];
|
|
120231
|
+
this._deflate = zlib2.createDeflateRaw({
|
|
119583
120232
|
...this._options.zlibDeflateOptions,
|
|
119584
120233
|
windowBits
|
|
119585
120234
|
});
|
|
@@ -119589,7 +120238,7 @@ var require_permessage_deflate = __commonJS2({
|
|
|
119589
120238
|
}
|
|
119590
120239
|
this._deflate[kCallback] = callback;
|
|
119591
120240
|
this._deflate.write(data);
|
|
119592
|
-
this._deflate.flush(
|
|
120241
|
+
this._deflate.flush(zlib2.Z_SYNC_FLUSH, () => {
|
|
119593
120242
|
if (!this._deflate) {
|
|
119594
120243
|
return;
|
|
119595
120244
|
}
|
|
@@ -120980,8 +121629,8 @@ var require_websocket = __commonJS2({
|
|
|
120980
121629
|
"../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket.js"(exports, module) {
|
|
120981
121630
|
"use strict";
|
|
120982
121631
|
var EventEmitter2 = __require2("events");
|
|
120983
|
-
var
|
|
120984
|
-
var
|
|
121632
|
+
var https2 = __require2("https");
|
|
121633
|
+
var http2 = __require2("http");
|
|
120985
121634
|
var net2 = __require2("net");
|
|
120986
121635
|
var tls = __require2("tls");
|
|
120987
121636
|
var { randomBytes, createHash: createHash3 } = __require2("crypto");
|
|
@@ -121523,7 +122172,7 @@ var require_websocket = __commonJS2({
|
|
|
121523
122172
|
}
|
|
121524
122173
|
const defaultPort = isSecure ? 443 : 80;
|
|
121525
122174
|
const key = randomBytes(16).toString("base64");
|
|
121526
|
-
const request = isSecure ?
|
|
122175
|
+
const request = isSecure ? https2.request : http2.request;
|
|
121527
122176
|
const protocolSet = /* @__PURE__ */ new Set();
|
|
121528
122177
|
let perMessageDeflate;
|
|
121529
122178
|
opts.createConnection = opts.createConnection || (isSecure ? tlsConnect : netConnect);
|
|
@@ -121904,7 +122553,7 @@ var require_websocket_server = __commonJS2({
|
|
|
121904
122553
|
"../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket-server.js"(exports, module) {
|
|
121905
122554
|
"use strict";
|
|
121906
122555
|
var EventEmitter2 = __require2("events");
|
|
121907
|
-
var
|
|
122556
|
+
var http2 = __require2("http");
|
|
121908
122557
|
var { createHash: createHash3 } = __require2("crypto");
|
|
121909
122558
|
var extension2 = require_extension();
|
|
121910
122559
|
var PerMessageDeflate2 = require_permessage_deflate();
|
|
@@ -121981,8 +122630,8 @@ var require_websocket_server = __commonJS2({
|
|
|
121981
122630
|
throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');
|
|
121982
122631
|
}
|
|
121983
122632
|
if (options.port != null) {
|
|
121984
|
-
this._server =
|
|
121985
|
-
const body =
|
|
122633
|
+
this._server = http2.createServer((req, res) => {
|
|
122634
|
+
const body = http2.STATUS_CODES[426];
|
|
121986
122635
|
res.writeHead(426, {
|
|
121987
122636
|
"Content-Length": body.length,
|
|
121988
122637
|
"Content-Type": "text/plain"
|
|
@@ -122262,7 +122911,7 @@ var require_websocket_server = __commonJS2({
|
|
|
122262
122911
|
__name(socketOnError, "socketOnError");
|
|
122263
122912
|
__name2(socketOnError, "socketOnError");
|
|
122264
122913
|
function abortHandshake(socket, code22, message, headers) {
|
|
122265
|
-
message = message ||
|
|
122914
|
+
message = message || http2.STATUS_CODES[code22];
|
|
122266
122915
|
headers = {
|
|
122267
122916
|
Connection: "close",
|
|
122268
122917
|
"Content-Type": "text/html",
|
|
@@ -122270,7 +122919,7 @@ var require_websocket_server = __commonJS2({
|
|
|
122270
122919
|
...headers
|
|
122271
122920
|
};
|
|
122272
122921
|
socket.once("finish", socket.destroy);
|
|
122273
|
-
socket.end(`HTTP/1.1 ${code22} ${
|
|
122922
|
+
socket.end(`HTTP/1.1 ${code22} ${http2.STATUS_CODES[code22]}\r
|
|
122274
122923
|
` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message);
|
|
122275
122924
|
}
|
|
122276
122925
|
__name(abortHandshake, "abortHandshake");
|
|
@@ -123166,6 +123815,17 @@ function createReconnectingFramedStream(runId, name, startIndex) {
|
|
|
123166
123815
|
}
|
|
123167
123816
|
__name(connect2, "connect");
|
|
123168
123817
|
__name2(connect2, "connect");
|
|
123818
|
+
async function isVerifiedComplete() {
|
|
123819
|
+
try {
|
|
123820
|
+
const world = await getWorldLazy();
|
|
123821
|
+
const info = await world.streams.getInfo(runId, name);
|
|
123822
|
+
return info.done && currentStartIndex + consumedFrames > info.tailIndex;
|
|
123823
|
+
} catch {
|
|
123824
|
+
return true;
|
|
123825
|
+
}
|
|
123826
|
+
}
|
|
123827
|
+
__name(isVerifiedComplete, "isVerifiedComplete");
|
|
123828
|
+
__name2(isVerifiedComplete, "isVerifiedComplete");
|
|
123169
123829
|
async function reconnect() {
|
|
123170
123830
|
if (reader) {
|
|
123171
123831
|
await reader.cancel().catch(() => {
|
|
@@ -123226,6 +123886,15 @@ function createReconnectingFramedStream(runId, name, startIndex) {
|
|
|
123226
123886
|
}
|
|
123227
123887
|
if (result2.done || !result2.value) {
|
|
123228
123888
|
reader = void 0;
|
|
123889
|
+
if (reconnectSupported && !await isVerifiedComplete()) {
|
|
123890
|
+
try {
|
|
123891
|
+
await reconnect();
|
|
123892
|
+
} catch (reconnectErr) {
|
|
123893
|
+
controller.error(reconnectErr);
|
|
123894
|
+
return;
|
|
123895
|
+
}
|
|
123896
|
+
continue;
|
|
123897
|
+
}
|
|
123229
123898
|
if (readStart !== void 0) {
|
|
123230
123899
|
recordStreamReadComplete(readStart, runId, name, chunksDelivered, bytesDelivered, totalReconnectCount);
|
|
123231
123900
|
}
|
|
@@ -125029,7 +125698,7 @@ __name2(start, "start");
|
|
|
125029
125698
|
value: "start",
|
|
125030
125699
|
configurable: true
|
|
125031
125700
|
});
|
|
125032
|
-
})(start, "step//@workflow/core/runtime/start@5.0.0-beta.
|
|
125701
|
+
})(start, "step//@workflow/core/runtime/start@5.0.0-beta.43//start");
|
|
125033
125702
|
async function wakeUpRun(world, runId, options) {
|
|
125034
125703
|
try {
|
|
125035
125704
|
const run22 = await world.runs.get(runId, {
|
|
@@ -125113,6 +125782,10 @@ async function wakeUpRun(world, runId, options) {
|
|
|
125113
125782
|
__name(wakeUpRun, "wakeUpRun");
|
|
125114
125783
|
__name2(wakeUpRun, "wakeUpRun");
|
|
125115
125784
|
var RETURN_VALUE_POLL_INTERVAL_MS = 1e3;
|
|
125785
|
+
var PAYLOAD_TERMINAL_RUN_STATUSES = /* @__PURE__ */ new Set([
|
|
125786
|
+
"completed",
|
|
125787
|
+
"failed"
|
|
125788
|
+
]);
|
|
125116
125789
|
function getReturnValuePollIntervalMs() {
|
|
125117
125790
|
return envNumber("WORKFLOW_RETURN_VALUE_POLL_INTERVAL_MS", RETURN_VALUE_POLL_INTERVAL_MS, {
|
|
125118
125791
|
integer: true,
|
|
@@ -125176,12 +125849,12 @@ var Run = class _Run {
|
|
|
125176
125849
|
* to be resolved once.
|
|
125177
125850
|
* @internal
|
|
125178
125851
|
*/
|
|
125179
|
-
#getEncryptionKey() {
|
|
125852
|
+
#getEncryptionKey(run22) {
|
|
125180
125853
|
if (!this.#encryptionKeyPromise) {
|
|
125181
125854
|
this.#encryptionKeyPromise = (async () => {
|
|
125182
125855
|
const world = await this.#lazyWorldPromise;
|
|
125183
|
-
const
|
|
125184
|
-
const rawKey = await world.getEncryptionKeyForRun?.(
|
|
125856
|
+
const runData = run22 ?? await world.runs.get(this.runId);
|
|
125857
|
+
const rawKey = await world.getEncryptionKeyForRun?.(runData);
|
|
125185
125858
|
return rawKey ? await deriveRunPayloadKeys(rawKey) : void 0;
|
|
125186
125859
|
})();
|
|
125187
125860
|
}
|
|
@@ -125242,7 +125915,9 @@ var Run = class _Run {
|
|
|
125242
125915
|
* The status of the workflow run.
|
|
125243
125916
|
*/
|
|
125244
125917
|
get status() {
|
|
125245
|
-
return this.#lazyWorldPromise.then((world) => world.runs.get(this.runId
|
|
125918
|
+
return this.#lazyWorldPromise.then((world) => world.runs.get(this.runId, {
|
|
125919
|
+
resolveData: "none"
|
|
125920
|
+
}).then((run22) => run22.status));
|
|
125246
125921
|
}
|
|
125247
125922
|
/**
|
|
125248
125923
|
* The return value of the workflow run.
|
|
@@ -125313,6 +125988,29 @@ var Run = class _Run {
|
|
|
125313
125988
|
}, "getTailIndex")
|
|
125314
125989
|
});
|
|
125315
125990
|
}
|
|
125991
|
+
/** @internal */
|
|
125992
|
+
async #resolveTerminalReturnValue(run22) {
|
|
125993
|
+
if (run22.status === "completed") {
|
|
125994
|
+
const encryptionKey = await this.#getEncryptionKey(run22);
|
|
125995
|
+
return await hydrateWorkflowReturnValue(run22.output, this.runId, encryptionKey);
|
|
125996
|
+
}
|
|
125997
|
+
if (run22.status === "cancelled") {
|
|
125998
|
+
throw new WorkflowRunCancelledError(this.runId);
|
|
125999
|
+
}
|
|
126000
|
+
if (run22.status === "failed") {
|
|
126001
|
+
const encryptionKey = await this.#getEncryptionKey(run22);
|
|
126002
|
+
let hydratedError;
|
|
126003
|
+
try {
|
|
126004
|
+
hydratedError = await hydrateRunError(run22.error, this.runId, encryptionKey);
|
|
126005
|
+
} catch {
|
|
126006
|
+
hydratedError = new Error("Failed to hydrate workflow run error");
|
|
126007
|
+
}
|
|
126008
|
+
throw new WorkflowRunFailedError(this.runId, hydratedError, {
|
|
126009
|
+
errorCode: run22.errorCode
|
|
126010
|
+
});
|
|
126011
|
+
}
|
|
126012
|
+
throw new WorkflowRunNotCompletedError(this.runId, run22.status);
|
|
126013
|
+
}
|
|
125316
126014
|
/**
|
|
125317
126015
|
* Polls the workflow return value until it is completed.
|
|
125318
126016
|
* @internal
|
|
@@ -125329,27 +126027,19 @@ var Run = class _Run {
|
|
|
125329
126027
|
];
|
|
125330
126028
|
while (true) {
|
|
125331
126029
|
try {
|
|
125332
|
-
const
|
|
125333
|
-
|
|
125334
|
-
|
|
125335
|
-
|
|
125336
|
-
}
|
|
125337
|
-
if (run22.status === "cancelled") {
|
|
126030
|
+
const runMetadata = await world.runs.get(this.runId, {
|
|
126031
|
+
resolveData: "none"
|
|
126032
|
+
});
|
|
126033
|
+
if (runMetadata.status === "cancelled") {
|
|
125338
126034
|
throw new WorkflowRunCancelledError(this.runId);
|
|
125339
126035
|
}
|
|
125340
|
-
if (
|
|
125341
|
-
const
|
|
125342
|
-
|
|
125343
|
-
try {
|
|
125344
|
-
hydratedError = await hydrateRunError(run22.error, this.runId, encryptionKey);
|
|
125345
|
-
} catch {
|
|
125346
|
-
hydratedError = new Error("Failed to hydrate workflow run error");
|
|
125347
|
-
}
|
|
125348
|
-
throw new WorkflowRunFailedError(this.runId, hydratedError, {
|
|
125349
|
-
errorCode: run22.errorCode
|
|
126036
|
+
if (PAYLOAD_TERMINAL_RUN_STATUSES.has(runMetadata.status)) {
|
|
126037
|
+
const run22 = await world.runs.get(this.runId, {
|
|
126038
|
+
resolveData: "all"
|
|
125350
126039
|
});
|
|
126040
|
+
return await this.#resolveTerminalReturnValue(run22);
|
|
125351
126041
|
}
|
|
125352
|
-
throw new WorkflowRunNotCompletedError(this.runId,
|
|
126042
|
+
throw new WorkflowRunNotCompletedError(this.runId, runMetadata.status);
|
|
125353
126043
|
} catch (error482) {
|
|
125354
126044
|
if (WorkflowRunNotCompletedError.is(error482)) {
|
|
125355
126045
|
await new Promise((resolve3) => setTimeout(resolve3, getReturnValuePollIntervalMs()));
|
|
@@ -125374,7 +126064,7 @@ var Run = class _Run {
|
|
|
125374
126064
|
value: "wakeUp",
|
|
125375
126065
|
configurable: true
|
|
125376
126066
|
});
|
|
125377
|
-
})(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126067
|
+
})(Run.prototype["wakeUp"], "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#wakeUp");
|
|
125378
126068
|
(function(__wf_fn, __wf_id) {
|
|
125379
126069
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125380
126070
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125383,7 +126073,7 @@ var Run = class _Run {
|
|
|
125383
126073
|
value: "cancel",
|
|
125384
126074
|
configurable: true
|
|
125385
126075
|
});
|
|
125386
|
-
})(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126076
|
+
})(Run.prototype["cancel"], "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#cancel");
|
|
125387
126077
|
(function(__wf_fn, __wf_id) {
|
|
125388
126078
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125389
126079
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125392,7 +126082,7 @@ var Run = class _Run {
|
|
|
125392
126082
|
value: "getReadable",
|
|
125393
126083
|
configurable: true
|
|
125394
126084
|
});
|
|
125395
|
-
})(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126085
|
+
})(Run.prototype["getReadable"], "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#getReadable");
|
|
125396
126086
|
(function(__wf_fn, __wf_id) {
|
|
125397
126087
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125398
126088
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125401,7 +126091,7 @@ var Run = class _Run {
|
|
|
125401
126091
|
value: "exists",
|
|
125402
126092
|
configurable: true
|
|
125403
126093
|
});
|
|
125404
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126094
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "exists").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#exists");
|
|
125405
126095
|
(function(__wf_fn, __wf_id) {
|
|
125406
126096
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125407
126097
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125410,7 +126100,7 @@ var Run = class _Run {
|
|
|
125410
126100
|
value: "status",
|
|
125411
126101
|
configurable: true
|
|
125412
126102
|
});
|
|
125413
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126103
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "status").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#status");
|
|
125414
126104
|
(function(__wf_fn, __wf_id) {
|
|
125415
126105
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125416
126106
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125419,7 +126109,7 @@ var Run = class _Run {
|
|
|
125419
126109
|
value: "returnValue",
|
|
125420
126110
|
configurable: true
|
|
125421
126111
|
});
|
|
125422
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126112
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "returnValue").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#returnValue");
|
|
125423
126113
|
(function(__wf_fn, __wf_id) {
|
|
125424
126114
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125425
126115
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125428,7 +126118,7 @@ var Run = class _Run {
|
|
|
125428
126118
|
value: "workflowName",
|
|
125429
126119
|
configurable: true
|
|
125430
126120
|
});
|
|
125431
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126121
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "workflowName").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#workflowName");
|
|
125432
126122
|
(function(__wf_fn, __wf_id) {
|
|
125433
126123
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125434
126124
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125437,7 +126127,7 @@ var Run = class _Run {
|
|
|
125437
126127
|
value: "createdAt",
|
|
125438
126128
|
configurable: true
|
|
125439
126129
|
});
|
|
125440
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126130
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "createdAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#createdAt");
|
|
125441
126131
|
(function(__wf_fn, __wf_id) {
|
|
125442
126132
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125443
126133
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125446,7 +126136,7 @@ var Run = class _Run {
|
|
|
125446
126136
|
value: "startedAt",
|
|
125447
126137
|
configurable: true
|
|
125448
126138
|
});
|
|
125449
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126139
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "startedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#startedAt");
|
|
125450
126140
|
(function(__wf_fn, __wf_id) {
|
|
125451
126141
|
var __wf_sym = /* @__PURE__ */ Symbol.for("@workflow/core//registeredSteps"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125452
126142
|
__wf_reg.set(__wf_id, __wf_fn);
|
|
@@ -125455,7 +126145,7 @@ var Run = class _Run {
|
|
|
125455
126145
|
value: "completedAt",
|
|
125456
126146
|
configurable: true
|
|
125457
126147
|
});
|
|
125458
|
-
})(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.
|
|
126148
|
+
})(Object.getOwnPropertyDescriptor(Run.prototype, "completedAt").get, "step//@workflow/core/runtime/run@5.0.0-beta.43//Run#completedAt");
|
|
125459
126149
|
(function(__wf_cls, __wf_id) {
|
|
125460
126150
|
var __wf_sym = /* @__PURE__ */ Symbol.for("workflow-class-registry"), __wf_reg = globalThis[__wf_sym] || (globalThis[__wf_sym] = /* @__PURE__ */ new Map());
|
|
125461
126151
|
__wf_reg.set(__wf_id, __wf_cls);
|
|
@@ -125465,7 +126155,7 @@ var Run = class _Run {
|
|
|
125465
126155
|
enumerable: false,
|
|
125466
126156
|
configurable: false
|
|
125467
126157
|
});
|
|
125468
|
-
})(Run, "class//@workflow/core/runtime/run@5.0.0-beta.
|
|
126158
|
+
})(Run, "class//@workflow/core/runtime/run@5.0.0-beta.43//Run");
|
|
125469
126159
|
async function fetch2(...args) {
|
|
125470
126160
|
return globalThis.fetch(...args);
|
|
125471
126161
|
}
|
|
@@ -126020,7 +126710,7 @@ init_describe_error();
|
|
|
126020
126710
|
init_global2();
|
|
126021
126711
|
init_logger2();
|
|
126022
126712
|
init_private2();
|
|
126023
|
-
import
|
|
126713
|
+
import assert6 from "node:assert/strict";
|
|
126024
126714
|
import { types as types9 } from "node:util";
|
|
126025
126715
|
|
|
126026
126716
|
// ../core/dist/replay-payload-cache.js
|
|
@@ -126353,6 +127043,7 @@ init_logger2();
|
|
|
126353
127043
|
init_serialization4();
|
|
126354
127044
|
init_semantic_conventions2();
|
|
126355
127045
|
init_util5();
|
|
127046
|
+
init_compute_instance();
|
|
126356
127047
|
init_constants3();
|
|
126357
127048
|
init_helpers3();
|
|
126358
127049
|
init_replay_recovery_reporter();
|
|
@@ -126401,7 +127092,7 @@ async function createHookEvent({ runId, hookEvent, queueItem, requestId, createE
|
|
|
126401
127092
|
}
|
|
126402
127093
|
}
|
|
126403
127094
|
__name(createHookEvent, "createHookEvent");
|
|
126404
|
-
async function handleSuspension({ suspension, world, run: run3, span, requestId, eventLog, runReadyBarrier, replayRecoveryReporter, stepDispatch }) {
|
|
127095
|
+
async function handleSuspension({ suspension, world, run: run3, span, requestId, eventLog, runReadyBarrier, replayRecoveryReporter, stepDispatch, ownerMessageId, allowDeferredBatchWork }) {
|
|
126405
127096
|
const runId = run3.runId;
|
|
126406
127097
|
const ensureRunReady = /* @__PURE__ */ __name(async () => {
|
|
126407
127098
|
if (runReadyBarrier) {
|
|
@@ -126591,15 +127282,26 @@ async function handleSuspension({ suspension, world, run: run3, span, requestId,
|
|
|
126591
127282
|
const ops = [];
|
|
126592
127283
|
const queuedStepCorrelationIds = /* @__PURE__ */ new Set();
|
|
126593
127284
|
const resilientDispatchEligible = stepDispatch !== void 0 && isResilientStepDispatchEnabled() && (run3.specVersion ?? 0) >= SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT2;
|
|
127285
|
+
const batchFanoutEligible = isBatchTransitionsEnabled() && typeof world.events.createBatch === "function" && (run3.specVersion ?? 0) >= SPEC_VERSION_SUPPORTS_SLOT_IDENTITY2 && !resilientDispatchEligible && allHookItems.length === 0 && attributeItems.length === 0;
|
|
127286
|
+
const batchQueue = [];
|
|
127287
|
+
const batchPreps = [];
|
|
127288
|
+
const uncreatedWaitCount = waitItems.filter((item) => !item.hasCreatedEvent).length;
|
|
127289
|
+
const inlinePairFoldEligible = batchFanoutEligible && ownerMessageId !== void 0 && lazyInlineCorrelationIds.size > 0 && (lazyInlineCorrelationIds.size >= 2 || stepsNeedingCreation.size - lazyInlineCorrelationIds.size + uncreatedWaitCount >= 1);
|
|
127290
|
+
const inlineClaims = /* @__PURE__ */ new Map();
|
|
127291
|
+
let batchCommittedSlotCeiling;
|
|
126594
127292
|
let stepDispatchTraceCarrier;
|
|
126595
127293
|
const getStepDispatchTraceCarrier = /* @__PURE__ */ __name(() => {
|
|
126596
127294
|
stepDispatchTraceCarrier ??= stepDispatch?.getTraceCarrier() ?? Promise.resolve({});
|
|
126597
127295
|
return stepDispatchTraceCarrier;
|
|
126598
127296
|
}, "getStepDispatchTraceCarrier");
|
|
126599
127297
|
let resilientDispatchRecovered = 0;
|
|
127298
|
+
let batchOrderCounter = 0;
|
|
126600
127299
|
for (const queueItem of stepItems) {
|
|
126601
127300
|
if (stepsNeedingCreation.has(queueItem.correlationId)) {
|
|
126602
|
-
|
|
127301
|
+
const pairFolded = inlinePairFoldEligible && lazyInlineCorrelationIds.has(queueItem.correlationId);
|
|
127302
|
+
const stepOrder = batchOrderCounter;
|
|
127303
|
+
batchOrderCounter += pairFolded ? 2 : 1;
|
|
127304
|
+
const stepOp = (async () => {
|
|
126603
127305
|
const stepGuestCode = { executions: [] };
|
|
126604
127306
|
const dehydratedInput = await dehydrateStepArguments2({
|
|
126605
127307
|
args: queueItem.args,
|
|
@@ -126613,6 +127315,39 @@ async function handleSuspension({ suspension, world, run: run3, span, requestId,
|
|
|
126613
127315
|
stepName: queueItem.stepName,
|
|
126614
127316
|
dehydratedInput
|
|
126615
127317
|
});
|
|
127318
|
+
if (pairFolded) {
|
|
127319
|
+
batchQueue.push({
|
|
127320
|
+
order: stepOrder,
|
|
127321
|
+
kind: "inline-created",
|
|
127322
|
+
correlationId: queueItem.correlationId,
|
|
127323
|
+
event: {
|
|
127324
|
+
eventType: "step_created",
|
|
127325
|
+
specVersion: SPEC_VERSION_CURRENT2,
|
|
127326
|
+
correlationId: queueItem.correlationId,
|
|
127327
|
+
eventData: {
|
|
127328
|
+
stepName: queueItem.stepName,
|
|
127329
|
+
workflowName: run3.workflowName,
|
|
127330
|
+
input: dehydratedInput
|
|
127331
|
+
}
|
|
127332
|
+
}
|
|
127333
|
+
});
|
|
127334
|
+
batchQueue.push({
|
|
127335
|
+
order: stepOrder + 1,
|
|
127336
|
+
kind: "inline-started",
|
|
127337
|
+
correlationId: queueItem.correlationId,
|
|
127338
|
+
event: {
|
|
127339
|
+
eventType: "step_started",
|
|
127340
|
+
specVersion: SPEC_VERSION_CURRENT2,
|
|
127341
|
+
correlationId: queueItem.correlationId,
|
|
127342
|
+
eventData: {
|
|
127343
|
+
stepName: queueItem.stepName,
|
|
127344
|
+
// Checked by inlinePairFoldEligible; spread keeps the
|
|
127345
|
+
// narrow-through-closure problem away from the type.
|
|
127346
|
+
...ownerMessageId !== void 0 ? { ownerMessageId } : {}
|
|
127347
|
+
}
|
|
127348
|
+
}
|
|
127349
|
+
});
|
|
127350
|
+
}
|
|
126616
127351
|
return;
|
|
126617
127352
|
}
|
|
126618
127353
|
const stepEvent = {
|
|
@@ -126680,6 +127415,16 @@ async function handleSuspension({ suspension, world, run: run3, span, requestId,
|
|
|
126680
127415
|
}
|
|
126681
127416
|
return;
|
|
126682
127417
|
}
|
|
127418
|
+
if (batchFanoutEligible) {
|
|
127419
|
+
batchQueue.push({
|
|
127420
|
+
order: stepOrder,
|
|
127421
|
+
kind: "step",
|
|
127422
|
+
correlationId: queueItem.correlationId,
|
|
127423
|
+
stepName: queueItem.stepName,
|
|
127424
|
+
event: stepEvent
|
|
127425
|
+
});
|
|
127426
|
+
return;
|
|
127427
|
+
}
|
|
126683
127428
|
try {
|
|
126684
127429
|
await ensureRunReady();
|
|
126685
127430
|
await createGuarded(stepEvent, { requestId });
|
|
@@ -126695,20 +127440,34 @@ async function handleSuspension({ suspension, world, run: run3, span, requestId,
|
|
|
126695
127440
|
throw err;
|
|
126696
127441
|
}
|
|
126697
127442
|
}
|
|
126698
|
-
})()
|
|
127443
|
+
})();
|
|
127444
|
+
ops.push(stepOp);
|
|
127445
|
+
if (batchFanoutEligible) {
|
|
127446
|
+
batchPreps.push(stepOp.catch(() => {
|
|
127447
|
+
}));
|
|
127448
|
+
}
|
|
126699
127449
|
}
|
|
126700
127450
|
}
|
|
126701
127451
|
for (const queueItem of waitItems) {
|
|
126702
127452
|
if (!queueItem.hasCreatedEvent) {
|
|
126703
|
-
|
|
126704
|
-
|
|
126705
|
-
|
|
126706
|
-
|
|
127453
|
+
const waitEvent = {
|
|
127454
|
+
eventType: "wait_created",
|
|
127455
|
+
specVersion: SPEC_VERSION_CURRENT2,
|
|
127456
|
+
correlationId: queueItem.correlationId,
|
|
127457
|
+
eventData: {
|
|
127458
|
+
resumeAt: queueItem.resumeAt
|
|
127459
|
+
}
|
|
127460
|
+
};
|
|
127461
|
+
if (batchFanoutEligible) {
|
|
127462
|
+
batchQueue.push({
|
|
127463
|
+
order: batchOrderCounter++,
|
|
127464
|
+
kind: "wait",
|
|
126707
127465
|
correlationId: queueItem.correlationId,
|
|
126708
|
-
|
|
126709
|
-
|
|
126710
|
-
|
|
126711
|
-
|
|
127466
|
+
event: waitEvent
|
|
127467
|
+
});
|
|
127468
|
+
continue;
|
|
127469
|
+
}
|
|
127470
|
+
ops.push((async () => {
|
|
126712
127471
|
try {
|
|
126713
127472
|
await ensureRunReady();
|
|
126714
127473
|
await createGuarded(waitEvent, { requestId });
|
|
@@ -126726,6 +127485,214 @@ async function handleSuspension({ suspension, world, run: run3, span, requestId,
|
|
|
126726
127485
|
})());
|
|
126727
127486
|
}
|
|
126728
127487
|
}
|
|
127488
|
+
let deferredBatchWork;
|
|
127489
|
+
if (batchFanoutEligible) {
|
|
127490
|
+
ops.push((async () => {
|
|
127491
|
+
await Promise.all(batchPreps);
|
|
127492
|
+
if (batchQueue.length === 0) {
|
|
127493
|
+
return;
|
|
127494
|
+
}
|
|
127495
|
+
const entries = [...batchQueue].sort((a, b) => a.order - b.order);
|
|
127496
|
+
await ensureRunReady();
|
|
127497
|
+
if (entries.length === 1) {
|
|
127498
|
+
const [entry] = entries;
|
|
127499
|
+
try {
|
|
127500
|
+
await createGuarded(entry.event, { requestId });
|
|
127501
|
+
if (entry.kind === "step") {
|
|
127502
|
+
createdStepCorrelationIds.add(entry.correlationId);
|
|
127503
|
+
}
|
|
127504
|
+
} catch (err) {
|
|
127505
|
+
if (EntityConflictError2.is(err)) {
|
|
127506
|
+
runtimeLogger2.info(entry.kind === "step" ? "Step already exists, continuing" : "Wait already exists, continuing", {
|
|
127507
|
+
workflowRunId: runId,
|
|
127508
|
+
correlationId: entry.correlationId,
|
|
127509
|
+
message: err.message
|
|
127510
|
+
});
|
|
127511
|
+
} else {
|
|
127512
|
+
throw err;
|
|
127513
|
+
}
|
|
127514
|
+
}
|
|
127515
|
+
return;
|
|
127516
|
+
}
|
|
127517
|
+
const expectedFirstSlot = eventLog ? (maxEventSlot(eventLog.events) ?? 0) + 1 : void 0;
|
|
127518
|
+
const chunks = [];
|
|
127519
|
+
{
|
|
127520
|
+
let current = [];
|
|
127521
|
+
for (let index = 0; index < entries.length; index++) {
|
|
127522
|
+
const entry = entries[index];
|
|
127523
|
+
const next2 = entries[index + 1];
|
|
127524
|
+
const pairLead = entry.kind === "inline-created" && next2?.kind === "inline-started" && next2.correlationId === entry.correlationId;
|
|
127525
|
+
const take = pairLead ? 2 : 1;
|
|
127526
|
+
if (current.length > 0 && current.length + take > MAX_BATCH_FANOUT_EVENTS) {
|
|
127527
|
+
chunks.push(current);
|
|
127528
|
+
current = [];
|
|
127529
|
+
}
|
|
127530
|
+
current.push(entry);
|
|
127531
|
+
if (pairLead) {
|
|
127532
|
+
current.push(next2);
|
|
127533
|
+
index++;
|
|
127534
|
+
}
|
|
127535
|
+
}
|
|
127536
|
+
if (current.length > 0)
|
|
127537
|
+
chunks.push(current);
|
|
127538
|
+
}
|
|
127539
|
+
const publishEagerSteps = stepDispatch !== void 0;
|
|
127540
|
+
if (publishEagerSteps) {
|
|
127541
|
+
for (const entry of entries) {
|
|
127542
|
+
if (entry.kind === "step") {
|
|
127543
|
+
queuedStepCorrelationIds.add(entry.correlationId);
|
|
127544
|
+
}
|
|
127545
|
+
}
|
|
127546
|
+
}
|
|
127547
|
+
let committedCount = 0;
|
|
127548
|
+
let maxCommittedSlot;
|
|
127549
|
+
const commitChunk = /* @__PURE__ */ __name(async (chunk) => {
|
|
127550
|
+
const batchPostSentAtMs = Date.now();
|
|
127551
|
+
const { results } = await world.events.createBatch(
|
|
127552
|
+
runId,
|
|
127553
|
+
chunk.map((entry) => ({
|
|
127554
|
+
event: entry.event,
|
|
127555
|
+
// The started row is the step's executing claim, so it carries
|
|
127556
|
+
// the compute-instance attribution the single claim sends via
|
|
127557
|
+
// CreateEventParams.
|
|
127558
|
+
...entry.kind === "inline-started" ? { computeInstanceId: COMPUTE_INSTANCE_ID } : {}
|
|
127559
|
+
})),
|
|
127560
|
+
// Per-write request attribution, same as the single path's
|
|
127561
|
+
// createGuarded(…, { requestId }).
|
|
127562
|
+
{ requestId }
|
|
127563
|
+
);
|
|
127564
|
+
const claimCompletedAtMs = Date.now();
|
|
127565
|
+
for (const [index, item] of results.entries()) {
|
|
127566
|
+
const entry = chunk[index];
|
|
127567
|
+
if (item.error === void 0) {
|
|
127568
|
+
if (entry.kind === "step") {
|
|
127569
|
+
createdStepCorrelationIds.add(entry.correlationId);
|
|
127570
|
+
} else if (entry.kind === "inline-started") {
|
|
127571
|
+
const dehydrated = lazyInlineByCorrelationId.get(entry.correlationId);
|
|
127572
|
+
if (dehydrated === void 0) {
|
|
127573
|
+
throw new WorkflowWorldError2(`no dehydrated input for pre-claimed step ${entry.correlationId}`, { status: 500 });
|
|
127574
|
+
}
|
|
127575
|
+
const now2 = /* @__PURE__ */ new Date();
|
|
127576
|
+
const startedStep = item.step?.startedAt ? { ...item.step, startedAt: item.step.startedAt } : {
|
|
127577
|
+
runId,
|
|
127578
|
+
stepId: entry.correlationId,
|
|
127579
|
+
stepName: dehydrated.stepName,
|
|
127580
|
+
status: "running",
|
|
127581
|
+
attempt: 1,
|
|
127582
|
+
createdAt: now2,
|
|
127583
|
+
updatedAt: now2,
|
|
127584
|
+
startedAt: now2
|
|
127585
|
+
};
|
|
127586
|
+
inlineClaims.set(entry.correlationId, {
|
|
127587
|
+
owned: true,
|
|
127588
|
+
step: {
|
|
127589
|
+
...startedStep,
|
|
127590
|
+
input: dehydrated.dehydratedInput
|
|
127591
|
+
},
|
|
127592
|
+
batchPostSentAtMs,
|
|
127593
|
+
claimCompletedAtMs
|
|
127594
|
+
});
|
|
127595
|
+
}
|
|
127596
|
+
continue;
|
|
127597
|
+
}
|
|
127598
|
+
if (item.status === 409) {
|
|
127599
|
+
if (entry.kind === "inline-created" || entry.kind === "inline-started") {
|
|
127600
|
+
inlineClaims.set(entry.correlationId, { owned: false });
|
|
127601
|
+
runtimeLogger2.info("Inline step pre-claim lost, continuing", {
|
|
127602
|
+
workflowRunId: runId,
|
|
127603
|
+
correlationId: entry.correlationId,
|
|
127604
|
+
message: item.message
|
|
127605
|
+
});
|
|
127606
|
+
continue;
|
|
127607
|
+
}
|
|
127608
|
+
runtimeLogger2.info(entry.kind === "step" ? "Step already exists, continuing" : "Wait already exists, continuing", {
|
|
127609
|
+
workflowRunId: runId,
|
|
127610
|
+
correlationId: entry.correlationId,
|
|
127611
|
+
message: item.message
|
|
127612
|
+
});
|
|
127613
|
+
continue;
|
|
127614
|
+
}
|
|
127615
|
+
throw new WorkflowWorldError2(`batched ${entry.event.eventType} for ${entry.correlationId} failed: ${item.error}: ${item.message}`, { status: item.status });
|
|
127616
|
+
}
|
|
127617
|
+
const chunkMaxSlot = maxEventSlot(results.flatMap((item) => item.error === void 0 && item.event ? [item.event] : []));
|
|
127618
|
+
if (chunkMaxSlot !== void 0 && (batchCommittedSlotCeiling === void 0 || chunkMaxSlot > batchCommittedSlotCeiling)) {
|
|
127619
|
+
batchCommittedSlotCeiling = chunkMaxSlot;
|
|
127620
|
+
}
|
|
127621
|
+
committedCount += results.filter((item) => item.error === void 0).length;
|
|
127622
|
+
if (chunkMaxSlot !== void 0 && (maxCommittedSlot === void 0 || chunkMaxSlot > maxCommittedSlot)) {
|
|
127623
|
+
maxCommittedSlot = chunkMaxSlot;
|
|
127624
|
+
}
|
|
127625
|
+
}, "commitChunk");
|
|
127626
|
+
const publishChunkSteps = /* @__PURE__ */ __name(async (chunk) => {
|
|
127627
|
+
if (!publishEagerSteps)
|
|
127628
|
+
return;
|
|
127629
|
+
const stepEntries = chunk.filter((entry) => entry.kind === "step");
|
|
127630
|
+
if (stepEntries.length === 0)
|
|
127631
|
+
return;
|
|
127632
|
+
const traceCarrier = await getStepDispatchTraceCarrier();
|
|
127633
|
+
await Promise.all(stepEntries.map((entry) => queueMessage(
|
|
127634
|
+
world,
|
|
127635
|
+
// biome-ignore lint/style/noNonNullAssertion: publishEagerSteps implies presence
|
|
127636
|
+
stepDispatch.queueName,
|
|
127637
|
+
{
|
|
127638
|
+
runId,
|
|
127639
|
+
stepId: entry.correlationId,
|
|
127640
|
+
// biome-ignore lint/style/noNonNullAssertion: set on every 'step' entry at enqueue
|
|
127641
|
+
stepName: entry.stepName,
|
|
127642
|
+
traceCarrier,
|
|
127643
|
+
requestedAt: /* @__PURE__ */ new Date()
|
|
127644
|
+
},
|
|
127645
|
+
{
|
|
127646
|
+
idempotencyKey: stepDispatchIdempotencyKey(
|
|
127647
|
+
entry.correlationId,
|
|
127648
|
+
// biome-ignore lint/style/noNonNullAssertion: set on every 'step' entry at enqueue
|
|
127649
|
+
entry.stepName
|
|
127650
|
+
)
|
|
127651
|
+
}
|
|
127652
|
+
)));
|
|
127653
|
+
}, "publishChunkSteps");
|
|
127654
|
+
const commits = chunks.map((chunk) => commitChunk(chunk));
|
|
127655
|
+
const publishes = chunks.map(async (chunk, index) => {
|
|
127656
|
+
await commits[index];
|
|
127657
|
+
await publishChunkSteps(chunk);
|
|
127658
|
+
});
|
|
127659
|
+
const trailing = (async () => {
|
|
127660
|
+
const settled = await Promise.allSettled([...commits, ...publishes]);
|
|
127661
|
+
if (expectedFirstSlot !== void 0 && maxCommittedSlot !== void 0) {
|
|
127662
|
+
const interleaved = maxCommittedSlot - expectedFirstSlot + 1 - committedCount;
|
|
127663
|
+
if (interleaved > 0) {
|
|
127664
|
+
runtimeLogger2.debug("Batched fan-out committed above snapshot", {
|
|
127665
|
+
workflowRunId: runId,
|
|
127666
|
+
expectedFirstSlot,
|
|
127667
|
+
maxCommittedSlot,
|
|
127668
|
+
committedCount,
|
|
127669
|
+
interleaved
|
|
127670
|
+
});
|
|
127671
|
+
}
|
|
127672
|
+
}
|
|
127673
|
+
const failure = settled.find((outcome) => outcome.status === "rejected");
|
|
127674
|
+
if (failure)
|
|
127675
|
+
throw failure.reason;
|
|
127676
|
+
})();
|
|
127677
|
+
const pairCommits = chunks.flatMap((chunk, index) => chunk.some((entry) => entry.kind === "inline-started") ? [commits[index]] : []);
|
|
127678
|
+
if (allowDeferredBatchWork) {
|
|
127679
|
+
trailing.catch(() => {
|
|
127680
|
+
});
|
|
127681
|
+
deferredBatchWork = trailing;
|
|
127682
|
+
if (pairCommits.length > 0) {
|
|
127683
|
+
try {
|
|
127684
|
+
await Promise.all(pairCommits);
|
|
127685
|
+
} catch (err) {
|
|
127686
|
+
await trailing.catch(() => {
|
|
127687
|
+
});
|
|
127688
|
+
throw err;
|
|
127689
|
+
}
|
|
127690
|
+
}
|
|
127691
|
+
} else {
|
|
127692
|
+
await trailing;
|
|
127693
|
+
}
|
|
127694
|
+
})());
|
|
127695
|
+
}
|
|
126729
127696
|
for (const queueItem of attributeItems) {
|
|
126730
127697
|
ops.push((async () => {
|
|
126731
127698
|
try {
|
|
@@ -126796,6 +127763,9 @@ async function handleSuspension({ suspension, world, run: run3, span, requestId,
|
|
|
126796
127763
|
createdStepCorrelationIds,
|
|
126797
127764
|
queuedStepCorrelationIds,
|
|
126798
127765
|
lazyInlineSteps,
|
|
127766
|
+
inlineClaims,
|
|
127767
|
+
batchCommittedSlotCeiling,
|
|
127768
|
+
deferredBatchWork,
|
|
126799
127769
|
// On hook conflict the caller re-invokes immediately and never reads
|
|
126800
127770
|
// the wait timeout, so don't report one.
|
|
126801
127771
|
waitTimeout: hasHookConflict ? void 0 : soonestWait,
|
|
@@ -127724,7 +128694,7 @@ __name(createConflictingRun, "createConflictingRun");
|
|
|
127724
128694
|
function createCreateHook(ctx) {
|
|
127725
128695
|
return /* @__PURE__ */ __name(function createHookImpl(options = {}) {
|
|
127726
128696
|
if (options.token === "") {
|
|
127727
|
-
throw new Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a
|
|
128697
|
+
throw new Error("`createHook()` was called with an empty string token. Pass a non-empty token, or omit the `token` option to use a generated one.");
|
|
127728
128698
|
}
|
|
127729
128699
|
if (options.isWebhook === true && options.experimental_minRetention !== void 0) {
|
|
127730
128700
|
throw new Error("Webhook hooks do not support `experimental_minRetention`. Use a non-webhook `createHook()` with `resumeHook()`.");
|
|
@@ -128199,6 +129169,14 @@ async function createWorkflowSession({ workflowCode: workflowCode2, workflowRun,
|
|
|
128199
129169
|
onUnconsumedEvent: /* @__PURE__ */ __name((event) => {
|
|
128200
129170
|
onWorkflowError(new ReplayDivergenceError(`Replay could not consume event: eventType=${event.eventType}, correlationId=${event.correlationId}, eventId=${event.eventId}.`, { eventId: event.eventId }));
|
|
128201
129171
|
}, "onUnconsumedEvent"),
|
|
129172
|
+
// Both branches log at `debug`, so neither reaches the console unless
|
|
129173
|
+
// `DEBUG` matches. A duplicate is a permanent feature of the log: every
|
|
129174
|
+
// later replay re-reads it and lands here again, so anything the logger
|
|
129175
|
+
// prints unconditionally would print once per replay for the life of the
|
|
129176
|
+
// run. There is also nothing to act on. Ignoring the event is the correct
|
|
129177
|
+
// outcome, not a degraded one, and no user change makes the straggler go
|
|
129178
|
+
// away. What the levels are for is diagnosis after the fact, which is
|
|
129179
|
+
// exactly what `DEBUG=workflow:runtime:debug` is for.
|
|
128202
129180
|
onDuplicateEvent: /* @__PURE__ */ __name((event, firstEventType) => {
|
|
128203
129181
|
const details = {
|
|
128204
129182
|
workflowRunId: workflowRun.runId,
|
|
@@ -128208,10 +129186,10 @@ async function createWorkflowSession({ workflowCode: workflowCode2, workflowRun,
|
|
|
128208
129186
|
correlationId: event.correlationId
|
|
128209
129187
|
};
|
|
128210
129188
|
if (firstEventType !== event.eventType) {
|
|
128211
|
-
runtimeLogger2.
|
|
129189
|
+
runtimeLogger2.debug("Ignoring inert event that decides an already-decided outcome differently", details);
|
|
128212
129190
|
return;
|
|
128213
129191
|
}
|
|
128214
|
-
runtimeLogger2.
|
|
129192
|
+
runtimeLogger2.debug("Ignoring inert event that repeats a class already in the event log", details);
|
|
128215
129193
|
}, "onDuplicateEvent"),
|
|
128216
129194
|
getPromiseQueue: /* @__PURE__ */ __name(() => promiseQueueHolder.current, "getPromiseQueue"),
|
|
128217
129195
|
isDeliveryIdle: /* @__PURE__ */ __name(() => deliveryIdleHolder.current(), "isDeliveryIdle")
|
|
@@ -128881,6 +129859,10 @@ __name(wakeUpRun2, "wakeUpRun");
|
|
|
128881
129859
|
|
|
128882
129860
|
// ../core/dist/runtime/run.js
|
|
128883
129861
|
var RETURN_VALUE_POLL_INTERVAL_MS2 = 1e3;
|
|
129862
|
+
var PAYLOAD_TERMINAL_RUN_STATUSES2 = /* @__PURE__ */ new Set([
|
|
129863
|
+
"completed",
|
|
129864
|
+
"failed"
|
|
129865
|
+
]);
|
|
128884
129866
|
function getReturnValuePollIntervalMs2() {
|
|
128885
129867
|
return envNumber2("WORKFLOW_RETURN_VALUE_POLL_INTERVAL_MS", RETURN_VALUE_POLL_INTERVAL_MS2, { integer: true, min: 1 });
|
|
128886
129868
|
}
|
|
@@ -128933,12 +129915,12 @@ var Run2 = class _Run2 {
|
|
|
128933
129915
|
* to be resolved once.
|
|
128934
129916
|
* @internal
|
|
128935
129917
|
*/
|
|
128936
|
-
#getEncryptionKey() {
|
|
129918
|
+
#getEncryptionKey(run3) {
|
|
128937
129919
|
if (!this.#encryptionKeyPromise) {
|
|
128938
129920
|
this.#encryptionKeyPromise = (async () => {
|
|
128939
129921
|
const world = await this.#lazyWorldPromise;
|
|
128940
|
-
const
|
|
128941
|
-
const rawKey = await world.getEncryptionKeyForRun?.(
|
|
129922
|
+
const runData = run3 ?? await world.runs.get(this.runId);
|
|
129923
|
+
const rawKey = await world.getEncryptionKeyForRun?.(runData);
|
|
128942
129924
|
return rawKey ? await deriveRunPayloadKeys2(rawKey) : void 0;
|
|
128943
129925
|
})();
|
|
128944
129926
|
}
|
|
@@ -128997,7 +129979,7 @@ var Run2 = class _Run2 {
|
|
|
128997
129979
|
*/
|
|
128998
129980
|
get status() {
|
|
128999
129981
|
"use step";
|
|
129000
|
-
return this.#lazyWorldPromise.then((world) => world.runs.get(this.runId).then((run3) => run3.status));
|
|
129982
|
+
return this.#lazyWorldPromise.then((world) => world.runs.get(this.runId, { resolveData: "none" }).then((run3) => run3.status));
|
|
129001
129983
|
}
|
|
129002
129984
|
/**
|
|
129003
129985
|
* The return value of the workflow run.
|
|
@@ -129074,6 +130056,29 @@ var Run2 = class _Run2 {
|
|
|
129074
130056
|
}, "getTailIndex")
|
|
129075
130057
|
});
|
|
129076
130058
|
}
|
|
130059
|
+
/** @internal */
|
|
130060
|
+
async #resolveTerminalReturnValue(run3) {
|
|
130061
|
+
if (run3.status === "completed") {
|
|
130062
|
+
const encryptionKey = await this.#getEncryptionKey(run3);
|
|
130063
|
+
return await hydrateWorkflowReturnValue2(run3.output, this.runId, encryptionKey);
|
|
130064
|
+
}
|
|
130065
|
+
if (run3.status === "cancelled") {
|
|
130066
|
+
throw new WorkflowRunCancelledError2(this.runId);
|
|
130067
|
+
}
|
|
130068
|
+
if (run3.status === "failed") {
|
|
130069
|
+
const encryptionKey = await this.#getEncryptionKey(run3);
|
|
130070
|
+
let hydratedError;
|
|
130071
|
+
try {
|
|
130072
|
+
hydratedError = await hydrateRunError2(run3.error, this.runId, encryptionKey);
|
|
130073
|
+
} catch {
|
|
130074
|
+
hydratedError = new Error("Failed to hydrate workflow run error");
|
|
130075
|
+
}
|
|
130076
|
+
throw new WorkflowRunFailedError2(this.runId, hydratedError, {
|
|
130077
|
+
errorCode: run3.errorCode
|
|
130078
|
+
});
|
|
130079
|
+
}
|
|
130080
|
+
throw new WorkflowRunNotCompletedError2(this.runId, run3.status);
|
|
130081
|
+
}
|
|
129077
130082
|
/**
|
|
129078
130083
|
* Polls the workflow return value until it is completed.
|
|
129079
130084
|
* @internal
|
|
@@ -129086,27 +130091,19 @@ var Run2 = class _Run2 {
|
|
|
129086
130091
|
const NOT_FOUND_DELAYS = [1e3, 3e3, 6e3];
|
|
129087
130092
|
while (true) {
|
|
129088
130093
|
try {
|
|
129089
|
-
const
|
|
129090
|
-
|
|
129091
|
-
|
|
129092
|
-
|
|
129093
|
-
}
|
|
129094
|
-
if (run3.status === "cancelled") {
|
|
130094
|
+
const runMetadata = await world.runs.get(this.runId, {
|
|
130095
|
+
resolveData: "none"
|
|
130096
|
+
});
|
|
130097
|
+
if (runMetadata.status === "cancelled") {
|
|
129095
130098
|
throw new WorkflowRunCancelledError2(this.runId);
|
|
129096
130099
|
}
|
|
129097
|
-
if (
|
|
129098
|
-
const
|
|
129099
|
-
|
|
129100
|
-
try {
|
|
129101
|
-
hydratedError = await hydrateRunError2(run3.error, this.runId, encryptionKey);
|
|
129102
|
-
} catch {
|
|
129103
|
-
hydratedError = new Error("Failed to hydrate workflow run error");
|
|
129104
|
-
}
|
|
129105
|
-
throw new WorkflowRunFailedError2(this.runId, hydratedError, {
|
|
129106
|
-
errorCode: run3.errorCode
|
|
130100
|
+
if (PAYLOAD_TERMINAL_RUN_STATUSES2.has(runMetadata.status)) {
|
|
130101
|
+
const run3 = await world.runs.get(this.runId, {
|
|
130102
|
+
resolveData: "all"
|
|
129107
130103
|
});
|
|
130104
|
+
return await this.#resolveTerminalReturnValue(run3);
|
|
129108
130105
|
}
|
|
129109
|
-
throw new WorkflowRunNotCompletedError2(this.runId,
|
|
130106
|
+
throw new WorkflowRunNotCompletedError2(this.runId, runMetadata.status);
|
|
129110
130107
|
} catch (error95) {
|
|
129111
130108
|
if (WorkflowRunNotCompletedError2.is(error95)) {
|
|
129112
130109
|
await new Promise((resolve3) => setTimeout(resolve3, getReturnValuePollIntervalMs2()));
|
|
@@ -129665,6 +130662,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
129665
130662
|
workflowDeploymentId: bgRun.deploymentId,
|
|
129666
130663
|
workflowName,
|
|
129667
130664
|
workflowStartedAt: bgStartedAt,
|
|
130665
|
+
requestId,
|
|
129668
130666
|
rootRunId: rootRunIdFrom(bgRun.attributes, runId),
|
|
129669
130667
|
stepId: incomingStepId,
|
|
129670
130668
|
stepName: incomingStepName,
|
|
@@ -130013,7 +131011,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130013
131011
|
}
|
|
130014
131012
|
}
|
|
130015
131013
|
}
|
|
130016
|
-
|
|
131014
|
+
assert6(workflowRun, "Workflow run must be loaded before replay");
|
|
130017
131015
|
if (resumeTracking && resumeTracking.setupSource === void 0) {
|
|
130018
131016
|
resumeTracking.setupSource = "event_load";
|
|
130019
131017
|
}
|
|
@@ -130137,7 +131135,8 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130137
131135
|
// defer to the in-flight body instead of
|
|
130138
131136
|
// requeueing the step.
|
|
130139
131137
|
deliveryAttempt: metadata.attempt,
|
|
130140
|
-
ownerMessageId: metadata.messageId
|
|
131138
|
+
ownerMessageId: metadata.messageId,
|
|
131139
|
+
requestId
|
|
130141
131140
|
});
|
|
130142
131141
|
if (quickjsResult?.timeoutSeconds !== void 0) {
|
|
130143
131142
|
return await reinvoke(quickjsResult.timeoutSeconds);
|
|
@@ -130153,7 +131152,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130153
131152
|
eventLog = { ...page, type: "ready" };
|
|
130154
131153
|
}
|
|
130155
131154
|
}
|
|
130156
|
-
|
|
131155
|
+
assert6(eventLog.type === "ready");
|
|
130157
131156
|
reportPreconditionRestartReload(eventLog.events);
|
|
130158
131157
|
if (hasRecordedTerminalRunEvent(eventLog.events, runId)) {
|
|
130159
131158
|
return;
|
|
@@ -130185,7 +131184,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130185
131184
|
throw err;
|
|
130186
131185
|
}
|
|
130187
131186
|
}
|
|
130188
|
-
|
|
131187
|
+
assert6(eventLog.type === "ready");
|
|
130189
131188
|
const completedWaitIdsAfterWrites = new Set(eventLog.events.filter((e) => e.eventType === "wait_completed").map((e) => e.correlationId));
|
|
130190
131189
|
const missingWaitCompletions = waitsToComplete.filter((waitEvent) => !completedWaitIdsAfterWrites.has(waitEvent.correlationId));
|
|
130191
131190
|
if (missingWaitCompletions.length > 0) {
|
|
@@ -130304,7 +131303,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130304
131303
|
runtimeLogger2.debug(suspensionMessage);
|
|
130305
131304
|
}
|
|
130306
131305
|
const suspensionStart = Date.now();
|
|
130307
|
-
|
|
131306
|
+
assert6(eventLog.type === "ready", "Workflow suspended before its event log was loaded");
|
|
130308
131307
|
let suspensionResult;
|
|
130309
131308
|
try {
|
|
130310
131309
|
suspensionResult = await handleSuspension({
|
|
@@ -130325,7 +131324,22 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130325
131324
|
stepDispatch: {
|
|
130326
131325
|
queueName: getWorkflowQueueName2(workflowName, namespace),
|
|
130327
131326
|
getTraceCarrier: nextTraceCarrier
|
|
130328
|
-
}
|
|
131327
|
+
},
|
|
131328
|
+
// Inline pre-claims: lets the batched fan-out
|
|
131329
|
+
// fold the lazy-inline steps' step_created +
|
|
131330
|
+
// step_started pairs — stamped with this
|
|
131331
|
+
// message's ownership — into the one commit, so
|
|
131332
|
+
// the bodies below start straight off it. See
|
|
131333
|
+
// SuspensionHandlerResult.inlineClaims.
|
|
131334
|
+
ownerMessageId: metadata.messageId,
|
|
131335
|
+
// Let the fold return once the pair chunk has
|
|
131336
|
+
// committed: trailing chunks and the per-chunk
|
|
131337
|
+
// step-message publishes ride
|
|
131338
|
+
// `deferredBatchWork`, which this invocation
|
|
131339
|
+
// joins before it can ack (below, next to the
|
|
131340
|
+
// dispatch join) — so the durability contract
|
|
131341
|
+
// is unchanged while the bodies start earlier.
|
|
131342
|
+
allowDeferredBatchWork: true
|
|
130329
131343
|
});
|
|
130330
131344
|
} catch (suspensionError) {
|
|
130331
131345
|
if (PreconditionFailedError.is(suspensionError)) {
|
|
@@ -130380,7 +131394,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130380
131394
|
replayPayloadCache.resetScan();
|
|
130381
131395
|
}
|
|
130382
131396
|
const openHookWait = once2(() => {
|
|
130383
|
-
|
|
131397
|
+
assert6(eventLog.type === "ready");
|
|
130384
131398
|
return openHookAndWaitState(eventLog.events);
|
|
130385
131399
|
});
|
|
130386
131400
|
if (retainedSession && !canRetainWorkflowSession(err, suspensionResult.retainedStepInputsSafe, openHookWait)) {
|
|
@@ -130477,13 +131491,22 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130477
131491
|
requestedAt: /* @__PURE__ */ new Date()
|
|
130478
131492
|
}, getWaitContinuationDispatch(suspensionResult.waitTimeout.seconds, suspensionResult.waitTimeout.correlationId)));
|
|
130479
131493
|
}
|
|
130480
|
-
|
|
131494
|
+
const dispatchesSettled = Promise.all(dispatches);
|
|
131495
|
+
dispatchesSettled.catch(() => {
|
|
131496
|
+
});
|
|
130481
131497
|
const inlineExecutions = [
|
|
130482
|
-
...lazyInlineSteps.map((s) =>
|
|
130483
|
-
|
|
130484
|
-
|
|
130485
|
-
|
|
130486
|
-
|
|
131498
|
+
...lazyInlineSteps.map((s) => {
|
|
131499
|
+
const claim = suspensionResult.inlineClaims.get(s.correlationId);
|
|
131500
|
+
return claim ? {
|
|
131501
|
+
correlationId: s.correlationId,
|
|
131502
|
+
stepName: s.stepName,
|
|
131503
|
+
preclaimedStart: claim
|
|
131504
|
+
} : {
|
|
131505
|
+
correlationId: s.correlationId,
|
|
131506
|
+
stepName: s.stepName,
|
|
131507
|
+
lazyStepInput: s.dehydratedInput
|
|
131508
|
+
};
|
|
131509
|
+
}),
|
|
130487
131510
|
...ownedRecoverySteps.map((s) => ({
|
|
130488
131511
|
correlationId: s.correlationId,
|
|
130489
131512
|
stepName: s.stepName
|
|
@@ -130502,6 +131525,10 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130502
131525
|
});
|
|
130503
131526
|
}
|
|
130504
131527
|
if (inlineExecutions.length === 0) {
|
|
131528
|
+
await Promise.all([
|
|
131529
|
+
dispatchesSettled,
|
|
131530
|
+
suspensionResult.deferredBatchWork
|
|
131531
|
+
]);
|
|
130505
131532
|
if (suspensionResult.hasAwaitedHookCreation) {
|
|
130506
131533
|
return await reinvoke(0);
|
|
130507
131534
|
}
|
|
@@ -130525,20 +131552,23 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130525
131552
|
suspensionCreatedHooks: err.hookCount > 0 || suspensionResult.hasHookEvents,
|
|
130526
131553
|
turbo
|
|
130527
131554
|
});
|
|
130528
|
-
const
|
|
131555
|
+
const loadedSlotSnapshot = slotSnapshotParams(eventLog.events);
|
|
131556
|
+
const batchSlotCeiling = suspensionResult.batchCommittedSlotCeiling;
|
|
131557
|
+
const inlineClaimSnapshot = batchSlotCeiling !== void 0 && batchSlotCeiling > (loadedSlotSnapshot.eventCount ?? 0) ? { eventCount: batchSlotCeiling } : loadedSlotSnapshot;
|
|
130529
131558
|
const batchResumeTracking = resumeTracking;
|
|
130530
131559
|
resumeTracking = void 0;
|
|
130531
131560
|
replayBudget.pause();
|
|
130532
131561
|
let stepResults;
|
|
130533
131562
|
const stepExecutionPromises = inlineExecutions.map((s, stepIndex) => {
|
|
130534
131563
|
const run3 = /* @__PURE__ */ __name(() => {
|
|
130535
|
-
|
|
131564
|
+
assert6(eventLog.type === "ready");
|
|
130536
131565
|
return executeStep({
|
|
130537
131566
|
world,
|
|
130538
131567
|
workflowRunId: runId,
|
|
130539
131568
|
workflowDeploymentId: workflowRun.deploymentId,
|
|
130540
131569
|
workflowName,
|
|
130541
131570
|
workflowStartedAt,
|
|
131571
|
+
requestId,
|
|
130542
131572
|
rootRunId: rootRunIdFrom(workflowRun.attributes, runId),
|
|
130543
131573
|
stepId: s.correlationId,
|
|
130544
131574
|
stepName: s.stepName,
|
|
@@ -130565,7 +131595,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130565
131595
|
// rather than walking the growing log for
|
|
130566
131596
|
// every inline step (which would be O(n²)
|
|
130567
131597
|
// across a long sequential workflow).
|
|
130568
|
-
authoritativeAttempt: s.lazyStepInput !== void 0 ? 1 : countStepStartedEvents(eventLog.events, s.correlationId, {
|
|
131598
|
+
authoritativeAttempt: s.lazyStepInput !== void 0 || s.preclaimedStart !== void 0 ? 1 : countStepStartedEvents(eventLog.events, s.correlationId, {
|
|
130569
131599
|
type: "ownedBy",
|
|
130570
131600
|
messageId: metadata.messageId
|
|
130571
131601
|
}) + 1,
|
|
@@ -130573,8 +131603,15 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130573
131603
|
// input on step_started so the world creates
|
|
130574
131604
|
// the step on the fly. Absent for
|
|
130575
131605
|
// owned-recovery steps, whose input hydrates
|
|
130576
|
-
// from the existing step entity
|
|
131606
|
+
// from the existing step entity, and for
|
|
131607
|
+
// pre-claimed steps, whose pair already
|
|
131608
|
+
// carried it.
|
|
130577
131609
|
lazyStepInput: s.lazyStepInput,
|
|
131610
|
+
// Pre-claimed inline start: the suspension
|
|
131611
|
+
// batch settled this step's create + claim;
|
|
131612
|
+
// the executor runs (or skips) the body off
|
|
131613
|
+
// that verdict with no start write of its own.
|
|
131614
|
+
preclaimedStart: s.preclaimedStart,
|
|
130578
131615
|
// Inline ownership: stamp (or re-stamp) this
|
|
130579
131616
|
// invocation's queue message ID on the
|
|
130580
131617
|
// step_started, so wake replays see the body
|
|
@@ -130594,7 +131631,7 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130594
131631
|
suppressOptimisticStart,
|
|
130595
131632
|
runReadyBarrier,
|
|
130596
131633
|
slotSnapshot: inlineClaimSnapshot,
|
|
130597
|
-
...stepIndex === 0 && s.lazyStepInput !== void 0 && latencyTracking ? { latencyTracking } : {},
|
|
131634
|
+
...stepIndex === 0 && (s.lazyStepInput !== void 0 || s.preclaimedStart !== void 0) && latencyTracking ? { latencyTracking } : {},
|
|
130598
131635
|
...batchResumeTracking ? { resumeTracking: batchResumeTracking } : {},
|
|
130599
131636
|
...requestInlineDelta && eventLog.cursor ? {
|
|
130600
131637
|
inlineDeltaSinceCursor: eventLog.cursor
|
|
@@ -130603,10 +131640,23 @@ function workflowEntrypoint(workflowCode2, options) {
|
|
|
130603
131640
|
});
|
|
130604
131641
|
}, "run");
|
|
130605
131642
|
inFlightOwnedSteps.add(s.correlationId);
|
|
130606
|
-
const executed = s.lazyStepInput === void 0 ? runStepSingleFlight(runId, s.correlationId, run3) : run3();
|
|
131643
|
+
const executed = s.lazyStepInput === void 0 && s.preclaimedStart === void 0 ? runStepSingleFlight(runId, s.correlationId, run3) : run3();
|
|
130607
131644
|
return executed.finally(() => inFlightOwnedSteps.delete(s.correlationId));
|
|
130608
131645
|
});
|
|
131646
|
+
for (const promise3 of stepExecutionPromises) {
|
|
131647
|
+
promise3.catch(() => {
|
|
131648
|
+
});
|
|
131649
|
+
}
|
|
130609
131650
|
try {
|
|
131651
|
+
try {
|
|
131652
|
+
await Promise.all([
|
|
131653
|
+
dispatchesSettled,
|
|
131654
|
+
suspensionResult.deferredBatchWork
|
|
131655
|
+
]);
|
|
131656
|
+
} catch (dispatchErr) {
|
|
131657
|
+
await Promise.allSettled(stepExecutionPromises);
|
|
131658
|
+
throw dispatchErr;
|
|
131659
|
+
}
|
|
130610
131660
|
stepResults = await Promise.all(stepExecutionPromises);
|
|
130611
131661
|
} catch (stepErr) {
|
|
130612
131662
|
if (PreconditionFailedError.is(stepErr)) {
|
|
@@ -147660,10 +148710,10 @@ var Run = class _Run {
|
|
|
147660
148710
|
return this.getReadable();
|
|
147661
148711
|
}
|
|
147662
148712
|
};
|
|
147663
|
-
Run.prototype["wakeUp"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
147664
|
-
Run.prototype["cancel"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
147665
|
-
Run.prototype["getReadable"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
147666
|
-
var __step_Run$exists = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148713
|
+
Run.prototype["wakeUp"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#wakeUp");
|
|
148714
|
+
Run.prototype["cancel"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#cancel");
|
|
148715
|
+
Run.prototype["getReadable"] = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#getReadable");
|
|
148716
|
+
var __step_Run$exists = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#exists");
|
|
147667
148717
|
Object.defineProperty(Run.prototype, "exists", {
|
|
147668
148718
|
get() {
|
|
147669
148719
|
return __step_Run$exists.call(this);
|
|
@@ -147671,7 +148721,7 @@ Object.defineProperty(Run.prototype, "exists", {
|
|
|
147671
148721
|
configurable: true,
|
|
147672
148722
|
enumerable: false
|
|
147673
148723
|
});
|
|
147674
|
-
var __step_Run$status = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148724
|
+
var __step_Run$status = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#status");
|
|
147675
148725
|
Object.defineProperty(Run.prototype, "status", {
|
|
147676
148726
|
get() {
|
|
147677
148727
|
return __step_Run$status.call(this);
|
|
@@ -147679,7 +148729,7 @@ Object.defineProperty(Run.prototype, "status", {
|
|
|
147679
148729
|
configurable: true,
|
|
147680
148730
|
enumerable: false
|
|
147681
148731
|
});
|
|
147682
|
-
var __step_Run$returnValue = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148732
|
+
var __step_Run$returnValue = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#returnValue");
|
|
147683
148733
|
Object.defineProperty(Run.prototype, "returnValue", {
|
|
147684
148734
|
get() {
|
|
147685
148735
|
return __step_Run$returnValue.call(this);
|
|
@@ -147687,7 +148737,7 @@ Object.defineProperty(Run.prototype, "returnValue", {
|
|
|
147687
148737
|
configurable: true,
|
|
147688
148738
|
enumerable: false
|
|
147689
148739
|
});
|
|
147690
|
-
var __step_Run$workflowName = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148740
|
+
var __step_Run$workflowName = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#workflowName");
|
|
147691
148741
|
Object.defineProperty(Run.prototype, "workflowName", {
|
|
147692
148742
|
get() {
|
|
147693
148743
|
return __step_Run$workflowName.call(this);
|
|
@@ -147695,7 +148745,7 @@ Object.defineProperty(Run.prototype, "workflowName", {
|
|
|
147695
148745
|
configurable: true,
|
|
147696
148746
|
enumerable: false
|
|
147697
148747
|
});
|
|
147698
|
-
var __step_Run$createdAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148748
|
+
var __step_Run$createdAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#createdAt");
|
|
147699
148749
|
Object.defineProperty(Run.prototype, "createdAt", {
|
|
147700
148750
|
get() {
|
|
147701
148751
|
return __step_Run$createdAt.call(this);
|
|
@@ -147703,7 +148753,7 @@ Object.defineProperty(Run.prototype, "createdAt", {
|
|
|
147703
148753
|
configurable: true,
|
|
147704
148754
|
enumerable: false
|
|
147705
148755
|
});
|
|
147706
|
-
var __step_Run$startedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148756
|
+
var __step_Run$startedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#startedAt");
|
|
147707
148757
|
Object.defineProperty(Run.prototype, "startedAt", {
|
|
147708
148758
|
get() {
|
|
147709
148759
|
return __step_Run$startedAt.call(this);
|
|
@@ -147711,7 +148761,7 @@ Object.defineProperty(Run.prototype, "startedAt", {
|
|
|
147711
148761
|
configurable: true,
|
|
147712
148762
|
enumerable: false
|
|
147713
148763
|
});
|
|
147714
|
-
var __step_Run$completedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.
|
|
148764
|
+
var __step_Run$completedAt = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/run@5.0.0-beta.43//Run#completedAt");
|
|
147715
148765
|
Object.defineProperty(Run.prototype, "completedAt", {
|
|
147716
148766
|
get() {
|
|
147717
148767
|
return __step_Run$completedAt.call(this);
|
|
@@ -147728,7 +148778,7 @@ Object.defineProperty(Run.prototype, "completedAt", {
|
|
|
147728
148778
|
enumerable: false,
|
|
147729
148779
|
configurable: false
|
|
147730
148780
|
});
|
|
147731
|
-
})(Run, "class//@workflow/core/runtime/run@5.0.0-beta.
|
|
148781
|
+
})(Run, "class//@workflow/core/runtime/run@5.0.0-beta.43//Run");
|
|
147732
148782
|
|
|
147733
148783
|
// ../core/dist/workflow/create-hook.js
|
|
147734
148784
|
aliasSerializationClass(RUN_CLASS_ID, Run);
|
|
@@ -147891,7 +148941,7 @@ hookWorkflow.workflowId = "workflow//./workflows/inline-execution//hookWorkflow"
|
|
|
147891
148941
|
globalThis.__private_workflows.set("workflow//./workflows/inline-execution//hookWorkflow", hookWorkflow);
|
|
147892
148942
|
|
|
147893
148943
|
// ../core/dist/runtime/start.js
|
|
147894
|
-
var start = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/start@5.0.0-beta.
|
|
148944
|
+
var start = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//@workflow/core/runtime/start@5.0.0-beta.43//start");
|
|
147895
148945
|
|
|
147896
148946
|
// workflows/lineage.ts
|
|
147897
148947
|
var noop = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//./workflows/lineage//noop");
|