diff --git a/innungsapp/apps/admin/app/datenschutz/page.tsx b/innungsapp/apps/admin/app/datenschutz/page.tsx index 8bd3180..8a0e995 100644 --- a/innungsapp/apps/admin/app/datenschutz/page.tsx +++ b/innungsapp/apps/admin/app/datenschutz/page.tsx @@ -169,8 +169,7 @@ export default function DatenschutzPage() { Metadaten) verarbeitet werden. Die Speicherdauer der Analysedaten betraegt 12 Monate.
- PostHog wird in der EU-Region betrieben. Sollte im Einzelfall eine abweichende Region genutzt - werden, informieren wir darueber vorab und holen ggf. erforderliche Einwilligungen ein. + PostHog wird in der USA-Region betrieben. Die Daten werden gemäß EU-Standardvertragsklauseln (SCC) mit angemessenen Schutzmassnahmen uebermittelt.
Ihre Consent-Entscheidung wird lokal auf Ihrem Geraet gespeichert und kann jederzeit ueber den Link diff --git a/innungsapp/apps/admin/app/page.tsx b/innungsapp/apps/admin/app/page.tsx index 44bc646..993e233 100644 --- a/innungsapp/apps/admin/app/page.tsx +++ b/innungsapp/apps/admin/app/page.tsx @@ -221,12 +221,13 @@ export default function RootPage() { body { background: var(--bg); } - .page { - background: var(--bg); color: var(--ink); min-height: 100vh; - background-image: - radial-gradient(circle at 15% 50%, var(--gold-faint), transparent 25%), + .page { + background: var(--bg); color: var(--ink); min-height: 100vh; + background-image: + radial-gradient(circle at 15% 50%, var(--gold-faint), transparent 25%), radial-gradient(circle at 85% 30%, var(--gold-faint), transparent 25%); transition: background 0.3s, color 0.3s; + overflow-x: hidden; } /* Nav */ @@ -283,9 +284,12 @@ export default function RootPage() { color: var(--gold); margin-bottom: 32px; font-weight: 500; } .hero-h1 { - font-weight: 800; font-size: clamp(3.25rem, 8vw, 7.5rem); + font-weight: 800; font-size: clamp(1.75rem, 5vw, 7.5rem); line-height: 0.92; letter-spacing: -0.04em; margin: 0 0 48px; color: var(--ink); + word-wrap: break-word; + overflow-wrap: break-word; + hyphens: auto; } .hero-h1 em { color: var(--gold); font-style: normal; } @@ -341,6 +345,7 @@ export default function RootPage() { display: grid; grid-template-columns: repeat(2, 1fr); justify-items: center; } + @media (min-width: 480px) { .stats { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 768px) { .stats { grid-template-columns: repeat(4, 1fr); } } .stat { padding: 28px 24px; @@ -350,11 +355,11 @@ export default function RootPage() { } .stat:last-child { border-right: none; } .stat-num { - font-weight: 800; font-size: 2.25rem; + font-weight: 800; font-size: clamp(1.5rem, 4vw, 2.25rem); color: var(--gold); letter-spacing: -0.03em; line-height: 1; margin-bottom: 6px; } - .stat-label { font-size: 0.8125rem; color: var(--ink-muted); font-family: 'Georgia', serif; } + .stat-label { font-size: 0.75rem; color: var(--ink-muted); font-family: 'Georgia', serif; } /* Features */ .features { border-top: 1px solid var(--ink-faint); padding: 96px 0; } @@ -371,9 +376,12 @@ export default function RootPage() { .features-sticky { position: sticky; top: 88px; } } .features-h2 { - font-weight: 800; font-size: clamp(2.5rem, 5vw, 4rem); + font-weight: 800; font-size: clamp(1.5rem, 5vw, 4rem); letter-spacing: -0.04em; line-height: 1.0; margin: 24px 0 28px; color: var(--ink); + word-wrap: break-word; + overflow-wrap: break-word; + hyphens: auto; } .features-sub { color: var(--ink-muted); font-family: 'Georgia', serif; line-height: 1.65; font-size: 0.9375rem; } @@ -458,7 +466,12 @@ export default function RootPage() { /* AEO / SEO Block */ .aeo-section { padding: 96px 0; border-top: 1px solid var(--ink-faint); } .aeo-inner { max-width: 800px; margin: 0 auto; padding: 0 32px; } - .aeo-text { color: var(--ink-muted); font-size: 1rem; line-height: 1.8; font-family: 'Georgia', serif; } + .aeo-text { + color: var(--ink-muted); font-size: 1rem; line-height: 1.8; font-family: 'Georgia', serif; + word-wrap: break-word; + overflow-wrap: break-word; + hyphens: auto; + } .aeo-text p { margin-bottom: 24px; } .aeo-text strong { color: var(--ink); font-weight: 600; } @@ -499,8 +512,11 @@ export default function RootPage() { .cta-inner { flex-direction: row; align-items: flex-end; justify-content: space-between; } } .cta-h2 { - font-weight: 800; font-size: clamp(2.25rem, 5vw, 4.5rem); + font-weight: 800; font-size: clamp(1.5rem, 5vw, 4.5rem); letter-spacing: -0.04em; line-height: 1.0; color: var(--ink); + word-wrap: break-word; + overflow-wrap: break-word; + hyphens: auto; } .cta-h2 em { color: var(--gold); font-style: normal; } .cta-right { display: flex; flex-direction: column; gap: 10px; flex-shrink: 0; } @@ -658,10 +674,43 @@ export default function RootPage() { } /* Improved Mobile Responsiveness */ + @media (max-width: 480px) { + .nav-inner { padding: 0 12px; } + .hero { padding: 100px 12px 40px; } + .hero-body { gap: 20px; } + .hero-image-wrapper { max-height: 400px; aspect-ratio: 1; } + .stat { padding: 16px 12px; } + .stat-label { font-size: 0.7rem; } + .challenges-section { padding: 40px 0; } + .challenges-inner { padding: 0 12px; } + .challenges-grid { gap: 16px; } + .challenge-card { padding: 16px; } + .challenge-title { font-size: 1rem; } + .features { padding: 40px 0; } + .features-inner { padding: 0 12px; gap: 24px; } + .feature-item { padding: 16px 12px; gap: 12px; } + .feature-num { font-size: 1.5rem; } + .feature-title { font-size: 1rem; } + .feature-desc { font-size: 0.875rem; } + .comparison-section { padding: 40px 0; } + .comparison-inner { padding: 0 12px; } + .comp-card { padding: 16px; } + .comp-title { font-size: 1.125rem; } + .cta-section { padding: 40px 0 60px; } + .cta-inner { padding: 0 12px; } + .aeo-section { padding: 40px 0; } + .aeo-inner { padding: 0 12px; } + .aeo-text { font-size: 0.9375rem; } + .faq-section { padding: 40px 0; } + .faq-inner { padding: 0 12px; } + .faq-question { font-size: 1rem; padding: 16px 0; } + .footer { padding: 20px 0; } + .footer-inner { padding: 0 12px; } + } + @media (max-width: 639px) { .nav-inner { padding: 0 16px; } .hero { padding: 120px 16px 60px; } - .hero-h1 { font-size: clamp(2rem, 6vw, 3.25rem); } .hero-body { gap: 24px; } .hero-image-wrapper { aspect-ratio: 1; } .stats { grid-template-columns: repeat(2, 1fr); margin-top: 60px; } diff --git a/innungsapp/apps/admin/app/providers.tsx b/innungsapp/apps/admin/app/providers.tsx index e6ff8af..321fce5 100644 --- a/innungsapp/apps/admin/app/providers.tsx +++ b/innungsapp/apps/admin/app/providers.tsx @@ -1,5 +1,7 @@ 'use client' +import '../instrumentation-client' + import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { httpBatchLink } from '@trpc/client' import { useState } from 'react' diff --git a/innungsapp/apps/admin/middleware.ts b/innungsapp/apps/admin/middleware.ts index c756749..6f6e18b 100644 --- a/innungsapp/apps/admin/middleware.ts +++ b/innungsapp/apps/admin/middleware.ts @@ -63,7 +63,9 @@ export function middleware(request: NextRequest) { // Paths that should not be rewritten into the slug folder // because they are shared across the entire app const SHARED_PATHS = ['/login', '/api', '/superadmin', '/registrierung', '/impressum', '/datenschutz', '/passwort-aendern'] - const isSharedPath = SHARED_PATHS.some((p) => pathname.startsWith(p)) || pathname.startsWith('/_next') + const isSharedPath = SHARED_PATHS.some((p) => pathname.startsWith(p)) || + pathname.startsWith('/_next') || + /\.(png|jpg|jpeg|gif|svg|webp|ico|txt|xml)$/i.test(pathname) if (!isSharedPath && !pathname.startsWith(`/${slug}`)) { const rewriteUrl = request.nextUrl.clone() @@ -80,7 +82,8 @@ export function middleware(request: NextRequest) { // Check if it's a known non-reserved path but could be an organization slug // We don't want to redirect /login, /api, etc. const SHARED_PATHS = ['login', 'api', 'superadmin', 'dashboard', 'registrierung', 'impressum', 'datenschutz', '_next', 'uploads', 'favicon.ico', 'passwort-aendern'] - if (potentialSlug && !SHARED_PATHS.includes(potentialSlug)) { + const isStaticAsset = /\.(png|jpg|jpeg|gif|svg|webp|ico|txt|xml)$/i.test(potentialSlug) + if (potentialSlug && !SHARED_PATHS.includes(potentialSlug) && !isStaticAsset) { // This looks like a tenant path being accessed from the root domain. // Redirect to subdomain. const baseHost = hostname.split('.').slice(-2).join('.') // Simplistic, assumes domain.tld or localhost diff --git a/innungsapp/apps/admin/package.json b/innungsapp/apps/admin/package.json index 002a8b8..71e262c 100644 --- a/innungsapp/apps/admin/package.json +++ b/innungsapp/apps/admin/package.json @@ -29,6 +29,7 @@ "openai": "^6.22.0", "react": "19.0.0", "react-dom": "19.0.0", + "sharp": "^0.33.0", "superjson": "^2.2.1", "tailwind-merge": "^2.5.0", "zod": "^3.23.0" diff --git a/innungsapp/apps/admin/public/googleccd5315437d68a49.html b/innungsapp/apps/admin/public/googleccd5315437d68a49.html index d81ef78..b0bea36 100644 --- a/innungsapp/apps/admin/public/googleccd5315437d68a49.html +++ b/innungsapp/apps/admin/public/googleccd5315437d68a49.html @@ -1 +1,7 @@ -google-site-verification: googleccd5315437d68a49.html \ No newline at end of file + + +
+ + + + diff --git a/innungsapp/pnpm-lock.yaml b/innungsapp/pnpm-lock.yaml index 954afdd..ceba228 100644 --- a/innungsapp/pnpm-lock.yaml +++ b/innungsapp/pnpm-lock.yaml @@ -72,6 +72,9 @@ importers: react-dom: specifier: 19.0.0 version: 19.0.0(react@19.0.0) + sharp: + specifier: ^0.33.0 + version: 0.33.5 superjson: specifier: ^2.2.1 version: 2.2.6 @@ -1188,33 +1191,65 @@ packages: resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + '@img/sharp-darwin-arm64@0.34.5': resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + '@img/sharp-darwin-x64@0.34.5': resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.2.4': resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} cpu: [arm64] os: [darwin] + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-darwin-x64@1.2.4': resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} cpu: [x64] os: [darwin] + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linux-arm64@1.2.4': resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] @@ -1230,32 +1265,64 @@ packages: cpu: [riscv64] os: [linux] + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -1274,30 +1341,59 @@ packages: cpu: [riscv64] os: [linux] + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -1309,12 +1405,24 @@ packages: cpu: [arm64] os: [win32] + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + '@img/sharp-win32-ia32@0.34.5': resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@img/sharp-win32-x64@0.34.5': resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5439,6 +5547,10 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -7302,25 +7414,47 @@ snapshots: '@img/colour@1.0.0': optional: true + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + '@img/sharp-darwin-arm64@0.34.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + '@img/sharp-darwin-x64@0.34.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.2.4 optional: true + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + '@img/sharp-libvips-darwin-x64@1.2.4': optional: true + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + '@img/sharp-libvips-linux-arm64@1.2.4': optional: true + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + '@img/sharp-libvips-linux-arm@1.2.4': optional: true @@ -7330,23 +7464,45 @@ snapshots: '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + '@img/sharp-libvips-linux-s390x@1.2.4': optional: true + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + '@img/sharp-libvips-linux-x64@1.2.4': optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': optional: true + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + '@img/sharp-libvips-linuxmusl-x64@1.2.4': optional: true + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + '@img/sharp-linux-arm64@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.2.4 optional: true + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + '@img/sharp-linux-arm@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.2.4 @@ -7362,26 +7518,51 @@ snapshots: '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + '@img/sharp-linux-s390x@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + '@img/sharp-linux-x64@0.34.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.2.4 optional: true + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + '@img/sharp-linuxmusl-arm64@0.34.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + '@img/sharp-linuxmusl-x64@0.34.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.2.4 optional: true + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.8.1 + optional: true + '@img/sharp-wasm32@0.34.5': dependencies: '@emnapi/runtime': 1.8.1 @@ -7390,9 +7571,15 @@ snapshots: '@img/sharp-win32-arm64@0.34.5': optional: true + '@img/sharp-win32-ia32@0.33.5': + optional: true + '@img/sharp-win32-ia32@0.34.5': optional: true + '@img/sharp-win32-x64@0.33.5': + optional: true + '@img/sharp-win32-x64@0.34.5': optional: true @@ -12387,6 +12574,32 @@ snapshots: shallowequal@1.1.0: {} + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.1.2 + semver: 7.7.4 + 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 + sharp@0.34.5: dependencies: '@img/colour': 1.0.0