@webmcp-bridge/local-mcp 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/runtime.js CHANGED
@@ -7,6 +7,7 @@ import { tmpdir } from "node:os";
7
7
  import { join } from "node:path";
8
8
  import { createWebMcpPageGateway, } from "@webmcp-bridge/playwright";
9
9
  import { chromium, firefox, webkit, } from "playwright";
10
+ import { resolveAuthPolicy } from "./session.js";
10
11
  const NAVIGATION_TIMEOUT_MS = 5_000;
11
12
  const LAUNCH_RETRY_DELAY_MS = 750;
12
13
  const MAX_LAUNCH_ATTEMPTS = 2;
@@ -21,22 +22,25 @@ const LAUNCH_RETRY_ERROR_SNIPPETS = [
21
22
  "Opening in existing browser session.",
22
23
  "ProcessSingleton",
23
24
  ];
24
- function isChromiumAutomationWorkaroundEnabled() {
25
+ function isChromiumAutomationWorkaroundEnabled(enabledOverride) {
26
+ if (enabledOverride !== undefined) {
27
+ return enabledOverride;
28
+ }
25
29
  const value = process.env.WEBMCP_CHROMIUM_LOGIN_WORKAROUND;
26
30
  return value === "1" || value === "true";
27
31
  }
28
- function createChromiumLaunchOptions(headless, browserChannel) {
32
+ function createChromiumLaunchOptions(presentationMode, browserChannel, chromiumLoginWorkaround) {
29
33
  const launchOptions = {
30
- headless,
34
+ headless: presentationMode === "headless",
31
35
  viewport: null,
32
36
  };
33
- if (isChromiumAutomationWorkaroundEnabled()) {
34
- // Experimental: reduce obvious automation markers for login surfaces.
35
- launchOptions.args = ["--disable-blink-features=AutomationControlled"];
37
+ if (isChromiumAutomationWorkaroundEnabled(chromiumLoginWorkaround)) {
38
+ // Experimental: remove the most obvious automation marker for login surfaces.
36
39
  launchOptions.ignoreDefaultArgs = ["--enable-automation"];
37
40
  }
38
41
  if (browserChannel) {
39
42
  launchOptions.channel = browserChannel;
43
+ launchOptions.chromiumSandbox = true;
40
44
  }
41
45
  return launchOptions;
42
46
  }
@@ -65,6 +69,17 @@ async function launchPersistentContextWithRetry(browserType, userDataDir, launch
65
69
  }
66
70
  throw lastError;
67
71
  }
72
+ async function connectToExternalBrowserContext(browserUrl) {
73
+ const browser = await chromium.connectOverCDP(browserUrl);
74
+ const context = browser.contexts()[0];
75
+ if (context) {
76
+ return { browser, context };
77
+ }
78
+ await browser.close().catch(() => {
79
+ // Cleanup should be best-effort when attach validation fails.
80
+ });
81
+ throw new Error("SESSION_NOT_AVAILABLE: no persistent browser context found at --browser-url. Open the target Chromium profile with remote debugging enabled before starting local-mcp.");
82
+ }
68
83
  function normalizeHost(value) {
69
84
  return value.trim().toLowerCase();
70
85
  }
@@ -115,8 +130,85 @@ export function resolveRecoveryNavigationUrl(currentUrl, targetUrl, hostPatterns
115
130
  }
116
131
  return isUrlAllowed(currentUrl, hostPatterns) ? undefined : targetUrl;
117
132
  }
118
- export function shouldEndOwnerSessionAfterPageClose(headless, openPageCount) {
119
- return !headless && openPageCount === 0;
133
+ function readAuthState(value) {
134
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
135
+ return undefined;
136
+ }
137
+ const state = value.state;
138
+ if (state === "authenticated" || state === "auth_required" || state === "challenge_required") {
139
+ return state;
140
+ }
141
+ return undefined;
142
+ }
143
+ export function shouldDeferBridgeForAuthState(state) {
144
+ return state === "auth_required" || state === "challenge_required";
145
+ }
146
+ export function shouldEndOwnerSessionAfterPageClose(presentationMode, openPageCount) {
147
+ return presentationMode === "headed" && openPageCount === 0;
148
+ }
149
+ export function selectPreferredPage(pages, targetUrl, hostPatterns) {
150
+ const openPages = pages.filter((entry) => !entry.isClosed());
151
+ if (openPages.length === 0) {
152
+ return undefined;
153
+ }
154
+ const exactTargetPage = openPages.find((entry) => entry.url() === targetUrl);
155
+ if (exactTargetPage) {
156
+ return exactTargetPage;
157
+ }
158
+ let targetHost = "";
159
+ try {
160
+ targetHost = new URL(targetUrl).hostname;
161
+ }
162
+ catch {
163
+ // Ignore target URL parsing failures here; caller already validates targetUrl separately.
164
+ }
165
+ if (targetHost) {
166
+ const exactHostPage = openPages.find((entry) => {
167
+ try {
168
+ return new URL(entry.url()).hostname === targetHost;
169
+ }
170
+ catch {
171
+ return false;
172
+ }
173
+ });
174
+ if (exactHostPage) {
175
+ return exactHostPage;
176
+ }
177
+ }
178
+ const allowedHostPage = openPages.find((entry) => isUrlAllowed(entry.url(), hostPatterns));
179
+ if (allowedHostPage) {
180
+ return allowedHostPage;
181
+ }
182
+ return openPages[0];
183
+ }
184
+ export async function detectExternalPresentationMode(context, page, fallbackMode) {
185
+ const chromiumContext = context;
186
+ if (typeof chromiumContext.newCDPSession !== "function") {
187
+ return fallbackMode;
188
+ }
189
+ const session = await chromiumContext.newCDPSession(page);
190
+ try {
191
+ await session.send("Browser.getWindowForTarget");
192
+ return "headed";
193
+ }
194
+ catch {
195
+ try {
196
+ const version = (await session.send("Browser.getVersion"));
197
+ const markers = [version.product, version.userAgent].filter((value) => typeof value === "string");
198
+ if (markers.some((value) => value.includes("HeadlessChrome"))) {
199
+ return "headless";
200
+ }
201
+ }
202
+ catch {
203
+ // Fall back to the requested presentation mode when browser-level detection is unavailable.
204
+ }
205
+ return fallbackMode;
206
+ }
207
+ finally {
208
+ await session.detach?.().catch(() => {
209
+ // Best-effort cleanup for capability probing.
210
+ });
211
+ }
120
212
  }
121
213
  function resolveBrowserType(browser) {
122
214
  if (browser === "firefox") {
@@ -166,24 +258,40 @@ export async function startLocalMcpRuntime(options) {
166
258
  const site = options.siteDefinition;
167
259
  const browserEngine = options.browser ?? "chromium";
168
260
  const browserChannel = options.browserChannel;
169
- const headless = options.headless ?? false;
261
+ const browserUrl = options.browserUrl;
262
+ const preferredPresentationMode = options.preferredPresentationMode ?? "headed";
170
263
  if (browserChannel && browserEngine !== "chromium") {
171
264
  throw new Error(`CONFIG_ERROR: --browser-channel requires --browser chromium (received ${browserEngine})`);
172
265
  }
266
+ if (browserUrl && browserEngine !== "chromium") {
267
+ throw new Error(`CONFIG_ERROR: --browser-url requires --browser chromium (received ${browserEngine})`);
268
+ }
269
+ if (browserUrl && browserChannel) {
270
+ throw new Error("CONFIG_ERROR: --browser-url cannot be combined with --browser-channel");
271
+ }
272
+ if (options.chromiumLoginWorkaround && browserEngine !== "chromium") {
273
+ throw new Error(`CONFIG_ERROR: --chromium-login-workaround requires --browser chromium (received ${browserEngine})`);
274
+ }
275
+ if (browserUrl && options.chromiumLoginWorkaround) {
276
+ throw new Error("CONFIG_ERROR: --browser-url cannot be combined with --chromium-login-workaround");
277
+ }
173
278
  const browserType = resolveBrowserType(browserEngine);
174
279
  const targetUrl = resolveTargetUrl(options.url, site.manifest.defaultUrl);
280
+ const controlMode = browserUrl ? "attach" : "launch";
175
281
  if (!isUrlAllowed(targetUrl, site.manifest.hostPatterns)) {
176
282
  throw new Error("URL_NOT_ALLOWED: target url host is not allowed by adapter hostPatterns");
177
283
  }
178
284
  let profileDirFromTemp = false;
179
- const userDataDir = options.userDataDir ?? (await mkdtemp(join(tmpdir(), "webmcp-local-mcp-")));
180
- if (!options.userDataDir) {
285
+ const userDataDir = browserUrl ? undefined : (options.userDataDir ?? (await mkdtemp(join(tmpdir(), "webmcp-local-mcp-"))));
286
+ if (!browserUrl && !options.userDataDir) {
181
287
  profileDirFromTemp = true;
182
288
  }
289
+ let browser;
183
290
  let context;
184
291
  let currentPage;
185
292
  let currentGatewaySession;
186
293
  let currentMode = "native";
294
+ let currentPresentationMode = preferredPresentationMode;
187
295
  let gatewayStale = false;
188
296
  let runtimeClosing = false;
189
297
  let pageLifecycleCleanup;
@@ -205,11 +313,23 @@ export async function startLocalMcpRuntime(options) {
205
313
  await currentGatewaySession?.close().catch(() => {
206
314
  // Cleanup should be best-effort when process is terminating.
207
315
  });
316
+ if (deferredAdapterStarted && deferredAdapter && currentPage && !currentPage.isClosed()) {
317
+ await deferredAdapter.stop?.({ page: currentPage }).catch(() => {
318
+ // Cleanup should be best-effort when process is terminating.
319
+ });
320
+ }
208
321
  pageGatewayResourceCleanup?.();
209
322
  pageLifecycleCleanup?.();
210
- await context?.close().catch(() => {
211
- // Cleanup should be best-effort when process is terminating.
212
- });
323
+ if (browser) {
324
+ await browser.close().catch(() => {
325
+ // Cleanup should be best-effort when process is terminating.
326
+ });
327
+ }
328
+ else {
329
+ await context?.close().catch(() => {
330
+ // Cleanup should be best-effort when process is terminating.
331
+ });
332
+ }
213
333
  if (profileDirFromTemp) {
214
334
  await rm(userDataDir, { recursive: true, force: true }).catch(() => {
215
335
  // Cleanup should be best-effort when process is terminating.
@@ -223,6 +343,56 @@ export async function startLocalMcpRuntime(options) {
223
343
  if (fallbackAdapterFactory) {
224
344
  gatewayOptions.fallbackAdapter = fallbackAdapterFactory();
225
345
  }
346
+ const authPolicy = resolveAuthPolicy(site.manifest);
347
+ const authProbeTool = authPolicy.authProbeTool;
348
+ const deferBridgeUntilAuthenticated = authPolicy.mode === "bootstrap_then_attach" &&
349
+ authPolicy.allowAnonymousTools &&
350
+ typeof authProbeTool === "string" &&
351
+ authProbeTool.length > 0 &&
352
+ typeof fallbackAdapterFactory === "function";
353
+ let deferredAdapter;
354
+ let deferredAdapterStarted = false;
355
+ const ensureDeferredAdapterStarted = async (page) => {
356
+ if (!deferBridgeUntilAuthenticated) {
357
+ return undefined;
358
+ }
359
+ if (!deferredAdapter && fallbackAdapterFactory) {
360
+ deferredAdapter = fallbackAdapterFactory();
361
+ }
362
+ if (!deferredAdapter) {
363
+ return undefined;
364
+ }
365
+ if (!deferredAdapterStarted) {
366
+ await deferredAdapter.start?.({ page });
367
+ deferredAdapterStarted = true;
368
+ }
369
+ return deferredAdapter;
370
+ };
371
+ const callDeferredAdapterTool = async (page, name, input) => {
372
+ const adapter = await ensureDeferredAdapterStarted(page);
373
+ if (!adapter) {
374
+ throw new Error("SESSION_NOT_AVAILABLE: fallback adapter is unavailable");
375
+ }
376
+ return await adapter.callTool({ name, input }, { page });
377
+ };
378
+ const listDeferredAdapterTools = async (page) => {
379
+ const adapter = await ensureDeferredAdapterStarted(page);
380
+ if (!adapter) {
381
+ return [];
382
+ }
383
+ const tools = await adapter.listTools({ page });
384
+ return tools.map((tool) => ({
385
+ ...tool,
386
+ inputSchema: tool.inputSchema ?? { type: "object" },
387
+ }));
388
+ };
389
+ const shouldDeferGatewayCreation = async (page) => {
390
+ if (!deferBridgeUntilAuthenticated || !authProbeTool) {
391
+ return false;
392
+ }
393
+ const result = await callDeferredAdapterTool(page, authProbeTool, {});
394
+ return shouldDeferBridgeForAuthState(readAuthState(result));
395
+ };
226
396
  const initializePageSession = async (navigate = true) => {
227
397
  if (!context) {
228
398
  throw new Error("SESSION_NOT_AVAILABLE: browser context is unavailable");
@@ -231,7 +401,7 @@ export async function startLocalMcpRuntime(options) {
231
401
  // Session replacement should be best-effort.
232
402
  });
233
403
  currentGatewaySession = undefined;
234
- const reusablePage = context.pages().find((entry) => !entry.isClosed());
404
+ const reusablePage = selectPreferredPage(context.pages(), targetUrl, site.manifest.hostPatterns);
235
405
  currentPage = reusablePage ?? (await context.newPage());
236
406
  pageLifecycleCleanup?.();
237
407
  const pageForEvents = currentPage;
@@ -245,7 +415,7 @@ export async function startLocalMcpRuntime(options) {
245
415
  return;
246
416
  }
247
417
  const openPageCount = context?.pages().filter((entry) => !entry.isClosed()).length ?? 0;
248
- if (shouldEndOwnerSessionAfterPageClose(headless, openPageCount)) {
418
+ if (shouldEndOwnerSessionAfterPageClose(currentPresentationMode, openPageCount)) {
249
419
  signalOwnerSessionEnded();
250
420
  }
251
421
  });
@@ -264,7 +434,7 @@ export async function startLocalMcpRuntime(options) {
264
434
  };
265
435
  if (navigate) {
266
436
  try {
267
- await currentPage.goto(targetUrl, {
437
+ await pageForEvents.goto(targetUrl, {
268
438
  waitUntil: "domcontentloaded",
269
439
  timeout: NAVIGATION_TIMEOUT_MS,
270
440
  });
@@ -273,7 +443,14 @@ export async function startLocalMcpRuntime(options) {
273
443
  throw mapNavigationError(error, targetUrl, "goto");
274
444
  }
275
445
  }
276
- currentGatewaySession = await createWebMcpPageGateway(currentPage, gatewayOptions);
446
+ if (await shouldDeferGatewayCreation(pageForEvents)) {
447
+ pageGatewayResourceCleanup?.();
448
+ pageGatewayResourceCleanup = undefined;
449
+ currentMode = deferredAdapter ? "adapter-shim" : "polyfill";
450
+ gatewayStale = false;
451
+ return;
452
+ }
453
+ currentGatewaySession = await createWebMcpPageGateway(pageForEvents, gatewayOptions);
277
454
  pageGatewayResourceCleanup?.();
278
455
  pageGatewayResourceCleanup = currentGatewaySession.onResourceUpdated((uri) => {
279
456
  for (const listener of resourceUpdatedListeners) {
@@ -282,7 +459,7 @@ export async function startLocalMcpRuntime(options) {
282
459
  });
283
460
  if (navigate && currentGatewaySession.mode === "polyfill") {
284
461
  try {
285
- await currentPage.reload({
462
+ await pageForEvents.reload({
286
463
  waitUntil: "domcontentloaded",
287
464
  timeout: NAVIGATION_TIMEOUT_MS,
288
465
  });
@@ -334,15 +511,38 @@ export async function startLocalMcpRuntime(options) {
334
511
  return await operation();
335
512
  }
336
513
  };
514
+ const maybeEnsureGatewaySession = async () => {
515
+ if (!currentPage || currentPage.isClosed()) {
516
+ throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
517
+ }
518
+ if (currentGatewaySession && !gatewayStale) {
519
+ return true;
520
+ }
521
+ await rebuildGatewaySession();
522
+ return Boolean(currentGatewaySession);
523
+ };
337
524
  try {
338
- const launchOptions = browserEngine === "chromium"
339
- ? createChromiumLaunchOptions(headless, browserChannel)
340
- : {
341
- headless,
342
- viewport: null,
343
- };
344
- context = await launchPersistentContextWithRetry(browserType, userDataDir, launchOptions);
525
+ if (browserUrl) {
526
+ const attachedSession = await connectToExternalBrowserContext(browserUrl);
527
+ browser = attachedSession.browser;
528
+ context = attachedSession.context;
529
+ }
530
+ else {
531
+ const launchOptions = browserEngine === "chromium"
532
+ ? createChromiumLaunchOptions(preferredPresentationMode, browserChannel, options.chromiumLoginWorkaround)
533
+ : {
534
+ headless: preferredPresentationMode === "headless",
535
+ viewport: null,
536
+ };
537
+ context = await launchPersistentContextWithRetry(browserType, userDataDir, launchOptions);
538
+ }
345
539
  await initializePageSession();
540
+ if (browserUrl && context && currentPage && options.browserUrlOrigin !== "managed") {
541
+ currentPresentationMode = await detectExternalPresentationMode(context, currentPage, preferredPresentationMode);
542
+ }
543
+ else {
544
+ currentPresentationMode = preferredPresentationMode;
545
+ }
346
546
  let closed = false;
347
547
  const close = async () => {
348
548
  if (closed) {
@@ -353,8 +553,8 @@ export async function startLocalMcpRuntime(options) {
353
553
  await cleanup();
354
554
  };
355
555
  const openWindow = async () => {
356
- if (headless) {
357
- throw new Error("UNSUPPORTED_IN_HEADLESS_SESSION: bridge.open requires a headed local-mcp session. Start the bridge with --no-headless.");
556
+ if (currentPresentationMode === "headless") {
557
+ throw new Error("UNSUPPORTED_IN_HEADLESS_SESSION: bridge.open requires a headed browser session. For managed sessions, use bridge.session.mode.set({ mode: \"headed\" }) or start the bridge with --no-headless. For external attach sessions, connect to a headed external browser instead of a headless one.");
358
558
  }
359
559
  if (!currentPage || currentPage.isClosed()) {
360
560
  await initializePageSession(true);
@@ -364,35 +564,45 @@ export async function startLocalMcpRuntime(options) {
364
564
  await currentPage.bringToFront();
365
565
  return "opened";
366
566
  }
367
- if (gatewayStale || !currentGatewaySession) {
368
- await rebuildGatewaySession();
369
- }
567
+ await maybeEnsureGatewaySession();
370
568
  await currentPage.bringToFront();
371
569
  return "focused";
372
570
  };
373
571
  const gateway = {
374
572
  listTools: async () => {
375
- if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
573
+ if (!currentPage || currentPage.isClosed()) {
376
574
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
377
575
  }
576
+ if (!(await maybeEnsureGatewaySession())) {
577
+ return await listDeferredAdapterTools(currentPage);
578
+ }
378
579
  return await withGatewayRecovery(async () => await currentGatewaySession.listTools());
379
580
  },
380
581
  callTool: async (name, input) => {
381
- if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
582
+ if (!currentPage || currentPage.isClosed()) {
382
583
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
383
584
  }
585
+ if (!(await maybeEnsureGatewaySession())) {
586
+ return await callDeferredAdapterTool(currentPage, name, input);
587
+ }
384
588
  return await withGatewayRecovery(async () => await currentGatewaySession.callTool(name, input));
385
589
  },
386
590
  listResources: async () => {
387
- if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
591
+ if (!currentPage || currentPage.isClosed()) {
388
592
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
389
593
  }
594
+ if (!(await maybeEnsureGatewaySession())) {
595
+ return [];
596
+ }
390
597
  return await withGatewayRecovery(async () => await currentGatewaySession.listResources());
391
598
  },
392
599
  readResource: async (uri) => {
393
- if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
600
+ if (!currentPage || currentPage.isClosed()) {
394
601
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
395
602
  }
603
+ if (!(await maybeEnsureGatewaySession())) {
604
+ throw new Error(`RESOURCE_NOT_FOUND: ${uri}`);
605
+ }
396
606
  return await withGatewayRecovery(async () => await currentGatewaySession.readResource(uri));
397
607
  },
398
608
  onResourceUpdated: (listener) => {
@@ -410,10 +620,13 @@ export async function startLocalMcpRuntime(options) {
410
620
  get targetUrl() {
411
621
  return targetUrl;
412
622
  },
623
+ controlMode,
413
624
  get mode() {
414
625
  return currentMode;
415
626
  },
416
- headless,
627
+ get presentationMode() {
628
+ return currentPresentationMode;
629
+ },
417
630
  get page() {
418
631
  return currentPage;
419
632
  },
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  import type { JsonValue } from "@webmcp-bridge/core";
6
6
  import type { WebMcpResourceDefinition, WebMcpToolDefinition } from "@webmcp-bridge/playwright";
7
7
  import type { Readable, Writable } from "node:stream";
8
+ import type { BridgeAuthState, BridgeControlMode, BridgePresentationMode, BridgeSessionOwnership, BridgeSessionState } from "./session.js";
8
9
  export type LocalMcpGateway = {
9
10
  listTools: () => Promise<ReadonlyArray<WebMcpToolDefinition>>;
10
11
  callTool: (name: string, input: Record<string, unknown>) => Promise<JsonValue>;
@@ -12,14 +13,33 @@ export type LocalMcpGateway = {
12
13
  readResource: (uri: string) => Promise<JsonValue>;
13
14
  onResourceUpdated: (listener: (uri: string) => void) => () => void;
14
15
  };
16
+ export type LocalBridgeState = {
17
+ site: string;
18
+ targetUrl: string;
19
+ controlMode: BridgeControlMode;
20
+ browserUrl?: string;
21
+ mode: "native" | "polyfill" | "adapter-shim" | "control-only";
22
+ presentationMode: BridgePresentationMode;
23
+ preferredPresentationMode: BridgePresentationMode;
24
+ authPolicyMode: "none" | "bootstrap_then_attach";
25
+ authState: BridgeAuthState;
26
+ sessionState: BridgeSessionState;
27
+ ownership: BridgeSessionOwnership;
28
+ profilePath?: string;
29
+ browserPid?: number;
30
+ lastBackupPath?: string;
31
+ };
32
+ export type LocalBridgePresentationModeSetOptions = {
33
+ presentationMode: BridgePresentationMode;
34
+ };
15
35
  export type LocalBridgeControl = {
16
- getState: () => {
17
- site: string;
18
- targetUrl: string;
19
- mode: "native" | "polyfill" | "adapter-shim";
20
- headless: boolean;
21
- };
36
+ getState: () => LocalBridgeState;
22
37
  openWindow: () => Promise<"focused" | "opened">;
38
+ bootstrapSession: () => Promise<LocalBridgeState>;
39
+ attachSession: (browserUrl?: string) => Promise<LocalBridgeState>;
40
+ getPresentationMode: () => BridgePresentationMode;
41
+ setPresentationMode: (options: LocalBridgePresentationModeSetOptions) => Promise<LocalBridgeState>;
42
+ resetProfile: () => Promise<LocalBridgeState>;
23
43
  closeBridge: () => Promise<void>;
24
44
  };
25
45
  export type LocalMcpStdioServerOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAYrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/E,aAAa,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACtE,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACpE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;QAC7C,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IAChD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AA0WF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,mBAAmB,CAElG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}