@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) > [Join and Arrange](./edit-video/join-and-arrange.md)
|
|
4
4
|
|
|
@@ -6,45 +6,31 @@
|
|
|
6
6
|
|
|
7
7
|
Combine multiple video clips into sequences and organize them in the composition using CE.SDK's track system and programmatic APIs.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
> **Reading time:** 12 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-join-and-arrange-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-video-join-and-arrange-server-js)
|
|
19
18
|
|
|
20
19
|
Video compositions in CE.SDK use a hierarchy: **Scene → Page → Track → Clip**. Tracks organize clips for sequential playback—when you add clips to a track, they play one after another. You can control precise timing using time offsets and create layered compositions by adding multiple tracks to a page.
|
|
21
20
|
|
|
22
21
|
In CE.SDK's block-based architecture, a **clip is a graphic block with a video fill**. This means video clips share the same APIs and capabilities as other blocks—you can position, rotate, scale, and apply effects to video just like images or shapes. The `addVideo()` helper creates this structure automatically and loads the video metadata.
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
import
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
DemoAssetSources,
|
|
33
|
-
EffectsAssetSource,
|
|
34
|
-
FiltersAssetSource,
|
|
35
|
-
PagePresetsAssetSource,
|
|
36
|
-
StickerAssetSource,
|
|
37
|
-
TextAssetSource,
|
|
38
|
-
TextComponentAssetSource,
|
|
39
|
-
TypefaceAssetSource,
|
|
40
|
-
UploadAssetSources,
|
|
41
|
-
VectorShapeAssetSource
|
|
42
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
43
|
-
import { VideoEditorConfig } from './video-editor/plugin';
|
|
44
|
-
import packageJson from './package.json';
|
|
23
|
+
<NodejsVideoExportNotice {...props} />
|
|
24
|
+
|
|
25
|
+
```typescript file=@cesdk_web_examples/guides-create-video-join-and-arrange-server-js/server-js.ts reference-only
|
|
26
|
+
import CreativeEngine from '@cesdk/node';
|
|
27
|
+
import { config } from 'dotenv';
|
|
28
|
+
|
|
29
|
+
// Load environment variables
|
|
30
|
+
config();
|
|
45
31
|
|
|
46
32
|
/**
|
|
47
|
-
* CE.SDK
|
|
33
|
+
* CE.SDK Server Guide: Join and Arrange Video Clips
|
|
48
34
|
*
|
|
49
35
|
* Demonstrates combining multiple video clips into sequences:
|
|
50
36
|
* - Creating video scenes and tracks
|
|
@@ -53,303 +39,188 @@ import packageJson from './package.json';
|
|
|
53
39
|
* - Controlling clip timing with time offsets
|
|
54
40
|
* - Creating multi-track compositions
|
|
55
41
|
*/
|
|
56
|
-
class Example implements EditorPlugin {
|
|
57
|
-
name = packageJson.name;
|
|
58
|
-
|
|
59
|
-
version = packageJson.version;
|
|
60
42
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
await cesdk.addPlugin(new VideoEditorConfig());
|
|
67
|
-
|
|
68
|
-
// Add asset source plugins
|
|
69
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
70
|
-
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
71
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
72
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
73
|
-
await cesdk.addPlugin(
|
|
74
|
-
new UploadAssetSources({
|
|
75
|
-
include: [
|
|
76
|
-
'ly.img.image.upload',
|
|
77
|
-
'ly.img.video.upload',
|
|
78
|
-
'ly.img.audio.upload'
|
|
79
|
-
]
|
|
80
|
-
})
|
|
81
|
-
);
|
|
82
|
-
await cesdk.addPlugin(
|
|
83
|
-
new DemoAssetSources({
|
|
84
|
-
include: [
|
|
85
|
-
'ly.img.templates.video.*',
|
|
86
|
-
'ly.img.image.*',
|
|
87
|
-
'ly.img.audio.*',
|
|
88
|
-
'ly.img.video.*'
|
|
89
|
-
]
|
|
90
|
-
})
|
|
91
|
-
);
|
|
92
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
93
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
94
|
-
await cesdk.addPlugin(
|
|
95
|
-
new PagePresetsAssetSource({
|
|
96
|
-
include: [
|
|
97
|
-
'ly.img.page.presets.instagram.*',
|
|
98
|
-
'ly.img.page.presets.facebook.*',
|
|
99
|
-
'ly.img.page.presets.x.*',
|
|
100
|
-
'ly.img.page.presets.linkedin.*',
|
|
101
|
-
'ly.img.page.presets.pinterest.*',
|
|
102
|
-
'ly.img.page.presets.tiktok.*',
|
|
103
|
-
'ly.img.page.presets.youtube.*',
|
|
104
|
-
'ly.img.page.presets.video.*'
|
|
105
|
-
]
|
|
106
|
-
})
|
|
107
|
-
);
|
|
108
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
109
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
110
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
111
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
112
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
113
|
-
|
|
114
|
-
await cesdk.actions.run('scene.create', {
|
|
115
|
-
layout: 'DepthStack',
|
|
116
|
-
page: { width: 1920, height: 1080, unit: 'Pixel' }
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
const engine = cesdk.engine;
|
|
120
|
-
const page = engine.block.findByType('page')[0];
|
|
121
|
-
|
|
122
|
-
// Set page duration to accommodate all clips (15 seconds total)
|
|
123
|
-
engine.block.setDuration(page, 15);
|
|
124
|
-
|
|
125
|
-
// Sample video URL for the demonstration
|
|
126
|
-
const videoUrl =
|
|
127
|
-
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-drone-footage-of-a-surfer-barrelling-a-wave-12715991.mp4';
|
|
128
|
-
|
|
129
|
-
// Create video clips using the addVideo helper method
|
|
130
|
-
// Each clip is sized to fill the canvas (1920x1080 is standard video resolution)
|
|
131
|
-
const clipA = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
132
|
-
timeline: { duration: 5, timeOffset: 0 }
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
const clipB = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
136
|
-
timeline: { duration: 5, timeOffset: 5 }
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
const clipC = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
140
|
-
timeline: { duration: 5, timeOffset: 10 }
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
// Create a track and add it to the page
|
|
144
|
-
// Tracks organize clips for sequential playback on the timeline
|
|
145
|
-
const track = engine.block.create('track');
|
|
146
|
-
engine.block.appendChild(page, track);
|
|
147
|
-
|
|
148
|
-
// Add clips to the track
|
|
149
|
-
engine.block.appendChild(track, clipA);
|
|
150
|
-
engine.block.appendChild(track, clipB);
|
|
151
|
-
engine.block.appendChild(track, clipC);
|
|
152
|
-
|
|
153
|
-
// Resize all track children to fill the page dimensions
|
|
154
|
-
engine.block.fillParent(track);
|
|
155
|
-
|
|
156
|
-
// Query track children to verify order
|
|
157
|
-
const trackClips = engine.block.getChildren(track);
|
|
158
|
-
// eslint-disable-next-line no-console
|
|
159
|
-
console.log('Track clip count:', trackClips.length, 'clips');
|
|
160
|
-
|
|
161
|
-
// Set durations for each clip
|
|
162
|
-
engine.block.setDuration(clipA, 5);
|
|
163
|
-
engine.block.setDuration(clipB, 5);
|
|
164
|
-
engine.block.setDuration(clipC, 5);
|
|
165
|
-
|
|
166
|
-
// Set time offsets to position clips sequentially on the timeline
|
|
167
|
-
engine.block.setTimeOffset(clipA, 0);
|
|
168
|
-
engine.block.setTimeOffset(clipB, 5);
|
|
169
|
-
engine.block.setTimeOffset(clipC, 10);
|
|
170
|
-
|
|
171
|
-
// eslint-disable-next-line no-console
|
|
172
|
-
console.log('Track offsets set: Clip A: 0s, Clip B: 5s, Clip C: 10s');
|
|
173
|
-
|
|
174
|
-
// Reorder clips: move Clip C to the beginning (index 0)
|
|
175
|
-
// This demonstrates using insertChild for precise positioning
|
|
176
|
-
engine.block.insertChild(track, clipC, 0);
|
|
177
|
-
|
|
178
|
-
// After reordering, update time offsets to reflect the new sequence
|
|
179
|
-
engine.block.setTimeOffset(clipC, 0);
|
|
180
|
-
engine.block.setTimeOffset(clipA, 5);
|
|
181
|
-
engine.block.setTimeOffset(clipB, 10);
|
|
182
|
-
|
|
183
|
-
// eslint-disable-next-line no-console
|
|
184
|
-
console.log('After reorder - updated offsets: C=0s, A=5s, B=10s');
|
|
185
|
-
|
|
186
|
-
// Get all clips in the track to verify arrangement
|
|
187
|
-
const finalClips = engine.block.getChildren(track);
|
|
188
|
-
// eslint-disable-next-line no-console
|
|
189
|
-
console.log('Final track arrangement:');
|
|
190
|
-
finalClips.forEach((clipId, index) => {
|
|
191
|
-
const offset = engine.block.getTimeOffset(clipId);
|
|
192
|
-
const duration = engine.block.getDuration(clipId);
|
|
193
|
-
// eslint-disable-next-line no-console
|
|
194
|
-
console.log(
|
|
195
|
-
` Clip ${index + 1}: offset=${offset}s, duration=${duration}s`
|
|
196
|
-
);
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
// Create a second track for layered compositions
|
|
200
|
-
// Track order determines z-index: last track renders on top
|
|
201
|
-
const overlayTrack = engine.block.create('track');
|
|
202
|
-
engine.block.appendChild(page, overlayTrack);
|
|
203
|
-
|
|
204
|
-
// Create an overlay clip for picture-in-picture effect (1/4 size)
|
|
205
|
-
const overlayClip = await engine.block.addVideo(
|
|
206
|
-
videoUrl,
|
|
207
|
-
1920 / 4,
|
|
208
|
-
1080 / 4,
|
|
209
|
-
{
|
|
210
|
-
timeline: { duration: 5, timeOffset: 2 }
|
|
211
|
-
}
|
|
212
|
-
);
|
|
213
|
-
engine.block.appendChild(overlayTrack, overlayClip);
|
|
214
|
-
|
|
215
|
-
// Position overlay in bottom-right corner with padding
|
|
216
|
-
engine.block.setPositionX(overlayClip, 1920 - 1920 / 4 - 40);
|
|
217
|
-
engine.block.setPositionY(overlayClip, 1080 - 1080 / 4 - 40);
|
|
218
|
-
|
|
219
|
-
// eslint-disable-next-line no-console
|
|
220
|
-
console.log('Multi-track composition created with overlay starting at 2s');
|
|
221
|
-
|
|
222
|
-
// Select the first clip in the main track to show timeline controls
|
|
223
|
-
engine.block.select(clipC);
|
|
224
|
-
|
|
225
|
-
// Seek to 2.5s to show both main clip and overlay visible
|
|
226
|
-
// (overlay starts at 2s, so 2.5s shows both elements)
|
|
227
|
-
engine.block.setPlaybackTime(page, 2.5);
|
|
43
|
+
// Initialize CE.SDK engine in headless mode
|
|
44
|
+
const engine = await CreativeEngine.init({
|
|
45
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
46
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
47
|
+
});
|
|
228
48
|
|
|
229
|
-
|
|
49
|
+
try {
|
|
50
|
+
// Create a scene with a page
|
|
51
|
+
const scene = engine.scene.create('DepthStack');
|
|
52
|
+
const page = engine.block.create('page');
|
|
53
|
+
engine.block.appendChild(scene, page);
|
|
54
|
+
|
|
55
|
+
// Set page to 16:9 landscape (1920x1080 is standard HD video resolution)
|
|
56
|
+
engine.block.setWidth(page, 1920);
|
|
57
|
+
engine.block.setHeight(page, 1080);
|
|
58
|
+
|
|
59
|
+
// Set page duration to accommodate all clips (15 seconds total)
|
|
60
|
+
engine.block.setDuration(page, 15);
|
|
61
|
+
|
|
62
|
+
// Sample video URL for the demonstration
|
|
63
|
+
const videoUrl =
|
|
64
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-drone-footage-of-a-surfer-barrelling-a-wave-12715991.mp4';
|
|
65
|
+
|
|
66
|
+
// Create video clips using the addVideo helper method
|
|
67
|
+
// Each clip is sized to fill the canvas (1920x1080 is standard video resolution)
|
|
68
|
+
const clipA = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
69
|
+
timeline: { duration: 5, timeOffset: 0 }
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const clipB = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
73
|
+
timeline: { duration: 5, timeOffset: 5 }
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const clipC = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
77
|
+
timeline: { duration: 5, timeOffset: 10 }
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// Create a track and add it to the page
|
|
81
|
+
// Tracks organize clips for sequential playback on the timeline
|
|
82
|
+
const track = engine.block.create('track');
|
|
83
|
+
engine.block.appendChild(page, track);
|
|
84
|
+
|
|
85
|
+
// Add clips to the track
|
|
86
|
+
engine.block.appendChild(track, clipA);
|
|
87
|
+
engine.block.appendChild(track, clipB);
|
|
88
|
+
engine.block.appendChild(track, clipC);
|
|
89
|
+
|
|
90
|
+
// Resize all track children to fill the page dimensions
|
|
91
|
+
engine.block.fillParent(track);
|
|
92
|
+
|
|
93
|
+
// Query track children to verify order
|
|
94
|
+
const trackClips = engine.block.getChildren(track);
|
|
95
|
+
console.log('Track clip count:', trackClips.length, 'clips');
|
|
96
|
+
|
|
97
|
+
// Set durations for each clip
|
|
98
|
+
engine.block.setDuration(clipA, 5);
|
|
99
|
+
engine.block.setDuration(clipB, 5);
|
|
100
|
+
engine.block.setDuration(clipC, 5);
|
|
101
|
+
|
|
102
|
+
// Set time offsets to position clips sequentially on the timeline
|
|
103
|
+
engine.block.setTimeOffset(clipA, 0);
|
|
104
|
+
engine.block.setTimeOffset(clipB, 5);
|
|
105
|
+
engine.block.setTimeOffset(clipC, 10);
|
|
106
|
+
|
|
107
|
+
console.log('Track offsets set: Clip A: 0s, Clip B: 5s, Clip C: 10s');
|
|
108
|
+
|
|
109
|
+
// Reorder clips: move Clip C to the beginning (index 0)
|
|
110
|
+
// This demonstrates using insertChild for precise positioning
|
|
111
|
+
engine.block.insertChild(track, clipC, 0);
|
|
112
|
+
|
|
113
|
+
// After reordering, update time offsets to reflect the new sequence
|
|
114
|
+
engine.block.setTimeOffset(clipC, 0);
|
|
115
|
+
engine.block.setTimeOffset(clipA, 5);
|
|
116
|
+
engine.block.setTimeOffset(clipB, 10);
|
|
117
|
+
|
|
118
|
+
console.log('After reorder - updated offsets: C=0s, A=5s, B=10s');
|
|
119
|
+
|
|
120
|
+
// Get all clips in the track to verify arrangement
|
|
121
|
+
const finalClips = engine.block.getChildren(track);
|
|
122
|
+
console.log('Final track arrangement:');
|
|
123
|
+
finalClips.forEach((clipId, index) => {
|
|
124
|
+
const offset = engine.block.getTimeOffset(clipId);
|
|
125
|
+
const duration = engine.block.getDuration(clipId);
|
|
230
126
|
console.log(
|
|
231
|
-
|
|
127
|
+
` Clip ${index + 1}: offset=${offset}s, duration=${duration}s`
|
|
232
128
|
);
|
|
233
|
-
}
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// Create a second track for layered compositions
|
|
132
|
+
// Track order determines z-index: last track renders on top
|
|
133
|
+
const overlayTrack = engine.block.create('track');
|
|
134
|
+
engine.block.appendChild(page, overlayTrack);
|
|
135
|
+
|
|
136
|
+
// Create an overlay clip for picture-in-picture effect (1/4 size)
|
|
137
|
+
const overlayClip = await engine.block.addVideo(
|
|
138
|
+
videoUrl,
|
|
139
|
+
1920 / 4,
|
|
140
|
+
1080 / 4,
|
|
141
|
+
{
|
|
142
|
+
timeline: { duration: 5, timeOffset: 2 }
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
engine.block.appendChild(overlayTrack, overlayClip);
|
|
146
|
+
|
|
147
|
+
// Position overlay in bottom-right corner with padding
|
|
148
|
+
engine.block.setPositionX(overlayClip, 1920 - 1920 / 4 - 40);
|
|
149
|
+
engine.block.setPositionY(overlayClip, 1080 - 1080 / 4 - 40);
|
|
150
|
+
|
|
151
|
+
console.log('Multi-track composition created with overlay starting at 2s');
|
|
152
|
+
|
|
153
|
+
console.log('');
|
|
154
|
+
console.log('Join and Arrange guide complete.');
|
|
155
|
+
console.log('Video scene created with:');
|
|
156
|
+
console.log(' - Main track: 3 clips (C, A, B) playing sequentially');
|
|
157
|
+
console.log(' - Overlay track: 1 clip for picture-in-picture effect');
|
|
158
|
+
console.log(' - Total duration: 15 seconds');
|
|
159
|
+
} finally {
|
|
160
|
+
// Always dispose of the engine to free resources
|
|
161
|
+
engine.dispose();
|
|
234
162
|
}
|
|
235
|
-
|
|
236
|
-
export default Example;
|
|
237
163
|
```
|
|
238
164
|
|
|
239
|
-
This guide covers how to
|
|
240
|
-
|
|
241
|
-
## Joining Clips via UI
|
|
242
|
-
|
|
243
|
-
CE.SDK's timeline UI provides visual tools for arranging video clips.
|
|
165
|
+
This guide covers how to programmatically create scenes, add and arrange clips in tracks, control clip timing, and create multi-track compositions.
|
|
244
166
|
|
|
245
|
-
|
|
167
|
+
## Prerequisites and Setup
|
|
246
168
|
|
|
247
|
-
|
|
169
|
+
We start by initializing CE.SDK in headless mode for server-side video composition.
|
|
248
170
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
### Creating Additional Tracks
|
|
258
|
-
|
|
259
|
-
Add multiple tracks to create layered compositions. Tracks stack vertically in the timeline, and clips on upper tracks render on top of clips below. This enables picture-in-picture effects, overlays, and complex multi-layer edits.
|
|
171
|
+
```typescript highlight=highlight-setup
|
|
172
|
+
// Initialize CE.SDK engine in headless mode
|
|
173
|
+
const engine = await CreativeEngine.init({
|
|
174
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
175
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
176
|
+
});
|
|
177
|
+
```
|
|
260
178
|
|
|
261
|
-
|
|
179
|
+
The engine runs without a UI, making it suitable for automated workflows, batch processing, or backend services.
|
|
262
180
|
|
|
263
|
-
|
|
181
|
+
## Creating the Scene
|
|
264
182
|
|
|
265
183
|
We create a scene and set up a page for the video composition.
|
|
266
184
|
|
|
267
|
-
```typescript highlight=highlight-create-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
273
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
274
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
275
|
-
await cesdk.addPlugin(
|
|
276
|
-
new UploadAssetSources({
|
|
277
|
-
include: [
|
|
278
|
-
'ly.img.image.upload',
|
|
279
|
-
'ly.img.video.upload',
|
|
280
|
-
'ly.img.audio.upload'
|
|
281
|
-
]
|
|
282
|
-
})
|
|
283
|
-
);
|
|
284
|
-
await cesdk.addPlugin(
|
|
285
|
-
new DemoAssetSources({
|
|
286
|
-
include: [
|
|
287
|
-
'ly.img.templates.video.*',
|
|
288
|
-
'ly.img.image.*',
|
|
289
|
-
'ly.img.audio.*',
|
|
290
|
-
'ly.img.video.*'
|
|
291
|
-
]
|
|
292
|
-
})
|
|
293
|
-
);
|
|
294
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
295
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
296
|
-
await cesdk.addPlugin(
|
|
297
|
-
new PagePresetsAssetSource({
|
|
298
|
-
include: [
|
|
299
|
-
'ly.img.page.presets.instagram.*',
|
|
300
|
-
'ly.img.page.presets.facebook.*',
|
|
301
|
-
'ly.img.page.presets.x.*',
|
|
302
|
-
'ly.img.page.presets.linkedin.*',
|
|
303
|
-
'ly.img.page.presets.pinterest.*',
|
|
304
|
-
'ly.img.page.presets.tiktok.*',
|
|
305
|
-
'ly.img.page.presets.youtube.*',
|
|
306
|
-
'ly.img.page.presets.video.*'
|
|
307
|
-
]
|
|
308
|
-
})
|
|
309
|
-
);
|
|
310
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
311
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
312
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
313
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
314
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
315
|
-
|
|
316
|
-
await cesdk.actions.run('scene.create', {
|
|
317
|
-
layout: 'DepthStack',
|
|
318
|
-
page: { width: 1920, height: 1080, unit: 'Pixel' }
|
|
319
|
-
});
|
|
185
|
+
```typescript highlight=highlight-create-scene
|
|
186
|
+
// Create a scene with a page
|
|
187
|
+
const scene = engine.scene.create('DepthStack');
|
|
188
|
+
const page = engine.block.create('page');
|
|
189
|
+
engine.block.appendChild(scene, page);
|
|
320
190
|
|
|
321
|
-
|
|
322
|
-
|
|
191
|
+
// Set page to 16:9 landscape (1920x1080 is standard HD video resolution)
|
|
192
|
+
engine.block.setWidth(page, 1920);
|
|
193
|
+
engine.block.setHeight(page, 1080);
|
|
323
194
|
|
|
324
|
-
// Set page duration to accommodate all clips (15 seconds total)
|
|
325
|
-
engine.block.setDuration(page, 15);
|
|
195
|
+
// Set page duration to accommodate all clips (15 seconds total)
|
|
196
|
+
engine.block.setDuration(page, 15);
|
|
326
197
|
```
|
|
327
198
|
|
|
328
199
|
The page duration determines how long the composition plays. Set it to accommodate all your clips—in this example, 15 seconds for three 5-second clips.
|
|
329
200
|
|
|
330
|
-
|
|
201
|
+
## Creating Video Clips
|
|
331
202
|
|
|
332
203
|
We create video clips as graphic blocks with video fills. Each clip needs a video fill that references the source media.
|
|
333
204
|
|
|
334
205
|
```typescript highlight=highlight-create-clips
|
|
335
|
-
// Create video clips using the addVideo helper method
|
|
336
|
-
// Each clip is sized to fill the canvas (1920x1080 is standard video resolution)
|
|
337
|
-
const clipA = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
338
|
-
|
|
339
|
-
});
|
|
340
|
-
|
|
341
|
-
const clipB = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
342
|
-
|
|
343
|
-
});
|
|
344
|
-
|
|
345
|
-
const clipC = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
346
|
-
|
|
347
|
-
});
|
|
206
|
+
// Create video clips using the addVideo helper method
|
|
207
|
+
// Each clip is sized to fill the canvas (1920x1080 is standard video resolution)
|
|
208
|
+
const clipA = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
209
|
+
timeline: { duration: 5, timeOffset: 0 }
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
const clipB = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
213
|
+
timeline: { duration: 5, timeOffset: 5 }
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
const clipC = await engine.block.addVideo(videoUrl, 1920, 1080, {
|
|
217
|
+
timeline: { duration: 5, timeOffset: 10 }
|
|
218
|
+
});
|
|
348
219
|
```
|
|
349
220
|
|
|
350
221
|
The `addVideo` helper method creates a graphic block with an attached video fill and automatically loads the video resource metadata. We set width and height to control how the clip appears in the composition. The `timeline` options let us set duration and time offset in one call.
|
|
351
222
|
|
|
352
|
-
|
|
223
|
+
## Creating Tracks
|
|
353
224
|
|
|
354
225
|
Tracks organize clips for sequential playback. We create a track and attach it to the page.
|
|
355
226
|
|
|
@@ -362,28 +233,27 @@ engine.block.appendChild(page, track);
|
|
|
362
233
|
|
|
363
234
|
A track acts as a container for clips. When you add clips to a track, they play in the order they were added.
|
|
364
235
|
|
|
365
|
-
|
|
236
|
+
## Adding Clips to Track
|
|
366
237
|
|
|
367
238
|
We add clips to the track using `appendChild`. Clips join the sequence in the order they're added.
|
|
368
239
|
|
|
369
240
|
```typescript highlight=highlight-add-clips-to-track
|
|
370
|
-
// Add clips to the track
|
|
371
|
-
engine.block.appendChild(track, clipA);
|
|
372
|
-
engine.block.appendChild(track, clipB);
|
|
373
|
-
engine.block.appendChild(track, clipC);
|
|
374
|
-
|
|
375
|
-
// Resize all track children to fill the page dimensions
|
|
376
|
-
engine.block.fillParent(track);
|
|
377
|
-
|
|
378
|
-
// Query track children to verify order
|
|
379
|
-
const trackClips = engine.block.getChildren(track);
|
|
380
|
-
|
|
381
|
-
console.log('Track clip count:', trackClips.length, 'clips');
|
|
241
|
+
// Add clips to the track
|
|
242
|
+
engine.block.appendChild(track, clipA);
|
|
243
|
+
engine.block.appendChild(track, clipB);
|
|
244
|
+
engine.block.appendChild(track, clipC);
|
|
245
|
+
|
|
246
|
+
// Resize all track children to fill the page dimensions
|
|
247
|
+
engine.block.fillParent(track);
|
|
248
|
+
|
|
249
|
+
// Query track children to verify order
|
|
250
|
+
const trackClips = engine.block.getChildren(track);
|
|
251
|
+
console.log('Track clip count:', trackClips.length, 'clips');
|
|
382
252
|
```
|
|
383
253
|
|
|
384
254
|
After adding clips, you can query the track's children to verify the order. `getChildren` returns an array of clip IDs in playback order.
|
|
385
255
|
|
|
386
|
-
|
|
256
|
+
## Setting Clip Durations
|
|
387
257
|
|
|
388
258
|
Each clip needs a duration that determines how long it plays.
|
|
389
259
|
|
|
@@ -403,13 +273,12 @@ Duration is measured in seconds. A 5-second duration means the clip plays for 5
|
|
|
403
273
|
Time offsets control when each clip starts playing. We set offsets to position clips at specific points in the composition.
|
|
404
274
|
|
|
405
275
|
```typescript highlight=highlight-time-offsets
|
|
406
|
-
// Set time offsets to position clips sequentially on the timeline
|
|
407
|
-
engine.block.setTimeOffset(clipA, 0);
|
|
408
|
-
engine.block.setTimeOffset(clipB, 5);
|
|
409
|
-
engine.block.setTimeOffset(clipC, 10);
|
|
276
|
+
// Set time offsets to position clips sequentially on the timeline
|
|
277
|
+
engine.block.setTimeOffset(clipA, 0);
|
|
278
|
+
engine.block.setTimeOffset(clipB, 5);
|
|
279
|
+
engine.block.setTimeOffset(clipC, 10);
|
|
410
280
|
|
|
411
|
-
|
|
412
|
-
console.log('Track offsets set: Clip A: 0s, Clip B: 5s, Clip C: 10s');
|
|
281
|
+
console.log('Track offsets set: Clip A: 0s, Clip B: 5s, Clip C: 10s');
|
|
413
282
|
```
|
|
414
283
|
|
|
415
284
|
Clip A starts at 0 seconds, Clip B at 5 seconds, and Clip C at 10 seconds. Combined with 5-second durations, this creates a continuous 15-second sequence with no gaps.
|
|
@@ -419,17 +288,16 @@ Clip A starts at 0 seconds, Clip B at 5 seconds, and Clip C at 10 seconds. Combi
|
|
|
419
288
|
Use `insertChild` to move clips to specific positions within a track. This moves an existing child to a new index.
|
|
420
289
|
|
|
421
290
|
```typescript highlight=highlight-reorder-clips
|
|
422
|
-
// Reorder clips: move Clip C to the beginning (index 0)
|
|
423
|
-
// This demonstrates using insertChild for precise positioning
|
|
424
|
-
engine.block.insertChild(track, clipC, 0);
|
|
291
|
+
// Reorder clips: move Clip C to the beginning (index 0)
|
|
292
|
+
// This demonstrates using insertChild for precise positioning
|
|
293
|
+
engine.block.insertChild(track, clipC, 0);
|
|
425
294
|
|
|
426
|
-
// After reordering, update time offsets to reflect the new sequence
|
|
427
|
-
engine.block.setTimeOffset(clipC, 0);
|
|
428
|
-
engine.block.setTimeOffset(clipA, 5);
|
|
429
|
-
engine.block.setTimeOffset(clipB, 10);
|
|
295
|
+
// After reordering, update time offsets to reflect the new sequence
|
|
296
|
+
engine.block.setTimeOffset(clipC, 0);
|
|
297
|
+
engine.block.setTimeOffset(clipA, 5);
|
|
298
|
+
engine.block.setTimeOffset(clipB, 10);
|
|
430
299
|
|
|
431
|
-
|
|
432
|
-
console.log('After reorder - updated offsets: C=0s, A=5s, B=10s');
|
|
300
|
+
console.log('After reorder - updated offsets: C=0s, A=5s, B=10s');
|
|
433
301
|
```
|
|
434
302
|
|
|
435
303
|
When we insert Clip C at index 0, it becomes the first clip. The order changes from A-B-C to C-A-B. We update time offsets to match the new sequence.
|
|
@@ -441,53 +309,56 @@ Use `getChildren` to inspect the current clip order and verify arrangements.
|
|
|
441
309
|
```typescript highlight=highlight-get-track-children
|
|
442
310
|
// Get all clips in the track to verify arrangement
|
|
443
311
|
const finalClips = engine.block.getChildren(track);
|
|
444
|
-
// eslint-disable-next-line no-console
|
|
445
312
|
console.log('Final track arrangement:');
|
|
446
313
|
finalClips.forEach((clipId, index) => {
|
|
447
314
|
const offset = engine.block.getTimeOffset(clipId);
|
|
448
315
|
const duration = engine.block.getDuration(clipId);
|
|
449
|
-
|
|
450
|
-
|
|
316
|
+
console.log(
|
|
317
|
+
` Clip ${index + 1}: offset=${offset}s, duration=${duration}s`
|
|
318
|
+
);
|
|
451
319
|
});
|
|
452
320
|
```
|
|
453
321
|
|
|
454
|
-
This loop outputs each clip's position, time offset, and duration—useful for debugging or building custom timeline
|
|
322
|
+
This loop outputs each clip's position, time offset, and duration—useful for debugging or building custom timeline logic.
|
|
455
323
|
|
|
456
324
|
## Multi-Track Compositions
|
|
457
325
|
|
|
458
|
-
### Adding Multiple Tracks
|
|
459
|
-
|
|
460
326
|
Create layered compositions by adding multiple tracks to a page. Track order determines rendering order—clips in later tracks appear on top.
|
|
461
327
|
|
|
462
328
|
```typescript highlight=highlight-multi-track
|
|
463
|
-
// Create a second track for layered compositions
|
|
464
|
-
// Track order determines z-index: last track renders on top
|
|
465
|
-
const overlayTrack = engine.block.create('track');
|
|
466
|
-
engine.block.appendChild(page, overlayTrack);
|
|
467
|
-
|
|
468
|
-
// Create an overlay clip for picture-in-picture effect (1/4 size)
|
|
469
|
-
const overlayClip = await engine.block.addVideo(
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
329
|
+
// Create a second track for layered compositions
|
|
330
|
+
// Track order determines z-index: last track renders on top
|
|
331
|
+
const overlayTrack = engine.block.create('track');
|
|
332
|
+
engine.block.appendChild(page, overlayTrack);
|
|
333
|
+
|
|
334
|
+
// Create an overlay clip for picture-in-picture effect (1/4 size)
|
|
335
|
+
const overlayClip = await engine.block.addVideo(
|
|
336
|
+
videoUrl,
|
|
337
|
+
1920 / 4,
|
|
338
|
+
1080 / 4,
|
|
339
|
+
{
|
|
340
|
+
timeline: { duration: 5, timeOffset: 2 }
|
|
341
|
+
}
|
|
342
|
+
);
|
|
343
|
+
engine.block.appendChild(overlayTrack, overlayClip);
|
|
473
344
|
|
|
474
|
-
// Position overlay in bottom-right corner with padding
|
|
475
|
-
engine.block.setPositionX(overlayClip, 1920 - 1920 / 4 - 40);
|
|
476
|
-
engine.block.setPositionY(overlayClip, 1080 - 1080 / 4 - 40);
|
|
345
|
+
// Position overlay in bottom-right corner with padding
|
|
346
|
+
engine.block.setPositionX(overlayClip, 1920 - 1920 / 4 - 40);
|
|
347
|
+
engine.block.setPositionY(overlayClip, 1080 - 1080 / 4 - 40);
|
|
477
348
|
|
|
478
|
-
|
|
479
|
-
console.log('Multi-track composition created with overlay starting at 2s');
|
|
349
|
+
console.log('Multi-track composition created with overlay starting at 2s');
|
|
480
350
|
```
|
|
481
351
|
|
|
482
352
|
The overlay track contains a smaller clip positioned in the corner. It starts at 2 seconds and lasts 5 seconds, creating a picture-in-picture effect during that time range.
|
|
483
353
|
|
|
484
|
-
|
|
354
|
+
## Cleanup
|
|
485
355
|
|
|
486
|
-
|
|
356
|
+
Always dispose of the engine when done to free resources.
|
|
487
357
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
358
|
+
```typescript highlight=highlight-cleanup
|
|
359
|
+
// Always dispose of the engine to free resources
|
|
360
|
+
engine.dispose();
|
|
361
|
+
```
|
|
491
362
|
|
|
492
363
|
## Troubleshooting
|
|
493
364
|
|
|
@@ -510,31 +381,26 @@ If video content doesn't appear when using `addVideo`, check that the video URL
|
|
|
510
381
|
|
|
511
382
|
## API Reference
|
|
512
383
|
|
|
513
|
-
| Method
|
|
514
|
-
|
|
|
384
|
+
| Method | Description | Parameters | Returns |
|
|
385
|
+
| --- | --- | --- | --- |
|
|
386
|
+
| `scene.create()` | Create a scene | none | `Promise<DesignBlockId>` |
|
|
515
387
|
| `block.addVideo(uri, width, height, options)` | Create video clip with automatic resource loading | `uri: string, width: number, height: number, options?: { timeline: { duration, timeOffset } }` | `Promise<DesignBlockId>` |
|
|
516
|
-
| `block.create('track')`
|
|
517
|
-
| `block.appendChild(parent, child)`
|
|
518
|
-
| `block.insertChild(parent, child, index)`
|
|
519
|
-
| `block.getChildren(id)`
|
|
520
|
-
| `block.setTimeOffset(id, offset)`
|
|
521
|
-
| `block.getTimeOffset(id)`
|
|
522
|
-
| `block.setDuration(id, duration)`
|
|
523
|
-
| `block.getDuration(id)`
|
|
524
|
-
|
|
525
|
-
## Next Steps
|
|
388
|
+
| `block.create('track')` | Create a new track | `type: 'track'` | `DesignBlockId` |
|
|
389
|
+
| `block.appendChild(parent, child)` | Add child to parent | `parent: DesignBlockId, child: DesignBlockId` | `void` |
|
|
390
|
+
| `block.insertChild(parent, child, index)` | Insert child at specific position | `parent: DesignBlockId, child: DesignBlockId, index: number` | `void` |
|
|
391
|
+
| `block.getChildren(id)` | Get all children of a block | `id: DesignBlockId` | `DesignBlockId[]` |
|
|
392
|
+
| `block.setTimeOffset(id, offset)` | Set when block starts playing | `id: DesignBlockId, offset: number` | `void` |
|
|
393
|
+
| `block.getTimeOffset(id)` | Get block's time offset | `id: DesignBlockId` | `number` |
|
|
394
|
+
| `block.setDuration(id, duration)` | Set block's duration | `id: DesignBlockId, duration: number` | `void` |
|
|
395
|
+
| `block.getDuration(id)` | Get block's duration | `id: DesignBlockId` | `number` |
|
|
526
396
|
|
|
527
|
-
Now that you understand how to join and arrange clips, explore related video editing features:
|
|
528
397
|
|
|
529
|
-
- [Trim Video Clips](./edit-video/trim.md) - Control which portion of media plays back
|
|
530
|
-
- [Control Audio and Video](./create-video/control.md) - Master playback timing and audio mixing
|
|
531
|
-
- [Video Timeline Overview](./create-video/timeline-editor.md) - Understand the complete timeline editing system
|
|
532
398
|
|
|
533
399
|
---
|
|
534
400
|
|
|
535
401
|
## More Resources
|
|
536
402
|
|
|
537
|
-
- **[
|
|
403
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
538
404
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
539
|
-
- **[Web Documentation](./
|
|
540
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
405
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
406
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|