@xmov/avatar 2.4.0 → 2.5.0-alpha.1
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 +34 -6
- package/package-dist/agent/avatar.cjs +1 -0
- package/package-dist/agent/avatar.modern.js +1 -0
- package/package-dist/agent/avatar.module.js +1 -0
- package/package-dist/agent/avatar.umd.js +1 -0
- package/package-dist/agent/index.d.ts +42 -0
- package/{dist/agent/types.d.ts → package-dist/agent/public-types.d.ts} +115 -116
- package/package-dist/index.cjs +3 -0
- package/package-dist/index.d.ts +34 -0
- package/package-dist/index.modern.js +1 -0
- package/package-dist/index.module.js +1 -0
- package/package-dist/index.umd.js +14 -0
- package/package-dist/public-types.d.ts +205 -0
- package/package.json +41 -33
- package/dist/agent/avatar.cjs +0 -1
- package/dist/agent/avatar.modern.js +0 -1
- package/dist/agent/avatar.module.js +0 -1
- package/dist/agent/avatar.umd.js +0 -1
- package/dist/agent/index.d.ts +0 -137
- package/dist/baseRender/AudioRenderer.d.ts +0 -46
- package/dist/baseRender/AudioWorklet.d.ts +0 -78
- package/dist/baseRender/AvatarRenderer.d.ts +0 -225
- package/dist/baseRender/MSEAudioPlayer.d.ts +0 -51
- package/dist/baseRender/UIRenderer.d.ts +0 -39
- package/dist/baseRender/pcm-audio-processor.d.ts +0 -63
- package/dist/control/APIForwarder.d.ts +0 -23
- package/dist/control/DataCacheQueue.d.ts +0 -69
- package/dist/control/EventDispatcher.d.ts +0 -35
- package/dist/control/RenderScheduler.d.ts +0 -171
- package/dist/control/SaveAndDownload.d.ts +0 -14
- package/dist/control/StreamingClient.d.ts +0 -33
- package/dist/control/VideoPlayer.d.ts +0 -47
- package/dist/control/ttsa.d.ts +0 -125
- package/dist/encoding/media-recorder-encoder.d.ts +0 -33
- package/dist/encoding/pcm-webm-encoder.d.ts +0 -13
- package/dist/encoding/webcodec-opus-encoder.d.ts +0 -41
- package/dist/encoding/webm-muxer.d.ts +0 -90
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -251
- package/dist/index.modern.js +0 -2
- package/dist/index.modern.js.map +0 -1
- package/dist/index.module.js +0 -2
- package/dist/index.module.js.map +0 -1
- package/dist/index.umd.js +0 -2
- package/dist/index.umd.js.map +0 -1
- package/dist/modules/Composition.d.ts +0 -28
- package/dist/modules/ResourceManager.d.ts +0 -299
- package/dist/modules/TrackRenderer/base-track.d.ts +0 -4
- package/dist/modules/TrackRenderer/index.d.ts +0 -12
- package/dist/modules/TrackRenderer/render-implements.d.ts +0 -19
- package/dist/modules/TrackRenderer/track-pic.d.ts +0 -8
- package/dist/modules/TrackRenderer/track-subtitle.d.ts +0 -8
- package/dist/modules/cache-manager.d.ts +0 -5
- package/dist/modules/decoder.d.ts +0 -84
- package/dist/modules/error-handle.d.ts +0 -17
- package/dist/modules/network.d.ts +0 -21
- package/dist/modules/sentry-reporter.d.ts +0 -58
- package/dist/proto/face_data_pb.d.ts +0 -0
- package/dist/types/capability.d.ts +0 -15
- package/dist/types/error.d.ts +0 -70
- package/dist/types/event.d.ts +0 -25
- package/dist/types/frame-data.d.ts +0 -107
- package/dist/types/index.d.ts +0 -196
- package/dist/types/render.d.ts +0 -18
- package/dist/utils/DataInterface.d.ts +0 -113
- package/dist/utils/GLDevice.d.ts +0 -46
- package/dist/utils/GLPipeline.d.ts +0 -84
- package/dist/utils/GLPipelineDebugTools.d.ts +0 -5
- package/dist/utils/Math.d.ts +0 -21
- package/dist/utils/__tests__/capability-checker.test.d.ts +0 -1
- package/dist/utils/audio-session.d.ts +0 -11
- package/dist/utils/audio.d.ts +0 -1
- package/dist/utils/capability-checker.d.ts +0 -28
- package/dist/utils/encodeToken.d.ts +0 -14
- package/dist/utils/face.d.ts +0 -1
- package/dist/utils/float32-decoder.d.ts +0 -26
- package/dist/utils/fpsTracker.d.ts +0 -27
- package/dist/utils/index.d.ts +0 -22
- package/dist/utils/logger.d.ts +0 -9
- package/dist/utils/media-recorder-timestamp.d.ts +0 -15
- package/dist/utils/pcmAnalyzer.d.ts +0 -40
- package/dist/utils/perfermance.d.ts +0 -15
- package/dist/utils/request.d.ts +0 -20
- package/dist/utils/requestAnimateFrames.d.ts +0 -31
- package/dist/utils/time.d.ts +0 -9
- package/dist/utils/video-probe-asset.d.ts +0 -28
- package/dist/view/DebugOverlay.d.ts +0 -54
- package/dist/worker/streaming-video.d.ts +0 -1
- package/src/baseRender/AudioRenderer.ts +0 -328
- package/src/baseRender/AudioWorklet.ts +0 -776
- package/src/baseRender/AvatarRenderer.ts +0 -1550
- package/src/baseRender/MSEAudioPlayer.ts +0 -254
- package/src/baseRender/UIRenderer.ts +0 -195
- package/src/baseRender/pcm-audio-processor.js +0 -267
- package/src/control/APIForwarder.ts +0 -67
- package/src/control/DataCacheQueue.ts +0 -372
- package/src/control/EventDispatcher.ts +0 -106
- package/src/control/RenderScheduler.ts +0 -1000
- package/src/control/SaveAndDownload.js +0 -77
- package/src/control/StreamingClient.ts +0 -138
- package/src/control/VideoPlayer.ts +0 -306
- package/src/control/ttsa.ts +0 -754
- package/src/encoding/media-recorder-encoder.ts +0 -175
- package/src/encoding/pcm-webm-encoder.ts +0 -72
- package/src/encoding/webcodec-opus-encoder.ts +0 -258
- package/src/encoding/webm-muxer.ts +0 -337
- package/src/global.d.ts +0 -112
- package/src/index.ts +0 -2053
- package/src/modules/Composition.ts +0 -79
- package/src/modules/ResourceManager.ts +0 -926
- package/src/modules/TrackRenderer/base-track.ts +0 -7
- package/src/modules/TrackRenderer/index.ts +0 -40
- package/src/modules/TrackRenderer/render-implements.ts +0 -269
- package/src/modules/TrackRenderer/track-pic.ts +0 -19
- package/src/modules/TrackRenderer/track-subtitle.ts +0 -16
- package/src/modules/cache-manager.ts +0 -10
- package/src/modules/decoder.ts +0 -548
- package/src/modules/error-handle.ts +0 -20
- package/src/modules/network.ts +0 -71
- package/src/modules/sentry-reporter.ts +0 -171
- package/src/proto/face_data.proto +0 -45
- package/src/proto/face_data_pb.js +0 -1297
- package/src/proto/protobuf.min.js +0 -8
- package/src/types/capability.ts +0 -24
- package/src/types/error.ts +0 -211
- package/src/types/event.ts +0 -38
- package/src/types/frame-data.ts +0 -121
- package/src/types/index.ts +0 -220
- package/src/types/render.ts +0 -18
- package/src/utils/DataInterface.ts +0 -746
- package/src/utils/GLDevice.ts +0 -286
- package/src/utils/GLPipeline.ts +0 -1293
- package/src/utils/GLPipelineDebugTools.ts +0 -174
- package/src/utils/Math.ts +0 -266
- package/src/utils/__tests__/capability-checker.test.ts +0 -159
- package/src/utils/audio-session.ts +0 -144
- package/src/utils/audio.ts +0 -44
- package/src/utils/blueimp-md5.d.ts +0 -3
- package/src/utils/capability-checker.ts +0 -762
- package/src/utils/encodeToken.ts +0 -115
- package/src/utils/face.ts +0 -29
- package/src/utils/float32-decoder.js +0 -130
- package/src/utils/fpsTracker.ts +0 -100
- package/src/utils/index.ts +0 -182
- package/src/utils/logger.js +0 -36
- package/src/utils/media-recorder-timestamp.ts +0 -79
- package/src/utils/pcmAnalyzer.ts +0 -154
- package/src/utils/perfermance.ts +0 -141
- package/src/utils/request.ts +0 -107
- package/src/utils/requestAnimateFrames.ts +0 -195
- package/src/utils/time.ts +0 -32
- package/src/utils/video-probe-asset.ts +0 -99
- package/src/view/DebugOverlay.ts +0 -409
- package/src/worker/streaming-video.ts +0 -4647
- /package/{dist → package-dist}/agent/index.cjs +0 -0
- /package/{dist → package-dist}/agent/index.umd.js +0 -0
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BrowserClient,
|
|
3
|
-
defaultStackParser,
|
|
4
|
-
getDefaultIntegrations,
|
|
5
|
-
makeFetchTransport,
|
|
6
|
-
Scope,
|
|
7
|
-
browserTracingIntegration,
|
|
8
|
-
startSpan,
|
|
9
|
-
startInactiveSpan,
|
|
10
|
-
} from '@sentry/browser';
|
|
11
|
-
|
|
12
|
-
import type { SDKError } from 'types/error';
|
|
13
|
-
|
|
14
|
-
/** 渲染噪音 / 数据过期等高频低危错误码,直接过滤不上报 */
|
|
15
|
-
const NOISE_ERROR_CODES = ['3205', '3206', '3305', '30005'];
|
|
16
|
-
|
|
17
|
-
export interface SentryReporterOptions {
|
|
18
|
-
/** Traces 采样率,默认 1.0(100% 全量) */
|
|
19
|
-
tracesSampleRate?: number;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/** span 附加属性(兼容 Sentry SpanAttributeValue 的标量子集) */
|
|
23
|
-
type SpanData = Record<string, string | number | boolean | undefined>;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Sentry 错误上报器(隔离实例)
|
|
27
|
-
*
|
|
28
|
-
* 使用独立的 BrowserClient + Scope,不污染宿主应用的全局 Sentry 状态。
|
|
29
|
-
* 此文件仅在公有云构建(ENABLE_SENTRY=true)时被打包,
|
|
30
|
-
* 私有化构建时通过编译时常量 + 死代码消除完全移除。
|
|
31
|
-
*/
|
|
32
|
-
export class SentryReporter {
|
|
33
|
-
private client: BrowserClient;
|
|
34
|
-
private scope: Scope;
|
|
35
|
-
private tracesSampleRate: number;
|
|
36
|
-
|
|
37
|
-
constructor(dsn: string, options: SentryReporterOptions = {}) {
|
|
38
|
-
this.tracesSampleRate = options.tracesSampleRate ?? 1.0;
|
|
39
|
-
|
|
40
|
-
// 过滤掉依赖全局状态的集成,避免与宿主应用的 Sentry 实例冲突
|
|
41
|
-
const integrations = getDefaultIntegrations({}).filter(
|
|
42
|
-
(i) =>
|
|
43
|
-
![
|
|
44
|
-
'BrowserApiErrors',
|
|
45
|
-
'BrowserSession',
|
|
46
|
-
'Breadcrumbs',
|
|
47
|
-
'GlobalHandlers',
|
|
48
|
-
'FunctionToString',
|
|
49
|
-
'Dedupe',
|
|
50
|
-
].includes(i.name),
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
// 显式加入 BrowserTracing(getDefaultIntegrations 未包含),
|
|
54
|
-
// 关闭页面加载/导航/请求自动追踪,只保留手动 startSpan 埋点,避免噪音 span
|
|
55
|
-
integrations.push(
|
|
56
|
-
browserTracingIntegration({
|
|
57
|
-
instrumentPageLoad: false,
|
|
58
|
-
instrumentNavigation: false,
|
|
59
|
-
traceFetch: false,
|
|
60
|
-
traceXHR: false,
|
|
61
|
-
}),
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
this.client = new BrowserClient({
|
|
65
|
-
dsn,
|
|
66
|
-
transport: makeFetchTransport,
|
|
67
|
-
stackParser: defaultStackParser,
|
|
68
|
-
integrations,
|
|
69
|
-
release: `xmov-avatar@${VERSION}`,
|
|
70
|
-
tracesSampleRate: this.tracesSampleRate,
|
|
71
|
-
beforeSend(event) {
|
|
72
|
-
// ① 白名单:仅上报 SDK 自身错误(source 标签由 scope 打标),过滤宿主页面异常
|
|
73
|
-
if (event.tags?.source !== 'xmov-avatar-sdk') {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
// ② 噪音码过滤:高频渲染噪音 / 数据过期类,避免事件量过大
|
|
77
|
-
const errorCode = String(event.tags?.error_code ?? '');
|
|
78
|
-
if (NOISE_ERROR_CODES.includes(errorCode)) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
// ③ 指纹去重:按「错误码 + 消息前缀」合并,同码同消息收敛为一个 Issue
|
|
82
|
-
event.fingerprint = [
|
|
83
|
-
errorCode || 'unknown',
|
|
84
|
-
String(event.message ?? '').slice(0, 64),
|
|
85
|
-
];
|
|
86
|
-
// ④ 上下文补全:浏览器/UA(app_id / session_id 等已在 scope 打标)
|
|
87
|
-
event.contexts = {
|
|
88
|
-
...(event.contexts ?? {}),
|
|
89
|
-
browser: { name: navigator.userAgent.slice(0, 200) },
|
|
90
|
-
};
|
|
91
|
-
return event;
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
this.scope = new Scope();
|
|
96
|
-
this.scope.setClient(this.client);
|
|
97
|
-
this.scope.setTag('sdk_version', VERSION);
|
|
98
|
-
this.scope.setTag('source', 'xmov-avatar-sdk');
|
|
99
|
-
this.client.init();
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* 上报 SDK 错误
|
|
104
|
-
*/
|
|
105
|
-
captureError(error: SDKError): void {
|
|
106
|
-
// 在隔离 scope 上设置本次错误的标签和上下文
|
|
107
|
-
this.scope.setTag('error_code', String(error.error_code));
|
|
108
|
-
this.scope.setTag('error_name', error.error_name);
|
|
109
|
-
this.scope.setTag('session_id', error.session_id);
|
|
110
|
-
this.scope.setExtra('code', error.code);
|
|
111
|
-
this.scope.setExtra('client_speak_id', error.client_speak_id);
|
|
112
|
-
this.scope.setExtra('timestamp', error.timestamp);
|
|
113
|
-
if (error.originalError) {
|
|
114
|
-
this.scope.setExtra('originalError', error.originalError);
|
|
115
|
-
}
|
|
116
|
-
this.scope.captureException(new Error(error.message));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* 在隔离 scope 上启动一个 span 并执行回调,回调返回时自动结束。
|
|
121
|
-
* 异常时 span 自动标记 error(由 startSpan 内部处理),span 数据发往本实例的 DSN。
|
|
122
|
-
*/
|
|
123
|
-
startSpan<T>(name: string, ctx: { op?: string; data?: SpanData }, fn: () => T): T {
|
|
124
|
-
return startSpan(
|
|
125
|
-
{
|
|
126
|
-
name,
|
|
127
|
-
op: ctx.op,
|
|
128
|
-
scope: this.scope,
|
|
129
|
-
attributes: ctx.data,
|
|
130
|
-
},
|
|
131
|
-
() => fn(),
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* 启动一个手动管理生命周期的 span(跨回调/异步时用),
|
|
137
|
-
* 返回的句柄在操作完成时调用 end() 结束 span。
|
|
138
|
-
*/
|
|
139
|
-
startInactiveSpan(name: string, ctx: { op?: string; data?: SpanData }): { end(): void } {
|
|
140
|
-
const span = startInactiveSpan({
|
|
141
|
-
name,
|
|
142
|
-
op: ctx.op,
|
|
143
|
-
scope: this.scope,
|
|
144
|
-
attributes: ctx.data,
|
|
145
|
-
});
|
|
146
|
-
return {
|
|
147
|
-
end: () => span?.end(),
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* 设置全局标签
|
|
153
|
-
*/
|
|
154
|
-
setTag(key: string, value: string): void {
|
|
155
|
-
this.scope.setTag(key, value);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* 设置用户信息
|
|
160
|
-
*/
|
|
161
|
-
setUser(user: { id?: string; ip_address?: string }): void {
|
|
162
|
-
this.scope.setUser(user);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* 销毁 Sentry 客户端,flush 未发送的事件
|
|
167
|
-
*/
|
|
168
|
-
async destroy(): Promise<void> {
|
|
169
|
-
await this.client.close(2000);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
syntax = "proto3";
|
|
2
|
-
|
|
3
|
-
message MeshData {
|
|
4
|
-
int32 index = 1;
|
|
5
|
-
repeated float weights = 2 [deprecated = true];
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
message JointData {
|
|
9
|
-
repeated float translate = 1;
|
|
10
|
-
bytes rotate = 2 [deprecated = true];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
message FaceFrameData {
|
|
14
|
-
int32 id = 1;
|
|
15
|
-
string s = 2;
|
|
16
|
-
int32 sf = 3;
|
|
17
|
-
int32 ef = 4;
|
|
18
|
-
|
|
19
|
-
bytes bsw = 5;
|
|
20
|
-
|
|
21
|
-
// v1 废弃字段
|
|
22
|
-
// repeated repeated float movable_joint_transforms = 6 [deprecated = true];
|
|
23
|
-
// int32 head_texture_model_index = 7 [deprecated = true];
|
|
24
|
-
// repeated float head_texture_pca_weights = 8 [deprecated = true];
|
|
25
|
-
// int32 teeth_texture_model_index = 9 [deprecated = true];
|
|
26
|
-
// repeated float teeth_texture_pca_weights = 10 [deprecated = true];
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// v2
|
|
30
|
-
bytes cs = 11;
|
|
31
|
-
repeated JointData js = 12;
|
|
32
|
-
repeated MeshData ms = 13;
|
|
33
|
-
|
|
34
|
-
int32 body_id = 14;
|
|
35
|
-
int32 face_frame_type = 15;
|
|
36
|
-
|
|
37
|
-
// 机器人表情块字段
|
|
38
|
-
int32 asf = 16;
|
|
39
|
-
int32 aef = 17;
|
|
40
|
-
string n = 18;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
message FaceFrameDataList {
|
|
44
|
-
repeated FaceFrameData data = 1;
|
|
45
|
-
}
|