playwright-recast 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -5
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/render/renderer.d.ts.map +1 -1
- package/dist/render/renderer.js +20 -4
- package/dist/render/renderer.js.map +1 -1
- package/dist/subtitles/ass-writer.d.ts +18 -0
- package/dist/subtitles/ass-writer.d.ts.map +1 -0
- package/dist/subtitles/ass-writer.js +118 -0
- package/dist/subtitles/ass-writer.js.map +1 -0
- package/dist/subtitles/subtitle-chunker.d.ts +18 -0
- package/dist/subtitles/subtitle-chunker.d.ts.map +1 -0
- package/dist/subtitles/subtitle-chunker.js +138 -0
- package/dist/subtitles/subtitle-chunker.js.map +1 -0
- package/dist/types/render.d.ts +28 -1
- package/dist/types/render.d.ts.map +1 -1
- package/dist/types/render.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,7 +45,8 @@ await Recast
|
|
|
45
45
|
- **Trace-based processing** — Parses Playwright trace.zip (actions, screenshots, network, cursor positions). No manual recording needed.
|
|
46
46
|
- **Smart speed control** — Automatically speeds up idle time, network waits, and navigation while keeping user actions at normal speed.
|
|
47
47
|
- **TTS voiceover** — Generate narration with OpenAI TTS or ElevenLabs. Properly timed with silence padding.
|
|
48
|
-
- **Subtitle generation** — SRT and
|
|
48
|
+
- **Subtitle generation** — SRT, WebVTT, and ASS output. Import external SRT or generate from trace BDD step titles.
|
|
49
|
+
- **Styled subtitle burn-in** — Configurable font, size, color, background box with opacity, padding, position. Smart punctuation-based chunking for single-line display.
|
|
49
50
|
- **playwright-bdd support** — First-class integration with playwright-bdd Gherkin steps. Doc strings become voiceover narration.
|
|
50
51
|
- **Step helpers** — `narrate()`, `zoom()`, `pace()` — importable helpers for Playwright step definitions.
|
|
51
52
|
- **CLI included** — `npx playwright-recast -i trace.zip -o demo.mp4` — no code needed.
|
|
@@ -117,7 +118,21 @@ await Recast
|
|
|
117
118
|
speed: 1.2,
|
|
118
119
|
instructions: 'Professional product demo narration.',
|
|
119
120
|
}))
|
|
120
|
-
.render({
|
|
121
|
+
.render({
|
|
122
|
+
format: 'mp4',
|
|
123
|
+
resolution: '1080p',
|
|
124
|
+
fps: 60,
|
|
125
|
+
burnSubtitles: true,
|
|
126
|
+
subtitleStyle: {
|
|
127
|
+
fontSize: 48,
|
|
128
|
+
primaryColor: '#1a1a1a',
|
|
129
|
+
backgroundColor: '#FFFFFF',
|
|
130
|
+
backgroundOpacity: 0.75,
|
|
131
|
+
padding: 20,
|
|
132
|
+
bold: true,
|
|
133
|
+
chunkOptions: { maxCharsPerLine: 55 },
|
|
134
|
+
},
|
|
135
|
+
})
|
|
121
136
|
.toFile('demo.mp4')
|
|
122
137
|
```
|
|
123
138
|
|
|
@@ -172,12 +187,47 @@ Every stage is optional and composable:
|
|
|
172
187
|
| `.subtitles(textFn)` | Generate subtitles from trace actions |
|
|
173
188
|
| `.subtitlesFromSrt(path)` | Load subtitles from an external SRT file |
|
|
174
189
|
| `.subtitlesFromTrace()` | Auto-generate subtitles from BDD step titles in trace |
|
|
190
|
+
| `.autoZoom(config)` | Auto-zoom to user interaction targets detected from trace |
|
|
191
|
+
| `.enrichZoomFromReport(steps)` | Apply zoom coordinates from external report data |
|
|
175
192
|
| `.voiceover(provider)` | Generate TTS audio from subtitle text |
|
|
176
|
-
| `.render(config)` | Render final video (format, resolution, burn
|
|
193
|
+
| `.render(config)` | Render final video (format, resolution, fps, styled subtitle burn-in) |
|
|
177
194
|
| `.toFile(path)` | Execute pipeline and write output |
|
|
178
195
|
|
|
179
196
|
---
|
|
180
197
|
|
|
198
|
+
## Subtitle Styling
|
|
199
|
+
|
|
200
|
+
Burn styled subtitles into the video with full control over appearance:
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
.render({
|
|
204
|
+
burnSubtitles: true,
|
|
205
|
+
subtitleStyle: {
|
|
206
|
+
fontFamily: 'Arial', // Any system font
|
|
207
|
+
fontSize: 48, // Pixels (relative to 1080p)
|
|
208
|
+
primaryColor: '#1a1a1a', // Text color (hex)
|
|
209
|
+
backgroundColor: '#FFFFFF', // Box background (hex)
|
|
210
|
+
backgroundOpacity: 0.75, // 0.0 transparent — 1.0 opaque
|
|
211
|
+
padding: 20, // Box padding in px
|
|
212
|
+
bold: true,
|
|
213
|
+
position: 'bottom', // 'bottom' or 'top'
|
|
214
|
+
marginVertical: 50, // Distance from edge
|
|
215
|
+
marginHorizontal: 100, // Side margins (text wraps within)
|
|
216
|
+
wrapStyle: 'smart', // 'smart', 'endOfLine', 'none'
|
|
217
|
+
chunkOptions: { // Split long text into single-line chunks
|
|
218
|
+
maxCharsPerLine: 55, // Split at punctuation when text exceeds this
|
|
219
|
+
minCharsPerChunk: 15, // Merge tiny fragments
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
})
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Punctuation-based chunking** splits long subtitle text into shorter single-line entries. Time is distributed proportionally by character count. Splits at sentence boundaries (`. ! ?`) first, then clause boundaries (`, ; :`) if still too long.
|
|
226
|
+
|
|
227
|
+
Without `subtitleStyle`, `burnSubtitles: true` falls back to default ffmpeg SRT rendering.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
181
231
|
## TTS Providers
|
|
182
232
|
|
|
183
233
|
### OpenAI TTS
|
|
@@ -210,6 +260,77 @@ Requires `ELEVENLABS_API_KEY` environment variable or `apiKey` option.
|
|
|
210
260
|
|
|
211
261
|
---
|
|
212
262
|
|
|
263
|
+
## Zoom
|
|
264
|
+
|
|
265
|
+
Zoom into specific areas of the video during steps — focus the viewer's attention on the relevant UI element.
|
|
266
|
+
|
|
267
|
+
### Auto-zoom from trace
|
|
268
|
+
|
|
269
|
+
Automatically zoom into user interaction targets (clicks, fills) detected from the trace:
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
await Recast
|
|
273
|
+
.from('./traces')
|
|
274
|
+
.parse()
|
|
275
|
+
.subtitlesFromSrt('./narration.srt')
|
|
276
|
+
.autoZoom({ actionLevel: 1.5 }) // 1.5x zoom on detected actions
|
|
277
|
+
.render({ format: 'mp4' })
|
|
278
|
+
.toFile('demo.mp4')
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
`autoZoom()` finds click/fill/type actions in the trace, extracts their cursor coordinates, and applies crop-and-scale zoom during the matching subtitle's time window.
|
|
282
|
+
|
|
283
|
+
### Zoom from report data
|
|
284
|
+
|
|
285
|
+
Apply zoom coordinates from an external source (e.g., a demo report with per-step zoom data):
|
|
286
|
+
|
|
287
|
+
```typescript
|
|
288
|
+
const reportSteps = [
|
|
289
|
+
{ zoom: null }, // Step 1: no zoom
|
|
290
|
+
{ zoom: { x: 0.5, y: 0.8, level: 1.4 } }, // Step 2: zoom to input area
|
|
291
|
+
{ zoom: null }, // Step 3: no zoom
|
|
292
|
+
{ zoom: { x: 0.78, y: 0.45, level: 1.3 }}, // Step 4: zoom to sidebar
|
|
293
|
+
]
|
|
294
|
+
|
|
295
|
+
await Recast
|
|
296
|
+
.from('./traces')
|
|
297
|
+
.parse()
|
|
298
|
+
.subtitlesFromSrt('./narration.srt')
|
|
299
|
+
.enrichZoomFromReport(reportSteps)
|
|
300
|
+
.render({ format: 'mp4' })
|
|
301
|
+
.toFile('demo.mp4')
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Zoom from step helpers
|
|
305
|
+
|
|
306
|
+
Capture zoom coordinates during Playwright test execution using the `zoom()` helper:
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
import { zoom } from 'playwright-recast'
|
|
310
|
+
|
|
311
|
+
When('the user opens the sidebar', async ({ page }) => {
|
|
312
|
+
const sidebar = page.locator('.sidebar-panel')
|
|
313
|
+
await zoom(sidebar, 1.3) // Record zoom target for this step
|
|
314
|
+
await sidebar.click()
|
|
315
|
+
})
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
The helper captures the element's bounding box as a Playwright annotation. Use `enrichZoomFromReport()` to apply these coordinates during video generation.
|
|
319
|
+
|
|
320
|
+
### Zoom coordinates
|
|
321
|
+
|
|
322
|
+
All zoom coordinates use viewport-relative fractions (0.0–1.0):
|
|
323
|
+
|
|
324
|
+
| Field | Description | Default |
|
|
325
|
+
|-------|-------------|---------|
|
|
326
|
+
| `x` | Center X (0 = left, 1 = right) | 0.5 |
|
|
327
|
+
| `y` | Center Y (0 = top, 1 = bottom) | 0.5 |
|
|
328
|
+
| `level` | Zoom level (1.0 = no zoom, 2.0 = 2x) | 1.0 |
|
|
329
|
+
|
|
330
|
+
The renderer applies zoom by cropping the video to `(width/level × height/level)` centered at `(x, y)`, then scaling back to the output resolution.
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
213
334
|
## Speed Processing
|
|
214
335
|
|
|
215
336
|
The speed processor classifies every moment of the trace:
|
|
@@ -260,8 +381,7 @@ await base.subtitlesFromSrt('./cs.srt').render({ burnSubtitles: true }).toFile('
|
|
|
260
381
|
|
|
261
382
|
## Roadmap
|
|
262
383
|
|
|
263
|
-
- [ ] **
|
|
264
|
-
- [ ] **Smooth zoom transitions** — Animated crop-and-zoom on elements during specific steps
|
|
384
|
+
- [ ] **Smooth zoom transitions** — Animated easing between zoom states (currently hard-cut)
|
|
265
385
|
- [ ] **Edge TTS provider** — Free TTS without API key using Microsoft Edge's online voices
|
|
266
386
|
- [ ] **Playwright Reporter plugin** — Auto-generate demo videos as part of your test run
|
|
267
387
|
- [ ] **Multi-language support** — Generate video variants from the same trace with different SRT/voiceover per language
|
package/dist/index.d.ts
CHANGED
|
@@ -7,4 +7,8 @@ export type { SpeedConfig, SpeedSegment, SpeedRule, SpeedRuleContext, ActivityTy
|
|
|
7
7
|
export type { SubtitleEntry, SubtitleFormat, SubtitleOptions, SubtitledTrace, } from './types/subtitle.js';
|
|
8
8
|
export type { TtsProvider, TtsOptions, AudioSegment, VoiceoverEntry, VoiceoveredTrace, } from './types/voiceover.js';
|
|
9
9
|
export type { RenderConfig, SubtitleStyle, ZoomKeyframe } from './types/render.js';
|
|
10
|
+
export { writeAss, hexToAss } from './subtitles/ass-writer.js';
|
|
11
|
+
export type { AssResolution } from './subtitles/ass-writer.js';
|
|
12
|
+
export { chunkSubtitles } from './subtitles/subtitle-chunker.js';
|
|
13
|
+
export type { ChunkOptions } from './subtitles/subtitle-chunker.js';
|
|
10
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAGxE,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,YAAY,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AAEzB,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAE7B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAGxE,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,YAAY,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AAEzB,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EACV,WAAW,EACX,UAAU,EACV,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAE7B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGlF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC9D,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,7 @@ export { setupRecast, narrate, zoom, pace } from './helpers.js';
|
|
|
5
5
|
// Providers
|
|
6
6
|
export { OpenAIProvider } from './voiceover/providers/openai.js';
|
|
7
7
|
export { ElevenLabsProvider } from './voiceover/providers/elevenlabs.js';
|
|
8
|
+
// Subtitle writers & utilities
|
|
9
|
+
export { writeAss, hexToAss } from './subtitles/ass-writer.js';
|
|
10
|
+
export { chunkSubtitles } from './subtitles/subtitle-chunker.js';
|
|
8
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE3D,qCAAqC;AACrC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE/D,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,QAAQ,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE3D,qCAAqC;AACrC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE/D,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AA4CxE,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAKpD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA+B3E;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;IAC3B,SAAS,CAAC,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IACnF,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;CAC/B;AAiKD;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,IAAI,CA6GN"}
|
package/dist/render/renderer.js
CHANGED
|
@@ -3,6 +3,8 @@ import * as path from 'node:path';
|
|
|
3
3
|
import { execFileSync } from 'node:child_process';
|
|
4
4
|
import { resolveResolution } from '../types/render.js';
|
|
5
5
|
import { writeSrt } from '../subtitles/srt-writer.js';
|
|
6
|
+
import { writeAss } from '../subtitles/ass-writer.js';
|
|
7
|
+
import { chunkSubtitles } from '../subtitles/subtitle-chunker.js';
|
|
6
8
|
/**
|
|
7
9
|
* Detect blank/white frames at the start of a video and return the timestamp
|
|
8
10
|
* of the first non-blank frame. Blank frames are identified by file size —
|
|
@@ -218,10 +220,24 @@ export function renderVideo(trace, config, outputPath, tmpDir) {
|
|
|
218
220
|
vFilters.push(`scale=${resolution.width}:${resolution.height}`);
|
|
219
221
|
}
|
|
220
222
|
if (config.burnSubtitles && trace.subtitles && trace.subtitles.length > 0) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
if (config.subtitleStyle) {
|
|
224
|
+
// Styled subtitles via ASS format (background box, custom font, etc.)
|
|
225
|
+
let burnEntries = trace.subtitles;
|
|
226
|
+
if (config.subtitleStyle.chunkOptions) {
|
|
227
|
+
burnEntries = chunkSubtitles(burnEntries, config.subtitleStyle.chunkOptions);
|
|
228
|
+
}
|
|
229
|
+
const assPath = path.join(tmpDir, 'burn-subtitles.ass');
|
|
230
|
+
fs.writeFileSync(assPath, writeAss(burnEntries, config.subtitleStyle, resolution));
|
|
231
|
+
const escapedPath = assPath.replace(/'/g, "'\\''").replace(/:/g, '\\:');
|
|
232
|
+
vFilters.push(`ass='${escapedPath}'`);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Plain SRT subtitles (default ffmpeg styling)
|
|
236
|
+
const srtPath = path.join(tmpDir, 'burn-subtitles.srt');
|
|
237
|
+
fs.writeFileSync(srtPath, writeSrt(trace.subtitles));
|
|
238
|
+
const escapedPath = srtPath.replace(/'/g, "'\\''").replace(/:/g, '\\:');
|
|
239
|
+
vFilters.push(`subtitles='${escapedPath}'`);
|
|
240
|
+
}
|
|
225
241
|
}
|
|
226
242
|
if (vFilters.length > 0) {
|
|
227
243
|
ffmpegArgs.push('-vf', vFilters.join(','));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/render/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,MAAc;IACjE,MAAM,SAAS,GAAG,GAAG,CAAA,CAAC,UAAU;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAA,CAAC,8BAA8B;IACnD,MAAM,cAAc,GAAG,MAAM,CAAA,CAAC,yCAAyC;IAEvE,IAAI,aAAa,GAAG,CAAC,CAAC,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QACtE,IAAI,CAAC;YACH,YAAY,CAAC,QAAQ,EAAE;gBACrB,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS;gBACvC,WAAW,EAAE,GAAG,EAAE,SAAS;aAC5B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAErB,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;YACxC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAExB,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;gBAC3B,aAAa,GAAG,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,OAAO,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAK;QACP,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,OAAO,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3D,CAAC;AAcD,SAAS,MAAM,CAAC,IAAc;IAC5B,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AACjD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,WAAmB,EACnB,SAA0B,EAC1B,KAAa,EACb,MAAc,EACd,MAAc;IAId,MAAM,QAAQ,GAAc,EAAE,CAAA;IAE9B,qBAAqB;IACrB,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE;QAC1C,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW;KACjF,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IACpB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAEzC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IACtE,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAA;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAA;QAE/B,uBAAuB;QACvB,IAAI,QAAQ,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvD,CAAC;QACD,iBAAiB;QACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;QACnD,MAAM,GAAG,MAAM,CAAA;IACjB,CAAC;IACD,4BAA4B;IAC5B,IAAI,MAAM,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAA,CAAC,iBAAiB;IACtC,CAAC;IAED,sBAAsB;IACtB,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;QACtD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE1B,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QAE9F,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAA;YAClE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAA;YAEnE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,MAAM,EAAE,CAAC,CAAA;QAC/G,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7E,MAAM,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IAED,uBAAuB;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACvD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC3D,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1F,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CACtB,WAAmB,EACnB,aAA6B,EAC7B,UAAkB,EAClB,MAAc;IAEd,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IAElD,8CAA8C;IAC9C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9E,IAAI,WAAW;QAAE,OAAO,WAAW,CAAA;IAEnC,yCAAyC;IACzC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE;QAC1C,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW;KACjF,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;IACpB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAEzC,8EAA8E;IAC9E,kFAAkF;IAClF,0FAA0F;IAC1F,MAAM,aAAa,GAAG,aAAa;SAChC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAE,GAAG,CAAC,aAAwB,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QAC1E,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAE,GAAG,CAAC,WAAsB,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QAClF,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAE9C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IAElD,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,MAAM,qBAAqB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAE7F,uBAAuB;IACvB,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAA;QAC1C,MAAM,cAAc,GAAG,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAA;QAE3C,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5D,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,cAAc,GAAG,CAAC,KAAK,EAAE;YACtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;YACzD,OAAO;SACR,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,CAAA;QAEZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAClI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5B,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IACxD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAE/E,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;IAC5D,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1F,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,KAAsB,EACtB,MAAoB,EACpB,UAAkB,EAClB,MAAc;IAEd,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,CAAA;IACzC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAA;IACrC,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAA;IAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,KAAK,CAAA;IACnF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,cAAc;QAC9C,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QACpE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAEjE,wDAAwD;IACxD,IAAI,UAAU,GAAG,WAAW,CAAA;IAC5B,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACzD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QAC1D,MAAM,CAAC;YACL,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU;YAClD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI;YACvD,WAAW;SACZ,CAAC,CAAA;QACF,UAAU,GAAG,WAAW,CAAA;IAE1B,CAAC;IAED,2EAA2E;IAC3E,sEAAsE;IACtE,iFAAiF;IACjF,IAAI,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7D,MAAM,eAAe,GAAG,eAAe;YACrC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAC3E,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;YAClD,CAAC,CAAE,eAAe,CAAC,CAAC,CAAE,CAAC,SAAoB;YAC3C,CAAC,CAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,aAAwB,CAAA;QACrD,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC1F,CAAC;IAED,6FAA6F;IAC7F,IAAI,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC/B,UAAU,GAAG,cAAc,CACzB,UAAU,EACV,KAAK,CAAC,SAAS,EACf,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,MAAM,EACjB,MAAM,CACP,CAAA;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,UAAU,GAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IAErD,IAAI,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,4DAA4D;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,sEAAsE;YACtE,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,IAAI,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;gBACtC,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;YAC9E,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;YACvD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;YAClF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvE,QAAQ,CAAC,IAAI,CAAC,QAAQ,WAAW,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;YACvD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;YACpD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvE,QAAQ,CAAC,IAAI,CAAC,cAAc,WAAW,GAAG,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5F,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IACzF,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3B,MAAM,CAAC,UAAU,CAAC,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SubtitleEntry } from '../types/subtitle.js';
|
|
2
|
+
import type { SubtitleStyle } from '../types/render.js';
|
|
3
|
+
/** Video resolution for ASS coordinate space */
|
|
4
|
+
export interface AssResolution {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Convert '#RRGGBB' hex color to ASS color format '&HAABBGGRR'.
|
|
10
|
+
* ASS uses reversed byte order (BGR) and alpha where 00=opaque, FF=transparent.
|
|
11
|
+
*/
|
|
12
|
+
export declare function hexToAss(hex: string, opacity?: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Write subtitle entries to ASS (Advanced SubStation Alpha) format
|
|
15
|
+
* with configurable styling — background box, font, colors, positioning.
|
|
16
|
+
*/
|
|
17
|
+
export declare function writeAss(entries: SubtitleEntry[], style?: SubtitleStyle, resolution?: AssResolution): string;
|
|
18
|
+
//# sourceMappingURL=ass-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ass-writer.d.ts","sourceRoot":"","sources":["../../src/subtitles/ass-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAAY,GAAG,MAAM,CAQnE;AAqBD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,aAAa,EAAE,EACxB,KAAK,GAAE,aAAkB,EACzB,UAAU,GAAE,aAA6C,GACxD,MAAM,CAuFR"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert '#RRGGBB' hex color to ASS color format '&HAABBGGRR'.
|
|
3
|
+
* ASS uses reversed byte order (BGR) and alpha where 00=opaque, FF=transparent.
|
|
4
|
+
*/
|
|
5
|
+
export function hexToAss(hex, opacity = 1.0) {
|
|
6
|
+
const clean = hex.replace('#', '');
|
|
7
|
+
const r = clean.slice(0, 2).toUpperCase();
|
|
8
|
+
const g = clean.slice(2, 4).toUpperCase();
|
|
9
|
+
const b = clean.slice(4, 6).toUpperCase();
|
|
10
|
+
const alpha = Math.round((1.0 - Math.max(0, Math.min(1, opacity))) * 255);
|
|
11
|
+
const alphaHex = alpha.toString(16).padStart(2, '0').toUpperCase();
|
|
12
|
+
return `&H${alphaHex}${b}${g}${r}`;
|
|
13
|
+
}
|
|
14
|
+
/** Format milliseconds as ASS time: H:MM:SS.CC (centiseconds) */
|
|
15
|
+
function formatAssTime(ms) {
|
|
16
|
+
const rounded = Math.max(0, Math.round(ms));
|
|
17
|
+
const h = Math.floor(rounded / 3600000);
|
|
18
|
+
const m = Math.floor((rounded % 3600000) / 60000);
|
|
19
|
+
const s = Math.floor((rounded % 60000) / 1000);
|
|
20
|
+
const cs = Math.floor((rounded % 1000) / 10);
|
|
21
|
+
return `${h}:${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}.${String(cs).padStart(2, '0')}`;
|
|
22
|
+
}
|
|
23
|
+
function resolveWrapStyle(ws) {
|
|
24
|
+
switch (ws) {
|
|
25
|
+
case 'endOfLine': return 1;
|
|
26
|
+
case 'none': return 2;
|
|
27
|
+
case 'smart':
|
|
28
|
+
default: return 0;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Write subtitle entries to ASS (Advanced SubStation Alpha) format
|
|
33
|
+
* with configurable styling — background box, font, colors, positioning.
|
|
34
|
+
*/
|
|
35
|
+
export function writeAss(entries, style = {}, resolution = { width: 1920, height: 1080 }) {
|
|
36
|
+
if (entries.length === 0)
|
|
37
|
+
return '';
|
|
38
|
+
// Resolve style with defaults
|
|
39
|
+
const fontFamily = style.fontFamily ?? 'Arial';
|
|
40
|
+
const fontSize = style.fontSize ?? 52;
|
|
41
|
+
const primaryColor = style.primaryColor ?? style.color ?? '#1a1a1a';
|
|
42
|
+
const bgColor = style.backgroundColor ?? '#FFFFFF';
|
|
43
|
+
const bgOpacity = style.backgroundOpacity ?? 0.75;
|
|
44
|
+
const padding = style.padding ?? 18;
|
|
45
|
+
const shadow = style.shadow ?? 0;
|
|
46
|
+
const position = style.position ?? 'bottom';
|
|
47
|
+
const marginV = style.marginVertical ?? style.marginBottom ?? 50;
|
|
48
|
+
const marginH = style.marginHorizontal ?? 80;
|
|
49
|
+
const bold = style.bold !== false ? -1 : 0; // ASS: -1 = bold, 0 = normal
|
|
50
|
+
const wrapStyle = resolveWrapStyle(style.wrapStyle);
|
|
51
|
+
// ASS alignment: bottom-center=2, top-center=8
|
|
52
|
+
const alignment = position === 'top' ? 8 : 2;
|
|
53
|
+
// Convert colors to ASS format
|
|
54
|
+
const assPrimary = hexToAss(primaryColor, 1.0);
|
|
55
|
+
const assSecondary = hexToAss('#000000', 0.0); // unused
|
|
56
|
+
// OutlineColour = same as BackColour so outline acts as padding extension
|
|
57
|
+
const assOutline = hexToAss(bgColor, bgOpacity);
|
|
58
|
+
const assBack = hexToAss(bgColor, bgOpacity);
|
|
59
|
+
// Build style line
|
|
60
|
+
// Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour,
|
|
61
|
+
// OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut,
|
|
62
|
+
// ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow,
|
|
63
|
+
// Alignment, MarginL, MarginR, MarginV, Encoding
|
|
64
|
+
const styleLine = [
|
|
65
|
+
'Default',
|
|
66
|
+
fontFamily,
|
|
67
|
+
fontSize,
|
|
68
|
+
assPrimary,
|
|
69
|
+
assSecondary,
|
|
70
|
+
assOutline,
|
|
71
|
+
assBack,
|
|
72
|
+
bold, // Bold
|
|
73
|
+
0, // Italic
|
|
74
|
+
0, // Underline
|
|
75
|
+
0, // StrikeOut
|
|
76
|
+
100, // ScaleX
|
|
77
|
+
100, // ScaleY
|
|
78
|
+
0, // Spacing
|
|
79
|
+
0, // Angle
|
|
80
|
+
3, // BorderStyle (3 = opaque box)
|
|
81
|
+
padding, // Outline (acts as box padding in BorderStyle=3)
|
|
82
|
+
shadow, // Shadow
|
|
83
|
+
alignment,
|
|
84
|
+
marginH, // MarginL
|
|
85
|
+
marginH, // MarginR
|
|
86
|
+
marginV, // MarginV
|
|
87
|
+
1, // Encoding (1 = default)
|
|
88
|
+
].join(',');
|
|
89
|
+
// Build dialogue lines
|
|
90
|
+
const dialogues = entries.map((entry) => {
|
|
91
|
+
const start = formatAssTime(entry.startMs);
|
|
92
|
+
const end = formatAssTime(entry.endMs);
|
|
93
|
+
// Escape special ASS characters and convert newlines
|
|
94
|
+
const text = entry.text
|
|
95
|
+
.replace(/\\/g, '\\\\')
|
|
96
|
+
.replace(/\{/g, '\\{')
|
|
97
|
+
.replace(/\}/g, '\\}')
|
|
98
|
+
.replace(/\n/g, '\\N');
|
|
99
|
+
return `Dialogue: 0,${start},${end},Default,,0,0,0,,${text}`;
|
|
100
|
+
});
|
|
101
|
+
return [
|
|
102
|
+
'[Script Info]',
|
|
103
|
+
'ScriptType: v4.00+',
|
|
104
|
+
`PlayResX: ${resolution.width}`,
|
|
105
|
+
`PlayResY: ${resolution.height}`,
|
|
106
|
+
`WrapStyle: ${wrapStyle}`,
|
|
107
|
+
'',
|
|
108
|
+
'[V4+ Styles]',
|
|
109
|
+
'Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding',
|
|
110
|
+
`Style: ${styleLine}`,
|
|
111
|
+
'',
|
|
112
|
+
'[Events]',
|
|
113
|
+
'Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text',
|
|
114
|
+
...dialogues,
|
|
115
|
+
'', // trailing newline
|
|
116
|
+
].join('\n');
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=ass-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ass-writer.js","sourceRoot":"","sources":["../../src/subtitles/ass-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SubtitleEntry } from '../types/subtitle.js';
|
|
2
|
+
export interface ChunkOptions {
|
|
3
|
+
/** Max characters per line before forcing a split (default: 60) */
|
|
4
|
+
maxCharsPerLine?: number;
|
|
5
|
+
/** Min characters — don't create tiny fragments (default: 15) */
|
|
6
|
+
minCharsPerChunk?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Split subtitle entries into shorter, single-line chunks based on
|
|
10
|
+
* punctuation. Time is distributed proportionally by character count.
|
|
11
|
+
*
|
|
12
|
+
* Splitting priority:
|
|
13
|
+
* 1. Sentence boundaries: . ! ?
|
|
14
|
+
* 2. Clause boundaries: , ; : – —
|
|
15
|
+
* 3. Word boundary (fallback if still too long)
|
|
16
|
+
*/
|
|
17
|
+
export declare function chunkSubtitles(entries: SubtitleEntry[], options?: ChunkOptions): SubtitleEntry[];
|
|
18
|
+
//# sourceMappingURL=subtitle-chunker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subtitle-chunker.d.ts","sourceRoot":"","sources":["../../src/subtitles/subtitle-chunker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,CAAC,EAAE,YAAY,GACrB,aAAa,EAAE,CAuCjB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Split subtitle entries into shorter, single-line chunks based on
|
|
3
|
+
* punctuation. Time is distributed proportionally by character count.
|
|
4
|
+
*
|
|
5
|
+
* Splitting priority:
|
|
6
|
+
* 1. Sentence boundaries: . ! ?
|
|
7
|
+
* 2. Clause boundaries: , ; : – —
|
|
8
|
+
* 3. Word boundary (fallback if still too long)
|
|
9
|
+
*/
|
|
10
|
+
export function chunkSubtitles(entries, options) {
|
|
11
|
+
const maxChars = options?.maxCharsPerLine ?? 60;
|
|
12
|
+
const minChars = options?.minCharsPerChunk ?? 15;
|
|
13
|
+
const result = [];
|
|
14
|
+
let globalIndex = 1;
|
|
15
|
+
for (const entry of entries) {
|
|
16
|
+
const chunks = splitText(entry.text, maxChars, minChars);
|
|
17
|
+
if (chunks.length <= 1) {
|
|
18
|
+
result.push({ ...entry, index: globalIndex++ });
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
// Distribute time proportionally by character count
|
|
22
|
+
const totalChars = chunks.reduce((sum, c) => sum + c.length, 0);
|
|
23
|
+
const totalDuration = entry.endMs - entry.startMs;
|
|
24
|
+
let cursor = entry.startMs;
|
|
25
|
+
for (const chunk of chunks) {
|
|
26
|
+
const ratio = chunk.length / totalChars;
|
|
27
|
+
const duration = totalDuration * ratio;
|
|
28
|
+
const endMs = cursor + duration;
|
|
29
|
+
result.push({
|
|
30
|
+
index: globalIndex++,
|
|
31
|
+
startMs: Math.round(cursor),
|
|
32
|
+
endMs: Math.round(endMs),
|
|
33
|
+
text: chunk,
|
|
34
|
+
keyword: entry.keyword,
|
|
35
|
+
zoom: entry.zoom,
|
|
36
|
+
});
|
|
37
|
+
cursor = endMs;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
/** Sentence-ending punctuation */
|
|
43
|
+
const SENTENCE_END = /([.!?])\s+/;
|
|
44
|
+
/** Clause-boundary punctuation */
|
|
45
|
+
const CLAUSE_BREAK = /([,;:–—])\s+/;
|
|
46
|
+
/**
|
|
47
|
+
* Split text into chunks respecting punctuation boundaries.
|
|
48
|
+
*/
|
|
49
|
+
function splitText(text, maxChars, minChars) {
|
|
50
|
+
const trimmed = text.trim();
|
|
51
|
+
if (trimmed.length <= maxChars)
|
|
52
|
+
return [trimmed];
|
|
53
|
+
// Phase 1: Split on sentence boundaries
|
|
54
|
+
let segments = splitOnPattern(trimmed, SENTENCE_END);
|
|
55
|
+
// Phase 2: Further split long segments on clause boundaries
|
|
56
|
+
segments = segments.flatMap((seg) => seg.length > maxChars ? splitOnPattern(seg, CLAUSE_BREAK) : [seg]);
|
|
57
|
+
// Phase 3: Split remaining long segments at word boundaries
|
|
58
|
+
segments = segments.flatMap((seg) => seg.length > maxChars ? splitAtWordBoundary(seg, maxChars) : [seg]);
|
|
59
|
+
// Phase 4: Merge tiny fragments back into their neighbor
|
|
60
|
+
return mergeSmallChunks(segments, minChars);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Split text on a regex pattern, keeping the punctuation with the preceding chunk.
|
|
64
|
+
*/
|
|
65
|
+
function splitOnPattern(text, pattern) {
|
|
66
|
+
const parts = [];
|
|
67
|
+
let remaining = text;
|
|
68
|
+
while (remaining.length > 0) {
|
|
69
|
+
const match = pattern.exec(remaining);
|
|
70
|
+
if (!match || match.index === undefined) {
|
|
71
|
+
parts.push(remaining.trim());
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
// Include the punctuation mark with the preceding text
|
|
75
|
+
const splitAt = match.index + match[1].length;
|
|
76
|
+
const before = remaining.slice(0, splitAt).trim();
|
|
77
|
+
if (before)
|
|
78
|
+
parts.push(before);
|
|
79
|
+
remaining = remaining.slice(splitAt).trim();
|
|
80
|
+
}
|
|
81
|
+
return parts.filter((p) => p.length > 0);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Split a long segment at the word boundary closest to the target length.
|
|
85
|
+
*/
|
|
86
|
+
function splitAtWordBoundary(text, maxChars) {
|
|
87
|
+
const results = [];
|
|
88
|
+
let remaining = text;
|
|
89
|
+
while (remaining.length > maxChars) {
|
|
90
|
+
let splitAt = -1;
|
|
91
|
+
for (let i = maxChars; i >= 1; i--) {
|
|
92
|
+
if (remaining[i] === ' ') {
|
|
93
|
+
splitAt = i;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (splitAt === -1) {
|
|
98
|
+
splitAt = maxChars;
|
|
99
|
+
}
|
|
100
|
+
results.push(remaining.slice(0, splitAt).trim());
|
|
101
|
+
remaining = remaining.slice(splitAt).trim();
|
|
102
|
+
}
|
|
103
|
+
if (remaining.length > 0) {
|
|
104
|
+
results.push(remaining);
|
|
105
|
+
}
|
|
106
|
+
return results;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Merge chunks shorter than minChars FORWARD into the next chunk.
|
|
110
|
+
* Preserves sentence boundaries — small fragments get prepended
|
|
111
|
+
* to the next clause, not appended to the previous sentence.
|
|
112
|
+
*/
|
|
113
|
+
function mergeSmallChunks(chunks, minChars) {
|
|
114
|
+
if (chunks.length <= 1)
|
|
115
|
+
return chunks;
|
|
116
|
+
const result = [];
|
|
117
|
+
let carry = '';
|
|
118
|
+
for (const chunk of chunks) {
|
|
119
|
+
if (carry) {
|
|
120
|
+
result.push(carry + ' ' + chunk);
|
|
121
|
+
carry = '';
|
|
122
|
+
}
|
|
123
|
+
else if (chunk.length < minChars) {
|
|
124
|
+
carry = chunk;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
result.push(chunk);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (carry && result.length > 0) {
|
|
131
|
+
result[result.length - 1] += ' ' + carry;
|
|
132
|
+
}
|
|
133
|
+
else if (carry) {
|
|
134
|
+
result.push(carry);
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=subtitle-chunker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subtitle-chunker.js","sourceRoot":"","sources":["../../src/subtitles/subtitle-chunker.ts"],"names":[],"mappings":"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"}
|
package/dist/types/render.d.ts
CHANGED
|
@@ -26,11 +26,38 @@ export interface RenderConfig {
|
|
|
26
26
|
crf?: number;
|
|
27
27
|
}
|
|
28
28
|
export interface SubtitleStyle {
|
|
29
|
+
/** Font family name (default: 'Arial') */
|
|
29
30
|
fontFamily?: string;
|
|
31
|
+
/** Font size in script pixels relative to 1080p (default: 52) */
|
|
30
32
|
fontSize?: number;
|
|
31
|
-
color
|
|
33
|
+
/** Text color as hex '#RRGGBB' (default: '#1a1a1a') */
|
|
34
|
+
primaryColor?: string;
|
|
35
|
+
/** Background box color as hex '#RRGGBB' (default: '#FFFFFF') */
|
|
32
36
|
backgroundColor?: string;
|
|
37
|
+
/** Background opacity 0.0 (transparent) to 1.0 (opaque) (default: 0.75) */
|
|
38
|
+
backgroundOpacity?: number;
|
|
39
|
+
/** Box padding in pixels — extends background around text (default: 18) */
|
|
40
|
+
padding?: number;
|
|
41
|
+
/** Shadow distance in pixels (default: 0) */
|
|
42
|
+
shadow?: number;
|
|
43
|
+
/** Vertical position: 'bottom' or 'top' (default: 'bottom') */
|
|
33
44
|
position?: 'bottom' | 'top';
|
|
45
|
+
/** Bottom/top margin in pixels (default: 50) */
|
|
46
|
+
marginVertical?: number;
|
|
47
|
+
/** Left/right margin in pixels (default: 80) */
|
|
48
|
+
marginHorizontal?: number;
|
|
49
|
+
/** Bold text (default: true) */
|
|
50
|
+
bold?: boolean;
|
|
51
|
+
/** Word wrap: 'smart' (even lines), 'endOfLine', 'none' (default: 'smart') */
|
|
52
|
+
wrapStyle?: 'smart' | 'endOfLine' | 'none';
|
|
53
|
+
/** Split long subtitles into shorter single-line chunks (null = no chunking) */
|
|
54
|
+
chunkOptions?: {
|
|
55
|
+
maxCharsPerLine?: number;
|
|
56
|
+
minCharsPerChunk?: number;
|
|
57
|
+
} | null;
|
|
58
|
+
/** @deprecated Use primaryColor */
|
|
59
|
+
color?: string;
|
|
60
|
+
/** @deprecated Use marginVertical */
|
|
34
61
|
marginBottom?: number;
|
|
35
62
|
}
|
|
36
63
|
/** Resolved resolution in pixels */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/types/render.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,mEAAmE;IACnE,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/types/render.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,mEAAmE;IACnE,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAC3B,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gCAAgC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,CAAA;IAC1C,gFAAgF;IAChF,YAAY,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAG7E,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,oCAAoC;AACpC,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,GACrC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAanC"}
|
package/dist/types/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/types/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/types/render.ts"],"names":[],"mappings":"AA6DA,oCAAoC;AACpC,MAAM,UAAU,iBAAiB,CAC/B,UAAsC;IAEtC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IACnE,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QACrC,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACtC,KAAK,IAAI;YACP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACtC,KAAK,OAAO,CAAC;QACb;YACE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACxC,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "playwright-recast",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Fluent pipeline library for processing Playwright traces into polished demo videos — TTS voiceover, subtitles, speed control, and zoom.",
|
|
6
6
|
"license": "MIT",
|