fcr-ui-scene 3.8.1-beta → 3.8.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/lib/base.js +2 -2
- package/lib/creator/provider-initializer.browser.js +8 -7
- package/lib/creator/provider-initializer.electron.js +8 -8
- package/lib/electron/asar-validation.d.ts +12 -0
- package/lib/electron/asar-validation.js +115 -0
- package/lib/electron/bootstrap-sdk.js +20 -12
- package/lib/electron/default-options.js +2 -1
- package/lib/electron/env.d.ts +1 -0
- package/lib/electron/env.js +6 -4
- package/lib/electron/exit-codes.js +11 -11
- package/lib/electron/hang-detection/manager.js +4 -4
- package/lib/electron/ipc-protocol.js +12 -12
- package/lib/electron/process-manager/event-manager.js +30 -30
- package/lib/electron/process-manager/index.js +88 -88
- package/lib/electron/process-manager/state-manager.js +57 -57
- package/lib/electron/process-manager/types.js +16 -16
- package/lib/electron/sdk-helper.js +3 -3
- package/lib/electron/window-proxy/browser-window-proxy.js +13 -13
- package/lib/electron/window-proxy/main-process-handler.js +14 -14
- package/lib/fragments/annotation/style.css +9 -9
- package/lib/fragments/annotation/toolbar/components/item/style.css +45 -45
- package/lib/fragments/annotation/toolbar/components/panel/style.css +24 -24
- package/lib/fragments/annotation/toolbar/components/tips/style.css +19 -19
- package/lib/fragments/annotation/toolbar/style.css +55 -55
- package/lib/fragments/whiteboard/cursor.css +77 -77
- package/lib/fragments/whiteboard/style.css +4 -4
- package/lib/global.css +62 -62
- package/lib/global.d.ts +27 -27
- package/lib/index.js +9 -1
- package/lib/modules/action-bar/components/chat/index.css +88 -88
- package/lib/modules/action-bar/components/more/index.css +114 -114
- package/lib/modules/action-bar/components/notification-bar/components/interpreter/index.css +58 -58
- package/lib/modules/action-bar/components/notification-bar/components/virtual-image/index.css +56 -56
- package/lib/modules/action-bar/components/notification-bar/index.css +74 -74
- package/lib/modules/action-bar/components/participants/index.css +21 -21
- package/lib/modules/action-bar/components/record/index.css +39 -39
- package/lib/modules/action-bar/components/trigger-output-language/index.css +86 -86
- package/lib/modules/action-bar/components/trigger-subscribe-language/guide-tooltip/index.css +22 -22
- package/lib/modules/action-bar/index.css +358 -358
- package/lib/modules/action-bar/main-scene/store.base.d.ts +3 -2
- package/lib/modules/action-bar/main-scene/store.base.js +29 -57
- package/lib/modules/action-bar/main-scene/view.js +3 -3
- package/lib/modules/audio-stream/index.js +3 -3
- package/lib/modules/caption/draggable-container/index.css +10 -10
- package/lib/modules/caption/view.css +158 -158
- package/lib/modules/chat/components/chat-bar/index.css +89 -89
- package/lib/modules/chat/components/chat-select/index.css +185 -185
- package/lib/modules/chat/index.css +124 -124
- package/lib/modules/components/apps/app-item/index.css +49 -49
- package/lib/modules/components/apps/index.css +9 -9
- package/lib/modules/components/caption-menu/index.css +58 -58
- package/lib/modules/components/caption-menu/steps/index.css +73 -73
- package/lib/modules/components/control-bar/components/loading/index.css +76 -76
- package/lib/modules/components/control-bar/components/progress/style.css +51 -51
- package/lib/modules/components/control-bar/components/switch-theme/index.css +101 -101
- package/lib/modules/components/control-bar/index.css +99 -99
- package/lib/modules/components/device-control/index.css +177 -177
- package/lib/modules/components/leave-meeting/components/index.css +151 -151
- package/lib/modules/components/leave-meeting/style.css +9 -9
- package/lib/modules/components/member-window/components/member-actions/store.js +22 -22
- package/lib/modules/components/member-window/index.css +502 -502
- package/lib/modules/components/security-menu/index.css +42 -42
- package/lib/modules/components/tab-frame/index.css +40 -40
- package/lib/modules/components/toolbar/components/item/style.css +94 -94
- package/lib/modules/components/toolbar/components/panel/style.css +86 -86
- package/lib/modules/components/toolbar/style.css +85 -85
- package/lib/modules/connection-gateway/components/computer/index.css +12 -12
- package/lib/modules/connection-gateway/components/phone/components/callinfo/index.css +36 -36
- package/lib/modules/connection-gateway/components/phone/components/calling/index.css +72 -72
- package/lib/modules/connection-gateway/components/phone/components/remeber/index.css +10 -10
- package/lib/modules/connection-gateway/components/phone/components/useing/index.css +46 -46
- package/lib/modules/connection-gateway/components/phone/index.css +49 -49
- package/lib/modules/connection-gateway/index.css +6 -6
- package/lib/modules/control-bar/components/meeting-details/index.css +133 -133
- package/lib/modules/control-bar/components/more-actions/index.css +103 -103
- package/lib/modules/control-bar/components/share-audio/index.css +90 -90
- package/lib/modules/control-bar/components/share-state-nav/index.css +79 -79
- package/lib/modules/control-bar/index.css +340 -340
- package/lib/modules/control-bar/index.js +4 -4
- package/lib/modules/device-pretest/index.css +123 -123
- package/lib/modules/dialog/components/confirm/index.css +24 -24
- package/lib/modules/dialog/components/dialog-container/index.css +112 -112
- package/lib/modules/dialog/dialogs/confirm/index.css +24 -24
- package/lib/modules/dialog/dialogs/connection-gateway/tabs.d.ts +1 -0
- package/lib/modules/dialog/dialogs/connection-gateway/tabs.js +27 -14
- package/lib/modules/dialog/dialogs/device-setting/index.css +26 -26
- package/lib/modules/dialog/dialogs/interpreter/index.css +30 -30
- package/lib/modules/dialog/dialogs/mute-all/index.css +20 -20
- package/lib/modules/dialog/dialogs/system-preference/index.css +52 -52
- package/lib/modules/dialog/dialogs/widget/index.js +4 -4
- package/lib/modules/dialog/index.css +56 -56
- package/lib/modules/event-toast/index.css +25 -25
- package/lib/modules/interpreter/action/add-btn/index.css +4 -4
- package/lib/modules/interpreter/action/delete-btn/index.css +14 -14
- package/lib/modules/interpreter/action/switch-btn/index.css +3 -3
- package/lib/modules/interpreter/dialog-content/index.css +33 -33
- package/lib/modules/interpreter/footer/index.css +11 -11
- package/lib/modules/interpreter/index.css +4 -4
- package/lib/modules/interpreter/interpreter-list/index.css +8 -8
- package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-language/index.css +46 -46
- package/lib/modules/interpreter/interpreter-list/interpreter-item/components/pick-user/index.css +46 -46
- package/lib/modules/interpreter/interpreter-list/interpreter-item/index.css +32 -32
- package/lib/modules/interpreter/loading-wrapper/index.css +53 -53
- package/lib/modules/invite/components/pstn-invite.js +1 -1
- package/lib/modules/invite/components/voip-invite.css +26 -26
- package/lib/modules/invite/index.css +331 -331
- package/lib/modules/layout/components/CommonVideoRenderer.js +4 -4
- package/lib/modules/layout/components/index.css +653 -653
- package/lib/modules/layout/index.css +59 -59
- package/lib/modules/layout/store.base.js +5 -5
- package/lib/modules/layout/type.js +5 -5
- package/lib/modules/notification/index.css +77 -77
- package/lib/modules/notification/interpreter-status/index.css +76 -76
- package/lib/modules/participant/components/confirm-input/index.css +4 -4
- package/lib/modules/participant/components/participants/components/footer/components/drop-menu/index.css +83 -83
- package/lib/modules/participant/components/participants/components/render-user/components/attendee/index.css +87 -87
- package/lib/modules/participant/index.css +102 -102
- package/lib/modules/participant/store.base.js +175 -175
- package/lib/modules/pc-audio-connect/index.css +12 -12
- package/lib/modules/pc-audio-connect/main-scene/index.d.ts +2 -1
- package/lib/modules/pc-audio-connect/main-scene/index.js +5 -4
- package/lib/modules/pc-audio-connect/main-scene/store.d.ts +3 -0
- package/lib/modules/pc-audio-connect/main-scene/store.js +44 -7
- package/lib/modules/phone-audio-connect/components/callinfo/index.css +36 -36
- package/lib/modules/phone-audio-connect/components/calling/index.css +72 -72
- package/lib/modules/phone-audio-connect/components/remeber/index.css +10 -10
- package/lib/modules/phone-audio-connect/components/useing/index.css +46 -46
- package/lib/modules/phone-audio-connect/index.css +56 -56
- package/lib/modules/secondary-window/store.js +7 -7
- package/lib/modules/setting/audio-settings/index.css +195 -195
- package/lib/modules/setting/audio-whiteList/audio-device-adaptation.js +14 -14
- package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.js +6 -6
- package/lib/modules/setting/caption_and_transcribing/index.css +88 -88
- package/lib/modules/setting/general-settings/index.css +41 -41
- package/lib/modules/setting/index.css +112 -112
- package/lib/modules/setting/minutes-settings/index.css +65 -65
- package/lib/modules/setting/state/index.css +207 -207
- package/lib/modules/setting/storage-settings/index.css +91 -91
- package/lib/modules/setting/translate-settings/index.css +47 -47
- package/lib/modules/setting/video-settings/index.css +357 -357
- package/lib/modules/share-screen/components/control-bar/index.css +75 -75
- package/lib/modules/share-screen/components/selection/index.css +73 -73
- package/lib/modules/share-screen/components/share-state-bar/index.css +76 -76
- package/lib/modules/share-screen/index.js +10 -10
- package/lib/modules/share-screen/store.base.js +2 -2
- package/lib/modules/state-bar/assets/fcr_grid_big.svg +3 -3
- package/lib/modules/state-bar/assets/fcr_listontop_big.svg +3 -3
- package/lib/modules/state-bar/index.css +706 -706
- package/lib/modules/state-bar/main-scene/store.base.js +2 -2
- package/lib/modules/state-bar/meeting-detail.css +137 -137
- package/lib/modules/state-bar/meeting-network-state.css +150 -150
- package/lib/modules/state-bar/waiting-scene/store.base.js +2 -2
- package/lib/modules/subtitles-history/components/settings/index.css +5 -5
- package/lib/modules/subtitles-history/index.css +129 -129
- package/lib/modules/video-window/components/members/index.css +51 -51
- package/lib/modules/video-window/components/speaking/index.css +86 -86
- package/lib/modules/video-window/components/topControl/index.css +35 -35
- package/lib/modules/video-window/index.css +21 -21
- package/lib/modules/video-window/popover-watcher.js +3 -3
- package/lib/modules/video-window/store.js +10 -10
- package/lib/modules/waiting-room-layout/index.css +96 -96
- package/lib/modules/whiteboard/components/control-bar/index.css +52 -52
- package/lib/modules/whiteboard/components/loading/index.css +76 -76
- package/lib/modules/whiteboard/components/multi-window/index.css +63 -63
- package/lib/modules/whiteboard/components/pagination/index.css +228 -228
- package/lib/modules/whiteboard/components/progress/style.css +51 -51
- package/lib/modules/whiteboard/components/switch-theme/index.css +99 -99
- package/lib/modules/whiteboard/components/toolbar/style.css +591 -591
- package/lib/modules/whiteboard/style.css +140 -140
- package/lib/modules/widget/index.css +9 -9
- package/lib/modules/widget/index.d.ts +1 -0
- package/lib/modules/widget/index.js +16 -1
- package/lib/modules/widget/store.base.d.ts +1 -0
- package/lib/modules/widget/store.base.js +12 -0
- package/lib/modules/widget/store.electron.js +5 -0
- package/lib/modules/widget/web-widget.d.ts +6 -1
- package/lib/modules/widget/web-widget.js +66 -22
- package/lib/object-manager.js +8 -8
- package/lib/plugins/module-dev-plugin.js +11 -11
- package/lib/providers/ability-provider.js +17 -17
- package/lib/providers/app-list-provider.d.ts +1 -1
- package/lib/providers/app-list-provider.js +9 -7
- package/lib/providers/board-share/bar-control/base.d.ts +1 -1
- package/lib/providers/board-share/bar-control/browser.d.ts +1 -1
- package/lib/providers/board-share/bar-control/electron.d.ts +1 -1
- package/lib/providers/board-share/struct.js +6 -6
- package/lib/providers/device-stream-provider.d.ts +1 -1
- package/lib/providers/dialog/provider.base.js +2 -2
- package/lib/providers/dialog/type.js +3 -3
- package/lib/providers/multi-display-provider.js +4 -4
- package/lib/providers/privilege-provider.js +7 -7
- package/lib/providers/screen-share/provider.base.js +23 -23
- package/lib/providers/screen-share/stream-state-sync.js +18 -18
- package/lib/providers/screen-share/struct.js +24 -24
- package/lib/providers/widget-provider.d.ts +13 -2
- package/lib/providers/widget-provider.js +60 -9
- package/lib/providers/window/main-window.js +2 -2
- package/lib/providers/window/provider.js +5 -5
- package/lib/providers/window/renderer-window.js +2 -2
- package/lib/scenes/main-scene.js +1 -0
- package/lib/schema.js +26 -26
- package/lib/shared-data/app-list-data.d.ts +0 -3
- package/lib/shared-data/app-list-data.js +3 -30
- package/lib/shared-data/meeting-time.js +8 -8
- package/lib/shared-data/setting.js +3 -3
- package/lib/shared-data/video-window.d.ts +1 -1
- package/lib/shared-data/video-window.js +1 -1
- package/lib/shared-data/widget-data.d.ts +0 -1
- package/lib/type.d.ts +1 -0
- package/lib/type.js +23 -21
- package/lib/ui-scene-switch.js +2 -2
- package/lib/utilities/constant.js +6 -6
- package/lib/utilities/renderer.js +8 -8
- package/lib/utilities/shared-storage.js +2 -2
- package/lib/utilities/tools.js +14 -14
- package/package.json +83 -79
- package/public/assets/fcr_chat_reddot.svg +5 -5
- package/public/assets/fcr_grid_big.svg +3 -3
- package/public/assets/fcr_leave2.svg +58 -58
- package/public/assets/fcr_listontop_big.svg +3 -3
- package/public/assets/step-gradient.svg +10 -10
- package/public/fragment.html +10 -10
- package/public/index.html +107 -183
- package/public/index.vite.html +109 -0
- package/public/js/init.js +75 -0
- package/public/{meeting-manager.js → js/meeting-manager.js} +405 -405
package/lib/base.js
CHANGED
|
@@ -300,8 +300,8 @@ var FcrBaseUIScene = exports.FcrBaseUIScene = /*#__PURE__*/function (_FcrUIRootN
|
|
|
300
300
|
}
|
|
301
301
|
}]);
|
|
302
302
|
}(FcrUIRootNode);
|
|
303
|
-
/**
|
|
304
|
-
* UI Module
|
|
303
|
+
/**
|
|
304
|
+
* UI Module
|
|
305
305
|
*/
|
|
306
306
|
var UIModule = exports.UIModule = /*#__PURE__*/function (_FcrUINode3) {
|
|
307
307
|
function UIModule(parentNode) {
|
|
@@ -136,17 +136,11 @@ var FcrUIBrowserProviderInitializer = exports.FcrUIBrowserProviderInitializer =
|
|
|
136
136
|
var messageProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_MESSAGE_PROVIDER);
|
|
137
137
|
var dialogProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_DIALOG_PROVIDER);
|
|
138
138
|
var sharedConfigDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_CONFIG_DATA_SOURCE);
|
|
139
|
+
var sharedWidgetDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_WIDGET_DATA_SOURCE);
|
|
139
140
|
var sharedLayoutDataSource = new _layoutData.FcrUISharedLayoutDataSourceImpl(sharedConfigDataSource);
|
|
140
141
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_LAYOUT_DATA_SOURCE, sharedLayoutDataSource);
|
|
141
142
|
var sharedScreenShareDataSource = new _screenShare.FcrUISharedScreenShareDataSourceImpl();
|
|
142
143
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_SCREEN_SHARE_DATA_SOURCE, sharedScreenShareDataSource);
|
|
143
|
-
var sharedWidgetDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_WIDGET_DATA_SOURCE);
|
|
144
|
-
var widgetProvider = new _widgetProvider.FcrUIWidgetProviderImpl({
|
|
145
|
-
sharedWidgetDataSource: sharedWidgetDataSource,
|
|
146
|
-
roomProvider: roomProvider,
|
|
147
|
-
dialogProvider: dialogProvider
|
|
148
|
-
});
|
|
149
|
-
objectManager.setObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER, widgetProvider);
|
|
150
144
|
var mainRoomControl = roomProvider.currentRoomControl;
|
|
151
145
|
var sharingControl = mainRoomControl.getSharingControl();
|
|
152
146
|
var streamControl = mainRoomControl.getStreamControl();
|
|
@@ -206,6 +200,13 @@ var FcrUIBrowserProviderInitializer = exports.FcrUIBrowserProviderInitializer =
|
|
|
206
200
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_MEETING_TIME_DATA_SOURCE, sharedMeetingTimeDataSource);
|
|
207
201
|
var sharedMemberDataSource = new _memberData.FcrUISharedMemberDataSourceImpl(userControl, streamControl, sharedScreenShareDataSource, eventProvider, mainRoomControl.getSharingControl().getBoardControl());
|
|
208
202
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_MEMBER_DATA_SOURCE, sharedMemberDataSource);
|
|
203
|
+
var widgetProvider = new _widgetProvider.FcrUIWidgetProviderImpl({
|
|
204
|
+
sharedWidgetDataSource: sharedWidgetDataSource,
|
|
205
|
+
roomProvider: roomProvider,
|
|
206
|
+
dialogProvider: dialogProvider,
|
|
207
|
+
sharedMemberDataSource: sharedMemberDataSource
|
|
208
|
+
});
|
|
209
|
+
objectManager.setObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER, widgetProvider);
|
|
209
210
|
var whiteboardProvider = new _provider6.FcrUIBoardShareProviderImpl(objectManager);
|
|
210
211
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.P_BOARD_SHARE_PROVIDER, whiteboardProvider);
|
|
211
212
|
var sharedSecurityDataSource = new _securityData.FcrUISecurityDataSourceImpl(privilegeProvider, sharedMemberDataSource);
|
|
@@ -140,9 +140,9 @@ var FcrUIElectronProviderInitializer = exports.FcrUIElectronProviderInitializer
|
|
|
140
140
|
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.P_DIALOG_PROVIDER);
|
|
141
141
|
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.P_DEVICE_PROVIDER);
|
|
142
142
|
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.S_SHARED_SETTING_DATA_SOURCE);
|
|
143
|
-
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.S_SHARED_WIDGET_DATA_SOURCE);
|
|
144
143
|
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.CORE_ENGINE);
|
|
145
144
|
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.S_SHARED_CONFIRM_DATA_SOURCE);
|
|
145
|
+
objectManager.deleteObject(_objectManager.FcrUIObjectKeys.S_SHARED_WIDGET_DATA_SOURCE);
|
|
146
146
|
if (objectManager.size() > 0) {
|
|
147
147
|
this.logger.error("remaing objects: ".concat(objectManager.keys()));
|
|
148
148
|
} else {
|
|
@@ -162,12 +162,6 @@ var FcrUIElectronProviderInitializer = exports.FcrUIElectronProviderInitializer
|
|
|
162
162
|
var messageProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_MESSAGE_PROVIDER);
|
|
163
163
|
var dialogProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_DIALOG_PROVIDER);
|
|
164
164
|
var sharedWidgetDataSource = objectManager.getObject(_objectManager.FcrUIObjectKeys.S_SHARED_WIDGET_DATA_SOURCE);
|
|
165
|
-
var widgetProvider = new _widgetProvider.FcrUIWidgetProviderImpl({
|
|
166
|
-
sharedWidgetDataSource: sharedWidgetDataSource,
|
|
167
|
-
roomProvider: roomProvider,
|
|
168
|
-
dialogProvider: dialogProvider
|
|
169
|
-
});
|
|
170
|
-
objectManager.setObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER, widgetProvider);
|
|
171
165
|
var windowProvider = objectManager.getObject(_objectManager.FcrUIObjectKeys.P_WINDOW_PROVIDER);
|
|
172
166
|
var sharedScreenShareDataSource = new _screenShare.FcrUISharedScreenShareDataSourceImpl();
|
|
173
167
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_SCREEN_SHARE_DATA_SOURCE, sharedScreenShareDataSource);
|
|
@@ -233,7 +227,13 @@ var FcrUIElectronProviderInitializer = exports.FcrUIElectronProviderInitializer
|
|
|
233
227
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_MEETING_TIME_DATA_SOURCE, sharedMeetingTimeDataSource);
|
|
234
228
|
var sharedMemberDataSource = new _memberData.FcrUISharedMemberDataSourceImpl(userControl, streamControl, sharedScreenShareDataSource, eventProvider, mainRoomControl.getSharingControl().getBoardControl());
|
|
235
229
|
objectManager.setObject(_objectManager.FcrUIObjectKeys.S_SHARED_MEMBER_DATA_SOURCE, sharedMemberDataSource);
|
|
236
|
-
|
|
230
|
+
var widgetProvider = new _widgetProvider.FcrUIWidgetProviderImpl({
|
|
231
|
+
sharedWidgetDataSource: sharedWidgetDataSource,
|
|
232
|
+
roomProvider: roomProvider,
|
|
233
|
+
dialogProvider: dialogProvider,
|
|
234
|
+
sharedMemberDataSource: sharedMemberDataSource
|
|
235
|
+
});
|
|
236
|
+
objectManager.setObject(_objectManager.FcrUIObjectKeys.P_WIDGET_PROVIDER, widgetProvider);
|
|
237
237
|
// @ts-ignore
|
|
238
238
|
var fcrUIMainWindowRenderer = window.FcrUIMainWindowRenderer;
|
|
239
239
|
var whiteboardProvider = new _provider7.FcrUIBoardShareProviderImpl(objectManager, fcrUIMainWindowRenderer);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate ASAR file integrity by comparing SHA256 hash
|
|
3
|
+
* @param isDev - Whether running in development mode
|
|
4
|
+
* @returns true if validation passes or is skipped, false if validation fails
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateAsarIntegrity(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Calculate SHA256 hash of ASAR file asynchronously (for large files)
|
|
9
|
+
* @param asarPath - Path to the ASAR file
|
|
10
|
+
* @returns Promise resolving to the hash string
|
|
11
|
+
*/
|
|
12
|
+
export declare function calculateAsarHashAsync(asarPath: string): Promise<string>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.calculateAsarHashAsync = calculateAsarHashAsync;
|
|
9
|
+
exports.validateAsarIntegrity = validateAsarIntegrity;
|
|
10
|
+
require("core-js/modules/es.error.to-string.js");
|
|
11
|
+
require("core-js/modules/es.array.concat.js");
|
|
12
|
+
require("core-js/modules/es.array.join.js");
|
|
13
|
+
require("core-js/modules/es.date.to-string.js");
|
|
14
|
+
require("core-js/modules/es.object.to-string.js");
|
|
15
|
+
require("core-js/modules/es.promise.js");
|
|
16
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
17
|
+
require("core-js/modules/es.string.trim.js");
|
|
18
|
+
var _crypto = _interopRequireDefault(require("crypto"));
|
|
19
|
+
var _electron = require("electron");
|
|
20
|
+
var _originalFs = _interopRequireDefault(require("original-fs"));
|
|
21
|
+
var _path = _interopRequireDefault(require("path"));
|
|
22
|
+
var _logger = require("./logger");
|
|
23
|
+
var _env = require("./env");
|
|
24
|
+
var logger = (0, _logger.getLogger)();
|
|
25
|
+
var AES_KEY = 'FCRUISCENE';
|
|
26
|
+
var AES_ALGORITHM = 'aes-256-ecb';
|
|
27
|
+
function getAesKey() {
|
|
28
|
+
return _crypto["default"].createHash('sha256').update(AES_KEY).digest();
|
|
29
|
+
}
|
|
30
|
+
function decryptHash(encryptedHash) {
|
|
31
|
+
var decipher = _crypto["default"].createDecipheriv(AES_ALGORITHM, getAesKey(), null);
|
|
32
|
+
var decrypted = Buffer.concat([decipher.update(Buffer.from(encryptedHash, 'base64')), decipher["final"]()]);
|
|
33
|
+
return decrypted.toString('utf8');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Validate ASAR file integrity by comparing SHA256 hash
|
|
38
|
+
* @param isDev - Whether running in development mode
|
|
39
|
+
* @returns true if validation passes or is skipped, false if validation fails
|
|
40
|
+
*/
|
|
41
|
+
function validateAsarIntegrity() {
|
|
42
|
+
var isAsarIntegrityCheckEnabled = !_env.isDev;
|
|
43
|
+
// Skip validation in development mode
|
|
44
|
+
if (!isAsarIntegrityCheckEnabled) {
|
|
45
|
+
logger.info('Skipping ASAR validation');
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
var asarPath = _path["default"].join(process.resourcesPath, 'app.asar');
|
|
50
|
+
var hashFilePath = _path["default"].join(process.resourcesPath, 'asar-hash.enc');
|
|
51
|
+
|
|
52
|
+
// Check if ASAR file exists using original-fs
|
|
53
|
+
if (!_originalFs["default"].existsSync(asarPath)) {
|
|
54
|
+
logger.info('ASAR file not found, assuming unpacked development mode');
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Read expected hash from hash file or environment variable
|
|
59
|
+
var expectedHash = null;
|
|
60
|
+
if (_originalFs["default"].existsSync(hashFilePath)) {
|
|
61
|
+
try {
|
|
62
|
+
var encryptedHash = _originalFs["default"].readFileSync(hashFilePath, 'utf8').trim();
|
|
63
|
+
expectedHash = decryptHash(encryptedHash);
|
|
64
|
+
logger.info("Loaded expected hash from ".concat(hashFilePath, " (decrypted)"));
|
|
65
|
+
} catch (error) {
|
|
66
|
+
logger.error("Failed to decrypt ASAR hash: ".concat(error));
|
|
67
|
+
_electron.dialog.showErrorBox('Security Error', 'Failed to verify application integrity due to invalid hash data.');
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!expectedHash) {
|
|
72
|
+
logger.error('No expected ASAR hash provided, cannot validate integrity');
|
|
73
|
+
_electron.dialog.showErrorBox('Security Error', 'Failed to verify application integrity due to invalid hash data.');
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
logger.info("Loading ASAR file at: ".concat(asarPath));
|
|
77
|
+
|
|
78
|
+
// Use original-fs to read ASAR file raw content
|
|
79
|
+
var asarContent = _originalFs["default"].readFileSync(asarPath);
|
|
80
|
+
logger.info("ASAR file size: ".concat(asarContent.length, " bytes"));
|
|
81
|
+
logger.info('Calculating ASAR file hash...');
|
|
82
|
+
var actualHash = _crypto["default"].createHash('sha256').update(asarContent).digest('hex');
|
|
83
|
+
logger.info("ASAR validation - Expected: ".concat(expectedHash, ", Actual: ").concat(actualHash));
|
|
84
|
+
if (actualHash !== expectedHash) {
|
|
85
|
+
logger.error('ASAR integrity validation failed! Hash mismatch detected.');
|
|
86
|
+
_electron.dialog.showErrorBox('Security Error', 'Application integrity check failed. The application may have been tampered with.');
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
logger.info('ASAR integrity validation passed');
|
|
90
|
+
return true;
|
|
91
|
+
} catch (error) {
|
|
92
|
+
logger.error("ASAR validation error: ".concat(error));
|
|
93
|
+
_electron.dialog.showErrorBox('Security Error', 'Failed to validate application integrity. The application may be corrupted.');
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Calculate SHA256 hash of ASAR file asynchronously (for large files)
|
|
100
|
+
* @param asarPath - Path to the ASAR file
|
|
101
|
+
* @returns Promise resolving to the hash string
|
|
102
|
+
*/
|
|
103
|
+
function calculateAsarHashAsync(asarPath) {
|
|
104
|
+
return new Promise(function (resolve, reject) {
|
|
105
|
+
var hash = _crypto["default"].createHash('sha256');
|
|
106
|
+
var stream = _originalFs["default"].createReadStream(asarPath);
|
|
107
|
+
stream.on('data', function (chunk) {
|
|
108
|
+
return hash.update(chunk);
|
|
109
|
+
});
|
|
110
|
+
stream.on('end', function () {
|
|
111
|
+
return resolve(hash.digest('hex'));
|
|
112
|
+
});
|
|
113
|
+
stream.on('error', reject);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
@@ -26,20 +26,27 @@ require("core-js/modules/es.string.starts-with.js");
|
|
|
26
26
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
27
27
|
require("core-js/modules/esnext.iterator.find.js");
|
|
28
28
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
29
|
-
var _electron = require("electron");
|
|
30
29
|
var _main = require("@electron/remote/main");
|
|
30
|
+
var _electron = require("electron");
|
|
31
|
+
var _path = _interopRequireDefault(require("path"));
|
|
31
32
|
var _2 = require(".");
|
|
33
|
+
var _asarValidation = require("./asar-validation");
|
|
32
34
|
var _defaultOptions = require("./default-options");
|
|
33
35
|
var _env = require("./env");
|
|
34
|
-
var
|
|
36
|
+
var _hangDetection = require("./hang-detection");
|
|
35
37
|
var _logger = require("./logger");
|
|
36
38
|
var _devtoolShortcut = require("./plugins/devtool-shortcut");
|
|
37
39
|
var _processManager = require("./process-manager");
|
|
38
|
-
var _hangDetection = require("./hang-detection");
|
|
39
40
|
var _process$argv$find;
|
|
40
41
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
41
42
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
42
43
|
var logger = (0, _logger.getLogger)();
|
|
44
|
+
|
|
45
|
+
// Validate ASAR integrity before initializing
|
|
46
|
+
if (!(0, _asarValidation.validateAsarIntegrity)()) {
|
|
47
|
+
_electron.app.quit();
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
43
50
|
(0, _main.initialize)();
|
|
44
51
|
var port = (_process$argv$find = process.argv.find(function (arg) {
|
|
45
52
|
return arg.startsWith('--port=');
|
|
@@ -69,9 +76,10 @@ _electron.app.addListener('ready', function () {
|
|
|
69
76
|
|
|
70
77
|
// 加载页面
|
|
71
78
|
loadPage(mainWindow);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
if (!_env.isDevToolsDisabled) {
|
|
80
|
+
// 开发环境下启用 DevTools 快捷键
|
|
81
|
+
(0, _devtoolShortcut.listenDevToolShortcut)(mainWindow);
|
|
82
|
+
}
|
|
75
83
|
logger.info('Main window created and initialized');
|
|
76
84
|
});
|
|
77
85
|
|
|
@@ -114,8 +122,8 @@ _electron.app.addListener('quit', function (event, exitCode) {
|
|
|
114
122
|
|
|
115
123
|
// ==================== 辅助函数 ====================
|
|
116
124
|
|
|
117
|
-
/**
|
|
118
|
-
* 创建主窗口
|
|
125
|
+
/**
|
|
126
|
+
* 创建主窗口
|
|
119
127
|
*/
|
|
120
128
|
function createMainWindow() {
|
|
121
129
|
var mainWindow = new _electron.BrowserWindow(_objectSpread(_objectSpread({}, _defaultOptions.defaultWindowOptions), {}, {
|
|
@@ -129,8 +137,8 @@ function createMainWindow() {
|
|
|
129
137
|
return mainWindow;
|
|
130
138
|
}
|
|
131
139
|
|
|
132
|
-
/**
|
|
133
|
-
* 加载页面
|
|
140
|
+
/**
|
|
141
|
+
* 加载页面
|
|
134
142
|
*/
|
|
135
143
|
function loadPage(mainWindow) {
|
|
136
144
|
if (_env.isDev) {
|
|
@@ -178,8 +186,8 @@ function handleResponsive(targetWindowId) {
|
|
|
178
186
|
hangDetectionManager.handleWindowResponsive(targetWindowId);
|
|
179
187
|
}
|
|
180
188
|
|
|
181
|
-
/**
|
|
182
|
-
* 清理资源
|
|
189
|
+
/**
|
|
190
|
+
* 清理资源
|
|
183
191
|
*/
|
|
184
192
|
function cleanupResources() {
|
|
185
193
|
logger.info('Cleaning up resources...');
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.defaultWindowOptions = exports.defaultWebPreferences = void 0;
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
|
+
var isVite = process.env.BUILD_TOOL === 'vite';
|
|
10
11
|
var defaultWindowOptions = exports.defaultWindowOptions = {
|
|
11
12
|
height: 850,
|
|
12
13
|
width: 1360,
|
|
@@ -21,5 +22,5 @@ var defaultWebPreferences = exports.defaultWebPreferences = {
|
|
|
21
22
|
webSecurity: false,
|
|
22
23
|
webviewTag: true,
|
|
23
24
|
backgroundThrottling: false,
|
|
24
|
-
preload: _path["default"].resolve(__dirname, "preload.js")
|
|
25
|
+
preload: isVite ? _path["default"].resolve(__dirname, '..', 'preload', 'index.js') : _path["default"].resolve(__dirname, "preload.js")
|
|
25
26
|
};
|
package/lib/electron/env.d.ts
CHANGED
package/lib/electron/env.js
CHANGED
|
@@ -4,10 +4,12 @@ require("core-js/modules/es.object.define-property.js");
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.isDev = exports.ipcPrefix = exports.distPathPrefix = exports.distIndexFileName = exports.devPageUrl = void 0;
|
|
7
|
+
exports.isDevToolsDisabled = exports.isDev = exports.ipcPrefix = exports.distPathPrefix = exports.distIndexFileName = exports.devPageUrl = void 0;
|
|
8
8
|
var _process$env$ELECTRON, _process$env$DIST_PAT, _process$env$DIST_IND, _process$env$IPC_PREF;
|
|
9
9
|
var isDev = exports.isDev = process.env.DEV === 'true';
|
|
10
10
|
var devPageUrl = exports.devPageUrl = (_process$env$ELECTRON = process.env.ELECTRON_START_URL) !== null && _process$env$ELECTRON !== void 0 ? _process$env$ELECTRON : "http://localhost:3000";
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
11
|
+
var isVite = process.env.BUILD_TOOL === 'vite';
|
|
12
|
+
var distPathPrefix = exports.distPathPrefix = isVite ? 'dist/electron/renderer/public' : (_process$env$DIST_PAT = process.env.DIST_PATH_PREFIX) !== null && _process$env$DIST_PAT !== void 0 ? _process$env$DIST_PAT : 'dist';
|
|
13
|
+
var distIndexFileName = exports.distIndexFileName = isVite ? 'index.vite.html' : (_process$env$DIST_IND = process.env.DIST_INDEX_FILE_NAME) !== null && _process$env$DIST_IND !== void 0 ? _process$env$DIST_IND : 'index.html';
|
|
14
|
+
var ipcPrefix = exports.ipcPrefix = (_process$env$IPC_PREF = process.env.IPC_PREFIX) !== null && _process$env$IPC_PREF !== void 0 ? _process$env$IPC_PREF : 'fcr-';
|
|
15
|
+
var isDevToolsDisabled = exports.isDevToolsDisabled = process.env.DEVTOOLS_DISABLED === 'true';
|
|
@@ -5,22 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.AppExitCode = void 0;
|
|
8
|
-
/**
|
|
9
|
-
* Application exit codes
|
|
10
|
-
*
|
|
11
|
-
* These codes are used when calling app.exit() to indicate the reason for application termination.
|
|
12
|
-
* Using specific exit codes helps with debugging and process monitoring.
|
|
8
|
+
/**
|
|
9
|
+
* Application exit codes
|
|
10
|
+
*
|
|
11
|
+
* These codes are used when calling app.exit() to indicate the reason for application termination.
|
|
12
|
+
* Using specific exit codes helps with debugging and process monitoring.
|
|
13
13
|
*/
|
|
14
14
|
var AppExitCode = exports.AppExitCode = /*#__PURE__*/function (AppExitCode) {
|
|
15
15
|
AppExitCode[AppExitCode["NORMAL_EXIT"] = 0] = "NORMAL_EXIT";
|
|
16
|
-
/**
|
|
17
|
-
* Renderer process has unexpectedly terminated
|
|
18
|
-
* This typically indicates a crash or critical error in the sub window renderer process
|
|
16
|
+
/**
|
|
17
|
+
* Renderer process has unexpectedly terminated
|
|
18
|
+
* This typically indicates a crash or critical error in the sub window renderer process
|
|
19
19
|
*/
|
|
20
20
|
AppExitCode[AppExitCode["RENDERER_PROCESS_GONE"] = 100] = "RENDERER_PROCESS_GONE";
|
|
21
|
-
/**
|
|
22
|
-
* Window hang detection
|
|
23
|
-
* This typically indicates a hang or critical error in the main window
|
|
21
|
+
/**
|
|
22
|
+
* Window hang detection
|
|
23
|
+
* This typically indicates a hang or critical error in the main window
|
|
24
24
|
*/
|
|
25
25
|
AppExitCode[AppExitCode["HANG_DETECTION_EXIT"] = 101] = "HANG_DETECTION_EXIT";
|
|
26
26
|
return AppExitCode;
|
|
@@ -66,8 +66,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
66
66
|
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
67
67
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
68
68
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
69
|
-
/**
|
|
70
|
-
* 多窗口 Hang Detection 管理器
|
|
69
|
+
/**
|
|
70
|
+
* 多窗口 Hang Detection 管理器
|
|
71
71
|
*/
|
|
72
72
|
var MultiWindowHangDetectionManager = exports.MultiWindowHangDetectionManager = /*#__PURE__*/function () {
|
|
73
73
|
function MultiWindowHangDetectionManager(callbacks, config) {
|
|
@@ -105,8 +105,8 @@ var MultiWindowHangDetectionManager = exports.MultiWindowHangDetectionManager =
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
/**
|
|
109
|
-
* 处理窗口变为responsive
|
|
108
|
+
/**
|
|
109
|
+
* 处理窗口变为responsive
|
|
110
110
|
*/
|
|
111
111
|
}, {
|
|
112
112
|
key: "handleWindowResponsive",
|
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.BrowserWindowIPCAction = void 0;
|
|
8
|
-
/**
|
|
9
|
-
* BrowserWindow IPC 通信协议
|
|
8
|
+
/**
|
|
9
|
+
* BrowserWindow IPC 通信协议
|
|
10
10
|
*/
|
|
11
11
|
var BrowserWindowIPCAction = exports.BrowserWindowIPCAction = /*#__PURE__*/function (BrowserWindowIPCAction) {
|
|
12
12
|
// 窗口操作
|
|
@@ -45,17 +45,17 @@ var BrowserWindowIPCAction = exports.BrowserWindowIPCAction = /*#__PURE__*/funct
|
|
|
45
45
|
BrowserWindowIPCAction["EVENT_BLUR"] = "browser-window:event:blur";
|
|
46
46
|
return BrowserWindowIPCAction;
|
|
47
47
|
}({});
|
|
48
|
-
/**
|
|
49
|
-
* IPC 请求参数类型
|
|
48
|
+
/**
|
|
49
|
+
* IPC 请求参数类型
|
|
50
50
|
*/
|
|
51
|
-
/**
|
|
52
|
-
* IPC 响应类型
|
|
53
|
-
* Note: With invoke pattern, success/error is handled by promise resolution/rejection
|
|
54
|
-
* This interface is kept for backward compatibility in the proxy layer
|
|
51
|
+
/**
|
|
52
|
+
* IPC 响应类型
|
|
53
|
+
* Note: With invoke pattern, success/error is handled by promise resolution/rejection
|
|
54
|
+
* This interface is kept for backward compatibility in the proxy layer
|
|
55
55
|
*/
|
|
56
|
-
/**
|
|
57
|
-
* 窗口事件通知类型
|
|
56
|
+
/**
|
|
57
|
+
* 窗口事件通知类型
|
|
58
58
|
*/
|
|
59
|
-
/**
|
|
60
|
-
* 具体操作的参数类型
|
|
59
|
+
/**
|
|
60
|
+
* 具体操作的参数类型
|
|
61
61
|
*/
|
|
@@ -22,8 +22,8 @@ var _logger = require("../logger");
|
|
|
22
22
|
var _struct = require("../struct");
|
|
23
23
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
24
24
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
25
|
-
/**
|
|
26
|
-
* EventManager 负责管理启动状态和房间ID,提供事件驱动的状态管理
|
|
25
|
+
/**
|
|
26
|
+
* EventManager 负责管理启动状态和房间ID,提供事件驱动的状态管理
|
|
27
27
|
*/
|
|
28
28
|
var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter) {
|
|
29
29
|
function EventManager() {
|
|
@@ -39,8 +39,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
39
39
|
return _this;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
/**
|
|
43
|
-
* 获取当前启动状态
|
|
42
|
+
/**
|
|
43
|
+
* 获取当前启动状态
|
|
44
44
|
*/
|
|
45
45
|
(0, _inherits2["default"])(EventManager, _EventEmitter);
|
|
46
46
|
return (0, _createClass2["default"])(EventManager, [{
|
|
@@ -49,8 +49,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
49
49
|
return this._launchState;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
/**
|
|
53
|
-
* 获取当前房间ID
|
|
52
|
+
/**
|
|
53
|
+
* 获取当前房间ID
|
|
54
54
|
*/
|
|
55
55
|
}, {
|
|
56
56
|
key: "roomId",
|
|
@@ -58,8 +58,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
58
58
|
return this._roomId || 'unknown';
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
/**
|
|
62
|
-
* 获取结束原因
|
|
61
|
+
/**
|
|
62
|
+
* 获取结束原因
|
|
63
63
|
*/
|
|
64
64
|
}, {
|
|
65
65
|
key: "endReason",
|
|
@@ -67,8 +67,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
67
67
|
return this._endReason;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
/**
|
|
71
|
-
* 获取状态变更历史
|
|
70
|
+
/**
|
|
71
|
+
* 获取状态变更历史
|
|
72
72
|
*/
|
|
73
73
|
}, {
|
|
74
74
|
key: "stateHistory",
|
|
@@ -76,8 +76,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
76
76
|
return (0, _toConsumableArray2["default"])(this._stateHistory);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
/**
|
|
80
|
-
* 设置启动状态
|
|
79
|
+
/**
|
|
80
|
+
* 设置启动状态
|
|
81
81
|
*/
|
|
82
82
|
}, {
|
|
83
83
|
key: "_setState",
|
|
@@ -111,8 +111,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
111
111
|
this.emit('stateChange', stateChangeEvent);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
/**
|
|
115
|
-
* 检查是否可以启动新的会议
|
|
114
|
+
/**
|
|
115
|
+
* 检查是否可以启动新的会议
|
|
116
116
|
*/
|
|
117
117
|
}, {
|
|
118
118
|
key: "canLaunchMeeting",
|
|
@@ -120,8 +120,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
120
120
|
return this._launchState !== _struct.FcrUISceneLaunchState.PROCESSING;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
/**
|
|
124
|
-
* 开始处理会议启动
|
|
123
|
+
/**
|
|
124
|
+
* 开始处理会议启动
|
|
125
125
|
*/
|
|
126
126
|
}, {
|
|
127
127
|
key: "startMeetingProcess",
|
|
@@ -139,8 +139,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
139
139
|
return true;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
/**
|
|
143
|
-
* 会议启动成功
|
|
142
|
+
/**
|
|
143
|
+
* 会议启动成功
|
|
144
144
|
*/
|
|
145
145
|
}, {
|
|
146
146
|
key: "onLaunchSuccess",
|
|
@@ -153,8 +153,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
153
153
|
// this.emit('launchSuccess', event);
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
/**
|
|
157
|
-
* 会议启动失败
|
|
156
|
+
/**
|
|
157
|
+
* 会议启动失败
|
|
158
158
|
*/
|
|
159
159
|
}, {
|
|
160
160
|
key: "onLaunchFailure",
|
|
@@ -171,8 +171,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
171
171
|
// this.emit('launchFailure', event);
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
/**
|
|
175
|
-
* 退出会议
|
|
174
|
+
/**
|
|
175
|
+
* 退出会议
|
|
176
176
|
*/
|
|
177
177
|
}, {
|
|
178
178
|
key: "onExitedMeeting",
|
|
@@ -191,8 +191,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
191
191
|
// this.emit('exitedMeeting', event);
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
/**
|
|
195
|
-
* 窗口关闭
|
|
194
|
+
/**
|
|
195
|
+
* 窗口关闭
|
|
196
196
|
*/
|
|
197
197
|
}, {
|
|
198
198
|
key: "onCloseWindow",
|
|
@@ -210,8 +210,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
/**
|
|
214
|
-
* 重置状态到默认值
|
|
213
|
+
/**
|
|
214
|
+
* 重置状态到默认值
|
|
215
215
|
*/
|
|
216
216
|
}, {
|
|
217
217
|
key: "reset",
|
|
@@ -224,8 +224,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
224
224
|
// this.emit('reset', { timestamp: Date.now() });
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
/**
|
|
228
|
-
* 获取当前状态的描述信息
|
|
227
|
+
/**
|
|
228
|
+
* 获取当前状态的描述信息
|
|
229
229
|
*/
|
|
230
230
|
}, {
|
|
231
231
|
key: "getStateDescription",
|
|
@@ -234,8 +234,8 @@ var EventManager = exports.EventManager = /*#__PURE__*/function (_EventEmitter)
|
|
|
234
234
|
return "State: ".concat(_struct.FcrUISceneLaunchState[this._launchState], ", RoomId: ").concat(this._roomId || 'None').concat(endReasonText);
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
-
/**
|
|
238
|
-
* 清理资源
|
|
237
|
+
/**
|
|
238
|
+
* 清理资源
|
|
239
239
|
*/
|
|
240
240
|
}, {
|
|
241
241
|
key: "release",
|