build(deps-dev): bump the frontend-deps group with 8 updates (#289)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tyler Wilding <xtvaser@gmail.com>
This commit is contained in:
dependabot[bot] 2023-07-24 18:38:03 -04:00 committed by GitHub
parent 69476e249c
commit 68794258b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 6361 additions and 6279 deletions

View file

@ -1,4 +1,4 @@
<!DOCTYPE html> <!doctype html>
<!-- TODO - perhaps eventually add a lightmode toggle --> <!-- TODO - perhaps eventually add a lightmode toggle -->
<html lang="en" class="dark"> <html lang="en" class="dark">
<head> <head>

View file

@ -22,36 +22,36 @@
"@fullhuman/postcss-purgecss": "^5.0.0", "@fullhuman/postcss-purgecss": "^5.0.0",
"@iconify-json/ic": "^1.1.13", "@iconify-json/ic": "^1.1.13",
"@iconify-json/mdi": "^1.1.53", "@iconify-json/mdi": "^1.1.53",
"@octokit/plugin-retry": "^3.0.9", "@octokit/plugin-retry": "^6.0.0",
"@octokit/plugin-throttling": "^7.0.0", "@octokit/plugin-throttling": "^7.0.0",
"@octokit/rest": "^20.0.1", "@octokit/rest": "^20.0.1",
"@popperjs/core": "^2.11.7", "@popperjs/core": "^2.11.7",
"@sveltejs/vite-plugin-svelte": "^2.4.2", "@sveltejs/vite-plugin-svelte": "^2.4.3",
"@tauri-apps/cli": "^1.4.0", "@tauri-apps/cli": "^1.4.0",
"@tauri-apps/tauricon": "github:tauri-apps/tauricon", "@tauri-apps/tauricon": "github:tauri-apps/tauricon",
"@testing-library/svelte": "^4.0.3", "@testing-library/svelte": "^4.0.3",
"@vitest/coverage-v8": "^0.33.0",
"@tsconfig/svelte": "^5.0.0", "@tsconfig/svelte": "^5.0.0",
"@vitest/coverage-v8": "^0.33.0",
"ansi-to-span": "^0.0.1", "ansi-to-span": "^0.0.1",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"classnames": "^2.3.2", "classnames": "^2.3.2",
"escape-html": "^1.0.3", "escape-html": "^1.0.3",
"execa": "^7.1.1", "execa": "^7.1.1",
"flowbite": "^1.6.5", "flowbite": "^1.6.5",
"flowbite-svelte": "^0.39.2", "flowbite-svelte": "0.39.3",
"jsdom": "^22.1.0", "jsdom": "^22.1.0",
"postcss": "^8.4.26", "postcss": "^8.4.27",
"postcss-load-config": "^4.0.1", "postcss-load-config": "^4.0.1",
"prettier": "^2.8.8", "prettier": "^3.0.0",
"prettier-plugin-svelte": "^2.10.1", "prettier-plugin-svelte": "^3.0.0",
"svelte": "^3.59.1", "svelte": "^4.1.1",
"svelte-i18n": "^3.6.0", "svelte-i18n": "^3.6.0",
"svelte-preprocess": "^5.0.3", "svelte-preprocess": "^5.0.3",
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "^5.1.3", "typescript": "^5.1.3",
"unplugin-icons": "^0.16.5", "unplugin-icons": "^0.16.5",
"vitest": "^0.33.0", "vite": "^4.4.7",
"vite": "^4.4.4" "vitest": "^0.33.0"
}, },
"dependencies": { "dependencies": {
"@tauri-apps/api": "^1.4.0", "@tauri-apps/api": "^1.4.0",

View file

@ -21,7 +21,7 @@ const octokit = new Octokit({
throttle: { throttle: {
onRateLimit: (retryAfter, options) => { onRateLimit: (retryAfter, options) => {
octokit.log.warn( octokit.log.warn(
`Request quota exhausted for request ${options.method} ${options.url}` `Request quota exhausted for request ${options.method} ${options.url}`,
); );
// Retry twice after hitting a rate limit error, then give up // Retry twice after hitting a rate limit error, then give up
@ -33,7 +33,7 @@ const octokit = new Octokit({
onAbuseLimit: (retryAfter, options) => { onAbuseLimit: (retryAfter, options) => {
// does not retry, only logs a warning // does not retry, only logs a warning
octokit.log.warn( octokit.log.warn(
`Abuse detected for request ${options.method} ${options.url}` `Abuse detected for request ${options.method} ${options.url}`,
); );
}, },
}, },

View file

@ -17,7 +17,7 @@ const octokit = new Octokit({
throttle: { throttle: {
onRateLimit: (retryAfter, options) => { onRateLimit: (retryAfter, options) => {
octokit.log.warn( octokit.log.warn(
`Request quota exhausted for request ${options.method} ${options.url}` `Request quota exhausted for request ${options.method} ${options.url}`,
); );
// Retry twice after hitting a rate limit error, then give up // Retry twice after hitting a rate limit error, then give up
@ -29,7 +29,7 @@ const octokit = new Octokit({
onAbuseLimit: (retryAfter, options) => { onAbuseLimit: (retryAfter, options) => {
// does not retry, only logs a warning // does not retry, only logs a warning
octokit.log.warn( octokit.log.warn(
`Abuse detected for request ${options.method} ${options.url}` `Abuse detected for request ${options.method} ${options.url}`,
); );
}, },
}, },
@ -178,7 +178,7 @@ const releaseMeta = {
launcherRelease.tag_name launcherRelease.tag_name
}/OpenGOAL-Launcher_${launcherRelease.tag_name.replace( }/OpenGOAL-Launcher_${launcherRelease.tag_name.replace(
"v", "v",
"" "",
)}_amd64.AppImage.tar.gz`, )}_amd64.AppImage.tar.gz`,
}, },
"windows-x86_64": { "windows-x86_64": {
@ -187,14 +187,14 @@ const releaseMeta = {
launcherRelease.tag_name launcherRelease.tag_name
}/OpenGOAL-Launcher_${launcherRelease.tag_name.replace( }/OpenGOAL-Launcher_${launcherRelease.tag_name.replace(
"v", "v",
"" "",
)}_x64_en-US.msi.zip`, )}_x64_en-US.msi.zip`,
}, },
}, },
}; };
fs.writeFileSync( fs.writeFileSync(
"./.tauri/latest-release-v2.json", "./.tauri/latest-release-v2.json",
JSON.stringify(releaseMeta, null, 2) + "\n" JSON.stringify(releaseMeta, null, 2) + "\n",
); );
// Publish the release // Publish the release

View file

@ -21,7 +21,7 @@ const octokit = new Octokit({
throttle: { throttle: {
onRateLimit: (retryAfter, options) => { onRateLimit: (retryAfter, options) => {
octokit.log.warn( octokit.log.warn(
`Request quota exhausted for request ${options.method} ${options.url}` `Request quota exhausted for request ${options.method} ${options.url}`,
); );
// Retry twice after hitting a rate limit error, then give up // Retry twice after hitting a rate limit error, then give up
@ -33,7 +33,7 @@ const octokit = new Octokit({
onAbuseLimit: (retryAfter, options) => { onAbuseLimit: (retryAfter, options) => {
// does not retry, only logs a warning // does not retry, only logs a warning
octokit.log.warn( octokit.log.warn(
`Abuse detected for request ${options.method} ${options.url}` `Abuse detected for request ${options.method} ${options.url}`,
); );
}, },
}, },
@ -74,7 +74,7 @@ for (const asset of assets.data) {
} }
if (!matchFound) { if (!matchFound) {
console.log( console.log(
`Asset name does not match any of the expected regexes: ${assetName}` `Asset name does not match any of the expected regexes: ${assetName}`,
); );
missingAsset = true; missingAsset = true;
} }

View file

@ -47,7 +47,10 @@ body {
} }
.text-outline { .text-outline {
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, text-shadow:
-1px -1px 0 #000,
1px -1px 0 #000,
-1px 1px 0 #000,
1px 1px 0 #000; 1px 1px 0 #000;
} }

View file

@ -168,14 +168,14 @@ export async function initLocales(async: boolean) {
for (const locale of AVAILABLE_LOCALES) { for (const locale of AVAILABLE_LOCALES) {
register( register(
locale.id, locale.id,
() => import(`../../assets/translations/${locale.id}.json`) () => import(`../../assets/translations/${locale.id}.json`),
); );
} }
} else { } else {
for (const locale of AVAILABLE_LOCALES) { for (const locale of AVAILABLE_LOCALES) {
addMessages( addMessages(
locale.id, locale.id,
await import(`../../assets/translations/${locale.id}.json`) await import(`../../assets/translations/${locale.id}.json`),
); );
} }
} }

View file

@ -10,10 +10,10 @@ function failed(msg: string): InstallationOutput {
} }
export async function updateDataDirectory( export async function updateDataDirectory(
gameName: string gameName: string,
): Promise<InstallationOutput> { ): Promise<InstallationOutput> {
return await invoke_rpc("update_data_directory", { gameName }, () => return await invoke_rpc("update_data_directory", { gameName }, () =>
failed("Failed to update data directory") failed("Failed to update data directory"),
); );
} }
@ -23,48 +23,48 @@ export async function getEndOfLogs(): Promise<string> {
export async function extractAndValidateISO( export async function extractAndValidateISO(
pathToIso: string, pathToIso: string,
gameName: string gameName: string,
): Promise<InstallationOutput> { ): Promise<InstallationOutput> {
return await invoke_rpc( return await invoke_rpc(
"extract_and_validate_iso", "extract_and_validate_iso",
{ pathToIso, gameName }, { pathToIso, gameName },
() => failed("Failed to extract and validate ISO") () => failed("Failed to extract and validate ISO"),
); );
} }
export async function runDecompiler( export async function runDecompiler(
pathToIso: string, pathToIso: string,
gameName: string, gameName: string,
truncateLogs: boolean = false truncateLogs: boolean = false,
): Promise<InstallationOutput> { ): Promise<InstallationOutput> {
return await invoke_rpc( return await invoke_rpc(
"run_decompiler", "run_decompiler",
{ pathToIso, gameName, truncateLogs }, { pathToIso, gameName, truncateLogs },
() => failed("Failed to run decompiler") () => failed("Failed to run decompiler"),
); );
} }
export async function runCompiler( export async function runCompiler(
pathToIso: string, pathToIso: string,
gameName: string, gameName: string,
truncateLogs: boolean = false truncateLogs: boolean = false,
): Promise<InstallationOutput> { ): Promise<InstallationOutput> {
return await invoke_rpc( return await invoke_rpc(
"run_compiler", "run_compiler",
{ pathToIso, gameName, truncateLogs }, { pathToIso, gameName, truncateLogs },
() => failed("Failed to run compiler") () => failed("Failed to run compiler"),
); );
} }
export async function launchGame( export async function launchGame(
gameName: string, gameName: string,
inDebug: boolean inDebug: boolean,
): Promise<void> { ): Promise<void> {
return await invoke_rpc( return await invoke_rpc(
"launch_game", "launch_game",
{ gameName, inDebug }, { gameName, inDebug },
() => {}, () => {},
"Unable to launch game" "Unable to launch game",
); );
} }
@ -73,6 +73,6 @@ export async function openREPL(gameName: string): Promise<void> {
"open_repl", "open_repl",
{ gameName }, { gameName },
() => {}, () => {},
"Unable to open REPL" "Unable to open REPL",
); );
} }

View file

@ -18,7 +18,7 @@ export async function resetLauncherSettingsToDefaults(): Promise<boolean> {
"reset_to_defaults", "reset_to_defaults",
{}, {},
() => false, () => false,
"Unable to reset settings" "Unable to reset settings",
); );
return success != false; return success != false;
} }
@ -28,7 +28,7 @@ export async function getInstallationDirectory(): Promise<string | null> {
} }
export async function setInstallationDirectory( export async function setInstallationDirectory(
newDir: string newDir: string,
): Promise<string | null> { ): Promise<string | null> {
// TODO - not insanely crazy about this pattern (message in the response instead of the error) // TODO - not insanely crazy about this pattern (message in the response instead of the error)
// consider changing it // consider changing it
@ -36,7 +36,7 @@ export async function setInstallationDirectory(
"set_install_directory", "set_install_directory",
{ newDir }, { newDir },
() => "Unexpected error occurred", () => "Unexpected error occurred",
"Invalid installation directory" "Invalid installation directory",
); );
if (errMsg !== null) { if (errMsg !== null) {
@ -50,18 +50,18 @@ export async function setInstallationDirectory(
} }
export async function isAVXRequirementMet( export async function isAVXRequirementMet(
force: boolean force: boolean,
): Promise<boolean | undefined> { ): Promise<boolean | undefined> {
return await invoke_rpc("is_avx_requirement_met", { force }, () => undefined); return await invoke_rpc("is_avx_requirement_met", { force }, () => undefined);
} }
export async function isOpenGLRequirementMet( export async function isOpenGLRequirementMet(
force: boolean force: boolean,
): Promise<boolean | undefined> { ): Promise<boolean | undefined> {
const result = await invoke_rpc( const result = await invoke_rpc(
"is_opengl_requirement_met", "is_opengl_requirement_met",
{ force }, { force },
() => undefined () => undefined,
); );
if (typeof result !== "boolean") { if (typeof result !== "boolean") {
@ -84,20 +84,20 @@ export async function getInstalledVersion(gameName: string): Promise<String> {
} }
export async function getInstalledVersionFolder( export async function getInstalledVersionFolder(
gameName: string gameName: string,
): Promise<String> { ): Promise<String> {
return invoke_rpc("get_installed_version_folder", { gameName }, () => null); return invoke_rpc("get_installed_version_folder", { gameName }, () => null);
} }
export async function saveActiveVersionChange( export async function saveActiveVersionChange(
versionFolder: VersionFolders, versionFolder: VersionFolders,
newActiveVersion: String newActiveVersion: String,
): Promise<boolean> { ): Promise<boolean> {
return invoke_rpc( return invoke_rpc(
"save_active_version_change", "save_active_version_change",
{ versionFolder, newActiveVersion }, { versionFolder, newActiveVersion },
() => false, () => false,
"Couldn't save active version change" "Couldn't save active version change",
); );
} }
@ -115,20 +115,20 @@ export async function setLocale(localeId: string): Promise<void> {
svelteLocale.set(localeId); svelteLocale.set(localeId);
// Update CSS variable if needed // Update CSS variable if needed
let localeInfo = AVAILABLE_LOCALES.find( let localeInfo = AVAILABLE_LOCALES.find(
(locale) => locale.id === localeId (locale) => locale.id === localeId,
); );
if (localeInfo !== undefined && localeInfo.fontFamily !== undefined) { if (localeInfo !== undefined && localeInfo.fontFamily !== undefined) {
document.documentElement.style.setProperty( document.documentElement.style.setProperty(
"--launcher-font-family", "--launcher-font-family",
localeInfo.fontFamily localeInfo.fontFamily,
); );
} else { } else {
document.documentElement.style.setProperty( document.documentElement.style.setProperty(
"--launcher-font-family", "--launcher-font-family",
"Noto Sans" "Noto Sans",
); );
} }
} },
); );
} }
@ -141,18 +141,18 @@ export async function getBypassRequirements(): Promise<boolean> {
} }
export async function getEnabledTexturePacks( export async function getEnabledTexturePacks(
gameName: string gameName: string,
): Promise<string[]> { ): Promise<string[]> {
return await invoke_rpc( return await invoke_rpc(
"get_enabled_texture_packs", "get_enabled_texture_packs",
{ gameName: gameName }, { gameName: gameName },
() => [] () => [],
); );
} }
export async function cleanupEnabledTexturePacks( export async function cleanupEnabledTexturePacks(
gameName: string, gameName: string,
cleanupList: string[] cleanupList: string[],
): Promise<void> { ): Promise<void> {
return await invoke_rpc( return await invoke_rpc(
"cleanup_enabled_texture_packs", "cleanup_enabled_texture_packs",
@ -160,7 +160,7 @@ export async function cleanupEnabledTexturePacks(
gameName: gameName, gameName: gameName,
cleanupList: cleanupList, cleanupList: cleanupList,
}, },
() => {} () => {},
); );
} }
@ -176,7 +176,7 @@ function failed(msg: string): FeatureJobOutput {
export async function setEnabledTexturePacks( export async function setEnabledTexturePacks(
gameName: string, gameName: string,
packs: string[] packs: string[],
): Promise<FeatureJobOutput> { ): Promise<FeatureJobOutput> {
return await invoke_rpc( return await invoke_rpc(
"set_enabled_texture_packs", "set_enabled_texture_packs",
@ -188,6 +188,6 @@ export async function setEnabledTexturePacks(
undefined, undefined,
() => { () => {
return { success: true, msg: null }; return { success: true, msg: null };
} },
); );
} }

View file

@ -12,20 +12,20 @@ function failed(msg: string): FeatureJobOutput {
} }
export async function listExtractedTexturePackInfo( export async function listExtractedTexturePackInfo(
gameName: string gameName: string,
): Promise<any> { ): Promise<any> {
return await invoke_rpc( return await invoke_rpc(
"list_extracted_texture_pack_info", "list_extracted_texture_pack_info",
{ {
gameName: gameName, gameName: gameName,
}, },
() => [] () => [],
); );
} }
export async function extractNewTexturePack( export async function extractNewTexturePack(
gameName: string, gameName: string,
pathToZip: string pathToZip: string,
): Promise<boolean | undefined> { ): Promise<boolean | undefined> {
return await invoke_rpc( return await invoke_rpc(
"extract_new_texture_pack", "extract_new_texture_pack",
@ -33,12 +33,12 @@ export async function extractNewTexturePack(
gameName: gameName, gameName: gameName,
zipPath: pathToZip, zipPath: pathToZip,
}, },
() => undefined () => undefined,
); );
} }
export async function updateTexturePackData( export async function updateTexturePackData(
gameName: string gameName: string,
): Promise<FeatureJobOutput> { ): Promise<FeatureJobOutput> {
return await invoke_rpc( return await invoke_rpc(
"update_texture_pack_data", "update_texture_pack_data",
@ -49,13 +49,13 @@ export async function updateTexturePackData(
undefined, undefined,
() => { () => {
return { success: true, msg: null }; return { success: true, msg: null };
} },
); );
} }
export async function deleteTexturePacks( export async function deleteTexturePacks(
gameName: string, gameName: string,
packs: string[] packs: string[],
): Promise<FeatureJobOutput> { ): Promise<FeatureJobOutput> {
return await invoke_rpc( return await invoke_rpc(
"delete_texture_packs", "delete_texture_packs",
@ -67,6 +67,6 @@ export async function deleteTexturePacks(
undefined, undefined,
() => { () => {
return { success: true, msg: null }; return { success: true, msg: null };
} },
); );
} }

View file

@ -5,7 +5,7 @@ export async function uninstallGame(gameName: string): Promise<boolean> {
"uninstall_game", "uninstall_game",
{ gameName }, { gameName },
() => false, () => false,
"Unable to uninstall game" "Unable to uninstall game",
); );
} }
@ -14,6 +14,6 @@ export async function resetGameSettings(gameName: string): Promise<void> {
"reset_game_settings", "reset_game_settings",
{ gameName }, { gameName },
() => {}, () => {},
"Unable to reset game settings" "Unable to reset game settings",
); );
} }

