@tom2012/cc-web 2026.5.24-a → 2026.5.24-b

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.
Files changed (24) hide show
  1. package/README.md +1 -1
  2. package/backend/dist/__tests__/browser-proxy.test.js +81 -47
  3. package/backend/dist/__tests__/browser-proxy.test.js.map +1 -1
  4. package/backend/dist/routes/browser-proxy.d.ts +16 -4
  5. package/backend/dist/routes/browser-proxy.d.ts.map +1 -1
  6. package/backend/dist/routes/browser-proxy.js +78 -41
  7. package/backend/dist/routes/browser-proxy.js.map +1 -1
  8. package/frontend/dist/assets/{ChatOverlay-W-pSFHsV.js → ChatOverlay-Cm7M9uTo.js} +1 -1
  9. package/frontend/dist/assets/{GraphPreview-CcuxUzQH.js → GraphPreview-Bu-zdWO0.js} +1 -1
  10. package/frontend/dist/assets/{MobilePage-DEBO3i1o.js → MobilePage-DHSd8DBY.js} +3 -3
  11. package/frontend/dist/assets/{OfficePreview-DY-ew_ex.js → OfficePreview-CKOQ-aQd.js} +2 -2
  12. package/frontend/dist/assets/{PdfPreview-Bl0MS_5m.js → PdfPreview-G8fpvo6_.js} +1 -1
  13. package/frontend/dist/assets/{ProjectPage-tcwSSEFX.js → ProjectPage-D8O-uvJ3.js} +4 -4
  14. package/frontend/dist/assets/{SettingsPage-DU649aEa.js → SettingsPage-a3v0GKkG.js} +1 -1
  15. package/frontend/dist/assets/{SkillHubPage-hH5XcB57.js → SkillHubPage-BcohQzQq.js} +1 -1
  16. package/frontend/dist/assets/{chevron-down-B3q2CU-d.js → chevron-down-BjD1KDpf.js} +1 -1
  17. package/frontend/dist/assets/{index-DsYny3RQ.js → index-BxSzFzfM.js} +1 -1
  18. package/frontend/dist/assets/{index-nYsy3LMF.js → index-Fi22OrSt.js} +2 -2
  19. package/frontend/dist/assets/{index-CZOz50el.js → index-dlR56s5t.js} +1 -1
  20. package/frontend/dist/assets/{jszip.min-9o6zKk8v.js → jszip.min-j8-Zud6N.js} +1 -1
  21. package/frontend/dist/assets/{search-B9B3Cq4V.js → search-CfhpkpXs.js} +1 -1
  22. package/frontend/dist/assets/{select-BOLkADQv.js → select-nwQBXqLw.js} +1 -1
  23. package/frontend/dist/index.html +1 -1
  24. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A self-hosted web application (distributed as npm package) that provides a browser-based interface for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI sessions. Create projects, each with a persistent terminal running Claude Code, and interact with them through a real-time terminal UI.
4
4
 
