@ytspar/sweetlink 1.12.1 → 1.14.0

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 (81) hide show
  1. package/README.md +91 -12
  2. package/claude-skills/screenshot/SKILL.md +121 -18
  3. package/dist/cli/outputSchemas.d.ts +16 -0
  4. package/dist/cli/outputSchemas.d.ts.map +1 -1
  5. package/dist/cli/outputSchemas.js +33 -0
  6. package/dist/cli/outputSchemas.js.map +1 -1
  7. package/dist/cli/sweetlink.js +347 -11
  8. package/dist/cli/sweetlink.js.map +1 -1
  9. package/dist/daemon/browser.d.ts +51 -0
  10. package/dist/daemon/browser.d.ts.map +1 -0
  11. package/dist/daemon/browser.js +153 -0
  12. package/dist/daemon/browser.js.map +1 -0
  13. package/dist/daemon/client.d.ts +32 -0
  14. package/dist/daemon/client.d.ts.map +1 -0
  15. package/dist/daemon/client.js +133 -0
  16. package/dist/daemon/client.js.map +1 -0
  17. package/dist/daemon/cursor.d.ts +15 -0
  18. package/dist/daemon/cursor.d.ts.map +1 -0
  19. package/dist/daemon/cursor.js +76 -0
  20. package/dist/daemon/cursor.js.map +1 -0
  21. package/dist/daemon/devices.d.ts +39 -0
  22. package/dist/daemon/devices.d.ts.map +1 -0
  23. package/dist/daemon/devices.js +101 -0
  24. package/dist/daemon/devices.js.map +1 -0
  25. package/dist/daemon/diff.d.ts +20 -0
  26. package/dist/daemon/diff.d.ts.map +1 -0
  27. package/dist/daemon/diff.js +181 -0
  28. package/dist/daemon/diff.js.map +1 -0
  29. package/dist/daemon/evidence.d.ts +29 -0
  30. package/dist/daemon/evidence.d.ts.map +1 -0
  31. package/dist/daemon/evidence.js +130 -0
  32. package/dist/daemon/evidence.js.map +1 -0
  33. package/dist/daemon/index.d.ts +10 -0
  34. package/dist/daemon/index.d.ts.map +1 -0
  35. package/dist/daemon/index.js +90 -0
  36. package/dist/daemon/index.js.map +1 -0
  37. package/dist/daemon/listeners.d.ts +55 -0
  38. package/dist/daemon/listeners.d.ts.map +1 -0
  39. package/dist/daemon/listeners.js +129 -0
  40. package/dist/daemon/listeners.js.map +1 -0
  41. package/dist/daemon/recording.d.ts +44 -0
  42. package/dist/daemon/recording.d.ts.map +1 -0
  43. package/dist/daemon/recording.js +133 -0
  44. package/dist/daemon/recording.js.map +1 -0
  45. package/dist/daemon/refs.d.ts +70 -0
  46. package/dist/daemon/refs.d.ts.map +1 -0
  47. package/dist/daemon/refs.js +185 -0
  48. package/dist/daemon/refs.js.map +1 -0
  49. package/dist/daemon/ringBuffer.d.ts +26 -0
  50. package/dist/daemon/ringBuffer.d.ts.map +1 -0
  51. package/dist/daemon/ringBuffer.js +54 -0
  52. package/dist/daemon/ringBuffer.js.map +1 -0
  53. package/dist/daemon/server.d.ts +23 -0
  54. package/dist/daemon/server.d.ts.map +1 -0
  55. package/dist/daemon/server.js +508 -0
  56. package/dist/daemon/server.js.map +1 -0
  57. package/dist/daemon/session.d.ts +41 -0
  58. package/dist/daemon/session.d.ts.map +1 -0
  59. package/dist/daemon/session.js +8 -0
  60. package/dist/daemon/session.js.map +1 -0
  61. package/dist/daemon/stateFile.d.ts +49 -0
  62. package/dist/daemon/stateFile.d.ts.map +1 -0
  63. package/dist/daemon/stateFile.js +162 -0
  64. package/dist/daemon/stateFile.js.map +1 -0
  65. package/dist/daemon/types.d.ts +72 -0
  66. package/dist/daemon/types.d.ts.map +1 -0
  67. package/dist/daemon/types.js +28 -0
  68. package/dist/daemon/types.js.map +1 -0
  69. package/dist/daemon/viewer.d.ts +33 -0
  70. package/dist/daemon/viewer.d.ts.map +1 -0
  71. package/dist/daemon/viewer.js +226 -0
  72. package/dist/daemon/viewer.js.map +1 -0
  73. package/dist/daemon/visualDiff.d.ts +34 -0
  74. package/dist/daemon/visualDiff.d.ts.map +1 -0
  75. package/dist/daemon/visualDiff.js +80 -0
  76. package/dist/daemon/visualDiff.js.map +1 -0
  77. package/dist/next.d.ts +39 -0
  78. package/dist/next.d.ts.map +1 -0
  79. package/dist/next.js +84 -0
  80. package/dist/next.js.map +1 -0
  81. package/package.json +15 -2
