gitextract_dgsxokkm/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── 1-Bug_report.md │ │ └── 3-Feature_request.md │ ├── config.yml │ ├── stale.yml │ └── workflows/ │ └── release.yml ├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── biome.json ├── build/ │ ├── entitlements.mac.plist │ └── icon.icns ├── dev-app-update.yml ├── electron-builder.yml ├── electron.vite.config.ts ├── package.json ├── scripts/ │ ├── bump-version.js │ └── undo-version-bump.js ├── src/ │ ├── client-viewer/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public/ │ │ │ ├── img/ │ │ │ │ └── .gitkeep │ │ │ ├── locales/ │ │ │ │ ├── da/ │ │ │ │ │ └── translation.json │ │ │ │ ├── de/ │ │ │ │ │ └── translation.json │ │ │ │ ├── en/ │ │ │ │ │ └── translation.json │ │ │ │ ├── es/ │ │ │ │ │ └── translation.json │ │ │ │ ├── fi/ │ │ │ │ │ └── translation.json │ │ │ │ ├── fr/ │ │ │ │ │ └── translation.json │ │ │ │ ├── it/ │ │ │ │ │ └── translation.json │ │ │ │ ├── ja/ │ │ │ │ │ └── translation.json │ │ │ │ ├── ko/ │ │ │ │ │ └── translation.json │ │ │ │ ├── nl/ │ │ │ │ │ └── translation.json │ │ │ │ ├── ru/ │ │ │ │ │ └── translation.json │ │ │ │ ├── sv/ │ │ │ │ │ └── translation.json │ │ │ │ ├── ua/ │ │ │ │ │ └── translation.json │ │ │ │ ├── zh_CN/ │ │ │ │ │ └── translation.json │ │ │ │ └── zh_TW/ │ │ │ │ └── translation.json │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── scripts/ │ │ │ └── ga-interceptor.js │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── api/ │ │ │ │ ├── config.ts │ │ │ │ └── generator.ts │ │ │ ├── assets/ │ │ │ │ ├── index.html │ │ │ │ ├── locales/ │ │ │ │ │ ├── da/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── de/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── en/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── es/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── fi/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── fr/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── it/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── ja/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── ko/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── nl/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── ru/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── sv/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── ua/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ ├── zh_CN/ │ │ │ │ │ │ └── translation.json │ │ │ │ │ └── zh_TW/ │ │ │ │ │ └── translation.json │ │ │ │ ├── manifest.json │ │ │ │ └── robots.txt │ │ │ ├── components/ │ │ │ │ ├── ConnectingIndicator/ │ │ │ │ │ ├── ConnectingIndicatorIcon.tsx │ │ │ │ │ ├── LoadingSharingIcon.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── ErrorDialog/ │ │ │ │ │ ├── ErrorMessageEnum.ts │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── LoadingScreen/ │ │ │ │ │ ├── LoadingScreen.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── MyDeviceInfoCard/ │ │ │ │ │ ├── DeviceDetails.d.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── PlayerControlPanel/ │ │ │ │ │ ├── handlePlayerToggleFullscreen.ts │ │ │ │ │ ├── index.css │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── initScreenfullOnChange.ts │ │ │ │ ├── PrivacyConsentDialog/ │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── PrivacyControlDialog/ │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ └── VideoJSPlayer/ │ │ │ │ ├── index.tsx │ │ │ │ └── videojs-contain.css │ │ │ ├── config/ │ │ │ │ └── i18n.ts │ │ │ ├── constants/ │ │ │ │ ├── appConstants.ts │ │ │ │ └── styleConstants.ts │ │ │ ├── containers/ │ │ │ │ ├── ConnectionPrompts/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── MainView/ │ │ │ │ │ ├── ConnectionIconEnum.ts │ │ │ │ │ ├── LoadingSharingIconEnum.ts │ │ │ │ │ ├── changeLanguage.ts │ │ │ │ │ ├── handleCreatePeerConnection.ts │ │ │ │ │ ├── handleDisplayingLoadingSharingIconLoop.ts │ │ │ │ │ ├── handleNoConnectionTimeout.ts │ │ │ │ │ ├── handleRemoveDanglingReactRevealContainer.ts │ │ │ │ │ ├── handleSetVideoQuality.ts │ │ │ │ │ ├── index.css │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── useScreenViewingTracker.ts │ │ │ │ └── PlayerView/ │ │ │ │ └── index.tsx │ │ │ ├── features/ │ │ │ │ ├── PeerConnection/ │ │ │ │ │ ├── NullUser.ts │ │ │ │ │ ├── PartnerPeerUser.d.ts │ │ │ │ │ ├── PeerConnection.d.ts │ │ │ │ │ ├── PeerConnectionUIHandler.ts │ │ │ │ │ ├── ReceiveEncryptedMessagePayload.d.ts │ │ │ │ │ ├── ScreenSharingSourceEnum.ts │ │ │ │ │ ├── errors/ │ │ │ │ │ │ ├── PeerConnectionPartnerIsNotDefinedError.ts │ │ │ │ │ │ ├── PeerConnectionPeerIsNullError.ts │ │ │ │ │ │ ├── PeerConnectionSocketNotDefined.ts │ │ │ │ │ │ └── PeerConnectionUserIsNotDefinedError.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mocks/ │ │ │ │ │ │ ├── INPUTtestWindowNavigatorUserAgent.ts │ │ │ │ │ │ ├── INPUTvideo500000testSdpMediaBitrate.ts │ │ │ │ │ │ ├── OUTPUTDeviceDetailsFromUAParsed.ts │ │ │ │ │ │ └── OUTPUTvideo500000testSdpMediaBitrate.ts │ │ │ │ │ ├── peerConnectionHandlePeer.ts │ │ │ │ │ ├── peerConnectionHandleSocket.ts │ │ │ │ │ ├── peerConnectionReceiveEncryptedMessage.ts │ │ │ │ │ ├── setAndShowErrorDialogMessage.ts │ │ │ │ │ ├── setSdpMediaBitrate.ts │ │ │ │ │ ├── simplePeerDataMessages.ts │ │ │ │ │ └── startSocketConnectedCheckingLoop/ │ │ │ │ │ └── index.ts │ │ │ │ └── VideoAutoQualityOptimizer/ │ │ │ │ ├── VideoQualityEnum.ts │ │ │ │ ├── errors/ │ │ │ │ │ ├── CanvasNotDefinedError.ts │ │ │ │ │ ├── ImageDataIsUndefinedError.ts │ │ │ │ │ ├── VideoDimensionsAreWrongError.ts │ │ │ │ │ └── VideoNotDefinedError.ts │ │ │ │ └── index.ts │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── providers/ │ │ │ │ └── AppContextProvider/ │ │ │ │ └── index.tsx │ │ │ ├── utils/ │ │ │ │ ├── ProcessedMessage.d.ts │ │ │ │ ├── analytics.ts │ │ │ │ ├── gaRequestInterceptor.ts │ │ │ │ ├── message.ts │ │ │ │ ├── playerFullscreen.ts │ │ │ │ ├── socket.ts │ │ │ │ └── userAgentParserHelpers.ts │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.app.json │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── common/ │ │ ├── DesktopCapturerSourceType.ts │ │ ├── Device.ts │ │ ├── ElectronStoreKeys.enum.ts │ │ ├── IpcEvents.enum.ts │ │ ├── LocalPeerUser.ts │ │ ├── SendEncryptedMessagePayload.ts │ │ ├── app.lang.config.ts │ │ ├── config.ts │ │ ├── connectSocket.ts │ │ ├── deskreen-electron-store.ts │ │ ├── getAppLanguage.ts │ │ ├── isProduction.ts │ │ ├── locales/ │ │ │ ├── da/ │ │ │ │ └── translation.json │ │ │ ├── de/ │ │ │ │ └── translation.json │ │ │ ├── en/ │ │ │ │ └── translation.json │ │ │ ├── es/ │ │ │ │ └── translation.json │ │ │ ├── fi/ │ │ │ │ └── translation.json │ │ │ ├── fr/ │ │ │ │ └── translation.json │ │ │ ├── it/ │ │ │ │ └── translation.json │ │ │ ├── ja/ │ │ │ │ └── translation.json │ │ │ ├── ko/ │ │ │ │ └── translation.json │ │ │ ├── nl/ │ │ │ │ └── translation.json │ │ │ ├── ru/ │ │ │ │ └── translation.json │ │ │ ├── sv/ │ │ │ │ └── translation.json │ │ │ ├── ua/ │ │ │ │ └── translation.json │ │ │ ├── zh_CN/ │ │ │ │ └── translation.json │ │ │ └── zh_TW/ │ │ │ └── translation.json │ │ └── rateLimitedConsole.ts │ ├── features/ │ │ ├── ConnectedDevicesService/ │ │ │ └── index.ts │ │ ├── DesktopCapturerSourcesService/ │ │ │ └── index.ts │ │ ├── PeerConnectionHelperRendererService/ │ │ │ └── index.ts │ │ └── SharingSessionService/ │ │ ├── SharingSession.ts │ │ ├── SharingSessionStatusEnum.ts │ │ ├── SharingTypeEnum.ts │ │ └── index.ts │ ├── main/ │ │ ├── configs/ │ │ │ └── i18next.config.ts │ │ ├── helpers/ │ │ │ ├── getDeskreenGlobal.ts │ │ │ ├── getMyLocalIpV4.ts │ │ │ ├── initGlobals.ts │ │ │ ├── ipcMainHandlers.ts │ │ │ └── isWifiConnected.ts │ │ ├── index.ts │ │ ├── menu.ts │ │ └── utils/ │ │ ├── LoggerWithFilePrefix.ts │ │ ├── getNewVersionTag.ts │ │ ├── installExtensions.ts │ │ └── isLinuxWaylandSession.ts │ ├── preload/ │ │ ├── index.d.ts │ │ └── index.ts │ ├── renderer/ │ │ ├── index.html │ │ ├── peerConnectionHelperRendererWindowIndex.html │ │ └── src/ │ │ ├── assets/ │ │ │ ├── base.css │ │ │ └── main.css │ │ ├── components/ │ │ │ ├── AllowConnectionForDeviceAlert.tsx │ │ │ ├── CloseOverlayButton.tsx │ │ │ ├── ConnectedDevicesListDrawer.tsx │ │ │ ├── DeviceInfoCallout/ │ │ │ │ └── index.tsx │ │ │ ├── LanguageSelector/ │ │ │ │ └── index.tsx │ │ │ ├── SettingsOverlay/ │ │ │ │ ├── SettingRowLabelAndInput.tsx │ │ │ │ ├── SettingsOverlay.tsx │ │ │ │ └── settings-overlay.css │ │ │ ├── ShareAppOrScreenControlGroup.tsx │ │ │ ├── SharingSourcePreviewCard/ │ │ │ │ └── index.tsx │ │ │ ├── StepperPanel/ │ │ │ │ ├── ColorlibConnector.tsx │ │ │ │ ├── ColorlibStepIcon.tsx │ │ │ │ └── DeviceConnectedInfoButton.tsx │ │ │ ├── StepsOfStepper/ │ │ │ │ ├── ChooseAppOrScreenOverlay/ │ │ │ │ │ ├── ChooseAppOrScreenOverlay.tsx │ │ │ │ │ ├── PreviewGridList.tsx │ │ │ │ │ └── ViewSharingObject.d.ts │ │ │ │ ├── ChooseAppOrScreenStep.tsx │ │ │ │ ├── ConfirmStep.tsx │ │ │ │ ├── IntermediateStep.tsx │ │ │ │ ├── ScanQRStep.tsx │ │ │ │ └── SuccessStep.tsx │ │ │ ├── TopPanel.tsx │ │ │ └── css.d.ts │ │ ├── configs/ │ │ │ └── i18next.config.client.ts │ │ ├── containers/ │ │ │ ├── App.tsx │ │ │ ├── DeskreenStepper.tsx │ │ │ ├── HomePage.tsx │ │ │ ├── Root.tsx │ │ │ └── SettingsProvider.tsx │ │ ├── contexts/ │ │ │ └── SettingsContext.tsx │ │ ├── env.d.ts │ │ ├── features/ │ │ │ └── PeerConnection/ │ │ │ ├── NullSimplePeer.ts │ │ │ ├── NullUser.ts │ │ │ ├── PartnerPeerUser.d.ts │ │ │ ├── PeerConnection.d.ts │ │ │ ├── ReceiveEncryptedMessagePayload.d.ts │ │ │ ├── createDesktopCapturerStream.ts │ │ │ ├── getDesktopSourceStreamBySourceID.ts │ │ │ ├── handleCreatePeer.ts │ │ │ ├── handlePeerOnData.ts │ │ │ ├── handleSelfDestroy.ts │ │ │ ├── handleSetDisplaySizeFromLocalStream.ts │ │ │ ├── handleSocket.ts │ │ │ ├── handleSocketUserEnter.ts │ │ │ ├── handleSocketUserExit.ts │ │ │ ├── index.ts │ │ │ ├── prepareDataMessageToSendScreenSourceType.ts │ │ │ ├── setSdpMediaBitrate.ts │ │ │ └── simplePeerHandleSdpTransform.ts │ │ ├── main.tsx │ │ ├── peerConnectionHelperRendererWindowIndex.tsx │ │ └── utils/ │ │ ├── handleRecieveEncryptedMessage.ts │ │ ├── message.ts │ │ └── showMessageFromNewToaster.ts │ └── server/ │ ├── Room.d.ts │ ├── RoomIDService/ │ │ └── index.ts │ ├── darkwireSocket.ts │ ├── getClientViewerDistPath.ts │ ├── index.ts │ ├── onDeviceConnectedCallback.ts │ ├── socketsIPService.ts │ ├── startPollForInactiveRooms.ts │ └── store/ │ ├── MemoryStore.ts │ ├── index.ts │ └── socketIOServerStore.ts ├── tsconfig.json ├── tsconfig.node.json ├── tsconfig.web.json └── wiki/ └── Home.md