@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,406 +1,232 @@
|
|
|
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) > [Split](./edit-video/split.md)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Split video and audio clips at specific time points using CE.SDK's
|
|
8
|
-
and programmatic split API to create independent segments.
|
|
7
|
+
Split video and audio clips at specific time points using CE.SDK's programmatic split API to create independent segments in server-side environments.
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
> **Reading time:** 10 minutes
|
|
9
|
+
> **Reading time:** 8 minutes
|
|
13
10
|
>
|
|
14
11
|
> **Resources:**
|
|
15
12
|
>
|
|
16
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
17
|
-
>
|
|
18
|
-
> - [
|
|
19
|
-
>
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-create-video-split-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-video-split-server-js)
|
|
20
18
|
|
|
21
19
|
Clip splitting divides one block into two at a specified time. The original block ends at the split point; a new block starts there. Both blocks reference the same source media with independent timing. This differs from trimming, which adjusts a single block's playback range without creating new blocks.
|
|
22
20
|
|
|
23
|
-
```typescript file=@cesdk_web_examples/guides-create-video-split-
|
|
24
|
-
import
|
|
25
|
-
|
|
26
|
-
import {
|
|
27
|
-
BlurAssetSource,
|
|
28
|
-
CaptionPresetsAssetSource,
|
|
29
|
-
ColorPaletteAssetSource,
|
|
30
|
-
CropPresetsAssetSource,
|
|
31
|
-
DemoAssetSources,
|
|
32
|
-
EffectsAssetSource,
|
|
33
|
-
FiltersAssetSource,
|
|
34
|
-
PagePresetsAssetSource,
|
|
35
|
-
StickerAssetSource,
|
|
36
|
-
TextAssetSource,
|
|
37
|
-
TextComponentAssetSource,
|
|
38
|
-
TypefaceAssetSource,
|
|
39
|
-
UploadAssetSources,
|
|
40
|
-
VectorShapeAssetSource
|
|
41
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
42
|
-
import { VideoEditorConfig } from './video-editor/plugin';
|
|
43
|
-
import packageJson from './package.json';
|
|
44
|
-
import { calculateGridLayout } from './utils';
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* CE.SDK Plugin: Split Video Guide
|
|
48
|
-
*
|
|
49
|
-
* Demonstrates splitting video clips in CE.SDK:
|
|
50
|
-
* - Basic splitting at specific time points
|
|
51
|
-
* - Configuring split options (attachToParent, selectNewBlock, createParentTrackIfNeeded)
|
|
52
|
-
* - Splitting at playhead position
|
|
53
|
-
* - Understanding split results (trim properties)
|
|
54
|
-
* - Splitting multiple tracks at timeline position
|
|
55
|
-
* - Split and delete workflow
|
|
56
|
-
*/
|
|
57
|
-
class Example implements EditorPlugin {
|
|
58
|
-
name = packageJson.name;
|
|
59
|
-
|
|
60
|
-
version = packageJson.version;
|
|
61
|
-
|
|
62
|
-
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
63
|
-
if (!cesdk) {
|
|
64
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
65
|
-
}
|
|
21
|
+
```typescript file=@cesdk_web_examples/guides-create-video-split-server-js/server-js.ts reference-only
|
|
22
|
+
import CreativeEngine from '@cesdk/node';
|
|
23
|
+
import { config } from 'dotenv';
|
|
24
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
66
25
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
await cesdk.addPlugin(
|
|
75
|
-
new UploadAssetSources({
|
|
76
|
-
include: [
|
|
77
|
-
'ly.img.image.upload',
|
|
78
|
-
'ly.img.video.upload',
|
|
79
|
-
'ly.img.audio.upload'
|
|
80
|
-
]
|
|
81
|
-
})
|
|
82
|
-
);
|
|
83
|
-
await cesdk.addPlugin(
|
|
84
|
-
new DemoAssetSources({
|
|
85
|
-
include: [
|
|
86
|
-
'ly.img.templates.video.*',
|
|
87
|
-
'ly.img.image.*',
|
|
88
|
-
'ly.img.audio.*',
|
|
89
|
-
'ly.img.video.*'
|
|
90
|
-
]
|
|
91
|
-
})
|
|
92
|
-
);
|
|
93
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
94
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
95
|
-
await cesdk.addPlugin(
|
|
96
|
-
new PagePresetsAssetSource({
|
|
97
|
-
include: [
|
|
98
|
-
'ly.img.page.presets.instagram.*',
|
|
99
|
-
'ly.img.page.presets.facebook.*',
|
|
100
|
-
'ly.img.page.presets.x.*',
|
|
101
|
-
'ly.img.page.presets.linkedin.*',
|
|
102
|
-
'ly.img.page.presets.pinterest.*',
|
|
103
|
-
'ly.img.page.presets.tiktok.*',
|
|
104
|
-
'ly.img.page.presets.youtube.*',
|
|
105
|
-
'ly.img.page.presets.video.*'
|
|
106
|
-
]
|
|
107
|
-
})
|
|
108
|
-
);
|
|
109
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
110
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
111
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
112
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
113
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
114
|
-
|
|
115
|
-
await cesdk.actions.run('scene.create', {
|
|
116
|
-
layout: 'DepthStack',
|
|
117
|
-
page: {
|
|
118
|
-
sourceId: 'ly.img.page.presets',
|
|
119
|
-
assetId: 'ly.img.page.presets.instagram.story',
|
|
120
|
-
color: { r: 0, g: 0, b: 0, a: 1 }
|
|
121
|
-
}
|
|
122
|
-
});
|
|
26
|
+
config(); // Load .env file
|
|
27
|
+
|
|
28
|
+
async function splitVideoExample() {
|
|
29
|
+
const engine = await CreativeEngine.init({
|
|
30
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
31
|
+
// license: process.env.CESDK_LICENSE,
|
|
32
|
+
});
|
|
123
33
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// Calculate responsive grid layout based on page dimensions
|
|
130
|
-
const pageWidth = engine.block.getWidth(page);
|
|
131
|
-
const pageHeight = engine.block.getHeight(page);
|
|
132
|
-
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
133
|
-
const { blockWidth, blockHeight, getPosition } = layout;
|
|
134
|
-
|
|
135
|
-
// Get a video from demo asset sources
|
|
136
|
-
const videoAssets = await engine.asset.findAssets('ly.img.video', {
|
|
137
|
-
page: 0,
|
|
138
|
-
perPage: 1
|
|
34
|
+
try {
|
|
35
|
+
// Create a scene with a page and track for video editing
|
|
36
|
+
engine.scene.create('DepthStack', {
|
|
37
|
+
page: { size: { width: 1920, height: 1080 } }
|
|
139
38
|
});
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
39
|
+
const page = engine.block.findByType('page')[0]!;
|
|
40
|
+
const track = engine.block.create('track');
|
|
41
|
+
engine.block.appendChild(page, track);
|
|
42
|
+
|
|
43
|
+
// Use a sample video URL
|
|
44
|
+
const videoUri = 'https://img.ly/static/ubq_video_samples/bbb.mp4';
|
|
143
45
|
|
|
144
46
|
// Create a video block to demonstrate basic splitting
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
);
|
|
47
|
+
const videoBlock = engine.block.create('graphic');
|
|
48
|
+
const videoFill = engine.block.createFill('video');
|
|
49
|
+
engine.block.setString(videoFill, 'fill/video/fileURI', videoUri);
|
|
50
|
+
engine.block.setFill(videoBlock, videoFill);
|
|
51
|
+
engine.block.setWidth(videoBlock, 1920);
|
|
52
|
+
engine.block.setHeight(videoBlock, 1080);
|
|
53
|
+
engine.block.appendChild(track, videoBlock);
|
|
150
54
|
|
|
151
|
-
//
|
|
152
|
-
|
|
153
|
-
await engine.block.forceLoadAVResource(basicFill);
|
|
55
|
+
// Load video resource to access duration
|
|
56
|
+
await engine.block.forceLoadAVResource(videoFill);
|
|
154
57
|
|
|
155
58
|
// Set block duration for the timeline
|
|
156
|
-
engine.block.setDuration(
|
|
59
|
+
engine.block.setDuration(videoBlock, 10.0);
|
|
157
60
|
|
|
158
61
|
// Split the video block at 5 seconds
|
|
159
62
|
// Returns the ID of the newly created block (second segment)
|
|
160
|
-
const
|
|
63
|
+
const newBlock = engine.block.split(videoBlock, 5.0);
|
|
161
64
|
|
|
162
|
-
|
|
163
|
-
console.log(
|
|
164
|
-
`Basic split - Original block: ${basicSplitVideo}, New block: ${splitResultBlock}`
|
|
165
|
-
);
|
|
65
|
+
console.log(`Basic split - Original: ${videoBlock}, New: ${newBlock}`);
|
|
166
66
|
|
|
167
67
|
// Create another video block to demonstrate split options
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
);
|
|
68
|
+
const optionsBlock = engine.block.create('graphic');
|
|
69
|
+
const optionsFill = engine.block.createFill('video');
|
|
70
|
+
engine.block.setString(optionsFill, 'fill/video/fileURI', videoUri);
|
|
71
|
+
engine.block.setFill(optionsBlock, optionsFill);
|
|
72
|
+
engine.block.setWidth(optionsBlock, 1920);
|
|
73
|
+
engine.block.setHeight(optionsBlock, 1080);
|
|
74
|
+
engine.block.appendChild(track, optionsBlock);
|
|
173
75
|
|
|
174
|
-
const optionsFill = engine.block.getFill(optionsSplitVideo);
|
|
175
76
|
await engine.block.forceLoadAVResource(optionsFill);
|
|
176
|
-
engine.block.setDuration(
|
|
77
|
+
engine.block.setDuration(optionsBlock, 10.0);
|
|
177
78
|
|
|
178
79
|
// Split with custom options
|
|
179
|
-
const
|
|
180
|
-
attachToParent: true, // Attach
|
|
181
|
-
createParentTrackIfNeeded: false, // Don't create track
|
|
182
|
-
selectNewBlock: false // Don't select
|
|
80
|
+
const optionsNewBlock = engine.block.split(optionsBlock, 4.0, {
|
|
81
|
+
attachToParent: true, // Attach to same parent (default: true)
|
|
82
|
+
createParentTrackIfNeeded: false, // Don't create track (default: false)
|
|
83
|
+
selectNewBlock: false // Don't select new block (default: true)
|
|
183
84
|
});
|
|
184
85
|
|
|
185
|
-
|
|
186
|
-
console.log(
|
|
187
|
-
`Split with options - New block: ${optionsSplitResult}, selectNewBlock: false`
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
// Create a video block to demonstrate playhead-based splitting
|
|
191
|
-
const playheadSplitVideo = await engine.block.addVideo(
|
|
192
|
-
videoUri,
|
|
193
|
-
blockWidth,
|
|
194
|
-
blockHeight
|
|
195
|
-
);
|
|
196
|
-
|
|
197
|
-
const playheadFill = engine.block.getFill(playheadSplitVideo);
|
|
198
|
-
await engine.block.forceLoadAVResource(playheadFill);
|
|
199
|
-
engine.block.setDuration(playheadSplitVideo, 10.0);
|
|
200
|
-
|
|
201
|
-
// Get the clip's start time on the timeline
|
|
202
|
-
const clipStartTime = engine.block.getTimeOffset(playheadSplitVideo);
|
|
203
|
-
|
|
204
|
-
// Simulate a playhead position (in a real app, use engine.block.getPlaybackTime(page))
|
|
205
|
-
const simulatedPlayheadTime = clipStartTime + 3.0;
|
|
206
|
-
|
|
207
|
-
// Calculate split time relative to the clip
|
|
208
|
-
const splitTime = simulatedPlayheadTime - clipStartTime;
|
|
209
|
-
|
|
210
|
-
// Perform the split at the calculated time
|
|
211
|
-
const playheadSplitResult = engine.block.split(
|
|
212
|
-
playheadSplitVideo,
|
|
213
|
-
splitTime
|
|
214
|
-
);
|
|
215
|
-
|
|
216
|
-
// eslint-disable-next-line no-console
|
|
217
|
-
console.log(
|
|
218
|
-
`Playhead split - Split at ${splitTime}s into clip, New block: ${playheadSplitResult}`
|
|
219
|
-
);
|
|
220
|
-
|
|
221
|
-
// Create a video block to examine split results
|
|
222
|
-
const resultsSplitVideo = await engine.block.addVideo(
|
|
223
|
-
videoUri,
|
|
224
|
-
blockWidth,
|
|
225
|
-
blockHeight
|
|
226
|
-
);
|
|
227
|
-
|
|
228
|
-
const resultsFill = engine.block.getFill(resultsSplitVideo);
|
|
229
|
-
await engine.block.forceLoadAVResource(resultsFill);
|
|
230
|
-
engine.block.setDuration(resultsSplitVideo, 10.0);
|
|
231
|
-
|
|
232
|
-
// Get trim values before split
|
|
233
|
-
const originalTrimOffset = engine.block.getTrimOffset(resultsFill);
|
|
234
|
-
const originalTrimLength = engine.block.getTrimLength(resultsFill);
|
|
235
|
-
|
|
236
|
-
// Split at 6 seconds
|
|
237
|
-
const resultsNewBlock = engine.block.split(resultsSplitVideo, 6.0);
|
|
238
|
-
const newBlockFill = engine.block.getFill(resultsNewBlock);
|
|
86
|
+
console.log(`Split with options - New block: ${optionsNewBlock}`);
|
|
239
87
|
|
|
240
88
|
// Examine trim properties after split
|
|
241
|
-
const
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
const
|
|
89
|
+
const originalFill = engine.block.getFill(videoBlock);
|
|
90
|
+
const newBlockFill = engine.block.getFill(newBlock);
|
|
91
|
+
|
|
92
|
+
const originalTrimOffset = engine.block.getTrimOffset(originalFill);
|
|
93
|
+
const originalTrimLength = engine.block.getTrimLength(originalFill);
|
|
94
|
+
const newTrimOffset = engine.block.getTrimOffset(newBlockFill);
|
|
95
|
+
const newTrimLength = engine.block.getTrimLength(newBlockFill);
|
|
245
96
|
|
|
246
|
-
// eslint-disable-next-line no-console
|
|
247
97
|
console.log('Split results:');
|
|
248
|
-
// eslint-disable-next-line no-console
|
|
249
|
-
console.log(
|
|
250
|
-
` Original before: offset=${originalTrimOffset}, length=${originalTrimLength}`
|
|
251
|
-
);
|
|
252
|
-
// eslint-disable-next-line no-console
|
|
253
98
|
console.log(
|
|
254
|
-
` Original
|
|
99
|
+
` Original: offset=${originalTrimOffset}s, length=${originalTrimLength}s`
|
|
255
100
|
);
|
|
256
|
-
// eslint-disable-next-line no-console
|
|
257
101
|
console.log(
|
|
258
|
-
` New block: offset=${
|
|
102
|
+
` New block: offset=${newTrimOffset}s, length=${newTrimLength}s`
|
|
259
103
|
);
|
|
260
104
|
|
|
261
|
-
//
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
);
|
|
105
|
+
// Demonstrate split-and-delete workflow for removing middle section
|
|
106
|
+
const deleteBlock = engine.block.create('graphic');
|
|
107
|
+
const deleteFill = engine.block.createFill('video');
|
|
108
|
+
engine.block.setString(deleteFill, 'fill/video/fileURI', videoUri);
|
|
109
|
+
engine.block.setFill(deleteBlock, deleteFill);
|
|
110
|
+
engine.block.setWidth(deleteBlock, 1920);
|
|
111
|
+
engine.block.setHeight(deleteBlock, 1080);
|
|
112
|
+
engine.block.appendChild(track, deleteBlock);
|
|
267
113
|
|
|
268
|
-
const deleteFill = engine.block.getFill(deleteWorkflowVideo);
|
|
269
114
|
await engine.block.forceLoadAVResource(deleteFill);
|
|
270
|
-
engine.block.setDuration(
|
|
115
|
+
engine.block.setDuration(deleteBlock, 10.0);
|
|
271
116
|
|
|
272
|
-
//
|
|
273
|
-
const middleBlock = engine.block.split(
|
|
117
|
+
// Split at start of section to remove (2s)
|
|
118
|
+
const middleBlock = engine.block.split(deleteBlock, 2.0);
|
|
274
119
|
|
|
275
|
-
// Split
|
|
120
|
+
// Split at end of section to remove (3s into middle = 5s total)
|
|
276
121
|
const endBlock = engine.block.split(middleBlock, 3.0);
|
|
277
122
|
|
|
278
123
|
// Delete the middle segment
|
|
279
124
|
engine.block.destroy(middleBlock);
|
|
280
125
|
|
|
281
|
-
// eslint-disable-next-line no-console
|
|
282
126
|
console.log(
|
|
283
|
-
`Split and delete - Removed middle
|
|
127
|
+
`Split and delete - Removed middle, kept: ${deleteBlock}, ${endBlock}`
|
|
284
128
|
);
|
|
285
129
|
|
|
286
|
-
//
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
);
|
|
130
|
+
// Validate split time before splitting
|
|
131
|
+
const validateBlock = engine.block.create('graphic');
|
|
132
|
+
const validateFill = engine.block.createFill('video');
|
|
133
|
+
engine.block.setString(validateFill, 'fill/video/fileURI', videoUri);
|
|
134
|
+
engine.block.setFill(validateBlock, validateFill);
|
|
135
|
+
engine.block.setWidth(validateBlock, 1920);
|
|
136
|
+
engine.block.setHeight(validateBlock, 1080);
|
|
137
|
+
engine.block.appendChild(track, validateBlock);
|
|
292
138
|
|
|
293
|
-
const validateFill = engine.block.getFill(validateVideo);
|
|
294
139
|
await engine.block.forceLoadAVResource(validateFill);
|
|
295
|
-
engine.block.setDuration(
|
|
140
|
+
engine.block.setDuration(validateBlock, 8.0);
|
|
296
141
|
|
|
297
|
-
|
|
298
|
-
const
|
|
299
|
-
const desiredSplitTime = 4.0;
|
|
142
|
+
const blockDuration = engine.block.getDuration(validateBlock);
|
|
143
|
+
const splitTime = 4.0;
|
|
300
144
|
|
|
301
145
|
// Validate split time is within bounds (must be > 0 and < duration)
|
|
302
|
-
if (
|
|
303
|
-
const
|
|
304
|
-
validateVideo,
|
|
305
|
-
desiredSplitTime
|
|
306
|
-
);
|
|
307
|
-
// eslint-disable-next-line no-console
|
|
146
|
+
if (splitTime > 0 && splitTime < blockDuration) {
|
|
147
|
+
const validatedNewBlock = engine.block.split(validateBlock, splitTime);
|
|
308
148
|
console.log(
|
|
309
|
-
`Validated split
|
|
149
|
+
`Validated split at ${splitTime}s, new block: ${validatedNewBlock}`
|
|
310
150
|
);
|
|
311
151
|
} else {
|
|
312
|
-
// eslint-disable-next-line no-console
|
|
313
152
|
console.log('Split time out of range');
|
|
314
153
|
}
|
|
315
154
|
|
|
316
|
-
//
|
|
317
|
-
|
|
318
|
-
const
|
|
319
|
-
basicSplitVideo,
|
|
320
|
-
splitResultBlock,
|
|
321
|
-
optionsSplitVideo,
|
|
322
|
-
optionsSplitResult,
|
|
323
|
-
playheadSplitVideo,
|
|
324
|
-
playheadSplitResult
|
|
325
|
-
];
|
|
326
|
-
|
|
327
|
-
blocks.forEach((block, index) => {
|
|
328
|
-
const pos = getPosition(index);
|
|
329
|
-
engine.block.setPositionX(block, pos.x);
|
|
330
|
-
engine.block.setPositionY(block, pos.y);
|
|
331
|
-
});
|
|
155
|
+
// Export the scene archive to demonstrate the result
|
|
156
|
+
const archiveBlob = await engine.scene.saveToArchive();
|
|
157
|
+
const buffer = Buffer.from(await archiveBlob.arrayBuffer());
|
|
332
158
|
|
|
333
|
-
//
|
|
334
|
-
|
|
159
|
+
// Ensure output directory exists
|
|
160
|
+
if (!existsSync('./output')) {
|
|
161
|
+
mkdirSync('./output', { recursive: true });
|
|
162
|
+
}
|
|
335
163
|
|
|
336
|
-
|
|
337
|
-
|
|
164
|
+
writeFileSync('./output/split-video.zip', buffer);
|
|
165
|
+
console.log('Scene exported to ./output/split-video.zip');
|
|
338
166
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
engine.block.setPlaying(page, true);
|
|
342
|
-
// eslint-disable-next-line no-console
|
|
343
|
-
console.log(
|
|
344
|
-
'Video split guide initialized. Playback started. Use timeline to see split results.'
|
|
345
|
-
);
|
|
346
|
-
} catch (error) {
|
|
347
|
-
// eslint-disable-next-line no-console
|
|
348
|
-
console.log(
|
|
349
|
-
'Video split guide initialized. Click play button to start playback.'
|
|
350
|
-
);
|
|
351
|
-
}
|
|
167
|
+
} finally {
|
|
168
|
+
engine.dispose();
|
|
352
169
|
}
|
|
353
170
|
}
|
|
354
171
|
|
|
355
|
-
|
|
172
|
+
splitVideoExample().catch(console.error);
|
|
356
173
|
```
|
|
357
174
|
|
|
358
|
-
This guide covers how to
|
|
359
|
-
|
|
360
|
-
## Splitting Clips via the UI
|
|
175
|
+
This guide covers how to split clips programmatically for server-side automation and batch processing workflows.
|
|
361
176
|
|
|
362
|
-
|
|
177
|
+
## Setting Up the Scene
|
|
363
178
|
|
|
364
|
-
|
|
179
|
+
Before splitting clips, create a scene with the necessary track structure.
|
|
365
180
|
|
|
366
|
-
|
|
181
|
+
```typescript highlight=highlight-setup
|
|
182
|
+
const engine = await CreativeEngine.init({
|
|
183
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
184
|
+
// license: process.env.CESDK_LICENSE,
|
|
185
|
+
});
|
|
186
|
+
```
|
|
367
187
|
|
|
368
|
-
|
|
188
|
+
```typescript highlight=highlight-create-video-scene
|
|
189
|
+
// Create a scene with a page and track for video editing
|
|
190
|
+
engine.scene.create('DepthStack', {
|
|
191
|
+
page: { size: { width: 1920, height: 1080 } }
|
|
192
|
+
});
|
|
193
|
+
const page = engine.block.findByType('page')[0]!;
|
|
194
|
+
const track = engine.block.create('track');
|
|
195
|
+
engine.block.appendChild(page, track);
|
|
196
|
+
```
|
|
369
197
|
|
|
370
|
-
|
|
198
|
+
The scene uses `Video` mode to enable time-based operations. We create a track to contain the video clips that will be split.
|
|
371
199
|
|
|
372
|
-
|
|
200
|
+
## Basic Splitting at a Specific Time
|
|
373
201
|
|
|
374
|
-
Split a block by providing the block ID and the split time in seconds. The time parameter is relative to the block's own time range
|
|
202
|
+
Split a block by providing the block ID and the split time in seconds. The time parameter is relative to the block's own time range.
|
|
375
203
|
|
|
376
|
-
```typescript highlight-basic-split
|
|
377
|
-
// Create a video block to demonstrate basic splitting
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
);
|
|
204
|
+
```typescript highlight=highlight-basic-split
|
|
205
|
+
// Create a video block to demonstrate basic splitting
|
|
206
|
+
const videoBlock = engine.block.create('graphic');
|
|
207
|
+
const videoFill = engine.block.createFill('video');
|
|
208
|
+
engine.block.setString(videoFill, 'fill/video/fileURI', videoUri);
|
|
209
|
+
engine.block.setFill(videoBlock, videoFill);
|
|
210
|
+
engine.block.setWidth(videoBlock, 1920);
|
|
211
|
+
engine.block.setHeight(videoBlock, 1080);
|
|
212
|
+
engine.block.appendChild(track, videoBlock);
|
|
383
213
|
|
|
384
|
-
//
|
|
385
|
-
|
|
386
|
-
await engine.block.forceLoadAVResource(basicFill);
|
|
214
|
+
// Load video resource to access duration
|
|
215
|
+
await engine.block.forceLoadAVResource(videoFill);
|
|
387
216
|
|
|
388
|
-
// Set block duration for the timeline
|
|
389
|
-
engine.block.setDuration(
|
|
217
|
+
// Set block duration for the timeline
|
|
218
|
+
engine.block.setDuration(videoBlock, 10.0);
|
|
390
219
|
|
|
391
|
-
// Split the video block at 5 seconds
|
|
392
|
-
// Returns the ID of the newly created block (second segment)
|
|
393
|
-
const
|
|
220
|
+
// Split the video block at 5 seconds
|
|
221
|
+
// Returns the ID of the newly created block (second segment)
|
|
222
|
+
const newBlock = engine.block.split(videoBlock, 5.0);
|
|
394
223
|
|
|
395
|
-
|
|
396
|
-
console.log(
|
|
397
|
-
`Basic split - Original block: ${basicSplitVideo}, New block: ${splitResultBlock}`
|
|
398
|
-
);
|
|
224
|
+
console.log(`Basic split - Original: ${videoBlock}, New: ${newBlock}`);
|
|
399
225
|
```
|
|
400
226
|
|
|
401
227
|
The `split()` method returns the ID of the newly created block. The original block becomes the first segment (before the split point), and the returned block is the second segment (after the split point).
|
|
402
228
|
|
|
403
|
-
|
|
229
|
+
## Configuring Split Options
|
|
404
230
|
|
|
405
231
|
The `SplitOptions` object controls split behavior with three optional properties:
|
|
406
232
|
|
|
@@ -408,227 +234,151 @@ The `SplitOptions` object controls split behavior with three optional properties
|
|
|
408
234
|
- **`createParentTrackIfNeeded`** (default: `false`): Creates a parent track if needed and adds both blocks to it
|
|
409
235
|
- **`selectNewBlock`** (default: `true`): Whether to select the newly created block after splitting
|
|
410
236
|
|
|
411
|
-
```typescript highlight-split-options
|
|
412
|
-
// Create another video block to demonstrate split options
|
|
413
|
-
const
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
);
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
await engine.block.forceLoadAVResource(optionsFill);
|
|
421
|
-
engine.block.setDuration(optionsSplitVideo, 10.0);
|
|
422
|
-
|
|
423
|
-
// Split with custom options
|
|
424
|
-
const optionsSplitResult = engine.block.split(optionsSplitVideo, 4.0, {
|
|
425
|
-
attachToParent: true, // Attach new block to same parent (default: true)
|
|
426
|
-
createParentTrackIfNeeded: false, // Don't create track if needed (default: false)
|
|
427
|
-
selectNewBlock: false // Don't select the new block (default: true)
|
|
428
|
-
});
|
|
429
|
-
|
|
430
|
-
// eslint-disable-next-line no-console
|
|
431
|
-
console.log(
|
|
432
|
-
`Split with options - New block: ${optionsSplitResult}, selectNewBlock: false`
|
|
433
|
-
);
|
|
434
|
-
```
|
|
435
|
-
|
|
436
|
-
Use `selectNewBlock: false` when splitting multiple clips programmatically to avoid changing selection state between operations.
|
|
437
|
-
|
|
438
|
-
### Splitting at the Current Playhead Position
|
|
439
|
-
|
|
440
|
-
To implement playhead-based splitting like the built-in UI, get the current playback time from the page and convert it to block-relative time.
|
|
441
|
-
|
|
442
|
-
```typescript highlight-split-at-playhead
|
|
443
|
-
// Create a video block to demonstrate playhead-based splitting
|
|
444
|
-
const playheadSplitVideo = await engine.block.addVideo(
|
|
445
|
-
videoUri,
|
|
446
|
-
blockWidth,
|
|
447
|
-
blockHeight
|
|
448
|
-
);
|
|
237
|
+
```typescript highlight=highlight-split-options
|
|
238
|
+
// Create another video block to demonstrate split options
|
|
239
|
+
const optionsBlock = engine.block.create('graphic');
|
|
240
|
+
const optionsFill = engine.block.createFill('video');
|
|
241
|
+
engine.block.setString(optionsFill, 'fill/video/fileURI', videoUri);
|
|
242
|
+
engine.block.setFill(optionsBlock, optionsFill);
|
|
243
|
+
engine.block.setWidth(optionsBlock, 1920);
|
|
244
|
+
engine.block.setHeight(optionsBlock, 1080);
|
|
245
|
+
engine.block.appendChild(track, optionsBlock);
|
|
449
246
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
engine.block.setDuration(playheadSplitVideo, 10.0);
|
|
247
|
+
await engine.block.forceLoadAVResource(optionsFill);
|
|
248
|
+
engine.block.setDuration(optionsBlock, 10.0);
|
|
453
249
|
|
|
454
|
-
//
|
|
455
|
-
const
|
|
250
|
+
// Split with custom options
|
|
251
|
+
const optionsNewBlock = engine.block.split(optionsBlock, 4.0, {
|
|
252
|
+
attachToParent: true, // Attach to same parent (default: true)
|
|
253
|
+
createParentTrackIfNeeded: false, // Don't create track (default: false)
|
|
254
|
+
selectNewBlock: false // Don't select new block (default: true)
|
|
255
|
+
});
|
|
456
256
|
|
|
457
|
-
|
|
458
|
-
|
|
257
|
+
console.log(`Split with options - New block: ${optionsNewBlock}`);
|
|
258
|
+
```
|
|
459
259
|
|
|
460
|
-
|
|
461
|
-
const splitTime = simulatedPlayheadTime - clipStartTime;
|
|
260
|
+
Use `selectNewBlock: false` when splitting multiple clips programmatically to avoid changing selection state between operations.
|
|
462
261
|
|
|
463
|
-
|
|
464
|
-
const playheadSplitResult = engine.block.split(playheadSplitVideo, splitTime);
|
|
262
|
+
## Understanding Split Results
|
|
465
263
|
|
|
466
|
-
|
|
467
|
-
console.log(
|
|
468
|
-
`Playhead split - Split at ${splitTime}s into clip, New block: ${playheadSplitResult}`
|
|
469
|
-
);
|
|
470
|
-
```
|
|
264
|
+
After a split operation, both the original and new blocks have updated trim properties.
|
|
471
265
|
|
|
472
|
-
|
|
266
|
+
```typescript highlight=highlight-split-results
|
|
267
|
+
// Examine trim properties after split
|
|
268
|
+
const originalFill = engine.block.getFill(videoBlock);
|
|
269
|
+
const newBlockFill = engine.block.getFill(newBlock);
|
|
473
270
|
|
|
474
|
-
|
|
271
|
+
const originalTrimOffset = engine.block.getTrimOffset(originalFill);
|
|
272
|
+
const originalTrimLength = engine.block.getTrimLength(originalFill);
|
|
273
|
+
const newTrimOffset = engine.block.getTrimOffset(newBlockFill);
|
|
274
|
+
const newTrimLength = engine.block.getTrimLength(newBlockFill);
|
|
475
275
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
videoUri,
|
|
484
|
-
blockWidth,
|
|
485
|
-
blockHeight
|
|
486
|
-
);
|
|
487
|
-
|
|
488
|
-
const resultsFill = engine.block.getFill(resultsSplitVideo);
|
|
489
|
-
await engine.block.forceLoadAVResource(resultsFill);
|
|
490
|
-
engine.block.setDuration(resultsSplitVideo, 10.0);
|
|
491
|
-
|
|
492
|
-
// Get trim values before split
|
|
493
|
-
const originalTrimOffset = engine.block.getTrimOffset(resultsFill);
|
|
494
|
-
const originalTrimLength = engine.block.getTrimLength(resultsFill);
|
|
495
|
-
|
|
496
|
-
// Split at 6 seconds
|
|
497
|
-
const resultsNewBlock = engine.block.split(resultsSplitVideo, 6.0);
|
|
498
|
-
const newBlockFill = engine.block.getFill(resultsNewBlock);
|
|
499
|
-
|
|
500
|
-
// Examine trim properties after split
|
|
501
|
-
const originalAfterSplitOffset = engine.block.getTrimOffset(resultsFill);
|
|
502
|
-
const originalAfterSplitLength = engine.block.getTrimLength(resultsFill);
|
|
503
|
-
const newBlockTrimOffset = engine.block.getTrimOffset(newBlockFill);
|
|
504
|
-
const newBlockTrimLength = engine.block.getTrimLength(newBlockFill);
|
|
505
|
-
|
|
506
|
-
// eslint-disable-next-line no-console
|
|
507
|
-
console.log('Split results:');
|
|
508
|
-
// eslint-disable-next-line no-console
|
|
509
|
-
console.log(
|
|
510
|
-
` Original before: offset=${originalTrimOffset}, length=${originalTrimLength}`
|
|
511
|
-
);
|
|
512
|
-
// eslint-disable-next-line no-console
|
|
513
|
-
console.log(
|
|
514
|
-
` Original after: offset=${originalAfterSplitOffset}, length=${originalAfterSplitLength}`
|
|
515
|
-
);
|
|
516
|
-
// eslint-disable-next-line no-console
|
|
517
|
-
console.log(
|
|
518
|
-
` New block: offset=${newBlockTrimOffset}, length=${newBlockTrimLength}`
|
|
519
|
-
);
|
|
276
|
+
console.log('Split results:');
|
|
277
|
+
console.log(
|
|
278
|
+
` Original: offset=${originalTrimOffset}s, length=${originalTrimLength}s`
|
|
279
|
+
);
|
|
280
|
+
console.log(
|
|
281
|
+
` New block: offset=${newTrimOffset}s, length=${newTrimLength}s`
|
|
282
|
+
);
|
|
520
283
|
```
|
|
521
284
|
|
|
522
285
|
The original block keeps its trim offset unchanged, but its trim length is reduced to the split point. The new block has its trim offset advanced by the split time and trim length set to cover the remaining duration. Both blocks reference the same source media—splitting is non-destructive.
|
|
523
286
|
|
|
524
|
-
### Timeline Positioning
|
|
525
|
-
|
|
526
|
-
The original block keeps its `getTimeOffset()`. When `attachToParent` is true, the new block is positioned immediately after the original on the same parent. Both blocks stay on the same track unless `createParentTrackIfNeeded` creates a new track structure.
|
|
527
|
-
|
|
528
287
|
## Split and Delete Workflow
|
|
529
288
|
|
|
530
289
|
Remove a middle section from a clip by splitting at both boundaries and deleting the middle segment.
|
|
531
290
|
|
|
532
|
-
```typescript highlight-split-and-delete
|
|
533
|
-
//
|
|
534
|
-
const
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
);
|
|
291
|
+
```typescript highlight=highlight-split-and-delete
|
|
292
|
+
// Demonstrate split-and-delete workflow for removing middle section
|
|
293
|
+
const deleteBlock = engine.block.create('graphic');
|
|
294
|
+
const deleteFill = engine.block.createFill('video');
|
|
295
|
+
engine.block.setString(deleteFill, 'fill/video/fileURI', videoUri);
|
|
296
|
+
engine.block.setFill(deleteBlock, deleteFill);
|
|
297
|
+
engine.block.setWidth(deleteBlock, 1920);
|
|
298
|
+
engine.block.setHeight(deleteBlock, 1080);
|
|
299
|
+
engine.block.appendChild(track, deleteBlock);
|
|
539
300
|
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
engine.block.setDuration(deleteWorkflowVideo, 10.0);
|
|
301
|
+
await engine.block.forceLoadAVResource(deleteFill);
|
|
302
|
+
engine.block.setDuration(deleteBlock, 10.0);
|
|
543
303
|
|
|
544
|
-
//
|
|
545
|
-
const middleBlock = engine.block.split(
|
|
304
|
+
// Split at start of section to remove (2s)
|
|
305
|
+
const middleBlock = engine.block.split(deleteBlock, 2.0);
|
|
546
306
|
|
|
547
|
-
// Split
|
|
548
|
-
const endBlock = engine.block.split(middleBlock, 3.0);
|
|
307
|
+
// Split at end of section to remove (3s into middle = 5s total)
|
|
308
|
+
const endBlock = engine.block.split(middleBlock, 3.0);
|
|
549
309
|
|
|
550
|
-
// Delete the middle segment
|
|
551
|
-
engine.block.destroy(middleBlock);
|
|
310
|
+
// Delete the middle segment
|
|
311
|
+
engine.block.destroy(middleBlock);
|
|
552
312
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
);
|
|
313
|
+
console.log(
|
|
314
|
+
`Split and delete - Removed middle, kept: ${deleteBlock}, ${endBlock}`
|
|
315
|
+
);
|
|
557
316
|
```
|
|
558
317
|
|
|
559
|
-
This workflow is useful for
|
|
318
|
+
This workflow is useful for batch processing where you need to remove unwanted sections programmatically.
|
|
560
319
|
|
|
561
320
|
## Validating Split Time
|
|
562
321
|
|
|
563
322
|
Always validate that the split time is within valid bounds before calling `split()`. The split time must be greater than 0 and less than the block's duration.
|
|
564
323
|
|
|
565
|
-
```typescript highlight-validate-split
|
|
566
|
-
//
|
|
567
|
-
const
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
);
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
await engine.block.forceLoadAVResource(validateFill);
|
|
575
|
-
engine.block.setDuration(validateVideo, 8.0);
|
|
576
|
-
|
|
577
|
-
// Get block duration to validate split time
|
|
578
|
-
const blockDuration = engine.block.getDuration(validateVideo);
|
|
579
|
-
const desiredSplitTime = 4.0;
|
|
580
|
-
|
|
581
|
-
// Validate split time is within bounds (must be > 0 and < duration)
|
|
582
|
-
if (desiredSplitTime > 0 && desiredSplitTime < blockDuration) {
|
|
583
|
-
const validatedSplitResult = engine.block.split(
|
|
584
|
-
validateVideo,
|
|
585
|
-
desiredSplitTime
|
|
586
|
-
);
|
|
587
|
-
// eslint-disable-next-line no-console
|
|
588
|
-
console.log(
|
|
589
|
-
`Validated split - Duration: ${blockDuration}s, Split at: ${desiredSplitTime}s, New block: ${validatedSplitResult}`
|
|
590
|
-
);
|
|
591
|
-
} else {
|
|
592
|
-
// eslint-disable-next-line no-console
|
|
593
|
-
console.log('Split time out of range');
|
|
594
|
-
}
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
Attempting to split at an invalid time (at the beginning, end, or outside the block's duration) will fail or produce unexpected results.
|
|
324
|
+
```typescript highlight=highlight-validate-split
|
|
325
|
+
// Validate split time before splitting
|
|
326
|
+
const validateBlock = engine.block.create('graphic');
|
|
327
|
+
const validateFill = engine.block.createFill('video');
|
|
328
|
+
engine.block.setString(validateFill, 'fill/video/fileURI', videoUri);
|
|
329
|
+
engine.block.setFill(validateBlock, validateFill);
|
|
330
|
+
engine.block.setWidth(validateBlock, 1920);
|
|
331
|
+
engine.block.setHeight(validateBlock, 1080);
|
|
332
|
+
engine.block.appendChild(track, validateBlock);
|
|
598
333
|
|
|
599
|
-
|
|
334
|
+
await engine.block.forceLoadAVResource(validateFill);
|
|
335
|
+
engine.block.setDuration(validateBlock, 8.0);
|
|
600
336
|
|
|
601
|
-
|
|
337
|
+
const blockDuration = engine.block.getDuration(validateBlock);
|
|
338
|
+
const splitTime = 4.0;
|
|
602
339
|
|
|
603
|
-
|
|
340
|
+
// Validate split time is within bounds (must be > 0 and < duration)
|
|
341
|
+
if (splitTime > 0 && splitTime < blockDuration) {
|
|
342
|
+
const validatedNewBlock = engine.block.split(validateBlock, splitTime);
|
|
343
|
+
console.log(
|
|
344
|
+
`Validated split at ${splitTime}s, new block: ${validatedNewBlock}`
|
|
345
|
+
);
|
|
346
|
+
} else {
|
|
347
|
+
console.log('Split time out of range');
|
|
348
|
+
}
|
|
349
|
+
```
|
|
604
350
|
|
|
605
|
-
|
|
351
|
+
Attempting to split at an invalid time will fail or produce unexpected results.
|
|
606
352
|
|
|
607
|
-
|
|
353
|
+
## Cleanup
|
|
608
354
|
|
|
609
|
-
|
|
355
|
+
Always dispose the engine when finished to release resources.
|
|
610
356
|
|
|
611
|
-
|
|
357
|
+
```typescript highlight=highlight-cleanup
|
|
358
|
+
} finally {
|
|
359
|
+
engine.dispose();
|
|
360
|
+
}
|
|
361
|
+
```
|
|
612
362
|
|
|
613
363
|
## API Reference
|
|
614
364
|
|
|
615
|
-
| Method | Description
|
|
616
|
-
| ----------------------------- |
|
|
617
|
-
| `split(id, atTime, options?)` | Split a block at the specified time
|
|
618
|
-
| `getTimeOffset(id)` | Get time offset relative to parent
|
|
619
|
-
| `getDuration(id)` | Get playback duration
|
|
620
|
-
| `
|
|
621
|
-
| `
|
|
622
|
-
| `
|
|
623
|
-
| `
|
|
624
|
-
|
|
625
|
-
|
|
365
|
+
| Method | Description | Parameters | Returns |
|
|
366
|
+
| ----------------------------- | ---------------------------------------------- | -------------------------------------------------- | ---------------- |
|
|
367
|
+
| `split(id, atTime, options?)` | Split a block at the specified time | `id: DesignBlockId, atTime: number, options?: SplitOptions` | `DesignBlockId` |
|
|
368
|
+
| `getTimeOffset(id)` | Get time offset relative to parent | `id: DesignBlockId` | `number` |
|
|
369
|
+
| `getDuration(id)` | Get playback duration | `id: DesignBlockId` | `number` |
|
|
370
|
+
| `getTrimOffset(id)` | Get trim offset of media content | `id: DesignBlockId` | `number` |
|
|
371
|
+
| `getTrimLength(id)` | Get trim length of media content | `id: DesignBlockId` | `number` |
|
|
372
|
+
| `forceLoadAVResource(id)` | Force load media resource metadata | `id: DesignBlockId` | `Promise<void>` |
|
|
373
|
+
| `destroy(id)` | Destroy a block | `id: DesignBlockId` | `void` |
|
|
374
|
+
|
|
375
|
+
|
|
626
376
|
|
|
627
377
|
---
|
|
628
378
|
|
|
629
379
|
## More Resources
|
|
630
380
|
|
|
631
|
-
- **[
|
|
381
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
632
382
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
633
|
-
- **[Web Documentation](./
|
|
634
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
383
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
384
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|