@imgly/codesign-mcp 0.1.5 → 0.1.7

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.
Files changed (1085) hide show
  1. package/README.md +56 -11
  2. package/assets/docs/guide/SKILL.md +45 -53
  3. package/assets/docs/guide/animation/create/base.md +234 -243
  4. package/assets/docs/guide/animation/create/text.md +250 -231
  5. package/assets/docs/guide/animation/create.md +197 -231
  6. package/assets/docs/guide/animation/edit.md +196 -271
  7. package/assets/docs/guide/animation/types.md +182 -185
  8. package/assets/docs/guide/animation.md +9 -6
  9. package/assets/docs/guide/api/AssetAPI.md +7 -53
  10. package/assets/docs/guide/api/BlockAPI.md +725 -648
  11. package/assets/docs/guide/api/CreativeEngine.md +7 -16
  12. package/assets/docs/guide/api/EditorAPI.md +32 -93
  13. package/assets/docs/guide/api/EventAPI.md +1 -2
  14. package/assets/docs/guide/api/SceneAPI.md +47 -98
  15. package/assets/docs/guide/api/VariableAPI.md +1 -4
  16. package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
  17. package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
  18. package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
  19. package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
  20. package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
  21. package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
  22. package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
  23. package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
  24. package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
  25. package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
  26. package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
  27. package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
  28. package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
  29. package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
  30. package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
  31. package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
  32. package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
  33. package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
  34. package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
  35. package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
  36. package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
  37. package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
  38. package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
  39. package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
  40. package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
  41. package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
  42. package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
  43. package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
  44. package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
  45. package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
  46. package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
  47. package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
  48. package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
  49. package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
  50. package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
  51. package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
  52. package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
  53. package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
  54. package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
  55. package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
  56. package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
  57. package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
  58. package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
  59. package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
  60. package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
  61. package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
  62. package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
  63. package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
  64. package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
  65. package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
  66. package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
  67. package/assets/docs/guide/api/node/interfaces/font.md +27 -0
  68. package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
  69. package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
  70. package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
  71. package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
  72. package/assets/docs/guide/api/node/interfaces/range.md +23 -0
  73. package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
  74. package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
  75. package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
  76. package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
  77. package/assets/docs/guide/api/node/interfaces/source.md +24 -0
  78. package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
  79. package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
  80. package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
  81. package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
  82. package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
  83. package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
  84. package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
  85. package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
  86. package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
  87. package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
  88. package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
  89. package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
  90. package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
  91. package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
  92. package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
  93. package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
  94. package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
  95. package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
  96. package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
  97. package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
  98. package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
  99. package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
  100. package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
  101. package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
  102. package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
  103. package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
  104. package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
  105. package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
  106. package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
  107. package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
  108. package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
  109. package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
  110. package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
  111. package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
  112. package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
  113. package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
  114. package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
  115. package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
  116. package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
  117. package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
  118. package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
  119. package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
  120. package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
  121. package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
  122. package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
  123. package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
  124. package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
  125. package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
  126. package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
  127. package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
  128. package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
  129. package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
  130. package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
  131. package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
  132. package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
  133. package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
  134. package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
  135. package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
  136. package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
  137. package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
  138. package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
  139. package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
  140. package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
  141. package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
  142. package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
  143. package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
  144. package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
  145. package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
  146. package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
  147. package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
  148. package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
  149. package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
  150. package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
  151. package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
  152. package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
  153. package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
  154. package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
  155. package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
  156. package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
  157. package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
  158. package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
  159. package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
  160. package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
  161. package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
  162. package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
  163. package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
  164. package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
  165. package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
  166. package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
  167. package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
  168. package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
  169. package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
  170. package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
  171. package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
  172. package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
  173. package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
  174. package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
  175. package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
  176. package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
  177. package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
  178. package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
  179. package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
  180. package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
  181. package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
  182. package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
  183. package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
  184. package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
  185. package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
  186. package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
  187. package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
  188. package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
  189. package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
  190. package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
  191. package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
  192. package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
  193. package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
  194. package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
  195. package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
  196. package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
  197. package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
  198. package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
  199. package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
  200. package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
  201. package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
  202. package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
  203. package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
  204. package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
  205. package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
  206. package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
  207. package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
  208. package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
  209. package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
  210. package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
  211. package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
  212. package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
  213. package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
  214. package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
  215. package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
  216. package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
  217. package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
  218. package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
  219. package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
  220. package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
  221. package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
  222. package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
  223. package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
  224. package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
  225. package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
  226. package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
  227. package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
  228. package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
  229. package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
  230. package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
  231. package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
  232. package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
  233. package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
  234. package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
  235. package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
  236. package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
  237. package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
  238. package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
  239. package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
  240. package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
  241. package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
  242. package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
  243. package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
  244. package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
  245. package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
  246. package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
  247. package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
  248. package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
  249. package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
  250. package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
  251. package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
  252. package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
  253. package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
  254. package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
  255. package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
  256. package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
  257. package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
  258. package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
  259. package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
  260. package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
  261. package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
  262. package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
  263. package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
  264. package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
  265. package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
  266. package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
  267. package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
  268. package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
  269. package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
  270. package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
  271. package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
  272. package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
  273. package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
  274. package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
  275. package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
  276. package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
  277. package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
  278. package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
  279. package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
  280. package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
  281. package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
  282. package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
  283. package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
  284. package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
  285. package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
  286. package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
  287. package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
  288. package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
  289. package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
  290. package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
  291. package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
  292. package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
  293. package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
  294. package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
  295. package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
  296. package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
  297. package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
  298. package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
  299. package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
  300. package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
  301. package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
  302. package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
  303. package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
  304. package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
  305. package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
  306. package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
  307. package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
  308. package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
  309. package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
  310. package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
  311. package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
  312. package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
  313. package/assets/docs/guide/api/types.md +5 -9
  314. package/assets/docs/guide/api-reference/overview.md +7 -7
  315. package/assets/docs/guide/automation/auto-resize.md +263 -300
  316. package/assets/docs/guide/automation/data-merge.md +246 -275
  317. package/assets/docs/guide/automation/design-generation.md +102 -31
  318. package/assets/docs/guide/automation/multi-image-generation.md +758 -0
  319. package/assets/docs/guide/automation/overview.md +21 -4
  320. package/assets/docs/guide/automation.md +10 -5
  321. package/assets/docs/guide/capabilities.md +6 -4
  322. package/assets/docs/guide/colors/adjust.md +247 -249
  323. package/assets/docs/guide/colors/apply.md +127 -138
  324. package/assets/docs/guide/colors/basics.md +126 -150
  325. package/assets/docs/guide/colors/conversion.md +171 -177
  326. package/assets/docs/guide/colors/create-color-palette.md +244 -245
  327. package/assets/docs/guide/colors/extract-colors.md +144 -0
  328. package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
  329. package/assets/docs/guide/colors/for-print/spot.md +521 -578
  330. package/assets/docs/guide/colors/for-print.md +9 -4
  331. package/assets/docs/guide/colors/for-screen/p3.md +12 -10
  332. package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
  333. package/assets/docs/guide/colors/for-screen.md +9 -4
  334. package/assets/docs/guide/colors/overview.md +6 -4
  335. package/assets/docs/guide/colors/replace.md +381 -419
  336. package/assets/docs/guide/colors.md +9 -4
  337. package/assets/docs/guide/compatibility.md +7 -5
  338. package/assets/docs/guide/concepts/architecture.md +17 -15
  339. package/assets/docs/guide/concepts/assets.md +152 -140
  340. package/assets/docs/guide/concepts/blocks.md +227 -323
  341. package/assets/docs/guide/concepts/buffers.md +147 -276
  342. package/assets/docs/guide/concepts/design-units.md +95 -145
  343. package/assets/docs/guide/concepts/editing-workflow.md +69 -183
  344. package/assets/docs/guide/concepts/events.md +80 -122
  345. package/assets/docs/guide/concepts/headless-mode.md +237 -0
  346. package/assets/docs/guide/concepts/pages.md +137 -127
  347. package/assets/docs/guide/concepts/resources.md +156 -217
  348. package/assets/docs/guide/concepts/scenes.md +191 -210
  349. package/assets/docs/guide/concepts/templating.md +118 -74
  350. package/assets/docs/guide/concepts/terminology.md +49 -47
  351. package/assets/docs/guide/concepts/undo-and-history.md +229 -303
  352. package/assets/docs/guide/concepts.md +9 -7
  353. package/assets/docs/guide/configuration.md +252 -380
  354. package/assets/docs/guide/conversion/overview.md +33 -4
  355. package/assets/docs/guide/conversion/to-base64.md +127 -167
  356. package/assets/docs/guide/conversion/to-pdf.md +24 -474
  357. package/assets/docs/guide/conversion/to-png.md +168 -211
  358. package/assets/docs/guide/conversion.md +9 -4
  359. package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
  360. package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
  361. package/assets/docs/guide/create-audio/audio/loop.md +232 -272
  362. package/assets/docs/guide/create-composition/add-background.md +237 -239
  363. package/assets/docs/guide/create-composition/blend-modes.md +118 -209
  364. package/assets/docs/guide/create-composition/collage.md +538 -320
  365. package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
  366. package/assets/docs/guide/create-composition/layer-management.md +219 -257
  367. package/assets/docs/guide/create-composition/layout.md +513 -315
  368. package/assets/docs/guide/create-composition/lock-design.md +90 -109
  369. package/assets/docs/guide/create-composition/multi-page.md +133 -113
  370. package/assets/docs/guide/create-composition/overview.md +16 -4
  371. package/assets/docs/guide/create-composition/programmatic.md +288 -344
  372. package/assets/docs/guide/create-composition.md +10 -5
  373. package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
  374. package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
  375. package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
  376. package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
  377. package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
  378. package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
  379. package/assets/docs/guide/create-templates/from-scratch.md +207 -268
  380. package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
  381. package/assets/docs/guide/create-templates/import.md +145 -161
  382. package/assets/docs/guide/create-templates/lock.md +42 -295
  383. package/assets/docs/guide/create-templates/overview.md +33 -4
  384. package/assets/docs/guide/create-templates.md +9 -5
  385. package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
  386. package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
  387. package/assets/docs/guide/create-video/control.md +352 -193
  388. package/assets/docs/guide/create-video/limitations.md +175 -280
  389. package/assets/docs/guide/create-video.md +11 -10
  390. package/assets/docs/guide/edit-image/add-watermark.md +283 -330
  391. package/assets/docs/guide/edit-image/overview.md +29 -4
  392. package/assets/docs/guide/edit-image/remove-bg.md +283 -337
  393. package/assets/docs/guide/edit-image/replace-colors.md +424 -502
  394. package/assets/docs/guide/edit-image/transform/crop.md +463 -402
  395. package/assets/docs/guide/edit-image/transform/flip.md +353 -0
  396. package/assets/docs/guide/edit-image/transform/move.md +143 -100
  397. package/assets/docs/guide/edit-image/transform/resize.md +118 -88
  398. package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
  399. package/assets/docs/guide/edit-image/transform/scale.md +230 -228
  400. package/assets/docs/guide/edit-image/transform.md +10 -5
  401. package/assets/docs/guide/edit-image.md +11 -7
  402. package/assets/docs/guide/edit-video/add-captions.md +344 -421
  403. package/assets/docs/guide/edit-video/add-watermark.md +312 -258
  404. package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
  405. package/assets/docs/guide/edit-video/redaction.md +419 -385
  406. package/assets/docs/guide/edit-video/split.md +243 -493
  407. package/assets/docs/guide/edit-video/transform/crop.md +21 -352
  408. package/assets/docs/guide/edit-video/transform/flip.md +102 -76
  409. package/assets/docs/guide/edit-video/transform/move.md +258 -310
  410. package/assets/docs/guide/edit-video/transform/resize.md +264 -428
  411. package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
  412. package/assets/docs/guide/edit-video/transform/scale.md +320 -417
  413. package/assets/docs/guide/edit-video/transform.md +10 -6
  414. package/assets/docs/guide/edit-video/trim.md +448 -494
  415. package/assets/docs/guide/engine-interface.md +51 -62
  416. package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
  417. package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
  418. package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
  419. package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
  420. package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
  421. package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
  422. package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
  423. package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
  424. package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
  425. package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
  426. package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
  427. package/assets/docs/guide/export-save-publish/export.md +14 -11
  428. package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
  429. package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
  430. package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
  431. package/assets/docs/guide/export-save-publish/save.md +167 -226
  432. package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
  433. package/assets/docs/guide/file-format-support.md +9 -9
  434. package/assets/docs/guide/fills/color.md +370 -347
  435. package/assets/docs/guide/fills/image.md +167 -196
  436. package/assets/docs/guide/fills/overview.md +6 -4
  437. package/assets/docs/guide/fills/video.md +286 -438
  438. package/assets/docs/guide/fills.md +12 -8
  439. package/assets/docs/guide/filters-and-effects/apply.md +598 -664
  440. package/assets/docs/guide/filters-and-effects/blur.md +261 -159
  441. package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
  442. package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
  443. package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
  444. package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
  445. package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
  446. package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
  447. package/assets/docs/guide/filters-and-effects/overview.md +7 -7
  448. package/assets/docs/guide/filters-and-effects/support.md +97 -132
  449. package/assets/docs/guide/filters-and-effects.md +11 -6
  450. package/assets/docs/guide/get-started/agent-skills.md +20 -18
  451. package/assets/docs/guide/get-started/build-with-ai.md +7 -4
  452. package/assets/docs/guide/get-started/bun.md +219 -0
  453. package/assets/docs/guide/get-started/deno.md +161 -0
  454. package/assets/docs/guide/get-started/mcp-server.md +6 -4
  455. package/assets/docs/guide/get-started/overview.md +11 -6
  456. package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
  457. package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
  458. package/assets/docs/guide/get-started/vanilla.md +235 -0
  459. package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
  460. package/assets/docs/guide/guides.md +10 -9
  461. package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
  462. package/assets/docs/guide/import-media/concepts.md +20 -38
  463. package/assets/docs/guide/import-media/content-json-schema.md +145 -125
  464. package/assets/docs/guide/import-media/default-assets.md +113 -161
  465. package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
  466. package/assets/docs/guide/import-media/file-format-support.md +78 -61
  467. package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
  468. package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
  469. package/assets/docs/guide/import-media/from-remote-source.md +9 -11
  470. package/assets/docs/guide/import-media/overview.md +5 -5
  471. package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
  472. package/assets/docs/guide/import-media/size-limits.md +6 -4
  473. package/assets/docs/guide/import-media/source-sets.md +190 -251
  474. package/assets/docs/guide/import-media.md +10 -8
  475. package/assets/docs/guide/insert-media/audio.md +202 -195
  476. package/assets/docs/guide/insert-media/images.md +190 -188
  477. package/assets/docs/guide/insert-media/position-and-align.md +284 -551
  478. package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
  479. package/assets/docs/guide/insert-media/videos.md +236 -203
  480. package/assets/docs/guide/insert-media.md +10 -5
  481. package/assets/docs/guide/key-capabilities.md +36 -4
  482. package/assets/docs/guide/key-concepts.md +6 -4
  483. package/assets/docs/guide/licensing.md +6 -4
  484. package/assets/docs/guide/llms-txt.md +11 -7
  485. package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
  486. package/assets/docs/guide/open-the-editor/from-image.md +157 -127
  487. package/assets/docs/guide/open-the-editor/from-template.md +131 -92
  488. package/assets/docs/guide/open-the-editor/from-video.md +204 -212
  489. package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
  490. package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
  491. package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
  492. package/assets/docs/guide/open-the-editor/import-design.md +228 -266
  493. package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
  494. package/assets/docs/guide/open-the-editor/overview.md +6 -4
  495. package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
  496. package/assets/docs/guide/open-the-editor.md +11 -9
  497. package/assets/docs/guide/outlines/overview.md +12 -4
  498. package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
  499. package/assets/docs/guide/outlines/strokes.md +218 -166
  500. package/assets/docs/guide/outlines.md +9 -4
  501. package/assets/docs/guide/overview.md +14 -6
  502. package/assets/docs/guide/performance.md +220 -113
  503. package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
  504. package/assets/docs/guide/plugins.md +10 -16
  505. package/assets/docs/guide/rules/asset-handling.md +7 -18
  506. package/assets/docs/guide/rules/common-pitfalls.md +25 -42
  507. package/assets/docs/guide/rules/content-fill-mode.md +4 -4
  508. package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
  509. package/assets/docs/guide/rules/lock-content.md +188 -231
  510. package/assets/docs/guide/rules/moderate-content.md +580 -571
  511. package/assets/docs/guide/rules/overview.md +345 -380
  512. package/assets/docs/guide/rules/silent-init-errors.md +4 -1
  513. package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
  514. package/assets/docs/guide/rules.md +10 -5
  515. package/assets/docs/guide/security.md +7 -5
  516. package/assets/docs/guide/serve-assets.md +57 -284
  517. package/assets/docs/guide/settings.md +96 -74
  518. package/assets/docs/guide/shapes.md +10 -5
  519. package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
  520. package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
  521. package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
  522. package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
  523. package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
  524. package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
  525. package/assets/docs/guide/stickers.md +9 -4
  526. package/assets/docs/guide/text/add.md +470 -482
  527. package/assets/docs/guide/text/adjust-spacing.md +179 -214
  528. package/assets/docs/guide/text/auto-size.md +210 -271
  529. package/assets/docs/guide/text/edit.md +294 -309
  530. package/assets/docs/guide/text/effects.md +154 -190
  531. package/assets/docs/guide/text/emojis.md +199 -232
  532. package/assets/docs/guide/text/language-support.md +369 -382
  533. package/assets/docs/guide/text/overview.md +41 -4
  534. package/assets/docs/guide/text/styling.md +239 -273
  535. package/assets/docs/guide/text/text-designs.md +405 -544
  536. package/assets/docs/guide/text.md +10 -9
  537. package/assets/docs/guide/to-v1-19.md +12 -10
  538. package/assets/docs/guide/upgrade.md +8 -9
  539. package/assets/docs/guide/use-templates/apply-template.md +174 -163
  540. package/assets/docs/guide/use-templates/generate.md +171 -152
  541. package/assets/docs/guide/use-templates/overview.md +32 -4
  542. package/assets/docs/guide/use-templates/programmatic.md +266 -301
  543. package/assets/docs/guide/use-templates/replace-content.md +181 -171
  544. package/assets/docs/guide/what-is-cesdk.md +71 -282
  545. package/assets/docs/handbook/SKILL.md +24 -0
  546. package/dist/assets/inline.generated.d.ts.map +1 -1
  547. package/dist/assets/inline.generated.js +544 -406
  548. package/dist/assets/inline.generated.js.map +1 -1
  549. package/dist/assets/load-browser.d.ts +1 -1
  550. package/dist/assets/load-browser.js +1 -1
  551. package/dist/assets/load-browser.js.map +1 -1
  552. package/dist/assets/load-node.d.ts +1 -1
  553. package/dist/assets/load-node.js +1 -1
  554. package/dist/assets/load-node.js.map +1 -1
  555. package/dist/cli/http.d.ts.map +1 -1
  556. package/dist/cli/http.js +16 -30
  557. package/dist/cli/http.js.map +1 -1
  558. package/dist/cli/redirect-console.d.ts +1 -1
  559. package/dist/cli/redirect-console.d.ts.map +1 -1
  560. package/dist/cli/redirect-console.js +12 -3
  561. package/dist/cli/redirect-console.js.map +1 -1
  562. package/dist/cli/resolve-license.d.ts.map +1 -1
  563. package/dist/cli/resolve-license.js +8 -6
  564. package/dist/cli/resolve-license.js.map +1 -1
  565. package/dist/cli/stdio.d.ts +9 -0
  566. package/dist/cli/stdio.d.ts.map +1 -1
  567. package/dist/cli/stdio.js +136 -24
  568. package/dist/cli/stdio.js.map +1 -1
  569. package/dist/cli.js +10 -1
  570. package/dist/cli.js.map +1 -1
  571. package/dist/config.d.ts +22 -4
  572. package/dist/config.d.ts.map +1 -1
  573. package/dist/config.js +32 -2
  574. package/dist/config.js.map +1 -1
  575. package/dist/diagnostics/bundle.d.ts +10 -0
  576. package/dist/diagnostics/bundle.d.ts.map +1 -0
  577. package/dist/diagnostics/bundle.js +148 -0
  578. package/dist/diagnostics/bundle.js.map +1 -0
  579. package/dist/diagnostics/compose.d.ts +3 -0
  580. package/dist/diagnostics/compose.d.ts.map +1 -0
  581. package/dist/diagnostics/compose.js +15 -0
  582. package/dist/diagnostics/compose.js.map +1 -0
  583. package/dist/diagnostics/events.d.ts +40 -0
  584. package/dist/diagnostics/events.d.ts.map +1 -0
  585. package/dist/diagnostics/events.js +3 -0
  586. package/dist/diagnostics/events.js.map +1 -0
  587. package/dist/diagnostics/file-sink.d.ts +38 -0
  588. package/dist/diagnostics/file-sink.d.ts.map +1 -0
  589. package/dist/diagnostics/file-sink.js +157 -0
  590. package/dist/diagnostics/file-sink.js.map +1 -0
  591. package/dist/diagnostics/redact.d.ts +7 -0
  592. package/dist/diagnostics/redact.d.ts.map +1 -0
  593. package/dist/diagnostics/redact.js +43 -0
  594. package/dist/diagnostics/redact.js.map +1 -0
  595. package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
  596. package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
  597. package/dist/diagnostics/tool-call-adapter.js +21 -0
  598. package/dist/diagnostics/tool-call-adapter.js.map +1 -0
  599. package/dist/engine/cesdk-adapter.d.ts +10 -2
  600. package/dist/engine/cesdk-adapter.d.ts.map +1 -1
  601. package/dist/engine/cesdk-adapter.js +17 -3
  602. package/dist/engine/cesdk-adapter.js.map +1 -1
  603. package/dist/engine/engine-capacity.d.ts +16 -0
  604. package/dist/engine/engine-capacity.d.ts.map +1 -0
  605. package/dist/engine/engine-capacity.js +48 -0
  606. package/dist/engine/engine-capacity.js.map +1 -0
  607. package/dist/engine/engine-slots.d.ts +48 -0
  608. package/dist/engine/engine-slots.d.ts.map +1 -0
  609. package/dist/engine/engine-slots.js +182 -0
  610. package/dist/engine/engine-slots.js.map +1 -0
  611. package/dist/engine/index.d.ts +1 -0
  612. package/dist/engine/index.d.ts.map +1 -1
  613. package/dist/engine/index.js +4 -0
  614. package/dist/engine/index.js.map +1 -1
  615. package/dist/engine/scene-resource-schemes.d.ts +2 -0
  616. package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
  617. package/dist/engine/scene-resource-schemes.js +20 -0
  618. package/dist/engine/scene-resource-schemes.js.map +1 -0
  619. package/dist/http/server.d.ts +0 -6
  620. package/dist/http/server.d.ts.map +1 -1
  621. package/dist/http/server.js +1 -2
  622. package/dist/http/server.js.map +1 -1
  623. package/dist/server.d.ts +0 -4
  624. package/dist/server.d.ts.map +1 -1
  625. package/dist/server.js +4 -60
  626. package/dist/server.js.map +1 -1
  627. package/dist/tools/asset-generate.d.ts.map +1 -1
  628. package/dist/tools/asset-generate.js +1 -8
  629. package/dist/tools/asset-generate.js.map +1 -1
  630. package/dist/tools/edit.d.ts +3 -0
  631. package/dist/tools/edit.d.ts.map +1 -1
  632. package/dist/tools/edit.js +145 -96
  633. package/dist/tools/edit.js.map +1 -1
  634. package/dist/tools/engine.d.ts +13 -0
  635. package/dist/tools/engine.d.ts.map +1 -1
  636. package/dist/tools/engine.js +28 -0
  637. package/dist/tools/engine.js.map +1 -1
  638. package/dist/tools/export.d.ts +3 -0
  639. package/dist/tools/export.d.ts.map +1 -1
  640. package/dist/tools/export.js +146 -108
  641. package/dist/tools/export.js.map +1 -1
  642. package/dist/tools/import.d.ts +12 -0
  643. package/dist/tools/import.d.ts.map +1 -0
  644. package/dist/tools/import.js +144 -0
  645. package/dist/tools/import.js.map +1 -0
  646. package/dist/tools/index.d.ts +3 -0
  647. package/dist/tools/index.d.ts.map +1 -1
  648. package/dist/tools/index.js +44 -4
  649. package/dist/tools/index.js.map +1 -1
  650. package/dist/tools/load.d.ts +26 -0
  651. package/dist/tools/load.d.ts.map +1 -0
  652. package/dist/tools/load.js +400 -0
  653. package/dist/tools/load.js.map +1 -0
  654. package/dist/tools/preview.d.ts +3 -0
  655. package/dist/tools/preview.d.ts.map +1 -1
  656. package/dist/tools/preview.js +79 -44
  657. package/dist/tools/preview.js.map +1 -1
  658. package/dist/tools/result.d.ts +1 -1
  659. package/dist/tools/result.js +2 -2
  660. package/dist/tools/result.js.map +1 -1
  661. package/dist/tools/spans.d.ts +45 -0
  662. package/dist/tools/spans.d.ts.map +1 -0
  663. package/dist/tools/spans.js +77 -0
  664. package/dist/tools/spans.js.map +1 -0
  665. package/dist/tools/telemetry-wrapper.d.ts +4 -0
  666. package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
  667. package/dist/tools/telemetry-wrapper.js +43 -0
  668. package/dist/tools/telemetry-wrapper.js.map +1 -0
  669. package/dist/viewer/cesdk-cdn.d.ts +16 -0
  670. package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
  671. package/dist/viewer/cesdk-cdn.js +30 -0
  672. package/dist/viewer/cesdk-cdn.js.map +1 -0
  673. package/dist/viewer/router.d.ts +6 -0
  674. package/dist/viewer/router.d.ts.map +1 -1
  675. package/dist/viewer/router.js +4 -1
  676. package/dist/viewer/router.js.map +1 -1
  677. package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
  678. package/dist/viewer/spa-assets.generated.js +2 -3
  679. package/dist/viewer/spa-assets.generated.js.map +1 -1
  680. package/dist/workspace/content-hash.d.ts +2 -0
  681. package/dist/workspace/content-hash.d.ts.map +1 -0
  682. package/dist/workspace/content-hash.js +15 -0
  683. package/dist/workspace/content-hash.js.map +1 -0
  684. package/package.json +19 -10
  685. package/assets/docs/guide/actions.md +0 -1038
  686. package/assets/docs/guide/animation/overview.md +0 -22
  687. package/assets/docs/guide/automation/batch-processing.md +0 -474
  688. package/assets/docs/guide/browser-support.md +0 -38
  689. package/assets/docs/guide/concepts/edit-modes.md +0 -431
  690. package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
  691. package/assets/docs/guide/create-audio/audio.md +0 -336
  692. package/assets/docs/guide/create-video/overview.md +0 -224
  693. package/assets/docs/guide/create-video/timeline-editor.md +0 -622
  694. package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
  695. package/assets/docs/guide/edit-image/vectorize.md +0 -204
  696. package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
  697. package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
  698. package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
  699. package/assets/docs/guide/grid-and-rulers.md +0 -222
  700. package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
  701. package/assets/docs/guide/import-media/asset-library.md +0 -23
  702. package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
  703. package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
  704. package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
  705. package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
  706. package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
  707. package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
  708. package/assets/docs/guide/import-media/from-local-source.md +0 -20
  709. package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
  710. package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
  711. package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
  712. package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
  713. package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
  714. package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
  715. package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
  716. package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
  717. package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
  718. package/assets/docs/guide/plugins/asset-sources.md +0 -553
  719. package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
  720. package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
  721. package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
  722. package/assets/docs/guide/starterkits/ai-editor.md +0 -749
  723. package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
  724. package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
  725. package/assets/docs/guide/starterkits/assets.md +0 -27
  726. package/assets/docs/guide/starterkits/auto-resize.md +0 -586
  727. package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
  728. package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
  729. package/assets/docs/guide/starterkits/content-moderation.md +0 -863
  730. package/assets/docs/guide/starterkits/creative-automation.md +0 -28
  731. package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
  732. package/assets/docs/guide/starterkits/customization.md +0 -29
  733. package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
  734. package/assets/docs/guide/starterkits/data-merge.md +0 -850
  735. package/assets/docs/guide/starterkits/design-editor.md +0 -698
  736. package/assets/docs/guide/starterkits/design-generation.md +0 -719
  737. package/assets/docs/guide/starterkits/design-validation.md +0 -808
  738. package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
  739. package/assets/docs/guide/starterkits/export-options.md +0 -724
  740. package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
  741. package/assets/docs/guide/starterkits/extensibility.md +0 -28
  742. package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
  743. package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
  744. package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
  745. package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
  746. package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
  747. package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
  748. package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
  749. package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
  750. package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
  751. package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
  752. package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
  753. package/assets/docs/guide/starterkits/photo-editor.md +0 -755
  754. package/assets/docs/guide/starterkits/photo-ui.md +0 -186
  755. package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
  756. package/assets/docs/guide/starterkits/placeholders.md +0 -678
  757. package/assets/docs/guide/starterkits/player.md +0 -405
  758. package/assets/docs/guide/starterkits/plugins.md +0 -25
  759. package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
  760. package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
  761. package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
  762. package/assets/docs/guide/starterkits/product-editor.md +0 -773
  763. package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
  764. package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
  765. package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
  766. package/assets/docs/guide/starterkits/start-with-image.md +0 -684
  767. package/assets/docs/guide/starterkits/start-with-video.md +0 -651
  768. package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
  769. package/assets/docs/guide/starterkits/templating.md +0 -23
  770. package/assets/docs/guide/starterkits/theming.md +0 -662
  771. package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
  772. package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
  773. package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
  774. package/assets/docs/guide/starterkits/version-history.md +0 -745
  775. package/assets/docs/guide/starterkits/video-animations.md +0 -853
  776. package/assets/docs/guide/starterkits/video-captions.md +0 -884
  777. package/assets/docs/guide/starterkits/video-editing.md +0 -25
  778. package/assets/docs/guide/starterkits/video-editor.md +0 -696
  779. package/assets/docs/guide/starterkits/video-export-options.md +0 -676
  780. package/assets/docs/guide/starterkits/viewer.md +0 -400
  781. package/assets/docs/guide/starterkits.md +0 -41
  782. package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
  783. package/assets/docs/guide/text/custom-fonts.md +0 -401
  784. package/assets/docs/guide/text/decorations.md +0 -330
  785. package/assets/docs/guide/text/enumerations.md +0 -258
  786. package/assets/docs/guide/to-v1-10.md +0 -131
  787. package/assets/docs/guide/to-v1-13.md +0 -165
  788. package/assets/docs/guide/to-v1-32.md +0 -110
  789. package/assets/docs/guide/to-v1-69.md +0 -468
  790. package/assets/docs/guide/to-v1-72.md +0 -193
  791. package/assets/docs/guide/use-templates/library.md +0 -450
  792. package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
  793. package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
  794. package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
  795. package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
  796. package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
  797. package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
  798. package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
  799. package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
  800. package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
  801. package/assets/docs/guide/user-interface/ai-integration.md +0 -30
  802. package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
  803. package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
  804. package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
  805. package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
  806. package/assets/docs/guide/user-interface/appearance.md +0 -23
  807. package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
  808. package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
  809. package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
  810. package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
  811. package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
  812. package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
  813. package/assets/docs/guide/user-interface/customization/dock.md +0 -399
  814. package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
  815. package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
  816. package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
  817. package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
  818. package/assets/docs/guide/user-interface/customization/panel.md +0 -605
  819. package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
  820. package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
  821. package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
  822. package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
  823. package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
  824. package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
  825. package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
  826. package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
  827. package/assets/docs/guide/user-interface/customization/reference.md +0 -12
  828. package/assets/docs/guide/user-interface/customization.md +0 -39
  829. package/assets/docs/guide/user-interface/localization.md +0 -633
  830. package/assets/docs/guide/user-interface/overview.md +0 -167
  831. package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
  832. package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
  833. package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
  834. package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
  835. package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
  836. package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
  837. package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
  838. package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
  839. package/assets/docs/guide/user-interface.md +0 -25
  840. package/assets/prompts/evals-assetGenerate.md +0 -12
  841. package/assets/prompts/evals-brutalistCore.md +0 -34
  842. package/assets/prompts/evals-danskCatalogue.md +0 -31
  843. package/assets/prompts/evals-exportRoundTrip.md +0 -12
  844. package/assets/prompts/evals-inspectPriorCode.md +0 -16
  845. package/assets/prompts/evals-listProjectFiles.md +0 -6
  846. package/assets/prompts/evals-readAndExplainScript.md +0 -6
  847. package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
  848. package/assets/prompts/evals-rewindRecovery.md +0 -10
  849. package/assets/prompts/evals-searchAcrossFiles.md +0 -6
  850. package/assets/prompts/evals-weddingCard.md +0 -20
  851. package/assets/prompts/explain.md +0 -6
  852. package/assets/prompts/review.md +0 -6
  853. package/dist/dashboard/router.d.ts +0 -3
  854. package/dist/dashboard/router.d.ts.map +0 -1
  855. package/dist/dashboard/router.js +0 -19
  856. package/dist/dashboard/router.js.map +0 -1
  857. package/dist/dashboard/spa-assets.generated.d.ts +0 -2
  858. package/dist/dashboard/spa-assets.generated.d.ts.map +0 -1
  859. package/dist/dashboard/spa-assets.generated.js +0 -220
  860. package/dist/dashboard/spa-assets.generated.js.map +0 -1
  861. package/dist/frontmatter.d.ts +0 -15
  862. package/dist/frontmatter.d.ts.map +0 -1
  863. package/dist/frontmatter.js +0 -46
  864. package/dist/frontmatter.js.map +0 -1
  865. package/dist/metrics/mount.d.ts +0 -11
  866. package/dist/metrics/mount.d.ts.map +0 -1
  867. package/dist/metrics/mount.js +0 -13
  868. package/dist/metrics/mount.js.map +0 -1
  869. package/dist/metrics/recorder.d.ts +0 -55
  870. package/dist/metrics/recorder.d.ts.map +0 -1
  871. package/dist/metrics/recorder.js +0 -97
  872. package/dist/metrics/recorder.js.map +0 -1
  873. package/dist/test/test/cli/dispatcher.test.d.ts +0 -2
  874. package/dist/test/test/cli/dispatcher.test.d.ts.map +0 -1
  875. package/dist/test/test/cli/dispatcher.test.js +0 -47
  876. package/dist/test/test/cli/dispatcher.test.js.map +0 -1
  877. package/dist/test/test/cli/redirect-console.test.d.ts +0 -2
  878. package/dist/test/test/cli/redirect-console.test.d.ts.map +0 -1
  879. package/dist/test/test/cli/redirect-console.test.js +0 -47
  880. package/dist/test/test/cli/redirect-console.test.js.map +0 -1
  881. package/dist/test/test/cli/resolve-license.test.d.ts +0 -2
  882. package/dist/test/test/cli/resolve-license.test.d.ts.map +0 -1
  883. package/dist/test/test/cli/resolve-license.test.js +0 -20
  884. package/dist/test/test/cli/resolve-license.test.js.map +0 -1
  885. package/dist/test/test/cli/stdio-license.test.d.ts +0 -2
  886. package/dist/test/test/cli/stdio-license.test.d.ts.map +0 -1
  887. package/dist/test/test/cli/stdio-license.test.js +0 -19
  888. package/dist/test/test/cli/stdio-license.test.js.map +0 -1
  889. package/dist/test/test/config.test.d.ts +0 -2
  890. package/dist/test/test/config.test.d.ts.map +0 -1
  891. package/dist/test/test/config.test.js +0 -91
  892. package/dist/test/test/config.test.js.map +0 -1
  893. package/dist/test/test/cross-ref.test.d.ts +0 -2
  894. package/dist/test/test/cross-ref.test.d.ts.map +0 -1
  895. package/dist/test/test/cross-ref.test.js +0 -39
  896. package/dist/test/test/cross-ref.test.js.map +0 -1
  897. package/dist/test/test/engine/asset-sources.test.d.ts +0 -2
  898. package/dist/test/test/engine/asset-sources.test.d.ts.map +0 -1
  899. package/dist/test/test/engine/asset-sources.test.js +0 -100
  900. package/dist/test/test/engine/asset-sources.test.js.map +0 -1
  901. package/dist/test/test/engine/mutex.test.d.ts +0 -2
  902. package/dist/test/test/engine/mutex.test.d.ts.map +0 -1
  903. package/dist/test/test/engine/mutex.test.js +0 -63
  904. package/dist/test/test/engine/mutex.test.js.map +0 -1
  905. package/dist/test/test/engine/session.test.d.ts +0 -2
  906. package/dist/test/test/engine/session.test.d.ts.map +0 -1
  907. package/dist/test/test/engine/session.test.js +0 -159
  908. package/dist/test/test/engine/session.test.js.map +0 -1
  909. package/dist/test/test/engine/unsplash-source.test.d.ts +0 -2
  910. package/dist/test/test/engine/unsplash-source.test.d.ts.map +0 -1
  911. package/dist/test/test/engine/unsplash-source.test.js +0 -129
  912. package/dist/test/test/engine/unsplash-source.test.js.map +0 -1
  913. package/dist/test/test/engine/uri-resolver.test.d.ts +0 -2
  914. package/dist/test/test/engine/uri-resolver.test.d.ts.map +0 -1
  915. package/dist/test/test/engine/uri-resolver.test.js +0 -38
  916. package/dist/test/test/engine/uri-resolver.test.js.map +0 -1
  917. package/dist/test/test/frontmatter.test.d.ts +0 -2
  918. package/dist/test/test/frontmatter.test.d.ts.map +0 -1
  919. package/dist/test/test/frontmatter.test.js +0 -55
  920. package/dist/test/test/frontmatter.test.js.map +0 -1
  921. package/dist/test/test/gateway/hosted-stub.test.d.ts +0 -2
  922. package/dist/test/test/gateway/hosted-stub.test.d.ts.map +0 -1
  923. package/dist/test/test/gateway/hosted-stub.test.js +0 -11
  924. package/dist/test/test/gateway/hosted-stub.test.js.map +0 -1
  925. package/dist/test/test/gateway/local.test.d.ts +0 -2
  926. package/dist/test/test/gateway/local.test.d.ts.map +0 -1
  927. package/dist/test/test/gateway/local.test.js +0 -29
  928. package/dist/test/test/gateway/local.test.js.map +0 -1
  929. package/dist/test/test/handbook-contract.test.d.ts +0 -2
  930. package/dist/test/test/handbook-contract.test.d.ts.map +0 -1
  931. package/dist/test/test/handbook-contract.test.js +0 -75
  932. package/dist/test/test/handbook-contract.test.js.map +0 -1
  933. package/dist/test/test/http/server.test.d.ts +0 -2
  934. package/dist/test/test/http/server.test.d.ts.map +0 -1
  935. package/dist/test/test/http/server.test.js +0 -374
  936. package/dist/test/test/http/server.test.js.map +0 -1
  937. package/dist/test/test/http/session-id-header.test.d.ts +0 -2
  938. package/dist/test/test/http/session-id-header.test.d.ts.map +0 -1
  939. package/dist/test/test/http/session-id-header.test.js +0 -76
  940. package/dist/test/test/http/session-id-header.test.js.map +0 -1
  941. package/dist/test/test/http/session-manager.test.d.ts +0 -2
  942. package/dist/test/test/http/session-manager.test.d.ts.map +0 -1
  943. package/dist/test/test/http/session-manager.test.js +0 -97
  944. package/dist/test/test/http/session-manager.test.js.map +0 -1
  945. package/dist/test/test/http/workspace-auth.test.d.ts +0 -2
  946. package/dist/test/test/http/workspace-auth.test.d.ts.map +0 -1
  947. package/dist/test/test/http/workspace-auth.test.js +0 -41
  948. package/dist/test/test/http/workspace-auth.test.js.map +0 -1
  949. package/dist/test/test/metrics/mount.test.d.ts +0 -2
  950. package/dist/test/test/metrics/mount.test.d.ts.map +0 -1
  951. package/dist/test/test/metrics/mount.test.js +0 -59
  952. package/dist/test/test/metrics/mount.test.js.map +0 -1
  953. package/dist/test/test/metrics/recorder.test.d.ts +0 -2
  954. package/dist/test/test/metrics/recorder.test.d.ts.map +0 -1
  955. package/dist/test/test/metrics/recorder.test.js +0 -118
  956. package/dist/test/test/metrics/recorder.test.js.map +0 -1
  957. package/dist/test/test/revisions/hash.test.d.ts +0 -2
  958. package/dist/test/test/revisions/hash.test.d.ts.map +0 -1
  959. package/dist/test/test/revisions/hash.test.js +0 -33
  960. package/dist/test/test/revisions/hash.test.js.map +0 -1
  961. package/dist/test/test/revisions/store.test.d.ts +0 -2
  962. package/dist/test/test/revisions/store.test.d.ts.map +0 -1
  963. package/dist/test/test/revisions/store.test.js +0 -315
  964. package/dist/test/test/revisions/store.test.js.map +0 -1
  965. package/dist/test/test/server.metrics.test.d.ts +0 -2
  966. package/dist/test/test/server.metrics.test.d.ts.map +0 -1
  967. package/dist/test/test/server.metrics.test.js +0 -87
  968. package/dist/test/test/server.metrics.test.js.map +0 -1
  969. package/dist/test/test/server.test.d.ts +0 -2
  970. package/dist/test/test/server.test.d.ts.map +0 -1
  971. package/dist/test/test/server.test.js +0 -186
  972. package/dist/test/test/server.test.js.map +0 -1
  973. package/dist/test/test/skill-tools.test.d.ts +0 -2
  974. package/dist/test/test/skill-tools.test.d.ts.map +0 -1
  975. package/dist/test/test/skill-tools.test.js +0 -84
  976. package/dist/test/test/skill-tools.test.js.map +0 -1
  977. package/dist/test/test/smoke.test.d.ts +0 -2
  978. package/dist/test/test/smoke.test.d.ts.map +0 -1
  979. package/dist/test/test/smoke.test.js +0 -8
  980. package/dist/test/test/smoke.test.js.map +0 -1
  981. package/dist/test/test/tools/asset-generate.test.d.ts +0 -2
  982. package/dist/test/test/tools/asset-generate.test.d.ts.map +0 -1
  983. package/dist/test/test/tools/asset-generate.test.js +0 -66
  984. package/dist/test/test/tools/asset-generate.test.js.map +0 -1
  985. package/dist/test/test/tools/asset-search.test.d.ts +0 -2
  986. package/dist/test/test/tools/asset-search.test.d.ts.map +0 -1
  987. package/dist/test/test/tools/asset-search.test.js +0 -121
  988. package/dist/test/test/tools/asset-search.test.js.map +0 -1
  989. package/dist/test/test/tools/edit.test.d.ts +0 -2
  990. package/dist/test/test/tools/edit.test.d.ts.map +0 -1
  991. package/dist/test/test/tools/edit.test.js +0 -267
  992. package/dist/test/test/tools/edit.test.js.map +0 -1
  993. package/dist/test/test/tools/export.test.d.ts +0 -2
  994. package/dist/test/test/tools/export.test.d.ts.map +0 -1
  995. package/dist/test/test/tools/export.test.js +0 -174
  996. package/dist/test/test/tools/export.test.js.map +0 -1
  997. package/dist/test/test/tools/history.test.d.ts +0 -2
  998. package/dist/test/test/tools/history.test.d.ts.map +0 -1
  999. package/dist/test/test/tools/history.test.js +0 -29
  1000. package/dist/test/test/tools/history.test.js.map +0 -1
  1001. package/dist/test/test/tools/index.test.d.ts +0 -2
  1002. package/dist/test/test/tools/index.test.d.ts.map +0 -1
  1003. package/dist/test/test/tools/index.test.js +0 -55
  1004. package/dist/test/test/tools/index.test.js.map +0 -1
  1005. package/dist/test/test/tools/inspect.test.d.ts +0 -2
  1006. package/dist/test/test/tools/inspect.test.d.ts.map +0 -1
  1007. package/dist/test/test/tools/inspect.test.js +0 -62
  1008. package/dist/test/test/tools/inspect.test.js.map +0 -1
  1009. package/dist/test/test/tools/list.test.d.ts +0 -2
  1010. package/dist/test/test/tools/list.test.d.ts.map +0 -1
  1011. package/dist/test/test/tools/list.test.js +0 -23
  1012. package/dist/test/test/tools/list.test.js.map +0 -1
  1013. package/dist/test/test/tools/metrics.test.d.ts +0 -2
  1014. package/dist/test/test/tools/metrics.test.d.ts.map +0 -1
  1015. package/dist/test/test/tools/metrics.test.js +0 -29
  1016. package/dist/test/test/tools/metrics.test.js.map +0 -1
  1017. package/dist/test/test/tools/open-editor.test.d.ts +0 -2
  1018. package/dist/test/test/tools/open-editor.test.d.ts.map +0 -1
  1019. package/dist/test/test/tools/open-editor.test.js +0 -53
  1020. package/dist/test/test/tools/open-editor.test.js.map +0 -1
  1021. package/dist/test/test/tools/preview.test.d.ts +0 -2
  1022. package/dist/test/test/tools/preview.test.d.ts.map +0 -1
  1023. package/dist/test/test/tools/preview.test.js +0 -75
  1024. package/dist/test/test/tools/preview.test.js.map +0 -1
  1025. package/dist/test/test/tools/rename.test.d.ts +0 -2
  1026. package/dist/test/test/tools/rename.test.d.ts.map +0 -1
  1027. package/dist/test/test/tools/rename.test.js +0 -16
  1028. package/dist/test/test/tools/rename.test.js.map +0 -1
  1029. package/dist/test/test/tools/save.test.d.ts +0 -2
  1030. package/dist/test/test/tools/save.test.d.ts.map +0 -1
  1031. package/dist/test/test/tools/save.test.js +0 -137
  1032. package/dist/test/test/tools/save.test.js.map +0 -1
  1033. package/dist/test/test/viewer/broadcaster.test.d.ts +0 -2
  1034. package/dist/test/test/viewer/broadcaster.test.d.ts.map +0 -1
  1035. package/dist/test/test/viewer/broadcaster.test.js +0 -53
  1036. package/dist/test/test/viewer/broadcaster.test.js.map +0 -1
  1037. package/dist/test/test/viewer/resource-route.test.d.ts +0 -2
  1038. package/dist/test/test/viewer/resource-route.test.d.ts.map +0 -1
  1039. package/dist/test/test/viewer/resource-route.test.js +0 -70
  1040. package/dist/test/test/viewer/resource-route.test.js.map +0 -1
  1041. package/dist/test/test/viewer/router.test.d.ts +0 -2
  1042. package/dist/test/test/viewer/router.test.d.ts.map +0 -1
  1043. package/dist/test/test/viewer/router.test.js +0 -227
  1044. package/dist/test/test/viewer/router.test.js.map +0 -1
  1045. package/dist/test/test/viewer/session-mount.test.d.ts +0 -2
  1046. package/dist/test/test/viewer/session-mount.test.d.ts.map +0 -1
  1047. package/dist/test/test/viewer/session-mount.test.js +0 -52
  1048. package/dist/test/test/viewer/session-mount.test.js.map +0 -1
  1049. package/dist/test/test/viewer/url-builder.test.d.ts +0 -2
  1050. package/dist/test/test/viewer/url-builder.test.d.ts.map +0 -1
  1051. package/dist/test/test/viewer/url-builder.test.js +0 -98
  1052. package/dist/test/test/viewer/url-builder.test.js.map +0 -1
  1053. package/dist/test/test/workspace/hosted-stub.test.d.ts +0 -2
  1054. package/dist/test/test/workspace/hosted-stub.test.d.ts.map +0 -1
  1055. package/dist/test/test/workspace/hosted-stub.test.js +0 -30
  1056. package/dist/test/test/workspace/hosted-stub.test.js.map +0 -1
  1057. package/dist/test/test/workspace/in-memory.test.d.ts +0 -2
  1058. package/dist/test/test/workspace/in-memory.test.d.ts.map +0 -1
  1059. package/dist/test/test/workspace/in-memory.test.js +0 -4
  1060. package/dist/test/test/workspace/in-memory.test.js.map +0 -1
  1061. package/dist/test/test/workspace/node-fs.test.d.ts +0 -2
  1062. package/dist/test/test/workspace/node-fs.test.d.ts.map +0 -1
  1063. package/dist/test/test/workspace/node-fs.test.js +0 -20
  1064. package/dist/test/test/workspace/node-fs.test.js.map +0 -1
  1065. package/dist/test/test/workspace/s3.test.d.ts +0 -2
  1066. package/dist/test/test/workspace/s3.test.d.ts.map +0 -1
  1067. package/dist/test/test/workspace/s3.test.js +0 -153
  1068. package/dist/test/test/workspace/s3.test.js.map +0 -1
  1069. package/dist/test/test/workspace/scoped.test.d.ts +0 -2
  1070. package/dist/test/test/workspace/scoped.test.d.ts.map +0 -1
  1071. package/dist/test/test/workspace/scoped.test.js +0 -59
  1072. package/dist/test/test/workspace/scoped.test.js.map +0 -1
  1073. package/dist/test/test/workspace/shared-contract.d.ts +0 -3
  1074. package/dist/test/test/workspace/shared-contract.d.ts.map +0 -1
  1075. package/dist/test/test/workspace/shared-contract.js +0 -92
  1076. package/dist/test/test/workspace/shared-contract.js.map +0 -1
  1077. package/dist/test/tsconfig.test.tsbuildinfo +0 -1
  1078. package/dist/test/vitest.config.d.ts +0 -3
  1079. package/dist/test/vitest.config.d.ts.map +0 -1
  1080. package/dist/test/vitest.config.js +0 -8
  1081. package/dist/test/vitest.config.js.map +0 -1
  1082. package/dist/tools/metrics.d.ts +0 -11
  1083. package/dist/tools/metrics.d.ts.map +0 -1
  1084. package/dist/tools/metrics.js +0 -28
  1085. package/dist/tools/metrics.js.map +0 -1
