@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,55 +1,57 @@
|
|
|
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 Use Templates](./create-templates.md) > [Edit or Remove Templates](./create-templates/edit-or-remove.md)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Modify existing templates and manage template lifecycle in
|
|
8
|
-
|
|
9
|
-

|
|
7
|
+
Modify existing templates and manage template lifecycle in headless Node.js environments using CE.SDK Engine.
|
|
10
8
|
|
|
11
9
|
> **Reading time:** 10 minutes
|
|
12
10
|
>
|
|
13
11
|
> **Resources:**
|
|
14
12
|
>
|
|
15
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
-
>
|
|
17
|
-
> - [
|
|
18
|
-
>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
import {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
FiltersAssetSource,
|
|
32
|
-
PagePresetsAssetSource,
|
|
33
|
-
StickerAssetSource,
|
|
34
|
-
TextAssetSource,
|
|
35
|
-
TextComponentAssetSource,
|
|
36
|
-
TypefaceAssetSource,
|
|
37
|
-
UploadAssetSources,
|
|
38
|
-
VectorShapeAssetSource
|
|
39
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
-
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
-
import packageJson from './package.json';
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-create-templates-edit-or-remove-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-templates-edit-or-remove-server-js)
|
|
18
|
+
|
|
19
|
+
Templates evolve as designs change. You might need to update branding, fix content errors, or remove outdated templates from your library. CE.SDK Engine provides APIs for adding, editing, and removing templates from asset sources in server-side automation workflows.
|
|
20
|
+
|
|
21
|
+
```typescript file=@cesdk_web_examples/guides-create-templates-edit-or-remove-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';
|
|
25
|
+
import { createInterface } from 'readline';
|
|
26
|
+
|
|
27
|
+
// Load environment variables
|
|
28
|
+
config();
|
|
42
29
|
|
|
43
30
|
/**
|
|
44
|
-
* CE.SDK
|
|
31
|
+
* CE.SDK Server Guide: Edit or Remove Templates
|
|
45
32
|
*
|
|
46
|
-
* Demonstrates template management workflows:
|
|
33
|
+
* Demonstrates template management workflows in headless Node.js:
|
|
47
34
|
* - Adding templates to local asset sources with thumbnails
|
|
48
35
|
* - Editing template content and updating in asset sources
|
|
49
36
|
* - Removing templates from asset sources
|
|
50
37
|
* - Saving updated templates with new content
|
|
51
38
|
*/
|
|
52
39
|
|
|
40
|
+
// Helper function to prompt user for input
|
|
41
|
+
function prompt(question: string): Promise<string> {
|
|
42
|
+
const rl = createInterface({
|
|
43
|
+
input: process.stdin,
|
|
44
|
+
output: process.stdout
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
return new Promise((resolve) => {
|
|
48
|
+
rl.question(question, (answer) => {
|
|
49
|
+
rl.close();
|
|
50
|
+
resolve(answer.trim());
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
53
55
|
// Helper function to generate SVG thumbnail with text label
|
|
54
56
|
function generateThumbnail(label: string): string {
|
|
55
57
|
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="200" height="150" viewBox="0 0 200 150">
|
|
@@ -59,214 +61,205 @@ function generateThumbnail(label: string): string {
|
|
|
59
61
|
return `data:image/svg+xml,${encodeURIComponent(svg)}`;
|
|
60
62
|
}
|
|
61
63
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
// Initialize CE.SDK engine in headless mode
|
|
65
|
+
const engine = await CreativeEngine.init({
|
|
66
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
67
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
68
|
+
});
|
|
66
69
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
try {
|
|
71
|
+
// Create a scene with specific page dimensions
|
|
72
|
+
engine.scene.create('VerticalStack', {
|
|
73
|
+
page: { size: { width: 1200, height: 600 } }
|
|
74
|
+
});
|
|
75
|
+
const page = engine.block.findByType('page')[0];
|
|
76
|
+
|
|
77
|
+
// Create a local asset source for managing templates
|
|
78
|
+
engine.asset.addLocalSource('my-templates');
|
|
79
|
+
|
|
80
|
+
// Create the template with text blocks
|
|
81
|
+
const titleBlock = engine.block.create('text');
|
|
82
|
+
engine.block.replaceText(titleBlock, 'Original Template');
|
|
83
|
+
engine.block.setFloat(titleBlock, 'text/fontSize', 14);
|
|
84
|
+
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
85
|
+
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
86
|
+
engine.block.appendChild(page, titleBlock);
|
|
87
|
+
|
|
88
|
+
const subtitleBlock = engine.block.create('text');
|
|
89
|
+
engine.block.replaceText(subtitleBlock, 'Server-side template management');
|
|
90
|
+
engine.block.setFloat(subtitleBlock, 'text/fontSize', 10);
|
|
91
|
+
engine.block.setWidthMode(subtitleBlock, 'Auto');
|
|
92
|
+
engine.block.setHeightMode(subtitleBlock, 'Auto');
|
|
93
|
+
engine.block.appendChild(page, subtitleBlock);
|
|
94
|
+
|
|
95
|
+
// Position text blocks centered on the page
|
|
96
|
+
const pageWidth = 1200;
|
|
97
|
+
const pageHeight = 600;
|
|
98
|
+
const titleWidth = engine.block.getFrameWidth(titleBlock);
|
|
99
|
+
const titleHeight = engine.block.getFrameHeight(titleBlock);
|
|
100
|
+
engine.block.setPositionX(titleBlock, (pageWidth - titleWidth) / 2);
|
|
101
|
+
engine.block.setPositionY(titleBlock, pageHeight / 2 - titleHeight - 20);
|
|
102
|
+
|
|
103
|
+
const subtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
104
|
+
engine.block.setPositionX(subtitleBlock, (pageWidth - subtitleWidth) / 2);
|
|
105
|
+
engine.block.setPositionY(subtitleBlock, pageHeight / 2 + 20);
|
|
106
|
+
|
|
107
|
+
// Save template content and add to asset source
|
|
108
|
+
const originalContent = await engine.scene.saveToString();
|
|
109
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
110
|
+
id: 'template-original',
|
|
111
|
+
label: { en: 'Original Template' },
|
|
112
|
+
meta: {
|
|
113
|
+
uri: `data:application/octet-stream;base64,${originalContent}`,
|
|
114
|
+
thumbUri: generateThumbnail('Original Template')
|
|
70
115
|
}
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// eslint-disable-next-line no-console
|
|
119
|
+
console.log('Original template added to asset source');
|
|
120
|
+
|
|
121
|
+
// Edit the template content and save as a new version
|
|
122
|
+
engine.block.replaceText(titleBlock, 'Updated Template');
|
|
123
|
+
engine.block.replaceText(subtitleBlock, 'This template was edited and saved');
|
|
124
|
+
|
|
125
|
+
const updatedContent = await engine.scene.saveToString();
|
|
126
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
127
|
+
id: 'template-updated',
|
|
128
|
+
label: { en: 'Updated Template' },
|
|
129
|
+
meta: {
|
|
130
|
+
uri: `data:application/octet-stream;base64,${updatedContent}`,
|
|
131
|
+
thumbUri: generateThumbnail('Updated Template')
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// Re-center after modification
|
|
136
|
+
const newTitleWidth = engine.block.getFrameWidth(titleBlock);
|
|
137
|
+
const newTitleHeight = engine.block.getFrameHeight(titleBlock);
|
|
138
|
+
engine.block.setPositionX(titleBlock, (pageWidth - newTitleWidth) / 2);
|
|
139
|
+
engine.block.setPositionY(titleBlock, pageHeight / 2 - newTitleHeight - 20);
|
|
140
|
+
|
|
141
|
+
const newSubtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
142
|
+
engine.block.setPositionX(subtitleBlock, (pageWidth - newSubtitleWidth) / 2);
|
|
143
|
+
|
|
144
|
+
// eslint-disable-next-line no-console
|
|
145
|
+
console.log('Updated template added to asset source');
|
|
146
|
+
|
|
147
|
+
// Add a temporary template to demonstrate removal
|
|
148
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
149
|
+
id: 'template-temporary',
|
|
150
|
+
label: { en: 'Temporary Template' },
|
|
151
|
+
meta: {
|
|
152
|
+
uri: `data:application/octet-stream;base64,${originalContent}`,
|
|
153
|
+
thumbUri: generateThumbnail('Temporary Template')
|
|
154
|
+
}
|
|
155
|
+
});
|
|
71
156
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// Add asset source plugins
|
|
75
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
76
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
77
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
78
|
-
await cesdk.addPlugin(
|
|
79
|
-
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
80
|
-
);
|
|
81
|
-
await cesdk.addPlugin(
|
|
82
|
-
new DemoAssetSources({
|
|
83
|
-
include: [
|
|
84
|
-
'ly.img.templates.blank.*',
|
|
85
|
-
'ly.img.templates.presentation.*',
|
|
86
|
-
'ly.img.templates.print.*',
|
|
87
|
-
'ly.img.templates.social.*',
|
|
88
|
-
'ly.img.image.*'
|
|
89
|
-
]
|
|
90
|
-
})
|
|
91
|
-
);
|
|
92
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
93
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
94
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
95
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
96
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
97
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
98
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
99
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
100
|
-
|
|
101
|
-
await cesdk.actions.run('scene.create', {
|
|
102
|
-
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
103
|
-
});
|
|
104
|
-
const engine = cesdk.engine;
|
|
105
|
-
|
|
106
|
-
const page = engine.block.findByType('page')[0];
|
|
107
|
-
const pageWidth = engine.block.getWidth(page);
|
|
108
|
-
const pageHeight = engine.block.getHeight(page);
|
|
109
|
-
|
|
110
|
-
// Create a local asset source for managing templates
|
|
111
|
-
engine.asset.addLocalSource('my-templates', undefined, async (asset) => {
|
|
112
|
-
const uri = asset.meta?.uri;
|
|
113
|
-
if (!uri) return undefined;
|
|
114
|
-
const base64Content = uri.split(',')[1];
|
|
115
|
-
if (!base64Content) return undefined;
|
|
116
|
-
await engine.scene.loadFromString(base64Content);
|
|
117
|
-
return engine.scene.get() ?? undefined;
|
|
118
|
-
});
|
|
157
|
+
// Remove the temporary template from the asset source
|
|
158
|
+
engine.asset.removeAssetFromSource('my-templates', 'template-temporary');
|
|
119
159
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
id: 'my-templates-entry',
|
|
123
|
-
sourceIds: ['my-templates'],
|
|
124
|
-
title: 'My Templates',
|
|
125
|
-
icon: '@imgly/Template',
|
|
126
|
-
gridColumns: 2,
|
|
127
|
-
gridItemHeight: 'square'
|
|
128
|
-
});
|
|
160
|
+
// eslint-disable-next-line no-console
|
|
161
|
+
console.log('Temporary template removed from asset source');
|
|
129
162
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
'ly.img.spacer',
|
|
134
|
-
{
|
|
135
|
-
id: 'ly.img.assetLibrary.dock',
|
|
136
|
-
key: 'my-templates',
|
|
137
|
-
icon: '@imgly/Template',
|
|
138
|
-
label: 'My Templates',
|
|
139
|
-
entries: ['my-templates-entry']
|
|
140
|
-
}
|
|
141
|
-
]);
|
|
142
|
-
|
|
143
|
-
// Create the template with text blocks
|
|
144
|
-
const titleBlock = engine.block.create('text');
|
|
145
|
-
engine.block.replaceText(titleBlock, 'Original Template');
|
|
146
|
-
engine.block.setFloat(titleBlock, 'text/fontSize', 64);
|
|
147
|
-
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
148
|
-
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
149
|
-
engine.block.appendChild(page, titleBlock);
|
|
150
|
-
|
|
151
|
-
const subtitleBlock = engine.block.create('text');
|
|
152
|
-
engine.block.replaceText(
|
|
153
|
-
subtitleBlock,
|
|
154
|
-
'Browse "My Templates" at the bottom of the dock'
|
|
155
|
-
);
|
|
156
|
-
engine.block.setFloat(subtitleBlock, 'text/fontSize', 42);
|
|
157
|
-
engine.block.setWidthMode(subtitleBlock, 'Auto');
|
|
158
|
-
engine.block.setHeightMode(subtitleBlock, 'Auto');
|
|
159
|
-
engine.block.appendChild(page, subtitleBlock);
|
|
160
|
-
|
|
161
|
-
// Position text blocks centered on the page
|
|
162
|
-
const titleWidth = engine.block.getFrameWidth(titleBlock);
|
|
163
|
-
const titleHeight = engine.block.getFrameHeight(titleBlock);
|
|
164
|
-
engine.block.setPositionX(titleBlock, (pageWidth - titleWidth) / 2);
|
|
165
|
-
engine.block.setPositionY(titleBlock, pageHeight / 2 - titleHeight - 20);
|
|
166
|
-
|
|
167
|
-
const subtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
168
|
-
engine.block.setPositionX(subtitleBlock, (pageWidth - subtitleWidth) / 2);
|
|
169
|
-
engine.block.setPositionY(subtitleBlock, pageHeight / 2 + 20);
|
|
170
|
-
|
|
171
|
-
// Save template content and add to asset source
|
|
172
|
-
const originalContent = await engine.scene.saveToString();
|
|
173
|
-
engine.asset.addAssetToSource('my-templates', {
|
|
174
|
-
id: 'template-original',
|
|
175
|
-
label: { en: 'Original Template' },
|
|
176
|
-
meta: {
|
|
177
|
-
uri: `data:application/octet-stream;base64,${originalContent}`,
|
|
178
|
-
thumbUri: generateThumbnail('Original Template')
|
|
179
|
-
}
|
|
180
|
-
});
|
|
163
|
+
// Update an existing template by removing and re-adding with same ID
|
|
164
|
+
engine.block.replaceText(subtitleBlock, 'Updated again with new content');
|
|
165
|
+
const reUpdatedContent = await engine.scene.saveToString();
|
|
181
166
|
|
|
182
|
-
|
|
183
|
-
|
|
167
|
+
engine.asset.removeAssetFromSource('my-templates', 'template-updated');
|
|
168
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
169
|
+
id: 'template-updated',
|
|
170
|
+
label: { en: 'Updated Template' },
|
|
171
|
+
meta: {
|
|
172
|
+
uri: `data:application/octet-stream;base64,${reUpdatedContent}`,
|
|
173
|
+
thumbUri: generateThumbnail('Updated Template')
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Notify that the asset source contents have changed
|
|
178
|
+
engine.asset.assetSourceContentsChanged('my-templates');
|
|
179
|
+
|
|
180
|
+
// Re-center subtitle after final update
|
|
181
|
+
const reUpdatedSubtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
182
|
+
engine.block.setPositionX(
|
|
183
|
+
subtitleBlock,
|
|
184
|
+
(pageWidth - reUpdatedSubtitleWidth) / 2
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
// eslint-disable-next-line no-console
|
|
188
|
+
console.log('Template updated in asset source');
|
|
189
|
+
|
|
190
|
+
// Export templates based on user choice
|
|
191
|
+
// eslint-disable-next-line no-console
|
|
192
|
+
console.log('\n--- Template Export ---');
|
|
193
|
+
// eslint-disable-next-line no-console
|
|
194
|
+
console.log('1. Original Template');
|
|
195
|
+
// eslint-disable-next-line no-console
|
|
196
|
+
console.log('2. Updated Template');
|
|
197
|
+
// eslint-disable-next-line no-console
|
|
198
|
+
console.log('3. Both Templates');
|
|
199
|
+
|
|
200
|
+
const choice = await prompt(
|
|
201
|
+
'\nWhich template would you like to export? (1/2/3): '
|
|
202
|
+
);
|
|
203
|
+
|
|
204
|
+
const outputDir = './output';
|
|
205
|
+
if (!existsSync(outputDir)) {
|
|
206
|
+
mkdirSync(outputDir, { recursive: true });
|
|
207
|
+
}
|
|
184
208
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
engine.
|
|
188
|
-
|
|
189
|
-
'
|
|
209
|
+
// Load and export based on user choice
|
|
210
|
+
if (choice === '1' || choice === '3') {
|
|
211
|
+
await engine.scene.loadFromString(originalContent);
|
|
212
|
+
const originalBlob = await engine.block.export(
|
|
213
|
+
engine.block.findByType('page')[0],
|
|
214
|
+
{ mimeType: 'image/png' }
|
|
190
215
|
);
|
|
216
|
+
const originalBuffer = Buffer.from(await originalBlob.arrayBuffer());
|
|
217
|
+
writeFileSync(`${outputDir}/template-original.png`, originalBuffer);
|
|
218
|
+
// eslint-disable-next-line no-console
|
|
219
|
+
console.log('✓ Exported: output/template-original.png');
|
|
220
|
+
}
|
|
191
221
|
|
|
192
|
-
|
|
193
|
-
engine.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
uri: `data:application/octet-stream;base64,${updatedContent}`,
|
|
198
|
-
thumbUri: generateThumbnail('Updated Template')
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
// Re-center after modification
|
|
203
|
-
const newTitleWidth = engine.block.getFrameWidth(titleBlock);
|
|
204
|
-
const newTitleHeight = engine.block.getFrameHeight(titleBlock);
|
|
205
|
-
engine.block.setPositionX(titleBlock, (pageWidth - newTitleWidth) / 2);
|
|
206
|
-
engine.block.setPositionY(titleBlock, pageHeight / 2 - newTitleHeight - 20);
|
|
207
|
-
|
|
208
|
-
const newSubtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
209
|
-
engine.block.setPositionX(
|
|
210
|
-
subtitleBlock,
|
|
211
|
-
(pageWidth - newSubtitleWidth) / 2
|
|
222
|
+
if (choice === '2' || choice === '3') {
|
|
223
|
+
await engine.scene.loadFromString(reUpdatedContent);
|
|
224
|
+
const updatedBlob = await engine.block.export(
|
|
225
|
+
engine.block.findByType('page')[0],
|
|
226
|
+
{ mimeType: 'image/png' }
|
|
212
227
|
);
|
|
213
|
-
|
|
228
|
+
const updatedBuffer = Buffer.from(await updatedBlob.arrayBuffer());
|
|
229
|
+
writeFileSync(`${outputDir}/template-updated.png`, updatedBuffer);
|
|
214
230
|
// eslint-disable-next-line no-console
|
|
215
|
-
console.log('
|
|
216
|
-
|
|
217
|
-
// Add a temporary template to demonstrate removal
|
|
218
|
-
engine.asset.addAssetToSource('my-templates', {
|
|
219
|
-
id: 'template-temporary',
|
|
220
|
-
label: { en: 'Temporary Template' },
|
|
221
|
-
meta: {
|
|
222
|
-
uri: `data:application/octet-stream;base64,${originalContent}`,
|
|
223
|
-
thumbUri: generateThumbnail('Temporary Template')
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
// Remove the temporary template from the asset source
|
|
228
|
-
engine.asset.removeAssetFromSource('my-templates', 'template-temporary');
|
|
231
|
+
console.log('✓ Exported: output/template-updated.png');
|
|
232
|
+
}
|
|
229
233
|
|
|
234
|
+
if (choice !== '1' && choice !== '2' && choice !== '3') {
|
|
230
235
|
// eslint-disable-next-line no-console
|
|
231
|
-
console.log('
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
label: { en: 'Updated Template' },
|
|
241
|
-
meta: {
|
|
242
|
-
uri: `data:application/octet-stream;base64,${reUpdatedContent}`,
|
|
243
|
-
thumbUri: generateThumbnail('Updated Template')
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
// Notify that the asset source contents have changed
|
|
248
|
-
engine.asset.assetSourceContentsChanged('my-templates');
|
|
249
|
-
|
|
250
|
-
// Re-center subtitle after final update
|
|
251
|
-
const reUpdatedSubtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
252
|
-
engine.block.setPositionX(
|
|
253
|
-
subtitleBlock,
|
|
254
|
-
(pageWidth - reUpdatedSubtitleWidth) / 2
|
|
236
|
+
console.log('Invalid choice. Exporting both templates by default.');
|
|
237
|
+
await engine.scene.loadFromString(originalContent);
|
|
238
|
+
const originalBlob = await engine.block.export(
|
|
239
|
+
engine.block.findByType('page')[0],
|
|
240
|
+
{ mimeType: 'image/png' }
|
|
241
|
+
);
|
|
242
|
+
writeFileSync(
|
|
243
|
+
`${outputDir}/template-original.png`,
|
|
244
|
+
Buffer.from(await originalBlob.arrayBuffer())
|
|
255
245
|
);
|
|
256
246
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
await engine.scene.loadFromString(originalContent);
|
|
262
|
-
// eslint-disable-next-line no-console
|
|
263
|
-
console.log(
|
|
264
|
-
'Original template applied - browse "My Templates" in the dock'
|
|
247
|
+
await engine.scene.loadFromString(reUpdatedContent);
|
|
248
|
+
const updatedBlob = await engine.block.export(
|
|
249
|
+
engine.block.findByType('page')[0],
|
|
250
|
+
{ mimeType: 'image/png' }
|
|
265
251
|
);
|
|
252
|
+
writeFileSync(
|
|
253
|
+
`${outputDir}/template-updated.png`,
|
|
254
|
+
Buffer.from(await updatedBlob.arrayBuffer())
|
|
255
|
+
);
|
|
256
|
+
// eslint-disable-next-line no-console
|
|
257
|
+
console.log('✓ Exported both templates to output/');
|
|
266
258
|
}
|
|
259
|
+
} finally {
|
|
260
|
+
// Always dispose the engine to free resources
|
|
261
|
+
engine.dispose();
|
|
267
262
|
}
|
|
268
|
-
|
|
269
|
-
export default Example;
|
|
270
263
|
```
|
|
271
264
|
|
|
272
265
|
This guide covers how to add templates to asset sources, edit template content, remove templates, and save updated versions.
|
|
@@ -277,36 +270,26 @@ First, create a local asset source to store your templates:
|
|
|
277
270
|
|
|
278
271
|
```typescript highlight-create-source
|
|
279
272
|
// Create a local asset source for managing templates
|
|
280
|
-
engine.asset.addLocalSource('my-templates'
|
|
281
|
-
const uri = asset.meta?.uri;
|
|
282
|
-
if (!uri) return undefined;
|
|
283
|
-
const base64Content = uri.split(',')[1];
|
|
284
|
-
if (!base64Content) return undefined;
|
|
285
|
-
await engine.scene.loadFromString(base64Content);
|
|
286
|
-
return engine.scene.get() ?? undefined;
|
|
287
|
-
});
|
|
273
|
+
engine.asset.addLocalSource('my-templates');
|
|
288
274
|
```
|
|
289
275
|
|
|
290
276
|
Next, create your template content using block APIs:
|
|
291
277
|
|
|
292
278
|
```typescript highlight-create-template
|
|
293
|
-
// Create the template with text blocks
|
|
294
|
-
const titleBlock = engine.block.create('text');
|
|
295
|
-
engine.block.replaceText(titleBlock, 'Original Template');
|
|
296
|
-
engine.block.setFloat(titleBlock, 'text/fontSize',
|
|
297
|
-
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
298
|
-
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
299
|
-
engine.block.appendChild(page, titleBlock);
|
|
300
|
-
|
|
301
|
-
const subtitleBlock = engine.block.create('text');
|
|
302
|
-
engine.block.replaceText(
|
|
303
|
-
subtitleBlock,
|
|
304
|
-
|
|
305
|
-
);
|
|
306
|
-
engine.block.
|
|
307
|
-
engine.block.setWidthMode(subtitleBlock, 'Auto');
|
|
308
|
-
engine.block.setHeightMode(subtitleBlock, 'Auto');
|
|
309
|
-
engine.block.appendChild(page, subtitleBlock);
|
|
279
|
+
// Create the template with text blocks
|
|
280
|
+
const titleBlock = engine.block.create('text');
|
|
281
|
+
engine.block.replaceText(titleBlock, 'Original Template');
|
|
282
|
+
engine.block.setFloat(titleBlock, 'text/fontSize', 14);
|
|
283
|
+
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
284
|
+
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
285
|
+
engine.block.appendChild(page, titleBlock);
|
|
286
|
+
|
|
287
|
+
const subtitleBlock = engine.block.create('text');
|
|
288
|
+
engine.block.replaceText(subtitleBlock, 'Server-side template management');
|
|
289
|
+
engine.block.setFloat(subtitleBlock, 'text/fontSize', 10);
|
|
290
|
+
engine.block.setWidthMode(subtitleBlock, 'Auto');
|
|
291
|
+
engine.block.setHeightMode(subtitleBlock, 'Auto');
|
|
292
|
+
engine.block.appendChild(page, subtitleBlock);
|
|
310
293
|
```
|
|
311
294
|
|
|
312
295
|
Then save the template and add it to the asset source using `addAssetToSource()`. Each template needs a unique ID, a label, and metadata containing the template URI and thumbnail:
|
|
@@ -324,26 +307,26 @@ engine.asset.addAssetToSource('my-templates', {
|
|
|
324
307
|
});
|
|
325
308
|
```
|
|
326
309
|
|
|
327
|
-
The `meta.uri` field contains the template content as a data URI. The `meta.thumbUri` provides a thumbnail image for
|
|
310
|
+
The `meta.uri` field contains the template content as a data URI. The `meta.thumbUri` provides a thumbnail image for reference.
|
|
328
311
|
|
|
329
312
|
## Editing Templates
|
|
330
313
|
|
|
331
314
|
Modify template content using block APIs. You can update text, change images, adjust positions, and reconfigure any block properties.
|
|
332
315
|
|
|
333
316
|
```typescript highlight-modify-template
|
|
334
|
-
// Edit the template content and save as a new version
|
|
335
|
-
engine.block.replaceText(titleBlock, 'Updated Template');
|
|
336
|
-
engine.block.replaceText(subtitleBlock, 'This template was edited and saved');
|
|
337
|
-
|
|
338
|
-
const updatedContent = await engine.scene.saveToString();
|
|
339
|
-
engine.asset.addAssetToSource('my-templates', {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
});
|
|
317
|
+
// Edit the template content and save as a new version
|
|
318
|
+
engine.block.replaceText(titleBlock, 'Updated Template');
|
|
319
|
+
engine.block.replaceText(subtitleBlock, 'This template was edited and saved');
|
|
320
|
+
|
|
321
|
+
const updatedContent = await engine.scene.saveToString();
|
|
322
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
323
|
+
id: 'template-updated',
|
|
324
|
+
label: { en: 'Updated Template' },
|
|
325
|
+
meta: {
|
|
326
|
+
uri: `data:application/octet-stream;base64,${updatedContent}`,
|
|
327
|
+
thumbUri: generateThumbnail('Updated Template')
|
|
328
|
+
}
|
|
329
|
+
});
|
|
347
330
|
```
|
|
348
331
|
|
|
349
332
|
After editing, save the modified template as a new asset or update an existing one.
|
|
@@ -353,18 +336,18 @@ After editing, save the modified template as a new asset or update an existing o
|
|
|
353
336
|
Remove templates from asset sources using `removeAssetFromSource()`. This permanently deletes the template entry from the source.
|
|
354
337
|
|
|
355
338
|
```typescript highlight-remove-template
|
|
356
|
-
// Add a temporary template to demonstrate removal
|
|
357
|
-
engine.asset.addAssetToSource('my-templates', {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
});
|
|
339
|
+
// Add a temporary template to demonstrate removal
|
|
340
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
341
|
+
id: 'template-temporary',
|
|
342
|
+
label: { en: 'Temporary Template' },
|
|
343
|
+
meta: {
|
|
344
|
+
uri: `data:application/octet-stream;base64,${originalContent}`,
|
|
345
|
+
thumbUri: generateThumbnail('Temporary Template')
|
|
346
|
+
}
|
|
347
|
+
});
|
|
365
348
|
|
|
366
|
-
// Remove the temporary template from the asset source
|
|
367
|
-
engine.asset.removeAssetFromSource('my-templates', 'template-temporary');
|
|
349
|
+
// Remove the temporary template from the asset source
|
|
350
|
+
engine.asset.removeAssetFromSource('my-templates', 'template-temporary');
|
|
368
351
|
```
|
|
369
352
|
|
|
370
353
|
> **Warning:** Removal is permanent. The template is no longer accessible from the asset source after removal. If you need to restore templates, maintain backups or implement a soft-delete mechanism.
|
|
@@ -374,31 +357,31 @@ engine.asset.removeAssetFromSource('my-templates', 'template-temporary');
|
|
|
374
357
|
To update an existing template, first remove it using `removeAssetFromSource()`, then add the updated version with `addAssetToSource()` using the same asset ID.
|
|
375
358
|
|
|
376
359
|
```typescript highlight-update-in-source
|
|
377
|
-
// Update an existing template by removing and re-adding with same ID
|
|
378
|
-
engine.block.replaceText(subtitleBlock, 'Updated again with new content');
|
|
379
|
-
const reUpdatedContent = await engine.scene.saveToString();
|
|
380
|
-
|
|
381
|
-
engine.asset.removeAssetFromSource('my-templates', 'template-updated');
|
|
382
|
-
engine.asset.addAssetToSource('my-templates', {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
});
|
|
360
|
+
// Update an existing template by removing and re-adding with same ID
|
|
361
|
+
engine.block.replaceText(subtitleBlock, 'Updated again with new content');
|
|
362
|
+
const reUpdatedContent = await engine.scene.saveToString();
|
|
363
|
+
|
|
364
|
+
engine.asset.removeAssetFromSource('my-templates', 'template-updated');
|
|
365
|
+
engine.asset.addAssetToSource('my-templates', {
|
|
366
|
+
id: 'template-updated',
|
|
367
|
+
label: { en: 'Updated Template' },
|
|
368
|
+
meta: {
|
|
369
|
+
uri: `data:application/octet-stream;base64,${reUpdatedContent}`,
|
|
370
|
+
thumbUri: generateThumbnail('Updated Template')
|
|
371
|
+
}
|
|
372
|
+
});
|
|
390
373
|
|
|
391
|
-
// Notify that the asset source contents have changed
|
|
392
|
-
engine.asset.assetSourceContentsChanged('my-templates');
|
|
374
|
+
// Notify that the asset source contents have changed
|
|
375
|
+
engine.asset.assetSourceContentsChanged('my-templates');
|
|
393
376
|
```
|
|
394
377
|
|
|
395
|
-
After updating templates, call `assetSourceContentsChanged()` to notify
|
|
378
|
+
After updating templates, call `assetSourceContentsChanged()` to notify that the asset source contents have changed.
|
|
396
379
|
|
|
397
380
|
## Best Practices
|
|
398
381
|
|
|
399
382
|
### Versioning Strategies
|
|
400
383
|
|
|
401
|
-
When managing template updates, consider these approaches:
|
|
384
|
+
When managing template updates in server-side automation, consider these approaches:
|
|
402
385
|
|
|
403
386
|
- **Replace in place**: Use the same asset ID to update templates without changing references. Existing designs using the template won't break.
|
|
404
387
|
- **Version suffixes**: Create new entries with version identifiers (e.g., `template-v2`). This preserves old versions while introducing new ones.
|
|
@@ -406,7 +389,7 @@ When managing template updates, consider these approaches:
|
|
|
406
389
|
|
|
407
390
|
### Batch Operations
|
|
408
391
|
|
|
409
|
-
When adding, updating, or removing multiple templates, call `assetSourceContentsChanged()` once after all operations complete rather than after each individual change. This
|
|
392
|
+
When adding, updating, or removing multiple templates, call `assetSourceContentsChanged()` once after all operations complete rather than after each individual change. This minimizes notification overhead in automated workflows.
|
|
410
393
|
|
|
411
394
|
### Template IDs
|
|
412
395
|
|
|
@@ -414,28 +397,39 @@ Use descriptive, unique IDs that reflect the template's purpose (e.g., `marketin
|
|
|
414
397
|
|
|
415
398
|
### Thumbnails
|
|
416
399
|
|
|
417
|
-
Generate meaningful thumbnails that accurately represent template content.
|
|
400
|
+
Generate meaningful thumbnails that accurately represent template content. Even in server-side workflows, thumbnails are useful when templates are later displayed in browser-based asset libraries.
|
|
418
401
|
|
|
419
402
|
### Memory Considerations
|
|
420
403
|
|
|
421
|
-
Templates stored as base64 data URIs remain in memory. For
|
|
404
|
+
Templates stored as base64 data URIs remain in memory. For server-side batch processing with many templates, consider storing template content externally and using URLs in the `meta.uri` field instead of inline data URIs.
|
|
405
|
+
|
|
406
|
+
## Cleanup
|
|
407
|
+
|
|
408
|
+
Always dispose the engine when done to free resources.
|
|
409
|
+
|
|
410
|
+
```typescript highlight-cleanup
|
|
411
|
+
// Always dispose the engine to free resources
|
|
412
|
+
engine.dispose();
|
|
413
|
+
```
|
|
422
414
|
|
|
423
415
|
## API Reference
|
|
424
416
|
|
|
425
|
-
| Method
|
|
426
|
-
|
|
|
427
|
-
| `engine.asset.addLocalSource()`
|
|
428
|
-
| `engine.asset.addAssetToSource()`
|
|
429
|
-
| `engine.asset.removeAssetFromSource()`
|
|
430
|
-
| `engine.asset.assetSourceContentsChanged()` | Notify
|
|
431
|
-
| `engine.scene.saveToString()`
|
|
432
|
-
| `engine.scene.loadFromString()`
|
|
417
|
+
| Method | Description |
|
|
418
|
+
| --- | --- |
|
|
419
|
+
| `engine.asset.addLocalSource()` | Create a local asset source |
|
|
420
|
+
| `engine.asset.addAssetToSource()` | Add template to asset source |
|
|
421
|
+
| `engine.asset.removeAssetFromSource()` | Remove template from asset source |
|
|
422
|
+
| `engine.asset.assetSourceContentsChanged()` | Notify of asset source changes |
|
|
423
|
+
| `engine.scene.saveToString()` | Save scene as base64 string |
|
|
424
|
+
| `engine.scene.loadFromString()` | Load scene from base64 string |
|
|
425
|
+
|
|
426
|
+
|
|
433
427
|
|
|
434
428
|
---
|
|
435
429
|
|
|
436
430
|
## More Resources
|
|
437
431
|
|
|
438
|
-
- **[
|
|
432
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
439
433
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
440
|
-
- **[Web Documentation](./
|
|
441
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
434
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
435
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|