package/README.md CHANGED
@@ -24,6 +24,12 @@ Sweetlink enables Claude AI agents to autonomously debug, test, and iterate on w
24
24
  - **🎯 Token Efficient** - ~1000 tokens/screenshot vs ~5000 for MCP tools
25
25
  - **📝 LLM-Optimized Output** - Summary format with deduplication for context efficiency
26
26
  - **🚀 Zero Setup** - Works immediately with any web app
27
+ - **🖥️ Persistent Daemon** - Playwright daemon stays alive between commands (~150ms screenshots)
28
+ - **🏷️ @Ref System** - Accessibility tree refs for click/fill without CSS selectors
29
+ - **📊 Ring Buffers** - Always-on console/network/dialog capture (50K entries)
30
+ - **🎬 Session Recording** - Record actions with screenshots, generate interactive viewer
31
+ - **🔍 Snapshot Diffing** - Text diff of accessibility tree after actions
32
+ - **📱 Device Emulation** - Named presets (iPhone 14, Pixel 7, iPad Pro) for batch screenshots
27
33
 
28
34
  ## Screenshot Button
29
35
 
@@ -86,22 +92,30 @@ That's it! The plugin automatically:
86
92
  - Detects Vite's port and configures everything
87
93
  - DevBar connects automatically
88
94
 
89
- ### For Next.js
95
+ ### For Next.js (Recommended)
90
96
 
91
- Use the `instrumentation.ts` hook to start the server once on startup:
97
+ Wrap your Next.js config - zero configuration needed:
92
98
 
93
- ```typescript
94
- // src/instrumentation.ts (or instrumentation.ts at root)
95
- export async function register() {
96
- if (process.env.NEXT_RUNTIME === 'nodejs') {
97
- if (process.env.NODE_ENV === 'development') {
98
- import('@ytspar/sweetlink/auto');
99
- }
100
- }
101
- }
99
+ ```javascript
100
+ // next.config.mjs
101
+ import { withSweetlink } from '@ytspar/sweetlink/next';
102
+
103
+ const nextConfig = { /* your config */ };
104
+ export default withSweetlink(nextConfig);
102
105
  ```
103
106
 
104
- This runs once when the Next.js server starts and auto-configures the WebSocket port based on the app port (3000 → 9223).
107
+ That's it! The plugin automatically:
108
+ - Detects the port from `--port` argv (e.g., `next dev --port 3002`)
109
+ - Falls back to `process.env.PORT`, then `3000`
110
+ - Starts the WebSocket server on `appPort + 6223`
111
+ - No-ops in production
112
+
113
+ Works with other wrappers too:
114
+
115
+ ```javascript
116
+ // With Sentry, MDX, etc.
117
+ export default withSentryConfig(withSweetlink(withMDX(nextConfig)), sentryOptions);
118
+ ```
105
119
 
106
120
  ### For Any Node.js App (Express, Remix, etc.)
107
121
 
@@ -302,6 +316,71 @@ pnpm sweetlink network
302
316
  pnpm sweetlink network --filter "/api/"
303
317
  ```
304
318
 