View file

@ -23,7 +23,7 @@ async function genericLog(level: string, log: String): Promise<void> {
} catch (e) { } catch (e) {
console.log( console.log(
"[opengoal_launcher]: Unexpected error encountered when trying to log", "[opengoal_launcher]: Unexpected error encountered when trying to log",
e e,
); );
} }
} }
@ -47,7 +47,7 @@ export async function errorLog(log: String): Promise<void> {
export async function exceptionLog(log: String, error: any): Promise<void> { export async function exceptionLog(log: String, error: any): Promise<void> {
if (error instanceof Error) { if (error instanceof Error) {
errorLog( errorLog(
`${log} | Exception: ${error.name}:${error.message}, Stack: ${error.stack}, Cause: ${error.cause}` `${log} | Exception: ${error.name}:${error.message}, Stack: ${error.stack}, Cause: ${error.cause}`,
); );
} else { } else {
errorLog(`${log} | ${error}`); errorLog(`${log} | ${error}`);

View file

@ -16,7 +16,7 @@ export async function invoke_rpc<T>(
args: InvokeArgs, args: InvokeArgs,
handleError: (error: unknown) => T, handleError: (error: unknown) => T,
toastOnError?: string, toastOnError?: string,
onSuccess?: (result: T) => T onSuccess?: (result: T) => T,
): Promise<T> { ): Promise<T> {
try { try {
// this assumes the call is made in a way that does not trick the type inference // this assumes the call is made in a way that does not trick the type inference

View file

@ -5,12 +5,12 @@ export async function generateSupportPackage(): Promise<void> {
const userPath = await saveFilePrompt( const userPath = await saveFilePrompt(
"ZIP", "ZIP",
["zip"], ["zip"],
"opengoal-support-package.zip" "opengoal-support-package.zip",
); );
return await invoke_rpc( return await invoke_rpc(
"generate_support_package", "generate_support_package",
{ userPath }, { userPath },
() => {}, () => {},
"Unable to create support package" "Unable to create support package",
); );
} }

View file

@ -3,38 +3,38 @@ import { invoke_rpc } from "./rpc";
export type VersionFolders = null | "official" | "unofficial" | "devel"; export type VersionFolders = null | "official" | "unofficial" | "devel";
export async function listDownloadedVersions( export async function listDownloadedVersions(
versionFolder: VersionFolders versionFolder: VersionFolders,
): Promise<string[]> { ): Promise<string[]> {
return await invoke_rpc( return await invoke_rpc(
"list_downloaded_versions", "list_downloaded_versions",
{ versionFolder }, { versionFolder },
() => [] () => [],
); );
} }
export async function downloadOfficialVersion( export async function downloadOfficialVersion(
version: String, version: String,
url: String url: String,
): Promise<boolean> { ): Promise<boolean> {
return await invoke_rpc( return await invoke_rpc(
"download_version", "download_version",
{ version, url, versionFolder: "official" }, { version, url, versionFolder: "official" },
() => false, () => false,
"Unable to download official version", "Unable to download official version",
() => true () => true,
); );
} }
export async function removeVersion( export async function removeVersion(
version: String, version: String,
versionFolder: String versionFolder: String,
): Promise<boolean> { ): Promise<boolean> {
return await invoke_rpc( return await invoke_rpc(
"remove_version", "remove_version",
{ version, versionFolder }, { version, versionFolder },
() => false, () => false,
"Unable to remove version", "Unable to remove version",
() => true () => true,
); );
} }
@ -43,7 +43,7 @@ export async function openVersionFolder(versionFolder: VersionFolders) {
"go_to_version_folder", "go_to_version_folder",
{ versionFolder }, { versionFolder },
() => {}, () => {},
"Unable to open version folder" "Unable to open version folder",
); );
} }
@ -60,6 +60,6 @@ export async function ensureActiveVersionStillExists(): Promise<boolean> {
"ensure_active_version_still_exists", "ensure_active_version_still_exists",
{}, {},
() => false, () => false,
"Error checking that active version exists" "Error checking that active version exists",
); );
} }

View file

@ -5,7 +5,7 @@ export async function openDir(directory: string): Promise<void> {
"open_dir_in_os", "open_dir_in_os",
{ directory }, { directory },
() => {}, () => {},
"Unable to open directory" "Unable to open directory",
); );
} }

