__vite_ssr_exportName__("createCommandPermissions", () => { try { return createCommandPermissions } catch {} });
const __vite_ssr_import_0__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/index.ts", {"importedNames":["clientRpcRequiredScopes","sessionGrantsScope","authScopeRequiredResponse","EnvironmentAuthorizationError"]});
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/Effect.js");
const __vite_ssr_import_2__ = 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_3__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/reactivity/index.js", {"importedNames":["AsyncResult","Atom","AtomRegistry"]});
const __vite_ssr_import_4__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/client-runtime/src/state/session.ts", {"importedNames":["createEnvironmentSessionAtoms"]});





function makeCommandPermissions(runtime, method) {
	const sessions = (0,__vite_ssr_import_4__.createEnvironmentSessionAtoms)(runtime);
	const requiredScopes = (input) => (0,__vite_ssr_import_0__.clientRpcRequiredScopes)(method, input);
	const atomsByEnvironment = __vite_ssr_import_3__.Atom.family((environmentId) => __vite_ssr_import_3__.Atom.family((scopeKey) => __vite_ssr_import_3__.Atom.make((get) => {
		if (environmentId === null) return false;
		const scopes = scopeKey.split(",").filter(Boolean);
		if (scopes.length === 0) return true;
		const result = get(sessions.sessionStateAtom(environmentId));
		const session = __vite_ssr_import_2__.getOrNull(__vite_ssr_import_3__.AsyncResult.value(result));
		return result._tag !== "Failure" && session !== null && scopes.every((scope) => (0,__vite_ssr_import_0__.sessionGrantsScope)(session, scope));
	})));
	const permissionAtom = (environmentId, input) => atomsByEnvironment(environmentId)(requiredScopes(input).join(","));
	const authorize = (registry, environmentId, input) => __vite_ssr_import_1__.suspend(() => {
		const scopes = requiredScopes(input);
		if (scopes.length === 0) return __vite_ssr_import_1__.void;
		const atom = sessions.sessionStateAtom(environmentId);
		return __vite_ssr_import_1__.scoped(__vite_ssr_import_1__.gen(function* () {
			yield* __vite_ssr_import_3__.AtomRegistry.mount(registry, atom);
			const session = yield* __vite_ssr_import_3__.AtomRegistry.getResult(registry, atom, { suspendOnWaiting: false }).pipe(__vite_ssr_import_1__.timeoutOption(6e3), __vite_ssr_import_1__.catch(() => __vite_ssr_import_1__.succeed(__vite_ssr_import_2__.none())));
			const missing = scopes.find((scope) => __vite_ssr_import_2__.isNone(session) || !(0,__vite_ssr_import_0__.sessionGrantsScope)(session.value, scope));
			if (missing !== undefined) return yield* __vite_ssr_import_1__.fail(new __vite_ssr_import_0__.EnvironmentAuthorizationError({
				...(0,__vite_ssr_import_0__.authScopeRequiredResponse)(missing),
				message: `This connection requires ${missing}.`
			}));
		}));
	});
	return {
		requiredScopes,
		permissionAtom,
		authorize
	};
}
const permissionsByRuntime = new WeakMap();
function createCommandPermissions(runtime, method) {
	let permissions = permissionsByRuntime.get(runtime);
	if (permissions === undefined) {
		permissions = new Map();
		permissionsByRuntime.set(runtime, permissions);
	};
	const existing = permissions.get(method);
	if (existing !== undefined) return existing;
	const created = makeCommandPermissions(runtime, method);
	permissions.set(method, created);
	return created;
}
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJtYXBwaW5ncyI6IkFBQUEsQ0FBQTtBQUFBO0FBU0E7QUFDQTtBQUNBO0FBRUE7Ozs7OztBQUVBLFNBQVMsdUJBQ1AsU0FDQSxRQUNBO0NBQ0EsTUFBTSxXQUFXLHdEQUE4QixPQUFPO0NBQ3RELE1BQU0sa0JBQWtCLFVBQW9CLGtEQUF3QixRQUFRLEtBQUs7Q0FDakYsTUFBTSxxQkFBcUIsMkJBQUssUUFBUSxrQkFDdEMsMkJBQUssUUFBUSxhQUNYLDJCQUFLLE1BQU0sUUFBUTtFQUNqQixJQUFJLGtCQUFrQixNQUFNLE9BQU87RUFDbkMsTUFBTSxTQUFTLFNBQVMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLE9BQU87RUFDakQsSUFBSSxPQUFPLFdBQVcsR0FBRyxPQUFPO0VBQ2hDLE1BQU0sU0FBUyxJQUFJLFNBQVMsaUJBQWlCLGFBQWEsQ0FBQztFQUMzRCxNQUFNLFVBQVUsc0JBQU8sVUFBVSxrQ0FBWSxNQUFNLE1BQU0sQ0FBQztFQUMxRCxPQUNFLE9BQU8sU0FBUyxhQUNoQixZQUFZLFFBQ1osT0FBTyxPQUFPLFVBQVUsNkNBQW1CLFNBQVMsS0FBSyxDQUFDO0NBRTlELENBQUMsQ0FDSCxDQUNGO0NBQ0EsTUFBTSxrQkFBa0IsZUFBcUMsVUFDM0QsbUJBQW1CLGFBQWEsQ0FBQyxDQUFDLGVBQWUsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7Q0FDbkUsTUFBTSxhQUNKLFVBQ0EsZUFDQSxVQUVBLHNCQUFPLGNBQWM7RUFDbkIsTUFBTSxTQUFTLGVBQWUsS0FBSztFQUNuQyxJQUFJLE9BQU8sV0FBVyxHQUFHLE9BQU8sc0JBQU87RUFDdkMsTUFBTSxPQUFPLFNBQVMsaUJBQWlCLGFBQWE7RUFDcEQsT0FBTyxzQkFBTyxPQUNaLHNCQUFPLElBQUksYUFBYTtHQUN0QixPQUFPLG1DQUFhLE1BQU0sVUFBVSxJQUFJO0dBQ3hDLE1BQU0sVUFBVSxPQUFPLG1DQUFhLFVBQVUsVUFBVSxNQUFNLEVBQzVELGtCQUFrQixNQUNwQixDQUFDLENBQUMsQ0FBQyxLQUNELHNCQUFPLGNBQWMsR0FBSyxHQUMxQixzQkFBTyxZQUFZLHNCQUFPLFFBQVEsc0JBQU8sS0FBdUIsQ0FBQyxDQUFDLENBQ3BFO0dBQ0EsTUFBTSxVQUFVLE9BQU8sTUFDcEIsVUFBVSxzQkFBTyxPQUFPLE9BQU8sS0FBSyxDQUFDLDZDQUFtQixRQUFRLE9BQU8sS0FBSyxDQUMvRTtHQUNBLElBQUksWUFBWSxXQUNkLE9BQU8sT0FBTyxzQkFBTyxLQUNuQixJQUFJLG9EQUE4QjtJQUNoQyxHQUFHLG9EQUEwQixPQUFPO0lBQ3BDLFNBQVMsNEJBQTRCLFFBQVE7R0FDL0MsQ0FBQyxDQUNIO0VBQ0osQ0FBQyxDQUNIO0NBQ0YsQ0FBQztDQUNILE9BQU87RUFBRTtFQUFnQjtFQUFnQjtDQUFVO0FBQ3JEO0FBRUEsTUFBTSx1QkFBdUIsSUFBSSxRQUcvQjtBQUVLLFNBQVMseUJBQ2QsU0FDQSxRQUNBO0NBQ0EsSUFBSSxjQUFjLHFCQUFxQixJQUFJLE9BQU87Q0FDbEQsSUFBSSxnQkFBZ0IsV0FBVztFQUM3QixjQUFjLElBQUksSUFBSTtFQUN0QixxQkFBcUIsSUFBSSxTQUFTLFdBQVc7Q0FDL0M7Q0FDQSxNQUFNLFdBQVcsWUFBWSxJQUFJLE1BQU07Q0FDdkMsSUFBSSxhQUFhLFdBQVcsT0FBTztDQUNuQyxNQUFNLFVBQVUsdUJBQXVCLFNBQVMsTUFBTTtDQUN0RCxZQUFZLElBQUksUUFBUSxPQUFPO0NBQy9CLE9BQU87QUFDVCIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsiY29tbWFuZFBlcm1pc3Npb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNsaWVudFJwY1JlcXVpcmVkU2NvcGVzLFxuICBzZXNzaW9uR3JhbnRzU2NvcGUsXG4gIGF1dGhTY29wZVJlcXVpcmVkUmVzcG9uc2UsXG4gIEVudmlyb25tZW50QXV0aG9yaXphdGlvbkVycm9yLFxuICB0eXBlIEVudmlyb25tZW50SWQsXG4gIHR5cGUgQXV0aFNlc3Npb25TdGF0ZSxcbiAgdHlwZSBBdXRoRW52aXJvbm1lbnRTY29wZSxcbn0gZnJvbSBcIkB0M3Rvb2xzL2NvbnRyYWN0c1wiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBPcHRpb24gZnJvbSBcImVmZmVjdC9PcHRpb25cIjtcbmltcG9ydCB7IEFzeW5jUmVzdWx0LCBBdG9tLCBBdG9tUmVnaXN0cnkgfSBmcm9tIFwiZWZmZWN0L3JlYWN0aXZpdHlcIjtcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnRSZWdpc3RyeSB9IGZyb20gXCIuLi9jb25uZWN0aW9uL3JlZ2lzdHJ5LnRzXCI7XG5pbXBvcnQgeyBjcmVhdGVFbnZpcm9ubWVudFNlc3Npb25BdG9tcyB9IGZyb20gXCIuL3Nlc3Npb24udHNcIjtcblxuZnVuY3Rpb24gbWFrZUNvbW1hbmRQZXJtaXNzaW9uczxSLCBFPihcbiAgcnVudGltZTogQXRvbS5BdG9tUnVudGltZTxFbnZpcm9ubWVudFJlZ2lzdHJ5IHwgUiwgRT4sXG4gIG1ldGhvZDogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHNlc3Npb25zID0gY3JlYXRlRW52aXJvbm1lbnRTZXNzaW9uQXRvbXMocnVudGltZSk7XG4gIGNvbnN0IHJlcXVpcmVkU2NvcGVzID0gKGlucHV0PzogdW5rbm93bikgPT4gY2xpZW50UnBjUmVxdWlyZWRTY29wZXMobWV0aG9kLCBpbnB1dCk7XG4gIGNvbnN0IGF0b21zQnlFbnZpcm9ubWVudCA9IEF0b20uZmFtaWx5KChlbnZpcm9ubWVudElkOiBFbnZpcm9ubWVudElkIHwgbnVsbCkgPT5cbiAgICBBdG9tLmZhbWlseSgoc2NvcGVLZXk6IHN0cmluZykgPT5cbiAgICAgIEF0b20ubWFrZSgoZ2V0KSA9PiB7XG4gICAgICAgIGlmIChlbnZpcm9ubWVudElkID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHNjb3BlcyA9IHNjb3BlS2V5LnNwbGl0KFwiLFwiKS5maWx0ZXIoQm9vbGVhbikgYXMgQXV0aEVudmlyb25tZW50U2NvcGVbXTtcbiAgICAgICAgaWYgKHNjb3Blcy5sZW5ndGggPT09IDApIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBnZXQoc2Vzc2lvbnMuc2Vzc2lvblN0YXRlQXRvbShlbnZpcm9ubWVudElkKSk7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBPcHRpb24uZ2V0T3JOdWxsKEFzeW5jUmVzdWx0LnZhbHVlKHJlc3VsdCkpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlc3VsdC5fdGFnICE9PSBcIkZhaWx1cmVcIiAmJlxuICAgICAgICAgIHNlc3Npb24gIT09IG51bGwgJiZcbiAgICAgICAgICBzY29wZXMuZXZlcnkoKHNjb3BlKSA9PiBzZXNzaW9uR3JhbnRzU2NvcGUoc2Vzc2lvbiwgc2NvcGUpKVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKSxcbiAgKTtcbiAgY29uc3QgcGVybWlzc2lvbkF0b20gPSAoZW52aXJvbm1lbnRJZDogRW52aXJvbm1lbnRJZCB8IG51bGwsIGlucHV0PzogdW5rbm93bikgPT5cbiAgICBhdG9tc0J5RW52aXJvbm1lbnQoZW52aXJvbm1lbnRJZCkocmVxdWlyZWRTY29wZXMoaW5wdXQpLmpvaW4oXCIsXCIpKTtcbiAgY29uc3QgYXV0aG9yaXplID0gKFxuICAgIHJlZ2lzdHJ5OiBBdG9tUmVnaXN0cnkuQXRvbVJlZ2lzdHJ5LFxuICAgIGVudmlyb25tZW50SWQ6IEVudmlyb25tZW50SWQsXG4gICAgaW5wdXQ/OiB1bmtub3duLFxuICApID0+XG4gICAgRWZmZWN0LnN1c3BlbmQoKCkgPT4ge1xuICAgICAgY29uc3Qgc2NvcGVzID0gcmVxdWlyZWRTY29wZXMoaW5wdXQpO1xuICAgICAgaWYgKHNjb3Blcy5sZW5ndGggPT09IDApIHJldHVybiBFZmZlY3Qudm9pZDtcbiAgICAgIGNvbnN0IGF0b20gPSBzZXNzaW9ucy5zZXNzaW9uU3RhdGVBdG9tKGVudmlyb25tZW50SWQpO1xuICAgICAgcmV0dXJuIEVmZmVjdC5zY29wZWQoXG4gICAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICB5aWVsZCogQXRvbVJlZ2lzdHJ5Lm1vdW50KHJlZ2lzdHJ5LCBhdG9tKTtcbiAgICAgICAgICBjb25zdCBzZXNzaW9uID0geWllbGQqIEF0b21SZWdpc3RyeS5nZXRSZXN1bHQocmVnaXN0cnksIGF0b20sIHtcbiAgICAgICAgICAgIHN1c3BlbmRPbldhaXRpbmc6IGZhbHNlLFxuICAgICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBFZmZlY3QudGltZW91dE9wdGlvbig2XzAwMCksXG4gICAgICAgICAgICBFZmZlY3QuY2F0Y2goKCkgPT4gRWZmZWN0LnN1Y2NlZWQoT3B0aW9uLm5vbmU8QXV0aFNlc3Npb25TdGF0ZT4oKSkpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgbWlzc2luZyA9IHNjb3Blcy5maW5kKFxuICAgICAgICAgICAgKHNjb3BlKSA9PiBPcHRpb24uaXNOb25lKHNlc3Npb24pIHx8ICFzZXNzaW9uR3JhbnRzU2NvcGUoc2Vzc2lvbi52YWx1ZSwgc2NvcGUpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG1pc3NpbmcgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICAgIG5ldyBFbnZpcm9ubWVudEF1dGhvcml6YXRpb25FcnJvcih7XG4gICAgICAgICAgICAgICAgLi4uYXV0aFNjb3BlUmVxdWlyZWRSZXNwb25zZShtaXNzaW5nKSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVGhpcyBjb25uZWN0aW9uIHJlcXVpcmVzICR7bWlzc2luZ30uYCxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIHJldHVybiB7IHJlcXVpcmVkU2NvcGVzLCBwZXJtaXNzaW9uQXRvbSwgYXV0aG9yaXplIH07XG59XG5cbmNvbnN0IHBlcm1pc3Npb25zQnlSdW50aW1lID0gbmV3IFdlYWtNYXA8XG4gIG9iamVjdCxcbiAgTWFwPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgbWFrZUNvbW1hbmRQZXJtaXNzaW9ucz4+XG4+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21tYW5kUGVybWlzc2lvbnM8UiwgRT4oXG4gIHJ1bnRpbWU6IEF0b20uQXRvbVJ1bnRpbWU8RW52aXJvbm1lbnRSZWdpc3RyeSB8IFIsIEU+LFxuICBtZXRob2Q6IHN0cmluZyxcbikge1xuICBsZXQgcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uc0J5UnVudGltZS5nZXQocnVudGltZSk7XG4gIGlmIChwZXJtaXNzaW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcGVybWlzc2lvbnMgPSBuZXcgTWFwKCk7XG4gICAgcGVybWlzc2lvbnNCeVJ1bnRpbWUuc2V0KHJ1bnRpbWUsIHBlcm1pc3Npb25zKTtcbiAgfVxuICBjb25zdCBleGlzdGluZyA9IHBlcm1pc3Npb25zLmdldChtZXRob2QpO1xuICBpZiAoZXhpc3RpbmcgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGV4aXN0aW5nO1xuICBjb25zdCBjcmVhdGVkID0gbWFrZUNvbW1hbmRQZXJtaXNzaW9ucyhydW50aW1lLCBtZXRob2QpO1xuICBwZXJtaXNzaW9ucy5zZXQobWV0aG9kLCBjcmVhdGVkKTtcbiAgcmV0dXJuIGNyZWF0ZWQ7XG59XG4iXSwiZmlsZSI6Ii9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY2xpZW50LXJ1bnRpbWUvc3JjL3N0YXRlL2NvbW1hbmRQZXJtaXNzaW9ucy50cyJ9

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY2xpZW50LXJ1bnRpbWUvc3JjL3N0YXRlL2NvbW1hbmRQZXJtaXNzaW9ucy50cyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY2xpZW50LXJ1bnRpbWUvc3JjL3N0YXRlL2NvbW1hbmRQZXJtaXNzaW9ucy50cyIseyJ1cmxzIjoiNiIsImlkcyI6IjcifSxbIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sW10sWyI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLHt9LCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL3BhY2thZ2VzL2NvbnRyYWN0cy9zcmMvaW5kZXgudHMiLCIvQGZzL2hvbWUvdWJ1bnR1L3d0L3ByLTI0MjYzL25vZGVfbW9kdWxlcy8ucG5wbS9lZmZlY3RANC4wLjUvbm9kZV9tb2R1bGVzL2VmZmVjdC9kaXN0L0VmZmVjdC5qcyIsIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvT3B0aW9uLmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9ub2RlX21vZHVsZXMvLnBucG0vZWZmZWN0QDQuMC41L25vZGVfbW9kdWxlcy9lZmZlY3QvZGlzdC9yZWFjdGl2aXR5L2luZGV4LmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jbGllbnQtcnVudGltZS9zcmMvc3RhdGUvc2Vzc2lvbi50cyJd