5
- **Current version**: v2026.5.24-a | [GitHub](https://github.com/zbc0315/cc-web) | MIT License
5
+ **Current version**: v2026.5.24-b | [GitHub](https://github.com/zbc0315/cc-web) | MIT License
6
6
 
7
7
  ## Features
8
8
 
@@ -42,13 +42,14 @@ const http = __importStar(require("http"));
42
42
  const jwt = __importStar(require("jsonwebtoken"));
43
43
  const browser_proxy_1 = __importStar(require("../routes/browser-proxy"));
44
44
  const config_1 = require("../config");
45
- // Mint a valid browser-proxy session cookie using the real jwt secret —
46
- // the test machine has a config.json so getConfig() works. CI without
47
- // config would skip these e2e tests.
48
- function mintProxyCookie() {
45
+ // Mint a valid browser-proxy session token using the real jwt secret —
46
+ // the test machine has a config.json so getConfig() works.
47
+ function mintProxyToken() {
49
48
  const config = (0, config_1.getConfig)();
50
- const token = jwt.sign({ username: 'test', typ: 'browser-proxy' }, config.jwtSecret, { expiresIn: '1h' });
51
- return `ccweb_bp=${encodeURIComponent(token)}`;
49
+ return jwt.sign({ username: 'test', typ: 'browser-proxy' }, config.jwtSecret, { expiresIn: '1h' });
50
+ }
51
+ function tok() {
52
+ return `_bp_tok=${encodeURIComponent(mintProxyToken())}`;
52
53
  }
53
54
  (0, vitest_1.describe)('parseHostport', () => {
54
55
  (0, vitest_1.it)('接受 host:port (http only)', () => {
@@ -134,69 +135,94 @@ function mintProxyCookie() {
134
135
  });
135
136
  (0, vitest_1.describe)('rewriteHtml', () => {
136
137
  const prefix = '/api/browser-proxy/127.0.0.1:8080';
137
- (0, vitest_1.it)('重写 src/href/action 的 root-absolute path', () => {
138
+ const T = 'TESTTOK';
139
+ (0, vitest_1.it)('重写 src/href/action 的 root-absolute path 并带上 token', () => {
138
140
  const input = '<script src="/main.js"></script><a href="/about">x</a><form action="/login">';
139
- const out = (0, browser_proxy_1.rewriteHtml)(input, prefix);
140
- (0, vitest_1.expect)(out).toContain('src="/api/browser-proxy/127.0.0.1:8080/main.js"');
141
- (0, vitest_1.expect)(out).toContain('href="/api/browser-proxy/127.0.0.1:8080/about"');
142
- (0, vitest_1.expect)(out).toContain('action="/api/browser-proxy/127.0.0.1:8080/login"');
141
+ const out = (0, browser_proxy_1.rewriteHtml)(input, prefix, T);
142
+ (0, vitest_1.expect)(out).toContain('src="/api/browser-proxy/127.0.0.1:8080/main.js?_bp_tok=TESTTOK"');
143
+ (0, vitest_1.expect)(out).toContain('href="/api/browser-proxy/127.0.0.1:8080/about?_bp_tok=TESTTOK"');
144
+ (0, vitest_1.expect)(out).toContain('action="/api/browser-proxy/127.0.0.1:8080/login?_bp_tok=TESTTOK"');
145
+ });
146
+ (0, vitest_1.it)('已有 query string 用 & 拼 token', () => {
147
+ const input = '<a href="/foo?x=1">';
148
+ const out = (0, browser_proxy_1.rewriteHtml)(input, prefix, T);
149
+ (0, vitest_1.expect)(out).toContain('href="/api/browser-proxy/127.0.0.1:8080/foo?x=1&_bp_tok=TESTTOK"');
143
150
  });
144
151
  (0, vitest_1.it)('strip 上游 <base href> 避免覆盖代理路径', () => {
145
152
  const input = '<head><base href="/"><base href="https://other.example/"></head><body></body>';
146
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix)).toBe('<head></head><body></body>');
153
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix, T)).toBe('<head></head><body></body>');
147
154
  });
148
155
  (0, vitest_1.it)('protocol-relative (//) 不改', () => {
149
156
  const input = '<img src="//cdn.example.com/x.png">';
150
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix)).toBe(input);
157
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix, T)).toBe(input);
151
158
  });
152
159
  (0, vitest_1.it)('相对路径不改', () => {
153
160
  const input = '<img src="foo/bar.png"><a href="../other">x</a>';
154
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix)).toBe(input);
161
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix, T)).toBe(input);
155
162
  });
156
163
  (0, vitest_1.it)('绝对 URL 不改', () => {
157
164
  const input = '<a href="https://example.com/path">x</a>';
158
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix)).toBe(input);
165
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix, T)).toBe(input);
159
166
  });
160
167
  (0, vitest_1.it)('单引号 attribute 也支持', () => {
161
168
  const input = "<a href='/foo'>";
162
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix)).toContain("href='/api/browser-proxy/127.0.0.1:8080/foo'");
169
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteHtml)(input, prefix, T)).toContain("href='/api/browser-proxy/127.0.0.1:8080/foo?_bp_tok=TESTTOK'");
163
170
  });
164
171
  });
165
172
  (0, vitest_1.describe)('rewriteLocationHeader', () => {
166
173
  const parsed = { host: '127.0.0.1', port: 8080 };
167
174
  const prefix = '/api/browser-proxy/127.0.0.1:8080';
168
- (0, vitest_1.it)('absolute redirect 同 scheme/host/port → 重写为 proxy URL', () => {
169
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('http://127.0.0.1:8080/new-path?x=1', parsed, prefix))
170
- .toBe('/api/browser-proxy/127.0.0.1:8080/new-path?x=1');
175
+ const T = 'TESTTOK';
176
+ (0, vitest_1.it)('absolute redirect 同 scheme/host/port → 重写为 proxy URL 并带 token', () => {
177
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('http://127.0.0.1:8080/new-path?x=1', parsed, prefix, T))
178
+ .toBe('/api/browser-proxy/127.0.0.1:8080/new-path?x=1&_bp_tok=TESTTOK');
171
179
  });
172
180
  (0, vitest_1.it)('absolute redirect 不同 scheme → 原样保留(防协议混淆)', () => {
173
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('https://127.0.0.1:8080/foo', parsed, prefix))
181
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('https://127.0.0.1:8080/foo', parsed, prefix, T))
174
182
  .toBe('https://127.0.0.1:8080/foo');
175
183
  });
176
184
  (0, vitest_1.it)('absolute redirect 不同 host → 原样保留', () => {
177
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('http://other.example/foo', parsed, prefix))
185
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('http://other.example/foo', parsed, prefix, T))
178
186
  .toBe('http://other.example/foo');
179
187
  });
180
- (0, vitest_1.it)('root-relative redirect → 加前缀', () => {
181
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('/foo?x=1', parsed, prefix))
182
- .toBe('/api/browser-proxy/127.0.0.1:8080/foo?x=1');
188
+ (0, vitest_1.it)('root-relative redirect → 加前缀 + token', () => {
189
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('/foo?x=1', parsed, prefix, T))
190
+ .toBe('/api/browser-proxy/127.0.0.1:8080/foo?x=1&_bp_tok=TESTTOK');
183
191
  });