319
+ ### Persistent Daemon (v2)
320
+
321
+ Sweetlink v2 adds a persistent Playwright daemon for high-fidelity operations. The daemon auto-starts on first use and auto-stops after 30min idle.
322
+
323
+ ```bash
324
+ # Pixel-perfect screenshot via persistent daemon (~150ms after startup)
325
+ pnpm sweetlink screenshot --hifi
326
+
327
+ # Responsive screenshots at 3 breakpoints (375/768/1280)
328
+ pnpm sweetlink screenshot --responsive
329
+
330
+ # Manage daemon lifecycle
331
+ pnpm sweetlink daemon status
332
+ pnpm sweetlink daemon stop
333
+ ```
334
+
335
+ ### Accessibility Snapshots & Refs
336
+
337
+ ```bash
338
+ # List interactive elements with @refs
339
+ pnpm sweetlink snapshot -i
340
+ # @e1 [link] "Home"
341
+ # @e2 [button] "Submit"
342
+ # @e3 [textbox] "Email"
343
+
344
+ # Click/fill by ref (no CSS selector needed)
345
+ pnpm sweetlink click @e2
346
+ pnpm sweetlink fill @e3 "user@example.com"
347
+
348
+ # Diff against previous snapshot
349
+ pnpm sweetlink snapshot -D
350
+
351
+ # Annotated screenshot with red ref labels
352
+ pnpm sweetlink snapshot -a -o annotated.png
353
+ ```
354
+
355
+ ### Console & Network (Ring Buffers)
356
+
357
+ Always-on capture from daemon start — no "start watching" needed.
358
+
359
+ ```bash
360
+ # Console messages (captured since daemon start)
361
+ pnpm sweetlink console
362
+ pnpm sweetlink console --errors
363
+ pnpm sweetlink console --last 20
364
+
365
+ # Failed network requests
366
+ pnpm sweetlink network --failed
367
+ ```
368
+
369
+ ### Session Recording
370
+
371
+ ```bash
372
+ pnpm sweetlink record start
373
+ # ... do actions (click, fill, snapshot) ...
374
+ pnpm sweetlink record stop
375
+ # Generates .sweetlink/<session-id>/viewer.html
376
+ ```
377
+
378
+ ### PR Evidence
379
+
380
+ ```bash
381
+ pnpm sweetlink proof --pr 123
382
+ ```
383
+
305
384
  ## Chrome DevTools Protocol (CDP) Setup
306
385
 
307
386
  For native Chrome rendering and network inspection:
@@ -17,12 +17,17 @@ Sweetlink (`@ytspar/sweetlink`) is a WebSocket-based bridge that enables Claude
17
17
  ### Architecture
18
18
 
19
19
  ```
20
- CLI (pnpm sweetlink) <--> WebSocket (port 9223) <--> Browser (SweetlinkBridge component)
21
- |
22
- html2canvas (screenshots)
20
+ CLI (pnpm sweetlink)
21
+ |
22
+ ├─ Fast path (WebSocket) ──> Browser (SweetlinkBridge) ──> html2canvas
23
+ | screenshot, logs, exec, query, click, refresh
24
+ |
25
+ └─ HiFi path (HTTP) ──> Daemon (persistent Playwright) ──> Headless Chromium
26
+ screenshot --hifi, --responsive, snapshot, click @ref, fill @ref,
27
+ console, network --failed, record, proof
23
28
  ```
24
29
 
25
- Optionally, if Chrome is launched with `--remote-debugging-port=9222`, Sweetlink uses CDP (Puppeteer) for higher quality screenshots and network inspection.
30
+ The daemon auto-starts on first `--hifi`/`snapshot` command and auto-stops after 30min idle. State file at `.sweetlink/daemon.json`.
26
31
 
27
32
  ### Prerequisites
28
33
 
@@ -122,16 +127,49 @@ Need screenshot or browser interaction?
122
127
  --> Use Agent-Browser (better for sequential multi-step flows)
