diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index f6899f2..fe38500 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 }} @@ -90,7 +81,7 @@ jobs: - name: Check GZipped directory size run: | # Set the threshold size in bytes - THRESHOLD=410000 + THRESHOLD=409600 # Calculate the total size of files in the directory DIRECTORY_SIZE=$(du -b -s build_gz | awk '{print $1}') @@ -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 + /tmp/mklittlefs/mklittlefs -c build_gz -s 409600 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..9c4937d 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": { @@ -62,12 +58,14 @@ "msgpack-es": "^0.0.5", "nostr-tools": "^2.7.1", "patch-package": "^8.0.0", - "svelte-bootstrap-icons": "^3.1.1", "svelte-i18n": "^4.0.0" }, "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/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/icons/EyeIcon.svelte b/src/icons/EyeIcon.svelte new file mode 100644 index 0000000..dd7513a --- /dev/null +++ b/src/icons/EyeIcon.svelte @@ -0,0 +1,13 @@ + + + + diff --git a/src/icons/EyeSlashIcon.svelte b/src/icons/EyeSlashIcon.svelte new file mode 100644 index 0000000..bf45888 --- /dev/null +++ b/src/icons/EyeSlashIcon.svelte @@ -0,0 +1,18 @@ + + + + + diff --git a/src/lib/components/ColorSchemeSwitcher.svelte b/src/lib/components/ColorSchemeSwitcher.svelte deleted file mode 100644 index 9d7e32a..0000000 --- a/src/lib/components/ColorSchemeSwitcher.svelte +++ /dev/null @@ -1,53 +0,0 @@ - - - - - {theme === 'auto' ? '🌗' : theme === 'dark' ? '🌙' : '☀️'} - - - setTheme('light')} - >☀️ Light - setTheme('dark')}>🌙 Dark - setTheme('auto')}>🌗 Auto - - 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/ToggleHeader.svelte b/src/lib/components/ToggleHeader.svelte deleted file mode 100644 index acc8d3b..0000000 --- a/src/lib/components/ToggleHeader.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - -

