diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index f6899f2..a1e59a8 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -1,9 +1,4 @@ -on: - push: - branches: - - main - pull_request: - +on: [push] jobs: check-changes: runs-on: docker @@ -39,7 +34,6 @@ jobs: submodules: recursive - uses: actions/setup-node@v4 with: - token: ${{ secrets.GH_TOKEN }} node-version: lts/* cache: yarn cache-dependency-path: '**/yarn.lock' @@ -48,8 +42,10 @@ jobs: path: | ~/.cache/pip ~/node_modules - ~/.cache/ms-playwright - key: ${{ runner.os }}-pio-playwright-${{ hashFiles('**/yarn.lock') }} + key: ${{ runner.os }}-pio + - uses: actions/setup-python@v5 + with: + python-version: '>=3.10' - name: Get current date id: dateAndTime run: echo "dateAndTime=$(date +'%Y-%m-%d-%H:%M')" >> $GITHUB_OUTPUT @@ -66,19 +62,14 @@ jobs: - name: Run vitest tests run: yarn vitest run - name: Install Playwright Browsers - if: steps.cache.outputs.cache-hit != 'true' run: npx playwright install --with-deps - name: Run Playwright tests run: npx playwright test - name: Build WebUI run: yarn build - - # The following steps only run on push to main - name: Get current block - if: github.event_name == 'push' && github.ref == 'refs/heads/main' id: getBlockHeight run: echo "blockHeight=$(curl -s https://mempool.space/api/blocks/tip/height)" >> $GITHUB_OUTPUT - - name: Write block height to file env: BLOCK_HEIGHT: ${{ steps.getBlockHeight.outputs.blockHeight }} @@ -103,14 +94,12 @@ jobs: echo "Directory size is within the threshold $DIRECTORY_SIZE" fi - name: Create tarball - if: github.event_name == 'push' && github.ref == 'refs/heads/main' run: tar czf webui.tgz --strip-components=1 dist - name: Build LittleFS run: | set -e /tmp/mklittlefs/mklittlefs -c build_gz -s 410000 output/littlefs.bin - name: Upload artifacts - if: github.event_name == 'push' && github.ref == 'refs/heads/main' uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: path: | @@ -118,7 +107,7 @@ jobs: output/littlefs.bin - name: Create release if: github.event_name == 'push' && github.ref == 'refs/heads/main' - uses: https://code.forgejo.org/actions/forgejo-release@v2.6.0 + uses: https://code.forgejo.org/actions/forgejo-release@v2.4.0 with: url: 'https://git.btclock.dev/' repo: '${{ github.repository }}' diff --git a/README.md b/README.md index 7913f27..805bfa1 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ # BTClock WebUI -[![Latest release](https://git.btclock.dev/btclock/webui/badges/release.svg)](https://git.btclock.dev/btclock/webui/releases/latest) -[![BTClock CI](https://git.btclock.dev/btclock/webui/badges/workflows/build.yaml/badge.svg)](https://git.btclock.dev/btclock/webui/actions?workflow=build.yaml&actor=0&status=0) +[![BTClock CI](https://github.com/btclock/webui/actions/workflows/workflow.yml/badge.svg)](https://github.com/btclock/webui2/actions/workflows/workflow.yml) The web user-interface for the BTClock, based on Svelte-kit. It uses Bootstrap for the lay-out. -![Screenshot](doc/screenshot-light.webp) +![Screenshot](doc/screenshot.webp) ![Screenshot Dark](doc/screenshot-dark.webp) ## Developing @@ -31,11 +30,7 @@ Make sure the postinstall script is ran, because otherwise the filenames are to ## Deploying -To upload the firmware to the BTClock, you need to GZIP all the files. You can use the python script `gzip_build.py` for that: - -```bash -python3 gzip_build.py -``` +To upload the firmware to the BTClock, you need to GZIP all the files. You can use the python script `gzip_build.py` for that. Then you can make a `LittleFS.bin` with mklittlefs: diff --git a/doc/screenshot-dark.webp b/doc/screenshot-dark.webp index 64f26d2..a225afe 100644 Binary files a/doc/screenshot-dark.webp and b/doc/screenshot-dark.webp differ diff --git a/doc/screenshot-light.webp b/doc/screenshot-light.webp deleted file mode 100644 index d5fad73..0000000 Binary files a/doc/screenshot-light.webp and /dev/null differ diff --git a/doc/screenshot.webp b/doc/screenshot.webp new file mode 100644 index 0000000..0a5d87e Binary files /dev/null and b/doc/screenshot.webp differ diff --git a/package.json b/package.json index 8596a5c..930fc00 100644 --- a/package.json +++ b/package.json @@ -5,17 +5,14 @@ "scripts": { "dev": "vite dev", "build": "vite build", - "build:test": "vite build --config vite.config.test.ts", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "lint": "prettier --check . && eslint .", "format": "prettier --write .", "postinstall": "patch-package", - "test": "prettier --write . && eslint . && npm run test:integration && npm run test:unit", + "test": "npm run test:integration && npm run test:unit", "test:integration": "playwright test", - "test:screenshots": "playwright test -c playwright.screenshot.config.ts", - "doc:update-screenshots": "playwright test -c playwright.doc-screenshot.config.ts", "test:unit": "vitest" }, "devDependencies": { @@ -35,9 +32,7 @@ "jsdom": "^25.0.0", "prettier": "^3.3.3", "prettier-plugin-svelte": "^3.2.6", - "rollup-plugin-visualizer": "^5.12.0", "sass": "^1.79.3", - "sharp": "^0.33.5", "svelte": "^4.2.19", "svelte-check": "^4.0.2", "svelte-preprocess": "^6.0.2", @@ -45,7 +40,8 @@ "typescript": "^5.5.4", "typescript-eslint": "^8.7.0", "vite": "^5.4.7", - "vitest": "^2.1.1" + "vitest": "^2.1.1", + "vitest-github-actions-reporter": "^0.11.0" }, "type": "module", "dependencies": { @@ -67,7 +63,10 @@ }, "resolutions": { "es5-ext": ">=0.10.64", + "undici": ">=5.28.4", "ws": ">=8.18.0", + "axios": ">=1.7.7", "micromatch": ">=4.0.8" - } + }, + "packageManager": "yarn@1.22.21+sha1.1959a18351b811cdeedbd484a8f86c3cc3bbaf72" } diff --git a/patches/@sveltejs+kit+2.16.0+001+initial.patch b/patches/@sveltejs+kit+2.7.5.patch similarity index 66% rename from patches/@sveltejs+kit+2.16.0+001+initial.patch rename to patches/@sveltejs+kit+2.7.5.patch index 7fb98b1..e25e1e5 100644 --- a/patches/@sveltejs+kit+2.16.0+001+initial.patch +++ b/patches/@sveltejs+kit+2.7.5.patch @@ -1,17 +1,17 @@ diff --git a/node_modules/@sveltejs/kit/src/exports/vite/index.js b/node_modules/@sveltejs/kit/src/exports/vite/index.js -index ddbe746..1d926a4 100644 +index 40fa4c6..738cabf 100644 --- a/node_modules/@sveltejs/kit/src/exports/vite/index.js +++ b/node_modules/@sveltejs/kit/src/exports/vite/index.js -@@ -658,9 +658,9 @@ async function kit({ svelte_config }) { +@@ -655,9 +655,9 @@ async function kit({ svelte_config }) { + input, output: { - format: inline ? 'iife' : 'esm', - name: `__sveltekit_${version_hash}.app`, + format: 'esm', - entryFileNames: ssr ? '[name].js' : `${prefix}/[name].[hash].${ext}`, -- chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/chunks/[hash].${ext}`, +- chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/chunks/[name].[hash].${ext}`, - assetFileNames: `${prefix}/assets/[name].[hash][extname]`, + entryFileNames: ssr ? '[name].js' : `${prefix}/[hash].${ext}`, -+ chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/c[hash].${ext}`, -+ assetFileNames: `${prefix}/a[hash][extname]`, ++ chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/chunks/[hash].${ext}`, ++ assetFileNames: `${prefix}/assets/[hash][extname]`, hoistTransitiveImports: false, - sourcemapIgnoreList, - manualChunks: split ? undefined : () => 'bundle', + sourcemapIgnoreList + }, diff --git a/patches/@sveltejs+kit+2.8.5.patch b/patches/@sveltejs+kit+2.8.5.patch new file mode 100644 index 0000000..80f5dba --- /dev/null +++ b/patches/@sveltejs+kit+2.8.5.patch @@ -0,0 +1,17 @@ +diff --git a/node_modules/@sveltejs/kit/src/exports/vite/index.js b/node_modules/@sveltejs/kit/src/exports/vite/index.js +index e6521e9..f31c28b 100644 +--- a/node_modules/@sveltejs/kit/src/exports/vite/index.js ++++ b/node_modules/@sveltejs/kit/src/exports/vite/index.js +@@ -639,9 +639,9 @@ async function kit({ svelte_config }) { + input, + output: { + format: 'esm', +- entryFileNames: ssr ? '[name].js' : `${prefix}/[name].[hash].${ext}`, +- chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/chunks/[name].[hash].${ext}`, +- assetFileNames: `${prefix}/assets/[name].[hash][extname]`, ++ entryFileNames: ssr ? '[name].js' : `${prefix}/[hash].${ext}`, ++ chunkFileNames: ssr ? 'chunks/[name].js' : `${prefix}/chunks/[hash].${ext}`, ++ assetFileNames: `${prefix}/assets/[hash][extname]`, + hoistTransitiveImports: false, + sourcemapIgnoreList + }, diff --git a/playwright.config.ts b/playwright.config.ts index 461f3c2..d60d61c 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -6,11 +6,11 @@ const config: PlaywrightTestConfig = { timezoneId: 'Europe/Amsterdam' }, webServer: { - command: 'npm run build:test && npm run preview', + command: 'npm run build && npm run preview', port: 4173 }, reporter: process.env.CI ? 'github' : 'list', - testDir: 'tests/playwright', + testDir: 'tests', testMatch: /(.+\.)?(test|spec)\.[jt]s/ }; diff --git a/playwright.doc-screenshot.config.ts b/playwright.doc-screenshot.config.ts deleted file mode 100644 index f052338..0000000 --- a/playwright.doc-screenshot.config.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { defineConfig } from '@playwright/test'; - -export default defineConfig({ - use: { - locale: 'en-GB', - timezoneId: 'Europe/Amsterdam' - }, - webServer: { - command: 'yarn build && yarn preview', - port: 4173 - }, - testDir: './tests/doc-screenshots', - outputDir: './test-results/screenshots', - projects: [ - { - name: 'Light Mode', - use: { - viewport: { width: 1440, height: 900 }, - colorScheme: 'light' - } - }, - { - name: 'Dark Mode', - use: { viewport: { width: 1440, height: 900 }, colorScheme: 'dark' } - } - ] -}); diff --git a/playwright.screenshot.config.ts b/playwright.screenshot.config.ts deleted file mode 100644 index f4272ff..0000000 --- a/playwright.screenshot.config.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { defineConfig, devices } from '@playwright/test'; - -export default defineConfig({ - reporter: 'html', - use: { - locale: 'en-GB', - timezoneId: 'Europe/Amsterdam' - }, - webServer: { - command: 'npm run build && npm run preview', - port: 4173 - }, - testDir: './tests/screenshots', - outputDir: './test-results/screenshots', - projects: [ - { - name: 'MacBook Air 13 inch', - use: { - viewport: { width: 1440, height: 900 } - } - }, - { - name: 'iPhone 14 Pro', - use: { ...devices['iPhone 14 Pro'] } - }, - { - name: 'iPhone 15 Pro Landscape', - use: { ...devices['iPhone 15 Pro Landscape'] } - }, - { - name: 'MacBook Pro 14 inch', - use: { - viewport: { width: 1512, height: 982 } - } - }, - { - name: 'MacBook Pro 14 inch NL locale', - use: { - viewport: { width: 1512, height: 982 }, - locale: 'nl' - } - }, - { - name: 'MacBook Pro 14 inch nl-NL locale', - use: { - viewport: { width: 1512, height: 982 }, - locale: 'nl-NL' - } - }, - { - name: 'MacBook Pro 14 inch Firefox HiDPI', - use: { ...devices['Desktop Firefox HiDPI'], viewport: { width: 1512, height: 982 } } - }, - { - name: 'MacBook Pro 14 inch Safari', - use: { ...devices['Desktop Safari'], viewport: { width: 1512, height: 982 } } - }, - { - name: 'MacBook Pro 14 inch Safari Dark Mode', - use: { - ...devices['Desktop Safari'], - viewport: { width: 1512, height: 982 }, - colorScheme: 'dark' - } - } - ] -}); diff --git a/renovate.json b/renovate.json deleted file mode 100644 index 7dca1ca..0000000 --- a/renovate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["config:recommended"], - "packageRules": [ - { - "matchUpdateTypes": ["major"], - "enabled": false, - "matchPackageNames": ["*"] - } - ], - "npm": { - "rangeStrategy": "update-lockfile" - } -} diff --git a/src/lib/components/ColorSchemeSwitcher.svelte b/src/components/ColorSchemeSwitcher.svelte similarity index 100% rename from src/lib/components/ColorSchemeSwitcher.svelte rename to src/components/ColorSchemeSwitcher.svelte diff --git a/src/lib/components/ToggleHeader.svelte b/src/components/ToggleHeader.svelte similarity index 100% rename from src/lib/components/ToggleHeader.svelte rename to src/components/ToggleHeader.svelte diff --git a/src/lib/components/Placeholder.svelte b/src/lib/components/Placeholder.svelte deleted file mode 100644 index 3eecfdc..0000000 --- a/src/lib/components/Placeholder.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - - {valueToCheck ? value : ''} - diff --git a/src/lib/components/SettingsInput.svelte b/src/lib/components/SettingsInput.svelte deleted file mode 100644 index 01738e6..0000000 --- a/src/lib/components/SettingsInput.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - {#if suffix} - {suffix} - {/if} - - - {#if helpText} - {helpText} - {/if} - - diff --git a/src/lib/components/SettingsSelect.svelte b/src/lib/components/SettingsSelect.svelte deleted file mode 100644 index ef34fec..0000000 --- a/src/lib/components/SettingsSelect.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - {#each options as [key, val]} - - {/each} - - {#if helpText} - {helpText} - {/if} - - diff --git a/src/lib/components/SettingsSwitch.svelte b/src/lib/components/SettingsSwitch.svelte deleted file mode 100644 index 27a3156..0000000 --- a/src/lib/components/SettingsSwitch.svelte +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/src/lib/components/index.ts b/src/lib/components/index.ts deleted file mode 100644 index b026c1c..0000000 --- a/src/lib/components/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { default as SettingsSwitch } from './SettingsSwitch.svelte'; -export { default as SettingsInput } from './SettingsInput.svelte'; -export { default as SettingsSelect } from './SettingsSelect.svelte'; -export { default as ToggleHeader } from './ToggleHeader.svelte'; -export { default as ColorSchemeSwitcher } from './ColorSchemeSwitcher.svelte'; -export { default as Placeholder } from './Placeholder.svelte'; diff --git a/src/lib/components/settings/DataSourceSettings.svelte b/src/lib/components/settings/DataSourceSettings.svelte deleted file mode 100644 index 5891573..0000000 --- a/src/lib/components/settings/DataSourceSettings.svelte +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - -
Data Source
- - - - - - - - - {#if $settings.nostrRelay} - - - - {/if} - - - - - - -
- - {#if $settings.dataSource === DataSourceType.THIRD_PARTY_SOURCE} - - - - HTTPS - - - {/if} - - {#if $settings.dataSource === DataSourceType.NOSTR_SOURCE} - - checkValidNostrPubkey('nostrPubKey')} - onInput={() => checkValidNostrPubkey('nostrPubKey')} - /> - {/if} - - {#if $settings.dataSource === DataSourceType.CUSTOM_SOURCE} - - - {/if} -
-
diff --git a/src/lib/components/settings/DisplaySettings.svelte b/src/lib/components/settings/DisplaySettings.svelte deleted file mode 100644 index 0edaad0..0000000 --- a/src/lib/components/settings/DisplaySettings.svelte +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - ($settings.timePerScreen = Number(e.target.value))} - type="number" - min={1} - step={1} - required={true} - suffix={$_('time.minutes')} - size={$uiSettings.inputSize} - /> - - - - - - - {#if $settings.hasFrontlight && !$settings.flDisable} - - - - {/if} - - {#if !$settings.flDisable && $settings.hasLightLevel} - - {/if} - - - - - - - - - {#if $settings.hasFrontlight} - - {/if} - - {#if $settings.hasFrontlight && !$settings.flDisable} - - - - - {#if $settings.hasLightLevel} - - {/if} - {/if} - - - diff --git a/src/lib/components/settings/ExtraFeaturesSettings.svelte b/src/lib/components/settings/ExtraFeaturesSettings.svelte deleted file mode 100644 index 95cc470..0000000 --- a/src/lib/components/settings/ExtraFeaturesSettings.svelte +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - {#if $settings.dnd.timeBasedEnabled} - - - - - - - - - - - - - - - - - {/if} - - - {#if 'bitaxeEnabled' in $settings} - - -
BitAxe
- - {#if $settings.bitaxeEnabled} - - - - {/if} - -
- {/if} - - - {#if 'miningPoolStats' in $settings} - - -
Mining Pool stats
- - {#if $settings.miningPoolStats} - - {#if $settings.miningPoolName === 'local_public_pool'} - - - - {/if} - - {/if} - -
- {/if} - - - {#if 'nostrZapNotify' in $settings} - - -
Nostr
- - - {#if $settings.nostrZapNotify} - - - {#if $settings.hasFrontlight && !$settings.flDisable} - - {/if} - - - - - checkValidNostrPubkey('nostrZapPubkey')} - onInput={() => checkValidNostrPubkey('nostrZapPubkey')} - /> - {/if} - -
- {/if} -
-
diff --git a/src/lib/components/settings/ScreenSpecificSettings.svelte b/src/lib/components/settings/ScreenSpecificSettings.svelte deleted file mode 100644 index bae67df..0000000 --- a/src/lib/components/settings/ScreenSpecificSettings.svelte +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - {#if !$settings.actCurrencies} - - {/if} - - -
{$_('section.settings.screens')}
- {#if $settings.screens} - {#each $settings.screens as s} - - {/each} - {/if} -
- {#if $settings.actCurrencies && $settings.dataSource == DataSourceType.BTCLOCK_SOURCE} - -
{$_('section.settings.currencies')}
- {$_('restartRequired')} - {#if $settings.availableCurrencies} - {#each $settings.availableCurrencies as c} - -
- - -
- - {/each} - {/if} -
- {/if} -
-
diff --git a/src/lib/components/settings/SystemSettings.svelte b/src/lib/components/settings/SystemSettings.svelte deleted file mode 100644 index f774c8f..0000000 --- a/src/lib/components/settings/SystemSettings.svelte +++ /dev/null @@ -1,98 +0,0 @@ - - - - - ($settings.tzString = value)} - size={$uiSettings.inputSize} - /> - - {#if $settings.httpAuthEnabled} - - - - - {/if} - - - - - - - - - - - - - diff --git a/src/lib/components/settings/TimezoneSelector.svelte b/src/lib/components/settings/TimezoneSelector.svelte deleted file mode 100644 index f76ddd6..0000000 --- a/src/lib/components/settings/TimezoneSelector.svelte +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - {#each timezones as tz} - - {/each} - - - - {$_('section.settings.tzOffsetHelpText')} - - diff --git a/src/lib/components/settings/index.ts b/src/lib/components/settings/index.ts deleted file mode 100644 index 6ddfa7c..0000000 --- a/src/lib/components/settings/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { default as ScreenSpecificSettings } from './ScreenSpecificSettings.svelte'; -export { default as DisplaySettings } from './DisplaySettings.svelte'; -export { default as DataSourceSettings } from './DataSourceSettings.svelte'; -export { default as ExtraFeaturesSettings } from './ExtraFeaturesSettings.svelte'; -export { default as SystemSettings } from './SystemSettings.svelte'; diff --git a/src/lib/i18n/en.json b/src/lib/i18n/en.json deleted file mode 100644 index e69de29..0000000 diff --git a/src/lib/i18n/index.ts b/src/lib/i18n/index.ts index fa817a7..2959787 100644 --- a/src/lib/i18n/index.ts +++ b/src/lib/i18n/index.ts @@ -8,23 +8,11 @@ register('nl', () => import('../locales/nl.json')); register('es', () => import('../locales/es.json')); register('de', () => import('../locales/de.json')); -const getInitialLocale = () => { - if (!browser) return defaultLocale; - - // Check localStorage first - const storedLocale = localStorage.getItem('locale'); - if (storedLocale) return storedLocale; - - // Get browser locale and normalize it - const browserLocale = window.navigator.language; - const normalizedLocale = browserLocale.split('-')[0].toLowerCase(); - - // Check if we support this locale - const supportedLocales = ['en', 'nl', 'es', 'de']; - return supportedLocales.includes(normalizedLocale) ? normalizedLocale : defaultLocale; -}; - init({ fallbackLocale: defaultLocale, - initialLocale: getInitialLocale() + initialLocale: browser + ? browser && localStorage.getItem('locale') + ? localStorage.getItem('locale') + : window.navigator.language.slice(0, 2) + : defaultLocale }); diff --git a/src/lib/locales/de.json b/src/lib/locales/de.json index 6671619..a26ab60 100644 --- a/src/lib/locales/de.json +++ b/src/lib/locales/de.json @@ -30,7 +30,7 @@ "wifiTxPower": "WiFi-TX-Leistung", "settingsSaved": "Einstellungen gespeichert", "errorSavingSettings": "Fehler beim Speichern der Einstellungen", - "ownDataSource": "BTClock-Datenquelle", + "ownDataSource": "BTClock-Datenquelle verwenden", "flAlwaysOn": "Displaybeleuchtung immer an", "flEffectDelay": "Displaybeleuchtungeffekt Geschwindigkeit", "flFlashOnUpd": "Displaybeleuchting bei neuem Block", @@ -57,24 +57,7 @@ "showAll": "Alle anzeigen", "hideAll": "Alles ausblenden", "flOffWhenDark": "Displaybeleuchtung aus, wenn es dunkel ist", - "luxLightToggleText": "Zum Deaktivieren auf 0 setzen", - "verticalDesc": "Vrtikale Bildschirmbeschreibung", - "enableDebugLog": "Debug-Protokoll aktivieren", - "bitaxeEnabled": "BitAxe-Integration aktivieren", - "miningPoolStats": "Mining-Pool-Statistiken Integration Aktivieren", - "nostrZapNotify": "Nostr Zap-Benachrichtigungen aktivieren", - "thirdPartySource": "mempool.space/coincap.io Verwenden", - "dataSource": { - "nostr": "Nostr-Verlag", - "custom": "Benutzerdefinierter dataquelle" - }, - "fontName": "Schriftart", - "timeBasedDnd": "Aktivieren Sie den Zeitplan „Bitte nicht stören“.", - "dndStartHour": "Startstunde", - "dndStartMinute": "Startminute", - "dndEndHour": "Endstunde", - "dndEndMinute": "Schlussminute", - "screenRestoreZap": "Vorherigen Bildschirmzustand nach Zap wieder herstellen (Verwendet {setting} Einstellung)" + "luxLightToggleText": "Zum Deaktivieren auf 0 setzen" }, "control": { "systemInfo": "Systeminfo", @@ -89,8 +72,7 @@ "hostname": "Hostname", "frontlight": "Displaybeleuchtung", "turnOn": "Einschalten", - "flashFrontlight": "Blinken", - "fwCommitMismatch": "Die Firmware -Version unterscheidet sich von der WebUI -Version, dies kann zu Problemen führen." + "flashFrontlight": "Blinken" }, "status": { "title": "Status", @@ -103,9 +85,7 @@ "wifiSignalStrength": "WiFi-Signalstärke", "wsDataConnection": "BTClock-Datenquelle verbindung", "lightSensor": "Lichtsensor", - "nostrConnection": "Nostr Relay-Verbindung", - "doNotDisturb": "Bitte nicht stören", - "timeBasedDnd": "Zeitbasierter Zeitplan" + "nostrConnection": "Nostr Relay-Verbindung" }, "firmwareUpdater": { "fileUploadSuccess": "Datei erfolgreich hochgeladen, Gerät neu gestartet. WebUI in {countdown} Sekunden neu geladen", @@ -117,8 +97,7 @@ "latestVersion": "Letzte Version", "releaseDate": "Veröffentlichungsdatum", "viewRelease": "Veröffentlichung anzeigen", - "autoUpdate": "Update installieren (experimentell)", - "autoUpdateInProgress": "Automatische Aktualisierung läuft, bitte warten..." + "autoUpdate": "Update installieren (experimentell)" } }, "colors": { diff --git a/src/lib/locales/en.json b/src/lib/locales/en.json index 40476d8..6e829bd 100644 --- a/src/lib/locales/en.json +++ b/src/lib/locales/en.json @@ -29,7 +29,7 @@ "wifiTxPower": "WiFi TX power", "settingsSaved": "Settings saved", "errorSavingSettings": "Error saving settings", - "ownDataSource": "BTClock data source", + "ownDataSource": "Use BTClock data source", "flMaxBrightness": "Frontlight brightness", "flAlwaysOn": "Frontlight always on", "flEffectDelay": "Frontlight effect speed", @@ -40,13 +40,10 @@ "nostrPubKey": "Nostr source pubkey", "nostrZapKey": "Nostr zap pubkey", "nostrRelay": "Nostr Relay", - "nostrZapNotify": "Enable Nostr Zap Notifications", + "nostrZapNotify": "Nostr Zap Notifications", "useNostr": "Use Nostr data source", "bitaxeHostname": "BitAxe hostname or IP", - "bitaxeEnabled": "Enable BitAxe-integration", - "miningPoolStats": "Enable Mining Pool Stats integration", - "miningPoolName": "Mining Pool", - "miningPoolUser": "Mining Pool username or api key", + "bitaxeEnabled": "Enable BitAxe", "nostrZapPubkey": "Nostr Zap pubkey", "invalidNostrPubkey": "Invalid Nostr pubkey, note that your pubkey does NOT start with npub.", "convertingValidNpub": "Converting valid npub to pubkey", @@ -56,7 +53,7 @@ "httpAuthPass": "WebUI Password", "httpAuthText": "Only password-protects WebUI, not API-calls.", "currencies": "Currencies", - "customSource": "Use custom data source endpoint", + "stagingSource": "Use Staging data source (for development)", "useNostrTooltip": "Very experimental and unstable. Nostr data source is not required for Nostr Zap notifications.", "mowMode": "Mow Suffix Mode", "suffixShareDot": "Suffix compact notation", @@ -72,26 +69,7 @@ "showAll": "Show all", "hideAll": "Hide all", "flOffWhenDark": "Frontlight off when dark", - "luxLightToggleText": "Set to 0 to disable", - "verticalDesc": "Use vertical screen description", - "enableDebugLog": "Enable Debug-log", - "dataSource": { - "label": "Data Source", - "btclock": "BTClock Data Source", - "thirdParty": "mempool.space/Kraken", - "nostr": "Nostr publisher", - "custom": "Custom Endpoint" - }, - "thirdPartySource": "Use mempool.space/coincap.io", - "ceDisableSSL": "Disable SSL", - "ceEndpoint": "Endpoint hostname", - "fontName": "Font", - "timeBasedDnd": "Enable Do Not Disturb time schedule", - "dndStartHour": "Start hour", - "dndStartMinute": "Start minute", - "dndEndHour": "End hour", - "dndEndMinute": "End minute", - "screenRestoreZap": "Restore previous screen state after zap (Uses {setting} setting)" + "luxLightToggleText": "Set to 0 to disable" }, "control": { "systemInfo": "System info", @@ -108,8 +86,7 @@ "turnOn": "Turn on", "flashFrontlight": "Flash", "firmwareUpdate": "Firmware update", - "fwCommit": "Firmware commit", - "fwCommitMismatch": "The firmware version is different from the WebUI version, this might cause problems. " + "fwCommit": "Firmware commit" }, "status": { "title": "Status", @@ -122,9 +99,7 @@ "wifiSignalStrength": "WiFi Signal strength", "wsDataConnection": "BTClock data-source connection", "lightSensor": "Light sensor", - "nostrConnection": "Nostr Relay connection", - "doNotDisturb": "Do not disturb", - "timeBasedDnd": "Time-based schedule" + "nostrConnection": "Nostr Relay connection" }, "firmwareUpdater": { "fileUploadFailed": "File upload failed. Make sure you have selected the correct file and try again.", @@ -136,8 +111,7 @@ "latestVersion": "Latest Version", "releaseDate": "Release Date", "viewRelease": "View Release", - "autoUpdate": "Install update (experimental)", - "autoUpdateInProgress": "Auto-update in progress, please wait..." + "autoUpdate": "Install update (experimental)" } }, "colors": { diff --git a/src/lib/locales/es.json b/src/lib/locales/es.json index e9edba5..eb15ced 100644 --- a/src/lib/locales/es.json +++ b/src/lib/locales/es.json @@ -28,7 +28,7 @@ "wifiTxPowerText": "En la mayoría de los casos no es necesario configurar esto.", "settingsSaved": "Configuración guardada", "errorSavingSettings": "Error al guardar la configuración", - "ownDataSource": "fuente de datos BTClock", + "ownDataSource": "Utilice la fuente de datos BTClock", "flMaxBrightness": "Brillo de luz de la pantalla", "flAlwaysOn": "Luz de la pantalla siempre encendida", "flEffectDelay": "Velocidad del efecto de luz de la pantalla", @@ -47,7 +47,7 @@ "section": { "displaysAndLed": "Pantallas y LED", "screenSettings": "Específico de la pantalla", - "dataSource": "Fuente de datos", + "dataSource": "fuente de datos", "extraFeatures": "Funciones adicionales", "system": "Sistema" }, @@ -56,24 +56,7 @@ "showAll": "Mostrar todo", "hideAll": "Ocultar todo", "flOffWhenDark": "Luz de la pantalla cuando está oscuro", - "luxLightToggleText": "Establecer en 0 para desactivar", - "verticalDesc": "Descripción de pantalla vertical", - "enableDebugLog": "Habilitar registro de depuración", - "bitaxeEnabled": "Habilitar la integración de BitAxe", - "miningPoolStats": "Habilitar la integración de estadísticas del grupo minero", - "nostrZapNotify": "Habilitar notificaciones de Nostr Zap", - "thirdPartySource": "Utilice mempool.space/coincap.io", - "dataSource": { - "nostr": "editorial nostr", - "custom": "Punto final personalizado" - }, - "fontName": "Fuente", - "timeBasedDnd": "Habilitar el horario de No molestar", - "dndStartHour": "Hora de inicio", - "dndStartMinute": "Minuto de inicio", - "dndEndHour": "Hora final", - "dndEndMinute": "Minuto final", - "screenRestoreZap": "Restaurar el estado de pantalla anterior después de Zap (Usa la configuración {setting})" + "luxLightToggleText": "Establecer en 0 para desactivar" }, "control": { "turnOff": "Apagar", @@ -88,8 +71,7 @@ "hostname": "Nombre del host", "turnOn": "Encender", "frontlight": "Luz de la pantalla", - "flashFrontlight": "Luz intermitente", - "fwCommitMismatch": "La versión de firmware es diferente de la versión WebUI, esto podría causar problemas." + "flashFrontlight": "Luz intermitente" }, "status": { "memoryFree": "Memoria RAM libre", @@ -102,9 +84,7 @@ "wifiSignalStrength": "Fuerza de la señal WiFi", "wsDataConnection": "Conexión de fuente de datos BTClock", "lightSensor": "Sensor de luz", - "nostrConnection": "Conexión de relé Nostr", - "doNotDisturb": "No molestar", - "timeBasedDnd": "Horario basado en el tiempo" + "nostrConnection": "Conexión de relé Nostr" }, "firmwareUpdater": { "fileUploadSuccess": "Archivo cargado exitosamente, reiniciando el dispositivo. Recargando WebUI en {countdown} segundos", @@ -116,8 +96,7 @@ "latestVersion": "Ultima versión", "releaseDate": "Fecha de lanzamiento", "viewRelease": "Ver lanzamiento", - "autoUpdate": "Instalar actualización (experimental)", - "autoUpdateInProgress": "Actualización automática en progreso, espere..." + "autoUpdate": "Instalar actualización (experimental)" } }, "button": { diff --git a/src/lib/locales/nl.json b/src/lib/locales/nl.json index 8b6bd64..b31f7ad 100644 --- a/src/lib/locales/nl.json +++ b/src/lib/locales/nl.json @@ -57,15 +57,7 @@ "showAll": "Toon alles", "hideAll": "Alles verbergen", "flOffWhenDark": "Displaylicht uit als het donker is", - "luxLightToggleText": "Stel in op 0 om uit te schakelen", - "verticalDesc": "Verticale schermbeschrijving", - "fontName": "Lettertype", - "timeBasedDnd": "Schakel het tijdschema Niet storen in", - "dndStartHour": "Begin uur", - "dndStartMinute": "Beginminuut", - "dndEndHour": "Eind uur", - "dndEndMinute": "Einde minuut", - "screenRestoreZap": "Herstel vorige schermstatus na zap (Gebruikt {setting} instelling)" + "luxLightToggleText": "Stel in op 0 om uit te schakelen" }, "control": { "systemInfo": "Systeeminformatie", @@ -79,8 +71,7 @@ "title": "Besturing", "frontlight": "Displaylicht", "turnOn": "Aanzetten", - "flashFrontlight": "Knipper", - "fwCommitMismatch": "De firmwareversie verschilt van de WebUI -versie, dit kan problemen veroorzaken." + "flashFrontlight": "Knipper" }, "status": { "title": "Status", @@ -93,9 +84,7 @@ "wifiSignalStrength": "WiFi signaalsterkte", "wsDataConnection": "BTClock-gegevensbron verbinding", "lightSensor": "Licht sensor", - "nostrConnection": "Nostr Relay-verbinding", - "doNotDisturb": "Niet storen", - "timeBasedDnd": "Op tijd gebaseerd schema" + "nostrConnection": "Nostr Relay-verbinding" }, "firmwareUpdater": { "fileUploadSuccess": "Bestand geüpload, apparaat herstart. WebUI opnieuw geladen over {countdown} seconden", @@ -107,8 +96,7 @@ "latestVersion": "Laatste versie", "releaseDate": "Datum van publicatie", "viewRelease": "Bekijk publicatie", - "autoUpdate": "Update installeren (experimenteel)", - "autoUpdateInProgress": "Automatische update wordt uitgevoerd. Even geduld a.u.b...." + "autoUpdate": "Update installeren (experimenteel)" } }, "colors": { diff --git a/src/lib/style/app.scss b/src/lib/style/app.scss index dd3d50a..0fd0702 100644 --- a/src/lib/style/app.scss +++ b/src/lib/style/app.scss @@ -1,23 +1,11 @@ -@use '@fontsource/ubuntu/scss/mixins' as Ubuntu; -@use '@fontsource/antonio/scss/mixins' as Antonio; - @import '../node_modules/bootstrap/scss/functions'; +@import '../node_modules/bootstrap/scss/variables'; +@import '../node_modules/bootstrap/scss/variables-dark'; //@import "@fontsource/antonio/latin-400.css"; - -@include Ubuntu.faces( - $subsets: latin, - $weights: 400, - $formats: 'woff2', - $directory: '@fontsource/ubuntu/files' -); - -@include Antonio.faces( - $subsets: latin, - $weights: 400, - $formats: 'woff2', - $directory: '@fontsource/antonio/files' -); +@import '@fontsource/ubuntu/latin-400.css'; +//@import '@fontsource/oswald/latin-400.css'; +@import '@fontsource/antonio/latin-400.css'; @import './satsymbol'; @@ -26,8 +14,6 @@ $font-family-base: 'Ubuntu'; $font-size-base: 0.9rem; $input-font-size-sm: $font-size-base * 0.875; -@import '../node_modules/bootstrap/scss/variables'; -@import '../node_modules/bootstrap/scss/variables-dark'; // $border-radius: .675rem; @import '../node_modules/bootstrap/scss/mixins'; @@ -53,46 +39,10 @@ $input-font-size-sm: $font-size-base * 0.875; @import '../node_modules/bootstrap/scss/tooltip'; @import '../node_modules/bootstrap/scss/toasts'; @import '../node_modules/bootstrap/scss/alert'; -@import '../node_modules/bootstrap/scss/placeholders'; -@import '../node_modules/bootstrap/scss/spinners'; @import '../node_modules/bootstrap/scss/helpers'; @import '../node_modules/bootstrap/scss/utilities/api'; -/* Default state (xs) - sticky */ -.sticky-xs-top { - position: sticky; - top: 0; - z-index: 1020; -} - -@media (max-width: 576px) { - main { - margin-top: 25px; - } -} - -/* Remove sticky behavior for larger screens */ -@media (min-width: 576px) { - .sticky-xs-top { - position: relative; - } -} - -@include color-mode(dark) { - .navbar { - --bs-navbar-color: $light; - background-color: $dark; - } -} - -@include color-mode(light) { - .navbar { - --bs-navbar-color: $dark; - background-color: $light; - } -} - nav { margin-bottom: 15px; } @@ -103,23 +53,6 @@ nav { .btn-group-sm .btn { font-size: 0.8rem; - // text-overflow: ellipsis; - // white-space: nowrap; - // overflow: hidden; - // width: 4rem; -} - -.btn-group-sm { - display: flex !important; - flex-wrap: wrap !important; - gap: 0.25rem !important; -} - -/* Remove the border radius override that Bootstrap applies */ -.btn-group-sm > .btn { - border-radius: 0.25rem !important; - margin: 0 !important; - position: relative !important; } #customText { @@ -130,7 +63,7 @@ nav { .btclock { background: #000; display: flex; - font-size: calc(2vw + 2vh); + font-size: calc(3vw + 3vh); font-family: 'Antonio', sans-serif; font-weight: 400; padding: 10px; @@ -171,25 +104,19 @@ nav { flex-direction: column; /* Stack the text and line vertically */ align-items: center; justify-content: space-around; /* Distribute items with space between */ - padding: 5px; + padding: 10px; } - &.verticalDesc > .splitText:first-child { - .textcontainer { - transform: rotate(-90deg); - } - } - - .splitText .textcontainer :first-child::after { + .splitText div:first-child::after { display: block; content: ''; margin-top: 0px; border-bottom: 2px solid; - // margin-bottom: 3px; + margin-bottom: 3px; } .splitText { - font-size: calc(0.3vw + 1vh); + font-size: calc(0.5vw + 1vh); .top-text, .bottom-text { @@ -315,38 +242,3 @@ nav { input[type='number'] { text-align: right; } - -.lightMode .bitaxelogo { - filter: brightness(0) saturate(100%); -} - -.connection-lost-overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.75); - z-index: 1050; - display: flex; - justify-content: center; - align-items: center; - - .overlay-content { - background-color: rgba(255, 255, 255, 0.75); - - padding: 0.5rem; - border-radius: 0.5rem; - text-align: center; - - i { - font-size: 1rem; - color: $danger; - margin-bottom: 1rem; - } - - h4 { - margin-bottom: 0.5rem; - } - } -} diff --git a/src/lib/style/satsymbol.scss b/src/lib/style/satsymbol.scss index 9b7eefd..f761701 100644 --- a/src/lib/style/satsymbol.scss +++ b/src/lib/style/satsymbol.scss @@ -1,6 +1,8 @@ @font-face { font-family: 'Satoshi Symbol'; - src: url('/fonts/Satoshi_Symbol.woff2') format('woff2'); + src: + url('/fonts/Satoshi_Symbol.woff2') format('woff2'), + url('/fonts/Satoshi_Symbol.woff') format('woff'); font-weight: normal; font-style: normal; font-display: swap; diff --git a/src/lib/types/dataSource.ts b/src/lib/types/dataSource.ts deleted file mode 100644 index ffadd46..0000000 --- a/src/lib/types/dataSource.ts +++ /dev/null @@ -1,6 +0,0 @@ -export enum DataSourceType { - BTCLOCK_SOURCE = 0, - THIRD_PARTY_SOURCE = 1, - NOSTR_SOURCE = 2, - CUSTOM_SOURCE = 3 -} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 0f1cc8a..0faad53 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -12,12 +12,10 @@ NavbarBrand, NavbarToggler } from '@sveltestrap/sveltestrap'; - import { _ } from 'svelte-i18n'; import { page } from '$app/stores'; import { locale, locales, isLoading } from 'svelte-i18n'; - import { ColorSchemeSwitcher } from '$lib/components'; - import { derived } from 'svelte/store'; + import ColorSchemeSwitcher from '../components/ColorSchemeSwitcher.svelte'; export const setLocale = (lang: string) => () => { locale.set(lang); @@ -40,20 +38,19 @@ return flagMap[lowercaseCode]; } else { // Return null for unsupported language codes - return flagMap['en']; + return null; } }; let languageNames = {}; - const currentLocale = derived(locale, ($locale) => $locale || 'en'); - locale.subscribe(() => { - const localeToUse = $locale || 'en'; - let newLanguageNames = new Intl.DisplayNames([localeToUse], { type: 'language' }); + if ($locale) { + let newLanguageNames = new Intl.DisplayNames([$locale], { type: 'language' }); - for (let l of $locales) { - languageNames[l] = newLanguageNames.of(l) || l; + for (let l of $locales) { + languageNames[l] = newLanguageNames.of(l); + } } }); @@ -64,23 +61,8 @@ }; - - ₿TClock - - + + ₿TClock @@ -97,10 +79,7 @@ {#if !$isLoading} - {getFlagEmoji($currentLocale)} - {languageNames[$currentLocale] || 'English'} + {getFlagEmoji($locale)} {languageNames[$locale]} {#each $locales as locale} -
- -
+ diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index 3c7d853..4497634 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -6,15 +6,10 @@ import { locale, waitLocale } from 'svelte-i18n'; import type { LayoutLoad } from './$types'; export const load: LayoutLoad = async () => { - if (browser) { - if (localStorage.getItem('locale')) { - locale.set(localStorage.getItem('locale')); - } else { - // Normalize the browser locale - const browserLocale = window.navigator.language.split('-')[0].toLowerCase(); - const supportedLocales = ['en', 'nl', 'es', 'de']; - locale.set(supportedLocales.includes(browserLocale) ? browserLocale : 'en'); - } + if (browser && localStorage.getItem('locale')) { + locale.set(localStorage.getItem('locale')); + } else if (browser) { + locale.set(window.navigator.language); } await waitLocale(); }; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5971a12..b37ab13 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -3,7 +3,6 @@ import { screenSize, updateScreenSize } from '$lib/screen'; import { Container, Row, Toast, ToastBody } from '@sveltestrap/sveltestrap'; - import { replaceState } from '$app/navigation'; import { onMount } from 'svelte'; import { writable } from 'svelte/store'; @@ -13,10 +12,16 @@ import { uiSettings } from '$lib/uiSettings'; let settings = writable({ - isLoaded: false, - timePerScreen: 0 + fgColor: '0', + bgColor: '0' }); + // let uiSettings = writable({ + // inputSize: 'sm', + // selectClass: '', + // btnSize: 'lg' + // }); + let status = writable({ data: ['L', 'O', 'A', 'D', 'I', 'N', 'G'], espFreeHeap: 0, @@ -25,126 +30,48 @@ price: false, blocks: false }, - leds: [], - isUpdating: false + leds: [] }); - const fetchStatusData = async () => { - const res = await fetch(`${PUBLIC_BASE_URL}/api/status`, { credentials: 'same-origin' }); - - if (!res.ok) { - console.error('Error fetching status data:', res.statusText); - return false; - } - - const data = await res.json(); - status.set(data); - return true; + const fetchStatusData = () => { + fetch(`${PUBLIC_BASE_URL}/api/status`, { credentials: 'same-origin' }) + .then((res) => res.json()) + .then((data) => { + status.set(data); + }); }; - const fetchSettingsData = async () => { - const res = await fetch(PUBLIC_BASE_URL + `/api/settings`, { credentials: 'same-origin' }); + const fetchSettingsData = () => { + fetch(PUBLIC_BASE_URL + `/api/settings`, { credentials: 'same-origin' }) + .then((res) => res.json()) + .then((data) => { + data.fgColor = String(data.fgColor); + data.bgColor = String(data.bgColor); + data.timePerScreen = data.timerSeconds / 60; - if (!res.ok) { - console.error('Error fetching settings data:', res.statusText); - return; - } - - const data = await res.json(); - - data.fgColor = String(data.fgColor); - data.bgColor = String(data.bgColor); - data.timePerScreen = data.timerSeconds / 60; - - if (data.fgColor > 65535) { - data.fgColor = '65535'; - } - - if (data.bgColor > 65535) { - data.bgColor = '65535'; - } - settings.set(data); - }; - - let sections: (HTMLElement | null)[]; - let observer: IntersectionObserver; - const SM_BREAKPOINT = 576; - - const setupObserver = () => { - if (window.innerWidth < SM_BREAKPOINT) { - observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - const id = entry.target.id; - replaceState(`#${id}`); - - // Update nav pills - document.querySelectorAll('.nav-link').forEach((link) => { - link.classList.remove('active'); - if (link.getAttribute('href') === `#${id}`) { - link.classList.add('active'); - } - }); - } - }); - }, - { - threshold: 0.25 // Trigger when section is 50% visible + if (data.fgColor > 65535) { + data.fgColor = '65535'; } - ); - sections = ['control', 'status', 'settings'].map((id) => document.getElementById(id)); - - sections.forEach((section) => observer.observe(section!)); - } + if (data.bgColor > 65535) { + data.bgColor = '65535'; + } + settings.set(data); + }); }; - onMount(async () => { - setupObserver(); + onMount(() => { + fetchSettingsData(); + fetchStatusData(); - const connectEventSource = () => { - const evtSource = new EventSource(`${PUBLIC_BASE_URL}/events`); + const evtSource = new EventSource(`${PUBLIC_BASE_URL}/events`); - evtSource.addEventListener('status', (e) => { - let dataObj = JSON.parse(e.data); - status.update((s) => ({ ...s, isUpdating: true })); - status.set(dataObj); - }); - - evtSource.addEventListener('message', (e) => { - if (e.data == 'closing') { - console.log('EventSource closing'); - status.update((s) => ({ ...s, isUpdating: false })); - evtSource.close(); // Close the current connection - setTimeout(connectEventSource, 5000); - } - }); - - evtSource.addEventListener('error', (e) => { - console.error('EventSource failed:', e); - status.update((s) => ({ ...s, isUpdating: false })); - evtSource.close(); // Close the current connection - setTimeout(connectEventSource, 1000); - }); - }; - - try { - await fetchSettingsData(); - if (await fetchStatusData()) { - settings.update((s) => ({ ...s, isLoaded: true })); - connectEventSource(); - } - } catch (error) { - console.log('Error fetching data:', error); - } + evtSource.addEventListener('status', (e) => { + let dataObj = JSON.parse(e.data); + status.set(dataObj); + }); function handleResize() { - if (observer) { - observer.disconnect(); - } - setupObserver(); - updateScreenSize(); } @@ -196,11 +123,9 @@ - + - - diff --git a/src/routes/Control.svelte b/src/routes/Control.svelte index c4e96c1..d89ee10 100644 --- a/src/routes/Control.svelte +++ b/src/routes/Control.svelte @@ -13,12 +13,10 @@ Form, Input, Label, - Row, - Alert + Row } from '@sveltestrap/sveltestrap'; import FirmwareUpdater from './FirmwareUpdater.svelte'; import { uiSettings } from '$lib/uiSettings'; - import { Placeholder } from '$lib/components'; export let settings = {}; @@ -107,8 +105,8 @@ export let xxl = xl; - - + + {$_('section.control.title', { default: 'Control' })} @@ -216,22 +214,16 @@ {/if}
  • - {$_('section.control.buildTime')}: + {$_('section.control.buildTime')}: {new Date( + $settings.lastBuildTime * 1000 + ).toLocaleString()}
  • -
  • IP:
  • -
  • HW revision:
  • -
  • {$_('section.control.fwCommit')}:
  • -
  • WebUI commit:
  • -
  • {$_('section.control.hostname')}:
  • +
  • IP: {$settings.ip}
  • +
  • HW revision: {$settings.hwRev}
  • +
  • {$_('section.control.fwCommit')}: {$settings.gitRev}
  • +
  • WebUI commit: {$settings.fsRev}
  • +
  • {$_('section.control.hostname')}: {$settings.hostname}
  • - {#if $settings.gitRev != $settings.fsRev} - - ⚠️ {$_('warning')}: {$_('section.control.fwCommitMismatch')} - - {/if} - -
    - - handleFileChange(e, (file) => (firmwareWebUiFile = file))} - accept=".bin" - /> -
    -
    - -
    - - {#if firmwareUploadProgress > 0} - {$_('section.firmwareUpdater.uploading')}... {firmwareUploadProgress}% +
    + + handleFileChange(e, (file) => (firmwareUploadFile = file))} + name="update" + class="form-control" + accept=".bin" + /> +
    +
    + - {/if} - {#if firmwareUploadSuccess} - {$_('section.firmwareUpdater.fileUploadSuccess', { values: { countdown: $countdown } })} - - {/if} - - {#if firmwareUploadError} - {$_('section.firmwareUpdater.fileUploadFailed')} +
    + + handleFileChange(e, (file) => (firmwareWebUiFile = file))} + accept=".bin" + /> +
    +
    + - {/if} - ⚠️ {$_('warning')}: {$_('section.firmwareUpdater.firmwareUpdateText')} + +{#if firmwareUploadProgress > 0} + {$_('section.firmwareUpdater.uploading')}... {firmwareUploadProgress}% {/if} +{#if firmwareUploadSuccess} + {$_('section.firmwareUpdater.fileUploadSuccess', { values: { countdown: $countdown } })} + +{/if} + +{#if firmwareUploadError} + {$_('section.firmwareUpdater.fileUploadFailed')} +{/if} +⚠️ {$_('warning')}: {$_('section.firmwareUpdater.firmwareUpdateText')} diff --git a/src/routes/Rendered.svelte b/src/routes/Rendered.svelte index e4a1783..4c4167b 100644 --- a/src/routes/Rendered.svelte +++ b/src/routes/Rendered.svelte @@ -9,7 +9,7 @@ }; export let className = 'btclock-wrapper'; - export let verticalDesc = false; + // Define the currency symbols as constants const CURRENCY_USD = '$'; const CURRENCY_EUR = '['; @@ -44,22 +44,21 @@
    -
    +
    {#each status.data as char} {#if isSplitText(char)}
    -
    - {#if char.split('/').length} - {char.split('/')[0]} - {char.split('/')[1]} - {/if} -
    + {#if char.split('/').length} + {char.split('/')[0]} +
    + {char.split('/')[1]} + {/if}
    {:else if char.startsWith('mdi')} -
    +
    {#if char.endsWith('rocket')} {/if} @@ -69,12 +68,6 @@ {#if char.endsWith('bolt')} {/if} - {#if char.endsWith('bitaxe')} - - {/if} - {#if char.endsWith('miningpool')} - - {/if}
    {:else if char === 'STS'}
    S
    @@ -89,26 +82,8 @@
    - diff --git a/src/routes/Settings.svelte b/src/routes/Settings.svelte index 16de960..141c512 100644 --- a/src/routes/Settings.svelte +++ b/src/routes/Settings.svelte @@ -1,6 +1,9 @@ - - + +
    - - | - - +
    - {$_('section.settings.title')} + {$_('section.settings.title', { default: 'Settings' })}
    - {#if $settings.isLoaded === false} -
    - Loading... - -
    - {:else} -
    - - - - - + + + + + + + + + + - - - - - - - - {/if} + + + + + + + + + + + + + + + + + {#if !$settings.actCurrencies} + + + + {/if} + + +
    {$_('section.settings.screens')}
    + {#if $settings.screens} + {#each $settings.screens as s} + + + + {/each} + {/if} +
    + {#if $settings.actCurrencies && $settings.useNostr !== true} + +
    {$_('section.settings.currencies')}
    + {$_('restartRequired')} + {#if $settings.availableCurrencies} + {#each $settings.availableCurrencies as c} + +
    + + +
    + + {/each} + {/if} +
    + {/if} +
    +
    + + + + + + + + + + + + + + + + + {$_('time.minutes')} + + + + + + + + + {$_('time.minutes')} + + + + + + + + + {$_('time.seconds')} + + {$_('section.settings.shortAmountsWarning')} + + + + + + + + + {#if $settings.hasFrontlight && !$settings.flDisable} + + + + + + + + + + + + + {/if} + {#if !$settings.flDisable && $settings.hasLightLevel} + + + + + {$_('section.settings.luxLightToggleText')} + + + {/if} + + + + + + + + + + + {#if $settings.hasFrontlight} + + + + {/if} + {#if $settings.hasFrontlight && !$settings.flDisable} + + + + + + + + + + {/if} + + + + + + + + + + + + HTTPS + + + {$_('section.settings.mempoolInstanceHelpText')} + + + + + + + {#if $settings.nostrRelay} + + + + {$_('section.settings.useNostrTooltip')} + + + {/if} + {#if 'stagingSource' in $settings} + + + + {/if} + + + + + {#if $settings.bitaxeEnabled} + + + + + + + + + + {/if} + {#if 'nostrZapNotify' in $settings && $settings['nostrZapNotify']} + + + + checkValidNostrPubkey('nostrZapPubkey')} + invalid={!isValidHexPubKey($settings.nostrZapPubkey)} + bsSize={$uiSettings.inputSize} + required + minlength="64" + > + {#if !isValidHexPubKey($settings.nostrZapPubkey)} + {$_('section.settings.invalidNostrPubkey')} + {/if} + + + {/if} + {#if $settings.useNostr} + + + + checkValidNostrPubkey('nostrPubKey')} + invalid={!isValidHexPubKey($settings.nostrPubKey)} + bsSize={$uiSettings.inputSize} + > + {#if !isValidHexPubKey($settings.nostrPubKey)} + {$_('section.settings.invalidNostrPubkey')} + {/if} + + + {/if} + {#if 'nostrZapNotify' in $settings || $settings.useNostr} + + + + + + + + + + {/if} + + {#if 'bitaxeEnabled' in $settings} + + + + {/if} + {#if 'nostrZapNotify' in $settings} + + + + + + + {#if $settings.hasFrontlight && !$settings.flDisable} + + + + {/if} + {/if} + + + + + + + + + + {$_('time.minutes')} + + + {$_('section.settings.tzOffsetHelpText')} + + + {#if $settings.httpAuthEnabled} + + + + + + + + + + + + + + {$_('section.settings.httpAuthText')} + + + {/if} + + + + + + + + + + + {#each wifiTxPowerMap as [key, value]} + + {/each} + + {$_('section.settings.wifiTxPowerText')} + + + + + + + + {$_('time.seconds')} + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    diff --git a/src/routes/Status.svelte b/src/routes/Status.svelte index a659af0..1e76da6 100644 --- a/src/routes/Status.svelte +++ b/src/routes/Status.svelte @@ -17,7 +17,6 @@ Row } from '@sveltestrap/sveltestrap'; import Rendered from './Rendered.svelte'; - import { DataSourceType } from '$lib/types/dataSource'; export let settings; export let status: writable; @@ -75,7 +74,7 @@ }); settings.subscribe((value: object) => { - lightMode = !value.invertedColor; + lightMode = value.bgColor > value.fgColor; if (value.screens) buttonChunks = chunkArray(value.screens, 5); }); @@ -97,16 +96,6 @@ } }; - const toggleDoNotDisturb = (currentStatus: boolean) => (e: Event) => { - e.preventDefault(); - console.log(currentStatus); - if (!currentStatus) { - fetch(`${PUBLIC_BASE_URL}/api/dnd/enable`); - } else { - fetch(`${PUBLIC_BASE_URL}/api/dnd/disable`); - } - }; - export let xs = 12; export let sm = xs; export let md = sm; @@ -115,35 +104,17 @@ export let xxl = xl; - - + + {$_('section.status.title', { default: 'Status' })} - {#if $settings.isLoaded === false} -
    - Loading... - -
    - {:else} - {#if $settings.screens} -
    - {#each buttonChunks as chunk} - - {#each chunk as s} - - {/each} - - {/each} -
    -
    - - {#each $settings.screens as s} + {#if $settings.screens} +
    + {#each buttonChunks as chunk} + + {#each chunk as s}
    - {#if $settings.actCurrencies && ($settings.dataSource == DataSourceType.BTCLOCK_SOURCE || $settings.dataSource == DataSourceType.CUSTOM_SOURCE)} -
    - - {#each $settings.actCurrencies as c} - - {/each} - -
    - {/if} -
    - {#if $status.data} -
    - {#if $status.isUpdating === false && ($status.isFake ?? false) === false} -
    -
    - -

    Lost connection

    -

    Trying to reconnect...

    -
    -
    - {/if} - -
    - {$_('section.status.screenCycle')}: - {#if $status.timerRunning}⏵ {$_('timer.running')}{:else}⏸ {$_( - 'timer.stopped' - )}{/if}
    - - {$_('section.status.doNotDisturb')}: - - {#if $status.dnd?.active}⏵ {$_('on')}{:else}⏸ {$_('off')}{/if} - - {#if $status.dnd?.timeBasedEnabled} - {$_('section.status.timeBasedDnd')} ( {$settings.dnd - .startHour}:{$settings.dnd.startMinute.toString().padStart(2, '0')} - {$settings - .dnd.endHour}:{$settings.dnd.endMinute.toString().padStart(2, '0')} ) - {/if} - - {/if} - {/if} -
    - {#if !$settings.disableLeds} - - {#if $status.leds} - {#each $status.leds as led} - - - + {/each} +
    +
    + + {#each $settings.screens as s} + + {/each} + +
    + {#if $settings.actCurrencies && $settings.ownDataSource} +
    + + {#each $settings.actCurrencies as c} + {/each} - {/if} - -
    - {/if} - {memoryFreePercent}% -
    -
    {$_('section.status.memoryFree')}
    -
    - {Math.round($status.espFreeHeap / 1024)} / {Math.round($status.espHeapSize / 1024)} KiB +
    -
    -
    - {#if $settings.hasLightLevel} - {$_('section.status.lightSensor')}: {Number(Math.round($status.lightLevel))} lux -
    {/if} - {rssiPercent}% - {$_('rssiBar.tooltip')} +
    + {#if $status.data} +
    + +
    + {$_('section.status.screenCycle')}: + {#if $status.timerRunning}⏵ {$_('timer.running')}{:else}⏸ {$_( + 'timer.stopped' + )}{/if} + {/if} + {/if} +
    + {#if !$settings.disableLeds} + + {#if $status.leds} + {#each $status.leds as led} + + + + {/each} + {/if} + +
    + {/if} + {memoryFreePercent}% +
    +
    {$_('section.status.memoryFree')}
    +
    + {Math.round($status.espFreeHeap / 1024)} / {Math.round($status.espHeapSize / 1024)} KiB +
    +
    +
    + {#if $settings.hasLightLevel} + {$_('section.status.lightSensor')}: {Number(Math.round($status.lightLevel))} lux +
    + {/if} + {rssiPercent}% + {$_('rssiBar.tooltip')} -
    -
    {$_('section.status.wifiSignalStrength')}
    -
    - {$status.rssi} dBm -
    +
    +
    {$_('section.status.wifiSignalStrength')}
    +
    + {$status.rssi} dBm
    -
    - {$_('section.status.uptime')}: {toUptimestring($status.espUptime)} -
    -

    - {#if $settings.dataSource == DataSourceType.NOSTR_SOURCE || $settings.nostrZapNotify} - {$_('section.status.nostrConnection')}: +

    +
    + {$_('section.status.uptime')}: {toUptimestring($status.espUptime)} +
    +

    + {#if $settings.useNostr || $settings.nostrZapNotify} + {$_('section.status.nostrConnection')}: + + {#if $status.connectionStatus && $status.connectionStatus.nostr} + ✅ + {:else} + ❌ + {/if} + + {/if} + {#if !$settings.useNostr} + {#if !$settings.ownDataSource} + {$_('section.status.wsPriceConnection')}: - {#if $status.connectionStatus && $status.connectionStatus.nostr} + {#if $status.connectionStatus && $status.connectionStatus.price} + ✅ + {:else} + ❌ + {/if} + + - + {$_('section.status.wsMempoolConnection', { + values: { instance: $settings.mempoolInstance } + })}: + + {#if $status.connectionStatus && $status.connectionStatus.blocks} + ✅ + {:else} + ❌ + {/if} +
    + {:else} + {$_('section.status.wsDataConnection')}: + + {#if $status.connectionStatus && $status.connectionStatus.V2} ✅ {:else} ❌ {/if} {/if} - {#if $settings.dataSource != DataSourceType.NOSTR_SOURCE} - {#if $settings.dataSource == DataSourceType.THIRD_PARTY_SOURCE} - {$_('section.status.wsPriceConnection')}: - - {#if $status.connectionStatus && $status.connectionStatus.price} - ✅ - {:else} - ❌ - {/if} - - - - {$_('section.status.wsMempoolConnection', { - values: { instance: $settings.mempoolInstance } - })}: - - {#if $status.connectionStatus && $status.connectionStatus.blocks} - ✅ - {:else} - ❌ - {/if} -
    - {:else} - {$_('section.status.wsDataConnection')}: - - {#if $status.connectionStatus && $status.connectionStatus.V2} - ✅ - {:else} - ❌ - {/if} - - {/if} - {/if} - {#if $settings.fetchEurPrice} - {$_('section.status.fetchEuroNote')} - {/if} -

    - {/if} + {/if} + {#if $settings.fetchEurPrice} + {$_('section.status.fetchEuroNote')} + {/if} +

    - - diff --git a/static/bitaxe.webp b/static/bitaxe.webp deleted file mode 100644 index 3c907c1..0000000 Binary files a/static/bitaxe.webp and /dev/null differ diff --git a/static/fonts/Satoshi_Symbol.woff b/static/fonts/Satoshi_Symbol.woff new file mode 100644 index 0000000..0b184da Binary files /dev/null and b/static/fonts/Satoshi_Symbol.woff differ diff --git a/static/zones.json b/static/zones.json deleted file mode 100644 index 1b3f663..0000000 --- a/static/zones.json +++ /dev/null @@ -1,463 +0,0 @@ -{ - "Africa/Abidjan": "GMT0", - "Africa/Accra": "GMT0", - "Africa/Addis_Ababa": "EAT-3", - "Africa/Algiers": "CET-1", - "Africa/Asmara": "EAT-3", - "Africa/Bamako": "GMT0", - "Africa/Bangui": "WAT-1", - "Africa/Banjul": "GMT0", - "Africa/Bissau": "GMT0", - "Africa/Blantyre": "CAT-2", - "Africa/Brazzaville": "WAT-1", - "Africa/Bujumbura": "CAT-2", - "Africa/Cairo": "EET-2EEST,M4.5.5/0,M10.5.4/24", - "Africa/Casablanca": "<+01>-1", - "Africa/Ceuta": "CET-1CEST,M3.5.0,M10.5.0/3", - "Africa/Conakry": "GMT0", - "Africa/Dakar": "GMT0", - "Africa/Dar_es_Salaam": "EAT-3", - "Africa/Djibouti": "EAT-3", - "Africa/Douala": "WAT-1", - "Africa/El_Aaiun": "<+01>-1", - "Africa/Freetown": "GMT0", - "Africa/Gaborone": "CAT-2", - "Africa/Harare": "CAT-2", - "Africa/Johannesburg": "SAST-2", - "Africa/Juba": "CAT-2", - "Africa/Kampala": "EAT-3", - "Africa/Khartoum": "CAT-2", - "Africa/Kigali": "CAT-2", - "Africa/Kinshasa": "WAT-1", - "Africa/Lagos": "WAT-1", - "Africa/Libreville": "WAT-1", - "Africa/Lome": "GMT0", - "Africa/Luanda": "WAT-1", - "Africa/Lubumbashi": "CAT-2", - "Africa/Lusaka": "CAT-2", - "Africa/Malabo": "WAT-1", - "Africa/Maputo": "CAT-2", - "Africa/Maseru": "SAST-2", - "Africa/Mbabane": "SAST-2", - "Africa/Mogadishu": "EAT-3", - "Africa/Monrovia": "GMT0", - "Africa/Nairobi": "EAT-3", - "Africa/Ndjamena": "WAT-1", - "Africa/Niamey": "WAT-1", - "Africa/Nouakchott": "GMT0", - "Africa/Ouagadougou": "GMT0", - "Africa/Porto-Novo": "WAT-1", - "Africa/Sao_Tome": "GMT0", - "Africa/Tripoli": "EET-2", - "Africa/Tunis": "CET-1", - "Africa/Windhoek": "CAT-2", - "America/Adak": "HST10HDT,M3.2.0,M11.1.0", - "America/Anchorage": "AKST9AKDT,M3.2.0,M11.1.0", - "America/Anguilla": "AST4", - "America/Antigua": "AST4", - "America/Araguaina": "<-03>3", - "America/Argentina/Buenos_Aires": "<-03>3", - "America/Argentina/Catamarca": "<-03>3", - "America/Argentina/Cordoba": "<-03>3", - "America/Argentina/Jujuy": "<-03>3", - "America/Argentina/La_Rioja": "<-03>3", - "America/Argentina/Mendoza": "<-03>3", - "America/Argentina/Rio_Gallegos": "<-03>3", - "America/Argentina/Salta": "<-03>3", - "America/Argentina/San_Juan": "<-03>3", - "America/Argentina/San_Luis": "<-03>3", - "America/Argentina/Tucuman": "<-03>3", - "America/Argentina/Ushuaia": "<-03>3", - "America/Aruba": "AST4", - "America/Asuncion": "<-04>4<-03>,M10.1.0/0,M3.4.0/0", - "America/Atikokan": "EST5", - "America/Bahia": "<-03>3", - "America/Bahia_Banderas": "CST6", - "America/Barbados": "AST4", - "America/Belem": "<-03>3", - "America/Belize": "CST6", - "America/Blanc-Sablon": "AST4", - "America/Boa_Vista": "<-04>4", - "America/Bogota": "<-05>5", - "America/Boise": "MST7MDT,M3.2.0,M11.1.0", - "America/Cambridge_Bay": "MST7MDT,M3.2.0,M11.1.0", - "America/Campo_Grande": "<-04>4", - "America/Cancun": "EST5", - "America/Caracas": "<-04>4", - "America/Cayenne": "<-03>3", - "America/Cayman": "EST5", - "America/Chicago": "CST6CDT,M3.2.0,M11.1.0", - "America/Chihuahua": "CST6", - "America/Costa_Rica": "CST6", - "America/Creston": "MST7", - "America/Cuiaba": "<-04>4", - "America/Curacao": "AST4", - "America/Danmarkshavn": "GMT0", - "America/Dawson": "MST7", - "America/Dawson_Creek": "MST7", - "America/Denver": "MST7MDT,M3.2.0,M11.1.0", - "America/Detroit": "EST5EDT,M3.2.0,M11.1.0", - "America/Dominica": "AST4", - "America/Edmonton": "MST7MDT,M3.2.0,M11.1.0", - "America/Eirunepe": "<-05>5", - "America/El_Salvador": "CST6", - "America/Fort_Nelson": "MST7", - "America/Fortaleza": "<-03>3", - "America/Glace_Bay": "AST4ADT,M3.2.0,M11.1.0", - "America/Godthab": "<-02>2<-01>,M3.5.0/-1,M10.5.0/0", - "America/Goose_Bay": "AST4ADT,M3.2.0,M11.1.0", - "America/Grand_Turk": "EST5EDT,M3.2.0,M11.1.0", - "America/Grenada": "AST4", - "America/Guadeloupe": "AST4", - "America/Guatemala": "CST6", - "America/Guayaquil": "<-05>5", - "America/Guyana": "<-04>4", - "America/Halifax": "AST4ADT,M3.2.0,M11.1.0", - "America/Havana": "CST5CDT,M3.2.0/0,M11.1.0/1", - "America/Hermosillo": "MST7", - "America/Indiana/Indianapolis": "EST5EDT,M3.2.0,M11.1.0", - "America/Indiana/Knox": "CST6CDT,M3.2.0,M11.1.0", - "America/Indiana/Marengo": "EST5EDT,M3.2.0,M11.1.0", - "America/Indiana/Petersburg": "EST5EDT,M3.2.0,M11.1.0", - "America/Indiana/Tell_City": "CST6CDT,M3.2.0,M11.1.0", - "America/Indiana/Vevay": "EST5EDT,M3.2.0,M11.1.0", - "America/Indiana/Vincennes": "EST5EDT,M3.2.0,M11.1.0", - "America/Indiana/Winamac": "EST5EDT,M3.2.0,M11.1.0", - "America/Inuvik": "MST7MDT,M3.2.0,M11.1.0", - "America/Iqaluit": "EST5EDT,M3.2.0,M11.1.0", - "America/Jamaica": "EST5", - "America/Juneau": "AKST9AKDT,M3.2.0,M11.1.0", - "America/Kentucky/Louisville": "EST5EDT,M3.2.0,M11.1.0", - "America/Kentucky/Monticello": "EST5EDT,M3.2.0,M11.1.0", - "America/Kralendijk": "AST4", - "America/La_Paz": "<-04>4", - "America/Lima": "<-05>5", - "America/Los_Angeles": "PST8PDT,M3.2.0,M11.1.0", - "America/Lower_Princes": "AST4", - "America/Maceio": "<-03>3", - "America/Managua": "CST6", - "America/Manaus": "<-04>4", - "America/Marigot": "AST4", - "America/Martinique": "AST4", - "America/Matamoros": "CST6CDT,M3.2.0,M11.1.0", - "America/Mazatlan": "MST7", - "America/Menominee": "CST6CDT,M3.2.0,M11.1.0", - "America/Merida": "CST6", - "America/Metlakatla": "AKST9AKDT,M3.2.0,M11.1.0", - "America/Mexico_City": "CST6", - "America/Miquelon": "<-03>3<-02>,M3.2.0,M11.1.0", - "America/Moncton": "AST4ADT,M3.2.0,M11.1.0", - "America/Monterrey": "CST6", - "America/Montevideo": "<-03>3", - "America/Montreal": "EST5EDT,M3.2.0,M11.1.0", - "America/Montserrat": "AST4", - "America/Nassau": "EST5EDT,M3.2.0,M11.1.0", - "America/New_York": "EST5EDT,M3.2.0,M11.1.0", - "America/Nipigon": "EST5EDT,M3.2.0,M11.1.0", - "America/Nome": "AKST9AKDT,M3.2.0,M11.1.0", - "America/Noronha": "<-02>2", - "America/North_Dakota/Beulah": "CST6CDT,M3.2.0,M11.1.0", - "America/North_Dakota/Center": "CST6CDT,M3.2.0,M11.1.0", - "America/North_Dakota/New_Salem": "CST6CDT,M3.2.0,M11.1.0", - "America/Nuuk": "<-02>2<-01>,M3.5.0/-1,M10.5.0/0", - "America/Ojinaga": "CST6CDT,M3.2.0,M11.1.0", - "America/Panama": "EST5", - "America/Pangnirtung": "EST5EDT,M3.2.0,M11.1.0", - "America/Paramaribo": "<-03>3", - "America/Phoenix": "MST7", - "America/Port-au-Prince": "EST5EDT,M3.2.0,M11.1.0", - "America/Port_of_Spain": "AST4", - "America/Porto_Velho": "<-04>4", - "America/Puerto_Rico": "AST4", - "America/Punta_Arenas": "<-03>3", - "America/Rainy_River": "CST6CDT,M3.2.0,M11.1.0", - "America/Rankin_Inlet": "CST6CDT,M3.2.0,M11.1.0", - "America/Recife": "<-03>3", - "America/Regina": "CST6", - "America/Resolute": "CST6CDT,M3.2.0,M11.1.0", - "America/Rio_Branco": "<-05>5", - "America/Santarem": "<-03>3", - "America/Santiago": "<-04>4<-03>,M9.1.6/24,M4.1.6/24", - "America/Santo_Domingo": "AST4", - "America/Sao_Paulo": "<-03>3", - "America/Scoresbysund": "<-02>2<-01>,M3.5.0/-1,M10.5.0/0", - "America/Sitka": "AKST9AKDT,M3.2.0,M11.1.0", - "America/St_Barthelemy": "AST4", - "America/St_Johns": "NST3:30NDT,M3.2.0,M11.1.0", - "America/St_Kitts": "AST4", - "America/St_Lucia": "AST4", - "America/St_Thomas": "AST4", - "America/St_Vincent": "AST4", - "America/Swift_Current": "CST6", - "America/Tegucigalpa": "CST6", - "America/Thule": "AST4ADT,M3.2.0,M11.1.0", - "America/Thunder_Bay": "EST5EDT,M3.2.0,M11.1.0", - "America/Tijuana": "PST8PDT,M3.2.0,M11.1.0", - "America/Toronto": "EST5EDT,M3.2.0,M11.1.0", - "America/Tortola": "AST4", - "America/Vancouver": "PST8PDT,M3.2.0,M11.1.0", - "America/Whitehorse": "MST7", - "America/Winnipeg": "CST6CDT,M3.2.0,M11.1.0", - "America/Yakutat": "AKST9AKDT,M3.2.0,M11.1.0", - "America/Yellowknife": "MST7MDT,M3.2.0,M11.1.0", - "Antarctica/Casey": "<+08>-8", - "Antarctica/Davis": "<+07>-7", - "Antarctica/DumontDUrville": "<+10>-10", - "Antarctica/Macquarie": "AEST-10AEDT,M10.1.0,M4.1.0/3", - "Antarctica/Mawson": "<+05>-5", - "Antarctica/McMurdo": "NZST-12NZDT,M9.5.0,M4.1.0/3", - "Antarctica/Palmer": "<-03>3", - "Antarctica/Rothera": "<-03>3", - "Antarctica/Syowa": "<+03>-3", - "Antarctica/Troll": "<+00>0<+02>-2,M3.5.0/1,M10.5.0/3", - "Antarctica/Vostok": "<+05>-5", - "Arctic/Longyearbyen": "CET-1CEST,M3.5.0,M10.5.0/3", - "Asia/Aden": "<+03>-3", - "Asia/Almaty": "<+05>-5", - "Asia/Amman": "<+03>-3", - "Asia/Anadyr": "<+12>-12", - "Asia/Aqtau": "<+05>-5", - "Asia/Aqtobe": "<+05>-5", - "Asia/Ashgabat": "<+05>-5", - "Asia/Atyrau": "<+05>-5", - "Asia/Baghdad": "<+03>-3", - "Asia/Bahrain": "<+03>-3", - "Asia/Baku": "<+04>-4", - "Asia/Bangkok": "<+07>-7", - "Asia/Barnaul": "<+07>-7", - "Asia/Beirut": "EET-2EEST,M3.5.0/0,M10.5.0/0", - "Asia/Bishkek": "<+06>-6", - "Asia/Brunei": "<+08>-8", - "Asia/Chita": "<+09>-9", - "Asia/Choibalsan": "<+08>-8", - "Asia/Colombo": "<+0530>-5:30", - "Asia/Damascus": "<+03>-3", - "Asia/Dhaka": "<+06>-6", - "Asia/Dili": "<+09>-9", - "Asia/Dubai": "<+04>-4", - "Asia/Dushanbe": "<+05>-5", - "Asia/Famagusta": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Asia/Gaza": "EET-2EEST,M3.4.4/50,M10.4.4/50", - "Asia/Hebron": "EET-2EEST,M3.4.4/50,M10.4.4/50", - "Asia/Ho_Chi_Minh": "<+07>-7", - "Asia/Hong_Kong": "HKT-8", - "Asia/Hovd": "<+07>-7", - "Asia/Irkutsk": "<+08>-8", - "Asia/Jakarta": "WIB-7", - "Asia/Jayapura": "WIT-9", - "Asia/Jerusalem": "IST-2IDT,M3.4.4/26,M10.5.0", - "Asia/Kabul": "<+0430>-4:30", - "Asia/Kamchatka": "<+12>-12", - "Asia/Karachi": "PKT-5", - "Asia/Kathmandu": "<+0545>-5:45", - "Asia/Khandyga": "<+09>-9", - "Asia/Kolkata": "IST-5:30", - "Asia/Krasnoyarsk": "<+07>-7", - "Asia/Kuala_Lumpur": "<+08>-8", - "Asia/Kuching": "<+08>-8", - "Asia/Kuwait": "<+03>-3", - "Asia/Macau": "CST-8", - "Asia/Magadan": "<+11>-11", - "Asia/Makassar": "WITA-8", - "Asia/Manila": "PST-8", - "Asia/Muscat": "<+04>-4", - "Asia/Nicosia": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Asia/Novokuznetsk": "<+07>-7", - "Asia/Novosibirsk": "<+07>-7", - "Asia/Omsk": "<+06>-6", - "Asia/Oral": "<+05>-5", - "Asia/Phnom_Penh": "<+07>-7", - "Asia/Pontianak": "WIB-7", - "Asia/Pyongyang": "KST-9", - "Asia/Qatar": "<+03>-3", - "Asia/Qyzylorda": "<+05>-5", - "Asia/Riyadh": "<+03>-3", - "Asia/Sakhalin": "<+11>-11", - "Asia/Samarkand": "<+05>-5", - "Asia/Seoul": "KST-9", - "Asia/Shanghai": "CST-8", - "Asia/Singapore": "<+08>-8", - "Asia/Srednekolymsk": "<+11>-11", - "Asia/Taipei": "CST-8", - "Asia/Tashkent": "<+05>-5", - "Asia/Tbilisi": "<+04>-4", - "Asia/Tehran": "<+0330>-3:30", - "Asia/Thimphu": "<+06>-6", - "Asia/Tokyo": "JST-9", - "Asia/Tomsk": "<+07>-7", - "Asia/Ulaanbaatar": "<+08>-8", - "Asia/Urumqi": "<+06>-6", - "Asia/Ust-Nera": "<+10>-10", - "Asia/Vientiane": "<+07>-7", - "Asia/Vladivostok": "<+10>-10", - "Asia/Yakutsk": "<+09>-9", - "Asia/Yangon": "<+0630>-6:30", - "Asia/Yekaterinburg": "<+05>-5", - "Asia/Yerevan": "<+04>-4", - "Atlantic/Azores": "<-01>1<+00>,M3.5.0/0,M10.5.0/1", - "Atlantic/Bermuda": "AST4ADT,M3.2.0,M11.1.0", - "Atlantic/Canary": "WET0WEST,M3.5.0/1,M10.5.0", - "Atlantic/Cape_Verde": "<-01>1", - "Atlantic/Faroe": "WET0WEST,M3.5.0/1,M10.5.0", - "Atlantic/Madeira": "WET0WEST,M3.5.0/1,M10.5.0", - "Atlantic/Reykjavik": "GMT0", - "Atlantic/South_Georgia": "<-02>2", - "Atlantic/St_Helena": "GMT0", - "Atlantic/Stanley": "<-03>3", - "Australia/Adelaide": "ACST-9:30ACDT,M10.1.0,M4.1.0/3", - "Australia/Brisbane": "AEST-10", - "Australia/Broken_Hill": "ACST-9:30ACDT,M10.1.0,M4.1.0/3", - "Australia/Currie": "AEST-10AEDT,M10.1.0,M4.1.0/3", - "Australia/Darwin": "ACST-9:30", - "Australia/Eucla": "<+0845>-8:45", - "Australia/Hobart": "AEST-10AEDT,M10.1.0,M4.1.0/3", - "Australia/Lindeman": "AEST-10", - "Australia/Lord_Howe": "<+1030>-10:30<+11>-11,M10.1.0,M4.1.0", - "Australia/Melbourne": "AEST-10AEDT,M10.1.0,M4.1.0/3", - "Australia/Perth": "AWST-8", - "Australia/Sydney": "AEST-10AEDT,M10.1.0,M4.1.0/3", - "Etc/GMT": "GMT0", - "Etc/GMT+0": "GMT0", - "Etc/GMT+1": "<-01>1", - "Etc/GMT+10": "<-10>10", - "Etc/GMT+11": "<-11>11", - "Etc/GMT+12": "<-12>12", - "Etc/GMT+2": "<-02>2", - "Etc/GMT+3": "<-03>3", - "Etc/GMT+4": "<-04>4", - "Etc/GMT+5": "<-05>5", - "Etc/GMT+6": "<-06>6", - "Etc/GMT+7": "<-07>7", - "Etc/GMT+8": "<-08>8", - "Etc/GMT+9": "<-09>9", - "Etc/GMT-0": "GMT0", - "Etc/GMT-1": "<+01>-1", - "Etc/GMT-10": "<+10>-10", - "Etc/GMT-11": "<+11>-11", - "Etc/GMT-12": "<+12>-12", - "Etc/GMT-13": "<+13>-13", - "Etc/GMT-14": "<+14>-14", - "Etc/GMT-2": "<+02>-2", - "Etc/GMT-3": "<+03>-3", - "Etc/GMT-4": "<+04>-4", - "Etc/GMT-5": "<+05>-5", - "Etc/GMT-6": "<+06>-6", - "Etc/GMT-7": "<+07>-7", - "Etc/GMT-8": "<+08>-8", - "Etc/GMT-9": "<+09>-9", - "Etc/GMT0": "GMT0", - "Etc/Greenwich": "GMT0", - "Etc/UCT": "UTC0", - "Etc/UTC": "UTC0", - "Etc/Universal": "UTC0", - "Etc/Zulu": "UTC0", - "Europe/Amsterdam": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Andorra": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Astrakhan": "<+04>-4", - "Europe/Athens": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Belgrade": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Berlin": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Bratislava": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Brussels": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Bucharest": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Budapest": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Busingen": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Chisinau": "EET-2EEST,M3.5.0,M10.5.0/3", - "Europe/Copenhagen": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Dublin": "IST-1GMT0,M10.5.0,M3.5.0/1", - "Europe/Gibraltar": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Guernsey": "GMT0BST,M3.5.0/1,M10.5.0", - "Europe/Helsinki": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Isle_of_Man": "GMT0BST,M3.5.0/1,M10.5.0", - "Europe/Istanbul": "<+03>-3", - "Europe/Jersey": "GMT0BST,M3.5.0/1,M10.5.0", - "Europe/Kaliningrad": "EET-2", - "Europe/Kiev": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Kirov": "MSK-3", - "Europe/Lisbon": "WET0WEST,M3.5.0/1,M10.5.0", - "Europe/Ljubljana": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/London": "GMT0BST,M3.5.0/1,M10.5.0", - "Europe/Luxembourg": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Madrid": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Malta": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Mariehamn": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Minsk": "<+03>-3", - "Europe/Monaco": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Moscow": "MSK-3", - "Europe/Oslo": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Paris": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Podgorica": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Prague": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Riga": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Rome": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Samara": "<+04>-4", - "Europe/San_Marino": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Sarajevo": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Saratov": "<+04>-4", - "Europe/Simferopol": "MSK-3", - "Europe/Skopje": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Sofia": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Stockholm": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Tallinn": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Tirane": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Ulyanovsk": "<+04>-4", - "Europe/Uzhgorod": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Vaduz": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Vatican": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Vienna": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Vilnius": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Volgograd": "MSK-3", - "Europe/Warsaw": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Zagreb": "CET-1CEST,M3.5.0,M10.5.0/3", - "Europe/Zaporozhye": "EET-2EEST,M3.5.0/3,M10.5.0/4", - "Europe/Zurich": "CET-1CEST,M3.5.0,M10.5.0/3", - "Indian/Antananarivo": "EAT-3", - "Indian/Chagos": "<+06>-6", - "Indian/Christmas": "<+07>-7", - "Indian/Cocos": "<+0630>-6:30", - "Indian/Comoro": "EAT-3", - "Indian/Kerguelen": "<+05>-5", - "Indian/Mahe": "<+04>-4", - "Indian/Maldives": "<+05>-5", - "Indian/Mauritius": "<+04>-4", - "Indian/Mayotte": "EAT-3", - "Indian/Reunion": "<+04>-4", - "Pacific/Apia": "<+13>-13", - "Pacific/Auckland": "NZST-12NZDT,M9.5.0,M4.1.0/3", - "Pacific/Bougainville": "<+11>-11", - "Pacific/Chatham": "<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45", - "Pacific/Chuuk": "<+10>-10", - "Pacific/Easter": "<-06>6<-05>,M9.1.6/22,M4.1.6/22", - "Pacific/Efate": "<+11>-11", - "Pacific/Enderbury": "<+13>-13", - "Pacific/Fakaofo": "<+13>-13", - "Pacific/Fiji": "<+12>-12", - "Pacific/Funafuti": "<+12>-12", - "Pacific/Galapagos": "<-06>6", - "Pacific/Gambier": "<-09>9", - "Pacific/Guadalcanal": "<+11>-11", - "Pacific/Guam": "ChST-10", - "Pacific/Honolulu": "HST10", - "Pacific/Kiritimati": "<+14>-14", - "Pacific/Kosrae": "<+11>-11", - "Pacific/Kwajalein": "<+12>-12", - "Pacific/Majuro": "<+12>-12", - "Pacific/Marquesas": "<-0930>9:30", - "Pacific/Midway": "SST11", - "Pacific/Nauru": "<+12>-12", - "Pacific/Niue": "<-11>11", - "Pacific/Norfolk": "<+11>-11<+12>,M10.1.0,M4.1.0/3", - "Pacific/Noumea": "<+11>-11", - "Pacific/Pago_Pago": "SST11", - "Pacific/Palau": "<+09>-9", - "Pacific/Pitcairn": "<-08>8", - "Pacific/Pohnpei": "<+11>-11", - "Pacific/Port_Moresby": "<+10>-10", - "Pacific/Rarotonga": "<-10>10", - "Pacific/Saipan": "ChST-10", - "Pacific/Tahiti": "<-10>10", - "Pacific/Tarawa": "<+12>-12", - "Pacific/Tongatapu": "<+13>-13", - "Pacific/Wake": "<+12>-12", - "Pacific/Wallis": "<+12>-12" -} diff --git a/tests/doc-screenshots/viewport-screenshots.spec.ts b/tests/doc-screenshots/viewport-screenshots.spec.ts deleted file mode 100644 index f9e8e25..0000000 --- a/tests/doc-screenshots/viewport-screenshots.spec.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { test, expect } from '@playwright/test'; - -import { initMock, settingsJson, statusJson } from '../shared'; -import sharp from 'sharp'; - -test.beforeEach(initMock); - -// Define the translations for the headings -const headings = { - en: { - control: 'Control', - status: 'Status', - settings: 'Settings', - language: 'English' - }, - de: { - control: 'Steuerung', - status: 'Status', - settings: 'Einstellungen', - language: 'Deutsch' - }, - nl: { - control: 'Besturing', - status: 'Status', - settings: 'Instellingen', - language: 'Nederlands' - }, - es: { - control: 'Control', - status: 'Estado', - settings: 'Ajustes', - language: 'Español' - } -}; - -test('capture screenshots across devices', async ({ page }, testInfo) => { - // Get the locale from the browser or default to 'en' - const locale = testInfo.project.use?.locale?.split('-')[0].toLowerCase() || 'en'; - const translations = headings[locale] || headings.en; - - statusJson.isUpdating = true; - // Set the color scheme - if (testInfo.project.use?.colorScheme === 'dark') { - settingsJson.invertedColor = true; - } else { - settingsJson.invertedColor = false; - } - - await page.goto('/'); - await expect(page.getByRole('heading', { name: translations.control })).toBeVisible(); - await expect(page.getByRole('heading', { name: translations.status })).toBeVisible(); - await expect(page.getByRole('heading', { name: translations.settings })).toBeVisible(); - - if (await page.locator('#nav-language-dropdown').isVisible()) { - await expect(page.getByRole('link', { name: translations.language })).toBeVisible(); - } - - const screenshot = await page.screenshot({ - fullPage: true - }); - - await sharp(screenshot) - .toFormat('webp', { - quality: 95, - nearLossless: true - }) - .toFile( - `./doc/screenshot-${test.info().project.use.colorScheme?.toLowerCase().replace(' ', '_')}.webp` - ); -}); diff --git a/tests/screenshots/viewport-screenshots.spec.ts b/tests/screenshots/viewport-screenshots.spec.ts deleted file mode 100644 index 4a27512..0000000 --- a/tests/screenshots/viewport-screenshots.spec.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { test, expect } from '@playwright/test'; - -import { initMock, settingsJson, statusJson } from '../shared'; - -test.beforeEach(initMock); - -// Define the translations for the headings -const headings = { - en: { - control: 'Control', - status: 'Status', - settings: 'Settings', - language: 'English' - }, - de: { - control: 'Steuerung', - status: 'Status', - settings: 'Einstellungen', - language: 'Deutsch' - }, - nl: { - control: 'Besturing', - status: 'Status', - settings: 'Instellingen', - language: 'Nederlands' - }, - es: { - control: 'Control', - status: 'Estado', - settings: 'Ajustes', - language: 'Español' - } -}; - -test('capture screenshots across devices', async ({ page }, testInfo) => { - // Get the locale from the browser or default to 'en' - const locale = testInfo.project.use?.locale?.split('-')[0].toLowerCase() || 'en'; - const translations = headings[locale] || headings.en; - - await page.goto('/'); - await expect(page.getByRole('heading', { name: translations.control })).toBeVisible(); - await expect(page.getByRole('heading', { name: translations.status })).toBeVisible(); - await expect(page.getByRole('heading', { name: translations.settings })).toBeVisible(); - - if (await page.locator('#nav-language-dropdown').isVisible()) { - await expect(page.getByRole('link', { name: translations.language })).toBeVisible(); - } - - const screenshot = await page.screenshot({ - path: `./test-results/screenshots/default-${test.info().project.name.toLowerCase().replace(' ', '_')}.png` - }); - - await testInfo.attach(`default`, { - body: screenshot, - contentType: 'image/png' - }); -}); - -test('capture screenshots across devices with bitaxe screens', async ({ page }, testInfo) => { - const locale = testInfo.project.use?.locale?.split('-')[0].toLowerCase() || 'en'; - const translations = headings[locale] || headings.en; - - settingsJson.screens = [ - { - id: 0, - name: 'Block Height', - enabled: true - }, - { - id: 3, - name: 'Time', - enabled: true - }, - { - id: 4, - name: 'Halving countdown', - enabled: true - }, - { - id: 6, - name: 'Block Fee Rate', - enabled: true - }, - { - id: 10, - name: 'Sats per dollar', - enabled: true - }, - { - id: 20, - name: 'Ticker', - enabled: true - }, - { - id: 30, - name: 'Market Cap', - enabled: true - }, - { - id: 80, - name: 'BitAxe Hashrate', - enabled: true - }, - { - id: 81, - name: 'BitAxe Best Difficulty', - enabled: true - } - ]; - - statusJson.data = ['mdi:bitaxe', '', 'mdi:pickaxe', '6', '3', '7', 'GH/S']; - statusJson.rendered = ['mdi:bitaxe', '', 'mdi:pickaxe', '6', '3', '7', 'GH/S']; - - await page.goto('/'); - - await expect(page.getByRole('heading', { name: translations.control })).toBeVisible(); - await expect(page.getByRole('heading', { name: translations.status })).toBeVisible(); - await expect(page.getByRole('heading', { name: translations.settings })).toBeVisible(); - - if (await page.locator('#nav-language-dropdown').isVisible()) { - await expect(page.getByRole('link', { name: translations.language })).toBeVisible(); - } - - await page.screenshot({ - path: `./test-results/screenshots/bitaxe-${test.info().project.name.toLowerCase().replace(' ', '_')}.png` - }); - - await testInfo.attach(`bitaxe`, { - path: `./test-results/screenshots/bitaxe-${test.info().project.name.toLowerCase().replace(' ', '_')}.png`, - contentType: 'image/png' - }); -}); diff --git a/tests/shared.ts b/tests/shared.ts deleted file mode 100644 index 9ee570c..0000000 --- a/tests/shared.ts +++ /dev/null @@ -1,257 +0,0 @@ -interface Page { - route: (url: string, handler: (route: Route) => Promise) => Promise; -} - -interface Route { - fulfill: (response: { - json?: typeof statusJson | typeof settingsJson | typeof latestReleaseFake; - status?: number; - headers?: Record; - body?: ReadableStream; - }) => Promise; -} - -export const fetchLatestBlockHeight = async () => { - const response = await fetch('https://ws.btclock.dev/api/lastblock'); - const blockHeight = await response.text(); - return ['BLOCK/HEIGHT', ...blockHeight.trim().split('')]; -}; - -export const fetchLatestRelease = async () => { - try { - const response = await fetch( - 'https://git.btclock.dev/api/v1/repos/btclock/btclock_v3/releases/latest' - ); - if (!response.ok) throw new Error('Failed to fetch latest release'); - const data = await response.json(); - settingsJson.gitTag = data.tag_name; - return data; - } catch (error) { - console.warn('Failed to fetch latest release, using fallback:', error); - settingsJson.gitTag = latestReleaseFake.tag_name; - return latestReleaseFake; - } -}; - -export const statusJson = { - currentScreen: 20, - numScreens: 7, - timerRunning: true, - isOTAUpdating: false, - espUptime: 4479, - espFreeHeap: 58508, - espHeapSize: 342108, - connectionStatus: { - price: false, - blocks: false, - V2: true, - nostr: true - }, - rssi: -66, - data: ['BLOCK/HEIGHT', '0', '0', '0', '0', '0', '0'], - currency: 'USD', - leds: [ - { red: 0, green: 0, blue: 0, hex: '#000000' }, - { red: 0, green: 0, blue: 0, hex: '#000000' }, - { red: 0, green: 0, blue: 0, hex: '#000000' }, - { red: 0, green: 0, blue: 0, hex: '#000000' } - ], - isUpdating: true, - isFake: true, - dnd: { - enabled: true, - timeBasedEnabled: true, - startTime: '23:00', - endTime: '7:00', - active: true - } -}; - -export const settingsJson = { - numScreens: 7, - timerSeconds: 1800, - timerRunning: true, - minSecPriceUpd: 30, - fullRefreshMin: 60, - wpTimeout: 600, - tzOffset: 0, - dataSource: 0, - mempoolInstance: 'mempool.space', - ledTestOnPower: true, - ledFlashOnUpd: true, - ledBrightness: 128, - stealFocus: true, - mcapBigChar: true, - mdnsEnabled: true, - otaEnabled: true, - fetchEurPrice: false, - hostnamePrefix: 'btclock', - hostname: 'btclock-d60b14', - ip: '192.168.20.231', - txPower: 78, - gitRev: '25d8b92bcbc8938417c140355ea3ba99ff9eb4b7', - gitTag: '3.2.27', - bitaxeEnabled: false, - bitaxeHostname: 'bitaxe1', - miningPoolStats: false, - miningPoolName: 'ocean', - miningPoolUser: '38Qkkei3SuF1Eo45BaYmRHUneRD54yyTFy', - nostrZapNotify: true, - hwRev: 'REV_A_EPD_2_13', - fsRev: '64e518bf58f89749753167a8b6826e10bb6455c5', - nostrZapPubkey: 'b5127a08cf33616274800a4387881a9f98e04b9c37116e92de5250498635c422', - lastBuildTime: Math.round(new Date().getTime() / 1000), - screens: [ - { - id: 0, - name: 'Block Height', - enabled: true - }, - { - id: 3, - name: 'Time', - enabled: false - }, - { - id: 4, - name: 'Halving countdown', - enabled: false - }, - { - id: 6, - name: 'Block Fee Rate', - enabled: false - }, - { - id: 10, - name: 'Sats per dollar', - enabled: true - }, - { - id: 20, - name: 'Ticker', - enabled: true - }, - { - id: 30, - name: 'Market Cap', - enabled: false - } - ], - actCurrencies: ['USD', 'EUR'], - availableCurrencies: ['USD', 'EUR', 'GBP', 'JPY', 'AUD', 'CAD'], - availablePools: [ - 'ocean', - 'noderunners', - 'satoshi_radio', - 'braiins', - 'public_pool', - 'gobrrr_pool', - 'ckpool', - 'eu_ckpool' - ], - dnd: { - enabled: false, - timeBasedEnabled: true, - startHour: 23, - startMinute: 0, - endHour: 7, - endMinute: 0 - }, - availableFonts: ['antonio', 'oswald'], - invertedColor: false, - isLoaded: true, - isFake: true -}; - -export const latestReleaseFake = { - id: 782, - tag_name: '3.2.24', - target_commitish: '', - name: '3.2.24', - body: '', - url: 'https://git.btclock.dev/api/v1/repos/btclock/btclock_v3/releases/782', - html_url: 'https://git.btclock.dev/btclock/btclock_v3/releases/tag/3.2.24', - tarball_url: 'https://git.btclock.dev/btclock/btclock_v3/archive/3.2.24.tar.gz', - zipball_url: 'https://git.btclock.dev/btclock/btclock_v3/archive/3.2.24.zip', - hide_archive_links: false, - upload_url: 'https://git.btclock.dev/api/v1/repos/btclock/btclock_v3/releases/782/assets', - draft: false, - prerelease: false, - created_at: '2024-12-28T17:48:05Z', - published_at: '2024-12-28T17:48:05Z', - author: {}, - assets: [], - archive_download_count: { - zip: 0, - tar_gz: 0 - } -}; - -export const initMock = async ({ page }: { page: Page }) => { - // Update status with latest block height - statusJson.data = await fetchLatestBlockHeight(); - const latestRelease = await fetchLatestRelease(); - - await page.route('*/**/api/status', async (route) => { - await route.fulfill({ json: statusJson }); - }); - - await page.route('*/**/api/show/screen/10', async (route) => { - //if (route.request().url().includes('*/**/api/show/screen/1')) { - statusJson.currentScreen = 1; - statusJson.data = ['MSCW/TIME', ' ', ' ', '2', '6', '4', '4']; - - await route.fulfill({ json: statusJson }); - }); - - await page.route('*/**/api/show/screen/20', async (route) => { - statusJson.currentScreen = 2; - statusJson.data = ['BTC/USD', '$', '3', '7', '8', '2', '4']; - - await route.fulfill({ json: statusJson }); - }); - - await page.route('*/**/api/show/screen/4', async (route) => { - statusJson.currentScreen = 4; - statusJson.data = ['BIT/COIN', 'HALV/ING', '0/YRS', '149/DAYS', '8/HRS', '30/MINS', 'TO/GO']; - - await route.fulfill({ json: statusJson }); - }); - - await page.route('*/**/api/settings', async (route) => { - await route.fulfill({ json: settingsJson }); - }); - - await page.route('**/events', async (route) => { - const newStatus = statusJson; - newStatus.data = ['BLOCK/HEIGHT', '8', '0', '0', '8', '1', '5']; - newStatus.isUpdating = true; - - // Format the SSE message correctly - const sseMessage = `data: ${JSON.stringify(newStatus)}\n\n`; - - // Create a readable stream for SSE - const stream = new ReadableStream({ - start(controller) { - controller.enqueue(new TextEncoder().encode(sseMessage)); - // Keep the connection open - // controller.close(); // Don't close if you want to send more events - } - }); - - await route.fulfill({ - status: 200, - headers: { - 'Content-Type': 'text/event-stream', - 'Cache-Control': 'no-cache', - Connection: 'keep-alive' - }, - body: stream - }); - }); - - await page.route('**/api/v1/repos/btclock/btclock_v3/releases/latest', async (route) => { - await route.fulfill({ json: latestRelease }); - }); -}; diff --git a/tests/playwright/test.ts b/tests/test.ts similarity index 63% rename from tests/playwright/test.ts rename to tests/test.ts index 92a600d..4fa59ca 100644 --- a/tests/playwright/test.ts +++ b/tests/test.ts @@ -1,7 +1,114 @@ import { expect, test } from '@playwright/test'; -import { initMock, settingsJson, statusJson } from '../shared'; -test.beforeEach(initMock); +const statusJson = { + currentScreen: 0, + numScreens: 7, + timerRunning: true, + espUptime: 4479, + espFreeHeap: 58508, + espHeapSize: 342108, + connectionStatus: { price: true, blocks: true }, + rssi: -66, + data: ['BLOCK/HEIGHT', '8', '1', '8', '0', '2', '6'], + rendered: ['BLOCK/HEIGHT', '8', '1', '8', '0', '2', '6'], + leds: [ + { red: 0, green: 0, blue: 0, hex: '#000000' }, + { red: 0, green: 0, blue: 0, hex: '#000000' }, + { red: 0, green: 0, blue: 0, hex: '#000000' }, + { red: 0, green: 0, blue: 0, hex: '#000000' } + ] +}; + +const settingsJson = { + numScreens: 7, + fgColor: 415029, + bgColor: 0, + timerSeconds: 1800, + timerRunning: true, + minSecPriceUpd: 30, + fullRefreshMin: 60, + wpTimeout: 600, + tzOffset: 0, + useBitcoinNode: false, + mempoolInstance: 'mempool.space', + ledTestOnPower: true, + ledFlashOnUpd: true, + ledBrightness: 128, + stealFocus: true, + mcapBigChar: true, + mdnsEnabled: true, + otaEnabled: true, + fetchEurPrice: false, + hostnamePrefix: 'btclock', + hostname: 'btclock-d60b14', + ip: '192.168.20.231', + txPower: 78, + gitRev: '25d8b92bcbc8938417c140355ea3ba99ff9eb4b7', + gitTag: '3.1.9', + bitaxeEnabled: false, + bitaxeHostname: 'bitaxe1', + nostrZapNotify: true, + hwRev: 'REV_A_EPD_2_13', + fsRev: '4c5d9616212b27e3f05c35370f0befcf2c5a04b2', + nostrZapPubkey: 'b5127a08cf33616274800a4387881a9f98e04b9c37116e92de5250498635c422', + lastBuildTime: '1700666677', + screens: [ + { id: 0, name: 'Block Height', enabled: true }, + { id: 1, name: 'Sats per dollar', enabled: true }, + { id: 2, name: 'Ticker', enabled: true }, + { id: 3, name: 'Time', enabled: true }, + { id: 4, name: 'Halving countdown', enabled: true }, + { id: 5, name: 'Market Cap', enabled: true } + ] +}; + +test.beforeEach(async ({ page }) => { + await page.route('*/**/api/status', async (route) => { + await route.fulfill({ json: statusJson }); + }); + + await page.route('*/**/api/show/screen/1', async (route) => { + //if (route.request().url().includes('*/**/api/show/screen/1')) { + statusJson.currentScreen = 1; + statusJson.data = ['MSCW/TIME', ' ', ' ', '2', '6', '4', '4']; + statusJson.rendered = statusJson.data; + //} + + await route.fulfill({ json: statusJson }); + }); + + await page.route('*/**/api/show/screen/2', async (route) => { + statusJson.currentScreen = 2; + statusJson.data = ['BTC/USD', '$', '3', '7', '8', '2', '4']; + statusJson.rendered = statusJson.data; + + await route.fulfill({ json: statusJson }); + }); + + await page.route('*/**/api/show/screen/4', async (route) => { + statusJson.currentScreen = 4; + statusJson.data = ['BIT/COIN', 'HALV/ING', '0/YRS', '149/DAYS', '8/HRS', '30/MINS', 'TO/GO']; + statusJson.rendered = statusJson.data; + + await route.fulfill({ json: statusJson }); + }); + + await page.route('*/**/api/settings', async (route) => { + await route.fulfill({ json: settingsJson }); + }); + + await page.route('**/events', (route) => { + const newStatus = statusJson; + newStatus.data = ['BLOCK/HEIGHT', '8', '0', '0', '8', '1', '5']; + + // Respond with a custom SSE message + route.fulfill({ + status: 200, + contentType: 'text/event-stream', + json: `${JSON.stringify(newStatus)}\n\n` + }); + }); +}); test('index page has expected columns control, status, settings', async ({ page }) => { await page.goto('/'); @@ -28,19 +135,19 @@ test('api page has expected load button', async ({ page }) => { await expect(page.getByRole('button', { name: 'Load' })).toBeVisible(); }); -// test('timezone can be negative, zero and positive', async ({ page }) => { -// await page.goto('/'); -// await page.getByRole('button', { name: 'Show all' }).click(); +test('timezone can be negative, zero and positive', async ({ page }) => { + await page.goto('/'); + await page.getByRole('button', { name: 'Show all' }).click(); -// const tzOffsetField = 'input#tzOffset'; + const tzOffsetField = 'input#tzOffset'; -// for (const val of ['-10', '0', '42']) { -// await page.fill(tzOffsetField, val); -// const resultValue = await page.$eval(tzOffsetField, (input: HTMLInputElement) => input.value); -// expect(resultValue).toBe(val); -// await page.getByRole('button', { name: 'Save' }).click(); -// } -// }); + for (const val of ['-10', '0', '42']) { + await page.fill(tzOffsetField, val); + const resultValue = await page.$eval(tzOffsetField, (input: HTMLInputElement) => input.value); + expect(resultValue).toBe(val); + await page.getByRole('button', { name: 'Save' }).click(); + } +}); test('time values can not be zero or negative', async ({ page }) => { await page.goto('/'); @@ -74,8 +181,6 @@ test('time values can not be zero or negative', async ({ page }) => { }); test('info message when fetch eur price is enabled', async ({ page }) => { - delete (settingsJson as { actCurrencies?: string[] }).actCurrencies; - await page.goto('/'); await page.getByRole('button', { name: 'Show all' }).click(); @@ -132,7 +237,7 @@ test('screens should be able to change', async ({ page }) => { await page.getByRole('button', { name: 'Sats per Dollar' }).click(); const response = await responsePromise; - expect(response.url()).toContain('api/show/screen/10'); + expect(response.url()).toContain('api/show/screen/1'); }); test('parse all types of EPD content correctly', async ({ page }) => { diff --git a/vite.config.test.ts b/vite.config.test.ts deleted file mode 100644 index 3e03c63..0000000 --- a/vite.config.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig } from 'vite'; - -export default defineConfig({ - plugins: [sveltekit()], - build: { - sourcemap: true, - minify: false, - rollupOptions: { - output: { - manualChunks: undefined // Disable code splitting - } - } - }, - test: { - include: ['tests/**/*.{test,spec}.{js,ts}'] - } -}); diff --git a/vite.config.ts b/vite.config.ts index 3368d70..bb8e5b2 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,6 @@ import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig } from 'vite'; -// import { visualizer } from 'rollup-plugin-visualizer'; +import { defineConfig } from 'vitest/config'; +import GithubActionsReporter from 'vitest-github-actions-reporter'; import * as fs from 'fs'; import * as path from 'path'; @@ -65,43 +65,21 @@ export default defineConfig({ } } } - // visualizer({ - // emitFile: true, - // filename: "stats.html", - // }) ], build: { - minify: 'esbuild', + minify: true, cssCodeSplit: false, - chunkSizeWarningLimit: 550, rollupOptions: { output: { - // assetFileNames: '[hash][extname]', - entryFileNames: `[hash][extname]`, - chunkFileNames: `[hash][extname]`, - assetFileNames: `[hash][extname]`, - preserveModules: false, - - manualChunks: () => { - return 'app'; - } - } - } - }, - css: { - preprocessorOptions: { - scss: { - quietDeps: true, - silenceDeprecations: ['import'] + manualChunks: () => 'app', + assetFileNames: '[name][extname]' } } }, test: { include: ['src/**/*.{test,spec}.{js,ts}'], globals: true, - environment: 'jsdom' - }, - define: { - 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) + environment: 'jsdom', + reporters: process.env.GITHUB_ACTIONS ? ['default', new GithubActionsReporter()] : 'default' } }); diff --git a/yarn.lock b/yarn.lock index 2394570..d729bb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,22 @@ # yarn lockfile v1 +"@actions/core@^1.10.0": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a" + integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g== + dependencies: + "@actions/http-client" "^2.0.1" + uuid "^8.3.2" + +"@actions/http-client@^2.0.1": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.0.tgz#f8239f375be6185fcd07765efdcf0031ad5df1a0" + integrity sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg== + dependencies: + tunnel "^0.0.6" + undici "^5.25.4" + "@adobe/css-tools@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" @@ -16,30 +32,25 @@ "@jridgewell/trace-mapping" "^0.3.24" "@babel/code-frame@^7.10.4": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== dependencies: - "@babel/helper-validator-identifier" "^7.27.1" + "@babel/helper-validator-identifier" "^7.25.9" js-tokens "^4.0.0" - picocolors "^1.1.1" + picocolors "^1.0.0" -"@babel/helper-validator-identifier@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" - integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== "@babel/runtime@^7.12.5": - version "7.27.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6" - integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q== - -"@emnapi/runtime@^1.2.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.1.tgz#0fcaa575afc31f455fd33534c19381cfce6c6f60" - integrity sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw== + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== dependencies: - tslib "^2.4.0" + regenerator-runtime "^0.14.0" "@esbuild/aix-ppc64@0.19.12": version "0.19.12" @@ -271,10 +282,10 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.7.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz#607084630c6c033992a082de6e6fbc1a8b52175a" - integrity sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw== +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.1" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== dependencies: eslint-visitor-keys "^3.4.3" @@ -283,38 +294,26 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/config-array@^0.20.0": - version "0.20.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.20.1.tgz#454f89be82b0e5b1ae872c154c7e2f3dd42c3979" - integrity sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw== +"@eslint/config-array@^0.19.0": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.1.tgz#734aaea2c40be22bbb1f2a9dac687c57a6a4c984" + integrity sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA== dependencies: - "@eslint/object-schema" "^2.1.6" + "@eslint/object-schema" "^2.1.5" debug "^4.3.1" minimatch "^3.1.2" -"@eslint/config-helpers@^0.2.1": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.3.tgz#39d6da64ed05d7662659aa7035b54cd55a9f3672" - integrity sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg== - -"@eslint/core@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.14.0.tgz#326289380968eaf7e96f364e1e4cf8f3adf2d003" - integrity sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg== +"@eslint/core@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.1.tgz#31763847308ef6b7084a4505573ac9402c51f9d1" + integrity sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/core@^0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.0.tgz#8fc04709a7b9a179d9f7d93068fc000cb8c5603d" - integrity sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw== - dependencies: - "@types/json-schema" "^7.0.15" - -"@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== +"@eslint/eslintrc@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" + integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -326,38 +325,37 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.28.0": - version "9.28.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.28.0.tgz#7822ccc2f8cae7c3cd4f902377d520e9ae03f844" - integrity sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg== +"@eslint/js@9.16.0": + version "9.16.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4" + integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg== -"@eslint/object-schema@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" - integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== +"@eslint/object-schema@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.5.tgz#8670a8f6258a2be5b2c620ff314a1d984c23eb2e" + integrity sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ== -"@eslint/plugin-kit@^0.3.1": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz#0cad96b134d23a653348e3342f485636b5ef4732" - integrity sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg== +"@eslint/plugin-kit@^0.2.3": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz#2b78e7bb3755784bb13faa8932a1d994d6537792" + integrity sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg== dependencies: - "@eslint/core" "^0.15.0" levn "^0.4.1" "@fontsource/antonio@^5.1.0": - version "5.2.6" - resolved "https://registry.yarnpkg.com/@fontsource/antonio/-/antonio-5.2.6.tgz#d802ce9447a55b7162f698c3aea2f5cc9d461b59" - integrity sha512-+AQKSTN4/IPa7TkIA0kfFCLtNDfFqNtBeZlZ1C/YDVtKTJ6h/eiwfXxS7v87Nlbb3V+dOJwkZTolQq78QL5vLA== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@fontsource/antonio/-/antonio-5.1.0.tgz#e3159a104d364629852ffc5170764f619a8c5754" + integrity sha512-5FHPDnNXhLg/ccgTSOzqL0v8TqUIYw+HXYXVKsA97dYXm+SpkypXW/R/bTe8eNHVarnNRfYkhYyZq6dKA9/vGQ== "@fontsource/oswald@^5.1.0": - version "5.2.6" - resolved "https://registry.yarnpkg.com/@fontsource/oswald/-/oswald-5.2.6.tgz#34ec796848d484dcdb26af42f6a18ca7315dcd56" - integrity sha512-2rMxNdRrTjuhz2alrqMgOR45HOdxcLdzHYTdmque2idEH7TmG7fsYEpRr3qCL3TFpInr5OygAYvTEGWBy2d06g== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@fontsource/oswald/-/oswald-5.1.0.tgz#00fdbe5ab911bfb261ec26e565eb51d02cb95095" + integrity sha512-MwHMRCNCeTvaUWk15AHVfUi84T4TB4dshJrCOcfBYqUkY0V8IxKEwqFzSgGBG7zIfTZ0Diu+/CKpiktKqo5Gkg== "@fontsource/ubuntu@^5.1.0": - version "5.2.6" - resolved "https://registry.yarnpkg.com/@fontsource/ubuntu/-/ubuntu-5.2.6.tgz#248cf8806320e5e7b6ea4cdb0035b22dbc08702e" - integrity sha512-ktUjEGS/QmvNmhO8Vb6kEv+BgTRspRUon07SkC7Rh/T4ziu8AfwJe2xuJzGxWv8fJqx0ZNYeCCJdABta7991sA== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@fontsource/ubuntu/-/ubuntu-5.1.0.tgz#aad73a6540659e1005e181029cb3f5efd06a438f" + integrity sha512-0XG/HrFsfP1q3phf4QN8IO7tetd0zOZKHZSHcTnBuVoQedoo1wS/hXxY2FMZuqoG+mVfrXh+Q614MDVmQPJq2w== "@formatjs/ecma402-abstract@2.2.0": version "2.2.0" @@ -422,128 +420,15 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== -"@humanwhocodes/retry@^0.4.2": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" - integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== - -"@img/sharp-darwin-arm64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" - integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== - optionalDependencies: - "@img/sharp-libvips-darwin-arm64" "1.0.4" - -"@img/sharp-darwin-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" - integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== - optionalDependencies: - "@img/sharp-libvips-darwin-x64" "1.0.4" - -"@img/sharp-libvips-darwin-arm64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" - integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== - -"@img/sharp-libvips-darwin-x64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" - integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== - -"@img/sharp-libvips-linux-arm64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" - integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== - -"@img/sharp-libvips-linux-arm@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" - integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== - -"@img/sharp-libvips-linux-s390x@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" - integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== - -"@img/sharp-libvips-linux-x64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" - integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== - -"@img/sharp-libvips-linuxmusl-arm64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" - integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== - -"@img/sharp-libvips-linuxmusl-x64@1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" - integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== - -"@img/sharp-linux-arm64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" - integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== - optionalDependencies: - "@img/sharp-libvips-linux-arm64" "1.0.4" - -"@img/sharp-linux-arm@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" - integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== - optionalDependencies: - "@img/sharp-libvips-linux-arm" "1.0.5" - -"@img/sharp-linux-s390x@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" - integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== - optionalDependencies: - "@img/sharp-libvips-linux-s390x" "1.0.4" - -"@img/sharp-linux-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" - integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== - optionalDependencies: - "@img/sharp-libvips-linux-x64" "1.0.4" - -"@img/sharp-linuxmusl-arm64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" - integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== - optionalDependencies: - "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" - -"@img/sharp-linuxmusl-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" - integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== - optionalDependencies: - "@img/sharp-libvips-linuxmusl-x64" "1.0.4" - -"@img/sharp-wasm32@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" - integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== - dependencies: - "@emnapi/runtime" "^1.2.0" - -"@img/sharp-win32-ia32@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" - integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== - -"@img/sharp-win32-x64@0.33.5": - version "0.33.5" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" - integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== +"@humanwhocodes/retry@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" + integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== "@jridgewell/gen-mapping@^0.3.5": - version "0.3.8" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" - integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== dependencies: "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -607,9 +492,9 @@ integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== "@noble/secp256k1@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-2.3.0.tgz#ddfe6e853472fb88cba4d5e59b7067adc1e64adf" - integrity sha512-0TQed2gcBbIrh7Ccyw+y/uZQvbJwm7Ao4scBUxqpBCcsOlZG0O4KGfjtNAy/li4W8n1xt3dxrwJ0beZ2h2G6Kw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-2.1.0.tgz#71d829a0b8ce84aea137708f82273977eea84597" + integrity sha512-XLEQQNdablO0XZOIniFQimiXsZDNwaYgL96dZwC54Q30imSbAOFf3NKtepc+cXyuZf5Q1HCgbqgZ2UFFuHVcEw== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -632,106 +517,106 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@parcel/watcher-android-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" - integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== +"@parcel/watcher-android-arm64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz#e32d3dda6647791ee930556aee206fcd5ea0fb7a" + integrity sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ== -"@parcel/watcher-darwin-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" - integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== +"@parcel/watcher-darwin-arm64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz#0d9e680b7e9ec1c8f54944f1b945aa8755afb12f" + integrity sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw== -"@parcel/watcher-darwin-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" - integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== +"@parcel/watcher-darwin-x64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz#f9f1d5ce9d5878d344f14ef1856b7a830c59d1bb" + integrity sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA== -"@parcel/watcher-freebsd-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" - integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== +"@parcel/watcher-freebsd-x64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz#2b77f0c82d19e84ff4c21de6da7f7d096b1a7e82" + integrity sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw== -"@parcel/watcher-linux-arm-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" - integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== +"@parcel/watcher-linux-arm-glibc@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz#92ed322c56dbafa3d2545dcf2803334aee131e42" + integrity sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA== -"@parcel/watcher-linux-arm-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" - integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== +"@parcel/watcher-linux-arm-musl@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz#cd48e9bfde0cdbbd2ecd9accfc52967e22f849a4" + integrity sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA== -"@parcel/watcher-linux-arm64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" - integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== +"@parcel/watcher-linux-arm64-glibc@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz#7b81f6d5a442bb89fbabaf6c13573e94a46feb03" + integrity sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA== -"@parcel/watcher-linux-arm64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" - integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== +"@parcel/watcher-linux-arm64-musl@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz#dcb8ff01077cdf59a18d9e0a4dff7a0cfe5fd732" + integrity sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q== -"@parcel/watcher-linux-x64-glibc@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" - integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== +"@parcel/watcher-linux-x64-glibc@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz#2e254600fda4e32d83942384d1106e1eed84494d" + integrity sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw== -"@parcel/watcher-linux-x64-musl@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" - integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== +"@parcel/watcher-linux-x64-musl@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz#01fcea60fedbb3225af808d3f0a7b11229792eef" + integrity sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA== -"@parcel/watcher-win32-arm64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" - integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== +"@parcel/watcher-win32-arm64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz#87cdb16e0783e770197e52fb1dc027bb0c847154" + integrity sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig== -"@parcel/watcher-win32-ia32@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" - integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== +"@parcel/watcher-win32-ia32@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz#778c39b56da33e045ba21c678c31a9f9d7c6b220" + integrity sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA== -"@parcel/watcher-win32-x64@2.5.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" - integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== +"@parcel/watcher-win32-x64@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz#33873876d0bbc588aacce38e90d1d7480ce81cb7" + integrity sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw== "@parcel/watcher@^2.4.1": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" - integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.0.tgz#5c88818b12b8de4307a9d3e6dc3e28eba0dfbd10" + integrity sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ== dependencies: detect-libc "^1.0.3" is-glob "^4.0.3" micromatch "^4.0.5" node-addon-api "^7.0.0" optionalDependencies: - "@parcel/watcher-android-arm64" "2.5.1" - "@parcel/watcher-darwin-arm64" "2.5.1" - "@parcel/watcher-darwin-x64" "2.5.1" - "@parcel/watcher-freebsd-x64" "2.5.1" - "@parcel/watcher-linux-arm-glibc" "2.5.1" - "@parcel/watcher-linux-arm-musl" "2.5.1" - "@parcel/watcher-linux-arm64-glibc" "2.5.1" - "@parcel/watcher-linux-arm64-musl" "2.5.1" - "@parcel/watcher-linux-x64-glibc" "2.5.1" - "@parcel/watcher-linux-x64-musl" "2.5.1" - "@parcel/watcher-win32-arm64" "2.5.1" - "@parcel/watcher-win32-ia32" "2.5.1" - "@parcel/watcher-win32-x64" "2.5.1" + "@parcel/watcher-android-arm64" "2.5.0" + "@parcel/watcher-darwin-arm64" "2.5.0" + "@parcel/watcher-darwin-x64" "2.5.0" + "@parcel/watcher-freebsd-x64" "2.5.0" + "@parcel/watcher-linux-arm-glibc" "2.5.0" + "@parcel/watcher-linux-arm-musl" "2.5.0" + "@parcel/watcher-linux-arm64-glibc" "2.5.0" + "@parcel/watcher-linux-arm64-musl" "2.5.0" + "@parcel/watcher-linux-x64-glibc" "2.5.0" + "@parcel/watcher-linux-x64-musl" "2.5.0" + "@parcel/watcher-win32-arm64" "2.5.0" + "@parcel/watcher-win32-ia32" "2.5.0" + "@parcel/watcher-win32-x64" "2.5.0" "@playwright/test@^1.46.0": - version "1.53.0" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.53.0.tgz#23e0abac142f05b6b315c2da19129178aebb94e4" - integrity sha512-15hjKreZDcp7t6TL/7jkAo6Df5STZN09jGiv5dbP9A6vMVncXRqE7/B2SncsyOwrkZRBH2i6/TPOL8BVmm3c7w== + version "1.49.1" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.49.1.tgz#55fa360658b3187bfb6371e2f8a64f50ef80c827" + integrity sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g== dependencies: - playwright "1.53.0" + playwright "1.49.1" "@polka/url@^1.0.0-next.24": - version "1.0.0-next.29" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" - integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== + version "1.0.0-next.28" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" + integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== "@popperjs/core@^2.11.8": version "2.11.8" @@ -754,105 +639,95 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz#e1562d360bca73c7bef6feef86098de3a2f1d442" - integrity sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw== +"@rollup/rollup-android-arm-eabi@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz#e3c9cc13f144ba033df4d2c3130a214dc8e3473e" + integrity sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw== -"@rollup/rollup-android-arm64@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz#37ba63940211673e15dcc5f469a78e34276dbca7" - integrity sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw== +"@rollup/rollup-android-arm64@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz#0474250fcb5871aca952e249a0c3270fc4310b55" + integrity sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA== -"@rollup/rollup-darwin-arm64@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz#58b1eb86d997d71dabc5b78903233a3c27438ca0" - integrity sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA== +"@rollup/rollup-darwin-arm64@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz#77c29b4f9c430c1624f1a6835f2a7e82be3d16f2" + integrity sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q== -"@rollup/rollup-darwin-x64@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz#5e22dab3232b1e575d930ce891abb18fe19c58c9" - integrity sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw== +"@rollup/rollup-darwin-x64@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz#7d87711f641a458868758cbf110fb32eabd6a25a" + integrity sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ== -"@rollup/rollup-freebsd-arm64@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz#04c892d9ff864d66e31419634726ab0bebb33707" - integrity sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw== +"@rollup/rollup-freebsd-arm64@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz#662f808d2780e4e91021ac9ee7ed800862bb9a57" + integrity sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw== -"@rollup/rollup-freebsd-x64@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz#f4b1e091f7cf5afc9e3a029d70128ad56409ecfb" - integrity sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q== +"@rollup/rollup-freebsd-x64@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz#71e5a7bcfcbe51d8b65d158675acec1307edea79" + integrity sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA== -"@rollup/rollup-linux-arm-gnueabihf@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz#c8814bb5ce047a81b1fe4a33628dfd4ac52bd864" - integrity sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg== +"@rollup/rollup-linux-arm-gnueabihf@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz#08f67fcec61ee18f8b33b3f403a834ab8f3aa75d" + integrity sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w== -"@rollup/rollup-linux-arm-musleabihf@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz#5b4e7bd83cbebbf5ffe958802dcfd4ee34bf73a3" - integrity sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg== +"@rollup/rollup-linux-arm-musleabihf@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz#2e1ad4607f86475b1731556359c6070eb8f4b109" + integrity sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A== -"@rollup/rollup-linux-arm64-gnu@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz#141c848e53cee011e82a11777b8a51f1b3e8d77c" - integrity sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg== +"@rollup/rollup-linux-arm64-gnu@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz#c65d559dcb0d3dabea500cf7b8215959ae6cccf8" + integrity sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg== -"@rollup/rollup-linux-arm64-musl@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz#22ebeaf2fa301aa4aa6c84b760e6cd1d1ac7eb1e" - integrity sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ== +"@rollup/rollup-linux-arm64-musl@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz#6739f7eb33e20466bb88748519c98ce8dee23922" + integrity sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA== -"@rollup/rollup-linux-loongarch64-gnu@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz#20b77dc78e622f5814ff8e90c14c938ceb8043bc" - integrity sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ== +"@rollup/rollup-linux-powerpc64le-gnu@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz#8d9fe9471c256e55278cb1f7b1c977cd8fe6df20" + integrity sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ== -"@rollup/rollup-linux-powerpc64le-gnu@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz#2c90f99c987ef1198d4f8d15d754c286e1f07b13" - integrity sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg== +"@rollup/rollup-linux-riscv64-gnu@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz#9a467f7ad5b61c9d66b24e79a3c57cb755d02c35" + integrity sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw== -"@rollup/rollup-linux-riscv64-gnu@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz#9336fd5e47d7f4760d02aa85f76976176eef53ca" - integrity sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ== +"@rollup/rollup-linux-s390x-gnu@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz#efaddf22df27b87a267a731fbeb9539e92cd4527" + integrity sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg== -"@rollup/rollup-linux-riscv64-musl@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz#d75b4d54d46439bb5c6c13762788f57e798f5670" - integrity sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA== +"@rollup/rollup-linux-x64-gnu@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz#a959eccb04b07fd1591d7ff745a6865faa7042cd" + integrity sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q== -"@rollup/rollup-linux-s390x-gnu@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz#e9f09b802f1291839247399028beaef9ce034c81" - integrity sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg== +"@rollup/rollup-linux-x64-musl@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz#927764f1da1f2dd50943716dec93796d10cb6e99" + integrity sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw== -"@rollup/rollup-linux-x64-gnu@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz#0413169dc00470667dea8575c1129d4e7a73eb29" - integrity sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ== +"@rollup/rollup-win32-arm64-msvc@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz#030b6cc607d845da23dced624e47fb45de105840" + integrity sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A== -"@rollup/rollup-linux-x64-musl@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz#c76fd593323c60ea219439a00da6c6d33ffd0ea6" - integrity sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ== +"@rollup/rollup-win32-ia32-msvc@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz#3457a3f44a84f51d8097c3606429e01f0d2d0ec2" + integrity sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ== -"@rollup/rollup-win32-arm64-msvc@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz#c7724c386eed0bda5ae7143e4081c1910cab349b" - integrity sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg== - -"@rollup/rollup-win32-ia32-msvc@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz#7749e1b65cb64fe6d41ad1ad9e970a0ccc8ac350" - integrity sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA== - -"@rollup/rollup-win32-x64-msvc@4.40.1": - version "4.40.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz#8078b71fe0d5825dcbf83d52a7dc858b39da165c" - integrity sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA== +"@rollup/rollup-win32-x64-msvc@4.27.4": + version "4.27.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz#67d516613c9f2fe42e2d8b78e252d0003179d92c" + integrity sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug== "@scure/base@1.1.1": version "1.1.1" @@ -889,19 +764,19 @@ import-meta-resolve "^4.1.0" "@sveltejs/adapter-static@^3.0.0": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@sveltejs/adapter-static/-/adapter-static-3.0.8.tgz#f23ee99a9678dbaec58b79d183bc3defbfe99f1a" - integrity sha512-YaDrquRpZwfcXbnlDsSrBQNCChVOT9MGuSg+dMAyfsAa1SmiAhrA5jUYUiIMC59G92kIbY/AaQOWcBdq+lh+zg== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@sveltejs/adapter-static/-/adapter-static-3.0.6.tgz#a580ad86aa90a52b19b6440f3c9521bd731211c1" + integrity sha512-MGJcesnJWj7FxDcB/GbrdYD3q24Uk0PIL4QIX149ku+hlJuj//nxUbb0HxUTpjkecWfHjVveSUnUaQWnPRXlpg== "@sveltejs/kit@^2.0.0": - version "2.20.8" - resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-2.20.8.tgz#c4cb1487ec765bfd7c3d1d06f45164d5edbc4d90" - integrity sha512-ep9qTxL7WALhfm0kFecL3VHeuNew8IccbYGqv5TqL/KSqWRKzEgDG8blNlIu1CkLTTua/kHjI+f5T8eCmWIxKw== + version "2.8.5" + resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-2.8.5.tgz#6eb3617547619cf38b19fb2e00da6aa00d0a44c8" + integrity sha512-5ry1jPd4r9knsphDK2eTYUFPhFZMqF0PHFfa8MdMQCqWaKwLSXdFMU/Vevih1I7C1/VNB5MvTuFl1kXu5vx8UA== dependencies: "@types/cookie" "^0.6.0" cookie "^0.6.0" devalue "^5.1.0" - esm-env "^1.2.2" + esm-env "^1.0.0" import-meta-resolve "^4.1.0" kleur "^4.1.5" magic-string "^0.30.5" @@ -909,6 +784,7 @@ sade "^1.8.1" set-cookie-parser "^2.6.0" sirv "^3.0.0" + tiny-glob "^0.2.9" "@sveltejs/vite-plugin-svelte-inspector@^2.1.0": version "2.1.0" @@ -931,13 +807,13 @@ vitefu "^0.2.5" "@sveltestrap/sveltestrap@^6.2.7": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@sveltestrap/sveltestrap/-/sveltestrap-6.2.8.tgz#d3c144372579379bfd964982342741827b79025c" - integrity sha512-uOcY3xsHtJ/VE0Z8A5JrJIq4kW/OOQcct5JtJW5ug646Re2pzQH08P7RjSp04UUjmR/RlC3ugVfiGss8idHG7A== + version "6.2.7" + resolved "https://registry.yarnpkg.com/@sveltestrap/sveltestrap/-/sveltestrap-6.2.7.tgz#5b2736cbee2db973f02b09d2e9d5bf819418f1f9" + integrity sha512-WwLLfAFUb42BGuRrf3Vbct30bQMzlEMMipN/MfxhjuLTmLQeW9muVJfPyvjtWS+mY+RjkSCoHvAp/ZobP1NLlQ== dependencies: "@popperjs/core" "^2.11.8" -"@testing-library/dom@9.x.x || 10.x.x": +"@testing-library/dom@^10.0.0": version "10.4.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8" integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ== @@ -965,11 +841,11 @@ redent "^3.0.0" "@testing-library/svelte@^5.2.1": - version "5.2.8" - resolved "https://registry.yarnpkg.com/@testing-library/svelte/-/svelte-5.2.8.tgz#c9bae6da9cb436327b4a72971753d13b9da1dfcb" - integrity sha512-ucQOtGsJhtawOEtUmbR4rRh53e6RbM1KUluJIXRmh6D4UzxR847iIqqjRtg9mHNFmGQ8Vkam9yVcR5d1mhIHKA== + version "5.2.6" + resolved "https://registry.yarnpkg.com/@testing-library/svelte/-/svelte-5.2.6.tgz#fdbb1a8950d8b57c75602e4fda8b4627e7c37eac" + integrity sha512-1Y8cEg/BtV4J6g9irkY0ksz+ueDFYLiikjTLiqvQPkOUeDzR4gg2zECBf8yrOrCy3e2TAOYMcaysFa0bQMyk1w== dependencies: - "@testing-library/dom" "9.x.x || 10.x.x" + "@testing-library/dom" "^10.0.0" "@types/aria-query@^5.0.1": version "5.0.4" @@ -981,15 +857,15 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5" integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA== -"@types/estree@1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" - integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== +"@types/estree@*", "@types/estree@^1.0.1": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/estree@^1.0.0", "@types/estree@^1.0.1", "@types/estree@^1.0.6": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== +"@types/estree@1.0.6", "@types/estree@^1.0.0", "@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/json-schema@^7.0.15": version "7.0.15" @@ -1001,159 +877,143 @@ resolved "https://registry.yarnpkg.com/@types/swagger-ui/-/swagger-ui-3.52.4.tgz#96c4886e8f86ae392f8d940bf7029cf490a51c72" integrity sha512-7NV7q8BfupqdQxr26OkM0g0YEPB9uXnKGzXadgcearvI9MoCHt3F72lPTX3fZZIlrr21DC0IK26wcDMZ37oFDA== -"@typescript-eslint/eslint-plugin@8.34.0", "@typescript-eslint/eslint-plugin@^8.7.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz#96c9f818782fe24cd5883a5d517ca1826d3fa9c2" - integrity sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w== +"@typescript-eslint/eslint-plugin@8.18.0", "@typescript-eslint/eslint-plugin@^8.7.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz#0901933326aea4443b81df3f740ca7dfc45c7bea" + integrity sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.34.0" - "@typescript-eslint/type-utils" "8.34.0" - "@typescript-eslint/utils" "8.34.0" - "@typescript-eslint/visitor-keys" "8.34.0" + "@typescript-eslint/scope-manager" "8.18.0" + "@typescript-eslint/type-utils" "8.18.0" + "@typescript-eslint/utils" "8.18.0" + "@typescript-eslint/visitor-keys" "8.18.0" graphemer "^1.4.0" - ignore "^7.0.0" + ignore "^5.3.1" natural-compare "^1.4.0" - ts-api-utils "^2.1.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@8.34.0", "@typescript-eslint/parser@^8.7.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.34.0.tgz#703270426ac529304ae6988482f487c856d9c13f" - integrity sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA== +"@typescript-eslint/parser@8.18.0", "@typescript-eslint/parser@^8.7.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.0.tgz#a1c9456cbb6a089730bf1d3fc47946c5fb5fe67b" + integrity sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q== dependencies: - "@typescript-eslint/scope-manager" "8.34.0" - "@typescript-eslint/types" "8.34.0" - "@typescript-eslint/typescript-estree" "8.34.0" - "@typescript-eslint/visitor-keys" "8.34.0" + "@typescript-eslint/scope-manager" "8.18.0" + "@typescript-eslint/types" "8.18.0" + "@typescript-eslint/typescript-estree" "8.18.0" + "@typescript-eslint/visitor-keys" "8.18.0" debug "^4.3.4" -"@typescript-eslint/project-service@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.34.0.tgz#449119b72fe9fae185013a6bdbaf1ffbfee6bcaf" - integrity sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw== +"@typescript-eslint/scope-manager@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz#30b040cb4557804a7e2bcc65cf8fdb630c96546f" + integrity sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.34.0" - "@typescript-eslint/types" "^8.34.0" + "@typescript-eslint/types" "8.18.0" + "@typescript-eslint/visitor-keys" "8.18.0" + +"@typescript-eslint/type-utils@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz#6f0d12cf923b6fd95ae4d877708c0adaad93c471" + integrity sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow== + dependencies: + "@typescript-eslint/typescript-estree" "8.18.0" + "@typescript-eslint/utils" "8.18.0" debug "^4.3.4" + ts-api-utils "^1.3.0" -"@typescript-eslint/scope-manager@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz#9fedaec02370cf79c018a656ab402eb00dc69e67" - integrity sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw== +"@typescript-eslint/types@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.0.tgz#3afcd30def8756bc78541268ea819a043221d5f3" + integrity sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA== + +"@typescript-eslint/typescript-estree@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz#d8ca785799fbb9c700cdff1a79c046c3e633c7f9" + integrity sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg== dependencies: - "@typescript-eslint/types" "8.34.0" - "@typescript-eslint/visitor-keys" "8.34.0" - -"@typescript-eslint/tsconfig-utils@8.34.0", "@typescript-eslint/tsconfig-utils@^8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz#97d0a24e89a355e9308cebc8e23f255669bf0979" - integrity sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA== - -"@typescript-eslint/type-utils@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz#03e7eb3776129dfd751ba1cac0c6ea4b0fab5ec6" - integrity sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg== - dependencies: - "@typescript-eslint/typescript-estree" "8.34.0" - "@typescript-eslint/utils" "8.34.0" - debug "^4.3.4" - ts-api-utils "^2.1.0" - -"@typescript-eslint/types@8.34.0", "@typescript-eslint/types@^8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.34.0.tgz#18000f205c59c9aff7f371fc5426b764cf2890fb" - integrity sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA== - -"@typescript-eslint/typescript-estree@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz#c9f3feec511339ef64e9e4884516c3e558f1b048" - integrity sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg== - dependencies: - "@typescript-eslint/project-service" "8.34.0" - "@typescript-eslint/tsconfig-utils" "8.34.0" - "@typescript-eslint/types" "8.34.0" - "@typescript-eslint/visitor-keys" "8.34.0" + "@typescript-eslint/types" "8.18.0" + "@typescript-eslint/visitor-keys" "8.18.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" - ts-api-utils "^2.1.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.34.0.tgz#7844beebc1153b4d3ec34135c2da53a91e076f8d" - integrity sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ== +"@typescript-eslint/utils@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.0.tgz#48f67205d42b65d895797bb7349d1be5c39a62f7" + integrity sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg== dependencies: - "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.34.0" - "@typescript-eslint/types" "8.34.0" - "@typescript-eslint/typescript-estree" "8.34.0" + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.18.0" + "@typescript-eslint/types" "8.18.0" + "@typescript-eslint/typescript-estree" "8.18.0" -"@typescript-eslint/visitor-keys@8.34.0": - version "8.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz#c7a149407be31d755dba71980617d638a40ac099" - integrity sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA== +"@typescript-eslint/visitor-keys@8.18.0": + version "8.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz#7b6d33534fa808e33a19951907231ad2ea5c36dd" + integrity sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw== dependencies: - "@typescript-eslint/types" "8.34.0" + "@typescript-eslint/types" "8.18.0" eslint-visitor-keys "^4.2.0" -"@vitest/expect@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.9.tgz#b566ea20d58ea6578d8dc37040d6c1a47ebe5ff8" - integrity sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw== +"@vitest/expect@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.8.tgz#13fad0e8d5a0bf0feb675dcf1d1f1a36a1773bc1" + integrity sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw== dependencies: - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" + "@vitest/spy" "2.1.8" + "@vitest/utils" "2.1.8" chai "^5.1.2" tinyrainbow "^1.2.0" -"@vitest/mocker@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.9.tgz#36243b27351ca8f4d0bbc4ef91594ffd2dc25ef5" - integrity sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg== +"@vitest/mocker@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.8.tgz#51dec42ac244e949d20009249e033e274e323f73" + integrity sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA== dependencies: - "@vitest/spy" "2.1.9" + "@vitest/spy" "2.1.8" estree-walker "^3.0.3" magic-string "^0.30.12" -"@vitest/pretty-format@2.1.9", "@vitest/pretty-format@^2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.9.tgz#434ff2f7611689f9ce70cd7d567eceb883653fdf" - integrity sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ== +"@vitest/pretty-format@2.1.8", "@vitest/pretty-format@^2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.8.tgz#88f47726e5d0cf4ba873d50c135b02e4395e2bca" + integrity sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ== dependencies: tinyrainbow "^1.2.0" -"@vitest/runner@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.9.tgz#cc18148d2d797fd1fd5908d1f1851d01459be2f6" - integrity sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g== +"@vitest/runner@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.8.tgz#b0e2dd29ca49c25e9323ea2a45a5125d8729759f" + integrity sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg== dependencies: - "@vitest/utils" "2.1.9" + "@vitest/utils" "2.1.8" pathe "^1.1.2" -"@vitest/snapshot@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.9.tgz#24260b93f798afb102e2dcbd7e61c6dfa118df91" - integrity sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ== +"@vitest/snapshot@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.8.tgz#d5dc204f4b95dc8b5e468b455dfc99000047d2de" + integrity sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg== dependencies: - "@vitest/pretty-format" "2.1.9" + "@vitest/pretty-format" "2.1.8" magic-string "^0.30.12" pathe "^1.1.2" -"@vitest/spy@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.9.tgz#cb28538c5039d09818b8bfa8edb4043c94727c60" - integrity sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ== +"@vitest/spy@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.8.tgz#bc41af3e1e6a41ae3b67e51f09724136b88fa447" + integrity sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg== dependencies: tinyspy "^3.0.2" "@vitest/ui@^2.0.5": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-2.1.9.tgz#9e876cf3caf492dd6fddbd7f87b2d6bf7186a7a9" - integrity sha512-izzd2zmnk8Nl5ECYkW27328RbQ1nKvkm6Bb5DAaz1Gk59EbLkiCMa6OLT0NoaAYTjOFS6N+SMYW1nh4/9ljPiw== + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-2.1.8.tgz#4a4d88e20bcced4c8710826cd4e2795f5ec1f0a1" + integrity sha512-5zPJ1fs0ixSVSs5+5V2XJjXLmNzjugHRyV11RqxYVR+oMcogZ9qTuSfKW+OcTV0JeFNznI83BNylzH6SSNJ1+w== dependencies: - "@vitest/utils" "2.1.9" + "@vitest/utils" "2.1.8" fflate "^0.8.2" flatted "^3.3.1" pathe "^1.1.2" @@ -1161,12 +1021,12 @@ tinyglobby "^0.2.10" tinyrainbow "^1.2.0" -"@vitest/utils@2.1.9": - version "2.1.9" - resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.9.tgz#4f2486de8a54acf7ecbf2c5c24ad7994a680a6c1" - integrity sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ== +"@vitest/utils@2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.8.tgz#f8ef85525f3362ebd37fd25d268745108d6ae388" + integrity sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA== dependencies: - "@vitest/pretty-format" "2.1.9" + "@vitest/pretty-format" "2.1.8" loupe "^3.1.2" tinyrainbow "^1.2.0" @@ -1180,10 +1040,15 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.10.0, acorn@^8.15.0, acorn@^8.9.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== +acorn@^8.10.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +acorn@^8.14.0, acorn@^8.9.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== agent-base@^7.0.2, agent-base@^7.1.0: version "7.1.1" @@ -1207,7 +1072,7 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1224,14 +1089,14 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@5.3.0: +aria-query@5.3.0, 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" -aria-query@^5.0.0, aria-query@^5.3.0: +aria-query@^5.0.0: version "5.3.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== @@ -1251,6 +1116,15 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== +axios@>=1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axobject-query@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" @@ -1262,27 +1136,27 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bootstrap-icons@^1.11.3: - version "1.13.1" - resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.13.1.tgz#0aad3f5b55b67402990e729ce3883416f9cef6c5" - integrity sha512-ijombt4v6bv5CLeXvRWKy7CuM3TRTuPEuGaGKvTV5cz65rQSY8RQ2JcHt6b90cBBAC7s8fsf2EkQDldzCoXUjw== + version "1.11.3" + resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.11.3.tgz#03f9cb754ec005c52f9ee616e2e84a82cab3084b" + integrity sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww== bootstrap@^5.3.3: - version "5.3.6" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.6.tgz#fbd91ebaff093f5b191a1c01a8c866d24f9fa6e1" - integrity sha512-jX0GAcRzvdwISuvArXn3m7KZscWWFAf1MKBcnzaN02qWMb3jpMoUX4/qgeiGzqyIb4ojulRzs89UCUmGcFSzTA== + version "5.3.3" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.3.tgz#de35e1a765c897ac940021900fcbb831602bac38" + integrity sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg== brace-expansion@^1.1.7: - version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" - integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" @@ -1315,9 +1189,9 @@ callsites@^3.0.0: integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== chai@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.2.0.tgz#1358ee106763624114addf84ab02697e411c9c05" - integrity sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw== + version "5.1.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.2.tgz#3afbc340b994ae3610ca519a6c70ace77ad4378d" + integrity sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw== dependencies: assertion-error "^2.0.1" check-error "^2.1.1" @@ -1347,9 +1221,9 @@ check-error@^2.1.1: integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== chokidar@^4.0.0, chokidar@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" - integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" + integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== dependencies: readdirp "^4.0.1" @@ -1369,15 +1243,6 @@ cli-color@^2.0.3: memoizee "^0.4.15" timers-ext "^0.1.7" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - code-red@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35" @@ -1396,27 +1261,11 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" - integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1443,7 +1292,7 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^7.0.6: +cross-spawn@^7.0.5: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -1500,14 +1349,7 @@ debug@4: dependencies: ms "^2.1.3" -debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.4.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== - dependencies: - ms "^2.1.3" - -debug@^4.3.7: +debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.7: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== @@ -1543,11 +1385,6 @@ define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1563,11 +1400,6 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== - devalue@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/devalue/-/devalue-5.1.1.tgz#a71887ac0f354652851752654e4bd435a53891ae" @@ -1583,11 +1415,6 @@ dom-accessibility-api@^0.6.3: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" @@ -1606,9 +1433,9 @@ es-errors@^1.3.0: integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^1.5.4: - version "1.6.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" - integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + version "1.5.4" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" + integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw== es5-ext@>=0.10.64, es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.2: version "0.10.64" @@ -1705,11 +1532,6 @@ esbuild@^0.21.3: "@esbuild/win32-ia32" "0.21.5" "@esbuild/win32-x64" "0.21.5" -escalade@^3.1.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" @@ -1752,10 +1574,10 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@^8.3.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82" - integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== +eslint-scope@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1765,35 +1587,34 @@ eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint-visitor-keys@^4.2.0, eslint-visitor-keys@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" - integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== eslint@^9.11.0: - version "9.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.28.0.tgz#b0bcbe82a16945a40906924bea75e8b4980ced7d" - integrity sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ== + version "9.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6" + integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.20.0" - "@eslint/config-helpers" "^0.2.1" - "@eslint/core" "^0.14.0" - "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.28.0" - "@eslint/plugin-kit" "^0.3.1" + "@eslint/config-array" "^0.19.0" + "@eslint/core" "^0.9.0" + "@eslint/eslintrc" "^3.2.0" + "@eslint/js" "9.16.0" + "@eslint/plugin-kit" "^0.2.3" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.2" + "@humanwhocodes/retry" "^0.4.1" "@types/estree" "^1.0.6" "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.6" + cross-spawn "^7.0.5" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.3.0" + eslint-scope "^8.2.0" eslint-visitor-keys "^4.2.0" espree "^10.3.0" esquery "^1.5.0" @@ -1811,10 +1632,10 @@ eslint@^9.11.0: natural-compare "^1.4.0" optionator "^0.9.3" -esm-env@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.2.tgz#263c9455c55861f41618df31b20cb571fc20b75e" - integrity sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA== +esm-env@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.2.0.tgz#637c0586244c0eb14bfd7f5e96a6b43b9e8f5c2b" + integrity sha512-OhSQuHL3mUcaQHjGe8UMG8GsJIJHYYz0flR0h9fiTPNMupLMkb7TvcRD0EeJXW5a8GHBgfz08b6FDLNK7kkPQA== esniff@^2.0.1: version "2.0.1" @@ -1827,13 +1648,13 @@ esniff@^2.0.1: type "^2.7.2" espree@^10.0.1, espree@^10.3.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" - integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== dependencies: - acorn "^8.15.0" + acorn "^8.14.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^4.2.1" + eslint-visitor-keys "^4.2.0" espree@^9.6.1: version "9.6.1" @@ -1906,15 +1727,15 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.8" + micromatch "^4.0.4" fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -1927,21 +1748,16 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== dependencies: reusify "^1.0.4" -fdir@^6.2.0: - version "6.4.6" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.6.tgz#2b268c0232697063111bbf3f64810a2a741ba281" - integrity sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w== - -fdir@^6.4.3: - version "6.4.3" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" - integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== +fdir@^6.2.0, fdir@^6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.2.tgz#ddaa7ce1831b161bc3657bb99cb36e1622702689" + integrity sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ== fflate@^0.8.2: version "0.8.2" @@ -1986,9 +1802,14 @@ flat-cache@^4.0.0: keyv "^4.5.4" flatted@^3.2.9, flatted@^3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" - integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" + integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== form-data@^4.0.0: version "4.0.0" @@ -2029,11 +1850,6 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" @@ -2162,25 +1978,20 @@ iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -ignore@^7.0.0: - version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - immutable@^5.0.2: - version "5.1.3" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.3.tgz#e6486694c8b76c37c063cca92399fa64098634d4" - integrity sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg== + version "5.0.3" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.0.3.tgz#aa037e2313ea7b5d400cd9298fa14e404c933db1" + integrity sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw== import-fresh@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -2223,12 +2034,7 @@ intl-messageformat@^10.5.3: "@formatjs/icu-messageformat-parser" "2.8.0" tslib "^2.7.0" -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-docker@^2.0.0, is-docker@^2.1.1: +is-docker@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -2238,11 +2044,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -2266,13 +2067,13 @@ is-promise@^2.2.2: integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== is-reference@^3.0.0, is-reference@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.3.tgz#9ef7bf9029c70a67b2152da4adf57c23d718910f" - integrity sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw== + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c" + integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg== dependencies: - "@types/estree" "^1.0.6" + "@types/estree" "*" -is-wsl@^2.1.1, is-wsl@^2.2.0: +is-wsl@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -2427,9 +2228,9 @@ lodash@^4.17.21: integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loupe@^3.1.0, loupe@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.3.tgz#042a8f7986d77f3d0f98ef7990a2b2fef18b0fd2" - integrity sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug== + version "3.1.2" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.2.tgz#c86e0696804a02218f2206124c45d8b15291a240" + integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== lru-queue@^0.1.0: version "0.1.0" @@ -2443,17 +2244,24 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -magic-string@^0.30.10: +magic-string@^0.30.10, magic-string@^0.30.4: version "0.30.11" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" -magic-string@^0.30.12, magic-string@^0.30.4, magic-string@^0.30.5: - version "0.30.17" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" - integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== +magic-string@^0.30.12: + version "0.30.15" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.15.tgz#d5474a2c4c5f35f041349edaba8a5cb02733ed3c" + integrity sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +magic-string@^0.30.5: + version "0.30.14" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.14.tgz#e9bb29870b81cfc1ec3cc656552f5a7fcbf19077" + integrity sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -2481,7 +2289,7 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@>=4.0.8, micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: +micromatch@>=4.0.8, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -2531,9 +2339,9 @@ mri@^1.1.0: integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== mrmime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" - integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@^2.1.3: version "2.1.3" @@ -2550,11 +2358,6 @@ nanoid@^3.3.7: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== -nanoid@^3.3.8: - version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2571,9 +2374,9 @@ node-addon-api@^7.0.0: integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== nostr-tools@^2.7.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.15.0.tgz#cd119006681a861cabcdcf0200d29fd9864ddab8" - integrity sha512-Jj/+UFbu3JbTAWP4ipPFNuyD4W5eVRBNAP+kmnoRCYp3bLmTrlQ0Qhs5O1xSQJTFpjdZqoS0zZOUKdxUdjc+pw== + version "2.10.4" + resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.10.4.tgz#2ba0a36d1f2e1b3d77c724ca8fad880c8de6844d" + integrity sha512-biU7sk+jxHgVASfobg2T5ttxOGGSt69wEVBC51sHHOEaKAAdzHBLV/I2l9Rf61UzClhliZwNouYhqIso4a3HYg== dependencies: "@noble/ciphers" "^0.5.1" "@noble/curves" "1.2.0" @@ -2581,6 +2384,7 @@ nostr-tools@^2.7.1: "@scure/base" "1.1.1" "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" + optionalDependencies: nostr-wasm "0.1.0" nostr-wasm@0.1.0: @@ -2613,15 +2417,6 @@ open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^8.4.0: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -2737,17 +2532,17 @@ picomatch@^4.0.2: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -playwright-core@1.53.0: - version "1.53.0" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.53.0.tgz#bf2738cc143116b6130b78e0c644edf2e7e53ff4" - integrity sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw== +playwright-core@1.49.1: + version "1.49.1" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.49.1.tgz#32c62f046e950f586ff9e35ed490a424f2248015" + integrity sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg== -playwright@1.53.0: - version "1.53.0" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.53.0.tgz#4eae78aa24e3c714bf71981f80b3310b838692fd" - integrity sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q== +playwright@1.49.1: + version "1.49.1" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.49.1.tgz#830266dbca3008022afa7b4783565db9944ded7c" + integrity sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA== dependencies: - playwright-core "1.53.0" + playwright-core "1.49.1" optionalDependencies: fsevents "2.3.2" @@ -2777,7 +2572,7 @@ postcss-selector-parser@^6.1.0: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss@^8.4.38, postcss@^8.4.39: +postcss@^8.4.38, postcss@^8.4.39, postcss@^8.4.43: version "8.4.49" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== @@ -2786,29 +2581,20 @@ postcss@^8.4.38, postcss@^8.4.39: picocolors "^1.1.1" source-map-js "^1.2.1" -postcss@^8.4.43: - version "8.5.3" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" - integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== - dependencies: - nanoid "^3.3.8" - picocolors "^1.1.1" - source-map-js "^1.2.1" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier-plugin-svelte@^3.2.6: - version "3.4.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-3.4.0.tgz#ed0a860b22d39682c1db5c2a210b3db073b4f689" - integrity sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ== + version "3.3.2" + resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.2.tgz#f0c0b023a697f5cb43fb7257170e3d8762b547c6" + integrity sha512-kRPjH8wSj2iu+dO+XaUv4vD8qr5mdDmlak3IT/7AOgGIMRG86z/EHOLauFcClKEnOUf4A4nOA7sre5KrJD4Raw== prettier@^3.3.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" - integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + version "3.4.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" + integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== pretty-format@^27.0.2: version "27.5.1" @@ -2819,6 +2605,11 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + punycode@^2.1.0, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -2835,9 +2626,9 @@ react-is@^17.0.1: integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== readdirp@^4.0.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" - integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + version "4.0.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" + integrity sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== redent@^3.0.0: version "3.0.0" @@ -2847,10 +2638,10 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== resolve-from@^4.0.0: version "4.0.0" @@ -2858,9 +2649,9 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rimraf@^2.6.3: version "2.7.1" @@ -2869,43 +2660,31 @@ rimraf@^2.6.3: dependencies: glob "^7.1.3" -rollup-plugin-visualizer@^5.12.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.14.0.tgz#be82d43fb3c644e396e2d50ac8a53d354022d57c" - integrity sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA== - dependencies: - open "^8.4.0" - picomatch "^4.0.2" - source-map "^0.7.4" - yargs "^17.5.1" - rollup@^4.20.0: - version "4.40.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.40.1.tgz#03d6c53ebb6a9c2c060ae686a61e72a2472b366f" - integrity sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw== + version "4.27.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.27.4.tgz#b23e4ef4fe4d0d87f5237dacf63f95a499503897" + integrity sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw== dependencies: - "@types/estree" "1.0.7" + "@types/estree" "1.0.6" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.40.1" - "@rollup/rollup-android-arm64" "4.40.1" - "@rollup/rollup-darwin-arm64" "4.40.1" - "@rollup/rollup-darwin-x64" "4.40.1" - "@rollup/rollup-freebsd-arm64" "4.40.1" - "@rollup/rollup-freebsd-x64" "4.40.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.40.1" - "@rollup/rollup-linux-arm-musleabihf" "4.40.1" - "@rollup/rollup-linux-arm64-gnu" "4.40.1" - "@rollup/rollup-linux-arm64-musl" "4.40.1" - "@rollup/rollup-linux-loongarch64-gnu" "4.40.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.40.1" - "@rollup/rollup-linux-riscv64-gnu" "4.40.1" - "@rollup/rollup-linux-riscv64-musl" "4.40.1" - "@rollup/rollup-linux-s390x-gnu" "4.40.1" - "@rollup/rollup-linux-x64-gnu" "4.40.1" - "@rollup/rollup-linux-x64-musl" "4.40.1" - "@rollup/rollup-win32-arm64-msvc" "4.40.1" - "@rollup/rollup-win32-ia32-msvc" "4.40.1" - "@rollup/rollup-win32-x64-msvc" "4.40.1" + "@rollup/rollup-android-arm-eabi" "4.27.4" + "@rollup/rollup-android-arm64" "4.27.4" + "@rollup/rollup-darwin-arm64" "4.27.4" + "@rollup/rollup-darwin-x64" "4.27.4" + "@rollup/rollup-freebsd-arm64" "4.27.4" + "@rollup/rollup-freebsd-x64" "4.27.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.27.4" + "@rollup/rollup-linux-arm-musleabihf" "4.27.4" + "@rollup/rollup-linux-arm64-gnu" "4.27.4" + "@rollup/rollup-linux-arm64-musl" "4.27.4" + "@rollup/rollup-linux-powerpc64le-gnu" "4.27.4" + "@rollup/rollup-linux-riscv64-gnu" "4.27.4" + "@rollup/rollup-linux-s390x-gnu" "4.27.4" + "@rollup/rollup-linux-x64-gnu" "4.27.4" + "@rollup/rollup-linux-x64-musl" "4.27.4" + "@rollup/rollup-win32-arm64-msvc" "4.27.4" + "@rollup/rollup-win32-ia32-msvc" "4.27.4" + "@rollup/rollup-win32-x64-msvc" "4.27.4" fsevents "~2.3.2" rrweb-cssom@^0.7.1: @@ -2933,9 +2712,9 @@ sade@^1.7.4, sade@^1.8.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.79.3: - version "1.89.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.89.2.tgz#a771716aeae774e2b529f72c0ff2dfd46c9de10e" - integrity sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA== + version "1.82.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.82.0.tgz#30da277af3d0fa6042e9ceabd0d984ed6d07df70" + integrity sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -2955,16 +2734,11 @@ semver@^7.5.3: resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== -semver@^7.5.4, semver@^7.6.2, semver@^7.6.3: +semver@^7.5.4, semver@^7.6.0, semver@^7.6.2: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== -semver@^7.6.0: - version "7.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" - integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== - set-cookie-parser@^2.6.0: version "2.7.1" resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz#3016f150072202dfbe90fadee053573cc89d2943" @@ -2982,35 +2756,6 @@ set-function-length@^1.2.1: gopd "^1.0.1" has-property-descriptors "^1.0.2" -sharp@^0.33.5: - version "0.33.5" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" - integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== - dependencies: - color "^4.2.3" - detect-libc "^2.0.3" - semver "^7.6.3" - optionalDependencies: - "@img/sharp-darwin-arm64" "0.33.5" - "@img/sharp-darwin-x64" "0.33.5" - "@img/sharp-libvips-darwin-arm64" "1.0.4" - "@img/sharp-libvips-darwin-x64" "1.0.4" - "@img/sharp-libvips-linux-arm" "1.0.5" - "@img/sharp-libvips-linux-arm64" "1.0.4" - "@img/sharp-libvips-linux-s390x" "1.0.4" - "@img/sharp-libvips-linux-x64" "1.0.4" - "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" - "@img/sharp-libvips-linuxmusl-x64" "1.0.4" - "@img/sharp-linux-arm" "0.33.5" - "@img/sharp-linux-arm64" "0.33.5" - "@img/sharp-linux-s390x" "0.33.5" - "@img/sharp-linux-x64" "0.33.5" - "@img/sharp-linuxmusl-arm64" "0.33.5" - "@img/sharp-linuxmusl-x64" "0.33.5" - "@img/sharp-wasm32" "0.33.5" - "@img/sharp-win32-ia32" "0.33.5" - "@img/sharp-win32-x64" "0.33.5" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3028,17 +2773,10 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - sirv@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-3.0.1.tgz#32a844794655b727f9e2867b777e0060fbe07bf3" - integrity sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A== + version "3.0.0" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-3.0.0.tgz#f8d90fc528f65dff04cb597a88609d4e8a4361ce" + integrity sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg== dependencies: "@polka/url" "^1.0.0-next.24" mrmime "^2.0.0" @@ -3049,15 +2787,15 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== -source-map@^0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== +source-map-js@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== stackback@0.0.2: version "0.0.2" @@ -3069,22 +2807,6 @@ std-env@^3.8.0: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -3105,14 +2827,14 @@ supports-color@^7.1.0: has-flag "^4.0.0" svelte-bootstrap-icons@^3.1.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/svelte-bootstrap-icons/-/svelte-bootstrap-icons-3.3.0.tgz#c1c8f4185987d77ddf78b3c08a83764e8d369fde" - integrity sha512-45aETbpKqrogpxuj2FAJ3vgIn47DZqqsyMtp7S+iRtX99W7zmFB7rgLrCa2ZtlhJavWOUR/gesRSiJeaVg4vVw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/svelte-bootstrap-icons/-/svelte-bootstrap-icons-3.1.1.tgz#aafacdffd0082ef1aea041784f7818f40083089a" + integrity sha512-ghJlt6TX3IX35M7wSvGyrmVgXeT5GMRF+7+q6L4OUT2RJWF09mQIvZTZ04Ii3FBfg10KdzFdvVuoB8M0cVHfzw== svelte-check@^4.0.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-4.2.1.tgz#d332582f24b40967f3c56b8e2d74c306044cecdf" - integrity sha512-e49SU1RStvQhoipkQ/aonDhHnG3qxHSBtNfBRb9pxVXoa+N7qybAo32KgA9wEb2PCYFNaDg7bZCdhLD1vHpdYA== + version "4.1.1" + resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-4.1.1.tgz#4d6a97651bdcff84ad10521d0394ce094dee187a" + integrity sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw== dependencies: "@jridgewell/trace-mapping" "^0.3.25" chokidar "^4.0.1" @@ -3155,9 +2877,9 @@ svelte-preprocess@^6.0.2: integrity sha512-PLG2k05qHdhmRG7zR/dyo5qKvakhm8IJ+hD2eFRQmMLHp7X3eJnjeupUtvuRpbNiF31RjVw45W+abDwHEmP5OA== svelte@^4.2.19: - version "4.2.20" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.20.tgz#31cae3e8f10ccdc6441fae8157c1e8da5965d228" - integrity sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q== + version "4.2.19" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.19.tgz#4e6e84a8818e2cd04ae0255fcf395bc211e61d4c" + integrity sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw== dependencies: "@ampproject/remapping" "^2.2.1" "@jridgewell/sourcemap-codec" "^1.4.15" @@ -3201,16 +2923,16 @@ tinybench@^2.9.0: integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg== tinyexec@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" - integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== + version "0.3.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" + integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== tinyglobby@^0.2.10: - version "0.2.11" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.11.tgz#9182cff655a0e272aad850d1a84c5e8e0f700426" - integrity sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g== + version "0.2.10" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.10.tgz#e712cf2dc9b95a1f5c5bbd159720e15833977a0f" + integrity sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew== dependencies: - fdir "^6.4.3" + fdir "^6.4.2" picomatch "^4.0.2" tinypool@^1.0.1: @@ -3273,16 +2995,21 @@ tr46@^5.0.0: dependencies: punycode "^2.3.1" -ts-api-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" - integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== +ts-api-utils@^1.3.0: + version "1.4.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" + integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== -tslib@^2.4.0, tslib@^2.7.0: +tslib@^2.7.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -3296,18 +3023,23 @@ type@^2.7.2: integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== typescript-eslint@^8.7.0: - version "8.34.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.34.0.tgz#5bc7e405cd0ed5d6f28d86017519700b77ca1298" - integrity sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ== + version "8.18.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.18.0.tgz#41026f27a3481185f3239d817ae5b960572145a0" + integrity sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ== dependencies: - "@typescript-eslint/eslint-plugin" "8.34.0" - "@typescript-eslint/parser" "8.34.0" - "@typescript-eslint/utils" "8.34.0" + "@typescript-eslint/eslint-plugin" "8.18.0" + "@typescript-eslint/parser" "8.18.0" + "@typescript-eslint/utils" "8.18.0" typescript@^5.5.4: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + version "5.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" + integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== + +undici@>=5.28.4, undici@^5.25.4: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.19.8.tgz#002d7c8a28f8cc3a44ff33c3d4be4d85e15d40e1" + integrity sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g== universalify@^2.0.0: version "2.0.1" @@ -3326,10 +3058,15 @@ util-deprecate@^1.0.2: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -vite-node@2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.9.tgz#549710f76a643f1c39ef34bdb5493a944e4f895f" - integrity sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +vite-node@2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.8.tgz#9495ca17652f6f7f95ca7c4b568a235e0c8dbac5" + integrity sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg== dependencies: cac "^6.7.14" debug "^4.3.7" @@ -3337,21 +3074,10 @@ vite-node@2.1.9: pathe "^1.1.2" vite "^5.0.0" -vite@^5.0.0: - version "5.4.14" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.14.tgz#ff8255edb02134df180dcfca1916c37a6abe8408" - integrity sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA== - dependencies: - esbuild "^0.21.3" - postcss "^8.4.43" - rollup "^4.20.0" - optionalDependencies: - fsevents "~2.3.3" - -vite@^5.4.7: - version "5.4.19" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.19.tgz#20efd060410044b3ed555049418a5e7d1998f959" - integrity sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA== +vite@^5.0.0, vite@^5.4.7: + version "5.4.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5" + integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q== dependencies: esbuild "^0.21.3" postcss "^8.4.43" @@ -3364,18 +3090,25 @@ vitefu@^0.2.5: resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.5.tgz#c1b93c377fbdd3e5ddd69840ea3aa70b40d90969" integrity sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q== -vitest@^2.1.1: - version "2.1.9" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.9.tgz#7d01ffd07a553a51c87170b5e80fea3da7fb41e7" - integrity sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q== +vitest-github-actions-reporter@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/vitest-github-actions-reporter/-/vitest-github-actions-reporter-0.11.1.tgz#42ffaaf9d3b182cfb7552532f9d1e290190914e0" + integrity sha512-ZHHB0wBgOPhMYCB17WKVlJZa+5SdudBZFoVoebwfq3ioIUTeLQGYHwh85vpdJAxRghLP8d0qI/6eCTueGyDVXA== dependencies: - "@vitest/expect" "2.1.9" - "@vitest/mocker" "2.1.9" - "@vitest/pretty-format" "^2.1.9" - "@vitest/runner" "2.1.9" - "@vitest/snapshot" "2.1.9" - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" + "@actions/core" "^1.10.0" + +vitest@^2.1.1: + version "2.1.8" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.8.tgz#2e6a00bc24833574d535c96d6602fb64163092fa" + integrity sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ== + dependencies: + "@vitest/expect" "2.1.8" + "@vitest/mocker" "2.1.8" + "@vitest/pretty-format" "^2.1.8" + "@vitest/runner" "2.1.8" + "@vitest/snapshot" "2.1.8" + "@vitest/spy" "2.1.8" + "@vitest/utils" "2.1.8" chai "^5.1.2" debug "^4.3.7" expect-type "^1.1.0" @@ -3387,7 +3120,7 @@ vitest@^2.1.1: tinypool "^1.0.1" tinyrainbow "^1.2.0" vite "^5.0.0" - vite-node "2.1.9" + vite-node "2.1.8" why-is-node-running "^2.3.0" w3c-xmlserializer@^5.0.0: @@ -3442,15 +3175,6 @@ word-wrap@^1.2.5: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -3471,11 +3195,6 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" @@ -3486,24 +3205,6 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.5.1: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"