123
128
  ```
124
129
 
130
+ ### Sweetlink v2 Daemon — Persistent Browser (Preferred for Multi-Step)
131
+
132
+ Sweetlink v2 adds a persistent Playwright daemon that keeps a browser alive between commands, solving the statefulness problem. **Use daemon mode for multi-step workflows instead of Agent-Browser.**
133
+
134
+ ```bash
135
+ # Pixel-perfect screenshot via persistent daemon (~150ms)
136
+ pnpm sweetlink screenshot --hifi --url http://localhost:3000 --output .tmp/screenshots/page.png
137
+
138
+ # Responsive screenshots at 3 breakpoints
139
+ pnpm sweetlink screenshot --responsive --url http://localhost:3000
140
+
141
+ # Get interactive element refs
142
+ pnpm sweetlink snapshot -i --url http://localhost:3000
143
+
144
+ # Click/fill by ref (stateful — same browser session!)
145
+ pnpm sweetlink click @e3
146
+ pnpm sweetlink fill @e5 "test@example.com"
147
+
148
+ # Take screenshot after interaction (same browser, state preserved)
149
+ pnpm sweetlink screenshot --hifi --output .tmp/screenshots/after-click.png
150
+
151
+ # Check console errors (ring buffer — captured since daemon start)
152
+ pnpm sweetlink console --errors
153
+
154
+ # Diff accessibility tree after actions
155
+ pnpm sweetlink snapshot -D
156
+
157
+ # Annotated screenshot with ref labels
158
+ pnpm sweetlink snapshot -a -o .tmp/screenshots/annotated.png
159
+
160
+ # Stop daemon when done (or it auto-stops after 30min idle)
161
+ pnpm sweetlink daemon stop
162
+ ```
163
+
125
164
  ### Known Sweetlink Limitations — Use Agent-Browser Instead
126
165
 
127
- These scenarios require multi-step browser state that Sweetlink cannot maintain across commands (each Sweetlink CLI call may open a fresh page):
166
+ With the v2 daemon, most statefulness issues are resolved. These remain:
128
167
 
129
168
  | Scenario | Why Sweetlink fails | Agent-Browser approach |
130
169
  |----------|--------------------|-----------------------|
131
- | **Scroll then screenshot** | `exec` (scroll) and `screenshot` are separate page loads in Playwright fallbackscroll state is lost | `open` -> `scroll down` -> `screenshot` (single session) |
132
- | **Click then screenshot** (when click triggers navigation/animation) | Same statefulness issue click and screenshot may not share the same page | `open` -> `click` -> `screenshot` |
133
- | **Multi-step interactions** (type + submit + wait for result) | Each command is stateless | `open` -> `type` -> `press Enter` -> `screenshot` |
134
- | **Custom viewport dimensions** (not `mobile`/`tablet` presets) | `--viewport` only supports named presets | `agent-browser open --viewport 1600x900` or use Sweetlink `--force-cdp` with preset |
170
+ | **Verifying SVG content** (colors, icons, shapes) | html2canvas (fast path) does not render SVG elementsuse `--hifi` or `--force-cdp` instead | Use Sweetlink with `--hifi`, or `agent-browser open` -> `screenshot` |
171
+ | **Non-dev-server URLs** | Sweetlink requires the app to have the bridge installed | `agent-browser open` any URL |
172
+ | **AI-powered element selection** | Sweetlink uses CSS selectors or @refs | Agent-Browser has Stagehand AI selection |
135
173
 
136
174
  > **Self-updating rule:** When you encounter a NEW Sweetlink failure mode not listed above — i.e., you try Sweetlink, it fails or produces incorrect results for a reason that would apply generally (not a transient network/server issue) — you MUST append a new row to this table before continuing with the Agent-Browser fallback. This keeps the list exhaustive and prevents future sessions from repeating the same mistake.
137
175
 
@@ -158,6 +196,8 @@ All commands use `pnpm sweetlink <command> [options]`.
158
196
  | `--viewport <size>` | Emulate viewport: `mobile`, `tablet` (requires `--force-cdp`) |
159
197
  | `--hover` | Capture hover state (requires `--selector`) |
160
198
  | `--force-cdp` | Force Chrome DevTools Protocol method (higher quality, more tokens) |
199
+ | `--hifi` | Pixel-perfect via persistent Playwright daemon (~150ms after startup) |
200
+ | `--responsive` | Screenshots at 3 breakpoints (375/768/1280px) via daemon |
161
201
 
162
202
  ```bash
163
203
  pnpm sweetlink screenshot --output .tmp/screenshots/full.png
@@ -245,6 +285,68 @@ pnpm sweetlink network # All requests
245
285
  pnpm sweetlink network --filter "/api/" # Filter by URL pattern