- (isOpen = !isOpen)} - tabindex="0" - on:keypress={() => (isOpen = !isOpen)} - > - {#if isOpen} - - {:else} - - {/if} - {header} - -

- - - 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 2287d5b..0000000 --- a/src/lib/components/settings/ExtraFeaturesSettings.svelte +++ /dev/null @@ -1,307 +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 2044e49..946b962 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", @@ -42,38 +42,7 @@ "httpAuthUser": "WebUI-Benutzername", "httpAuthPass": "WebUI-Passwort", "httpAuthText": "Schützt nur die WebUI mit einem Passwort, nicht API-Aufrufe.", - "currencies": "Währungen", - "mowMode": "Mow suffixmodus", - "suffixShareDot": "Kompakte Suffix-Notation", - "section": { - "displaysAndLed": "Anzeigen und LEDs", - "screenSettings": "Infospezifisch", - "dataSource": "Datenquelle", - "extraFeatures": "Zusätzliche Funktionen", - "system": "System" - }, - "ledFlashOnZap": "LED blinkt bei Nostr Zap", - "flFlashOnZap": "Displaybeleuchting bei Nostr Zap", - "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" + "currencies": "Währungen" }, "control": { "systemInfo": "Systeminfo", @@ -101,9 +70,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", @@ -115,8 +82,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 c3f0930..a9ba033 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", - "useNostr": "Use Nostr data source", + "nostrZapNotify": "Nostr Zap Notifications", + "useNostr": "Use Nostr datasource", "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,41 +53,8 @@ "httpAuthPass": "WebUI Password", "httpAuthText": "Only password-protects WebUI, not API-calls.", "currencies": "Currencies", - "customSource": "Use custom data source endpoint", - "useNostrTooltip": "Very experimental and unstable. Nostr data source is not required for Nostr Zap notifications.", - "mowMode": "Mow Suffix Mode", - "suffixShareDot": "Suffix compact notation", - "section": { - "displaysAndLed": "Displays and LEDs", - "screenSettings": "Screen specific", - "dataSource": "Data source", - "extraFeatures": "Extra features", - "system": "System" - }, - "ledFlashOnZap": "LED flash on Nostr Zap", - "flFlashOnZap": "Frontlight flash on Nostr Zap", - "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" + "stagingSource": "Use Staging datasource (for development)", + "useNostrTooltip": "Very experimental and unstable. Nostr data source is not required for Nostr Zap notifications." }, "control": { "systemInfo": "System info", @@ -120,9 +84,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.", @@ -134,8 +96,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 4033cab..5eced4c 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", @@ -41,38 +41,7 @@ "httpAuthUser": "Nombre de usuario WebUI", "httpAuthPass": "Contraseña WebUI", "httpAuthText": "Solo la WebUI está protegida con contraseña, no las llamadas API.", - "currencies": "Monedas", - "mowMode": "Modo de sufijo Mow", - "suffixShareDot": "Notación compacta de sufijo", - "section": { - "displaysAndLed": "Pantallas y LED", - "screenSettings": "Específico de la pantalla", - "dataSource": "fuente de datos", - "extraFeatures": "Funciones adicionales", - "system": "Sistema" - }, - "ledFlashOnZap": "LED parpadeante con Nostr Zap", - "flFlashOnZap": "Flash de luz frontal con Nostr Zap", - "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" + "currencies": "Monedas" }, "control": { "turnOff": "Apagar", @@ -100,9 +69,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", @@ -114,8 +81,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 b239905..f126bcf 100644 --- a/src/lib/locales/nl.json +++ b/src/lib/locales/nl.json @@ -42,29 +42,7 @@ "httpAuthUser": "WebUI-gebruikersnaam", "httpAuthPass": "WebUI-wachtwoord", "httpAuthText": "Beveiligd enkel WebUI, niet de API.", - "currencies": "Valuta's", - "mowMode": "Mow achtervoegsel", - "suffixShareDot": "Achtervoegsel compacte notatie", - "section": { - "displaysAndLed": "Displays en LED's", - "screenSettings": "Schermspecifiek", - "dataSource": "Gegevensbron", - "extraFeatures": "Extra functies", - "system": "Systeem" - }, - "ledFlashOnZap": "Knipper LED bij Nostr Zap", - "flFlashOnZap": "Knipper displaylicht bij Nostr Zap", - "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" + "currencies": "Valuta's" }, "control": { "systemInfo": "Systeeminformatie", @@ -91,9 +69,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", @@ -105,8 +81,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..00bf40b 100644 --- a/src/lib/style/app.scss +++ b/src/lib/style/app.scss @@ -1,33 +1,19 @@ -@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'; -$color-mode-type: data; +$color-mode-type: media-query; $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..a34ea20 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -12,12 +12,9 @@ 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'; export const setLocale = (lang: string) => () => { locale.set(lang); @@ -40,20 +37,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 +60,8 @@ }; - - ₿TClock - - + + ₿TClock @@ -96,11 +77,8 @@ {#if !$isLoading} - - {getFlagEmoji($currentLocale)} - {languageNames[$currentLocale] || 'English'} + + {getFlagEmoji($locale)} {languageNames[$locale]} {#each $locales as locale} {/if} - -
- -
+ 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 fc3d76e..d89ee10 100644 --- a/src/routes/Control.svelte +++ b/src/routes/Control.svelte @@ -17,7 +17,6 @@ } from '@sveltestrap/sveltestrap'; import FirmwareUpdater from './FirmwareUpdater.svelte'; import { uiSettings } from '$lib/uiSettings'; - import { Placeholder } from '$lib/components'; export let settings = {}; @@ -106,8 +105,8 @@ export let xxl = xl; - - + + {$_('section.control.title', { default: 'Control' })} @@ -215,16 +214,15 @@ {/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}
  • @@ -241,7 +239,7 @@ {#if $settings.otaEnabled}

    {$_('section.control.firmwareUpdate')}

    - + {/if}
    diff --git a/src/routes/FirmwareUpdater.svelte b/src/routes/FirmwareUpdater.svelte index 06f4d0e..2f467c4 100644 --- a/src/routes/FirmwareUpdater.svelte +++ b/src/routes/FirmwareUpdater.svelte @@ -4,12 +4,11 @@ import { _ } from 'svelte-i18n'; import { writable } from 'svelte/store'; import { Progress, Alert, Button } from '@sveltestrap/sveltestrap'; - import HourglassSplitIcon from 'svelte-bootstrap-icons/lib/HourglassSplit.svelte'; const dispatch = createEventDispatcher(); export let settings = { hwRev: '' }; - export let status = writable({ isOTAUpdating: false }); + let currentVersion: string = $settings.gitTag; // Replace with your current version let latestVersion: string = ''; @@ -113,25 +112,6 @@ return binaryFilename; }; - const getWebUiBinaryName = () => { - let webuiFilename = ''; - switch ($settings.hwRev) { - case 'REV_V8_EPD_2_13': - webuiFilename = 'littlefs_16MB.bin'; - break; - case 'REV_B_EPD_2_13': - webuiFilename = 'littlefs_8MB.bin'; - break; - case 'REV_A_EPD_2_13': - webuiFilename = 'littlefs_4MB.bin'; - break; - default: - webuiFilename = 'Unsupported hardware, unable to determine WebUI binary filename'; - } - - return webuiFilename; - }; - const onAutoUpdate = async (e: Event) => { e.preventDefault(); @@ -208,12 +188,8 @@ )}: {releaseDate} - {$_('section.firmwareUpdater.viewRelease')}
    {#if isNewerVersionAvailable} - {#if !$status.isOTAUpdating} - {$_('section.firmwareUpdater.swUpdateAvailable')} - - {$_('section.firmwareUpdater.autoUpdate')}. - {:else} - {$_('section.firmwareUpdater.autoUpdateInProgress')} - {/if} + {$_('section.firmwareUpdater.swUpdateAvailable')} - + {$_('section.firmwareUpdater.autoUpdate')}. {:else} {$_('section.firmwareUpdater.swUpToDate')} {/if} @@ -223,59 +199,57 @@ {:else}

    Loading...

    {/if} -{#if !$status.isOTAUpdating} -
    -
    - - handleFileChange(e, (file) => (firmwareUploadFile = file))} - name="update" - class="form-control" - accept=".bin" - /> -
    -
    - -
    -
    - - 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..40df8d3 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} -
    - - - - - + + + + + + + + + + - - - - + + + + + + {$_('time.minutes')} + + + + + + + + + {$_('time.minutes')} + + + + + + + + + {$_('time.seconds')} + + {$_('section.settings.shortAmountsWarning')} + + + + + + + + {$_('time.minutes')} + + + {$_('section.settings.tzOffsetHelpText')} + + + + + + + + + {#if $settings.hasFrontlight && !$settings.flDisable} + + + + - - {/if} + + + + + + + {/if} + {#if !$settings.flDisable && $settings.hasLightLevel} + + + + + + + {/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} + + + + + + + + HTTPS + + + {$_('section.settings.mempoolInstanceHelpText')} + + + {#if $settings.httpAuthEnabled} + + + + + + + + + + + + + + {$_('section.settings.httpAuthText')} + + + {/if} + + + + + + + + + + + {#each wifiTxPowerMap as [key, value]} + + {/each} + + {$_('section.settings.wifiTxPowerText')} + + + + + + + + {$_('time.seconds')} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {#if $settings.hasFrontlight} + + + + {/if} + {#if $settings.hasFrontlight && !$settings.flDisable} + + + + + + + {/if} + {#if !$settings.actCurrencies} + + + + {/if} + + + + {#if $settings.nostrRelay} + + + + {$_('section.settings.useNostrTooltip')} + + + {/if} + {#if 'nostrZapNotify' in $settings} + + + + {/if} + {#if 'bitaxeEnabled' in $settings} + + + + {/if} + + + + + + + + + + {#if 'stagingSource' in $settings} + + + + {/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} + + + +
    + + +
    +
    diff --git a/src/routes/Status.svelte b/src/routes/Status.svelte index a659af0..7121106 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/svelte.config.js b/svelte.config.js index 6517ee3..4088002 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,11 +1,11 @@ import adapter from '@sveltejs/adapter-static'; -import { sveltePreprocess } from 'svelte-preprocess'; +import preprocess from 'svelte-preprocess'; /** @type {import('@sveltejs/kit').Config} */ const config = { // Consult https://kit.svelte.dev/docs/integrations#preprocessors // for more information about preprocessors - preprocess: sveltePreprocess({}), + preprocess: preprocess({}), build: { rollupOptions: { output: { 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 62% rename from tests/playwright/test.ts rename to tests/test.ts index 92a600d..8e97529 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,23 +135,20 @@ 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('/'); + 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('/'); - await page.getByRole('button', { name: 'Show all' }).click(); for (const field of ['#timePerScreen', '#fullRefreshMin', '#minSecPriceUpd']) { for (const val of ['42', '210']) { @@ -74,11 +178,7 @@ 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(); - const inputField = 'input#fetchEurPrice'; const switchElement = await page.locator(inputField); @@ -97,7 +197,6 @@ test('info message when fetch eur price is enabled', async ({ page }) => { test('npub values will be converted to hex pubkeys', async ({ page }) => { await page.goto('/'); - await page.getByRole('button', { name: 'Show all' }).click(); for (const field of ['#nostrZapPubkey']) { for (const val of ['npub1k5f85zx0xdskyayqpfpc0zq6n7vwqjuuxugkayk72fgynp34cs3qfcvqg2']) { @@ -113,7 +212,6 @@ test('npub values will be converted to hex pubkeys', async ({ page }) => { test('empty nostr relay field is not accepted', async ({ page }) => { await page.goto('/'); - await page.getByRole('button', { name: 'Show all' }).click(); const nostrRelayField = page.getByLabel('Nostr Relay'); @@ -132,7 +230,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 cc02b77..76e526d 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" @@ -30,19 +46,12 @@ integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== "@babel/runtime@^7.12.5": - version "7.26.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.9.tgz#aa4c6facc65b9cb3f87d75125ffd47781b475433" - integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg== + 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: regenerator-runtime "^0.14.0" -"@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== - dependencies: - tslib "^2.4.0" - "@esbuild/aix-ppc64@0.19.12": version "0.19.12" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" @@ -274,9 +283,9 @@ integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.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== + 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" @@ -285,31 +294,24 @@ 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.0" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.20.0.tgz#7a1232e82376712d3340012a2f561a2764d1988f" - integrity sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ== +"@eslint/config-array@^0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.0.tgz#3251a528998de914d59bb21ba4c11767cf1b3519" + integrity sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ== dependencies: - "@eslint/object-schema" "^2.1.6" + "@eslint/object-schema" "^2.1.4" debug "^4.3.1" minimatch "^3.1.2" -"@eslint/config-helpers@^0.2.1": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.2.tgz#3779f76b894de3a8ec4763b79660e6d54d5b1010" - integrity sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg== +"@eslint/core@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.9.0.tgz#168ee076f94b152c01ca416c3e5cf82290ab4fcd" + integrity sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg== -"@eslint/core@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.13.0.tgz#bf02f209846d3bf996f9e8009db62df2739b458c" - integrity sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw== - 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" @@ -321,38 +323,37 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.25.1": - version "9.25.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.25.1.tgz#25f5c930c2b68b5ebe7ac857f754cbd61ef6d117" - integrity sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg== +"@eslint/js@9.15.0": + version "9.15.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.15.0.tgz#df0e24fe869143b59731942128c19938fdbadfb5" + integrity sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg== -"@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.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== -"@eslint/plugin-kit@^0.2.8": - version "0.2.8" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz#47488d8f8171b5d4613e833313f3ce708e3525f8" - integrity sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA== +"@eslint/plugin-kit@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz#812980a6a41ecf3a8341719f92a6d1e784a2e0e8" + integrity sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA== dependencies: - "@eslint/core" "^0.13.0" levn "^0.4.1" "@fontsource/antonio@^5.1.0": - version "5.2.5" - resolved "https://registry.yarnpkg.com/@fontsource/antonio/-/antonio-5.2.5.tgz#dbc5a3203c1e65118b1bff00b519ae321a5c3a1d" - integrity sha512-uijW5qLvBS9+l/UyHl677FV+Us0ofmwhVDIHhh2X/7q9XIp7nqTb8G1Q41zEC8f/t+SD4dMdbW/f4EkWRgaESw== + 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.5" - resolved "https://registry.yarnpkg.com/@fontsource/oswald/-/oswald-5.2.5.tgz#01ef5b61fae44542eb22330255d32b728ee45b0c" - integrity sha512-Sw8ayEYCoOzG2ISw5HaX3d5ILt3OEG2VFX2nzHaGywYD9p0WvVfO4SBK5/y9JGuOty3jA6OhptxOYZgwjTTPLQ== + 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.5" - resolved "https://registry.yarnpkg.com/@fontsource/ubuntu/-/ubuntu-5.2.5.tgz#cd3745524134505608be8779477319bcf6a73db9" - integrity sha512-VKVFVqmJ9MGnOJW2dsQ982qHN8Zr+tNeEwEHnzt5VdGi9ZWL37wYFD32YsqukWlI/+I7v5ZkgHTEAvsZxU6aDA== + 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" @@ -417,123 +418,10 @@ 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.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161" - integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ== - -"@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.5" @@ -602,9 +490,9 @@ integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== "@noble/secp256k1@^2.1.0": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-2.2.3.tgz#c505ced542328ed13315a8d811684d042f7acc5b" - integrity sha512-l7r5oEQym9Us7EAigzg30/PQAvynhMt2uoYtT3t26eGDVm9Yii5mZ5jWSWmZ/oSIR2Et0xfc6DXrG0bZ787V3w== + 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" @@ -627,106 +515,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.52.0" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.52.0.tgz#267ec595b43a8f4fa5e444ea503689629e91a5b8" - integrity sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g== + version "1.49.0" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.49.0.tgz#74227385b58317ee076b86b56d0e1e1b25cff01e" + integrity sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw== dependencies: - playwright "1.52.0" + playwright "1.49.0" "@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" @@ -749,105 +637,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" @@ -884,19 +762,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.7.5" + resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-2.7.5.tgz#234ffbb4a0b7df9146807992849e9f0fedc2b94d" + integrity sha512-8WIrVch2Ze2Rq3eIMPTqIIRFPM2zGQcGKHim2z43KVRdgdtYWBugAQ7nemH9ATnzlvbgztk6hwhEZOi8A8ZOPg== 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" @@ -904,6 +782,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" @@ -926,9 +805,9 @@ 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" @@ -960,9 +839,9 @@ redent "^3.0.0" "@testing-library/svelte@^5.2.1": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@testing-library/svelte/-/svelte-5.2.7.tgz#c759401cd186ad85ab30a981f8c82de3997b994f" - integrity sha512-aGhUaFmEXEVost4QOsbHUUbHLwi7ZZRRxAHFDO2Cmr0BZD3/3+XvaYEPq70Rdw0NRNjdqZHdARBEcrCOkPuAqw== + 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" "^10.0.0" @@ -981,12 +860,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/estree@1.0.7", "@types/estree@^1.0.6": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" - integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== - -"@types/estree@^1.0.0": +"@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== @@ -1001,143 +875,143 @@ resolved "https://registry.yarnpkg.com/@types/swagger-ui/-/swagger-ui-3.52.4.tgz#96c4886e8f86ae392f8d940bf7029cf490a51c72" integrity sha512-7NV7q8BfupqdQxr26OkM0g0YEPB9uXnKGzXadgcearvI9MoCHt3F72lPTX3fZZIlrr21DC0IK26wcDMZ37oFDA== -"@typescript-eslint/eslint-plugin@8.31.1", "@typescript-eslint/eslint-plugin@^8.7.0": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz#62f1befe59647524994e89de4516d8dcba7a850a" - integrity sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ== +"@typescript-eslint/eslint-plugin@8.16.0", "@typescript-eslint/eslint-plugin@^8.7.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.16.0.tgz#ac56825bcdf3b392fc76a94b1315d4a162f201a6" + integrity sha512-5YTHKV8MYlyMI6BaEG7crQ9BhSc8RxzshOReKwZwRWN0+XvvTOm+L/UYLCYxFpfwYuAAqhxiq4yae0CMFwbL7Q== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.31.1" - "@typescript-eslint/type-utils" "8.31.1" - "@typescript-eslint/utils" "8.31.1" - "@typescript-eslint/visitor-keys" "8.31.1" + "@typescript-eslint/scope-manager" "8.16.0" + "@typescript-eslint/type-utils" "8.16.0" + "@typescript-eslint/utils" "8.16.0" + "@typescript-eslint/visitor-keys" "8.16.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" - ts-api-utils "^2.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/parser@8.31.1", "@typescript-eslint/parser@^8.7.0": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.31.1.tgz#e9b0ccf30d37dde724ee4d15f4dbc195995cce1b" - integrity sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q== +"@typescript-eslint/parser@8.16.0", "@typescript-eslint/parser@^8.7.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.16.0.tgz#ee5b2d6241c1ab3e2e53f03fd5a32d8e266d8e06" + integrity sha512-D7DbgGFtsqIPIFMPJwCad9Gfi/hC0PWErRRHFnaCWoEDYi5tQUDiJCTmGUbBiLzjqAck4KcXt9Ayj0CNlIrF+w== dependencies: - "@typescript-eslint/scope-manager" "8.31.1" - "@typescript-eslint/types" "8.31.1" - "@typescript-eslint/typescript-estree" "8.31.1" - "@typescript-eslint/visitor-keys" "8.31.1" + "@typescript-eslint/scope-manager" "8.16.0" + "@typescript-eslint/types" "8.16.0" + "@typescript-eslint/typescript-estree" "8.16.0" + "@typescript-eslint/visitor-keys" "8.16.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz#1eb52e76878f545e4add142e0d8e3e97e7aa443b" - integrity sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw== +"@typescript-eslint/scope-manager@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.16.0.tgz#ebc9a3b399a69a6052f3d88174456dd399ef5905" + integrity sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg== dependencies: - "@typescript-eslint/types" "8.31.1" - "@typescript-eslint/visitor-keys" "8.31.1" + "@typescript-eslint/types" "8.16.0" + "@typescript-eslint/visitor-keys" "8.16.0" -"@typescript-eslint/type-utils@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz#be0f438fb24b03568e282a0aed85f776409f970c" - integrity sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA== +"@typescript-eslint/type-utils@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.16.0.tgz#585388735f7ac390f07c885845c3d185d1b64740" + integrity sha512-IqZHGG+g1XCWX9NyqnI/0CX5LL8/18awQqmkZSl2ynn8F76j579dByc0jhfVSnSnhf7zv76mKBQv9HQFKvDCgg== dependencies: - "@typescript-eslint/typescript-estree" "8.31.1" - "@typescript-eslint/utils" "8.31.1" + "@typescript-eslint/typescript-estree" "8.16.0" + "@typescript-eslint/utils" "8.16.0" debug "^4.3.4" - ts-api-utils "^2.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.31.1.tgz#478ed6f7e8aee1be7b63a60212b6bffe1423b5d4" - integrity sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ== +"@typescript-eslint/types@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.16.0.tgz#49c92ae1b57942458ab83d9ec7ccab3005e64737" + integrity sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ== -"@typescript-eslint/typescript-estree@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz#37792fe7ef4d3021c7580067c8f1ae66daabacdf" - integrity sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag== +"@typescript-eslint/typescript-estree@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.16.0.tgz#9d741e56e5b13469b5190e763432ce5551a9300c" + integrity sha512-E2+9IzzXMc1iaBy9zmo+UYvluE3TW7bCGWSF41hVWUE01o8nzr1rvOQYSxelxr6StUvRcTMe633eY8mXASMaNw== dependencies: - "@typescript-eslint/types" "8.31.1" - "@typescript-eslint/visitor-keys" "8.31.1" + "@typescript-eslint/types" "8.16.0" + "@typescript-eslint/visitor-keys" "8.16.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.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.31.1.tgz#5628ea0393598a0b2f143d0fc6d019f0dee9dd14" - integrity sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ== +"@typescript-eslint/utils@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.16.0.tgz#c71264c437157feaa97842809836254a6fc833c3" + integrity sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.31.1" - "@typescript-eslint/types" "8.31.1" - "@typescript-eslint/typescript-estree" "8.31.1" + "@typescript-eslint/scope-manager" "8.16.0" + "@typescript-eslint/types" "8.16.0" + "@typescript-eslint/typescript-estree" "8.16.0" -"@typescript-eslint/visitor-keys@8.31.1": - version "8.31.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz#6742b0e3ba1e0c1e35bdaf78c03e759eb8dd8e75" - integrity sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw== +"@typescript-eslint/visitor-keys@8.16.0": + version "8.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.16.0.tgz#d5086afc060b01ff7a4ecab8d49d13d5a7b07705" + integrity sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ== dependencies: - "@typescript-eslint/types" "8.31.1" + "@typescript-eslint/types" "8.16.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.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.5.tgz#5a6afa6314cae7a61847927bb5bc038212ca7381" + integrity sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q== dependencies: - "@vitest/spy" "2.1.9" - "@vitest/utils" "2.1.9" + "@vitest/spy" "2.1.5" + "@vitest/utils" "2.1.5" 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.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.5.tgz#54ee50648bc0bb606dfc58e13edfacb8b9208324" + integrity sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ== dependencies: - "@vitest/spy" "2.1.9" + "@vitest/spy" "2.1.5" 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.5", "@vitest/pretty-format@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.5.tgz#bc79b8826d4a63dc04f2a75d2944694039fa50aa" + integrity sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw== 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.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.5.tgz#4d5e2ba2dfc0af74e4b0f9f3f8be020559b26ea9" + integrity sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g== dependencies: - "@vitest/utils" "2.1.9" + "@vitest/utils" "2.1.5" 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.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.5.tgz#a09a8712547452a84e08b3ec97b270d9cc156b4f" + integrity sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg== dependencies: - "@vitest/pretty-format" "2.1.9" + "@vitest/pretty-format" "2.1.5" 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.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.5.tgz#f790d1394a5030644217ce73562e92465e83147e" + integrity sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw== 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.5" + resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-2.1.5.tgz#71e9cc198b481380698c24207359bc2f1ba5cb72" + integrity sha512-ERgKkDMTfngrZip6VG5h8L9B5D0AH/4+bga4yR1UzGH7c2cxv3LWogw2Dvuwr9cP3/iKDHYys7kIFLDKpxORTg== dependencies: - "@vitest/utils" "2.1.9" + "@vitest/utils" "2.1.5" fflate "^0.8.2" flatted "^3.3.1" pathe "^1.1.2" @@ -1145,12 +1019,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.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.5.tgz#0e19ce677c870830a1573d33ee86b0d6109e9546" + integrity sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg== dependencies: - "@vitest/pretty-format" "2.1.9" + "@vitest/pretty-format" "2.1.5" loupe "^3.1.2" tinyrainbow "^1.2.0" @@ -1170,15 +1044,15 @@ acorn@^8.10.0: integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== acorn@^8.14.0: - version "8.14.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" - integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== - -acorn@^8.9.0: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.9.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" + integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== + agent-base@^7.0.2, agent-base@^7.1.0: version "7.1.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" @@ -1201,7 +1075,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== @@ -1245,6 +1119,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" @@ -1261,9 +1144,9 @@ bootstrap-icons@^1.11.3: integrity sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww== bootstrap@^5.3.3: - version "5.3.5" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.5.tgz#be42cfe0d580e97ee1abb7d38ce94f5c393c9bb6" - integrity sha512-ct1CHKtiobRimyGzmsSldEtM03E8fcEX4Tb3dGXz1V8faRwM50+vfHwTzOxB3IlKO7m+9vTH3s/3C6T2EAPeTA== + 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.11" @@ -1309,9 +1192,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" @@ -1341,9 +1224,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" @@ -1363,15 +1246,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" @@ -1390,27 +1264,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" @@ -1437,7 +1295,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== @@ -1487,20 +1345,13 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" -debug@4: +debug@4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: ms "^2.1.3" -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== - dependencies: - ms "^2.1.3" - decimal.js@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -1530,11 +1381,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" @@ -1550,11 +1396,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" @@ -1570,11 +1411,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" @@ -1593,9 +1429,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" @@ -1692,11 +1528,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" @@ -1715,9 +1546,9 @@ eslint-config-prettier@^9.1.0: integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-plugin-svelte@^2.36.0: - version "2.46.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.1.tgz#22691c8685420cd4eabf0cbaa31a0cfb8395595b" - integrity sha512-7xYr2o4NID/f9OEYMqxsEQsCsj4KaMy4q5sANaKkAb6/QeCjYFxRmDm2S3YC3A3pl1kyPZ/syOx/i7LcWYSbIw== + version "2.46.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.0.tgz#87bcc2820233065f79114012203b082319ff03e9" + integrity sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@jridgewell/sourcemap-codec" "^1.4.15" @@ -1739,10 +1570,10 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.3.0.tgz#10cd3a918ffdd722f5f3f7b5b83db9b23c87340d" - integrity sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ== +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" @@ -1758,29 +1589,28 @@ eslint-visitor-keys@^4.2.0: integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== eslint@^9.11.0: - version "9.25.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.25.1.tgz#8a7cf8dd0e6acb858f86029720adb1785ee57580" - integrity sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ== + version "9.15.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.15.0.tgz#77c684a4e980e82135ebff8ee8f0a9106ce6b8a6" + integrity sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw== 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.13.0" - "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.25.1" - "@eslint/plugin-kit" "^0.2.8" + "@eslint/config-array" "^0.19.0" + "@eslint/core" "^0.9.0" + "@eslint/eslintrc" "^3.2.0" + "@eslint/js" "9.15.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" @@ -1798,10 +1628,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.1.4" + resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.1.4.tgz#340c78b03ee2298d31c5b9fab9793468ede828b0" + integrity sha512-oO82nKPHKkzIj/hbtuDYy/JHqBHFlMIW36SDiPCVsj87ntDLcWN+sJ1erdVryd4NxODacFTsdrIE3b7IamqbOg== esniff@^2.0.1: version "2.0.1" @@ -1893,15 +1723,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" @@ -1914,21 +1744,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.4" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.4.tgz#1cfcf86f875a883e19a8fab53622cfe992e8d2f9" - integrity sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg== - -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" @@ -1973,9 +1798,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" @@ -2016,11 +1846,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" @@ -2155,14 +1980,14 @@ ignore@^5.2.0, ignore@^5.3.1: integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== immutable@^5.0.2: - version "5.1.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.1.tgz#d4cb552686f34b076b3dcf23c4384c04424d8354" - integrity sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg== + 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" @@ -2205,12 +2030,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== @@ -2220,11 +2040,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" @@ -2254,7 +2069,7 @@ is-reference@^3.0.0, is-reference@^3.0.1: dependencies: "@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== @@ -2409,9 +2224,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" @@ -2432,10 +2247,17 @@ magic-string@^0.30.10, magic-string@^0.30.4: dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" -magic-string@^0.30.12, 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.13" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.13.tgz#92438e3ff4946cf54f18247c981e5c161c46683c" + integrity sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + +magic-string@^0.30.5: + version "0.30.12" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60" + integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -2463,7 +2285,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== @@ -2513,9 +2335,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" @@ -2528,14 +2350,9 @@ msgpack-es@^0.0.5: integrity sha512-iK8YNWqs4csqE7udSmuY/1bz0MH8L80eX2ZGIlf8g7G2aq9wRUbVpTbyixqQNNJZ2kJ8v2NgVzj0npRqdJBMuA== nanoid@^3.3.7: - version "3.3.8" - 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== + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" @@ -2553,9 +2370,9 @@ node-addon-api@^7.0.0: integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== nostr-tools@^2.7.1: - version "2.12.0" - resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.12.0.tgz#09f270e32453611a85c3670ff86ae856f3cbd21a" - integrity sha512-pUWEb020gTvt1XZvTa8AKNIHWFapjsv2NKyk43Ez2nnvz6WSXsrTFE0XtkNLSRBjPn6EpxumKeNiVzLz74jNSA== + version "2.10.3" + resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-2.10.3.tgz#9af17e72fde60b0b42f1bee381381355072e899b" + integrity sha512-XL+eX/kyXNoCdtgEFFT26YlGaMq/eUMaxlGWVyR8lqdDvSa9m8rrHRUiR8IYZWwq5B0534E8VXbiSuoUgGGIDw== dependencies: "@noble/ciphers" "^0.5.1" "@noble/curves" "1.2.0" @@ -2564,9 +2381,9 @@ nostr-tools@^2.7.1: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" optionalDependencies: - nostr-wasm "0.1.0" + nostr-wasm v0.1.0 -nostr-wasm@0.1.0: +nostr-wasm@v0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/nostr-wasm/-/nostr-wasm-0.1.0.tgz#17af486745feb2b7dd29503fdd81613a24058d94" integrity sha512-78BTryCLcLYv96ONU8Ws3Q1JzjlAt+43pWQhIl86xZmWeegYCNLPml7yQ+gG3vR6V5h4XGj+TxO+SS5dsThQIA== @@ -2596,15 +2413,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" @@ -2705,7 +2513,7 @@ periscopic@^3.1.0: estree-walker "^3.0.0" is-reference "^3.0.0" -picocolors@^1.0.0, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.0, picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== @@ -2720,17 +2528,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.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.52.0.tgz#238f1f0c3edd4ebba0434ce3f4401900319a3dca" - integrity sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg== +playwright-core@1.49.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.49.0.tgz#8e69ffed3f41855b854982f3632f2922c890afcb" + integrity sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA== -playwright@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.52.0.tgz#26cb9a63346651e1c54c8805acfd85683173d4bd" - integrity sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw== +playwright@1.49.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.49.0.tgz#df6b9e05423377a99658202844a294a8afb95d0a" + integrity sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A== dependencies: - playwright-core "1.52.0" + playwright-core "1.49.0" optionalDependencies: fsevents "2.3.2" @@ -2761,6 +2569,15 @@ postcss-selector-parser@^6.1.0: util-deprecate "^1.0.2" postcss@^8.4.38, postcss@^8.4.39: + version "8.4.47" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" + integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.0" + source-map-js "^1.2.1" + +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== @@ -2769,29 +2586,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.3.3" - resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-3.3.3.tgz#49d5c025a1516063ac7ef026806f880caa310424" - integrity sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw== + 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.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== pretty-format@^27.0.2: version "27.5.1" @@ -2802,6 +2610,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" @@ -2818,9 +2631,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" @@ -2835,20 +2648,15 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -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== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 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" @@ -2857,43 +2665,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: @@ -2921,9 +2717,9 @@ sade@^1.7.4, sade@^1.8.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.79.3: - version "1.87.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.87.0.tgz#8cceb36fa63fb48a8d5d7f2f4c13b49c524b723e" - integrity sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw== + version "1.81.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.81.0.tgz#a9010c0599867909dfdbad057e4a6fbdd5eec941" + integrity sha512-Q4fOxRfhmv3sqCLoGfvrC9pRV8btc0UtqL9mN6Yrv6Qi9ScL55CVH1vlPP863ISLEEMNLLuu9P+enCeGHlnzhA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -2943,16 +2739,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.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" - integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== - 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" @@ -2970,35 +2761,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" @@ -3016,17 +2778,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" @@ -3047,11 +2802,6 @@ source-map-js@^1.0.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -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== - stackback@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" @@ -3062,22 +2812,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" @@ -3097,15 +2831,10 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -svelte-bootstrap-icons@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/svelte-bootstrap-icons/-/svelte-bootstrap-icons-3.1.2.tgz#19f39fa4c29df567d53abdde01d0573d48a53a0b" - integrity sha512-vy+qmWFfLJZxu5BaDlmaUG4uzki1rodX5ERZAP6KQdyO/2WNeGBDU4Yke3Z0NRq+VSepK86iAy+iUJvlUdsbBg== - svelte-check@^4.0.2: - version "4.1.7" - resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-4.1.7.tgz#3c61e965160dacb5dc6a643c85f715c00d19ce7e" - integrity sha512-1jX4BzXrQJhC/Jt3SqYf6Ntu//vmfc6VWp07JkRfK2nn+22yIblspVUo96gzMkg0Zov8lQicxhxsMzOctwcMQQ== + version "4.1.0" + resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-4.1.0.tgz#4389c1c88aa24f3d06fe0df94f9075a55017256d" + integrity sha512-AflEZYqI578KuDZcpcorPSf597LStxlkN7XqXi38u09zlHODVKd7c+7OuubGzbhgGRUqNTdQCZ+Ga96iRXEf2g== dependencies: "@jridgewell/trace-mapping" "^0.3.25" chokidar "^4.0.1" @@ -3194,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: @@ -3266,16 +2995,21 @@ tr46@^5.0.0: dependencies: punycode "^2.3.1" -ts-api-utils@^2.0.1: - 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.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.1.tgz#7c0a304cd446d9a497c24c960b8abbf0bc1611ae" + integrity sha512-5RU2/lxTA3YUZxju61HO2U6EoZLvBLtmV2mbTvqyu4a/7s7RmJPT+1YekhMVsQhznRWk/czIwDUg+V8Q9ZuG4w== -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" @@ -3289,19 +3023,24 @@ type@^2.7.2: integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== typescript-eslint@^8.7.0: - version "8.31.1" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.31.1.tgz#b77ab1e48ced2daab9225ff94bab54391a4af69b" - integrity sha512-j6DsEotD/fH39qKzXTQRwYYWlt7D+0HmfpOK+DVhwJOFLcdmn92hq3mBb7HlKJHbjjI/gTOqEcc9d6JfpFf/VA== + version "8.16.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.16.0.tgz#d608c972d6b2461ca10ec30fd3fa62a080baba19" + integrity sha512-wDkVmlY6O2do4V+lZd0GtRfbtXbeD0q9WygwXXSJnC1xorE8eqyC2L1tJimqpSeFrOzRlYtWnUp/uzgHQOgfBQ== dependencies: - "@typescript-eslint/eslint-plugin" "8.31.1" - "@typescript-eslint/parser" "8.31.1" - "@typescript-eslint/utils" "8.31.1" + "@typescript-eslint/eslint-plugin" "8.16.0" + "@typescript-eslint/parser" "8.16.0" + "@typescript-eslint/utils" "8.16.0" typescript@^5.5.4: 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" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" @@ -3319,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.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.5.tgz#cf28c637b2ebe65921f3118a165b7cf00a1cdf19" + integrity sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w== dependencies: cac "^6.7.14" debug "^4.3.7" @@ -3330,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" @@ -3357,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.5" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.5.tgz#a93b7b84a84650130727baae441354e6df118148" + integrity sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A== + dependencies: + "@vitest/expect" "2.1.5" + "@vitest/mocker" "2.1.5" + "@vitest/pretty-format" "^2.1.5" + "@vitest/runner" "2.1.5" + "@vitest/snapshot" "2.1.5" + "@vitest/spy" "2.1.5" + "@vitest/utils" "2.1.5" chai "^5.1.2" debug "^4.3.7" expect-type "^1.1.0" @@ -3380,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.5" why-is-node-running "^2.3.0" w3c-xmlserializer@^5.0.0: @@ -3435,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" @@ -3464,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" @@ -3479,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"