@realsee/live 0.1.1 → 0.3.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 +111 -58
- package/docs/.nojekyll +1 -0
- package/docs/assets/custom.css +43 -0
- package/docs/assets/highlight.css +127 -0
- package/docs/assets/icons.css +1043 -0
- package/docs/assets/{images/icons.png → icons.png} +0 -0
- package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
- package/docs/assets/main.js +52 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1388 -0
- package/docs/assets/{images/widgets.png → widgets.png} +0 -0
- package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
- package/docs/classes/RTCProtocol.BrowserRTC.html +60 -0
- package/docs/classes/RTCProtocol.BrowserRTC4Chime.html +66 -0
- package/docs/classes/RTCProtocol.RTCExample.html +62 -814
- package/docs/classes/RTCProtocol.VRWebViewRTC.html +60 -0
- package/docs/classes/shared_utils.Subscribe.html +55 -596
- package/docs/enums/RTCProtocol.RTCJoinedInfoCodeEnum.html +9 -0
- package/docs/enums/RTCProtocol.RTCType.html +1 -185
- package/docs/enums/live.BuiltinActionType.html +15 -325
- package/docs/enums/live.BuiltinEventType.html +7 -268
- package/docs/enums/live.Command.html +7 -346
- package/docs/enums/live.MemUserStatus.html +1 -307
- package/docs/enums/live.MicroStatus.html +3 -258
- package/docs/enums/live.UserStatus.html +9 -287
- package/docs/enums/live.WebSocketCloseError.html +19 -382
- package/docs/enums/live.WebSocketErrorType.html +1 -307
- package/docs/enums/live.WebSocketState.html +13 -325
- package/docs/index.html +356 -510
- package/docs/interfaces/RTCProtocol.GetVoiceSignReturnType.html +1 -0
- package/docs/interfaces/RTCProtocol.RTCJoinedInfo.html +1 -0
- package/docs/interfaces/RTCProtocol.RTCProtocol-1.html +60 -765
- package/docs/interfaces/RTCProtocol.VRWebViewRTCOptions.html +1 -0
- package/docs/interfaces/live.Live.html +119 -1302
- package/docs/interfaces/live.LiveOptions.html +22 -499
- package/docs/interfaces/live.LiveReact.html +52 -984
- package/docs/modules/RTCProtocol.html +17 -361
- package/docs/modules/live.html +103 -1219
- package/docs/modules/shared_utils.html +10 -248
- package/docs/modules.html +1 -125
- package/lib/RTC/BrowserRTC.d.ts +30 -0
- package/lib/RTC/BrowserRTC.js +169 -0
- package/lib/RTC/BrowserRTC.js.map +1 -0
- package/lib/RTC/BrowserRTC4Chime.d.ts +53 -0
- package/lib/RTC/BrowserRTC4Chime.js +299 -0
- package/lib/RTC/BrowserRTC4Chime.js.map +1 -0
- package/lib/RTC/VRWebViewRTC.d.ts +23 -0
- package/lib/RTC/VRWebViewRTC.js +124 -0
- package/lib/RTC/VRWebViewRTC.js.map +1 -0
- package/lib/RTC/index.d.ts +22 -0
- package/lib/{RTCProtocol → RTC}/index.js +3 -7
- package/lib/RTC/index.js.map +1 -0
- package/lib/createLive.d.ts +1 -1
- package/lib/createLive.js +50 -22
- package/lib/createLive.js.map +1 -1
- package/lib/createLiveReact.d.ts +11 -10
- package/lib/createLiveReact.js +4 -6
- package/lib/createLiveReact.js.map +1 -1
- package/lib/shared-utils/Subscribe.d.ts +1 -1
- package/lib/typings/Chime/AttendeeResponse.d.ts +5 -0
- package/lib/typings/Chime/AttendeeResponse.js +3 -0
- package/lib/typings/Chime/AttendeeResponse.js.map +1 -0
- package/lib/typings/Chime/MeetingResponse.d.ts +12 -0
- package/lib/typings/Chime/MeetingResponse.js +3 -0
- package/lib/typings/Chime/MeetingResponse.js.map +1 -0
- package/lib/typings/Chime/MeetingSessionConfigurationOptions.d.ts +16 -0
- package/lib/typings/Chime/MeetingSessionConfigurationOptions.js +3 -0
- package/lib/typings/Chime/MeetingSessionConfigurationOptions.js.map +1 -0
- package/lib/typings/EventType.d.ts +10 -0
- package/lib/typings/GetVoiceSign.d.ts +11 -0
- package/lib/typings/GetVoiceSign.js +3 -0
- package/lib/typings/GetVoiceSign.js.map +1 -0
- package/lib/typings/Live.d.ts +6 -4
- package/lib/typings/LiveMsg.d.ts +4 -0
- package/lib/typings/LiveMsg.js +4 -0
- package/lib/typings/LiveMsg.js.map +1 -1
- package/lib/typings/LiveOptions.d.ts +3 -7
- package/lib/typings/RTCEventType.d.ts +2 -14
- package/lib/typings/RTCEventType.js +0 -7
- package/lib/typings/RTCEventType.js.map +1 -1
- package/lib/typings/RTCJoinedInfo.d.ts +28 -0
- package/lib/typings/RTCJoinedInfo.js +23 -0
- package/lib/typings/RTCJoinedInfo.js.map +1 -0
- package/lib/{RTCProtocol/index.d.ts → typings/RTCProtocol.d.ts} +1 -19
- package/lib/typings/RTCProtocol.js +9 -0
- package/lib/typings/RTCProtocol.js.map +1 -0
- package/lib/typings/VRWebViewRTCOptions.d.ts +6 -0
- package/lib/typings/VRWebViewRTCOptions.js +3 -0
- package/lib/typings/VRWebViewRTCOptions.js.map +1 -0
- package/lib/typings/WebSocket.d.ts +2 -1
- package/lib/typings/WebSocket.js +1 -0
- package/lib/typings/WebSocket.js.map +1 -1
- package/package.json +8 -3
- package/umd/{RTCProtocol.046933a5.js → RTCProtocol.543610f0.js} +1 -1
- package/umd/createLive.a6edf473.js +1 -0
- package/umd/createLiveReact.e21b4514.js +1 -0
- package/docs/assets/css/main.css +0 -2787
- package/docs/assets/js/main.js +0 -248
- package/docs/assets/js/search.js +0 -1
- package/lib/RTCProtocol/index.js.map +0 -1
- package/umd/createLive.6845145e.js +0 -1
- package/umd/createLiveReact.406cf5a3.js +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RTCJoinedInfo } from "./RTCJoinedInfo";
|
|
1
2
|
/**
|
|
2
3
|
* 用户的音量信息。
|
|
3
4
|
*/
|
|
@@ -13,15 +14,7 @@ export declare type RTCEventType = {
|
|
|
13
14
|
* 错误\异常
|
|
14
15
|
* @param error
|
|
15
16
|
*/
|
|
16
|
-
'error'(error: Error): void;
|
|
17
|
-
/**
|
|
18
|
-
* 即将执行初始化工作。
|
|
19
|
-
*/
|
|
20
|
-
'initWillStart'(): void;
|
|
21
|
-
/**
|
|
22
|
-
* 完成初始化
|
|
23
|
-
*/
|
|
24
|
-
'inited'(): void;
|
|
17
|
+
'error'(error: Error | RTCJoinedInfo): void;
|
|
25
18
|
/**
|
|
26
19
|
* 即将加入房间。
|
|
27
20
|
*/
|
|
@@ -40,8 +33,3 @@ export declare type RTCEventType = {
|
|
|
40
33
|
*/
|
|
41
34
|
'userVolumes'(userVolumes: UserVolume[]): void;
|
|
42
35
|
};
|
|
43
|
-
/**
|
|
44
|
-
* 错误枚举
|
|
45
|
-
*/
|
|
46
|
-
export declare enum RTCErrorType {
|
|
47
|
-
}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RTCErrorType = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* 错误枚举
|
|
6
|
-
*/
|
|
7
|
-
var RTCErrorType;
|
|
8
|
-
(function (RTCErrorType) {
|
|
9
|
-
})(RTCErrorType = exports.RTCErrorType || (exports.RTCErrorType = {}));
|
|
10
3
|
//# sourceMappingURL=RTCEventType.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTCEventType.js","sourceRoot":"","sources":["../../resources/typings/RTCEventType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RTCEventType.js","sourceRoot":"","sources":["../../resources/typings/RTCEventType.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare enum RTCJoinedInfoCodeEnum {
|
|
2
|
+
/**
|
|
3
|
+
* 成功
|
|
4
|
+
*/
|
|
5
|
+
Success = 0,
|
|
6
|
+
/**
|
|
7
|
+
* 失败
|
|
8
|
+
*/
|
|
9
|
+
Failure = 1,
|
|
10
|
+
/**
|
|
11
|
+
* 重复加入
|
|
12
|
+
*/
|
|
13
|
+
ReJoin = 2,
|
|
14
|
+
/**
|
|
15
|
+
* 无麦克风权限
|
|
16
|
+
*/
|
|
17
|
+
NoMicroPermission = 3
|
|
18
|
+
}
|
|
19
|
+
export interface RTCJoinedInfo {
|
|
20
|
+
code: RTCJoinedInfoCodeEnum;
|
|
21
|
+
message: string;
|
|
22
|
+
userId?: string;
|
|
23
|
+
roomId?: number;
|
|
24
|
+
errInfo?: {
|
|
25
|
+
trtcErrCode: number;
|
|
26
|
+
trtcErrMsg: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RTCJoinedInfoCodeEnum = void 0;
|
|
4
|
+
var RTCJoinedInfoCodeEnum;
|
|
5
|
+
(function (RTCJoinedInfoCodeEnum) {
|
|
6
|
+
/**
|
|
7
|
+
* 成功
|
|
8
|
+
*/
|
|
9
|
+
RTCJoinedInfoCodeEnum[RTCJoinedInfoCodeEnum["Success"] = 0] = "Success";
|
|
10
|
+
/**
|
|
11
|
+
* 失败
|
|
12
|
+
*/
|
|
13
|
+
RTCJoinedInfoCodeEnum[RTCJoinedInfoCodeEnum["Failure"] = 1] = "Failure";
|
|
14
|
+
/**
|
|
15
|
+
* 重复加入
|
|
16
|
+
*/
|
|
17
|
+
RTCJoinedInfoCodeEnum[RTCJoinedInfoCodeEnum["ReJoin"] = 2] = "ReJoin";
|
|
18
|
+
/**
|
|
19
|
+
* 无麦克风权限
|
|
20
|
+
*/
|
|
21
|
+
RTCJoinedInfoCodeEnum[RTCJoinedInfoCodeEnum["NoMicroPermission"] = 3] = "NoMicroPermission";
|
|
22
|
+
})(RTCJoinedInfoCodeEnum = exports.RTCJoinedInfoCodeEnum || (exports.RTCJoinedInfoCodeEnum = {}));
|
|
23
|
+
//# sourceMappingURL=RTCJoinedInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RTCJoinedInfo.js","sourceRoot":"","sources":["../../resources/typings/RTCJoinedInfo.ts"],"names":[],"mappings":";;;AACA,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAC/B;;OAEG;IACH,uEAAW,CAAA;IACX;;OAEG;IACH,uEAAW,CAAA;IACX;;OAEG;IACH,qEAAU,CAAA;IACV;;OAEG;IACH,2FAAqB,CAAA;AACvB,CAAC,EAjBW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAiBhC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { RTCEventType } from '../typings/RTCEventType';
|
|
2
1
|
import { Subscribe } from '../shared-utils/Subscribe';
|
|
2
|
+
import { RTCEventType } from './RTCEventType';
|
|
3
3
|
export declare enum RTCType {
|
|
4
4
|
realsee = "realsee",
|
|
5
5
|
custom = "custom"
|
|
@@ -39,22 +39,4 @@ export interface RTCProtocol extends Subscribe<RTCEventType> {
|
|
|
39
39
|
*/
|
|
40
40
|
shock(): void;
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
43
|
-
* RTCExample。
|
|
44
|
-
*/
|
|
45
|
-
export declare class RTCExample extends Subscribe<RTCEventType> implements RTCProtocol {
|
|
46
|
-
join(options: {
|
|
47
|
-
voiceId: string;
|
|
48
|
-
userId: string;
|
|
49
|
-
type: RTCType;
|
|
50
|
-
}): Promise<boolean>;
|
|
51
|
-
joined: boolean;
|
|
52
|
-
micro: boolean;
|
|
53
|
-
voiceId: string;
|
|
54
|
-
type: RTCType;
|
|
55
|
-
quit(): Promise<boolean>;
|
|
56
|
-
detectMicro(): Promise<boolean>;
|
|
57
|
-
toggleMicro(flag?: boolean): Promise<boolean>;
|
|
58
|
-
shock(): void;
|
|
59
|
-
}
|
|
60
42
|
export declare type RTCActionReactCallback = Pick<RTCProtocol, 'join' | 'quit' | 'shock' | 'toggleMicro' | 'detectMicro'>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RTCType = void 0;
|
|
4
|
+
var RTCType;
|
|
5
|
+
(function (RTCType) {
|
|
6
|
+
RTCType["realsee"] = "realsee";
|
|
7
|
+
RTCType["custom"] = "custom";
|
|
8
|
+
})(RTCType = exports.RTCType || (exports.RTCType = {}));
|
|
9
|
+
//# sourceMappingURL=RTCProtocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RTCProtocol.js","sourceRoot":"","sources":["../../resources/typings/RTCProtocol.ts"],"names":[],"mappings":";;;AAGA,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,8BAAmB,CAAA;IACnB,4BAAiB,CAAA;AACnB,CAAC,EAHW,OAAO,GAAP,eAAO,KAAP,eAAO,QAGlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VRWebViewRTCOptions.js","sourceRoot":"","sources":["../../resources/typings/VRWebViewRTCOptions.ts"],"names":[],"mappings":""}
|
|
@@ -35,7 +35,8 @@ export declare enum WebSocketErrorType {
|
|
|
35
35
|
MicroAuth = "MicroAuth",
|
|
36
36
|
DuplicateConnect = "DuplicateConnect",
|
|
37
37
|
IllegalURL = "IllegalURL",
|
|
38
|
-
Unknown = "Unknown"
|
|
38
|
+
Unknown = "Unknown",
|
|
39
|
+
IllegalArgs = "IllegalArgs"
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* WebSocket 异常关闭枚举:https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent。
|
package/lib/typings/WebSocket.js
CHANGED
|
@@ -35,6 +35,7 @@ var WebSocketErrorType;
|
|
|
35
35
|
WebSocketErrorType["DuplicateConnect"] = "DuplicateConnect";
|
|
36
36
|
WebSocketErrorType["IllegalURL"] = "IllegalURL";
|
|
37
37
|
WebSocketErrorType["Unknown"] = "Unknown";
|
|
38
|
+
WebSocketErrorType["IllegalArgs"] = "IllegalArgs";
|
|
38
39
|
})(WebSocketErrorType = exports.WebSocketErrorType || (exports.WebSocketErrorType = {}));
|
|
39
40
|
/**
|
|
40
41
|
* WebSocket 异常关闭枚举:https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocket.js","sourceRoot":"","sources":["../../resources/typings/WebSocket.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB;;OAEG;IACH,wEAAmB,CAAA;IAEnB;;OAEG;IACH,+DAAc,CAAA;IAEd;;OAEG;IACH,mDAAQ,CAAA;IAER;;OAEG;IACH,yDAAW,CAAA;IAEX;;OAEG;IACH,uDAAU,CAAA;AACZ,CAAC,EAzBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyBzB;AASD,IAAY,
|
|
1
|
+
{"version":3,"file":"WebSocket.js","sourceRoot":"","sources":["../../resources/typings/WebSocket.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB;;OAEG;IACH,wEAAmB,CAAA;IAEnB;;OAEG;IACH,+DAAc,CAAA;IAEd;;OAEG;IACH,mDAAQ,CAAA;IAER;;OAEG;IACH,yDAAW,CAAA;IAEX;;OAEG;IACH,uDAAU,CAAA;AACZ,CAAC,EAzBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyBzB;AASD,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,6CAAuB,CAAA;IACvB,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,yCAAmB,CAAA;IACnB,iDAA2B,CAAA;AAC7B,CAAC,EARW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAQ7B;AAED;;GAEG;AACH,IAAY,mBAsCX;AAtCD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,oDAA6B,CAAA;IAE7B;;OAEG;IACH,wDAAiC,CAAA;IAEjC;;OAEG;IACH,qDAA8B,CAAA;IAE9B;;OAEG;IACH,kDAA2B,CAAA;IAE3B;;OAEG;IACH,oDAA6B,CAAA;IAC7B;;OAEG;IACH,oDAA6B,CAAA;IAC7B;;OAEG;IACH,mDAA4B,CAAA;IAC5B;;OAEG;IACH,8CAAuB,CAAA;AAEzB,CAAC,EAtCW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAsC9B;AAGD,SAAgB,aAAa,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD,KAAK,IAAI,CAAC,CAAC;YACT,OAAO,mBAAmB,CAAC,QAAQ,CAAA;SACpC;QACD;YACE,MAAK;KACR;IAED,OAAO,mBAAmB,CAAC,WAAW,CAAA;AACxC,CAAC;AA5BD,sCA4BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@realsee/live",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0-alpha.1",
|
|
4
4
|
"description": "如视 Live SDK:基于如视 WebSocket 长链双工通信能力的前端封装,借助此 SDK 您可以快捷地实现具备同屏连线、实时语音的 VR 带看业务能力。",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -19,16 +19,19 @@
|
|
|
19
19
|
"@babel/core": "^7.15.0",
|
|
20
20
|
"@babel/preset-react": "^7.14.5",
|
|
21
21
|
"@babel/preset-typescript": "^7.15.0",
|
|
22
|
+
"@realsee/jsbridge-x": "^0.1.1",
|
|
22
23
|
"@types/react": "^17.0.20",
|
|
23
24
|
"@types/react-dom": "^17.0.9",
|
|
25
|
+
"@types/trtc-js-sdk": "^4.8.2",
|
|
26
|
+
"amazon-chime-sdk-js": "^2.27.0",
|
|
24
27
|
"babel-loader": "^8.2.2",
|
|
25
28
|
"del": "^6.0.0",
|
|
26
29
|
"html-webpack-plugin": "^5.3.2",
|
|
27
30
|
"react": "^17.0.2",
|
|
28
31
|
"react-dom": "^17.0.2",
|
|
29
32
|
"react-json-view": "^1.21.3",
|
|
30
|
-
"typedoc": "^0.
|
|
31
|
-
"typescript": "
|
|
33
|
+
"typedoc": "^0.22.9",
|
|
34
|
+
"typescript": "4.4.2",
|
|
32
35
|
"webpack": "^5.52.0",
|
|
33
36
|
"webpack-cli": "^4.8.0",
|
|
34
37
|
"webpack-dev-server": "^4.2.1",
|
|
@@ -37,6 +40,8 @@
|
|
|
37
40
|
"author": "BEIKE REALSEE TECHNOLOGY (HK) LIMITED",
|
|
38
41
|
"license": "SEE LICENSE IN TERMS.txt",
|
|
39
42
|
"peerDependencies": {
|
|
43
|
+
"amazon-chime-sdk-js": "^2.26.1",
|
|
44
|
+
"trtc-js-sdk": "^4.11.8",
|
|
40
45
|
"tslib": "^2.3.1"
|
|
41
46
|
}
|
|
42
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.LiveSDK=t():e.LiveSDK=t()}(self,(function(){return(()=>{"use strict";var e={508:(e,t,o)=>{o.d(t,{x:()=>i});const r=Symbol("$$LIVE_EVENT$$");function n(e){return e[r]||(e[r]={}),e[r]}class i{hasListener(e){const t=n(this);return t&&t[e]&&t[e].length>0}on(e,t,o){const r=n(this);return r[e]||(r[e]=[]),r[e].push([t,o||!1]),()=>this.off(e,t)}once(e,t){return this.on(e,t,!0)}off(e,t){if(void 0===e)return void(this[r]||delete this[r]);const o=n(this);if(o[e]||(o[e]=[]),void 0===t)return void(o[e].length=0);let i=0;for(;i<o[e].length&&o[e][i][0]!==t;i++);i<o[e].length&&o[e].splice(i,1)}emit(e,...t){let o=!1;const r=n(this)[e]||[];for(let n of r.slice()){const[r,i=!1]=n,s=r(...t);i&&this.off(e,r),!1===s&&(o=!0)}return o}}let s;s||(s={})}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.LiveSDK=t():e.LiveSDK=t()}(self,(function(){return(()=>{"use strict";var e={508:(e,t,o)=>{o.d(t,{x:()=>i});const r=Symbol("$$LIVE_EVENT$$");function n(e){return e[r]||(e[r]={}),e[r]}class i{hasListener(e){const t=n(this);return t&&t[e]&&t[e].length>0}on(e,t,o){const r=n(this);return r[e]||(r[e]=[]),r[e].push([t,o||!1]),()=>this.off(e,t)}once(e,t){return this.on(e,t,!0)}off(e,t){if(void 0===e)return void(this[r]||delete this[r]);const o=n(this);if(o[e]||(o[e]=[]),void 0===t)return void(o[e].length=0);let i=0;for(;i<o[e].length&&o[e][i][0]!==t;i++);i<o[e].length&&o[e].splice(i,1)}emit(e,...t){let o=!1;const r=n(this)[e]||[];for(let n of r.slice()){const[r,i=!1]=n,s=r(...t);i&&this.off(e,r),!1===s&&(o=!0)}return o}}let s;s||(s={})}},t={};function o(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,o),i.exports}o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{o.r(r),o.d(r,{RTCExample:()=>n});var e=o(508);let t;!function(e){e.realsee="realsee",e.custom="custom"}(t||(t={}));class n extends e.x{join(e){throw new Error("Method not implemented.")}joined=!1;micro=!1;voiceId="";type=t.realsee;async quit(){return!0}async detectMicro(){return!0}async toggleMicro(e){return!0}shock(){}}})(),r})()}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.LiveSDK=t():e.LiveSDK=t()}(self,(function(){return(()=>{"use strict";var e={900:(e,t,r)=>{r.d(t,{RTCExample:()=>o});var n=r(508);let s;!function(e){e.realsee="realsee",e.custom="custom"}(s||(s={}));class o extends n.x{join(e){throw new Error("Method not implemented.")}joined=!1;micro=!1;voiceId="";type=s.realsee;async quit(){return!0}async detectMicro(){return!0}async toggleMicro(e){return!0}shock(){}}},508:(e,t,r)=>{r.d(t,{x:()=>o});const n=Symbol("$$LIVE_EVENT$$");function s(e){return e[n]||(e[n]={}),e[n]}class o{hasListener(e){const t=s(this);return t&&t[e]&&t[e].length>0}on(e,t,r){const n=s(this);return n[e]||(n[e]=[]),n[e].push([t,r||!1]),()=>this.off(e,t)}once(e,t){return this.on(e,t,!0)}off(e,t){if(void 0===e)return void(this[n]||delete this[n]);const r=s(this);if(r[e]||(r[e]=[]),void 0===t)return void(r[e].length=0);let o=0;for(;o<r[e].length&&r[e][o][0]!==t;o++);o<r[e].length&&r[e].splice(o,1)}emit(e,...t){let r=!1;const n=s(this)[e]||[];for(let s of n.slice()){const[n,o=!1]=s,i=n(...t);o&&this.off(e,n),!1===i&&(r=!0)}return r}}let i;i||(i={})}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function t(e){return"[object Object]"===Object.prototype.toString.call(e)}function s(e,t){return e===t||typeof e==typeof t&&!(!Number.isNaN(e)||!Number.isNaN(t))}function o(e,r){return!!s(e,r)||(t(e)&&t(r)?function(e,t){const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(t);if(r.length!==n.length)return!1;for(let n=0,s=r.length;n<s;n++){const s=r[n];if(!o(e[s],t[s]))return!1}return!0}(e,r):!(!Array.isArray(e)||!Array.isArray(r))&&function(e,t){if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(!o(e[r],t[r]))return!1;return!0}(e,r))}function i(e,r,n={deep:!1}){return n.deep?o(e,r):function(e,r){return!!s(e,r)||(t(e)&&t(r)?function(e,t){const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(t);if(r.length!==n.length)return!1;for(let n=0,o=r.length;n<o;n++){const o=r[n];if(!s(e[o],t[o]))return!1}return!0}(e,r):!(!Array.isArray(e)||!Array.isArray(r))&&function(e,t){if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(!s(e[r],t[r]))return!1;return!0}(e,r))}(e,r)}r.r(n),r.d(n,{createLive:()=>E});var a=r(508);let c,u,h,d,f,l,y;!function(e){e[e.NOTINITIALIZED=-1]="NOTINITIALIZED",e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSING=2]="CLOSING",e[e.CLOSED=3]="CLOSED"}(c||(c={})),function(e){e.Error="Error",e.Close="Close",e.MicroAuth="MicroAuth",e.DuplicateConnect="DuplicateConnect",e.IllegalURL="IllegalURL",e.Unknown="Unknown",e.IllegalArgs="IllegalArgs"}(u||(u={})),function(e){e.Err_1001="CLOSE_GOING_AWAY",e.Err_1002="CLOSE_PROTOCOL_ERROR",e.Err_1003="CLOSE_UNSUPPORTED",e.Err_1006="CLOSE_ABNORMAL",e.Err_1007="Unsupported Data",e.Err_1008="Policy Violation",e.Err_1009="CLOSE_TOO_LARGE",e.Err_unknown="unknown"}(h||(h={})),function(e){e.SelfUserInfo="SELF_USER_INFO",e.RoomInfo="ROOM_INFO",e.RTCInfo="RTC_INFO",e.UserList="USER_LIST",e.BuiltinMsg="BUILTIN_MSG",e.CustomEvent="CUSTOM_EVENT",e.KeyframeSync="KEYFRAME_SYNC",e.UserKickOut="USER_KICK_OUT"}(d||(d={})),function(e){e.UserChange="user_change",e.RoomChange="room_change"}(f||(f={})),function(e){e.UserMicroStatus="change_micro_status",e.UserMicroStatusSync="sync_micro_status",e.UserPermission="change_permission",e.UserStatus="change_status",e.UserInfo="change_info",e.RoomClose="close"}(l||(l={})),function(e){e.OPEN="OPEN",e.CLOSE="CLOSE"}(y||(y={}));var g=r(900);class m{readyState=c.NOTINITIALIZED;canSync=!0;connecting=!1;keyframes={};constructor(e){this.options=Object.assign({autoConnect:!0,healthCheck:3e3},e)}checkReadyState=e=>{do{if(!this.webSocket){this.readyState!==c.NOTINITIALIZED&&(this.readyState=c.NOTINITIALIZED,e.emit("ws.readyStateUpdate",this.readyState));break}const t=this.webSocket.readyState;t!==this.readyState&&(this.readyState=t,e.emit("ws.readyStateUpdate",this.readyState))}while(0);return this.readyState};dispose=()=>{console.log("dispose"),this.disposeWebSocket(),this.connecting=!1,this.healthCheckId&&(clearInterval(this.healthCheckId),this.healthCheckId=void 0)};disposeWebSocket=()=>{this.webSocket&&(this.onEvtOpnListener&&(this.webSocket.removeEventListener("open",this.onEvtOpnListener),this.onEvtOpnListener=void 0),this.onEvtMsgListener&&(this.webSocket.removeEventListener("message",this.onEvtMsgListener),this.onEvtMsgListener=void 0),this.onEvtErrListener&&(this.webSocket.removeEventListener("error",this.onEvtErrListener),this.onEvtErrListener=void 0),this.onEvtCLEListener&&(this.webSocket.removeEventListener("close",this.onEvtCLEListener),this.onEvtCLEListener=void 0),this.webSocket.close(),this.webSocket=void 0)};handleMessage(e,t){const{command:r,data:n,frontRequestId:s,code:o,message:a}=e;if("SUCCESS"!==o)return t.emit("error",e);switch(r){case d.SelfUserInfo:{const e=n;if(i(this.selfUserInfo,e,{deep:!0}))return;this.selfUserInfo=e,t.emit("selfInfoUpdate",this.selfUserInfo,s);break}case d.RoomInfo:{const e=n;this.roomInfo=Object.assign({},e),t.emit("readyKeyframeSync",e.last_frame||{});break}case d.RTCInfo:{const{voice_id:e,type:r}=n;if(t.$RTC.joined)break;t.$RTC.join({voiceId:e,userId:this.selfUserInfo?.id||"",roomId:this.roomInfo?.info.room_code,type:r}),t.updateStatus(f.UserChange,l.UserMicroStatus,{status:y.OPEN});break}case d.UserList:{const e=n;this.userList=e,t.emit("userListUpdate",this.userList,s);break}case d.CustomEvent:{const e=n;t.emit("broadcast",e,s);break}case d.KeyframeSync:{const e=n,r=Object.keys(e).reduce(((r,n)=>{if(i(e[n],this.keyframes[n],{deep:!0}))return r;const o=[e[n],this.keyframes[n],s];return t.keyframes.emit(n,...o),this.keyframes[n]=e[n],r[n]=e[n],r}),{});t.emit("keyframes",r,s);break}case d.BuiltinMsg:{const e=n;t.emit("builtinEvent",e),e.event_type===f.UserChange&&t.emit("userChange",e),e.event_type===f.RoomChange&&t.emit("roomChange",e),e.event_type===f.UserChange&&e.action===l.UserMicroStatus&&t.toggleMicro(e.data.status===y.OPEN),e.event_type===f.RoomChange&&e.action===l.RoomClose&&(this.options.rtc?.quit(),this.disposeWebSocket());break}case d.UserKickOut:t.emit("kickOut")}}sendMessage(e){return this.webSocket?e?void this.webSocket.send(JSON.stringify(e)):console.warn("WebSocket messages is empty!"):console.warn("WebSocket has not yet been initialized!")}}function E(t){const r=new m(t),n=(t,r={},n)=>((n=n?Array.isArray(n)?n:[n]:[])&&(r.to_user_ids=n),{command:t,front_request_id:(e()+e()+"-"+e()+"-4"+e().substr(0,3)+"-"+e()+"-"+e()+e()+e()).toLowerCase(),data:r});class s extends a.x{get options(){return Object.freeze(Object.assign({},r.options))}get readyState(){return r.checkReadyState(this),r.readyState}get url(){return r.webSocket?.url||""}get selfInfo(){return r.selfUserInfo}get userList(){return r.userList||[]}get snapshot(){return r.keyframes||{}}get $RTC(){return r.options.rtc}keyframes=new a.x;constructor(){super(),t.rtc||(r.options.rtc=new g.RTCExample),r.options.url&&r.options.getTicket&&this.connect();const e=(e=>{if(!e)return 0;if(!0===e)return 3e3;const t=Number(e);return t>0?t:3e3})(r.options.healthCheck);e&&(r.healthCheckId=setInterval((()=>r.checkReadyState(this)),e))}async setSelfInfo(e){if(this.readyState!==c.OPEN)return new Error("The connection is not open and ready to communicate.");try{return await this.updateStatus(f.UserChange,l.UserInfo,e)}catch(e){return e}}getFramesByKey(e){return r.keyframes[e]}sendKeyframe(e,t){if(this.readyState!==c.OPEN)return new Error("The connection is not open and ready to communicate.");r.keyframes[e]=t;const s=n(d.KeyframeSync,this.snapshot);return r.sendMessage(s),!0}broadcast(e,t,s){return this.readyState!==c.OPEN?new Error("The connection is not open and ready to communicate."):new Promise(((o,i)=>{const a=n(d.CustomEvent,e,t),c=a.front_request_id;r.sendMessage(a);const u=s?setTimeout((()=>{i(new Error("RESPONSE TIMEOUT")),this.off("broadcast",h)}),s):void 0,h=(e,t)=>{t===c&&(this.off("broadcast",h),o(e),u&&clearInterval(u))};this.on("broadcast",h)}))}async updateStatus(e,t,s,o){if(this.readyState!==c.OPEN)return!1;const i=Object.assign({event_type:e,action:t},{data:s}),a=n(d.BuiltinMsg,i,o);return r.sendMessage(a),!0}async toggleMicro(e){return!!this.selfInfo?.permission?.control_own_micro&&(await this.$RTC.toggleMicro(e),await this.updateStatus(f.UserChange,l.UserMicroStatus,{status:e?y.OPEN:y.CLOSE},[]))}async forbidMicro(e,t){return!(r.options.canForbidUserMicro&&!r.options.canForbidUserMicro(t))&&!!this.selfInfo?.permission?.control_other_micro&&await this.updateStatus(f.UserChange,l.UserMicroStatus,{status:e},t)}async forbidSync(e,t){return!(r.options.canForbidUserSync&&!r.options.canForbidUserSync(t))&&!!this.selfInfo?.permission?.control_other_sync&&await this.updateStatus(f.UserChange,l.UserPermission,{sync_frame:e},t)}async kick(e){return!(r.options.canForbidUserKick&&!r.options.canForbidUserKick(e))&&!!this.selfInfo?.permission?.change_other_status&&await this.updateStatus(f.UserChange,l.UserStatus,{status:"KICK_OUT"},e)}async exit(){return await this.$RTC.quit(),await this.updateStatus(f.RoomChange,l.RoomClose,{})}async connect(e={}){if(!await this.$RTC.detectMicro()){const e=new Error("系统监测麦克风未授权~");return this.emit("ws.error",{type:u.MicroAuth,error:e}),e}if(r.connecting){const e=new Error("WebSocket 正在连接中,请勿重复连接 ...");return this.emit("ws.error",{type:u.DuplicateConnect,error:e}),e}const{force:t}=e;if(!t&&(this.readyState===c.CONNECTING||this.readyState===c.OPEN))return!0;if(e.url&&(r.options.url=e.url),e.getTicket&&(r.options.getTicket=e.getTicket),!r.options.url||!r.options.url.startsWith("ws")){const e=new Error(`WebSocket URL 未配置或格式不合法:"${r.options.url}"`);return this.emit("ws.error",{type:u.IllegalURL,error:e}),e}if(!r.options.getTicket){const e=new Error("getTicket() 未配置!");return this.emit("ws.error",{type:u.IllegalArgs,error:e}),e}r.connecting=!0,r.disposeWebSocket(),this.emit("ws.beforeConnect");const n=t||e.url||!this.url?function(e,t={}){const r=-1!==e.indexOf("?");return e+Object.keys(t).reduce(((e,n,s)=>`${e}${0!==s||r?"&":"?"}${n}=${t[n]}`),"")}(r.options.url,{ticket:await r.options.getTicket(),force:Number(!!t)}):this.url;return r.webSocket=new WebSocket(n),r.onEvtOpnListener=()=>{r.checkReadyState(this),this.emit("ws.afterConnect")},r.onEvtMsgListener=e=>{r.checkReadyState(this);try{const t=function(e){try{const t=JSON.parse(e),r={code:t.code,message:t.message,command:t.command,roomCode:t.room_code,appID:t.app_id,requestId:t.request_id,frontRequestId:t.front_request_id,triggerUserID:t.trigger_user_id,data:t.data||{}},n=Object.keys(r).filter((e=>void 0===r[e]));return n.length>0&&console.warn(`推送数据格式异常:${n.join(" ")} 值不存在!`),r}catch(e){return!1}}(e.data);if(!1===t)return;r.handleMessage(t,this)}catch(t){this.emit("ws.error",{type:u.Unknown,error:t,target:e})}},r.onEvtErrListener=e=>{o.emit("ws.error",{type:u.Error,target:e}),r.checkReadyState(this)},r.onEvtCLEListener=e=>{r.checkReadyState(this);const t=Number(e.code);if(1e3===t)return;const n=function(e){switch(e){case 1001:return h.Err_1001;case 1002:return h.Err_1002;case 1003:return h.Err_1003;case 1006:return h.Err_1006;case 1007:return h.Err_1007;case 1008:return h.Err_1008;case 1009:return h.Err_1009}return h.Err_unknown}(t);o.emit("ws.error",{target:e,type:u.Close,closeError:n})},r.webSocket.addEventListener("open",r.onEvtOpnListener),r.webSocket.addEventListener("message",r.onEvtMsgListener),r.webSocket.addEventListener("error",r.onEvtErrListener),r.webSocket.addEventListener("close",r.onEvtCLEListener),await new Promise(((e,t)=>{const n=()=>{e(!0),r.connecting=!1,this.off("ws.error",s)},s=e=>{t(e.error?e.error:new Error("WebSocket connection failed!")),r.connecting=!1,this.off("ws.afterConnect",n)};this.once("ws.afterConnect",n),this.once("ws.error",s)}))}async revoke(){return!0}}const o=new s;return t.__debug__&&(Object.assign(o,{__controller__:r}),Object.assign(window,{$live:o})),o}})(),n})()}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.LiveSDK=t():e.LiveSDK=t()}(self,(function(){return(()=>{var e={206:e=>{if(!("React"in window))throw new Error('"React" is not available. Please include "react" in your HTML.');e.exports=window.React},900:(e,t,r)=>{"use strict";r.d(t,{RTCExample:()=>o});var n=r(508);let s;!function(e){e.realsee="realsee",e.custom="custom"}(s||(s={}));class o extends n.x{join(e){throw new Error("Method not implemented.")}joined=!1;micro=!1;voiceId="";type=s.realsee;async quit(){return!0}async detectMicro(){return!0}async toggleMicro(e){return!0}shock(){}}},431:(e,t,r)=>{"use strict";function n(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function s(e){return"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return e===t||typeof e==typeof t&&!(!Number.isNaN(e)||!Number.isNaN(t))}function i(e,t){return!!o(e,t)||(s(e)&&s(t)?function(e,t){const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(t);if(r.length!==n.length)return!1;for(let n=0,s=r.length;n<s;n++){const s=r[n];if(!i(e[s],t[s]))return!1}return!0}(e,t):!(!Array.isArray(e)||!Array.isArray(t))&&function(e,t){if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(!i(e[r],t[r]))return!1;return!0}(e,t))}function a(e,t,r={deep:!1}){return r.deep?i(e,t):function(e,t){return!!o(e,t)||(s(e)&&s(t)?function(e,t){const r=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(t);if(r.length!==n.length)return!1;for(let n=0,s=r.length;n<s;n++){const s=r[n];if(!o(e[s],t[s]))return!1}return!0}(e,t):!(!Array.isArray(e)||!Array.isArray(t))&&function(e,t){if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;r++)if(!o(e[r],t[r]))return!1;return!0}(e,t))}(e,t)}r.d(t,{createLive:()=>g});var c=r(508);let u,f,l,d,h,y,m;!function(e){e[e.NOTINITIALIZED=-1]="NOTINITIALIZED",e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSING=2]="CLOSING",e[e.CLOSED=3]="CLOSED"}(u||(u={})),function(e){e.Error="Error",e.Close="Close",e.MicroAuth="MicroAuth",e.DuplicateConnect="DuplicateConnect",e.IllegalURL="IllegalURL",e.Unknown="Unknown",e.IllegalArgs="IllegalArgs"}(f||(f={})),function(e){e.Err_1001="CLOSE_GOING_AWAY",e.Err_1002="CLOSE_PROTOCOL_ERROR",e.Err_1003="CLOSE_UNSUPPORTED",e.Err_1006="CLOSE_ABNORMAL",e.Err_1007="Unsupported Data",e.Err_1008="Policy Violation",e.Err_1009="CLOSE_TOO_LARGE",e.Err_unknown="unknown"}(l||(l={})),function(e){e.SelfUserInfo="SELF_USER_INFO",e.RoomInfo="ROOM_INFO",e.RTCInfo="RTC_INFO",e.UserList="USER_LIST",e.BuiltinMsg="BUILTIN_MSG",e.CustomEvent="CUSTOM_EVENT",e.KeyframeSync="KEYFRAME_SYNC",e.UserKickOut="USER_KICK_OUT"}(d||(d={})),function(e){e.UserChange="user_change",e.RoomChange="room_change"}(h||(h={})),function(e){e.UserMicroStatus="change_micro_status",e.UserMicroStatusSync="sync_micro_status",e.UserPermission="change_permission",e.UserStatus="change_status",e.UserInfo="change_info",e.RoomClose="close"}(y||(y={})),function(e){e.OPEN="OPEN",e.CLOSE="CLOSE"}(m||(m={}));var S=r(900);class E{readyState=u.NOTINITIALIZED;canSync=!0;connecting=!1;keyframes={};constructor(e){this.options=Object.assign({autoConnect:!0,healthCheck:3e3},e)}checkReadyState=e=>{do{if(!this.webSocket){this.readyState!==u.NOTINITIALIZED&&(this.readyState=u.NOTINITIALIZED,e.emit("ws.readyStateUpdate",this.readyState));break}const t=this.webSocket.readyState;t!==this.readyState&&(this.readyState=t,e.emit("ws.readyStateUpdate",this.readyState))}while(0);return this.readyState};dispose=()=>{console.log("dispose"),this.disposeWebSocket(),this.connecting=!1,this.healthCheckId&&(clearInterval(this.healthCheckId),this.healthCheckId=void 0)};disposeWebSocket=()=>{this.webSocket&&(this.onEvtOpnListener&&(this.webSocket.removeEventListener("open",this.onEvtOpnListener),this.onEvtOpnListener=void 0),this.onEvtMsgListener&&(this.webSocket.removeEventListener("message",this.onEvtMsgListener),this.onEvtMsgListener=void 0),this.onEvtErrListener&&(this.webSocket.removeEventListener("error",this.onEvtErrListener),this.onEvtErrListener=void 0),this.onEvtCLEListener&&(this.webSocket.removeEventListener("close",this.onEvtCLEListener),this.onEvtCLEListener=void 0),this.webSocket.close(),this.webSocket=void 0)};handleMessage(e,t){const{command:r,data:n,frontRequestId:s,code:o,message:i}=e;if("SUCCESS"!==o)return t.emit("error",e);switch(r){case d.SelfUserInfo:{const e=n;if(a(this.selfUserInfo,e,{deep:!0}))return;this.selfUserInfo=e,t.emit("selfInfoUpdate",this.selfUserInfo,s);break}case d.RoomInfo:{const e=n;this.roomInfo=Object.assign({},e),t.emit("readyKeyframeSync",e.last_frame||{});break}case d.RTCInfo:{const{voice_id:e,type:r}=n;if(t.$RTC.joined)break;t.$RTC.join({voiceId:e,userId:this.selfUserInfo?.id||"",roomId:this.roomInfo?.info.room_code,type:r}),t.updateStatus(h.UserChange,y.UserMicroStatus,{status:m.OPEN});break}case d.UserList:{const e=n;this.userList=e,t.emit("userListUpdate",this.userList,s);break}case d.CustomEvent:{const e=n;t.emit("broadcast",e,s);break}case d.KeyframeSync:{const e=n,r=Object.keys(e).reduce(((r,n)=>{if(a(e[n],this.keyframes[n],{deep:!0}))return r;const o=[e[n],this.keyframes[n],s];return t.keyframes.emit(n,...o),this.keyframes[n]=e[n],r[n]=e[n],r}),{});t.emit("keyframes",r,s);break}case d.BuiltinMsg:{const e=n;t.emit("builtinEvent",e),e.event_type===h.UserChange&&t.emit("userChange",e),e.event_type===h.RoomChange&&t.emit("roomChange",e),e.event_type===h.UserChange&&e.action===y.UserMicroStatus&&t.toggleMicro(e.data.status===m.OPEN),e.event_type===h.RoomChange&&e.action===y.RoomClose&&(this.options.rtc?.quit(),this.disposeWebSocket());break}case d.UserKickOut:t.emit("kickOut")}}sendMessage(e){return this.webSocket?e?void this.webSocket.send(JSON.stringify(e)):console.warn("WebSocket messages is empty!"):console.warn("WebSocket has not yet been initialized!")}}function g(e){const t=new E(e),r=(e,t={},r)=>((r=r?Array.isArray(r)?r:[r]:[])&&(t.to_user_ids=r),{command:e,front_request_id:(n()+n()+"-"+n()+"-4"+n().substr(0,3)+"-"+n()+"-"+n()+n()+n()).toLowerCase(),data:t});class s extends c.x{get options(){return Object.freeze(Object.assign({},t.options))}get readyState(){return t.checkReadyState(this),t.readyState}get url(){return t.webSocket?.url||""}get selfInfo(){return t.selfUserInfo}get userList(){return t.userList||[]}get snapshot(){return t.keyframes||{}}get $RTC(){return t.options.rtc}keyframes=new c.x;constructor(){super(),e.rtc||(t.options.rtc=new S.RTCExample),t.options.url&&t.options.getTicket&&this.connect();const r=(e=>{if(!e)return 0;if(!0===e)return 3e3;const t=Number(e);return t>0?t:3e3})(t.options.healthCheck);r&&(t.healthCheckId=setInterval((()=>t.checkReadyState(this)),r))}async setSelfInfo(e){if(this.readyState!==u.OPEN)return new Error("The connection is not open and ready to communicate.");try{return await this.updateStatus(h.UserChange,y.UserInfo,e)}catch(e){return e}}getFramesByKey(e){return t.keyframes[e]}sendKeyframe(e,n){if(this.readyState!==u.OPEN)return new Error("The connection is not open and ready to communicate.");t.keyframes[e]=n;const s=r(d.KeyframeSync,this.snapshot);return t.sendMessage(s),!0}broadcast(e,n,s){return this.readyState!==u.OPEN?new Error("The connection is not open and ready to communicate."):new Promise(((o,i)=>{const a=r(d.CustomEvent,e,n),c=a.front_request_id;t.sendMessage(a);const u=s?setTimeout((()=>{i(new Error("RESPONSE TIMEOUT")),this.off("broadcast",f)}),s):void 0,f=(e,t)=>{t===c&&(this.off("broadcast",f),o(e),u&&clearInterval(u))};this.on("broadcast",f)}))}async updateStatus(e,n,s,o){if(this.readyState!==u.OPEN)return!1;const i=Object.assign({event_type:e,action:n},{data:s}),a=r(d.BuiltinMsg,i,o);return t.sendMessage(a),!0}async toggleMicro(e){return!!this.selfInfo?.permission?.control_own_micro&&(await this.$RTC.toggleMicro(e),await this.updateStatus(h.UserChange,y.UserMicroStatus,{status:e?m.OPEN:m.CLOSE},[]))}async forbidMicro(e,r){return!(t.options.canForbidUserMicro&&!t.options.canForbidUserMicro(r))&&!!this.selfInfo?.permission?.control_other_micro&&await this.updateStatus(h.UserChange,y.UserMicroStatus,{status:e},r)}async forbidSync(e,r){return!(t.options.canForbidUserSync&&!t.options.canForbidUserSync(r))&&!!this.selfInfo?.permission?.control_other_sync&&await this.updateStatus(h.UserChange,y.UserPermission,{sync_frame:e},r)}async kick(e){return!(t.options.canForbidUserKick&&!t.options.canForbidUserKick(e))&&!!this.selfInfo?.permission?.change_other_status&&await this.updateStatus(h.UserChange,y.UserStatus,{status:"KICK_OUT"},e)}async exit(){return await this.$RTC.quit(),await this.updateStatus(h.RoomChange,y.RoomClose,{})}async connect(e={}){if(!await this.$RTC.detectMicro()){const e=new Error("系统监测麦克风未授权~");return this.emit("ws.error",{type:f.MicroAuth,error:e}),e}if(t.connecting){const e=new Error("WebSocket 正在连接中,请勿重复连接 ...");return this.emit("ws.error",{type:f.DuplicateConnect,error:e}),e}const{force:r}=e;if(!r&&(this.readyState===u.CONNECTING||this.readyState===u.OPEN))return!0;if(e.url&&(t.options.url=e.url),e.getTicket&&(t.options.getTicket=e.getTicket),!t.options.url||!t.options.url.startsWith("ws")){const e=new Error(`WebSocket URL 未配置或格式不合法:"${t.options.url}"`);return this.emit("ws.error",{type:f.IllegalURL,error:e}),e}if(!t.options.getTicket){const e=new Error("getTicket() 未配置!");return this.emit("ws.error",{type:f.IllegalArgs,error:e}),e}t.connecting=!0,t.disposeWebSocket(),this.emit("ws.beforeConnect");const n=r||e.url||!this.url?function(e,t={}){const r=-1!==e.indexOf("?");return e+Object.keys(t).reduce(((e,n,s)=>`${e}${0!==s||r?"&":"?"}${n}=${t[n]}`),"")}(t.options.url,{ticket:await t.options.getTicket(),force:Number(!!r)}):this.url;return t.webSocket=new WebSocket(n),t.onEvtOpnListener=()=>{t.checkReadyState(this),this.emit("ws.afterConnect")},t.onEvtMsgListener=e=>{t.checkReadyState(this);try{const r=function(e){try{const t=JSON.parse(e),r={code:t.code,message:t.message,command:t.command,roomCode:t.room_code,appID:t.app_id,requestId:t.request_id,frontRequestId:t.front_request_id,triggerUserID:t.trigger_user_id,data:t.data||{}},n=Object.keys(r).filter((e=>void 0===r[e]));return n.length>0&&console.warn(`推送数据格式异常:${n.join(" ")} 值不存在!`),r}catch(e){return!1}}(e.data);if(!1===r)return;t.handleMessage(r,this)}catch(t){this.emit("ws.error",{type:f.Unknown,error:t,target:e})}},t.onEvtErrListener=e=>{o.emit("ws.error",{type:f.Error,target:e}),t.checkReadyState(this)},t.onEvtCLEListener=e=>{t.checkReadyState(this);const r=Number(e.code);if(1e3===r)return;const n=function(e){switch(e){case 1001:return l.Err_1001;case 1002:return l.Err_1002;case 1003:return l.Err_1003;case 1006:return l.Err_1006;case 1007:return l.Err_1007;case 1008:return l.Err_1008;case 1009:return l.Err_1009}return l.Err_unknown}(r);o.emit("ws.error",{target:e,type:f.Close,closeError:n})},t.webSocket.addEventListener("open",t.onEvtOpnListener),t.webSocket.addEventListener("message",t.onEvtMsgListener),t.webSocket.addEventListener("error",t.onEvtErrListener),t.webSocket.addEventListener("close",t.onEvtCLEListener),await new Promise(((e,r)=>{const n=()=>{e(!0),t.connecting=!1,this.off("ws.error",s)},s=e=>{r(e.error?e.error:new Error("WebSocket connection failed!")),t.connecting=!1,this.off("ws.afterConnect",n)};this.once("ws.afterConnect",n),this.once("ws.error",s)}))}async revoke(){return!0}}const o=new s;return e.__debug__&&(Object.assign(o,{__controller__:t}),Object.assign(window,{$live:o})),o}},508:(e,t,r)=>{"use strict";r.d(t,{x:()=>o});const n=Symbol("$$LIVE_EVENT$$");function s(e){return e[n]||(e[n]={}),e[n]}class o{hasListener(e){const t=s(this);return t&&t[e]&&t[e].length>0}on(e,t,r){const n=s(this);return n[e]||(n[e]=[]),n[e].push([t,r||!1]),()=>this.off(e,t)}once(e,t){return this.on(e,t,!0)}off(e,t){if(void 0===e)return void(this[n]||delete this[n]);const r=s(this);if(r[e]||(r[e]=[]),void 0===t)return void(r[e].length=0);let o=0;for(;o<r[e].length&&r[e][o][0]!==t;o++);o<r[e].length&&r[e].splice(o,1)}emit(e,...t){let r=!1;const n=s(this)[e]||[];for(let s of n.slice()){const[n,o=!1]=s,i=n(...t);o&&this.off(e,n),!1===i&&(r=!0)}return r}}let i;i||(i={})}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{createLiveReact:()=>s});var e=r(206),t=r(431);function s(r){const n=e.createContext(null),s=(0,t.createLive)(r);function o(){const t=e.useContext(n);if(!t)throw new Error("LiveProvider never found.");return t}return{live:s,LiveProvider:function(t){return e.createElement(n.Provider,{value:t.live||s},t.children)},unsafe__useLiveInstance:function(){return o()},unsafe__useRTCInstance:function(){return o().$RTC},useCurrentWebSocketUrl:function(){const t=o(),[r,n]=e.useState(void 0);return e.useEffect((()=>{const e=()=>n(t.url);return t.on("ws.beforeConnect",e),()=>t.off("ws.beforeConnect",e)}),[t]),r},useConnect:function(){const e=o();return async t=>await e.connect(t)},useKeyframe:function(t){const r=o(),[n,s]=e.useState(r.getFramesByKey(t));return e.useEffect((()=>{const e=(...e)=>s(e[0]);return r.keyframes.on(t,e),()=>r.keyframes.off(t,e)}),[r]),[n,e.useCallback((e=>r.sendKeyframe(t,e)),[r])]},useKeyframeUpdateCallback:function(t,r,n){const s=o(),i=n?[s,t].concat(n):[s,t],a=()=>s.keyframes.off(t,r);return e.useEffect((()=>(s.keyframes.on(t,r),a)),i),a},useLiveAction:function(){const t=o(),r=e.useCallback((e=>t.toggleMicro(e)),[t]),n=e.useCallback(((e,r,n=0)=>t.broadcast(e,r,n)),[t]),s=e.useCallback((()=>t.exit()),[t]),i=e.useCallback((e=>t.kick(e)),[t]),a=e.useCallback(((e,r)=>t.forbidMicro(e,r)),[t]),c=e.useCallback(((e,r)=>t.forbidSync(e,r)),[t]),u=e.useCallback((e=>t.getFramesByKey(e)),[t]);return{broadcast:n,exit:s,kick:i,toggleMicro:r,forbidMicro:a,forbidSync:c,sendKeyframe:e.useCallback(((e,r)=>t.sendKeyframe(e,r)),[t]),getFramesByKey:u,setSelfInfo:e.useCallback((e=>t.setSelfInfo(e)),[t]),updateStatus:e.useCallback(((e,r,n,s)=>t.updateStatus(e,r,n,s)),[t])}},useLiveEventCallback:function(t,r,n){const s=o(),i=()=>s.off(t,r),a=n?[s,t].concat(n):[s,t];return e.useEffect((()=>(s.on(t,r),i)),a),i},useReadyState:function(){const t=o(),[r,n]=e.useState(t.readyState);return e.useEffect((()=>{const e=e=>n(e);return t.on("ws.readyStateUpdate",e),()=>t.off("ws.readyStateUpdate",e)}),[t]),r},useRTCAction:function(){const t=o(),r=e.useCallback((e=>t.$RTC.join(e)),[t]);return{join:r,quit:e.useCallback((()=>t.$RTC.quit()),[t]),shock:e.useCallback((()=>t.$RTC.shock()),[t]),toggleMicro:e.useCallback((e=>t.$RTC.toggleMicro(e)),[t]),detectMicro:e.useCallback((()=>t.$RTC.detectMicro()),[t])}},useRTCEventCallback:function(t,r,n){const s=o(),i=()=>s.$RTC.off(t,r),a=n?[s,t].concat(n):[s,t];return e.useEffect((()=>(s.$RTC.on(t,r),i)),a),i},useSelfInfo:function(){const t=o(),[r,n]=e.useState(t.selfInfo||{}),s=e=>n(e);return e.useEffect((()=>(t.on("selfInfoUpdate",s),()=>t.off("selfInfoUpdate",s))),[t]),[r,e.useCallback((async e=>await t.setSelfInfo(e)),[t])]},useSnapshot:function(){const t=o(),[r,n]=e.useState(t.snapshot);return e.useEffect((()=>{const e=e=>n(e);return t.on("keyframes",e),()=>t.off("keyframes",e)})),r},useUserList:function(){const t=o(),[r,n]=e.useState(t.userList),s=e=>n(e);return e.useEffect((()=>(t.on("userListUpdate",s),()=>t.off("userListUpdate",s))),[t]),r},useWebSocketEventCallback:function(t,r,n){const s=o(),i=()=>s.off(t,r),a=n?[s,t].concat(n):[s,t];return e.useEffect((()=>(s.on(t,r),i)),a),i}}}})(),n})()}));
|