246
286
  ```
247
287
 
288
+ ### snapshot — Accessibility tree with @refs (daemon)
289
+
290
+ | Option | Description |
291
+ |--------|-------------|
292
+ | `-i`, `--interactive` | Show only interactive elements with @e refs |
293
+ | `-D`, `--diff` | Diff against previous snapshot |
294
+ | `-a`, `--annotate` | Annotated screenshot with ref labels |
295
+ | `-o <path>` | Output path for annotated screenshot |
296
+
297
+ ```bash
298
+ pnpm sweetlink snapshot -i --url http://localhost:3000
299
+ pnpm sweetlink snapshot -D
300
+ pnpm sweetlink snapshot -a -o .tmp/screenshots/annotated.png
301
+ ```
302
+
303
+ ### click — Click elements (supports @refs)
304
+
305
+ ```bash
306
+ pnpm sweetlink click @e3 # Click by ref (daemon)
307
+ pnpm sweetlink click --selector "button.submit" # Click by CSS selector (WS)
308
+ ```
309
+
310
+ ### fill — Fill inputs by @ref (daemon)
311
+
312
+ ```bash
313
+ pnpm sweetlink fill @e5 "user@example.com"
314
+ ```
315
+
316
+ ### console — Console messages from ring buffer (daemon)
317
+
318
+ | Option | Description |
319
+ |--------|-------------|
320
+ | `--errors` | Show only errors |
321
+ | `--last <n>` | Show only last N entries |
322
+
323
+ ```bash
324
+ pnpm sweetlink console --errors
325
+ pnpm sweetlink console --last 20
326
+ ```
327
+
328
+ ### network --failed — Failed requests from ring buffer (daemon)
329
+
330
+ ```bash
331
+ pnpm sweetlink network --failed
332
+ ```
333
+
334
+ ### record — Session recording (daemon)
335
+
336
+ ```bash
337
+ pnpm sweetlink record start
338
+ pnpm sweetlink record stop # Generates viewer.html
339
+ pnpm sweetlink record status
340
+ ```
341
+
342
+ ### daemon — Daemon lifecycle
343
+
344
+ ```bash
345
+ pnpm sweetlink daemon status
346
+ pnpm sweetlink daemon start --url http://localhost:3000
347
+ pnpm sweetlink daemon stop
348
+ ```
349
+
248
350
  ## Agent-Browser Commands
249
351
 
250
352
  ### Basic Usage
@@ -335,17 +437,18 @@ pnpm sweetlink screenshot --selector ".fixed-component" --output .tmp/screenshot
335
437
 
336
438
  | Scenario | Tool | Notes |
337
439
  |----------|------|-------|
338
- | Screenshot of dev server page | Sweetlink (`--url`) | Single-command, preferred |
339
- | Screenshot after scrolling | **Agent-Browser** | Sweetlink loses scroll state between commands |
340
- | Check console logs | Sweetlink (`logs`) | |
440
+ | Screenshot of dev server page | Sweetlink (`--url`) | Fast path, preferred |
441
+ | Pixel-perfect screenshot | Sweetlink (`--hifi`) | Persistent daemon, ~150ms |
442
+ | Responsive screenshots | Sweetlink (`--responsive`) | 3 breakpoints via daemon |
443
+ | Click then screenshot same page | Sweetlink daemon (`click @ref` + `screenshot --hifi`) | Daemon preserves state |
444
+ | Multi-step form interactions | Sweetlink daemon (`snapshot -i` + `fill @ref` + `click @ref`) | Refs make this easy |
445
+ | Check console logs | Sweetlink (`console --errors`) | Ring buffer, always-on |
341
446
  | DOM queries | Sweetlink (`query`) | |
342
- | Click then screenshot same page | **Agent-Browser** | Sweetlink can't guarantee state between commands |
343
447
  | Navigate to specific page | Sweetlink (`--url` flag) | |
344
- | Viewport testing (mobile/tablet) | Sweetlink (`--force-cdp --viewport`) | |
345
- | Custom viewport dimensions | **Agent-Browser** | Sweetlink only supports named presets |
346
- | Non-dev-server URL | Agent-Browser | |
347
- | Complex multi-step form flows | Agent-Browser | |
348
- | Sequential type + submit + wait | Agent-Browser | |
448
+ | Verifying SVG content (icons, colors) | Sweetlink (`--hifi`) | Daemon renders SVGs correctly |
449
+ | Viewport testing (mobile/tablet) | Sweetlink (`--responsive` or `--hifi --viewport`) | |
450
+ | Non-dev-server URL | Agent-Browser | Sweetlink requires bridge |
451
+ | AI-powered element selection | Agent-Browser | Stagehand AI |
349
452
 
350
453
  ## Troubleshooting
351
454
 
@@ -89,6 +89,22 @@ export interface StatusData {
89
89
  running: boolean;
90
90
  statusCode?: number;
91
91
  }
92
+ export interface DaemonStatusData {
93
+ running: boolean;
94
+ pid?: number;
95
+ port?: number;
96
+ url?: string;
97
+ uptime?: number;
98
+ }
99
+ export interface SnapshotData {
100
+ tree: string;
101
+ refs?: Array<{
102
+ ref: string;
103
+ role: string;
104
+ name: string;
105
+ }>;
106
+ diff?: string;
107
+ }
92
108
  export declare const SCHEMAS: Record<string, string>;
93
109
  /**
94
110
  * Write a JSON envelope to stdout. Used in --json mode.
@@ -1 +1 @@
1
- {"version":3,"file":"outputSchemas.d.ts","sourceRoot":"","sources":["../../src/cli/outputSchemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outputSchemas.d.ts","sourceRoot":"","sources":["../../src/cli/outputSchemas.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,39 @@ export const SCHEMAS = {
88
88
  url: string;
89
89
  running: boolean;
90
90
  statusCode?: number;
91
+ }`,
92
+ daemon: `interface DaemonStatusData {
93
+ running: boolean;
94
+ pid?: number;
95
+ port?: number;
96
+ url?: string;
97
+ uptime?: number;
98
+ }`,
99
+ snapshot: `interface SnapshotData {
100
+ tree: string;
101
+ refs?: Array<{ ref: string; role: string; name: string }>;
102
+ diff?: string;
103
+ }`,
104
+ console: `interface ConsoleData {
105
+ formatted: string;
106
+ total: number;
107
+ errorCount: number;
108
+ warningCount: number;
109
+ entries: unknown[];
110
+ }`,
111
+ fill: `interface FillData {
112
+ filled: string;
113
+ value: string;
114
+ }`,
115
+ proof: `interface ProofData {
116
+ commentUrl: string;
117
+ }`,
118
+ record: `interface RecordData {
119
+ recording: boolean;
120
+ sessionId?: string;
121
+ duration?: number;
122
+ actionCount?: number;
123
+ manifest?: unknown;
91
124
  }`,
