@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.
Files changed (41) hide show
  1. package/dist/generated/position-edits-render-inline.js +1 -1
  2. package/dist/generated/runtime-inline.js +1 -1
  3. package/dist/generated/runtime-inline.js.map +1 -1
  4. package/dist/hyperframe.runtime.iife.js +191 -28
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/runtime/domRealm.d.ts +2 -0
  10. package/dist/runtime/domRealm.d.ts.map +1 -1
  11. package/dist/runtime/domRealm.js +4 -0
  12. package/dist/runtime/domRealm.js.map +1 -1
  13. package/dist/vfx/displacementMap.frag.d.ts +41 -0
  14. package/dist/vfx/displacementMap.frag.d.ts.map +1 -0
  15. package/dist/vfx/displacementMap.frag.js +85 -0
  16. package/dist/vfx/displacementMap.frag.js.map +1 -0
  17. package/dist/vfx/fractalNoise.frag.d.ts +45 -0
  18. package/dist/vfx/fractalNoise.frag.d.ts.map +1 -0
  19. package/dist/vfx/fractalNoise.frag.js +126 -0
  20. package/dist/vfx/fractalNoise.frag.js.map +1 -0
  21. package/dist/vfx/refs/displacementMap.d.ts +34 -0
  22. package/dist/vfx/refs/displacementMap.d.ts.map +1 -0
  23. package/dist/vfx/refs/displacementMap.js +53 -0
  24. package/dist/vfx/refs/displacementMap.js.map +1 -0
  25. package/dist/vfx/refs/fractalNoise.d.ts +33 -0
  26. package/dist/vfx/refs/fractalNoise.d.ts.map +1 -0
  27. package/dist/vfx/refs/fractalNoise.js +94 -0
  28. package/dist/vfx/refs/fractalNoise.js.map +1 -0
  29. package/dist/vfx/refs/waveWarp.d.ts +19 -0
  30. package/dist/vfx/refs/waveWarp.d.ts.map +1 -0
  31. package/dist/vfx/refs/waveWarp.js +25 -0
  32. package/dist/vfx/refs/waveWarp.js.map +1 -0
  33. package/dist/vfx/waveWarp.frag.d.ts +38 -0
  34. package/dist/vfx/waveWarp.frag.d.ts.map +1 -0
  35. package/dist/vfx/waveWarp.frag.js +74 -0
  36. package/dist/vfx/waveWarp.frag.js.map +1 -0
  37. package/dist/vfx.d.ts +121 -0
  38. package/dist/vfx.d.ts.map +1 -0
  39. package/dist/vfx.js +488 -0
  40. package/dist/vfx.js.map +1 -0
  41. 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
@@ -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.62",
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.62",
310
- "@hyperframes/lint": "0.8.62",
311
- "@hyperframes/studio-server": "0.8.62"
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",