@imgly/codesign-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +16 -0
- package/README.md +158 -0
- package/assets/docs/api/SKILL.md +49 -0
- package/assets/docs/api/index.d.ts +10518 -0
- package/assets/docs/guide/SKILL.md +142 -0
- package/assets/docs/guide/actions.md +1038 -0
- package/assets/docs/guide/animation/create/base.md +467 -0
- package/assets/docs/guide/animation/create/text.md +453 -0
- package/assets/docs/guide/animation/create.md +558 -0
- package/assets/docs/guide/animation/edit.md +501 -0
- package/assets/docs/guide/animation/overview.md +22 -0
- package/assets/docs/guide/animation/types.md +430 -0
- package/assets/docs/guide/animation.md +23 -0
- package/assets/docs/guide/api/AssetAPI.md +602 -0
- package/assets/docs/guide/api/BlockAPI.md +6152 -0
- package/assets/docs/guide/api/CreativeEngine.md +180 -0
- package/assets/docs/guide/api/EditorAPI.md +1261 -0
- package/assets/docs/guide/api/EventAPI.md +25 -0
- package/assets/docs/guide/api/SceneAPI.md +729 -0
- package/assets/docs/guide/api/VariableAPI.md +59 -0
- package/assets/docs/guide/api/types.md +71 -0
- package/assets/docs/guide/api-reference/overview.md +20 -0
- package/assets/docs/guide/automation/auto-resize.md +412 -0
- package/assets/docs/guide/automation/batch-processing.md +474 -0
- package/assets/docs/guide/automation/data-merge.md +406 -0
- package/assets/docs/guide/automation/design-generation.md +107 -0
- package/assets/docs/guide/automation/overview.md +16 -0
- package/assets/docs/guide/automation.md +24 -0
- package/assets/docs/guide/browser-support.md +38 -0
- package/assets/docs/guide/capabilities.md +18 -0
- package/assets/docs/guide/colors/adjust.md +551 -0
- package/assets/docs/guide/colors/apply.md +349 -0
- package/assets/docs/guide/colors/basics.md +440 -0
- package/assets/docs/guide/colors/conversion.md +504 -0
- package/assets/docs/guide/colors/create-color-palette.md +426 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +577 -0
- package/assets/docs/guide/colors/for-print/spot.md +751 -0
- package/assets/docs/guide/colors/for-print.md +21 -0
- package/assets/docs/guide/colors/for-screen/p3.md +60 -0
- package/assets/docs/guide/colors/for-screen/srgb.md +463 -0
- package/assets/docs/guide/colors/for-screen.md +21 -0
- package/assets/docs/guide/colors/overview.md +20 -0
- package/assets/docs/guide/colors/replace.md +535 -0
- package/assets/docs/guide/colors.md +28 -0
- package/assets/docs/guide/compatibility.md +27 -0
- package/assets/docs/guide/concepts/architecture.md +99 -0
- package/assets/docs/guide/concepts/assets.md +360 -0
- package/assets/docs/guide/concepts/blocks.md +750 -0
- package/assets/docs/guide/concepts/buffers.md +546 -0
- package/assets/docs/guide/concepts/design-units.md +333 -0
- package/assets/docs/guide/concepts/edit-modes.md +431 -0
- package/assets/docs/guide/concepts/editing-workflow.md +303 -0
- package/assets/docs/guide/concepts/events.md +466 -0
- package/assets/docs/guide/concepts/headless-mode/browser.md +291 -0
- package/assets/docs/guide/concepts/pages.md +396 -0
- package/assets/docs/guide/concepts/resources.md +496 -0
- package/assets/docs/guide/concepts/scenes.md +443 -0
- package/assets/docs/guide/concepts/templating.md +194 -0
- package/assets/docs/guide/concepts/terminology.md +296 -0
- package/assets/docs/guide/concepts/undo-and-history.md +461 -0
- package/assets/docs/guide/concepts.md +38 -0
- package/assets/docs/guide/configuration.md +469 -0
- package/assets/docs/guide/conversion/overview.md +22 -0
- package/assets/docs/guide/conversion/to-base64.md +234 -0
- package/assets/docs/guide/conversion/to-pdf.md +616 -0
- package/assets/docs/guide/conversion/to-png.md +290 -0
- package/assets/docs/guide/conversion.md +23 -0
- package/assets/docs/guide/create-audio/audio/add-music.md +430 -0
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +664 -0
- package/assets/docs/guide/create-audio/audio/loop.md +370 -0
- package/assets/docs/guide/create-audio/audio.md +336 -0
- package/assets/docs/guide/create-composition/add-background.md +395 -0
- package/assets/docs/guide/create-composition/blend-modes.md +372 -0
- package/assets/docs/guide/create-composition/collage.md +432 -0
- package/assets/docs/guide/create-composition/group-and-ungroup.md +388 -0
- package/assets/docs/guide/create-composition/layer-management.md +503 -0
- package/assets/docs/guide/create-composition/layout.md +396 -0
- package/assets/docs/guide/create-composition/lock-design.md +362 -0
- package/assets/docs/guide/create-composition/multi-page.md +204 -0
- package/assets/docs/guide/create-composition/overview.md +18 -0
- package/assets/docs/guide/create-composition/programmatic.md +593 -0
- package/assets/docs/guide/create-composition.md +30 -0
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +688 -0
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +600 -0
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +647 -0
- package/assets/docs/guide/create-templates/add-dynamic-content.md +307 -0
- package/assets/docs/guide/create-templates/add-to-template-library.md +297 -0
- package/assets/docs/guide/create-templates/edit-or-remove.md +441 -0
- package/assets/docs/guide/create-templates/from-scratch.md +558 -0
- package/assets/docs/guide/create-templates/import/from-scene-file.md +440 -0
- package/assets/docs/guide/create-templates/import.md +244 -0
- package/assets/docs/guide/create-templates/lock.md +325 -0
- package/assets/docs/guide/create-templates/overview.md +16 -0
- package/assets/docs/guide/create-templates.md +32 -0
- package/assets/docs/guide/create-video/audio/adjust-speed.md +302 -0
- package/assets/docs/guide/create-video/audio/adjust-volume.md +346 -0
- package/assets/docs/guide/create-video/control.md +285 -0
- package/assets/docs/guide/create-video/limitations.md +396 -0
- package/assets/docs/guide/create-video/overview.md +224 -0
- package/assets/docs/guide/create-video/timeline-editor.md +622 -0
- package/assets/docs/guide/create-video/update-caption-presets.md +676 -0
- package/assets/docs/guide/create-video.md +32 -0
- package/assets/docs/guide/edit-image/add-watermark.md +497 -0
- package/assets/docs/guide/edit-image/overview.md +22 -0
- package/assets/docs/guide/edit-image/remove-bg.md +420 -0
- package/assets/docs/guide/edit-image/replace-colors.md +680 -0
- package/assets/docs/guide/edit-image/transform/crop.md +523 -0
- package/assets/docs/guide/edit-image/transform/move.md +279 -0
- package/assets/docs/guide/edit-image/transform/resize.md +301 -0
- package/assets/docs/guide/edit-image/transform/rotate.md +408 -0
- package/assets/docs/guide/edit-image/transform/scale.md +278 -0
- package/assets/docs/guide/edit-image/transform.md +24 -0
- package/assets/docs/guide/edit-image/vectorize.md +204 -0
- package/assets/docs/guide/edit-image.md +25 -0
- package/assets/docs/guide/edit-video/add-captions.md +589 -0
- package/assets/docs/guide/edit-video/add-watermark.md +429 -0
- package/assets/docs/guide/edit-video/join-and-arrange.md +540 -0
- package/assets/docs/guide/edit-video/redaction.md +544 -0
- package/assets/docs/guide/edit-video/split.md +634 -0
- package/assets/docs/guide/edit-video/transform/crop.md +380 -0
- package/assets/docs/guide/edit-video/transform/flip.md +182 -0
- package/assets/docs/guide/edit-video/transform/move.md +413 -0
- package/assets/docs/guide/edit-video/transform/resize.md +534 -0
- package/assets/docs/guide/edit-video/transform/rotate.md +312 -0
- package/assets/docs/guide/edit-video/transform/scale.md +603 -0
- package/assets/docs/guide/edit-video/transform.md +25 -0
- package/assets/docs/guide/edit-video/trim.md +773 -0
- package/assets/docs/guide/engine-interface.md +108 -0
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +292 -0
- package/assets/docs/guide/export-save-publish/export/compress.md +639 -0
- package/assets/docs/guide/export-save-publish/export/overview.md +576 -0
- package/assets/docs/guide/export-save-publish/export/partial-export.md +694 -0
- package/assets/docs/guide/export-save-publish/export/size-limits.md +401 -0
- package/assets/docs/guide/export-save-publish/export/to-html5.md +474 -0
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +312 -0
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +364 -0
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +389 -0
- package/assets/docs/guide/export-save-publish/export/to-png.md +255 -0
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +303 -0
- package/assets/docs/guide/export-save-publish/export/to-webp.md +261 -0
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +278 -0
- package/assets/docs/guide/export-save-publish/export.md +36 -0
- package/assets/docs/guide/export-save-publish/for-printing.md +423 -0
- package/assets/docs/guide/export-save-publish/for-social-media.md +318 -0
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +698 -0
- package/assets/docs/guide/export-save-publish/save.md +340 -0
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +367 -0
- package/assets/docs/guide/file-format-support.md +34 -0
- package/assets/docs/guide/fills/color.md +678 -0
- package/assets/docs/guide/fills/image.md +539 -0
- package/assets/docs/guide/fills/overview.md +144 -0
- package/assets/docs/guide/fills/video.md +641 -0
- package/assets/docs/guide/fills.md +24 -0
- package/assets/docs/guide/filters-and-effects/apply.md +1019 -0
- package/assets/docs/guide/filters-and-effects/blur.md +382 -0
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +445 -0
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +614 -0
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +426 -0
- package/assets/docs/guide/filters-and-effects/distortion.md +527 -0
- package/assets/docs/guide/filters-and-effects/duotone.md +602 -0
- package/assets/docs/guide/filters-and-effects/gradients.md +1311 -0
- package/assets/docs/guide/filters-and-effects/overview.md +22 -0
- package/assets/docs/guide/filters-and-effects/support.md +623 -0
- package/assets/docs/guide/filters-and-effects.md +28 -0
- package/assets/docs/guide/get-started/agent-skills.md +119 -0
- package/assets/docs/guide/get-started/build-with-ai.md +45 -0
- package/assets/docs/guide/get-started/mcp-server.md +119 -0
- package/assets/docs/guide/get-started/overview.md +28 -0
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +175 -0
- package/assets/docs/guide/grid-and-rulers.md +222 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +224 -0
- package/assets/docs/guide/guides/text/rendering-internals.md +796 -0
- package/assets/docs/guide/guides.md +49 -0
- package/assets/docs/guide/import-media/asset-library.md +23 -0
- package/assets/docs/guide/import-media/asset-panel/basics.md +324 -0
- package/assets/docs/guide/import-media/asset-panel/customize.md +478 -0
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +415 -0
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +633 -0
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +137 -0
- package/assets/docs/guide/import-media/capture-from-camera.md +20 -0
- package/assets/docs/guide/import-media/concepts.md +173 -0
- package/assets/docs/guide/import-media/content-json-schema.md +615 -0
- package/assets/docs/guide/import-media/default-assets.md +381 -0
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +489 -0
- package/assets/docs/guide/import-media/file-format-support.md +178 -0
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +438 -0
- package/assets/docs/guide/import-media/from-local-source.md +20 -0
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +390 -0
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +627 -0
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +625 -0
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +692 -0
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +473 -0
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +497 -0
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +51 -0
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +914 -0
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +764 -0
- package/assets/docs/guide/import-media/from-remote-source.md +28 -0
- package/assets/docs/guide/import-media/overview.md +32 -0
- package/assets/docs/guide/import-media/retrieve-mimetype.md +274 -0
- package/assets/docs/guide/import-media/size-limits.md +20 -0
- package/assets/docs/guide/import-media/source-sets.md +476 -0
- package/assets/docs/guide/import-media.md +32 -0
- package/assets/docs/guide/insert-media/audio.md +291 -0
- package/assets/docs/guide/insert-media/images.md +380 -0
- package/assets/docs/guide/insert-media/position-and-align.md +734 -0
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +799 -0
- package/assets/docs/guide/insert-media/videos.md +308 -0
- package/assets/docs/guide/insert-media.md +24 -0
- package/assets/docs/guide/key-capabilities.md +24 -0
- package/assets/docs/guide/key-concepts.md +83 -0
- package/assets/docs/guide/licensing.md +45 -0
- package/assets/docs/guide/llms-txt.md +53 -0
- package/assets/docs/guide/open-the-editor/blank-canvas.md +124 -0
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +228 -0
- package/assets/docs/guide/open-the-editor/from-image.md +205 -0
- package/assets/docs/guide/open-the-editor/from-template.md +189 -0
- package/assets/docs/guide/open-the-editor/from-video.md +274 -0
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +504 -0
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +680 -0
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +865 -0
- package/assets/docs/guide/open-the-editor/import-design.md +481 -0
- package/assets/docs/guide/open-the-editor/load-scene.md +178 -0
- package/assets/docs/guide/open-the-editor/overview.md +20 -0
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +303 -0
- package/assets/docs/guide/open-the-editor/uri-resolver.md +347 -0
- package/assets/docs/guide/open-the-editor.md +29 -0
- package/assets/docs/guide/outlines/overview.md +14 -0
- package/assets/docs/guide/outlines/shadows-and-glows.md +515 -0
- package/assets/docs/guide/outlines/strokes.md +292 -0
- package/assets/docs/guide/outlines.md +22 -0
- package/assets/docs/guide/overview.md +22 -0
- package/assets/docs/guide/performance.md +217 -0
- package/assets/docs/guide/plugins/asset-sources.md +553 -0
- package/assets/docs/guide/plugins/print-ready-pdf.md +549 -0
- package/assets/docs/guide/plugins.md +36 -0
- package/assets/docs/guide/rules/asset-handling.md +180 -0
- package/assets/docs/guide/rules/common-pitfalls.md +272 -0
- package/assets/docs/guide/rules/content-fill-mode.md +29 -0
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +672 -0
- package/assets/docs/guide/rules/lock-content.md +478 -0
- package/assets/docs/guide/rules/moderate-content.md +761 -0
- package/assets/docs/guide/rules/overview.md +514 -0
- package/assets/docs/guide/rules/silent-init-errors.md +137 -0
- package/assets/docs/guide/rules/verify-properties-before-use.md +78 -0
- package/assets/docs/guide/rules.md +23 -0
- package/assets/docs/guide/security.md +199 -0
- package/assets/docs/guide/serve-assets.md +332 -0
- package/assets/docs/guide/settings.md +199 -0
- package/assets/docs/guide/shapes.md +23 -0
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +748 -0
- package/assets/docs/guide/starterkits/advanced-editor.md +698 -0
- package/assets/docs/guide/starterkits/advanced-video-editor.md +696 -0
- package/assets/docs/guide/starterkits/ai-editor.md +749 -0
- package/assets/docs/guide/starterkits/airtable-image-editor.md +672 -0
- package/assets/docs/guide/starterkits/apparel-ui.md +188 -0
- package/assets/docs/guide/starterkits/assets.md +27 -0
- package/assets/docs/guide/starterkits/auto-resize.md +586 -0
- package/assets/docs/guide/starterkits/automated-video-generation.md +692 -0
- package/assets/docs/guide/starterkits/background-removal-editor.md +480 -0
- package/assets/docs/guide/starterkits/content-moderation.md +863 -0
- package/assets/docs/guide/starterkits/creative-automation.md +28 -0
- package/assets/docs/guide/starterkits/custom-built-uis.md +26 -0
- package/assets/docs/guide/starterkits/customization.md +29 -0
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +470 -0
- package/assets/docs/guide/starterkits/data-merge.md +850 -0
- package/assets/docs/guide/starterkits/design-editor.md +698 -0
- package/assets/docs/guide/starterkits/design-generation.md +719 -0
- package/assets/docs/guide/starterkits/design-validation.md +808 -0
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +14 -0
- package/assets/docs/guide/starterkits/export-options.md +724 -0
- package/assets/docs/guide/starterkits/export-using-renderer.md +708 -0
- package/assets/docs/guide/starterkits/extensibility.md +28 -0
- package/assets/docs/guide/starterkits/force-crop-editor.md +675 -0
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +522 -0
- package/assets/docs/guide/starterkits/getty-images-editor.md +700 -0
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +719 -0
- package/assets/docs/guide/starterkits/indesign-template-import.md +580 -0
- package/assets/docs/guide/starterkits/layouts-editor.md +724 -0
- package/assets/docs/guide/starterkits/mobile-ui.md +185 -0
- package/assets/docs/guide/starterkits/mockup-editor.md +745 -0
- package/assets/docs/guide/starterkits/multi-image-generation.md +542 -0
- package/assets/docs/guide/starterkits/page-sizes-editor.md +657 -0
- package/assets/docs/guide/starterkits/pexels-image-editor.md +665 -0
- package/assets/docs/guide/starterkits/photo-editor.md +755 -0
- package/assets/docs/guide/starterkits/photo-ui.md +186 -0
- package/assets/docs/guide/starterkits/photobook-ui.md +188 -0
- package/assets/docs/guide/starterkits/placeholders.md +678 -0
- package/assets/docs/guide/starterkits/player.md +405 -0
- package/assets/docs/guide/starterkits/plugins.md +25 -0
- package/assets/docs/guide/starterkits/postcard-editor.md +202 -0
- package/assets/docs/guide/starterkits/pptx-template-import.md +581 -0
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +746 -0
- package/assets/docs/guide/starterkits/product-editor.md +773 -0
- package/assets/docs/guide/starterkits/psd-template-import.md +580 -0
- package/assets/docs/guide/starterkits/qr-code-editor.md +470 -0
- package/assets/docs/guide/starterkits/single-page-editor.md +661 -0
- package/assets/docs/guide/starterkits/start-with-image.md +684 -0
- package/assets/docs/guide/starterkits/start-with-video.md +651 -0
- package/assets/docs/guide/starterkits/t-shirt-designer.md +742 -0
- package/assets/docs/guide/starterkits/templating.md +23 -0
- package/assets/docs/guide/starterkits/theming.md +662 -0
- package/assets/docs/guide/starterkits/translation-internationalization.md +662 -0
- package/assets/docs/guide/starterkits/unsplash-editor.md +839 -0
- package/assets/docs/guide/starterkits/vectorizer-editor.md +466 -0
- package/assets/docs/guide/starterkits/version-history.md +745 -0
- package/assets/docs/guide/starterkits/video-animations.md +853 -0
- package/assets/docs/guide/starterkits/video-captions.md +884 -0
- package/assets/docs/guide/starterkits/video-editing.md +25 -0
- package/assets/docs/guide/starterkits/video-editor.md +696 -0
- package/assets/docs/guide/starterkits/video-export-options.md +676 -0
- package/assets/docs/guide/starterkits/viewer.md +400 -0
- package/assets/docs/guide/starterkits.md +41 -0
- package/assets/docs/guide/stickers-and-shapes/combine.md +743 -0
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +425 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +794 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +290 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +211 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +362 -0
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +208 -0
- package/assets/docs/guide/stickers.md +21 -0
- package/assets/docs/guide/text/add.md +641 -0
- package/assets/docs/guide/text/adjust-spacing.md +288 -0
- package/assets/docs/guide/text/auto-size.md +404 -0
- package/assets/docs/guide/text/custom-fonts.md +401 -0
- package/assets/docs/guide/text/decorations.md +330 -0
- package/assets/docs/guide/text/edit.md +458 -0
- package/assets/docs/guide/text/effects.md +244 -0
- package/assets/docs/guide/text/emojis.md +310 -0
- package/assets/docs/guide/text/enumerations.md +258 -0
- package/assets/docs/guide/text/language-support.md +604 -0
- package/assets/docs/guide/text/overview.md +14 -0
- package/assets/docs/guide/text/styling.md +390 -0
- package/assets/docs/guide/text/text-designs.md +834 -0
- package/assets/docs/guide/text.md +33 -0
- package/assets/docs/guide/to-v1-10.md +131 -0
- package/assets/docs/guide/to-v1-13.md +165 -0
- package/assets/docs/guide/to-v1-19.md +315 -0
- package/assets/docs/guide/to-v1-32.md +110 -0
- package/assets/docs/guide/to-v1-69.md +468 -0
- package/assets/docs/guide/to-v1-72.md +193 -0
- package/assets/docs/guide/upgrade.md +25 -0
- package/assets/docs/guide/use-templates/apply-template.md +279 -0
- package/assets/docs/guide/use-templates/generate.md +405 -0
- package/assets/docs/guide/use-templates/library.md +450 -0
- package/assets/docs/guide/use-templates/overview.md +20 -0
- package/assets/docs/guide/use-templates/programmatic.md +482 -0
- package/assets/docs/guide/use-templates/replace-content.md +399 -0
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +428 -0
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +337 -0
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +853 -0
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +1045 -0
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +641 -0
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +966 -0
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +99 -0
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +498 -0
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +493 -0
- package/assets/docs/guide/user-interface/ai-integration.md +30 -0
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +316 -0
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +509 -0
- package/assets/docs/guide/user-interface/appearance/icons.md +373 -0
- package/assets/docs/guide/user-interface/appearance/theming.md +665 -0
- package/assets/docs/guide/user-interface/appearance.md +23 -0
- package/assets/docs/guide/user-interface/build-your-own-ui.md +620 -0
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +412 -0
- package/assets/docs/guide/user-interface/customization/canvas.md +281 -0
- package/assets/docs/guide/user-interface/customization/color-palette.md +413 -0
- package/assets/docs/guide/user-interface/customization/crop-presets.md +384 -0
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +676 -0
- package/assets/docs/guide/user-interface/customization/dock.md +399 -0
- package/assets/docs/guide/user-interface/customization/force-crop.md +289 -0
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +371 -0
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +516 -0
- package/assets/docs/guide/user-interface/customization/page-format.md +436 -0
- package/assets/docs/guide/user-interface/customization/panel.md +605 -0
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +531 -0
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +358 -0
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +374 -0
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +323 -0
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +294 -0
- package/assets/docs/guide/user-interface/customization/quick-start.md +12 -0
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +519 -0
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +333 -0
- package/assets/docs/guide/user-interface/customization/reference.md +12 -0
- package/assets/docs/guide/user-interface/customization.md +39 -0
- package/assets/docs/guide/user-interface/localization.md +633 -0
- package/assets/docs/guide/user-interface/overview.md +167 -0
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +411 -0
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +721 -0
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +331 -0
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +553 -0
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +672 -0
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +415 -0
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +521 -0
- package/assets/docs/guide/user-interface/ui-extensions.md +26 -0
- package/assets/docs/guide/user-interface.md +25 -0
- package/assets/docs/guide/what-is-cesdk.md +319 -0
- package/assets/docs/handbook/SKILL.md +521 -0
- package/assets/prompts/evals-assetGenerate.md +12 -0
- package/assets/prompts/evals-brutalistCore.md +34 -0
- package/assets/prompts/evals-danskCatalogue.md +31 -0
- package/assets/prompts/evals-exportRoundTrip.md +12 -0
- package/assets/prompts/evals-inspectPriorCode.md +16 -0
- package/assets/prompts/evals-listProjectFiles.md +6 -0
- package/assets/prompts/evals-readAndExplainScript.md +6 -0
- package/assets/prompts/evals-resumeAcrossRestart.md +15 -0
- package/assets/prompts/evals-rewindRecovery.md +10 -0
- package/assets/prompts/evals-searchAcrossFiles.md +6 -0
- package/assets/prompts/evals-weddingCard.md +20 -0
- package/assets/prompts/explain.md +6 -0
- package/assets/prompts/review.md +6 -0
- package/dist/assets/inline.generated.d.ts +2 -0
- package/dist/assets/inline.generated.d.ts.map +1 -0
- package/dist/assets/inline.generated.js +413 -0
- package/dist/assets/inline.generated.js.map +1 -0
- package/dist/assets/load-browser.d.ts +8 -0
- package/dist/assets/load-browser.d.ts.map +1 -0
- package/dist/assets/load-browser.js +11 -0
- package/dist/assets/load-browser.js.map +1 -0
- package/dist/assets/load-node.d.ts +8 -0
- package/dist/assets/load-node.d.ts.map +1 -0
- package/dist/assets/load-node.js +11 -0
- package/dist/assets/load-node.js.map +1 -0
- package/dist/cli/http.d.ts +2 -0
- package/dist/cli/http.d.ts.map +1 -0
- package/dist/cli/http.js +231 -0
- package/dist/cli/http.js.map +1 -0
- package/dist/cli/redirect-console.d.ts +10 -0
- package/dist/cli/redirect-console.d.ts.map +1 -0
- package/dist/cli/redirect-console.js +18 -0
- package/dist/cli/redirect-console.js.map +1 -0
- package/dist/cli/resolve-license.d.ts +2 -0
- package/dist/cli/resolve-license.d.ts.map +1 -0
- package/dist/cli/resolve-license.js +13 -0
- package/dist/cli/resolve-license.js.map +1 -0
- package/dist/cli/stdio.d.ts +2 -0
- package/dist/cli/stdio.d.ts.map +1 -0
- package/dist/cli/stdio.js +124 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/trial-license.generated.d.ts +2 -0
- package/dist/cli/trial-license.generated.d.ts.map +1 -0
- package/dist/cli/trial-license.generated.js +4 -0
- package/dist/cli/trial-license.generated.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +61 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +102 -0
- package/dist/config.js.map +1 -0
- package/dist/cross-ref.d.ts +2 -0
- package/dist/cross-ref.d.ts.map +1 -0
- package/dist/cross-ref.js +31 -0
- package/dist/cross-ref.js.map +1 -0
- package/dist/dashboard/router.d.ts +3 -0
- package/dist/dashboard/router.d.ts.map +1 -0
- package/dist/dashboard/router.js +19 -0
- package/dist/dashboard/router.js.map +1 -0
- package/dist/dashboard/spa-assets.generated.d.ts +2 -0
- package/dist/dashboard/spa-assets.generated.d.ts.map +1 -0
- package/dist/dashboard/spa-assets.generated.js +220 -0
- package/dist/dashboard/spa-assets.generated.js.map +1 -0
- package/dist/engine/asset-sources.d.ts +17 -0
- package/dist/engine/asset-sources.d.ts.map +1 -0
- package/dist/engine/asset-sources.js +75 -0
- package/dist/engine/asset-sources.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +10 -0
- package/dist/engine/cesdk-adapter.d.ts.map +1 -0
- package/dist/engine/cesdk-adapter.js +19 -0
- package/dist/engine/cesdk-adapter.js.map +1 -0
- package/dist/engine/index.d.ts +3 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +3 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/mutex.d.ts +5 -0
- package/dist/engine/mutex.d.ts.map +1 -0
- package/dist/engine/mutex.js +42 -0
- package/dist/engine/mutex.js.map +1 -0
- package/dist/engine/session.d.ts +50 -0
- package/dist/engine/session.d.ts.map +1 -0
- package/dist/engine/session.js +95 -0
- package/dist/engine/session.js.map +1 -0
- package/dist/engine/uri-resolver.d.ts +14 -0
- package/dist/engine/uri-resolver.d.ts.map +1 -0
- package/dist/engine/uri-resolver.js +12 -0
- package/dist/engine/uri-resolver.js.map +1 -0
- package/dist/frontmatter.d.ts +15 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +46 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/gateway/hosted-stub.d.ts +6 -0
- package/dist/gateway/hosted-stub.d.ts.map +1 -0
- package/dist/gateway/hosted-stub.js +11 -0
- package/dist/gateway/hosted-stub.js.map +1 -0
- package/dist/gateway/index.d.ts +4 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +4 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/local.d.ts +14 -0
- package/dist/gateway/local.d.ts.map +1 -0
- package/dist/gateway/local.js +41 -0
- package/dist/gateway/local.js.map +1 -0
- package/dist/gateway/types.d.ts +24 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +7 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/http/server.d.ts +80 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +183 -0
- package/dist/http/server.js.map +1 -0
- package/dist/http/session-manager.d.ts +42 -0
- package/dist/http/session-manager.d.ts.map +1 -0
- package/dist/http/session-manager.js +82 -0
- package/dist/http/session-manager.js.map +1 -0
- package/dist/http/workspace-auth.d.ts +9 -0
- package/dist/http/workspace-auth.d.ts.map +1 -0
- package/dist/http/workspace-auth.js +29 -0
- package/dist/http/workspace-auth.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics/mount.d.ts +11 -0
- package/dist/metrics/mount.d.ts.map +1 -0
- package/dist/metrics/mount.js +13 -0
- package/dist/metrics/mount.js.map +1 -0
- package/dist/metrics/recorder.d.ts +55 -0
- package/dist/metrics/recorder.d.ts.map +1 -0
- package/dist/metrics/recorder.js +97 -0
- package/dist/metrics/recorder.js.map +1 -0
- package/dist/revisions/hash.d.ts +7 -0
- package/dist/revisions/hash.d.ts.map +1 -0
- package/dist/revisions/hash.js +24 -0
- package/dist/revisions/hash.js.map +1 -0
- package/dist/revisions/index.d.ts +4 -0
- package/dist/revisions/index.d.ts.map +1 -0
- package/dist/revisions/index.js +4 -0
- package/dist/revisions/index.js.map +1 -0
- package/dist/revisions/store.d.ts +69 -0
- package/dist/revisions/store.d.ts.map +1 -0
- package/dist/revisions/store.js +196 -0
- package/dist/revisions/store.js.map +1 -0
- package/dist/revisions/types.d.ts +39 -0
- package/dist/revisions/types.d.ts.map +1 -0
- package/dist/revisions/types.js +2 -0
- package/dist/revisions/types.js.map +1 -0
- package/dist/server.d.ts +51 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +175 -0
- package/dist/server.js.map +1 -0
- package/dist/skill-tools.d.ts +3 -0
- package/dist/skill-tools.d.ts.map +1 -0
- package/dist/skill-tools.js +105 -0
- package/dist/skill-tools.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.d.ts +2 -0
- package/dist/test/test/cli/dispatcher.test.d.ts.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +47 -0
- package/dist/test/test/cli/dispatcher.test.js.map +1 -0
- package/dist/test/test/cross-ref.test.d.ts +2 -0
- package/dist/test/test/cross-ref.test.d.ts.map +1 -0
- package/dist/test/test/cross-ref.test.js +39 -0
- package/dist/test/test/cross-ref.test.js.map +1 -0
- package/dist/test/test/engine/session.test.d.ts +2 -0
- package/dist/test/test/engine/session.test.d.ts.map +1 -0
- package/dist/test/test/engine/session.test.js +144 -0
- package/dist/test/test/engine/session.test.js.map +1 -0
- package/dist/test/test/engine/uri-resolver.test.d.ts +2 -0
- package/dist/test/test/engine/uri-resolver.test.d.ts.map +1 -0
- package/dist/test/test/engine/uri-resolver.test.js +38 -0
- package/dist/test/test/engine/uri-resolver.test.js.map +1 -0
- package/dist/test/test/frontmatter.test.d.ts +2 -0
- package/dist/test/test/frontmatter.test.d.ts.map +1 -0
- package/dist/test/test/frontmatter.test.js +55 -0
- package/dist/test/test/frontmatter.test.js.map +1 -0
- package/dist/test/test/gateway/hosted-stub.test.d.ts +2 -0
- package/dist/test/test/gateway/hosted-stub.test.d.ts.map +1 -0
- package/dist/test/test/gateway/hosted-stub.test.js +11 -0
- package/dist/test/test/gateway/hosted-stub.test.js.map +1 -0
- package/dist/test/test/gateway/local.test.d.ts +2 -0
- package/dist/test/test/gateway/local.test.d.ts.map +1 -0
- package/dist/test/test/gateway/local.test.js +29 -0
- package/dist/test/test/gateway/local.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.d.ts +2 -0
- package/dist/test/test/handbook-contract.test.d.ts.map +1 -0
- package/dist/test/test/handbook-contract.test.js +71 -0
- package/dist/test/test/handbook-contract.test.js.map +1 -0
- package/dist/test/test/http/server.test.d.ts +2 -0
- package/dist/test/test/http/server.test.d.ts.map +1 -0
- package/dist/test/test/http/server.test.js +245 -0
- package/dist/test/test/http/server.test.js.map +1 -0
- package/dist/test/test/http/session-manager.test.d.ts +2 -0
- package/dist/test/test/http/session-manager.test.d.ts.map +1 -0
- package/dist/test/test/http/session-manager.test.js +83 -0
- package/dist/test/test/http/session-manager.test.js.map +1 -0
- package/dist/test/test/revisions/hash.test.d.ts +2 -0
- package/dist/test/test/revisions/hash.test.d.ts.map +1 -0
- package/dist/test/test/revisions/hash.test.js +33 -0
- package/dist/test/test/revisions/hash.test.js.map +1 -0
- package/dist/test/test/revisions/store.test.d.ts +2 -0
- package/dist/test/test/revisions/store.test.d.ts.map +1 -0
- package/dist/test/test/revisions/store.test.js +245 -0
- package/dist/test/test/revisions/store.test.js.map +1 -0
- package/dist/test/test/server.test.d.ts +2 -0
- package/dist/test/test/server.test.d.ts.map +1 -0
- package/dist/test/test/server.test.js +157 -0
- package/dist/test/test/server.test.js.map +1 -0
- package/dist/test/test/skill-tools.test.d.ts +2 -0
- package/dist/test/test/skill-tools.test.d.ts.map +1 -0
- package/dist/test/test/skill-tools.test.js +84 -0
- package/dist/test/test/skill-tools.test.js.map +1 -0
- package/dist/test/test/smoke.test.d.ts +2 -0
- package/dist/test/test/smoke.test.d.ts.map +1 -0
- package/dist/test/test/smoke.test.js +8 -0
- package/dist/test/test/smoke.test.js.map +1 -0
- package/dist/test/test/tools/asset-generate.test.d.ts +2 -0
- package/dist/test/test/tools/asset-generate.test.d.ts.map +1 -0
- package/dist/test/test/tools/asset-generate.test.js +66 -0
- package/dist/test/test/tools/asset-generate.test.js.map +1 -0
- package/dist/test/test/tools/edit.test.d.ts +2 -0
- package/dist/test/test/tools/edit.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.test.js +205 -0
- package/dist/test/test/tools/edit.test.js.map +1 -0
- package/dist/test/test/tools/export.test.d.ts +2 -0
- package/dist/test/test/tools/export.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.test.js +144 -0
- package/dist/test/test/tools/export.test.js.map +1 -0
- package/dist/test/test/tools/history.test.d.ts +2 -0
- package/dist/test/test/tools/history.test.d.ts.map +1 -0
- package/dist/test/test/tools/history.test.js +29 -0
- package/dist/test/test/tools/history.test.js.map +1 -0
- package/dist/test/test/tools/inspect.test.d.ts +2 -0
- package/dist/test/test/tools/inspect.test.d.ts.map +1 -0
- package/dist/test/test/tools/inspect.test.js +62 -0
- package/dist/test/test/tools/inspect.test.js.map +1 -0
- package/dist/test/test/tools/list.test.d.ts +2 -0
- package/dist/test/test/tools/list.test.d.ts.map +1 -0
- package/dist/test/test/tools/list.test.js +23 -0
- package/dist/test/test/tools/list.test.js.map +1 -0
- package/dist/test/test/tools/open-editor.test.d.ts +2 -0
- package/dist/test/test/tools/open-editor.test.d.ts.map +1 -0
- package/dist/test/test/tools/open-editor.test.js +53 -0
- package/dist/test/test/tools/open-editor.test.js.map +1 -0
- package/dist/test/test/tools/preview.test.d.ts +2 -0
- package/dist/test/test/tools/preview.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.test.js +73 -0
- package/dist/test/test/tools/preview.test.js.map +1 -0
- package/dist/test/test/tools/rename.test.d.ts +2 -0
- package/dist/test/test/tools/rename.test.d.ts.map +1 -0
- package/dist/test/test/tools/rename.test.js +17 -0
- package/dist/test/test/tools/rename.test.js.map +1 -0
- package/dist/test/test/viewer/broadcaster.test.d.ts +2 -0
- package/dist/test/test/viewer/broadcaster.test.d.ts.map +1 -0
- package/dist/test/test/viewer/broadcaster.test.js +53 -0
- package/dist/test/test/viewer/broadcaster.test.js.map +1 -0
- package/dist/test/test/viewer/resource-route.test.d.ts +2 -0
- package/dist/test/test/viewer/resource-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/resource-route.test.js +70 -0
- package/dist/test/test/viewer/resource-route.test.js.map +1 -0
- package/dist/test/test/viewer/router.test.d.ts +2 -0
- package/dist/test/test/viewer/router.test.d.ts.map +1 -0
- package/dist/test/test/viewer/router.test.js +171 -0
- package/dist/test/test/viewer/router.test.js.map +1 -0
- package/dist/test/test/viewer/url-builder.test.d.ts +2 -0
- package/dist/test/test/viewer/url-builder.test.d.ts.map +1 -0
- package/dist/test/test/viewer/url-builder.test.js +31 -0
- package/dist/test/test/viewer/url-builder.test.js.map +1 -0
- package/dist/test/test/workspace/hosted-stub.test.d.ts +2 -0
- package/dist/test/test/workspace/hosted-stub.test.d.ts.map +1 -0
- package/dist/test/test/workspace/hosted-stub.test.js +30 -0
- package/dist/test/test/workspace/hosted-stub.test.js.map +1 -0
- package/dist/test/test/workspace/in-memory.test.d.ts +2 -0
- package/dist/test/test/workspace/in-memory.test.d.ts.map +1 -0
- package/dist/test/test/workspace/in-memory.test.js +4 -0
- package/dist/test/test/workspace/in-memory.test.js.map +1 -0
- package/dist/test/test/workspace/node-fs.test.d.ts +2 -0
- package/dist/test/test/workspace/node-fs.test.d.ts.map +1 -0
- package/dist/test/test/workspace/node-fs.test.js +20 -0
- package/dist/test/test/workspace/node-fs.test.js.map +1 -0
- package/dist/test/test/workspace/shared-contract.d.ts +3 -0
- package/dist/test/test/workspace/shared-contract.d.ts.map +1 -0
- package/dist/test/test/workspace/shared-contract.js +92 -0
- package/dist/test/test/workspace/shared-contract.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -0
- package/dist/test/vitest.config.d.ts +3 -0
- package/dist/test/vitest.config.d.ts.map +1 -0
- package/dist/test/vitest.config.js +8 -0
- package/dist/test/vitest.config.js.map +1 -0
- package/dist/tools/asset-generate.d.ts +12 -0
- package/dist/tools/asset-generate.d.ts.map +1 -0
- package/dist/tools/asset-generate.js +112 -0
- package/dist/tools/asset-generate.js.map +1 -0
- package/dist/tools/asset-search.d.ts +10 -0
- package/dist/tools/asset-search.d.ts.map +1 -0
- package/dist/tools/asset-search.js +120 -0
- package/dist/tools/asset-search.js.map +1 -0
- package/dist/tools/content-types.d.ts +11 -0
- package/dist/tools/content-types.d.ts.map +1 -0
- package/dist/tools/content-types.js +2 -0
- package/dist/tools/content-types.js.map +1 -0
- package/dist/tools/edit.d.ts +29 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +165 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/engine.d.ts +31 -0
- package/dist/tools/engine.d.ts.map +1 -0
- package/dist/tools/engine.js +59 -0
- package/dist/tools/engine.js.map +1 -0
- package/dist/tools/export.d.ts +19 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +179 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/history.d.ts +7 -0
- package/dist/tools/history.d.ts.map +1 -0
- package/dist/tools/history.js +54 -0
- package/dist/tools/history.js.map +1 -0
- package/dist/tools/index.d.ts +35 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +72 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inspect.d.ts +7 -0
- package/dist/tools/inspect.d.ts.map +1 -0
- package/dist/tools/inspect.js +80 -0
- package/dist/tools/inspect.js.map +1 -0
- package/dist/tools/list.d.ts +7 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/list.js +18 -0
- package/dist/tools/list.js.map +1 -0
- package/dist/tools/metrics.d.ts +11 -0
- package/dist/tools/metrics.d.ts.map +1 -0
- package/dist/tools/metrics.js +28 -0
- package/dist/tools/metrics.js.map +1 -0
- package/dist/tools/open-editor.d.ts +10 -0
- package/dist/tools/open-editor.d.ts.map +1 -0
- package/dist/tools/open-editor.js +62 -0
- package/dist/tools/open-editor.js.map +1 -0
- package/dist/tools/preview.d.ts +12 -0
- package/dist/tools/preview.d.ts.map +1 -0
- package/dist/tools/preview.js +104 -0
- package/dist/tools/preview.js.map +1 -0
- package/dist/tools/rename.d.ts +7 -0
- package/dist/tools/rename.d.ts.map +1 -0
- package/dist/tools/rename.js +39 -0
- package/dist/tools/rename.js.map +1 -0
- package/dist/tools/result.d.ts +12 -0
- package/dist/tools/result.d.ts.map +1 -0
- package/dist/tools/result.js +55 -0
- package/dist/tools/result.js.map +1 -0
- package/dist/tools/save.d.ts +19 -0
- package/dist/tools/save.d.ts.map +1 -0
- package/dist/tools/save.js +117 -0
- package/dist/tools/save.js.map +1 -0
- package/dist/viewer/broadcaster.d.ts +13 -0
- package/dist/viewer/broadcaster.d.ts.map +1 -0
- package/dist/viewer/broadcaster.js +44 -0
- package/dist/viewer/broadcaster.js.map +1 -0
- package/dist/viewer/index.d.ts +7 -0
- package/dist/viewer/index.d.ts.map +1 -0
- package/dist/viewer/index.js +7 -0
- package/dist/viewer/index.js.map +1 -0
- package/dist/viewer/listener.d.ts +16 -0
- package/dist/viewer/listener.d.ts.map +1 -0
- package/dist/viewer/listener.js +30 -0
- package/dist/viewer/listener.js.map +1 -0
- package/dist/viewer/presigned-r2-url-builder.d.ts +30 -0
- package/dist/viewer/presigned-r2-url-builder.d.ts.map +1 -0
- package/dist/viewer/presigned-r2-url-builder.js +40 -0
- package/dist/viewer/presigned-r2-url-builder.js.map +1 -0
- package/dist/viewer/resource-route.d.ts +9 -0
- package/dist/viewer/resource-route.d.ts.map +1 -0
- package/dist/viewer/resource-route.js +59 -0
- package/dist/viewer/resource-route.js.map +1 -0
- package/dist/viewer/router.d.ts +20 -0
- package/dist/viewer/router.d.ts.map +1 -0
- package/dist/viewer/router.js +142 -0
- package/dist/viewer/router.js.map +1 -0
- package/dist/viewer/session-mount.d.ts +10 -0
- package/dist/viewer/session-mount.d.ts.map +1 -0
- package/dist/viewer/session-mount.js +24 -0
- package/dist/viewer/session-mount.js.map +1 -0
- package/dist/viewer/spa-assets.generated.d.ts +2 -0
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -0
- package/dist/viewer/spa-assets.generated.js +989 -0
- package/dist/viewer/spa-assets.generated.js.map +1 -0
- package/dist/viewer/url-builder.d.ts +48 -0
- package/dist/viewer/url-builder.d.ts.map +1 -0
- package/dist/viewer/url-builder.js +38 -0
- package/dist/viewer/url-builder.js.map +1 -0
- package/dist/workspace/hosted-stub.d.ts +28 -0
- package/dist/workspace/hosted-stub.d.ts.map +1 -0
- package/dist/workspace/hosted-stub.js +44 -0
- package/dist/workspace/hosted-stub.js.map +1 -0
- package/dist/workspace/in-memory.d.ts +23 -0
- package/dist/workspace/in-memory.d.ts.map +1 -0
- package/dist/workspace/in-memory.js +161 -0
- package/dist/workspace/in-memory.js.map +1 -0
- package/dist/workspace/index.d.ts +6 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +6 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/node-fs.d.ts +23 -0
- package/dist/workspace/node-fs.d.ts.map +1 -0
- package/dist/workspace/node-fs.js +90 -0
- package/dist/workspace/node-fs.js.map +1 -0
- package/dist/workspace/s3.d.ts +32 -0
- package/dist/workspace/s3.d.ts.map +1 -0
- package/dist/workspace/s3.js +191 -0
- package/dist/workspace/s3.js.map +1 -0
- package/dist/workspace/scoped.d.ts +32 -0
- package/dist/workspace/scoped.d.ts.map +1 -0
- package/dist/workspace/scoped.js +76 -0
- package/dist/workspace/scoped.js.map +1 -0
- package/dist/workspace/types.d.ts +75 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/dist/workspace/types.js +18 -0
- package/dist/workspace/types.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Verify Properties Before Use
|
|
2
|
+
|
|
3
|
+
CE.SDK block types do **not** share a uniform property schema. Each block type — graphic, text, animation, fill, shape — has its own set of available properties. Never assume a property exists on a block; always verify first.
|
|
4
|
+
|
|
5
|
+
## Rule
|
|
6
|
+
|
|
7
|
+
Before getting or setting any property on a CE.SDK block, call `engine.block.findAllProperties()` and confirm the property exists. Accessing a non-existent property will throw an error.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
const props = engine.block.findAllProperties(block);
|
|
11
|
+
if (props.includes('animationEasing')) {
|
|
12
|
+
engine.block.setEnum(block, 'animationEasing', 'EaseInOut');
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Why This Matters
|
|
17
|
+
|
|
18
|
+
- `animationEasing` is **not** supported by `pop` or `typewriter_text` animations (and potentially others).
|
|
19
|
+
- `textAnimationWritingStyle` only exists on some text animations (e.g., `baseline`). The `typewriter_text` animation uses `animation/typewriter_text/writingStyle` instead.
|
|
20
|
+
- Fill blocks, shape blocks, and graphic blocks each expose different property sets.
|
|
21
|
+
- New CE.SDK versions may add or remove properties from specific block types.
|
|
22
|
+
|
|
23
|
+
## Pattern: Safe Property Access
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
function safeSetEnum(
|
|
27
|
+
engine: CreativeEngine,
|
|
28
|
+
block: number,
|
|
29
|
+
prop: string,
|
|
30
|
+
value: string
|
|
31
|
+
): boolean {
|
|
32
|
+
const props = engine.block.findAllProperties(block);
|
|
33
|
+
if (props.includes(prop)) {
|
|
34
|
+
engine.block.setEnum(block, prop, value);
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function safeGetFloat(
|
|
41
|
+
engine: CreativeEngine,
|
|
42
|
+
block: number,
|
|
43
|
+
prop: string
|
|
44
|
+
): number | undefined {
|
|
45
|
+
const props = engine.block.findAllProperties(block);
|
|
46
|
+
if (props.includes(prop)) {
|
|
47
|
+
return engine.block.getFloat(block, prop);
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Pattern: Animation Configuration
|
|
54
|
+
|
|
55
|
+
When configuring animations, always check available properties per animation type:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const inAnim = engine.block.getInAnimation(block);
|
|
59
|
+
if (inAnim !== null) {
|
|
60
|
+
const props = engine.block.findAllProperties(inAnim);
|
|
61
|
+
|
|
62
|
+
if (props.includes('animationEasing')) {
|
|
63
|
+
engine.block.setEnum(inAnim, 'animationEasing', opts.inEasing);
|
|
64
|
+
}
|
|
65
|
+
if (props.includes('animationDuration')) {
|
|
66
|
+
engine.block.setFloat(inAnim, 'animationDuration', opts.duration);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Debugging: Discover Available Properties
|
|
72
|
+
|
|
73
|
+
Use `findAllProperties()` as the definitive source of truth for what properties a block supports — more reliable than documentation, which may not cover every block type's specifics:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
const props = engine.block.findAllProperties(someBlock);
|
|
77
|
+
console.log('Available properties:', props);
|
|
78
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
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).
|
|
2
|
+
|
|
3
|
+
**Navigation:** [Guides](./guides.md) > [Rules](./rules.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Related Pages
|
|
10
|
+
|
|
11
|
+
- [Overview](./rules/overview.md) - Define and enforce layout, branding, and safety rules to ensure consistent and compliant designs.
|
|
12
|
+
- [Enforce Brand Guidelines](./rules/enforce-brand-guidelines.md) - Learn how to restrict users to approved brand assets and prevent unauthorized modifications to brand elements
|
|
13
|
+
- [Lock Content](./rules/lock-content.md) - Lock design elements to prevent unwanted modifications using CE.SDK's scope-based permission system.
|
|
14
|
+
- [Moderate Content](./rules/moderate-content.md) - Extract images and text from CE.SDK designs using engine APIs and integrate with third-party moderation services to detect inappropriate content
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## More Resources
|
|
19
|
+
|
|
20
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
21
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
22
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
23
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,199 @@
|
|
|
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).
|
|
2
|
+
|
|
3
|
+
**Navigation:** [Compatibility & Security](./compatibility.md) > [Security](./security.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This document provides a comprehensive overview of CE.SDK's security practices, focusing on data handling, privacy, and our commitment to maintaining the highest standards of security for our customers and their end users.
|
|
8
|
+
|
|
9
|
+
## Key Security Features
|
|
10
|
+
|
|
11
|
+
- **Client-Side Processing**: All image and design processing occurs directly on the user's device or your servers, not on our servers
|
|
12
|
+
- **No Data Transmission**: Your content (e.g. images, designs, templates, videos, audio, etc.) is never uploaded to or processed on IMG.LY servers
|
|
13
|
+
- **Minimal Data Collection**: We only collect device identifiers and count exports for licensing purposes
|
|
14
|
+
- **GDPR Compliance**: Our data collection practices adhere to GDPR regulations
|
|
15
|
+
- **Secure Licensing**: Enterprise licenses are secured with RSA SHA256 encryption
|
|
16
|
+
|
|
17
|
+
## Data Protection & Access Controls
|
|
18
|
+
|
|
19
|
+
### Data Collection
|
|
20
|
+
|
|
21
|
+
CE.SDK requires minimal data to provide its services. The only potentially personally identifiable information (PII) collected includes device-specific identifiers such as `identifierForVendor` on iOS and `ANDROID_ID` on Android. These identifiers are:
|
|
22
|
+
|
|
23
|
+
- Used solely for tracking monthly active users for our usage-based pricing models
|
|
24
|
+
- Reset when the user reinstalls the app or resets their device
|
|
25
|
+
- Collected under GDPR's legitimate interest provision (no explicit consent required as they are necessary for our licensing system)
|
|
26
|
+
|
|
27
|
+
Additionally, we track export operations for billing purposes in usage-based pricing models.
|
|
28
|
+
|
|
29
|
+
For enterprise customers who prefer more accurate tracking, integrators can provide their own userID. This allows for more precise measurement of usage without requiring additional device identifiers.
|
|
30
|
+
|
|
31
|
+
### Data Storage & Encryption
|
|
32
|
+
|
|
33
|
+
**We do not collect or store user data beyond the device identifiers and export counts mentioned above.** Since CE.SDK operates entirely client-side:
|
|
34
|
+
|
|
35
|
+
- All content processing happens on the user's device
|
|
36
|
+
- No images, designs, or user content is transmitted to IMG.LY servers
|
|
37
|
+
- No content data is stored on IMG.LY infrastructure
|
|
38
|
+
|
|
39
|
+
We use standard HTTPS (SSL/TLS) encryption for all communications between CE.SDK instances and our licensing backend.
|
|
40
|
+
|
|
41
|
+
### Access Controls
|
|
42
|
+
|
|
43
|
+
We are using established industry standard practices to handle sensitive customer data. Therefore access control concerns are minimized. The limited data we do handle is protected as follows:
|
|
44
|
+
|
|
45
|
+
- Billing information is stored in Stripe and accessed only by members of our finance team and C-level executives
|
|
46
|
+
- API keys and credentials are stored securely in 1Password or GitHub with granular access levels
|
|
47
|
+
- All employees sign Confidentiality Agreements to protect customer information
|
|
48
|
+
|
|
49
|
+
This refers to data of our direct customers, not their users or customers.
|
|
50
|
+
|
|
51
|
+
## Licensing System
|
|
52
|
+
|
|
53
|
+
CE.SDK uses a licensing system that works as follows:
|
|
54
|
+
|
|
55
|
+
1. During instantiation, an API key is provided to the CE.SDK instance
|
|
56
|
+
2. This API key is held in memory (never stored permanently on the device)
|
|
57
|
+
3. The SDK validates the key with our licensing backend
|
|
58
|
+
4. Upon successful validation, the backend returns a temporary local license
|
|
59
|
+
5. This license is periodically refreshed to maintain valid usage
|
|
60
|
+
|
|
61
|
+
For browser implementations, we protect licenses against misuse by pinning them to specific domains. For mobile applications, licenses are pinned to the application identifiers to prevent unauthorized use.
|
|
62
|
+
|
|
63
|
+
For enterprise customers, we offer an alternative model:
|
|
64
|
+
|
|
65
|
+
- A license file is passed directly to the instance
|
|
66
|
+
- No communication with our licensing service is required
|
|
67
|
+
- Licenses are secured using RSA SHA256 encryption
|
|
68
|
+
|
|
69
|
+
### CE.SDK Renderer
|
|
70
|
+
|
|
71
|
+
CE.SDK Renderer is a specialized variant of CE.SDK that consists of a native Linux binary bundled in a Docker container. It uses GPU acceleration and native code to render scenes and archives to various export formats.
|
|
72
|
+
|
|
73
|
+
Due to bundled third-party codecs (mainly H.264 & H.265) and their associated patent requirements, CE.SDK Renderer implements additional licensing communication beyond the standard licensing handshake:
|
|
74
|
+
|
|
75
|
+
1. **Initial License Validation**: The tool performs the standard license validation with our licensing backend
|
|
76
|
+
2. **Periodic Heartbeats**: After successful validation, it sends periodic heartbeats to our licensing backend to track the number of active instances
|
|
77
|
+
3. **Instance Limits**: We limit the maximum number of active instances per license based on the settings in your dashboard
|
|
78
|
+
4. **Activation Control**: If the instance limit is exceeded, further activations (launches) of the tool will fail with a descriptive error message
|
|
79
|
+
|
|
80
|
+
This additional communication allows us to ensure compliance with codec licensing requirements while providing transparent usage tracking for your organization. As with all CE.SDK products, no user data (images, videos, designs, or other content) is transmitted to IMG.LY servers - only device identifiers and instance counts are collected for licensing purposes.
|
|
81
|
+
|
|
82
|
+
## Security Considerations for User Input
|
|
83
|
+
|
|
84
|
+
As CE.SDK deals primarily with arbitrary user input, we've implemented specific security measures to handle data safely:
|
|
85
|
+
|
|
86
|
+
- The CreativeEngine reads files from external resources to fetch images, fonts, structured data, and other sources for designs. These reads are safeguarded by platform-specific default measures.
|
|
87
|
+
- The engine never loads executable code or attempts to execute any data acquired from dynamic content. It generally relies on provided mime types to decode image data or falls back to byte-level inspection to choose the appropriate decoder.
|
|
88
|
+
- For data writing operations, we provide a callback that returns a pointer to the to-be-written data. The engine itself never unconditionally writes to an externally defined path. If it writes to files directly, these are part of internal directories and can't be modified externally.
|
|
89
|
+
- Generated PDFs may have original image files embedded if the image was not altered via effects or blurs and the `exportPdfWithHighCompatibility` option was **not** enabled. This means a malicious image file could theoretically be included in the exported PDF.
|
|
90
|
+
- Inline text-editing allows arbitrary input of strings by users. The engine uses platform-specific default inputs and APIs and doesn't apply additional sanitization. The acquired strings are stored and used exclusively for text rendering - they are neither executed nor used for file operations.
|
|
91
|
+
|
|
92
|
+
## Security Infrastructure
|
|
93
|
+
|
|
94
|
+
### Vulnerability Management
|
|
95
|
+
|
|
96
|
+
We take a proactive approach to security vulnerability management:
|
|
97
|
+
|
|
98
|
+
- We use GitHub to track dependency vulnerabilities
|
|
99
|
+
- We regularly update affected dependencies
|
|
100
|
+
- We don't maintain a private network, eliminating network vulnerability concerns in that context
|
|
101
|
+
- We don't manually maintain servers or infrastructure, as we don't have live systems beyond those required for licensing
|
|
102
|
+
- For storage and licensing, we use virtual instances in Google Cloud which are managed by the cloud provider
|
|
103
|
+
- All security-related fixes are published in our public changelog at [https://img.ly/docs/cesdk/changelog/](https://img.ly/docs/cesdk/changelog/)
|
|
104
|
+
|
|
105
|
+
### Security Development Practices
|
|
106
|
+
|
|
107
|
+
Our development practices emphasize security:
|
|
108
|
+
|
|
109
|
+
- We rely on established libraries with proven security track records
|
|
110
|
+
- We don't directly process sensitive user data in our code
|
|
111
|
+
- Secrets (auth tokens, passwords, API credentials, certificates) are stored in GitHub or 1Password with granular access levels
|
|
112
|
+
- We use RSA SHA256 encryption for our enterprise licenses
|
|
113
|
+
- We rely on platform-standard SSL implementations for HTTPS communications
|
|
114
|
+
|
|
115
|
+
### API Key Management
|
|
116
|
+
|
|
117
|
+
API keys for CE.SDK are handled securely:
|
|
118
|
+
|
|
119
|
+
- Keys are passed during instantiation and held in memory only
|
|
120
|
+
- Keys are never stored permanently on client devices
|
|
121
|
+
- For web implementation, keys are pinned to specific domains to prevent unauthorized use
|
|
122
|
+
- Enterprise licenses use a file-based approach that doesn't require API key validation
|
|
123
|
+
|
|
124
|
+
## Compliance
|
|
125
|
+
|
|
126
|
+
IMG.LY complies with the General Data Protection Regulation (GDPR) in all our operations, including CE.SDK. Our Privacy Policy is publicly available at [https://img.ly/privacy-policy](https://img.ly/privacy-policy).
|
|
127
|
+
|
|
128
|
+
Our client-side approach to content processing significantly reduces privacy and compliance concerns, as user content never leaves their device environment for processing.
|
|
129
|
+
|
|
130
|
+
## FAQ
|
|
131
|
+
|
|
132
|
+
### Does CE.SDK upload my images or designs to IMG.LY servers?
|
|
133
|
+
|
|
134
|
+
No. CE.SDK processes all content locally on the user's device. Your images, designs, and other content are never transmitted to IMG.LY servers.
|
|
135
|
+
|
|
136
|
+
### What data does IMG.LY collect through CE.SDK?
|
|
137
|
+
|
|
138
|
+
CE.SDK only collects device identifiers (such as identifierForVendor on iOS or ANDROID_ID on Android) for licensing purposes and export counts. No user content or personal information is collected.
|
|
139
|
+
|
|
140
|
+
### How does IMG.LY protect API keys?
|
|
141
|
+
|
|
142
|
+
API keys are never stored permanently; they are held in memory during SDK operation. For web implementations, keys are pinned to specific domains to prevent unauthorized use.
|
|
143
|
+
|
|
144
|
+
### Has IMG.LY experienced any security breaches?
|
|
145
|
+
|
|
146
|
+
No, IMG.LY has not been involved in any cybersecurity breaches in the last 12 months.
|
|
147
|
+
|
|
148
|
+
### Does IMG.LY conduct security audits?
|
|
149
|
+
|
|
150
|
+
As we don't store customer data directly, but rely on third parties to do so, we focus our security efforts on dependency tracking and vulnerability management through GitHub's security features. We don't conduct security audits.
|
|
151
|
+
|
|
152
|
+
## Additional Information
|
|
153
|
+
|
|
154
|
+
For more detailed information about our data collection practices, please refer to our Data Privacy and Retention information below.
|
|
155
|
+
|
|
156
|
+
Should you have any additional questions regarding security practices or require more information, please contact our team at [support@img.ly](mailto:support@img.ly).
|
|
157
|
+
|
|
158
|
+
## Data Privacy and Retention
|
|
159
|
+
|
|
160
|
+
At IMG.LY, we prioritize your data privacy and ensure that apart from a minimal contractually stipulated set of interactions with our servers all other operations take place on your local device. Below is an overview of our data privacy and retention policies:
|
|
161
|
+
|
|
162
|
+
### **Data Processing**
|
|
163
|
+
|
|
164
|
+
All data processed by CE.SDK remains strictly on your device. We do not transfer your data to our servers for processing. This means that operations such as rendering, editing, and other in-app functionalities happen entirely locally, ensuring that sensitive project or personal data stays with you.
|
|
165
|
+
|
|
166
|
+
### **Data Retention**
|
|
167
|
+
|
|
168
|
+
We do not store any project-related data on our servers. Since all data operations occur locally, no information about your edits, images, or video content is retained by CE.SDK. The only data that interacts with our servers is related to license validation and telemetry related to usage tied to your pricing plan.
|
|
169
|
+
|
|
170
|
+
### **License Validation**
|
|
171
|
+
|
|
172
|
+
CE.SDK performs a license validation check with our servers once upon initialization to validate the software license being used. This interaction is minimal and does not involve the transfer of any personal, project, or media data.
|
|
173
|
+
|
|
174
|
+
### **Event Tracking**
|
|
175
|
+
|
|
176
|
+
While CE.SDK does not track user actions other than the exceptions listed below through telemetry or analytics by default, there are specific events tracked to manage customer usage, particularly for API key usage tracking. We gather the following information during these events:
|
|
177
|
+
|
|
178
|
+
- **When the engine loads:** App identifier, platform, engine version, user ID (provided by the client), device ID (mobile only), and session ID.
|
|
179
|
+
- **When a photo or video is exported:** User ID, device ID, session ID, media type (photo/video), resolution (width and height), FPS (video only), and duration (video only).
|
|
180
|
+
|
|
181
|
+
This tracking is solely for ensuring accurate usage calculation and managing monthly active user billing. Enterprise clients can opt out of this tracking under specific agreements.
|
|
182
|
+
|
|
183
|
+
### **Personal Identifiable Information (PII)**
|
|
184
|
+
|
|
185
|
+
The only PII that is potentially collected includes device-specific identifiers such as `identifierForVendor` on iOS and `ANDROID_ID` on Android. These IDs are used for tracking purposes and are reset when the user reinstalls the app or resets the device. No consent is required for these identifiers because they are crucial for our usage-based pricing models. This is covered by the GDPR as legitimate interest.
|
|
186
|
+
|
|
187
|
+
### **User Consent**
|
|
188
|
+
|
|
189
|
+
As mentioned above, user consent is not required when solely using the CE.SDK. However, this may change depending on the specific enterprise agreement or additional regulatory requirements.
|
|
190
|
+
IMG.LY is committed to maintaining compliance with **GDPR** and other applicable data protection laws, ensuring your privacy is respected at all times. For details consult our [privacy policy](https://img.ly/privacy-policy).
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## More Resources
|
|
195
|
+
|
|
196
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
197
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
198
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
199
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,332 @@
|
|
|
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).
|
|
2
|
+
|
|
3
|
+
**Navigation:** [Guides](./guides.md) > [Serve Assets](./serve-assets.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Configure CE.SDK to load engine and content assets from your own servers
|
|
8
|
+
instead of the IMG.LY CDN for production deployments.
|
|
9
|
+
|
|
10
|
+
Self-hosting assets is required for production use. The IMG.LY CDN is intended for development and prototyping only—you'll see a console warning when using the default CDN configuration. Hosting assets yourself gives you control over performance, availability, and compliance requirements.
|
|
11
|
+
|
|
12
|
+
[Download Assets (v$UBQ\_VERSION$)](https://cdn.img.ly/packages/imgly/cesdk-js/$UBQ_VERSION$/imgly-assets.zip)
|
|
13
|
+
|
|
14
|
+
This guide covers the asset categories CE.SDK uses, how to configure `baseURL` and asset source paths, and how to automate asset updates during SDK upgrades.
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
Download and extract the essential assets for your SDK version:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Download assets for current SDK version
|
|
22
|
+
curl -O https://cdn.img.ly/packages/imgly/cesdk-js/$UBQ_VERSION$/imgly-assets.zip
|
|
23
|
+
|
|
24
|
+
# Create versioned directory and extract assets
|
|
25
|
+
mkdir -p public/cesdk/$UBQ_VERSION$
|
|
26
|
+
unzip imgly-assets.zip -d public/cesdk/$UBQ_VERSION$/
|
|
27
|
+
rm imgly-assets.zip
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then configure CE.SDK to use your self-hosted assets:
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
34
|
+
import {
|
|
35
|
+
BlurAssetSource,
|
|
36
|
+
ColorPaletteAssetSource,
|
|
37
|
+
CropPresetsAssetSource,
|
|
38
|
+
DemoAssetSources,
|
|
39
|
+
EffectsAssetSource,
|
|
40
|
+
FiltersAssetSource,
|
|
41
|
+
PagePresetsAssetSource,
|
|
42
|
+
StickerAssetSource,
|
|
43
|
+
TextAssetSource,
|
|
44
|
+
TextComponentAssetSource,
|
|
45
|
+
TypefaceAssetSource,
|
|
46
|
+
UploadAssetSources,
|
|
47
|
+
VectorShapeAssetSource
|
|
48
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
49
|
+
|
|
50
|
+
const config = {
|
|
51
|
+
license: 'YOUR_CESDK_LICENSE_KEY',
|
|
52
|
+
baseURL: `https://cdn.yourdomain.com/cesdk/${CreativeEditorSDK.version}/`
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
CreativeEditorSDK.create(container, config).then(async (cesdk) => {
|
|
56
|
+
const assetBaseURL = `https://cdn.yourdomain.com/cesdk/${CreativeEditorSDK.version}/`;
|
|
57
|
+
|
|
58
|
+
// Add default asset source plugins
|
|
59
|
+
await cesdk.addPlugin(new BlurAssetSource({ baseURL: assetBaseURL }));
|
|
60
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource({ baseURL: assetBaseURL }));
|
|
61
|
+
await cesdk.addPlugin(new CropPresetsAssetSource({ baseURL: assetBaseURL }));
|
|
62
|
+
await cesdk.addPlugin(new EffectsAssetSource({ baseURL: assetBaseURL }));
|
|
63
|
+
await cesdk.addPlugin(new FiltersAssetSource({ baseURL: assetBaseURL }));
|
|
64
|
+
await cesdk.addPlugin(new PagePresetsAssetSource({ baseURL: assetBaseURL }));
|
|
65
|
+
await cesdk.addPlugin(new StickerAssetSource({ baseURL: assetBaseURL }));
|
|
66
|
+
await cesdk.addPlugin(new TextAssetSource({ baseURL: assetBaseURL }));
|
|
67
|
+
await cesdk.addPlugin(
|
|
68
|
+
new TextComponentAssetSource({ baseURL: assetBaseURL })
|
|
69
|
+
);
|
|
70
|
+
await cesdk.addPlugin(new TypefaceAssetSource({ baseURL: assetBaseURL }));
|
|
71
|
+
await cesdk.addPlugin(new VectorShapeAssetSource({ baseURL: assetBaseURL }));
|
|
72
|
+
|
|
73
|
+
// Add demo and upload sources
|
|
74
|
+
await cesdk.addPlugin(
|
|
75
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
76
|
+
);
|
|
77
|
+
await cesdk.addPlugin(
|
|
78
|
+
new DemoAssetSources({
|
|
79
|
+
include: [
|
|
80
|
+
'ly.img.templates.blank.*',
|
|
81
|
+
'ly.img.templates.presentation.*',
|
|
82
|
+
'ly.img.templates.print.*',
|
|
83
|
+
'ly.img.templates.social.*',
|
|
84
|
+
'ly.img.image.*'
|
|
85
|
+
]
|
|
86
|
+
})
|
|
87
|
+
);
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
> **Note:** **Versioned paths recommended**: Using version-specific paths like
|
|
92
|
+
> `/cesdk/${CreativeEditorSDK.version}/` allows you to run multiple SDK versions in parallel,
|
|
93
|
+
> simplifies rollbacks, and ensures clean cache invalidation during upgrades.
|
|
94
|
+
|
|
95
|
+
## Understanding CE.SDK Assets
|
|
96
|
+
|
|
97
|
+
CE.SDK assets are distributed in an `imgly-assets.zip` file available for download from the IMG.LY CDN. Understanding what's in this archive helps you decide which assets to host and how to keep them updated.
|
|
98
|
+
|
|
99
|
+
### Asset Categories
|
|
100
|
+
|
|
101
|
+
The ZIP file contains directories organized by function:
|
|
102
|
+
|
|
103
|
+
| Directory | Contents | Version-Locked? | Required? |
|
|
104
|
+
| ---------------------------- | ------------------------------------------------------ | --------------- | ----------------------- |
|
|
105
|
+
| `core/` | WASM engine files (`.wasm`, `.data`, `worker-host.js`) | **Yes** | **Yes** |
|
|
106
|
+
| `ui/` | UI resources (audio waveform, fonts, stylesheets) | **Yes** | **Yes** |
|
|
107
|
+
| `emoji/` | Emoji assets | **Yes** | **Yes** |
|
|
108
|
+
| `fonts/` | System fonts | **Yes** | **Yes** |
|
|
109
|
+
| `i18n/` | Translations | **Yes** | No (bundled in SDK) |
|
|
110
|
+
| `ly.img.sticker/` | Stickers | No | If using default assets |
|
|
111
|
+
| `ly.img.sticker.misc/` | Additional stickers | No | If using default assets |
|
|
112
|
+
| `ly.img.vector.shape/` | Shapes and arrows | No | If using default assets |
|
|
113
|
+
| `ly.img.typeface/` | Font definitions | No | If using default assets |
|
|
114
|
+
| `ly.img.filter/` | Filter effects (LUT and duotone) | No | If using default assets |
|
|
115
|
+
| `ly.img.effect/` | Visual effects | No | If using default assets |
|
|
116
|
+
| `ly.img.blur/` | Blur presets | No | If using default assets |
|
|
117
|
+
| `ly.img.color.palette/` | Color palettes | No | If using default assets |
|
|
118
|
+
| `ly.img.crop.presets/` | Crop aspect ratios | No | If using default assets |
|
|
119
|
+
| `ly.img.page.presets/` | Page format presets | No | If using default assets |
|
|
120
|
+
| `ly.img.page.presets.video/` | Video page presets | No | If using default assets |
|
|
121
|
+
| `ly.img.caption.presets/` | Caption formatting presets | No | If using default assets |
|
|
122
|
+
| `ly.img.text.components/` | Text components | No | If using default assets |
|
|
123
|
+
| `ly.img.animation/` | Animation presets | No | If using default assets |
|
|
124
|
+
| `ly.img.animation.text/` | Text animation presets | No | If using default assets |
|
|
125
|
+
| `ly.img.image/` | Sample images (demo content) | No | No |
|
|
126
|
+
| `ly.img.video/` | Sample videos (demo content) | No | No |
|
|
127
|
+
| `ly.img.audio/` | Sample audio (demo content) | No | No |
|
|
128
|
+
| `ly.img.template/` | Design templates (demo content) | No | No |
|
|
129
|
+
| `ly.img.video.template/` | Video templates (demo content) | No | No |
|
|
130
|
+
|
|
131
|
+
For most integrations, you need `core/`, `ui/`, `emoji/`, `fonts/`, and the `ly.img.*` asset sources you use.
|
|
132
|
+
|
|
133
|
+
### Version-Locked vs. Independent Assets
|
|
134
|
+
|
|
135
|
+
**Version-locked assets** (`core/`, `ui/`, `i18n/`) must match your SDK version. Mismatched versions cause load errors—the engine will fail to initialize if core files don't match.
|
|
136
|
+
|
|
137
|
+
**Independent assets** (`ly.img.*` directories) can be updated separately. Configure these via asset source plugins (imported from `@cesdk/cesdk-js/plugins`), each of which accepts a `baseURL` option. Check the changelog when upgrading to see if asset versions have changed.
|
|
138
|
+
|
|
139
|
+
### Default Asset Sources
|
|
140
|
+
|
|
141
|
+
Adding the default asset source plugins registers these asset sources:
|
|
142
|
+
|
|
143
|
+
- `ly.img.sticker` - Stickers
|
|
144
|
+
- `ly.img.sticker.misc` - Additional stickers
|
|
145
|
+
- `ly.img.vector.shape` - Shapes and arrows
|
|
146
|
+
- `ly.img.typeface` - Font definitions
|
|
147
|
+
- `ly.img.color.palette` - Color palettes
|
|
148
|
+
- `ly.img.filter` - Filter effects
|
|
149
|
+
- `ly.img.effect` - Visual effects
|
|
150
|
+
- `ly.img.blur` - Blur presets
|
|
151
|
+
- `ly.img.crop.presets` - Crop aspect ratios
|
|
152
|
+
- `ly.img.page.presets` - Page format presets
|
|
153
|
+
- `ly.img.page.presets.video` - Video page presets
|
|
154
|
+
- `ly.img.caption.presets` - Caption formatting
|
|
155
|
+
- `ly.img.text.components` - Text components
|
|
156
|
+
- `ly.img.animation` - Animation presets
|
|
157
|
+
- `ly.img.animation.text` - Text animation presets
|
|
158
|
+
|
|
159
|
+
### Demo Asset Sources
|
|
160
|
+
|
|
161
|
+
Adding the `DemoAssetSources` and `UploadAssetSources` plugins registers sample content sources for development:
|
|
162
|
+
|
|
163
|
+
- `ly.img.image` - Sample images
|
|
164
|
+
- `ly.img.video` - Sample videos
|
|
165
|
+
- `ly.img.audio` - Sample audio
|
|
166
|
+
- `ly.img.template` - Design templates
|
|
167
|
+
- `ly.img.video.template` - Video templates
|
|
168
|
+
- `ly.img.image.upload`, `ly.img.video.upload`, `ly.img.audio.upload` - Upload sources
|
|
169
|
+
|
|
170
|
+
These are intended for development and prototyping—replace them with your own content in production.
|
|
171
|
+
|
|
172
|
+
## Configuration Options
|
|
173
|
+
|
|
174
|
+
Browser configuration involves three settings: `baseURL`, `core.baseURL`, and the `baseURL` option for asset sources.
|
|
175
|
+
|
|
176
|
+
### Editor Configuration
|
|
177
|
+
|
|
178
|
+
Pass configuration to `CreativeEditorSDK.create()`:
|
|
179
|
+
|
|
180
|
+
```javascript
|
|
181
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
182
|
+
|
|
183
|
+
const config = {
|
|
184
|
+
baseURL: `https://cdn.yourdomain.com/cesdk/${CreativeEditorSDK.version}/`,
|
|
185
|
+
core: {
|
|
186
|
+
baseURL: 'core/'
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
CreativeEditorSDK.create(container, config).then((cesdk) => {
|
|
191
|
+
// Editor initialized with self-hosted assets
|
|
192
|
+
});
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**`baseURL`** — Base path for all engine assets. Can be an absolute URL or a relative path. Relative paths resolve against `window.location.href`. Defaults to the IMG.LY CDN.
|
|
196
|
+
|
|
197
|
+
**`core.baseURL`** — Path to WASM files. Defaults to `core/` relative to `baseURL`. Usually you don't need to change this unless hosting WASM files separately.
|
|
198
|
+
|
|
199
|
+
### Asset Sources Configuration
|
|
200
|
+
|
|
201
|
+
Configure asset sources after initializing the editor by adding individual asset source plugins:
|
|
202
|
+
|
|
203
|
+
```javascript
|
|
204
|
+
import {
|
|
205
|
+
BlurAssetSource,
|
|
206
|
+
ColorPaletteAssetSource,
|
|
207
|
+
CropPresetsAssetSource,
|
|
208
|
+
DemoAssetSources,
|
|
209
|
+
EffectsAssetSource,
|
|
210
|
+
FiltersAssetSource,
|
|
211
|
+
PagePresetsAssetSource,
|
|
212
|
+
StickerAssetSource,
|
|
213
|
+
TextAssetSource,
|
|
214
|
+
TextComponentAssetSource,
|
|
215
|
+
TypefaceAssetSource,
|
|
216
|
+
UploadAssetSources,
|
|
217
|
+
VectorShapeAssetSource
|
|
218
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
219
|
+
|
|
220
|
+
CreativeEditorSDK.create(container, config).then(async (cesdk) => {
|
|
221
|
+
const assetBaseURL = `https://cdn.yourdomain.com/cesdk/${CreativeEditorSDK.version}/`;
|
|
222
|
+
|
|
223
|
+
// Point default assets to your server
|
|
224
|
+
await cesdk.addPlugin(new BlurAssetSource({ baseURL: assetBaseURL }));
|
|
225
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource({ baseURL: assetBaseURL }));
|
|
226
|
+
await cesdk.addPlugin(new CropPresetsAssetSource({ baseURL: assetBaseURL }));
|
|
227
|
+
await cesdk.addPlugin(new EffectsAssetSource({ baseURL: assetBaseURL }));
|
|
228
|
+
await cesdk.addPlugin(new FiltersAssetSource({ baseURL: assetBaseURL }));
|
|
229
|
+
await cesdk.addPlugin(new PagePresetsAssetSource({ baseURL: assetBaseURL }));
|
|
230
|
+
await cesdk.addPlugin(new StickerAssetSource({ baseURL: assetBaseURL }));
|
|
231
|
+
await cesdk.addPlugin(new TextAssetSource({ baseURL: assetBaseURL }));
|
|
232
|
+
await cesdk.addPlugin(
|
|
233
|
+
new TextComponentAssetSource({ baseURL: assetBaseURL })
|
|
234
|
+
);
|
|
235
|
+
await cesdk.addPlugin(new TypefaceAssetSource({ baseURL: assetBaseURL }));
|
|
236
|
+
await cesdk.addPlugin(new VectorShapeAssetSource({ baseURL: assetBaseURL }));
|
|
237
|
+
|
|
238
|
+
// Optional: Add demo assets for development
|
|
239
|
+
await cesdk.addPlugin(
|
|
240
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
241
|
+
);
|
|
242
|
+
await cesdk.addPlugin(
|
|
243
|
+
new DemoAssetSources({
|
|
244
|
+
baseURL: assetBaseURL,
|
|
245
|
+
include: [
|
|
246
|
+
'ly.img.templates.blank.*',
|
|
247
|
+
'ly.img.templates.presentation.*',
|
|
248
|
+
'ly.img.templates.print.*',
|
|
249
|
+
'ly.img.templates.social.*',
|
|
250
|
+
'ly.img.image.*'
|
|
251
|
+
]
|
|
252
|
+
})
|
|
253
|
+
);
|
|
254
|
+
});
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
The `baseURL` for asset sources must be an absolute URL. The engine looks up asset definitions at `{baseURL}/{sourceId}/content.json` and references files like `{baseURL}/{sourceId}/images/example.png`.
|
|
258
|
+
|
|
259
|
+
### Engine-Level Assets
|
|
260
|
+
|
|
261
|
+
The engine uses additional assets for font fallback (Unicode character coverage) and emoji rendering. When you configure `baseURL` for self-hosting, the engine automatically uses the same location for these assets:
|
|
262
|
+
|
|
263
|
+
- **Font fallback files** — Used when text contains characters not covered by the selected font. Located at `{baseURL}/fonts/font-{index}.ttf`.
|
|
264
|
+
- **Emoji font** — The default emoji font (NotoColorEmoji.ttf). Located at `{baseURL}/emoji/NotoColorEmoji.ttf`.
|
|
265
|
+
|
|
266
|
+
The `fonts/` and `emoji/` directories are already included in the `imgly-assets.zip` download, so no additional configuration is needed when self-hosting—just ensure these directories are present at your `baseURL` location.
|
|
267
|
+
|
|
268
|
+
> **Note:** **Troubleshooting**: If you see 404 errors for font files when self-hosting, verify that the
|
|
269
|
+
> `fonts/` and `emoji/` directories from `imgly-assets.zip` are properly extracted at your
|
|
270
|
+
> `baseURL` location.
|
|
271
|
+
|
|
272
|
+
## Excluding Unused Asset Sources
|
|
273
|
+
|
|
274
|
+
If you only need a subset of default assets, simply omit the plugins you don't need. For example, to skip stickers and video page presets, add all plugins except `StickerAssetSource` and the video page presets:
|
|
275
|
+
|
|
276
|
+
```javascript
|
|
277
|
+
// Only add the plugins you need
|
|
278
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
279
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
280
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
281
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
282
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
283
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
284
|
+
// StickerAssetSource omitted
|
|
285
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
286
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
287
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
288
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
This reduces initial load time by not fetching unused asset definitions.
|
|
292
|
+
|
|
293
|
+
## Troubleshooting
|
|
294
|
+
|
|
295
|
+
### WASM Load Errors
|
|
296
|
+
|
|
297
|
+
If the engine fails to initialize with missing `.wasm` or `.data` errors, verify:
|
|
298
|
+
|
|
299
|
+
1. The assets ZIP version matches your SDK version
|
|
300
|
+
2. The `core.baseURL` points to the correct directory
|
|
301
|
+
3. Your server returns correct MIME types for `.wasm` files (`application/wasm`)
|
|
302
|
+
|
|
303
|
+
### 404 Errors for Assets
|
|
304
|
+
|
|
305
|
+
If the console shows 404 errors for `content.json` files:
|
|
306
|
+
|
|
307
|
+
1. Verify the `baseURL` passed to your asset source plugins is correct
|
|
308
|
+
2. Check that asset directories exist at the expected paths
|
|
309
|
+
3. Configure CORS headers if serving assets from a different domain
|
|
310
|
+
|
|
311
|
+
### CDN Warning in Console
|
|
312
|
+
|
|
313
|
+
The warning "You're using the IMG.LY CDN" appears when using default configuration. Set `baseURL` in your config to use self-hosted assets and remove the warning.
|
|
314
|
+
|
|
315
|
+
## API Reference
|
|
316
|
+
|
|
317
|
+
| Method/Config | Purpose |
|
|
318
|
+
| --------------------------------------------- | ----------------------------------------------------------- |
|
|
319
|
+
| `CreativeEditorSDK.create(container, config)` | Initialize editor with configuration |
|
|
320
|
+
| `config.baseURL` | Base path for all engine assets (including fonts and emoji) |
|
|
321
|
+
| `config.core.baseURL` | Path to WASM/core files (relative to baseURL) |
|
|
322
|
+
| `cesdk.addPlugin(new XyzAssetSource())` | Add individual asset source plugins |
|
|
323
|
+
| `CreativeEditorSDK.version` | Get current SDK version string |
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## More Resources
|
|
328
|
+
|
|
329
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
330
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
331
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
332
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|