@hyperframes/core 0.8.62 → 0.8.64
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/generated/position-edits-render-inline.js +1 -1
- package/dist/generated/runtime-inline.js +1 -1
- package/dist/generated/runtime-inline.js.map +1 -1
- package/dist/hyperframe.runtime.iife.js +191 -28
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/domRealm.d.ts +2 -0
- package/dist/runtime/domRealm.d.ts.map +1 -1
- package/dist/runtime/domRealm.js +4 -0
- package/dist/runtime/domRealm.js.map +1 -1
- package/dist/vfx/displacementMap.frag.d.ts +41 -0
- package/dist/vfx/displacementMap.frag.d.ts.map +1 -0
- package/dist/vfx/displacementMap.frag.js +85 -0
- package/dist/vfx/displacementMap.frag.js.map +1 -0
- package/dist/vfx/fractalNoise.frag.d.ts +45 -0
- package/dist/vfx/fractalNoise.frag.d.ts.map +1 -0
- package/dist/vfx/fractalNoise.frag.js +126 -0
- package/dist/vfx/fractalNoise.frag.js.map +1 -0
- package/dist/vfx/refs/displacementMap.d.ts +34 -0
- package/dist/vfx/refs/displacementMap.d.ts.map +1 -0
- package/dist/vfx/refs/displacementMap.js +53 -0
- package/dist/vfx/refs/displacementMap.js.map +1 -0
- package/dist/vfx/refs/fractalNoise.d.ts +33 -0
- package/dist/vfx/refs/fractalNoise.d.ts.map +1 -0
- package/dist/vfx/refs/fractalNoise.js +94 -0
- package/dist/vfx/refs/fractalNoise.js.map +1 -0
- package/dist/vfx/refs/waveWarp.d.ts +19 -0
- package/dist/vfx/refs/waveWarp.d.ts.map +1 -0
- package/dist/vfx/refs/waveWarp.js +25 -0
- package/dist/vfx/refs/waveWarp.js.map +1 -0
- package/dist/vfx/waveWarp.frag.d.ts +38 -0
- package/dist/vfx/waveWarp.frag.d.ts.map +1 -0
- package/dist/vfx/waveWarp.frag.js +74 -0
- package/dist/vfx/waveWarp.frag.js.map +1 -0
- package/dist/vfx.d.ts +121 -0
- package/dist/vfx.d.ts.map +1 -0
- package/dist/vfx.js +488 -0
- package/dist/vfx.js.map +1 -0
- package/package.json +4 -4
package/dist/vfx.js
ADDED
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VFX chain: the one description of every per-pixel effect that can be
|
|
3
|
+
* applied to a layer's own pixels through the WebGL2 runtime.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors `audioFx.ts` (`data-fx-chain`) in shape: a versioned JSON chain
|
|
6
|
+
* attribute, a def registry with typed params, and parse/serialize/normalize
|
|
7
|
+
* helpers so the exporter and the runtime agree on one description of each
|
|
8
|
+
* effect.
|
|
9
|
+
*/
|
|
10
|
+
import { FRACTAL_NOISE_FRAG } from "./vfx/fractalNoise.frag.js";
|
|
11
|
+
import { DISPLACEMENT_MAP_FRAG } from "./vfx/displacementMap.frag.js";
|
|
12
|
+
import { WAVE_WARP_FRAG } from "./vfx/waveWarp.frag.js";
|
|
13
|
+
export const HF_VFX_ATTR = "data-vfx-chain";
|
|
14
|
+
/**
|
|
15
|
+
* Chain files are versioned; a reader must refuse a version it doesn't know.
|
|
16
|
+
* Exported for the exporter (hyperframes-ae-mcp), which stamps the version it
|
|
17
|
+
* emits; inside this repo only parse/serialize below read it.
|
|
18
|
+
*/
|
|
19
|
+
// fallow-ignore-next-line unused-export
|
|
20
|
+
export const HF_VFX_CHAIN_VERSION = 1;
|
|
21
|
+
/**
|
|
22
|
+
* After Effects' channel selector, shared by both Displacement Map axes.
|
|
23
|
+
* Hue (6), Lightness (7) and Saturation (8) stay selectable and are read as
|
|
24
|
+
* Luminance by the kernel — folding them back to the param's default would
|
|
25
|
+
* mean Red on the horizontal axis, a much larger error.
|
|
26
|
+
*/
|
|
27
|
+
const DISPLACEMENT_CHANNELS = [
|
|
28
|
+
{ value: 1, label: "Red" },
|
|
29
|
+
{ value: 2, label: "Green" },
|
|
30
|
+
{ value: 3, label: "Blue" },
|
|
31
|
+
{ value: 4, label: "Alpha" },
|
|
32
|
+
{ value: 5, label: "Luminance" },
|
|
33
|
+
{ value: 6, label: "Hue" },
|
|
34
|
+
{ value: 7, label: "Lightness" },
|
|
35
|
+
{ value: 8, label: "Saturation" },
|
|
36
|
+
{ value: 9, label: "Full" },
|
|
37
|
+
{ value: 10, label: "Half" },
|
|
38
|
+
{ value: 11, label: "Off" },
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* The def registry. Params come from the AE deep dives and retro-wave's
|
|
42
|
+
* observed values; each kernel's own `frag` module states the v1 scope
|
|
43
|
+
* decision — which of the effect's modes it actually implements and why.
|
|
44
|
+
*
|
|
45
|
+
* Exported as the whole registry for the exporter and Studio's effect picker;
|
|
46
|
+
* inside the runtime, defs are reached through `getVfxDef`.
|
|
47
|
+
*/
|
|
48
|
+
// fallow-ignore-next-line unused-export
|
|
49
|
+
export const HF_VFX = [
|
|
50
|
+
{
|
|
51
|
+
id: "fractal-noise",
|
|
52
|
+
label: "Fractal Noise",
|
|
53
|
+
ae: "ADBE Fractal Noise",
|
|
54
|
+
capture: "none",
|
|
55
|
+
frag: FRACTAL_NOISE_FRAG,
|
|
56
|
+
params: [
|
|
57
|
+
{
|
|
58
|
+
kind: "enum",
|
|
59
|
+
key: "fractalType",
|
|
60
|
+
label: "Fractal Type",
|
|
61
|
+
options: [{ value: 1, label: "Basic" }],
|
|
62
|
+
default: 1,
|
|
63
|
+
hint: "Only Basic is implemented in v1.",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
kind: "enum",
|
|
67
|
+
key: "noiseType",
|
|
68
|
+
label: "Noise Type",
|
|
69
|
+
options: [
|
|
70
|
+
{ value: 1, label: "Block" },
|
|
71
|
+
{ value: 2, label: "Linear" },
|
|
72
|
+
{ value: 3, label: "Soft Linear" },
|
|
73
|
+
{ value: 4, label: "Spline" },
|
|
74
|
+
],
|
|
75
|
+
default: 3,
|
|
76
|
+
},
|
|
77
|
+
{ kind: "bool", key: "invert", label: "Invert", default: false },
|
|
78
|
+
{
|
|
79
|
+
kind: "number",
|
|
80
|
+
key: "contrast",
|
|
81
|
+
label: "Contrast",
|
|
82
|
+
unit: "%",
|
|
83
|
+
min: 0,
|
|
84
|
+
max: 1000,
|
|
85
|
+
step: 1,
|
|
86
|
+
default: 100,
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
kind: "number",
|
|
90
|
+
key: "brightness",
|
|
91
|
+
label: "Brightness",
|
|
92
|
+
unit: "",
|
|
93
|
+
min: -1000,
|
|
94
|
+
max: 1000,
|
|
95
|
+
step: 1,
|
|
96
|
+
default: 0,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
kind: "number",
|
|
100
|
+
key: "scale",
|
|
101
|
+
label: "Scale",
|
|
102
|
+
unit: "%",
|
|
103
|
+
min: 6,
|
|
104
|
+
max: 10000,
|
|
105
|
+
step: 1,
|
|
106
|
+
default: 100,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
kind: "number",
|
|
110
|
+
key: "complexity",
|
|
111
|
+
label: "Complexity",
|
|
112
|
+
unit: "",
|
|
113
|
+
min: 1,
|
|
114
|
+
max: 20,
|
|
115
|
+
step: 1,
|
|
116
|
+
default: 6,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
kind: "number",
|
|
120
|
+
key: "subInfluence",
|
|
121
|
+
label: "Sub Influence",
|
|
122
|
+
unit: "%",
|
|
123
|
+
min: 0,
|
|
124
|
+
max: 100,
|
|
125
|
+
step: 1,
|
|
126
|
+
default: 70,
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
kind: "number",
|
|
130
|
+
key: "subScaling",
|
|
131
|
+
label: "Sub Scaling",
|
|
132
|
+
unit: "%",
|
|
133
|
+
min: 0,
|
|
134
|
+
max: 100,
|
|
135
|
+
step: 1,
|
|
136
|
+
default: 56,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
kind: "number",
|
|
140
|
+
key: "evolution",
|
|
141
|
+
label: "Evolution",
|
|
142
|
+
unit: "revolutions",
|
|
143
|
+
min: -10000,
|
|
144
|
+
max: 10000,
|
|
145
|
+
step: 0.01,
|
|
146
|
+
default: 0,
|
|
147
|
+
animatable: true,
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
kind: "number",
|
|
151
|
+
key: "randomSeed",
|
|
152
|
+
label: "Random Seed",
|
|
153
|
+
unit: "",
|
|
154
|
+
min: 0,
|
|
155
|
+
max: 99999,
|
|
156
|
+
step: 1,
|
|
157
|
+
default: 0,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
kind: "number",
|
|
161
|
+
key: "opacity",
|
|
162
|
+
label: "Opacity",
|
|
163
|
+
unit: "%",
|
|
164
|
+
min: 0,
|
|
165
|
+
max: 100,
|
|
166
|
+
step: 1,
|
|
167
|
+
default: 100,
|
|
168
|
+
animatable: true,
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: "wave-warp",
|
|
174
|
+
label: "Wave Warp",
|
|
175
|
+
ae: "ADBE Wave Warp",
|
|
176
|
+
capture: "self",
|
|
177
|
+
frag: WAVE_WARP_FRAG,
|
|
178
|
+
params: [
|
|
179
|
+
{
|
|
180
|
+
kind: "enum",
|
|
181
|
+
key: "waveType",
|
|
182
|
+
label: "Wave Type",
|
|
183
|
+
options: [{ value: 1, label: "Sine" }],
|
|
184
|
+
default: 1,
|
|
185
|
+
hint: "Only Sine is implemented in v1; the exporter marks the others cosmetic.",
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
kind: "number",
|
|
189
|
+
key: "height",
|
|
190
|
+
label: "Wave Height",
|
|
191
|
+
unit: "px",
|
|
192
|
+
min: -1000,
|
|
193
|
+
max: 1000,
|
|
194
|
+
step: 1,
|
|
195
|
+
default: 10,
|
|
196
|
+
animatable: true,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
kind: "number",
|
|
200
|
+
key: "width",
|
|
201
|
+
label: "Wave Width",
|
|
202
|
+
unit: "px",
|
|
203
|
+
min: 1,
|
|
204
|
+
max: 10000,
|
|
205
|
+
step: 1,
|
|
206
|
+
default: 40,
|
|
207
|
+
animatable: true,
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
kind: "number",
|
|
211
|
+
key: "direction",
|
|
212
|
+
label: "Direction",
|
|
213
|
+
unit: "deg",
|
|
214
|
+
min: -360,
|
|
215
|
+
max: 360,
|
|
216
|
+
step: 1,
|
|
217
|
+
default: 90,
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
kind: "number",
|
|
221
|
+
key: "speed",
|
|
222
|
+
label: "Wave Speed",
|
|
223
|
+
unit: "waves/s",
|
|
224
|
+
min: -100,
|
|
225
|
+
max: 100,
|
|
226
|
+
step: 0.1,
|
|
227
|
+
default: 1,
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
kind: "enum",
|
|
231
|
+
key: "pinning",
|
|
232
|
+
label: "Pinning",
|
|
233
|
+
options: [{ value: 1, label: "None" }],
|
|
234
|
+
default: 1,
|
|
235
|
+
hint: "Only None is implemented in v1; the exporter marks the others cosmetic.",
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
kind: "number",
|
|
239
|
+
key: "phase",
|
|
240
|
+
label: "Phase",
|
|
241
|
+
unit: "deg",
|
|
242
|
+
min: -360,
|
|
243
|
+
max: 360,
|
|
244
|
+
step: 1,
|
|
245
|
+
default: 0,
|
|
246
|
+
animatable: true,
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: "displacement-map",
|
|
252
|
+
label: "Displacement Map",
|
|
253
|
+
ae: "ADBE Displacement Map",
|
|
254
|
+
capture: "self",
|
|
255
|
+
frag: DISPLACEMENT_MAP_FRAG,
|
|
256
|
+
params: [
|
|
257
|
+
{
|
|
258
|
+
kind: "enum",
|
|
259
|
+
key: "useH",
|
|
260
|
+
label: "Use For Horizontal Displacement",
|
|
261
|
+
options: DISPLACEMENT_CHANNELS,
|
|
262
|
+
default: 1,
|
|
263
|
+
hint: "Hue, Lightness and Saturation are read as Luminance in v1.",
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
kind: "number",
|
|
267
|
+
key: "maxH",
|
|
268
|
+
label: "Max Horizontal Displacement",
|
|
269
|
+
unit: "px",
|
|
270
|
+
min: -32000,
|
|
271
|
+
max: 32000,
|
|
272
|
+
step: 1,
|
|
273
|
+
default: 5,
|
|
274
|
+
animatable: true,
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
kind: "enum",
|
|
278
|
+
key: "useV",
|
|
279
|
+
label: "Use For Vertical Displacement",
|
|
280
|
+
options: DISPLACEMENT_CHANNELS,
|
|
281
|
+
default: 2,
|
|
282
|
+
hint: "Hue, Lightness and Saturation are read as Luminance in v1.",
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
kind: "number",
|
|
286
|
+
key: "maxV",
|
|
287
|
+
label: "Max Vertical Displacement",
|
|
288
|
+
unit: "px",
|
|
289
|
+
min: -32000,
|
|
290
|
+
max: 32000,
|
|
291
|
+
step: 1,
|
|
292
|
+
default: 5,
|
|
293
|
+
animatable: true,
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
kind: "enum",
|
|
297
|
+
key: "behavior",
|
|
298
|
+
label: "Displacement Map Behavior",
|
|
299
|
+
options: [{ value: 1, label: "Center Map" }],
|
|
300
|
+
default: 1,
|
|
301
|
+
hint: "Only Center Map is implemented in v1.",
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
kind: "enum",
|
|
305
|
+
key: "edge",
|
|
306
|
+
label: "Edge Behavior",
|
|
307
|
+
options: [{ value: 0, label: "Off" }],
|
|
308
|
+
default: 0,
|
|
309
|
+
hint: "Only Off (transparent outside the layer) is implemented in v1.",
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
kind: "bool",
|
|
313
|
+
key: "expand",
|
|
314
|
+
label: "Expand Output",
|
|
315
|
+
default: true,
|
|
316
|
+
},
|
|
317
|
+
],
|
|
318
|
+
},
|
|
319
|
+
];
|
|
320
|
+
const BY_ID = new Map(HF_VFX.map((d) => [d.id, d]));
|
|
321
|
+
export function getVfxDef(id) {
|
|
322
|
+
return BY_ID.get(id);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Clamp and fill a parameter set so it is always renderable: unknown keys are
|
|
326
|
+
* dropped, missing keys take their default, numbers are clamped into their
|
|
327
|
+
* declared range, an unrecognised enum value falls back to its default, and a
|
|
328
|
+
* non-boolean bool value falls back to its default. Mirrors
|
|
329
|
+
* `normalizeAudioFxParams`.
|
|
330
|
+
*/
|
|
331
|
+
export function normalizeVfxParams(id, values) {
|
|
332
|
+
const def = BY_ID.get(id);
|
|
333
|
+
if (!def)
|
|
334
|
+
return {};
|
|
335
|
+
const out = {};
|
|
336
|
+
for (const p of def.params) {
|
|
337
|
+
const raw = values?.[p.key];
|
|
338
|
+
out[p.key] =
|
|
339
|
+
p.kind === "enum"
|
|
340
|
+
? normalizeEnumParam(p, raw)
|
|
341
|
+
: p.kind === "bool"
|
|
342
|
+
? normalizeBoolParam(p, raw)
|
|
343
|
+
: p.kind === "ref"
|
|
344
|
+
? normalizeRefParam(raw)
|
|
345
|
+
: normalizeNumberParam(p, raw);
|
|
346
|
+
}
|
|
347
|
+
return out;
|
|
348
|
+
}
|
|
349
|
+
/** A number, or a string that actually spells one; `undefined` otherwise.
|
|
350
|
+
* `Number(null)`, `Number("")`, `Number(false)` and `Number([])` are all 0
|
|
351
|
+
* and all pass `Number.isFinite`, so a raw value of that shape must be
|
|
352
|
+
* treated as missing rather than coerced to 0 — 0 is a legal value for most
|
|
353
|
+
* of these knobs, so nothing downstream could otherwise tell. */
|
|
354
|
+
function coerceFiniteNumber(raw) {
|
|
355
|
+
const n = typeof raw === "number"
|
|
356
|
+
? raw
|
|
357
|
+
: typeof raw === "string" && raw.trim() !== ""
|
|
358
|
+
? Number(raw)
|
|
359
|
+
: Number.NaN;
|
|
360
|
+
return Number.isFinite(n) ? n : undefined;
|
|
361
|
+
}
|
|
362
|
+
function normalizeEnumParam(p, raw) {
|
|
363
|
+
const n = coerceFiniteNumber(raw);
|
|
364
|
+
return n !== undefined && p.options.some((o) => o.value === n) ? n : p.default;
|
|
365
|
+
}
|
|
366
|
+
function normalizeBoolParam(p, raw) {
|
|
367
|
+
return typeof raw === "boolean" ? raw : p.default;
|
|
368
|
+
}
|
|
369
|
+
function normalizeRefParam(raw) {
|
|
370
|
+
return typeof raw === "string" ? raw : "";
|
|
371
|
+
}
|
|
372
|
+
function normalizeNumberParam(p, raw) {
|
|
373
|
+
const n = coerceFiniteNumber(raw);
|
|
374
|
+
return n !== undefined ? Math.min(p.max, Math.max(p.min, n)) : p.default;
|
|
375
|
+
}
|
|
376
|
+
export class VfxChainError extends Error {
|
|
377
|
+
constructor(message) {
|
|
378
|
+
super(message);
|
|
379
|
+
this.name = "VfxChainError";
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/** The nodes that should paint, in order. */
|
|
383
|
+
export function enabledVfxNodes(chain) {
|
|
384
|
+
return chain.nodes.filter((n) => n.enabled !== false);
|
|
385
|
+
}
|
|
386
|
+
const CAPTURE_RANK = { none: 0, self: 1, backdrop: 2 };
|
|
387
|
+
/** A chain's capture requirement is the strongest of its enabled nodes'. */
|
|
388
|
+
export function chainCapture(chain) {
|
|
389
|
+
let best = "none";
|
|
390
|
+
for (const node of enabledVfxNodes(chain)) {
|
|
391
|
+
const def = BY_ID.get(node.type);
|
|
392
|
+
if (def && CAPTURE_RANK[def.capture] > CAPTURE_RANK[best])
|
|
393
|
+
best = def.capture;
|
|
394
|
+
}
|
|
395
|
+
return best;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Parse a chain file. Unknown effect ids are rejected rather than skipped: a
|
|
399
|
+
* chain that silently loses a node would render differently from the
|
|
400
|
+
* composition the author saved, which is worse than refusing to render at
|
|
401
|
+
* all. Params are kept as given (not normalized) so a chain round-trips
|
|
402
|
+
* exactly; call `normalizeVfxParams` at paint time.
|
|
403
|
+
*/
|
|
404
|
+
export function parseVfxChain(json) {
|
|
405
|
+
let raw;
|
|
406
|
+
try {
|
|
407
|
+
raw = JSON.parse(json);
|
|
408
|
+
}
|
|
409
|
+
catch (err) {
|
|
410
|
+
throw new VfxChainError(`Chain file is not valid JSON: ${err.message}`);
|
|
411
|
+
}
|
|
412
|
+
if (typeof raw !== "object" || raw === null) {
|
|
413
|
+
throw new VfxChainError("Chain file must be a JSON object.");
|
|
414
|
+
}
|
|
415
|
+
const obj = raw;
|
|
416
|
+
if (obj.version !== HF_VFX_CHAIN_VERSION) {
|
|
417
|
+
throw new VfxChainError(`Unsupported chain version: ${String(obj.version)}`);
|
|
418
|
+
}
|
|
419
|
+
if (!Array.isArray(obj.nodes)) {
|
|
420
|
+
throw new VfxChainError("Chain file is missing a `nodes` array.");
|
|
421
|
+
}
|
|
422
|
+
const nodes = obj.nodes.map(parseVfxNode);
|
|
423
|
+
return { version: HF_VFX_CHAIN_VERSION, nodes };
|
|
424
|
+
}
|
|
425
|
+
/** Serialise a chain for the `data-vfx-chain` attribute. */
|
|
426
|
+
export function serializeVfxChain(chain) {
|
|
427
|
+
return JSON.stringify({
|
|
428
|
+
version: HF_VFX_CHAIN_VERSION,
|
|
429
|
+
nodes: chain.nodes.map(serializeVfxNode),
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
function isPlainObject(v) {
|
|
433
|
+
return typeof v === "object" && v !== null;
|
|
434
|
+
}
|
|
435
|
+
function requireVfxNodeType(node, i) {
|
|
436
|
+
if (typeof node.type !== "string" || !BY_ID.has(node.type)) {
|
|
437
|
+
throw new VfxChainError(`Node ${i} has unknown effect type: ${String(node.type)}`);
|
|
438
|
+
}
|
|
439
|
+
return node.type;
|
|
440
|
+
}
|
|
441
|
+
function requireVfxNodeId(node, i) {
|
|
442
|
+
if (typeof node.id !== "string" || node.id === "") {
|
|
443
|
+
throw new VfxChainError(`Node ${i} is missing an id.`);
|
|
444
|
+
}
|
|
445
|
+
return node.id;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* One node out of a chain file, validated. Throws rather than dropping: a
|
|
449
|
+
* chain that silently loses a node would render differently from the
|
|
450
|
+
* composition the author saved.
|
|
451
|
+
*/
|
|
452
|
+
function parseVfxNode(n, i) {
|
|
453
|
+
if (!isPlainObject(n)) {
|
|
454
|
+
throw new VfxChainError(`Node ${i} is not an object.`);
|
|
455
|
+
}
|
|
456
|
+
const node = n;
|
|
457
|
+
const type = requireVfxNodeType(node, i);
|
|
458
|
+
const id = requireVfxNodeId(node, i);
|
|
459
|
+
const params = isPlainObject(node.params) ? node.params : {};
|
|
460
|
+
return withoutUndefined({
|
|
461
|
+
type,
|
|
462
|
+
id,
|
|
463
|
+
enabled: node.enabled === false ? false : undefined,
|
|
464
|
+
params,
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
/** One node as the `data-vfx-chain` attribute carries it. `enabled` is
|
|
468
|
+
* omitted when it holds its default, so a plain chain stays plain. */
|
|
469
|
+
function serializeVfxNode(node) {
|
|
470
|
+
return withoutUndefined({
|
|
471
|
+
type: node.type,
|
|
472
|
+
id: node.id,
|
|
473
|
+
enabled: node.enabled === false ? false : undefined,
|
|
474
|
+
params: node.params,
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
// Mirrors audioFx.ts's identical helper (Task 1.1: copy the shape of the
|
|
478
|
+
// audio chain, not its code — the two chain files stay independently
|
|
479
|
+
// readable rather than sharing a module neither owns).
|
|
480
|
+
// fallow-ignore-next-line code-duplication
|
|
481
|
+
function withoutUndefined(obj) {
|
|
482
|
+
for (const key of Object.keys(obj)) {
|
|
483
|
+
if (obj[key] === undefined)
|
|
484
|
+
delete obj[key];
|
|
485
|
+
}
|
|
486
|
+
return obj;
|
|
487
|
+
}
|
|
488
|
+
//# sourceMappingURL=vfx.js.map
|
package/dist/vfx.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vfx.js","sourceRoot":"","sources":["../src/vfx.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/core",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.64",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -306,9 +306,9 @@
|
|
|
306
306
|
"bpm-detective": "^2.0.5",
|
|
307
307
|
"linkedom": "^0.18.12",
|
|
308
308
|
"postcss": "^8.5.8",
|
|
309
|
-
"@hyperframes/parsers": "0.8.
|
|
310
|
-
"@hyperframes/lint": "0.8.
|
|
311
|
-
"@hyperframes/studio-server": "0.8.
|
|
309
|
+
"@hyperframes/parsers": "0.8.64",
|
|
310
|
+
"@hyperframes/lint": "0.8.64",
|
|
311
|
+
"@hyperframes/studio-server": "0.8.64"
|
|
312
312
|
},
|
|
313
313
|
"devDependencies": {
|
|
314
314
|
"@types/jsdom": "^28.0.0",
|