View file

@ -3,7 +3,7 @@ import { open, save } from "@tauri-apps/api/dialog";
export async function filePrompt( export async function filePrompt(
extensions: string[], extensions: string[],
name: string, name: string,
title: string title: string,
): Promise<string | null> { ): Promise<string | null> {
const path = await open({ const path = await open({
title: title, title: title,
@ -22,7 +22,7 @@ export async function filePrompt(
export async function saveFilePrompt( export async function saveFilePrompt(
fileType: string, fileType: string,
fileExtensions: string[], fileExtensions: string[],
fileName: string fileName: string,
): Promise<string | null> { ): Promise<string | null> {
return await save({ return await save({
filters: [{ name: fileType, extensions: fileExtensions }], filters: [{ name: fileType, extensions: fileExtensions }],
@ -32,7 +32,7 @@ export async function saveFilePrompt(
export async function saveFolderPrompt( export async function saveFolderPrompt(
fileType: string, fileType: string,
fileExtensions: string[] fileExtensions: string[],
): Promise<string | null> { ): Promise<string | null> {
return await save({ return await save({
filters: [{ name: fileType, extensions: fileExtensions }], filters: [{ name: fileType, extensions: fileExtensions }],
@ -43,7 +43,7 @@ export async function isoPrompt(): Promise<string | undefined> {
const path = await filePrompt( const path = await filePrompt(
["ISO", "iso"], ["ISO", "iso"],
"Jak ISO File", "Jak ISO File",
"Select your legitimately obtained ISO File" "Select your legitimately obtained ISO File",
); );
if (path === null) { if (path === null) {
return undefined; return undefined;

View file

@ -137,12 +137,12 @@ describe("listOfficialReleases", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
expect( expect(
releases[0].downloadUrl.endsWith("opengoal-macos-intel-v0.0.1.tar.gz") releases[0].downloadUrl.endsWith("opengoal-macos-intel-v0.0.1.tar.gz"),
).toBeTruthy(); ).toBeTruthy();
}); });
@ -156,7 +156,7 @@ describe("listOfficialReleases", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
@ -173,12 +173,12 @@ describe("listOfficialReleases", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
expect( expect(
releases[0].downloadUrl.endsWith("opengoal-windows-v0.0.1.zip") releases[0].downloadUrl.endsWith("opengoal-windows-v0.0.1.zip"),
).toBeTruthy(); ).toBeTruthy();
}); });
@ -192,12 +192,12 @@ describe("listOfficialReleases", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
expect( expect(
releases[0].downloadUrl.endsWith("opengoal-linux-v0.0.1.tar.gz") releases[0].downloadUrl.endsWith("opengoal-linux-v0.0.1.tar.gz"),
).toBeTruthy(); ).toBeTruthy();
}); });
}); });
@ -218,12 +218,12 @@ describe("getLatestOfficialRelease", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
expect( expect(
releases[0].downloadUrl.endsWith("opengoal-macos-intel-v0.0.1.tar.gz") releases[0].downloadUrl.endsWith("opengoal-macos-intel-v0.0.1.tar.gz"),
).toBeTruthy(); ).toBeTruthy();
}); });
@ -237,7 +237,7 @@ describe("getLatestOfficialRelease", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
@ -254,12 +254,12 @@ describe("getLatestOfficialRelease", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
expect( expect(
releases[0].downloadUrl.endsWith("opengoal-windows-v0.0.1.zip") releases[0].downloadUrl.endsWith("opengoal-windows-v0.0.1.zip"),
).toBeTruthy(); ).toBeTruthy();
}); });
@ -273,12 +273,12 @@ describe("getLatestOfficialRelease", () => {
"opengoal-windows-v0.0.1.zip", "opengoal-windows-v0.0.1.zip",
"opengoal-linux-v0.0.1.tar.gz", "opengoal-linux-v0.0.1.tar.gz",
]), ]),
]) ]),
); );
const releases = await listOfficialReleases(); const releases = await listOfficialReleases();
expect(releases.length).toBe(1); expect(releases.length).toBe(1);
expect( expect(
releases[0].downloadUrl.endsWith("opengoal-linux-v0.0.1.tar.gz") releases[0].downloadUrl.endsWith("opengoal-linux-v0.0.1.tar.gz"),
).toBeTruthy(); ).toBeTruthy();
}); });
}); });

