@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.
Files changed (102) hide show
  1. package/README.md +111 -58
  2. package/docs/.nojekyll +1 -0
  3. package/docs/assets/custom.css +43 -0
  4. package/docs/assets/highlight.css +127 -0
  5. package/docs/assets/icons.css +1043 -0
  6. package/docs/assets/{images/icons.png → icons.png} +0 -0
  7. package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
  8. package/docs/assets/main.js +52 -0
  9. package/docs/assets/search.js +1 -0
  10. package/docs/assets/style.css +1388 -0
  11. package/docs/assets/{images/widgets.png → widgets.png} +0 -0
  12. package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  13. package/docs/classes/RTCProtocol.BrowserRTC.html +60 -0
  14. package/docs/classes/RTCProtocol.BrowserRTC4Chime.html +66 -0
  15. package/docs/classes/RTCProtocol.RTCExample.html +62 -814
  16. package/docs/classes/RTCProtocol.VRWebViewRTC.html +60 -0
  17. package/docs/classes/shared_utils.Subscribe.html +55 -596
  18. package/docs/enums/RTCProtocol.RTCJoinedInfoCodeEnum.html +9 -0
  19. package/docs/enums/RTCProtocol.RTCType.html +1 -185
  20. package/docs/enums/live.BuiltinActionType.html +15 -325
  21. package/docs/enums/live.BuiltinEventType.html +7 -268
  22. package/docs/enums/live.Command.html +7 -346
  23. package/docs/enums/live.MemUserStatus.html +1 -307
  24. package/docs/enums/live.MicroStatus.html +3 -258
  25. package/docs/enums/live.UserStatus.html +9 -287
  26. package/docs/enums/live.WebSocketCloseError.html +19 -382
  27. package/docs/enums/live.WebSocketErrorType.html +1 -307
  28. package/docs/enums/live.WebSocketState.html +13 -325
  29. package/docs/index.html +356 -510
  30. package/docs/interfaces/RTCProtocol.GetVoiceSignReturnType.html +1 -0
  31. package/docs/interfaces/RTCProtocol.RTCJoinedInfo.html +1 -0
  32. package/docs/interfaces/RTCProtocol.RTCProtocol-1.html +60 -765
  33. package/docs/interfaces/RTCProtocol.VRWebViewRTCOptions.html +1 -0
  34. package/docs/interfaces/live.Live.html +119 -1302
  35. package/docs/interfaces/live.LiveOptions.html +22 -499
  36. package/docs/interfaces/live.LiveReact.html +52 -984
  37. package/docs/modules/RTCProtocol.html +17 -361
  38. package/docs/modules/live.html +103 -1219
  39. package/docs/modules/shared_utils.html +10 -248
  40. package/docs/modules.html +1 -125
  41. package/lib/RTC/BrowserRTC.d.ts +30 -0
  42. package/lib/RTC/BrowserRTC.js +169 -0
  43. package/lib/RTC/BrowserRTC.js.map +1 -0
  44. package/lib/RTC/BrowserRTC4Chime.d.ts +53 -0
  45. package/lib/RTC/BrowserRTC4Chime.js +299 -0
  46. package/lib/RTC/BrowserRTC4Chime.js.map +1 -0
  47. package/lib/RTC/VRWebViewRTC.d.ts +23 -0
  48. package/lib/RTC/VRWebViewRTC.js +124 -0
  49. package/lib/RTC/VRWebViewRTC.js.map +1 -0
  50. package/lib/RTC/index.d.ts +22 -0
  51. package/lib/{RTCProtocol → RTC}/index.js +3 -7
  52. package/lib/RTC/index.js.map +1 -0
  53. package/lib/createLive.d.ts +1 -1
  54. package/lib/createLive.js +50 -22
  55. package/lib/createLive.js.map +1 -1
  56. package/lib/createLiveReact.d.ts +11 -10
  57. package/lib/createLiveReact.js +4 -6
  58. package/lib/createLiveReact.js.map +1 -1
  59. package/lib/shared-utils/Subscribe.d.ts +1 -1
  60. package/lib/typings/Chime/AttendeeResponse.d.ts +5 -0
  61. package/lib/typings/Chime/AttendeeResponse.js +3 -0
  62. package/lib/typings/Chime/AttendeeResponse.js.map +1 -0
  63. package/lib/typings/Chime/MeetingResponse.d.ts +12 -0
  64. package/lib/typings/Chime/MeetingResponse.js +3 -0
  65. package/lib/typings/Chime/MeetingResponse.js.map +1 -0
  66. package/lib/typings/Chime/MeetingSessionConfigurationOptions.d.ts +16 -0
  67. package/lib/typings/Chime/MeetingSessionConfigurationOptions.js +3 -0
  68. package/lib/typings/Chime/MeetingSessionConfigurationOptions.js.map +1 -0
  69. package/lib/typings/EventType.d.ts +10 -0
  70. package/lib/typings/GetVoiceSign.d.ts +11 -0
  71. package/lib/typings/GetVoiceSign.js +3 -0
  72. package/lib/typings/GetVoiceSign.js.map +1 -0
  73. package/lib/typings/Live.d.ts +6 -4
  74. package/lib/typings/LiveMsg.d.ts +4 -0
  75. package/lib/typings/LiveMsg.js +4 -0
  76. package/lib/typings/LiveMsg.js.map +1 -1
  77. package/lib/typings/LiveOptions.d.ts +3 -7
  78. package/lib/typings/RTCEventType.d.ts +2 -14
  79. package/lib/typings/RTCEventType.js +0 -7
  80. package/lib/typings/RTCEventType.js.map +1 -1
  81. package/lib/typings/RTCJoinedInfo.d.ts +28 -0
  82. package/lib/typings/RTCJoinedInfo.js +23 -0
  83. package/lib/typings/RTCJoinedInfo.js.map +1 -0
  84. package/lib/{RTCProtocol/index.d.ts → typings/RTCProtocol.d.ts} +1 -19
  85. package/lib/typings/RTCProtocol.js +9 -0
  86. package/lib/typings/RTCProtocol.js.map +1 -0
  87. package/lib/typings/VRWebViewRTCOptions.d.ts +6 -0
  88. package/lib/typings/VRWebViewRTCOptions.js +3 -0
  89. package/lib/typings/VRWebViewRTCOptions.js.map +1 -0
  90. package/lib/typings/WebSocket.d.ts +2 -1
  91. package/lib/typings/WebSocket.js +1 -0
  92. package/lib/typings/WebSocket.js.map +1 -1
  93. package/package.json +8 -3
  94. package/umd/{RTCProtocol.046933a5.js → RTCProtocol.543610f0.js} +1 -1
  95. package/umd/createLive.a6edf473.js +1 -0
  96. package/umd/createLiveReact.e21b4514.js +1 -0
  97. package/docs/assets/css/main.css +0 -2787
  98. package/docs/assets/js/main.js +0 -248
  99. package/docs/assets/js/search.js +0 -1
  100. package/lib/RTCProtocol/index.js.map +0 -1
  101. package/umd/createLive.6845145e.js +0 -1
  102. 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":";;;AA6CA;;GAEG;AACH,IAAY,YAEX;AAFD,WAAY,YAAY;AAExB,CAAC,EAFW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAEvB"}
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,6 @@
1
+ import { JSBridgeProtocol } from '@realsee/jsbridge-x/lib/typings/JSBridgeProtocol';
2
+ import { GetVoiceSign } from "./GetVoiceSign";
3
+ export interface VRWebViewRTCOptions {
4
+ jsBridge: JSBridgeProtocol;
5
+ getVoiceSign: GetVoiceSign;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=VRWebViewRTCOptions.js.map
@@ -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。
@@ -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,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,qCAAe,CAAA;IACf,6CAAuB,CAAA;IACvB,2DAAqC,CAAA;IACrC,+CAAyB,CAAA;IACzB,yCAAmB,CAAA;AACrB,CAAC,EAPW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAO7B;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"}
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.1.1",
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.21.6",
31
- "typescript": "^4.4.2",
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,{RTCType:()=>t,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})()}));
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})()}));