@@ -1,4 +1,4 @@
1
- > This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
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) > [Rules](./rules.md) > [Overview](./rules/overview.md)
4
4
 
@@ -6,359 +6,319 @@
6
6
 
7
7
  Learn how CE.SDK's rules system enforces design constraints and controls editing permissions through the scopes mechanism.
8
8
 
9
- ![Rules overview showing locked and editable blocks with scope-controlled editing](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
10
-
11
9
  > **Reading time:** 5 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
- > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-rules-overview-browser)
17
- > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-rules-overview-browser)
18
- > - [Live demo](https://img.ly/docs/cesdk/examples/guides-rules-overview-browser/)
14
+ >
15
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-rules-overview-server-js)
16
+ >
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-rules-overview-server-js)
19
18
 
20
19
  In CE.SDK, "rules" refer to design constraints and guardrails that control what editing operations are permitted. The primary mechanism for enforcing rules is the **scopes system**—permission flags that enable you to create guided editing experiences maintaining brand consistency, ensuring design quality, and preventing unauthorized modifications.
21
20
 
22
- ```typescript file=@cesdk_web_examples/guides-rules-overview-browser/browser.ts reference-only
23
- import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
24
-
25
- import {
26
- BlurAssetSource,
27
- ColorPaletteAssetSource,
28
- CropPresetsAssetSource,
29
- DemoAssetSources,
30
- EffectsAssetSource,
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';
21
+ ```typescript file=@cesdk_web_examples/guides-rules-overview-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';
42
25
  import { calculatePyramidLayout } from './utils';
