@elaraai/e3-ui-cli 1.0.28 → 1.0.30
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/app/assets/{engine-Daqj4eDD-BQb68g_1.js → engine-C0guBVPu-DwzrEvXk.js} +1 -1
- package/dist/app/assets/index-D6g123D4.js +2255 -0
- package/dist/app/index.html +1 -1
- package/dist/capture.d.ts +25 -0
- package/dist/capture.d.ts.map +1 -1
- package/dist/capture.js +46 -14
- package/dist/capture.js.map +1 -1
- package/dist/cli.js +15 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/shot.d.ts +1 -0
- package/dist/commands/shot.d.ts.map +1 -1
- package/dist/commands/shot.js +1 -0
- package/dist/commands/shot.js.map +1 -1
- package/dist/commands/shots.d.ts +18 -0
- package/dist/commands/shots.d.ts.map +1 -0
- package/dist/commands/shots.js +37 -0
- package/dist/commands/shots.js.map +1 -0
- package/dist/detect.d.ts +77 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +187 -0
- package/dist/detect.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/load-source.d.ts +45 -0
- package/dist/load-source.d.ts.map +1 -1
- package/dist/load-source.js +44 -12
- package/dist/load-source.js.map +1 -1
- package/dist/render.d.ts +2 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +1 -0
- package/dist/render.js.map +1 -1
- package/dist/sweep.d.ts +81 -0
- package/dist/sweep.d.ts.map +1 -0
- package/dist/sweep.js +189 -0
- package/dist/sweep.js.map +1 -0
- package/package.json +10 -10
- package/dist/app/assets/index-30g1JIHt.js +0 -2255
package/dist/app/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>e3-ui shot</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-D6g123D4.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="./assets/index-CYR-0Grb.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
package/dist/capture.d.ts
CHANGED
|
@@ -48,6 +48,11 @@ export interface CaptureOptions {
|
|
|
48
48
|
deviceScaleFactor?: number;
|
|
49
49
|
/** Framing. Default `{ kind: 'frame' }`. */
|
|
50
50
|
mode?: CaptureMode;
|
|
51
|
+
/** Component-frame mount width: `'full'` (fill the viewport width — right
|
|
52
|
+
* for width-flexible components like Schematic/Gantt/Table, which collapse
|
|
53
|
+
* in the default shrink-to-fit frame) or a CSS width (`'900px'`). Default:
|
|
54
|
+
* shrink-to-fit (the historical tight crop). */
|
|
55
|
+
frameWidth?: string | undefined;
|
|
51
56
|
/** Grace period (ms) after skeletons clear before capture. Default 300. */
|
|
52
57
|
settleMs?: number;
|
|
53
58
|
/** Per-navigation timeout (ms). Default 30000. */
|
|
@@ -70,6 +75,26 @@ export declare function escapeHtml(s: string): string;
|
|
|
70
75
|
* `--html` is worse than a visible warning. Exported for unit tests.
|
|
71
76
|
*/
|
|
72
77
|
export declare function inlineFonts(css: string, appDir: string): Promise<string>;
|
|
78
|
+
/** A single capture within an open {@link CaptureSession} — everything in
|
|
79
|
+
* {@link CaptureOptions} except the session-owned `appDir`. */
|
|
80
|
+
export type SessionCaptureOptions = Omit<CaptureOptions, 'appDir'>;
|
|
81
|
+
/** A reusable capture session: ONE served app + ONE browser across many
|
|
82
|
+
* captures (each in a fresh, isolated browser context). The per-shot browser
|
|
83
|
+
* launch dominates a multi-shot run, so the `shots` sweep opens one session. */
|
|
84
|
+
export interface CaptureSession {
|
|
85
|
+
/** Render one payload to a PNG (and optionally a standalone HTML). */
|
|
86
|
+
captureOne(opts: SessionCaptureOptions): Promise<void>;
|
|
87
|
+
/** Close the browser and the app server. */
|
|
88
|
+
close(): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Serve the prebuilt app and launch the browser once, for many captures.
|
|
92
|
+
*
|
|
93
|
+
* @param appDir - Directory of the prebuilt app bundle (the built `dist/app`)
|
|
94
|
+
* @returns The open session
|
|
95
|
+
* @throws If the prebuilt app is missing or no browser can be launched
|
|
96
|
+
*/
|
|
97
|
+
export declare function openCaptureSession(appDir: string): Promise<CaptureSession>;
|
|
73
98
|
/**
|
|
74
99
|
* Render a component payload to a PNG (and optionally a standalone HTML).
|
|
75
100
|
*
|
package/dist/capture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;2DAC2D;AAC3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CASnB,CAAC;AAEX,oCAAoC;AACpC,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC3B,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,WAAW,CAAC;IACrB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAgBD,qEAAqE;AACrE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMlF;AA8BD,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB9E;AA4CD;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;2DAC2D;AAC3D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CASnB,CAAC;AAEX,oCAAoC;AACpC,MAAM,MAAM,WAAW,GACjB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5C,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC3B,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,WAAW,CAAC;IACrB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;qDAGiD;IACjD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAgBD,qEAAqE;AACrE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMlF;AA8BD,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB9E;AA4CD;gEACgE;AAChE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEnE;;iFAEiF;AACjF,MAAM,WAAW,cAAc;IAC3B,sEAAsE;IACtE,UAAU,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAqBhF;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAOjE"}
|
package/dist/capture.js
CHANGED
|
@@ -166,6 +166,36 @@ ${bodyHtml}
|
|
|
166
166
|
</html>
|
|
167
167
|
`;
|
|
168
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Serve the prebuilt app and launch the browser once, for many captures.
|
|
171
|
+
*
|
|
172
|
+
* @param appDir - Directory of the prebuilt app bundle (the built `dist/app`)
|
|
173
|
+
* @returns The open session
|
|
174
|
+
* @throws If the prebuilt app is missing or no browser can be launched
|
|
175
|
+
*/
|
|
176
|
+
export async function openCaptureSession(appDir) {
|
|
177
|
+
// Pre-flight: fail clearly if the prebuilt app is missing, instead of
|
|
178
|
+
// letting a 404 page turn into an opaque navigation timeout.
|
|
179
|
+
if (!existsSync(path.join(appDir, 'index.html'))) {
|
|
180
|
+
throw new Error(`Prebuilt app not found at ${appDir} — run \`make build\` (or \`npm run build\`) first.`);
|
|
181
|
+
}
|
|
182
|
+
const { server, baseUrl } = await serveApp(appDir);
|
|
183
|
+
let browser;
|
|
184
|
+
try {
|
|
185
|
+
({ browser } = await launchBrowser());
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
server.close();
|
|
189
|
+
throw err;
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
captureOne: (opts) => captureInSession(browser, baseUrl, appDir, opts),
|
|
193
|
+
close: async () => {
|
|
194
|
+
await browser.close();
|
|
195
|
+
server.close();
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
169
199
|
/**
|
|
170
200
|
* Render a component payload to a PNG (and optionally a standalone HTML).
|
|
171
201
|
*
|
|
@@ -173,22 +203,24 @@ ${bodyHtml}
|
|
|
173
203
|
* @throws If the app reports a compile/render error, or capture times out
|
|
174
204
|
*/
|
|
175
205
|
export async function capture(opts) {
|
|
206
|
+
const session = await openCaptureSession(opts.appDir);
|
|
207
|
+
try {
|
|
208
|
+
await session.captureOne(opts);
|
|
209
|
+
}
|
|
210
|
+
finally {
|
|
211
|
+
await session.close();
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/** One capture on an already-open browser + app server. */
|
|
215
|
+
async function captureInSession(browser, baseUrl, appDir, opts) {
|
|
176
216
|
const viewport = opts.viewport ?? CAPTURE_DEFAULTS.viewport;
|
|
177
217
|
const deviceScaleFactor = opts.deviceScaleFactor ?? CAPTURE_DEFAULTS.deviceScaleFactor;
|
|
178
218
|
const mode = opts.mode ?? { kind: 'frame' };
|
|
179
219
|
const settleMs = opts.settleMs ?? CAPTURE_DEFAULTS.settleMs;
|
|
180
220
|
const timeout = opts.timeoutMs ?? CAPTURE_DEFAULTS.timeoutMs;
|
|
181
221
|
const storageKey = opts.storageKey ?? CAPTURE_DEFAULTS.storageKey;
|
|
182
|
-
|
|
183
|
-
// letting a 404 page turn into an opaque navigation timeout.
|
|
184
|
-
if (!existsSync(path.join(opts.appDir, 'index.html'))) {
|
|
185
|
-
throw new Error(`Prebuilt app not found at ${opts.appDir} — run \`make build\` (or \`npm run build\`) first.`);
|
|
186
|
-
}
|
|
187
|
-
const { server, baseUrl } = await serveApp(opts.appDir);
|
|
188
|
-
let browser;
|
|
222
|
+
const context = await browser.newContext({ viewport, deviceScaleFactor });
|
|
189
223
|
try {
|
|
190
|
-
({ browser } = await launchBrowser());
|
|
191
|
-
const context = await browser.newContext({ viewport, deviceScaleFactor });
|
|
192
224
|
const page = await context.newPage();
|
|
193
225
|
const consoleErrors = [];
|
|
194
226
|
page.on('pageerror', err => consoleErrors.push(err.message));
|
|
@@ -198,11 +230,12 @@ export async function capture(opts) {
|
|
|
198
230
|
// deadline is derived from the capture timeout (minus a buffer) so the app
|
|
199
231
|
// always reports before the driver's navigation timeout fires.
|
|
200
232
|
const taskDeadlineMs = Math.max(5_000, timeout - 5_000);
|
|
201
|
-
await page.addInitScript(([p, key, deadline]) => {
|
|
233
|
+
await page.addInitScript(([p, key, deadline, frameWidth]) => {
|
|
202
234
|
window.__E3_UI_SHOT__ = p;
|
|
203
235
|
window.__E3_UI_SHOT_KEY__ = key;
|
|
204
236
|
window.__E3_UI_SHOT_DEADLINE__ = deadline;
|
|
205
|
-
|
|
237
|
+
window.__E3_UI_SHOT_FRAME_WIDTH__ = frameWidth;
|
|
238
|
+
}, [opts.payload, storageKey, taskDeadlineMs, opts.frameWidth ?? null]);
|
|
206
239
|
// Component mode has no e3 polling, so wait for `networkidle` (catches
|
|
207
240
|
// lazy chunks / Map tiles / chart sizing). Task mode polls the e3 server
|
|
208
241
|
// so the network never idles — use `load` and rely on the readiness marker.
|
|
@@ -264,12 +297,11 @@ export async function capture(opts) {
|
|
|
264
297
|
await locator.first().screenshot({ path: opts.outPng });
|
|
265
298
|
}
|
|
266
299
|
if (opts.outHtml) {
|
|
267
|
-
await writeFile(opts.outHtml, await selfContainedHtml(page,
|
|
300
|
+
await writeFile(opts.outHtml, await selfContainedHtml(page, appDir), 'utf8');
|
|
268
301
|
}
|
|
269
302
|
}
|
|
270
303
|
finally {
|
|
271
|
-
await
|
|
272
|
-
server.close();
|
|
304
|
+
await context.close();
|
|
273
305
|
}
|
|
274
306
|
}
|
|
275
307
|
//# sourceMappingURL=capture.js.map
|
package/dist/capture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAe,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;2DAC2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACtC,iBAAiB,EAAE,CAAC;IACpB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;IACnB,cAAc,EAAE,GAAG;CACb,CAAC;
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import { createRequire } from 'node:module';
|
|
21
21
|
import { Command } from 'commander';
|
|
22
22
|
import { shotCommand } from './commands/shot.js';
|
|
23
|
+
import { shotsCommand } from './commands/shots.js';
|
|
23
24
|
import { installBrowser, doctor } from './browser.js';
|
|
24
25
|
import { CAPTURE_DEFAULTS as D } from './capture.js';
|
|
25
26
|
const require = createRequire(import.meta.url);
|
|
@@ -48,8 +49,22 @@ program
|
|
|
48
49
|
.option('--element <selector>', 'Capture a specific CSS selector instead of the component frame')
|
|
49
50
|
.option('--wait <ms>', `Extra settle time after fonts/skeletons clear (default ${D.settleMs})`)
|
|
50
51
|
.option('--timeout <ms>', `Max time to wait for the render to complete (default ${D.timeoutMs}); raise for slow live tasks`)
|
|
52
|
+
.option('--frame-width <w>', "Mount the component frame at a definite width: 'full' (viewport) or a CSS width like 900px — width-flexible components (Schematic/Gantt/Table) collapse in the default shrink-to-fit frame")
|
|
51
53
|
.option('--storage-key <key>', 'Storage key prefix for persisted component state')
|
|
52
54
|
.action(shotCommand);
|
|
55
|
+
program
|
|
56
|
+
.command('shots')
|
|
57
|
+
.description('Sweep source paths for EVERY renderable UI export (East fns, example() defs, zero-input ui() tasks) and render each to <out>/<relative-path>/<export>.png')
|
|
58
|
+
.argument('[paths...]', 'Files or directories to sweep (directories recurse; *.spec.* and *.d.ts excluded)', ['src'])
|
|
59
|
+
.option('--out <dir>', 'Output directory (git-ignore it)', '.shots')
|
|
60
|
+
.option('--html', 'Also write a self-contained HTML beside each PNG')
|
|
61
|
+
.option('--json', 'Also write <out>/manifest.json (rendered / skipped / failed, with reasons)')
|
|
62
|
+
.option('--frame-width <w>', "Component-frame mount width: 'full' (default — faithful for width-flexible components), a CSS width like 900px, or 'none' for the shrink-to-fit crop")
|
|
63
|
+
.option('--viewport <WxH>', `Chromium viewport (default ${D.viewport.width}x${D.viewport.height})`)
|
|
64
|
+
.option('--dpr <n>', `Device scale factor / pixel ratio (default ${D.deviceScaleFactor})`)
|
|
65
|
+
.option('--wait <ms>', `Extra settle time after fonts/skeletons clear (default ${D.settleMs})`)
|
|
66
|
+
.option('--timeout <ms>', `Max time per capture (default ${D.timeoutMs})`)
|
|
67
|
+
.action(shotsCommand);
|
|
53
68
|
program
|
|
54
69
|
.command('install-browser')
|
|
55
70
|
.description('Download the version-matched headless Chromium into the playwright-managed cache (honors PLAYWRIGHT_BROWSERS_PATH)')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,gBAAgB,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAElC,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qGAAqG,CAAC;IACnH,2CAA2C;KAC1C,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;KAClF,MAAM,CAAC,kBAAkB,EAAE,sEAAsE,CAAC;KAClG,MAAM,CAAC,uBAAuB,EAAE,iGAAiG,CAAC;KAClI,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;IACpE,sBAAsB;KACrB,MAAM,CAAC,qBAAqB,EAAE,yEAAyE,CAAC;IACzG,UAAU;KACT,MAAM,CAAC,qBAAqB,EAAE,gEAAgE,CAAC;KAC/F,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC;KACpE,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;KAClG,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC,CAAC,iBAAiB,GAAG,CAAC;KACzF,MAAM,CAAC,aAAa,EAAE,sDAAsD,CAAC;KAC7E,MAAM,CAAC,sBAAsB,EAAE,gEAAgE,CAAC;KAChG,MAAM,CAAC,aAAa,EAAE,0DAA0D,CAAC,CAAC,QAAQ,GAAG,CAAC;KAC9F,MAAM,CAAC,gBAAgB,EAAE,wDAAwD,CAAC,CAAC,SAAS,8BAA8B,CAAC;KAC3H,MAAM,CAAC,qBAAqB,EAAE,kDAAkD,CAAC;KACjF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzB,OAAO;KACF,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,oHAAoH,CAAC;KACjI,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;KAC5E,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;IAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/shot.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export interface ShotCommandOptions {
|
|
|
19
19
|
wait?: string;
|
|
20
20
|
timeout?: string;
|
|
21
21
|
storageKey?: string;
|
|
22
|
+
frameWidth?: string;
|
|
22
23
|
}
|
|
23
24
|
/** Parse `--dpr`, bounded to a sane range (mirrors the viewport bound). */
|
|
24
25
|
export declare function parseDpr(value: string): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shot.d.ts","sourceRoot":"","sources":["../../src/commands/shot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAG/D,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAS7E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM/E;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAM5D;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;
|
|
1
|
+
{"version":3,"file":"shot.d.ts","sourceRoot":"","sources":["../../src/commands/shot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAG/D,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAS7E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAM/E;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAM5D;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAwBD,yCAAyC;AACzC,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD5E"}
|
package/dist/commands/shot.js
CHANGED
|
@@ -76,6 +76,7 @@ function captureOptionsFrom(options) {
|
|
|
76
76
|
...(options.dpr ? { deviceScaleFactor: parseDpr(options.dpr) } : {}),
|
|
77
77
|
...(options.wait ? { settleMs: parsePositive(options.wait, '--wait') } : {}),
|
|
78
78
|
...(options.timeout ? { timeoutMs: parsePositive(options.timeout, '--timeout') } : {}),
|
|
79
|
+
...(options.frameWidth ? { frameWidth: options.frameWidth } : {}),
|
|
79
80
|
};
|
|
80
81
|
}
|
|
81
82
|
/** Commander action for `e3-ui shot`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shot.js","sourceRoot":"","sources":["../../src/commands/shot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAoB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"shot.js","sourceRoot":"","sources":["../../src/commands/shot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/** Options accepted by the `shots` command (commander camel-cases flags). */
|
|
6
|
+
export interface ShotsCommandOptions {
|
|
7
|
+
out: string;
|
|
8
|
+
html?: boolean;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
frameWidth?: string;
|
|
11
|
+
viewport?: string;
|
|
12
|
+
dpr?: string;
|
|
13
|
+
wait?: string;
|
|
14
|
+
timeout?: string;
|
|
15
|
+
}
|
|
16
|
+
/** Commander action for `e3-ui shots`. */
|
|
17
|
+
export declare function shotsCommand(paths: string[], options: ShotsCommandOptions): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=shots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shots.d.ts","sourceRoot":"","sources":["../../src/commands/shots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,0CAA0C;AAC1C,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB/F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* `e3-ui shots` — sweep a project for every renderable UI export (bare East
|
|
7
|
+
* functions, `example()` defs, zero-input `ui()` tasks) and render each to
|
|
8
|
+
* `<out>/<relative-path>/<export>.png`. See `sweep.ts` for discovery,
|
|
9
|
+
* IR-level classification, and output layout.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { sweep } from '../sweep.js';
|
|
14
|
+
import { parseDpr, parsePositive, parseViewport } from './shot.js';
|
|
15
|
+
/** Commander action for `e3-ui shots`. */
|
|
16
|
+
export async function shotsCommand(paths, options) {
|
|
17
|
+
try {
|
|
18
|
+
const result = await sweep({
|
|
19
|
+
paths,
|
|
20
|
+
outDir: options.out,
|
|
21
|
+
html: options.html ?? false,
|
|
22
|
+
json: options.json ?? false,
|
|
23
|
+
frameWidth: options.frameWidth,
|
|
24
|
+
...(options.viewport ? { viewport: parseViewport(options.viewport) } : {}),
|
|
25
|
+
...(options.dpr ? { deviceScaleFactor: parseDpr(options.dpr) } : {}),
|
|
26
|
+
...(options.wait ? { settleMs: parsePositive(options.wait, '--wait') } : {}),
|
|
27
|
+
...(options.timeout ? { timeoutMs: parsePositive(options.timeout, '--timeout') } : {}),
|
|
28
|
+
});
|
|
29
|
+
if (result.failed.length > 0)
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=shots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shots.js","sourceRoot":"","sources":["../../src/commands/shots.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAcnE,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAe,EAAE,OAA4B;IAC5E,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;YACvB,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;YAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
|
package/dist/detect.d.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { type EastFunctionLike, type ExportShape } from './load-source.js';
|
|
6
|
+
/** Why an export is not standalone-renderable. Every skip carries its typed
|
|
7
|
+
* reason so a sweep is an audit, not a best-effort scrape. */
|
|
8
|
+
export type SkipReason = {
|
|
9
|
+
kind: 'not-a-component';
|
|
10
|
+
detail: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'has-inputs';
|
|
13
|
+
count: number;
|
|
14
|
+
} | {
|
|
15
|
+
kind: 'wrong-output';
|
|
16
|
+
output: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'parameterized-ui-task';
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'workspace-bound';
|
|
21
|
+
platforms: string[];
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'ir-error';
|
|
24
|
+
detail: string;
|
|
25
|
+
};
|
|
26
|
+
/** One export's verdict. `renderable` exports carry their East function. */
|
|
27
|
+
export interface ExportClassification {
|
|
28
|
+
name: string;
|
|
29
|
+
shape: ExportShape | null;
|
|
30
|
+
renderable: boolean;
|
|
31
|
+
skip?: SkipReason;
|
|
32
|
+
fn?: EastFunctionLike;
|
|
33
|
+
}
|
|
34
|
+
/** Render a {@link SkipReason} as one human line (shared by sweep + shot). */
|
|
35
|
+
export declare function describeSkip(skip: SkipReason): string;
|
|
36
|
+
/** The subset of the project's east API the detector uses. */
|
|
37
|
+
interface EastModule {
|
|
38
|
+
walkIR(ir: unknown, visit: (node: unknown, ctx: unknown) => void): void;
|
|
39
|
+
isSubtypeValue(t1: unknown, t2: unknown): boolean;
|
|
40
|
+
toEastTypeValue(type: unknown): unknown;
|
|
41
|
+
}
|
|
42
|
+
/** The project-resolved detection context: east's machinery + the project's
|
|
43
|
+
* `UIComponentType` (as an `EastTypeValue`). `uiComponentTypeValue` is null
|
|
44
|
+
* when the project does not depend on `@elaraai/east-ui` — then nothing can
|
|
45
|
+
* be a UI component by construction. */
|
|
46
|
+
export interface DetectContext {
|
|
47
|
+
east: EastModule;
|
|
48
|
+
uiComponentTypeValue: unknown | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build the detection context for a source file, resolving `@elaraai/east` and
|
|
52
|
+
* `@elaraai/east-ui` from the project.
|
|
53
|
+
*
|
|
54
|
+
* @param sourceFile - A file inside the target project (resolution anchor)
|
|
55
|
+
* @returns The context, or null when the project has no resolvable `@elaraai/east`
|
|
56
|
+
*/
|
|
57
|
+
export declare function detectContextFor(sourceFile: string): Promise<DetectContext | null>;
|
|
58
|
+
/**
|
|
59
|
+
* Classify ONE export value: shape, renderability, and (when renderable) its
|
|
60
|
+
* East function.
|
|
61
|
+
*
|
|
62
|
+
* @param name - The export name (for reporting)
|
|
63
|
+
* @param value - The exported value
|
|
64
|
+
* @param ctx - The project-resolved detection context
|
|
65
|
+
* @returns The classification (never throws — IR problems become `ir-error` skips)
|
|
66
|
+
*/
|
|
67
|
+
export declare function classifyExport(name: string, value: unknown, ctx: DetectContext): ExportClassification;
|
|
68
|
+
/**
|
|
69
|
+
* Classify every export of a loaded module.
|
|
70
|
+
*
|
|
71
|
+
* @param moduleExports - The module's exports (from `loadSourceExports`)
|
|
72
|
+
* @param ctx - The project-resolved detection context
|
|
73
|
+
* @returns One classification per export, in export order
|
|
74
|
+
*/
|
|
75
|
+
export declare function classifyExports(moduleExports: Record<string, unknown>, ctx: DetectContext): ExportClassification[];
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2BH,OAAO,EAAiB,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE1F;+DAC+D;AAC/D,MAAM,MAAM,UAAU,GAChB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,EAAE,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CASrD;AAOD,8DAA8D;AAC9D,UAAU,UAAU;IAChB,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACxE,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC;IAClD,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;CAC3C;AAED;;;yCAGyC;AACzC,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC;AAcD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUxF;AA4CD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,oBAAoB,CAgDrG;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,oBAAoB,EAAE,CAElH"}
|