@volcengine/amk-editor 0.0.2-beta.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/amk-editor.d.ts +42 -1
- package/dist/api/client.d.ts +22 -0
- package/dist/api/preset-library.d.ts +3 -1
- package/dist/api/project.d.ts +6 -2
- package/dist/export-task-polling.d.ts +15 -0
- package/dist/header.d.ts +20 -0
- package/dist/i18n/keys.d.ts +15 -0
- package/dist/index.js +17458 -3568
- package/dist/public-types.d.ts +19 -2
- package/dist/refresh-play-info.d.ts +3 -1
- package/dist/task-polling.d.ts +1 -1
- package/dist/task-query-status.d.ts +10 -0
- package/dist/tos-upload.d.ts +11 -0
- package/dist/types.d.ts +14 -9
- package/dist/veveditor.css +528 -3
- package/package.json +3 -2
package/dist/public-types.d.ts
CHANGED
|
@@ -5,6 +5,23 @@
|
|
|
5
5
|
* 避免公网用户安装 amk-editor 时还需要访问内网依赖。
|
|
6
6
|
*/
|
|
7
7
|
export type VeVeditorTheme = 'light' | 'dark';
|
|
8
|
+
export type VeVeditorMediaErrorCategory = 'aborted' | 'network' | 'network_or_cors' | 'decode' | 'unsupported' | 'cors' | 'render' | 'initialization' | 'unknown';
|
|
9
|
+
export interface VeVeditorMediaError {
|
|
10
|
+
name: 'VideoEditorMediaError';
|
|
11
|
+
type: 'video' | 'audio' | 'image' | string;
|
|
12
|
+
phase: 'init' | 'load' | 'decode' | 'render';
|
|
13
|
+
code: string;
|
|
14
|
+
category: VeVeditorMediaErrorCategory;
|
|
15
|
+
message: string;
|
|
16
|
+
url?: string;
|
|
17
|
+
nativeCode?: number;
|
|
18
|
+
possibleCauses: string[];
|
|
19
|
+
cause?: {
|
|
20
|
+
name?: string;
|
|
21
|
+
message: string;
|
|
22
|
+
};
|
|
23
|
+
originalEvent?: Event;
|
|
24
|
+
}
|
|
8
25
|
export interface VeVeditorMaterialItem {
|
|
9
26
|
id?: string;
|
|
10
27
|
type?: 'video' | 'audio' | 'image' | string;
|
|
@@ -104,8 +121,8 @@ export interface VeVeditorOptions<TMaterialOptions = VeVeditorMaterialOptions, T
|
|
|
104
121
|
action?: 'delete' | 'add';
|
|
105
122
|
item?: unknown;
|
|
106
123
|
}) => void;
|
|
107
|
-
onNodePreviewError?: (type: 'video' | 'audio', node: unknown) => void;
|
|
108
|
-
onPreviewNodeRefresh?: (type: 'video' | 'audio', node: unknown) => void | Promise<void>;
|
|
124
|
+
onNodePreviewError?: (type: 'video' | 'audio' | 'image', node: unknown, error?: VeVeditorMediaError) => void;
|
|
125
|
+
onPreviewNodeRefresh?: (type: 'video' | 'audio' | 'image', node: unknown) => void | Promise<void>;
|
|
109
126
|
onBeforeUndo?: (payload: unknown) => boolean | void;
|
|
110
127
|
onBeforeRedo?: (payload: unknown) => boolean | void;
|
|
111
128
|
onBeforeTimestampMount?: (params: Record<string, unknown>) => boolean | Promise<boolean>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { MaterialItem } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* 业务方回写的播放信息补丁;未返回的字段保持原样。
|
|
4
|
-
*
|
|
4
|
+
* 优先按 SDK 内部 material_id 匹配,随后按业务 source_material_id 兜底;
|
|
5
|
+
* 两个标识都没有的补丁才按数组下标兜底。
|
|
6
|
+
* 可更新 url / poster / sprite / source_material_id 等。
|
|
5
7
|
* material_id 为 SDK 内部字段,补丁中的同名字段会被忽略。
|
|
6
8
|
*/
|
|
7
9
|
export type MaterialPlayInfoPatch = Partial<MaterialItem> & {
|
package/dist/task-polling.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export type TaskPollingController = {
|
|
|
4
4
|
};
|
|
5
5
|
export declare function startTaskPolling(options: {
|
|
6
6
|
poll: () => Promise<boolean>;
|
|
7
|
-
onError?: (error: unknown) => void
|
|
7
|
+
onError?: (error: unknown) => void | Promise<void>;
|
|
8
8
|
getDelayMs?: (attempt: number) => number;
|
|
9
9
|
}): TaskPollingController;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 查询任务信息 API 的官方响应状态。
|
|
3
|
+
* @see https://docs.volcengine.com/docs/6448/2278532?lang=zh
|
|
4
|
+
*/
|
|
5
|
+
export type AmkTaskQueryStatus = 'running' | 'completed' | 'failed';
|
|
6
|
+
/**
|
|
7
|
+
* `success` 表示查询请求本身是否成功;查询成功后才读取任务 `status`。
|
|
8
|
+
* 非官方响应同样按失败收口,避免未知响应被无限轮询。
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveAmkTaskQueryStatus(payload: unknown): AmkTaskQueryStatus;
|
package/dist/tos-upload.d.ts
CHANGED
|
@@ -31,12 +31,23 @@ interface RefreshTosMaterialUrlsOptions {
|
|
|
31
31
|
storage: AmkEditorStorageConfig;
|
|
32
32
|
createClient?: UploadFilesToTosOptions['createClient'];
|
|
33
33
|
}
|
|
34
|
+
/** TOS 素材的稳定标识已包含 bucket 与 object key,无需额外持久化内部字段。 */
|
|
35
|
+
export declare function parseTosResourceUrl(value: unknown): {
|
|
36
|
+
bucket: string;
|
|
37
|
+
key: string;
|
|
38
|
+
} | null;
|
|
34
39
|
/** 使用宿主下发的临时 STS 将本地文件直传客户 TOS,并转换为编辑器素材。 */
|
|
35
40
|
export declare function uploadFilesToTos(options: UploadFilesToTosOptions): Promise<MaterialItem[]>;
|
|
36
41
|
/** 为已持久化的私有 TOS 素材重新生成播放签名,供初始化和按需刷新使用。 */
|
|
37
42
|
export declare function refreshTosMaterialUrls(options: RefreshTosMaterialUrlsOptions): Promise<Array<Partial<MaterialItem> & {
|
|
38
43
|
material_id: string;
|
|
39
44
|
}>>;
|
|
45
|
+
/** 将任意任务产物中的 tos:// 地址批量签成浏览器可访问的 HTTP URL。 */
|
|
46
|
+
export declare function signTosResourceUrls(options: {
|
|
47
|
+
urls: unknown[];
|
|
48
|
+
storage: AmkEditorStorageConfig;
|
|
49
|
+
createClient?: UploadFilesToTosOptions['createClient'];
|
|
50
|
+
}): Promise<unknown[]>;
|
|
40
51
|
/** 为资产库导入的 TOS 素材签发播放 URL;稳定身份仍保留在 source_material_id。 */
|
|
41
52
|
export declare function signTosImportedMaterialUrls(options: {
|
|
42
53
|
materials: MaterialItem[];
|
package/dist/types.d.ts
CHANGED
|
@@ -24,13 +24,13 @@ export interface AmkMaterialImportRequestOptions {
|
|
|
24
24
|
onMaterialsImported?: (materials: MaterialItem[]) => void | Promise<void>;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
27
|
+
* 抽帧产物的稳定存储身份。TOS 产物会保存完整 `tos://bucket/key`,
|
|
28
|
+
* SDK 用它在签名 URL 过期后重新签发;非 TOS 业务仍可使用自定义字段。
|
|
29
29
|
*/
|
|
30
30
|
export interface RecommendedExtractStorageFields {
|
|
31
|
-
/**
|
|
31
|
+
/** 封面图稳定身份;内置 TOS 链路保存 `tos://bucket/key`。 */
|
|
32
32
|
poster_storage_key?: string;
|
|
33
|
-
/**
|
|
33
|
+
/** 与 sprite.storeurls 等长的稳定身份数组;内置 TOS 链路保存 tos:// 地址。 */
|
|
34
34
|
sprite_storage_keys?: string[];
|
|
35
35
|
}
|
|
36
36
|
export interface PersistExtractUrlsResult {
|
|
@@ -60,7 +60,8 @@ export interface MaterialConfig {
|
|
|
60
60
|
onMaterialsImported?: (materials: MaterialItem[]) => void | Promise<void>;
|
|
61
61
|
/**
|
|
62
62
|
* 刷新播放信息。未配置时用素材库已有字段;
|
|
63
|
-
*
|
|
63
|
+
* 配置后:入参为待刷新素材列表,支持批量;返回补丁优先按 material_id 匹配,
|
|
64
|
+
* source_material_id 次之,两者都未返回时才按数组顺序兜底,
|
|
64
65
|
* 返回单条或数组补丁覆盖原素材的播放字段(url / poster / sprite / source_material_id 等)。
|
|
65
66
|
* 补丁不得改写 material_id(服务端字段,业务传了也不入库)。
|
|
66
67
|
*/
|
|
@@ -70,7 +71,8 @@ export interface MaterialConfig {
|
|
|
70
71
|
* SDK 会先用临时链上屏/落盘,再后台调用本回调换链;失败则保留临时链。
|
|
71
72
|
* 未配置则只落盘临时链;若带 auth_key 且过期,SDK 会自动重抽。
|
|
72
73
|
* 推荐返回 urls + materialPatch,把刷新 URL 所需的 storage key 或其他业务字段写入素材。
|
|
73
|
-
* SDK
|
|
74
|
+
* SDK 不限制其他 materialPatch 字段;poster_storage_key / sprite_storage_keys
|
|
75
|
+
* 中的 `tos://` 地址会作为后续自动重签依据。
|
|
74
76
|
* 兼容只返回 string[],但该形式无法附带业务字段。
|
|
75
77
|
*/
|
|
76
78
|
onPersistExtractUrls?: (params: {
|
|
@@ -86,6 +88,8 @@ export interface AmkEditorHeaderTitleUpdateSuccess {
|
|
|
86
88
|
}
|
|
87
89
|
export interface AmkEditorHeaderConfig {
|
|
88
90
|
show?: boolean;
|
|
91
|
+
/** 是否展示导出任务列表入口,默认开启。 */
|
|
92
|
+
exportTaskList?: boolean;
|
|
89
93
|
/**
|
|
90
94
|
* When set, the header is rendered into this element instead of inside the
|
|
91
95
|
* editor root. Use this to place a full-width header above a host split layout.
|
|
@@ -114,13 +118,14 @@ export interface AmkEditorUploadSTSCredentials {
|
|
|
114
118
|
}
|
|
115
119
|
/**
|
|
116
120
|
* 产物 / 主动上传的存储目标。
|
|
117
|
-
* `media_output_destination` 用于 TOS 直传的 Bucket
|
|
121
|
+
* `media_output_destination` 用于 TOS 直传的 Bucket 定位,并默认写入会产生媒体产物的 AMK tools 请求体。
|
|
118
122
|
* @see https://docs.volcengine.com/docs/6448/2386113
|
|
119
123
|
*/
|
|
120
124
|
export interface AmkEditorStorageConfig {
|
|
121
125
|
/**
|
|
122
|
-
* 处理产物存储目标。支持 `vod://<空间名>` 或 `tos
|
|
123
|
-
* 配置后任务结果中的 url
|
|
126
|
+
* 处理产物存储目标。支持 `vod://<空间名>` 或 `tos://<桶名>/<可选子目录>`。
|
|
127
|
+
* 配置后任务结果中的 url 为对应资源地址,而不是临时下载链;当返回
|
|
128
|
+
* `tos://bucket/key` 且同时配置 getUploadSTS 时,SDK 会自动签成 HTTP 播放地址。
|
|
124
129
|
*/
|
|
125
130
|
media_output_destination?: string;
|
|
126
131
|
/**
|