184
192
  (0, vitest_1.it)('protocol-relative (//) → 不改', () => {
185
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('//cdn.example/x', parsed, prefix))
193
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('//cdn.example/x', parsed, prefix, T))
186
194
  .toBe('//cdn.example/x');
187
195
  });
188
196
  (0, vitest_1.it)('纯相对路径 → 不改', () => {
189
- (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('foo/bar', parsed, prefix))
197
+ (0, vitest_1.expect)((0, browser_proxy_1.rewriteLocationHeader)('foo/bar', parsed, prefix, T))
190
198
  .toBe('foo/bar');
191
199
  });
192
200
  });
201
+ (0, vitest_1.describe)('stripTokenFromSubPath', () => {
202
+ (0, vitest_1.it)('移除 _bp_tok 不留空 query', () => {
203
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo?_bp_tok=abc')).toBe('/foo');
204
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo?_bp_tok=abc#hash')).toBe('/foo#hash');
205
+ });
206
+ (0, vitest_1.it)('保留其它 query', () => {
207
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo?x=1&_bp_tok=abc&y=2')).toBe('/foo?x=1&y=2');
208
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo?_bp_tok=abc&x=1')).toBe('/foo?x=1');
209
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo?x=1&_bp_tok=abc')).toBe('/foo?x=1');
210
+ });
211
+ (0, vitest_1.it)('没 token 不动', () => {
212
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo')).toBe('/foo');
213
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/foo?x=1')).toBe('/foo?x=1');
214
+ (0, vitest_1.expect)((0, browser_proxy_1.stripTokenFromSubPath)('/')).toBe('/');
215
+ });
216
+ });
193
217
  (0, vitest_1.describe)('e2e: browser-proxy router 跑通本地 dummy server', () => {
194
218
  let upstream;
195
219
  let upstreamPort = 0;
196
220
  let proxy;
197
221
  let proxyPort = 0;
222
+ const upstreamSeenUrls = [];
198
223
  (0, vitest_1.beforeAll)(async () => {
199
224
  upstream = http.createServer((req, res) => {
225
+ upstreamSeenUrls.push(req.url || '');
200
226
  if (req.url === '/index.html') {
201
227
  res.writeHead(200, {
202
228
  'Content-Type': 'text/html; charset=utf-8',
@@ -232,26 +258,25 @@ function mintProxyCookie() {
232
258
  await new Promise((resolve) => upstream.close(() => resolve()));
233
259
  await new Promise((resolve) => proxy.close(() => resolve()));
234
260
  });
235
- const withCookie = (path, init) => fetch(`http://127.0.0.1:${proxyPort}${path}`, { ...(init ?? {}), headers: { ...(init?.headers ?? {}), Cookie: mintProxyCookie() } });
236
- (0, vitest_1.it)(' cookie 403 (session required)', async () => {
261
+ const withTok = (path, init) => {
262
+ const sep = path.includes('?') ? '&' : '?';
263
+ return fetch(`http://127.0.0.1:${proxyPort}${path}${sep}${tok()}`, init);
264
+ };
265
+ (0, vitest_1.it)('无 token → 403 (session required)', async () => {
237
266
  const r = await fetch(`http://127.0.0.1:${proxyPort}/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html`);
238
267
  (0, vitest_1.expect)(r.status).toBe(403);
239
268
  });
240
- (0, vitest_1.it)('伪造的 cookie (错 typ 或错 secret) → 403', async () => {
269
+ (0, vitest_1.it)('伪造的 token (错 typ 或错 secret) → 403', async () => {
241
270
  const config = (0, config_1.getConfig)();
242
271
  const wrongTyp = jwt.sign({ username: 'x', typ: 'user' }, config.jwtSecret, { expiresIn: '1h' });
243
- const r1 = await fetch(`http://127.0.0.1:${proxyPort}/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html`, {
244
- headers: { Cookie: `ccweb_bp=${encodeURIComponent(wrongTyp)}` },
245
- });
272
+ const r1 = await fetch(`http://127.0.0.1:${proxyPort}/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html?_bp_tok=${encodeURIComponent(wrongTyp)}`);
246
273
  (0, vitest_1.expect)(r1.status).toBe(403);
247
274
  const wrongSecret = jwt.sign({ username: 'x', typ: 'browser-proxy' }, 'not-the-secret', { expiresIn: '1h' });
248
- const r2 = await fetch(`http://127.0.0.1:${proxyPort}/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html`, {
249
- headers: { Cookie: `ccweb_bp=${encodeURIComponent(wrongSecret)}` },
250
- });
275
+ const r2 = await fetch(`http://127.0.0.1:${proxyPort}/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html?_bp_tok=${encodeURIComponent(wrongSecret)}`);
251
276
  (0, vitest_1.expect)(r2.status).toBe(403);
252
277
  });
253
- (0, vitest_1.it)('代理 HTML:strip X-Frame / CSP / Clear-Site-Data + rewrite path + 注入 CSP sandbox', async () => {
254
- const r = await withCookie(`/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html`);
278
+ (0, vitest_1.it)('代理 HTML:strip X-Frame / CSP / Clear-Site-Data + rewrite path + 注入 CSP sandbox + 带 token', async () => {
279
+ const r = await withTok(`/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html`);
255
280
  (0, vitest_1.expect)(r.status).toBe(200);
256
281
  (0, vitest_1.expect)(r.headers.get('x-frame-options')).toBeNull();
257
282
  (0, vitest_1.expect)(r.headers.get('content-security-policy')).toContain('sandbox');
@@ -259,36 +284,45 @@ function mintProxyCookie() {
259
284
  (0, vitest_1.expect)(r.headers.get('content-security-policy')).not.toContain('allow-popups-to-escape-sandbox');
260
285
  (0, vitest_1.expect)(r.headers.get('clear-site-data')).toBeNull();
261
286
  const body = await r.text();
262
- (0, vitest_1.expect)(body).toContain(`href="/api/browser-proxy/127.0.0.1:${upstreamPort}/about"`);
263
- (0, vitest_1.expect)(body).toContain(`src="/api/browser-proxy/127.0.0.1:${upstreamPort}/m.js"`);
287
+ (0, vitest_1.expect)(body).toMatch(new RegExp(`href="/api/browser-proxy/127\\.0\\.0\\.1:${upstreamPort}/about\\?_bp_tok=`));
288
+ (0, vitest_1.expect)(body).toMatch(new RegExp(`src="/api/browser-proxy/127\\.0\\.0\\.1:${upstreamPort}/m\\.js\\?_bp_tok=`));
264
289
  (0, vitest_1.expect)(body).not.toContain('<base');
265
290
  });
266
291
  (0, vitest_1.it)('代理 JS:原样透传不重写', async () => {
267
- const r = await withCookie(`/api/browser-proxy/127.0.0.1:${upstreamPort}/m.js`);
292
+ const r = await withTok(`/api/browser-proxy/127.0.0.1:${upstreamPort}/m.js`);
268
293
  (0, vitest_1.expect)(r.status).toBe(200);
269
294
  (0, vitest_1.expect)(await r.text()).toBe('console.log(1);');
270
295
  });
271
- (0, vitest_1.it)('代理 redirect:root-relative Location 加前缀', async () => {
272
- const r = await withCookie(`/api/browser-proxy/127.0.0.1:${upstreamPort}/redir`, { redirect: 'manual' });
296
+ (0, vitest_1.it)('代理 redirect:root-relative Location 加前缀 + token', async () => {
297
+ const r = await withTok(`/api/browser-proxy/127.0.0.1:${upstreamPort}/redir`, { redirect: 'manual' });
273
298
  (0, vitest_1.expect)(r.status).toBe(302);
274
- (0, vitest_1.expect)(r.headers.get('location')).toBe(`/api/browser-proxy/127.0.0.1:${upstreamPort}/landed`);
299
+ (0, vitest_1.expect)(r.headers.get('location')).toMatch(new RegExp(`^/api/browser-proxy/127\\.0\\.0\\.1:${upstreamPort}/landed\\?_bp_tok=`));
275
300
  });
276
301
  (0, vitest_1.it)('拒绝公网字面量 IP (403)', async () => {
277
- const r = await withCookie('/api/browser-proxy/1.1.1.1:80/');
302
+ const r = await withTok('/api/browser-proxy/1.1.1.1:80/');
278
303
  (0, vitest_1.expect)(r.status).toBe(403);
279
304
  });
280
305
  (0, vitest_1.it)('拒绝 cloud metadata IP (403)', async () => {
281
- const r = await withCookie('/api/browser-proxy/169.254.169.254:80/');
306
+ const r = await withTok('/api/browser-proxy/169.254.169.254:80/');
282
307
  (0, vitest_1.expect)(r.status).toBe(403);
283
308
  });
284
309
  (0, vitest_1.it)('拒绝非法 hostport (400)', async () => {
285
- const r = await withCookie('/api/browser-proxy/not-a-host');
310
+ const r = await withTok('/api/browser-proxy/not-a-host');
286
311
  (0, vitest_1.expect)(r.status).toBe(400);
287
312
  });
288
313
  (0, vitest_1.it)('拒绝黑名单端口 (400)', async () => {
289
- const r = await withCookie('/api/browser-proxy/127.0.0.1:22/');
314
+ const r = await withTok('/api/browser-proxy/127.0.0.1:22/');
290
315
  (0, vitest_1.expect)(r.status).toBe(400);
291
316
  });
317
+ (0, vitest_1.it)('session token 不泄露给上游', async () => {
318
+ upstreamSeenUrls.length = 0;
319
+ await withTok(`/api/browser-proxy/127.0.0.1:${upstreamPort}/index.html`);
320
+ await withTok(`/api/browser-proxy/127.0.0.1:${upstreamPort}/m.js`);
321
+ (0, vitest_1.expect)(upstreamSeenUrls.length).toBeGreaterThan(0);
322
+ for (const u of upstreamSeenUrls) {
323
+ (0, vitest_1.expect)(u).not.toContain('_bp_tok');
324
+ }
325
+ });
292
326
  (0, vitest_1.it)('_session 无 Bearer token → 401', async () => {
293
327
  const r = await fetch(`http://127.0.0.1:${proxyPort}/api/browser-proxy/_session`, { method: 'POST' });
294
328
  (0, vitest_1.expect)(r.status).toBe(401);
@@ -1 +1 @@
1
- {"version":3,"file":"browser-proxy.test.js","sourceRoot":"","sources":["../../src/__tests__/browser-proxy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-proxy.test.js","sourceRoot":"","sources":["../../src/__tests__/browser-proxy.test.ts"],"names":[],"mappings":"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"}
@@ -18,14 +18,26 @@ export declare function isAllowedProxyIp(addr: string): boolean;
18
18
  * DNS-rebinding TOCTOU: callers fetch by IP, not by hostname.
19
19
  */
20
20
  export declare function resolveAllowedTarget(host: string): Promise<string | null>;
21
+ /**
22
+ * Strip `_bp_tok=<jwt>` from a subPath string ("/foo/bar?x=1&_bp_tok=...&y=2#z")
23
+ * so the upstream never sees the session token. Idempotent: missing token
24
+ * is a no-op. Handles token in any query position and an empty resulting
25
+ * query (leaves no orphan "?").
26
+ */
27
+ export declare function stripTokenFromSubPath(subPath: string): string;
21
28
  /**
22
29
  * Rewrite root-relative absolute paths (src/href/action="/...") through
23
30
  * this proxy. Also strip any upstream `<base href="...">` so the original
24
31
  * declaration cannot redirect relative resolution back out to the bare
25
- * ccweb origin. Protocol-relative and relative paths are untouched
26
- * browser resolves them against the iframe URL which is already proxied.
32
+ * ccweb origin. Each rewritten URL carries the session token so the iframe
33
+ * can fetch it without relying on cookies that the sandbox would drop.
34
+ * Protocol-relative and relative paths are untouched — relative URLs are
35
+ * resolved by the browser against the iframe URL (which already has the
36
+ * token in its query), and the browser preserves that query on the resolved
37
+ * URL? No — relative resolution does NOT inherit query. So relative paths
38
+ * within the page will appear without the token. They will fail. v0 limit.
27
39
  */
28
- export declare function rewriteHtml(html: string, prefix: string): string;
29
- export declare function rewriteLocationHeader(loc: string, parsed: ParsedHostport, mountPrefix: string): string;
40
+ export declare function rewriteHtml(html: string, prefix: string, token: string): string;
41
+ export declare function rewriteLocationHeader(loc: string, parsed: ParsedHostport, mountPrefix: string, token: string): string;
30
42
  export default router;
31
43
  //# sourceMappingURL=browser-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-proxy.d.ts","sourceRoot":"","sources":["../../src/routes/browser-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,MAAM,SAAS,CAAC;AAUzD,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;AAgDhC,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAShE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAetD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAa/E;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB,MAAM,CAoBR;AAuLD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"browser-proxy.d.ts","sourceRoot":"","sources":["../../src/routes/browser-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,MAAM,SAAS,CAAC;AAUzD,QAAA,MAAM,MAAM,EAAE,MAAiB,CAAC;AAoDhC,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAShE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAetD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAa/E;AAWD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAa7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAU/E;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,MAAM,CAoBR;AAgLD,eAAe,MAAM,CAAC"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.parseHostport = parseHostport;
37
37
  exports.isAllowedProxyIp = isAllowedProxyIp;
38
38
  exports.resolveAllowedTarget = resolveAllowedTarget;
39
+ exports.stripTokenFromSubPath = stripTokenFromSubPath;
39
40
  exports.rewriteHtml = rewriteHtml;
40
41
  exports.rewriteLocationHeader = rewriteLocationHeader;
41
42
  const express_1 = require("express");
@@ -82,11 +83,15 @@ const UPSTREAM_TIMEOUT_MS = 15000;
82
83
  // 169.254.169.254 = AWS/GCP/Azure metadata. 169.254.170.2 = ECS task role.
83
84
  const BLOCKED_IPS = new Set(['169.254.169.254', '169.254.170.2']);
84
85
  const BLOCKED_HOSTS = new Set(['metadata.google.internal', 'metadata']);
85
- // Cookie issued by /_session and required by the proxy. Path-scoped so it
86
- // never leaks to other ccweb routes; HttpOnly so the proxied iframe's JS
87
- // can't read it; SameSite=Lax because the iframe is loaded same-origin.
88
- const COOKIE_NAME = 'ccweb_bp';
89
- const COOKIE_MAX_AGE_SEC = 60 * 60;
86
+ // Session token presented as ?_bp_tok=<jwt> on every proxy GET. Cookies
87
+ // would have been cleaner but a sandboxed iframe (no allow-same-origin)
88
+ // is treated as opaque origin → SameSite=Lax cookies are NOT sent on
89
+ // subresource requests originating inside the iframe. The query-param
90
+ // approach trades access-log exposure for working sandboxed iframes.
91
+ // Token is stripped before the URL is forwarded upstream so it never
92
+ // reaches the proxied site.
93
+ const TOKEN_QUERY_PARAM = '_bp_tok';
94
+ const SESSION_MAX_AGE_SEC = 60 * 60;
90
95
  function parseHostport(raw) {
91
96
  // v0: http only. IPv6 literals out of scope (path-segment ambiguity).
92
97
  const m = raw.match(/^([a-zA-Z0-9.\-_]+):(\d{1,5})$/);
@@ -156,19 +161,56 @@ async function resolveAllowedTarget(host) {
156
161
  return null;
157
162
  }
158
163
  }
164
+ function appendToken(url, token) {
165
+ // Preserve fragment, insert token into query string.
166
+ const hashIdx = url.indexOf('#');
167
+ const hash = hashIdx >= 0 ? url.slice(hashIdx) : '';
168
+ const beforeHash = hashIdx >= 0 ? url.slice(0, hashIdx) : url;
169
+ const sep = beforeHash.includes('?') ? '&' : '?';
170
+ return `${beforeHash}${sep}${TOKEN_QUERY_PARAM}=${encodeURIComponent(token)}${hash}`;
171
+ }
172
+ /**
173
+ * Strip `_bp_tok=<jwt>` from a subPath string ("/foo/bar?x=1&_bp_tok=...&y=2#z")
174
+ * so the upstream never sees the session token. Idempotent: missing token
175
+ * is a no-op. Handles token in any query position and an empty resulting
176
+ * query (leaves no orphan "?").
177
+ */
178
+ function stripTokenFromSubPath(subPath) {
179
+ const hashIdx = subPath.indexOf('#');
180
+ const hash = hashIdx >= 0 ? subPath.slice(hashIdx) : '';
181
+ const beforeHash = hashIdx >= 0 ? subPath.slice(0, hashIdx) : subPath;
182
+ const qIdx = beforeHash.indexOf('?');
183
+ if (qIdx < 0)
184
+ return subPath;
185
+ const pathPart = beforeHash.slice(0, qIdx);
186
+ const queryPart = beforeHash.slice(qIdx + 1);
187
+ const kept = queryPart
188
+ .split('&')
189
+ .filter((kv) => kv !== '' && !kv.startsWith(`${TOKEN_QUERY_PARAM}=`) && kv !== TOKEN_QUERY_PARAM);
190
+ const newQuery = kept.length > 0 ? `?${kept.join('&')}` : '';
191
+ return `${pathPart}${newQuery}${hash}`;
192
+ }
159
193
  /**
160
194
  * Rewrite root-relative absolute paths (src/href/action="/...") through
161
195
  * this proxy. Also strip any upstream `<base href="...">` so the original
162
196
  * declaration cannot redirect relative resolution back out to the bare
163
- * ccweb origin. Protocol-relative and relative paths are untouched
164
- * browser resolves them against the iframe URL which is already proxied.
197
+ * ccweb origin. Each rewritten URL carries the session token so the iframe
198
+ * can fetch it without relying on cookies that the sandbox would drop.
199
+ * Protocol-relative and relative paths are untouched — relative URLs are
200
+ * resolved by the browser against the iframe URL (which already has the
201
+ * token in its query), and the browser preserves that query on the resolved
202
+ * URL? No — relative resolution does NOT inherit query. So relative paths
203
+ * within the page will appear without the token. They will fail. v0 limit.
165
204
  */
166
- function rewriteHtml(html, prefix) {
205
+ function rewriteHtml(html, prefix, token) {
167
206
  return html
168
207
  .replace(/<base\b[^>]*>/gi, '')
169
- .replace(/\b(src|href|action)\s*=\s*(["'])\/(?!\/)([^"']*)\2/gi, (_, attr, quote, rest) => `${attr}=${quote}${prefix}/${rest}${quote}`);
208
+ .replace(/\b(src|href|action)\s*=\s*(["'])\/(?!\/)([^"']*)\2/gi, (_, attr, quote, rest) => {
209
+ const rewritten = appendToken(`${prefix}/${rest}`, token);
210
+ return `${attr}=${quote}${rewritten}${quote}`;
211
+ });
170
212
  }
171
- function rewriteLocationHeader(loc, parsed, mountPrefix) {
213
+ function rewriteLocationHeader(loc, parsed, mountPrefix, token) {
172
214
  try {
173
215
  const absUrl = new URL(loc);
174
216
  // Same scheme + same host + same port → safe to rewrite. Different
@@ -179,30 +221,20 @@ function rewriteLocationHeader(loc, parsed, mountPrefix) {
179
221
  const sameHost = absUrl.hostname.toLowerCase() === parsed.host;
180
222
  const samePort = Number(absUrl.port || 80) === parsed.port;
181
223
  if (sameProto && sameHost && samePort) {
182
- return `${mountPrefix}${absUrl.pathname}${absUrl.search}${absUrl.hash}`;
224
+ return appendToken(`${mountPrefix}${absUrl.pathname}${absUrl.search}${absUrl.hash}`, token);
183
225
  }
184
226
  return loc;
185
227
  }
186
228
  catch {
187
229
  if (loc.startsWith('/') && !loc.startsWith('//')) {
188
- return `${mountPrefix}${loc}`;
230
+ return appendToken(`${mountPrefix}${loc}`, token);
189
231
  }
190
232
  return loc;
191
233
  }
192
234
  }
193
- function parseCookieHeader(header, name) {
194
- if (!header)
195
- return null;
196
- for (const part of header.split(';')) {
197
- const [k, v] = part.trim().split('=');
198
- if (k === name)
199
- return decodeURIComponent(v ?? '');
200
- }
201
- return null;
202
- }
203
- function hasValidSessionCookie(req) {
204
- const token = parseCookieHeader(req.headers['cookie'], COOKIE_NAME);
205
- if (!token)
235
+ function hasValidSessionToken(req) {
236
+ const token = req.query[TOKEN_QUERY_PARAM];
237
+ if (typeof token !== 'string' || !token)
206
238
  return false;
207
239
  try {
208
240
  const config = (0, config_1.getConfig)();
@@ -236,26 +268,28 @@ function requireBearerAdmin(req, res, next) {
236
268
  next();
237
269
  }
238
270
  /**
239
- * Issues a short-lived cookie that the iframe can present on subsequent
240
- * GETs. The cookie is path-scoped to /api/browser-proxy/, HttpOnly,
241
- * SameSite=Lax so it travels with same-origin iframe requests but
242
- * never leaves the daemon.
271
+ * Issues a short-lived JWT that the frontend attaches as ?_bp_tok=... to
272
+ * the iframe src. We deliberately do NOT use a cookie here — sandboxed
273
+ * iframes (no allow-same-origin) are treated as opaque origins, and Lax
274
+ * cookies are not sent on subresource requests originating inside such
275
+ * iframes. The query-param token is the only way to authenticate iframe
276
+ * subresource fetches without relaxing the sandbox.
243
277
  */
244
278
  router.post('/_session', requireBearerAdmin, (req, res) => {
245
279
  const config = (0, config_1.getConfig)();
246
- const token = jwt.sign({ username: req.user?.username, typ: 'browser-proxy' }, config.jwtSecret, { expiresIn: `${COOKIE_MAX_AGE_SEC}s` });
247
- res.setHeader('Set-Cookie', `${COOKIE_NAME}=${encodeURIComponent(token)}; Path=/api/browser-proxy/; HttpOnly; SameSite=Lax; Max-Age=${COOKIE_MAX_AGE_SEC}`);
248
- res.json({ ok: true, maxAge: COOKIE_MAX_AGE_SEC });
280
+ const token = jwt.sign({ username: req.user?.username, typ: 'browser-proxy' }, config.jwtSecret, { expiresIn: `${SESSION_MAX_AGE_SEC}s` });
281
+ res.json({ token, maxAge: SESSION_MAX_AGE_SEC });
249
282
  });
250
283
  async function handle(req, res) {
251
- // ONLY trust the cookie. Do not fall back to req.user this route is
252
- // mounted without authMiddleware specifically so that localhost
253
- // auto-auth (or any CSRF-able header) cannot reach the proxy. Cookie
254
- // can only be issued by /_session, which requires explicit Bearer admin.
255
- if (!hasValidSessionCookie(req)) {
284
+ // Trust ONLY the query-param session token. Route mounted without
285
+ // authMiddleware so localhost auto-auth / any CSRF-able header cannot
286
+ // reach the proxy. Token can only be issued by POST /_session which
287
+ // requires explicit Bearer admin.
288
+ if (!hasValidSessionToken(req)) {
256
289
  res.status(403).send('Browser proxy session required — call POST /_session first');
257
290
  return;
258
291
  }
292
+ const sessionToken = req.query[TOKEN_QUERY_PARAM];
259
293
  const hostportRaw = req.params['hostport'];
260
294
  if (!hostportRaw) {
261
295
  res.status(400).send('hostport required');
@@ -271,10 +305,13 @@ async function handle(req, res) {
271
305
  res.status(403).send('Target not allowed — must resolve to RFC1918 / loopback (excluding cloud-metadata)');
272
306
  return;
273
307
  }
274
- // req.url is mount-relative: "/127.0.0.1:8080/foo/bar?x=1" or "/127.0.0.1:8080".
308
+ // req.url is mount-relative. Strip hostport segment + the session-token
309
+ // query param before forwarding to upstream (token must NEVER leak to
310
+ // the proxied site).
275
311
  const afterMount = req.url.replace(/^\/+/, '');
276
312
  const slashIdx = afterMount.indexOf('/');
277
- const subPath = slashIdx >= 0 ? afterMount.slice(slashIdx) : '/';
313
+ const rawSubPath = slashIdx >= 0 ? afterMount.slice(slashIdx) : '/';
314
+ const subPath = stripTokenFromSubPath(rawSubPath);
278
315
  // Fetch by resolved IP — pins the connection to the address we just
279
316
  // validated, so DNS rebinding between validation and fetch is harmless.
280
317
  const targetUrl = `http://${resolvedIp}:${parsed.port}${subPath}`;
@@ -303,7 +340,7 @@ async function handle(req, res) {
303
340
  if (STRIPPED_RESPONSE_HEADERS.has(lower))
304
341
  return;
305
342
  if (lower === 'location') {
306
- res.setHeader('Location', rewriteLocationHeader(value, parsed, mountPrefix));
343
+ res.setHeader('Location', rewriteLocationHeader(value, parsed, mountPrefix, sessionToken));
307
344
  return;
308
345
  }
309
346
  res.setHeader(name, value);
@@ -335,7 +372,7 @@ async function handle(req, res) {
335
372
  const buf = Buffer.concat(chunks.map((c) => Buffer.from(c)));
336
373
  if (isHtml) {
337
374
  res.setHeader('Content-Security-Policy', PROXY_HTML_CSP);
338
- const rewritten = rewriteHtml(buf.toString('utf-8'), mountPrefix);
375
+ const rewritten = rewriteHtml(buf.toString('utf-8'), mountPrefix, sessionToken);
339
376
  const out = Buffer.from(rewritten, 'utf-8');
340
377
  res.setHeader('Content-Length', String(out.byteLength));
341
378
  res.end(out);
@@ -1 +1 @@
1
- {"version":3,"file":"browser-proxy.js","sourceRoot":"","sources":["../../src/routes/browser-proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,sCASC;AAQD,4CAeC;AAOD,oDAaC;AASD,kCAOC;AAED,sDAwBC;AA7JD,qCAAyD;AACzD,kDAAoC;AACpC,yCAA2B;AAC3B,kDAAoC;AACpC,kCAAmD;AACnD,sCAAmD;AACnD,sCAAsC;AAEtC,MAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,eAAe,CAAC,CAAC;AAEvC,MAAM,MAAM,GAAW,IAAA,gBAAM,GAAE,CAAC;AAEhC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACxC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;CACjD,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,iBAAiB;IACjB,eAAe;IACf,yBAAyB;IACzB,qCAAqC;IACrC,4BAA4B;IAC5B,8BAA8B;IAC9B,8BAA8B;IAC9B,YAAY;IACZ,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;IAClB,kEAAkE;IAClE,wEAAwE;IACxE,iBAAiB;IACjB,wBAAwB;IACxB,oBAAoB;IACpB,gBAAgB;CACjB,CAAC,CAAC;AAEH,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,eAAe;AACf,MAAM,cAAc,GAAG,gDAAgD,CAAC;AAExE,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,MAAM,mBAAmB,GAAG,KAAM,CAAC;AAEnC,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;AAClE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC,CAAC;AAExE,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,CAAC;AAOnC,SAAgB,aAAa,CAAC,GAAW;IACvC,sEAAsE;IACtE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC7D,IAAI,MAAM;QAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,oEAAoE;IACpE,2DAA2D;IAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,SAAS;IAC1D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CACN,sDAAsD,EACtD,CAAC,CAAC,EAAE,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,EAAE,CAC9F,CAAC;AACN,CAAC;AAED,SAAgB,qBAAqB,CACnC,GAAW,EACX,MAAsB,EACtB,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,mEAAmE;QACnE,qEAAqE;QACrE,iDAAiD;QACjD,MAAM,aAAa,GAAG,OAAO,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC;QAC3D,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACtC,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,OAAO,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA0B,EAAE,IAAY;IACjE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAgB;IAC7C,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAuB,EAAE,WAAW,CAAC,CAAC;IAC1F,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAmB,CAAC;QACtE,OAAO,OAAO,CAAC,GAAG,KAAK,eAAe,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,GAAgB,EAAE,GAAa,EAAE,IAAkB;IAC7E,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,kBAAW,EAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAC,GAAgB,EAAE,GAAa,EAAQ,EAAE;IACrF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CACpB,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,EACtD,MAAM,CAAC,SAAS,EAChB,EAAE,SAAS,EAAE,GAAG,kBAAkB,GAAG,EAAE,CACxC,CAAC;IACF,GAAG,CAAC,SAAS,CACX,YAAY,EACZ,GAAG,WAAW,IAAI,kBAAkB,CAAC,KAAK,CAAC,+DAA+D,kBAAkB,EAAE,CAC/H,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,MAAM,CAAC,GAAgB,EAAE,GAAa;IACnD,sEAAsE;IACtE,gEAAgE;IAChE,qEAAqE;IACrE,yEAAyE;IACzE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAAC,OAAO;IAAC,CAAC;IAExE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QACvG,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QAC3G,OAAO;IACT,CAAC;IAED,iFAAiF;IACjF,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAEjE,oEAAoE;IACpE,wEAAwE;IACxE,MAAM,SAAS,GAAG,UAAU,UAAU,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;IAClE,MAAM,WAAW,GAAG,sBAAsB,WAAW,EAAE,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAChD,OAAO,EAAE;gBACP,yEAAyE;gBACzE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;gBACvC,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,qBAAqB;gBAChE,QAAQ,EAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAY,IAAI,KAAK;gBACpD,iBAAiB,EAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAY,IAAI,IAAI;aACtE;SACF,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,CAAC;QAC1E,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;YACjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE5B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,IAAI,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO;YACjD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzB,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEjD,oEAAoE;QACpE,oEAAoE;QACpE,qCAAqC;QACrC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;gBAC1B,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;oBAC3B,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAChC,IAAI,CAAC,GAAG,CAAC,WAAW;wBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7D,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,cAAc,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC5C,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACxD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACxD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAAyB,EAAE,IAAI,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC;QACtF,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,8BAA8B,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACjC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AAEnC,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"browser-proxy.js","sourceRoot":"","sources":["../../src/routes/browser-proxy.ts"],"names":[],"mappings":"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"}