libre-webui 0.19.2 → 0.19.3
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/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +61 -2
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/routes/artifacts.d.ts +3 -0
- package/backend/dist/routes/artifacts.d.ts.map +1 -0
- package/backend/dist/routes/artifacts.js +167 -0
- package/backend/dist/routes/artifacts.js.map +1 -0
- package/backend/package.json +1 -1
- package/frontend/dist/apple-touch-icon.png +0 -0
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -0
- package/frontend/dist/artifact-runtime/babel.js +613 -0
- package/frontend/dist/artifact-runtime/chart.js +3 -0
- package/frontend/dist/artifact-runtime/d3.js +5 -0
- package/frontend/dist/artifact-runtime/fonts.js +255 -0
- package/frontend/dist/artifact-runtime/framer-motion.js +10 -0
- package/frontend/dist/artifact-runtime/lodash.js +20 -0
- package/frontend/dist/artifact-runtime/lucide-react.js +1 -0
- package/frontend/dist/artifact-runtime/mathjs.js +54 -0
- package/frontend/dist/artifact-runtime/mermaid.js +3535 -0
- package/frontend/dist/artifact-runtime/papaparse.js +10 -0
- package/frontend/dist/artifact-runtime/plotly.js +3790 -0
- package/frontend/dist/artifact-runtime/react.js +9 -0
- package/frontend/dist/artifact-runtime/recharts.js +69 -0
- package/frontend/dist/artifact-runtime/runtime.js +1 -0
- package/frontend/dist/artifact-runtime/tailwind.js +952 -0
- package/frontend/dist/artifact-runtime/three.js +5271 -0
- package/frontend/dist/artifact-runtime/tone.js +210 -0
- package/frontend/dist/assets/index-ZxtmHZ3Y.js +83 -0
- package/frontend/dist/assets/index-mBbb8flG.css +1 -0
- package/frontend/dist/favicon-dark.png +0 -0
- package/frontend/dist/favicon-light.png +0 -0
- package/frontend/dist/favicon.svg +1 -0
- package/frontend/dist/fonts/inter.css +254 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7W0Q5n-wU.woff2 +0 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7W0Q5nw.woff2 +0 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7W0Q5n-wU.woff2 +0 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2 +0 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7W0Q5n-wU.woff2 +0 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7W0Q5n-wU.woff2 +0 -0
- package/frontend/dist/fonts/v20-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7W0Q5n-wU.woff2 +0 -0
- package/frontend/dist/icon-192.png +0 -0
- package/frontend/dist/icon-512.png +0 -0
- package/frontend/dist/index.html +15 -10
- package/frontend/dist/js/ArtifactContainer-DZV5ZT6g.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-BlVBMy6a.js → ArtifactDemoPage-BX6d2sWa.js} +58 -2
- package/frontend/dist/js/ArtifactSandboxFrame-CSDSSxMI.js +151 -0
- package/frontend/dist/js/ArtifactSlideOutPanel-BYy4Yv_U.js +1 -0
- package/frontend/dist/js/ChatPage-Bk1fO2xt.js +16 -0
- package/frontend/dist/js/FirstTimeSetup-ByfcKmYo.js +1 -0
- package/frontend/dist/js/{GalleryPage-BnaFZERr.js → GalleryPage-DLLiZj6X.js} +1 -1
- package/frontend/dist/js/{HomePage-BvpoUzGG.js → HomePage-DHuuGx-r.js} +1 -1
- package/frontend/dist/js/{LibreClawPage-B-6rO5Jl.js → LibreClawPage-BfCXrQ-e.js} +1 -1
- package/frontend/dist/js/{ModelSelector-BV1kuaVg.js → ModelSelector-BET34RYg.js} +1 -1
- package/frontend/dist/js/{ModelsPage-D5H70fs3.js → ModelsPage-BxLpqELH.js} +1 -1
- package/frontend/dist/js/{NotesPage-D9b3JxCx.js → NotesPage-BC62unJU.js} +1 -1
- package/frontend/dist/js/{PersonasPage-CJOGnyQV.js → PersonasPage-BsOyNy8l.js} +2 -2
- package/frontend/dist/js/{PluginUsagePage-DHNMWquK.js → PluginUsagePage-CLpKYGwg.js} +1 -1
- package/frontend/dist/js/{RichMessageContent-C7NG7gs-.js → RichMessageContent-BTcjK7f1.js} +1 -1
- package/frontend/dist/js/SettingsModal-ao0lVJHy.js +1 -0
- package/frontend/dist/js/{SystemPage-BsPen2Qb.js → SystemPage-ZMCqqgBt.js} +1 -1
- package/frontend/dist/js/{UserManagementPage-I9i5r0V3.js → UserManagementPage-6PsAs-Uy.js} +1 -1
- package/frontend/dist/js/WorkPage-t7NVWt81.js +5 -0
- package/frontend/dist/js/api-F_fsjYA7.js +19 -0
- package/frontend/dist/js/{appStore-CLIS0fvz.js → appStore-ne0eCPTX.js} +2 -2
- package/frontend/dist/js/{authStore-CsCkBmaG.js → authStore-DqsiGpyN.js} +1 -1
- package/frontend/dist/js/{chatStore-DRY8C0J1.js → chatStore-DRg2vRDS.js} +2 -2
- package/frontend/dist/js/config-DZsEwEPX.js +1 -0
- package/frontend/dist/js/{estree-CrfVSazx.js → estree-CWs-Kavs.js} +1 -1
- package/frontend/dist/js/{html-BbJLJMaV.js → html-DrDcdqPC.js} +1 -1
- package/frontend/dist/js/{markdown-DiMg1QLf.js → markdown-CbB02VPB.js} +1 -1
- package/frontend/dist/js/{messageCodeStyles-CfzjQF-R.js → messageCodeStyles-D1gR4Bnk.js} +1 -1
- package/frontend/dist/js/{standalone-Vs6LnjM6.js → standalone-BIvqjowG.js} +1 -1
- package/frontend/dist/js/{typescript-BhVG1zGU.js → typescript-kUuRGkxH.js} +1 -1
- package/frontend/dist/js/{ui-Dj9IFugT.js → ui-D4PVoJDa.js} +2 -2
- package/frontend/dist/logo-dark.png +0 -0
- package/frontend/dist/logo-dark.svg +1 -0
- package/frontend/dist/logo-light.png +0 -0
- package/frontend/dist/logo-light.svg +1 -0
- package/frontend/dist/logo.svg +1 -6
- package/frontend/dist/maskable-512.png +0 -0
- package/package.json +2 -2
- package/frontend/dist/assets/index-B9H3vQ-n.css +0 -1
- package/frontend/dist/assets/index-D4LhtFTX.js +0 -38
- package/frontend/dist/js/ArtifactContainer-DvuGeXXu.js +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-CaPMk1Qj.js +0 -1
- package/frontend/dist/js/ChatPage-D4UBhGLk.js +0 -16
- package/frontend/dist/js/FirstTimeSetup-DJiDNTXY.js +0 -1
- package/frontend/dist/js/SettingsModal-DEBxDPne.js +0 -1
- package/frontend/dist/js/WorkPage-e30yqvJe.js +0 -5
- package/frontend/dist/js/api-jwjnjqx6.js +0 -19
- package/frontend/dist/js/artifactHtml-C0Hu9I1u.js +0 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,UAAU,CAAC;AAyElB,QAAA,MAAM,GAAG,6CAAY,CAAC;eA6mBP,GAAG"}
|
package/backend/dist/index.js
CHANGED
|
@@ -38,6 +38,9 @@ import cors from 'cors';
|
|
|
38
38
|
import helmet from 'helmet';
|
|
39
39
|
import morgan from 'morgan';
|
|
40
40
|
import { createServer } from 'http';
|
|
41
|
+
import { join as pathJoin } from 'path';
|
|
42
|
+
import { readFileSync } from 'fs';
|
|
43
|
+
import { createHash } from 'crypto';
|
|
41
44
|
import { errorHandler, notFoundHandler, requestLogger, } from './middleware/index.js';
|
|
42
45
|
import { authenticate, optionalAuth, } from './middleware/auth.js';
|
|
43
46
|
import ollamaRoutes from './routes/ollama.js';
|
|
@@ -58,6 +61,7 @@ import huggingfaceHubRoutes from './routes/huggingfaceHub.js';
|
|
|
58
61
|
import libreClawRoutes from './routes/libreClaw.js';
|
|
59
62
|
import workRoutes from './routes/work.js';
|
|
60
63
|
import systemDiagnosticsRoutes from './routes/systemDiagnostics.js';
|
|
64
|
+
import artifactsRoutes from './routes/artifacts.js';
|
|
61
65
|
import ollamaService from './services/ollamaService.js';
|
|
62
66
|
import workRuntimeService from './services/workRuntimeService.js';
|
|
63
67
|
import workTaskService from './services/workTaskService.js';
|
|
@@ -148,6 +152,35 @@ const corsConfig = {
|
|
|
148
152
|
}
|
|
149
153
|
},
|
|
150
154
|
};
|
|
155
|
+
/**
|
|
156
|
+
* Hashes of the inline scripts in the served page.
|
|
157
|
+
*
|
|
158
|
+
* The application ships one: a few lines in index.html that apply the saved
|
|
159
|
+
* theme before React mounts, so a light-mode user does not see a dark flash.
|
|
160
|
+
* A strict policy blocks it, which is why every page load has been logging a
|
|
161
|
+
* violation. Hashing the file that is actually served keeps the allowance
|
|
162
|
+
* exact and impossible to drift from the build.
|
|
163
|
+
*/
|
|
164
|
+
const inlineScriptHashes = () => {
|
|
165
|
+
const frontendPath = resolveFrontendDist(import.meta.url);
|
|
166
|
+
if (!frontendPath)
|
|
167
|
+
return [];
|
|
168
|
+
try {
|
|
169
|
+
const html = readFileSync(pathJoin(frontendPath, 'index.html'), 'utf8');
|
|
170
|
+
const inline = [
|
|
171
|
+
...html.matchAll(/<script(?![^>]*\bsrc=)[^>]*>([\s\S]*?)<\/script>/gi),
|
|
172
|
+
];
|
|
173
|
+
return inline
|
|
174
|
+
.map(match => match[1])
|
|
175
|
+
.filter(source => source.trim().length > 0)
|
|
176
|
+
.map(source => `'sha256-${createHash('sha256').update(source, 'utf8').digest('base64')}'`);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// No built frontend to read; nothing to allow.
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
const INLINE_SCRIPT_HASHES = inlineScriptHashes();
|
|
151
184
|
// Security middleware
|
|
152
185
|
app.use(helmet({
|
|
153
186
|
// Work previews have their own sandboxed proxy response policy and do not
|
|
@@ -160,6 +193,9 @@ app.use(helmet({
|
|
|
160
193
|
scriptSrc: [
|
|
161
194
|
"'self'",
|
|
162
195
|
'https://challenges.cloudflare.com',
|
|
196
|
+
// The theme script in index.html, allowed by hash rather than by
|
|
197
|
+
// opening the policy to inline script.
|
|
198
|
+
...INLINE_SCRIPT_HASHES,
|
|
163
199
|
...(process.env.NODE_ENV === 'production'
|
|
164
200
|
? [] // Strict in production
|
|
165
201
|
: ["'unsafe-inline'", "'unsafe-eval'"]), // Allow for dev tools
|
|
@@ -167,7 +203,8 @@ app.use(helmet({
|
|
|
167
203
|
styleSrc: [
|
|
168
204
|
"'self'",
|
|
169
205
|
"'unsafe-inline'", // Required for styled-components and CSS-in-JS
|
|
170
|
-
|
|
206
|
+
// No font CDN: Inter is vendored into the frontend bundle, so the
|
|
207
|
+
// browser never needs to reach a third-party host for a stylesheet.
|
|
171
208
|
],
|
|
172
209
|
imgSrc: ["'self'", 'data:', 'blob:', 'https:'],
|
|
173
210
|
connectSrc: [
|
|
@@ -190,7 +227,7 @@ app.use(helmet({
|
|
|
190
227
|
]
|
|
191
228
|
: []),
|
|
192
229
|
],
|
|
193
|
-
fontSrc: ["'self'", 'data:'
|
|
230
|
+
fontSrc: ["'self'", 'data:'],
|
|
194
231
|
mediaSrc: ["'self'", 'data:', 'blob:'],
|
|
195
232
|
objectSrc: ["'none'"],
|
|
196
233
|
frameSrc: ["'self'", 'https://challenges.cloudflare.com'],
|
|
@@ -221,6 +258,27 @@ app.use(helmet({
|
|
|
221
258
|
// Prevent XSS attacks
|
|
222
259
|
xssFilter: true,
|
|
223
260
|
}));
|
|
261
|
+
// The artifact sandbox runs on an opaque origin, so it fetches the vendored
|
|
262
|
+
// runtime with `Origin: null` and, because module scripts are always fetched
|
|
263
|
+
// in CORS mode, needs an explicit grant. This is mounted ahead of the
|
|
264
|
+
// application CORS gate, which would reject that origin, and serves nothing
|
|
265
|
+
// but uncredentialed static bundles.
|
|
266
|
+
{
|
|
267
|
+
const runtimeRoot = resolveFrontendDist(import.meta.url);
|
|
268
|
+
if (runtimeRoot) {
|
|
269
|
+
app.use('/artifact-runtime', express.static(pathJoin(runtimeRoot, 'artifact-runtime'), {
|
|
270
|
+
setHeaders: res => {
|
|
271
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
272
|
+
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
|
|
273
|
+
// Revalidate every time. These files change with each release but
|
|
274
|
+
// keep the same paths, and a cached copy from before an update
|
|
275
|
+
// leaves artifacts running against a runtime that no longer matches
|
|
276
|
+
// the application. The ETag makes an unchanged file a 304.
|
|
277
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
278
|
+
},
|
|
279
|
+
}));
|
|
280
|
+
}
|
|
281
|
+
}
|
|
224
282
|
// CORS configuration
|
|
225
283
|
app.use(cors({
|
|
226
284
|
...corsConfig,
|
|
@@ -419,6 +477,7 @@ app.use('/api/huggingface-hub', huggingfaceHubRoutes);
|
|
|
419
477
|
app.use('/api/libre-claw', libreClawRateLimiter, libreClawRoutes);
|
|
420
478
|
app.use('/api/work', workRateLimiter, workRoutes);
|
|
421
479
|
app.use('/api/system', systemDiagnosticsRoutes);
|
|
480
|
+
app.use('/api/artifacts', artifactsRoutes);
|
|
422
481
|
// Serve frontend static files in production (for npx libre-webui)
|
|
423
482
|
if (process.env.NODE_ENV === 'production' ||
|
|
424
483
|
process.env.SERVE_FRONTEND === 'true') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,4DAA4D;AAC5D,OAAO,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,YAAY,EACZ,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,oBAAoB,MAAM,4BAA4B,CAAC;AAC9D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,+BAA+B,CAAC;AACpE,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,aAAa,MAAM,6BAA6B,CAAC;AACxD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,uBAAuB,EAAE,EAC9B,yBAAyB,GAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEtC,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAC;AACxD,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CACT,6BAA6B,OAAO,CAAC,MAAM,4CAA4C,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,eAAe,GAAG,CAAC,IAAI,YAAY,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CACT,aAAa,YAAY,CAAC,eAAe,gCAAgC,YAAY,CAAC,cAAc,cAAc,CACnH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3C,IAAI,UAAU,EAAE,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,6EAA6E;AAC7E,+EAA+E;AAC/E,wBAAwB;AACxB,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAC;AAEvE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,IAAI,GACR,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE;IAC9B,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;IACzD,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB,IAAI,EAAE,EAAE,0CAA0C;IACtE,oBAAoB,IAAI,EAAE;CAC3B,CAAC;AAEF,qCAAqC;AACrC,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,CACN,MAA0B,EAC1B,QAAsD,EACtD,EAAE;QACF,oDAAoD;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEzC,iDAAiD;QACjD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,6CAA6C;QAC7C,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,2FAA2F;YAC3F,MAAM,kBAAkB,GACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBACrC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;YACpC,MAAM,eAAe,GACnB,MAAM;gBACN,uHAAuH,CAAC,IAAI,CAC1H,MAAM,CACP,CAAC;YAEJ,IAAI,kBAAkB,IAAI,eAAe,EAAE,CAAC;gBAC1C,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,GAAa,EAAE;IACxC,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG;YACb,GAAG,IAAI,CAAC,QAAQ,CAAC,oDAAoD,CAAC;SACvE,CAAC;QAEF,OAAO,MAAM;aACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACtB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;aAC1C,GAAG,CACF,MAAM,CAAC,EAAE,CACP,WAAW,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC7E,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,kBAAkB,EAAE,CAAC;AAElD,sBAAsB;AACtB,GAAG,CAAC,GAAG,CACL,MAAM,CAAC;IACL,0EAA0E;IAC1E,sBAAsB;IACtB,yBAAyB,EAAE,KAAK;IAEhC,uDAAuD;IACvD,qBAAqB,EAAE;QACrB,UAAU,EAAE;YACV,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,SAAS,EAAE;gBACT,QAAQ;gBACR,mCAAmC;gBACnC,iEAAiE;gBACjE,uCAAuC;gBACvC,GAAG,oBAAoB;gBACvB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBACvC,CAAC,CAAC,EAAE,CAAC,uBAAuB;oBAC5B,CAAC,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC,EAAE,sBAAsB;aAClE;YACD,QAAQ,EAAE;gBACR,QAAQ;gBACR,iBAAiB,EAAE,+CAA+C;gBAClE,kEAAkE;gBAClE,oEAAoE;aACrE;YACD,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9C,UAAU,EAAE;gBACV,QAAQ;gBACR,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,OAAO;gBACP,yDAAyD;gBACzD,kBAAkB,IAAI,EAAE;gBACxB,mBAAmB,IAAI,EAAE;gBACzB,uBAAuB;gBACvB,wBAAwB;gBACxB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBACvC,CAAC,CAAC;wBACE,oBAAoB;wBACpB,kBAAkB;wBAClB,sBAAsB;wBACtB,oBAAoB;qBACrB;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;YACD,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC5B,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YACtC,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,QAAQ,EAAE,CAAC,QAAQ,EAAE,mCAAmC,CAAC;YACzD,cAAc,EAAE,CAAC,QAAQ,CAAC;YAC1B,UAAU,EAAE,CAAC,QAAQ,CAAC;YACtB,wEAAwE;YACxE,wBAAwB;YACxB,uBAAuB,EAAE,IAAI;YAC7B,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,CAAC,QAAQ,CAAC;YACvB,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;SAC/B;KACF;IAED,6DAA6D;IAC7D,IAAI,EACF,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QAC9D,CAAC,CAAC;YACE,MAAM,EAAE,QAAQ,EAAE,SAAS;YAC3B,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,IAAI;SACd;QACH,CAAC,CAAC,KAAK,EAAE,iCAAiC;IAE9C,uBAAuB;IACvB,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAC9B,6BAA6B;IAC7B,OAAO,EAAE,IAAI;IACb,2BAA2B;IAC3B,aAAa,EAAE,IAAI;IACnB,sBAAsB;IACtB,SAAS,EAAE,IAAI;CAChB,CAAC,CACH,CAAC;AAEF,4EAA4E;AAC5E,6EAA6E;AAC7E,sEAAsE;AACtE,4EAA4E;AAC5E,qCAAqC;AACrC,CAAC;IACC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,GAAG,CACL,mBAAmB,EACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE;YACxD,UAAU,EAAE,GAAG,CAAC,EAAE;gBAChB,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;gBAC9D,kEAAkE;gBAClE,+DAA+D;gBAC/D,oEAAoE;gBACpE,2DAA2D;gBAC3D,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,qBAAqB;AACrB,GAAG,CAAC,GAAG,CACL,IAAI,CAAC;IACH,GAAG,UAAU;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IAClD,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IACjD,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AAEF,UAAU;AACV,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;IACpC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9B,CAAC;AACD,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAEvB,eAAe;AACf,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEhD,wBAAwB;AACxB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9B,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gCAAgC;QACzC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,qEAAqE;AACrE,oCAAoC;AAEpC,2CAA2C;AAC3C,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8CAA8C;AAC9C,MAAM,sBAAsB,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,iBAAiB,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,KAAK,EAAE,sFAAsF;IAClG,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,4CAA4C;AAC5C,MAAM,oBAAoB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,eAAe,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,kEAAkE;IAC5E,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8FAA8F;AAC9F,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,EAAE,EAAE,iFAAiF;IAC1F,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,eAAe,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,IAAI,EAAE,iFAAiF;IAC5F,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,yDAAyD;KACjE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,yGAAyG;AACzG,MAAM,cAAc,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,6DAA6D;KACrE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,mBAAmB,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,6CAA6C;IACvD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EACH,0EAA0E;KAC7E;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,oBAAoB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,GAAG,EAAE,qDAAqD;IAC/D,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,oEAAoE;KAC5E;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,2CAA2C;AAC3C,MAAM,eAAe,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,4EAA4E;IAC5E,2EAA2E;IAC3E,GAAG,EAAE,IAAI;IACT,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,8DAA8D;KACtE;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,8DAA8D;AAC9D,MAAM,0BAA0B,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,EAAE,GAAG,IAAI;IACnB,GAAG,EAAE,GAAG;IACR,sBAAsB,EAAE,IAAI;IAC5B,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,8DAA8D;KACtE;IACD,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,gFAAgF;AAChF,kCAAkC;AAClC,MAAM,sBAAsB,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;IACvC,GAAG,EAAE,IAAI;IACT,YAAY,EAAE,GAAG,CAAC,EAAE;QAClB,MAAM,MAAM,GAAI,GAA4B,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1D,OAAO,MAAM;YACX,CAAC,CAAC,QAAQ,MAAM,EAAE;YAClB,CAAC,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,mDAAmD;KAC3D;IACD,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AACnE,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACxD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC1E,GAAG,CAAC,GAAG,CACL,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,CAClB,CAAC;AACF,GAAG,CAAC,GAAG,CACL,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,sBAAsB,EACtB,YAAY,CACb,CAAC;AACF,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;AAC7C,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;AAChE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;AACzD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC3E,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC7D,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC7E,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACnC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;AACtD,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;AAClE,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AAClD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAChD,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAE3C,kEAAkE;AAClE,IACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IACrC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EACrC,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1D,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;QAEtD,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,SAAS,CAAC;YAClC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACvC,GAAG,EAAE,IAAI,EAAE,8CAA8C;YACzD,OAAO,EAAE,4CAA4C;YACrD,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAEzD,yDAAyD;QACzD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE9D,aAAa;QACb,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC5C,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,uDAAuD;QACvD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzD,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,+DAA+D,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,iBAAiB;AACjB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzB,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEtB,qBAAqB;AACrB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAEhC,eAAe;AACf,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;IACjC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClD,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAClB,CAAC,CAAC,IAAI,IAAI,GAAG;YACb,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,GAAG,GAAG,UAAU,WAAW,IAAI,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjB,kCAAkC;IAClC,IACE,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,EACpC,CAAC;QACD,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACzC,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAC3B,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;gBAClC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;oBAC5B,CAAC,CAAC;wBACE,OAAO,EAAE,UAAU;wBACnB,IAAI,EAAE,CAAC,6BAA6B,EAAE,GAAG,CAAC;qBAC3C;oBACH,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;gBAC1B,MAAM,CAAC,KAAK,CAAC,6CAA6C,KAAK,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,MAAM,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAE9C,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAE5C,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACxD,CAAC;IAED,qCAAqC;IACrC,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACzC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,oFAAoF,CACrF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,MAAM,QAAQ,GAAG,CAAC,MAA4B,EAAQ,EAAE;IACtD,IAAI,eAAe;QAAE,OAAO;IAC5B,eAAe,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,4CAA4C,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,OAAO,CAAY,OAAO,CAAC,EAAE;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,KAAM,CAAC,CAAC;QAC3D,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACtE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CACT,kBAAkB,MAAM,CAAC,MAAM,qCAAqC,CACrE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/C,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../src/routes/artifacts.ts"],"names":[],"mappings":"AAoBA,QAAA,MAAM,MAAM,4CAAmB,CAAC;eAoKjB,MAAM"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Libre WebUI
|
|
3
|
+
* Copyright (C) 2025 Kroonen AI, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at:
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import express from 'express';
|
|
18
|
+
import rateLimit from 'express-rate-limit';
|
|
19
|
+
const router = express.Router();
|
|
20
|
+
/**
|
|
21
|
+
* Sandbox flags for the artifact frame. They intentionally match the flags the
|
|
22
|
+
* frontend sets on the embedding iframe: the browser intersects both, and a
|
|
23
|
+
* mismatch would silently strip a capability.
|
|
24
|
+
*/
|
|
25
|
+
const ARTIFACT_SANDBOX_FLAGS = 'allow-scripts allow-forms allow-modals allow-popups allow-pointer-lock allow-downloads';
|
|
26
|
+
const ARTIFACT_FRAME_ALLOW = 'clipboard-read; clipboard-write; fullscreen; gamepad';
|
|
27
|
+
/**
|
|
28
|
+
* Origins that serve this application, and with it the vendored artifact
|
|
29
|
+
* runtime. In production the frontend and the API share an origin, so `'self'`
|
|
30
|
+
* covers it; development serves the frontend from another port.
|
|
31
|
+
*/
|
|
32
|
+
const applicationOrigins = () => {
|
|
33
|
+
const origins = new Set(["'self'"]);
|
|
34
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
35
|
+
origins.add('http://localhost:*');
|
|
36
|
+
origins.add('http://127.0.0.1:*');
|
|
37
|
+
origins.add('http://[::1]:*');
|
|
38
|
+
}
|
|
39
|
+
for (const candidate of (process.env.CORS_ORIGIN || '').split(',')) {
|
|
40
|
+
try {
|
|
41
|
+
const origin = new URL(candidate.trim());
|
|
42
|
+
if (origin.protocol === 'http:' || origin.protocol === 'https:') {
|
|
43
|
+
origins.add(origin.origin);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Ignore wildcard and malformed CORS entries in a CSP source list.
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return [...origins];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Frame ancestors allowed to embed the sandbox host. The packaged desktop
|
|
54
|
+
* build loads the frontend from `file://`, so it needs an entry of its own.
|
|
55
|
+
*/
|
|
56
|
+
const artifactFrameAncestors = () => [...applicationOrigins(), 'file:'].join(' ');
|
|
57
|
+
/**
|
|
58
|
+
* The policy that governs artifact code. It is deliberately unrelated to the
|
|
59
|
+
* application policy: inline script and eval are what artifacts are made of.
|
|
60
|
+
*
|
|
61
|
+
* No origin appears anywhere in it, not even this application's. Everything an
|
|
62
|
+
* artifact needs — React, Tailwind, the charting and diagram libraries — is
|
|
63
|
+
* inlined into the document by the page that opened it, so the frame never
|
|
64
|
+
* makes a request. That keeps artifacts working behind an authenticating
|
|
65
|
+
* proxy, where a sandboxed frame's cookie-less request would come back as a
|
|
66
|
+
* login redirect, and it means a compromised artifact has nowhere to send
|
|
67
|
+
* anything.
|
|
68
|
+
*/
|
|
69
|
+
const artifactSandboxPolicy = () => [
|
|
70
|
+
"default-src 'none'",
|
|
71
|
+
"script-src 'unsafe-inline' 'unsafe-eval' blob:",
|
|
72
|
+
"style-src 'unsafe-inline' blob:",
|
|
73
|
+
'img-src data: blob:',
|
|
74
|
+
'media-src data: blob:',
|
|
75
|
+
'font-src data:',
|
|
76
|
+
'connect-src data: blob:',
|
|
77
|
+
'frame-src blob: data:',
|
|
78
|
+
'child-src blob: data:',
|
|
79
|
+
'worker-src blob:',
|
|
80
|
+
"form-action 'none'",
|
|
81
|
+
"base-uri 'none'",
|
|
82
|
+
`frame-ancestors ${artifactFrameAncestors()}`,
|
|
83
|
+
`sandbox ${ARTIFACT_SANDBOX_FLAGS}`,
|
|
84
|
+
].join('; ');
|
|
85
|
+
/**
|
|
86
|
+
* Host document for HTML artifact previews.
|
|
87
|
+
*
|
|
88
|
+
* An `srcdoc` iframe inherits the embedder's Content Security Policy, so
|
|
89
|
+
* artifact markup rendered that way is judged by the application policy and
|
|
90
|
+
* every inline `<script>` is blocked in production. This document is fetched
|
|
91
|
+
* over the network instead, which means it carries the policy above, and the
|
|
92
|
+
* artifact frame it creates inherits *that* one.
|
|
93
|
+
*
|
|
94
|
+
* The host never touches artifact markup itself: it hands the document to a
|
|
95
|
+
* nested frame and keeps the messaging channel, so a streaming artifact can be
|
|
96
|
+
* re-rendered without another round trip.
|
|
97
|
+
*/
|
|
98
|
+
const SANDBOX_HOST_DOCUMENT = `<!DOCTYPE html>
|
|
99
|
+
<html lang="en">
|
|
100
|
+
<head>
|
|
101
|
+
<meta charset="UTF-8" />
|
|
102
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
103
|
+
<title>Artifact preview</title>
|
|
104
|
+
<style>
|
|
105
|
+
html, body { height: 100%; margin: 0; background: transparent; }
|
|
106
|
+
iframe { display: block; width: 100%; height: 100%; border: 0; }
|
|
107
|
+
</style>
|
|
108
|
+
</head>
|
|
109
|
+
<body>
|
|
110
|
+
<script>
|
|
111
|
+
(function () {
|
|
112
|
+
var host = window.parent;
|
|
113
|
+
if (!host || host === window) return;
|
|
114
|
+
|
|
115
|
+
var frame = null;
|
|
116
|
+
function render(markup) {
|
|
117
|
+
if (!frame) {
|
|
118
|
+
frame = document.createElement('iframe');
|
|
119
|
+
frame.setAttribute('allow', '${ARTIFACT_FRAME_ALLOW}');
|
|
120
|
+
frame.setAttribute('title', 'Artifact');
|
|
121
|
+
document.body.appendChild(frame);
|
|
122
|
+
}
|
|
123
|
+
frame.srcdoc = markup;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
window.addEventListener('message', function (event) {
|
|
127
|
+
if (event.source !== host) return;
|
|
128
|
+
var data = event.data;
|
|
129
|
+
if (!data || data.type !== 'libre-artifact:render') return;
|
|
130
|
+
if (typeof data.html !== 'string') return;
|
|
131
|
+
render(data.html);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
host.postMessage({ type: 'libre-artifact:ready' }, '*');
|
|
135
|
+
})();
|
|
136
|
+
</script>
|
|
137
|
+
</body>
|
|
138
|
+
</html>
|
|
139
|
+
`;
|
|
140
|
+
router.use(rateLimit({
|
|
141
|
+
windowMs: 15 * 60 * 1000,
|
|
142
|
+
max: 600,
|
|
143
|
+
message: 'Too many artifact requests, please try again later.',
|
|
144
|
+
standardHeaders: true,
|
|
145
|
+
legacyHeaders: false,
|
|
146
|
+
}));
|
|
147
|
+
// The sandbox host is a static document that carries no user data and reads
|
|
148
|
+
// none, so it stays unauthenticated: the frame that loads it has an opaque
|
|
149
|
+
// origin and cannot send credentials anyway.
|
|
150
|
+
router.get('/sandbox', (_req, res) => {
|
|
151
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
152
|
+
res.setHeader('Content-Security-Policy', artifactSandboxPolicy());
|
|
153
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
154
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
155
|
+
res.setHeader('Referrer-Policy', 'no-referrer');
|
|
156
|
+
res.setHeader('Permissions-Policy', 'camera=(), microphone=(), geolocation=(), payment=(), usb=(), serial=(), bluetooth=()');
|
|
157
|
+
// frame-ancestors above is the authoritative embedding rule. Helmet's blanket
|
|
158
|
+
// SAMEORIGIN would additionally reject the development server and the
|
|
159
|
+
// desktop build's file:// document in browsers that still honour both.
|
|
160
|
+
res.removeHeader('X-Frame-Options');
|
|
161
|
+
// The application itself does not request origin keying, so asking for it on
|
|
162
|
+
// this one response cannot be honoured and only warns.
|
|
163
|
+
res.removeHeader('Origin-Agent-Cluster');
|
|
164
|
+
res.send(SANDBOX_HOST_DOCUMENT);
|
|
165
|
+
});
|
|
166
|
+
export default router;
|
|
167
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/routes/artifacts.ts"],"names":[],"mappings":"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"}
|
package/backend/package.json
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
6db174f8f87edc25d490204945fac2be5156aa4d87169da2bc3223205ba52b9c
|