@imgly/codesign-mcp 0.1.5 → 0.1.6
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 +51 -1
- package/assets/docs/guide/SKILL.md +45 -53
- package/assets/docs/guide/animation/create/base.md +234 -243
- package/assets/docs/guide/animation/create/text.md +250 -231
- package/assets/docs/guide/animation/create.md +197 -231
- package/assets/docs/guide/animation/edit.md +196 -271
- package/assets/docs/guide/animation/types.md +182 -185
- package/assets/docs/guide/animation.md +9 -6
- package/assets/docs/guide/api/AssetAPI.md +7 -53
- package/assets/docs/guide/api/BlockAPI.md +725 -648
- package/assets/docs/guide/api/CreativeEngine.md +7 -16
- package/assets/docs/guide/api/EditorAPI.md +32 -93
- package/assets/docs/guide/api/EventAPI.md +1 -2
- package/assets/docs/guide/api/SceneAPI.md +47 -98
- package/assets/docs/guide/api/VariableAPI.md +1 -4
- package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
- package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
- package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
- package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
- package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
- package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
- package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
- package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
- package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
- package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
- package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
- package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
- package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
- package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
- package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
- package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
- package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
- package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
- package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
- package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
- package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
- package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
- package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
- package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
- package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
- package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
- package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
- package/assets/docs/guide/api/node/interfaces/font.md +27 -0
- package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
- package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
- package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
- package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
- package/assets/docs/guide/api/node/interfaces/range.md +23 -0
- package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
- package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
- package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/source.md +24 -0
- package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
- package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
- package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
- package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
- package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
- package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
- package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
- package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
- package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
- package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
- package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
- package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
- package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
- package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
- package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
- package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
- package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
- package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
- package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
- package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
- package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
- package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
- package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
- package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
- package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
- package/assets/docs/guide/api/types.md +5 -9
- package/assets/docs/guide/api-reference/overview.md +7 -7
- package/assets/docs/guide/automation/auto-resize.md +263 -300
- package/assets/docs/guide/automation/data-merge.md +246 -275
- package/assets/docs/guide/automation/design-generation.md +102 -31
- package/assets/docs/guide/automation/multi-image-generation.md +758 -0
- package/assets/docs/guide/automation/overview.md +21 -4
- package/assets/docs/guide/automation.md +10 -5
- package/assets/docs/guide/capabilities.md +6 -4
- package/assets/docs/guide/colors/adjust.md +247 -249
- package/assets/docs/guide/colors/apply.md +127 -138
- package/assets/docs/guide/colors/basics.md +126 -150
- package/assets/docs/guide/colors/conversion.md +171 -177
- package/assets/docs/guide/colors/create-color-palette.md +244 -245
- package/assets/docs/guide/colors/extract-colors.md +144 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
- package/assets/docs/guide/colors/for-print/spot.md +521 -578
- package/assets/docs/guide/colors/for-print.md +9 -4
- package/assets/docs/guide/colors/for-screen/p3.md +12 -10
- package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
- package/assets/docs/guide/colors/for-screen.md +9 -4
- package/assets/docs/guide/colors/overview.md +6 -4
- package/assets/docs/guide/colors/replace.md +381 -419
- package/assets/docs/guide/colors.md +9 -4
- package/assets/docs/guide/compatibility.md +7 -5
- package/assets/docs/guide/concepts/architecture.md +17 -15
- package/assets/docs/guide/concepts/assets.md +152 -140
- package/assets/docs/guide/concepts/blocks.md +227 -323
- package/assets/docs/guide/concepts/buffers.md +147 -276
- package/assets/docs/guide/concepts/design-units.md +95 -145
- package/assets/docs/guide/concepts/editing-workflow.md +69 -183
- package/assets/docs/guide/concepts/events.md +80 -122
- package/assets/docs/guide/concepts/headless-mode.md +237 -0
- package/assets/docs/guide/concepts/pages.md +137 -127
- package/assets/docs/guide/concepts/resources.md +156 -217
- package/assets/docs/guide/concepts/scenes.md +191 -210
- package/assets/docs/guide/concepts/templating.md +118 -74
- package/assets/docs/guide/concepts/terminology.md +49 -47
- package/assets/docs/guide/concepts/undo-and-history.md +229 -303
- package/assets/docs/guide/concepts.md +9 -7
- package/assets/docs/guide/configuration.md +252 -380
- package/assets/docs/guide/conversion/overview.md +33 -4
- package/assets/docs/guide/conversion/to-base64.md +127 -167
- package/assets/docs/guide/conversion/to-pdf.md +24 -474
- package/assets/docs/guide/conversion/to-png.md +168 -211
- package/assets/docs/guide/conversion.md +9 -4
- package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
- package/assets/docs/guide/create-audio/audio/loop.md +232 -272
- package/assets/docs/guide/create-composition/add-background.md +237 -239
- package/assets/docs/guide/create-composition/blend-modes.md +118 -209
- package/assets/docs/guide/create-composition/collage.md +538 -320
- package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
- package/assets/docs/guide/create-composition/layer-management.md +219 -257
- package/assets/docs/guide/create-composition/layout.md +513 -315
- package/assets/docs/guide/create-composition/lock-design.md +90 -109
- package/assets/docs/guide/create-composition/multi-page.md +133 -113
- package/assets/docs/guide/create-composition/overview.md +16 -4
- package/assets/docs/guide/create-composition/programmatic.md +288 -344
- package/assets/docs/guide/create-composition.md +10 -5
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
- package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
- package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
- package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
- package/assets/docs/guide/create-templates/from-scratch.md +207 -268
- package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
- package/assets/docs/guide/create-templates/import.md +145 -161
- package/assets/docs/guide/create-templates/lock.md +42 -295
- package/assets/docs/guide/create-templates/overview.md +33 -4
- package/assets/docs/guide/create-templates.md +9 -5
- package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
- package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
- package/assets/docs/guide/create-video/control.md +352 -193
- package/assets/docs/guide/create-video/limitations.md +175 -280
- package/assets/docs/guide/create-video.md +11 -10
- package/assets/docs/guide/edit-image/add-watermark.md +283 -330
- package/assets/docs/guide/edit-image/overview.md +29 -4
- package/assets/docs/guide/edit-image/remove-bg.md +283 -337
- package/assets/docs/guide/edit-image/replace-colors.md +424 -502
- package/assets/docs/guide/edit-image/transform/crop.md +463 -402
- package/assets/docs/guide/edit-image/transform/flip.md +353 -0
- package/assets/docs/guide/edit-image/transform/move.md +143 -100
- package/assets/docs/guide/edit-image/transform/resize.md +118 -88
- package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
- package/assets/docs/guide/edit-image/transform/scale.md +230 -228
- package/assets/docs/guide/edit-image/transform.md +10 -5
- package/assets/docs/guide/edit-image.md +11 -7
- package/assets/docs/guide/edit-video/add-captions.md +344 -421
- package/assets/docs/guide/edit-video/add-watermark.md +312 -258
- package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
- package/assets/docs/guide/edit-video/redaction.md +419 -385
- package/assets/docs/guide/edit-video/split.md +243 -493
- package/assets/docs/guide/edit-video/transform/crop.md +21 -352
- package/assets/docs/guide/edit-video/transform/flip.md +102 -76
- package/assets/docs/guide/edit-video/transform/move.md +258 -310
- package/assets/docs/guide/edit-video/transform/resize.md +264 -428
- package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
- package/assets/docs/guide/edit-video/transform/scale.md +320 -417
- package/assets/docs/guide/edit-video/transform.md +10 -6
- package/assets/docs/guide/edit-video/trim.md +448 -494
- package/assets/docs/guide/engine-interface.md +51 -62
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
- package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
- package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
- package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
- package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
- package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
- package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
- package/assets/docs/guide/export-save-publish/export.md +14 -11
- package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
- package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
- package/assets/docs/guide/export-save-publish/save.md +167 -226
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
- package/assets/docs/guide/file-format-support.md +9 -9
- package/assets/docs/guide/fills/color.md +370 -347
- package/assets/docs/guide/fills/image.md +167 -196
- package/assets/docs/guide/fills/overview.md +6 -4
- package/assets/docs/guide/fills/video.md +286 -438
- package/assets/docs/guide/fills.md +12 -8
- package/assets/docs/guide/filters-and-effects/apply.md +598 -664
- package/assets/docs/guide/filters-and-effects/blur.md +261 -159
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
- package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
- package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
- package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
- package/assets/docs/guide/filters-and-effects/overview.md +7 -7
- package/assets/docs/guide/filters-and-effects/support.md +97 -132
- package/assets/docs/guide/filters-and-effects.md +11 -6
- package/assets/docs/guide/get-started/agent-skills.md +20 -18
- package/assets/docs/guide/get-started/build-with-ai.md +7 -4
- package/assets/docs/guide/get-started/bun.md +219 -0
- package/assets/docs/guide/get-started/deno.md +161 -0
- package/assets/docs/guide/get-started/mcp-server.md +6 -4
- package/assets/docs/guide/get-started/overview.md +11 -6
- package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
- package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
- package/assets/docs/guide/get-started/vanilla.md +235 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
- package/assets/docs/guide/guides.md +10 -9
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
- package/assets/docs/guide/import-media/concepts.md +20 -38
- package/assets/docs/guide/import-media/content-json-schema.md +145 -125
- package/assets/docs/guide/import-media/default-assets.md +113 -161
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
- package/assets/docs/guide/import-media/file-format-support.md +78 -61
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
- package/assets/docs/guide/import-media/from-remote-source.md +9 -11
- package/assets/docs/guide/import-media/overview.md +5 -5
- package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
- package/assets/docs/guide/import-media/size-limits.md +6 -4
- package/assets/docs/guide/import-media/source-sets.md +190 -251
- package/assets/docs/guide/import-media.md +10 -8
- package/assets/docs/guide/insert-media/audio.md +202 -195
- package/assets/docs/guide/insert-media/images.md +190 -188
- package/assets/docs/guide/insert-media/position-and-align.md +284 -551
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
- package/assets/docs/guide/insert-media/videos.md +236 -203
- package/assets/docs/guide/insert-media.md +10 -5
- package/assets/docs/guide/key-capabilities.md +36 -4
- package/assets/docs/guide/key-concepts.md +6 -4
- package/assets/docs/guide/licensing.md +6 -4
- package/assets/docs/guide/llms-txt.md +11 -7
- package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
- package/assets/docs/guide/open-the-editor/from-image.md +157 -127
- package/assets/docs/guide/open-the-editor/from-template.md +131 -92
- package/assets/docs/guide/open-the-editor/from-video.md +204 -212
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
- package/assets/docs/guide/open-the-editor/import-design.md +228 -266
- package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
- package/assets/docs/guide/open-the-editor/overview.md +6 -4
- package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
- package/assets/docs/guide/open-the-editor.md +11 -9
- package/assets/docs/guide/outlines/overview.md +12 -4
- package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
- package/assets/docs/guide/outlines/strokes.md +218 -166
- package/assets/docs/guide/outlines.md +9 -4
- package/assets/docs/guide/overview.md +14 -6
- package/assets/docs/guide/performance.md +220 -113
- package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
- package/assets/docs/guide/plugins.md +10 -16
- package/assets/docs/guide/rules/asset-handling.md +7 -18
- package/assets/docs/guide/rules/common-pitfalls.md +25 -42
- package/assets/docs/guide/rules/content-fill-mode.md +4 -4
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
- package/assets/docs/guide/rules/lock-content.md +188 -231
- package/assets/docs/guide/rules/moderate-content.md +580 -571
- package/assets/docs/guide/rules/overview.md +345 -380
- package/assets/docs/guide/rules/silent-init-errors.md +4 -1
- package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
- package/assets/docs/guide/rules.md +10 -5
- package/assets/docs/guide/security.md +7 -5
- package/assets/docs/guide/serve-assets.md +57 -284
- package/assets/docs/guide/settings.md +96 -74
- package/assets/docs/guide/shapes.md +10 -5
- package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
- package/assets/docs/guide/stickers.md +9 -4
- package/assets/docs/guide/text/add.md +470 -482
- package/assets/docs/guide/text/adjust-spacing.md +179 -214
- package/assets/docs/guide/text/auto-size.md +210 -271
- package/assets/docs/guide/text/edit.md +294 -309
- package/assets/docs/guide/text/effects.md +154 -190
- package/assets/docs/guide/text/emojis.md +199 -232
- package/assets/docs/guide/text/language-support.md +369 -382
- package/assets/docs/guide/text/overview.md +41 -4
- package/assets/docs/guide/text/styling.md +239 -273
- package/assets/docs/guide/text/text-designs.md +405 -544
- package/assets/docs/guide/text.md +10 -9
- package/assets/docs/guide/to-v1-19.md +12 -10
- package/assets/docs/guide/upgrade.md +8 -9
- package/assets/docs/guide/use-templates/apply-template.md +174 -163
- package/assets/docs/guide/use-templates/generate.md +171 -152
- package/assets/docs/guide/use-templates/overview.md +32 -4
- package/assets/docs/guide/use-templates/programmatic.md +266 -301
- package/assets/docs/guide/use-templates/replace-content.md +181 -171
- package/assets/docs/guide/what-is-cesdk.md +71 -282
- package/assets/docs/handbook/SKILL.md +24 -0
- package/dist/assets/inline.generated.d.ts.map +1 -1
- package/dist/assets/inline.generated.js +544 -406
- package/dist/assets/inline.generated.js.map +1 -1
- package/dist/assets/load-browser.d.ts +1 -1
- package/dist/assets/load-browser.js +1 -1
- package/dist/assets/load-browser.js.map +1 -1
- package/dist/assets/load-node.d.ts +1 -1
- package/dist/assets/load-node.js +1 -1
- package/dist/assets/load-node.js.map +1 -1
- package/dist/cli/http.d.ts.map +1 -1
- package/dist/cli/http.js +4 -28
- package/dist/cli/http.js.map +1 -1
- package/dist/cli/redirect-console.d.ts +1 -1
- package/dist/cli/redirect-console.d.ts.map +1 -1
- package/dist/cli/redirect-console.js +12 -3
- package/dist/cli/redirect-console.js.map +1 -1
- package/dist/cli/resolve-license.d.ts.map +1 -1
- package/dist/cli/resolve-license.js +8 -6
- package/dist/cli/resolve-license.js.map +1 -1
- package/dist/cli/stdio.d.ts +9 -0
- package/dist/cli/stdio.d.ts.map +1 -1
- package/dist/cli/stdio.js +48 -4
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/diagnostics/bundle.d.ts +10 -0
- package/dist/diagnostics/bundle.d.ts.map +1 -0
- package/dist/diagnostics/bundle.js +148 -0
- package/dist/diagnostics/bundle.js.map +1 -0
- package/dist/diagnostics/compose.d.ts +3 -0
- package/dist/diagnostics/compose.d.ts.map +1 -0
- package/dist/diagnostics/compose.js +15 -0
- package/dist/diagnostics/compose.js.map +1 -0
- package/dist/diagnostics/events.d.ts +34 -0
- package/dist/diagnostics/events.d.ts.map +1 -0
- package/dist/diagnostics/events.js +3 -0
- package/dist/diagnostics/events.js.map +1 -0
- package/dist/diagnostics/file-sink.d.ts +38 -0
- package/dist/diagnostics/file-sink.d.ts.map +1 -0
- package/dist/diagnostics/file-sink.js +157 -0
- package/dist/diagnostics/file-sink.js.map +1 -0
- package/dist/diagnostics/redact.d.ts +7 -0
- package/dist/diagnostics/redact.d.ts.map +1 -0
- package/dist/diagnostics/redact.js +43 -0
- package/dist/diagnostics/redact.js.map +1 -0
- package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
- package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
- package/dist/diagnostics/tool-call-adapter.js +21 -0
- package/dist/diagnostics/tool-call-adapter.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +5 -1
- package/dist/engine/cesdk-adapter.d.ts.map +1 -1
- package/dist/engine/cesdk-adapter.js +9 -2
- package/dist/engine/cesdk-adapter.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +4 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/scene-resource-schemes.d.ts +2 -0
- package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
- package/dist/engine/scene-resource-schemes.js +20 -0
- package/dist/engine/scene-resource-schemes.js.map +1 -0
- package/dist/http/server.d.ts +0 -6
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +1 -2
- package/dist/http/server.js.map +1 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -60
- package/dist/server.js.map +1 -1
- package/dist/test/scripts/changelog-add.d.ts +8 -0
- package/dist/test/scripts/changelog-add.d.ts.map +1 -0
- package/dist/test/scripts/changelog-add.js +50 -0
- package/dist/test/scripts/changelog-add.js.map +1 -0
- package/dist/test/scripts/changelog-collate.d.ts +38 -0
- package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
- package/dist/test/scripts/changelog-collate.js +171 -0
- package/dist/test/scripts/changelog-collate.js.map +1 -0
- package/dist/test/test/changelog.test.d.ts +2 -0
- package/dist/test/test/changelog.test.d.ts.map +1 -0
- package/dist/test/test/changelog.test.js +293 -0
- package/dist/test/test/changelog.test.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +10 -3
- package/dist/test/test/cli/dispatcher.test.js.map +1 -1
- package/dist/test/test/cli/redirect-console.test.js +31 -0
- package/dist/test/test/cli/redirect-console.test.js.map +1 -1
- package/dist/test/test/cli/resolve-license.test.js +10 -1
- package/dist/test/test/cli/resolve-license.test.js.map +1 -1
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
- package/dist/test/test/config.test.js +17 -13
- package/dist/test/test/config.test.js.map +1 -1
- package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
- package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/bundle.test.js +53 -0
- package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
- package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
- package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/compose.test.js +31 -0
- package/dist/test/test/diagnostics/compose.test.js.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.js +113 -0
- package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
- package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
- package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/redact.test.js +59 -0
- package/dist/test/test/diagnostics/redact.test.js.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
- package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.js +6 -2
- package/dist/test/test/handbook-contract.test.js.map +1 -1
- package/dist/test/test/http/server.test.js +0 -36
- package/dist/test/test/http/server.test.js.map +1 -1
- package/dist/test/test/http/workspace-auth.test.js +0 -1
- package/dist/test/test/http/workspace-auth.test.js.map +1 -1
- package/dist/test/test/server.test.js +0 -40
- package/dist/test/test/server.test.js.map +1 -1
- package/dist/test/test/tools/edit-harness.d.ts +14 -0
- package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
- package/dist/test/test/tools/edit-harness.js +30 -0
- package/dist/test/test/tools/edit-harness.js.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.js +46 -0
- package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/export-harness.d.ts +13 -0
- package/dist/test/test/tools/export-harness.d.ts.map +1 -0
- package/dist/test/test/tools/export-harness.js +27 -0
- package/dist/test/test/tools/export-harness.js.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.js +65 -0
- package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/import.test.d.ts +2 -0
- package/dist/test/test/tools/import.test.d.ts.map +1 -0
- package/dist/test/test/tools/import.test.js +122 -0
- package/dist/test/test/tools/import.test.js.map +1 -0
- package/dist/test/test/tools/index.test.js +78 -16
- package/dist/test/test/tools/index.test.js.map +1 -1
- package/dist/test/test/tools/load.integration.test.d.ts +2 -0
- package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.integration.test.js +165 -0
- package/dist/test/test/tools/load.integration.test.js.map +1 -0
- package/dist/test/test/tools/load.test.d.ts +2 -0
- package/dist/test/test/tools/load.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.test.js +387 -0
- package/dist/test/test/tools/load.test.js.map +1 -0
- package/dist/test/test/tools/preview-harness.d.ts +9 -0
- package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
- package/dist/test/test/tools/preview-harness.js +23 -0
- package/dist/test/test/tools/preview-harness.js.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.js +36 -0
- package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
- package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.js +169 -0
- package/dist/test/test/tools/schema-best-practices.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.js +194 -0
- package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
- package/dist/test/test/tools/spans.test.d.ts +2 -0
- package/dist/test/test/tools/spans.test.d.ts.map +1 -0
- package/dist/test/test/tools/spans.test.js +84 -0
- package/dist/test/test/tools/spans.test.js.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
- package/dist/test/test/viewer/config-route.test.d.ts +2 -0
- package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/config-route.test.js +28 -0
- package/dist/test/test/viewer/config-route.test.js.map +1 -0
- package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
- package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
- package/dist/test/test/viewer/spa-version.test.js +14 -0
- package/dist/test/test/viewer/spa-version.test.js.map +1 -0
- package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
- package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
- package/dist/test/test/workspace/content-hash.test.js +17 -0
- package/dist/test/test/workspace/content-hash.test.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -1
- package/dist/test/vitest.config.js +1 -1
- package/dist/test/vitest.config.js.map +1 -1
- package/dist/tools/asset-generate.d.ts.map +1 -1
- package/dist/tools/asset-generate.js +1 -8
- package/dist/tools/asset-generate.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +145 -96
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +146 -108
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/import.d.ts +12 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/load.d.ts +26 -0
- package/dist/tools/load.d.ts.map +1 -0
- package/dist/tools/load.js +400 -0
- package/dist/tools/load.js.map +1 -0
- package/dist/tools/preview.d.ts +3 -0
- package/dist/tools/preview.d.ts.map +1 -1
- package/dist/tools/preview.js +79 -44
- package/dist/tools/preview.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.js +2 -2
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/spans.d.ts +45 -0
- package/dist/tools/spans.d.ts.map +1 -0
- package/dist/tools/spans.js +77 -0
- package/dist/tools/spans.js.map +1 -0
- package/dist/tools/telemetry-wrapper.d.ts +4 -0
- package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
- package/dist/tools/telemetry-wrapper.js +43 -0
- package/dist/tools/telemetry-wrapper.js.map +1 -0
- package/dist/viewer/cesdk-cdn.d.ts +16 -0
- package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
- package/dist/viewer/cesdk-cdn.js +30 -0
- package/dist/viewer/cesdk-cdn.js.map +1 -0
- package/dist/viewer/router.d.ts +6 -0
- package/dist/viewer/router.d.ts.map +1 -1
- package/dist/viewer/router.js +4 -1
- package/dist/viewer/router.js.map +1 -1
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
- package/dist/viewer/spa-assets.generated.js +2 -3
- package/dist/viewer/spa-assets.generated.js.map +1 -1
- package/dist/workspace/content-hash.d.ts +2 -0
- package/dist/workspace/content-hash.d.ts.map +1 -0
- package/dist/workspace/content-hash.js +15 -0
- package/dist/workspace/content-hash.js.map +1 -0
- package/package.json +18 -9
- package/assets/docs/guide/actions.md +0 -1038
- package/assets/docs/guide/animation/overview.md +0 -22
- package/assets/docs/guide/automation/batch-processing.md +0 -474
- package/assets/docs/guide/browser-support.md +0 -38
- package/assets/docs/guide/concepts/edit-modes.md +0 -431
- package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
- package/assets/docs/guide/create-audio/audio.md +0 -336
- package/assets/docs/guide/create-video/overview.md +0 -224
- package/assets/docs/guide/create-video/timeline-editor.md +0 -622
- package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
- package/assets/docs/guide/edit-image/vectorize.md +0 -204
- package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
- package/assets/docs/guide/grid-and-rulers.md +0 -222
- package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
- package/assets/docs/guide/import-media/asset-library.md +0 -23
- package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
- package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
- package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
- package/assets/docs/guide/import-media/from-local-source.md +0 -20
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
- package/assets/docs/guide/plugins/asset-sources.md +0 -553
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
- package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
- package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
- package/assets/docs/guide/starterkits/ai-editor.md +0 -749
- package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
- package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
- package/assets/docs/guide/starterkits/assets.md +0 -27
- package/assets/docs/guide/starterkits/auto-resize.md +0 -586
- package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
- package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
- package/assets/docs/guide/starterkits/content-moderation.md +0 -863
- package/assets/docs/guide/starterkits/creative-automation.md +0 -28
- package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
- package/assets/docs/guide/starterkits/customization.md +0 -29
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
- package/assets/docs/guide/starterkits/data-merge.md +0 -850
- package/assets/docs/guide/starterkits/design-editor.md +0 -698
- package/assets/docs/guide/starterkits/design-generation.md +0 -719
- package/assets/docs/guide/starterkits/design-validation.md +0 -808
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
- package/assets/docs/guide/starterkits/export-options.md +0 -724
- package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
- package/assets/docs/guide/starterkits/extensibility.md +0 -28
- package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
- package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
- package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
- package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
- package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
- package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
- package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
- package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
- package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
- package/assets/docs/guide/starterkits/photo-editor.md +0 -755
- package/assets/docs/guide/starterkits/photo-ui.md +0 -186
- package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
- package/assets/docs/guide/starterkits/placeholders.md +0 -678
- package/assets/docs/guide/starterkits/player.md +0 -405
- package/assets/docs/guide/starterkits/plugins.md +0 -25
- package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
- package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
- package/assets/docs/guide/starterkits/product-editor.md +0 -773
- package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
- package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
- package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
- package/assets/docs/guide/starterkits/start-with-image.md +0 -684
- package/assets/docs/guide/starterkits/start-with-video.md +0 -651
- package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
- package/assets/docs/guide/starterkits/templating.md +0 -23
- package/assets/docs/guide/starterkits/theming.md +0 -662
- package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
- package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
- package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
- package/assets/docs/guide/starterkits/version-history.md +0 -745
- package/assets/docs/guide/starterkits/video-animations.md +0 -853
- package/assets/docs/guide/starterkits/video-captions.md +0 -884
- package/assets/docs/guide/starterkits/video-editing.md +0 -25
- package/assets/docs/guide/starterkits/video-editor.md +0 -696
- package/assets/docs/guide/starterkits/video-export-options.md +0 -676
- package/assets/docs/guide/starterkits/viewer.md +0 -400
- package/assets/docs/guide/starterkits.md +0 -41
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
- package/assets/docs/guide/text/custom-fonts.md +0 -401
- package/assets/docs/guide/text/decorations.md +0 -330
- package/assets/docs/guide/text/enumerations.md +0 -258
- package/assets/docs/guide/to-v1-10.md +0 -131
- package/assets/docs/guide/to-v1-13.md +0 -165
- package/assets/docs/guide/to-v1-32.md +0 -110
- package/assets/docs/guide/to-v1-69.md +0 -468
- package/assets/docs/guide/to-v1-72.md +0 -193
- package/assets/docs/guide/use-templates/library.md +0 -450
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
- package/assets/docs/guide/user-interface/ai-integration.md +0 -30
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
- package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
- package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
- package/assets/docs/guide/user-interface/appearance.md +0 -23
- package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
- package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
- package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
- package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
- package/assets/docs/guide/user-interface/customization/dock.md +0 -399
- package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
- package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
- package/assets/docs/guide/user-interface/customization/panel.md +0 -605
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
- package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
- package/assets/docs/guide/user-interface/customization/reference.md +0 -12
- package/assets/docs/guide/user-interface/customization.md +0 -39
- package/assets/docs/guide/user-interface/localization.md +0 -633
- package/assets/docs/guide/user-interface/overview.md +0 -167
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
- package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
- package/assets/docs/guide/user-interface.md +0 -25
- package/assets/prompts/evals-assetGenerate.md +0 -12
- package/assets/prompts/evals-brutalistCore.md +0 -34
- package/assets/prompts/evals-danskCatalogue.md +0 -31
- package/assets/prompts/evals-exportRoundTrip.md +0 -12
- package/assets/prompts/evals-inspectPriorCode.md +0 -16
- package/assets/prompts/evals-listProjectFiles.md +0 -6
- package/assets/prompts/evals-readAndExplainScript.md +0 -6
- package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
- package/assets/prompts/evals-rewindRecovery.md +0 -10
- package/assets/prompts/evals-searchAcrossFiles.md +0 -6
- package/assets/prompts/evals-weddingCard.md +0 -20
- package/assets/prompts/explain.md +0 -6
- package/assets/prompts/review.md +0 -6
- package/dist/frontmatter.d.ts +0 -15
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -46
- package/dist/frontmatter.js.map +0 -1
- package/dist/test/test/frontmatter.test.d.ts +0 -2
- package/dist/test/test/frontmatter.test.d.ts.map +0 -1
- package/dist/test/test/frontmatter.test.js +0 -55
- package/dist/test/test/frontmatter.test.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
> This is one page of the CE.SDK
|
|
1
|
+
> This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
2
|
|
|
3
3
|
**Navigation:** [Guides](./guides.md) > [Create and Edit Videos](./create-video.md) > [Redaction](./edit-video/redaction.md)
|
|
4
4
|
|
|
@@ -6,69 +6,30 @@
|
|
|
6
6
|
|
|
7
7
|
Redact sensitive video content using blur, pixelization, or solid overlays for privacy protection.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
> **Reading time:** 15 minutes
|
|
9
|
+
> **Reading time:** 10 minutes
|
|
12
10
|
>
|
|
13
11
|
> **Resources:**
|
|
14
12
|
>
|
|
15
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
-
>
|
|
17
|
-
> - [
|
|
18
|
-
>
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-create-video-redaction-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-video-redaction-server-js)
|
|
19
18
|
|
|
20
19
|
CE.SDK applies effects to blocks themselves, not as overlays affecting content beneath. This means redaction involves applying effects directly to the block for complete obscuration. Four techniques cover most privacy scenarios: full-block blur, radial blur, pixelization, and solid overlays.
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
-
|
|
25
|
-
import {
|
|
26
|
-
BlurAssetSource,
|
|
27
|
-
CaptionPresetsAssetSource,
|
|
28
|
-
ColorPaletteAssetSource,
|
|
29
|
-
CropPresetsAssetSource,
|
|
30
|
-
DemoAssetSources,
|
|
31
|
-
EffectsAssetSource,
|
|
32
|
-
FiltersAssetSource,
|
|
33
|
-
PagePresetsAssetSource,
|
|
34
|
-
StickerAssetSource,
|
|
35
|
-
TextAssetSource,
|
|
36
|
-
TextComponentAssetSource,
|
|
37
|
-
TypefaceAssetSource,
|
|
38
|
-
UploadAssetSources,
|
|
39
|
-
VectorShapeAssetSource
|
|
40
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
41
|
-
import { VideoEditorConfig } from './video-editor/plugin';
|
|
42
|
-
import packageJson from './package.json';
|
|
43
|
-
|
|
44
|
-
// Video URLs for demonstrating different redaction scenarios
|
|
45
|
-
const VIDEOS = {
|
|
46
|
-
surfer:
|
|
47
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-drone-footage-of-a-surfer-barrelling-a-wave-12715991.mp4',
|
|
48
|
-
lifestyle1:
|
|
49
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-taryn-elliott-7108793.mp4',
|
|
50
|
-
lifestyle2:
|
|
51
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-taryn-elliott-7108801.mp4',
|
|
52
|
-
nature1:
|
|
53
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-taryn-elliott-8713109.mp4',
|
|
54
|
-
nature2:
|
|
55
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-taryn-elliott-8713114.mp4'
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
// Labels for each redaction technique
|
|
59
|
-
const LABELS = [
|
|
60
|
-
'Radial Blur',
|
|
61
|
-
'Full-Block Blur',
|
|
62
|
-
'Pixelization',
|
|
63
|
-
'Solid Overlay',
|
|
64
|
-
'Time-Based'
|
|
65
|
-
];
|
|
21
|
+
<NodejsVideoExportNotice {...props} />
|
|
66
22
|
|
|
67
|
-
|
|
68
|
-
|
|
23
|
+
```typescript file=@cesdk_web_examples/guides-create-video-redaction-server-js/server-js.ts reference-only
|
|
24
|
+
import CreativeEngine from '@cesdk/node';
|
|
25
|
+
import { mkdir, writeFile } from 'fs/promises';
|
|
26
|
+
import { config } from 'dotenv';
|
|
27
|
+
|
|
28
|
+
// Load environment variables
|
|
29
|
+
config();
|
|
69
30
|
|
|
70
31
|
/**
|
|
71
|
-
* CE.SDK
|
|
32
|
+
* CE.SDK Server Guide: Video Redaction
|
|
72
33
|
*
|
|
73
34
|
* Demonstrates video redaction techniques in CE.SDK:
|
|
74
35
|
* - Full-block blur for complete video obscuration
|
|
@@ -77,268 +38,324 @@ const SEGMENT_DURATION = 5.0;
|
|
|
77
38
|
* - Solid overlays for complete blocking
|
|
78
39
|
* - Time-based redactions
|
|
79
40
|
*/
|
|
80
|
-
class Example implements EditorPlugin {
|
|
81
|
-
name = packageJson.name;
|
|
82
41
|
|
|
83
|
-
|
|
42
|
+
// Video URL for demonstrating redaction scenarios
|
|
43
|
+
const VIDEO_URL =
|
|
44
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-drone-footage-of-a-surfer-barrelling-a-wave-12715991.mp4';
|
|
84
45
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
88
|
-
}
|
|
46
|
+
// Duration for each video segment (in seconds)
|
|
47
|
+
const SEGMENT_DURATION = 5.0;
|
|
89
48
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
96
|
-
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
97
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
98
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
99
|
-
await cesdk.addPlugin(
|
|
100
|
-
new UploadAssetSources({
|
|
101
|
-
include: [
|
|
102
|
-
'ly.img.image.upload',
|
|
103
|
-
'ly.img.video.upload',
|
|
104
|
-
'ly.img.audio.upload'
|
|
105
|
-
]
|
|
106
|
-
})
|
|
107
|
-
);
|
|
108
|
-
await cesdk.addPlugin(
|
|
109
|
-
new DemoAssetSources({
|
|
110
|
-
include: [
|
|
111
|
-
'ly.img.templates.video.*',
|
|
112
|
-
'ly.img.image.*',
|
|
113
|
-
'ly.img.audio.*',
|
|
114
|
-
'ly.img.video.*'
|
|
115
|
-
]
|
|
116
|
-
})
|
|
117
|
-
);
|
|
118
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
119
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
120
|
-
await cesdk.addPlugin(
|
|
121
|
-
new PagePresetsAssetSource({
|
|
122
|
-
include: [
|
|
123
|
-
'ly.img.page.presets.instagram.*',
|
|
124
|
-
'ly.img.page.presets.facebook.*',
|
|
125
|
-
'ly.img.page.presets.x.*',
|
|
126
|
-
'ly.img.page.presets.linkedin.*',
|
|
127
|
-
'ly.img.page.presets.pinterest.*',
|
|
128
|
-
'ly.img.page.presets.tiktok.*',
|
|
129
|
-
'ly.img.page.presets.youtube.*',
|
|
130
|
-
'ly.img.page.presets.video.*'
|
|
131
|
-
]
|
|
132
|
-
})
|
|
133
|
-
);
|
|
134
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
135
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
136
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
137
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
138
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
139
|
-
|
|
140
|
-
await cesdk.actions.run('scene.create', {
|
|
141
|
-
layout: 'DepthStack',
|
|
142
|
-
page: { width: 1920, height: 1080, unit: 'Pixel' }
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
const engine = cesdk.engine;
|
|
146
|
-
const scene = engine.scene.get();
|
|
147
|
-
const pages = engine.block.findByType('page');
|
|
148
|
-
const page = pages.length > 0 ? pages[0] : scene;
|
|
149
|
-
|
|
150
|
-
// Set 16:9 page dimensions (1920x1080)
|
|
151
|
-
const pageWidth = engine.block.getWidth(page);
|
|
152
|
-
const pageHeight = engine.block.getHeight(page);
|
|
153
|
-
|
|
154
|
-
// Load all videos simultaneously
|
|
155
|
-
const videoUrls = [
|
|
156
|
-
VIDEOS.nature2,
|
|
157
|
-
VIDEOS.surfer,
|
|
158
|
-
VIDEOS.lifestyle1,
|
|
159
|
-
VIDEOS.lifestyle2,
|
|
160
|
-
VIDEOS.nature1
|
|
161
|
-
];
|
|
162
|
-
|
|
163
|
-
const videos = await Promise.all(
|
|
164
|
-
videoUrls.map((url) => engine.block.addVideo(url, pageWidth, pageHeight))
|
|
165
|
-
);
|
|
49
|
+
// Initialize CE.SDK engine in headless mode
|
|
50
|
+
const engine = await CreativeEngine.init({
|
|
51
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
52
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
53
|
+
});
|
|
166
54
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
55
|
+
try {
|
|
56
|
+
// Create a scene with a page
|
|
57
|
+
const pageWidth = 1920;
|
|
58
|
+
const pageHeight = 1080;
|
|
59
|
+
const scene = engine.scene.create('DepthStack');
|
|
60
|
+
|
|
61
|
+
// Create a page
|
|
62
|
+
const page = engine.block.create('page');
|
|
63
|
+
engine.block.appendChild(scene, page);
|
|
64
|
+
|
|
65
|
+
// Set page to 16:9 landscape (1920x1080 is standard HD video resolution)
|
|
66
|
+
engine.block.setWidth(page, pageWidth);
|
|
67
|
+
engine.block.setHeight(page, pageHeight);
|
|
68
|
+
|
|
69
|
+
// Set page duration to accommodate all videos (5 segments x 5 seconds)
|
|
70
|
+
engine.block.setDuration(page, 5 * SEGMENT_DURATION);
|
|
71
|
+
|
|
72
|
+
// Create a track to hold the video clips
|
|
73
|
+
const track = engine.block.create('track');
|
|
74
|
+
engine.block.appendChild(page, track);
|
|
75
|
+
|
|
76
|
+
// Create video blocks for each redaction technique demonstration
|
|
77
|
+
console.log('Loading video blocks...');
|
|
78
|
+
|
|
79
|
+
console.log(' Loading video 1/5 (radial blur)...');
|
|
80
|
+
const radialVideo = await engine.block.addVideo(
|
|
81
|
+
VIDEO_URL,
|
|
82
|
+
pageWidth,
|
|
83
|
+
pageHeight,
|
|
84
|
+
{
|
|
85
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 0 }
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
engine.block.appendChild(track, radialVideo);
|
|
89
|
+
|
|
90
|
+
console.log(' Loading video 2/5 (full-block blur)...');
|
|
91
|
+
const fullBlurVideo = await engine.block.addVideo(
|
|
92
|
+
VIDEO_URL,
|
|
93
|
+
pageWidth,
|
|
94
|
+
pageHeight,
|
|
95
|
+
{
|
|
96
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: SEGMENT_DURATION }
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
engine.block.appendChild(track, fullBlurVideo);
|
|
100
|
+
|
|
101
|
+
console.log(' Loading video 3/5 (pixelization)...');
|
|
102
|
+
const pixelVideo = await engine.block.addVideo(
|
|
103
|
+
VIDEO_URL,
|
|
104
|
+
pageWidth,
|
|
105
|
+
pageHeight,
|
|
106
|
+
{
|
|
107
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 2 * SEGMENT_DURATION }
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
engine.block.appendChild(track, pixelVideo);
|
|
111
|
+
|
|
112
|
+
console.log(' Loading video 4/5 (solid overlay)...');
|
|
113
|
+
const overlayVideo = await engine.block.addVideo(
|
|
114
|
+
VIDEO_URL,
|
|
115
|
+
pageWidth,
|
|
116
|
+
pageHeight,
|
|
117
|
+
{
|
|
118
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 3 * SEGMENT_DURATION }
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
engine.block.appendChild(track, overlayVideo);
|
|
122
|
+
|
|
123
|
+
console.log(' Loading video 5/5 (time-based blur)...');
|
|
124
|
+
const timedVideo = await engine.block.addVideo(
|
|
125
|
+
VIDEO_URL,
|
|
126
|
+
pageWidth,
|
|
127
|
+
pageHeight,
|
|
128
|
+
{
|
|
129
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 4 * SEGMENT_DURATION }
|
|
216
130
|
}
|
|
131
|
+
);
|
|
132
|
+
engine.block.appendChild(track, timedVideo);
|
|
133
|
+
|
|
134
|
+
console.log('All videos loaded.');
|
|
135
|
+
|
|
136
|
+
// Resize all track children to fill the page dimensions
|
|
137
|
+
engine.block.fillParent(track);
|
|
138
|
+
|
|
139
|
+
// Full-Block Blur: Apply blur to entire video
|
|
140
|
+
// Use this when the entire video content needs obscuring
|
|
141
|
+
console.log('Applying redaction effects...');
|
|
142
|
+
|
|
143
|
+
// Check if the block supports blur
|
|
144
|
+
const supportsBlur = engine.block.supportsBlur(fullBlurVideo);
|
|
145
|
+
console.log('Video supports blur:', supportsBlur);
|
|
146
|
+
|
|
147
|
+
// Create and apply uniform blur to entire video
|
|
148
|
+
const uniformBlur = engine.block.createBlur('uniform');
|
|
149
|
+
engine.block.setFloat(uniformBlur, 'blur/uniform/intensity', 0.7);
|
|
150
|
+
engine.block.setBlur(fullBlurVideo, uniformBlur);
|
|
151
|
+
engine.block.setBlurEnabled(fullBlurVideo, true);
|
|
217
152
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
const
|
|
224
|
-
engine.block.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
});
|
|
234
|
-
engine.block.setFill(overlay, solidFill);
|
|
235
|
-
|
|
236
|
-
// Position and size the overlay
|
|
237
|
-
engine.block.setWidth(overlay, pageWidth * 0.4);
|
|
238
|
-
engine.block.setHeight(overlay, pageHeight * 0.3);
|
|
239
|
-
engine.block.setPositionX(overlay, pageWidth * 0.55);
|
|
240
|
-
engine.block.setPositionY(overlay, pageHeight * 0.65);
|
|
241
|
-
engine.block.appendChild(page, overlay);
|
|
242
|
-
engine.block.setTimeOffset(overlay, 3 * SEGMENT_DURATION);
|
|
243
|
-
engine.block.setDuration(overlay, SEGMENT_DURATION);
|
|
244
|
-
|
|
245
|
-
// Time-Based Redaction: Redaction appears only during specific time range
|
|
246
|
-
|
|
247
|
-
// Apply blur to the video
|
|
248
|
-
const timedBlur = engine.block.createBlur('uniform');
|
|
249
|
-
engine.block.setFloat(timedBlur, 'blur/uniform/intensity', 0.9);
|
|
250
|
-
engine.block.setBlur(timedVideo, timedBlur);
|
|
251
|
-
engine.block.setBlurEnabled(timedVideo, true);
|
|
252
|
-
|
|
253
|
-
// The video is already timed to appear at a specific offset (set earlier)
|
|
254
|
-
// You can adjust timeOffset and duration to control when redaction is visible
|
|
255
|
-
engine.block.setTimeOffset(timedVideo, 4 * SEGMENT_DURATION);
|
|
256
|
-
engine.block.setDuration(timedVideo, SEGMENT_DURATION);
|
|
257
|
-
|
|
258
|
-
// Radial Blur: Use radial blur for face-like regions
|
|
259
|
-
|
|
260
|
-
// Apply radial blur for circular redaction effect
|
|
261
|
-
const radialBlur = engine.block.createBlur('radial');
|
|
262
|
-
engine.block.setFloat(radialBlur, 'blur/radial/blurRadius', 50);
|
|
263
|
-
engine.block.setFloat(radialBlur, 'blur/radial/radius', 25);
|
|
264
|
-
engine.block.setFloat(radialBlur, 'blur/radial/gradientRadius', 35);
|
|
265
|
-
engine.block.setFloat(radialBlur, 'blur/radial/x', 0.5);
|
|
266
|
-
engine.block.setFloat(radialBlur, 'blur/radial/y', 0.45);
|
|
267
|
-
engine.block.setBlur(radialVideo, radialBlur);
|
|
268
|
-
engine.block.setBlurEnabled(radialVideo, true);
|
|
269
|
-
|
|
270
|
-
// Add text labels for each video segment (positioned top-right)
|
|
271
|
-
const labelWidth = 400;
|
|
272
|
-
const labelHeight = 60;
|
|
273
|
-
const labelPadding = 20;
|
|
274
|
-
const labelMargin = 30;
|
|
275
|
-
|
|
276
|
-
videos.forEach((_, index) => {
|
|
277
|
-
const label = LABELS[index];
|
|
278
|
-
|
|
279
|
-
// Add background first (so it's behind text)
|
|
280
|
-
const labelBg = engine.block.create('//ly.img.ubq/graphic');
|
|
281
|
-
const labelBgShape = engine.block.createShape('//ly.img.ubq/shape/rect');
|
|
282
|
-
engine.block.setShape(labelBg, labelBgShape);
|
|
283
|
-
|
|
284
|
-
const labelBgFill = engine.block.createFill('//ly.img.ubq/fill/color');
|
|
285
|
-
engine.block.setColor(labelBgFill, 'fill/color/value', {
|
|
286
|
-
r: 0.0,
|
|
287
|
-
g: 0.0,
|
|
288
|
-
b: 0.0,
|
|
289
|
-
a: 0.8
|
|
290
|
-
});
|
|
291
|
-
engine.block.setFill(labelBg, labelBgFill);
|
|
292
|
-
|
|
293
|
-
engine.block.setWidth(labelBg, labelWidth);
|
|
294
|
-
engine.block.setHeight(labelBg, labelHeight + labelPadding);
|
|
295
|
-
engine.block.setPositionX(labelBg, pageWidth - labelWidth - labelMargin);
|
|
296
|
-
engine.block.setPositionY(labelBg, labelMargin);
|
|
297
|
-
engine.block.setTimeOffset(labelBg, index * SEGMENT_DURATION);
|
|
298
|
-
engine.block.setDuration(labelBg, SEGMENT_DURATION);
|
|
299
|
-
engine.block.appendChild(page, labelBg);
|
|
300
|
-
|
|
301
|
-
// Create text block for label
|
|
302
|
-
const textBlock = engine.block.create('//ly.img.ubq/text');
|
|
303
|
-
engine.block.setString(textBlock, 'text/text', label);
|
|
304
|
-
engine.block.setFloat(textBlock, 'text/fontSize', 48);
|
|
305
|
-
engine.block.setEnum(textBlock, 'text/horizontalAlignment', 'Center');
|
|
306
|
-
engine.block.setEnum(textBlock, 'text/verticalAlignment', 'Center');
|
|
307
|
-
|
|
308
|
-
// Set white text color
|
|
309
|
-
engine.block.setTextColor(textBlock, { r: 1.0, g: 1.0, b: 1.0, a: 1.0 });
|
|
310
|
-
|
|
311
|
-
// Position label at top right
|
|
312
|
-
engine.block.setWidth(textBlock, labelWidth);
|
|
313
|
-
engine.block.setHeight(textBlock, labelHeight);
|
|
314
|
-
engine.block.setPositionX(
|
|
315
|
-
textBlock,
|
|
316
|
-
pageWidth - labelWidth - labelMargin
|
|
317
|
-
);
|
|
318
|
-
engine.block.setPositionY(textBlock, labelMargin + labelPadding / 2);
|
|
319
|
-
engine.block.setTimeOffset(textBlock, index * SEGMENT_DURATION);
|
|
320
|
-
engine.block.setDuration(textBlock, SEGMENT_DURATION);
|
|
321
|
-
|
|
322
|
-
engine.block.appendChild(page, textBlock);
|
|
323
|
-
});
|
|
324
|
-
|
|
325
|
-
// Enable auto-fit to keep page in view
|
|
326
|
-
cesdk.engine.scene.enableZoomAutoFit(page, 'Both', 40, 40, 40, 40);
|
|
327
|
-
|
|
328
|
-
// Select first video to show timeline controls
|
|
329
|
-
engine.block.select(fullBlurVideo);
|
|
330
|
-
|
|
331
|
-
// eslint-disable-next-line no-console
|
|
332
|
-
console.log(
|
|
333
|
-
'Video redaction guide initialized. Videos play sequentially - press play to see each redaction technique.'
|
|
153
|
+
// Pixelization: Apply mosaic effect for clearly intentional censoring
|
|
154
|
+
|
|
155
|
+
// Check if the block supports effects
|
|
156
|
+
if (engine.block.supportsEffects(pixelVideo)) {
|
|
157
|
+
// Create and apply pixelize effect
|
|
158
|
+
const pixelizeEffect = engine.block.createEffect('pixelize');
|
|
159
|
+
engine.block.setInt(
|
|
160
|
+
pixelizeEffect,
|
|
161
|
+
'effect/pixelize/horizontalPixelSize',
|
|
162
|
+
24
|
|
163
|
+
);
|
|
164
|
+
engine.block.setInt(
|
|
165
|
+
pixelizeEffect,
|
|
166
|
+
'effect/pixelize/verticalPixelSize',
|
|
167
|
+
24
|
|
334
168
|
);
|
|
169
|
+
engine.block.appendEffect(pixelVideo, pixelizeEffect);
|
|
170
|
+
engine.block.setEffectEnabled(pixelizeEffect, true);
|
|
335
171
|
}
|
|
172
|
+
|
|
173
|
+
// Solid Overlay: Create opaque shape for complete blocking
|
|
174
|
+
// Best for highly sensitive information like documents or credentials
|
|
175
|
+
|
|
176
|
+
// Create a solid rectangle overlay
|
|
177
|
+
const overlay = engine.block.create('//ly.img.ubq/graphic');
|
|
178
|
+
const rectShape = engine.block.createShape('//ly.img.ubq/shape/rect');
|
|
179
|
+
engine.block.setShape(overlay, rectShape);
|
|
180
|
+
|
|
181
|
+
// Create solid black fill
|
|
182
|
+
const solidFill = engine.block.createFill('//ly.img.ubq/fill/color');
|
|
183
|
+
engine.block.setColor(solidFill, 'fill/color/value', {
|
|
184
|
+
r: 0.1,
|
|
185
|
+
g: 0.1,
|
|
186
|
+
b: 0.1,
|
|
187
|
+
a: 1.0
|
|
188
|
+
});
|
|
189
|
+
engine.block.setFill(overlay, solidFill);
|
|
190
|
+
|
|
191
|
+
// Position and size the overlay
|
|
192
|
+
engine.block.setWidth(overlay, pageWidth * 0.4);
|
|
193
|
+
engine.block.setHeight(overlay, pageHeight * 0.3);
|
|
194
|
+
engine.block.setPositionX(overlay, pageWidth * 0.55);
|
|
195
|
+
engine.block.setPositionY(overlay, pageHeight * 0.65);
|
|
196
|
+
engine.block.setTimeOffset(overlay, 3 * SEGMENT_DURATION);
|
|
197
|
+
engine.block.setDuration(overlay, SEGMENT_DURATION);
|
|
198
|
+
engine.block.appendChild(page, overlay);
|
|
199
|
+
|
|
200
|
+
// Time-Based Redaction: Redaction appears only during specific time range
|
|
201
|
+
|
|
202
|
+
// Apply blur to the video
|
|
203
|
+
const timedBlur = engine.block.createBlur('uniform');
|
|
204
|
+
engine.block.setFloat(timedBlur, 'blur/uniform/intensity', 0.9);
|
|
205
|
+
engine.block.setBlur(timedVideo, timedBlur);
|
|
206
|
+
engine.block.setBlurEnabled(timedVideo, true);
|
|
207
|
+
|
|
208
|
+
// The video is already timed to appear at a specific offset
|
|
209
|
+
// You can adjust timeOffset and duration to control when redaction is visible
|
|
210
|
+
engine.block.setTimeOffset(timedVideo, 4 * SEGMENT_DURATION);
|
|
211
|
+
engine.block.setDuration(timedVideo, SEGMENT_DURATION);
|
|
212
|
+
|
|
213
|
+
// Radial Blur: Use radial blur for face-like regions
|
|
214
|
+
|
|
215
|
+
// Apply radial blur for circular redaction effect
|
|
216
|
+
const radialBlur = engine.block.createBlur('radial');
|
|
217
|
+
engine.block.setFloat(radialBlur, 'blur/radial/blurRadius', 50);
|
|
218
|
+
engine.block.setFloat(radialBlur, 'blur/radial/radius', 25);
|
|
219
|
+
engine.block.setFloat(radialBlur, 'blur/radial/gradientRadius', 35);
|
|
220
|
+
engine.block.setFloat(radialBlur, 'blur/radial/x', 0.5);
|
|
221
|
+
engine.block.setFloat(radialBlur, 'blur/radial/y', 0.45);
|
|
222
|
+
engine.block.setBlur(radialVideo, radialBlur);
|
|
223
|
+
engine.block.setBlurEnabled(radialVideo, true);
|
|
224
|
+
|
|
225
|
+
// Save the scene to a file for later use or export
|
|
226
|
+
await mkdir('output', { recursive: true });
|
|
227
|
+
const sceneData = await engine.scene.saveToString();
|
|
228
|
+
await writeFile('output/redacted-video.scene', sceneData);
|
|
229
|
+
console.log('Scene saved to output/redacted-video.scene');
|
|
230
|
+
|
|
231
|
+
console.log('');
|
|
232
|
+
console.log('Video redaction guide complete.');
|
|
233
|
+
console.log('Created scene with 5 redaction techniques:');
|
|
234
|
+
console.log(' 1. Radial blur (0-5s)');
|
|
235
|
+
console.log(' 2. Full-block blur (5-10s)');
|
|
236
|
+
console.log(' 3. Pixelization (10-15s)');
|
|
237
|
+
console.log(' 4. Solid overlay (15-20s)');
|
|
238
|
+
console.log(' 5. Time-based blur (20-25s)');
|
|
239
|
+
} finally {
|
|
240
|
+
// Always dispose of the engine to free resources
|
|
241
|
+
engine.dispose();
|
|
336
242
|
}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
This guide covers how to apply redaction programmatically using blur, pixelization, solid overlays, and time-based controls.
|
|
246
|
+
|
|
247
|
+
## Prerequisites and Setup
|
|
248
|
+
|
|
249
|
+
We start by initializing CE.SDK in headless mode for server-side video processing.
|
|
250
|
+
|
|
251
|
+
```typescript highlight=highlight-setup
|
|
252
|
+
// Initialize CE.SDK engine in headless mode
|
|
253
|
+
const engine = await CreativeEngine.init({
|
|
254
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
255
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
256
|
+
});
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
The engine runs without a UI, making it suitable for automated workflows, batch processing, or backend services.
|
|
260
|
+
|
|
261
|
+
## Creating the Scene
|
|
262
|
+
|
|
263
|
+
We create a scene and page for the video composition.
|
|
264
|
+
|
|
265
|
+
```typescript highlight=highlight-create-scene
|
|
266
|
+
// Create a scene with a page
|
|
267
|
+
const pageWidth = 1920;
|
|
268
|
+
const pageHeight = 1080;
|
|
269
|
+
const scene = engine.scene.create('DepthStack');
|
|
270
|
+
|
|
271
|
+
// Create a page
|
|
272
|
+
const page = engine.block.create('page');
|
|
273
|
+
engine.block.appendChild(scene, page);
|
|
337
274
|
|
|
338
|
-
|
|
275
|
+
// Set page to 16:9 landscape (1920x1080 is standard HD video resolution)
|
|
276
|
+
engine.block.setWidth(page, pageWidth);
|
|
277
|
+
engine.block.setHeight(page, pageHeight);
|
|
278
|
+
|
|
279
|
+
// Set page duration to accommodate all videos (5 segments x 5 seconds)
|
|
280
|
+
engine.block.setDuration(page, 5 * SEGMENT_DURATION);
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
We create a scene with `scene.create()`, then explicitly create a page and append it to the scene. The page dimensions set the video resolution, and the page duration determines how long the composition plays.
|
|
284
|
+
|
|
285
|
+
## Creating Video Blocks
|
|
286
|
+
|
|
287
|
+
We create a track to hold video clips, then add video blocks for each redaction technique.
|
|
288
|
+
|
|
289
|
+
```typescript highlight=highlight-create-videos
|
|
290
|
+
// Create a track to hold the video clips
|
|
291
|
+
const track = engine.block.create('track');
|
|
292
|
+
engine.block.appendChild(page, track);
|
|
293
|
+
|
|
294
|
+
// Create video blocks for each redaction technique demonstration
|
|
295
|
+
console.log('Loading video blocks...');
|
|
296
|
+
|
|
297
|
+
console.log(' Loading video 1/5 (radial blur)...');
|
|
298
|
+
const radialVideo = await engine.block.addVideo(
|
|
299
|
+
VIDEO_URL,
|
|
300
|
+
pageWidth,
|
|
301
|
+
pageHeight,
|
|
302
|
+
{
|
|
303
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 0 }
|
|
304
|
+
}
|
|
305
|
+
);
|
|
306
|
+
engine.block.appendChild(track, radialVideo);
|
|
307
|
+
|
|
308
|
+
console.log(' Loading video 2/5 (full-block blur)...');
|
|
309
|
+
const fullBlurVideo = await engine.block.addVideo(
|
|
310
|
+
VIDEO_URL,
|
|
311
|
+
pageWidth,
|
|
312
|
+
pageHeight,
|
|
313
|
+
{
|
|
314
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: SEGMENT_DURATION }
|
|
315
|
+
}
|
|
316
|
+
);
|
|
317
|
+
engine.block.appendChild(track, fullBlurVideo);
|
|
318
|
+
|
|
319
|
+
console.log(' Loading video 3/5 (pixelization)...');
|
|
320
|
+
const pixelVideo = await engine.block.addVideo(
|
|
321
|
+
VIDEO_URL,
|
|
322
|
+
pageWidth,
|
|
323
|
+
pageHeight,
|
|
324
|
+
{
|
|
325
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 2 * SEGMENT_DURATION }
|
|
326
|
+
}
|
|
327
|
+
);
|
|
328
|
+
engine.block.appendChild(track, pixelVideo);
|
|
329
|
+
|
|
330
|
+
console.log(' Loading video 4/5 (solid overlay)...');
|
|
331
|
+
const overlayVideo = await engine.block.addVideo(
|
|
332
|
+
VIDEO_URL,
|
|
333
|
+
pageWidth,
|
|
334
|
+
pageHeight,
|
|
335
|
+
{
|
|
336
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 3 * SEGMENT_DURATION }
|
|
337
|
+
}
|
|
338
|
+
);
|
|
339
|
+
engine.block.appendChild(track, overlayVideo);
|
|
340
|
+
|
|
341
|
+
console.log(' Loading video 5/5 (time-based blur)...');
|
|
342
|
+
const timedVideo = await engine.block.addVideo(
|
|
343
|
+
VIDEO_URL,
|
|
344
|
+
pageWidth,
|
|
345
|
+
pageHeight,
|
|
346
|
+
{
|
|
347
|
+
timeline: { duration: SEGMENT_DURATION, timeOffset: 4 * SEGMENT_DURATION }
|
|
348
|
+
}
|
|
349
|
+
);
|
|
350
|
+
engine.block.appendChild(track, timedVideo);
|
|
351
|
+
|
|
352
|
+
console.log('All videos loaded.');
|
|
353
|
+
|
|
354
|
+
// Resize all track children to fill the page dimensions
|
|
355
|
+
engine.block.fillParent(track);
|
|
339
356
|
```
|
|
340
357
|
|
|
341
|
-
|
|
358
|
+
Videos are added to a track which organizes them for sequential playback. Each video is positioned at a different time offset to demonstrate each redaction technique. The `fillParent` call ensures all clips fill the page dimensions.
|
|
342
359
|
|
|
343
360
|
## Understanding Redaction in CE.SDK
|
|
344
361
|
|
|
@@ -355,20 +372,6 @@ Select your technique based on privacy requirements and visual impact:
|
|
|
355
372
|
- **Pixelization**: Clearly intentional censoring that's faster to render than heavy blur
|
|
356
373
|
- **Solid overlays**: Complete blocking for highly sensitive information like documents or credentials
|
|
357
374
|
|
|
358
|
-
## Using the Built-in UI
|
|
359
|
-
|
|
360
|
-
### Accessing Blur Controls
|
|
361
|
-
|
|
362
|
-
When you select a video block, the inspector panel provides access to blur settings. Navigate to the blur section to find controls for different blur types including uniform, radial, linear, and mirrored.
|
|
363
|
-
|
|
364
|
-
The uniform blur applies consistent intensity across the entire block. Adjust the intensity slider to control how strongly the content is obscured. Higher values create stronger privacy protection but may affect visual quality.
|
|
365
|
-
|
|
366
|
-
### Accessing Pixelization Controls
|
|
367
|
-
|
|
368
|
-
The effects panel contains pixelization settings. Select your video block, open the effects section, and add a pixelize effect. Configure the horizontal and vertical pixel sizes to control the mosaic block dimensions.
|
|
369
|
-
|
|
370
|
-
Larger pixel sizes create stronger obscuration but are more visually disruptive. Values between 15-30 pixels work well for standard redaction scenarios.
|
|
371
|
-
|
|
372
375
|
## Programmatic Redaction
|
|
373
376
|
|
|
374
377
|
### Full-Block Blur
|
|
@@ -376,16 +379,15 @@ Larger pixel sizes create stronger obscuration but are more visually disruptive.
|
|
|
376
379
|
When the entire video needs obscuring, apply blur directly to the original block without duplication. This approach works well for background content or privacy placeholders.
|
|
377
380
|
|
|
378
381
|
```typescript highlight-full-block-blur
|
|
379
|
-
// Check if the block supports blur
|
|
380
|
-
const supportsBlur = engine.block.supportsBlur(fullBlurVideo);
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
engine.block.
|
|
387
|
-
engine.block.
|
|
388
|
-
engine.block.setBlurEnabled(fullBlurVideo, true);
|
|
382
|
+
// Check if the block supports blur
|
|
383
|
+
const supportsBlur = engine.block.supportsBlur(fullBlurVideo);
|
|
384
|
+
console.log('Video supports blur:', supportsBlur);
|
|
385
|
+
|
|
386
|
+
// Create and apply uniform blur to entire video
|
|
387
|
+
const uniformBlur = engine.block.createBlur('uniform');
|
|
388
|
+
engine.block.setFloat(uniformBlur, 'blur/uniform/intensity', 0.7);
|
|
389
|
+
engine.block.setBlur(fullBlurVideo, uniformBlur);
|
|
390
|
+
engine.block.setBlurEnabled(fullBlurVideo, true);
|
|
389
391
|
```
|
|
390
392
|
|
|
391
393
|
We first check that the block supports blur with `supportsBlur()`. Then we create a uniform blur, configure its intensity, attach it to the video block with `setBlur()`, and enable it with `setBlurEnabled()`. The intensity value ranges from 0.0 to 1.0, where higher values create stronger blur.
|
|
@@ -404,7 +406,11 @@ if (engine.block.supportsEffects(pixelVideo)) {
|
|
|
404
406
|
'effect/pixelize/horizontalPixelSize',
|
|
405
407
|
24
|
|
406
408
|
);
|
|
407
|
-
engine.block.setInt(
|
|
409
|
+
engine.block.setInt(
|
|
410
|
+
pixelizeEffect,
|
|
411
|
+
'effect/pixelize/verticalPixelSize',
|
|
412
|
+
24
|
|
413
|
+
);
|
|
408
414
|
engine.block.appendEffect(pixelVideo, pixelizeEffect);
|
|
409
415
|
engine.block.setEffectEnabled(pixelizeEffect, true);
|
|
410
416
|
}
|
|
@@ -414,30 +420,32 @@ We check `supportsEffects()` before creating the pixelize effect. The horizontal
|
|
|
414
420
|
|
|
415
421
|
### Solid Overlays
|
|
416
422
|
|
|
417
|
-
For complete blocking without any visual hint of the underlying content, create an opaque shape overlay.
|
|
423
|
+
For complete blocking without any visual hint of the underlying content, create an opaque shape overlay.
|
|
418
424
|
|
|
419
425
|
```typescript highlight-solid-overlay
|
|
420
|
-
// Create a solid rectangle overlay
|
|
421
|
-
const overlay = engine.block.create('//ly.img.ubq/graphic');
|
|
422
|
-
const rectShape = engine.block.createShape('//ly.img.ubq/shape/rect');
|
|
423
|
-
engine.block.setShape(overlay, rectShape);
|
|
424
|
-
|
|
425
|
-
// Create solid black fill
|
|
426
|
-
const solidFill = engine.block.createFill('//ly.img.ubq/fill/color');
|
|
427
|
-
engine.block.setColor(solidFill, 'fill/color/value', {
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
});
|
|
433
|
-
engine.block.setFill(overlay, solidFill);
|
|
434
|
-
|
|
435
|
-
// Position and size the overlay
|
|
436
|
-
engine.block.setWidth(overlay, pageWidth * 0.4);
|
|
437
|
-
engine.block.setHeight(overlay, pageHeight * 0.3);
|
|
438
|
-
engine.block.setPositionX(overlay, pageWidth * 0.55);
|
|
439
|
-
engine.block.setPositionY(overlay, pageHeight * 0.65);
|
|
440
|
-
engine.block.
|
|
426
|
+
// Create a solid rectangle overlay
|
|
427
|
+
const overlay = engine.block.create('//ly.img.ubq/graphic');
|
|
428
|
+
const rectShape = engine.block.createShape('//ly.img.ubq/shape/rect');
|
|
429
|
+
engine.block.setShape(overlay, rectShape);
|
|
430
|
+
|
|
431
|
+
// Create solid black fill
|
|
432
|
+
const solidFill = engine.block.createFill('//ly.img.ubq/fill/color');
|
|
433
|
+
engine.block.setColor(solidFill, 'fill/color/value', {
|
|
434
|
+
r: 0.1,
|
|
435
|
+
g: 0.1,
|
|
436
|
+
b: 0.1,
|
|
437
|
+
a: 1.0
|
|
438
|
+
});
|
|
439
|
+
engine.block.setFill(overlay, solidFill);
|
|
440
|
+
|
|
441
|
+
// Position and size the overlay
|
|
442
|
+
engine.block.setWidth(overlay, pageWidth * 0.4);
|
|
443
|
+
engine.block.setHeight(overlay, pageHeight * 0.3);
|
|
444
|
+
engine.block.setPositionX(overlay, pageWidth * 0.55);
|
|
445
|
+
engine.block.setPositionY(overlay, pageHeight * 0.65);
|
|
446
|
+
engine.block.setTimeOffset(overlay, 3 * SEGMENT_DURATION);
|
|
447
|
+
engine.block.setDuration(overlay, SEGMENT_DURATION);
|
|
448
|
+
engine.block.appendChild(page, overlay);
|
|
441
449
|
```
|
|
442
450
|
|
|
443
451
|
We create a graphic block with a rectangle shape and solid color fill. The overlay uses absolute page coordinates for positioning. Set the alpha to 1.0 for complete opacity.
|
|
@@ -447,16 +455,16 @@ We create a graphic block with a rectangle shape and solid color fill. The overl
|
|
|
447
455
|
Redactions can appear only during specific portions of the video. We use `setTimeOffset()` and `setDuration()` to control when the redaction is visible.
|
|
448
456
|
|
|
449
457
|
```typescript highlight-time-based-redaction
|
|
450
|
-
// Apply blur to the video
|
|
451
|
-
const timedBlur = engine.block.createBlur('uniform');
|
|
452
|
-
engine.block.setFloat(timedBlur, 'blur/uniform/intensity', 0.9);
|
|
453
|
-
engine.block.setBlur(timedVideo, timedBlur);
|
|
454
|
-
engine.block.setBlurEnabled(timedVideo, true);
|
|
455
|
-
|
|
456
|
-
// The video is already timed to appear at a specific offset
|
|
457
|
-
// You can adjust timeOffset and duration to control when redaction is visible
|
|
458
|
-
engine.block.setTimeOffset(timedVideo, 4 * SEGMENT_DURATION);
|
|
459
|
-
engine.block.setDuration(timedVideo, SEGMENT_DURATION);
|
|
458
|
+
// Apply blur to the video
|
|
459
|
+
const timedBlur = engine.block.createBlur('uniform');
|
|
460
|
+
engine.block.setFloat(timedBlur, 'blur/uniform/intensity', 0.9);
|
|
461
|
+
engine.block.setBlur(timedVideo, timedBlur);
|
|
462
|
+
engine.block.setBlurEnabled(timedVideo, true);
|
|
463
|
+
|
|
464
|
+
// The video is already timed to appear at a specific offset
|
|
465
|
+
// You can adjust timeOffset and duration to control when redaction is visible
|
|
466
|
+
engine.block.setTimeOffset(timedVideo, 4 * SEGMENT_DURATION);
|
|
467
|
+
engine.block.setDuration(timedVideo, SEGMENT_DURATION);
|
|
460
468
|
```
|
|
461
469
|
|
|
462
470
|
The time offset specifies when the redaction appears (in seconds from the start), and the duration controls how long it remains visible. This is useful for redacting faces or information that only appears briefly.
|
|
@@ -479,6 +487,29 @@ engine.block.setBlurEnabled(radialVideo, true);
|
|
|
479
487
|
|
|
480
488
|
Radial blur properties control the blur center (`x`, `y` from 0.0-1.0), the unblurred center area (`radius`), the blur transition zone (`gradientRadius`), and the blur strength (`blurRadius`).
|
|
481
489
|
|
|
490
|
+
## Saving the Scene
|
|
491
|
+
|
|
492
|
+
After applying redactions, save the scene for later use or export.
|
|
493
|
+
|
|
494
|
+
```typescript highlight-save-scene
|
|
495
|
+
// Save the scene to a file for later use or export
|
|
496
|
+
await mkdir('output', { recursive: true });
|
|
497
|
+
const sceneData = await engine.scene.saveToString();
|
|
498
|
+
await writeFile('output/redacted-video.scene', sceneData);
|
|
499
|
+
console.log('Scene saved to output/redacted-video.scene');
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
The scene file contains all blocks, effects, and time-based settings. You can load this scene later to continue editing or export the final video.
|
|
503
|
+
|
|
504
|
+
## Cleanup
|
|
505
|
+
|
|
506
|
+
Always dispose of the engine when done to free resources.
|
|
507
|
+
|
|
508
|
+
```typescript highlight-cleanup
|
|
509
|
+
// Always dispose of the engine to free resources
|
|
510
|
+
engine.dispose();
|
|
511
|
+
```
|
|
512
|
+
|
|
482
513
|
## Performance Considerations
|
|
483
514
|
|
|
484
515
|
Different redaction techniques have different performance impacts:
|
|
@@ -487,7 +518,7 @@ Different redaction techniques have different performance impacts:
|
|
|
487
518
|
- **Pixelization**: Faster than blur, larger pixel sizes have minimal impact
|
|
488
519
|
- **Blur effects**: Higher intensity values increase rendering time
|
|
489
520
|
|
|
490
|
-
For complex scenes with multiple redactions, consider using solid overlays where blur isn't necessary, or reduce blur intensity to maintain smooth
|
|
521
|
+
For complex scenes with multiple redactions, consider using solid overlays where blur isn't necessary, or reduce blur intensity to maintain smooth processing.
|
|
491
522
|
|
|
492
523
|
## Troubleshooting
|
|
493
524
|
|
|
@@ -513,32 +544,35 @@ Reduce blur intensity, use pixelization instead of heavy blur, or switch to soli
|
|
|
513
544
|
|
|
514
545
|
## API Reference
|
|
515
546
|
|
|
516
|
-
| Method
|
|
517
|
-
|
|
|
518
|
-
| `block.supportsBlur(id)`
|
|
519
|
-
| `block.createBlur(type)`
|
|
520
|
-
| `block.setBlur(id, blur)`
|
|
521
|
-
| `block.setBlurEnabled(id, enabled)`
|
|
522
|
-
| `block.supportsEffects(id)`
|
|
523
|
-
| `block.createEffect(type)`
|
|
524
|
-
| `block.appendEffect(id, effect)`
|
|
525
|
-
| `block.setEffectEnabled(effect, enabled)` | Enable or disable effect
|
|
526
|
-
| `block.setTimeOffset(id, offset)`
|
|
527
|
-
| `block.setDuration(id, duration)`
|
|
528
|
-
| `block.create(type)`
|
|
529
|
-
| `block.createShape(type)`
|
|
530
|
-
| `block.setShape(id, shape)`
|
|
531
|
-
| `block.createFill(type)`
|
|
532
|
-
| `block.setFill(id, fill)`
|
|
533
|
-
| `block.setFloat(id, property, value)`
|
|
534
|
-
| `block.setInt(id, property, value)`
|
|
535
|
-
| `block.setColor(id, property, color)`
|
|
547
|
+
| Method | Description |
|
|
548
|
+
| ------ | ----------- |
|
|
549
|
+
| `block.supportsBlur(id)` | Check if block supports blur effects |
|
|
550
|
+
| `block.createBlur(type)` | Create blur instance (uniform, radial, linear, mirrored) |
|
|
551
|
+
| `block.setBlur(id, blur)` | Apply blur to block |
|
|
552
|
+
| `block.setBlurEnabled(id, enabled)` | Enable or disable blur |
|
|
553
|
+
| `block.supportsEffects(id)` | Check if block supports effects |
|
|
554
|
+
| `block.createEffect(type)` | Create effect instance (pixelize, etc.) |
|
|
555
|
+
| `block.appendEffect(id, effect)` | Add effect to block |
|
|
556
|
+
| `block.setEffectEnabled(effect, enabled)` | Enable or disable effect |
|
|
557
|
+
| `block.setTimeOffset(id, offset)` | Set when block appears |
|
|
558
|
+
| `block.setDuration(id, duration)` | Set block duration |
|
|
559
|
+
| `block.create(type)` | Create block of specified type |
|
|
560
|
+
| `block.createShape(type)` | Create shape for graphic blocks |
|
|
561
|
+
| `block.setShape(id, shape)` | Apply shape to graphic block |
|
|
562
|
+
| `block.createFill(type)` | Create fill (color, image, video, gradient) |
|
|
563
|
+
| `block.setFill(id, fill)` | Apply fill to block |
|
|
564
|
+
| `block.setFloat(id, property, value)` | Set float property value |
|
|
565
|
+
| `block.setInt(id, property, value)` | Set integer property value |
|
|
566
|
+
| `block.setColor(id, property, color)` | Set color property value |
|
|
567
|
+
| `scene.saveToString()` | Save scene to string for storage |
|
|
568
|
+
|
|
569
|
+
|
|
536
570
|
|
|
537
571
|
---
|
|
538
572
|
|
|
539
573
|
## More Resources
|
|
540
574
|
|
|
541
|
-
- **[
|
|
575
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
542
576
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
543
|
-
- **[Web Documentation](./
|
|
544
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
577
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
578
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|