92
125
  };
93
126
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"outputSchemas.js","sourceRoot":"","sources":["../../src/cli/outputSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2GH,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E,MAAM,eAAe,GAAG;;;;;;EAMtB,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC7C,UAAU,EAAE;;;;;;EAMZ;IAEA,KAAK,EAAE;;;;EAIP;IAEA,IAAI,EAAE;;;;;;EAMN;IAEA,IAAI,EAAE;;EAEN;IAEA,KAAK,EAAE;;;;EAIP;IAEA,OAAO,EAAE;;EAET;IAEA,KAAK,EAAE;;;;;EAKP;IAEA,OAAO,EAAE;;;EAGT;IAEA,MAAM,EAAE;;;;EAIR;IAEA,OAAO,EAAE;;;;EAIT;IAEA,IAAI,EAAE;;;;EAIN;IAEA,MAAM,EAAE;;;EAGR;IAEA,OAAO,EAAE;;;;EAIT;IAEA,IAAI,EAAE;;;;EAIN;IAEA,MAAM,EAAE;;;;EAIR;CACD,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAsB;IAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"outputSchemas.js","sourceRoot":"","sources":["../../src/cli/outputSchemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyHH,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E,MAAM,eAAe,GAAG;;;;;;EAMtB,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC7C,UAAU,EAAE;;;;;;EAMZ;IAEA,KAAK,EAAE;;;;EAIP;IAEA,IAAI,EAAE;;;;;;EAMN;IAEA,IAAI,EAAE;;EAEN;IAEA,KAAK,EAAE;;;;EAIP;IAEA,OAAO,EAAE;;EAET;IAEA,KAAK,EAAE;;;;;EAKP;IAEA,OAAO,EAAE;;;EAGT;IAEA,MAAM,EAAE;;;;EAIR;IAEA,OAAO,EAAE;;;;EAIT;IAEA,IAAI,EAAE;;;;EAIN;IAEA,MAAM,EAAE;;;EAGR;IAEA,OAAO,EAAE;;;;EAIT;IAEA,IAAI,EAAE;;;;EAIN;IAEA,MAAM,EAAE;;;;EAIR;IAEA,MAAM,EAAE;;;;;;EAMR;IAEA,QAAQ,EAAE;;;;EAIV;IAEA,OAAO,EAAE;;;;;;EAMT;IAEA,IAAI,EAAE;;;EAGN;IAEA,KAAK,EAAE;;EAEP;IAEA,MAAM,EAAE;;;;;;EAMR;CACD,CAAC;AAEF,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAsB;IAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}