Compare commits

...

8 Commits

Author SHA1 Message Date
Kamesuta
da765e28a2
Merge db3a4998d9 into dc15bbfde8 2024-02-23 12:09:27 +09:00
Daniel Scalzi
dc15bbfde8
2.2.0 2024-02-22 11:50:18 -05:00
Daniel Scalzi
0d23f5c45b
Upgrade to Electron 29, Node.js 20. 2024-02-22 11:42:13 -05:00
Kamesuta
fc4823a01f
Localize Microsoft/Mojang authentication error messages (#331)
* Move Microsoft/Mojang error message to lang file.

* Add mstfLogin to language file
2024-02-22 11:23:23 -05:00
Kamesuta
db3a4998d9 Remove "WesterosCraft" in lang file 2023-10-23 03:16:09 +09:00
Daniel Scalzi
e5b236dd46
Update app/assets/lang/ja_JP.toml 2023-10-14 18:39:07 -04:00
Kamesuta
b2109168f5 Added "nowrap" to prevent Japanese line breaks in the middle of a sentence 2023-10-06 12:40:29 +09:00
Kamesuta
b945b7278c Add japanese language file 2023-10-06 12:38:43 +09:00
11 changed files with 854 additions and 118 deletions

View File

@ -20,7 +20,7 @@ jobs:
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: 18
node-version: 20
- name: Set up Python
uses: actions/setup-python@v4

2
.nvmrc
View File

@ -1 +1 @@
18
20

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2017-2022 Daniel D. Scalzi
Copyright (c) 2017-2024 Daniel D. Scalzi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -84,7 +84,7 @@ This section details the setup of a basic developmentment environment.
**System Requirements**
* [Node.js][nodejs] v18
* [Node.js][nodejs] v20
---

View File

@ -3204,6 +3204,7 @@ input:checked + .toggleSwitchSlider:before {
#server_status_wrapper {
display: inline-flex;
width: 75px;
text-wrap: nowrap;
}
/* Span which displays the player count of the selected server. */
@ -3295,6 +3296,7 @@ input:checked + .toggleSwitchSlider:before {
padding: 0px 3px;
text-align: center;
letter-spacing: 1px;
text-wrap: nowrap;
}
/* Wrapper container for mojang service information. */

View File

@ -12,12 +12,122 @@
const ConfigManager = require('./configmanager')
const { LoggerUtil } = require('helios-core')
const { RestResponseStatus } = require('helios-core/common')
const { MojangRestAPI, mojangErrorDisplayable, MojangErrorCode } = require('helios-core/mojang')
const { MicrosoftAuth, microsoftErrorDisplayable, MicrosoftErrorCode } = require('helios-core/microsoft')
const { MojangRestAPI, MojangErrorCode } = require('helios-core/mojang')
const { MicrosoftAuth, MicrosoftErrorCode } = require('helios-core/microsoft')
const { AZURE_CLIENT_ID } = require('./ipcconstants')
const Lang = require('./langloader')
const log = LoggerUtil.getLogger('AuthManager')
// Error messages
function microsoftErrorDisplayable(errorCode) {
switch (errorCode) {
case MicrosoftErrorCode.NO_PROFILE:
return {
title: Lang.queryJS('auth.microsoft.error.noProfileTitle'),
desc: Lang.queryJS('auth.microsoft.error.noProfileDesc')
}
case MicrosoftErrorCode.NO_XBOX_ACCOUNT:
return {
title: Lang.queryJS('auth.microsoft.error.noXboxAccountTitle'),
desc: Lang.queryJS('auth.microsoft.error.noXboxAccountDesc')
}
case MicrosoftErrorCode.XBL_BANNED:
return {
title: Lang.queryJS('auth.microsoft.error.xblBannedTitle'),
desc: Lang.queryJS('auth.microsoft.error.xblBannedDesc')
}
case MicrosoftErrorCode.UNDER_18:
return {
title: Lang.queryJS('auth.microsoft.error.under18Title'),
desc: Lang.queryJS('auth.microsoft.error.under18Desc')
}
case MicrosoftErrorCode.UNKNOWN:
return {
title: Lang.queryJS('auth.microsoft.error.unknownTitle'),
desc: Lang.queryJS('auth.microsoft.error.unknownDesc')
}
}
}
function mojangErrorDisplayable(errorCode) {
switch(errorCode) {
case MojangErrorCode.ERROR_METHOD_NOT_ALLOWED:
return {
title: Lang.queryJS('auth.mojang.error.methodNotAllowedTitle'),
desc: Lang.queryJS('auth.mojang.error.methodNotAllowedDesc')
}
case MojangErrorCode.ERROR_NOT_FOUND:
return {
title: Lang.queryJS('auth.mojang.error.notFoundTitle'),
desc: Lang.queryJS('auth.mojang.error.notFoundDesc')
}
case MojangErrorCode.ERROR_USER_MIGRATED:
return {
title: Lang.queryJS('auth.mojang.error.accountMigratedTitle'),
desc: Lang.queryJS('auth.mojang.error.accountMigratedDesc')
}
case MojangErrorCode.ERROR_INVALID_CREDENTIALS:
return {
title: Lang.queryJS('auth.mojang.error.invalidCredentialsTitle'),
desc: Lang.queryJS('auth.mojang.error.invalidCredentialsDesc')
}
case MojangErrorCode.ERROR_RATELIMIT:
return {
title: Lang.queryJS('auth.mojang.error.tooManyAttemptsTitle'),
desc: Lang.queryJS('auth.mojang.error.tooManyAttemptsDesc')
}
case MojangErrorCode.ERROR_INVALID_TOKEN:
return {
title: Lang.queryJS('auth.mojang.error.invalidTokenTitle'),
desc: Lang.queryJS('auth.mojang.error.invalidTokenDesc')
}
case MojangErrorCode.ERROR_ACCESS_TOKEN_HAS_PROFILE:
return {
title: Lang.queryJS('auth.mojang.error.tokenHasProfileTitle'),
desc: Lang.queryJS('auth.mojang.error.tokenHasProfileDesc')
}
case MojangErrorCode.ERROR_CREDENTIALS_MISSING:
return {
title: Lang.queryJS('auth.mojang.error.credentialsMissingTitle'),
desc: Lang.queryJS('auth.mojang.error.credentialsMissingDesc')
}
case MojangErrorCode.ERROR_INVALID_SALT_VERSION:
return {
title: Lang.queryJS('auth.mojang.error.invalidSaltVersionTitle'),
desc: Lang.queryJS('auth.mojang.error.invalidSaltVersionDesc')
}
case MojangErrorCode.ERROR_UNSUPPORTED_MEDIA_TYPE:
return {
title: Lang.queryJS('auth.mojang.error.unsupportedMediaTypeTitle'),
desc: Lang.queryJS('auth.mojang.error.unsupportedMediaTypeDesc')
}
case MojangErrorCode.ERROR_GONE:
return {
title: Lang.queryJS('auth.mojang.error.accountGoneTitle'),
desc: Lang.queryJS('auth.mojang.error.accountGoneDesc')
}
case MojangErrorCode.ERROR_UNREACHABLE:
return {
title: Lang.queryJS('auth.mojang.error.unreachableTitle'),
desc: Lang.queryJS('auth.mojang.error.unreachableDesc')
}
case MojangErrorCode.ERROR_NOT_PAID:
return {
title: Lang.queryJS('auth.mojang.error.gameNotPurchasedTitle'),
desc: Lang.queryJS('auth.mojang.error.gameNotPurchasedDesc')
}
case MojangErrorCode.UNKNOWN:
return {
title: Lang.queryJS('auth.mojang.error.unknownErrorTitle'),
desc: Lang.queryJS('auth.mojang.error.unknownErrorDesc')
}
default:
throw new Error(`Unknown error code: ${errorCode}`)
}
}
// Functions
/**

View File

@ -279,6 +279,11 @@ latestVersionTitle = "You Are Running the Latest Version"
checkForUpdatesButton = "Check for Updates"
checkingForUpdatesButton = "Checking for Updates.."
[js.settings.msftLogin]
errorTitle = "Microsoft Login Failed"
errorMessage = "We were unable to authenticate your Microsoft account. Please try again."
okButton = "OK"
[js.uibinder.startup]
fatalErrorTitle = "Fatal Error: Unable to Load Distribution Index"
fatalErrorMessage = "A connection could not be established to our servers to download the distribution index. No local copies were available to load. <br><br>The distribution index is an essential file which provides the latest server information. The launcher is unable to start without it. Ensure you are connected to the internet and relaunch the application."
@ -295,3 +300,45 @@ selectAnotherAccountButton = "Select Another Account"
checkingForUpdateButton = "Checking for Updates..."
installNowButton = "Install Now"
checkForUpdatesButton = "Check for Updates"
[js.auth.microsoft.error]
noProfileTitle = "Error During Login:<br>Profile Not Set Up"
noProfileDesc = "Your Microsoft account does not yet have a Minecraft profile set up. If you have recently purchased the game or redeemed it through Xbox Game Pass, you have to set up your profile on <a href=\"https://minecraft.net/\">Minecraft.net</a>.<br><br>If you have not yet purchased the game, you can also do that on <a href=\"https://minecraft.net/\">Minecraft.net</a>."
noXboxAccountTitle = "Error During Login:<br>No Xbox Account"
noXboxAccountDesc = "Your Microsoft account has no Xbox account associated with it."
xblBannedTitle = "Error During Login:<br>Xbox Live Unavailable"
xblBannedDesc = "Your Microsoft account is from a country where Xbox Live is not available or banned."
under18Title = "Error During Login:<br>Parental Approval Required"
under18Desc = "Accounts for users under the age of 18 must be added to a Family by an adult."
unknownTitle = "Unknown Error During Login"
unknownDesc = "An unknown error has occurred. Please see the console for details."
[js.auth.mojang.error]
methodNotAllowedTitle = "Internal Error:<br>Method Not Allowed"
methodNotAllowedDesc = "Method not allowed. Please report this error."
notFoundTitle = "Internal Error:<br>Not Found"
notFoundDesc = "The authentication endpoint was not found. Please report this issue."
accountMigratedTitle = "Error During Login:<br>Account Migrated"
accountMigratedDesc = "You've attempted to login with a migrated account. Try again using the account email as the username."
invalidCredentialsTitle = "Error During Login:<br>Invalid Credentials"
invalidCredentialsDesc = "The email or password you've entered is incorrect. Please try again."
tooManyAttemptsTitle = "Error During Login:<br>Too Many Attempts"
tooManyAttemptsDesc = "There have been too many login attempts with this account recently. Please try again later."
invalidTokenTitle = "Error During Login:<br>Invalid Token"
invalidTokenDesc = "The provided access token is invalid."
tokenHasProfileTitle = "Error During Login:<br>Token Has Profile"
tokenHasProfileDesc = "Access token already has a profile assigned. Selecting profiles is not implemented yet."
credentialsMissingTitle = "Error During Login:<br>Credentials Missing"
credentialsMissingDesc = "Username/password was not submitted or password is less than 3 characters."
invalidSaltVersionTitle = "Error During Login:<br>Invalid Salt Version"
invalidSaltVersionDesc = "Invalid salt version."
unsupportedMediaTypeTitle = "Internal Error:<br>Unsupported Media Type"
unsupportedMediaTypeDesc = "Unsupported media type. Please report this error."
accountGoneTitle = "Error During Login:<br>Account Migrated"
accountGoneDesc = "Account has been migrated to a Microsoft account. Please log in with Microsoft."
unreachableTitle = "Error During Login:<br>Unreachable"
unreachableDesc = "Unable to reach the authentication servers. Ensure that they are online and you are connected to the internet."
gameNotPurchasedTitle = "Error During Login:<br>Game Not Purchased"
gameNotPurchasedDesc = "The account you are trying to login with has not purchased a copy of Minecraft. You may purchase a copy on <a href=\"https://minecraft.net/\">Minecraft.net</a>"
unknownErrorTitle = "Unknown Error During Login"
unknownErrorDesc = "An unknown error has occurred. Please see the console for details."

266
app/assets/lang/ja_JP.toml Normal file
View File

@ -0,0 +1,266 @@
[ejs.landing]
updateAvailableTooltip = "アップデートが利用可能です"
usernamePlaceholder = "ユーザー名"
usernameEditButton = "編集"
settingsTooltip = "設定"
mojangStatus = "MOJANG ステータス"
mojangStatusTooltipTitle = "サービス"
mojangStatusNETitle = "非必須"
newsButton = "ニュース"
launchButton = "プレイ"
launchButtonPlaceholder = "&#8226; サーバーが選択されていません"
launchDetails = "お待ちください..."
newsErrorLoadSpan = "ニュースを確認中..."
newsErrorFailedSpan = "ニュースの読み込みに失敗しました"
newsErrorRetryButton = "再試行"
newsErrorNoneSpan = "ニュースなし"
[ejs.login]
loginCancelText = "キャンセル"
loginSubheader = "MINECRAFT ログイン"
loginEmailError = "* 無効な値です"
loginEmailPlaceholder = "メールアドレスまたはユーザー名"
loginPasswordError = "* 必須項目です"
loginPasswordPlaceholder = "パスワード"
loginForgotPasswordText = "パスワードを忘れた場合"
loginRememberMeText = "記憶する"
loginButtonText = "ログイン"
loginNeedAccountText = "アカウントが必要ですか?"
loginPasswordDisclaimer1 = "あなたのパスワードは直接Mojangに送信され、保存されません。"
loginPasswordDisclaimer2 = "{appName}はMojang ABと提携していません。"
[ejs.loginOptions]
loginOptionsTitle = "ログインオプション"
loginWithMicrosoft = "Microsoftアカウントでログイン"
loginWithMojang = "Mojangアカウントでログイン"
cancelButton = "キャンセル"
[ejs.overlay]
serverSelectHeader = "利用可能なサーバー"
serverSelectConfirm = "選択"
serverSelectCancel = "キャンセル"
accountSelectHeader = "アカウントを選択"
accountSelectConfirm = "選択"
accountSelectCancel = "キャンセル"
[ejs.settings]
navHeaderText = "設定"
navAccount = "アカウント"
navMods = "Mod"
navLauncher = "ランチャー"
navUpdates = "アップデート"
navDone = "完了"
tabAccountHeaderText = "アカウント設定"
tabAccountHeaderDesc = "新しいアカウントを追加、又は使用するアカウントを管理します"
addMicrosoftAccount = "+ Microsoft アカウントを追加"
addMojangAccount = "+ Mojang アカウントを追加"
minecraftTabHeaderText = "Minecraft 設定"
minecraftTabHeaderDesc = "ゲーム起動に関連するオプション"
gameResolutionTitle = "ゲーム解像度"
launchFullscreenTitle = "フルスクリーンで起動"
autoConnectTitle = "起動時にサーバーに自動的に接続する"
launchDetachedTitle = "ランチャーとゲームを分離する"
launchDetachedDesc = "オフにするとランチャーを閉じた際にゲームも終了します。"
tabModsHeaderText = "Mod 設定"
tabModsHeaderDesc = "ModをON/OFFしたり、追加したりできます"
switchServerButton = "切り替え"
requiredMods = "必須 Mod"
optionalMods = "オプション Mod"
dropinMods = "ドロップ・イン Mod"
addMods = "+ Mod を追加"
dropinRefreshNote = "(F5を押してリロードしてください)"
shaderpacks = "シェーダーパック"
shaderpackDesc = "シェーダーパックを追加・管理できます。<br>シェーダーを快適に動作させるにはハイスペックなマシンが必要です。"
selectShaderpack = "シェーダーパックを選択"
tabJavaHeaderText = "Java 設定"
tabJavaHeaderDesc = "Java の詳細設定"
memoryTitle = "メモリ"
maxRAM = "最大メモリ"
minRAM = "最小メモリ"
memoryDesc = "推奨する最小メモリは 3 GBです。最小値と最大値を同じ値に設定すると、ラグが減少する場合があります。"
memoryTotalTitle = "合計"
memoryAvailableTitle = "利用可能"
javaExecutableTitle = "Java 実行ファイル"
javaExecSelDialogTitle = "Java 実行ファイルの選択"
javaExecSelButtonText = "ファイルを選択"
javaExecDesc = "実行可能なJavaファイルかゲーム起動前に検証されます。"
javaPathDesc = "パスは <strong>{pathSuffix}</strong> で終わる必要があります。"
jvmOptsTitle = "Java起動時引数"
jvmOptsDesc = "実行時にJVMに提供されるオプション。<em>-Xms</em> および <em>-Xmx</em> は含めないでください。"
launcherTabHeaderText = "ランチャー設定"
launcherTabHeaderDesc = "ランチャー本体に関連するオプション"
allowPrereleaseTitle = "プレリリースのアップデートを許可"
allowPrereleaseDesc = "プレリリースには十分にテストされていない新機能が含まれる場合があります。<br>プレリリースバージョンを使用している場合、常に有効になります。"
dataDirectoryTitle = "データディレクトリ"
selectDataDirectory = "データディレクトリを選択"
chooseFolder = "フォルダを選択"
dataDirectoryDesc = "このランチャーのすべてのゲームデータとJavaランタイムが保存されます。<br>スクリーンショットとワールドデータは、対応するModパックのフォルダに保存されます。"
aboutTabHeaderDesc = "現在のバージョンの情報とリリースノートを表示します"
stableRelease = "安定版リリース"
versionText = "バージョン "
sourceGithub = "ソースGitHub"
support = "サポート"
devToolsConsole = "DevTools コンソール"
releaseNotes = "リリースノート"
changelog = "変更履歴"
noReleaseNotes = "リリースノートはありません"
viewReleaseNotes = "GitHub でリリースノートを表示"
launcherUpdatesHeaderText = "ランチャーアップデート"
launcherUpdatesHeaderDesc = "ランチャーのアップデートを確認します<br>アップデートがある場合をここからインストールが可能です"
checkForUpdates = "アップデートを確認"
whatsNew = "新機能"
updateReleaseNotes = "アップデートのリリースノート"
[ejs.waiting]
waitingText = "Microsoft の応答を待っています..."
[ejs.welcome]
continueButton = "次へ"
[js.login]
login = "ログイン"
loggingIn = "ログイン中"
success = "成功"
tryAgain = "再試行"
[js.login.error]
invalidValue = "* 無効な値"
requiredValue = "* 必須項目"
[js.login.error.unknown]
title = "ログイン中に不明なエラーが発生"
desc = "不明なエラーが発生しました。詳細はコンソールをご覧ください。"
[js.landing.launch]
pleaseWait = "お待ちください..."
failureTitle = "起動中のエラー"
failureText = "詳細はコンソールCTRL + Shift + iをご覧ください。"
okay = "OK"
[js.landing.selectedAccount]
noAccountSelected = "アカウントが選択されていません"
[js.landing.selectedServer]
noSelection = "サーバーが選択されていません"
loading = "読み込み中..."
[js.landing.serverStatus]
server = "サーバー"
offline = "オフライン"
players = "プレイヤー"
[js.landing.systemScan]
checking = "システム情報を確認中..."
noCompatibleJava = "互換性のある<br>Javaインストールが見つかりません"
installJavaMessage = "Minecraftを起動するには、Java {major} の64ビットインストールが必要です。Javaをインストールしますか"
installJava = "Javaをインストール"
installJavaManually = "手動でインストール"
javaDownloadPrepare = "Javaのダウンロードを準備中.."
javaDownloadFailureTitle = "Javaのダウンロード中にエラーが発生しました"
javaDownloadFailureText = "詳細はコンソールCTRL + Shift + iをご覧ください。"
javaRequired = "起動にはJava {major}が必要です"
javaRequiredMessage = '起動には有効なx64バージョンのJava {major} インストールが必要です。<br><br>手動でのインストール方法については、<a href="https://github.com/dscalzi/HeliosLauncher/wiki/Java-Management#manually-installing-a-valid-version-of-java">Java Management Guide</a>をご覧ください。'
javaRequiredDismiss = "OK"
javaRequiredCancel = "戻る"
[js.landing.downloadJava]
findJdkFailure = "OpenJDKのディストリビューションが見つかりませんでした。"
javaDownloadCorruptedError = "ダウンロードしたJDKのハッシュが不正です。ファイルが壊れている可能性があります。"
extractingJava = "Javaを展開中"
javaInstalled = "Javaがインストールされました!"
[js.landing.dlAsync]
loadingServerInfo = "サーバー情報を読み込み中.."
fatalError = "致命的なエラー"
unableToLoadDistributionIndex = "ディストリビューションインデックスを読み込めませんでした。詳細はコンソールCTRL + Shift + iをご覧ください。"
pleaseWait = "お待ちください.."
errorDuringLaunchTitle = "起動中のエラー"
seeConsoleForDetails = "詳細はコンソールCTRL + Shift + iをご覧ください。"
validatingFileIntegrity = "ファイル整合性を検証中.."
errorDuringFileVerificationTitle = "ファイル検証中のエラー"
downloadingFiles = "ファイルをダウンロード中.."
errorDuringFileDownloadTitle = "ファイルダウンロード中のエラー"
preparingToLaunch = "起動の準備中.."
launchingGame = "ゲームを起動中.."
launchWrapperNotDownloaded = "重要なファイルであるLaunchWrapperのダウンロードに失敗しました。そのため、ゲームを起動できません。<br><br>この問題を解決するには、一時的にウイルス対策ソフトを無効にしてゲームを再起動してみてください。<br><br>時間がある場合は、<a href=\"https://github.com/dscalzi/HeliosLauncher/issues\">問題を報告</a>して、使用しているウイルス対策ソフトを教えていただければ幸いです。ウィルス対策ソフトの会社に連絡を取って問題を解決できるよう努力します。"
doneEnjoyServer = "完了。よいマイクラ生活を!"
checkConsoleForDetails = "詳細はコンソールCTRL + Shift + iをご確認ください。"
[js.landing.news]
checking = "ニュースをチェック中"
[js.settings.fileSelectors]
executables = "実行ファイル"
allFiles = "すべてのファイル"
[js.settings.mstfLogin]
errorTitle = "エラー発生"
errorMessage = "Microsoftの認証に失敗しました。もう一度試してみてください。"
[js.settings.mstfLogout]
errorTitle = "エラー発生"
errorMessage = "Microsoftのログアウトに失敗しました。もう一度試してみてください。"
[js.settings.authAccountSelect]
selectButton = "アカウントを選択"
selectedButton = "選択中のアカウント &#10004;"
[js.settings.authAccountLogout]
lastAccountWarningTitle = "注意<br>これはログインしている最後のアカウントです"
lastAccountWarningMessage = "ランチャーを使うためには、最低1個のアカウントにログインしている必要があります。ログアウトしたら、もう一度ログインしないといけなくなります。<br><br>本当にログアウトしますか?"
confirmButton = "はい"
cancelButton = "キャンセル"
[js.settings.authAccountPopulate]
username = "ユーザー名"
selectAccount = "アカウントを選択"
selectedAccount = "選択したアカウント ✓"
logout = "ログアウト"
[js.settings.dropinMods]
removeButton = "削除"
deleteFailedTitle = "ドロップ・イン Mod {fullName} の削除に失敗しました"
deleteFailedMessage = "ファイルが使用中でないことを確認して、再試行してみてください。"
failedToggleTitle = "1つまたは複数のドロップ・インModの切り替えに失敗しました"
okButton = "OK"
[js.settings.serverListing]
mainServer = "メインサーバー"
[js.settings.java]
selectedJava = "選択済み: Java {version} ({vendor})"
invalidSelection = "無効な選択"
requiresJava = "64ビット版Java {major} が必要です。"
availableOptions = "Java {major} (HotSpot VM) の利用可能なオプション"
[js.settings.about]
preReleaseTitle = "プレリリース"
stableReleaseTitle = "安定版リリース"
releaseNotesFailed = "リリースノートの読み込みに失敗しました。"
[js.settings.updates]
newReleaseTitle = "新しいバージョンが利用可能です"
newPreReleaseTitle = "新しいプレリリースが利用可能です"
downloadingButton = "ダウンロード中.."
downloadButton = 'GitHubからダウンロード<span style="font-size: 10px;color: gray;text-shadow: none !important;">ランチャーを閉じてdmgを実行してアップデートします。</span>'
latestVersionTitle = "最新バージョンをご利用中です"
checkForUpdatesButton = "アップデートを確認"
checkingForUpdatesButton = "アップデートを確認中..."
[js.uibinder.startup]
fatalErrorTitle = "致命的なエラー: ディストリビューションインデックスの読み込みに失敗"
fatalErrorMessage = "サーバーへの接続に失敗したためディストリビューションインデックスをダウンロードできませんでした。ローカルのキャッシュもありません。<br><br>ディストリビューションインデックスは、最新のサーバー情報を提供する重要なファイルです。このファイルなしではランチャーを起動できません。インターネットに接続されていることを確認して、アプリケーションを再起動してください。"
closeButton = "閉じる"
[js.uibinder.validateAccount]
failedMessageTitle = "ログインの更新に失敗"
failedMessage = "<strong>{account}</strong> のログインの更新に失敗しました。別のアカウントを選択するか、もう一度ログインしてください。"
failedMessageSelectAnotherAccount = "<strong>{account}</strong> のログインの更新に失敗しました。もう一度ログインしてください。"
loginButton = "ログイン"
selectAnotherAccountButton = "別のアカウントを選択"
[js.uicore.autoUpdate]
checkingForUpdateButton = "アップデートをチェック中..."
installNowButton = "今すぐインストール"
checkForUpdatesButton = "アップデートを確認"

View File

@ -2,7 +2,7 @@ appId: 'helioslauncher'
productName: 'Helios Launcher'
artifactName: '${productName}-setup-${version}.${ext}'
copyright: 'Copyright © 2018-2022 Daniel Scalzi'
copyright: 'Copyright © 2018-2024 Daniel Scalzi'
asar: true
compression: 'maximum'

515
package-lock.json generated
View File

@ -1,37 +1,37 @@
{
"name": "helioslauncher",
"version": "2.1.1",
"version": "2.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "helioslauncher",
"version": "2.1.1",
"version": "2.2.0",
"license": "UNLICENSED",
"dependencies": {
"@electron/remote": "^2.1.0",
"@electron/remote": "^2.1.2",
"adm-zip": "^0.5.9",
"discord-rpc-patch": "^4.0.1",
"ejs": "^3.1.9",
"ejs-electron": "^2.1.1",
"electron-updater": "^6.1.7",
"ejs-electron": "^3.0.0",
"electron-updater": "^6.1.8",
"fs-extra": "^11.1.1",
"github-syntax-dark": "^0.5.0",
"got": "^11.8.5",
"helios-core": "~2.1.1",
"helios-core": "~2.2.0",
"helios-distribution-types": "^1.3.0",
"jquery": "^3.7.1",
"lodash.merge": "^4.6.2",
"semver": "^7.5.4",
"semver": "^7.6.0",
"toml": "^3.0.0"
},
"devDependencies": {
"electron": "^27.1.3",
"electron-builder": "^24.9.1",
"electron": "^29.0.1",
"electron-builder": "^24.12.0",
"eslint": "^8.56.0"
},
"engines": {
"node": "18.x.x"
"node": "20.x.x"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@ -251,9 +251,9 @@
}
},
"node_modules/@electron/remote": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.0.tgz",
"integrity": "sha512-38jzz2beoYTo0DNS+aoaGyLS/fHeNTAc1Aom6HlYsxKnvVWjcg4xriC7J2IUkYSEDHGKX/D7jUst+mH4dHR6QA==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz",
"integrity": "sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==",
"peerDependencies": {
"electron": ">= 13.0.0"
}
@ -446,6 +446,102 @@
"integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true
},
"node_modules/@isaacs/cliui": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
"dev": true,
"dependencies": {
"string-width": "^5.1.2",
"string-width-cjs": "npm:string-width@^4.2.0",
"strip-ansi": "^7.0.1",
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
"wrap-ansi": "^8.1.0",
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@isaacs/cliui/node_modules/ansi-regex": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
"integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/@isaacs/cliui/node_modules/ansi-styles": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
"dev": true,
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/@isaacs/cliui/node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
"dev": true
},
"node_modules/@isaacs/cliui/node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
"eastasianwidth": "^0.2.0",
"emoji-regex": "^9.2.2",
"strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
"dependencies": {
"ansi-regex": "^6.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^6.1.0",
"string-width": "^5.0.1",
"strip-ansi": "^7.0.1"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/@malept/cross-spawn-promise": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz",
@ -533,6 +629,16 @@
"node": ">= 8"
}
},
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
"optional": true,
"engines": {
"node": ">=14"
}
},
"node_modules/@sindresorhus/is": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
@ -613,9 +719,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "18.19.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.2.tgz",
"integrity": "sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg==",
"version": "20.11.19",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
"integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
"dependencies": {
"undici-types": "~5.26.4"
}
@ -777,9 +883,9 @@
"dev": true
},
"node_modules/app-builder-lib": {
"version": "24.9.1",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.9.1.tgz",
"integrity": "sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g==",
"version": "24.12.0",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.12.0.tgz",
"integrity": "sha512-t/xinVrMbsEhwljLDoFOtGkiZlaxY1aceZbHERGAS02EkUHJp9lgs/+L8okXLlYCaDSqYdB05Yb8Co+krvguXA==",
"dev": true,
"dependencies": {
"@develar/schema-utils": "~2.6.5",
@ -788,15 +894,14 @@
"@electron/universal": "1.4.1",
"@malept/flatpak-bundler": "^0.4.0",
"@types/fs-extra": "9.0.13",
"7zip-bin": "~5.2.0",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
"builder-util": "24.8.1",
"builder-util": "24.9.4",
"builder-util-runtime": "9.2.3",
"chromium-pickle-js": "^0.2.0",
"debug": "^4.3.4",
"ejs": "^3.1.8",
"electron-publish": "24.8.1",
"electron-publish": "24.9.4",
"form-data": "^4.0.0",
"fs-extra": "^10.1.0",
"hosted-git-info": "^4.1.0",
@ -884,15 +989,48 @@
}
},
"node_modules/b4a": {
"version": "1.6.4",
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz",
"integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw=="
"version": "1.6.6",
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz",
"integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg=="
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/bare-events": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz",
"integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==",
"optional": true
},
"node_modules/bare-fs": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.1.5.tgz",
"integrity": "sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==",
"optional": true,
"dependencies": {
"bare-events": "^2.0.0",
"bare-os": "^2.0.0",
"bare-path": "^2.0.0",
"streamx": "^2.13.0"
}
},
"node_modules/bare-os": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz",
"integrity": "sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==",
"optional": true
},
"node_modules/bare-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz",
"integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==",
"optional": true,
"dependencies": {
"bare-os": "^2.1.0"
}
},
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@ -994,9 +1132,9 @@
"dev": true
},
"node_modules/builder-util": {
"version": "24.8.1",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.8.1.tgz",
"integrity": "sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw==",
"version": "24.9.4",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.9.4.tgz",
"integrity": "sha512-YNon3rYjPSm4XDDho9wD6jq7vLRJZUy9FR+yFZnHoWvvdVCnZakL4BctTlPABP41MvIH5yk2cTZ2YfkOhGistQ==",
"dev": true,
"dependencies": {
"@types/debug": "^4.1.6",
@ -1256,13 +1394,50 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/config-file-ts": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.4.tgz",
"integrity": "sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ==",
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz",
"integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==",
"dev": true,
"dependencies": {
"glob": "^7.1.6",
"typescript": "^4.0.2"
"glob": "^10.3.10",
"typescript": "^5.3.3"
}
},
"node_modules/config-file-ts/node_modules/glob": {
"version": "10.3.10",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
"integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^2.3.5",
"minimatch": "^9.0.1",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
"path-scurry": "^1.10.1"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/config-file-ts/node_modules/minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/core-util-is": {
@ -1439,13 +1614,13 @@
}
},
"node_modules/dmg-builder": {
"version": "24.9.1",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.9.1.tgz",
"integrity": "sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ==",
"version": "24.12.0",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.12.0.tgz",
"integrity": "sha512-nS22OyHUIYcK40UnILOtqC5Qffd1SN1Ljqy/6e+QR2H1wM3iNBrKJoEbDRfEmYYaALKNFRkKPqSbZKRsGUBdPw==",
"dev": true,
"dependencies": {
"app-builder-lib": "24.9.1",
"builder-util": "24.8.1",
"app-builder-lib": "24.12.0",
"builder-util": "24.9.4",
"builder-util-runtime": "9.2.3",
"fs-extra": "^10.1.0",
"iconv-lite": "^0.6.2",
@ -1522,6 +1697,12 @@
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
"dev": true
},
"node_modules/eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true
},
"node_modules/ejs": {
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
@ -1537,22 +1718,22 @@
}
},
"node_modules/ejs-electron": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ejs-electron/-/ejs-electron-2.1.1.tgz",
"integrity": "sha512-ShNZTsmDdHMu5MN6komfgdfTMS4NEi2GJY/e5Ncg5uiLoBIqmbEcRwLNsxwPXUH1JNQm4S/M+A77cjhccgWmdw==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ejs-electron/-/ejs-electron-3.0.0.tgz",
"integrity": "sha512-U84psVz+oyyo06N+dOvb6FRVyZj/Pl2MLt7Iayq8DnlOz8jc1pfnGbxCeBQqbqNCkJpiS6MOPcPbRMvaLukf3g==",
"dependencies": {
"ejs": "^3.1.3",
"mime": "^2.4.6"
"ejs": "^3.1.9",
"mime": "^3.0.0"
}
},
"node_modules/electron": {
"version": "27.1.3",
"resolved": "https://registry.npmjs.org/electron/-/electron-27.1.3.tgz",
"integrity": "sha512-7eD8VMhhlL5J531OOawn00eMthUkX1e3qN5Nqd7eMK8bg5HxQBrn8bdPlvUEnCano9KhrVwaDnGeuzWoDOGpjQ==",
"version": "29.0.1",
"resolved": "https://registry.npmjs.org/electron/-/electron-29.0.1.tgz",
"integrity": "sha512-hsQr9clm8NCAMv4uhHlXThHn52UAgrHgyz3ubBAxZIPuUcpKVDtg4HPmx4hbmHIbYICI5OyLN3Ztp7rS+Dn4Lw==",
"hasInstallScript": true,
"dependencies": {
"@electron/get": "^2.0.0",
"@types/node": "^18.11.18",
"@types/node": "^20.9.0",
"extract-zip": "^2.0.1"
},
"bin": {
@ -1563,16 +1744,16 @@
}
},
"node_modules/electron-builder": {
"version": "24.9.1",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.9.1.tgz",
"integrity": "sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg==",
"version": "24.12.0",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.12.0.tgz",
"integrity": "sha512-dH4O9zkxFxFbBVFobIR5FA71yJ1TZSCvjZ2maCskpg7CWjBF+SNRSQAThlDyUfRuB+jBTMwEMzwARywmap0CSw==",
"dev": true,
"dependencies": {
"app-builder-lib": "24.9.1",
"builder-util": "24.8.1",
"app-builder-lib": "24.12.0",
"builder-util": "24.9.4",
"builder-util-runtime": "9.2.3",
"chalk": "^4.1.2",
"dmg-builder": "24.9.1",
"dmg-builder": "24.12.0",
"fs-extra": "^10.1.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@ -1603,13 +1784,13 @@
}
},
"node_modules/electron-publish": {
"version": "24.8.1",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.8.1.tgz",
"integrity": "sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw==",
"version": "24.9.4",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.9.4.tgz",
"integrity": "sha512-FghbeVMfxHneHjsG2xUSC0NMZYWOOWhBxfZKPTbibcJ0CjPH0Ph8yb5CUO62nqywXfA5u1Otq6K8eOdOixxmNg==",
"dev": true,
"dependencies": {
"@types/fs-extra": "^9.0.11",
"builder-util": "24.8.1",
"builder-util": "24.9.4",
"builder-util-runtime": "9.2.3",
"chalk": "^4.1.2",
"fs-extra": "^10.1.0",
@ -1631,10 +1812,22 @@
"node": ">=12"
}
},
"node_modules/electron-publish/node_modules/mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"dev": true,
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/electron-updater": {
"version": "6.1.7",
"resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.7.tgz",
"integrity": "sha512-SNOhYizjkm4ET+Y8ilJyUzcVsFJDtINzVN1TyHnZeMidZEG3YoBebMyXc/J6WSiXdUaOjC7ngekN6rNp6ardHA==",
"version": "6.1.8",
"resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.8.tgz",
"integrity": "sha512-hhOTfaFAd6wRHAfUaBhnAOYc+ymSGCWJLtFkw4xJqOvtpHmIdNHnXDV9m1MHC+A6q08Abx4Ykgyz/R5DGKNAMQ==",
"dependencies": {
"builder-util-runtime": "9.2.3",
"fs-extra": "^10.1.0",
@ -1936,9 +2129,9 @@
"dev": true
},
"node_modules/fastq": {
"version": "1.16.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
"integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"dependencies": {
"reusify": "^1.0.4"
}
@ -2017,6 +2210,22 @@
"resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
"integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"node_modules/foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
"integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.0",
"signal-exit": "^4.0.1"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@ -2331,17 +2540,17 @@
}
},
"node_modules/helios-core": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/helios-core/-/helios-core-2.1.1.tgz",
"integrity": "sha512-un9QtEofI3jR8I1aoXodJhwoQyjUvJ34/Rc8PFsvNgMyWv25F4/i4AWgRX/pZKHpy8rtyS2SwgoBSKHV1WA1DA==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/helios-core/-/helios-core-2.2.0.tgz",
"integrity": "sha512-HGzBwmKF48ax72YTEmIBv7pjMtuaDuYYyC6trmWurF/hFq+AnGTOrefqgD/zRvR2wiuYk78YrUiTIWz1TvE0Pw==",
"dependencies": {
"fastq": "^1.16.0",
"fastq": "^1.17.1",
"fs-extra": "^11.2.0",
"got": "^11.8.6",
"luxon": "^3.4.4",
"node-stream-zip": "^1.15.0",
"semver": "^7.5.4",
"tar-fs": "^3.0.4",
"semver": "^7.6.0",
"tar-fs": "^3.0.5",
"triple-beam": "^1.4.1",
"winreg": "^1.2.5",
"winston": "^3.11.0"
@ -2575,12 +2784,12 @@
}
},
"node_modules/isbinaryfile": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz",
"integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==",
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz",
"integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==",
"dev": true,
"engines": {
"node": ">= 14.0.0"
"node": ">= 18.0.0"
},
"funding": {
"url": "https://github.com/sponsors/gjtorikian/"
@ -2592,6 +2801,24 @@
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
"dev": true
},
"node_modules/jackspeak": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
"integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
"dev": true,
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/jake": {
"version": "10.8.7",
"resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
@ -2814,14 +3041,14 @@
}
},
"node_modules/mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
"integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4.0.0"
"node": ">=10.0.0"
}
},
"node_modules/mime-db": {
@ -2919,11 +3146,6 @@
"node": ">=10"
}
},
"node_modules/mkdirp-classic": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@ -3103,6 +3325,31 @@
"node": ">=8"
}
},
"node_modules/path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"dev": true,
"dependencies": {
"lru-cache": "^9.1.1 || ^10.0.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
"integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
"dev": true,
"engines": {
"node": "14 || >=16.14"
}
},
"node_modules/pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@ -3391,9 +3638,9 @@
"integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA=="
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
"integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@ -3458,6 +3705,18 @@
"node": ">=8"
}
},
"node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
@ -3547,12 +3806,15 @@
}
},
"node_modules/streamx": {
"version": "2.15.5",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz",
"integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==",
"version": "2.16.1",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz",
"integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==",
"dependencies": {
"fast-fifo": "^1.1.0",
"queue-tick": "^1.0.1"
},
"optionalDependencies": {
"bare-events": "^2.2.0"
}
},
"node_modules/string_decoder": {
@ -3577,6 +3839,21 @@
"node": ">=8"
}
},
"node_modules/string-width-cjs": {
"name": "string-width",
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@ -3589,6 +3866,19 @@
"node": ">=8"
}
},
"node_modules/strip-ansi-cjs": {
"name": "strip-ansi",
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@ -3641,19 +3931,22 @@
}
},
"node_modules/tar-fs": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
"integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz",
"integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==",
"dependencies": {
"mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
"tar-stream": "^3.1.5"
},
"optionalDependencies": {
"bare-fs": "^2.1.1",
"bare-path": "^2.1.0"
}
},
"node_modules/tar-stream": {
"version": "3.1.6",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz",
"integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==",
"version": "3.1.7",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
"dependencies": {
"b4a": "^1.6.4",
"fast-fifo": "^1.2.0",
@ -3773,16 +4066,16 @@
}
},
"node_modules/typescript": {
"version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
"node": ">=14.17"
}
},
"node_modules/undici-types": {
@ -3889,9 +4182,9 @@
}
},
"node_modules/winston-transport": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz",
"integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==",
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz",
"integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==",
"dependencies": {
"logform": "^2.3.2",
"readable-stream": "^3.6.0",
@ -3918,6 +4211,24 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/wrap-ansi-cjs": {
"name": "wrap-ansi",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@ -1,6 +1,6 @@
{
"name": "helioslauncher",
"version": "2.1.1",
"version": "2.2.0",
"productName": "Helios Launcher",
"description": "Modded Minecraft Launcher",
"author": "Daniel Scalzi (https://github.com/dscalzi/)",
@ -20,28 +20,28 @@
"lint": "eslint --config .eslintrc.json ."
},
"engines": {
"node": "18.x.x"
"node": "20.x.x"
},
"dependencies": {
"@electron/remote": "^2.1.0",
"@electron/remote": "^2.1.2",
"adm-zip": "^0.5.9",
"discord-rpc-patch": "^4.0.1",
"ejs": "^3.1.9",
"ejs-electron": "^2.1.1",
"electron-updater": "^6.1.7",
"ejs-electron": "^3.0.0",
"electron-updater": "^6.1.8",
"fs-extra": "^11.1.1",
"github-syntax-dark": "^0.5.0",
"got": "^11.8.5",
"helios-core": "~2.1.1",
"helios-core": "~2.2.0",
"helios-distribution-types": "^1.3.0",
"jquery": "^3.7.1",
"lodash.merge": "^4.6.2",
"semver": "^7.5.4",
"semver": "^7.6.0",
"toml": "^3.0.0"
},
"devDependencies": {
"electron": "^27.1.3",
"electron-builder": "^24.9.1",
"electron": "^29.0.1",
"electron-builder": "^24.12.0",
"eslint": "^8.56.0"
},
"repository": {