43
26
 
27
+ // Load environment variables
28
+ config();
29
+
44
30
  /**
45
- * CE.SDK Plugin: Rules Overview Guide
31
+ * CE.SDK Server Guide: Rules Overview
46
32
  *
47
- * Demonstrates the scopes system for enforcing editing rules and constraints.
33
+ * Demonstrates CE.SDK's scopes system for enforcing editing rules and constraints.
48
34
  * Shows global scopes, block-level scopes, and how they control editing operations
49
35
  * across different scope categories including layer, appearance, content, and lifecycle scopes.
50
36
  */
51
- class Example implements EditorPlugin {
52
- name = packageJson.name;
53
- version = packageJson.version;
54
-
55
- async initialize({ cesdk }: EditorPluginContext): Promise<void> {
56
- if (!cesdk) {
57
- throw new Error('CE.SDK instance is required for this plugin');
58
- }
59
- await cesdk.addPlugin(new DesignEditorConfig());
60
-
61
- // Add asset source plugins
62
- await cesdk.addPlugin(new BlurAssetSource());
63
- await cesdk.addPlugin(new ColorPaletteAssetSource());
64
- await cesdk.addPlugin(new CropPresetsAssetSource());
65
- await cesdk.addPlugin(
66
- new UploadAssetSources({ include: ['ly.img.image.upload'] })
67
- );
68
- await cesdk.addPlugin(
69
- new DemoAssetSources({
70
- include: [
71
- 'ly.img.templates.blank.*',
72
- 'ly.img.templates.presentation.*',
73
- 'ly.img.templates.print.*',
74
- 'ly.img.templates.social.*',
75
- 'ly.img.image.*'
76
- ]
77
- })
78
- );
79
- await cesdk.addPlugin(new EffectsAssetSource());
80
- await cesdk.addPlugin(new FiltersAssetSource());
81
- await cesdk.addPlugin(new PagePresetsAssetSource());
82
- await cesdk.addPlugin(new StickerAssetSource());
83
- await cesdk.addPlugin(new TextAssetSource());
84
- await cesdk.addPlugin(new TextComponentAssetSource());
85
- await cesdk.addPlugin(new TypefaceAssetSource());
86
- await cesdk.addPlugin(new VectorShapeAssetSource());
87
-
88
- await cesdk.actions.run('scene.create', {
89
- page: { width: 1600, height: 1000, unit: 'Pixel' }
90
- });
91
-
92
- const engine = cesdk.engine;
93
- const page = engine.block.findByType('page')[0];
94
-
95
- const pageWidth = engine.block.getWidth(page);
96
- const pageHeight = engine.block.getHeight(page);
97
-
98
- // Calculate grid layout using utility function
99
- const layout = calculatePyramidLayout(pageWidth, pageHeight);
100
-
101
- // Different sample images for each block
102
- const imageUris = [
103
- 'https://img.ly/static/ubq_samples/sample_1.jpg',
104
- 'https://img.ly/static/ubq_samples/sample_2.jpg',
105
- 'https://img.ly/static/ubq_samples/sample_3.jpg',
106
- 'https://img.ly/static/ubq_samples/sample_4.jpg',
107
- 'https://img.ly/static/ubq_samples/sample_5.jpg'
108
- ];
109
-
110
- // Set global scopes to Defer - this allows block-level control
111
- // Layer operations
112
- engine.editor.setGlobalScope('layer/move', 'Defer');
113
- engine.editor.setGlobalScope('layer/resize', 'Defer');
114
- engine.editor.setGlobalScope('layer/rotate', 'Defer');
115
- engine.editor.setGlobalScope('layer/flip', 'Defer');
116
- engine.editor.setGlobalScope('layer/crop', 'Defer');
117
- engine.editor.setGlobalScope('layer/opacity', 'Defer');
118
- engine.editor.setGlobalScope('layer/blendMode', 'Defer');
119
- engine.editor.setGlobalScope('layer/visibility', 'Defer');
120
- engine.editor.setGlobalScope('layer/clipping', 'Defer');
121
-
122
- // Appearance
123
- engine.editor.setGlobalScope('appearance/adjustments', 'Defer');
124
- engine.editor.setGlobalScope('appearance/filter', 'Defer');
125
- engine.editor.setGlobalScope('appearance/effect', 'Defer');
126
- engine.editor.setGlobalScope('appearance/blur', 'Defer');
127
- engine.editor.setGlobalScope('appearance/shadow', 'Defer');
128
-
129
- // Content editing
130
- engine.editor.setGlobalScope('fill/change', 'Defer');
131
- engine.editor.setGlobalScope('fill/changeType', 'Defer');
132
- engine.editor.setGlobalScope('stroke/change', 'Defer');
133
-
134
- // Lifecycle
135
- engine.editor.setGlobalScope('lifecycle/destroy', 'Defer');
136
- engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
137
- engine.editor.setGlobalScope('editor/add', 'Defer');
138
- engine.editor.setGlobalScope('editor/select', 'Defer');
139
-
140
- // Create 5 image blocks - one for each scope category plus fully enabled
141
- // Block 1: Layer Operations Disabled (top row)
142
- const layerBlock = await engine.block.addImage(imageUris[0], {
143
- size: { width: layout.blockWidth, height: layout.blockHeight }
144
- });
145
- const pos1 = layout.getBlockPosition(0);
146
- engine.block.setPositionX(layerBlock, pos1.x);
147
- engine.block.setPositionY(layerBlock, pos1.y);
148
- engine.block.appendChild(page, layerBlock);
149
- engine.block.setName(layerBlock, 'Layer Operations Disabled');
150
-
151
- // Block 2: Appearance Disabled (top row)
152
- const appearanceBlock = await engine.block.addImage(imageUris[1], {
153
- size: { width: layout.blockWidth, height: layout.blockHeight }
154
- });
155
- const pos2 = layout.getBlockPosition(1);
156
- engine.block.setPositionX(appearanceBlock, pos2.x);
157
- engine.block.setPositionY(appearanceBlock, pos2.y);
158
- engine.block.appendChild(page, appearanceBlock);
159
- engine.block.setName(appearanceBlock, 'Appearance Disabled');
160
-
161
- // Block 3: Content Editing Disabled (top row)
162
- const contentBlock = await engine.block.addImage(imageUris[2], {
163
- size: { width: layout.blockWidth, height: layout.blockHeight }
164
- });
165
- const pos3 = layout.getBlockPosition(2);
166
- engine.block.setPositionX(contentBlock, pos3.x);
167
- engine.block.setPositionY(contentBlock, pos3.y);
168
- engine.block.appendChild(page, contentBlock);
169
- engine.block.setName(contentBlock, 'Content Editing Disabled');
170
-
171
- // Block 4: All Scopes Disabled (bottom row) - fully locked
172
- const lockedBlock = await engine.block.addImage(imageUris[3], {
173
- size: { width: layout.blockWidth, height: layout.blockHeight }
174
- });
175
- const pos4 = layout.getBlockPosition(3);
176
- engine.block.setPositionX(lockedBlock, pos4.x);
177
- engine.block.setPositionY(lockedBlock, pos4.y);
178
- engine.block.appendChild(page, lockedBlock);
179
- engine.block.setName(lockedBlock, 'All Scopes Disabled');
180
-
181
- // Block 5: Fully Enabled - all scopes enabled (bottom row)
182
- const enabledBlock = await engine.block.addImage(imageUris[4], {
183
- size: { width: layout.blockWidth, height: layout.blockHeight }
184
- });
185
- const pos5 = layout.getBlockPosition(4);
186
- engine.block.setPositionX(enabledBlock, pos5.x);
187
- engine.block.setPositionY(enabledBlock, pos5.y);
188
- engine.block.appendChild(page, enabledBlock);
189
- engine.block.setName(enabledBlock, 'All Scopes Enabled');
190
-
191
- // Block 1: Disable all layer operations
192
- engine.block.setScopeEnabled(layerBlock, 'layer/move', false);
193
- engine.block.setScopeEnabled(layerBlock, 'layer/resize', false);
194
- engine.block.setScopeEnabled(layerBlock, 'layer/rotate', false);
195
- engine.block.setScopeEnabled(layerBlock, 'layer/flip', false);
196
- engine.block.setScopeEnabled(layerBlock, 'layer/crop', false);
197
- engine.block.setScopeEnabled(layerBlock, 'layer/opacity', false);
198
- engine.block.setScopeEnabled(layerBlock, 'layer/blendMode', false);
199
- engine.block.setScopeEnabled(layerBlock, 'layer/visibility', false);
200
- engine.block.setScopeEnabled(layerBlock, 'layer/clipping', false);
201
- // Keep other scopes enabled
202
- engine.block.setScopeEnabled(layerBlock, 'appearance/adjustments', true);
203
- engine.block.setScopeEnabled(layerBlock, 'appearance/filter', true);
204
- engine.block.setScopeEnabled(layerBlock, 'fill/change', true);
205
- engine.block.setScopeEnabled(layerBlock, 'lifecycle/destroy', true);
206
- engine.block.setScopeEnabled(layerBlock, 'lifecycle/duplicate', true);
207
- engine.block.setScopeEnabled(layerBlock, 'editor/select', true);
208
-
209
- // Block 2: Disable all appearance scopes
210
- engine.block.setScopeEnabled(
211
- appearanceBlock,
212
- 'appearance/adjustments',
213
- false
214
- );
215
- engine.block.setScopeEnabled(appearanceBlock, 'appearance/filter', false);
216
- engine.block.setScopeEnabled(appearanceBlock, 'appearance/effect', false);
217
- engine.block.setScopeEnabled(appearanceBlock, 'appearance/blur', false);
218
- engine.block.setScopeEnabled(appearanceBlock, 'appearance/shadow', false);
219
- // Keep other scopes enabled
220
- engine.block.setScopeEnabled(appearanceBlock, 'layer/move', true);
221
- engine.block.setScopeEnabled(appearanceBlock, 'layer/resize', true);
222
- engine.block.setScopeEnabled(appearanceBlock, 'layer/rotate', true);
223
- engine.block.setScopeEnabled(appearanceBlock, 'fill/change', true);
224
- engine.block.setScopeEnabled(appearanceBlock, 'lifecycle/destroy', true);
225
- engine.block.setScopeEnabled(appearanceBlock, 'lifecycle/duplicate', true);
226
- engine.block.setScopeEnabled(appearanceBlock, 'editor/select', true);
227
-
228
- // Block 3: Disable all content editing scopes
229
- engine.block.setScopeEnabled(contentBlock, 'fill/change', false);
230
- engine.block.setScopeEnabled(contentBlock, 'fill/changeType', false);
231
- engine.block.setScopeEnabled(contentBlock, 'stroke/change', false);
232
- // Keep other scopes enabled
233
- engine.block.setScopeEnabled(contentBlock, 'layer/move', true);
234
- engine.block.setScopeEnabled(contentBlock, 'layer/resize', true);
235
- engine.block.setScopeEnabled(contentBlock, 'layer/rotate', true);
236
- engine.block.setScopeEnabled(contentBlock, 'appearance/adjustments', true);
237
- engine.block.setScopeEnabled(contentBlock, 'appearance/filter', true);
238
- engine.block.setScopeEnabled(contentBlock, 'lifecycle/destroy', true);
239
- engine.block.setScopeEnabled(contentBlock, 'lifecycle/duplicate', true);
240
- engine.block.setScopeEnabled(contentBlock, 'editor/select', true);
241
-
242
- // Block 4: Disable all scopes (fully locked)
243
- engine.block.setScopeEnabled(lockedBlock, 'layer/move', false);
244
- engine.block.setScopeEnabled(lockedBlock, 'layer/resize', false);
245
- engine.block.setScopeEnabled(lockedBlock, 'layer/rotate', false);
246
- engine.block.setScopeEnabled(lockedBlock, 'layer/flip', false);
247
- engine.block.setScopeEnabled(lockedBlock, 'layer/crop', false);
248
- engine.block.setScopeEnabled(lockedBlock, 'layer/opacity', false);
249
- engine.block.setScopeEnabled(lockedBlock, 'layer/blendMode', false);
250
- engine.block.setScopeEnabled(lockedBlock, 'layer/visibility', false);
251
- engine.block.setScopeEnabled(lockedBlock, 'layer/clipping', false);
252
- engine.block.setScopeEnabled(lockedBlock, 'appearance/adjustments', false);
253
- engine.block.setScopeEnabled(lockedBlock, 'appearance/filter', false);
254
- engine.block.setScopeEnabled(lockedBlock, 'appearance/effect', false);
255
- engine.block.setScopeEnabled(lockedBlock, 'appearance/blur', false);
256
- engine.block.setScopeEnabled(lockedBlock, 'appearance/shadow', false);
257
- engine.block.setScopeEnabled(lockedBlock, 'fill/change', false);
258
- engine.block.setScopeEnabled(lockedBlock, 'fill/changeType', false);
259
- engine.block.setScopeEnabled(lockedBlock, 'stroke/change', false);
260
- engine.block.setScopeEnabled(lockedBlock, 'lifecycle/destroy', false);
261
- engine.block.setScopeEnabled(lockedBlock, 'lifecycle/duplicate', false);
262
- engine.block.setScopeEnabled(lockedBlock, 'editor/add', false);
263
- engine.block.setScopeEnabled(lockedBlock, 'editor/select', false);
264
-
265
- // Block 5: Enable all scopes (fully editable)
266
- engine.block.setScopeEnabled(enabledBlock, 'layer/move', true);
267
- engine.block.setScopeEnabled(enabledBlock, 'layer/resize', true);
268
- engine.block.setScopeEnabled(enabledBlock, 'layer/rotate', true);
269
- engine.block.setScopeEnabled(enabledBlock, 'layer/flip', true);
270
- engine.block.setScopeEnabled(enabledBlock, 'layer/crop', true);
271
- engine.block.setScopeEnabled(enabledBlock, 'layer/opacity', true);
272
- engine.block.setScopeEnabled(enabledBlock, 'layer/blendMode', true);
273
- engine.block.setScopeEnabled(enabledBlock, 'layer/visibility', true);
274
- engine.block.setScopeEnabled(enabledBlock, 'layer/clipping', true);
275
- engine.block.setScopeEnabled(enabledBlock, 'appearance/adjustments', true);
276
- engine.block.setScopeEnabled(enabledBlock, 'appearance/filter', true);
277
- engine.block.setScopeEnabled(enabledBlock, 'appearance/effect', true);
278
- engine.block.setScopeEnabled(enabledBlock, 'appearance/blur', true);
279
- engine.block.setScopeEnabled(enabledBlock, 'appearance/shadow', true);
280
- engine.block.setScopeEnabled(enabledBlock, 'fill/change', true);
281
- engine.block.setScopeEnabled(enabledBlock, 'fill/changeType', true);
282
- engine.block.setScopeEnabled(enabledBlock, 'stroke/change', true);
283
- engine.block.setScopeEnabled(enabledBlock, 'lifecycle/destroy', true);
284
- engine.block.setScopeEnabled(enabledBlock, 'lifecycle/duplicate', true);
285
- engine.block.setScopeEnabled(enabledBlock, 'editor/add', true);
286
- engine.block.setScopeEnabled(enabledBlock, 'editor/select', true);
287
-
288
- // Create text labels below each block
289
- const labels = [
290
- { text: 'Layer Operations', constraint: 'Disabled' },
291
- { text: 'Appearance', constraint: 'Disabled' },
292
- { text: 'Content Editing', constraint: 'Disabled' },
293
- { text: 'All Scopes', constraint: 'Disabled' },
294
- { text: 'All Scopes', constraint: 'Enabled' }
295
- ];
296
-
297
- for (let i = 0; i < labels.length; i++) {
298
- const labelPos = layout.getLabelPosition(i);
299
- const label = engine.block.create('text');
300
- engine.block.setWidth(label, layout.blockWidth);
301
- engine.block.setHeight(label, layout.labelHeight);
302
- engine.block.setPositionX(label, labelPos.x);
303
- engine.block.setPositionY(label, labelPos.y);
304
- engine.block.appendChild(page, label);
305
- engine.block.replaceText(
306
- label,
307
- `${labels[i].text}\n${labels[i].constraint}`
308
- );
309
- engine.block.setFloat(label, 'text/fontSize', 48);
310
- engine.block.setEnum(label, 'text/horizontalAlignment', 'Center');
311
- engine.block.setEnum(label, 'text/verticalAlignment', 'Top');
312
-
313
- // Lock the label so it can't be edited
314
- engine.block.setScopeEnabled(label, 'layer/move', false);
315
- engine.block.setScopeEnabled(label, 'layer/resize', false);
316
- engine.block.setScopeEnabled(label, 'lifecycle/destroy', false);
317
- engine.block.setScopeEnabled(label, 'editor/select', false);
318
- }
319
-
320
- // Check if operations are allowed for each block
321
- const canMoveLayer = engine.block.isAllowedByScope(
322
- layerBlock,
323
- 'layer/move'
324
- );
325
- const canMoveEnabled = engine.block.isAllowedByScope(
326
- enabledBlock,
327
- 'layer/move'
328
- );
329
- const canMoveLocked = engine.block.isAllowedByScope(
330
- lockedBlock,
331
- 'layer/move'
37
+
38
+ // Initialize CE.SDK engine in headless mode
39
+ const engine = await CreativeEngine.init({
40
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
41
+ });
42
+
43
+ try {
44
+ // Create a design scene
45
+ engine.scene.create('VerticalStack', {
46
+ page: { size: { width: 1600, height: 1000 } },
47
+ });
48
+
49
+ const page = engine.block.findByType('page')[0];
50
+ if (!page) {
51
+ throw new Error('No page found');
52
+ }
53
+
54
+ const pageWidth = engine.block.getWidth(page);
55
+ const pageHeight = engine.block.getHeight(page);
56
+
57
+ // Calculate grid layout using utility function
58
+ const layout = calculatePyramidLayout(pageWidth, pageHeight);
59
+
60
+ // Different sample images for each block
61
+ const imageUris = [
62
+ 'https://img.ly/static/ubq_samples/sample_1.jpg',
63
+ 'https://img.ly/static/ubq_samples/sample_2.jpg',
64
+ 'https://img.ly/static/ubq_samples/sample_3.jpg',
65
+ 'https://img.ly/static/ubq_samples/sample_4.jpg',
66
+ 'https://img.ly/static/ubq_samples/sample_5.jpg',
67
+ ];
68
+
69
+ // Set global scopes to Defer - this allows block-level control
70
+ // Layer operations
71
+ engine.editor.setGlobalScope('layer/move', 'Defer');
72
+ engine.editor.setGlobalScope('layer/resize', 'Defer');
73
+ engine.editor.setGlobalScope('layer/rotate', 'Defer');
74
+ engine.editor.setGlobalScope('layer/flip', 'Defer');
75
+ engine.editor.setGlobalScope('layer/crop', 'Defer');
76
+ engine.editor.setGlobalScope('layer/opacity', 'Defer');
77
+ engine.editor.setGlobalScope('layer/blendMode', 'Defer');
78
+ engine.editor.setGlobalScope('layer/visibility', 'Defer');
79
+ engine.editor.setGlobalScope('layer/clipping', 'Defer');
80
+
81
+ // Appearance
82
+ engine.editor.setGlobalScope('appearance/adjustments', 'Defer');
83
+ engine.editor.setGlobalScope('appearance/filter', 'Defer');
84
+ engine.editor.setGlobalScope('appearance/effect', 'Defer');
85
+ engine.editor.setGlobalScope('appearance/blur', 'Defer');
86
+ engine.editor.setGlobalScope('appearance/shadow', 'Defer');
87
+
88
+ // Content editing
89
+ engine.editor.setGlobalScope('fill/change', 'Defer');
90
+ engine.editor.setGlobalScope('fill/changeType', 'Defer');
91
+ engine.editor.setGlobalScope('stroke/change', 'Defer');
92
+
93
+ // Lifecycle
94
+ engine.editor.setGlobalScope('lifecycle/destroy', 'Defer');
95
+ engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
96
+ engine.editor.setGlobalScope('editor/add', 'Defer');
97
+ engine.editor.setGlobalScope('editor/select', 'Defer');
98
+
99
+ // Create 5 image blocks - one for each scope category plus fully enabled
100
+ // Block 1: Layer Operations Disabled (top row)
101
+ const layerBlock = await engine.block.addImage(imageUris[0], {
102
+ size: { width: layout.blockWidth, height: layout.blockHeight },
103
+ });
104
+ const pos1 = layout.getBlockPosition(0);
105
+ engine.block.setPositionX(layerBlock, pos1.x);
106
+ engine.block.setPositionY(layerBlock, pos1.y);
107
+ engine.block.appendChild(page, layerBlock);
108
+ engine.block.setName(layerBlock, 'Layer Operations Disabled');
109
+
110
+ // Block 2: Appearance Disabled (top row)
111
+ const appearanceBlock = await engine.block.addImage(imageUris[1], {
112
+ size: { width: layout.blockWidth, height: layout.blockHeight },
113
+ });
114
+ const pos2 = layout.getBlockPosition(1);
115
+ engine.block.setPositionX(appearanceBlock, pos2.x);
116
+ engine.block.setPositionY(appearanceBlock, pos2.y);
117
+ engine.block.appendChild(page, appearanceBlock);
118
+ engine.block.setName(appearanceBlock, 'Appearance Disabled');
119
+
120
+ // Block 3: Content Editing Disabled (top row)
121
+ const contentBlock = await engine.block.addImage(imageUris[2], {
122
+ size: { width: layout.blockWidth, height: layout.blockHeight },
123
+ });
124
+ const pos3 = layout.getBlockPosition(2);
125
+ engine.block.setPositionX(contentBlock, pos3.x);
126
+ engine.block.setPositionY(contentBlock, pos3.y);
127
+ engine.block.appendChild(page, contentBlock);
128
+ engine.block.setName(contentBlock, 'Content Editing Disabled');
129
+
130
+ // Block 4: All Scopes Disabled (bottom row) - fully locked
131
+ const lockedBlock = await engine.block.addImage(imageUris[3], {
132
+ size: { width: layout.blockWidth, height: layout.blockHeight },
133
+ });
134
+ const pos4 = layout.getBlockPosition(3);
135
+ engine.block.setPositionX(lockedBlock, pos4.x);
136
+ engine.block.setPositionY(lockedBlock, pos4.y);
137
+ engine.block.appendChild(page, lockedBlock);
138
+ engine.block.setName(lockedBlock, 'All Scopes Disabled');
139
+
140
+ // Block 5: Fully Enabled - all scopes enabled (bottom row)
141
+ const enabledBlock = await engine.block.addImage(imageUris[4], {
142
+ size: { width: layout.blockWidth, height: layout.blockHeight },
143
+ });
144
+ const pos5 = layout.getBlockPosition(4);
145
+ engine.block.setPositionX(enabledBlock, pos5.x);
146
+ engine.block.setPositionY(enabledBlock, pos5.y);
147
+ engine.block.appendChild(page, enabledBlock);
148
+ engine.block.setName(enabledBlock, 'All Scopes Enabled');
149
+
150
+ // Block 1: Disable all layer operations
151
+ engine.block.setScopeEnabled(layerBlock, 'layer/move', false);
152
+ engine.block.setScopeEnabled(layerBlock, 'layer/resize', false);
153
+ engine.block.setScopeEnabled(layerBlock, 'layer/rotate', false);
154
+ engine.block.setScopeEnabled(layerBlock, 'layer/flip', false);
155
+ engine.block.setScopeEnabled(layerBlock, 'layer/crop', false);
156
+ engine.block.setScopeEnabled(layerBlock, 'layer/opacity', false);
157
+ engine.block.setScopeEnabled(layerBlock, 'layer/blendMode', false);
158
+ engine.block.setScopeEnabled(layerBlock, 'layer/visibility', false);
159
+ engine.block.setScopeEnabled(layerBlock, 'layer/clipping', false);
160
+ // Keep other scopes enabled
161
+ engine.block.setScopeEnabled(layerBlock, 'appearance/adjustments', true);
162
+ engine.block.setScopeEnabled(layerBlock, 'appearance/filter', true);
163
+ engine.block.setScopeEnabled(layerBlock, 'fill/change', true);
164
+ engine.block.setScopeEnabled(layerBlock, 'lifecycle/destroy', true);
165
+ engine.block.setScopeEnabled(layerBlock, 'lifecycle/duplicate', true);
166
+ engine.block.setScopeEnabled(layerBlock, 'editor/select', true);
167
+
168
+ // Block 2: Disable all appearance scopes
169
+ engine.block.setScopeEnabled(
170
+ appearanceBlock,
171
+ 'appearance/adjustments',
172
+ false
173
+ );
174
+ engine.block.setScopeEnabled(appearanceBlock, 'appearance/filter', false);
175
+ engine.block.setScopeEnabled(appearanceBlock, 'appearance/effect', false);
176
+ engine.block.setScopeEnabled(appearanceBlock, 'appearance/blur', false);
177
+ engine.block.setScopeEnabled(appearanceBlock, 'appearance/shadow', false);
178
+ // Keep other scopes enabled
179
+ engine.block.setScopeEnabled(appearanceBlock, 'layer/move', true);
180
+ engine.block.setScopeEnabled(appearanceBlock, 'layer/resize', true);
181
+ engine.block.setScopeEnabled(appearanceBlock, 'layer/rotate', true);
182
+ engine.block.setScopeEnabled(appearanceBlock, 'fill/change', true);
183
+ engine.block.setScopeEnabled(appearanceBlock, 'lifecycle/destroy', true);
184
+ engine.block.setScopeEnabled(appearanceBlock, 'lifecycle/duplicate', true);
185
+ engine.block.setScopeEnabled(appearanceBlock, 'editor/select', true);
186
+
187
+ // Block 3: Disable all content editing scopes
188
+ engine.block.setScopeEnabled(contentBlock, 'fill/change', false);
189
+ engine.block.setScopeEnabled(contentBlock, 'fill/changeType', false);
190
+ engine.block.setScopeEnabled(contentBlock, 'stroke/change', false);
191
+ // Keep other scopes enabled
192
+ engine.block.setScopeEnabled(contentBlock, 'layer/move', true);
193
+ engine.block.setScopeEnabled(contentBlock, 'layer/resize', true);
194
+ engine.block.setScopeEnabled(contentBlock, 'layer/rotate', true);
195
+ engine.block.setScopeEnabled(contentBlock, 'appearance/adjustments', true);
196
+ engine.block.setScopeEnabled(contentBlock, 'appearance/filter', true);
197
+ engine.block.setScopeEnabled(contentBlock, 'lifecycle/destroy', true);
198
+ engine.block.setScopeEnabled(contentBlock, 'lifecycle/duplicate', true);
199
+ engine.block.setScopeEnabled(contentBlock, 'editor/select', true);
200
+
201
+ // Block 4: Disable all scopes (fully locked)
202
+ engine.block.setScopeEnabled(lockedBlock, 'layer/move', false);
203
+ engine.block.setScopeEnabled(lockedBlock, 'layer/resize', false);
204
+ engine.block.setScopeEnabled(lockedBlock, 'layer/rotate', false);
205
+ engine.block.setScopeEnabled(lockedBlock, 'layer/flip', false);
206
+ engine.block.setScopeEnabled(lockedBlock, 'layer/crop', false);
207
+ engine.block.setScopeEnabled(lockedBlock, 'layer/opacity', false);
208
+ engine.block.setScopeEnabled(lockedBlock, 'layer/blendMode', false);
209
+ engine.block.setScopeEnabled(lockedBlock, 'layer/visibility', false);
210
+ engine.block.setScopeEnabled(lockedBlock, 'layer/clipping', false);
211
+ engine.block.setScopeEnabled(lockedBlock, 'appearance/adjustments', false);
212
+ engine.block.setScopeEnabled(lockedBlock, 'appearance/filter', false);
213
+ engine.block.setScopeEnabled(lockedBlock, 'appearance/effect', false);
214
+ engine.block.setScopeEnabled(lockedBlock, 'appearance/blur', false);
215
+ engine.block.setScopeEnabled(lockedBlock, 'appearance/shadow', false);
216
+ engine.block.setScopeEnabled(lockedBlock, 'fill/change', false);
217
+ engine.block.setScopeEnabled(lockedBlock, 'fill/changeType', false);
218
+ engine.block.setScopeEnabled(lockedBlock, 'stroke/change', false);
219
+ engine.block.setScopeEnabled(lockedBlock, 'lifecycle/destroy', false);
220
+ engine.block.setScopeEnabled(lockedBlock, 'lifecycle/duplicate', false);
221
+ engine.block.setScopeEnabled(lockedBlock, 'editor/add', false);
222
+ engine.block.setScopeEnabled(lockedBlock, 'editor/select', false);
223
+
224
+ // Block 5: Enable all scopes (fully editable)
225
+ engine.block.setScopeEnabled(enabledBlock, 'layer/move', true);
226
+ engine.block.setScopeEnabled(enabledBlock, 'layer/resize', true);
227
+ engine.block.setScopeEnabled(enabledBlock, 'layer/rotate', true);
228
+ engine.block.setScopeEnabled(enabledBlock, 'layer/flip', true);
229
+ engine.block.setScopeEnabled(enabledBlock, 'layer/crop', true);
230
+ engine.block.setScopeEnabled(enabledBlock, 'layer/opacity', true);
231
+ engine.block.setScopeEnabled(enabledBlock, 'layer/blendMode', true);
232
+ engine.block.setScopeEnabled(enabledBlock, 'layer/visibility', true);
233
+ engine.block.setScopeEnabled(enabledBlock, 'layer/clipping', true);
234
+ engine.block.setScopeEnabled(enabledBlock, 'appearance/adjustments', true);
235
+ engine.block.setScopeEnabled(enabledBlock, 'appearance/filter', true);
236
+ engine.block.setScopeEnabled(enabledBlock, 'appearance/effect', true);
237
+ engine.block.setScopeEnabled(enabledBlock, 'appearance/blur', true);
238
+ engine.block.setScopeEnabled(enabledBlock, 'appearance/shadow', true);
239
+ engine.block.setScopeEnabled(enabledBlock, 'fill/change', true);
240
+ engine.block.setScopeEnabled(enabledBlock, 'fill/changeType', true);
241
+ engine.block.setScopeEnabled(enabledBlock, 'stroke/change', true);
242
+ engine.block.setScopeEnabled(enabledBlock, 'lifecycle/destroy', true);
243
+ engine.block.setScopeEnabled(enabledBlock, 'lifecycle/duplicate', true);
244
+ engine.block.setScopeEnabled(enabledBlock, 'editor/add', true);
245
+ engine.block.setScopeEnabled(enabledBlock, 'editor/select', true);
246
+
247
+ // Create text labels below each block
248
+ const labels = [
249
+ { text: 'Layer Operations', constraint: 'Disabled' },
250
+ { text: 'Appearance', constraint: 'Disabled' },
251
+ { text: 'Content Editing', constraint: 'Disabled' },
252
+ { text: 'All Scopes', constraint: 'Disabled' },
253
+ { text: 'All Scopes', constraint: 'Enabled' },
254
+ ];
255
+
256
+ for (let i = 0; i < labels.length; i++) {
257
+ const labelPos = layout.getLabelPosition(i);
258
+ const label = engine.block.create('text');
259
+ engine.block.setWidth(label, layout.blockWidth);
260
+ engine.block.setHeight(label, layout.labelHeight);
261
+ engine.block.setPositionX(label, labelPos.x);
262
+ engine.block.setPositionY(label, labelPos.y);
263
+ engine.block.appendChild(page, label);
264
+ engine.block.replaceText(
265
+ label,
266
+ `${labels[i].text}\n${labels[i].constraint}`
332
267
  );
268
+ engine.block.setFloat(label, 'text/fontSize', 48);
269
+ engine.block.setEnum(label, 'text/horizontalAlignment', 'Center');
270
+ engine.block.setEnum(label, 'text/verticalAlignment', 'Top');
271
+
272
+ // Lock the label so it can't be edited
273
+ engine.block.setScopeEnabled(label, 'layer/move', false);
274
+ engine.block.setScopeEnabled(label, 'layer/resize', false);
275
+ engine.block.setScopeEnabled(label, 'lifecycle/destroy', false);
276
+ engine.block.setScopeEnabled(label, 'editor/select', false);
277
+ }
333
278
 
334
- console.log(`Layer block - can move: ${canMoveLayer}`); // false
335
- console.log(`Enabled block - can move: ${canMoveEnabled}`); // true
336
- console.log(`Locked block - can move: ${canMoveLocked}`); // false
337
-
338
- // Demonstrate global Deny - would block all operations regardless of block settings
339
- // Example: engine.editor.setGlobalScope('layer/flip', 'Deny');
340
- // This would prevent flipping on ALL blocks, even the fully enabled one
341
-
342
- // Zoom to fit the page in the viewport
343
- await engine.scene.zoomToBlock(page, {
344
- padding: {
345
- left: 40,
346
- top: 40,
347
- right: 40,
348
- bottom: 40
349
- }
350
- });
279
+ // Check if operations are allowed for each block
280
+ const canMoveLayer = engine.block.isAllowedByScope(layerBlock, 'layer/move');
281
+ const canMoveEnabled = engine.block.isAllowedByScope(
282
+ enabledBlock,
283
+ 'layer/move'
284
+ );
285
+ const canMoveLocked = engine.block.isAllowedByScope(
286
+ lockedBlock,
287
+ 'layer/move'
288
+ );
289
+
290
+ console.log(`Layer block - can move: ${canMoveLayer}`); // false
291
+ console.log(`Enabled block - can move: ${canMoveEnabled}`); // true
292
+ console.log(`Locked block - can move: ${canMoveLocked}`); // false
293
+
294
+ // Demonstrate global Deny - would block all operations regardless of block settings
295
+ // Example: engine.editor.setGlobalScope('layer/flip', 'Deny');
296
+ // This would prevent flipping on ALL blocks, even the fully enabled one
297
+
298
+ // Create output directory
299
+ const outputDir = './output';
300
+ if (!existsSync(outputDir)) {
301
+ mkdirSync(outputDir, { recursive: true });
351
302
  }
352
- }
353
303
 
354
- export default Example;
304
+ // Export the result as PNG
305
+ const blob = await engine.block.export(page, { mimeType: 'image/png' });
306
+ const buffer = Buffer.from(await blob.arrayBuffer());
307
+ writeFileSync(`${outputDir}/rules-overview-result.png`, buffer);
308
+
309
+ console.log('\n✓ Exported result to output/rules-overview-result.png');
310
+ console.log('\n=== Rules Overview Demo Complete ===');
311
+ } finally {
312
+ // Always dispose the engine to free resources
313
+ engine.dispose();
314
+ }
355
315
  ```
356
316
 
357
- This guide covers the scopes system conceptually, including global vs block-level scopes, available scope categories, and how scopes integrate with the UI. For detailed implementation of specific use cases, see the Next Steps section.
317
+ This guide covers the scopes system conceptually, including global vs block-level scopes, available scope categories, and how scopes affect operations. For detailed implementation of specific use cases, see the Next Steps section.
358
318
 
359
319
  ## What Are Scopes
360
320
 
361
- Scopes are permission flags that control specific editing capabilities. Each scope maps to a particular operation category. When a scope is denied for a block, the corresponding editing controls become unavailable in the UI.
321
+ Scopes are permission flags that control specific editing capabilities. Each scope maps to a particular operation category.
362
322
 
363
323
  CE.SDK organizes scopes into four main categories:
364
324
 
@@ -393,35 +353,35 @@ Global scopes set editor-wide defaults that apply to all blocks. Use `engine.edi
393
353
  - `'Defer'` — Defer to each block's individual scope setting
394
354
 
395
355
  ```typescript highlight-global-scope
396
- // Set global scopes to Defer - this allows block-level control
397
- // Layer operations
398
- engine.editor.setGlobalScope('layer/move', 'Defer');
399
- engine.editor.setGlobalScope('layer/resize', 'Defer');
400
- engine.editor.setGlobalScope('layer/rotate', 'Defer');
401
- engine.editor.setGlobalScope('layer/flip', 'Defer');
402
- engine.editor.setGlobalScope('layer/crop', 'Defer');
403
- engine.editor.setGlobalScope('layer/opacity', 'Defer');
404
- engine.editor.setGlobalScope('layer/blendMode', 'Defer');
405
- engine.editor.setGlobalScope('layer/visibility', 'Defer');
406
- engine.editor.setGlobalScope('layer/clipping', 'Defer');
407
-
408
- // Appearance
409
- engine.editor.setGlobalScope('appearance/adjustments', 'Defer');
410
- engine.editor.setGlobalScope('appearance/filter', 'Defer');
411
- engine.editor.setGlobalScope('appearance/effect', 'Defer');
412
- engine.editor.setGlobalScope('appearance/blur', 'Defer');
413
- engine.editor.setGlobalScope('appearance/shadow', 'Defer');
414
-
415
- // Content editing
416
- engine.editor.setGlobalScope('fill/change', 'Defer');
417
- engine.editor.setGlobalScope('fill/changeType', 'Defer');
418
- engine.editor.setGlobalScope('stroke/change', 'Defer');
419
-
420
- // Lifecycle
421
- engine.editor.setGlobalScope('lifecycle/destroy', 'Defer');
422
- engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
423
- engine.editor.setGlobalScope('editor/add', 'Defer');
424
- engine.editor.setGlobalScope('editor/select', 'Defer');
356
+ // Set global scopes to Defer - this allows block-level control
357
+ // Layer operations
358
+ engine.editor.setGlobalScope('layer/move', 'Defer');
359
+ engine.editor.setGlobalScope('layer/resize', 'Defer');
360
+ engine.editor.setGlobalScope('layer/rotate', 'Defer');
361
+ engine.editor.setGlobalScope('layer/flip', 'Defer');
362
+ engine.editor.setGlobalScope('layer/crop', 'Defer');
363
+ engine.editor.setGlobalScope('layer/opacity', 'Defer');
364
+ engine.editor.setGlobalScope('layer/blendMode', 'Defer');
365
+ engine.editor.setGlobalScope('layer/visibility', 'Defer');
366
+ engine.editor.setGlobalScope('layer/clipping', 'Defer');
367
+
368
+ // Appearance
369
+ engine.editor.setGlobalScope('appearance/adjustments', 'Defer');
370
+ engine.editor.setGlobalScope('appearance/filter', 'Defer');
371
+ engine.editor.setGlobalScope('appearance/effect', 'Defer');
372
+ engine.editor.setGlobalScope('appearance/blur', 'Defer');
373
+ engine.editor.setGlobalScope('appearance/shadow', 'Defer');
374
+
375
+ // Content editing
376
+ engine.editor.setGlobalScope('fill/change', 'Defer');
377
+ engine.editor.setGlobalScope('fill/changeType', 'Defer');
378
+ engine.editor.setGlobalScope('stroke/change', 'Defer');
379
+
380
+ // Lifecycle
381
+ engine.editor.setGlobalScope('lifecycle/destroy', 'Defer');
382
+ engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
383
+ engine.editor.setGlobalScope('editor/add', 'Defer');
384
+ engine.editor.setGlobalScope('editor/select', 'Defer');
425
385
  ```
426
386
 
427
387
  When set to `'Defer'`, the global scope defers control to block-level settings, enabling fine-grained permissions per element.
@@ -463,17 +423,20 @@ This creates differentiated editing experiences — some elements remain fully e
463
423
  Before performing operations, verify if they're allowed using `engine.block.isAllowedByScope()`. This method considers both global and block-level settings:
464
424
 
465
425
  ```typescript highlight-check-scope
466
- // Check if operations are allowed for each block
467
- const canMoveLayer = engine.block.isAllowedByScope(layerBlock, 'layer/move');
468
- const canMoveEnabled = engine.block.isAllowedByScope(
469
- enabledBlock,
470
- 'layer/move'
471
- );
472
- const canMoveLocked = engine.block.isAllowedByScope(lockedBlock, 'layer/move');
473
-
474
- console.log(`Layer block - can move: ${canMoveLayer}`); // false
475
- console.log(`Enabled block - can move: ${canMoveEnabled}`); // true
476
- console.log(`Locked block - can move: ${canMoveLocked}`); // false
426
+ // Check if operations are allowed for each block
427
+ const canMoveLayer = engine.block.isAllowedByScope(layerBlock, 'layer/move');
428
+ const canMoveEnabled = engine.block.isAllowedByScope(
429
+ enabledBlock,
430
+ 'layer/move'
431
+ );
432
+ const canMoveLocked = engine.block.isAllowedByScope(
433
+ lockedBlock,
434
+ 'layer/move'
435
+ );
436
+
437
+ console.log(`Layer block - can move: ${canMoveLayer}`); // false
438
+ console.log(`Enabled block - can move: ${canMoveEnabled}`); // true
439
+ console.log(`Locked block - can move: ${canMoveLocked}`); // false
477
440
  ```
478
441
 
479
442
  When the global scope is set to `'Deny'`, operations are blocked regardless of block-level settings:
@@ -496,19 +459,21 @@ For content appropriateness checking, see the [Moderate Content](./rules/moderat
496
459
 
497
460
  ## API Reference
498
461
 
499
- | Method | Category | Purpose |
500
- | -------------------------------------------------- | -------- | --------------------------------------- |
501
- | `engine.editor.setGlobalScope(scope, value)` | Global | Set editor-wide scope permission |
502
- | `engine.editor.getGlobalScope(scope)` | Global | Get current global scope value |
503
- | `engine.block.setScopeEnabled(id, scope, enabled)` | Block | Enable/disable scope for specific block |
504
- | `engine.block.isScopeEnabled(id, scope)` | Block | Check if scope is enabled for block |
505
- | `engine.block.isAllowedByScope(id, scope)` | Block | Check if operation is allowed |
462
+ | Method | Category | Purpose |
463
+ |--------|----------|---------|
464
+ | `engine.editor.setGlobalScope(scope, value)` | Global | Set editor-wide scope permission |
465
+ | `engine.editor.getGlobalScope(scope)` | Global | Get current global scope value |
466
+ | `engine.block.setScopeEnabled(id, scope, enabled)` | Block | Enable/disable scope for specific block |
467
+ | `engine.block.isScopeEnabled(id, scope)` | Block | Check if scope is enabled for block |
468
+ | `engine.block.isAllowedByScope(id, scope)` | Block | Check if operation is allowed |
469
+
470
+
506
471
 
507
472
  ---
508
473
 
509
474
  ## More Resources
510
475
 
511
- - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
476
+ - **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
512
477
  - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
513
- - **[Web Documentation](./js.md)** - Interactive documentation with examples
514
- - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
478
+ - **[Web Documentation](./node.md)** - Interactive documentation with examples
479
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support