__vite_ssr_exportName__("withOrchestrationProtocolHeader", () => { try { return withOrchestrationProtocolHeader } catch {} });
__vite_ssr_exportName__("executeAuthenticatedEnvironmentHttpRequest", () => { try { return executeAuthenticatedEnvironmentHttpRequest } catch {} });
const __vite_ssr_import_0__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Effect.js");
const __vite_ssr_import_1__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Option.js");
const __vite_ssr_import_2__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/index.ts", {"importedNames":["ORCHESTRATION_PROTOCOL_HEADER","ORCHESTRATION_PROTOCOL_VERSION_TEXT"]});
const __vite_ssr_import_3__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Result.js");
const __vite_ssr_import_4__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/shared/src/relayTracing.ts", {"importedNames":["withRelayClientTracing"]});
const __vite_ssr_import_5__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/http/index.js", {"importedNames":["FetchHttpClient"]});
const __vite_ssr_import_6__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/client-runtime/src/rpc/http.ts", {"importedNames":["executeEnvironmentHttpRequest","makeEnvironmentHttpApiGroupClient","makeEnvironmentHttpApiUrlBuilder","RemoteEnvironmentAuthFetchError","RemoteEnvironmentAuthTimeoutError"]});







function withOrchestrationProtocolHeader(headers) {
	return {
		...headers,
		[__vite_ssr_import_2__.ORCHESTRATION_PROTOCOL_HEADER]: __vite_ssr_import_2__.ORCHESTRATION_PROTOCOL_VERSION_TEXT
	};
};
/**
* Cookie-authenticated environments need credentialed mode for cross-origin fetches; bearer/DPoP uses headers.
* `FetchHttpClient` reads `RequestInit` from the fiber context per request.
*/
const withEnvironmentCredentials = (authorization, request) => authorization === null ? request.pipe(__vite_ssr_import_0__.provideService(__vite_ssr_import_5__.FetchHttpClient.RequestInit, { credentials: "include" })) : request;
const buildEnvironmentAuthHeaders = __vite_ssr_import_0__.fn("environmentHttpAuth.buildEnvironmentAuthHeaders")(function* (authorization, method, url, signer) {
	if (authorization === null) {
		return {};
	};
	if (authorization._tag === "Bearer") {
		return { authorization: `Bearer ${authorization.token}` };
	};
	if (__vite_ssr_import_1__.isNone(signer)) {
		return yield* new __vite_ssr_import_6__.RemoteEnvironmentAuthFetchError({
			message: "No DPoP signer is available to authorize the environment request.",
			cause: authorization._tag
		});
	};
	const proof = yield* signer.value.createProof({
		method,
		url,
		accessToken: authorization.accessToken
	}).pipe(__vite_ssr_import_0__.mapError((cause) => new __vite_ssr_import_6__.RemoteEnvironmentAuthFetchError({
		message: "Could not create the environment request authorization proof.",
		cause
	})));
	return {
		authorization: `DPoP ${authorization.accessToken}`,
		dpop: proof
	};
});
/**
* A DPoP request is T3 Connect work, so its span starts an exported trace that
* the environment continues; its local caller's span would leave that trace
* without a root.
*/
const executeAuthenticatedEnvironmentHttpRequest = (input) => input.prepared.httpAuthorization?._tag === "Dpop" ? executeEnvironmentRequest(input).pipe(__vite_ssr_import_0__.withSpan(ENVIRONMENT_REQUEST_SPAN, { root: true }), (0,__vite_ssr_import_4__.withRelayClientTracing)) : executeEnvironmentRequest(input).pipe(__vite_ssr_import_0__.withSpan(ENVIRONMENT_REQUEST_SPAN));
const ENVIRONMENT_REQUEST_SPAN = "clientRuntime.state.executeAuthenticatedEnvironmentHttpRequest";
const executeEnvironmentRequest = __vite_ssr_import_0__.fnUntraced(function* (input) {
	let httpBaseUrl = input.prepared.httpBaseUrl;
	const requestUrlFor = (baseUrl) => input.url((0,__vite_ssr_import_6__.makeEnvironmentHttpApiUrlBuilder)(baseUrl)[input.group]);
	return yield* __vite_ssr_import_0__.gen(function* () {
		let rejectedAccessToken;
		for (;;) {
			let authorization = input.prepared.httpAuthorization;
			if (authorization?._tag === "Dpop") {
				const remote = input.remoteAuthorization;
				if (remote === undefined || __vite_ssr_import_1__.isNone(remote)) {
					return yield* new __vite_ssr_import_6__.RemoteEnvironmentAuthFetchError({
						message: "No relay authorization service is available for the environment request.",
						cause: input.prepared.target._tag
					});
				};
				const current = yield* remote.value.authorizeDpopHttp({
					expectedEnvironmentId: input.prepared.environmentId,
					...rejectedAccessToken === undefined ? {} : { rejectedAccessToken }
				}).pipe(__vite_ssr_import_0__.mapError((cause) => new __vite_ssr_import_6__.RemoteEnvironmentAuthFetchError({
					message: "Could not authorize the environment request.",
					cause
				})));
				// A learned direct route keeps its own origin; only the token renews.
				if (input.prepared.target._tag === "RelayConnectionTarget") {
					httpBaseUrl = current.httpBaseUrl;
				};
				authorization = current.httpAuthorization;
			};
			const requestUrl = requestUrlFor(httpBaseUrl);
			const client = yield* (0,__vite_ssr_import_6__.makeEnvironmentHttpApiGroupClient)(httpBaseUrl, input.group);
			const headers = yield* buildEnvironmentAuthHeaders(authorization, input.method, requestUrl, input.signer);
			const result = yield* (0,__vite_ssr_import_6__.executeEnvironmentHttpRequest)(requestUrl, input.timeoutMs, withEnvironmentCredentials(authorization, input.request({
				client,
				headers
			}))).pipe(__vite_ssr_import_0__.result);
			if (__vite_ssr_import_3__.isFailure(result)) {
				if (authorization?._tag === "Dpop" && rejectedAccessToken === undefined && result.failure._tag === "EnvironmentAuthInvalidError" && result.failure.reason === "invalid_credential") {
					rejectedAccessToken = authorization.accessToken;
					continue;
				};
				return yield* result.failure;
			};
			if (authorization?._tag === "Dpop" && input.isUnauthorizedResponse?.(result.success) === true) {
				if (rejectedAccessToken === undefined) {
					rejectedAccessToken = authorization.accessToken;
					continue;
				};
				return yield* new __vite_ssr_import_6__.RemoteEnvironmentAuthFetchError({
					message: "The environment rejected the renewed session authorization.",
					cause: result.success
				});
			};
			return result.success;
		}
	}).pipe(__vite_ssr_import_0__.timeoutOrElse({
		duration: input.timeoutMs,
		orElse: () => __vite_ssr_import_0__.fail(new __vite_ssr_import_6__.RemoteEnvironmentAuthTimeoutError(requestUrlFor(httpBaseUrl), input.timeoutMs))
	}));
});
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,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QUFRO0dBQVEsQ0FBQyxDQUFDLENBQzlFLENBQUMsQ0FBQyxLQUFLLHNCQUFPLE1BQU07R0FFcEIsSUFBSSxzQkFBTyxVQUFVLE1BQU0sR0FBRztJQUM1QixJQUNFLGVBQWUsU0FBUyxVQUN4Qix3QkFBd0IsYUFDeEIsT0FBTyxRQUFRLFNBQVMsaUNBQ3hCLE9BQU8sUUFBUSxXQUFXLHNCQUMxQjtLQUNBLHNCQUFzQixjQUFjO0tBQ3BDO0lBQ0Y7SUFDQSxPQUFPLE9BQU8sT0FBTztHQUN2QjtHQUVBLElBQ0UsZUFBZSxTQUFTLFVBQ3hCLE1BQU0seUJBQXlCLE9BQU8sT0FBTyxNQUFNLE1BQ25EO0lBQ0EsSUFBSSx3QkFBd0IsV0FBVztLQUNyQyxzQkFBc0IsY0FBYztLQUNwQztJQUNGO0lBQ0EsT0FBTyxPQUFPLElBQUksc0RBQWdDO0tBQ2hELFNBQVM7S0FDVCxPQUFPLE9BQU87SUFDaEIsQ0FBQztHQUNIO0dBQ0EsT0FBTyxPQUFPO0VBQ2hCO0NBQ0YsQ0FBQyxDQUFDLENBQUMsS0FDRCxzQkFBTyxjQUFjO0VBQ25CLFVBQVUsTUFBTTtFQUNoQixjQUNFLHNCQUFPLEtBQ0wsSUFBSSx3REFBa0MsY0FBYyxXQUFXLEdBQUcsTUFBTSxTQUFTLENBQ25GO0NBQ0osQ0FBQyxDQUNIO0FBQ0YsQ0FBQyIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiZW52aXJvbm1lbnRIdHRwQXV0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBFZmZlY3QgZnJvbSBcImVmZmVjdC9FZmZlY3RcIjtcbmltcG9ydCAqIGFzIE9wdGlvbiBmcm9tIFwiZWZmZWN0L09wdGlvblwiO1xuaW1wb3J0IHtcbiAgT1JDSEVTVFJBVElPTl9QUk9UT0NPTF9IRUFERVIsXG4gIE9SQ0hFU1RSQVRJT05fUFJPVE9DT0xfVkVSU0lPTl9URVhULFxufSBmcm9tIFwiQHQzdG9vbHMvY29udHJhY3RzXCI7XG5pbXBvcnQgKiBhcyBSZXN1bHQgZnJvbSBcImVmZmVjdC9SZXN1bHRcIjtcbmltcG9ydCB7IHdpdGhSZWxheUNsaWVudFRyYWNpbmcgfSBmcm9tIFwiQHQzdG9vbHMvc2hhcmVkL3JlbGF5VHJhY2luZ1wiO1xuaW1wb3J0IHsgRmV0Y2hIdHRwQ2xpZW50LCB0eXBlIEh0dHBNZXRob2QgfSBmcm9tIFwiZWZmZWN0L2h0dHBcIjtcblxuaW1wb3J0IHR5cGUgeyBSZW1vdGVFbnZpcm9ubWVudEF1dGhvcml6YXRpb24gfSBmcm9tIFwiLi4vYXV0aG9yaXphdGlvbi9zZXJ2aWNlLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFByZXBhcmVkQ29ubmVjdGlvbiwgUHJlcGFyZWRIdHRwQXV0aG9yaXphdGlvbiB9IGZyb20gXCIuLi9jb25uZWN0aW9uL21vZGVsLnRzXCI7XG5pbXBvcnQgdHlwZSB7IE1hbmFnZWRSZWxheURwb3BTaWduZXIgfSBmcm9tIFwiLi4vcmVsYXkvbWFuYWdlZFJlbGF5LnRzXCI7XG5pbXBvcnQge1xuICBleGVjdXRlRW52aXJvbm1lbnRIdHRwUmVxdWVzdCxcbiAgbWFrZUVudmlyb25tZW50SHR0cEFwaUdyb3VwQ2xpZW50LFxuICBtYWtlRW52aXJvbm1lbnRIdHRwQXBpVXJsQnVpbGRlcixcbiAgUmVtb3RlRW52aXJvbm1lbnRBdXRoRmV0Y2hFcnJvcixcbiAgUmVtb3RlRW52aXJvbm1lbnRBdXRoVGltZW91dEVycm9yLFxuICB0eXBlIFJlbW90ZUVudmlyb25tZW50UmVxdWVzdEVycm9yLFxufSBmcm9tIFwiLi4vcnBjL2h0dHAudHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudEh0dHBBdXRoSGVhZGVycyB7XG4gIHJlYWRvbmx5IGF1dGhvcml6YXRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRwb3A/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoT3JjaGVzdHJhdGlvblByb3RvY29sSGVhZGVyKFxuICBoZWFkZXJzOiBFbnZpcm9ubWVudEh0dHBBdXRoSGVhZGVycyxcbik6IEVudmlyb25tZW50SHR0cEF1dGhIZWFkZXJzICYge1xuICByZWFkb25seSBbT1JDSEVTVFJBVElPTl9QUk9UT0NPTF9IRUFERVJdOiB0eXBlb2YgT1JDSEVTVFJBVElPTl9QUk9UT0NPTF9WRVJTSU9OX1RFWFQ7XG59IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5oZWFkZXJzLFxuICAgIFtPUkNIRVNUUkFUSU9OX1BST1RPQ09MX0hFQURFUl06IE9SQ0hFU1RSQVRJT05fUFJPVE9DT0xfVkVSU0lPTl9URVhULFxuICB9O1xufVxuXG4vKipcbiAqIENvb2tpZS1hdXRoZW50aWNhdGVkIGVudmlyb25tZW50cyBuZWVkIGNyZWRlbnRpYWxlZCBtb2RlIGZvciBjcm9zcy1vcmlnaW4gZmV0Y2hlczsgYmVhcmVyL0RQb1AgdXNlcyBoZWFkZXJzLlxuICogYEZldGNoSHR0cENsaWVudGAgcmVhZHMgYFJlcXVlc3RJbml0YCBmcm9tIHRoZSBmaWJlciBjb250ZXh0IHBlciByZXF1ZXN0LlxuICovXG5jb25zdCB3aXRoRW52aXJvbm1lbnRDcmVkZW50aWFscyA9IDxBLCBFLCBSPihcbiAgYXV0aG9yaXphdGlvbjogUHJlcGFyZWRIdHRwQXV0aG9yaXphdGlvbiB8IG51bGwsXG4gIHJlcXVlc3Q6IEVmZmVjdC5FZmZlY3Q8QSwgRSwgUj4sXG4pOiBFZmZlY3QuRWZmZWN0PEEsIEUsIFI+ID0+XG4gIGF1dGhvcml6YXRpb24gPT09IG51bGxcbiAgICA/IHJlcXVlc3QucGlwZShFZmZlY3QucHJvdmlkZVNlcnZpY2UoRmV0Y2hIdHRwQ2xpZW50LlJlcXVlc3RJbml0LCB7IGNyZWRlbnRpYWxzOiBcImluY2x1ZGVcIiB9KSlcbiAgICA6IHJlcXVlc3Q7XG5cbmNvbnN0IGJ1aWxkRW52aXJvbm1lbnRBdXRoSGVhZGVycyA9IEVmZmVjdC5mbihcImVudmlyb25tZW50SHR0cEF1dGguYnVpbGRFbnZpcm9ubWVudEF1dGhIZWFkZXJzXCIpKFxuICBmdW5jdGlvbiogKFxuICAgIGF1dGhvcml6YXRpb246IFByZXBhcmVkSHR0cEF1dGhvcml6YXRpb24gfCBudWxsLFxuICAgIG1ldGhvZDogSHR0cE1ldGhvZC5IdHRwTWV0aG9kLFxuICAgIHVybDogc3RyaW5nLFxuICAgIHNpZ25lcjogT3B0aW9uLk9wdGlvbjxNYW5hZ2VkUmVsYXlEcG9wU2lnbmVyW1wiU2VydmljZVwiXT4sXG4gICk6IEVmZmVjdC5mbi5SZXR1cm48RW52aXJvbm1lbnRIdHRwQXV0aEhlYWRlcnMsIFJlbW90ZUVudmlyb25tZW50QXV0aEZldGNoRXJyb3I+IHtcbiAgICBpZiAoYXV0aG9yaXphdGlvbiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAoYXV0aG9yaXphdGlvbi5fdGFnID09PSBcIkJlYXJlclwiKSB7XG4gICAgICByZXR1cm4geyBhdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YXV0aG9yaXphdGlvbi50b2tlbn1gIH07XG4gICAgfVxuICAgIGlmIChPcHRpb24uaXNOb25lKHNpZ25lcikpIHtcbiAgICAgIHJldHVybiB5aWVsZCogbmV3IFJlbW90ZUVudmlyb25tZW50QXV0aEZldGNoRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBcIk5vIERQb1Agc2lnbmVyIGlzIGF2YWlsYWJsZSB0byBhdXRob3JpemUgdGhlIGVudmlyb25tZW50IHJlcXVlc3QuXCIsXG4gICAgICAgIGNhdXNlOiBhdXRob3JpemF0aW9uLl90YWcsXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgcHJvb2YgPSB5aWVsZCogc2lnbmVyLnZhbHVlXG4gICAgICAuY3JlYXRlUHJvb2YoeyBtZXRob2QsIHVybCwgYWNjZXNzVG9rZW46IGF1dGhvcml6YXRpb24uYWNjZXNzVG9rZW4gfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBFZmZlY3QubWFwRXJyb3IoXG4gICAgICAgICAgKGNhdXNlKSA9PlxuICAgICAgICAgICAgbmV3IFJlbW90ZUVudmlyb25tZW50QXV0aEZldGNoRXJyb3Ioe1xuICAgICAgICAgICAgICBtZXNzYWdlOiBcIkNvdWxkIG5vdCBjcmVhdGUgdGhlIGVudmlyb25tZW50IHJlcXVlc3QgYXV0aG9yaXphdGlvbiBwcm9vZi5cIixcbiAgICAgICAgICAgICAgY2F1c2UsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgcmV0dXJuIHsgYXV0aG9yaXphdGlvbjogYERQb1AgJHthdXRob3JpemF0aW9uLmFjY2Vzc1Rva2VufWAsIGRwb3A6IHByb29mIH07XG4gIH0sXG4pO1xuXG4vKipcbiAqIEEgRFBvUCByZXF1ZXN0IGlzIFQzIENvbm5lY3Qgd29yaywgc28gaXRzIHNwYW4gc3RhcnRzIGFuIGV4cG9ydGVkIHRyYWNlIHRoYXRcbiAqIHRoZSBlbnZpcm9ubWVudCBjb250aW51ZXM7IGl0cyBsb2NhbCBjYWxsZXIncyBzcGFuIHdvdWxkIGxlYXZlIHRoYXQgdHJhY2VcbiAqIHdpdGhvdXQgYSByb290LlxuICovXG5leHBvcnQgY29uc3QgZXhlY3V0ZUF1dGhlbnRpY2F0ZWRFbnZpcm9ubWVudEh0dHBSZXF1ZXN0ID0gPFxuICBHcm91cCBleHRlbmRzIFBhcmFtZXRlcnM8dHlwZW9mIG1ha2VFbnZpcm9ubWVudEh0dHBBcGlHcm91cENsaWVudD5bMV0sXG4gIEEsXG4gIEUsXG4gIFIsXG4+KFxuICBpbnB1dDogUGFyYW1ldGVyczx0eXBlb2YgZXhlY3V0ZUVudmlyb25tZW50UmVxdWVzdDxHcm91cCwgQSwgRSwgUj4+WzBdLFxuKSA9PlxuICBpbnB1dC5wcmVwYXJlZC5odHRwQXV0aG9yaXphdGlvbj8uX3RhZyA9PT0gXCJEcG9wXCJcbiAgICA/IGV4ZWN1dGVFbnZpcm9ubWVudFJlcXVlc3QoaW5wdXQpLnBpcGUoXG4gICAgICAgIEVmZmVjdC53aXRoU3BhbihFTlZJUk9OTUVOVF9SRVFVRVNUX1NQQU4sIHsgcm9vdDogdHJ1ZSB9KSxcbiAgICAgICAgd2l0aFJlbGF5Q2xpZW50VHJhY2luZyxcbiAgICAgIClcbiAgICA6IGV4ZWN1dGVFbnZpcm9ubWVudFJlcXVlc3QoaW5wdXQpLnBpcGUoRWZmZWN0LndpdGhTcGFuKEVOVklST05NRU5UX1JFUVVFU1RfU1BBTikpO1xuXG5jb25zdCBFTlZJUk9OTUVOVF9SRVFVRVNUX1NQQU4gPSBcImNsaWVudFJ1bnRpbWUuc3RhdGUuZXhlY3V0ZUF1dGhlbnRpY2F0ZWRFbnZpcm9ubWVudEh0dHBSZXF1ZXN0XCI7XG5cbmNvbnN0IGV4ZWN1dGVFbnZpcm9ubWVudFJlcXVlc3QgPSBFZmZlY3QuZm5VbnRyYWNlZChmdW5jdGlvbiogPFxuICBHcm91cCBleHRlbmRzIFBhcmFtZXRlcnM8dHlwZW9mIG1ha2VFbnZpcm9ubWVudEh0dHBBcGlHcm91cENsaWVudD5bMV0sXG4gIEEsXG4gIEUsXG4gIFIsXG4+KGlucHV0OiB7XG4gIHJlYWRvbmx5IHByZXBhcmVkOiBQcmVwYXJlZENvbm5lY3Rpb247XG4gIHJlYWRvbmx5IHNpZ25lcjogT3B0aW9uLk9wdGlvbjxNYW5hZ2VkUmVsYXlEcG9wU2lnbmVyW1wiU2VydmljZVwiXT47XG4gIHJlYWRvbmx5IHJlbW90ZUF1dGhvcml6YXRpb24/OiBPcHRpb24uT3B0aW9uPFJlbW90ZUVudmlyb25tZW50QXV0aG9yaXphdGlvbltcIlNlcnZpY2VcIl0+O1xuICByZWFkb25seSBtZXRob2Q6IEh0dHBNZXRob2QuSHR0cE1ldGhvZDtcbiAgLyoqXG4gICAqIFRoZSBVUkwgdG8gc2lnbiwgZnJvbSB0aGUgZ3JvdXAncyBjb250cmFjdCBVUkwgYnVpbGRlci4gSXQgZW5jb2RlcyBwYXRoXG4gICAqIHBhcmFtcyBleGFjdGx5IGxpa2UgdGhlIHJlcXVlc3QgY2xpZW50LCBzbyB0aGUgRFBvUCBwcm9vZiBtYXRjaGVzIHRoZVxuICAgKiBVUkwgYWN0dWFsbHkgc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IHVybDogKHVybHM6IFJldHVyblR5cGU8dHlwZW9mIG1ha2VFbnZpcm9ubWVudEh0dHBBcGlVcmxCdWlsZGVyPltHcm91cF0pID0+IHN0cmluZztcbiAgcmVhZG9ubHkgdGltZW91dE1zOiBudW1iZXI7XG4gIHJlYWRvbmx5IGdyb3VwOiBHcm91cDtcbiAgcmVhZG9ubHkgcmVxdWVzdDogKGlucHV0OiB7XG4gICAgcmVhZG9ubHkgY2xpZW50OiBFZmZlY3QuU3VjY2VzczxSZXR1cm5UeXBlPHR5cGVvZiBtYWtlRW52aXJvbm1lbnRIdHRwQXBpR3JvdXBDbGllbnQ8R3JvdXA+Pj47XG4gICAgcmVhZG9ubHkgaGVhZGVyczogRW52aXJvbm1lbnRIdHRwQXV0aEhlYWRlcnM7XG4gIH0pID0+IEVmZmVjdC5FZmZlY3Q8QSwgRSwgUj47XG4gIC8qKiBTb21lIGVuZHBvaW50cyByZXBvcnQgcmVqZWN0ZWQgY3JlZGVudGlhbHMgaW4gYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiAqL1xuICByZWFkb25seSBpc1VuYXV0aG9yaXplZFJlc3BvbnNlPzogKHJlc3BvbnNlOiBOb0luZmVyPEE+KSA9PiBib29sZWFuO1xufSk6IEVmZmVjdC5mbi5SZXR1cm48XG4gIEEsXG4gIFJlbW90ZUVudmlyb25tZW50UmVxdWVzdEVycm9yLFxuICBFZmZlY3QuU2VydmljZXM8UmV0dXJuVHlwZTx0eXBlb2YgbWFrZUVudmlyb25tZW50SHR0cEFwaUdyb3VwQ2xpZW50PEdyb3VwPj4+IHwgUlxuPiB7XG4gIGxldCBodHRwQmFzZVVybCA9IGlucHV0LnByZXBhcmVkLmh0dHBCYXNlVXJsO1xuICBjb25zdCByZXF1ZXN0VXJsRm9yID0gKGJhc2VVcmw6IHN0cmluZykgPT5cbiAgICBpbnB1dC51cmwobWFrZUVudmlyb25tZW50SHR0cEFwaVVybEJ1aWxkZXIoYmFzZVVybClbaW5wdXQuZ3JvdXBdKTtcbiAgcmV0dXJuIHlpZWxkKiBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgbGV0IHJlamVjdGVkQWNjZXNzVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBmb3IgKDs7KSB7XG4gICAgICBsZXQgYXV0aG9yaXphdGlvbiA9IGlucHV0LnByZXBhcmVkLmh0dHBBdXRob3JpemF0aW9uO1xuICAgICAgaWYgKGF1dGhvcml6YXRpb24/Ll90YWcgPT09IFwiRHBvcFwiKSB7XG4gICAgICAgIGNvbnN0IHJlbW90ZSA9IGlucHV0LnJlbW90ZUF1dGhvcml6YXRpb247XG4gICAgICAgIGlmIChyZW1vdGUgPT09IHVuZGVmaW5lZCB8fCBPcHRpb24uaXNOb25lKHJlbW90ZSkpIHtcbiAgICAgICAgICByZXR1cm4geWllbGQqIG5ldyBSZW1vdGVFbnZpcm9ubWVudEF1dGhGZXRjaEVycm9yKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiTm8gcmVsYXkgYXV0aG9yaXphdGlvbiBzZXJ2aWNlIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGVudmlyb25tZW50IHJlcXVlc3QuXCIsXG4gICAgICAgICAgICBjYXVzZTogaW5wdXQucHJlcGFyZWQudGFyZ2V0Ll90YWcsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudCA9IHlpZWxkKiByZW1vdGUudmFsdWVcbiAgICAgICAgICAuYXV0aG9yaXplRHBvcEh0dHAoe1xuICAgICAgICAgICAgZXhwZWN0ZWRFbnZpcm9ubWVudElkOiBpbnB1dC5wcmVwYXJlZC5lbnZpcm9ubWVudElkLFxuICAgICAgICAgICAgLi4uKHJlamVjdGVkQWNjZXNzVG9rZW4gPT09IHVuZGVmaW5lZCA/IHt9IDogeyByZWplY3RlZEFjY2Vzc1Rva2VuIH0pLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QubWFwRXJyb3IoXG4gICAgICAgICAgICAgIChjYXVzZSkgPT5cbiAgICAgICAgICAgICAgICBuZXcgUmVtb3RlRW52aXJvbm1lbnRBdXRoRmV0Y2hFcnJvcih7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkNvdWxkIG5vdCBhdXRob3JpemUgdGhlIGVudmlyb25tZW50IHJlcXVlc3QuXCIsXG4gICAgICAgICAgICAgICAgICBjYXVzZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgLy8gQSBsZWFybmVkIGRpcmVjdCByb3V0ZSBrZWVwcyBpdHMgb3duIG9yaWdpbjsgb25seSB0aGUgdG9rZW4gcmVuZXdzLlxuICAgICAgICBpZiAoaW5wdXQucHJlcGFyZWQudGFyZ2V0Ll90YWcgPT09IFwiUmVsYXlDb25uZWN0aW9uVGFyZ2V0XCIpIHtcbiAgICAgICAgICBodHRwQmFzZVVybCA9IGN1cnJlbnQuaHR0cEJhc2VVcmw7XG4gICAgICAgIH1cbiAgICAgICAgYXV0aG9yaXphdGlvbiA9IGN1cnJlbnQuaHR0cEF1dGhvcml6YXRpb247XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVlc3RVcmwgPSByZXF1ZXN0VXJsRm9yKGh0dHBCYXNlVXJsKTtcbiAgICAgIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBtYWtlRW52aXJvbm1lbnRIdHRwQXBpR3JvdXBDbGllbnQoaHR0cEJhc2VVcmwsIGlucHV0Lmdyb3VwKTtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSB5aWVsZCogYnVpbGRFbnZpcm9ubWVudEF1dGhIZWFkZXJzKFxuICAgICAgICBhdXRob3JpemF0aW9uLFxuICAgICAgICBpbnB1dC5tZXRob2QsXG4gICAgICAgIHJlcXVlc3RVcmwsXG4gICAgICAgIGlucHV0LnNpZ25lcixcbiAgICAgICk7XG4gICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCogZXhlY3V0ZUVudmlyb25tZW50SHR0cFJlcXVlc3QoXG4gICAgICAgIHJlcXVlc3RVcmwsXG4gICAgICAgIGlucHV0LnRpbWVvdXRNcyxcbiAgICAgICAgd2l0aEVudmlyb25tZW50Q3JlZGVudGlhbHMoYXV0aG9yaXphdGlvbiwgaW5wdXQucmVxdWVzdCh7IGNsaWVudCwgaGVhZGVycyB9KSksXG4gICAgICApLnBpcGUoRWZmZWN0LnJlc3VsdCk7XG5cbiAgICAgIGlmIChSZXN1bHQuaXNGYWlsdXJlKHJlc3VsdCkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGF1dGhvcml6YXRpb24/Ll90YWcgPT09IFwiRHBvcFwiICYmXG4gICAgICAgICAgcmVqZWN0ZWRBY2Nlc3NUb2tlbiA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgcmVzdWx0LmZhaWx1cmUuX3RhZyA9PT0gXCJFbnZpcm9ubWVudEF1dGhJbnZhbGlkRXJyb3JcIiAmJlxuICAgICAgICAgIHJlc3VsdC5mYWlsdXJlLnJlYXNvbiA9PT0gXCJpbnZhbGlkX2NyZWRlbnRpYWxcIlxuICAgICAgICApIHtcbiAgICAgICAgICByZWplY3RlZEFjY2Vzc1Rva2VuID0gYXV0aG9yaXphdGlvbi5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWllbGQqIHJlc3VsdC5mYWlsdXJlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGF1dGhvcml6YXRpb24/Ll90YWcgPT09IFwiRHBvcFwiICYmXG4gICAgICAgIGlucHV0LmlzVW5hdXRob3JpemVkUmVzcG9uc2U/LihyZXN1bHQuc3VjY2VzcykgPT09IHRydWVcbiAgICAgICkge1xuICAgICAgICBpZiAocmVqZWN0ZWRBY2Nlc3NUb2tlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmVqZWN0ZWRBY2Nlc3NUb2tlbiA9IGF1dGhvcml6YXRpb24uYWNjZXNzVG9rZW47XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHlpZWxkKiBuZXcgUmVtb3RlRW52aXJvbm1lbnRBdXRoRmV0Y2hFcnJvcih7XG4gICAgICAgICAgbWVzc2FnZTogXCJUaGUgZW52aXJvbm1lbnQgcmVqZWN0ZWQgdGhlIHJlbmV3ZWQgc2Vzc2lvbiBhdXRob3JpemF0aW9uLlwiLFxuICAgICAgICAgIGNhdXNlOiByZXN1bHQuc3VjY2VzcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LnN1Y2Nlc3M7XG4gICAgfVxuICB9KS5waXBlKFxuICAgIEVmZmVjdC50aW1lb3V0T3JFbHNlKHtcbiAgICAgIGR1cmF0aW9uOiBpbnB1dC50aW1lb3V0TXMsXG4gICAgICBvckVsc2U6ICgpID0+XG4gICAgICAgIEVmZmVjdC5mYWlsKFxuICAgICAgICAgIG5ldyBSZW1vdGVFbnZpcm9ubWVudEF1dGhUaW1lb3V0RXJyb3IocmVxdWVzdFVybEZvcihodHRwQmFzZVVybCksIGlucHV0LnRpbWVvdXRNcyksXG4gICAgICAgICksXG4gICAgfSksXG4gICk7XG59KTtcbiJdLCJmaWxlIjoiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jbGllbnQtcnVudGltZS9zcmMvc3RhdGUvZW52aXJvbm1lbnRIdHRwQXV0aC50cyJ9

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY2xpZW50LXJ1bnRpbWUvc3JjL3N0YXRlL2Vudmlyb25tZW50SHR0cEF1dGgudHMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL3BhY2thZ2VzL2NsaWVudC1ydW50aW1lL3NyYy9zdGF0ZS9lbnZpcm9ubWVudEh0dHBBdXRoLnRzIix7InVybHMiOiI2IiwiaWRzIjoiNyJ9LFsiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjE0Il0sW10sWyI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiXSx7fSwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9ub2RlX21vZHVsZXMvLnBucG0vZWZmZWN0QDQuMC41L25vZGVfbW9kdWxlcy9lZmZlY3QvZGlzdC9FZmZlY3QuanMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L09wdGlvbi5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9pbmRleC50cyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvUmVzdWx0LmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9zaGFyZWQvc3JjL3JlbGF5VHJhY2luZy50cyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvaHR0cC9pbmRleC5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY2xpZW50LXJ1bnRpbWUvc3JjL3JwYy9odHRwLnRzIl0=