@scenerok/sdk 0.9.0 → 0.10.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.
package/dist/ir.d.ts CHANGED
@@ -1,16 +1,47 @@
1
1
  /**
2
- * IRTimeline contract — mirrors src/types/ir.ts so the SDK can ship standalone.
3
- * Keep fields in sync with the platform IR; Pass 2 consumes this shape.
2
+ * IRTimeline contract — a copy of the platform's `src/types/ir.ts` so the SDK
3
+ * ships standalone. Keep the two in sync: Pass 2 (preview and render) consumes
4
+ * this shape, and `src/lib/sdk-runtime/ir-parity.unit.test.ts` fails when they
5
+ * drift.
6
+ */
7
+ /**
8
+ * Source-text correlation for timeline editing. When present, records the
9
+ * character-offset span of the originating `[ ... ]` timespec in the VidScript
10
+ * source (`start` is the offset of the `[`). Used by the editor timeline to map
11
+ * IR elements back to their source block for surgical start/end edits. Additive
12
+ * metadata only — never affects rendering.
4
13
  */
5
14
  export interface IRSourceTimespec {
6
15
  start: number;
7
16
  end: number;
8
17
  }
18
+ /**
19
+ * A rectangle of the picture to show, in pixels from its top-left. A clip's is
20
+ * in its source's pixels; a group's is in its target's. The drawn size stays
21
+ * `width` × `height` of the item; the crop picks which part fills it.
22
+ */
23
+ export interface IRCrop {
24
+ x: number;
25
+ y: number;
26
+ width: number;
27
+ height: number;
28
+ }
29
+ /** How a matte's picture scales the item below it: its alpha, its luminance, or one minus its alpha. */
30
+ export type IRMaskMode = 'alpha' | 'luma' | 'inverted';
9
31
  export interface IRTimeline {
10
32
  version: 1;
11
33
  width: number;
12
34
  height: number;
13
35
  fps: number;
36
+ /**
37
+ * Exact frame duration `num / den` seconds, set only when `fps` is a
38
+ * non-integer NTSC rate (23.976 is `{ num: 1001, den: 24000 }`). Absent for
39
+ * integer fps. `fps` stays the nominal number.
40
+ */
41
+ timeBase?: {
42
+ num: number;
43
+ den: number;
44
+ };
14
45
  duration: number;
15
46
  background: string;
16
47
  clips: IRClip[];
@@ -19,17 +50,121 @@ export interface IRTimeline {
19
50
  effects: IREffect[];
20
51
  audio: IRAudioTrack[];
21
52
  output: IROutput;
53
+ /** Closed items rendered offscreen and drawn as one clip (plan-v1/39 §6). */
54
+ groups?: IRGroup[];
55
+ /** Named instants (`marker(...)`). Timeline data only — never affects rendering. */
56
+ markers?: IRMarker[];
57
+ /** Resolved extents of `use <timeline>` statements — additive metadata for editor tooling, never affects rendering. */
22
58
  timelineUses?: IRTimelineUse[];
23
59
  }
60
+ /**
61
+ * A named time on the timeline (`marker("act 2")`). Markers carry editorial
62
+ * meaning (chapters, act breaks, sync points) and are exported as OTIO markers;
63
+ * no renderer reads them.
64
+ */
65
+ export interface IRMarker {
66
+ id: string;
67
+ name: string;
68
+ /** Seconds from the timeline start. */
69
+ time: number;
70
+ duration: number;
71
+ metadata?: Record<string, unknown>;
72
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
73
+ sourceTimespec?: IRSourceTimespec;
74
+ }
75
+ /**
76
+ * A set of items rendered into an offscreen picture, then drawn into its
77
+ * parent as one textured quad (plan-v1/39 §6). Children are in group-local
78
+ * time: 0 is `start`. Audio never lives in a group; it shifts into `ir.audio`
79
+ * at the placement offset.
80
+ */
81
+ export interface IRGroup {
82
+ id: string;
83
+ start: number;
84
+ end: number;
85
+ clips: IRClip[];
86
+ layers: IRLayer[];
87
+ surfaces: IRSurface[];
88
+ groups?: IRGroup[];
89
+ /** Graded on the group's picture only, before it is drawn into the parent. */
90
+ effects?: IREffect[];
91
+ /** Picture size of the offscreen target, in output pixels. */
92
+ width: number;
93
+ height: number;
94
+ /**
95
+ * Size the picture is drawn at in the parent when it differs from the target
96
+ * (`width:` / `height:` on a placed value scale the picture; children stay
97
+ * laid out in `width` × `height`).
98
+ */
99
+ displayWidth?: number;
100
+ displayHeight?: number;
101
+ /** Placement of the picture in the parent, same meaning as IRClip. */
102
+ x: number;
103
+ y: number;
104
+ opacity: number;
105
+ /** Blend mode over the parent's picture below (`Composite` modes). */
106
+ blend?: string;
107
+ /** Rounded-corner radius in output pixels. */
108
+ radius?: number;
109
+ /** Four corner points in the parent's output pixels, TL → TR → BR → BL. */
110
+ corners?: [number, number][];
111
+ /** Part of the target to show, in target pixels (`Crop`). */
112
+ crop?: IRCrop;
113
+ /**
114
+ * The matte, rendered into a target of its own and sampled over the picture
115
+ * (`Mask`). `group` is in this group's local time and target pixels; its own
116
+ * placement fields are unused.
117
+ */
118
+ mask?: {
119
+ group: IRGroup;
120
+ mode: IRMaskMode;
121
+ };
122
+ motion?: IRMotionTrack[];
123
+ animations?: IRAnimation[];
124
+ /** Blur the group's own motion by accumulating sub-frames (`motion_blur:`). */
125
+ motionBlur?: IRMotionBlur;
126
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
127
+ sourceTimespec?: IRSourceTimespec;
128
+ }
129
+ /**
130
+ * Sub-frame accumulation for an item's own motion. `shutter` is the exposure
131
+ * as an angle (360 = the whole frame interval), `samples` the sub-frames
132
+ * averaged; each sample is another render of the frame.
133
+ */
134
+ export interface IRMotionBlur {
135
+ shutter: number;
136
+ samples: number;
137
+ }
24
138
  export interface IRTimelineUse {
139
+ /** Timeline name as referenced at the use site. */
25
140
  name: string;
141
+ /** Character offset of the use statement's `at` time spec in source. */
26
142
  sourceOffset: number;
27
143
  start: number;
28
144
  end: number;
29
145
  }
146
+ /**
147
+ * A clip whose `source` is a numbered-file pattern (`shot.%04d.png`) rather than
148
+ * one media file. Source time maps to a frame file through `clip-time.ts`.
149
+ */
150
+ export interface IRImageSequence {
151
+ /** Number in the first frame's file name. */
152
+ first: number;
153
+ /** How many numbered frames exist, from `first`. */
154
+ count: number;
155
+ /** Frames per second of the sequence. Omitted: the output fps. */
156
+ rate?: number;
157
+ }
30
158
  export interface IRClip {
31
159
  id: string;
32
160
  source: string;
161
+ /** Present when `source` is a frame-file pattern (`input frames = "shot.%04d.png"`). */
162
+ sequence?: IRImageSequence;
163
+ /**
164
+ * Frame rate the video source is interpreted at (`input a = "x.mp4", rate: 23.976`).
165
+ * Source time is conformed to that frame grid before sampling. Omitted: the file's own rate, unconformed.
166
+ */
167
+ sourceRate?: number;
33
168
  start: number;
34
169
  end: number;
35
170
  trimStart: number;
@@ -41,11 +176,38 @@ export interface IRClip {
41
176
  height: number;
42
177
  x: number;
43
178
  y: number;
179
+ /** Rounded-corner radius in output pixels (`video …, radius:`). */
180
+ radius?: number;
181
+ /** Four corner points in output pixels, TL → TR → BR → BL (`video …, corners:`). */
182
+ corners?: [number, number][];
183
+ /** Part of the source to show, in source pixels (`Crop`); `width` × `height` stay the drawn size. */
184
+ crop?: IRCrop;
185
+ /** Per-clip grade (`filter …, target: a` and `input_colorspace`/`output_colorspace`). */
186
+ effects?: IREffect[];
187
+ /** Color-space conversion applied to this clip only. */
188
+ colorspace?: {
189
+ input?: string;
190
+ output?: string;
191
+ };
44
192
  animations?: IRAnimation[];
45
193
  motion?: IRMotionTrack[];
194
+ /** Blur the clip's own motion by accumulating sub-frames (`motion_blur:`). */
195
+ motionBlur?: IRMotionBlur;
196
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
46
197
  sourceTimespec?: IRSourceTimespec;
198
+ /**
199
+ * The source file was missing at compile time (`output ..., allow_offline: true`).
200
+ * `source` is kept for relinking and OTIO export, but nothing may fetch, decode, or
201
+ * draw it: the compiler emits a `solid` surface and a text label over the same span
202
+ * as the slate. Every media path skips an offline clip (`isOfflineClip`).
203
+ */
204
+ offline?: boolean;
47
205
  }
48
206
  export type IRLayer = IRTextLayer | IRVideoOverlayLayer | IRCompositeLayer;
207
+ /**
208
+ * Future unified surface abstraction.
209
+ * For now this is aspirational — existing layers will gradually migrate toward it.
210
+ */
49
211
  export interface IRSurface {
50
212
  id: string;
51
213
  type: 'text' | 'video' | 'image' | 'mesh' | 'lottie' | string;
@@ -65,9 +227,13 @@ export interface IRTextLayer {
65
227
  start: number;
66
228
  end: number;
67
229
  style: IRTextStyle;
230
+ /** Structured animations (preferred over the legacy `style.animation` string) */
68
231
  animations?: IRAnimation[];
232
+ /** Property/keyframe motion tracks shared by preview and render engines */
69
233
  motion?: IRMotionTrack[];
234
+ /** Phase 3: Effects attached to this text surface */
70
235
  effects?: IREffect[];
236
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
71
237
  sourceTimespec?: IRSourceTimespec;
72
238
  }
73
239
  export interface IRTextStyle {
@@ -78,6 +244,7 @@ export interface IRTextStyle {
78
244
  stroke: string;
79
245
  strokeWidth: number;
80
246
  position: string;
247
+ /** @deprecated Use `animations` instead. Kept for backward compatibility. */
81
248
  animation?: string;
82
249
  bold: boolean;
83
250
  italic: boolean;
@@ -92,6 +259,8 @@ export interface IRTextStyle {
92
259
  shadowBlur: number;
93
260
  shadowOffsetX: number;
94
261
  shadowOffsetY: number;
262
+ /** Per-token reveal: `text …, stagger: "word" | "char"`. */
263
+ stagger?: 'word' | 'char';
95
264
  fit?: 'none' | 'wrap' | 'shrink' | 'wrap-shrink';
96
265
  overflow?: 'contain' | 'crop' | 'allow';
97
266
  safeArea?: number | string;
@@ -100,9 +269,15 @@ export interface IRTextStyle {
100
269
  maxLines?: number;
101
270
  anchor?: 'left' | 'center' | 'right' | 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
102
271
  }
272
+ /**
273
+ * Animation descriptor. Produced by animation plugins (e.g. basic-animations).
274
+ * The renderer (preview + final) is responsible for interpreting these.
275
+ */
103
276
  export interface IRAnimation {
104
277
  id: string;
278
+ /** Animation type, e.g. "fade", "slideY", "scale", "kenBurns", or plugin-specific */
105
279
  type: string;
280
+ /** Which plugin produced this animation (for debugging + future versioning) */
106
281
  plugin?: string;
107
282
  from: Record<string, unknown>;
108
283
  to: Record<string, unknown>;
@@ -140,7 +315,9 @@ export interface IRVideoOverlayLayer {
140
315
  x: number;
141
316
  y: number;
142
317
  opacity: number;
318
+ /** Phase 3: Effects attached to this video overlay surface */
143
319
  effects?: IREffect[];
320
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
144
321
  sourceTimespec?: IRSourceTimespec;
145
322
  }
146
323
  export interface IRCompositeLayer {
@@ -154,6 +331,7 @@ export interface IRCompositeLayer {
154
331
  y: number;
155
332
  opacity: number;
156
333
  mode: string;
334
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
157
335
  sourceTimespec?: IRSourceTimespec;
158
336
  }
159
337
  export type IREffect = IRBuiltinEffect | IRShaderEffect;
@@ -164,6 +342,7 @@ export interface IRBuiltinEffect {
164
342
  start: number;
165
343
  end: number;
166
344
  params: Record<string, number | string>;
345
+ /** Phase 3: animations targeting specific param keys (e.g. grayscale intensity) */
167
346
  animations?: IRAnimation[];
168
347
  motion?: IRMotionTrack[];
169
348
  }
@@ -174,6 +353,7 @@ export interface IRShaderEffect {
174
353
  start: number;
175
354
  end: number;
176
355
  params: Record<string, number | string>;
356
+ /** Phase 3: animations targeting specific param keys */
177
357
  animations?: IRAnimation[];
178
358
  motion?: IRMotionTrack[];
179
359
  }
@@ -185,10 +365,23 @@ export interface IRAudioTrack {
185
365
  volume: number;
186
366
  fadeIn: number;
187
367
  fadeOut: number;
368
+ /** Source in-point in seconds (`audio …, trim_start:`). Playback starts this far into the file. */
369
+ sourceOffset?: number;
370
+ /** Stereo placement in [-1, 1] (`audio …, pan:`). Constant-power panning. */
371
+ pan?: number;
372
+ /**
373
+ * Source path of a track that ducks this one (`audio …, duck_under:`).
374
+ * While that track plays, this bed is pulled down by the shared gain curve.
375
+ */
376
+ duckUnder?: string;
377
+ /** Gain automation (`audio …, animate: { type: "volume", … }`). */
378
+ motion?: IRMotionTrack[];
379
+ animations?: IRAnimation[];
188
380
  loudnessNormalization?: 'ebu-r128';
189
381
  targetLufs?: number;
190
382
  truePeakDb?: number;
191
383
  loudnessRangeLufs?: number;
384
+ /** Source `[ ... ]` offset span of the originating block (timeline editing). */
192
385
  sourceTimespec?: IRSourceTimespec;
193
386
  }
194
387
  export interface IROutput {
@@ -198,6 +391,14 @@ export interface IROutput {
198
391
  bitrate: string;
199
392
  resolution: string;
200
393
  fps: number;
394
+ /** `output ..., alpha: true`: encode the alpha channel (`mov` ProRes 4444 or `webm` VP9). */
395
+ alpha?: boolean;
396
+ /** `output ..., start_timecode: "HH:MM:SS:FF"`: timecode of the first frame (non-drop-frame). */
397
+ startTimecode?: string;
398
+ /** `output ..., burn_in: "timecode"`: draw the running timecode onto the picture. */
399
+ burnIn?: 'timecode';
400
+ /** `output ..., allow_offline: true`: an input whose file is missing at compile time becomes an offline slate instead of an error. */
401
+ allowOffline?: boolean;
201
402
  }
202
403
  export declare function defaultIROutput(): IROutput;
203
404
  export declare function defaultIRTimeline(): IRTimeline;
package/dist/ir.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"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"}
package/dist/ir.js CHANGED
@@ -1,6 +1,8 @@
1
1
  /**
2
- * IRTimeline contract — mirrors src/types/ir.ts so the SDK can ship standalone.
3
- * Keep fields in sync with the platform IR; Pass 2 consumes this shape.
2
+ * IRTimeline contract — a copy of the platform's `src/types/ir.ts` so the SDK
3
+ * ships standalone. Keep the two in sync: Pass 2 (preview and render) consumes
4
+ * this shape, and `src/lib/sdk-runtime/ir-parity.unit.test.ts` fails when they
5
+ * drift.
4
6
  */
5
7
  export function defaultIROutput() {
6
8
  return {
package/dist/media.d.ts CHANGED
@@ -1,15 +1,59 @@
1
- import type { AudioOptions, AudioTrack, FilterEffect, ShaderEffect, TextLayer, TextOptions, VideoClip, VideoOptions } from './types.js';
2
- /** Create a video clip from a path/URL. Pass `duration` when the asset is not probed yet. */
1
+ import { type TimeInput } from './duration.js';
2
+ import type { IRCrop } from './ir.js';
3
+ import { type AudioOptions, type AudioTrack, type ClipEdits, type FilterEffect, type GapNode, type ImageClip, type ImageOptions, type ImageSequenceOptions, type MarkerNode, type MaskOptions, type MaskSpec, type PictureNode, type ShaderEffect, type SolidNode, type SolidOptions, type TextLayer, type TextOptions, type VideoClip, type VideoOptions } from './types.js';
4
+ /** Length of a still or text appended with `push` and no explicit duration. */
5
+ export declare const DEFAULT_STILL_LENGTH = 3;
6
+ /**
7
+ * A trim on a trimmed value is relative to what the first kept:
8
+ * `clip.trim(10, 20).trim(2, 4)` plays source 12–14 s. Past the kept range is an error.
9
+ */
10
+ export declare function composeTrim(previous: {
11
+ trimStart?: number;
12
+ trimEnd?: number;
13
+ }, start: TimeInput | undefined, end: TimeInput | undefined): {
14
+ trimStart: number;
15
+ trimEnd: number;
16
+ };
17
+ /** A crop on a cropped value is relative to the first, like `trim`. */
18
+ export declare function composeCrop(previous: IRCrop | undefined, x: number, y: number, width: number, height: number): IRCrop;
19
+ export declare function makeMask(matte: PictureNode, options?: MaskOptions): MaskSpec;
20
+ /** A grade scoped to one value. LUTs read a file at compile time, so they stay a VidScript statement. */
21
+ export declare function makeClipEffect(name: string, params?: Record<string, number | string>): {
22
+ type: "builtin";
23
+ id: string;
24
+ name: string;
25
+ start: number;
26
+ end: number;
27
+ params: {
28
+ [x: string]: string | number;
29
+ };
30
+ };
31
+ /** How long a clip plays: the source range at `|speed|`, `loop` times; 0 when unknown. */
32
+ export declare function playedLength(edits: ClipEdits, mediaDuration: number | undefined): number;
33
+ /** A video clip from a path/URL. Pass `duration` when the asset is not probed yet. */
3
34
  export declare function video(source: string, options?: VideoOptions): VideoClip;
4
35
  /** Probe a video duration when omitted, then create a video clip. */
5
36
  export declare function loadVideo(source: string, options?: VideoOptions): Promise<VideoClip>;
6
- /** Create a text layer. */
37
+ /** A still image. It fills its placement window (`image ≤ video`). */
38
+ export declare function image(source: string, options?: ImageOptions): ImageClip;
39
+ /**
40
+ * A numbered-frame source (`input frames = "shot.%04d.png", count: 24, rate: 12`).
41
+ * Plays `count / rate` seconds; `rate` defaults to the timeline fps.
42
+ */
43
+ export declare function imageSequence(pattern: string, options: ImageSequenceOptions): VideoClip;
44
+ /** A text layer. */
7
45
  export declare function text(content: string, options?: TextOptions): TextLayer;
8
- /** Create an audio track. */
46
+ /** An audio track. */
9
47
  export declare function audio(source: string, options?: AudioOptions): AudioTrack;
10
48
  /** Probe an audio duration when omitted, then create an audio track. */
11
49
  export declare function loadAudio(source: string, options?: AudioOptions): Promise<AudioTrack>;
12
- /** Builtin post-processing filter (e.g. glow, blur). */
50
+ /** A flat-colour rectangle — full frame unless sized. With `radius`/`corners` it is a shape matte. */
51
+ export declare function solid(color: string, options?: SolidOptions): SolidNode;
52
+ /** A transparent gap: `t.push(gap(), 2)` advances the playhead by 2 s. */
53
+ export declare function gap(): GapNode;
54
+ /** A named instant (`t[4][4] = marker('act 2')`). Exported as an OTIO marker; never rendered. */
55
+ export declare function marker(name: string, metadata?: Record<string, unknown>): MarkerNode;
56
+ /** Builtin post-processing filter over the frame (e.g. glow, blur). */
13
57
  export declare function filter(name: string, params?: Record<string, number | string>): FilterEffect;
14
58
  /** Custom GLSL shader effect. */
15
59
  export declare function shader(shaderSource: string, params?: Record<string, number | string>): ShaderEffect;
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAcpB,6FAA6F;AAC7F,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,SAAS,CAuB3E;AAED,qEAAqE;AACrE,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAI9F;AAED,2BAA2B;AAC3B,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,SAAS,CAoB1E;AAED,6BAA6B;AAC7B,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,UAAU,CAa5E;AAED,wEAAwE;AACxE,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAI/F;AAED,wDAAwD;AACxD,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAC3C,YAAY,CAOd;AAED,iCAAiC;AACjC,wBAAgB,MAAM,CACpB,YAAY,EAAE,MAAM,EACpB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,GAC3C,YAAY,CAOd"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"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"}