Skip to content

Commit c8d3290

Browse files
flavioislimaarieljredromnonMark12870Nocccer
authored
[OTHER] Pull Heroic changes (#96)
* [Fix] DXVK + Winetricks on macOS (#2166) * fix: dxvk + winetricks on mac * feat: use mdfind to search for wine versions * fix: simplify dxvk & pass other paths to winetricks * chore: remove overrideType * chore: version * [WineManager] Fix status update (#2221) * Fix keys used to update status in wine manager * Only change listener on repository change * [Tray Icon] Limit recent games on update (#2215) Limit recent games on update, refactor * [Refactor] Main window creating and send message to the frontend (#2200) * Refactor mainWindow reference * Refactor main window creation and messaging * small changes * [Refactor] Fix error with too many event listeners for the same progress update event (#2208) * Refactor mainWindow reference * Refactor main window creation and messaging * small changes * Handle progress updates per game instead to avoid extra renders * [Fix] GOG games Setup on Windows (#2203) fix: GOG games Setup on Windows * [UI] Add remove settings option to Uninstall dialog (#2225) Revert and make changes - Reverted back the first commit - Kept the original key for prefix - Assigned variable for settings and log path * [Download Manager] Some images fixes (#2267) Some fixes for download manager images * [Fix] Prevent default settings env variables corruption (#2262) Copy env variables instead of using array reference * [Fix] Ignore remove from steam notification only if no errors (#2260) Move condition after checking errors when removing from steam * [OTHER] Stop logging all controller interactions (#2261) Stop logging controller buttons * [FIX] Game status detection when uninstalling/running games (#2257) Better game status updates * [Automated] Pull latest stable changes (#2231) * [Release] v2.5.3 Stable * [Feat] Show loading screen when loading the app (#2212) feat: add loading screen when loading the App * [Tray Icon] Limit recent games on update (#2215) Limit recent games on update, refactor * [UI] Remove 'active' color from library icons (#2216) Remove 'active' color from library icons * [OTHER] Indicate latest heroic version in bug report template (#2217) * Indicate latest heroic version in bug report template * Use a dropdown for the version * Require version * [Fix] GOG games Setup on Windows (#2203) fix: GOG games Setup on Windows * [Other] Fix Typo on workflow (#2230) Co-authored-by: Flávio F Lima <flavioislima@gmail.com> Co-authored-by: Ariel Juodziukynas <arieljuod@gmail.com> * [Refactor] Load settings synchronously (#2265) * Load settings synchronously and avoid extra reads * Use '.setSettings()' instead of '.config' * make '.config' protected to avoid using it by mistake * Add setter for '.config' * remove comments * Fix tray icon tests * Fix sync method in config mock * [Refactor] Push status updates from the backend to the frontend (#2264) * Push status updates from the backend to the frontend * Remove handleGameStatus from global context * Fix import path for tests * [Tech] Update GOGDL to v0.6 (#2276) * [Tech] Only parse english on `yarn i18n` (#2271) * Only parse english on i18n * prettier fix * Review suggestions * [Tech] Make it possible to specify only `prefix` when logging messages (#2189) * Make it possible to specify just `prefix` when logging messages * Use this new ability everywhere applicable * [Tech] Make it possible to specify only `prefix` when logging messages (#2189) * Make it possible to specify just `prefix` when logging messages * Use this new ability everywhere applicable * [UX] Open the game page from the card's context menu (#2287) Add link to game page in card context menu * [UX] Disable the option to delete the prefix if it's the default prefix (#2286) Disable deleting prefix if default prefix * [Fix] Log file deletion logic (#2299) Remove special handling of month 0 JS automatically decrements the year for us if month is 0 * [UI/UX] Add filter for non-available games (#2281) * feat: add nonAvailable types * feat: added logic to store non available games * feat: add icon to show/hide list * i18n: updated keys * feat: store state on storage * fix: clear list of games on startup * chore: do not store button state on storage * other: move check available to gamelist * fix: use useMemo instead of useEffect * fix: useEffect instead of useMemo * chore: log * [Settings] Update Alternative binary settings correctly (#2301) Remove duplicated setting data * [Feature] Provide game scores from PCGamingWiki and other useful information (#2282) * Ad game score * yarn i18n * Add function to fetch pcgamingwikiinfo * prettier fix * Make use of steam id and added colors * remove i18n keys * Small fix to avoid syntax fetching error * ui: change squares to circle * Add url to gamescore websites * Fix logfile test * Added gamescore urls to frontend * prettier fix * Revert fr translation * Fix test * fix: ui fixes Co-authored-by: Flavio F Lima <flavioislima@gmail.com> * [UI/UX] Open game settings into a modal (#2279) * feat: add settings modal component * feat: updated context, state and types * feat: updated gamepage and gamecard links * fix: do not show wine extensions for crossover * chore: sidebar cleanup * i18n: keys * chore: cleanup * feat: add useSettingsContext hook * feat: show game log on a modal * feat: add className prop to dialog content * feat: add Collapsible component * feat: updated settings to use the new hook * feat: updated game settings to use new component * fix: pr comments * fix: wine info not changing on gamepage * fix: env variables not changing & add titles * fix: navigate import * fix: missing save sync settings on modal * chore: limit max width * fix: tests? * chore: bump version * fix: pr comments * i18n: update keys * fix: import * [Gamepad] Match sony devices by vendor id (#2294) gamepad: match for vendor id for sony controllers * [GOG] add support for V1 setup instructions (#2292) * gog: add support for V1 setup instructions * Avoid running setup twice on windows * update gogdl binaries * add support for localappdata path variable * fix import * search for matching build using legacy_build_id field * add support for userdocs path * update gogdl, don't attempt to execute non existing path * allow creating keys without valueName field * Bump json5 from 1.0.1 to 1.0.2 (#2309) Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](json5/json5@v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [Other] Disable Winemenubuilder when launching with Wine (#2298) * Proper "playing" status detection (#2300) Handle playing properly and refactor * prevent spawning separate window of heroic ui * [Fix] Actually search for WINEDLLOVERRIDES when disabling WineMenuBuilder (#2328) * Remove debug code leftover (#2336) It appears some debug code was left behind. * [FIX] Improve Wine not available / not found handler (#2327) I am trying to find a solution to this issue people complain sometimes when wine was not found or maybe it was deleted somehow, the game fails to launch and you need to go to the settings and change it back and forth, etc. So my solution is pretty simple: - On launch, if the game is not native, check if the wine is valid. This means that not only the needed wine binary is available but also wineserver and wineboot for type = wine. - if not, show a dialog to the user proposing another wine version. - If the one set as default is not valid somehow, query the list of wine, proton, crossover, etc. And get the first one. - if none was found, then it will fail and show a message to the user. - To avoid showing two dialogs, Heroic first checks the default one, if it fails it will check any wine version. If it works then it shows the dialog. Besides that, I added a few QOL improvements on the settings part. I mean, we have a WHOLE class to deal with the settings and there is no way to SET a Single setting, everytime we change a setting in Heroic it rewrites the whole file again. So if we need to change a setting on the backend we need to query the whole list, then change the key inside that object, and then rewrite the `settings` again. That is not practical. So I added the `setSetting` method to the class on the backend and also added the ipc call on the frontend. so we can now set one single setting on backend and frontend, making our life easier if we need to handle something on runtime. Another small method I added was `pathExists`, so we can query on the frontend if a path exists and use it to update the UI or show some message to the user, etc. On Wine settings: ![image](https://user-images.githubusercontent.com/26871415/211602830-ee89b246-9090-4435-8f9e-1b3b0b6b811b.png) On Launching: ![image](https://user-images.githubusercontent.com/26871415/211602926-d3eac9e1-386d-4a4a-805f-a542f2f2529d.png) --- Use the following Checklist if you have changed something on the Backend or Frontend: - [x] Tested the feature and it's working on a current and clean install. - [ ] Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.) - [ ] Created / Updated Tests (If necessary) - [ ] Created / Updated documentation (If necessary) * [Feat] Add settings to Auto Update games and Ignore Game Updates (#2308) This adds a new global setting to auto update games, so on the game card it checks if the game has update and if the setting is enabled and if the ignore game updates is disabled. Then it send the game to the queue. I think it is redundant to add this code to the game page since the library is where we check for the game updates so I am checking only on the game card. Another option that was added was to ignore game updates. This Will ignore the auto update feature and also when clicking play it won't show the update warning. I did not add this setting to the global game settings since I think this should be set individually. --- Use the following Checklist if you have changed something on the Backend or Frontend: - [x] Tested the feature and it's working on a current and clean install. - [ ] Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.) - [ ] Created / Updated Tests (If necessary) - [ ] Created / Updated documentation (If necessary) * [Sideload] Only check extGame if not sideloaded app (#2339) Only check extGame if not sideloaded app * [Fix] Should block install on install platform change (#2332) fix: should block install on install platform change * Use the exe's dir as the working dir to run exe in prefix (#2340) * fix: tests * fix: lint * fix: i18n keys * Read GlobalConfig to get alternative binaries (#2348) * Use correct settings to read alt binaries * Remove import * [UX] Prevent old search to step on new search (#2352) Prevent old search to step on new search * [Bug] Fix TypeError if input for getRegDataType is undefined (#2325) * Fix TypeError if valueType is undefined * prettier-fix * [Fix] Don't trim save path & add test for it (#2358) * [Tech]: Add heroic-wine-downloader to heroic source (#2338) Add heroic-wine-downloader to heroic src Co-authored-by: Flávio F Lima <flavioislima@gmail.com> * [Bug]: Check shortcuts.vdf keys case insensitive to avoid false corruption detection. (#2357) Validate case insensitive * [Tech] Update Legendary to 0.20.32 (#2365) * tests: remove unecessary test * fix: gamepage settings icon * fix: do not show settings on uninstalled games * fix: uninstall and gamescore * [Tech] Resolve `baseUrl` in tests (#2363) * [Feat] Enable Wine Manager on macOS (#2362) * feat: search for wine versions on tools folder * feat: add wine crossover support on wine downloader * feat: enable wine manager on macOS * feat: refactor and setup wine manager on macOS * fix: remove -v option on extract tar file * fix: convert kb to bytes on mac * feat: add wine-staging-macOS to the list * tests: first try to fix * fix: use Set to avoid duplicated paths * [Fix] Few fixes (#2354) * fix: crossover/wine issues on macOS * ui: show playing status on game card * fix: do not add sideloaded game to steam on edit * fix: add games shortcuts on import * fix: getTheme error message * fix: cloud save sync for GOG Linux games - Fix Cloud Save Syncing being displayed for GOG Linux native games that don't support Co-authored-by: redromnon <rishimoharir@gmail.com> * [Fix] Save sync fixes (#2350) * feat: auto sync saves on backend * chore: remove autosync saves on frontend * feat: handle status on gamepage * fix: show status after playing * chore: use title on logs * feat: Add text with progress component * chore: add textWithProgress on save components * i18n: updated keys * fix: no input on some GOG games + Retry on click * feat: add retry for legendary saves * ui: style fixes * i18n_ updated keys * fix: proper reload gog saves on retry * a11y: use role button for progress component * [Tech] Add ts-prune to find dead code (#2210) * [i18n] Updated Translations (#2076) * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Translated using Weblate (French) Currently translated at 100.0% (401 of 401 strings) Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: John Donne <akheron@zaclys.net> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/fr/ Translation: Heroic Games Launcher/GamePage Translation: Heroic Games Launcher/Globals * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Translation: Heroic Games Launcher/Globals Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/ Co-authored-by: John Donne <akheron@zaclys.net> * [Fix] Beta 3 Fixes + some small improvements (#2079) * fix: hide wine options on macOS * fix: playing status not changing correctly * fix: download progress color * fix: wine-manager reload button * fix: launch win sideloaded games on macOS * fix: isGameAvailable for sideloaded games * fix: dont show wine tools on windows and mac * feat: game not available status * feat: improved not available check on game page * i18n: updated keys * fix: dont show update button when not available * fix: gamecard not available classes * fix: getInstallInfo error when json parse fails * other: fade in card animation * chore: heroic version hover * fix: reload gamecard on status changes * fix: proper pass platform when importing epic games * i18n: updated keys * fix: compute saves path for windows games on macOS * fix: gamecard status not updating after import * feat: proper show not supported games * fix: codecheck * fix: Hiding a game doesn't remove it from the list unless re-rendered #2078 * fix: showing as not available after uninstall * fix: typo * fix: hide runexe for native games on sideload * fix: hide wine options for native games * fix: show refreshing icon when refreshing library * fix: pr comments * chore: renamed import * fix: remove install info for unsuported games * fix: dont fetch changelog if already saw it * fix: installing native macOS games for GOG * chore: removed audioFix settings and component * [Revert] Revert #2075 (#2090) * chore: updated version * chore: readme update * fix: GameList Header columns * fix: uninstalled status on game list * fix: platform filter on macOS * chore: accurate macOS info * fix: gog error message when apiData is null * [Other] Update icons with better quality ones (#2096) * other: updated tray icons and added OS logic * chore: log * [i18n] Updated Translations (#2088) * Translated using Weblate (Swedish) Currently translated at 100.0% (402 of 402 strings) Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: dpanter <dpanter@donottrackplus.net> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/sv/ Translation: Heroic Games Launcher/GamePage Translation: Heroic Games Launcher/Globals * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Translation: Heroic Games Launcher/Globals Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/ Co-authored-by: dpanter <dpanter@donottrackplus.net> * [Feature/Wine] Add DXVK Framerate Limit Toggle (#2068) * [Feature] Add DXVK FPS Limit toggle Checkbox to enable/disable DXVK FPS and a text field to input enter FPS cap value * Run prettier * Fix function not used error * Show for macOS Crossover and Linux Wine games * Add !nativeGame * Add ts-prune * yarn i18n * Merge clean up * Remove clearFinished * Merge fixes * yarn i18n * Review suggestions * Only uncomment moveInstall * Debug workflow * Remove debug * Debug workflow * Remove debug * Dont export ProtonVerb * prettier-fix * Remove moveInstall for sideload apps * Add find-deadcode to linter workflow * review fixes Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: John Donne <akheron@zaclys.net> Co-authored-by: Flávio F Lima <flavioislima@gmail.com> Co-authored-by: dpanter <dpanter@donottrackplus.net> Co-authored-by: Rishabh Moharir <74495920+redromnon@users.noreply.github.com> * fix: remove current download from sidebar * fix: gamepad layouts * chore: remove find dead code from lint workflow * fix: browser games issues * fix: dev tools on browser games * [Tech] Type-checking our Electron Stores (#2016) * Add TypeCheckedStore abstract class and BE & FE implementations This adds a new, type-checked electron store wrapper. In the frontend, it replaces `StoreIpc` Making everything compatible with it will come in the next commit * Adapt all of FE and BE to comply with new Store changes Some of the big changes here: - getGameInfo returns `SideloadGame` for sideloaded games. We weren't honoring this properly (just *saying* that the store returns a GameInfo object even if it doesn't). Now, we have to - Telling Electron-Store to `set` a Date will convert it to an ISO string. `get`ting it back will just give you a string. That's now handled properly (by forcing you to call `.toISOString()` on Dates before passing them to `set`) * Avoid race condition when removing a sideloaded game When removing a sideloaded game, we were removing the game from the libraryStore first & called `getAppInfo` after (which searches through libraryStore to find the app, and now of course won't find anything) * Fix up tests This has the added benefit of `Store` now being properly *functional* in testing environments * Add documentation * chore: add wiki_game_info folder * [Feature] Refactor wiki game Info and add applegamingwiki (#2311) * Add applegamingwikiinfo to backend * Refactor extra_game_info to make one ipc call * Adapt naming * Small backend and gui fixes * ui: move information to a dialog * i18n: updated keys * fix: hide protondb on macOS * Removed id hltb search and minor fixes * Refactor extra info dialog * CSS tweaks * chore: console.log Co-authored-by: Flavio F Lima <flavioislima@gmail.com> Co-authored-by: Ariel Juodziukynas <arieljuod@gmail.com> * [UI] Fix Incorrect Sideload settings and Refactor nativeGame (#2372) * Refactor nativeGame implementation - Use window.api.isNative for checking if game is native * Don't use non-null assertion * Add missing isLinuxNative * Use async * Update src/frontend/screens/Settings/sections/GamesSettings/index.tsx Co-authored-by: Flávio F Lima <flavioislima@gmail.com> * [UI/UX] Improve moving install feedback + Fixes and Refactor (#2367) * feat: add windows and linux methods * feat: updated methods for each platform * fix_ types * fix: update gamepage after moving * feat: show file and percent on frontend if available * i18n: updated keys * fix: should remove oldpath after moving with rsync * fix: update gamepage properly after moving * Revert "fix: update gamepage properly after moving" This reverts commit 39ceb016e400a80270ba546e8797f16361a15d2e. * fix: missing await * feat: send current moving file on linux and mac * De-duplicate code; implement union types * ui: show modal with error if moving is not successful * ui: show modal with error if moving is not successful * fix: lint * fix: remove timeout to checkGameAvailable * fix: linux rsync move * fix: pr comment * fix: keys * fix: get right file, skip % strings * fix: keys after wrong merge * fix: unused variable * other: fix native sideload games not launching Co-authored-by: Mathis Dröge <mathis.droege@ewe.net> * fix: lint * fix: tests * fix: duplicated uninstall on browser games * fix: browser games information * fix: handle urls without https * fix: hide settings from context menu on browser games * fix: change browser url and dialog width changes * chore: hide theme and custom proton/wine selection * fix: missing ipc declaration * ui: changed sidebar on drag event and fix active elements style * fix: codecheck * test: updated main window tests * add dev tools shortcut * fix library sidebar link active state * only expose devtools hotkey if not packaged * show hp icon instead of electron icon in msg boxes * tech: change VKD3D source repo * fix sidebarSize type * chore: version * [Fix] Add --filesystem only if it install_path has a value (#2386) Add --filesystem only if it has a value * [GOG] Migrate GOG setup to use runWineCommand (#2324) * make gog functions to use runWineCommand * fix: expand gog variables in registry valueName * improv: replace os path separator to back slash in setup * use win variant of installPath * get windows variant of installPath for V1 instruction * gog setup: remove unnecessary quoting when running exectutables * add checkWineBeforeLaunch * replace nonNative path separators when copying files * skip copying the directory when sourcePath doesn't exist * i18n: updated keys * [Fix/Windows] Some small Windows fixes (#2393) * fix: do not show platform selection on windows * feat: show dont ask again button when detecting vcruntime * [Tech] Refactor GameStatus on GameCard and GamePage (#2391) * feat: add hasStatus hook and refactor gamelist and gamecard * i18n: update keys * other: extract some methods to constants files * feat: get label from hasStatus * feat: use hasStatus on gamePage as well * fix: get i18n keys from gamepage namespace * chore: better naming * chore: fix wrong key * feat: use hasStatus to check if game is available on gamepage * fix: deadcode * fix: report a problem hover + type played * [Tech] Refactor Download Dialog + Cache GOG Install Info (#2385) * feat: add gogInstallInfo store * feat: add a helper to deal with the platforms parameters on frontend * feat: simplify platform handler on install modal * fix: getInstall info not working on gamepage * feat: cache gog install info * fix: types * chore_ log * fix: reverted some type changes * chore: logInfo placement * fix: installPLatform on gamepage * fix: deadcode * fix: clear gogInfoStore on clear cache * fix: gog save reload * chore: naming (alsto tro trigger tests again) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Ariel Juodziukynas <arieljuod@gmail.com> Co-authored-by: Rishabh Moharir <74495920+redromnon@users.noreply.github.com> Co-authored-by: Marek Ryšavý <32600962+Mark12870@users.noreply.github.com> Co-authored-by: Niklas <61798668+Nocccer@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Mathis Dröge <34034631+CommandMC@users.noreply.github.com> Co-authored-by: Paweł Lidwin <lidwinpawel@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: J. King <jking@jkingweb.ca> Co-authored-by: redromnon <rishimoharir@gmail.com> Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: John Donne <akheron@zaclys.net> Co-authored-by: dpanter <dpanter@donottrackplus.net> Co-authored-by: Mathis Dröge <mathis.droege@ewe.net> Co-authored-by: BrettCleary <27568879+BrettCleary@users.noreply.github.com>
1 parent 94bf0ea commit c8d3290

File tree

298 files changed

+9888
-4367
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

298 files changed

+9888
-4367
lines changed

.ts-prunerc

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"ignore": "src/common/typedefs"
3+
}

CHANGELOG.md

-344
This file was deleted.

Support.md

-11
This file was deleted.

doc/electron_store.md

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Similar to our IPC system, we also type-check our Electron Stores. If you want to use its functionality in your code, remember:
2+
3+
- Use `TypeCheckedStoreBackend` and `TypeCheckedStoreFrontend`
4+
- Modifying our list of stores (adding new ones, changing the structure) can be done in `src/common/types/electron_store.ts`
5+
Note that you'll have to be _very_ careful when changing an existing store's structure, as the old structure does not get converted to
6+
your new format automatically (to facilitate this, you can use [migrations](https://github.com/sindresorhus/electron-store#migrations))
7+
- When accessing elements, use `<store>.get` with a default value, or `<store>.get_nodefault` if you can't/don't want to
8+
provide a default
9+
10+
Specific store structure notes:
11+
12+
- If you have a store with pre-set keys, you can just add those keys into the interface:
13+
```ts
14+
interface StoreStructure {
15+
// ...
16+
myStoreName: {
17+
myKey: boolean /* or any other type here */
18+
}
19+
}
20+
```
21+
- If your store's keys are set dynamically (for example, a store that uses AppNames as keys), you can use
22+
[Index Signatures](https://www.typescriptlang.org/docs/handbook/2/objects.html#index-signatures) instead:
23+
```ts
24+
interface StoreStructure {
25+
// ...
26+
myStoreName: {
27+
[key: string]: boolean /* or any other type here */
28+
}
29+
}
30+
```

i18next-parser.config.js

+1-41
Original file line numberDiff line numberDiff line change
@@ -53,47 +53,7 @@ module.exports = {
5353
lineEnding: 'auto',
5454
// Control the line ending. See options at https://github.com/ryanve/eol
5555

56-
locales: [
57-
'ar',
58-
'az',
59-
'be',
60-
'bg',
61-
'bs',
62-
'ca',
63-
'cs',
64-
'de',
65-
'el',
66-
'en',
67-
'es',
68-
'et',
69-
'eu',
70-
'fa',
71-
'fi',
72-
'fr',
73-
'gl',
74-
'hr',
75-
'hu',
76-
'ja',
77-
'ko',
78-
'id',
79-
'it',
80-
'ml',
81-
'nb_NO',
82-
'nl',
83-
'pl',
84-
'pt',
85-
'pt_BR',
86-
'ro',
87-
'ru',
88-
'sk',
89-
'sv',
90-
'ta',
91-
'tr',
92-
'uk',
93-
'vi',
94-
'zh_Hans',
95-
'zh_Hant'
96-
],
56+
locales: ['en'],
9757
// An array of the locales in your applications
9858

9959
namespaceSeparator: ':',

package.json

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hyperplay",
3-
"version": "0.0.2-alpha.1",
3+
"version": "0.0.3-alpha.1",
44
"private": true,
55
"main": "build/electron/main.js",
66
"homepage": "./",
@@ -157,7 +157,6 @@
157157
"fs-extra": "^10.1.0",
158158
"fuse.js": "^6.6.2",
159159
"graceful-fs": "^4.2.10",
160-
"heroic-wine-downloader": "^1.2.3",
161160
"howlongtobeat": "^1.7.0",
162161
"i18next": "^21.6.16",
163162
"i18next-fs-backend": "^1.1.4",
@@ -180,12 +179,14 @@
180179
"source-map-support": "^0.5.21",
181180
"steam-shortcut-editor": "^3.1.1",
182181
"systeminformation": "^5.15.0",
183-
"tslib": "^2.4.0",
184-
"web3": "^1.7.5"
182+
"web3": "^1.7.5",
183+
"ts-prune": "^0.10.3",
184+
"tslib": "^2.4.0"
185185
},
186186
"scripts": {
187187
"start": "vite",
188188
"codecheck": "tsc --noEmit",
189+
"find-deadcode": "ts-prune --error",
189190
"test": "jest",
190191
"testProxy": "jest proxy.test.ts",
191192
"test-watch": "jest --watch --maxWorkers=25%",
@@ -248,6 +249,7 @@
248249
"supertest": "^6.2.4",
249250
"tmp": "^0.2.1",
250251
"ts-jest": "^28.0.7",
252+
"type-fest": "^3.2.0",
251253
"typescript": "^4.8.4",
252254
"vite": "^3.2.2",
253255
"vite-plugin-electron": "^0.10.2",

public/bin/darwin/gogdl

-22.8 KB
Binary file not shown.

public/bin/darwin/legendary

-22.5 KB
Binary file not shown.

public/bin/linux/gogdl

-339 KB
Binary file not shown.

public/bin/linux/legendary

280 Bytes
Binary file not shown.

public/bin/win32/gogdl.exe

-6.01 KB
Binary file not shown.

public/bin/win32/legendary.exe

296 Bytes
Binary file not shown.

public/locales/ar/gamepage.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"checkbox": "إزالة السابقة: {{newLine}}{{prefix}} ملاحظة: سيحذف هذا القرار ملفات التخزينات التي ليس لها نسخ احتياطية ولا يمكن التراجع عن هذا.",
3636
"checkbox_prefix": "بادئة",
3737
"message": "هل تريد إلغاء تثبيت هذه اللعبة؟",
38+
"settingcheckbox": "Erase settings and remove log{{newLine}}Note: This can't be undone. Any modified settings will be forgotten and log will be deleted.",
3839
"title": "أزِل التثبيت"
3940
},
4041
"update": {
@@ -135,8 +136,8 @@
135136
"options": "خيارات التشغيل..."
136137
},
137138
"not_logged_in": {
138-
"epic": "أنت لم تسجل الدخول بحساب Epic في Heroic. لا تستخدم صفحة المتجر لتسجيل الدخول ، انقر فوق الزر التالي بدلاً من ذلك:",
139-
"gog": "أنت لم تسجل الدخول بحساب GOG في Heroic. لا تستخدم صفحة المتجر لتسجيل الدخول ، انقر فوق الزر التالي بدلاً من ذلك:",
139+
"epic": "أنت لم تسجل الدخول بحساب Epic في HyperPlay. لا تستخدم صفحة المتجر لتسجيل الدخول ، انقر فوق الزر التالي بدلاً من ذلك:",
140+
"gog": "أنت لم تسجل الدخول بحساب GOG في HyperPlay. لا تستخدم صفحة المتجر لتسجيل الدخول ، انقر فوق الزر التالي بدلاً من ذلك:",
140141
"login": "تسجيل الدخول",
141142
"title": "لم يتم دخولك"
142143
},

public/locales/ar/translation.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@
202202
"store": "المتجر",
203203
"title": "اسم اللعبة"
204204
},
205-
"GameSettings": "إعدادات اللعبة",
206205
"generic": {
207206
"error": {
208207
"component": "لم يتم العثور على ألعاب - حاول تسجيل الخروج و الدخول مرة أخرى أو أحد الخيارات أدناه"
@@ -215,9 +214,11 @@
215214
"GOG": "جي.أو.جي",
216215
"gog-store": "متجر جي.أو.جي",
217216
"header": {
217+
"hide_non_available_games": "Hide non-available games",
218218
"ignore_hidden": "تجاهل المخفي",
219219
"platform": "منصة",
220220
"show_all_games": "اعرض كل الألعاب",
221+
"show_available_games": "Show non-Available games",
221222
"show_favourites_only": "أظهر المفضلة فقط",
222223
"show_hidden": "أظهر المخفي",
223224
"store": "صفِّ المتجر"
@@ -562,8 +563,7 @@
562563
"long-log-hint": "اُقتطع السجل، يُعرض آخر 1000 سطر!"
563564
},
564565
"navbar": {
565-
"advanced": "إعدادات متقدمة",
566-
"games_settings": "إعدادات اللعبة",
566+
"advanced": "الإعدادات المتقدمة",
567567
"games_settings_defaults": "الإعدادات الافتراضية للألعاب",
568568
"general": "عام",
569569
"log": "السجل",

public/locales/az/gamepage.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"checkbox": "Siz də prefiksi silmək istərdinizmi? Bu geri qaytarıla bilməz.",
3636
"checkbox_prefix": "Prefiks",
3737
"message": "Bu oyunu silmək istəyirsiniz?",
38+
"settingcheckbox": "Erase settings and remove log{{newLine}}Note: This can't be undone. Any modified settings will be forgotten and log will be deleted.",
3839
"title": "Silin"
3940
},
4041
"update": {

public/locales/az/translation.json

+5-5
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@
203203
"store": "Mağaza",
204204
"title": "Oyunun adı"
205205
},
206-
"GameSettings": "Oyun Parametrləri",
207206
"generic": {
208207
"error": {
209208
"component": "Oyun tapılmadı - Çıxıb yenidən daxil olmağa çalışın və ya aşağıdakı seçimlərdən birini edin"
@@ -216,9 +215,11 @@
216215
"GOG": "GOG",
217216
"gog-store": "GOG Mağazası",
218217
"header": {
218+
"hide_non_available_games": "Hide non-available games",
219219
"ignore_hidden": "Gizləməyə məhəl qoyma",
220220
"platform": "Platforma",
221221
"show_all_games": "Bütün oyunları göstərin",
222+
"show_available_games": "Show non-Available games",
222223
"show_favourites_only": "Yalnız Sevimliləri göstərin",
223224
"show_hidden": "Gizli göstər",
224225
"store": "Filtr Mağazası"
@@ -271,7 +272,7 @@
271272
"version": "Qəhrəmanlıq versiyası"
272273
},
273274
"save-sync": {
274-
"searching": "Trying to detect the correct save folder"
275+
"searching": "Trying to detect the correct save folder (click to cancel)"
275276
},
276277
"settings": "Parametrlər avtomatik olaraq saxlanılır",
277278
"version": "Şərab versiyası"
@@ -523,9 +524,9 @@
523524
"title": "Prefiksdə EXE-ni işə salın"
524525
},
525526
"savefolder": {
526-
"not-found": "Save folder not found, please select it manually",
527+
"not-found": "Save folder not found, please select it manually (click to retry)",
527528
"placeholder": "Oyunların dəqiq saxlanması qovluğunu seçin",
528-
"warning": "Please check twice if the path is correct"
529+
"warning": "Please check twice if the path is correct (click to retry)"
529530
},
530531
"select_theme": "Mövzu seçin",
531532
"showfps": "FPS göstərin (DX9, 10 və 11)",
@@ -563,7 +564,6 @@
563564
},
564565
"navbar": {
565566
"advanced": "Qabaqcıl",
566-
"games_settings": "Game Settings",
567567
"games_settings_defaults": "Game Defaults",
568568
"general": "General",
569569
"log": "Giriş",

public/locales/be/gamepage.json

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"uninstall": {
3535
"checkbox": "Выдаліць прэфікс: {{prefix}}{{newLine}}Заўвага: гэта нельга адрабіць, а таксама прывядзе да выдалення файлаў захавання, у якіх няма рэзервовых копій.",
3636
"message": "Вы хочаце выдаліць гэтую гульню?",
37+
"settingcheckbox": "Erase settings and remove log{{newLine}}Note: This can't be undone. Any modified settings will be forgotten and log will be deleted.",
3738
"title": "Выдаліць"
3839
},
3940
"update": {

public/locales/be/translation.json

+8-6
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@
203203
"store": "Store",
204204
"title": "Game Title"
205205
},
206-
"GameSettings": "Game Settings",
207206
"generic": {
208207
"error": {
209208
"component": "No Games found - Try to logout and login again or one of the options bellow"
@@ -216,9 +215,11 @@
216215
"GOG": "GOG",
217216
"gog-store": "GOG Store",
218217
"header": {
218+
"hide_non_available_games": "Hide non-available games",
219219
"ignore_hidden": "Ignore Hidden",
220220
"platform": "",
221221
"show_all_games": "Show all games",
222+
"show_available_games": "Show non-Available games",
222223
"show_favourites_only": "Show Favourites only",
223224
"show_hidden": "Show Hidden",
224225
"store": "Filter Store"
@@ -271,7 +272,7 @@
271272
"version": "HyperPlay Version"
272273
},
273274
"save-sync": {
274-
"searching": "Trying to detect the correct save folder"
275+
"searching": "Trying to detect the correct save folder (click to cancel)"
275276
},
276277
"settings": "",
277278
"version": "Wine Version"
@@ -441,7 +442,7 @@
441442
"autovkd3d": "Auto Install/Update VKD3D on Prefix",
442443
"change-target-exe": "Select an alternative EXE to run",
443444
"checkForUpdatesOnStartup": "Check for HyperPlay Updates on Startup",
444-
"crossover-version": "Crossover Version",
445+
"crossover-version": "Crossover/Wine Version",
445446
"custom_themes_path": "Custom Themes Path",
446447
"customWineProton": "Custom Wine/Proton Paths",
447448
"darktray": "Use Dark Tray Icon (needs restart)",
@@ -523,9 +524,9 @@
523524
"title": "Select EXE to Run"
524525
},
525526
"savefolder": {
526-
"not-found": "Save folder not found, please select it manually",
527+
"not-found": "Save folder not found, please select it manually (click to retry)",
527528
"placeholder": "Выберыце дакладную тэчку захавання гульняў",
528-
"warning": "Please check twice if the path is correct"
529+
"warning": "Please check twice if the path is correct (click to retry)"
529530
},
530531
"select_theme": "Select Theme",
531532
"showfps": "",
@@ -563,7 +564,8 @@
563564
},
564565
"navbar": {
565566
"advanced": "Advanced",
566-
"general": "",
567+
"games_settings_defaults": "Game Defaults",
568+
"general": "Генерал",
567569
"log": "Log",
568570
"other": "",
569571
"sync": "",

public/locales/bg/gamepage.json

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"uninstall": {
3535
"checkbox": "Remove prefix: {{prefix}}{{newLine}}Note: This can't be undone and will also remove not backed up save files.",
3636
"message": "Искате ли да деинсталирате тази игра?",
37+
"settingcheckbox": "Erase settings and remove log{{newLine}}Note: This can't be undone. Any modified settings will be forgotten and log will be deleted.",
3738
"title": "Деинсталиране"
3839
},
3940
"update": {

public/locales/bg/translation.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@
203203
"store": "Магазин",
204204
"title": "Име на играта"
205205
},
206-
"GameSettings": "Настройки на играта",
207206
"generic": {
208207
"error": {
209208
"component": "Няма намерени игри. Опитайте да излезете и влезете пак с регистрацията си, или пробвайте един от вариантите по-долу"
@@ -216,9 +215,11 @@
216215
"GOG": "GOG",
217216
"gog-store": "Магазин на GOG",
218217
"header": {
218+
"hide_non_available_games": "Hide non-available games",
219219
"ignore_hidden": "Пренебрегване на скритите",
220220
"platform": "Платформа",
221221
"show_all_games": "Показване на всички игри",
222+
"show_available_games": "Show non-Available games",
222223
"show_favourites_only": "Показване само на любимите",
223224
"show_hidden": "Показване на скритите",
224225
"store": "Филтриране на магазина"
@@ -441,7 +442,7 @@
441442
"autovkd3d": "Автоматично инсталиране/обновяване на VKD3D в префикса",
442443
"change-target-exe": "Изберете алтернативен файл EXE за изпълнение",
443444
"checkForUpdatesOnStartup": "Check for HyperPlay Updates on Startup",
444-
"crossover-version": "Crossover Version",
445+
"crossover-version": "Crossover/Wine Version",
445446
"custom_themes_path": "Custom Themes Path",
446447
"customWineProton": "Персонализирани пътища за Wine/Proton",
447448
"darktray": "Използване на тъмна иконка за системната област за уведомления",
@@ -563,7 +564,6 @@
563564
},
564565
"navbar": {
565566
"advanced": "Разширени",
566-
"games_settings": "Game Settings",
567567
"games_settings_defaults": "Game Defaults",
568568
"general": "Общи",
569569
"log": "Журнал",

public/locales/bs/gamepage.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"checkbox": "Želite li obrisati i prefiks? Ovo se ne može poništiti.",
3636
"checkbox_prefix": "Prefiks",
3737
"message": "Želite li izbrisati video igru?",
38+
"settingcheckbox": "Erase settings and remove log{{newLine}}Note: This can't be undone. Any modified settings will be forgotten and log will be deleted.",
3839
"title": "Izbriši"
3940
},
4041
"update": {

0 commit comments

Comments
 (0)