effectcraft/docs
vangel76 bfe384e400 #758: layers, property groups and properties are callable
Problem: After Effects scripts call layers and property groups as a
shorthand for .property(nameOrIndex) (layer("ADBE Effect Parade"),
fxGroup(1), effect("Slider Control")("Slider")); Duik and many other
scripts use it throughout. EffectCraft's objects were Proxies around
plain objects, so each such call failed with "TypeError: not a callable
function".

Fix: Layer, PropertyGroup, MaskPropertyGroup and Property objects are
now Proxies around an arrow function carrying the object's state and
prototype (own name/length removed so the object's getters show). The
apply trap returns self.property(arg), so a call matches .property():
null when absent, Property returns null, and a missing name is the same
script error. instanceof, attribute access and script results are
unchanged; new on these objects stays a TypeError.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 12:22:03 +02:00
..
brand Licensing: standard LICENSE files, NOTICE, ArtCraft brand terms 2026-10-04 10:05:24 -04:00
fidelity Keyframes: auto-Bezier spatial tangents follow After Effects 2026-10-11 02:44:49 +05:30
images M0.11: README rewrite with headless screenshots (hero, graph editor, effects, 3D, render queue) 2026-10-01 23:31:40 -04:00
agents.md fonts: extra font folders from EFFECTCRAFT_FONT_DIRS 2026-10-11 05:10:45 +07:00
architecture.md UI.9: retain shared docking across upstream workspace changes 2026-10-10 19:25:49 -06:00
contributors.md About: contributor and model credits compiled in (grab bag + table, self-submitted names) (#228) 2026-10-07 21:16:47 -04:00
control-protocol.md UI.9: share docking transactions and preserve viewer lifecycle 2026-10-10 17:14:12 -06:00
effects-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
effects.md Effect Controls: file parameters get Choose…, Apply Color LUT asks for its LUT on apply, and text parameters get a field (#514, #473) 2026-10-10 19:48:25 +00:00
file-format-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
footage.md Import: only dropped files default to stills; scripts and agents naming a frame still get its run (#431) 2026-10-10 20:15:24 +00:00
gaps.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
hardware-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
localization-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
mcp.md MCP: --automation-read-root / --automation-write-root confine the agent's file access (#500) 2026-10-10 22:54:57 +00:00
plugins.md Plug-ins: Ease Presets moves out of core into a bundled ScriptUI panel 2026-10-09 21:03:12 +07:00
preferences.md Merge pull request #589 from JeremyYao/fix/amd-vulkan-launch-guard 2026-10-10 16:29:06 +00:00
releasing.md Release prep: 0.8.0 and a Linux riscv64 release build (#669) 2026-10-10 21:08:18 -04:00
roadmap.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
scripting-parity.md #758: layers, property groups and properties are callable 2026-10-11 12:22:03 +02:00
target-app-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
testing.md Effects: the sim golden test accepts macOS 27's libm hash for Mr. Mercury (#232) 2026-10-08 13:36:09 +07:00
ui-parity.md Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#617) 2026-10-10 14:09:10 -04:00
web.md Web: the layer and footage caches stay small enough for eight stacked clips 2026-10-09 16:44:15 -05:00