diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4d8c890..60be1d9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -28,7 +28,7 @@ }, "features": { "ghcr.io/devcontainers/features/git:1": { - "version": "2.46.0" + "version": "2.46" }, "ghcr.io/devcontainers/features/git-lfs:1": {} }, diff --git a/Dockerfile b/Dockerfile index 29d8078..486d62f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,11 @@ ARG PNPM_VERSION ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" +# stop corepack from adding packageManager field to package.json +# we don't need this since we already specify the package manager +# and version in the root compose.yaml +# https://github.com/nodejs/corepack/blob/main/README.md#environment-variables +ENV COREPACK_ENABLE_AUTO_PIN=0 RUN corepack enable \ && corepack prepare pnpm@$PNPM_VERSION --activate \ diff --git a/e2e/components/ThemeToggle.spec.ts b/e2e/components/ThemeToggle.spec.ts deleted file mode 100644 index 07ef2fc..0000000 --- a/e2e/components/ThemeToggle.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { test, expect, type Page } from '@playwright/test'; - -const LIGHT_THEME_BG_COLOR = 'oklch(1 0 0)'; -const DARK_THEME_BG_COLOR = 'oklch(0.2077 0.04 265.75)'; - -test.describe('ThemeToggle', () => { - test.beforeEach(async ({ page }) => { - await page.goto('/'); - }); - test('toggle is visible', async ({ page }) => { - const toggle = getToggle(page); - await expect(toggle).toBeVisible(); - await expect(toggle).toBeInViewport(); - }); - test('clicking toggle changes theme', async ({ page }) => { - const html = await page.locator('html'); - const toggle = getToggle(page); - const initialBackgroundColor = await html.evaluate(getBackgroundColor); - await expect(html).toHaveCSS('background-color', DARK_THEME_BG_COLOR); - - await toggle.click(); - - const secondBackgroundColor = await html.evaluate(getBackgroundColor); - await expect(initialBackgroundColor).not.toEqual(secondBackgroundColor); - await expect(html).toHaveCSS('background-color', LIGHT_THEME_BG_COLOR); - }); - test('theme persists across page loads', async ({ page }) => { - const html = await page.locator('html'); - const toggle = getToggle(page); - - await expect(html).toHaveCSS('background-color', DARK_THEME_BG_COLOR); - - await toggle.click(); - await expect(html).toHaveCSS('background-color', LIGHT_THEME_BG_COLOR); - - await page.reload(); - await expect(html).toHaveCSS('background-color', LIGHT_THEME_BG_COLOR); - - await toggle.click(); - await expect(html).toHaveCSS('background-color', DARK_THEME_BG_COLOR); - await page.reload(); - await expect(html).toHaveCSS('background-color', DARK_THEME_BG_COLOR); - }); -}); - -function getToggle(page: Page) { - return page.getByLabel('Toggle Theme'); -} -function getBackgroundColor(el: HTMLElement) { - return window.getComputedStyle(el).getPropertyValue('background-color'); -} diff --git a/e2e/pages/index/index.spec.ts b/e2e/pages/index/index.spec.ts index a2f6834..0e19b0a 100644 --- a/e2e/pages/index/index.spec.ts +++ b/e2e/pages/index/index.spec.ts @@ -26,47 +26,4 @@ test.describe('home page', () => { const postsText = await posts.allTextContents(); expect(postsText.length).toBeGreaterThan(6); }); - test('nav menu links are visible on mobile', async ({ page, isMobile }) => { - if (!isMobile) return; - - const navHamburger = await page.getByLabel('Open main menu'); - await expect(navHamburger).toBeVisible(); - - await navHamburger.click(); - const mainMenu = await page.getByLabel('Main menu', { exact: true }); - await expect(mainMenu).toBeVisible(); - - const homeLink = await mainMenu.getByRole('link', { name: 'Home' }); - await expect(homeLink).toBeVisible(); - - const postsLink = await mainMenu.getByRole('link', { name: 'Posts' }); - await expect(postsLink).toBeVisible(); - - const aboutLink = await mainMenu.getByRole('link', { name: 'About' }); - await expect(aboutLink).toBeVisible(); - }); - test('nav menu links are visible on desktop', async ({ page, isMobile }) => { - if (isMobile) return; - - const nav = await page.getByLabel('Main menu', { exact: true }); - await expect(nav).toBeVisible(); - const home = nav.getByText('home'); - const posts = nav.getByText('posts'); - const about = nav.getByText('about'); - await Promise.all([ - expect(home).toBeVisible(), - expect(about).toBeVisible(), - expect(posts).toBeVisible(), - ]); - }); - test('nav menu toggle is visible on small viewports', async ({ - page, - isMobile, - }) => { - if (!isMobile) return; - - await page.setViewportSize({ width: 320, height: 600 }); - const navHamburger = await page.getByLabel('Open main menu'); - await expect(navHamburger).toBeVisible(); - }); }); diff --git a/package.json b/package.json index 988192b..0166b49 100644 --- a/package.json +++ b/package.json @@ -21,36 +21,35 @@ }, "devDependencies": { "@astrojs/check": "^0.9.3", - "@astrojs/mdx": "^3.1.5", + "@astrojs/mdx": "^3.1.7", "@astrojs/sitemap": "^3.1.6", - "@astrojs/tailwind": "^5.1.0", - "@playwright/test": "^1.47.0", + "@astrojs/tailwind": "^5.1.1", + "@playwright/test": "^1.47.1", "@resvg/resvg-js": "^2.6.2", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/typography": "^0.5.15", "@types/node": "^20.16.5", "autoprefixer": "^10.4.20", "daisyui": "^4.12.10", - "postcss": "^8.4.45", + "postcss": "^8.4.47", "postcss-html": "^1.7.0", "prettier": "3.3.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.6.6", - "tailwindcss": "^3.4.10", + "tailwindcss": "^3.4.12", "typescript": "^5.6.2", - "vitest": "^2.0.5", - "wrangler": "^3.75.0" + "vitest": "^2.1.1", + "wrangler": "^3.78.6" }, "dependencies": { "@astrojs/rss": "^4.0.7", "@mdi/js": "^7.4.47", - "astro": "^4.15.4", + "astro": "^4.15.8", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "remark-unwrap-images": "^4.0.0", - "satori": "^0.10.14", + "satori": "^0.11.1", "satori-html": "^0.3.2", "zod": "^3.23.8" - }, - "packageManager": "pnpm@9.9.0+sha512.60c18acd138bff695d339be6ad13f7e936eea6745660d4cc4a776d5247c540d0edee1a563695c183a66eb917ef88f2b4feb1fc25f32a7adcadc7aaf3438e99c1" + } } diff --git a/playwright.config.ts b/playwright.config.ts index 813497e..68fcc08 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -15,7 +15,7 @@ export default defineConfig({ /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', + reporter: 'list', // changed from html to list to stop default browser from opening /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Base URL to use in actions like `await page.goto('/')`. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7c4f78f..300635b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^7.4.47 version: 7.4.47 astro: - specifier: ^4.15.4 - version: 4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2) + specifier: ^4.15.8 + version: 4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2) dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -27,8 +27,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 satori: - specifier: ^0.10.14 - version: 0.10.14 + specifier: ^0.11.1 + version: 0.11.1 satori-html: specifier: ^0.3.2 version: 0.3.2 @@ -40,38 +40,38 @@ importers: specifier: ^0.9.3 version: 0.9.3(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.6.2) '@astrojs/mdx': - specifier: ^3.1.5 - version: 3.1.5(astro@4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2)) + specifier: ^3.1.7 + version: 3.1.7(astro@4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2)) '@astrojs/sitemap': specifier: ^3.1.6 version: 3.1.6 '@astrojs/tailwind': - specifier: ^5.1.0 - version: 5.1.0(astro@4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2))(tailwindcss@3.4.10) + specifier: ^5.1.1 + version: 5.1.1(astro@4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2))(tailwindcss@3.4.12) '@playwright/test': - specifier: ^1.47.0 - version: 1.47.0 + specifier: ^1.47.1 + version: 1.47.1 '@resvg/resvg-js': specifier: ^2.6.2 version: 2.6.2 '@tailwindcss/aspect-ratio': specifier: ^0.4.2 - version: 0.4.2(tailwindcss@3.4.10) + version: 0.4.2(tailwindcss@3.4.12) '@tailwindcss/typography': specifier: ^0.5.15 - version: 0.5.15(tailwindcss@3.4.10) + version: 0.5.15(tailwindcss@3.4.12) '@types/node': specifier: ^20.16.5 version: 20.16.5 autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.45) + version: 10.4.20(postcss@8.4.47) daisyui: specifier: ^4.12.10 - version: 4.12.10(postcss@8.4.45) + version: 4.12.10(postcss@8.4.47) postcss: - specifier: ^8.4.45 - version: 8.4.45 + specifier: ^8.4.47 + version: 8.4.47 postcss-html: specifier: ^1.7.0 version: 1.7.0 @@ -85,17 +85,17 @@ importers: specifier: ^0.6.6 version: 0.6.6(prettier-plugin-astro@0.14.1)(prettier@3.3.3) tailwindcss: - specifier: ^3.4.10 - version: 3.4.10 + specifier: ^3.4.12 + version: 3.4.12 typescript: specifier: ^5.6.2 version: 5.6.2 vitest: - specifier: ^2.0.5 - version: 2.0.5(@types/node@20.16.5) + specifier: ^2.1.1 + version: 2.1.1(@types/node@20.16.5) wrangler: - specifier: ^3.75.0 - version: 3.75.0 + specifier: ^3.78.6 + version: 3.78.6 packages: @@ -134,8 +134,8 @@ packages: '@astrojs/markdown-remark@5.2.0': resolution: {integrity: sha512-vWGM24KZXz11jR3JO+oqYU3T2qpuOi4uGivJ9SQLCAI01+vEkHC60YJMRvHPc+hwd60F7euNs1PeOEixIIiNQw==} - '@astrojs/mdx@3.1.5': - resolution: {integrity: sha512-Fu6oShqcDpi0D1b2/3Pg3ao1I+Q2YqKhFsSsuDzn0YhdGrry5oUyABUyCyGq/OayP2P/34Vwj+GCQ/n9h8FlTQ==} + '@astrojs/mdx@3.1.7': + resolution: {integrity: sha512-8lGdCt+S0TrZgQpbcP3fQJc4cTeacAirtz9TpAMtHCWrQGW8slKt3WG4/0N+bhZgYRC4h5AT5drzFz+y3wvmsg==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} peerDependencies: astro: ^4.8.0 @@ -150,10 +150,10 @@ packages: '@astrojs/sitemap@3.1.6': resolution: {integrity: sha512-1Qp2NvAzVImqA6y+LubKi1DVhve/hXXgFvB0szxiipzh7BvtuKe4oJJ9dXSqaubaTkt4nMa6dv6RCCAYeB6xaQ==} - '@astrojs/tailwind@5.1.0': - resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} + '@astrojs/tailwind@5.1.1': + resolution: {integrity: sha512-LwurA10uIKcGRxQP2R81RvAnBT0WPKzBntXZBF4hrAefDgM5Uumn0nsGr6tdIjSARgYz4X+Cq/Vh78t3bql3yw==} peerDependencies: - astro: ^3.0.0 || ^4.0.0 + astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 tailwindcss: ^3.0.24 '@astrojs/telemetry@3.1.0': @@ -258,38 +258,38 @@ packages: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20240821.1': - resolution: {integrity: sha512-CDBpfZKrSy4YrIdqS84z67r3Tzal2pOhjCsIb63IuCnvVes59/ft1qhczBzk9EffeOE2iTCrA4YBT7Sbn7USew==} + '@cloudflare/workerd-darwin-64@1.20240909.0': + resolution: {integrity: sha512-nJ8jm/6PR8DPzVb4QifNAfSdrFZXNblwIdOhLTU5FpSvFFocmzFX5WgzQagvtmcC9/ZAQyxuf7WynDNyBcoe0Q==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20240821.1': - resolution: {integrity: sha512-Q+9RedvNbPcEt/dKni1oN94OxbvuNAeJkgHmrLFTGF8zu21wzOhVkQeRNxcYxrMa9mfStc457NAg13OVCj2kHQ==} + '@cloudflare/workerd-darwin-arm64@1.20240909.0': + resolution: {integrity: sha512-gJqKa811oSsoxy9xuoQn7bS0Hr1sY+o3EUORTcEnulG6Kz9NQ6nd8QNdp2Hrk2jmmSqwrNkn+a6PZkWzk6Q0Gw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20240821.1': - resolution: {integrity: sha512-j6z3KsPtawrscoLuP985LbqFrmsJL6q1mvSXOXTqXGODAHIzGBipHARdOjms3UQqovzvqB2lQaQsZtLBwCZxtA==} + '@cloudflare/workerd-linux-64@1.20240909.0': + resolution: {integrity: sha512-sJrmtccfMg73sZljiBpe4R+lhF58TqzqhF2pQG8HRjyxkzkM1sjpZqfEFaIkNUDqd3/Ibji49fklhPCGXljKSg==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20240821.1': - resolution: {integrity: sha512-I9bHgZOxJQW0CV5gTdilyxzTG7ILzbTirehQWgfPx9X77E/7eIbR9sboOMgyeC69W4he0SKtpx0sYZuTJu4ERw==} + '@cloudflare/workerd-linux-arm64@1.20240909.0': + resolution: {integrity: sha512-dTbSdceyRXPOSER+18AwYRbPQG0e/Dwl2trmfMMCETkfJhNLv1fU3FFMJPjfILijKnhTZHSnHCx0+xwHdon2fg==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20240821.1': - resolution: {integrity: sha512-keC97QPArs6LWbPejQM7/Y8Jy8QqyaZow4/ZdsGo+QjlOLiZRDpAenfZx3CBUoWwEeFwQTl2FLO+8hV1SWFFYw==} + '@cloudflare/workerd-windows-64@1.20240909.0': + resolution: {integrity: sha512-/d4BT0kcWFa7Qc0K4K9+cwVQ1qyPNKiO42JZUijlDlco+TYTPkLO3qGEohmwbfMq+BieK7JTMSgjO81ZHpA0HQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-shared@0.4.1': - resolution: {integrity: sha512-nYh4r8JwOOjYIdH2zub++CmIKlkYFlpxI1nBHimoiHcytJXD/b7ldJ21TtfzUZMCgI78mxVlymMHA/ReaOxKlA==} + '@cloudflare/workers-shared@0.5.3': + resolution: {integrity: sha512-Yk5Im7zsyKbzd7qi+DrL7ZJR9+bdZwq9BqZWS4muDIWA8MCUeSLsUC+C9u+jdwfPSi5It2AcQG4f0iwZr6jkkQ==} engines: {node: '>=16.7.0'} '@cspotcode/source-map-support@0.8.1': @@ -759,8 +759,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.47.0': - resolution: {integrity: sha512-SgAdlSwYVpToI4e/IH19IHHWvoijAYH5hu2MWSXptRypLSnzj51PcGD+rsOXFayde4P9ZLi+loXVwArg6IUkCA==} + '@playwright/test@1.47.1': + resolution: {integrity: sha512-dbWpcNQZ5nj16m+A5UNScYx7HX5trIy7g4phrcitn+Nk83S32EBX/CLU4hiF4RGKX/yRc93AAqtfaXB7JWBd4Q==} engines: {node: '>=18'} hasBin: true @@ -849,88 +849,97 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.21.2': - resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} + '@rollup/rollup-android-arm-eabi@4.22.0': + resolution: {integrity: sha512-/IZQvg6ZR0tAkEi4tdXOraQoWeJy9gbQ/cx4I7k9dJaCk9qrXEcdouxRVz5kZXt5C2bQ9pILoAA+KB4C/d3pfw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.2': - resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} + '@rollup/rollup-android-arm64@4.22.0': + resolution: {integrity: sha512-ETHi4bxrYnvOtXeM7d4V4kZWixib2jddFacJjsOjwbgYSRsyXYtZHC4ht134OsslPIcnkqT+TKV4eU8rNBKyyQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.2': - resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} + '@rollup/rollup-darwin-arm64@4.22.0': + resolution: {integrity: sha512-ZWgARzhSKE+gVUX7QWaECoRQsPwaD8ZR0Oxb3aUpzdErTvlEadfQpORPXkKSdKbFci9v8MJfkTtoEHnnW9Ulng==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.2': - resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} + '@rollup/rollup-darwin-x64@4.22.0': + resolution: {integrity: sha512-h0ZAtOfHyio8Az6cwIGS+nHUfRMWBDO5jXB8PQCARVF6Na/G6XS2SFxDl8Oem+S5ZsHQgtsI7RT4JQnI1qrlaw==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.2': - resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} + '@rollup/rollup-linux-arm-gnueabihf@4.22.0': + resolution: {integrity: sha512-9pxQJSPwFsVi0ttOmqLY4JJ9pg9t1gKhK0JDbV1yUEETSx55fdyCjt39eBQ54OQCzAF0nVGO6LfEH1KnCPvelA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.2': - resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} + '@rollup/rollup-linux-arm-musleabihf@4.22.0': + resolution: {integrity: sha512-YJ5Ku5BmNJZb58A4qSEo3JlIG4d3G2lWyBi13ABlXzO41SsdnUKi3HQHe83VpwBVG4jHFTW65jOQb8qyoR+qzg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.2': - resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} + '@rollup/rollup-linux-arm64-gnu@4.22.0': + resolution: {integrity: sha512-U4G4u7f+QCqHlVg1Nlx+qapZy+QoG+NV6ux+upo/T7arNGwKvKP2kmGM4W5QTbdewWFgudQxi3kDNST9GT1/mg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.2': - resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} + '@rollup/rollup-linux-arm64-musl@4.22.0': + resolution: {integrity: sha512-aQpNlKmx3amwkA3a5J6nlXSahE1ijl0L9KuIjVOUhfOh7uw2S4piR3mtpxpRtbnK809SBtyPsM9q15CPTsY7HQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': - resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.22.0': + resolution: {integrity: sha512-9fx6Zj/7vve/Fp4iexUFRKb5+RjLCff6YTRQl4CoDhdMfDoobWmhAxQWV3NfShMzQk1Q/iCnageFyGfqnsmeqQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.2': - resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} + '@rollup/rollup-linux-riscv64-gnu@4.22.0': + resolution: {integrity: sha512-VWQiCcN7zBgZYLjndIEh5tamtnKg5TGxyZPWcN9zBtXBwfcGSZ5cHSdQZfQH/GB4uRxk0D3VYbOEe/chJhPGLQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.2': - resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} + '@rollup/rollup-linux-s390x-gnu@4.22.0': + resolution: {integrity: sha512-EHmPnPWvyYqncObwqrosb/CpH3GOjE76vWVs0g4hWsDRUVhg61hBmlVg5TPXqF+g+PvIbqkC7i3h8wbn4Gp2Fg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.2': - resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} + '@rollup/rollup-linux-x64-gnu@4.22.0': + resolution: {integrity: sha512-tsSWy3YQzmpjDKnQ1Vcpy3p9Z+kMFbSIesCdMNgLizDWFhrLZIoN21JSq01g+MZMDFF+Y1+4zxgrlqPjid5ohg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.2': - resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} + '@rollup/rollup-linux-x64-musl@4.22.0': + resolution: {integrity: sha512-anr1Y11uPOQrpuU8XOikY5lH4Qu94oS6j0xrulHk3NkLDq19MlX8Ng/pVipjxBJ9a2l3+F39REZYyWQFkZ4/fw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.2': - resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} + '@rollup/rollup-win32-arm64-msvc@4.22.0': + resolution: {integrity: sha512-7LB+Bh+Ut7cfmO0m244/asvtIGQr5pG5Rvjz/l1Rnz1kDzM02pSX9jPaS0p+90H5I1x4d1FkCew+B7MOnoatNw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.2': - resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} + '@rollup/rollup-win32-ia32-msvc@4.22.0': + resolution: {integrity: sha512-+3qZ4rer7t/QsC5JwMpcvCVPRcJt1cJrYS/TMJZzXIJbxWFQEVhrIc26IhB+5Z9fT9umfVc+Es2mOZgl+7jdJQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.2': - resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} + '@rollup/rollup-win32-x64-msvc@4.22.0': + resolution: {integrity: sha512-YdicNOSJONVx/vuPkgPTyRoAPx3GbknBZRCOUkK84FJ/YTfs/F0vl/YsMscrB6Y177d+yDRcj+JWMPMCgshwrA==} cpu: [x64] os: [win32] - '@shikijs/core@1.16.3': - resolution: {integrity: sha512-yETIvrETCeC39gSPIiSADmjri9FwKmxz0QvONMtTIUYlKZe90CJkvcjPksayC2VQOtzOJonEiULUa8v8crUQvA==} + '@shikijs/core@1.18.0': + resolution: {integrity: sha512-VK4BNVCd2leY62Nm2JjyxtRLkyrZT/tv104O81eyaCjHq4Adceq2uJVFJJAIof6lT1mBwZrEo2qT/T+grv3MQQ==} + + '@shikijs/engine-javascript@1.18.0': + resolution: {integrity: sha512-qoP/aO/ATNwYAUw1YMdaip/YVEstMZEgrwhePm83Ll9OeQPuxDZd48szZR8oSQNQBT8m8UlWxZv8EA3lFuyI5A==} + + '@shikijs/engine-oniguruma@1.18.0': + resolution: {integrity: sha512-B9u0ZKI/cud+TcmF8Chyh+R4V5qQVvyDOqXC2l2a4x73PBSBc6sZ0JRAX3eqyJswqir6ktwApUUGBYePdKnMJg==} + + '@shikijs/types@1.18.0': + resolution: {integrity: sha512-O9N36UEaGGrxv1yUrN2nye7gDLG5Uq0/c1LyfmxsvzNPqlHzWo9DI0A4+fhW2y3bGKuQu/fwS7EPdKJJCowcVA==} '@shikijs/vscode-textmate@9.2.2': resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==} @@ -977,6 +986,9 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -1013,43 +1025,55 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitest/expect@2.0.5': - resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + '@vitest/expect@2.1.1': + resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} + + '@vitest/mocker@2.1.1': + resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} + peerDependencies: + '@vitest/spy': 2.1.1 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true - '@vitest/pretty-format@2.0.5': - resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + '@vitest/pretty-format@2.1.1': + resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - '@vitest/runner@2.0.5': - resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} + '@vitest/runner@2.1.1': + resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} - '@vitest/snapshot@2.0.5': - resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} + '@vitest/snapshot@2.1.1': + resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} - '@vitest/spy@2.0.5': - resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + '@vitest/spy@2.1.1': + resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} - '@vitest/utils@2.0.5': - resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + '@vitest/utils@2.1.1': + resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - '@volar/kit@2.4.4': - resolution: {integrity: sha512-6WusqQ4YhtIYbqY3nlLnkSbfBRSakx5HcTKdF+WjGKBj5D74ux9nsLq3uAqQlbpKgVkkt425KEDymQTb4C36Kg==} + '@volar/kit@2.4.5': + resolution: {integrity: sha512-ZzyErW5UiDfiIuJ/lpqc2Kx5PHDGDZ/bPlPJYpRcxlrn8Z8aDhRlsLHkNKcNiH65TmNahk2kbLaiejiqu6BD3A==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.4': - resolution: {integrity: sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==} + '@volar/language-core@2.4.5': + resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} - '@volar/language-server@2.4.4': - resolution: {integrity: sha512-rBzTgRw4/msZSFRSJURFU53qcDfBNm40NtYoMwOyaZuPcLzdgDAZ3hzVE80Rj0pk82LQJ0AfH13Y+EYFvUWkfQ==} + '@volar/language-server@2.4.5': + resolution: {integrity: sha512-l5PswE0JzCtstTlwBUpikeSa3lNUBJhTuWtj9KclZTGi2Uex4RcqGOhTiDsUUtvdv/hEuYCxGq1EdJJPlQsD/g==} - '@volar/language-service@2.4.4': - resolution: {integrity: sha512-QXfZV3IpJdcNQcdWFEG+iXOIb3NiC6/cNIQeH2QAOMx2vpkshuMcWD7AzrhVavobircOXJNiGmRGwqf2okYE3A==} + '@volar/language-service@2.4.5': + resolution: {integrity: sha512-xiFlL0aViGg6JhwAXyohPrdlID13uom8WQg6DWYaV8ob8RRy+zoLlBUI8SpQctwlWEO9poyrYK01revijAwkcw==} - '@volar/source-map@2.4.4': - resolution: {integrity: sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==} + '@volar/source-map@2.4.5': + resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} - '@volar/typescript@2.4.4': - resolution: {integrity: sha512-QQMQRVj0fVHJ3XdRKiS1LclhG0VBXdFYlyuHRQF/xLk2PuJuHNWP26MDZNvEVCvnyUQuUQhIAfylwY5TGPgc6w==} + '@volar/typescript@2.4.5': + resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==} '@vscode/emmet-helper@2.9.3': resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} @@ -1113,8 +1137,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} + engines: {node: '>= 0.4'} array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} @@ -1130,8 +1155,8 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro@4.15.4: - resolution: {integrity: sha512-wqy+m3qygt9DmCSqMsckxyK4ccCUFtti2d/WlLkEpAlqHgyDIg20zRTLHO2v/H4YeSlJ8sAcN0RW2FhOeYbINg==} + astro@4.15.8: + resolution: {integrity: sha512-pdXjtRF6O1xChiPAUF32R7oVRTW7AK1/Oy/JqPNhLfbelO0l6C7cLdSEuSLektwOEnMhOVXqccetjBs7HPaoxA==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1197,8 +1222,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001659: - resolution: {integrity: sha512-Qxxyfv3RdHAfJcXelgf0hU4DFUVXBGTjqrBUZLUh8AtlGnsDo+CnncYtTd95+ZKfnANUOzxyIQCuU/UeBZBYoA==} + caniuse-lite@1.0.30001662: + resolution: {integrity: sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA==} capnp-ts@0.7.0: resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} @@ -1320,6 +1345,10 @@ packages: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} + css-gradient-parser@0.0.16: + resolution: {integrity: sha512-3O5QdqgFRUbXvK1x5INf1YkBz1UKSWqrd63vWsum8MNHDBYD5urm3QtxZbKU259OrEXNM26lP/MPY3d1IGkBgA==} + engines: {node: '>=16'} + css-selector-tokenizer@0.8.0: resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} @@ -1420,11 +1449,11 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.18: - resolution: {integrity: sha512-1OfuVACu+zKlmjsNdcJuVQuVE61sZOLbNM4JAQ1Rvh6EOj0/EUKhMJjRH73InPlXSh8HIJk1cVZ8pyOV/FMdUQ==} + electron-to-chromium@1.5.25: + resolution: {integrity: sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g==} - emmet@2.4.7: - resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + emmet@2.4.8: + resolution: {integrity: sha512-wFe/dxsx7oi/M2UJ/3yBu4Fm24Irho6lqut4C1YFaZebCvCCMygoDGC7W6I+8+K8PAjfa/Ojn52UHi8WCdDiRA==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -1503,10 +1532,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - exit-hook@2.2.1: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} @@ -1598,10 +1623,6 @@ packages: get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -1639,8 +1660,8 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-from-html@2.0.2: - resolution: {integrity: sha512-HwOHwxdt2zC5KQ/CNoybBntRook2zJvfZE/u5/Ap7aLPe22bDqen7KwGkOqOyzL5zIqKwiYX/OTtE0FWgr6XXA==} + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} @@ -1657,8 +1678,8 @@ packages: hast-util-to-estree@3.1.0: resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - hast-util-to-html@9.0.2: - resolution: {integrity: sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==} + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} hast-util-to-jsx-runtime@2.3.0: resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} @@ -1691,18 +1712,14 @@ packages: http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -1768,10 +1785,6 @@ packages: is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} @@ -1932,8 +1945,8 @@ packages: mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} mdast-util-mdx-jsx@3.1.3: resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} @@ -1956,9 +1969,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2077,16 +2087,12 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - mimic-function@5.0.1: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - miniflare@3.20240821.1: - resolution: {integrity: sha512-81qdiryDG7VXzZuoa0EwhkaIYYrn7+StRIrd/2i7SPqPUNICUBjbhFFKqTnvE1+fqIPPB6l8ShKFaFvmnZOASg==} + miniflare@3.20240909.4: + resolution: {integrity: sha512-uiMjmv9vYIMgUn5PovS/2XzvnSgm04GxtoreNb7qiaDdp1YMhPPtnmV+EKOKyPSlVc7fCt/glzqSX9atUBXa2A==} engines: {node: '>=16.13'} hasBin: true @@ -2142,10 +2148,6 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -2154,19 +2156,15 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} onetime@7.0.0: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - oniguruma-to-js@0.3.3: - resolution: {integrity: sha512-m90/WEhgs8g4BxG37+Nu3YrMfJDs2YXtYtIllhsEPR+wP3+K4EZk6dDUvy2v2K4MNFDDOYKL4/yqYPXDqyozTQ==} + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} ora@8.1.0: resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} @@ -2225,10 +2223,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -2236,8 +2230,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -2272,13 +2266,13 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - playwright-core@1.47.0: - resolution: {integrity: sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==} + playwright-core@1.47.1: + resolution: {integrity: sha512-i1iyJdLftqtt51mEk6AhYFaAJCDx0xQ/O5NU8EKaWFgMjItPVma542Nh/Aq8aLCjIJSzjaiEQGW/nyqLkGF1OQ==} engines: {node: '>=18'} hasBin: true - playwright@1.47.0: - resolution: {integrity: sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==} + playwright@1.47.1: + resolution: {integrity: sha512-SUEKi6947IqYbKxRiqnbUobVZY4bF1uu+ZnZNJX9DfU1tlf2UhWfvVjLf01pQx9URsOr18bFVUKXmanYWhbfkw==} engines: {node: '>=18'} hasBin: true @@ -2333,8 +2327,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.45: - resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} preferred-pm@4.0.0: @@ -2458,8 +2452,8 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} remark-smartypants@3.0.2: resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} @@ -2523,8 +2517,8 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.21.2: - resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} + rollup@4.22.0: + resolution: {integrity: sha512-W21MUIFPZ4+O2Je/EU+GP3iz7PH4pVPUXSbEZdatQnxo29+3rsUjgrJmzuAZU24z7yRAnFN6ukxeAhZh/c7hzg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2540,8 +2534,8 @@ packages: satori-html@0.3.2: resolution: {integrity: sha512-wjTh14iqADFKDK80e51/98MplTGfxz2RmIzh0GqShlf4a67+BooLywF17TvJPD6phO0Hxm7Mf1N5LtRYvdkYRA==} - satori@0.10.14: - resolution: {integrity: sha512-abovcqmwl97WKioxpkfuMeZmndB1TuDFY/R+FymrZyiGP+pMYomvgSzVPnbNMWHHESOPosVHGL352oFbdAnJcA==} + satori@0.11.1: + resolution: {integrity: sha512-xIfUwWEiGsJPK4T+iALLhop2bNY4Kg/PvElG9aCQFdocBgPBWTTOULDdOBVaGwqqCMNmibXMoGC0uSteNr7kuQ==} engines: {node: '>=16'} sax@1.4.1: @@ -2576,8 +2570,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.16.3: - resolution: {integrity: sha512-GypUE+fEd06FqDs63LSAVlmq7WsahhPQU62cgZxGF+TJT5LjD2k7HTxXj4/CKOVuMM3+wWQ1t4Y5oooeJFRRBQ==} + shiki@1.18.0: + resolution: {integrity: sha512-8jo7tOXr96h9PBQmOHVrltnETn1honZZY76YA79MHheGQg55jBvbm9dtU+MI5pjC5NJCFuA6rvVTLVeSW5cE4A==} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -2673,18 +2667,14 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.7: - resolution: {integrity: sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} @@ -2702,8 +2692,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tailwindcss@3.4.10: - resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} + tailwindcss@3.4.12: + resolution: {integrity: sha512-Htf/gHj2+soPb9UayUNci/Ja3d8pTmu9ONTfh4QY8r3MATTZOzmv6UYWF7ZwikEIC8okpfqmGqrmDehua8mF8w==} engines: {node: '>=14.0.0'} hasBin: true @@ -2793,8 +2783,8 @@ packages: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - unenv-nightly@2.0.0-1724863496.70db6f1: - resolution: {integrity: sha512-r+VIl1gnsI4WQxluruSQhy8alpAf1AsLRLm4sEKp3otCyTIVD6I6wHEYzeQnwsyWgaD4+3BD4A/eqrgOpdTzhw==} + unenv-nightly@2.0.0-1726478054.1e87097: + resolution: {integrity: sha512-uZso8dCkGlJzWQqkyjOA5L4aUqNJl9E9oKRm03V/d+URrg6rFMJwBonlX9AAq538NxwJpPnCX0gAz0IfTxsbFQ==} unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} @@ -2850,13 +2840,13 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-node@2.0.5: - resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} + vite-node@2.1.1: + resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.4.3: - resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} + vite@5.4.6: + resolution: {integrity: sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2894,15 +2884,15 @@ packages: vite: optional: true - vitest@2.0.5: - resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} + vitest@2.1.1: + resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.5 - '@vitest/ui': 2.0.5 + '@vitest/browser': 2.1.1 + '@vitest/ui': 2.1.1 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -3053,17 +3043,17 @@ packages: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} - workerd@1.20240821.1: - resolution: {integrity: sha512-y4phjCnEG96u8ZkgkkHB+gSw0i6uMNo23rBmixylWpjxDklB+LWD8dztasvsu7xGaZbLoTxQESdEw956F7VJDA==} + workerd@1.20240909.0: + resolution: {integrity: sha512-NwuYh/Fgr/MK0H+Ht687sHl/f8tumwT5CWzYR0MZMHri8m3CIYu2IaY4tBFWoKE/tOU1Z5XjEXECa9zXY4+lwg==} engines: {node: '>=16'} hasBin: true - wrangler@3.75.0: - resolution: {integrity: sha512-CitNuNj0O1z6qbonUXmpUbxeWpU3nx28Kc4ZT33tMdeooQssb063Ie7+ZCdfS3kPhRHSwGdtOV22xFYytHON8w==} + wrangler@3.78.6: + resolution: {integrity: sha512-1PaN9FB2D5sTlse15adhMIhm33rCJYCPxeN71h/6siW45F0QjDrv+BxInwy9LBg8gfEqm71eI1iIlTGyV3l+1A==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20240821.1 + '@cloudflare/workers-types': ^4.20240909.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -3176,20 +3166,20 @@ snapshots: '@astrojs/compiler': 2.10.3 '@astrojs/yaml2ts': 0.2.1 '@jridgewell/sourcemap-codec': 1.5.0 - '@volar/kit': 2.4.4(typescript@5.6.2) - '@volar/language-core': 2.4.4 - '@volar/language-server': 2.4.4 - '@volar/language-service': 2.4.4 - '@volar/typescript': 2.4.4 + '@volar/kit': 2.4.5(typescript@5.6.2) + '@volar/language-core': 2.4.5 + '@volar/language-server': 2.4.5 + '@volar/language-service': 2.4.5 + '@volar/typescript': 2.4.5 fast-glob: 3.3.2 muggle-string: 0.4.1 - volar-service-css: 0.0.61(@volar/language-service@2.4.4) - volar-service-emmet: 0.0.61(@volar/language-service@2.4.4) - volar-service-html: 0.0.61(@volar/language-service@2.4.4) - volar-service-prettier: 0.0.61(@volar/language-service@2.4.4)(prettier@3.3.3) - volar-service-typescript: 0.0.61(@volar/language-service@2.4.4) - volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.4) - volar-service-yaml: 0.0.61(@volar/language-service@2.4.4) + volar-service-css: 0.0.61(@volar/language-service@2.4.5) + volar-service-emmet: 0.0.61(@volar/language-service@2.4.5) + volar-service-html: 0.0.61(@volar/language-service@2.4.5) + volar-service-prettier: 0.0.61(@volar/language-service@2.4.5)(prettier@3.3.3) + volar-service-typescript: 0.0.61(@volar/language-service@2.4.5) + volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.5) + volar-service-yaml: 0.0.61(@volar/language-service@2.4.5) vscode-html-languageservice: 5.3.1 vscode-uri: 3.0.8 optionalDependencies: @@ -3202,7 +3192,7 @@ snapshots: dependencies: '@astrojs/prism': 3.1.0 github-slugger: 2.0.0 - hast-util-from-html: 2.0.2 + hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 import-meta-resolve: 4.1.0 mdast-util-definitions: 6.0.0 @@ -3210,9 +3200,9 @@ snapshots: rehype-stringify: 10.0.0 remark-gfm: 4.0.0 remark-parse: 11.0.0 - remark-rehype: 11.1.0 + remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.16.3 + shiki: 1.18.0 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -3221,16 +3211,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@3.1.5(astro@4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2))': + '@astrojs/mdx@3.1.7(astro@4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2))': dependencies: '@astrojs/markdown-remark': 5.2.0 '@mdx-js/mdx': 3.0.1 acorn: 8.12.1 - astro: 4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2) + astro: 4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 gray-matter: 4.0.3 - hast-util-to-html: 9.0.2 + hast-util-to-html: 9.0.3 kleur: 4.1.5 rehype-raw: 7.0.0 remark-gfm: 4.0.0 @@ -3256,13 +3246,13 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.23.8 - '@astrojs/tailwind@5.1.0(astro@4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2))(tailwindcss@3.4.10)': + '@astrojs/tailwind@5.1.1(astro@4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2))(tailwindcss@3.4.12)': dependencies: - astro: 4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2) - autoprefixer: 10.4.20(postcss@8.4.45) - postcss: 8.4.45 - postcss-load-config: 4.0.2(postcss@8.4.45) - tailwindcss: 3.4.10 + astro: 4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2) + autoprefixer: 10.4.20(postcss@8.4.47) + postcss: 8.4.47 + postcss-load-config: 4.0.2(postcss@8.4.47) + tailwindcss: 3.4.12 transitivePeerDependencies: - ts-node @@ -3420,22 +3410,25 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20240821.1': + '@cloudflare/workerd-darwin-64@1.20240909.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20240821.1': + '@cloudflare/workerd-darwin-arm64@1.20240909.0': optional: true - '@cloudflare/workerd-linux-64@1.20240821.1': + '@cloudflare/workerd-linux-64@1.20240909.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20240821.1': + '@cloudflare/workerd-linux-arm64@1.20240909.0': optional: true - '@cloudflare/workerd-windows-64@1.20240821.1': + '@cloudflare/workerd-windows-64@1.20240909.0': optional: true - '@cloudflare/workers-shared@0.4.1': {} + '@cloudflare/workers-shared@0.5.3': + dependencies: + mime: 3.0.0 + zod: 3.23.8 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -3726,7 +3719,7 @@ snapshots: '@mdx-js/mdx@3.0.1': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdx': 2.0.13 @@ -3742,7 +3735,7 @@ snapshots: periscopic: 3.1.0 remark-mdx: 3.0.1 remark-parse: 11.0.0 - remark-rehype: 11.1.0 + remark-rehype: 11.1.1 source-map: 0.7.4 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 @@ -3769,9 +3762,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.47.0': + '@playwright/test@1.47.1': dependencies: - playwright: 1.47.0 + playwright: 1.47.1 '@resvg/resvg-js-android-arm-eabi@2.6.2': optional: true @@ -3824,68 +3817,86 @@ snapshots: '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 '@resvg/resvg-js-win32-x64-msvc': 2.6.2 - '@rollup/pluginutils@5.1.0(rollup@4.21.2)': + '@rollup/pluginutils@5.1.0(rollup@4.22.0)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.21.2 + rollup: 4.22.0 - '@rollup/rollup-android-arm-eabi@4.21.2': + '@rollup/rollup-android-arm-eabi@4.22.0': optional: true - '@rollup/rollup-android-arm64@4.21.2': + '@rollup/rollup-android-arm64@4.22.0': optional: true - '@rollup/rollup-darwin-arm64@4.21.2': + '@rollup/rollup-darwin-arm64@4.22.0': optional: true - '@rollup/rollup-darwin-x64@4.21.2': + '@rollup/rollup-darwin-x64@4.22.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + '@rollup/rollup-linux-arm-gnueabihf@4.22.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.2': + '@rollup/rollup-linux-arm-musleabihf@4.22.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.2': + '@rollup/rollup-linux-arm64-gnu@4.22.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.2': + '@rollup/rollup-linux-arm64-musl@4.22.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + '@rollup/rollup-linux-powerpc64le-gnu@4.22.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.2': + '@rollup/rollup-linux-riscv64-gnu@4.22.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.2': + '@rollup/rollup-linux-s390x-gnu@4.22.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.2': + '@rollup/rollup-linux-x64-gnu@4.22.0': optional: true - '@rollup/rollup-linux-x64-musl@4.21.2': + '@rollup/rollup-linux-x64-musl@4.22.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.2': + '@rollup/rollup-win32-arm64-msvc@4.22.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.2': + '@rollup/rollup-win32-ia32-msvc@4.22.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.2': + '@rollup/rollup-win32-x64-msvc@4.22.0': optional: true - '@shikijs/core@1.16.3': + '@shikijs/core@1.18.0': + dependencies: + '@shikijs/engine-javascript': 1.18.0 + '@shikijs/engine-oniguruma': 1.18.0 + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + + '@shikijs/engine-javascript@1.18.0': + dependencies: + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 + oniguruma-to-js: 0.4.3 + + '@shikijs/engine-oniguruma@1.18.0': + dependencies: + '@shikijs/types': 1.18.0 + '@shikijs/vscode-textmate': 9.2.2 + + '@shikijs/types@1.18.0': dependencies: '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 - oniguruma-to-js: 0.3.3 - regex: 4.3.2 '@shikijs/vscode-textmate@9.2.2': {} @@ -3894,21 +3905,21 @@ snapshots: fflate: 0.7.4 string.prototype.codepointat: 0.2.1 - '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.10)': + '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.12)': dependencies: - tailwindcss: 3.4.10 + tailwindcss: 3.4.12 - '@tailwindcss/typography@0.5.15(tailwindcss@3.4.10)': + '@tailwindcss/typography@0.5.15(tailwindcss@3.4.12)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.10 + tailwindcss: 3.4.12 '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/babel__core@7.20.5': dependencies: @@ -3939,10 +3950,12 @@ snapshots: '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -3979,57 +3992,64 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/expect@2.0.5': + '@vitest/expect@2.1.1': dependencies: - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 chai: 5.1.1 tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.0.5': + '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.6(@types/node@20.16.5))': + dependencies: + '@vitest/spy': 2.1.1 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + vite: 5.4.6(@types/node@20.16.5) + + '@vitest/pretty-format@2.1.1': dependencies: tinyrainbow: 1.2.0 - '@vitest/runner@2.0.5': + '@vitest/runner@2.1.1': dependencies: - '@vitest/utils': 2.0.5 + '@vitest/utils': 2.1.1 pathe: 1.1.2 - '@vitest/snapshot@2.0.5': + '@vitest/snapshot@2.1.1': dependencies: - '@vitest/pretty-format': 2.0.5 + '@vitest/pretty-format': 2.1.1 magic-string: 0.30.11 pathe: 1.1.2 - '@vitest/spy@2.0.5': + '@vitest/spy@2.1.1': dependencies: tinyspy: 3.0.2 - '@vitest/utils@2.0.5': + '@vitest/utils@2.1.1': dependencies: - '@vitest/pretty-format': 2.0.5 - estree-walker: 3.0.3 + '@vitest/pretty-format': 2.1.1 loupe: 3.1.1 tinyrainbow: 1.2.0 - '@volar/kit@2.4.4(typescript@5.6.2)': + '@volar/kit@2.4.5(typescript@5.6.2)': dependencies: - '@volar/language-service': 2.4.4 - '@volar/typescript': 2.4.4 + '@volar/language-service': 2.4.5 + '@volar/typescript': 2.4.5 typesafe-path: 0.2.2 typescript: 5.6.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-core@2.4.4': + '@volar/language-core@2.4.5': dependencies: - '@volar/source-map': 2.4.4 + '@volar/source-map': 2.4.5 - '@volar/language-server@2.4.4': + '@volar/language-server@2.4.5': dependencies: - '@volar/language-core': 2.4.4 - '@volar/language-service': 2.4.4 - '@volar/typescript': 2.4.4 + '@volar/language-core': 2.4.5 + '@volar/language-service': 2.4.5 + '@volar/typescript': 2.4.5 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -4037,24 +4057,24 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-service@2.4.4': + '@volar/language-service@2.4.5': dependencies: - '@volar/language-core': 2.4.4 + '@volar/language-core': 2.4.5 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/source-map@2.4.4': {} + '@volar/source-map@2.4.5': {} - '@volar/typescript@2.4.4': + '@volar/typescript@2.4.5': dependencies: - '@volar/language-core': 2.4.4 + '@volar/language-core': 2.4.5 path-browserify: 1.0.1 vscode-uri: 3.0.8 '@vscode/emmet-helper@2.9.3': dependencies: - emmet: 2.4.7 + emmet: 2.4.8 jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 @@ -4112,9 +4132,7 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 + aria-query@5.3.1: {} array-iterate@2.0.1: {} @@ -4126,7 +4144,7 @@ snapshots: astring@1.9.0: {} - astro@4.15.4(@types/node@20.16.5)(rollup@4.21.2)(typescript@5.6.2): + astro@4.15.8(@types/node@20.16.5)(rollup@4.22.0)(typescript@5.6.2): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.1 @@ -4136,11 +4154,11 @@ snapshots: '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) '@babel/types': 7.25.6 '@oslojs/encoding': 0.4.1 - '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@rollup/pluginutils': 5.1.0(rollup@4.22.0) '@types/babel__core': 7.20.5 '@types/cookie': 0.6.0 acorn: 8.12.1 - aria-query: 5.3.0 + aria-query: 5.3.1 axobject-query: 4.1.0 boxen: 7.1.1 ci-info: 4.0.0 @@ -4174,20 +4192,19 @@ snapshots: ora: 8.1.0 p-limit: 6.1.0 p-queue: 8.0.1 - path-to-regexp: 6.2.2 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.1 semver: 7.6.3 - shiki: 1.16.3 + shiki: 1.18.0 string-width: 7.2.0 strip-ansi: 7.1.0 tinyexec: 0.3.0 tsconfck: 3.1.3(typescript@5.6.2) unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 5.4.3(@types/node@20.16.5) - vitefu: 1.0.2(vite@5.4.3(@types/node@20.16.5)) + vite: 5.4.6(@types/node@20.16.5) + vitefu: 1.0.2(vite@5.4.6(@types/node@20.16.5)) which-pm: 3.0.0 xxhash-wasm: 1.0.2 yargs-parser: 21.1.1 @@ -4209,14 +4226,14 @@ snapshots: - terser - typescript - autoprefixer@10.4.20(postcss@8.4.45): + autoprefixer@10.4.20(postcss@8.4.47): dependencies: browserslist: 4.23.3 - caniuse-lite: 1.0.30001659 + caniuse-lite: 1.0.30001662 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.0 - postcss: 8.4.45 + postcss: 8.4.47 postcss-value-parser: 4.2.0 axobject-query@4.1.0: {} @@ -4254,8 +4271,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001659 - electron-to-chromium: 1.5.18 + caniuse-lite: 1.0.30001662 + electron-to-chromium: 1.5.25 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -4267,7 +4284,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001659: {} + caniuse-lite@1.0.30001662: {} capnp-ts@0.7.0: dependencies: @@ -4384,6 +4401,8 @@ snapshots: css-color-keywords@1.0.0: {} + css-gradient-parser@0.0.16: {} + css-selector-tokenizer@0.8.0: dependencies: cssesc: 3.0.0 @@ -4399,12 +4418,12 @@ snapshots: culori@3.3.0: {} - daisyui@4.12.10(postcss@8.4.45): + daisyui@4.12.10(postcss@8.4.47): dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 picocolors: 1.1.0 - postcss-js: 4.0.1(postcss@8.4.45) + postcss-js: 4.0.1(postcss@8.4.47) transitivePeerDependencies: - postcss @@ -4473,9 +4492,9 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.18: {} + electron-to-chromium@1.5.25: {} - emmet@2.4.7: + emmet@2.4.8: dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 @@ -4555,7 +4574,7 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-util-build-jsx@3.0.1: dependencies: @@ -4583,22 +4602,10 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 eventemitter3@5.0.1: {} - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - exit-hook@2.2.1: {} extend-shallow@2.0.1: @@ -4677,8 +4684,6 @@ snapshots: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 - get-stream@8.0.1: {} - github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -4717,7 +4722,7 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-from-html@2.0.2: + hast-util-from-html@2.0.3: dependencies: '@types/hast': 3.0.4 devlop: 1.1.0 @@ -4763,7 +4768,7 @@ snapshots: hast-util-to-estree@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -4771,7 +4776,7 @@ snapshots: estree-util-attach-comments: 3.0.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.5.0 @@ -4782,7 +4787,7 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.2: + hast-util-to-html@9.0.3: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -4798,19 +4803,19 @@ snapshots: hast-util-to-jsx-runtime@2.3.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-object: 1.0.7 + style-to-object: 1.0.8 unist-util-position: 5.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -4860,13 +4865,11 @@ snapshots: http-cache-semantics@4.1.1: {} - human-signals@5.0.0: {} - import-meta-resolve@4.1.0: {} inline-style-parser@0.1.1: {} - inline-style-parser@0.2.3: {} + inline-style-parser@0.2.4: {} is-alphabetical@2.0.1: {} @@ -4914,9 +4917,7 @@ snapshots: is-reference@3.0.2: dependencies: - '@types/estree': 1.0.5 - - is-stream@3.0.0: {} + '@types/estree': 1.0.6 is-unicode-supported@1.3.0: {} @@ -5117,7 +5118,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-expression@2.0.0: + mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -5148,7 +5149,7 @@ snapshots: mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.1 - mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.0 @@ -5198,8 +5199,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - merge-stream@2.0.0: {} - merge2@1.4.1: {} micromark-core-commonmark@2.0.1: @@ -5281,7 +5280,7 @@ snapshots: micromark-extension-mdx-expression@3.0.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.0 @@ -5293,7 +5292,7 @@ snapshots: micromark-extension-mdx-jsx@3.0.1: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.2 @@ -5310,7 +5309,7 @@ snapshots: micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 micromark-util-character: 2.1.0 @@ -5346,7 +5345,7 @@ snapshots: micromark-factory-mdx-expression@2.0.2: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 @@ -5411,7 +5410,7 @@ snapshots: micromark-util-events-to-acorn@2.0.2: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 @@ -5475,11 +5474,9 @@ snapshots: mime@3.0.0: {} - mimic-fn@4.0.0: {} - mimic-function@5.0.1: {} - miniflare@3.20240821.1: + miniflare@3.20240909.4: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.12.1 @@ -5489,7 +5486,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.4 - workerd: 1.20240821.1 + workerd: 1.20240909.0 ws: 8.18.0 youch: 3.3.3 zod: 3.23.8 @@ -5534,25 +5531,19 @@ snapshots: normalize-range@0.1.2: {} - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - object-assign@4.1.1: {} object-hash@3.0.0: {} - ohash@1.1.3: {} - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 + ohash@1.1.4: {} onetime@7.0.0: dependencies: mimic-function: 5.0.1 - oniguruma-to-js@0.3.3: {} + oniguruma-to-js@0.4.3: + dependencies: + regex: 4.3.2 ora@8.1.0: dependencies: @@ -5626,8 +5617,6 @@ snapshots: path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} path-scurry@1.11.1: @@ -5635,7 +5624,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@6.2.2: {} + path-to-regexp@6.3.0: {} pathe@1.1.2: {} @@ -5643,7 +5632,7 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -5661,11 +5650,11 @@ snapshots: dependencies: find-up: 4.1.0 - playwright-core@1.47.0: {} + playwright-core@1.47.1: {} - playwright@1.47.0: + playwright@1.47.1: dependencies: - playwright-core: 1.47.0 + playwright-core: 1.47.1 optionalDependencies: fsevents: 2.3.2 @@ -5673,36 +5662,36 @@ snapshots: dependencies: htmlparser2: 8.0.2 js-tokens: 9.0.0 - postcss: 8.4.45 - postcss-safe-parser: 6.0.0(postcss@8.4.45) + postcss: 8.4.47 + postcss-safe-parser: 6.0.0(postcss@8.4.47) - postcss-import@15.1.0(postcss@8.4.45): + postcss-import@15.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.45): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.45 + postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.45): + postcss-load-config@4.0.2(postcss@8.4.47): dependencies: lilconfig: 3.1.2 yaml: 2.5.1 optionalDependencies: - postcss: 8.4.45 + postcss: 8.4.47 - postcss-nested@6.2.0(postcss@8.4.45): + postcss-nested@6.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-selector-parser: 6.1.2 - postcss-safe-parser@6.0.0(postcss@8.4.45): + postcss-safe-parser@6.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-selector-parser@6.0.10: dependencies: @@ -5716,7 +5705,7 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.45: + postcss@8.4.47: dependencies: nanoid: 3.3.7 picocolors: 1.1.0 @@ -5771,7 +5760,7 @@ snapshots: rehype-parse@9.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-from-html: 2.0.2 + hast-util-from-html: 2.0.3 unified: 11.0.5 rehype-raw@7.0.0: @@ -5783,7 +5772,7 @@ snapshots: rehype-stringify@10.0.0: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.2 + hast-util-to-html: 9.0.3 unified: 11.0.5 rehype@13.0.1: @@ -5820,7 +5809,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@11.1.0: + remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -5909,26 +5898,26 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@4.21.2: + rollup@4.22.0: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.2 - '@rollup/rollup-android-arm64': 4.21.2 - '@rollup/rollup-darwin-arm64': 4.21.2 - '@rollup/rollup-darwin-x64': 4.21.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 - '@rollup/rollup-linux-arm-musleabihf': 4.21.2 - '@rollup/rollup-linux-arm64-gnu': 4.21.2 - '@rollup/rollup-linux-arm64-musl': 4.21.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 - '@rollup/rollup-linux-riscv64-gnu': 4.21.2 - '@rollup/rollup-linux-s390x-gnu': 4.21.2 - '@rollup/rollup-linux-x64-gnu': 4.21.2 - '@rollup/rollup-linux-x64-musl': 4.21.2 - '@rollup/rollup-win32-arm64-msvc': 4.21.2 - '@rollup/rollup-win32-ia32-msvc': 4.21.2 - '@rollup/rollup-win32-x64-msvc': 4.21.2 + '@rollup/rollup-android-arm-eabi': 4.22.0 + '@rollup/rollup-android-arm64': 4.22.0 + '@rollup/rollup-darwin-arm64': 4.22.0 + '@rollup/rollup-darwin-x64': 4.22.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.0 + '@rollup/rollup-linux-arm-musleabihf': 4.22.0 + '@rollup/rollup-linux-arm64-gnu': 4.22.0 + '@rollup/rollup-linux-arm64-musl': 4.22.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.0 + '@rollup/rollup-linux-riscv64-gnu': 4.22.0 + '@rollup/rollup-linux-s390x-gnu': 4.22.0 + '@rollup/rollup-linux-x64-gnu': 4.22.0 + '@rollup/rollup-linux-x64-musl': 4.22.0 + '@rollup/rollup-win32-arm64-msvc': 4.22.0 + '@rollup/rollup-win32-ia32-msvc': 4.22.0 + '@rollup/rollup-win32-x64-msvc': 4.22.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5945,11 +5934,12 @@ snapshots: dependencies: ultrahtml: 1.5.3 - satori@0.10.14: + satori@0.11.1: dependencies: '@shuding/opentype.js': 1.4.0-beta.0 css-background-parser: 0.1.0 css-box-shadow: 1.0.0-3 + css-gradient-parser: 0.0.16 css-to-react-native: 3.2.0 emoji-regex: 10.4.0 escape-html: 1.0.3 @@ -6007,9 +5997,12 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.16.3: + shiki@1.18.0: dependencies: - '@shikijs/core': 1.16.3 + '@shikijs/core': 1.18.0 + '@shikijs/engine-javascript': 1.18.0 + '@shikijs/engine-oniguruma': 1.18.0 + '@shikijs/types': 1.18.0 '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 @@ -6095,17 +6088,15 @@ snapshots: strip-bom@3.0.0: {} - strip-final-newline@3.0.0: {} - strnum@1.0.5: {} style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 - style-to-object@1.0.7: + style-to-object@1.0.8: dependencies: - inline-style-parser: 0.2.3 + inline-style-parser: 0.2.4 sucrase@3.35.0: dependencies: @@ -6127,7 +6118,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tailwindcss@3.4.10: + tailwindcss@3.4.12: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -6143,11 +6134,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.0 - postcss: 8.4.45 - postcss-import: 15.1.0(postcss@8.4.45) - postcss-js: 4.0.1(postcss@8.4.45) - postcss-load-config: 4.0.2(postcss@8.4.45) - postcss-nested: 6.2.0(postcss@8.4.45) + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 resolve: 1.22.8 sucrase: 3.35.0 @@ -6212,10 +6203,10 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 - unenv-nightly@2.0.0-1724863496.70db6f1: + unenv-nightly@2.0.0-1726478054.1e87097: dependencies: defu: 6.1.4 - ohash: 1.1.3 + ohash: 1.1.4 pathe: 1.1.2 ufo: 1.5.4 @@ -6303,13 +6294,12 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.0.5(@types/node@20.16.5): + vite-node@2.1.1(@types/node@20.16.5): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - tinyrainbow: 1.2.0 - vite: 5.4.3(@types/node@20.16.5) + vite: 5.4.6(@types/node@20.16.5) transitivePeerDependencies: - '@types/node' - less @@ -6321,45 +6311,46 @@ snapshots: - supports-color - terser - vite@5.4.3(@types/node@20.16.5): + vite@5.4.6(@types/node@20.16.5): dependencies: esbuild: 0.21.5 - postcss: 8.4.45 - rollup: 4.21.2 + postcss: 8.4.47 + rollup: 4.22.0 optionalDependencies: '@types/node': 20.16.5 fsevents: 2.3.3 - vitefu@1.0.2(vite@5.4.3(@types/node@20.16.5)): + vitefu@1.0.2(vite@5.4.6(@types/node@20.16.5)): optionalDependencies: - vite: 5.4.3(@types/node@20.16.5) + vite: 5.4.6(@types/node@20.16.5) - vitest@2.0.5(@types/node@20.16.5): + vitest@2.1.1(@types/node@20.16.5): dependencies: - '@ampproject/remapping': 2.3.0 - '@vitest/expect': 2.0.5 - '@vitest/pretty-format': 2.0.5 - '@vitest/runner': 2.0.5 - '@vitest/snapshot': 2.0.5 - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 + '@vitest/expect': 2.1.1 + '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.6(@types/node@20.16.5)) + '@vitest/pretty-format': 2.1.1 + '@vitest/runner': 2.1.1 + '@vitest/snapshot': 2.1.1 + '@vitest/spy': 2.1.1 + '@vitest/utils': 2.1.1 chai: 5.1.1 debug: 4.3.7 - execa: 8.0.1 magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 tinybench: 2.9.0 + tinyexec: 0.3.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.3(@types/node@20.16.5) - vite-node: 2.0.5(@types/node@20.16.5) + vite: 5.4.6(@types/node@20.16.5) + vite-node: 2.1.1(@types/node@20.16.5) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.16.5 transitivePeerDependencies: - less - lightningcss + - msw - sass - sass-embedded - stylus @@ -6367,45 +6358,45 @@ snapshots: - supports-color - terser - volar-service-css@0.0.61(@volar/language-service@2.4.4): + volar-service-css@0.0.61(@volar/language-service@2.4.5): dependencies: vscode-css-languageservice: 6.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 - volar-service-emmet@0.0.61(@volar/language-service@2.4.4): + volar-service-emmet@0.0.61(@volar/language-service@2.4.5): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.9.3 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 - volar-service-html@0.0.61(@volar/language-service@2.4.4): + volar-service-html@0.0.61(@volar/language-service@2.4.5): dependencies: vscode-html-languageservice: 5.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 - volar-service-prettier@0.0.61(@volar/language-service@2.4.4)(prettier@3.3.3): + volar-service-prettier@0.0.61(@volar/language-service@2.4.5)(prettier@3.3.3): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 prettier: 3.3.3 - volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.4): + volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.5): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 - volar-service-typescript@0.0.61(@volar/language-service@2.4.4): + volar-service-typescript@0.0.61(@volar/language-service@2.4.5): dependencies: path-browserify: 1.0.1 semver: 7.6.3 @@ -6414,14 +6405,14 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 - volar-service-yaml@0.0.61(@volar/language-service@2.4.4): + volar-service-yaml@0.0.61(@volar/language-service@2.4.5): dependencies: vscode-uri: 3.0.8 yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.4 + '@volar/language-service': 2.4.5 vscode-css-languageservice@6.3.1: dependencies: @@ -6500,33 +6491,33 @@ snapshots: dependencies: string-width: 5.1.2 - workerd@1.20240821.1: + workerd@1.20240909.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20240821.1 - '@cloudflare/workerd-darwin-arm64': 1.20240821.1 - '@cloudflare/workerd-linux-64': 1.20240821.1 - '@cloudflare/workerd-linux-arm64': 1.20240821.1 - '@cloudflare/workerd-windows-64': 1.20240821.1 + '@cloudflare/workerd-darwin-64': 1.20240909.0 + '@cloudflare/workerd-darwin-arm64': 1.20240909.0 + '@cloudflare/workerd-linux-64': 1.20240909.0 + '@cloudflare/workerd-linux-arm64': 1.20240909.0 + '@cloudflare/workerd-windows-64': 1.20240909.0 - wrangler@3.75.0: + wrangler@3.78.6: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 - '@cloudflare/workers-shared': 0.4.1 + '@cloudflare/workers-shared': 0.5.3 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 chokidar: 3.6.0 date-fns: 3.6.0 esbuild: 0.17.19 - miniflare: 3.20240821.1 + miniflare: 3.20240909.4 nanoid: 3.3.7 - path-to-regexp: 6.2.2 + path-to-regexp: 6.3.0 resolve: 1.22.8 resolve.exports: 2.0.2 selfsigned: 2.4.1 source-map: 0.6.1 - unenv: unenv-nightly@2.0.0-1724863496.70db6f1 - workerd: 1.20240821.1 + unenv: unenv-nightly@2.0.0-1726478054.1e87097 + workerd: 1.20240909.0 xxhash-wasm: 1.0.2 optionalDependencies: fsevents: 2.3.3 diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro index c9ce40e..fc9e909 100644 --- a/src/components/BaseHead.astro +++ b/src/components/BaseHead.astro @@ -1,7 +1,7 @@ --- import type { SiteMeta } from '@/types'; import { siteConfig } from '@/site.config'; -import '../styles/global.css'; +import '@/styles/global.css'; type Props = SiteMeta; diff --git a/src/components/Footer.astro b/src/components/Footer.astro index f8c00fc..ccd35d5 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,6 +1,13 @@ --- -import { NAV_LINKS } from '@/lib/constants'; import Link from '@/components/Link'; +import type { Links } from '@/types'; + +interface Props { + logo: string; + links?: Links; +} + +const { logo, links = [] } = Astro.props; // We only need the date it was first published but keeping it current looks nice // see: https://hynek.me/til/copyright-years/ @@ -10,24 +17,29 @@ const year = new Date().getFullYear(); diff --git a/src/components/Header.astro b/src/components/Header.astro index 0bab283..f1436d4 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -1,145 +1,46 @@ --- -import ThemeToggle from '@/components/ThemeToggle'; import Link from '@/components/Link'; -import { NAV_LINKS } from '@/lib/constants'; +import type { Links } from '@/types'; +interface Props { + logo: string; + links?: Links; +} + +const { logo, links = [] } = Astro.props; const url = new URL(Astro.request.url); --- - - -
-
- - - - - - - -
- - +
{logo}
+ + + + + { + links?.length > 0 && ( + + ) + }
diff --git a/src/components/Heading.astro b/src/components/Heading.astro index c1deaa1..cb3fec8 100644 --- a/src/components/Heading.astro +++ b/src/components/Heading.astro @@ -1,7 +1,9 @@ --- +import type { HTMLAttributes } from 'astro/types'; type Level = '1' | '2' | '3'; type Heading = `h${Level}`; -interface Props { + +interface Props extends HTMLAttributes<'h1'> { level: Level; class?: string; } diff --git a/src/components/ThemeToggle.astro b/src/components/ThemeToggle.astro index 2305c6e..95be133 100644 --- a/src/components/ThemeToggle.astro +++ b/src/components/ThemeToggle.astro @@ -1,75 +1,120 @@ --- -import { DARK_THEME_NAME } from '@/lib/theme'; -import Btn from '@/components/Btn'; +import { + LIGHT_THEME_NAME, + DARK_THEME_NAME, + THEME_STORAGE_KEY, +} from '@/lib/theme'; import Icon from '@/components/Icon'; import { weatherSunny, weatherNight } from '@/lib/icons'; +import type { HTMLAttributes } from 'astro/types'; + +interface Props extends HTMLAttributes<'label'> {} +const { class: className } = Astro.props; --- - + - + diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index 118d0e5..d373c76 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -4,9 +4,8 @@ import BaseHead from '@/components/BaseHead'; import Header from '@/components/Header'; import Footer from '@/components/Footer'; import SkipLink from '@/components/SkipLink'; -import ThemeProvider from '@/components/ThemeProvider'; import { siteConfig } from '@/site.config'; -import { DARK_THEME_NAME } from '@/lib/theme'; +import { NAV_LINKS, FAVICON } from '@/lib/constants'; interface Props { meta: SiteMeta; @@ -17,7 +16,7 @@ const { } = Astro.props; --- - + - -
+
Chris Vaillancourt
-