跳转到内容

包和公开入口

当前所有公开包版本都是 1.2.0,通过 npm latest tag 分发。只有 package.jsonexports 暴露的入口属于公共 API;src/*dist/* 和测试 helper 不在兼容范围内。

如果你在做普通剪辑应用,先看我需要安装哪些包。本页主要供查询和底层扩展使用。

所有包都会随同一个版本发布,但“已发布到 npm”不表示它们具有相同的兼容承诺:

层级兼容承诺
产品应用入口@aelionsdk/sdk@aelionsdk/export@aelionsdk/vite-plugin面向应用开发者;优先保持源码和行为兼容,弃用后按版本政策保留迁移窗口
扩展作者入口@aelionsdk/material-sdk@aelionsdk/project-schema面向 Material、导入器和工程工具作者;协议与 Schema 有显式版本和 migration
高级执行层corecapabilitymediamaterial-compilerrender-irrenderer-workeraudiotransaction面向自定义宿主和引擎贡献者;公共 exports 仍受 API snapshot 管理,破坏性变更按 SemVer 与弃用窗口处理

应用应优先只依赖产品应用入口。直接依赖高级执行层等同于选择更窄的兼容边界,并需要 自行跟进 CHANGELOG、能力矩阵和资源生命周期变化。

大多数业务代码的入口:

  • Aelion.createSession()
  • createComposition()CompositionLayerClip
  • createProject()ProjectBuilder
  • seconds()milliseconds()frames()
  • ProductionMediaProviderByteMediaProvider
  • attachPreviewCanvas()
  • session.audio 的分析、波形、静音移除与母带;
  • revision 持久化、WebAV/Diffusion 迁移和隔离 Worker 扩展;
  • aelion-migrate 文件 CLI 和 @aelionsdk/sdk/migrate-cli Node 入口;
  • Session、Player、Transaction、Preview、Export 的公开类型;
  • RuntimeMaterialRegistry 和默认 Schema。
import {
Aelion,
ProductionMediaProvider,
attachPreviewCanvas,
createComposition,
seconds,
} from '@aelionsdk/sdk';

createComposition() 是产品级创作入口;createProject() 是媒体导入和 Schema 级操作使用的 Builder 入口。两者不是两套工程格式。

产品层通常直接使用 Sink 和远程导出类型:

  • SeekableMemorySink
  • OpfsSeekableSink
  • EXPORT_PROFILES
  • RemoteExportProvider / RemoteExportAuthorizer
  • checkpoint、Worker exporter 和底层 profile 函数。
import { OpfsSeekableSink, type RemoteExportProvider } from '@aelionsdk/export';

通过 Session 导出时,不需要直接调用底层 exportMp4()exportWebM()

Vite 配置:

import { aelion } from '@aelionsdk/vite-plugin';
export default defineConfig({ plugins: [aelion()] });

它负责 Renderer Worker、Export Worker 和 AudioWorklet 构建入口。同一个包还导出 AelionWebpackPlugin(Webpack 5/Rspack)、loadAelionRuntimeAssets()(自定义复制) 和 aelionRuntimeAssetUrls()(Next client boundary / CDN)。所有路径最终都显式传给 AelionSessionOptions.runtimeAssets

给 Material 作者和 Catalog/安装系统使用:

  • materialGraph()materialDefinition()
  • packMaterialPackage()
  • MaterialRegistryMaterialCatalog
  • MaterialLabSession
  • 签名、TrustStore、migration、Golden helper。
  • aelion-material 脚手架、校验、类型生成、预览报告、Golden 和确定性打包 CLI。
主要内容谁会直接用
@aelionsdk/coreAelionError、Diagnostic、时间/帧/采样换算、JSON 类型错误处理、底层扩展
@aelionsdk/project-schemaProject v1 类型、ProjectValidator、canonical clone、输入 admission自定义 Project 工具、服务端校验
@aelionsdk/transactionEditingCommands、Transaction Engine、History、ChangeSet引擎贡献者、自定义宿主
@aelionsdk/render-irProject 编译、音视频求值、色彩描述、compile stats自定义 renderer/exporter
@aelionsdk/mediaRangeReader、MP4/WebM 索引、seek/decode、CacheStore、proxy/governor自定义媒体来源和缓存
@aelionsdk/audioPCM 混音、AudioWorklet clock、ring/queue、视频调度自定义音频宿主和分析
@aelionsdk/renderer-workerWorker client/protocol、WebGL2/WebGPU 合成、帧结果自定义渲染表面
@aelionsdk/capabilityGPU、codec、音频、存储和 WASM 探测独立能力实验和宿主
@aelionsdk/material-compilerGraph 类型检查、Core Node、WebGL2/WebGPU 编译和预算Material 工具和自定义宿主
Application
├─ @aelionsdk/sdk
├─ @aelionsdk/export 只为 Sink/Remote 类型
└─ @aelionsdk/vite-plugin 可选,仅 Vite 构建配置
@aelionsdk/sdk
→ project-schema / transaction / render-ir
→ media / audio / renderer-worker / export
→ capability / material-compiler

应用不应把 SDK 内部依赖关系复制成自己的横向调用网络。能从 Session 获得的功能就从 Session 使用,这样升级时只需要跟踪公共接口。

每个符号的参数、返回类型和源码链接见侧栏 API Reference。RC 升级时还可以查看 packages/sdk/api-snapshot.md 的导出变化。