View file

@ -13,7 +13,7 @@ export interface ReleaseInfo {
function isIntelMacOsRelease( function isIntelMacOsRelease(
platform: string, platform: string,
architecture: string, architecture: string,
assetName: string assetName: string,
): boolean { ): boolean {
return ( return (
platform === "darwin" && platform === "darwin" &&
@ -26,7 +26,7 @@ function isIntelMacOsRelease(
function isWindowsRelease( function isWindowsRelease(
platform: string, platform: string,
architecture: string, architecture: string,
assetName: string assetName: string,
): boolean { ): boolean {
return ( return (
platform === "win32" && platform === "win32" &&
@ -38,7 +38,7 @@ function isWindowsRelease(
function isLinuxRelease( function isLinuxRelease(
platform: string, platform: string,
architecture: string, architecture: string,
assetName: string assetName: string,
): boolean { ): boolean {
return ( return (
platform === "linux" && platform === "linux" &&
@ -48,7 +48,7 @@ function isLinuxRelease(
} }
async function getDownloadLinkForCurrentPlatform( async function getDownloadLinkForCurrentPlatform(
release: any release: any,
): Promise<string | undefined> { ): Promise<string | undefined> {
const platformName = await platform(); const platformName = await platform();
const archName = await arch(); const archName = await arch();
@ -69,7 +69,7 @@ export async function listOfficialReleases(): Promise<ReleaseInfo[]> {
// TODO - handle rate limiting // TODO - handle rate limiting
// TODO - long term - handle pagination (more than 100 releases) // TODO - long term - handle pagination (more than 100 releases)
const resp = await fetch( const resp = await fetch(
"https://api.github.com/repos/open-goal/jak-project/releases?per_page=100" "https://api.github.com/repos/open-goal/jak-project/releases?per_page=100",
); );
// TODO - handle error // TODO - handle error
const githubReleases = await resp.json(); const githubReleases = await resp.json();
@ -92,7 +92,7 @@ export async function listOfficialReleases(): Promise<ReleaseInfo[]> {
export async function getLatestOfficialRelease(): Promise<ReleaseInfo> { export async function getLatestOfficialRelease(): Promise<ReleaseInfo> {
// TODO - handle rate limiting // TODO - handle rate limiting
const resp = await fetch( const resp = await fetch(
"https://api.github.com/repos/open-goal/jak-project/releases/latest" "https://api.github.com/repos/open-goal/jak-project/releases/latest",
); );
// TODO - handle error // TODO - handle error
const githubRelease = await resp.json(); const githubRelease = await resp.json();

View file

@ -1,4 +1,4 @@
<!DOCTYPE html> <!doctype html>
<html lang="en" class="dark"> <html lang="en" class="dark">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />

View file

@ -54,7 +54,7 @@ describe("Splash.svelte", () => {
}); });
render(Splash, {}); render(Splash, {});
const localeSelect = (await screen.findByTestId( const localeSelect = (await screen.findByTestId(
"locale-select" "locale-select",
)) as HTMLSelectElement; )) as HTMLSelectElement;
expect(localeSelect).toBeTruthy(); expect(localeSelect).toBeTruthy();
fireEvent.change(localeSelect, { target: { value: "en-US" } }); fireEvent.change(localeSelect, { target: { value: "en-US" } });
@ -80,14 +80,14 @@ describe("Splash.svelte", () => {
}); });
render(Splash, {}); render(Splash, {});
const deleteOldDataDirButton = await screen.findByTestId( const deleteOldDataDirButton = await screen.findByTestId(
"delete-old-data-dir-button" "delete-old-data-dir-button",
); );
expect(deleteOldDataDirButton).toBeTruthy(); expect(deleteOldDataDirButton).toBeTruthy();
// delete the dir, it'll go away // delete the dir, it'll go away
fireEvent.click(deleteOldDataDirButton); fireEvent.click(deleteOldDataDirButton);
expect(oldDataDirDeleted).toBeTruthy(); expect(oldDataDirDeleted).toBeTruthy();
const pickInstallFolderButton = await screen.findByTestId( const pickInstallFolderButton = await screen.findByTestId(
"pick-install-folder-button" "pick-install-folder-button",
); );
expect(pickInstallFolderButton).toBeTruthy(); expect(pickInstallFolderButton).toBeTruthy();
}); });
@ -109,13 +109,13 @@ describe("Splash.svelte", () => {
vi.mocked(folderPrompt).mockResolvedValue(undefined); vi.mocked(folderPrompt).mockResolvedValue(undefined);
render(Splash, {}); render(Splash, {});
let pickInstallFolderButton = await screen.findByTestId( let pickInstallFolderButton = await screen.findByTestId(
"pick-install-folder-button" "pick-install-folder-button",
); );
expect(pickInstallFolderButton).toBeTruthy(); expect(pickInstallFolderButton).toBeTruthy();
fireEvent.click(pickInstallFolderButton); fireEvent.click(pickInstallFolderButton);
// It's still there since the user didn't pick a folder // It's still there since the user didn't pick a folder
pickInstallFolderButton = await screen.findByTestId( pickInstallFolderButton = await screen.findByTestId(
"pick-install-folder-button" "pick-install-folder-button",
); );
expect(pickInstallFolderButton).toBeTruthy(); expect(pickInstallFolderButton).toBeTruthy();
}); });
@ -145,7 +145,7 @@ describe("Splash.svelte", () => {
vi.mocked(folderPrompt).mockResolvedValue("/wow/good/job/nice/folder"); vi.mocked(folderPrompt).mockResolvedValue("/wow/good/job/nice/folder");
render(Splash, {}); render(Splash, {});
let pickInstallFolderButton = await screen.findByTestId( let pickInstallFolderButton = await screen.findByTestId(
"pick-install-folder-button" "pick-install-folder-button",
); );
expect(pickInstallFolderButton).toBeTruthy(); expect(pickInstallFolderButton).toBeTruthy();
fireEvent.click(pickInstallFolderButton); fireEvent.click(pickInstallFolderButton);
@ -156,7 +156,7 @@ describe("Splash.svelte", () => {
() => { () => {
expect(mainWindowOpened).toBeTruthy(); expect(mainWindowOpened).toBeTruthy();
}, },
{ timeout: 5000 } { timeout: 5000 },
); );
}); });
@ -183,7 +183,7 @@ describe("Splash.svelte", () => {
vi.mocked(folderPrompt).mockResolvedValue("/wow/good/job/nice/folder"); vi.mocked(folderPrompt).mockResolvedValue("/wow/good/job/nice/folder");
render(Splash, {}); render(Splash, {});
let pickInstallFolderButton = await screen.findByTestId( let pickInstallFolderButton = await screen.findByTestId(
"pick-install-folder-button" "pick-install-folder-button",
); );
expect(pickInstallFolderButton).toBeTruthy(); expect(pickInstallFolderButton).toBeTruthy();
fireEvent.click(pickInstallFolderButton); fireEvent.click(pickInstallFolderButton);
@ -191,7 +191,7 @@ describe("Splash.svelte", () => {
screen.findByText("wow that was a terrible directory"); screen.findByText("wow that was a terrible directory");
}); });
pickInstallFolderButton = await screen.findByTestId( pickInstallFolderButton = await screen.findByTestId(
"pick-install-folder-button" "pick-install-folder-button",
); );
expect(pickInstallFolderButton).toBeTruthy(); expect(pickInstallFolderButton).toBeTruthy();
}); });

View file

@ -28,7 +28,7 @@ export default defineConfig({
input: { input: {
main: fileURLToPath(new URL("./index.html", import.meta.url)), main: fileURLToPath(new URL("./index.html", import.meta.url)),
splash: fileURLToPath( splash: fileURLToPath(
new URL("./src/splash/index.html", import.meta.url) new URL("./src/splash/index.html", import.meta.url),
), ),
}, },
}, },

171
yarn.lock
View file

@ -592,7 +592,7 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.9": "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.18" version "0.3.18"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
@ -657,11 +657,6 @@
"@octokit/types" "^11.0.0" "@octokit/types" "^11.0.0"
universal-user-agent "^6.0.0" universal-user-agent "^6.0.0"
"@octokit/openapi-types@^12.11.0":
version "12.11.0"
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0"
integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==
"@octokit/openapi-types@^18.0.0": "@octokit/openapi-types@^18.0.0":
version "18.0.0" version "18.0.0"
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69"
@ -686,12 +681,13 @@
dependencies: dependencies:
"@octokit/types" "^11.0.0" "@octokit/types" "^11.0.0"
"@octokit/plugin-retry@^3.0.9": "@octokit/plugin-retry@^6.0.0":
version "3.0.9" version "6.0.0"
resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-3.0.9.tgz#ae625cca1e42b0253049102acd71c1d5134788fe" resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-6.0.0.tgz#4a83ca5d531bbd56e0822a644ab0ba4a3215f87a"
integrity sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ== integrity sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==
dependencies: dependencies:
"@octokit/types" "^6.0.3" "@octokit/request-error" "^5.0.0"
"@octokit/types" "^11.0.0"
bottleneck "^2.15.3" bottleneck "^2.15.3"
"@octokit/plugin-throttling@^7.0.0": "@octokit/plugin-throttling@^7.0.0":
@ -739,13 +735,6 @@
dependencies: dependencies:
"@octokit/openapi-types" "^18.0.0" "@octokit/openapi-types" "^18.0.0"
"@octokit/types@^6.0.3":
version "6.41.0"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04"
integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==
dependencies:
"@octokit/openapi-types" "^12.11.0"
"@popperjs/core@^2.11.7", "@popperjs/core@^2.11.8", "@popperjs/core@^2.9.3": "@popperjs/core@^2.11.7", "@popperjs/core@^2.11.8", "@popperjs/core@^2.9.3":
version "2.11.8" version "2.11.8"
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
@ -778,16 +767,16 @@
dependencies: dependencies:
debug "^4.3.4" debug "^4.3.4"
"@sveltejs/vite-plugin-svelte@^2.4.2": "@sveltejs/vite-plugin-svelte@^2.4.3":
version "2.4.2" version "2.4.3"
resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.2.tgz#04f9fb698853a6a681a2a7d32016487316c30917" resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.3.tgz#ef865d7c2553ec06406b0be3b8da851aac07a03a"
integrity sha512-ePfcC48ftMKhkT0OFGdOyycYKnnkT6i/buzey+vHRTR/JpQvuPzzhf1PtKqCDQfJRgoPSN2vscXs6gLigx/zGw== integrity sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==
dependencies: dependencies:
"@sveltejs/vite-plugin-svelte-inspector" "^1.0.3" "@sveltejs/vite-plugin-svelte-inspector" "^1.0.3"
debug "^4.3.4" debug "^4.3.4"
deepmerge "^4.3.1" deepmerge "^4.3.1"
kleur "^4.1.5" kleur "^4.1.5"
magic-string "^0.30.0" magic-string "^0.30.1"
svelte-hmr "^0.15.2" svelte-hmr "^0.15.2"
vitefu "^0.2.4" vitefu "^0.2.4"
@ -965,6 +954,11 @@
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b"
integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==
"@types/estree@*", "@types/estree@^1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194"
integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
"@types/http-cache-semantics@*": "@types/http-cache-semantics@*":
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
@ -1186,6 +1180,13 @@ aria-query@5.1.3:
dependencies: dependencies:
deep-equal "^2.0.5" deep-equal "^2.0.5"
aria-query@^5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
dependencies:
dequal "^2.0.3"
array-buffer-byte-length@^1.0.0: array-buffer-byte-length@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead"
@ -1231,6 +1232,13 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axobject-query@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a"
integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==
dependencies:
dequal "^2.0.3"
balanced-match@^1.0.0: balanced-match@^1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@ -1646,6 +1654,17 @@ clone@^1.0.2:
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
code-red@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.3.tgz#bbd3b0a27dc53c9af13f6756120a9dbcdd68a5f2"
integrity sha512-kVwJELqiILQyG5aeuyKFbdsI1fmQy1Cmf7dQ8eGmVuJoaRVdwey7WaMknr2ZFeVSYSKT0rExsa8EGw0aoI/1QQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.14"
"@types/estree" "^1.0.0"
acorn "^8.8.2"
estree-walker "^3.0.3"
periscopic "^3.1.0"
color-convert@^1.9.0: color-convert@^1.9.0:
version "1.9.3" version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@ -1803,6 +1822,14 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
css-tree@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==
dependencies:
mdn-data "2.0.30"
source-map-js "^1.0.1"
cssesc@^3.0.0: cssesc@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@ -2009,6 +2036,11 @@ deprecation@^2.0.0:
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
dequal@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
detect-indent@^6.1.0: detect-indent@^6.1.0:
version "6.1.0" version "6.1.0"
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6"
@ -2258,6 +2290,13 @@ estree-walker@^2:
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
estree-walker@^3.0.0, estree-walker@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
dependencies:
"@types/estree" "^1.0.0"
event-emitter@^0.3.5: event-emitter@^0.3.5:
version "0.3.5" version "0.3.5"
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
@ -2507,7 +2546,7 @@ find-versions@^3.0.0:
dependencies: dependencies:
semver-regex "^2.0.0" semver-regex "^2.0.0"
flowbite-svelte@^0.39.2: flowbite-svelte@0.39.3:
version "0.39.3" version "0.39.3"
resolved "https://registry.yarnpkg.com/flowbite-svelte/-/flowbite-svelte-0.39.3.tgz#7c9d3905e24dbf89e66faac9a7fa43ca109c9191" resolved "https://registry.yarnpkg.com/flowbite-svelte/-/flowbite-svelte-0.39.3.tgz#7c9d3905e24dbf89e66faac9a7fa43ca109c9191"
integrity sha512-7w87mcDy0E/KKqj8UgkeBY7T/m5q1YDhfXmIELZdeLf8E+80a+DpMY3+yjgxX/WYyI0QAQC2ggDECHV2o91ATA== integrity sha512-7w87mcDy0E/KKqj8UgkeBY7T/m5q1YDhfXmIELZdeLf8E+80a+DpMY3+yjgxX/WYyI0QAQC2ggDECHV2o91ATA==
@ -3350,6 +3389,13 @@ is-promise@^2.2.2:
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
is-reference@^3.0.0, is-reference@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831"
integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==
dependencies:
"@types/estree" "*"
is-regex@^1.1.4: is-regex@^1.1.4:
version "1.1.4" version "1.1.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
@ -3665,6 +3711,11 @@ local-pkg@^0.4.3:
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963" resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
locate-character@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974"
integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==
locate-path@^6.0.0: locate-path@^6.0.0:
version "6.0.0" version "6.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
@ -3824,6 +3875,11 @@ matcher@^3.0.0:
dependencies: dependencies:
escape-string-regexp "^4.0.0" escape-string-regexp "^4.0.0"
mdn-data@2.0.30:
version "2.0.30"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
memoizee@^0.4.15: memoizee@^0.4.15:
version "0.4.15" version "0.4.15"
resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72"
@ -4457,6 +4513,15 @@ pend@~1.2.0:
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
periscopic@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a"
integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==
dependencies:
"@types/estree" "^1.0.0"
estree-walker "^3.0.0"
is-reference "^3.0.0"
phin@^2.9.1: phin@^2.9.1:
version "2.9.3" version "2.9.3"
resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
@ -4588,10 +4653,10 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.4.23, postcss@^8.4.25, postcss@^8.4.26, postcss@^8.4.4: postcss@^8.4.23, postcss@^8.4.26, postcss@^8.4.27, postcss@^8.4.4:
version "8.4.26" version "8.4.27"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==
dependencies: dependencies:
nanoid "^3.3.6" nanoid "^3.3.6"
picocolors "^1.0.0" picocolors "^1.0.0"
@ -4625,15 +4690,15 @@ prepend-http@^2.0.0:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==
prettier-plugin-svelte@^2.10.1: prettier-plugin-svelte@^3.0.0:
version "2.10.1" version "3.0.0"
resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.10.1.tgz#e1abbe5689e8a926c60b8bc42e61233556ca90d1" resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-3.0.0.tgz#1e6d98b465bb81db06efca43ed55abb2b3daec64"
integrity sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ== integrity sha512-l3RQcPty2UBCoRh3yb9c5XCAmxkrc4BptAnbd5acO1gmSJtChOWkiEjnOvh7hvmtT4V80S8gXCOKAq8RNeIzSw==
prettier@^2.8.8: prettier@^3.0.0:
version "2.8.8" version "3.0.0"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==
pretty-format@^27.0.2: pretty-format@^27.0.2:
version "27.5.1" version "27.5.1"
@ -5188,7 +5253,7 @@ sort-keys@^2.0.0:
dependencies: dependencies:
is-plain-obj "^1.0.0" is-plain-obj "^1.0.0"
source-map-js@^1.0.2: source-map-js@^1.0.1, source-map-js@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
@ -5447,10 +5512,24 @@ svelte2tsx@^0.1.151:
dedent-js "^1.0.1" dedent-js "^1.0.1"
pascal-case "^3.1.1" pascal-case "^3.1.1"
svelte@^3.59.1: svelte@^4.1.1:
version "3.59.2" version "4.1.1"
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.59.2.tgz#a137b28e025a181292b2ae2e3dca90bf8ec73aec" resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.1.1.tgz#468ed0377d3cae542b35df8a22a3ca188d93272a"
integrity sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA== integrity sha512-Enick5fPFISLoVy0MFK45cG+YlQt6upw8skEK9zzTpJnH1DqEv8xOZwizCGSo3Q6HZ7KrZTM0J18poF7aQg5zw==
dependencies:
"@ampproject/remapping" "^2.2.1"
"@jridgewell/sourcemap-codec" "^1.4.15"
"@jridgewell/trace-mapping" "^0.3.18"
acorn "^8.9.0"
aria-query "^5.3.0"
axobject-query "^3.2.1"
code-red "^1.0.3"
css-tree "^2.3.1"
estree-walker "^3.0.3"
is-reference "^3.0.1"
locate-character "^3.0.0"
magic-string "^0.30.0"
periscopic "^3.1.0"
symbol-tree@^3.2.4: symbol-tree@^3.2.4:
version "3.2.4" version "3.2.4"
@ -5890,13 +5969,13 @@ vite-node@0.33.0:
picocolors "^1.0.0" picocolors "^1.0.0"
vite "^3.0.0 || ^4.0.0" vite "^3.0.0 || ^4.0.0"
"vite@^3.0.0 || ^4.0.0", vite@^4.4.4: "vite@^3.0.0 || ^4.0.0", vite@^4.4.7:
version "4.4.4" version "4.4.7"
resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.4.tgz#b76e6049c0e080cb54e735ad2d18287753752118" resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.7.tgz#71b8a37abaf8d50561aca084dbb77fa342824154"
integrity sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg== integrity sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==
dependencies: dependencies:
esbuild "^0.18.10" esbuild "^0.18.10"
postcss "^8.4.25" postcss "^8.4.26"
rollup "^3.25.2" rollup "^3.25.2"
optionalDependencies: optionalDependencies:
fsevents "~2.3.2" fsevents "~2.3.2"